Przeglądaj źródła

新增/修改采购需求时,当选择需求类型为生产性,则需要关联销售订单或销售合同

Z 2 lat temu
rodzic
commit
ac3fec6a40

+ 118 - 0
src/views/bpm/handleTask/components/purchaseNeedManage/addDialog.vue

@@ -58,6 +58,27 @@
             />
           </el-form-item>
         </el-col>
+        <el-col v-if="form.sourceType==1" :span="12">
+          <el-form-item label="销售合同">
+            <el-input
+              clearable
+              v-model="form.saleContractName"
+              @click.native="handleContractBtn"
+              @clear="clearContrcat"
+              placeholder="请选择"/>
+          </el-form-item>
+        </el-col>
+        <el-col v-if="form.sourceType==1" :span="12">
+          <el-form-item label="销售订单">
+            <el-input
+              clearable
+              v-model="form.saleOrderNo"
+              @click.native="handleOrderBtn"
+              placeholder="请输入"
+              @clear="clearSaleOrder"
+            />
+          </el-form-item>
+        </el-col>
         <el-col :span="12">
           <el-form-item prop="remark" label="是否接受拆单" label-width="120px">
             <el-select
@@ -120,6 +141,15 @@
       ref="inventoryTable"
       :delDetailIds="delDetailIds"
     ></inventoryTable>
+    <contractListDialog
+      ref="selectContractRef"
+      @changeParent="changeContract"
+      :hasGeneratedOrder="''"
+    ></contractListDialog>
+    <orderListDialog
+      ref="orderListDialogRef"
+      @changeParent="changeOrder"
+    ></orderListDialog>
   </div>
 </template>
 
@@ -131,6 +161,9 @@
   import { getDetail } from '@/api/bpm/components/purchasingManage/purchaseNeedManage';
   import { copyObj } from '@/utils/util';
   import { listOrganizations } from '@/api/system/organization';
+  import ContractListDialog from "@/views/bpm/handleTask/components/saleOrder/contractListDialog.vue";
+  import OrderListDialog from "@/views/bpm/handleTask/components/saleOrder/invoice/orderListDialog.vue";
+  import {getTableList as getSaleOrderListAPI} from "@/api/bpm/components/saleManage/saleorder";
 
   export default {
     props: {
@@ -140,6 +173,8 @@
     },
     mixins: [dictMixins],
     components: {
+      OrderListDialog,
+      ContractListDialog,
       fileUpload,
       inventoryTable,
       personSelect
@@ -155,11 +190,17 @@
         requirementName: '',
         sourceId: '',
         sourceType: '',
+        saleContractName: '',
+        saleContractNo: '',
+        saleContractId: '',
+        saleOrderId: '',
+        saleOrderNo: '',
         files: [],
         acceptUnpack: 1
       };
 
       return {
+        clearing: false, //是否清除合同
         visible: false,
         title: '',
         delDetailIds: [],
@@ -265,6 +306,83 @@
         }
       },
 
+      //选择合同弹框
+      handleContractBtn() {
+        if (this.clearing) return;
+        let item = {
+          id: this.form.saleContractId
+        };
+        this.$refs.selectContractRef.open(item);
+      },
+      //选择合同回调
+      changeContract(obj) {
+        this.form = Object.assign({}, this.form, {
+          saleContractId: obj.id,
+          saleContractName: obj.contractName,
+          saleContractNo: obj.contractNo,
+        });
+        this.getSaleOrderList(this.form.saleContractId)
+      },
+      /* 表格数据源 */
+      async getSaleOrderList(contractId) {
+        let res = await getSaleOrderListAPI({
+          pageNum: 1,
+          size: 10,
+          contractId
+        });
+        this.form.saleOrderId = res.list[0]?.id
+        this.form.saleOrderNo = res.list[0]?.orderNo
+
+      },
+      //清除合同
+      clearContrcat() {
+        this.clearing = true;
+        this.form.saleContractNo = ''
+        this.form.saleContractId = ''
+        this.form.saleContractName = ''
+        setTimeout(() => {
+          this.clearing = false;
+        }, 500);
+      },
+
+      handleSourceType(){
+        this.form.saleOrderId = ''
+        this.form.saleOrderNo = ''
+        this.form.saleContractNo = ''
+        this.form.saleContractId = ''
+        this.form.saleContractName = ''
+      },
+
+      //选择订单弹框
+      handleOrderBtn() {
+        if (this.clearing) return;
+        let item = {
+          id: this.form.saleOrderId
+        };
+        this.$refs.orderListDialogRef.open(item);
+      },
+
+      //选择订单回调
+      changeOrder(obj) {
+        this.form = Object.assign({}, this.form, {
+          saleOrderId: obj.id,
+          saleOrderNo: obj.orderNo,
+          saleContractId: obj.contractId,
+          saleContractName: obj.contractName,
+          saleContractNo: obj.contractNo,
+        })
+      },
+//清除订单
+      clearSaleOrder() {
+        this.clearing = true;
+        this.form.saleOrderId = ''
+        this.form.saleOrderNo = ''
+        setTimeout(() => {
+          this.clearing = false;
+        }, 500);
+      },
+
+
       getValidate() {
         return Promise.all([
           new Promise((resolve, reject) => {

+ 11 - 0
src/views/bpm/handleTask/components/purchaseNeedManage/detailDialog.vue

@@ -33,6 +33,17 @@
             {{ form.requireUserName }}
           </el-form-item>
         </el-col>
+        <el-col v-if="form.sourceType==1" :span="12">
+          <el-form-item label="销售合同">
+            {{ form.saleContractName }}
+          </el-form-item>
+        </el-col>
+        <el-col v-if="form.sourceType==1" :span="12">
+          <el-form-item label="销售订单">
+            {{ form.saleOrderNo }}
+          </el-form-item>
+        </el-col>
+
         <el-col :span="12">
           <el-form-item prop="remark" label="是否接受拆单">
             {{

+ 8 - 1
src/views/bpm/handleTask/components/saleOrder/contractListDialog.vue

@@ -67,7 +67,12 @@
     props: {
       type: {
         default: 1,
-        type: Number
+        type: Number,
+
+      },
+      hasGeneratedOrder:{
+        default: 0,
+        type: [Number,String]
       }
     },
     data() {
@@ -234,6 +239,8 @@
           pageNum: page,
           size: limit,
           type:this.type,
+          status:2,
+          hasGeneratedOrder:this.hasGeneratedOrder,
           ...where
         });
       },