فهرست منبع

Merge remote-tracking branch 'origin' into jiangchenyu

002201 2 سال پیش
والد
کامیت
9ba29df844

+ 4 - 3
src/api/business/spd/bo/accessory.js

@@ -1,10 +1,11 @@
 import request from '@/utils/request'
 
 // 查询附件列表
-export function listAccessory(boId) {
+export function listAccessory(query) {
   return request({
-    url: '/mk/bo/accessory/list?boId=' + boId,
-    method: 'get'
+    url: '/mk/bo/accessory/list',
+    method: 'get',
+    params: query
   })
 }
 

+ 52 - 0
src/api/business/spd/bo/authority.js

@@ -0,0 +1,52 @@
+import request from '@/utils/request'
+
+// 查询商机角色权限列表
+export function listAuthority(query) {
+  return request({
+    url: '/mk/bo/authority/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询商机角色权限详细
+export function getAuthority(id) {
+  return request({
+    url: '/mk/bo/authority/' + id,
+    method: 'get'
+  })
+}
+
+// 新增商机角色权限
+export function addAuthority(data) {
+  return request({
+    url: '/mk/bo/authority',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改商机角色权限
+export function updateAuthority(data) {
+  return request({
+    url: '/mk/bo/authority',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除商机角色权限
+export function delAuthority(id) {
+  return request({
+    url: '/mk/bo/authority/' + id,
+    method: 'delete'
+  })
+}
+
+// 查询任务详细
+export function getPsnPost(boId) {
+  return request({
+    url: '/mk/bo/authority/psnpost/' + boId,
+    method: 'get'
+  })
+}

+ 21 - 2
src/api/business/spd/bo/behavior.js

@@ -22,7 +22,10 @@ export function addBehavior(data) {
   return request({
     url: '/mk/bo/behavior',
     method: 'post',
-    data: data
+    data: data,
+    headers: {
+      'Content-Type': 'multipart/form-data'
+    }
   })
 }
 
@@ -31,7 +34,10 @@ export function updateBehavior(data) {
   return request({
     url: '/mk/bo/behavior',
     method: 'put',
-    data: data
+    data: data,
+    headers: {
+      'Content-Type': 'multipart/form-data'
+    }
   })
 }
 
@@ -42,3 +48,16 @@ export function delBehavior(behaviorId) {
     method: 'delete'
   })
 }
+
+// // 新增图片
+// export function addPicture(data) {
+//   console.log('data',data);
+//   return request({
+//     url: '/mk/bo/behavior/upload',
+//     method: 'post',
+//     data: data,
+//     headers: {
+//       'Content-Type': 'multipart/form-data'
+//     }
+//   })
+// }

+ 9 - 0
src/api/business/spd/bo/behaviorP.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+// 查询行动列表
+export function getListByPid(pid) {
+  return request({
+    url: '/mk/bo/behaviorP/list/' + pid,
+    method: 'get'
+  })
+}

+ 34 - 0
src/api/canteen/basic.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request'
+
+// 餐厅菜单新增
+export function addMenu(data) {
+  return request({
+    url: `/dh/menu/add`,
+    method: 'post',
+    data: data
+  })
+}
+// 餐厅菜单列表
+export function menuList(params) {
+  return request({
+    url: `/dh/menu/list`,
+    method: 'get',
+    params: params
+  })
+}
+// 餐厅食材新增
+export function addFood(data) {
+  return request({
+    url: `/dh/record/add`,
+    method: 'post',
+    data: data
+  })
+}
+// 餐厅食材列表
+export function foodList(params) {
+  return request({
+    url: `/dh/record/listRecord`,
+    method: 'get',
+    params: params
+  })
+}

BIN
src/assets/images/menu_bg.jpg


+ 1 - 0
src/components/PopDialog/drug.vue

@@ -88,6 +88,7 @@ export default {
   methods: {
     init() {
       this.visible = true;
+      this.filterText = ''
       this.$nextTick(() => {
         this.refreshList()
       });

+ 2 - 2
src/layout/components/Navbar.vue

@@ -25,7 +25,7 @@
 
       </template>
 
-      <!-- <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
+      <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
         <div class="avatar-wrapper">
           <img :src="avatar" class="user-avatar">
           <i class="el-icon-caret-bottom" />
@@ -41,7 +41,7 @@
             <span>退出登录</span>
           </el-dropdown-item>
         </el-dropdown-menu>
-      </el-dropdown> -->
+      </el-dropdown>
     </div>
   </div>
 </template>

+ 1 - 1
src/permission.js

@@ -8,7 +8,7 @@ import { isRelogin } from '@/utils/request'
 
 NProgress.configure({ showSpinner: false })
 
-const whiteList = ['/login', '/register', '/test01']
+const whiteList = ['/login', '/register', '/test01', '/canteenAddFood', '/canteenAddMenu', '/menuScreen', '/foodScreen']
 
 router.beforeEach((to, from, next) => {
   NProgress.start()

+ 20 - 0
src/router/index.js

@@ -57,6 +57,26 @@ export const constantRoutes = [
     hidden: true
   },
   {
+    path: '/canteenAddFood',
+    component: () => import('@/views/canteen/addFood'),
+    hidden: true
+  },
+  {
+    path: '/canteenAddMenu',
+    component: () => import('@/views/canteen/addMenu'),
+    hidden: true
+  },
+  {
+    path: '/menuScreen',
+    component: () => import('@/views/canteen/menuScreen'),
+    hidden: true
+  },
+  {
+    path: '/foodScreen',
+    component: () => import('@/views/canteen/foodScreen'),
+    hidden: true
+  },
+  {
     path: '/404',
     component: () => import('@/views/error/404'),
     hidden: true

+ 559 - 0
src/views/business/spd/bo/authority/index.vue

@@ -0,0 +1,559 @@
+<template>
+  <div class="app-container">
+    <!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="项目岗位" prop="post">
+        <el-input
+          v-model="queryParams.post"
+          placeholder="请输入项目岗位"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商机-下一步" prop="boNext">
+        <el-input
+          v-model="queryParams.boNext"
+          placeholder="请输入商机-下一步"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商机-修改" prop="boEdit">
+        <el-input
+          v-model="queryParams.boEdit"
+          placeholder="请输入商机-修改"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商机-关闭" prop="boClose">
+        <el-input
+          v-model="queryParams.boClose"
+          placeholder="请输入商机-关闭"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商机-赢单" prop="boWin">
+        <el-input
+          v-model="queryParams.boWin"
+          placeholder="请输入商机-赢单"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商机-丢单" prop="boLose">
+        <el-input
+          v-model="queryParams.boLose"
+          placeholder="请输入商机-丢单"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="任务-新增" prop="taskAdd">
+        <el-input
+          v-model="queryParams.taskAdd"
+          placeholder="请输入任务-新增"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="任务-删除" prop="taskDel">
+        <el-input
+          v-model="queryParams.taskDel"
+          placeholder="请输入任务-删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="任务-编辑" prop="taskEdit">
+        <el-input
+          v-model="queryParams.taskEdit"
+          placeholder="请输入任务-编辑"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="任务-查看" prop="taskView">
+        <el-input
+          v-model="queryParams.taskView"
+          placeholder="请输入任务-查看"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="行动-新增" prop="behaviorAdd">
+        <el-input
+          v-model="queryParams.behaviorAdd"
+          placeholder="请输入行动-新增"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="行动-删除" prop="behaviorDel">
+        <el-input
+          v-model="queryParams.behaviorDel"
+          placeholder="请输入行动-删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="行动-编辑" prop="behaviorEdit">
+        <el-input
+          v-model="queryParams.behaviorEdit"
+          placeholder="请输入行动-编辑"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="行动-查看" prop="behaviorView">
+        <el-input
+          v-model="queryParams.behaviorView"
+          placeholder="请输入行动-查看"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="联系人-新增" prop="contactAdd">
+        <el-input
+          v-model="queryParams.contactAdd"
+          placeholder="请输入联系人-新增"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="联系人-删除" prop="contactDel">
+        <el-input
+          v-model="queryParams.contactDel"
+          placeholder="请输入联系人-删除"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="联系人-编辑" prop="contactEdit">
+        <el-input
+          v-model="queryParams.contactEdit"
+          placeholder="请输入联系人-编辑"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="联系人-查看" prop="contactView">
+        <el-input
+          v-model="queryParams.contactView"
+          placeholder="请输入联系人-查看"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form> -->
+
+    <!-- <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['material:authority:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['material:authority:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['material:authority:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['material:authority:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row> -->
+
+    <el-table v-loading="loading" :data="authorityList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="项目岗位" align="center" prop="postName" />
+      <el-table-column label="商机-下一步" align="center" prop="boNext" />
+      <el-table-column label="商机-修改" align="center" prop="boEdit" />
+      <el-table-column label="商机-关闭" align="center" prop="boClose" />
+      <el-table-column label="商机-赢单" align="center" prop="boWin" />
+      <el-table-column label="商机-丢单" align="center" prop="boLose" />
+      <el-table-column label="任务-新增" align="center" prop="taskAdd" />
+      <el-table-column label="任务-删除" align="center" prop="taskDel" />
+      <el-table-column label="任务-编辑" align="center" prop="taskEdit" />
+      <el-table-column label="任务-查看" align="center" prop="taskView" />
+      <el-table-column label="行动-新增" align="center" prop="behaviorAdd" />
+      <el-table-column label="行动-删除" align="center" prop="behaviorDel" />
+      <el-table-column label="行动-编辑" align="center" prop="behaviorEdit" />
+      <el-table-column label="行动-查看" align="center" prop="behaviorView" />
+      <el-table-column label="联系人-新增" align="center" prop="contactAdd" />
+      <el-table-column label="联系人-删除" align="center" prop="contactDel" />
+      <el-table-column label="联系人-编辑" align="center" prop="contactEdit" />
+      <el-table-column label="联系人-查看" align="center" prop="contactView" />
+      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['material:authority:edit']"
+          >修改</el-button>
+          <!-- <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['material:authority:remove']"
+          >删除</el-button> -->
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改商机角色权限对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="项目岗位" prop="postName">
+          {{form.postName}}
+          <!-- <el-input v-model="form.postName"/> -->
+        </el-form-item>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">商机</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="boNext">
+              <el-checkbox v-model="form.boNext">下一步</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="boEdit">
+              <el-checkbox v-model="form.boEdit">修改</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="boClose">
+              <el-checkbox v-model="form.boClose">关闭</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="boWin">
+              <el-checkbox v-model="form.boWin">赢单</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="boLose">
+              <el-checkbox v-model="form.boLose">丢单</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+          <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">任务</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="taskAdd">
+              <el-checkbox v-model="form.taskAdd">新增</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="taskDel">
+              <el-checkbox v-model="form.taskDel">删除</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="taskEdit">
+              <el-checkbox v-model="form.taskEdit">编辑</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="taskView">
+              <el-checkbox v-model="form.taskView">查看</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">行动</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="behaviorAdd">
+              <el-checkbox v-model="form.behaviorAdd">新增</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="behaviorDel">
+              <el-checkbox v-model="form.behaviorDel">删除</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="behaviorEdit">
+              <el-checkbox v-model="form.behaviorEdit">编辑</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="behaviorView">
+              <el-checkbox v-model="form.behaviorView">查看</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">联系人</dev>
+        </el-divider>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="contactAdd">
+              <el-checkbox v-model="form.contactAdd">新增</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="contactDel">
+              <el-checkbox v-model="form.contactDel">删除</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item prop="contactEdit">
+              <el-checkbox v-model="form.contactEdit">编辑</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item prop="contactView">
+              <el-checkbox v-model="form.contactView">查看</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+          <el-col :span="8">
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAuthority, getAuthority, delAuthority, addAuthority, updateAuthority } from "@/api/business/spd/bo/authority";
+export default {
+  name: "Authority",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 商机角色权限表格数据
+      authorityList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        post: null,
+        boNext: null,
+        boEdit: null,
+        boClose: null,
+        boWin: null,
+        boLose: null,
+        taskAdd: null,
+        taskDel: null,
+        taskEdit: null,
+        taskView: null,
+        behaviorAdd: null,
+        behaviorDel: null,
+        behaviorEdit: null,
+        behaviorView: null,
+        contactAdd: null,
+        contactDel: null,
+        contactEdit: null,
+        contactView: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询商机角色权限列表 */
+    getList() {
+      this.loading = true;
+      listAuthority(this.queryParams).then(response => {
+        this.authorityList = response.rows;
+        console.log('this.authorityList',this.authorityList);
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        post: null,
+        boNext: null,
+        boEdit: null,
+        boClose: null,
+        boWin: null,
+        boLose: null,
+        taskAdd: null,
+        taskDel: null,
+        taskEdit: null,
+        taskView: null,
+        behaviorAdd: null,
+        behaviorDel: null,
+        behaviorEdit: null,
+        behaviorView: null,
+        contactAdd: null,
+        contactDel: null,
+        contactEdit: null,
+        contactView: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加商机角色权限";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAuthority(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改商机角色权限";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateAuthority(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAuthority(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除商机角色权限编号为"' + ids + '"的数据项?').then(function() {
+        return delAuthority(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('material/authority/export', {
+        ...this.queryParams
+      }, `authority_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 149 - 280
src/views/business/spd/bo/basic/details.vue

@@ -2,98 +2,66 @@
 <template>
   <div class="md-content">
     <!-- 头部信息 -->
-    <el-row type="flex" justify="space-between">
-      <el-col :span="6">
-        <el-button size="small" @click="handleBack">返回</el-button>
+    <el-row type="flex" class="row-bg" justify="space-around">
+      <el-col :span="4">
+        <div class="grid-content bg-purple">
+          <el-button size="small" @click="handleBack">返回</el-button>
+        </div>
       </el-col>
-      <el-form ref="form" :model="form.basic">
-        <el-col :span="10">
-          <el-input
-            v-model="form.basic.boName"
-            placeholder="商机名称"
-            size="medium"
-            :disabled = "true"
-          />
-        </el-col>
-        <el-col :span="6">
-          <el-select
-            v-model="form.basic.boState"
-            placeholder="商机状态"
-            size="medium"
-            :disabled = "true"
-          >
-            <el-option
-              v-for="dict in dict.type.mk_bo_state"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            ></el-option>
-          </el-select>
-        </el-col>
-        <el-col :span="6">
-          <el-select
-            v-model="form.basic.winningState"
-            placeholder="赢丢单状态"
-            size="medium"
-            :disabled = "true"
-          >
-            <el-option
-              v-for="dict in dict.type.mk_bo_winstate"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            ></el-option>
-          </el-select>
-        </el-col>
-      </el-form>
-      
-      <el-col :span="2">
-        <el-button
-                    type="info"
-                    plain
-                    icon="el-icon-delete-solid"
-                    size="small"
-                    @click="handleWinningState('1','关闭')"
-                    v-if="this.form.basic.boStage >= 1 && this.form.basic.winningState == 0"
-                    >关闭</el-button
-                  >
+      <el-col :span="16">
+        <div class="grid-content bg-purple-light">
+          <el-descriptions :colon="false" :size="medium">
+            <el-descriptions-item>
+                <dev style="width: 200px; height: 60px; font-size: 18px">{{form.basic.boName}}</dev>
+            </el-descriptions-item>
+            <el-descriptions-item label="商机状态:" style="margin-left:27px">
+              <div v-for="dict in dict.type.mk_bo_state" v-if="form.basic.boState == dict.value">
+                <div>{{dict.label}}</div>
+              </div>
+            </el-descriptions-item>
+            <el-descriptions-item label="赢丢单状态:">
+              <div v-for="dict in dict.type.mk_bo_winstate" v-if="form.basic.winningState == dict.value">
+                {{dict.label}}
+              </div>
+            </el-descriptions-item>
+          </el-descriptions>
+        </div>
       </el-col>
-      <el-col :span="2">
+      <el-col :span="6">
         <el-button
-                    type="info"
-                    plain
-                    icon="el-icon-close"
-                    size="small"
-                    @click="handleWinningState('2','丢单')"
-                    v-if="this.form.basic.boStage >= 1 && this.form.basic.winningState == 0"
-                    >丢单</el-button
-                  >
-      </el-col>
-      <el-col :span="2">
+          type="info"
+          plain
+          icon="el-icon-delete-solid"
+          size="small"
+          @click="handleWinningState('1','关闭')"
+          v-if="(this.form.basic.boStage >= 1 && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boClose"
+          >关闭</el-button
+        >
         <el-button
-                    type="info"
-                    plain
-                    icon="el-icon-check"
-                    size="small"
-                    @click="handleWinningState('3','赢单')"
-                    v-if="this.form.basic.boStage >= 7 && this.form.basic.winningState == 0"
-                    >赢单</el-button
-                  >
-      </el-col>
-      <el-button-group>
-        <el-col :span="6">
+          type="info"
+          plain
+          icon="el-icon-close"
+          size="small"
+          @click="handleWinningState('2','丢单')"
+          v-if="(this.form.basic.boStage >= 1 && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boLose"
+          >丢单</el-button
+        >
+        <el-button
+          type="info"
+          plain
+          icon="el-icon-check"
+          size="small"
+          @click="handleWinningState('3','赢单')"
+          v-if="(this.form.basic.boStage >= 7 && this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boWin"
+          >赢单</el-button
+        >
+        <!-- <div class="grid-content bg-purple">
           <el-button size="small" icon="el-icon-d-arrow-left"></el-button>
-        </el-col>
-        <el-col :span="6">
           <el-button size="small" icon="el-icon-arrow-left"></el-button>
-        </el-col>
-        <el-col :span="6">
           <el-button size="small" icon="el-icon-arrow-right"></el-button>
-        </el-col>
-        <el-col :span="6">
           <el-button size="small" icon="el-icon-d-arrow-right"></el-button>
-        </el-col>
-      </el-button-group>
+        </div> -->
+      </el-col>
     </el-row>
     <!-- 主多页签 -->
     <el-tabs v-model="masterTabs" @tab-click="masterTabsSwitch">
@@ -118,28 +86,19 @@
         </el-steps>
         <!-- 流程按钮组 -->
         <div style="text-align: center">
-          <!-- <el-button
-            type="primary"
-            style="margin-top: 12px"
-            @click="next"
-            v-show="form.basic.boStage == 0"
-          >
-            审核
-          </el-button> -->
           <el-button
             style="margin-top: 12px"
             @click="next"
             v-show="
-              !(
+              (!(
                 form.basic.boStage < 1 ||
                 form.basic.boFlow.projectApproval == 0
               ) &&
               !isUpdate &&
               this.form.basic.boStage < 12 &&
-              this.form.basic.winningState == 0
+              this.form.basic.winningState == 0) && this.boAuthority.boAuthority.boNext
             "
             >变更为下一阶段</el-button>
-            <!-- <el-button style="margin-top: 12px;" @click="before" v-if="form.basic.boStage > 1">上一步</el-button> -->
         </div>
         <!-- 次多页签 -->
         <el-divider content-position="left" style="font-size: 30px">
@@ -966,13 +925,14 @@
             <BehaviorList
               :source="'BoDetails'"
               :bo="this.behaviorParame"
+              :boAuthority="this.boAuthority"
               v-if="secondTabs == 'gj'"
             />
           </el-tab-pane>
         </el-tabs>
         <!-- 编辑按钮组 -->
         <el-row type="flex" class="row-bg" justify="end" v-show="this.form.basic.boStage>0">
-          <el-col :span="2" v-show="!isUpdate && this.form.basic.winningState == 0">
+          <el-col :span="2" v-show="!isUpdate && this.form.basic.winningState == 0" v-if="this.boAuthority.boAuthority.boEdit">
             <div class="grid-content bg-purple">
               <el-button
                 @click="modifyButton"
@@ -1001,192 +961,66 @@
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">基本信息</dev>
         </el-divider>
-        <el-form ref="form" :model="form.basic" label-width="100px">
-          <el-row :gutter="20">
-            <el-col :span="8">
-              <el-form-item label="商机来源" prop="boSource">
-                <el-select
-                  v-model="form.basic.boSource"
-                  placeholder="商机来源"
-                  readonly
-                >
-                  <el-option
-                    v-for="dict in dict.type.mk_bo_source"
-                    :key="dict.value"
-                    :label="dict.label"
-                    :value="dict.value"
-                  ></el-option>
-                </el-select>
-                <!-- <el-table-column label="名称" align="center" prop="boSource">
-                  <template slot-scope="scope">
-                    <dict-tag :options="dict.type.mk_bo_source" :value="scope.row.boSource"/>
-                  </template>
-                </el-table-column> -->
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="商机类型" prop="boType">
-                <el-select
-                  v-model="form.basic.boType"
-                  placeholder="商机类型"
-                  readonly
-                >
-                  <el-option
-                    v-for="dict in dict.type.mk_bo_type"
-                    :key="dict.value"
-                    :label="dict.label"
-                    :value="dict.value"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="客户名称" prop="customerName">
-                <el-input
-                  v-model="form.basic.customerName"
-                  placeholder="请输入客户名称"
-                  readonly
-                />
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="8">
-              <el-form-item prop="totalHosRevenue">
-                <template slot="label">
-                  <el-tooltip class="item" effect="dark" content="请输入医院营收总额" placement="top-start">
-                    <span>医院营收总额</span>
-                  </el-tooltip>
-                </template>
-                <el-select
-                  v-model="form.basic.totalHosRevenue"
-                  placeholder="请输入医院营收总额"
-                  readonly
-                >
-                  <el-option
-                    v-for="dict in dict.type.mk_bo_total_revenue"
-                    :key="dict.value"
-                    :label="dict.label"
-                    :value="dict.value"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <!-- label="医院耗材预估值" -->
-              <el-form-item  prop="hosDiscreetValue">
-                <template slot="label">
-                  <el-tooltip class="item" effect="dark" content="医院耗材预估值(万元)" placement="top-start">
-                    <span>医院耗材预估值(万元)</span>
-                  </el-tooltip>
-                </template>
-                <el-input
-                  v-model="form.basic.hosDiscreetValue"
-                  placeholder="请输入医院耗材预估值(万元)"
-                  readonly
-                  style="width:220px"
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="赢单率" prop="winningRate">
-                <el-input
-                  v-model="form.basic.winningRate"
-                  placeholder="赢单率"
-                  readonly
-                />
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-form-item label="商机内容" prop="boContent">
-              <el-input
-                type="textarea"
-                :rows="2"
-                placeholder="商机内容"
-                autosize
-                v-model="form.basic.boContent"
-                readonly>
-              </el-input>
-            </el-form-item>
-          </el-row>
-        </el-form>
+        <el-descriptions>
+          <el-descriptions-item label="商机来源">
+            <div v-for="dict in dict.type.mk_bo_source" v-if="form.basic.boSource == dict.value">
+              {{dict.label}}
+            </div>
+          </el-descriptions-item>
+          <el-descriptions-item label="商机类型">
+            <div v-for="dict in dict.type.mk_bo_type" v-if="form.basic.boType == dict.value">
+              {{dict.label}}
+            </div>
+          </el-descriptions-item>
+          <el-descriptions-item label="客户">
+            {{form.basic.customerName}}
+          </el-descriptions-item>
+          <el-descriptions-item label="医院营收总额">
+            <div v-for="dict in dict.type.mk_bo_total_revenue" v-if="form.basic.totalHosRevenue == dict.value">
+              {{dict.label}}
+            </div>
+          </el-descriptions-item>
+          <el-descriptions-item label="医院耗材预估值(万元)">
+            {{form.basic.hosDiscreetValue}}
+          </el-descriptions-item>
+          <el-descriptions-item label="赢单率">
+            {{form.basic.winningRate}}
+          </el-descriptions-item>
+          <el-descriptions-item label="商机内容">
+            {{form.basic.boContent}}
+          </el-descriptions-item>
+        </el-descriptions>
         <!-- 其它信息 -->
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">其它信息</dev>
         </el-divider>
-        <el-form ref="form" :model="form.basic" label-width="80px">
-          <el-row>
-            <el-col :span="8">
-              <el-form-item label="销售组织" prop="marketingOrganizingName">
-                <el-input
-                  size="small"
-                  readonly
-                  v-model="form.basic.marketingOrganizingName"
-                  placeholder=""
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="销售区域" prop="marketingAreaName">
-                <el-input
-                  size="small"
-                  readonly
-                  v-model="form.basic.marketingAreaName"
-                  placeholder=""
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="部门" prop="deptName">
-                <el-input
-                  size="small"
-                  readonly
-                  v-model="form.basic.deptName"
-                  placeholder=""
-                />
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col :span="8">
-              <el-form-item label="负责人" prop="principalName">
-                <el-input
-                  size="small"
-                  readonly
-                  v-model="form.basic.principalName"
-                  placeholder=""
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="创建人" prop="createBy">
-                <el-input
-                  size="small"
-                  readonly
-                  v-model="form.basic.createBy"
-                  placeholder=""
-                />
-              </el-form-item>
-            </el-col>
-            <el-col :span="8">
-              <el-form-item label="创建时间" prop="createTime">
-                <el-input
-                  size="small"
-                  readonly
-                  v-model="form.basic.createTime"
-                  placeholder=""
-                />
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </el-form>
+        <el-descriptions>
+          <el-descriptions-item label="销售组织">
+            {{form.basic.marketingOrganizingName}}
+          </el-descriptions-item>
+          <el-descriptions-item label="销售区域">
+            {{form.basic.marketingAreaName}}
+          </el-descriptions-item>
+          <el-descriptions-item label="部门">
+            {{form.basic.deptName}}
+          </el-descriptions-item>
+          <el-descriptions-item label="负责人">
+            {{form.basic.principalName}}
+          </el-descriptions-item>
+          <el-descriptions-item label="创建人">
+            {{form.basic.createBy}}
+          </el-descriptions-item>
+          <el-descriptions-item label="创建时间">
+            {{form.basic.createTime}}
+          </el-descriptions-item>
+        </el-descriptions>
       </el-tab-pane>
       <!-- 商机任务页签 -->
       <el-tab-pane label="商机任务" name="second">
         <TaskList
           :source="'BoDetails'"
           :bo="this.form.basic"
+          :boAuthority="this.boAuthority"
           v-if="masterTabs == 'second'"
         />
       </el-tab-pane>
@@ -1195,6 +1029,7 @@
         <ContactList
           :source="'BoDetails'"
           :bo="this.form.basic"
+          :boAuthority="this.boAuthority"
           v-if="masterTabs == 'third'"
         />
       </el-tab-pane>
@@ -1300,8 +1135,15 @@
         <el-form-item label="赢单金额(万元)" prop="winningStateMoney" v-if="this.winningStateData.winningState == '3'">
           <el-input type="number" v-model="winningStateData.winningStateMoney" style="width:220px" placeholder="赢单金额"/>
         </el-form-item>
-        <el-form-item label="赢单原因" prop="winningStateCause" v-if="this.winningStateData.winningState == '3'">
-          <el-input v-model="winningStateData.winningStateCause" style="width:220px" placeholder="请输入赢单原因"/>
+        <el-form-item label="赢单原因" prop="winningStateCause"  v-if="this.winningStateData.winningState == '3'">
+          <el-select v-model="winningStateData.winningStateCause" placeholder="请输入">
+            <el-option
+              v-for="dict in dict.type.mk_bo_wincause"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.label"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="赢单备注" prop="winningStateRemark" v-if="this.winningStateData.winningState == '3'">
           <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入赢单备注"/>
@@ -1320,8 +1162,15 @@
         <el-form-item label="丢单金额(万元)" prop="winningStateMoney" v-if="this.winningStateData.winningState == '2'">
           <el-input type="number" v-model="winningStateData.winningStateMoney" style="width:220px" placeholder="丢单金额"/>
         </el-form-item>
-        <el-form-item label="丢单原因" prop="winningStateCause" v-if="this.winningStateData.winningState == '2'">
-          <el-input v-model="winningStateData.winningStateCause" style="width:220px" placeholder="请输入丢单原因"/>
+        <el-form-item label="丢单原因" prop="winningStateCause"  v-if="this.winningStateData.winningState == '2'">
+          <el-select v-model="winningStateData.winningStateCause" placeholder="请输入">
+            <el-option
+              v-for="dict in dict.type.mk_bo_losecause"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.label"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="丢单备注" prop="winningStateRemark" v-if="this.winningStateData.winningState == '2'">
           <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入丢单备注"/>
@@ -1351,6 +1200,7 @@ import {
   updateWinningState,
 } from "@/api/business/spd/bo/basic";
 import { listAccessory } from "@/api/business/spd/bo/accessory";
+import { getPsnPost } from "@/api/business/spd/bo/authority";
 import { getToken } from "@/utils/auth";
 import TaskList from "../task/taskList.vue";
 import ContactList from "../contact/contactList.vue";
@@ -1370,6 +1220,8 @@ export default {
     "mk_bo_winstate",
     "mk_bo_source",
     "mk_bo_total_revenue",
+    "mk_bo_wincause",
+    "mk_bo_losecause",
   ],
   //数据
   data() {
@@ -1396,7 +1248,6 @@ export default {
           { required: true, message: "金额不能为空", trigger: "blur" }
         ],
       },
-
       masterTabs: "first",
       secondTabs: "jd1",
       loading: false,
@@ -1465,6 +1316,7 @@ export default {
                     type: '投标参数模板',
                     name: '说明: 请联系事业发展商务',
                   },],
+      boAuthority:{},
     };
   },
   //监听属性
@@ -1546,7 +1398,11 @@ export default {
           break;
         case "fourth":
           //获取附件列表
-          listAccessory(this.form.basic.id).then((response) => {
+          let params = {
+            "boId":this.form.basic.id,
+            "params":{"post":this.boAuthority.post}
+          };
+          listAccessory(params).then((response) => {
             this.form.accessory = response.rows;
           });
           break;
@@ -1696,7 +1552,11 @@ export default {
         { dangerouslyUseHTMLString: true }
       );
       if (this.upload.flag == "list") {
-        listAccessory(this.form.basic.id).then((response) => {
+        let params = {
+          "boId":this.form.basic.id,
+          "params":{"post":this.boAuthority.post}
+        };
+        listAccessory(params).then((response) => {
           this.form.accessory = response.rows;
         });
       } else {
@@ -1744,7 +1604,11 @@ export default {
           delAccessory(this.form.basic.id, f, row.id).then((res) => {
             if (res.code == 200) {
               if (this.upload.flag == "list") {
-                listAccessory(this.form.basic.id).then((response) => {
+                let params = {
+                  "boId":this.form.basic.id,
+                  "params":{"post":this.boAuthority.post}
+                };
+                listAccessory(params).then((response) => {
                   this.form.accessory = response.rows;
                 });
               } else {
@@ -1790,6 +1654,7 @@ export default {
       this.winningStateData.winningState = winningState;
       console.log('this.form.basic.boId',this.form.basic.boId);
       this.winningStateData.boId = this.form.basic.id;
+      this.winningStateData.winningStateDate = new Date();
     },
     resetWinningStateData(){
       this.winningStateData = {
@@ -1823,6 +1688,10 @@ export default {
   created() {
     getBasic(this.$route.params.id).then((response) => {
       this.form.basic = response.data;
+      getPsnPost(this.form.basic.id).then((response) => {
+        this.boAuthority = response.data;
+        console.log('this.boAuthority',this.boAuthority);
+      });
     });
   },
 };

+ 231 - 0
src/views/business/spd/bo/behavior/AA copy.vue

@@ -0,0 +1,231 @@
+<template>
+  <div class="component-upload-image">
+    <el-upload
+      multiple
+      :action="uploadImgUrl"
+      :auto-upload="false"
+      list-type="picture-card"
+      :on-success="handleUploadSuccess"
+      :before-upload="handleBeforeUpload"
+      :limit="limit"
+      :on-error="handleUploadError"
+      :on-exceed="handleExceed"
+      ref="imageUpload"
+      :on-remove="handleDelete"
+      :show-file-list="true"
+      :headers="headers"
+      :file-list="fileList"
+      :on-preview="handlePictureCardPreview"
+      :class="{hide: this.fileList.length >= this.limit}"
+    >
+      <i class="el-icon-plus"></i>
+    </el-upload>
+    
+    <!-- 上传提示 -->
+    <div class="el-upload__tip" slot="tip" v-if="showTip">
+      请上传
+      <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
+      <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
+      的文件
+    </div>
+
+    <el-dialog
+      :visible.sync="dialogVisible"
+      title="预览"
+      width="800"
+      append-to-body
+    >
+      <img
+        :src="dialogImageUrl"
+        style="display: block; max-width: 100%; margin: 0 auto"
+      />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getToken } from "@/utils/auth";
+
+export default {
+  props: {
+    value: [String, Object, Array],
+    // 图片数量限制
+    limit: {
+      type: Number,
+      default: 5,
+    },
+    // 大小限制(MB)
+    fileSize: {
+       type: Number,
+      default: 5,
+    },
+    // 文件类型, 例如['png', 'jpg', 'jpeg']
+    fileType: {
+      type: Array,
+      default: () => ["png", "jpg", "jpeg"],
+    },
+    // 是否显示提示
+    isShowTip: {
+      type: Boolean,
+      default: true
+    }
+  },
+  model: {
+    prop: 'fileList',
+    event: 'editFileList'
+  },
+  data() {
+    return {
+      number: 0,
+      uploadList: [],
+      dialogImageUrl: "",
+      dialogVisible: false,
+      hideUpload: false,
+      baseUrl: process.env.VUE_APP_BASE_API,
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
+      headers: {
+        Authorization: "Bearer " + getToken(),
+      },
+      // fileList: []
+    };
+  },
+  watch: {
+    value: {
+      handler(val) {
+        if (val) {
+          // 首先将值转为数组
+          const list = Array.isArray(val) ? val : this.value.split(',');
+          // 然后将数组转为对象数组
+          this.fileList = list.map(item => {
+            if (typeof item === "string") {
+              if (item.indexOf(this.baseUrl) === -1) {
+                  item = { name: this.baseUrl + item, url: this.baseUrl + item };
+              } else {
+                  item = { name: item, url: item };
+              }
+            }
+            return item;
+          });
+        } else {
+          this.fileList = [];
+          return [];
+        }
+      },
+      deep: true,
+      immediate: true
+    }
+  },
+  computed: {
+    // 是否显示提示
+    showTip() {
+      return this.isShowTip && (this.fileType || this.fileSize);
+    },
+  },
+  methods: {
+    // 上传前loading加载
+    handleBeforeUpload(file) {
+      let isImg = false;
+      if (this.fileType.length) {
+        let fileExtension = "";
+        if (file.name.lastIndexOf(".") > -1) {
+          fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
+        }
+        isImg = this.fileType.some(type => {
+          if (file.type.indexOf(type) > -1) return true;
+          if (fileExtension && fileExtension.indexOf(type) > -1) return true;
+          return false;
+        });
+      } else {
+        isImg = file.type.indexOf("image") > -1;
+      }
+
+      if (!isImg) {
+        this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}图片格式文件!`);
+        return false;
+      }
+      if (this.fileSize) {
+        const isLt = file.size / 1024 / 1024 < this.fileSize;
+        if (!isLt) {
+          this.$modal.msgError(`上传头像图片大小不能超过 ${this.fileSize} MB!`);
+          return false;
+        }
+      }
+      this.$modal.loading("正在上传图片,请稍候...");
+      this.number++;
+    },
+    // 文件个数超出
+    handleExceed() {
+      this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
+    },
+    // 上传成功回调
+    handleUploadSuccess(res, file) {
+      if (res.code === 200) {
+        this.uploadList.push({ name: res.fileName, url: res.fileName });
+        this.uploadedSuccessfully();
+      } else {
+        this.number--;
+        this.$modal.closeLoading();
+        this.$modal.msgError(res.msg);
+        this.$refs.imageUpload.handleRemove(file);
+        this.uploadedSuccessfully();
+      }
+    },
+    // 删除图片
+    handleDelete(file) {
+      const findex = this.fileList.map(f => f.name).indexOf(file.name);
+      if(findex > -1) {
+        this.fileList.splice(findex, 1);
+        this.$emit("input", this.listToString(this.fileList));
+      }
+    },
+    // 上传失败
+    handleUploadError() {
+      this.$modal.msgError("上传图片失败,请重试");
+      this.$modal.closeLoading();
+    },
+    // 上传结束处理
+    uploadedSuccessfully() {
+      if (this.number > 0 && this.uploadList.length === this.number) {
+        this.fileList = this.fileList.concat(this.uploadList);
+        this.uploadList = [];
+        this.number = 0;
+        this.$emit("input", this.listToString(this.fileList));
+        this.$modal.closeLoading();
+      }
+    },
+    // 预览
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = true;
+    },
+    // 对象转成指定字符串分隔
+    listToString(list, separator) {
+      let strs = "";
+      separator = separator || ",";
+      for (let i in list) {
+        if (list[i].url) {
+          strs += list[i].url.replace(this.baseUrl, "") + separator;
+        }
+      }
+      return strs != '' ? strs.substr(0, strs.length - 1) : '';
+    }
+  }
+};
+</script>
+<style scoped lang="scss">
+// .el-upload--picture-card 控制加号部分
+::v-deep.hide .el-upload--picture-card {
+    display: none;
+}
+// 去掉动画效果
+::v-deep .el-list-enter-active,
+::v-deep .el-list-leave-active {
+    transition: all 0s;
+}
+
+::v-deep .el-list-enter, .el-list-leave-active {
+    opacity: 0;
+    transform: translateY(0);
+}
+</style>
+

+ 4 - 1
src/views/business/spd/bo/behavior/AA.vue

@@ -3,7 +3,6 @@
     <el-upload
       multiple
       :action="uploadImgUrl"
-      :auto-upload="false"
       list-type="picture-card"
       :on-success="handleUploadSuccess"
       :before-upload="handleBeforeUpload"
@@ -47,6 +46,10 @@
 import { getToken } from "@/utils/auth";
 
 export default {
+  model: {
+    prop: 'fileList',
+    event: 'editFileList'
+  },
   props: {
     value: [String, Object, Array],
     // 图片数量限制

+ 106 - 10
src/views/business/spd/bo/behavior/behaviorList.vue

@@ -8,9 +8,10 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
+          v-if="this.boAuthority.boAuthority.behaviorAdd"
         >新增</el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="success"
           plain
@@ -29,7 +30,7 @@
           :disabled="multiple"
           @click="handleDelete"
         >删除</el-button>
-      </el-col>
+      </el-col> -->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -81,18 +82,21 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
+            :disabled="!boAuthority.boAuthority.behaviorEdit"
           >修改</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-view"
             @click="handleBrowse(scope.row)"
+            :disabled="!boAuthority.boAuthority.behaviorView"
           >查看</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
+            :disabled="!boAuthority.boAuthority.behaviorDel"
           >删除</el-button>
         </template>
       </el-table-column>
@@ -231,6 +235,7 @@
           <el-input
             type="textarea"
             :rows="2"
+            maxlength=900
             placeholder="填写提示:今天拜访了谁,收集了什么述求,达成了什么结果,下一步计划。"
             autosize
             v-model="form.content">
@@ -239,7 +244,54 @@
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">照片信息</dev>
         </el-divider>
-        <AA :limit="2" v-model="fileList"></AA>
+        <!-- <AA :limit="2" v-model="fileList"></AA> -->
+  
+        <el-upload
+          :action="actionUrl"
+          list-type="picture-card"
+          :on-change="uploadPic"
+          :file-list="fileList"
+          :auto-upload="false">
+            <i slot="default" class="el-icon-plus"></i>
+            <div slot="file" slot-scope="{file}">
+              <img
+                class="el-upload-list__item-thumbnail"
+                :src="file.url" alt=""
+              >
+              <span class="el-upload-list__item-actions">
+                <span
+                  class="el-upload-list__item-preview"
+                  @click="handlePictureCardPreview(file)"
+                >
+                  <i class="el-icon-zoom-in"></i>
+                </span>
+                <span
+                  v-if="!disabled"
+                  class="el-upload-list__item-delete"
+                  @click="handleDownload(file)"
+                >
+                  <i class="el-icon-download"></i>
+                </span>
+                <span
+                  v-if="!disabled"
+                  class="el-upload-list__item-delete"
+                  @click="handleRemove(file)"
+                >
+                  <i class="el-icon-delete"></i>
+                </span>
+              </span>
+            </div>
+        </el-upload>
+        <el-dialog :visible.sync="dialogVisible">
+          <img width="100%" :src="dialogImageUrl" alt="">
+        </el-dialog>
+        <div class="demo-image__preview">
+          <el-image 
+            style="width: 100px; height: 100px"
+            :src="url" 
+            :preview-src-list="srcList">
+          </el-image>
+        </div>
         <div class="md-auditInfo">
           <el-divider content-position="left">
             <dev style="width: 50px; height: 40px; font-size: 18px">其它信息</dev>
@@ -248,7 +300,7 @@
             <el-row>
               <el-col :span="6">
                 <el-form-item label="创建人">
-                  <el-input v-model="form.createBy" size="small" readonly></el-input>
+                  <el-input v-model="form.createByName" size="small" readonly></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -258,7 +310,7 @@
               </el-col>
               <el-col :span="6">
                 <el-form-item label="修改人">
-                  <el-input v-model="form.updateBy" size="small" readonly></el-input>
+                  <el-input v-model="form.updateByName" size="small" readonly></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -292,18 +344,29 @@
 </template>
 
 <script>
-import { listBehavior, getBehavior, delBehavior, addBehavior, updateBehavior } from "@/api/business/spd/bo/behavior";
+import { listBehavior, getBehavior, delBehavior, addBehavior, updateBehavior,addPicture } from "@/api/business/spd/bo/behavior";
 import ContactRef from '@/views/business/spd/bo/refer/contact/index.vue';
 import SaleaeaRef from '@/views/business/spd/bo/refer/saleaea/index.vue';
 import AA from '@/views/business/spd/bo/behavior/AA.vue';
 
 export default {
   name: "BehaviorList",
-  props:["source","bo"],
+  props:["source","bo","boAuthority"],
   dicts: ['mk_bo_behavior_res','mk_bo_behavior_type','sys_yes_no','mk_bo_behavior_goal'],
   components: {ContactRef,SaleaeaRef,AA},
   data() {
     return {
+url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
+        srcList: [
+          'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
+          'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg',
+          'https://test-sy.derom.com/document-center/fastdfs/upload/433',
+        ],
+
+      dialogImageUrl: '',
+      dialogVisible: false,
+      disabled: false,
+      actionUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址,
       fileList: [],
       // 遮罩层
       loading: true,
@@ -379,6 +442,8 @@ export default {
     if(this.source == 'BoDetails'){
       this.queryParams.bo = this.bo.id;
       this.queryParams.boStage = this.bo.boStage;
+      let params = {"post":this.boAuthority.post};
+      this.queryParams.params = params;
     }
     if(this.source == 'TaskList'){
       this.queryParams.taskCode = this.bo.code;
@@ -386,6 +451,26 @@ export default {
     this.getList();
   },
   methods: {
+    uploadPic(file, fileList) {
+      console.log('文件',file)
+      console.log('文件列表',fileList)
+      this.fileList = fileList
+    },
+    handleRemove(file) {
+      console.log('单击图片移除',file);
+      console.log('此时文件列表里面', this.fileList)
+      this.fileList = this.fileList.filter(item => item.uid !== file.uid)
+      console.log('过滤后的', this.fileList)
+    },
+    handlePictureCardPreview(file) {
+      console.log(file)
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = true;
+      console.log('图片列表',this.dialogImageUrl)
+    },
+    handleDownload(file) {
+      console.log(file);
+    },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {
@@ -488,6 +573,7 @@ export default {
       this.form.deptName = this.$store.state.user.deptName;
       this.form.salesOrg = this.$store.state.user.orgId;
       this.form.salesOrgName = this.$store.state.user.orgName;
+      this.form.time = new Date();
       this.open = true;
       this.title = "添加行动";
     },
@@ -498,10 +584,11 @@ export default {
       const id = row.id || this.ids
       getBehavior(id).then(response => {
         this.form = response.data;
+        this.fileList = this.form.behaviorPs;
+        console.log('this.fileList',this.fileList);
         this.open = true;
         this.title = "修改行动";
       });
-      this.getPictureList(); 
     },
     /** 查看按钮操作 */
     handleBrowse(row) {
@@ -518,14 +605,23 @@ export default {
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          let formData = new FormData();
+          formData.append("behavior", new Blob([JSON.stringify(this.form)], {type: "application/json"}));
+          if(this.fileList.length < 1){
+            formData.append('files', null);
+          }else{
+            this.fileList.forEach(el => {
+              formData.append('files', el.raw);
+            })
+          }
           if (this.form.id != null) {
-            updateBehavior(this.form).then(response => {
+            updateBehavior(formData).then(response => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addBehavior(this.form).then(response => {
+            addBehavior(formData).then(response => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();

+ 11 - 6
src/views/business/spd/bo/contact/contactList.vue

@@ -8,9 +8,10 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
+          v-if="this.boAuthority.boAuthority.contactAdd"
         >新增</el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="success"
           plain
@@ -29,7 +30,7 @@
           :disabled="multiple"
           @click="handleDelete"
         >删除</el-button>
-      </el-col>
+      </el-col> -->
       <!-- <el-col :span="1.5">
         <el-button
           type="warning"
@@ -109,18 +110,21 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
+            :disabled="!boAuthority.boAuthority.contactEdit"
           >修改</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-view"
             @click="handleBrowse(scope.row)"
+            :disabled="!boAuthority.boAuthority.contactView"
           >查看</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
+            :disabled="!boAuthority.boAuthority.contactDel"
           >删除</el-button>
         </template>
       </el-table-column>
@@ -374,13 +378,13 @@
           </el-divider>
           <el-form :inline="true" label-position="right" :model="form">
             <el-form-item label="创建人">
-              <el-input v-model="form.createBy" size="small" readonly></el-input>
+              <el-input v-model="form.createByName" size="small" readonly></el-input>
             </el-form-item>
             <el-form-item label="创建时间">
               <el-input v-model="form.createTime" size="small" readonly></el-input>
             </el-form-item>
             <el-form-item label="修改人">
-              <el-input v-model="form.updateBy" size="small" readonly></el-input>
+              <el-input v-model="form.updateByName" size="small" readonly></el-input>
             </el-form-item>
             <el-form-item label="修改时间">
               <el-input v-model="form.updateTime" size="small" readonly></el-input>
@@ -418,7 +422,7 @@ import ContactRef from '@/views/business/spd/bo/refer/contact/index.vue';
 
 export default {
   name: "contactList",
-  props:["source","bo"],
+  props:["source","bo","boAuthority"],
   dicts: ['sys_user_sex','mk_bo_contact_state','mk_bo_section','mk_bo_position','mk_bo_job_title','mk_bo_power','mk_bo_support','mk_bo_field_expertise','sys_yes_no','mk_bo_contact_type'],
   components: {CustomerRef,ContactRef,EducationList,RelationshipList},
   data() {
@@ -448,6 +452,7 @@ export default {
         boId: null,
         name: null,
         code: null,
+        customer: null,
       },
       // 表单参数
       form: {},
@@ -504,7 +509,7 @@ export default {
   },
   created() {
     if(this.source == 'BoDetails'){
-      this.queryParams.boId = this.bo.id;
+      this.queryParams.customer = this.bo.customer;
     }
     if(this.source == 'Contact'){
       this.queryParams = this.bo;

+ 278 - 110
src/views/business/spd/bo/task/taskList.vue

@@ -1,6 +1,16 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="10" class="mb8" v-if="this.source == 'BoDetails' ? this.bo.winningState == 0 ? true : false : true">
+    <el-row
+      :gutter="10"
+      class="mb8"
+      v-if="
+        this.source == 'BoDetails'
+          ? this.bo.winningState == 0
+            ? true
+            : false
+          : true
+      "
+    >
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -8,9 +18,11 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-        >新增</el-button>
+          v-if="this.boAuthority.boAuthority.taskAdd"
+          >新增</el-button
+        >
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="success"
           plain
@@ -18,7 +30,8 @@
           size="mini"
           :disabled="single"
           @click="handleUpdate"
-        >修改</el-button>
+          >修改</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -28,69 +41,123 @@
           size="mini"
           :disabled="multiple"
           @click="handleDelete"
-        >删除</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+          >删除</el-button
+        >
+      </el-col> -->
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="taskList" @selection-change="handleSelectionChange" >
+    <el-table
+      v-loading="loading"
+      :data="taskList"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
       <!-- <el-table-column label="商机id" align="center" prop="bo" v-if="source == 'Task'"/> -->
-      <el-table-column label="商机名称" align="center" prop="boName" v-if="source == 'Task'"/>
+      <el-table-column
+        label="商机名称"
+        align="center"
+        prop="boName"
+        v-if="source == 'Task'"
+      />
       <el-table-column label="商机阶段" align="center" prop="boStage">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.mk_bo_stage" :value="scope.row.boStage"/>
+          <dict-tag
+            :options="dict.type.mk_bo_stage"
+            :value="scope.row.boStage"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="客户名称" align="center" prop="customerName" v-if="source == 'Task'"/>
+      <el-table-column
+        label="客户名称"
+        align="center"
+        prop="customerName"
+        v-if="source == 'Task'"
+      />
       <el-table-column label="任务编码" align="center" prop="code" />
       <el-table-column label="任务名称" align="center" prop="name" />
-      <el-table-column label="任务类型" align="center" prop="type" >
+      <el-table-column label="任务类型" align="center" prop="type">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.mk_bo_tasktype" :value="scope.row.type"/>
+          <dict-tag
+            :options="dict.type.mk_bo_tasktype"
+            :value="scope.row.type"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="任务状态" align="center" prop="state" >
+      <el-table-column label="任务状态" align="center" prop="state">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.mk_bo_taskstate" :value="scope.row.state"/>
+          <dict-tag
+            :options="dict.type.mk_bo_taskstate"
+            :value="scope.row.state"
+          />
         </template>
       </el-table-column>
       <el-table-column label="联系人" align="center" prop="linkmanName" />
-      <el-table-column label="销售组织名称" align="center" prop="salesOrgName" />
+      <el-table-column
+        label="销售组织名称"
+        align="center"
+        prop="salesOrgName"
+      />
       <el-table-column label="部门名称" align="center" prop="deptName" />
       <el-table-column label="负责人名称" align="center" prop="staffName" />
-      <el-table-column label="截止时间" align="center" prop="deadlineTime" width="180">
+      <el-table-column
+        label="截止时间"
+        align="center"
+        prop="deadlineTime"
+        width="180"
+      >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.deadlineTime, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.deadlineTime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
       <el-table-column label="任务内容" align="center" prop="content" />
-      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" v-if="this.source == 'BoDetails' ? this.bo.winningState == 0 ? true : false : true">
+      <el-table-column
+        label="操作"
+        fixed="right"
+        align="center"
+        class-name="small-padding fixed-width"
+        v-if="
+          this.source == 'BoDetails'
+            ? this.bo.winningState == 0
+              ? true
+              : false
+            : true
+        "
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-          >修改</el-button>
+            :disabled="!boAuthority.boAuthority.taskEdit"
+            >修改</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-view"
             @click="handleBrowse(scope.row)"
-          >查看</el-button>
+            :disabled="!boAuthority.boAuthority.taskView"
+            >查看</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-          >删除</el-button>
+            :disabled="!boAuthority.boAuthority.taskDel"
+            >删除</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
@@ -98,16 +165,35 @@
     />
 
     <!-- 添加或修改任务对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :disabled="this.operatingState == 'Browse'">
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="1000px"
+      append-to-body
+    >
+      <el-form
+        ref="form"
+        :model="form"
+        :rules="rules"
+        label-width="80px"
+        :disabled="this.operatingState == 'Browse'"
+      >
         <el-row>
           <el-col :span="8">
             <el-form-item label="商机名称" prop="boName">
-              <el-input v-model="form.boName" placeholder="请输入商机名称"  :disabled="this.source == 'BoDetails'"/>
+              <el-input
+                v-model="form.boName"
+                placeholder="请输入商机名称"
+                :disabled="this.source == 'BoDetails'"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="商机阶段" prop="boStage" v-if="source == 'Task'">
+            <el-form-item
+              label="商机阶段"
+              prop="boStage"
+              v-if="source == 'Task'"
+            >
               <el-select v-model="form.boStage" placeholder="请输入商机阶段">
                 <el-option
                   v-for="dict in dict.type.mk_bo_stage"
@@ -120,8 +206,17 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="客户" prop="customerName">
-              <el-input v-model="form.customerName" placeholder="请输入客户" :disabled="this.source == 'BoDetails'">
-                <el-button slot="append" icon="el-icon-more" @click="refereCustomer" :disabled="this.source == 'BoDetails'"></el-button>
+              <el-input
+                v-model="form.customerName"
+                placeholder="请输入客户"
+                :disabled="this.source == 'BoDetails'"
+              >
+                <el-button
+                  slot="append"
+                  icon="el-icon-more"
+                  @click="refereCustomer"
+                  :disabled="this.source == 'BoDetails'"
+                ></el-button>
               </el-input>
             </el-form-item>
           </el-col>
@@ -130,7 +225,11 @@
         <el-row>
           <el-col :span="8">
             <el-form-item label="任务编码" prop="code">
-              <el-input v-model="form.code" placeholder="系统自动生成编码" :disabled="true"/>
+              <el-input
+                v-model="form.code"
+                placeholder="系统自动生成编码"
+                :disabled="true"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -154,21 +253,25 @@
         <el-row>
           <el-col :span="8">
             <el-form-item label="开始时间" prop="startTime">
-              <el-date-picker clearable
+              <el-date-picker
+                clearable
                 v-model="form.startTime"
                 type="date"
                 value-format="yyyy-MM-dd"
-                placeholder="请选开始时间">
+                placeholder="请选开始时间"
+              >
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="截止时间" prop="deadlineTime">
-              <el-date-picker clearable
+              <el-date-picker
+                clearable
                 v-model="form.deadlineTime"
                 type="date"
                 value-format="yyyy-MM-dd"
-                placeholder="请选择截止时间">
+                placeholder="请选择截止时间"
+              >
               </el-date-picker>
             </el-form-item>
           </el-col>
@@ -188,8 +291,12 @@
         <el-row>
           <el-col :span="8">
             <el-form-item label="联系人" prop="linkmanName">
-              <el-input v-model="form.linkmanName" >
-                <el-button slot="append" icon="el-icon-more" @click="refereContact"></el-button>
+              <el-input v-model="form.linkmanName">
+                <el-button
+                  slot="append"
+                  icon="el-icon-more"
+                  @click="refereContact"
+                ></el-button>
               </el-input>
             </el-form-item>
           </el-col>
@@ -198,21 +305,35 @@
           <el-col :span="8">
             <el-form-item label="销售组织" prop="salesOrgName">
               <el-input v-model="form.salesOrgName" :disabled="true">
-                <el-button slot="append" icon="el-icon-more" @click="refereOrg" :disabled="true"></el-button>
+                <el-button
+                  slot="append"
+                  icon="el-icon-more"
+                  @click="refereOrg"
+                  :disabled="true"
+                ></el-button>
               </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="部门" prop="deptName">
               <el-input v-model="form.deptName" :disabled="true">
-                <el-button slot="append" icon="el-icon-more" @click="refereDept" :disabled="true"></el-button>
+                <el-button
+                  slot="append"
+                  icon="el-icon-more"
+                  @click="refereDept"
+                  :disabled="true"
+                ></el-button>
               </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="负责人" prop="staffName">
               <el-input v-model="form.staffName">
-                <el-button slot="append" icon="el-icon-more" @click="refereStaff"></el-button>
+                <el-button
+                  slot="append"
+                  icon="el-icon-more"
+                  @click="refereStaff"
+                ></el-button>
               </el-input>
             </el-form-item>
           </el-col>
@@ -223,32 +344,54 @@
             :rows="2"
             placeholder="请输入任务内容"
             autosize
-            v-model="form.content">
+            v-model="form.content"
+          >
           </el-input>
         </el-form-item>
-        <BehaviorList  :key="timer" :source="'TaskList'" :bo="this.form" v-if="this.operatingState != 'Insert'"/>
+        <BehaviorList
+          :key="timer"
+          :source="'TaskList'"
+          :bo="this.form"
+          v-if="this.operatingState != 'Insert'"
+        />
         <div class="md-auditInfo">
           <el-divider content-position="left">其它信息</el-divider>
           <el-form :inline="true" label-position="right" :model="form">
             <el-row>
               <el-col :span="6">
                 <el-form-item label="创建人">
-                  <el-input v-model="form.createBy" size="small" readonly></el-input>
+                  <el-input
+                    v-model="form.createByName"
+                    size="small"
+                    readonly
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
                 <el-form-item label="创建时间">
-                  <el-input v-model="form.createTime" size="small" readonly></el-input>
+                  <el-input
+                    v-model="form.createTime"
+                    size="small"
+                    readonly
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
                 <el-form-item label="修改人">
-                  <el-input v-model="form.updateBy" size="small" readonly></el-input>
+                  <el-input
+                    v-model="form.updateByName"
+                    size="small"
+                    readonly
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
                 <el-form-item label="修改时间">
-                  <el-input v-model="form.updateTime" size="small" readonly></el-input>
+                  <el-input
+                    v-model="form.updateTime"
+                    size="small"
+                    readonly
+                  ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -256,7 +399,12 @@
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm" v-if="this.operatingState != 'Browse'">确 定</el-button>
+        <el-button
+          type="primary"
+          @click="submitForm"
+          v-if="this.operatingState != 'Browse'"
+          >确 定</el-button
+        >
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -274,11 +422,7 @@
       :outerQueryParams="this.bo"
     />
     <!-- 组织参照 -->
-    <OrgRef
-      ref="orgSelect"
-      @doSubmit="orgSelectionsToInput"
-      :single="true"
-    />
+    <OrgRef ref="orgSelect" @doSubmit="orgSelectionsToInput" :single="true" />
     <!-- 部门参照 -->
     <DeptRef
       ref="deptSelect"
@@ -295,21 +439,33 @@
 </template>
 
 <script>
-import { listTask, getTask, delTask, addTask, updateTask } from "@/api/business/spd/bo/task";
+import {
+  listTask,
+  getTask,
+  delTask,
+  addTask,
+  updateTask,
+} from "@/api/business/spd/bo/task";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-import CustomerRef from '@/views/business/spd/bo/refer/customer/index.vue';
-import ContactRef from '@/views/business/spd/bo/refer/contact/index.vue';
-import OrgRef from '@/views/business/spd/bo/refer/org/index.vue';
-import DeptRef from '@/views/business/spd/bo/refer/dept/index.vue';
-import StaffRef from '@/views/business/spd/bo/refer/staff/index.vue';
-import BehaviorList from '../behavior/behaviorList.vue'
-
+import CustomerRef from "@/views/business/spd/bo/refer/customer/index.vue";
+import ContactRef from "@/views/business/spd/bo/refer/contact/index.vue";
+import OrgRef from "@/views/business/spd/bo/refer/org/index.vue";
+import DeptRef from "@/views/business/spd/bo/refer/dept/index.vue";
+import StaffRef from "@/views/business/spd/bo/refer/staff/index.vue";
+import BehaviorList from "../behavior/behaviorList.vue";
 
 export default {
   name: "TaskList",
-  props:["source","bo"],
-  dicts: ['mk_bo_taskstate','mk_bo_tasktype','mk_bo_stage'],
-  components: {CustomerRef,ContactRef,OrgRef,DeptRef,StaffRef,BehaviorList},
+  props: ["source", "bo", "boAuthority"],
+  dicts: ["mk_bo_taskstate", "mk_bo_tasktype", "mk_bo_stage"],
+  components: {
+    CustomerRef,
+    ContactRef,
+    OrgRef,
+    DeptRef,
+    StaffRef,
+    BehaviorList,
+  },
   data() {
     return {
       // 遮罩层
@@ -361,53 +517,56 @@ export default {
       // 表单校验
       rules: {
         customerName: [
-          { required: true, message: "客户不能为空", trigger: "blur" }
+          { required: true, message: "客户不能为空", trigger: "blur" },
         ],
         name: [
-          { required: true, message: "任务名称不能为空", trigger: "blur" }
+          { required: true, message: "任务名称不能为空", trigger: "blur" },
         ],
         state: [
-          { required: true, message: "任务状态不能为空", trigger: "blur" }
+          { required: true, message: "任务状态不能为空", trigger: "blur" },
         ],
         type: [
-          { required: true, message: "任务类型不能为空", trigger: "blur" }
+          { required: true, message: "任务类型不能为空", trigger: "blur" },
         ],
         linkmanName: [
-          { required: true, message: "联系人不能为空", trigger: "blur" }
+          { required: true, message: "联系人不能为空", trigger: "blur" },
         ],
         staffName: [
-          { required: true, message: "负责人不能为空", trigger: "blur" }
+          { required: true, message: "负责人不能为空", trigger: "blur" },
         ],
         startTime: [
-          { required: true, message: "开始时间不能为空", trigger: "blur" }
+          { required: true, message: "开始时间不能为空", trigger: "blur" },
         ],
         deadlineTime: [
-          { required: true, message: "截止时间不能为空", trigger: "blur" }
+          { required: true, message: "截止时间不能为空", trigger: "blur" },
         ],
         content: [
-          { required: true, message: "任务内容不能为空", trigger: "blur" }
+          { required: true, message: "任务内容不能为空", trigger: "blur" },
         ],
       },
       //重新加载子组件参数
-      timer: '',
+      timer: "",
       //当前操作状态
-      operatingState: '',
+      operatingState: "",
     };
   },
   created() {
-    if(this.source == 'BoDetails'){
+    if (this.source == "BoDetails") {
       this.queryParams.bo = this.bo.id;
+      let params = {"post":this.boAuthority.post};
+      this.queryParams.params = params;
     }
-    if(this.source == 'Task'){
+    if (this.source == "Task") {
       this.queryParams = this.bo;
     }
     this.getList();
+    console.log('this.boAuthority',this.boAuthority);
   },
   methods: {
     /** 查询任务列表 */
     getList() {
       this.loading = true;
-      listTask(this.queryParams).then(response => {
+      listTask(this.queryParams).then((response) => {
         this.taskList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -447,7 +606,7 @@ export default {
         createTime: null,
         updateBy: null,
         updateTime: null,
-        delFlag: null
+        delFlag: null,
       };
       this.resetForm("form");
     },
@@ -463,22 +622,23 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
+      this.ids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
     handleAdd() {
       this.operatingState = "Insert";
       this.reset();
-      if(this.source == 'BoDetails'){
+      if (this.source == "BoDetails") {
         this.form.bo = this.bo.id;
         this.form.boName = this.bo.boName;
         this.form.boStage = this.bo.boStage;
         this.form.customer = this.bo.customer;
         this.form.customerName = this.bo.customerName;
+        this.form.startTime = new Date();
       }
-      this.form.state = '0';
+      this.form.state = "0";
       this.open = true;
       this.title = "添加任务";
     },
@@ -486,8 +646,8 @@ export default {
     handleUpdate(row) {
       this.operatingState = "Update";
       this.reset();
-      const id = row.id || this.ids
-      getTask(id).then(response => {
+      const id = row.id || this.ids;
+      getTask(id).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "修改任务";
@@ -497,8 +657,8 @@ export default {
     /** 查看按钮操作 */
     handleBrowse(row) {
       this.reset();
-      const id = row.id || this.ids
-      getTask(id).then(response => {
+      const id = row.id || this.ids;
+      getTask(id).then((response) => {
         this.form = response.data;
         this.open = true;
         this.operatingState = "Browse";
@@ -507,16 +667,16 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.id != null) {
-            updateTask(this.form).then(response => {
+            updateTask(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addTask(this.form).then(response => {
+            addTask(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -528,68 +688,76 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除任务编号为"' + ids + '"的数据项?').then(function() {
-        return delTask(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      this.$modal
+        .confirm('是否确认删除任务编号为"' + ids + '"的数据项?')
+        .then(function () {
+          return delTask(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('drp-business/task/export', {
-        ...this.queryParams
-      }, `task_${new Date().getTime()}.xlsx`)
+      this.download(
+        "drp-business/task/export",
+        {
+          ...this.queryParams,
+        },
+        `task_${new Date().getTime()}.xlsx`
+      );
     },
     // 触发客户参照列表
     refereCustomer() {
-      this.$refs.customerSelect.init()
+      this.$refs.customerSelect.init();
     },
     //客户参照列表选择后
-    customerSelectionsToInput (selections) {
+    customerSelectionsToInput(selections) {
       this.form.customer = selections[0].id;
       this.form.customerName = selections[0].name;
     },
     // 触发联系人参照列表
     refereContact() {
-      this.$refs.contactSelect.init()
+      this.$refs.contactSelect.init();
     },
     //联系人参照列表选择后
-    contactSelectionsToInput (selections) {
+    contactSelectionsToInput(selections) {
       this.form.linkman = selections[0].id;
       this.form.linkmanName = selections[0].name;
     },
     // 触发组织参照列表
     refereOrg() {
-      this.$refs.orgSelect.init()
+      this.$refs.orgSelect.init();
     },
     //组织参照列表选择后
-    orgSelectionsToInput (selections) {
+    orgSelectionsToInput(selections) {
       this.form.salesOrg = selections[0].deptId;
       this.form.salesOrgName = selections[0].deptName;
     },
     // 触发部门参照列表
     refereDept() {
-      this.$refs.deptSelect.init()
+      this.$refs.deptSelect.init();
     },
     //部门参照列表选择后
-    deptSelectionsToInput (selections) {
+    deptSelectionsToInput(selections) {
       this.form.dept = selections[0].deptId;
       this.form.deptName = selections[0].deptName;
     },
     // 触发员工参照列表
     refereStaff() {
-      this.$refs.staffSelect.init()
+      this.$refs.staffSelect.init();
     },
     //员工参照列表选择后
-    staffSelectionsToInput (selections) {
+    staffSelectionsToInput(selections) {
       this.form.staff = selections[0].userId;
       this.form.staffName = selections[0].nickName;
       this.form.dept = selections[0].deptId;
       this.form.deptName = selections[0].deptName;
       this.form.salesOrg = selections[0].orgId;
       this.form.salesOrgName = selections[0].orgName;
-    }
-  }
+    },
+  },
 };
 </script>

+ 150 - 0
src/views/canteen/addFood.vue

@@ -0,0 +1,150 @@
+<template>
+  <div id="canteenMenu">
+    <span>购买过程新增</span>
+    <el-form :model="menu" :rules="menuRules" ref="menuForm" label-width="100px" class="demo-ruleForm">
+      <el-form-item label="地址" prop="address">
+        <el-input style="width: 200px;" v-model="menu.address" placeholder="请输入地址"></el-input>
+      </el-form-item>
+      <el-form-item label="日期" prop="billDate">
+        <el-date-picker
+         style="width: 200px;"
+          v-model="menu.billDate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-table
+        :data="menu.items"
+        style="width: 40%"
+        >
+          <el-table-column
+            prop="product"
+            label="食材"
+            align="left"
+            width="200"
+            >
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.product"></el-input>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            label="操作"
+            align="left"
+            >
+            <template slot-scope="scope">
+              <el-button
+                @click.native.prevent="deleteRow(scope.row)"
+                type="text"
+                size="small">
+                删除
+              </el-button>
+            </template>
+          </el-table-column>
+
+          <el-table-column align="center">
+          <template slot="header" slot-scope="scope">
+            <el-button
+              @click.native.prevent="addRow"
+              type="text"
+              size="small">
+              增行
+            </el-button>
+          </template>
+          </el-table-column>
+        </el-table>
+      </el-form-item>
+      <el-form-item>
+        <el-button size="small" type="primary" @click="submit">提交</el-button>
+        <el-button size="small" @click="reset('menuForm')">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <span>食材列表</span>
+    <el-table
+      :data="tableData"
+      style="width: 100%">
+      <el-table-column
+        prop="billDate"
+        label="日期"
+        align="center"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="address"
+        label="地址"
+        align="center"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="product"
+        align="center"
+        label="食材">
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+import {addFood, foodList} from '@/api/canteen/basic.js'
+export default {
+  data() {
+    return {
+      menu: {
+        address: '',
+        billDate: '',
+        items: [{product: '猪肉'}]
+      },
+      menuRules: {
+        address: [{ required: true, message: '请输入购买地址', trigger: 'blur' }],
+        billDate: [{ required: true, message: '请选择时段', trigger: 'change' }],
+      },
+      tableData: []
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    submit() {
+      this.$refs['menuForm'].validate((valid) => {
+        if (valid) {
+          addFood(this.menu).then(res => {
+            if (res.code === 200 ) {
+              this.$modal.msgSuccess("操作成功");
+              this.getList()
+              this.reset('menuForm')
+            }
+          })
+       }
+      })
+    },
+    reset(formName) {
+      this.$refs[formName].resetFields();
+    },
+    addRow() {
+      this.menu.items.push({product: ''})
+    },
+    deleteRow(rows) {
+      this.menu.items = this.menu.items.filter(item => {
+        return item.product !== rows.product
+      })
+    },
+    getList() {
+      foodList().then(res => {
+        if (res.code === 200 ) {
+          this.tableData = res.rows
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+ #canteenMenu {
+  padding: 10px;
+ }
+</style>

+ 126 - 0
src/views/canteen/addMenu.vue

@@ -0,0 +1,126 @@
+<template>
+  <div id="canteenMenu">
+    <span>菜单新增</span>
+    <el-form :model="menu" :rules="menuRules" ref="menuForm" label-width="100px" class="demo-ruleForm">
+      <el-form-item label="时段" prop="timeFrame">
+        <el-select style="width: 200px;" v-model="menu.timeFrame" placeholder="请选择">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="菜名" prop="name">
+        <el-input style="width: 200px;" v-model="menu.name" placeholder="请输入菜名"></el-input>
+      </el-form-item>
+      <el-form-item label="价格" prop="price">
+        <el-input-number :min="0" style="width: 200px;" v-model="menu.price" placeholder="请输入价格"></el-input-number>
+      </el-form-item>
+      <el-form-item label="日期" prop="billDate">
+        <el-date-picker
+         style="width: 200px;"
+          v-model="menu.billDate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button size="small" type="primary" @click="submit">提交</el-button>
+        <el-button size="small" @click="reset('menuForm')">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <span>菜单列表</span>
+    <el-table
+      :data="tableData"
+      style="width: 100%">
+      <el-table-column
+        prop="billDate"
+        label="日期"
+        align="center"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="name"
+        label="菜名"
+        align="center"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="price"
+        align="center"
+        label="价格">
+      </el-table-column>
+      <el-table-column
+        prop="timeFrame"
+        align="center"
+        label="时段">
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+import {addMenu, menuList} from '@/api/canteen/basic.js'
+export default {
+  data() {
+    return {
+      menu: {
+        timeFrame: '',
+        name: '',
+        price: '',
+        billDate: ''
+      },
+      options: [
+        {value: '1', label: '早餐'},
+        {value: '2', label: '午餐'},
+        {value: '3', label: '晚餐'}
+      ],
+      menuRules: {
+        timeFrame: [{ required: true, message: '请选择时段', trigger: 'change' }],
+        name: [{ required: true, message: '请输入菜名', trigger: 'blur' }],
+        price: [{ required: true, message: '请输入价格', trigger: 'blur' }],
+        billDate: [{ required: true, message: '请选择时段', trigger: 'change' }],
+      },
+      tableData: []
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    submit() {
+      this.$refs['menuForm'].validate((valid) => {
+        if (valid) {
+          addMenu(this.menu).then(res => {
+            if (res.code === 200 ) {
+              this.$modal.msgSuccess("操作成功");
+              this.getList()
+              this.reset('menuForm')
+            }
+          })
+       }
+      })
+    },
+    reset(formName) {
+      this.$refs[formName].resetFields();
+    },
+    getList() {
+      menuList().then(res => {
+        if (res.code === 200 ) {
+          this.tableData = res.rows
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+ #canteenMenu {
+  padding: 10px;
+ }
+</style>

+ 140 - 0
src/views/canteen/foodScreen.vue

@@ -0,0 +1,140 @@
+<template>
+  <div id="menuScreen">
+    <div class="title">今日食材</div>
+    <div class="title2" style="width: 80%;color: #FFF;margin:1% auto;display: flex;justify-content: space-around;">
+        <span>食材</span>
+        <span>地址</span>
+        <span>日期</span>
+    </div>
+
+    <div class="tables">
+    <div class="gun">
+      <el-table
+      :cell-style="{ color: '#fff' }"
+      :header-cell-style="{ color: '#fff' }"
+      :data="tableData"
+      style="width: 100%;height:100%;font-size: 2.5vh;">
+      <el-table-column
+        prop="product"
+        align="center"
+        label="">
+      </el-table-column>
+      <el-table-column
+        prop="address"
+        label=""
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="billDate"
+        label=""
+        align="center">
+      </el-table-column>
+      </el-table>
+    </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {foodList} from '@/api/canteen/basic.js'
+export default {
+  data() {
+    return{
+      tableData: [],
+      nowDate: ''
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.getNow()
+      // {billDate: this.nowDate}
+      foodList().then(res => {
+        if (res.code === 200 ) {
+          this.tableData = res.rows
+        }
+      })
+    },
+    getNow() {
+      var date = new Date();
+      var year = date.getFullYear();
+      var month = date.getMonth() + 1;
+      var day = date.getDate();
+      if (month < 10) {
+          month = "0" + month;
+      }
+      if (day < 10) {
+          day = "0" + day;
+      }
+      const nowDate = year + "-" + month + "-" + day;
+      this.nowDate = nowDate
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+#menuScreen {
+  width: 100%;
+  height: 100%;
+  background-image: url('../../assets/images/menu_bg.jpg');
+  background-repeat: no-repeat;
+  background-size: cover;
+}
+.title {
+  text-align: center;
+  font-size: 8vh;
+  color: #fff;
+  text-shadow: 0 0 5px #fff,
+  0 0 10px #fff,
+  0 0 15px #fff,
+  0 0 20px #00a67c,
+  0 0 35px #00a67c,
+  0 0 40px #00a67c,
+  0 0 50px #00a67c,
+  0 0 75px #00a67c;
+}
+.title2 {
+  text-align: center;
+  font-size: 3vh;
+  color: #fff;
+  text-shadow: 0 0 5px #fff,
+  0 0 10px #fff,
+  0 0 15px #fff,
+  0 0 20px #00a67c,
+  0 0 35px #00a67c,
+  0 0 40px #00a67c,
+  0 0 50px #00a67c,
+  0 0 75px #00a67c;
+}
+.gun {
+  animation: tables 12s linear infinite;
+}
+.tables {
+  width: 80%;
+  height: 680px;
+  margin: 0 auto;
+  overflow: hidden;
+}
+@keyframes tables {
+        0%{
+            transform:translateY(0px)
+        }
+        100%{
+            transform: translateY(calc(-100% + 680px));
+        }
+    }
+/*最外层透明*/
+::v-deep .el-table,
+::v-deep .el-table__expanded-cell {
+  background-color: transparent !important;
+}
+/* 表格内背景颜色 */
+::v-deep .el-table th,
+::v-deep .el-table tr,
+::v-deep .el-table td {
+  background-color: transparent !important;
+}
+</style>

+ 159 - 0
src/views/canteen/menuScreen.vue

@@ -0,0 +1,159 @@
+<template>
+  <div id="menuScreen">
+    <div class="title">德荣食堂</div>
+    <div class="title2" style="width: 80%;color: #FFF;margin:1% auto;display: flex;justify-content: space-around;">
+        <span>时段</span>
+        <span>菜名</span>
+        <span>价格</span>
+        <span>日期</span>
+    </div>
+    <div class="tables">
+      <div class="gun">
+        <el-table
+        :cell-style="{ color: '#fff' }"
+        :header-cell-style="{ color: '#fff' }"
+        :data="tableData"
+        style="width: 100%;height:100%;font-size: 2.5vh;"
+        ref="tableBox">
+          <el-table-column
+            prop="timeFrame"
+            align="center"
+            label="">
+            <template slot-scope="scope">
+              <span>{{ scope.row.timeFrame == '1' ? '早餐' :  scope.row.timeFrame == '2' ? '午餐' : '晚餐'}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="name"
+            label=""
+            align="center"
+            >
+          </el-table-column>
+          <el-table-column
+            prop="price"
+            align="center"
+            label="">
+            <template slot-scope="scope">
+              <span>¥{{ scope.row.price }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="billDate"
+            label=""
+            align="center"
+            >
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {menuList} from '@/api/canteen/basic.js'
+export default {
+  data() {
+    return{
+      tableData: [],
+      nowDate: ''
+    }
+  },
+  created() {
+    this.getList()
+  },
+  mounted () {
+
+  },
+  methods: {
+    getList() {
+      this.getNow()
+      // {billDate: this.nowDate}
+      menuList({pageSize: 50}).then(res => {
+        if (res.code === 200 ) {
+          this.tableData = res.rows
+        }
+      })
+    },
+    getNow() {
+      var date = new Date();
+      var year = date.getFullYear();
+      var month = date.getMonth() + 1;
+      var day = date.getDate();
+      if (month < 10) {
+          month = "0" + month;
+      }
+      if (day < 10) {
+          day = "0" + day;
+      }
+      const nowDate = year + "-" + month + "-" + day;
+      this.nowDate = nowDate
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+#menuScreen {
+  width: 100%;
+  height: 100%;
+  background-image: url('../../assets/images/menu_bg.jpg');
+  background-repeat: no-repeat;
+  background-size: cover;
+}
+.title {
+  text-align: center;
+  font-size: 8vh;
+  color: #fff;
+  text-shadow: 0 0 5px #fff,
+  0 0 10px #fff,
+  0 0 15px #fff,
+  0 0 20px #00a67c,
+  0 0 35px #00a67c,
+  0 0 40px #00a67c,
+  0 0 50px #00a67c,
+  0 0 75px #00a67c;
+}
+.title2 {
+  text-align: center;
+  font-size: 3vh;
+  color: #fff;
+  text-shadow: 0 0 5px #fff,
+  0 0 10px #fff,
+  0 0 15px #fff,
+  0 0 20px #00a67c,
+  0 0 35px #00a67c,
+  0 0 40px #00a67c,
+  0 0 50px #00a67c,
+  0 0 75px #00a67c;
+}
+.gun {
+  animation: tables 12s linear infinite;
+}
+.tables {
+  width: 80%;
+  height: 680px;
+  margin: 0 auto;
+  overflow: hidden;
+}
+@keyframes tables {
+        0%{
+            transform:translateY(0px)
+        }
+        100%{
+            transform: translateY(calc(-100% + 680px));
+        }
+    }
+/*最外层透明*/
+::v-deep .el-table,
+::v-deep .el-table__expanded-cell {
+  background-color: transparent !important;
+}
+/* 表格内背景颜色 */
+::v-deep .el-table th,
+::v-deep .el-table tr,
+::v-deep .el-table td {
+  background-color: transparent !important;
+}
+
+
+</style>

+ 154 - 127
src/views/material/basicFile/details.vue

@@ -29,7 +29,7 @@
               </el-dropdown-menu>
             </el-dropdown>
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      <el-button size="small" @click="handleQuery">查询</el-button> -->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              <el-button size="small" @click="handleQuery">查询</el-button> -->
             <el-button size="small" @click="handleRefresh">刷新</el-button>
 
           </el-button-group>
@@ -47,7 +47,7 @@
               启用
               <el-dropdown-menu slot="dropdown">
                 <el-dropdown-item :command="isInvoke(true)">启用</el-dropdown-item>
-                                                                    <el-dropdown-item :command="isInvoke(false)">停用</el-dropdown-item></el-dropdown-menu></el-dropdown> -->
+                                                                                                                            <el-dropdown-item :command="isInvoke(false)">停用</el-dropdown-item></el-dropdown-menu></el-dropdown> -->
           </el-button-group>
         </el-col>
 
@@ -56,7 +56,7 @@
           <el-button-group>
             <el-button size="small" @click="handleQueryForm">申请单查询</el-button>
           </el-button-group>
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              </el-col> -->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      </el-col> -->
 
         <!-- 导入导出 -->
       <!-- <el-col :span="1.5">
@@ -64,7 +64,7 @@
             <el-button size="small" @click="handleImport">批量导入</el-button>
             <el-button size="small" @click="handleExport">批量导出</el-button>
           </el-button-group>
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                </el-col> -->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </el-col> -->
 
       </el-row>
 
@@ -94,7 +94,7 @@
           <el-button size="small" @click="handleOtherDel">删除</el-button>
         </el-button-group>
         <el-button-group>
-          <el-button size="small" @click="handleRefresh">刷新</el-button>
+          <el-button size="small" @click="handleOtherListRefresh">刷新</el-button>
         </el-button-group>
       </el-col>
     </el-row>
@@ -109,7 +109,7 @@
         <el-col :span="6" style="text-align: right;">
           <!-- 附件管理 -->
         <!-- <el-button-group>
-                                                                <el-button size="small" icon="el-icon-paperclip" @click="handleFile"></el-button></el-button-group> -->
+                                  <el-button size="small" icon="el-icon-paperclip" @click="handleFile"></el-button></el-button-group> -->
 
           <!-- 切换 -->
         <!-- <el-button-group>
@@ -120,7 +120,7 @@
             <el-button size="small" icon="el-icon-arrow-right" :disabled="!handleBasicEdit"
               @click="handleChangePage('next')" />
             <el-button size="small" icon="el-icon-d-arrow-right" :disabled="!handleBasicEdit"
-                                                                  @click="handleChangePage('end')" /></el-button-group> -->
+                                @click="handleChangePage('end')" /></el-button-group> -->
         </el-col>
       </el-row>
 
@@ -128,13 +128,13 @@
         <el-form :inline="true" label-position="right" :model="basicData.value">
           <!-- <el-form-item label="所属组织"></el-form-item> -->
           <el-form-item label="物料编码">
-            <el-input v-model="basicData.value.code" readonly size="small" placeholder="物料编码"></el-input>
+            <el-input v-model="basicData.value.code" readonly size="small"></el-input>
           </el-form-item>
           <el-form-item label="物料名称">
-            <el-input v-model="basicData.value.name" readonly size="small" placeholder="物料名称"></el-input>
+            <el-input v-model="basicData.value.name" readonly size="small"></el-input>
           </el-form-item>
           <el-form-item label="英文名称">
-            <el-input v-model="basicData.value.enName" readonly size="small" placeholder="英文名称"></el-input>
+            <el-input v-model="basicData.value.enName" readonly size="small"></el-input>
           </el-form-item>
           <!-- <el-form-item label="版本号"></el-form-item> -->
         </el-form>
@@ -181,14 +181,14 @@
                           </template>
 
                           <!-- 参照 -->
-                          <el-select v-if="f.apiUrl" v-model="basicData.value[`${f.prop}Name`]" :placeholder="f.name"
+                          <el-select v-if="f.apiUrl" v-model="basicData.value[`${f.prop}Name`]" placeholder="请选择"
                             :key="basicData.value[f.prop]" :disabled="handleJudge(f)"
                             @focus="f.apiUrl && handleQueryMore(f, '', { name: 'basicData', prop: f.prop })">
                             <div slot="empty"></div>
                           </el-select>
 
                           <!-- 字典 -->
-                          <el-select v-if="f.dictId" v-model="basicData.value[f.prop]" :placeholder="f.name"
+                          <el-select v-if="f.dictId" v-model="basicData.value[f.prop]" placeholder="请选择"
                             :key="basicData.value[f.prop]" :disabled="handleJudge(f)">
                             <el-option v-if="f.dictId" v-for="d in f.dictValue" :key="d.dictValue" :label="d.dictLabel"
                               :value="d.dictValue">
@@ -219,7 +219,7 @@
                           </template>
 
                           <el-input size="small" v-model="basicData.value[f.prop]" :type="f.attribute || 'text'"
-                            :readonly="handleJudge(f)" :placeholder="f.name">
+                            :readonly="handleJudge(f)">
                           </el-input>
                         </el-form-item>
 
@@ -276,19 +276,18 @@
                             <el-form-item v-else-if="m.attribute == 'select'" :label="m.name">
 
                               <!-- 参照弹窗 -->
-                              <el-select v-if="m.apiUrl" v-model="medcineData.value[`${m.prop}Name`]"
-                                :placeholder="m.name" :key="medcineData.value[m.prop]"
+                              <el-select v-if="m.apiUrl" v-model="medcineData.value[`${m.prop}Name`]" placeholder="请选择"
+                                :key="medcineData.value[m.prop]"
                                 :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
                                 @focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
 
-                              <!-- <el-option v-if="m.dictId" v-for="d in m.dictValue" :key="d.dictValue"
-                                                                                                                                                                                                                                                                                                                                            :label="d.dictLabel" :value="d.dictValue"></el-option> -->
+                                <!-- <el-option v-if="m.dictId" v-for="d in m.dictValue" :key="d.dictValue":label="d.dictLabel" :value="d.dictValue"></el-option> -->
 
                                 <div slot="empty"></div>
                               </el-select>
 
                               <!-- 下拉选择 -->
-                              <el-select v-else v-model="medcineData.value[m.prop]" :placeholder="m.name"
+                              <el-select v-else v-model="medcineData.value[m.prop]" placeholder="请选择"
                                 :key="medcineData.value[m.prop]"
                                 :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
                                 @focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
@@ -309,7 +308,6 @@
                             <!-- 文本、数字、textarae -->
                             <el-form-item v-else :label="m.name">
                               <el-input size="small" v-model="medcineData.value[m.prop]" :type="m.attribute || 'text'"
-                                :placeholder="m.name"
                                 :readonly="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')">
                               </el-input>
                             </el-form-item>
@@ -364,16 +362,16 @@
                 <el-divider content-position="left">审计信息</el-divider>
                 <el-form :inline="true" label-position="right" :model="basicData.value">
                   <el-form-item label="创建人">
-                    <el-input v-model="basicData.value.createByName" size="small" readonly placeholder="创建人"></el-input>
+                    <el-input v-model="basicData.value.createByName" size="small" readonly></el-input>
                   </el-form-item>
                   <el-form-item label="创建时间">
-                    <el-input v-model="basicData.value.createTime" size="small" readonly placeholder="创建时间"></el-input>
+                    <el-input v-model="basicData.value.createTime" size="small" readonly></el-input>
                   </el-form-item>
                   <el-form-item label="最后修改人">
-                    <el-input v-model="basicData.value.updateByName" size="small" readonly placeholder="最后修改人"></el-input>
+                    <el-input v-model="basicData.value.updateByName" size="small" readonly></el-input>
                   </el-form-item>
                   <el-form-item label="最后修改时间">
-                    <el-input v-model="basicData.value.updateTime" size="small" readonly placeholder="最后修改时间"></el-input>
+                    <el-input v-model="basicData.value.updateTime" size="small" readonly></el-input>
                   </el-form-item>
 
                 </el-form>
@@ -422,25 +420,20 @@
               true-label="0" false-label="2" v-model="scope.row[mt.prop]" />
 
             <!-- 下拉框 / 参照弹窗---- 药品类别编码 scope.row[`${mt.prop}Name`] -->
-            <el-select size="small" v-else-if="mt.attribute == 'select' && mt.apiUrl"
+            <el-select size="small" v-else-if="mt.attribute == 'select' && mt.apiUrl" placeholder="请选择"
               :disabled="!(materialType.isEdit && mt.edit)" v-model="scope.row[mt.prop]" :key="scope.row[mt.prop]"
-              :placeholder="mt.name"
               @focus="mt.apiUrl && handleQueryMore(mt, '', { name: 'materialType', prop: scope.row })">
               <div slot="empty"></div>
             </el-select>
 
-          <!-- <el-select size="small" v-else-if="mt.attribute == 'select' && mt.dictId"
-              :disabled="!(materialType.isEdit && mt.edit)" v-model="scope.row[mt.prop]" :key="scope.row[mt.prop]"
-              :placeholder="mt.name">
+          <!-- <el-select size="small" v-else-if="mt.attribute == 'select' && mt.dictId"  placeholder="请选择"
+              :disabled="!(materialType.isEdit && mt.edit)" v-model="scope.row[mt.prop]" :key="scope.row[mt.prop]">
               <el-option v-if="mt.dictId" v-for="d in mt.dictId" :key="d.dictValue" :label="d.dictLabel"
                 :value="d.dictValue">
-              </el-option>
-                                                                                                                                                                                                                                                                                                                                                              </el-select> -->
+                                              </el-option></el-select> -->
 
             <!-- 其他类型 -->
-
-            <el-input v-else size="small" v-model="scope.row[mt.prop]" :readonly="!(materialType.isEdit && mt.edit)"
-              :placeholder="mt.name" />
+            <el-input v-else size="small" v-model="scope.row[mt.prop]" :readonly="!(materialType.isEdit && mt.edit)" />
           </template>
 
         </el-table-column>
@@ -486,19 +479,15 @@
 
           <el-collapse-item title="物料基本信息" name="basic">
             <el-form :inline="true" label-position="right" :model="basicData.value">
-            <!-- <el-form-item label="所属组织">
-                                                                                                                                                                                                                                                                                                                                                                                                                      <el-input v-model="basicData.value.orgName" placeholder="所属组织"></el-input></el-form-item> -->
               <el-form-item label="物料编码">
-                <el-input v-model="basicData.value.code" size="small" readonly placeholder="物料编码"></el-input>
+                <el-input v-model="basicData.value.code" size="small" readonly></el-input>
               </el-form-item>
               <el-form-item label="物料名称">
-                <el-input v-model="basicData.value.name" size="small" readonly placeholder="物料名称"></el-input>
+                <el-input v-model="basicData.value.name" size="small" readonly></el-input>
               </el-form-item>
               <el-form-item label="英文名称">
-                <el-input v-model="basicData.value.enName" size="small" readonly placeholder="英文名称"></el-input>
+                <el-input v-model="basicData.value.enName" size="small" readonly></el-input>
               </el-form-item>
-            <!-- <el-form-item label="版本号">
-                                                                                                                                                                                                                                                                                                                                                                                                                    <el-input v-model="basicData.value.version"  placeholder="版本号"></el-input></el-form-item> -->
 
             </el-form>
           </el-collapse-item>
@@ -522,7 +511,7 @@
                       <!-- 下拉框 - 弹窗参照 -->
                       <el-form-item v-else-if="f.attribute == 'select'" :label="f.name">
 
-                        <el-select v-if="f.apiUrl" v-model="otherDeatils.value[`${f.prop}Name`]" :placeholder="f.name"
+                        <el-select v-if="f.apiUrl" v-model="otherDeatils.value[`${f.prop}Name`]" placeholder="请选择"
                           :key="otherDeatils.value[f.prop]" :disabled="!(otherDeatils.isEdit && f.edit)"
                           @focus="f.apiUrl && handleQueryMore(f, '', { name: 'otherDeatils', prop: f.prop })">
 
@@ -530,7 +519,7 @@
                         </el-select>
 
                         <!-- 字典-下拉 -->
-                        <el-select v-if="f.disctId" v-model="otherDeatils.value[`${f.prop}Name`]" :placeholder="f.name"
+                        <el-select v-if="f.dictId" v-model="otherDeatils.value[`${f.prop}Name`]" placeholder="请选择"
                           :key="otherDeatils.value[f.prop]" :disabled="!(otherDeatils.isEdit && f.edit)">
                           <el-option v-if="f.dictId" v-for="d in f.dictValue" :key="d.dictValue" :label="d.dictLabel"
                             :value="d.dictValue">
@@ -548,7 +537,7 @@
                       <!--attribute 文本 数字 文本域 为null -->
                       <el-form-item v-else :label="f.name">
                         <el-input size="small" v-model="otherDeatils.value[f.prop]" :type="f.attribute || 'text'"
-                          :placeholder="f.name" :readonly="!(otherDeatils.isEdit && f.edit)">
+                          :readonly="!(otherDeatils.isEdit && f.edit)">
                         </el-input>
                       </el-form-item>
                     </template>
@@ -564,16 +553,16 @@
             <div class="md-auditInfo">
               <el-form :inline="true" label-position="right" :model="basicData.value">
                 <el-form-item label="创建人">
-                  <el-input v-model="basicData.value.createByName" size="small" readonly placeholder="创建人"></el-input>
+                  <el-input v-model="basicData.value.createByName" size="small" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="创建时间">
-                  <el-input v-model="basicData.value.createTime" size="small" readonly placeholder="创建时间"></el-input>
+                  <el-input v-model="basicData.value.createTime" size="small" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="最后修改人">
-                  <el-input v-model="basicData.value.updateByName" size="small" readonly placeholder="最后修改人"></el-input>
+                  <el-input v-model="basicData.value.updateByName" size="small" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="最后修改时间">
-                  <el-input v-model="basicData.value.updateTime" size="small" readonly placeholder="最后修改时间"></el-input>
+                  <el-input v-model="basicData.value.updateTime" size="small" readonly></el-input>
                 </el-form-item>
               </el-form>
 
@@ -771,18 +760,36 @@ export default {
   methods: {
     // 判断效期管理
     handleJudge(attribute) {
-      // 效期管理(expiryDateManagerment):控制一下几个是否可编辑
-      // expiryUnitId 效期单位  usefulLife 有效期 usefulLifeUnitId 有效期至单位
-      // !(updateButtonGroup && f.edit)
-      if (attribute.prop == 'expiryUnitId'
+
+      // 批号及库存状态管理(isInventoryStatus) 控制 效期管理是否展示(expiryDateManagerment)
+      if (attribute.prop == 'expiryDateManagerment') {
+
+        if (this.basicData.value['isInventoryStatus'] == '2') this.basicData.value['expiryDateManagerment'] = '2';
+
+        return !(this.updateButtonGroup && attribute.edit && this.basicData.value['isInventoryStatus'] == '0');
+      }
+      else if (attribute.prop == 'expiryUnitId'
         || attribute.prop == 'usefulLife'
         || attribute.prop == 'usefulLifeUnitId'
+        || attribute.prop == 'recentWarningPeriod'
       ) {
-        return !(this.updateButtonGroup && attribute.edit && this.basicData.value['expiryDateManagerment'] == '0')
+        // 效期管理(expiryDateManagerment):控制一下几个是否可编辑
+        // expiryUnitId 效期单位  usefulLife 有效期 usefulLifeUnitId 有效期至单位  "recentWarningPeriod" 近效期预警天数
+        if (this.basicData.value['expiryDateManagerment'] == '2') {
+
+          this.basicData.value['expiryUnitId'] = '';
+          this.basicData.value['usefulLife'] = '';
+          this.basicData.value['usefulLifeUnitId'] = '';
+          this.basicData.value['recentWarningPeriod'] = '';
+        }
+
+        return !(this.updateButtonGroup && attribute.edit && this.basicData.value['expiryDateManagerment'] == '0');
       } else {
         // 其他属性是否可编辑
-        return !(this.updateButtonGroup && attribute.edit)
+        return !(this.updateButtonGroup && attribute.edit);
       }
+
+
     },
     // 返回
     handleBack() {
@@ -820,59 +827,7 @@ export default {
       this.collapseActive.splice(1, 1, this.activeMainTab);
       console.log(this.collapseActive, 'this.collapseActive');
 
-      switch (this.activeMainTab) {
-
-        // 基本信息
-        case 'material':
-          this.getTagList('material', (form) => {
-            this.basicData.form = form;
-            this.getMaterialDetails(this.materialId, 'material');
-          })
-          break;
-        // 财物信息
-        case 'material_finance':
-          this.getTagList('material_finance', (form) => {
-            this.mainMsg.form = form;
-            this.getFinanceList(this.materialId);
-          });
-          break;
-        // 利润中心信息
-        case 'profit_center':
-          this.getTagList('profit_center', (form) => {
-            this.mainMsg.form = form;
-            this.getCenterList(this.materialId);
-          });
-          break;
-        // 采购信息
-        case 'material_purchase':
-          this.getTagList('material_purchase', (form) => {
-            this.mainMsg.form = form;
-            this.getPurchaseList(this.materialId);
-          });
-          break;
-        // 库存信息
-        case 'material_inventory':
-          this.getTagList('material_inventory', (form) => {
-            this.mainMsg.form = form;
-            this.getInventoryList(this.materialId);
-          });
-          break;
-        // 计划信息
-        case 'material_plan':
-          this.getTagList('material_plan', (form) => {
-            this.mainMsg.form = form;
-            this.getPlanList(this.materialId);
-          });
-          break;
-        // 成本信息
-        case 'material_cost':
-          this.getTagList('material_cost', (form) => {
-            this.mainMsg.form = form;
-            this.getCostList(this.materialId);
-          });
-          break;
-        default: break;
-      }
+      this.handleOtherListRefresh();
 
     },
     // 切换副表信息
@@ -894,7 +849,7 @@ export default {
           this.getTagList('material_unit', (form) => {
             console.log(form, 'form');
             this.unitDetails.form = form;
-            this.getUnitList('');
+            this.getUnitList(this.materialId);
           });
           break;
         // 辅助属性
@@ -1277,16 +1232,16 @@ export default {
       materialApi.unitDetails(materialId).then(res => {
         console.log(res, '辅助计量单位基本信息');
         if (res.code == 200) {
-          this.unitDetails.value = res.data.data || [];
+          this.unitDetails.value = res.data.tableBody.rows || [];
         }
       })
     },
-    //获取辅计量管理列表信息+表头字段
-    getUnitList() {
-      materialApi.unitList().then(res => {
+    //获取辅计量管理列表信息
+    getUnitList(materialId) {
+      materialApi.unitList({ materialId }).then(res => {
         console.log(res, '辅计量管理列表信息');
         if (res.code == 200) {
-          this.unitDetails.value = res.data.data || [];
+          this.unitDetails.value = res.data.tableBody.rows || [];
         }
       })
     },
@@ -1416,6 +1371,62 @@ export default {
         });
       }
     },
+    // 其他标签页刷新
+    handleOtherListRefresh() {
+      switch (this.activeMainTab) {
+
+        // 基本信息
+        case 'material':
+          this.getTagList('material', (form) => {
+            this.basicData.form = form;
+            this.getMaterialDetails(this.materialId, 'material');
+          })
+          break;
+        // 财物信息
+        case 'material_finance':
+          this.getTagList('material_finance', (form) => {
+            this.mainMsg.form = form;
+            this.getFinanceList(this.materialId);
+          });
+          break;
+        // 利润中心信息
+        case 'profit_center':
+          this.getTagList('profit_center', (form) => {
+            this.mainMsg.form = form;
+            this.getCenterList(this.materialId);
+          });
+          break;
+        // 采购信息
+        case 'material_purchase':
+          this.getTagList('material_purchase', (form) => {
+            this.mainMsg.form = form;
+            this.getPurchaseList(this.materialId);
+          });
+          break;
+        // 库存信息
+        case 'material_inventory':
+          this.getTagList('material_inventory', (form) => {
+            this.mainMsg.form = form;
+            this.getInventoryList(this.materialId);
+          });
+          break;
+        // 计划信息
+        case 'material_plan':
+          this.getTagList('material_plan', (form) => {
+            this.mainMsg.form = form;
+            this.getPlanList(this.materialId);
+          });
+          break;
+        // 成本信息
+        case 'material_cost':
+          this.getTagList('material_cost', (form) => {
+            this.mainMsg.form = form;
+            this.getCostList(this.materialId);
+          });
+          break;
+        default: break;
+      }
+    },
     // 修改
     handleBasicEdit() {
       console.log('修改基本信息');
@@ -1470,13 +1481,23 @@ export default {
     // 启用
     handleIsInvoke(e) {
       console.log('启用', this.basicData.value.isEnable);
-      if (this.basicData.value.isEnable == '已启用') {
-        this.basicData.value.isEnable = '2';
-      } else {
-        // this.basicData.isEnable 为空或者为2
-        this.basicData.value.isEnable = '0';
-      }
-      this.handleSave();
+      // if (this.basicData.value.isEnable == '已启用') {
+      //   this.basicData.value.isEnable = '2';
+      // } else {
+      //   // this.basicData.isEnable 为空或者为2
+      //   this.basicData.value.isEnable = '0';
+      // }
+      // this.handleSave();
+
+      let param = {
+        isEnable: this.basicData.value.isEnable == '已启用' ? '2' : '0',
+        id: this.basicData.value.id
+      };
+      console.log(param, '启用/停用param');
+      materialApi.updateEnableMaterial(param).then(res => {
+        console.log(res, '启用/停用');
+        if (res.code == 200) this.handleRefresh();
+      })
     },
     isInvoke(val) {
       return val;
@@ -1688,18 +1709,23 @@ export default {
     // 确认弹窗操作
     handleComfirmOption() {
       console.log('确认弹窗操作');
+
       this.optionDialog.show = false;
-      this.updateButtonGroup = false;
-      this.handleRest();
 
-      //需要禁止点击其他标签
-      this.detailsTabs = this.detailsTabs.map(item => {
-        item['disabled'] = false;
-        return item;
-      })
+      if (this.updateButtonGroup) {
+        this.updateButtonGroup = false;
+        this.handleRest();
+
+        //需要禁止点击其他标签
+        this.detailsTabs = this.detailsTabs.map(item => {
+          item['disabled'] = false;
+          return item;
+        })
+      }
 
       if (this.otherDeatils.isEdit) {
         this.otherDeatils.isEdit = false;
+        this.handleOtherRefresh();
       }
     },
     // 参照弹窗过滤
@@ -1873,7 +1899,8 @@ export default {
         materialMedcine: this.medcineData.value,
         materialMedcineItem: {}
       };
-      // basicData  this.medcineData.value    materialMedcine
+      // diCode
+      param.diCode = param.diCode.replace(/ /g, '');
       console.log(param, '保存物料以及相关页签param');
       materialApi.insertMaterialInfo(param).then(res => {
         console.log(res, '保存物料以及相关页签');

+ 49 - 18
src/views/material/requisition/add.vue

@@ -20,7 +20,7 @@
                 <el-select
                     ref="fourTag"
                     v-model="basicForm.classifyId"
-                    placeholder="四级分类"
+                    placeholder="请选择"
                     :disabled="disable"
                     clearable
                     @focus="chooseFourClass"
@@ -55,7 +55,7 @@
             </el-col>
             <el-col :span="8">
               <el-form-item label="DI" prop="diCode">
-                <el-input :disabled="disable" v-model="basicForm.diCode"></el-input>
+                <el-input :disabled="disable" v-model.trim="basicForm.diCode"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -92,7 +92,7 @@
                 <el-select
                     ref="units"
                     v-model="basicForm.unitId"
-                    placeholder="计量单位"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                     @focus="chooseUnit"
@@ -111,7 +111,7 @@
                 <el-select
                     ref="factoryOrman"
                     v-model="basicForm.manufacturerId"
-                    placeholder="生产厂家/代理人"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                     @focus="chooseFactory"
@@ -137,7 +137,7 @@
                 <el-select
                     ref="places"
                     v-model="basicForm.originPlace"
-                    placeholder="产地"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                     @focus="choosePlace"
@@ -167,7 +167,7 @@
               <el-form-item label="ABC分类" prop="classifyAbc">
                 <el-select
                     v-model="basicForm.classifyAbc"
-                    placeholder="ABC分类"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                   >
@@ -193,7 +193,6 @@
                 <el-select
                     v-model="basicForm.isB2c"
                     placeholder="B2C物料"
-                    clearable
                     :disabled="disable"
                   >
                     <el-option
@@ -210,7 +209,6 @@
                 <el-select
                     v-model="basicForm.assembly"
                     placeholder="成套件"
-                    clearable
                     :disabled="disable"
                   >
                     <el-option
@@ -227,7 +225,6 @@
                 <el-select
                     v-model="basicForm.isInventoryStatus"
                     placeholder="批号及库存状态管理"
-                    clearable
                     @change="stockControl"
                     :disabled="disable"
                   >
@@ -247,7 +244,6 @@
                 <el-select
                     v-model="basicForm.serialNoManager"
                     placeholder="序列号管理"
-                    clearable
                     @change="stockControl"
                     :disabled="disable"
                   >
@@ -292,7 +288,6 @@
                 <el-select
                     v-model="basicForm.expiryDateManagerment"
                     placeholder="效期管理"
-                    clearable
                     @change="expCt"
                     :disabled="disable || isStock"
                   >
@@ -310,7 +305,6 @@
                 <el-select
                     v-model="basicForm.nearOnsetManagerment"
                     placeholder="近效期管理"
-                    clearable
                     :disabled="disable"
                   >
                     <el-option
@@ -374,7 +368,7 @@
               <el-form-item label="存储条件" prop="storageCondition">
                 <el-select
                     v-model="basicForm.storageCondition"
-                    placeholder="存储条件"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                   >
@@ -391,7 +385,7 @@
               <el-form-item label="运输条件" prop="transportationCondition">
                 <el-select
                     v-model="basicForm.transportationCondition"
-                    placeholder="运输条件"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                   >
@@ -409,7 +403,7 @@
                 <el-select
                     ref="taxs"
                     v-model="basicForm.materialRate"
-                    placeholder="物料税类"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                     @focus="chooseTax"
@@ -447,7 +441,7 @@
                 <el-select
                     ref="staffs"
                     v-model="basicForm.puPersonnelId"
-                    placeholder="采购员"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                     @focus="chooseStaff"
@@ -505,7 +499,7 @@
                 <el-select
                     ref="lines"
                     v-model="basicForm.businessLine"
-                    placeholder="业务线"
+                    placeholder="请选择"
                     clearable
                     :disabled="disable"
                     @focus="chooseLine"
@@ -550,7 +544,7 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="生产许可证/经营许可证/备案号" prop="productionPermit">
+              <el-form-item label="生产许可证/经营许可证/备案号" prop="productionPermit" :rules="{required: !isControl, message: '请填写生产许可证/经营许可证/备案号', trigger: 'change'}">
                 <el-input :disabled="disable" v-model="basicForm.productionPermit"></el-input>
               </el-form-item>
             </el-col>
@@ -621,6 +615,39 @@
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
+              <el-form-item label="进口产品生产厂家" prop="importsManufacturer">
+                <el-input :disabled="disable" v-model="basicForm.importsManufacturer"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="服务类" prop="serviceClass">
+                <el-select
+                    v-model="basicForm.serviceClass"
+                    placeholder=""
+                    disabled
+                  >
+                    <el-option
+                      v-for="item in options"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="内包装单位" prop="innerPackingUnit">
+                <el-input :disabled="disable" v-model="basicForm.innerPackingUnit"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="内包装数" prop="innerPackingQty">
+                <el-input type="number" min="0" :disabled="disable" v-model="basicForm.innerPackingQty"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
               <el-form-item label="备注" prop="remark">
                 <el-input :disabled="disable" v-model="basicForm.remark"></el-input>
               </el-form-item>
@@ -1068,6 +1095,10 @@ export default {
         // 新增业务部门
         businessDepartment: '',
         isEnable: '0',
+        importsManufacturer: '',
+        serviceClass: '',
+        innerPackingUnit: '',
+        innerPackingQty: '',
         safeStock: '',
         mediumPackageUnitId: '',
         remark: '',

+ 2 - 2
vue.config.js

@@ -36,9 +36,9 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://172.16.100.107:8080/drp-admin`, //测试
+        // target: `http://172.16.100.107:8080/drp-admin`, //测试
         // target: `http://test-sy.derom.com/drp-admin`, //测试
-        // target: `http://sy.derom.com/drp-admin`, //生产
+        target: `http://sy.derom.com/drp-admin`, //生产
         // target: `http://172.16.63.202:8000/drp-admin`, // D本地
         // target: `http://172.16.62.241:8000/drp-admin`, //笑寒本地
         // target: `http://172.16.13.152:8000/drp-admin`, //豪哥本地