yusheng hace 1 año
padre
commit
1b155243a2

+ 1 - 1
src/views/bpm/handleTask/components/businessOpportunity/addOpportunityDialog.vue

@@ -14,7 +14,7 @@
             <el-input
               placeholder="请选择"
               v-model="form.contactName"
-              @click.native="handParent"
+             disabled
               maxlength="50"
             ></el-input>
           </el-form-item>

+ 15 - 1
src/views/bpm/handleTask/components/businessOpportunity/opportunityDetailDialog.vue

@@ -415,7 +415,21 @@
       async getTableValue() {
         try {
           await this.getValidate();
-          return this.$refs.inventoryTable.getTableValue();
+          if (this.$refs.inventoryTable.getTableValue().length == 0) {
+            this.$message.warning('产品清单不能为空');
+
+            return;
+          }
+
+          this.detailData.totalPrice= this.$refs.inventoryTable.getPrice()[0]
+          const commitData = {
+            opportunity: this.detailData,
+            competAnalysisList: this.detailData.competAnalysisList,
+            partyList: this.detailData.partyList,
+            productList: this.$refs.inventoryTable.getTableValue()
+          };
+          return commitData;
+
         } catch (error) {
           console.log(error);
           return Promise.resolve([]);

+ 222 - 236
src/views/bpm/handleTask/components/businessOpportunity/submit.vue

@@ -28,7 +28,6 @@
       </el-form-item>
       <el-form-item
         label="审批建议"
-
         style="margin-bottom: 20px"
         :rules="{
           required: true,
@@ -49,7 +48,7 @@
         type="success"
         size="mini"
         @click="handleAudit(1)"
-      >通过
+        >通过
       </el-button>
       <!-- <el-button
         icon="el-icon-edit-outline"
@@ -65,11 +64,16 @@
         size="mini"
         @click="handleAudit(0)"
         v-if="!['starter', 'salesmanApprove'].includes(taskDefinitionKey)"
-      >驳回
+        >驳回
       </el-button>
 
-      <el-dropdown @command="(command) => handleCommand(command)" style="margin-left: 30px;">
-        <span class="el-dropdown-link">更多<i class="el-icon-arrow-down el-icon--right"></i></span>
+      <el-dropdown
+        @command="(command) => handleCommand(command)"
+        style="margin-left: 30px"
+      >
+        <span class="el-dropdown-link"
+          >更多<i class="el-icon-arrow-down el-icon--right"></i
+        ></span>
         <el-dropdown-menu slot="dropdown">
           <el-dropdown-item command="cancel">作废</el-dropdown-item>
         </el-dropdown-menu>
@@ -103,265 +107,247 @@
 </template>
 
 <script>
-import {
-  updateProduct,
-  UpdateInformation,
-  cancel
-} from '@/api/bpm/components/saleManage/businessOpportunity';
-import {approveTaskWithVariables, rejectTask} from '@/api/bpm/task';
-import {listAllUserBind} from '@/api/system/organization';
-// 流程实例的详情页,可用于审批
-export default {
-  name: '',
-  components: {},
-  props: {
-    businessId: {
-      default: ''
-    },
-    taskId: {
-      default: ''
-    },
-    id: {
-      default: ''
-    },
-    taskDefinitionKey: {
-      default: ''
-    }
-  },
-
-  data() {
-    return {
-      form: {
-        technicianId: '',
-        reason: '',
-        technicalAnswerName: ''
+  import {
+    updateProduct,
+    UpdateInformation,
+    cancel
+  } from '@/api/bpm/components/saleManage/businessOpportunity';
+  import { approveTaskWithVariables, rejectTask } from '@/api/bpm/task';
+  import { listAllUserBind } from '@/api/system/organization';
+  // 流程实例的详情页,可用于审批
+  export default {
+    name: '',
+    components: {},
+    props: {
+      businessId: {
+        default: ''
       },
-      userOptions: []
-    };
-  },
-  created() {
-    this.userOptions = [];
-    listAllUserBind().then((data) => {
-      this.userOptions.push(...data);
-    });
-  },
-
-  methods: {
-    head() {
-      this.$refs.headRef.open();
+      taskId: {
+        default: ''
+      },
+      id: {
+        default: ''
+      },
+      taskDefinitionKey: {
+        default: ''
+      }
     },
 
-    /** 处理转办审批人 */
-    handleUpdateAssignee() {
-      this.$emit('handleUpdateAssignee');
+    data() {
+      return {
+        form: {
+          technicianId: '',
+          reason: '',
+          technicalAnswerName: ''
+        },
+        userOptions: []
+      };
     },
-    /** 退回 */
-    handleBackList() {
-      this.$emit('handleBackList');
+    created() {
+      this.userOptions = [];
+      listAllUserBind().then((data) => {
+        this.userOptions.push(...data);
+      });
     },
 
-    async handleAudit(status) {
-      if (this.taskDefinitionKey === 'starter') {
-        let arr = await this.getTableValue();
-        if (!arr) {
-          return;
-        }
-        let data = await UpdateInformation(arr);
-        if (data.code != '0') {
-          return;
-        }
-      }
-      //生产主管审批选择技术员
-      if (
-        this.taskDefinitionKey === 'productionSupervisorApprove1' &&
-        status === 1
-      ) {
-        let data = await this.getTableValue();
-        console.log(data.length);
-        if(!data.length) return this.$message.warning(`用必填项未填,请检查!`);
-        if (!this.form.technicianId) {
-          this.$message.warning(`请选择技术人员!`);
-          return;
-        }
-        let userIfon = this.userOptions.find(
-          (item) => item.id == this.form.technicianId
-        );
-        let arr = data.map((item) => {
-          return {
-            ...item,
-            id: item.id,
-            produceDeliveryDeadline: item.produceDeliveryDeadline,
-            technicalAnswerId: this.form.technicianId,
-            technicalAnswerName: userIfon?.name
-          };
-        });
+    methods: {
+      head() {
+        this.$refs.headRef.open();
+      },
+
+      /** 处理转办审批人 */
+      handleUpdateAssignee() {
+        this.$emit('handleUpdateAssignee');
+      },
+      /** 退回 */
+      handleBackList() {
+        this.$emit('handleBackList');
+      },
 
-        if (!arr) {
-          return;
+      async handleAudit(status) {
+        if (this.taskDefinitionKey === 'starter') {
+          let arr = await this.getTableValue();
+          if (!arr) {
+            return;
+          }
+          let data = await UpdateInformation(arr);
+          if (data.code != '0') {
+            return;
+          }
         }
+        //生产主管审批选择技术员
+        if (
+          this.taskDefinitionKey === 'productionSupervisorApprove1' &&
+          status === 1
+        ) {
+          let data = await this.getTableValue();
 
-        await updateProduct(arr);
-      }
-      //生产主管2审批
-      if (
-        this.taskDefinitionKey === 'productionSupervisorApprove2' && status === 1) {
-        let data = await this.getTableValue();
-        let isProduceDeliveryDeadline = true;
-        data.forEach((item) => {
-          if (!item.produceDeliveryDeadline) {
-            isProduceDeliveryDeadline = false;
+          if (!data) {
+            return;
           }
-        });
-        if (!isProduceDeliveryDeadline) {
-          this.$message.warning(`请选择生产交付交期!`);
-          return;
+          if (!this.form.technicianId) {
+            this.$message.warning(`请选择技术人员!`);
+            return;
+          }
+          let userIfon = this.userOptions.find(
+            (item) => item.id == this.form.technicianId
+          );
+          data?.productList?.forEach((item) => {
+            item['technicalAnswerId'] = this.form.technicianId;
+            item['technicalAnswerName'] = userIfon?.name;
+          });
+
+          await UpdateInformation(data);
         }
-      }
-      //技术员修改
-      if ((this.taskDefinitionKey === 'technicianApprove' || this.taskDefinitionKey === 'techLeaderApprove') && status === 1) {
-        let data = await this.getTableValue();
-        let requiredFiled = [
-          {
-            filed: 'singleWeight',
-            name: '单重'
+        //生产主管2审批
+        if (
+          this.taskDefinitionKey === 'productionSupervisorApprove2' &&
+          status === 1
+        ) {
+          let data = await this.getTableValue();
+          if (!data) {
+            return;
           }
-        ]
-        let list = []
-        let arr = data.map((item) => {
-          requiredFiled.forEach(i => {
-            if (!item[i.filed]&&item[i.filed]!==0) {
-              list.push(i.name)
+          let isProduceDeliveryDeadline = true;
+          data?.productList?.forEach((item) => {
+            if (!item.produceDeliveryDeadline) {
+              isProduceDeliveryDeadline = false;
             }
-          })
-          return {
-            ...item,
-            id: item.id,
-            technicalDrawings: item.technicalDrawings || [],
-            industryArtFiles: item.industryArtFiles || [],
-            otherFiles: item.otherFiles || [],
-            remark: item.remark,
-            singleWeight: item.singleWeight,
-            technicalParams: item.technicalParams,
-            technicalAnswerId: item.technicalAnswerId,
-            technicalAnswerName: item.technicalAnswerName
-          };
-        });
-        if (!arr) {
-          return;
+          });
+          if (!isProduceDeliveryDeadline) {
+            this.$message.warning(`请选择生产交付交期!`);
+            return;
+          }
+          await UpdateInformation(data);
         }
-        if (list.length) {
-          return this.$message.warning('请输入' + list.join(','))
+        //技术员修改
+        if (
+          (this.taskDefinitionKey === 'technicianApprove' ||
+            this.taskDefinitionKey === 'techLeaderApprove') &&
+          status === 1
+        ) {
+          let data = await this.getTableValue();
+          if (!data) {
+            return;
+          }
+          let requiredFiled = [
+            {
+              filed: 'singleWeight',
+              name: '单重'
+            }
+          ];
+          let list = [];
+          data?.productList?.forEach((item) => {
+            requiredFiled.forEach((i) => {
+              if (!item[i.filed] && item[i.filed] !== 0) {
+                list.push(i.name);
+              }
+            });
+          });
+
+          if (list.length) {
+            return this.$message.warning('请输入' + list.join(','));
+          }
+          await UpdateInformation(data);
         }
-        await updateProduct(arr);
-      }
-      //和销售主管审批
-      if ((this.taskDefinitionKey === 'salesManagerApprove') && status === 1) {
-        let arr = await this.getTableValue();
+        //和销售主管审批
+        if (this.taskDefinitionKey === 'salesManagerApprove' && status === 1) {
+          let arr = await this.getTableValue();
+          if (!arr) {
+            return;
+          }
 
-        let arrList = arr.map((item) => {
-          return {
-            ...item,
-            id: item.id,
-            singlePrice: item.singlePrice,
-            totalCount: item.totalCount,
-            totalPrice: item.totalPrice
-          };
-        }) || [];
-        if (!arrList.length) {
-          return;
+          await UpdateInformation(arr);
         }
-        await updateProduct(arrList);
-      }
-      //销售员补充
-      if ((this.taskDefinitionKey === 'salesmanApprove') && status === 1) {
-        let arr = await this.getTableValue();
-        let singlePrice = true;
-        let totalCount = true;
-        let arrList = arr?.productList.map((item) => {
-          if (!item.singlePrice) {
-            singlePrice = false;
+        //销售员补充
+        if (this.taskDefinitionKey === 'salesmanApprove' && status === 1) {
+          let arr = await this.getTableValue();
+          if (!arr) {
+            return;
           }
-          if (!item.totalCount) {
-            totalCount = false;
+          let singlePrice = true;
+          let totalCount = true;
+
+          arr?.productList.forEach((item) => {
+            if (!item.singlePrice) {
+              singlePrice = false;
+            }
+            if (!item.totalCount) {
+              totalCount = false;
+            }
+          });
+          if (!singlePrice) {
+            this.$message.warning(`请输入单价`);
+            return;
           }
-          return {
-            ...item,
-            id: item.id,
-            singlePrice: item.singlePrice,
-            totalCount: item.totalCount,
-            totalPrice: item.totalPrice
-          };
-        }) || [];
-        if (!singlePrice) {
-          this.$message.warning(`请输入单价`);
-          return;
-        }
-        if (!totalCount) {
-          this.$message.warning(`请输入数量`);
-          return;
-        }
-        if (!arrList.length) {
-          return;
+          if (!totalCount) {
+            this.$message.warning(`请输入数量`);
+            return;
+          }
+      
+          await UpdateInformation(arr);
         }
-        await updateProduct(arrList);
-      }
-      this._approveTaskWithVariables(status);
-    },
-    async _approveTaskWithVariables(status) {
-      let variables = {
-        pass: !!status
-      };
-      if (this.form.technicianId) {
-        variables['technicianId'] = this.form.technicianId;
-      }
+        this._approveTaskWithVariables(status);
+      },
 
-      let API = !!status ? approveTaskWithVariables : rejectTask;
-      API({
-        id: this.taskId,
-        reason: this.form.reason,
-        variables
-      }).then((res) => {
-        if (res.data.code != '-1') {
-          this.$emit('handleAudit', {
-            status,
-            title: status === 0 ? '驳回' : ''
-          });
+      async _approveTaskWithVariables(status) {
+        // return;
+        let variables = {
+          pass: !!status
+        };
+        if (this.form.technicianId) {
+          variables['technicianId'] = this.form.technicianId;
         }
-      });
-    },
 
-    getTableValue() {
-      return new Promise((resolve, reject) => {
-        this.$emit('getTableValue', async (data) => {
-          resolve(await data);
+        let API = !!status ? approveTaskWithVariables : rejectTask;
+        API({
+          id: this.taskId,
+          reason: this.form.reason,
+          variables
+        }).then((res) => {
+          if (res.data.code != '-1') {
+            this.$emit('handleAudit', {
+              status,
+              title: status === 0 ? '驳回' : ''
+            });
+          }
         });
-      });
-    },
+      },
 
-    //更多
-    handleCommand(command) {
-      if (command === 'cancel') {
-        this.$confirm("是否确认作废?", {
-          type: 'warning',
-          cancelButtonText: '取消',
-          confirmButtonText: '确定'
-        }).then(() => {
-          cancel({
-            id: this.taskId,
-            reason: this.form.reason,
-            businessId: this.businessId,
-          }).then(() => {
-            this.$emit('handleClose');
-          }).catch(() => {
-            this.$message.error("流程作废失败");
+      getTableValue() {
+        return new Promise((resolve, reject) => {
+          this.$emit('getTableValue', async (data) => {
+            resolve(await data);
           });
-        }).catch(() => {
         });
-      }
-    },
+      },
 
-  }
-};
+      //更多
+      handleCommand(command) {
+        if (command === 'cancel') {
+          this.$confirm('是否确认作废?', {
+            type: 'warning',
+            cancelButtonText: '取消',
+            confirmButtonText: '确定'
+          })
+            .then(() => {
+              cancel({
+                id: this.taskId,
+                reason: this.form.reason,
+                businessId: this.businessId
+              })
+                .then(() => {
+                  this.$emit('handleClose');
+                })
+                .catch(() => {
+                  this.$message.error('流程作废失败');
+                });
+            })
+            .catch(() => {});
+        }
+      }
+    }
+  };
 </script>
 
 <style lang="scss"></style>