yusheng 1 rok temu
rodzic
commit
c6d25613b3

+ 3 - 3
src/views/bpm/processInstance/detail.vue

@@ -68,7 +68,7 @@
                     </el-image>
                   </label>
 
-                  <p v-if="item.reason">
+                  <p v-if="item.reason&&item.result!=4">
                     <el-tag :type="getTimelineItemType(item)">{{
                       item.reason
                     }}</el-tag>
@@ -191,9 +191,9 @@
           this.tasks = [];
           // 移除已取消的审批
           response.forEach((task) => {
-            if (task.result !== 4) {
+            // if (task.result !== 4) {
               this.tasks.push(task);
-            }
+            // }
           });
           // 排序,将未完成的排在前面,已完成的排在后面;
           this.tasks.sort((a, b) => {

+ 8 - 8
src/views/contractManage/contractBook/components/addDialog.vue

@@ -564,13 +564,13 @@
       @changeParent="getReturnOrderInfo"
     >
     </return-order-dialog>
-    <generate-contracts-dialog
+    <generate-contracts-dialog1
       :isContractBook="true"
-      v-if="generateContractsDialogFlag"
+      v-if="generateContractsDialogFlag1"
       ref="generateContractsDialogRef"
-      :generate-contracts-dialog-flag.sync="generateContractsDialogFlag"
+      :generate-contracts-dialog-flag1.sync="generateContractsDialogFlag1"
       @changeParent="changeInquiryDetailList"
-    ></generate-contracts-dialog>
+    ></generate-contracts-dialog1>
     <process-submit-dialog
       api-fun-name="contractStatusAPI"
       :processSubmitDialogFlag.sync="processSubmitDialogFlag"
@@ -622,7 +622,7 @@
     getReturnSaleOrderrecordDetail,
     saleReturnGetByIdAPI
   } from '@/api/saleManage/returnGoods';
-  import generateContractsDialog from './generateContractsDialog.vue';
+  import generateContractsDialog1 from './generateContractsDialog1.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
 
   export default {
@@ -644,7 +644,7 @@
     mixins: [dictMixins],
     components: {
       processSubmitDialog,
-      generateContractsDialog,
+      generateContractsDialog1,
       returnOrderDialog,
       opportunityDialog,
       inquiryManageList,
@@ -763,7 +763,7 @@
         processSubmitDialogFlag: false,
         opportunityDialogFlag: false,
         returnOrderDialogFlag: false,
-        generateContractsDialogFlag: false,
+        generateContractsDialogFlag1: false,
         title: '',
         row: {},
         formDef,
@@ -981,7 +981,7 @@
       },
       handleHJQD() {
         if (!this.form.sourceId) return this.$message.warning('请先选择核价单');
-        this.generateContractsDialogFlag = true;
+        this.generateContractsDialogFlag1 = true;
         this.$nextTick(() => {
           this.$refs.generateContractsDialogRef.open({
             id: this.form.sourceId

+ 128 - 0
src/views/contractManage/contractBook/components/generateContractsDialog1.vue

@@ -0,0 +1,128 @@
+<template>
+  <ele-modal
+    custom-class="ele-dialog-form long-dialog-form"
+    :centered="true"
+    :visible.sync="generateContractsDialogFlag1"
+    title="生成合同"
+    :close-on-click-modal="false"
+    append-to-body
+    width="80%"
+    :before-close="cancel"
+  >
+    <inquiryTable
+      :radio="form.winnerId"
+      v-for="item in form.supplierList"
+      :key="item.supplierId"
+      style="margin-top: 15px"
+      status="Detail"
+      v-if="item.resultList.some(i=>i.isWinner)"
+      :obj="item"
+    >
+      <template #generateContracts>
+        <el-button @click="handleGenerate(item)" type="primary" plain>生成合同</el-button>
+        <span v-if="item.isGeneratedContract"
+              style="color: red;margin-left: 5px;font-size: 11px">*已生成过合同,请注意</span>
+      </template>
+
+    </inquiryTable>
+    <div slot="footer" class="footer">
+      <el-button @click="cancel">返回</el-button>
+    </div>
+  </ele-modal>
+
+</template>
+<script>
+import inquiryTable from "@/views/purchasingManage/inquiryManage/components/inquiryTable.vue";
+import {generateContract, getpurchaseinquiry} from "@/api/purchasingManage/inquiryManage";
+import {contactDetail, contactTypeTree} from "@/api/saleManage/contact";
+
+export default {
+  name: "generateContractsDialog",
+  components: {inquiryTable},
+  props: {
+    generateContractsDialogFlag1: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  data() {
+    return {
+      form: {
+        supplierList: []
+      },
+      treeList: []
+    };
+  },
+  methods: {
+    async open(row) {
+
+      await this.getInquiryData(row.id);
+      await this.getTreeData();
+    },
+    async getInquiryData(id) {
+      this.loading = true;
+      const data = await getpurchaseinquiry(id);
+      this.loading = false;
+      if (data) {
+        this.form = data;
+      }
+    },
+    //获取合同分类
+    async getTreeData() {
+      try {
+        this.treeLoading = true;
+        const res = await contactTypeTree({ id: '20' });
+        this.treeLoading = false;
+        if (res?.code === '0') {
+          this.treeList = res.data;
+
+          return this.treeList;
+        }
+      } catch (error) {
+      }
+      this.treeLoading = false;
+    },
+    async handleGenerate(i) {
+     
+      
+      let contractInfo = await generateContract({inquiryIds: [this.form.id], supplierId: i.supplierId});
+      let contact = await contactDetail(contractInfo.contractVO.partbId);
+      contractInfo.contractVO.contractName = contact.base.simpleName;
+      await this.setContractInfo(contractInfo);
+
+    },
+    async setContractInfo(data) {
+      if (data) {
+        //获取优惠金额和总计的差价
+        let diffPrice = Number(data.contractVO.totalPrice) - Number(data.contractVO.discountTotalPrice)
+        data.productList.forEach((item) => {
+          if (data.contractVO.discountTotalPrice === 0) {
+            item.discountTotalPrice = 0
+            item.discountSinglePrice = 0
+            return
+          }
+          if (!data.contractVO.discountTotalPrice) {
+            item.discountTotalPrice = item.totalPrice
+            item.discountSinglePrice = item.singlePrice
+            return
+          }
+          //获取详情每条的小计
+          // 使用小计除以总价得出该条数据小计占比 在乘以差价或的该条数据应承担的差价 在小计-应承担差价获得折让后的小计
+          item.discountTotalPrice = (Number(item.totalPrice) - Number(item.totalPrice) / Number(data.contractVO.totalPrice) * diffPrice).toFixed(2)
+          //使用折让后的小计除以数量得到单价
+          item.discountSinglePrice = (Number(item.discountTotalPrice) / Number(item.totalCount)).toFixed(2)
+        })
+        this.$emit('changeParent', {data});
+        this.cancel();
+      }
+    },
+    cancel() {
+      this.$emit("update:generateContractsDialogFlag1", false);
+    },
+  }
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 4 - 5
src/views/purchasingManage/purchaseOrder/invoice/components/inventoryTable.vue

@@ -754,12 +754,11 @@
       validateTotalCount(row) {
         return (rule, value, callback) => {
           if (isNaN(value) || Number(value) <= 0) {
-            this.$message.error('请输入大于0的数');
+            // this.$message.error('请输入大于0的数');
             callback(new Error('请输入大于0的数字'));
-          } else if (row.totalCount > row.orderTotalCount) {
-            this.$message.warning('收货数量大于总数量');
-            //new Error('进货数量不能大于总数量')
-            callback();
+          } else if ((row.totalCount+(row.receiveTotalCount||0)) > row.orderTotalCount) {
+            // this.$message.warning('收货数量大于采购总数量');
+            callback(new Error('收货数量大于采购总数量'));
           } else {
             callback();
           }