Prechádzať zdrojové kódy

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

002201 1 rok pred
rodič
commit
82faafc9cc

+ 28 - 25
src/views/material/basicFile/details.vue

@@ -135,6 +135,7 @@
                   :hide-required-asterisk="true"
                   :model="basicData.value"
                   ref="basicMessageRef"
+                  :rules="rules"
                 >
 
                   <el-row :gutter="10">
@@ -143,9 +144,7 @@
                         <!--  :disabled="!(headerParam.isEdit && f.edit)" -->
 
                         <!-- 多选框 -->
-                        <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-form-item v-if="f.attribute == 'checkbox'" style="text-align: left;" :prop="f.prop">
 
                           <el-checkbox
                             :label="f.name" name="type"
@@ -160,11 +159,9 @@
 
                         <!-- 下拉框   -->
                         <el-form-item v-else-if="f.attribute == 'select'"
-                                      :id="(updateButtonGroup && f.apiUrl) ? 'selected' : ''"
-                                      :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' }]" -->
-
+                          :id="(updateButtonGroup && f.apiUrl) ? 'selected' : ''"
+                          :prop="f.apiUrl ? `${f.prop}Name` : f.prop"
+                        >
                           <template slot="label">
                             <el-tooltip class="item" effect="dark" placement="top-start" :disabled="f.name.length < 10">
                               <span>{{ f.name }}</span>
@@ -175,20 +172,27 @@
                           </template>
 
                           <!-- 参照 -->
-                          <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 })">
+                          <el-select v-if="f.apiUrl" 
+                            v-model="basicData.value[`${f.prop}Name`]" 
+                            placeholder="请选择"
+                            size="mini"
+                            :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="请选择" 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-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>
 
                           </el-select>
@@ -203,10 +207,7 @@
                         </el-form-item>
 
                         <!--attribute 文本 数字 文本域 为null -->
-                        <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' }]" -->
-
+                        <el-form-item v-else :prop="f.prop">
                           <template slot="label">
                             <el-tooltip class="item" effect="dark" placement="top-start" :disabled="f.name.length < 10">
                               <span>{{ f.name }}</span>
@@ -217,9 +218,7 @@
                           </template>
 
                           <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' }]"
-                          >
+                                    :readonly="handleJudge(f)">
                           </el-input>
                         </el-form-item>
 
@@ -633,6 +632,7 @@
   import materialApi from '@/api/material/basic';
   import {getDicts as getDicts} from '@/api/system/dict/data'
   import arrayUtils from '../tools/arrayUtils';
+  import { initRules} from './init/index'
 
   export default {
     name: 'material-details',
@@ -645,6 +645,7 @@
         count: 1,
         refer: 1,
         loading: false,
+        rules:{},
         // 维护新版本
         maintainNewVersion: false,
         // 详情固定标签页
@@ -2086,6 +2087,8 @@
         // 基本信息
         await this.getTagList('material', (form) => {
           this.basicData.form = form;
+          this.rules = initRules(this.basicData.form);
+          console.log(this.rules,'this.rules--------------');
           this.getMaterialDetails(this.materialId, 'material');
         })
         // 医疗行业

+ 13 - 0
src/views/material/basicFile/init/index.js

@@ -0,0 +1,13 @@
+// 初始化校验
+export const initRules = (prop) => {
+  const rules = {};
+  prop
+    .filter((column) => column.required)
+    .forEach((column) => {
+      const message = `${column.name}不能为空`;
+      rules[column.prop] = [
+        { required: true, message: message, trigger: "change" },
+      ];
+    });
+  return rules;
+};

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

@@ -166,6 +166,7 @@
           max-height="300"
           style="font-size: 12px;"
           @selection-change="handleSelectionChange"
+          :cell-class-name="cellClassName"
         >
           <el-table-column show-overflow-tooltip type="selection"/>
           <el-table-column show-overflow-tooltip label="序号" type="index" align="center"/>
@@ -994,6 +995,12 @@ export default {
         }
       })
     },
+    // 单元格标红
+    cellClassName({row, column, rowIndex, columnIndex}) {
+      if(this.basicForm.isSpeical == 'N' && column.label == '需求可用周期' && Number(row.demandPeriod) > 1.5 && Number(row.demandPeriod) > Number(row.minOrderQty)) {
+        return 'success-row';
+      }
+    },
     handleSelectionChange(selection) {
       this.ids = selection.map(item =>{
         return item.id
@@ -1345,4 +1352,7 @@ export default {
 .hang ::v-deep .el-form-item__content{
   margin-left: 0px !important;
 }
+.el-table ::v-deep .success-row {
+  background: #f11616;
+}
 </style>

+ 9 - 0
src/views/purchase/purchase-order/add/column.js

@@ -27,6 +27,14 @@ export const Columns = [
     inputType: "Input",  
     isShow:true,
   },
+  { 
+    key: "erpOrderCode", 
+    title: "erp订单编号", 
+    inputType: "Input",  
+    readonly: true,
+    disabled: true,
+    isShow:true,
+  },
   {
     key: "code",
     title: "订单编号",
@@ -340,6 +348,7 @@ export const Columns = [
     queryParams: () => ({}),
     width: 200,
   },
+
   { 
     key: "isClose", 
     title: "最终关闭", 

+ 4 - 0
src/views/purchase/purchase-order/column.js

@@ -102,6 +102,10 @@ export const TableColumns = [
   { key: "marketingCode", title: "销售订单号" },
   // { key: "flowId", title: "OA流程ID" },
   { key: "oaDemandNo", title: "OA需求单号" },
+  { 
+    key: "erpOrderCode", 
+    title: "erp订单编号", 
+  },
   { key: "address", title: "收货地址" },
   { key: "contacts", title: "收获联系人" },
   {

+ 60 - 10
src/views/purchase/transferOrder/add.vue

@@ -593,17 +593,17 @@
     </el-form>
 
     <div class="btn_group">
-      <!-- <el-col :span="1.5">
-        <el-button type="primary" size="mini" plain @click="copy" v-if="sonPageStu == 'check'">复制</el-button>
-      </el-col> -->
       <el-col :span="1.5">
-        <el-button type="danger" size="mini" plain @click="toNC" v-if="sonPageStu == 'check' && row.status == '2'">重传NC</el-button>
+        <el-button style="margin-right: 10px;" type="primary" size="mini" plain @click="copy" v-if="sonPageStu == 'check'">复制</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" size="mini" plain @click="save" v-if="sonPageStu == 'add' || sonPageStu == 'edit'">保存</el-button>
+        <el-button style="margin-right: 10px;" type="danger" size="mini" plain @click="toNC" v-if="sonPageStu == 'check' && row.status == '2'">重传NC</el-button>
       </el-col>
-      <el-col :span="1.5" style="margin: 0 10px;">
-        <el-button type="primary" size="mini" plain @click="submit" v-if="sonPageStu == 'check' && (row.status == '0' || row.status == '3')">提交</el-button>
+      <el-col :span="1.5">
+        <el-button style="margin-right: 10px;" type="primary" size="mini" plain @click="save" v-if="sonPageStu == 'add' || sonPageStu == 'edit'">保存</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button style="margin-right: 10px;" type="primary" size="mini" plain @click="submit" v-if="sonPageStu == 'check' && (row.status == '0' || row.status == '3')">提交</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button size="mini" plain @click="back">返回</el-button>
@@ -793,7 +793,56 @@ export default {
       scope.row.mainQty = scope.row.qty
     },
     copy() {
-
+      this.$modal.msgSuccess("复制成功");
+      this.sonPageStu = 'add'
+      this.sonDisable = false
+      this.getDetails(this.row)
+      this.basicForm.id = ''
+      this.basicForm.code = ''
+      this.basicForm.createByName = ''
+      this.basicForm.createBy = ''
+      this.basicForm.createTime = ''
+      this.basicForm.isSendWms = ''
+      this.basicForm.ncCode = ''
+      this.basicForm.oaId = ''
+      this.basicForm.updateBy = ''
+      this.basicForm.updateByName = ''
+      this.basicForm.updateTime = ''
+    },
+    handleData() {
+      console.log('222')
+      // 复制新增把id,编码,创建人置为空,子表去掉id
+      this.basicForm.id = ''
+      this.basicForm.code = ''
+      this.basicForm.createBy = ''
+      this.basicForm.createByName = ''
+      this.basicForm.createTime = ''
+      this.basicForm.isSendWms = ''
+      this.basicForm.ncCode = ''
+      this.basicForm.oaId = ''
+      this.basicForm.updateBy = ''
+      this.basicForm.updateByName = ''
+      this.basicForm.updateTime = ''
+      if (this.materialInfo.length !== 0) {
+        this.materialInfo.forEach(item => {
+          if (item.allotId) {
+            delete item.allotId
+          }
+          if (item.id) {
+            delete item.id
+          }
+          if (item.createBy) {
+            delete item.createBy
+            delete item.createByName
+            delete item.createTime
+          }
+          if (item.updateBy) {
+            delete item.updateBy
+            delete item.updateByName
+            delete item.updateTime
+          }
+        })
+      }
     },
     toNC() {
       againToNC(this.row).then(res => {
@@ -818,7 +867,8 @@ export default {
     },
     save() {
       if(this.materialInfo.length !== 0) {
-        if(this.pageStu == 'add') {
+        if(this.sonPageStu == 'add') {
+          this.handleData()
           this.basicForm.stAllotMaterialList = this.materialInfo
           this.basicForm.stAllotReceiveDeliverList = this.receiveInfo
           this.basicForm.stAllotReceiveExecuteList = this.priceList
@@ -834,7 +884,7 @@ export default {
               this.$emit('refresh', queryParams)
             }
           })
-        } else if (this.pageStu == 'edit') {
+        } else if (this.sonPageStu == 'edit') {
           this.basicForm.stAllotMaterialList = this.materialInfo
           this.basicForm.stAllotReceiveDeliverList = this.receiveInfo
           this.basicForm.stAllotReceiveExecuteList = this.priceList