Răsfoiți Sursa

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

002201 2 ani în urmă
părinte
comite
2f7c92b5c2

+ 89 - 41
src/views/material/basicFile/details.vue

@@ -10,7 +10,7 @@
         <el-col :span="1.5">
           <el-button-group>
             <el-button size="small" @click="handleSave"
-                       v-hasPermi="['system:material:add', `${maintainNewVersion ? '' : 'system:material:versions'}`]">
+              v-hasPermi="['system:material:add', `${maintainNewVersion ? '' : 'system:material:versions'}`]">
               保存
             </el-button>
           </el-button-group>
@@ -108,13 +108,13 @@
         <el-form :inline="true" label-position="right" :model="basicData.value">
           <!-- <el-form-item label="所属组织"></el-form-item> -->
           <el-form-item label="物料编码">
-            <el-input v-model="basicData.value.code" readonly size="small"></el-input>
+            <el-input v-model="basicData.value.code" readonly size="mini"></el-input>
           </el-form-item>
           <el-form-item label="物料名称">
-            <el-input v-model="basicData.value.name" readonly size="small"></el-input>
+            <el-input v-model="basicData.value.name" readonly size="mini"></el-input>
           </el-form-item>
           <el-form-item label="英文名称">
-            <el-input v-model="basicData.value.enName" readonly size="small"></el-input>
+            <el-input v-model="basicData.value.enName" readonly size="mini"></el-input>
           </el-form-item>
           <!-- <el-form-item label="版本号"></el-form-item> -->
         </el-form>
@@ -128,8 +128,14 @@
               <div class="md-main">
 
                 <!-- 基本信息展示表单 -->
-                <el-form v-if="activeMainTab == 'material'" :inline="true" label-position="right"
-                         :hide-required-asterisk="true" :model="basicData.value">
+                <el-form 
+                  v-if="activeMainTab == 'material'" 
+                  :inline="true" 
+                  label-position="right"
+                  :hide-required-asterisk="true" 
+                  :model="basicData.value" 
+                  ref="basicMessageRef"
+                >
 
                   <el-row :gutter="10">
                     <el-col :span="8" v-for="f in basicData.form" style="text-align: right;">
@@ -137,18 +143,26 @@
                         <!--  :disabled="!(headerParam.isEdit && f.edit)" -->
 
                         <!-- 多选框 -->
-                        <el-form-item v-if="f.attribute == 'checkbox'" style="text-align: left;" :prop="f.prop">
+                        <el-form-item v-if="f.attribute == 'checkbox'" style="text-align: left;" :prop="f.prop"
+                        :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]" >
                           <!-- :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]" -->
 
-                          <el-checkbox :label="f.name" name="type" v-model="basicData.value[f.prop]" true-label="0"
-                                       false-label="2" :disabled="handleJudge(f)">
+                          <el-checkbox 
+                            :label="f.name" name="type" 
+                            v-model="basicData.value[f.prop]" 
+                            true-label="0"
+                            false-label="2" 
+                            :disabled="handleJudge(f)"
+                            size="mini"
+                          >
                           </el-checkbox>
                         </el-form-item>
 
                         <!-- 下拉框   -->
                         <el-form-item v-else-if="f.attribute == 'select'"
                                       :id="(updateButtonGroup && f.apiUrl) ? 'selected' : ''"
-                                      :prop="f.apiUrl ? `${f.prop}Name` : f.prop">
+                                      :prop="f.apiUrl ? `${f.prop}Name` : f.prop"
+                                      :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]">
                           <!-- :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]" -->
 
                           <template slot="label">
@@ -162,14 +176,16 @@
 
                           <!-- 参照 -->
                           <el-select v-if="f.apiUrl" v-model="basicData.value[`${f.prop}Name`]" placeholder="请选择"
+                              size="mini" :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]"
                                      :key="basicData.value[f.prop]" :disabled="handleJudge(f)"
                                      @focus="f.apiUrl && handleQueryMore(f, '', { name: 'basicData', prop: f.prop })">
                             <div slot="empty"></div>
                           </el-select>
 
                           <!-- 字典 -->
-                          <el-select v-if="f.dictId" v-model="basicData.value[f.prop]" placeholder="请选择"
-                                     :key="basicData.value[f.prop]" :disabled="handleJudge(f)">
+                          <el-select v-if="f.dictId" v-model="basicData.value[f.prop]" placeholder="请选择" size="mini"
+                                     :key="basicData.value[f.prop]" :disabled="handleJudge(f)"
+                                     :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]">
                             <el-option v-if="f.dictId" v-for="d in f.dictValue" :key="d.dictValue" :label="d.dictLabel"
                                        :value="d.dictValue">
                             </el-option>
@@ -186,7 +202,7 @@
                         </el-form-item>
 
                         <!--attribute 文本 数字 文本域 为null -->
-                        <el-form-item v-else :prop="f.prop">
+                        <el-form-item v-else :prop="f.prop" :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]">
                           <!-- :rules="[{ required: f.required, message: `请输入${f.name}`, trigger: 'blur' }]" -->
 
                           <template slot="label">
@@ -198,8 +214,10 @@
                             </el-tooltip>
                           </template>
 
-                          <el-input size="small" v-model="basicData.value[f.prop]" :type="f.attribute || 'text'"
-                                    :readonly="handleJudge(f)">
+                          <el-input size="mini" v-model="basicData.value[f.prop]" :type="f.attribute || 'text'"
+                                    :readonly="handleJudge(f)"
+                                    :rules="[{ required: f.required, message: `请选择${f.name}`, trigger: 'change' }]"
+                                    >
                           </el-input>
                         </el-form-item>
 
@@ -247,7 +265,7 @@
 
                             <!-- 多选框 -->
                             <el-form-item v-if="m.attribute == 'checkbox'">
-                              <el-checkbox :label="m.name" name="type" v-model="medcineData.value[m.prop]"
+                              <el-checkbox :label="m.name" name="type" v-model="medcineData.value[m.prop]" size="mini"
                                            :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
                                            true-label="0" false-label="2">
                               </el-checkbox>
@@ -258,7 +276,7 @@
 
                               <!-- 参照弹窗 -->
                               <el-select v-if="m.apiUrl" v-model="medcineData.value[`${m.prop}Name`]" placeholder="请选择"
-                                         :key="medcineData.value[m.prop]"
+                                         :key="medcineData.value[m.prop]" size="mini"
                                          :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
                                          @focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
 
@@ -269,7 +287,7 @@
 
                               <!-- 下拉选择 -->
                               <el-select v-else v-model="medcineData.value[m.prop]" placeholder="请选择"
-                                         :key="medcineData.value[m.prop]"
+                                         :key="medcineData.value[m.prop]" size="mini"
                                          :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
                                          @focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
 
@@ -288,7 +306,7 @@
 
                             <!-- 文本、数字、textarae -->
                             <el-form-item v-else :label="m.name">
-                              <el-input size="small" v-model="medcineData.value[m.prop]" :type="m.attribute || 'text'"
+                              <el-input size="mini" v-model="medcineData.value[m.prop]" :type="m.attribute || 'text'"
                                         :readonly="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')">
                               </el-input>
                             </el-form-item>
@@ -345,16 +363,16 @@
                 <el-divider content-position="left">审计信息</el-divider>
                 <el-form :inline="true" label-position="right" :model="basicData.value">
                   <el-form-item label="创建人">
-                    <el-input v-model="basicData.value.createByName" size="small" readonly></el-input>
+                    <el-input v-model="basicData.value.createByName" size="mini" readonly></el-input>
                   </el-form-item>
                   <el-form-item label="创建时间">
-                    <el-input v-model="basicData.value.createTime" size="small" readonly></el-input>
+                    <el-input v-model="basicData.value.createTime" size="mini" readonly></el-input>
                   </el-form-item>
                   <el-form-item label="最后修改人">
-                    <el-input v-model="basicData.value.updateByName" size="small" readonly></el-input>
+                    <el-input v-model="basicData.value.updateByName" size="mini" readonly></el-input>
                   </el-form-item>
                   <el-form-item label="最后修改时间">
-                    <el-input v-model="basicData.value.updateTime" size="small" readonly></el-input>
+                    <el-input v-model="basicData.value.updateTime" size="mini" readonly></el-input>
                   </el-form-item>
 
                 </el-form>
@@ -402,24 +420,24 @@
           <template slot-scope="scope">
             <!-- :prop="mt.prop" -->
             <!-- 多选框 -->
-            <el-checkbox size="small" v-if="mt.attribute == 'checkbox'" :disabled="!(materialType.isEdit && mt.edit)"
+            <el-checkbox size="mini" v-if="mt.attribute == 'checkbox'" :disabled="!(materialType.isEdit && mt.edit)"
                          true-label="0" false-label="2" v-model="scope.row[mt.prop]"/>
 
             <!-- 下拉框 / 参照弹窗---- 药品类别编码 scope.row[`${mt.prop}Name`] -->
-            <el-select size="small" v-else-if="mt.attribute == 'select' && mt.apiUrl" placeholder="请选择"
+            <el-select size="mini" v-else-if="mt.attribute == 'select' && mt.apiUrl" placeholder="请选择"
                        :disabled="!(materialType.isEdit && mt.edit)" v-model="scope.row[mt.prop]"
                        :key="scope.row[mt.prop]"
                        @focus="mt.apiUrl && handleQueryMore(mt, '', { name: 'materialType', prop: scope.row })">
               <div slot="empty"></div>
             </el-select>
 
-            <!-- <el-select size="small" v-else-if="mt.attribute == 'select' && mt.dictId"  placeholder="请选择"
+            <!-- <el-select size="mini" v-else-if="mt.attribute == 'select' && mt.dictId"  placeholder="请选择"
               :disabled="!(materialType.isEdit && mt.edit)" v-model="scope.row[mt.prop]" :key="scope.row[mt.prop]">
               <el-option v-if="mt.dictId" v-for="d in mt.dictId" :key="d.dictValue" :label="d.dictLabel"
                 :value="d.dictValue"></el-option></el-select> -->
 
             <!-- 其他类型 -->
-            <el-input v-else size="small" v-model="scope.row[mt.prop]" :readonly="!(materialType.isEdit && mt.edit)"/>
+            <el-input v-else size="mini" v-model="scope.row[mt.prop]" :readonly="!(materialType.isEdit && mt.edit)"/>
           </template>
 
         </el-table-column>
@@ -438,9 +456,15 @@
 
 
     <!-- 其他页签的操作 -->
-    <el-dialog :title="otherDeatils.title" :visible.sync="otherDeatils.show" show-close width="70%"
-               :before-close="handleCloseOtherDetails" :close-on-press-escape="false" :close-on-click-modal="false"
-               class="otherDialog">
+    <el-dialog 
+      :title="otherDeatils.title" 
+      :visible.sync="otherDeatils.show" 
+      show-close width="70%"
+      :before-close="handleCloseOtherDetails" 
+      :close-on-press-escape="false" 
+      :close-on-click-modal="false"
+      class="otherDialog"
+    >
       <div v-loading="otherDeatils.loading">
         <!-- 其他标签页操作  修改、删除 -->
         <el-row :gutter="10" class="mb10">
@@ -567,7 +591,7 @@
       <div>
         <el-row>
           <el-col :span="1.5">
-            <el-input v-model="MoreDataDialog.key" placeholder="过滤" size="small" @change="handleFilterRefer"/>
+            <el-input v-model="MoreDataDialog.key" placeholder="过滤" size="mini" @change="handleFilterRefer"/>
           </el-col>
         </el-row>
         <!-- 树形 -->
@@ -1557,18 +1581,28 @@
       // 保存修改
       handleSave() {
         console.log('保存修改');
-        this.loading = true;
-        // 普通保存修改
-        this.updateButtonGroup && this.handleSaveMaterial(() => {
-          this.updateButtonGroup = false;
-          this.handleRefresh();
-        });
+        this.$refs['basicMessageRef'].validate(async (valid) => {
+          
+          if(valid){
+            this.loading = true;
+            // 普通保存修改
+            this.updateButtonGroup && this.handleSaveMaterial(() => {
+              this.updateButtonGroup = false;
+              this.handleRefresh();
+            });
 
-        // 维护新版本保存修改
-        this.maintainNewVersion && this.handleSaveNewVersion(() => {
-          this.maintainNewVersion = false;
-          this.handleRefresh();
+            // 维护新版本保存修改
+            this.maintainNewVersion && this.handleSaveNewVersion(() => {
+              this.maintainNewVersion = false;
+              this.handleRefresh();
+            })
+          }else {
+            this.$message.error('存在必填项未填写');
+            console.log('error submit!!');
+            return false;
+          }
         })
+        
       },
       // 物料类别列表选中
       handleSelectionType(list) {
@@ -2069,6 +2103,20 @@
           return item;
         })
       },
+      "basicData.value.isMedicine": {
+        handler(nVal, oVal) {
+          this.basicData.form = this.basicData.form.map(formItem =>{
+
+            if(formItem.prop === 'productionPermit'){
+
+              formItem.required = nVal == '0' ? true :false;
+
+            }
+            return formItem;
+          })
+        },
+        deep: true,
+      },
 
     },
 

+ 2 - 2
src/views/purchase/DemandSummary/add.vue

@@ -24,10 +24,10 @@
         <el-table-column show-overflow-tooltip label="品名" align="center" prop="materialName" width="180"/>
         <el-table-column show-overflow-tooltip label="规格" align="center" prop="specification"/>
         <el-table-column show-overflow-tooltip label="单位" align="center" prop="unit"/>
-        <el-table-column show-overflow-tooltip label="生产厂家/代理人" align="center" prop="manufacturer" width="150"/>
+        <el-table-column show-overflow-tooltip label="生产厂家/代理人" align="center" prop="manufacturerName" width="150"/>
         <el-table-column show-overflow-tooltip label="末级供应仓库存量" align="center" prop="lastWarehouseQty" width="150"/>
         <el-table-column show-overflow-tooltip label="月销量" align="center" prop="totalMonthlySales"/>
-        <el-table-column show-overflow-tooltip label="采购周期" align="center" prop="buyPeriod"/>
+        <el-table-column show-overflow-tooltip label="采购周期" align="center" prop="puPeriod"/>
         <el-table-column show-overflow-tooltip label="最终净需求量" align="center" prop="resDemandQty" width="150"/>
         <el-table-column show-overflow-tooltip label="最终采购量" align="center" prop="puQtyRes" width="150"/>
         <el-table-column show-overflow-tooltip label="需求客户" align="center" prop="customerName"/>

+ 9 - 8
src/views/purchase/DemandSummary/index.vue

@@ -236,7 +236,7 @@
           <el-button type="primary" size="small" @click="confirms">确认</el-button>
           <el-button type="primary" size="small" @click="cancels">取消</el-button>
           <el-button type="primary" size="small" @click="audits">审核</el-button>
-          <!-- <el-button type="primary" size="small" @click="cancelAudits">弃审</el-button> -->
+          <el-button type="primary" size="small" @click="closeLine">行关闭</el-button>
 
           <el-dropdown size="small" @command="handleCommand">
             <el-button size="small" type="primary" style="margin: 0 10px;">
@@ -295,7 +295,7 @@
             </template>
           </el-table-column>
           <el-table-column show-overflow-tooltip label="建议采购量" align="center" prop="suggestionPurchase" width="100px"/>
-          <el-table-column show-overflow-tooltip label="建议净采购量" align="center" prop="suggestBuyQty" width="100px"/>
+          <!-- <el-table-column show-overflow-tooltip label="建议净采购量" align="center" prop="suggestBuyQty" width="100px"/> -->
           <el-table-column show-overflow-tooltip label="最终采购量" align="center" prop="finalBuyQty" width="150">
             <template slot-scope="scope">
                 <el-input :disabled="scope.row.status !== '1' || lineDisable" v-model="scope.row.finalBuyQty"/>
@@ -306,14 +306,14 @@
           <el-table-column show-overflow-tooltip label="四级品类" align="center" prop="materialClassifyFourName" width="150px"/>
           <el-table-column show-overflow-tooltip label="采购员" align="center" prop="buyerName" width="150px">
             <template slot-scope="scope">
-                <el-input :disabled="scope.row.status !== '1' || lineDisable" size="small" v-model="scope.row.buyerName">
+                <el-input readonly :disabled="scope.row.status !== '1' || lineDisable" size="small" v-model="scope.row.buyerName">
                   <el-button size="small" :disabled="scope.row.status !== '1' || lineDisable" slot="append" icon="el-icon-more" @click="chooseSon(scope.$index, 'CONTACTS_PARAM', true, '采购员')"></el-button>
                 </el-input>
             </template>
           </el-table-column>
           <el-table-column show-overflow-tooltip label="默认采购组织" align="center" prop="purchaseOrgName" width="280px">
             <template slot-scope="scope">
-                <el-input :disabled="scope.row.status !== '1' || lineDisable" size="small" v-model="scope.row.purchaseOrgName">
+                <el-input readonly :disabled="scope.row.status !== '1' || lineDisable" size="small" v-model="scope.row.purchaseOrgName">
                   <el-button size="small" :disabled="scope.row.status !== '1' || lineDisable" slot="append" icon="el-icon-more" @click="chooseSon(scope.$index, 'ORG_PARAM', true, '默认采购组织')"></el-button>
                 </el-input>
             </template>
@@ -374,7 +374,7 @@ import Refers from '@/components/Refers/refers.vue'
 import TreeRefers from '@/components/Refers/treeRefer.vue'
 import popDialog from '@/components/PopDialog/index.vue'
 import CollapseTransition from '@/components/MyCollapse/collapse.vue'
-import {getSummaryList, auditSummary, confirmSummary , cancelSummary , cancelAuditSummary, editSummaryList } from '@/api/purchase/DemandSummary.js'
+import {getSummaryList, auditSummary, confirmSummary , cancelSummary , shutDownSummary, editSummaryList } from '@/api/purchase/DemandSummary.js'
 export default {
   name: 'demandSummary',
   dicts: ['sys_row_status', 'predictive_classify', 'sys_period_unit', 'sys_business', 'sys_bill_source'],
@@ -649,18 +649,19 @@ export default {
         })
       }
     },
-    cancelAudits() {
+    // 行关闭
+    closeLine() {
       if (this.ids.length == 0) {
         this.$modal.msgWarning("请选中至少一条数据");
       } else {
         let param = this.ids.join()
-        cancelAuditSummary(param).then(res => {
+        shutDownSummary(param).then(res => {
           if (res.code === 200) {
             this.$modal.msgSuccess("操作成功");
             this.getList(this.queryParams)
           }
         })
-      } 
+      }
     },
     // 搜索区参照选择
     chooseRefer(type, isPage, title, stordocId) {

+ 50 - 10
src/views/purchase/PurchaseDemandList/add.vue

@@ -56,7 +56,9 @@
 
          <el-col :span="1.5">
             <el-form-item label="客户负责人">
-              <el-input disabled v-model="basicForm.customerPrincipal" size="small" style="width: 200px"></el-input>
+              <el-select disabled size="small" v-model="basicForm.customerPrincipal" style="width: 200px">
+                <el-option v-for="item in manOptions" :key="item.id" :label="item.name" :value="item.code"/>
+              </el-select>
             </el-form-item>
           </el-col>
 
@@ -419,7 +421,7 @@
               </el-form-item>
             </template>
           </el-table-column> -->
-          <el-table-column show-overflow-tooltip label="末级供应库存组织" align="center" prop="superiorStockOrgName" width="200px"></el-table-column>
+          <el-table-column show-overflow-tooltip label="末级供应库存组织" align="center" prop="lastStockOrgName" width="200px"></el-table-column>
           <el-table-column show-overflow-tooltip label="中心仓可用量" align="center"  prop="centralWarehouseQty" width="200px"/>
           <el-table-column show-overflow-tooltip label="调拨单号" align="center"  prop="allotCode"></el-table-column>
           <el-table-column show-overflow-tooltip label="收货地址" align="center"  prop="deliveryAddressName" width="200px">
@@ -535,6 +537,7 @@ export default {
         remark: '',
         puDemandItemList: []
       },
+      delDemandItemList: [],
       options: [{
         value: 'Y', label: '是',
       }, {
@@ -554,6 +557,7 @@ export default {
       // },
       tableIndex: null,
       orgOptions: [],
+      manOptions: [],
       personOptions: [],
       deptOptions: [],
       customerOptions: [],
@@ -626,7 +630,9 @@ export default {
     },
     // 获取预留数量
     getYLSL(scope) {
-      scope.row.reservedQty = Math.ceil(scope.row.reservedProportion.replace('%', '') / 100 * scope.row.qty)
+      if (scope.row.reservedProportion) {
+        scope.row.reservedQty = Math.ceil(scope.row.reservedProportion.replace('%', '') / 100 * scope.row.qty)
+      }
       // 如果选择预留比例,预留周期必填
       if(scope.row.reservedQty && scope.row.reservedQty !== 0) {
         this.isYl = true
@@ -679,10 +685,22 @@ export default {
                 }
               })
             } else if (this.sonPageStu == 'edit') {
-              editDemand(this.basicForm).then(res => {
+              let list = []
+              list.push(...this.basicForm.puDemandItemList, ...this.delDemandItemList)
+              // 深拷贝一下参数对象
+              let param = JSON.parse(JSON.stringify(this.basicForm))
+              console.log('深拷贝对象',param);
+              param.puDemandItemList = list
+              // this.basicForm.puDemandItemList.push(...this.delDemandItemList)
+              editDemand(param).then(res => {
                 if (res.code === 200) {
                   this.$modal.msgSuccess("编辑成功");
-                  this.back()
+                  this.$emit('jugislist', true)
+                  let queryParams = {
+                    pageNum: 1,
+                    pageSize: 10
+                  }
+                  this.$emit('refresh', queryParams)
                 }
               })
             }
@@ -818,12 +836,23 @@ export default {
         this.BDZT = true
       }
     },
-    delLine(index) {
+    delLine(index, row) {
       console.log('删除行:', index)
+      console.log('改变行:', row)
       // this.basicForm.puDemandItemList = this.basicForm.puDemandItemList.filter(item => {
       //   return item.id !== row.id
       // })
-      this.basicForm.puDemandItemList.splice(index,1)
+      row.delFlag = '2'
+      // this.basicForm.puDemandItemList.splice(index,1)
+      let delList = []
+      delList = this.basicForm.puDemandItemList.filter(item => {
+        return item.delFlag == '2'
+      })
+      this.basicForm.puDemandItemList = this.basicForm.puDemandItemList.filter(item => {
+        return item.delFlag == '0'
+      })
+      this.delDemandItemList.push(...delList)
+      console.log('删除的数组',this.delDemandItemList)
     },
     back() {
       this.$emit('jugislist', true)
@@ -847,7 +876,8 @@ export default {
               this.basicForm = reciveForm
               if(this.basicForm.org) { this.reBackRefer('ORG_PARAM', this.basicForm.org) }
               if(this.basicForm.customer) { this.reBackRefer('CUSTOMER_PARAM', this.basicForm.customer) }
-              if(this.basicForm.demandPersonal) { this.reBackRefer('CONTACTS_PARAM', this.basicForm.demandPersonal) }
+              if(this.basicForm.customerPrincipal) { this.reBackRefer('CONTACTS_PARAM', this.basicForm.customerPrincipal, '客户负责人') }
+              if(this.basicForm.demandPersonal) { this.reBackRefer('CONTACTS_PARAM', this.basicForm.demandPersonal, '需求人员') }
               if(this.basicForm.demandDept) { this.reBackRefer('DEPT_PARAM', this.basicForm.demandDept) }
               // 详情时将收货仓库id赋值给stordocId
               // 如果业务类型为补单需求,则明细内补单供应商编码可以编辑
@@ -873,7 +903,7 @@ export default {
       this.dialog.config = val
     },
     // 回显参照框
-    reBackRefer(type, id) {
+    reBackRefer(type, id, title) {
       getRefer({type: type, id: id}).then(res => {
         if(type == 'ORG_PARAM') {
           this.orgOptions = res.rows
@@ -881,9 +911,12 @@ export default {
         if (type == 'CUSTOMER_PARAM') {
           this.customerOptions = res.rows
         }
-        if (type == 'CONTACTS_PARAM') {
+        if (type == 'CONTACTS_PARAM' && title == '需求人员') {
           this.personOptions = res.rows
         }
+        if (type == 'CONTACTS_PARAM' && title == '客户负责人') {
+          this.manOptions = res.rows
+        }
         if (type == 'DEPT_PARAM') {
           this.deptOptions = res.rows
         }
@@ -981,6 +1014,12 @@ export default {
       this.basicForm.puDemandItemList[this.tableIndex].lastWarehouse = null
       this.basicForm.puDemandItemList[this.tableIndex].lastAllocation = null
       this.basicForm.puDemandItemList[this.tableIndex].lastAllocationName = null
+      this.basicForm.puDemandItemList[this.tableIndex].materialClassifyOne = null
+      this.basicForm.puDemandItemList[this.tableIndex].materialClassifyTwo = null
+      this.basicForm.puDemandItemList[this.tableIndex].materialClassifyThree = null
+      this.basicForm.puDemandItemList[this.tableIndex].materialClassifyFour = null
+      this.basicForm.puDemandItemList[this.tableIndex].lastStockOrg = null
+      this.basicForm.puDemandItemList[this.tableIndex].lastStockOrgName = null
       // 通过选择物料查询采购员
       queryMan(selection[0].id).then(res => {
         if(res.code === 200 && res.rows.length !== 0) {
@@ -1070,6 +1109,7 @@ export default {
     cleanCustomer() {
       this.basicForm.customer = ''
       this.basicForm.customerName = ''
+      this.basicForm.customerCode = ''
       if (this.basicForm.puDemandItemList.length !== 0) {
         this.basicForm.puDemandItemList.forEach(item => {
           item.demandCustomerName = ''

+ 7 - 6
src/views/purchase/purchase-order/add/column.js

@@ -620,10 +620,10 @@ export const TabColumns = [
       },
       { key: "notaxMoney", title: "无税金额", inputType: "Input", disabled:true,},
       // { key: "priceSource", title: "价格目录ID", inputType: "Input", },
-      { key: "isStorage", title: "入库关闭", inputType: "Checkbox", },
-      { key: "isInvoice", title: "开票关闭", inputType: "Checkbox", },
-      { key: "isArrival", title: "到货关闭", inputType: "Checkbox", },
-      { key: "isPayment", title: "付款关闭", inputType: "Checkbox", },
+      { key: "isStorage", title: "入库关闭", inputType: "Checkbox", disabled:true, },
+      { key: "isInvoice", title: "开票关闭", inputType: "Checkbox", disabled:true, },
+      { key: "isArrival", title: "到货关闭", inputType: "Checkbox", disabled:true,},
+      { key: "isPayment", title: "付款关闭", inputType: "Checkbox", disabled:true, },
       { key: "isGift", title: "赠品", inputType: "Checkbox", },
       {
         key: "goodsWarehouseName",
@@ -778,8 +778,9 @@ export const TabColumns = [
       {
         key: "materialName",
         title: "物料",
-        require: true,
         inputType: "PopoverSelect",
+        width: 180,
+        require: true,
         valueKey: "id",
         referName: "MATERIAL_PARAM",
         dataMapping: {
@@ -806,7 +807,7 @@ export const TabColumns = [
           isDrug:'isDrug',
         },
         queryParams: () => ({}),
-        width: 180
+        width:180,
       },
       { 
         key: "specification",

+ 18 - 17
src/views/purchase/purchase-order/add/index.vue

@@ -190,24 +190,21 @@ export default {
       // prop.splice(index, 1);
     },
     // 同步子表物料
-    handleSynchronousMaterial(key1, key2) {
+    handleSynchronousMaterial(tableOne, tableTwo) {
       let _this = this;
-      // this.params[key1]-- -> this.params[key2]
-      this.params[key1] &&
-        this.params[key1].forEach((item, index) => {
+      // this.params[tableOne]-- -> this.params[tableTwo]
+      this.params[tableOne] &&
+
+        this.params[tableOne].forEach((item, index) => {
+
           for (const key in item) {
-            if (key in _this.params[key2][index]) {
-              if (
-                key == "material" ||
-                key == "materialName" ||
-                key == "materialCode"
-              ) {
-                _this.params[key2][index].material = item.material;
-                _this.params[key2][index].materialName = item.materialName;
-                _this.params[key2][index].materialCode = item.materialCode;
-              } else {
-                _this.params[key2][index][key] = item[key];
-              }
+            
+            if (key in _this.params[tableTwo][index]) {
+
+              _this.params[tableTwo][index].material = item.material;
+
+              key !== 'id' && ( _this.params[tableTwo][index][key] = item[key]);
+
             }
           }
         });
@@ -636,7 +633,11 @@ export default {
             :label="column.title"
             :name="column.key"
           >
-            <el-table :data="params[column.key]" style="width: 100%">
+            <el-table 
+              :data="params[column.key]" 
+              style="width: 100%"
+              :height="params[column.key].length ? 300 : 100"
+            >
               <el-table-column
                 v-for="(cColumn, cIndex) in column.tableColumns"
                 :key="cIndex"

+ 19 - 18
src/views/purchase/purchase-order/edit/index.vue

@@ -67,24 +67,21 @@ export default {
 
     },
     // 同步子表物料
-    handleSynchronousMaterial(key1, key2) {
+    handleSynchronousMaterial(tableOne, tableTwo) {
       let _this = this;
-      // this.params[key1]-- -> this.params[key2]
-      this.params[key1] &&
-        this.params[key1].forEach((item, index) => {
+      // this.params[tableOne]-- -> this.params[tableTwo]
+      this.params[tableOne] &&
+
+        this.params[tableOne].forEach((item, index) => {
+
           for (const key in item) {
-            if (key in _this.params[key2][index]) {
-              if (
-                key == "material" ||
-                key == "materialName" ||
-                key == "materialCode"
-              ) {
-                _this.params[key2][index].material = item.material;
-                _this.params[key2][index].materialName = item.materialName;
-                _this.params[key2][index].materialCode = item.materialCode;
-              } else {
-                _this.params[key2][index][key] = item[key];
-              }
+
+            if (key in _this.params[tableTwo][index]) {
+
+                _this.params[tableTwo][index].material = item.material;
+
+                key !== 'id' && ( _this.params[tableTwo][index][key] = item[key]);
+
             }
           }
         });
@@ -543,7 +540,11 @@ export default {
             :label="column.title" 
             :name="column.key"
             >
-            <el-table :data="params[column.key].filter(item => item.delFlag === '0')" style="width: 100%">
+            <el-table 
+              :data="params[column.key].filter(item => item.delFlag === '0')" 
+              style="width: 100%"
+              :height="params[column.key].filter(item => item.delFlag === '0').length ? 300 : 100"
+            >
               <el-table-column label="序号">
                 <template slot-scope="scope">
                   {{ scope.$index + 1 }}
@@ -654,5 +655,5 @@ export default {
         </el-row>
       </el-card>
     </el-form>
-  </el-drawer>
+  </el-drawer> 
 </template>

+ 1 - 1
src/views/purchase/transferOrder/add.vue

@@ -166,7 +166,7 @@
          </el-col>
         <el-col :span="1.5">
             <el-form-item label="调出仓库">
-              <el-select clearable size="small" v-model="basicForm.deliveryWarehouse" :disabled="sonDisable || isOrg" @change="controlDCHW" @focus="chooseRefer('WAREHOUSE_PARAM', true, '调出仓库', basicForm.deliveryInventoryOrg)" style="width: 200px">
+              <el-select clearable size="small" v-model="basicForm.deliveryWarehouse" :disabled="sonDisable || isOrg" @change="controlDCHW" @focus="chooseRefer('WAREHOUSE_PARAM', true, '调出仓库', basicForm.deliveryInventoryOrg, 'N', 'N')" style="width: 200px">
                 <el-option v-for="item in chuHouseOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>

+ 1 - 1
vue.config.js

@@ -37,7 +37,7 @@ module.exports = {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `http://172.16.100.107:8080/drp-admin`, //测试
-        // target: `http://test-sy.derom.com/drp-admin`, //测试
+        target: `http://test-sy.derom.com/drp-admin`, //测试
         // target: `http://release-sy.derom.com/drp-admin`, //预发
         // target: `http://sy.derom.com/drp-admin`, //生产
         // target: `http://172.16.63.202:8000/drp-admin`, // D本地