黄梓星 il y a 1 an
Parent
commit
d6e4919f52

+ 1 - 0
package.json

@@ -81,6 +81,7 @@
     "eslint": "7.15.0",
     "eslint-plugin-vue": "7.2.0",
     "lint-staged": "10.5.3",
+    "regenerator-runtime": "^0.14.0",
     "runjs": "4.4.2",
     "sass": "1.32.13",
     "sass-loader": "10.1.1",

+ 110 - 92
src/views/purchase/PurchaseDemandList/add_bak (2).vue

@@ -179,44 +179,46 @@
           @selection-change="handleSelectionChange"
           :cell-class-name="cellClassName"
           ref="table"
+          :rules="tableRules"
           show-header-overflow="tooltip"
           show-overflow="tooltip"
           keep-source
           beautifyTable
           :checkbox-config="{highlight: true, trigger: 'row'}"
-          :edit-config="{trigger: 'click', mode: 'cell'}">
+          :edit-config="{trigger: 'click', mode: 'row'}"
+          :validConfig="{autoPos: true}">
         >
-          <ux-table-column type="checkbox" resizable fixed="left"/>
-          <ux-table-column title="序号" type="index" align="center" width="50px" fixed="left"/>
-          <ux-table-column title="行号" align="center" field="rowNo" fixed="left">
+          <ux-table-column resizable type="checkbox" fixed="left"/>
+          <ux-table-column resizable title="序号" type="index" align="center" width="50px"/>
+          <ux-table-column resizable title="行号" align="center" field="rowNo" width="50px">
             <template v-slot:edit="scope">
               {{ scope.row.rowNo = scope.rowIndex + 1 + "0" }}
             </template>
           </ux-table-column>
-          <ux-table-column title="默认采购组织" align="center" field="purOrgName" width="200px"/>
-          <ux-table-column title="需求客户" align="center" field="demandCustomerName" width="180px"/>
-          <ux-table-column title="行状态" align="center" field="status" :formatter="hangStatus" width="100px"/>
-          <ux-table-column title="物料编码" align="center" field="materialCode" width="220px" :render-header="addRedStar" fixed="left" edit-render>
+          <ux-table-column resizable title="默认采购组织" align="center" field="purOrgName" width="100px"/>
+          <ux-table-column resizable title="需求客户" align="center" field="demandCustomerName" width="100px"/>
+          <ux-table-column resizable title="行状态" align="center" field="status" :formatter="hangStatus" width="100px"/>
+          <ux-table-column resizable title="物料编码" align="center" field="materialCode" width="100px" :render-header="addRedStar" :edit-render="{autofocus: '.el-input__inner'}">
             <template v-slot:edit="scope">
                 <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.materialCode" @paste.native="pasteMe($event, scope, scope.rowIndex)">
                   <el-button size="mini" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseMaterial(scope.rowIndex)"></el-button>
                 </el-input>
             </template>
           </ux-table-column>
-          <ux-table-column title="物料名称" align="center"  field="materialName" width="200px" fixed="left"/>
-          <ux-table-column title="规格" align="center"  field="specification" />
-          <ux-table-column title="型号" align="center"  field="model"/>
-          <ux-table-column title="单位" align="center"  field="unitName"/>
-          <ux-table-column title="生产厂家/代理人" align="center"  field="manufacturerName" width="230px"/>
-          <ux-table-column title="最小包装" align="center"  field="minPackage" width="100px"/>
-          <ux-table-column title="月均销量" align="center"  field="averageQtyMonth" width="100px"/>
-          <ux-table-column title="需求可用周期" align="center"  field="demandPeriod" width="120px"/>
-          <ux-table-column title="实际(业务)需求量" align="center"  field="qty" width="150px" :render-header="addRedStar" edit-render>
+          <ux-table-column resizable title="物料名称" align="center"  field="materialName" width="200px"/>
+          <ux-table-column resizable title="规格" align="center"  field="specification" />
+          <ux-table-column resizable title="型号" align="center"  field="model"/>
+          <ux-table-column resizable title="单位" align="center"  field="unitName"/>
+          <ux-table-column resizable title="生产厂家/代理人" align="center"  field="manufacturerName" width="230px"/>
+          <ux-table-column resizable title="最小包装" align="center"  field="minPackage" width="100px"/>
+          <ux-table-column resizable title="月均销量" align="center"  field="averageQtyMonth" width="100px"/>
+          <ux-table-column resizable title="需求可用周期" align="center"  field="demandPeriod" width="120px"/>
+          <ux-table-column resizable title="实际(业务)需求量" align="center"  field="qty" width="150px" :render-header="addRedStar" edit-render>
             <template v-slot:edit="scope">
                 <el-input type="number" min="0" clearable :disabled="sonDisable" size="mini" v-model="scope.row.qty" @input="getYLSL(scope)" @paste.native="pasteMe($event, scope, scope.rowIndex)"/>
             </template>
           </ux-table-column>
-          <ux-table-column title="紧急标识" align="center" field="isUrgency" width="100px" edit-render>
+          <ux-table-column resizable title="紧急标识" align="center" field="isUrgency" width="100px" edit-render>
             <template v-slot:edit="scope">
                 <el-switch
                   v-model="scope.row.isUrgency"
@@ -228,35 +230,35 @@
                 </el-switch>
             </template>
           </ux-table-column>
-          <ux-table-column title="收货仓库" align="center"  field="deliveryWarehouseName" width="200px" edit-render>
+          <ux-table-column resizable title="收货仓库" align="center"  field="deliveryWarehouseName" width="200px" edit-render>
             <template v-slot:edit="scope">
                 <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.deliveryWarehouseName" @clear="clearHang(scope.rowIndex, '选择收货仓库')">
                   <el-button size="mini" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseCangKu(scope.rowIndex, 'WAREHOUSE_PARAM', true, '选择收货仓库', scope.row.puOrg)"></el-button>
                 </el-input>
             </template>
           </ux-table-column>
-          <ux-table-column title="收货货位" align="center"  field="deliveryAllocationName" width="200px" edit-render>
+          <ux-table-column resizable title="收货货位" align="center"  field="deliveryAllocationName" width="200px" edit-render>
             <template v-slot:edit="scope">
                 <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.deliveryAllocationName" @clear="clearHang(scope.rowIndex, '选择收货货位')">
                   <el-button size="mini" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="choosehuoWei(scope.rowIndex, 'ALLOCATION_PARAM', true, '选择收货货位', scope.row.deliveryWarehouse)"></el-button>
                 </el-input>
             </template>
           </ux-table-column>
-          <ux-table-column title="业务备注" align="center"  field="remark" width="150px" edit-render>
+          <ux-table-column resizable title="业务备注" align="center"  field="remark" width="150px" edit-render>
             <template v-slot:edit="scope">
                 <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.remark"/>
             </template>
           </ux-table-column>
-          <ux-table-column title="物料一级分类" align="center" field="materialClassifyOneName" width="150px"/>
-          <ux-table-column title="物料二级分类" align="center" field="materialClassifyTwoName" width="150px"/>
-          <ux-table-column title="物料三级分类" align="center" field="materialClassifyThreeName" width="150px"/>
-          <ux-table-column title="物料四级分类" align="center" field="materialClassifyFourName" width="150px"/>
-          <ux-table-column title="最小批量" align="center"  field="minBatch" width="100px"/>
-          <ux-table-column title="最小订货量" align="center"  field="minOrderQty" width="120px"/>
-          <ux-table-column title="采购员" align="center" field="buyerName" width="100px"/>
-          <!-- <ux-table-column title="采购员" align="center"  field="buyer"/> -->
-          <ux-table-column title="采购周期" align="center"  field="puPeriod" width="120px"/>
-          <ux-table-column title="交货日期" align="center"  field="deliveryDate" width="230px" edit-render>
+          <ux-table-column resizable title="物料一级分类" align="center" field="materialClassifyOneName" width="150px"/>
+          <ux-table-column resizable title="物料二级分类" align="center" field="materialClassifyTwoName" width="150px"/>
+          <ux-table-column resizable title="物料三级分类" align="center" field="materialClassifyThreeName" width="150px"/>
+          <ux-table-column resizable title="物料四级分类" align="center" field="materialClassifyFourName" width="150px"/>
+          <ux-table-column resizable title="最小批量" align="center"  field="minBatch" width="100px"/>
+          <ux-table-column resizable title="最小订货量" align="center"  field="minOrderQty" width="120px"/>
+          <ux-table-column resizable title="采购员" align="center" field="buyerName" width="100px"/>
+          <!-- <ux-table-column resizable title="采购员" align="center"  field="buyer"/> -->
+          <ux-table-column resizable title="采购周期" align="center"  field="puPeriod" width="120px"/>
+          <ux-table-column resizable title="交货日期" align="center"  field="deliveryDate" width="230px" edit-render>
             <template v-slot:edit="scope">
                 <el-date-picker
                   v-model="scope.row.deliveryDate"
@@ -270,11 +272,11 @@
                 </el-date-picker>
             </template>
           </ux-table-column>
-          <ux-table-column title="有效期" align="center"  field="expiry" width="100px"/>
-          <ux-table-column title="有效期单位" align="center"  field="expiryUnit" width="100px"/>
-          <ux-table-column title="安全库存" align="center"  field="safeStock" width="100px"/>
-          <ux-table-column title="注册人" align="center"  field="registrant" width="100px"/>
-          <ux-table-column title="预留比例" align="center" field="reservedProportion" width="120px" edit-render>
+          <ux-table-column resizable title="有效期" align="center"  field="expiry" width="100px"/>
+          <ux-table-column resizable title="有效期单位" align="center"  field="expiryUnit" width="100px"/>
+          <ux-table-column resizable title="安全库存" align="center"  field="safeStock" width="100px"/>
+          <ux-table-column resizable title="注册人" align="center"  field="registrant" width="100px"/>
+          <ux-table-column resizable title="预留比例" align="center" field="reservedProportion" width="120px" edit-render>
             <template v-slot:edit="scope">
                 <el-select clearable :disabled="sonDisable" size="mini" v-model="scope.row.reservedProportion" @change="getYLSL(scope)" @clear="cleanYLSL(scope)">
                   <el-option v-for=" dict in dict.type.sys_reserve_ratio" :key="dict.value" :label="dict.label" :value="dict.value">
@@ -282,17 +284,17 @@
                 </el-select>
             </template>
           </ux-table-column>
-          <ux-table-column title="预留周期" align="center" field="reservedPeriod" width="120px" edit-render>
+          <ux-table-column resizable title="预留周期" align="center" field="reservedPeriod" width="120px" edit-render>
             <template v-slot:edit="scope">
                 <el-input type="number" min="0" clearable :disabled="sonDisable" size="mini" v-model="scope.row.reservedPeriod"></el-input>
             </template>
           </ux-table-column>
-          <ux-table-column title="预留数量" align="center"  field="reservedQty" width="120px"/>
-          <ux-table-column title="集团预测分类" align="center"  field="forecastClassify" width="120px"/>
-          <ux-table-column title="近一月需求" align="center"  field="onemonthAvgVolume" width="100px"/>
-          <ux-table-column title="近三月需求" align="center"  field="threemonthAvgVolume" width="100px"/>
-          <ux-table-column title="采购在途" align="center"  field="puFreight" width="100px"/>
-          <ux-table-column title="补单标识" align="center"  field="isReplenishment" width="100px" edit-render>
+          <ux-table-column resizable title="预留数量" align="center"  field="reservedQty" width="120px"/>
+          <ux-table-column resizable title="集团预测分类" align="center"  field="forecastClassify" width="120px"/>
+          <ux-table-column resizable title="近一月需求" align="center"  field="onemonthAvgVolume" width="100px"/>
+          <ux-table-column resizable title="近三月需求" align="center"  field="threemonthAvgVolume" width="100px"/>
+          <ux-table-column resizable title="采购在途" align="center"  field="puFreight" width="100px"/>
+          <ux-table-column resizable title="补单标识" align="center"  field="isReplenishment" width="100px" edit-render>
             <template v-slot:edit="scope">
                 <el-switch
                   v-model="scope.row.isReplenishment"
@@ -304,18 +306,18 @@
                 </el-switch>
             </template>
           </ux-table-column>
-          <ux-table-column title="补单供应商" align="center"  field="additionalSupplierName" width="200px" :render-header="anotherRedStar" edit-render>
+          <ux-table-column resizable title="补单供应商" align="center"  field="additionalSupplierName" width="200px" :render-header="anotherRedStar" edit-render>
             <template v-slot:edit="scope">
                 <el-input clearable :disabled="sonDisable || BDZT" size="mini" v-model="scope.row.additionalSupplierName" @clear="clearHang(scope.rowIndex, '选择补单供应商')" @paste.native="pasteMe($event, scope, scope.rowIndex)">
                   <el-button size="mini" :disabled="sonDisable || BDZT" slot="append" icon="el-icon-more" @click="chooseDept(scope.rowIndex, 'SUPPLIER_PARAM', true, '选择补单供应商')"></el-button>
                 </el-input>
             </template>
           </ux-table-column>
-          <ux-table-column title="末级供应库存组织" align="center" field="lastStockOrgName" width="180px"></ux-table-column>
-          <ux-table-column title="末级供应仓库" align="center"  field="lastWarehouseName" width="150px"/>
-          <ux-table-column title="末级供应货位" align="center"  field="lastAllocationName" width="150px"/>
-          <ux-table-column title="中心仓可用量" align="center"  field="centralWarehouseQty" width="120px"/>
-          <ux-table-column title="调拨状态" align="center"  field="statusAllot" width="100px" edit-render>
+          <ux-table-column resizable title="末级供应库存组织" align="center" field="lastStockOrgName" width="180px"></ux-table-column>
+          <ux-table-column resizable title="末级供应仓库" align="center"  field="lastWarehouseName" width="150px"/>
+          <ux-table-column resizable title="末级供应货位" align="center"  field="lastAllocationName" width="150px"/>
+          <ux-table-column resizable title="中心仓可用量" align="center"  field="centralWarehouseQty" width="120px"/>
+          <ux-table-column resizable title="调拨状态" align="center"  field="statusAllot" width="100px" edit-render>
             <template v-slot:edit="scope">
                 <el-switch
                   v-model="scope.row.statusAllot"
@@ -327,25 +329,25 @@
                 </el-switch>
             </template>
           </ux-table-column>
-          <ux-table-column title="调拨单号" align="center"  field="allotCode"></ux-table-column>
-          <ux-table-column title="调拨占有量" align="center"  field="allotQty" width="100px"/>
-          <ux-table-column title="最终净需求量" align="center"  field="resDemandQty" width="120px"/>
-          <ux-table-column title="最终采购执行数量" align="center"  field="executeQty" width="150px">
+          <ux-table-column resizable title="调拨单号" align="center"  field="allotCode"></ux-table-column>
+          <ux-table-column resizable title="调拨占有量" align="center"  field="allotQty" width="100px"/>
+          <ux-table-column resizable title="最终净需求量" align="center"  field="resDemandQty" width="120px"/>
+          <ux-table-column resizable title="最终采购执行数量" align="center"  field="executeQty" width="150px">
             <template v-slot:edit="scope">
               {{ scope.row.executeQty ? scope.row.executeQty : 0 }}
             </template>
           </ux-table-column>
-          <ux-table-column title="收货地址" align="center"  field="deliveryAddressName" width="200px" edit-render>
+          <ux-table-column resizable title="收货地址" align="center"  field="deliveryAddressName" width="200px" edit-render>
             <template v-slot:edit="scope">
                 <el-input clearable :disabled="sonDisable" size="mini" v-model="scope.row.deliveryAddressName" @clear="clearHang(scope.rowIndex, '选择收货地址')" @paste.native="pasteMe($event, scope, scope.rowIndex)">
                   <el-button size="mini" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseDept(scope.rowIndex, 'ADDRESS_PARAM', true, '选择收货地址')"></el-button>
                 </el-input>
             </template>
           </ux-table-column>
-          <ux-table-column title="联系人" align="center"  field="contacts"/>
-          <ux-table-column title="联系人电话" align="center"  field="contactsPhone" width="150px"/>
-          <ux-table-column title="详细地址" align="center"  field="address" width="200px"/>
-          <ux-table-column title="价格类型" align="center"  field="priceType" width="120px" edit-render>
+          <ux-table-column resizable title="联系人" align="center"  field="contacts"/>
+          <ux-table-column resizable title="联系人电话" align="center"  field="contactsPhone" width="150px"/>
+          <ux-table-column resizable title="详细地址" align="center"  field="address" width="200px"/>
+          <ux-table-column resizable title="价格类型" align="center"  field="priceType" width="120px" edit-render>
             <template v-slot:edit="scope">
                 <el-select clearable :disabled="sonDisable" size="mini" v-model="scope.row.priceType">
                   <el-option v-for=" dict in dict.type.sys_price_type" :key="dict.value" :label="dict.label" :value="dict.value">
@@ -353,7 +355,7 @@
                 </el-select>
             </template>
           </ux-table-column>
-          <ux-table-column title="是否客户指定" align="center"  field="isCustomerSpecified" width="120px" edit-render>
+          <ux-table-column resizable title="是否客户指定" align="center"  field="isCustomerSpecified" width="120px" edit-render>
             <template v-slot:edit="scope">
                 <el-switch
                   v-model="scope.row.isCustomerSpecified"
@@ -365,7 +367,7 @@
                 </el-switch>
             </template>
           </ux-table-column>
-          <!-- <ux-table-column title="批号锁定标识" align="center" field="isBatchLock" width="100px">
+          <!-- <ux-table-column resizable title="批号锁定标识" align="center" field="isBatchLock" width="100px">
             <template v-slot:edit="scope">
               <el-form-item class="hang">
                   <el-switch
@@ -379,8 +381,8 @@
               </el-form-item>
             </template>
           </ux-table-column> -->
-          <ux-table-column title="采购备注" align="center"  field="updateCause" width="150px"/>
-          <ux-table-column title="可用量" align="center"  field="availableQty"/>
+          <ux-table-column resizable title="采购备注" align="center"  field="updateCause" width="150px"/>
+          <ux-table-column resizable title="可用量" align="center"  field="availableQty"/>
 
           <ux-table-column
             fixed="right"
@@ -501,6 +503,7 @@ import {getRefer} from '@/api/purchase/basic.js'
 // 明细行选择物料参照
 import popDialog from '@/components/PopDialog/index.vue'
 import ElTableInfiniteScroll from "el-table-infinite-scroll";
+import 'regenerator-runtime/runtime'
 export default {
   directives: {
     "el-table-infinite-scroll": ElTableInfiniteScroll,
@@ -714,6 +717,11 @@ export default {
       loadDisabled: true,
       page: 0,
       total: 5,
+      // 表格校验规则
+      tableRules: {
+        materialCode : [{required: true, message: '物料编码必填'}],
+        qty: [{required: true, message: '实际业务需求量必填'}],
+      },
     }
   },
   created() {
@@ -948,37 +956,44 @@ export default {
       if(this.basicForm.puDemandItemList.length !== 0) {
         this.$refs['basic'].validate((valid, obj) => {
           if(valid) {
-            this.$modal.loading("保存中...");
-            if(this.sonPageStu == 'add') {
-              this.handleData()
-              addDemand(this.basicForm).then(res => {
-                console.log(333)
-                if (res.code === 200) {
-                  this.$modal.notifySuccess(res.msg);
-                  this.$modal.closeLoading();
-                  this.back()
-                }
-              }).catch(err => {
-                this.$modal.closeLoading();
-              })
-            } else if (this.sonPageStu == 'edit') {
-              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.notifySuccess(res.msg);
-                  this.$modal.closeLoading();
-                  this.back()
+            // 加上表格校验
+              this.$refs.table.fullValidate().then(data=> {
+              if(!data) {
+                this.$modal.loading("保存中...");
+                if(this.sonPageStu == 'add') {
+                  this.handleData()
+                  addDemand(this.basicForm).then(res => {
+                    console.log(333)
+                    if (res.code === 200) {
+                      this.$modal.notifySuccess(res.msg);
+                      this.$modal.closeLoading();
+                      this.back()
+                    }
+                  }).catch(err => {
+                    this.$modal.closeLoading();
+                  })
+                } else if (this.sonPageStu == 'edit') {
+                  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.notifySuccess(res.msg);
+                      this.$modal.closeLoading();
+                      this.back()
+                    }
+                  }).catch(err => {
+                    this.$modal.closeLoading();
+                  })
                 }
-              }).catch(err => {
-                this.$modal.closeLoading();
-              })
-            }
+              } else {
+                this.$modal.notifyError('校验不通过');
+              }
+            })
           } else {
             // 校验加弹窗
             const jiaoyan = []
@@ -1773,6 +1788,9 @@ export default {
 ::v-deep .elx-body--row .success-row {
   background-color: #f11616!important;
 }
+::v-deep .uxbeautifyTableClass .elx-table--header-wrapper {
+  color: #606266;
+}
 .pltzTxt{
   text-align: right;
   font-size: medium;

+ 6 - 0
src/views/purchase/apply/see/index.vue

@@ -100,6 +100,9 @@ export default {
       this.visible = false;
       this.tabName = tabName;
     },
+    async jumpOA() {
+      console.log('参数',this)
+    },
   },
   created() {},
   mounted() {},
@@ -124,6 +127,9 @@ export default {
     >
       <template slot="title">
         <span>{{ title }}</span>
+        <!-- <el-button :size="$attrs.size" :loading="loading" @click="jumpOA">
+          流程跳转
+        </el-button> -->
         <el-button :size="$attrs.size" :loading="loading" @click="hide">
           取 消
         </el-button>

+ 2 - 2
vue.config.js

@@ -37,10 +37,10 @@ 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本地
+        target: `http://172.16.63.202:8000/drp-admin`, // D本地
         // target: `http://172.16.62.241:8000/drp-admin`, //笑寒本地
         // target: `http://172.16.13.152:8000/drp-admin`, //豪哥本地
         // target: `http://172.16.13.47:8000/drp-admin`, //这是一个美女的本地