Browse Source

Merge branch 'master' of http://172.16.100.139/new-business/drp-web

黄梓星 2 years ago
parent
commit
de60feb458

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

@@ -81,4 +81,13 @@ export function submit(boId) {
     url: '/mk/bo/basic/submit/' + boId,
     method: 'get'
   })
+}
+
+//赢单状态数据提交
+export function updateWinningState(data) {
+  return request({
+    url: '/mk/bo/basic/WinningState',
+    method: 'put',
+    data: data
+  })
 }

+ 259 - 72
src/views/business/spd/bo/basic/details.vue

@@ -46,6 +46,40 @@
           </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.winningState == 0"
+                    >关闭</el-button
+                  >
+      </el-col>
+      <el-col :span="2">
+        <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">
+        <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">
           <el-button size="small" icon="el-icon-d-arrow-left"></el-button>
@@ -65,7 +99,7 @@
     <el-tabs v-model="masterTabs" @tab-click="masterTabsSwitch">
       <!-- 基本信息页签 -->
       <el-tab-pane label="基本信息" name="first">
-        项目流程
+        <dev style="width: 50px; height: 40px; font-size: 18px">项目流程</dev>
         <el-steps :active="form.basic.boStage" finish-status="success">
           <el-step title="商机审核" @click.native="viewingProcedure(0)"></el-step>
           <el-step title="项目立项" @click.native="viewingProcedure(1)"></el-step>
@@ -99,13 +133,16 @@
                 form.basic.boFlow.projectApproval == 0
               ) &&
               !isUpdate &&
-              this.form.basic.boStage < 12
+              this.form.basic.boStage < 12 &&
+              this.form.basic.winningState == 0
             "
             >变更为下一阶段</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">该阶段任务</el-divider>
+        <el-divider content-position="left" style="font-size: 30px">
+          <dev style="width: 50px; height: 40px; font-size: 18px">该阶段任务</dev>
+        </el-divider>
         <el-tabs v-model="secondTabs" @tab-click="secondTabsSwitch">
           <!-- 阶段动作1 -->
           <el-tab-pane
@@ -118,7 +155,7 @@
               ref="form"
               :model="form.basic"
               :rules="rules"
-              label-width="120px"
+              label-width="200px"
             >
               <el-row>
                 <el-col :span="10">
@@ -140,11 +177,12 @@
               </el-row>
               <el-row>
                 <el-col :span="10">
-                  <el-form-item label="医院耗材预估额" prop="hosDiscreetValue">
+                  <el-form-item label="医院耗材预估额(万元)" prop="hosDiscreetValue">
                     <el-input
                       v-model="form.basic.hosDiscreetValue"
                       placeholder="医院耗材预估额"
                       readonly
+                      style="width:220px"
                     />
                   </el-form-item>
                 </el-col>
@@ -190,7 +228,7 @@
                     type="info"
                     plain
                     icon="el-icon-upload2"
-                    size="mini"
+                    size="small"
                     @click="uploadAccessory(`business_council_accessory`)"
                     >上传</el-button
                   >
@@ -200,10 +238,10 @@
                   v-show="form.basic.boFlow.businessCouncilAccessoryUrlId"
                 >
                   <el-button
-                    type="warning"
+                    type="success" 
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="
                       exportAccessory(
                         form.basic.boFlow.businessCouncilAccessoryUrlId,
@@ -218,8 +256,9 @@
                   v-show="form.basic.boFlow.businessCouncilAccessoryUrlId"
                 >
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    type="danger" 
+                    plain
                     icon="el-icon-delete"
                     @click="deleteAccessory(`business_council_accessory`, 1)"
                     >删除</el-button
@@ -242,7 +281,7 @@
                     type="info"
                     plain
                     icon="el-icon-upload2"
-                    size="mini"
+                    size="small"
                     @click="uploadAccessory(`project_proposal_accessory`)"
                     >上传</el-button
                   >
@@ -252,10 +291,10 @@
                   v-show="form.basic.boFlow.projectProposalAccessoryUrlId"
                 >
                   <el-button
-                    type="warning"
+                    type="success"
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="
                       exportAccessory(
                         form.basic.boFlow.projectProposalAccessoryUrlId,
@@ -270,8 +309,9 @@
                   v-show="form.basic.boFlow.projectProposalAccessoryUrlId"
                 >
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    type="danger" 
+                    plain
                     icon="el-icon-delete"
                     @click="deleteAccessory(`project_proposal_accessory`, 1)"
                     >删除</el-button
@@ -348,8 +388,7 @@
             <el-row>
               <el-button @click="pojproDownload">其他文件</el-button>
             </el-row> -->
-            <el-table
-              :data="tableData1"
+            <el-table :data="tableData1"
               style="width: 100%">
               <el-table-column
                 prop="type"
@@ -360,6 +399,11 @@
                 prop="name"
                 label="文件名称"
                 width="250">
+                <template slot-scope="scope">
+                  <el-link href="https://test-sy.derom.com/document-center/fastdfs/download?id=420" target="_blank"  type="primary" :underline="false">
+                    {{scope.row.name}}
+                  </el-link>
+                </template>
               </el-table-column>
             </el-table>
           </el-tab-pane>
@@ -387,7 +431,7 @@
                     type="info"
                     plain
                     icon="el-icon-upload2"
-                    size="mini"
+                    size="small"
                     @click="uploadAccessory(`pre_sale_proposal_accessory`)"
                     >上传</el-button
                   >
@@ -397,10 +441,10 @@
                   v-show="form.basic.boFlow.preSaleProposalAccessoryUrlId"
                 >
                   <el-button
-                    type="warning"
+                    type="success" 
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="
                       exportAccessory(
                         form.basic.boFlow.preSaleProposalAccessoryUrlId,
@@ -415,8 +459,9 @@
                   v-show="form.basic.boFlow.preSaleProposalAccessoryUrlId"
                 >
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    type="danger" 
+                    plain
                     icon="el-icon-delete"
                     @click="deleteAccessory(`pre_sale_proposal_accessory`, 1)"
                     >删除</el-button
@@ -473,7 +518,7 @@
                     type="info"
                     plain
                     icon="el-icon-upload2"
-                    size="mini"
+                    size="small"
                     @click="uploadAccessory(`investigation_report_accessory`)"
                     >上传</el-button
                   >
@@ -483,10 +528,10 @@
                   v-show="form.basic.boFlow.investigationReportAccessoryUrlId"
                 >
                   <el-button
-                    type="warning"
+                    type="success"
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="
                       exportAccessory(
                         form.basic.boFlow.investigationReportAccessoryUrlId,
@@ -501,8 +546,9 @@
                   v-show="form.basic.boFlow.investigationReportAccessoryUrlId"
                 >
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    type="danger"
+                    plain
                     icon="el-icon-delete"
                     @click="
                       deleteAccessory(`investigation_report_accessory`, 1)
@@ -611,7 +657,7 @@
                     type="info"
                     plain
                     icon="el-icon-upload2"
-                    size="mini"
+                    size="small"
                     @click="uploadAccessory(`investigate_report_accessory`)"
                     >上传</el-button
                   >
@@ -621,10 +667,10 @@
                   v-show="form.basic.boFlow.investigateReportAccessoryUrlId"
                 >
                   <el-button
-                    type="warning"
+                    type="success"
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="
                       exportAccessory(
                         form.basic.boFlow.investigateReportAccessoryUrlId,
@@ -639,8 +685,9 @@
                   v-show="form.basic.boFlow.investigateReportAccessoryUrlId"
                 >
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    type="danger"
+                    plain
                     icon="el-icon-delete"
                     @click="
                       deleteAccessory(`investigate_report_accessory`, 1)
@@ -688,7 +735,7 @@
                     type="info"
                     plain
                     icon="el-icon-upload2"
-                    size="mini"
+                    size="small"
                     @click="uploadAccessory(`bidding_documents_accessory`)"
                     >上传</el-button
                   >
@@ -698,10 +745,10 @@
                   v-show="form.basic.boFlow.biddingDocumentsAccessoryUrlId"
                 >
                   <el-button
-                    type="warning"
+                    type="success"
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="
                       exportAccessory(
                         form.basic.boFlow.biddingDocumentsAccessoryUrlId,
@@ -716,8 +763,9 @@
                   v-show="form.basic.boFlow.biddingDocumentsAccessoryUrlId"
                 >
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    plain
+                    type="danger"
                     icon="el-icon-delete"
                     @click="deleteAccessory(`bidding_documents_accessory`, 1)"
                     >删除</el-button
@@ -777,7 +825,7 @@
                     type="info"
                     plain
                     icon="el-icon-upload2"
-                    size="mini"
+                    size="small"
                     @click="uploadAccessory(`letter_acceptance_accessory`)"
                     >上传</el-button
                   >
@@ -787,10 +835,10 @@
                   v-show="form.basic.boFlow.letterAcceptanceAccessoryUrlId"
                 >
                   <el-button
-                    type="warning"
+                    type="success"
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="
                       exportAccessory(
                         form.basic.boFlow.letterAcceptanceAccessoryUrlId,
@@ -805,8 +853,9 @@
                   v-show="form.basic.boFlow.letterAcceptanceAccessoryUrlId"
                 >
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    type="danger"
+                    plain
                     icon="el-icon-delete"
                     @click="deleteAccessory(`letter_acceptance_accessory`, 1)"
                     >删除</el-button
@@ -852,7 +901,7 @@
                     type="info"
                     plain
                     icon="el-icon-upload2"
-                    size="mini"
+                    size="small"
                     @click="uploadAccessory(`contract_document_accessory`)"
                     >上传</el-button
                   >
@@ -862,10 +911,10 @@
                   v-show="form.basic.boFlow.contractDocumentAccessoryUrlId"
                 >
                   <el-button
-                    type="warning"
+                    type="success"
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="
                       exportAccessory(
                         form.basic.boFlow.contractDocumentAccessoryUrlId,
@@ -880,8 +929,9 @@
                   v-show="form.basic.boFlow.contractDocumentAccessoryUrlId"
                 >
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    type="danger"
+                    plain
                     icon="el-icon-delete"
                     @click="deleteAccessory(`contract_document_accessory`, 1)"
                     >删除</el-button
@@ -905,8 +955,8 @@
           </el-tab-pane>
         </el-tabs>
         <!-- 编辑按钮组 -->
-        <el-row type="flex" class="row-bg" justify="end">
-          <el-col :span="2" v-show="!isUpdate">
+        <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">
             <div class="grid-content bg-purple">
               <el-button
                 @click="modifyButton"
@@ -932,8 +982,10 @@
           </el-col>
         </el-row>
         <!-- 基本信息 -->
-        <el-divider content-position="left">基本信息</el-divider>
-        <el-form ref="form" :model="form.basic" label-width="80px">
+        <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">
@@ -949,6 +1001,11 @@
                     :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">
@@ -979,7 +1036,12 @@
           </el-row>
           <el-row>
             <el-col :span="8">
-              <el-form-item label="医院营收总额" prop="totalHosRevenue">
+              <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="请输入医院营收总额"
@@ -992,23 +1054,21 @@
                     :value="dict.value"
                   ></el-option>
                 </el-select>
-                <!-- <el-input v-model="form.basic.totalHosRevenue" placeholder="请输入医院营收总额" :disabled="true"/> -->
               </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="Top Left 提示文字" placement="top-start">
-                    <span>医院耗材预估值</span>
+                  <el-tooltip class="item" effect="dark" content="医院耗材预估值(万元)" placement="top-start">
+                    <span>医院耗材预估值(万元)</span>
                   </el-tooltip>
                 </template>
-
                 <el-input
                   v-model="form.basic.hosDiscreetValue"
-                  placeholder="请输入医院耗材预估值"
+                  placeholder="请输入医院耗材预估值(万元)"
                   readonly
+                  style="width:220px"
                 />
               </el-form-item>
             </el-col>
@@ -1025,15 +1085,20 @@
           <el-row>
             <el-form-item label="商机内容" prop="boContent">
               <el-input
-                v-model="form.basic.boContent"
+                type="textarea"
+                :rows="2"
                 placeholder="商机内容"
-                readonly
-              />
+                autosize
+                v-model="form.basic.boContent"
+                readonly>
+              </el-input>
             </el-form-item>
           </el-row>
         </el-form>
         <!-- 其它信息 -->
-        <el-divider content-position="left">其它信息</el-divider>
+        <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">
@@ -1125,7 +1190,7 @@
               type="info"
               plain
               icon="el-icon-upload2"
-              size="mini"
+              size="small"
               @click="uploadAccessory(`list`)"
               >上传</el-button
             >
@@ -1149,8 +1214,9 @@
               <el-row>
                 <el-col :span="1.5">
                   <el-button
-                    size="mini"
-                    type="text"
+                    size="small"
+                    type="danger"
+                    plain
                     icon="el-icon-delete"
                     @click="deleteAccessory('list', scope.row)"
                     >删除</el-button
@@ -1158,10 +1224,10 @@
                 </el-col>
                 <el-col :span="1.5">
                   <el-button
-                    type="warning"
+                    type="success"
                     plain
                     icon="el-icon-download"
-                    size="mini"
+                    size="small"
                     @click="exportAccessory(scope.row.url, scope.row.fileName)"
                     >下载</el-button
                   >
@@ -1182,7 +1248,7 @@
       <el-upload
         ref="upload"
         :limit="1"
-        accept=".xlsx, .xls,.doc,docx"
+        accept=".xlsx, .xls, .doc, .docx, .word, .wordx, .png, .jpg, .gif, .txt"
         :headers="upload.headers"
         :action="upload.url + '?boId=' + form.basic.id + '&flag=' + upload.flag"
         :disabled="upload.isUploading"
@@ -1199,6 +1265,62 @@
         <el-button @click="upload.open = false">取 消</el-button>
       </div>
     </el-dialog>
+    <!-- 赢单状态弹窗 -->
+    <el-dialog :title="winningStateTitle" :visible.sync="winningStateOpen" width="500px" append-to-body>
+      <el-form ref="wsform" :model="winningStateData" :rules="winningStateDataRules" label-width="140px">
+        <!-- 赢单 -->
+        <el-form-item label="赢单日期" prop="winningStateDate" v-if="this.winningStateData.winningState == '3'">
+          <el-date-picker clearable
+            v-model="winningStateData.winningStateDate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择赢单日期"
+            style="width:220px"
+            >
+          </el-date-picker>
+        </el-form-item>
+        <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>
+        <el-form-item label="赢单备注" prop="winningStateRemark" v-if="this.winningStateData.winningState == '3'">
+          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入赢单备注"/>
+        </el-form-item>
+        <!-- 丢单 -->
+        <el-form-item label="丢单日期" prop="winningStateDate" v-if="this.winningStateData.winningState == '2'">
+          <el-date-picker clearable
+            v-model="winningStateData.winningStateDate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="丢单日期"
+            style="width:220px"
+            >
+          </el-date-picker>
+        </el-form-item>
+        <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>
+        <el-form-item label="关闭备注" prop="winningStateRemark" v-if="this.winningStateData.winningState == '2'">
+          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入关闭备注"/>
+        </el-form-item>
+        <!-- 关闭 -->
+        <el-form-item label="关闭原因" prop="winningStateCause" v-if="this.winningStateData.winningState == '1'">
+          <el-input v-model="winningStateData.winningStateCause" style="width:220px" placeholder="请输入丢单原因"/>
+        </el-form-item>
+        <el-form-item label="关闭备注" prop="winningStateRemark" v-if="this.winningStateData.winningState == '1'">
+          <el-input v-model="winningStateData.winningStateRemark" style="width:220px" placeholder="请输入丢单备注"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitWinningStateData">确 定</el-button>
+        <el-button @click="cancelWinningStateData">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -1208,6 +1330,7 @@ import {
   nextFlow,
   updateBasicFlow,
   delAccessory,
+  updateWinningState,
 } from "@/api/business/spd/bo/basic";
 import { listAccessory } from "@/api/business/spd/bo/accessory";
 import { getToken } from "@/utils/auth";
@@ -1233,6 +1356,29 @@ export default {
   //数据
   data() {
     return {
+      //赢单状态数据
+      // 弹出层标题
+      winningStateTitle: "",
+      // 是否显示弹出层
+      winningStateOpen: false,
+      //赢单状态
+      winningState: null,
+      //赢单状态数据
+      winningStateData:{},
+      //赢单状态表单校验
+      // 表单校验
+      winningStateDataRules: {
+        winningStateCause: [
+          { required: true, message: "原因不能为空", trigger: "blur" }
+        ],
+        winningStateDate: [
+          { required: true, message: "日期不能为空", trigger: "blur" }
+        ],
+        winningStateMoney: [
+          { required: true, message: "金额不能为空", trigger: "blur" }
+        ],
+      },
+
       masterTabs: "first",
       secondTabs: "jd1",
       loading: false,
@@ -1296,7 +1442,7 @@ export default {
                     name: '说明: 请联系事业发展部门商务',
                   },{
                     type: '售前调研模板',
-                    name: 'xXxx医院SPD项目 售前调研表 下载',
+                    name: 'SPD项目售前调研表   下载',
                   },{
                     type: '投标参数模板',
                     name: '说明: 请联系事业发展商务',
@@ -1308,6 +1454,7 @@ export default {
     //阶段
     "form.basic.boStage": {
       handler(newName, oldName) {
+        this.showStage = newName;
         this.reST();
         switch(newName) {
           case 0:
@@ -1543,9 +1690,13 @@ export default {
     },
     //下载附件
     exportAccessory(urlId, fileName) {
-      let resUrl =
-        "https://test-sy.derom.com/document-center/fastdfs/download?id=" +
-        urlId;
+      let resUrl = '';
+      if(process.env.VUE_APP_BASE_API == '/drp-admin'){
+        resUrl = "https://test-sy.derom.com/document-center/fastdfs/download?id=" + urlId;
+      }else{
+        resUrl = "https://sy.derom.com/document-center/fastdfs/download?id=" + urlId;
+      }
+      console.log('resUrl',resUrl);
       axios
         .create({
           timeout: 3000,
@@ -1614,6 +1765,42 @@ export default {
         });
       });
     },
+    //赢单状态按钮
+    handleWinningState(winningState,title){
+      this.resetWinningStateData();
+      this.winningStateOpen = true;
+      this.winningStateTitle = title;
+      this.winningStateData.winningState = winningState;
+      console.log('this.form.basic.boId',this.form.basic.boId);
+      this.winningStateData.boId = this.form.basic.id;
+    },
+    resetWinningStateData(){
+      this.winningStateData = {
+        boId: null,
+        winningState: null,
+        winningStateCause: null,
+        winningStateRemark: null,
+        winningStateDate: null,
+        winningStateMoney: null,
+      }
+    },
+    submitWinningStateData() {
+      this.$refs["wsform"].validate(valid => {
+        if (valid) {
+          updateWinningState(this.winningStateData).then(response => {
+            this.$modal.msgSuccess("提交成功");
+            this.winningStateOpen = false;
+            getBasic(this.$route.params.id).then((response) => {
+              this.form.basic = response.data;
+            });
+          });
+        }
+      });
+    },
+    cancelWinningStateData() {
+      this.winningStateOpen = false;
+      this.resetWinningStateData();
+    },
   },
   //创建钩子
   created() {

+ 41 - 19
src/views/business/spd/bo/basic/index.vue

@@ -11,7 +11,7 @@
         />
       </el-form-item>
       <el-form-item label="商机类型" prop="boType">
-        <el-select v-model="form.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"
@@ -50,6 +50,16 @@
           ></el-option>
         </el-select>
       </el-form-item>
+      <el-form-item label="赢单状态" prop="winningState">
+        <el-select v-model="queryParams.winningState" placeholder="请输入赢单状态" clearable>
+          <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-form-item>
       <el-form-item label="客户名称" prop="customerName">
         <el-input
           v-model="queryParams.customerName"
@@ -86,6 +96,16 @@
         <el-button
           type="success"
           plain
+          icon="el-icon-top"
+          size="mini"
+          :disabled="single"
+          @click="submitOa"
+        >提交</el-button>
+      </el-col>
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
           icon="el-icon-edit"
           size="mini"
           :disabled="single"
@@ -101,12 +121,13 @@
           :disabled="multiple"
           @click="handleDelete"
         >删除</el-button>
-      </el-col>
+      </el-col> -->
       <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-column type="selection" width="55" align="center" />
+    <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" >
         <template slot-scope="scope">
@@ -131,6 +152,11 @@
       <el-table-column label="客户名称" align="center" prop="customerName" />
       <el-table-column label="医院耗材预估值(万元)" align="center" prop="hosDiscreetValue" />
       <el-table-column label="赢单率" align="center" prop="winningRate" />
+      <el-table-column label="赢单率状态" align="center" prop="winningState" >
+        <template slot-scope="scope">
+          <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="deptName" />
@@ -142,12 +168,6 @@
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-top"
-            @click="submitOa(scope.row)"
-          >提交</el-button>
-          <el-button
-            size="mini"
-            type="text"
             icon="el-icon-view"
             @click="enterDetails(scope.row)"
           >进入详情</el-button>
@@ -241,7 +261,7 @@
         <el-row>
           <el-col :span="8">
             <el-form-item label="医院耗材预估值(万元)" prop="hosDiscreetValue">
-              <el-input v-model="form.hosDiscreetValue" placeholder="请输入医院耗材预估值" />
+              <el-input type="number" v-model="form.hosDiscreetValue" placeholder="请输入医院耗材预估值" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -250,10 +270,12 @@
             <el-form-item label="商机内容"  prop="boContent">
               <el-input
                 type="textarea"
-                :rows="2"
+                maxlength=900
+                rows="2"
                 placeholder="请输入商机内容"
                 autosize
-                v-model="form.boContent">
+                v-model="form.boContent"
+                >
               </el-input>
             </el-form-item>
           </el-col>
@@ -338,7 +360,7 @@ 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'],
+  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 {
@@ -367,6 +389,7 @@ export default {
         pageNum: 1,
         pageSize: 10,
         id: null,
+        boCode: null,
         boSource: null,
         boState: null,
         boStage: null,
@@ -415,8 +438,7 @@ export default {
           { required: true, message: "医院营收总额不能为空", trigger: "blur" }
         ],
         hosDiscreetValue: [
-          { required: true, message: "医院耗材预估值不能为空", trigger: "blur" },
-          { type: "number", message: '请输入数值', trigger: 'blur' }
+          { required: true, message: "医院耗材预估值不能为空", trigger: "blur" }
         ],
         boContent: [
           { required: true, message: "商机内容不能为空", trigger: "blur" }
@@ -481,6 +503,7 @@ export default {
     reset() {
       this.form = {
         id: null,
+        boCode: null,
         boSource: null,
         boState: null,
         boStage: null,
@@ -594,9 +617,8 @@ export default {
     },
     //  提交至OA进行审批
     submitOa(row){
-      const id = row.id;
-      console.log('id',id);
-      this.$modal.confirm('确认提交【' + row.boName + '】吗?').then(function() {
+      const id = row.id || this.ids
+      this.$modal.confirm('确认提交吗?').then(function() {
         return submit(id);
       }).then(() => {
         this.getList();

+ 40 - 25
src/views/business/spd/bo/behavior/behaviorList.vue

@@ -103,7 +103,9 @@
     <!-- 添加或修改行动对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-divider content-position="left">基本信息</el-divider>
+        <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="taskId" v-if="!(this.source == 'BoDetails')">
@@ -216,34 +218,40 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-divider content-position="left">跟进记录</el-divider>
-        <el-form-item label="跟进记录" prop="content" >
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">跟进内容</dev>
+        </el-divider>
+        <el-form-item label="内容" prop="content" >
           <el-input
             type="textarea"
             :rows="2"
+            placeholder="填写提示:今天拜访了谁,收集了什么述求,达成了什么结果,下一步计划。"
             autosize
             v-model="form.content">
           </el-input>
         </el-form-item>
-        <!-- <el-divider content-position="left">照片信息</el-divider>
-          <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-              <el-button
-                type="info"
-                plain
-                icon="el-icon-upload2"
-                size="mini"
-                @click="handleImport(`P`)"
-                >上传</el-button
-              >
-            </el-col>
-          </el-row>
-          <el-image
-            style="width: 100px; height: 100px"
-            :src="url"
-            :preview-src-list="srcList">
-          </el-image>
-        <el-divider content-position="left">附件</el-divider>
+        <el-divider content-position="left">
+          <dev style="width: 50px; height: 40px; font-size: 18px">照片信息</dev>
+        </el-divider>
+        <AA :value = "fileList"/>
+        <!-- <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              type="info"
+              plain
+              icon="el-icon-upload2"
+              size="small"
+              @click="handleImport(`P`)"
+              >上传</el-button
+            >
+          </el-col>
+        </el-row>
+        <el-image
+          style="width: 100px; height: 100px"
+          :src="url"
+          :preview-src-list="srcList">
+        </el-image> -->
+        <!-- <el-divider content-position="left">附件</el-divider>
           <el-row :gutter="10" class="mb8">
             <el-col :span="1.5">
               <el-button
@@ -296,7 +304,9 @@
             </el-table-column>
           </el-table> -->
         <div class="md-auditInfo">
-          <el-divider content-position="left">其它信息</el-divider>
+          <el-divider content-position="left">
+            <dev style="width: 50px; height: 40px; font-size: 18px">其它信息</dev>
+          </el-divider>
           <el-form :inline="true" label-position="right" :model="form">
             <el-row>
               <el-col :span="6">
@@ -378,14 +388,19 @@ import ContactRef from '@/views/business/spd/bo/refer/contact/index.vue';
 import SaleaeaRef from '@/views/business/spd/bo/refer/saleaea/index.vue';
 import axios from "axios";
 import { getToken } from "@/utils/auth";
+import AA from '@/views/business/spd/bo/behavior/AA.vue';
 
 export default {
   name: "BehaviorList",
   props:["source","bo"],
   dicts: ['mk_bo_behavior_res','mk_bo_behavior_type','sys_yes_no','mk_bo_behavior_goal'],
-  components: {ContactRef,SaleaeaRef},
+  components: {ContactRef,SaleaeaRef,AA},
   data() {
     return {
+      fileList: [
+        'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
+        'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg'
+      ],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -482,7 +497,6 @@ export default {
       this.queryParams.boStage = this.bo.boStage;
     }
     if(this.source == 'TaskList'){
-      console.log('this.bo-----',this.bo);
       this.queryParams.taskCode = this.bo.code;
     }
     this.getList();
@@ -636,6 +650,7 @@ export default {
     handleImport(type) {
       this.upload.open = true;
       this.upload.type = type;
+      console.log('this.upload',this.upload);
     },
     // 提交上传文件
     submitFileForm() {

+ 18 - 10
src/views/business/spd/bo/contact/contactList.vue

@@ -30,7 +30,7 @@
           @click="handleDelete"
         >删除</el-button>
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           plain
@@ -38,7 +38,7 @@
           size="mini"
           @click="handleExport"
         >导出</el-button>
-      </el-col>
+      </el-col> -->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -131,7 +131,9 @@
     <!-- 添加或修改联系人管理对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="1100px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-divider content-position="left">基本信息</el-divider>
+        <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="商机id" prop="boId" v-if="source == 'Contact'">
@@ -216,7 +218,9 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-divider content-position="left">工作信息</el-divider>
+        <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="superiorContact">
@@ -314,7 +318,9 @@
           <el-col :span="8">
           </el-col>
         </el-row>
-        <el-divider content-position="left">联系信息</el-divider>
+        <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="telephone">
@@ -355,19 +361,21 @@
           </el-tab-pane>
         </el-tabs>
         <div class="md-auditInfo">
-          <el-divider content-position="left">其它信息</el-divider>
+          <el-divider content-position="left">
+            <dev style="width: 50px; height: 40px; font-size: 18px">其它信息</dev>
+          </el-divider>
           <el-form :inline="true" label-position="right" :model="form">
             <el-form-item label="创建人">
-              <el-input v-model="form.departmentName" size="small" readonly></el-input>
+              <el-input v-model="form.createBy" size="small" readonly></el-input>
             </el-form-item>
             <el-form-item label="创建时间">
-              <el-input v-model="form.departmentName" size="small" readonly></el-input>
+              <el-input v-model="form.createTime" size="small" readonly></el-input>
             </el-form-item>
             <el-form-item label="修改人">
-              <el-input v-model="form.departmentName" size="small" readonly></el-input>
+              <el-input v-model="form.updateBy" size="small" readonly></el-input>
             </el-form-item>
             <el-form-item label="修改时间">
-              <el-input v-model="form.departmentName" size="small" readonly></el-input>
+              <el-input v-model="form.updateTime" size="small" readonly></el-input>
             </el-form-item>
           </el-form>
         </div>

+ 12 - 43
src/views/business/spd/bo/pojpsn/pojpsnList.vue

@@ -81,8 +81,8 @@
           <el-input v-model="form.boName" placeholder="商机名称" />
         </el-form-item> -->
         <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-input v-model="form.staffName" disabled="this.operatingState != 'Insert'">
+            <el-button slot="append" icon="el-icon-more" @click="refereStaff" disabled="this.operatingState != 'Insert'"></el-button>
           </el-input>
         </el-form-item>
         <el-form-item label="项目岗位" prop="post">
@@ -95,23 +95,15 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="职责" prop="job">
-          <el-select v-model="form.job" placeholder="请选择职责">
+        <el-form-item label="职责" prop="jobs">
+          <el-select v-model="form.jobs" multiple placeholder="请选择职责">
             <el-option
               v-for="dict in dict.type.mk_bo_pojpsn_job"
               :key="dict.value"
               :label="dict.label"
-              :value="dict.value"
-            ></el-option>
-          </el-select>
-          <!-- <el-select v-model="form.jobs" multiple placeholder="请选择职责">
-            <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
+              :value="dict.value">
             </el-option>
-          </el-select> -->
+          </el-select>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -177,28 +169,12 @@ export default {
         post: [
           { required: true, message: "岗位不能为空", trigger: "blur" }
         ],
-        job: [
+        jobs: [
           { required: true, message: "职责不能为空", trigger: "blur" }
         ],
       },
-      //
-      jobs : [],
-      options: [{
-          value: '0',
-          label: '上传商机审会议'
-        }, {
-          value: '1',
-          label: '售前提案'
-        }, {
-          value: '2',
-          label: '调研报告'
-        }, {
-          value: '3',
-          label: '考察报告'
-        }, {
-          value: '4',
-          label: '投标书'
-        },],
+      //当前操作状态
+      operatingState: '',
     };
   },
   created() {
@@ -210,16 +186,6 @@ export default {
     }
     this.getList();
   },
-  watch: {
-    //阶段
-    "jobs": {
-      handler(newName, oldName) {
-        this.form.job = newName.toString();
-        console.log(value1,value2);
-      },
-      immediate: true,
-    },
-  },
   methods: {
     /** 查询项目成员列表 */
     getList() {
@@ -234,6 +200,7 @@ export default {
     cancel() {
       this.open = false;
       this.reset();
+      this.jobs = [];
     },
     // 表单重置
     reset() {
@@ -273,6 +240,7 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd() {
+      this.operatingState = "Insert";
       this.reset();
       if(this.source == 'BoDetails'){
         this.form.bo = this.bo.id;
@@ -283,6 +251,7 @@ export default {
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
+      this.operatingState = "Update";
       this.reset();
       const id = row.id || this.ids
       getPojpsn(id).then(response => {

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

@@ -132,6 +132,7 @@ export default {
         pageSize: 10,
         name: undefined,
         customerName: undefined,
+        state: null,
       },
       searchForm: {
         name: '',
@@ -178,6 +179,7 @@ export default {
     getList() {
       this.loading = true;
       this.queryParams.customer = this.outerQueryParams.customer;
+      this.queryParams.state = 1;
       listContact(this.addDateRange(this.queryParams)).then(response => {
           this.dataList = response.rows;
           this.total = response.total;