浏览代码

营销-SPD-商机:工程类商机代码提交

001295 2 年之前
父节点
当前提交
dd80ecc008

+ 43 - 2
src/views/business/spd/bo/basic/details.vue

@@ -107,12 +107,12 @@
             </dev>
             <el-button size="mini" type="text" icon="el-icon-view" @click="customerButton"/>
           </el-descriptions-item>
-          <el-descriptions-item label="医院营收总额">
+          <el-descriptions-item :label="totalRevenue">
             <div v-for="dict in dict.type.mk_bo_total_revenue" v-if="form.basic.totalHosRevenue == dict.value">
               {{dict.label}}
             </div>
           </el-descriptions-item>
-          <el-descriptions-item label="医院耗材预估值(万元)">
+          <el-descriptions-item :label="estimate">
             {{form.basic.hosDiscreetValue}}
           </el-descriptions-item>
           <el-descriptions-item label="赢单率">
@@ -386,8 +386,49 @@ export default {
       },
       //分配弹窗
       allocationPopover: false,
+      //营收总额
+      totalRevenue:"***营收总额",
+      //预估额
+      estimate:"***预估额(万元)",
     };
   },
+  watch: {
+    'form.basic.boType': {
+      handler(newVal, oldVal) {
+        console.log('newVal',newVal);
+        switch(newVal) {
+          case '0':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院耗材预估值(万元)"
+            break;
+          case '1':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院耗材采集预估额(万元)"
+            break;
+          case '2':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院耗材预估值(万元)"
+            break;
+          case '3':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院设备预估额(万元)"
+            break;
+          case '4':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院耗材预估值(万元)"
+            break;
+          case '5':
+            this.totalRevenue = "项目总额";
+            this.estimate = "工程预估额(万元)"
+            break;
+          default:
+              break;
+        }
+      },
+      immediate: true,
+      deep: true // 可以深度检测到 person 对象的属性值的变化
+    }
+  },
   //方法
   methods: {
     // 返回

+ 51 - 3
src/views/business/spd/bo/basic/index.vue

@@ -183,7 +183,7 @@
       <el-table-column label="商机阶段" align="center" prop="boStageName" />
       <el-table-column label="客户名称" align="center" prop="customerName" />
       <el-table-column
-        label="医院耗材预估值(万元)"
+        label="预估值(万元)"
         align="center"
         prop="hosDiscreetValue"
       />
@@ -350,7 +350,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="医院营收总额" prop="totalHosRevenue">
+            <el-form-item :label="totalRevenue" prop="totalHosRevenue">
               <el-select
                 v-model="form.totalHosRevenue"
                 @change="totalHosRevenueChange"
@@ -368,7 +368,7 @@
         <el-row>
           <el-col :span="8">
             <el-form-item
-              label="医院耗材预估值(万元)"
+              :label="estimate"
               prop="hosDiscreetValue"
             >
               <el-input-number
@@ -440,6 +440,7 @@
           type="primary"
           @click="submitForm"
           v-if="this.operatingState != 'Browse'"
+          :disabled="submitButtonEditStatus"
           >确 定</el-button
         >
         <el-button @click="cancel">取 消</el-button>
@@ -599,8 +600,51 @@ export default {
       mk_bo_stage: [],
       // 查询日期范围
       dateRange: [],
+      //确定按钮是否可点
+      submitButtonEditStatus:false,
+      //营收总额
+      totalRevenue:"***营收总额",
+      //预估额
+      estimate:"***预估额(万元)",
     };
   },
+  watch: {
+    'form.boType': {
+      handler(newVal, oldVal) {
+        console.log('newVal',newVal);
+        switch(newVal) {
+          case '0':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院耗材预估值(万元)"
+            break;
+          case '1':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院耗材采集预估额(万元)"
+            break;
+          case '2':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院耗材预估值(万元)"
+            break;
+          case '3':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院设备预估额(万元)"
+            break;
+          case '4':
+            this.totalRevenue = "医院营收总额";
+            this.estimate = "医院耗材预估值(万元)"
+            break;
+          case '5':
+            this.totalRevenue = "项目总额";
+            this.estimate = "工程预估额(万元)"
+            break;
+          default:
+              break;
+        }
+      },
+      immediate: true,
+      deep: true // 可以深度检测到 person 对象的属性值的变化
+    }
+  },
   created() {
     this.getList();
   },
@@ -739,6 +783,7 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
+      this.submitButtonEditStatus = true;
       this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.id != null) {
@@ -746,15 +791,18 @@ export default {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
+              this.submitButtonEditStatus = false;
             });
           } else {
             addBasic(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
+              this.submitButtonEditStatus = false;
             });
           }
         }
+        this.submitButtonEditStatus = false;
       });
     },
     /** 删除按钮操作 */

+ 257 - 0
src/views/business/spd/bo/basic/process.vue

@@ -1184,6 +1184,221 @@
           </el-row>
         </el-form>
       </el-tab-pane>
+      <!-- 军队医疗设备商机页签 -->
+      <!-- 需求信息挖掘 -->
+      <el-tab-pane label="需求信息挖掘" name="t50101" style="height: 200px; overflow-y: scroll" v-if="tabsName.t50101">
+        <el-descriptions >
+          <el-descriptions-item label="项目总额">
+            <div v-for="dict in dict.type.mk_bo_total_revenue" v-if="form.totalHosRevenue == dict.value">
+              <div>{{dict.label}}</div>
+            </div>
+          </el-descriptions-item>
+          <el-descriptions-item label="工程预估额(万元)">{{form.hosDiscreetValue}}</el-descriptions-item>
+        </el-descriptions>
+      </el-tab-pane>
+      <!-- 商机审核 -->
+      <el-tab-pane label="商机审核" name="t50201" style="height: 200px; overflow-y: scroll" v-if="tabsName.t50201">
+        <el-descriptions >
+          <el-descriptions-item label="项目总额">
+            <div v-for="dict in dict.type.mk_bo_total_revenue" v-if="form.totalHosRevenue == dict.value">
+              <div>{{dict.label}}</div>
+            </div>
+          </el-descriptions-item>
+          <el-descriptions-item label="工程预估额(万元)">{{form.hosDiscreetValue}}</el-descriptions-item>
+        </el-descriptions>
+      </el-tab-pane>
+      <!-- 项目立项 -->
+      <el-tab-pane label="阶段动作" name="t50301" style="height: 200px; overflow-y: scroll" v-if="tabsName.t50301">
+        <el-form :disabled="!isUpdate" :model="form.boEngineeringFlow" >
+          <el-form-item label="项目立项是否通过" prop="projectApproval">
+            <el-radio
+              v-model="form.boEngineeringFlow.projectApproval"
+              label="1"
+              >是</el-radio
+            >
+            <el-radio
+              v-model="form.boEngineeringFlow.projectApproval"
+              label="0"
+              >否</el-radio
+            >
+          </el-form-item>
+          <Filemanager
+            @reload="reload"
+            :form="form"
+            :name="'商机审议会'"
+            :fileName="form.boEngineeringFlow.businessCouncilAccessoryName"
+            :fileUrlid="form.boEngineeringFlow.businessCouncilAccessoryUrlId"
+            :fileCreateBy="form.boEngineeringFlow.businessCouncilAccessoryCreateBy"
+            :field="'business_council_accessory'"
+            v-if="form.boEngineeringFlow.projectApproval == 1"
+          />
+          <Filemanager
+            @reload="reload"
+            :form="form"
+            :name="'立项书'"
+            :fileName="form.boEngineeringFlow.projectProposalAccessoryName"
+            :fileUrlid="form.boEngineeringFlow.projectProposalAccessoryUrlId"
+            :fileCreateBy="form.boEngineeringFlow.projectProposalAccessoryCreateBy"
+            :field="'project_proposal_accessory'"
+            v-if="form.boEngineeringFlow.projectApproval == 1"
+          />
+          <el-form-item label="项目未通过原因:" prop="noPassCause"  v-if="form.boEngineeringFlow.projectApproval == 0">
+            <el-row>
+              <el-col
+                :span="8"
+              >
+                <el-input
+                    v-model="form.boEngineeringFlow.noPassCause"
+                  />
+              </el-col>
+            </el-row>
+          </el-form-item>
+        </el-form>
+      </el-tab-pane>
+      <!-- 考察 -->
+      <el-tab-pane label="考察" name="t50401" style="height: 200px; overflow-y: scroll" v-if="tabsName.t50401">
+        <el-form :inline="true" :disabled="!isUpdate" :model="form.boEngineeringFlow" >
+          <el-form-item label="考察开始日期" prop="impowerStartTime" >
+            <el-date-picker
+              value-format="yyyy-MM-dd"
+              v-model="form.boEngineeringFlow.inspectStartTime">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="考察结束日期" prop="impowerEndTime" >
+            <el-date-picker
+              value-format="yyyy-MM-dd"
+              v-model="form.boEngineeringFlow.inspectEndTime">
+            </el-date-picker>
+          </el-form-item>
+          <Filemanager
+            @reload="reload"
+            :form="form"
+            :name="'考察报告'"
+            :fileName="form.boEngineeringFlow.investigationReportAccessoryName"
+            :fileUrlid="form.boEngineeringFlow.investigationReportAccessoryUrlId"
+            :fileCreateBy="form.boEngineeringFlow.investigationReportAccessoryCreateBy"
+            :field="'investigation_report_accessory'"
+          />
+        </el-form>
+      </el-tab-pane>
+      <!-- 解决方案 -->
+      <el-tab-pane label="解决方案" name="t50501" style="height: 200px; overflow-y: scroll" v-if="tabsName.t50501">
+        <el-form :inline="true" :disabled="!isUpdate" :model="form.boEngineeringFlow" >
+          <el-form-item label="院方决策人" prop="hospitalPolicymaker" >
+            <el-input v-model="form.boEngineeringFlow.hospitalPolicymaker" />
+          </el-form-item>
+          <el-form-item label="资源方决策人" prop="resourcePolicymaker" >
+            <el-input v-model="form.boEngineeringFlow.resourcePolicymaker" />
+          </el-form-item>
+          <Filemanager
+            @reload="reload"
+            :form="form"
+            :name="'工程解决方案'"
+            :fileName="form.boEngineeringFlow.engineeringSolutionAccessoryName"
+            :fileUrlid="form.boEngineeringFlow.engineeringSolutionAccessoryUrlId"
+            :fileCreateBy="form.boEngineeringFlow.engineeringSolutionAccessoryCreateBy"
+            :field="'engineering_solution_accessory'"
+          />
+        </el-form>
+      </el-tab-pane>
+      <!-- 投标与签合同 -->
+      <el-tab-pane label="挂网投标" name="t50601" style="height: 200px; overflow-y: scroll" v-if="tabsName.t50601">
+        <el-form :disabled="!isUpdate" :model="form.boEngineeringFlow" >
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="挂网时间" prop="researchTime">
+                <el-date-picker
+                  value-format="yyyy-MM-dd"
+                  v-model="form.boEngineeringFlow.hangingTime"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <Filemanager
+              @reload="reload"
+              :form="form"
+              :name="'投标书'"
+              :fileName="form.boEngineeringFlow.biddingDocumentsAccessoryName"
+              :fileUrlid="form.boEngineeringFlow.biddingDocumentsAccessoryUrlId"
+              :fileCreateBy="form.boEngineeringFlow.biddingDocumentsAccessoryCreateBy"
+              :field="'bidding_documents_accessory'"
+            />
+          </el-row>
+          <el-row>
+            <el-col :span="5">
+              <el-form-item label="投标是否通过" prop="biddingDocumentsPass">
+                <el-radio
+                  v-model="form.boEngineeringFlow.biddingDocumentsPass"
+                  label="1"
+                  >是</el-radio
+                >
+                <el-radio
+                  v-model="form.boEngineeringFlow.biddingDocumentsPass"
+                  label="0"
+                  >否</el-radio
+                >
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row v-show="this.form.boEngineeringFlow.biddingDocumentsPass == '1'">
+            <el-col :span="8">
+              <el-form-item label="我方优势" prop="ourAdvantage">
+                <el-input
+                  v-model="form.boEngineeringFlow.ourAdvantage"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row v-show="this.form.boEngineeringFlow.biddingDocumentsPass == '0'">
+            <el-col :span="8">
+              <el-form-item label="我方劣势" prop="ourAdvantage">
+                <el-input
+                  v-model="form.boEngineeringFlow.ourAdvantage"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row v-if="form.boEngineeringFlow.biddingDocumentsPass == 1">
+            <Filemanager
+              @reload="reload"
+              :form="form"
+              :name="'中标通知书'"
+              :fileName="form.boEngineeringFlow.letterAcceptanceAccessoryName"
+              :fileUrlid="form.boEngineeringFlow.letterAcceptanceAccessoryUrlId"
+              :fileCreateBy="form.boEngineeringFlow.letterAcceptanceAccessoryCreateBy"
+              :field="'letter_acceptance_accessory'"
+            />
+          </el-row>
+        </el-form>
+      </el-tab-pane>
+      <el-tab-pane label="合同签订" name="t50602" style="height: 200px; overflow-y: scroll" v-if="tabsName.t50602">
+        <el-form :disabled="!isUpdate" :model="form.boEngineeringFlow">
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="合同签订时间" prop="contractSigningTime">
+                <el-date-picker
+                  value-format="yyyy-MM-dd"
+                  v-model="form.boEngineeringFlow.contractSigningTime"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <Filemanager
+              @reload="reload"
+              :form="form"
+              :name="'合同文件'"
+              :fileName="form.boEngineeringFlow.contractDocumentAccessoryName"
+              :fileUrlid="form.boEngineeringFlow.contractDocumentAccessoryUrlId"
+              :fileCreateBy="form.boEngineeringFlow.contractDocumentAccessoryCreateBy"
+              :field="'contract_document_accessory'"
+            />
+          </el-row>
+        </el-form>
+      </el-tab-pane>
 
       <!-- 公用页签 -->
       <el-tab-pane label="项目成员" name="tB" style="height: 200px; overflow-y: scroll" v-if="tabsName.B">
@@ -1307,6 +1522,14 @@ export default {
         t40701:false,
         t40702:false,
 
+        t50101:false,
+        t50201:false,
+        t50301:false,
+        t50401:false,
+        t50501:false,
+        t50601:false,
+        t50602:false,
+
         A:false,
         B:false,
       },
@@ -1621,6 +1844,32 @@ export default {
           this.tabsName.t40702 = true;
           this.tabsName.A = true;
           break;
+        case '5-01':
+          this.activeName = 't50101';
+          this.tabsName.t50101 = true;
+          break;
+        case '5-02':
+          this.activeName = 't50301';
+          this.tabsName.t50301 = true;
+          this.tabsName.B = true;
+          this.tabsName.A = true;
+          break;
+        case '5-03':
+          this.activeName = 't50401';
+          this.tabsName.t50401 = true;
+          this.tabsName.A = true;
+          break;
+        case '5-04':
+          this.activeName = 't50501';
+          this.tabsName.t50501 = true;
+          this.tabsName.A = true;
+          break;
+        case '5-05':
+          this.activeName = 't50601';
+          this.tabsName.t50601 = true;
+          this.tabsName.t50602 = true;
+          this.tabsName.A = true;
+          break;
         default:
           break;
       }
@@ -1675,6 +1924,14 @@ export default {
         t40701:false,
         t40702:false,
 
+        t50101:false,
+        t50201:false,
+        t50301:false,
+        t50401:false,
+        t50501:false,
+        t50601:false,
+        t50602:false,
+
         A:false,
         B:false,
       };