Prechádzať zdrojové kódy

营销-SPD-商机:参照框去除排序;行动图片显示问题处理;成员岗位不允许修改;商机基本信息选择错误;

001295 2 rokov pred
rodič
commit
9f52fa8ab3

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

@@ -50,7 +50,7 @@
         </template>
       </el-table-column>
 
-      <el-table-column label="项目成员-新增" align="center" prop="taskAdd" >
+      <el-table-column label="任务-新增" align="center" prop="taskAdd" >
         <template slot-scope="scope">
           {{scope.row.taskAdd ? '√' : '×'}}
         </template>

+ 315 - 148
src/views/business/spd/bo/basic/index.vue

@@ -1,7 +1,14 @@
 <!-- 商机-列表 -->
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="商机名称" prop="boName">
         <el-input
           v-model="queryParams.boName"
@@ -11,7 +18,11 @@
         />
       </el-form-item>
       <el-form-item label="商机类型" prop="boType">
-        <el-select v-model="queryParams.boType" placeholder="请输入商机类型" clearable>
+        <el-select
+          v-model="queryParams.boType"
+          placeholder="请输入商机类型"
+          clearable
+        >
           <el-option
             v-for="dict in dict.type.mk_bo_type"
             :key="dict.value"
@@ -21,7 +32,11 @@
         </el-select>
       </el-form-item>
       <el-form-item label="商机状态" prop="boState" clearable>
-        <el-select v-model="queryParams.boState" placeholder="请输入商机状态" clearable>
+        <el-select
+          v-model="queryParams.boState"
+          placeholder="请输入商机状态"
+          clearable
+        >
           <el-option
             v-for="dict in dict.type.mk_bo_state"
             :key="dict.value"
@@ -31,7 +46,11 @@
         </el-select>
       </el-form-item>
       <el-form-item label="商机来源" prop="boSource">
-        <el-select v-model="queryParams.boSource" placeholder="请输入商机来源" clearable>
+        <el-select
+          v-model="queryParams.boSource"
+          placeholder="请输入商机来源"
+          clearable
+        >
           <el-option
             v-for="dict in dict.type.mk_bo_source"
             :key="dict.value"
@@ -41,7 +60,11 @@
         </el-select>
       </el-form-item>
       <el-form-item label="商机阶段" prop="boStage">
-        <el-select v-model="queryParams.boStage" placeholder="请输入商机阶段" clearable>
+        <el-select
+          v-model="queryParams.boStage"
+          placeholder="请输入商机阶段"
+          clearable
+        >
           <el-option
             v-for="dict in dict.type.mk_bo_stage"
             :key="dict.value"
@@ -77,8 +100,16 @@
         />
       </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-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>
 
@@ -90,7 +121,8 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
-        >新增</el-button>
+          >新增</el-button
+        >
       </el-col>
       <!-- <el-col :span="1.5">
         <el-button
@@ -112,75 +144,113 @@
           @click="handleDelete"
         >删除</el-button>
       </el-col> -->
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="basicList" @selection-change="handleSelectionChange" @cell-dblclick="enterDetails" >
+    <el-table
+      v-loading="loading"
+      :data="basicList"
+      @selection-change="handleSelectionChange"
+      @cell-dblclick="enterDetails"
+    >
       <el-table-column type="selection" align="center" />
       <el-table-column label="编号" align="center" prop="boCode" />
       <el-table-column label="商机名称" align="center" prop="boName" />
-      <el-table-column label="商机类型" align="center" prop="boType" >
+      <el-table-column label="商机类型" align="center" prop="boType">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.mk_bo_type" :value="scope.row.boType"/>
+          <dict-tag :options="dict.type.mk_bo_type" :value="scope.row.boType" />
         </template>
       </el-table-column>
-      <el-table-column label="商机状态" align="center" prop="boState" >
+      <el-table-column label="商机状态" align="center" prop="boState">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.mk_bo_state" :value="scope.row.boState"/>
+          <dict-tag
+            :options="dict.type.mk_bo_state"
+            :value="scope.row.boState"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="商机来源" align="center" prop="boSource" >
+      <el-table-column label="商机来源" align="center" prop="boSource">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.mk_bo_source" :value="scope.row.boSource"/>
+          <dict-tag
+            :options="dict.type.mk_bo_source"
+            :value="scope.row.boSource"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="商机阶段" align="center" prop="boStageName"/>
+      <el-table-column label="商机阶段" align="center" prop="boStageName" />
       <el-table-column label="客户名称" align="center" prop="customerName" />
-      <el-table-column label="医院耗材预估值(万元)" align="center" prop="hosDiscreetValue" />
+      <el-table-column
+        label="医院耗材预估值(万元)"
+        align="center"
+        prop="hosDiscreetValue"
+      />
       <el-table-column label="赢单率" align="center" prop="winningRate" />
-      <el-table-column label="赢单率状态" align="center" prop="winningState" >
+      <el-table-column label="赢单率状态" align="center" prop="winningState">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.mk_bo_winstate" :value="scope.row.winningState"/>
+          <dict-tag
+            :options="dict.type.mk_bo_winstate"
+            :value="scope.row.winningState"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="销售区域" align="center" prop="marketingAreaName" />
-      <el-table-column label="销售组织" align="center" prop="marketingOrganizingName" />
+      <el-table-column
+        label="销售区域"
+        align="center"
+        prop="marketingAreaName"
+      />
+      <el-table-column
+        label="销售组织"
+        align="center"
+        prop="marketingOrganizingName"
+      />
       <el-table-column label="部门" align="center" prop="deptName" />
       <el-table-column label="商机负责人" align="center" prop="principalName" />
       <el-table-column label="创建人" align="center" prop="createBy" />
       <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
+      <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-search"
             @click="enterDetails(scope.row)"
-          >进入详情</el-button>
+            >进入详情</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-          >修改</el-button>
+            >修改</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-view"
             @click="handleBrowse(scope.row)"
-          >查看</el-button>
+            >查看</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-          >删除</el-button>
+            >删除</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"
@@ -188,15 +258,32 @@
     />
 
     <!-- 添加或修改商机基础信息对话框 -->
-    <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.form.winningState > 0 || 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.form.winningState > 0 || this.operatingState == 'Browse'
+        "
+      >
         <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 label="商机名称" prop="boName">
-              <el-input v-model="form.boName" placeholder="商机名称自动生成" :disabled="true"/>
+              <el-input
+                v-model="form.boName"
+                placeholder="商机名称自动生成"
+                :disabled="true"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -212,9 +299,20 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="推荐人" prop="referrerName" v-show="form.boSource == 2" :rules="form.boSource == 2 ? rules.referrer : [{require: false}]">
-              <el-input v-model="form.referrerName" placeholder="请输入推荐人" >
-                <el-button slot="append" icon="el-icon-more" @click="refereStaff"></el-button>
+            <el-form-item
+              label="推荐人"
+              prop="referrerName"
+              v-show="form.boSource == '2'"
+              :rules="
+                form.boSource == '2' ? rules.referrer : [{ require: false }]
+              "
+            >
+              <el-input v-model="form.referrerName" placeholder="请输入推荐人">
+                <el-button
+                  slot="append"
+                  icon="el-icon-more"
+                  @click="refereStaff"
+                ></el-button>
               </el-input>
             </el-form-item>
           </el-col>
@@ -222,7 +320,11 @@
         <el-row>
           <el-col :span="8">
             <el-form-item label="商机类型" prop="boType">
-              <el-select v-model="form.boType" placeholder="商机类型" :disabled = "this.operatingState == 'Update'">
+              <el-select
+                v-model="form.boType"
+                placeholder="商机类型"
+                :disabled="this.operatingState == 'Update'"
+              >
                 <el-option
                   v-for="dict in dict.type.mk_bo_type"
                   :key="dict.value"
@@ -234,14 +336,27 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="客户名称" prop="customerName">
-              <el-input v-model="form.customerName" placeholder="请输入客户" :disabled = "this.operatingState == 'Update'">
-                <el-button slot="append" icon="el-icon-more" @click="refereCustomer" :disabled = "this.operatingState == 'Update'"></el-button>
+              <el-input
+                v-model="form.customerName"
+                placeholder="请输入客户"
+                :disabled="this.operatingState == 'Update'"
+              >
+                <el-button
+                  slot="append"
+                  icon="el-icon-more"
+                  @click="refereCustomer"
+                  :disabled="this.operatingState == 'Update'"
+                ></el-button>
               </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="医院营收总额" prop="totalHosRevenue">
-              <el-select v-model="form.totalHosRevenue" placeholder="请输入医院营收总额">
+              <el-select
+                v-model="form.totalHosRevenue"
+                placeholder="请输入医院营收总额"
+                @change="totalHosRevenueChange"
+              >
                 <el-option
                   v-for="dict in dict.type.mk_bo_total_revenue"
                   :key="dict.value"
@@ -254,22 +369,29 @@
         </el-row>
         <el-row>
           <el-col :span="8">
-            <el-form-item label="医院耗材预估值(万元)" prop="hosDiscreetValue">
-              <el-input type="number" v-model="form.hosDiscreetValue" placeholder="请输入医院耗材预估值" />
+            <el-form-item
+              label="医院耗材预估值(万元)"
+              prop="hosDiscreetValue"
+            >
+              <el-input
+                type="number"
+                v-model="form.hosDiscreetValue"
+                placeholder="请输入医院耗材预估值"
+              />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col>
-            <el-form-item label="商机内容"  prop="boContent">
+            <el-form-item label="商机内容" prop="boContent">
               <el-input
                 type="textarea"
-                maxlength=900
+                maxlength="900"
                 rows="2"
                 placeholder="请输入商机内容"
                 autosize
                 v-model="form.boContent"
-                >
+              >
               </el-input>
             </el-form-item>
           </el-col>
@@ -280,8 +402,15 @@
         <el-row>
           <el-col :span="6">
             <el-form-item label="销售区域" prop="marketingAreaName">
-              <el-input v-model="form.marketingAreaName" placeholder="请输入销售区域">
-                <el-button slot="append" icon="el-icon-more" @click="refereSaleaea"></el-button>
+              <el-input
+                v-model="form.marketingAreaName"
+                placeholder="请输入销售区域"
+              >
+                <el-button
+                  slot="append"
+                  icon="el-icon-more"
+                  @click="refereSaleaea"
+                ></el-button>
               </el-input>
             </el-form-item>
           </el-col>
@@ -309,7 +438,12 @@
         </el-row>
       </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>
@@ -326,11 +460,7 @@
       :single="true"
     />
     <!-- 组织参照 -->
-    <OrgRef
-      ref="orgSelect"
-      @doSubmit="orgSelectionsToInput"
-      :single="true"
-    />
+    <OrgRef ref="orgSelect" @doSubmit="orgSelectionsToInput" :single="true" />
     <!-- 部门参照 -->
     <DeptRef
       ref="deptSelect"
@@ -347,17 +477,30 @@
 </template>
 
 <script>
-import { listBasic, getBasic, addBasic, updateBasic, delBasic } from "@/api/business/spd/bo/basic";
-import CustomerRef from '@/views/business/spd/bo/refer/customer/index.vue';
-import SaleaeaRef from '@/views/business/spd/bo/refer/saleaea/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 {
+  listBasic,
+  getBasic,
+  addBasic,
+  updateBasic,
+  delBasic,
+} from "@/api/business/spd/bo/basic";
+import CustomerRef from "@/views/business/spd/bo/refer/customer/index.vue";
+import SaleaeaRef from "@/views/business/spd/bo/refer/saleaea/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";
 
 export default {
   name: "Basic",
-  dicts: ['mk_bo_type','mk_bo_state','mk_bo_stage','mk_bo_source','mk_bo_total_revenue','mk_bo_winstate'],
-  components: {CustomerRef,SaleaeaRef,OrgRef,DeptRef,StaffRef},
+  dicts: [
+    "mk_bo_type",
+    "mk_bo_state",
+    "mk_bo_stage",
+    "mk_bo_source",
+    "mk_bo_total_revenue",
+    "mk_bo_winstate",
+  ],
+  components: { CustomerRef, SaleaeaRef, OrgRef, DeptRef, StaffRef },
   data() {
     return {
       // 遮罩层
@@ -379,7 +522,7 @@ export default {
       // 是否显示弹出层
       open: false,
       //当前操作状态
-      operatingState: '',
+      operatingState: "",
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -412,71 +555,43 @@ export default {
         createBy: null,
         createTime: null,
         updateBy: null,
-        updateTime: null
+        updateTime: null,
       },
       // 表单参数
-      form: {},
+      form: {
+        referrer: null,
+        referrerName: null,
+      },
       //表单校验
       rules: {
         boSource: [
-          { required: true, message: "商机来源不能为空", trigger: "blur" }
+          { required: true, message: "商机来源不能为空", trigger: "blur" },
         ],
         referrerName: [
-          { required: true, message: "推荐人不能为空", trigger: "blur" }
+          { required: true, message: "推荐人不能为空", trigger: "blur" },
         ],
         boType: [
-          { required: true, message: "商机类型不能为空", trigger: "blur" }
+          { required: true, message: "商机类型不能为空", trigger: "blur" },
         ],
         customerName: [
-          { required: true, message: "客户名称不能为空", trigger: "blur" }
+          { required: true, message: "客户名称不能为空", trigger: "blur" },
         ],
         totalHosRevenue: [
-          { required: true, message: "医院营收总额不能为空", trigger: "blur" }
+          { required: true, message: "医院营收总额不能为空", trigger: "blur" },
         ],
         hosDiscreetValue: [
-          { required: true, message: "医院耗材预估值不能为空", trigger: "blur" }
+          {
+            required: true,
+            message: "医院耗材预估值不能为空",
+            trigger: "blur",
+          },
         ],
         boContent: [
-          { required: true, message: "商机内容不能为空", trigger: "blur" }
+          { required: true, message: "商机内容不能为空", trigger: "blur" },
         ],
       },
     };
   },
-  //监听属性
-  watch:{
-    //阶段
-    'form.totalHosRevenue':{
-      handler(newName, oldName) {
-        switch(newName) {
-          //5000万以下
-          case '0':
-            this.form.hosDiscreetValue = 5000 * 0.2;
-            break;
-          //5000万-1亿
-          case '1':
-            this.form.hosDiscreetValue = 10000 * 0.2;
-            break;
-          //1亿-2亿
-          case '2':
-            this.form.hosDiscreetValue = 20000 * 0.2;
-            break;
-          //2亿-5亿
-          case '3':
-            this.form.hosDiscreetValue = 50000 * 0.2;
-            break;
-          //5亿-10亿
-          case '4':
-            this.form.hosDiscreetValue = 100000 * 0.2;
-            break;
-          //10亿以上
-          case '5':
-            this.form.hosDiscreetValue = 100000 * 0.2;
-            break;
-        }
-      },
-      immediate: true,
-    },
-  },
   created() {
     this.getList();
   },
@@ -484,16 +599,29 @@ export default {
     /** 查询商机基础信息列表 */
     getList() {
       this.loading = true;
-      listBasic(this.queryParams).then(response => {
+      listBasic(this.queryParams).then((response) => {
         this.basicList = response.rows;
         //对商机名称进行加*
         console.log(this.basicList);
         for (var i = 0; i < this.basicList.length; i++) {
-          var arr = this.basicList[i].boName.split('-');
-          this.basicList[i].boName = arr[0] + '-' + arr[1].substring(0,2) + '******' + arr[1].substring(arr[1].length - 2,arr[1].length) + '-' + arr[2];
+          var arr = this.basicList[i].boName.split("-");
+          this.basicList[i].boName =
+            arr[0] +
+            "-" +
+            arr[1].substring(0, 2) +
+            "******" +
+            arr[1].substring(arr[1].length - 2, arr[1].length) +
+            "-" +
+            arr[2];
 
           var customerName = this.basicList[i].customerName;
-          this.basicList[i].customerName = customerName.substring(0,2) + '******' + customerName.substring(customerName.length - 2,customerName.length);
+          this.basicList[i].customerName =
+            customerName.substring(0, 2) +
+            "******" +
+            customerName.substring(
+              customerName.length - 2,
+              customerName.length
+            );
         }
         this.total = response.total;
         this.loading = false;
@@ -535,7 +663,7 @@ export default {
         createBy: null,
         createTime: null,
         updateBy: null,
-        updateTime: null
+        updateTime: null,
       };
       this.resetForm("form");
     },
@@ -551,34 +679,35 @@ 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.reset();
       this.open = true;
       this.operatingState = "Insert";
-      this.form.principal = this.$store.state.user.id;
-      this.form.principalName = this.$store.state.user.nickName;
-      this.form.dept = this.$store.state.user.deptId;
-      this.form.deptName = this.$store.state.user.deptName;
-      this.form.marketingOrganizing = this.$store.state.user.orgId;
-      this.form.marketingOrganizingName = this.$store.state.user.orgName;
+      const { id, orgId, deptId, nickName, deptName, orgName } = this.$store.state.user;
+      this.form.principal = id;
+      this.form.principalName = nickName;
+      this.form.dept = deptId;
+      this.form.deptName = deptName;
+      this.form.marketingOrganizing = orgId;
+      this.form.marketingOrganizingName = orgName;
       this.title = "添加商机基础信息";
     },
     /** 进入详情按钮操作 */
     enterDetails(row) {
-      console.log('列数据:',row);
+      console.log("列数据:", row);
       this.$router.push(`/basic/spd/bo/basic/details/${row.id}`);
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids
-      getBasic(id).then(response => {
-        this.form = response.data;
+      const id = row.id || this.ids;
+      getBasic(id).then((response) => {
+        this.form = { ...this.form, ...response.data };
         this.open = true;
         this.operatingState = "Update";
         this.title = "修改商机基础信息";
@@ -587,8 +716,8 @@ export default {
     /** 查看按钮操作 */
     handleBrowse(row) {
       this.reset();
-      const id = row.id || this.ids
-      getBasic(id).then(response => {
+      const id = row.id || this.ids;
+      getBasic(id).then((response) => {
         this.form = response.data;
         this.open = true;
         this.operatingState = "Browse";
@@ -597,16 +726,16 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.id != null) {
-            updateBasic(this.form).then(response => {
+            updateBasic(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addBasic(this.form).then(response => {
+            addBasic(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -618,64 +747,102 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除商机基础信息编号为"' + ids + '"的数据项?').then(function() {
-        return delBasic(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      this.$modal
+        .confirm('是否确认删除商机基础信息编号为"' + ids + '"的数据项?')
+        .then(function () {
+          return delBasic(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('system/basic/export', {
-        ...this.queryParams
-      }, `basic_${new Date().getTime()}.xlsx`)
+      this.download(
+        "system/basic/export",
+        {
+          ...this.queryParams,
+        },
+        `basic_${new Date().getTime()}.xlsx`
+      );
+    },
+    //选择医院营收总额后
+    totalHosRevenueChange(value) {
+      switch (value) {
+        //5000万以下
+        case "0":
+          this.form.hosDiscreetValue = 5000 * 0.2;
+          break;
+        //5000万-1亿
+        case "1":
+          this.form.hosDiscreetValue = 10000 * 0.2;
+          break;
+        //1亿-2亿
+        case "2":
+          this.form.hosDiscreetValue = 20000 * 0.2;
+          break;
+        //2亿-5亿
+        case "3":
+          this.form.hosDiscreetValue = 50000 * 0.2;
+          break;
+        //5亿-10亿
+        case "4":
+          this.form.hosDiscreetValue = 100000 * 0.2;
+          break;
+        //10亿以上
+        case "5":
+          this.form.hosDiscreetValue = 100000 * 0.2;
+          break;
+      }
     },
     // 触发客户参照列表
     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;
     },
     // 触发销售区域参照列表
     refereSaleaea() {
-      this.$refs.saleaeaSelect.init()
+      this.$refs.saleaeaSelect.init();
     },
     //销售区域参照列表选择后
-    saleaeaSelectionsToInput (selections) {
+    saleaeaSelectionsToInput(selections) {
       this.form.marketingArea = selections[0].id;
       this.form.marketingAreaName = selections[0].name;
     },
     // 触发组织参照列表
     refereOrg() {
-      this.$refs.orgSelect.init()
+      this.$refs.orgSelect.init();
     },
     //组织参照列表选择后
-    orgSelectionsToInput (selections) {
+    orgSelectionsToInput(selections) {
       this.form.marketingOrganizing = selections[0].deptId;
       this.form.marketingOrganizingName = 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.referrer = selections[0].userId;
       this.form.referrerName = selections[0].nickName;
-    }
-  }
+      console.log("this.form", this.form);
+    },
+  },
 };
 </script>

+ 41 - 61
src/views/business/spd/bo/basic/process.vue

@@ -97,18 +97,16 @@
         <el-form :inline="true" :disabled="!isUpdate" :model="form.boFlow" >
           <el-form-item label="考察开始时间" prop="inspectStartTime">
             <el-date-picker
+              value-format="yyyy-MM-dd"
               v-model="form.boFlow.inspectStartTime"
-              type="datetime"
-              placeholder="选择日期时间"
               :disabled="!isUpdate"
             >
             </el-date-picker>
           </el-form-item>
           <el-form-item label="考察结束时间" prop="inspectStartTime">
             <el-date-picker
+              value-format="yyyy-MM-dd"
               v-model="form.boFlow.inspectEndTime"
-              type="datetime"
-              placeholder="选择日期时间"
               :disabled="!isUpdate"
             >
             </el-date-picker>
@@ -132,9 +130,8 @@
         <el-form :inline="true" :disabled="!isUpdate" :model="form.boFlow">
           <el-form-item label="开院务会时间" prop="conferenceTime">
             <el-date-picker
+              value-format="yyyy-MM-dd"
               v-model="form.boFlow.conferenceTime"
-              type="datetime"
-              placeholder="选择日期时间"
             >
             </el-date-picker>
           </el-form-item>
@@ -151,9 +148,8 @@
                 label-width="100px"
               >
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.boFlow.hospitalApprovalTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -180,6 +176,7 @@
             <el-col :span="8">
               <el-form-item label="调研时间" prop="researchTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.boFlow.researchTime"
                   type="datetime"
                   placeholder="选择日期时间"
@@ -206,9 +203,8 @@
             <el-col :span="8">
               <el-form-item label="挂网时间" prop="researchTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.boFlow.hangingTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -244,7 +240,7 @@
             <el-col :span="8">
               <el-form-item label="我方优势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.boFlow.ourAdvantage"
                   placeholder="我方优势"
                 />
               </el-form-item>
@@ -254,7 +250,7 @@
             <el-col :span="8">
               <el-form-item label="我方劣势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.boFlow.ourAdvantage"
                   placeholder="我方劣势"
                 />
               </el-form-item>
@@ -278,9 +274,8 @@
             <el-col :span="8">
               <el-form-item label="合同签订时间" prop="contractSigningTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.boFlow.contractSigningTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -390,10 +385,7 @@
             </el-col>
             <el-col :span="8">
               <el-form-item label="医院决策时间" prop="hospitalDecisionTime" >
-                <el-date-picker
-                  v-model="form.consumablesBoFlow.hospitalDecisionTime"
-                  type="date"
-                  placeholder="选择日期">
+                <el-date-picker   value-format="yyyy-MM-dd" v-model="form.consumablesBoFlow.hospitalDecisionTime">
                 </el-date-picker>
               </el-form-item>
             </el-col>
@@ -407,9 +399,8 @@
             <el-col :span="8">
               <el-form-item label="挂网时间" prop="researchTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.consumablesBoFlow.hangingTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -445,7 +436,7 @@
             <el-col :span="8">
               <el-form-item label="我方优势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.consumablesBoFlow.ourAdvantage"
                   placeholder="我方优势"
                 />
               </el-form-item>
@@ -455,7 +446,7 @@
             <el-col :span="8">
               <el-form-item label="我方劣势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.consumablesBoFlow.ourAdvantage"
                   placeholder="我方劣势"
                 />
               </el-form-item>
@@ -474,14 +465,13 @@
         </el-form>
       </el-tab-pane>
       <el-tab-pane label="合同签订" name="t10602" style="height: 200px; overflow-y: scroll" v-if="tabsName.t10602">
-        <el-form :model="form.consumablesBoFlow">
+        <el-form :disabled="!isUpdate" :model="form.consumablesBoFlow">
           <el-row>
             <el-col :span="8">
               <el-form-item label="合同签订时间" prop="contractSigningTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.consumablesBoFlow.contractSigningTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -614,9 +604,8 @@
             <el-col :span="8">
               <el-form-item label="医院决策时间" prop="hospitalDecisionTime" >
                 <el-date-picker
-                  v-model="form.medicalBoFlow.hospitalDecisionTime"
-                  type="date"
-                  placeholder="选择日期">
+                  value-format="yyyy-MM-dd"
+                  v-model="form.medicalBoFlow.hospitalDecisionTime">
                 </el-date-picker>
               </el-form-item>
             </el-col>
@@ -630,9 +619,8 @@
             <el-col :span="8">
               <el-form-item label="挂网时间" prop="researchTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.medicalBoFlow.hangingTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -668,7 +656,7 @@
             <el-col :span="8">
               <el-form-item label="我方优势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.medicalBoFlow.ourAdvantage"
                   placeholder="我方优势"
                 />
               </el-form-item>
@@ -678,7 +666,7 @@
             <el-col :span="8">
               <el-form-item label="我方劣势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.medicalBoFlow.ourAdvantage"
                   placeholder="我方劣势"
                 />
               </el-form-item>
@@ -702,9 +690,8 @@
             <el-col :span="8">
               <el-form-item label="合同签订时间" prop="contractSigningTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.medicalBoFlow.contractSigningTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -798,9 +785,8 @@
           <el-col :span="1.5">
             <el-form-item label="谈判产品日期" prop="negotiationTime" >
               <el-date-picker
-                v-model="form.armariumBoFlow.negotiationTime"
-                type="date"
-                placeholder="选择日期">
+                value-format="yyyy-MM-dd"
+                v-model="form.armariumBoFlow.negotiationTime">
               </el-date-picker>
             </el-form-item>
           </el-col>
@@ -825,15 +811,15 @@
           </el-form-item>
           <el-form-item label="授权开始时间" prop="impowerStartTime" >
             <el-date-picker
+              value-format="yyyy-MM-dd"
               v-model="form.armariumBoFlow.impowerStartTime"
-              type="date"
             >
             </el-date-picker>
           </el-form-item>
           <el-form-item label="授权结束时间" prop="impowerEndTime" >
             <el-date-picker
+              value-format="yyyy-MM-dd"
               v-model="form.armariumBoFlow.impowerEndTime"
-              type="date"
             >
             </el-date-picker>
           </el-form-item>
@@ -857,9 +843,8 @@
             <el-col :span="8">
               <el-form-item label="挂网时间" prop="researchTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.armariumBoFlow.hangingTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -895,7 +880,7 @@
             <el-col :span="8">
               <el-form-item label="我方优势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.armariumBoFlow.ourAdvantage"
                   placeholder="我方优势"
                 />
               </el-form-item>
@@ -905,7 +890,7 @@
             <el-col :span="8">
               <el-form-item label="我方劣势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.armariumBoFlow.ourAdvantage"
                   placeholder="我方劣势"
                 />
               </el-form-item>
@@ -929,8 +914,8 @@
             <el-col :span="8">
               <el-form-item label="合同签订时间" prop="contractSigningTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.armariumBoFlow.contractSigningTime"
-                  type="datetime"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -1024,9 +1009,8 @@
           <el-col :span="1.5">
             <el-form-item label="谈判产品日期" prop="negotiationTime" >
               <el-date-picker
-                v-model="form.amfBoFlow.negotiationTime"
-                type="date"
-                placeholder="选择日期">
+                value-format="yyyy-MM-dd"
+                v-model="form.amfBoFlow.negotiationTime">
               </el-date-picker>
             </el-form-item>
           </el-col>
@@ -1051,16 +1035,14 @@
           </el-form-item>
           <el-form-item label="授权开始时间" prop="impowerStartTime" >
             <el-date-picker
-              v-model="form.amfBoFlow.impowerStartTime"
-              type="date"
-              placeholder="选择日期">
+              value-format="yyyy-MM-dd"
+              v-model="form.amfBoFlow.impowerStartTime">
             </el-date-picker>
           </el-form-item>
           <el-form-item label="授权结束时间" prop="impowerEndTime" >
             <el-date-picker
-              v-model="form.amfBoFlow.impowerEndTime"
-              type="date"
-              placeholder="选择日期">
+              value-format="yyyy-MM-dd"
+              v-model="form.amfBoFlow.impowerEndTime">
             </el-date-picker>
           </el-form-item>
         </el-form>
@@ -1083,9 +1065,8 @@
             <el-col :span="8">
               <el-form-item label="挂网时间" prop="researchTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.amfBoFlow.hangingTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -1121,7 +1102,7 @@
             <el-col :span="8">
               <el-form-item label="我方优势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.amfBoFlow.ourAdvantage"
                   placeholder="我方优势"
                 />
               </el-form-item>
@@ -1131,7 +1112,7 @@
             <el-col :span="8">
               <el-form-item label="我方劣势" prop="ourAdvantage">
                 <el-input
-                  v-model="form.ourAdvantage"
+                  v-model="form.amfBoFlow.ourAdvantage"
                   placeholder="我方劣势"
                 />
               </el-form-item>
@@ -1155,9 +1136,8 @@
             <el-col :span="8">
               <el-form-item label="合同签订时间" prop="contractSigningTime">
                 <el-date-picker
+                  value-format="yyyy-MM-dd"
                   v-model="form.amfBoFlow.contractSigningTime"
-                  type="datetime"
-                  placeholder="选择日期时间"
                 >
                 </el-date-picker>
               </el-form-item>
@@ -1562,7 +1542,7 @@ export default {
           this.activeName = 't30401';
           this.tabsName.t30401 = true;
           this.tabsName.t30501 = true;
-          this.tabsName.t30601 = true;
+          // this.tabsName.t30601 = true;
           this.tabsName.A = true;
           break;
         case '3-07':
@@ -1599,7 +1579,7 @@ export default {
           this.activeName = 't40401';
           this.tabsName.t40401 = true;
           this.tabsName.t40501 = true;
-          this.tabsName.t40601 = true;
+          // this.tabsName.t40601 = true;
           this.tabsName.A = true;
           break;
         case '4-07':

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

@@ -1,231 +0,0 @@
-<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>
-

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

@@ -1,230 +0,0 @@
-<template>
-  <div class="component-upload-image">
-    <el-upload
-      multiple
-      :action="uploadImgUrl"
-      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 {
-  model: {
-    prop: 'fileList',
-    event: 'editFileList'
-  },
-  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
-    }
-  },
-  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>
-

+ 14 - 61
src/views/business/spd/bo/behavior/behaviorList.vue

@@ -244,54 +244,22 @@
         <el-divider content-position="left">
           <dev style="width: 50px; height: 40px; font-size: 18px">照片信息</dev>
         </el-divider>
-        <!-- <AA :limit="2" v-model="fileList"></AA> -->
 
         <el-upload
-          :action="actionUrl"
+          action="actionUrl"
           list-type="picture-card"
           :on-change="uploadPic"
+          :on-preview="handlePictureCardPreview"
+          :on-remove="handleRemove"
+          :auto-upload="false"
           :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>
+          >
+          <i class="el-icon-plus"></i>
         </el-upload>
-        <!-- <el-dialog :visible.sync="dialogVisible">
+        <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>
@@ -347,22 +315,14 @@
 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","boAuthority"],
   dicts: ['mk_bo_behavior_res','mk_bo_behavior_type','sys_yes_no','mk_bo_behavior_goal'],
-  components: {ContactRef,SaleaeaRef,AA},
+  components: {ContactRef,SaleaeaRef},
   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,
@@ -453,24 +413,15 @@ url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
   },
   methods: {
     uploadPic(file, fileList) {
-      console.log('文件',file)
-      console.log('文件列表',fileList)
       this.fileList = fileList
+      console.log('this.fileList',this.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() {
@@ -547,6 +498,7 @@ url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
     },
     /** 新增按钮操作 */
     handleAdd() {
+      this.fileList = [];
       this.reset();
       this.operatingState = "Insert";
       //新增行动设置默认值
@@ -585,8 +537,7 @@ url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
       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 = "修改行动";
       });
@@ -597,6 +548,8 @@ url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
       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.operatingState = "Browse";
         this.title = "基础信息";

+ 2 - 1
src/views/business/spd/bo/pojpsn/pojpsnList.vue

@@ -130,7 +130,7 @@
           </el-input>
         </el-form-item>
         <el-form-item label="项目岗位" prop="post">
-          <el-select v-model="form.post" placeholder="请选择项目岗位">
+          <el-select v-model="form.post" placeholder="请选择项目岗位" disabled>
             <el-option
               v-for="dict in dict.type.mk_bo_pojpsn_post"
               :key="dict.value"
@@ -299,6 +299,7 @@ export default {
       if (this.source == "BoDetails") {
         this.form.bo = this.bo.id;
         this.form.boName = this.bo.boName;
+        this.form.post = "1";
       }
       this.open = true;
       this.title = "添加项目成员";

+ 0 - 2
src/views/business/spd/bo/refer/contact/index.vue

@@ -74,7 +74,6 @@
                 prop="customerName"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="客户名称"
               >
@@ -83,7 +82,6 @@
                 prop="name"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="联系人"
               >

+ 0 - 2
src/views/business/spd/bo/refer/customer/index.vue

@@ -74,7 +74,6 @@
                 prop="code"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="客户编码"
               >
@@ -83,7 +82,6 @@
                 prop="name"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="客户名称"
               >

+ 0 - 242
src/views/business/spd/bo/refer/dept/index copy.vue

@@ -1,242 +0,0 @@
-<template>
-  <div>
-    <el-dialog
-      title="部门选择"
-      width="1000px"
-      :close-on-click-modal="false"
-      :append-to-body="true"
-      v-dialogDrag
-      class="userDialog"
-      :visible.sync="visible"
-    >
-      <el-container style="height: 500px">
-        <el-container>
-          <el-header style="text-align: left; font-size: 12px; height: 30px">
-            <el-form
-              size="small"
-              :inline="true"
-              ref="searchForm"
-              :model="searchForm"
-              @keyup.enter.native="getList()"
-              @submit.native.prevent
-            >
-              <el-form-item prop="code">
-                <el-input
-                  size="small"
-                  v-model="queryParams.deptId"
-                  placeholder="部门编码"
-                  clearable
-                ></el-input>
-              </el-form-item>
-              <el-form-item prop="name">
-                <el-input
-                  size="small"
-                  v-model="queryParams.deptName"
-                  placeholder="部门名称"
-                  clearable
-                ></el-input>
-              </el-form-item>
-              <el-form-item>
-                <el-button
-                  type="primary"
-                  @click="getList()"
-                  size="small"
-                  icon="el-icon-search"
-                  >查询</el-button
-                >
-                <el-button
-                  @click="resetSearch()"
-                  size="small"
-                  icon="el-icon-refresh-right"
-                >重置</el-button>
-              </el-form-item>
-            </el-form>
-          </el-header>
-          <el-main>
-            <el-table
-              :data="dataList"
-              v-loading="loading"
-              size="small"
-              border
-              ref="contractTable"
-              @select="handleSelectionChange"
-              height="calc(100% - 40px)"
-              style="width: 100%"
-            >
-              <el-table-column
-                type="selection"
-                header-align="center"
-                align="center"
-                width="50"
-              >
-              </el-table-column>
-              <el-table-column
-                prop="deptId"
-                header-align="center"
-                align="left"
-                sortable="custom"
-                min-width="90"
-                label="部门编码"
-              >
-              </el-table-column>
-              <el-table-column
-                prop="deptName"
-                header-align="center"
-                align="left"
-                sortable="custom"
-                min-width="90"
-                label="部门名称"
-              >
-              </el-table-column>
-            </el-table>
-            <el-pagination
-              @size-change="sizeChangeHandle"
-              @current-change="currentChangeHandle"
-              :current-page="queryParams.pageNum"
-              :page-sizes="[5, 10, 15, 20]"
-              :page-size="queryParams.pageSize"
-              :total="total"
-              layout="total, sizes, prev, pager, next, jumper"
-            >
-            </el-pagination>
-          </el-main>
-        </el-container>
-      </el-container>
-      <span slot="footer" class="dialog-footer">
-        <el-button
-          size="small"
-          @click="visible = false"
-          icon="el-icon-circle-close"
-          >关闭</el-button
-        >
-        <el-button
-          size="small"
-          type="primary"
-          icon="el-icon-circle-check"
-          @click="doSubmit()"
-          >确定</el-button
-        >
-      </span>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { queryDeptList } from "@/api/system/dept";
-export default {
-  data() {
-    return {
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        deptId: undefined,
-        deptName: undefined,
-      },
-      searchForm: {
-        code: '',
-        name: ''
-      },
-      dataListAllSelections: [], // 所有选中的数据包含跨页数据
-      idKey: "id", // 标识列表数据中每一行的唯一键的名称(需要按自己的数据改一下)
-      dataList: [],
-      pageNo: 1,
-      pageSize: 10,
-      total: 0,
-      orders: [],
-      loading: false,
-      visible: false,
-    };
-  },
-  props: {
-    selectData: {
-      type: Array,
-      default: () => {
-        return [];
-      },
-    },
-    // 是否启用单选
-    single: {
-      type: Boolean,
-      default: false
-    }
-  },
-  methods: {
-    init() {
-      this.visible = true;
-      this.$nextTick(() => {
-        this.dataListAllSelections = JSON.parse(JSON.stringify(this.selectData));
-        this.resetSearch();
-      });
-    },
-    // 获取数据列表
-    getList() {
-      this.loading = true;
-      queryDeptList(this.addDateRange(this.queryParams)).then(response => {
-          this.dataList = response.data;
-          this.total = response.total;
-          this.loading = false;
-        }
-      );
-    },
-    // 每页数
-    sizeChangeHandle(val) {
-      this.queryParams.pageSize = val;
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    // 当前页
-    currentChangeHandle(val) {
-      this.queryParams.pageNum = val;
-      this.getList();
-    },
-    // 排序
-    resetSearch() {
-      this.$refs.searchForm.resetFields();
-      this.getList();
-    },
-    // 选中数据
-    handleSelectionChange(selection, row) {
-      if (this.single && selection.length > 1) {
-        this.$refs.contractTable.clearSelection();
-        this.$refs.contractTable.toggleRowSelection(row);
-      }
-      this.dataListAllSelections = this.single ? [row] : selection
-    },
-    // 设置选中的方法
-    setSelectRow() {
-      this.$refs.contractTable.clearSelection();
-      if (!this.dataListAllSelections || this.dataListAllSelections.length <= 0) {
-        return;
-      }
-      for (let i = 0; i < this.dataList.length; i++) {
-        if (this.dataListAllSelections.some(item => item[this.idKey] == this.dataList[i][this.idKey])) {
-          // 设置选中,记住table组件需要使用ref="table"
-          this.$refs.contractTable.toggleRowSelection(this.dataList[i], true);
-        }
-      }
-    },
-    doSubmit() {
-      this.visible = false;
-      console.log('选择的数据?',this.dataListAllSelections)
-      this.$emit("doSubmit", this.dataListAllSelections);
-    },
-  },
-};
-</script>
-<style lang="scss">
-.userDialog {
-  .el-dialog__body {
-    padding: 10px 0px 0px 10px;
-    color: #606266;
-    font-size: 14px;
-    word-break: break-all;
-  }
-  .el-main {
-    padding: 20px 20px 5px 20px;
-    .el-pagination {
-      margin-top: 5px;
-    }
-  }
-}
-</style>

+ 0 - 2
src/views/business/spd/bo/refer/dept/index.vue

@@ -74,7 +74,6 @@
                 prop="deptId"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="部门编码"
               >
@@ -83,7 +82,6 @@
                 prop="deptName"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="部门名称"
               >

+ 0 - 2
src/views/business/spd/bo/refer/org/index.vue

@@ -74,7 +74,6 @@
                 prop="deptId"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="组织编码"
               >
@@ -83,7 +82,6 @@
                 prop="deptName"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="组织名称"
               >

+ 0 - 2
src/views/business/spd/bo/refer/saleaea/index.vue

@@ -74,7 +74,6 @@
                 prop="code"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="区域编码"
               >
@@ -83,7 +82,6 @@
                 prop="name"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="区域名称"
               >

+ 0 - 2
src/views/business/spd/bo/refer/staff/index.vue

@@ -74,7 +74,6 @@
                 prop="userName"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="员工编码"
               >
@@ -83,7 +82,6 @@
                 prop="nickName"
                 header-align="center"
                 align="left"
-                sortable="custom"
                 min-width="90"
                 label="员工名称"
               >

+ 10 - 7
src/views/business/spd/bo/task/taskList.vue

@@ -341,13 +341,7 @@
           >
           </el-input>
         </el-form-item>
-        <BehaviorList
-          :key="timer"
-          :source="'TaskList'"
-          :bo="this.form"
-          :boAuthority="boAuthority"
-          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">
@@ -392,6 +386,15 @@
           </el-form>
         </div>
       </el-form>
+
+      <BehaviorList
+          :key="timer"
+          :source="'TaskList'"
+          :bo="this.form"
+          :boAuthority="boAuthority"
+          v-if="this.operatingState != 'Insert'"
+        />
+        
       <div slot="footer" class="dialog-footer">
         <el-button
           type="primary"