huang_an 1 年之前
父節點
當前提交
dff2c6d659

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/submit.vue

@@ -78,7 +78,7 @@
 <script>
   import storageApi from '@/api/warehouseManagement';
   import { cancel } from '@/api/bpm/components/purchasingManage/outSourceSend';
-  import {approveTaskWithVariables, rejectTask} from '@/api/bpm/task';
+  import { approveTaskWithVariables, rejectTask } from '@/api/bpm/task';
   import { getWarehouseListByIds } from '@/api/bpm/components/saleManage/saleorder';
 
   // 流程实例的详情页,可用于审批

+ 120 - 109
src/views/bpm/handleTask/components/purchaseOrder/submit.vue

@@ -24,7 +24,7 @@
         type="success"
         size="mini"
         @click="handleAudit(1)"
-      >通过
+        >通过
       </el-button>
       <el-button
         icon="el-icon-circle-close"
@@ -32,11 +32,16 @@
         size="mini"
         @click="handleAudit(0)"
         v-if="!['starter', 'starterFillApprove'].includes(taskDefinitionKey)"
-      >驳回
+        >驳回
       </el-button>
 
-      <el-dropdown @command="(command) => handleCommand(command)" style="margin-left: 30px;">
-        <span class="el-dropdown-link">更多<i class="el-icon-arrow-down el-icon--right"></i></span>
+      <el-dropdown
+        @command="(command) => handleCommand(command)"
+        style="margin-left: 30px"
+      >
+        <span class="el-dropdown-link"
+          >更多<i class="el-icon-arrow-down el-icon--right"></i
+        ></span>
         <el-dropdown-menu slot="dropdown">
           <el-dropdown-item command="cancel">作废</el-dropdown-item>
         </el-dropdown-menu>
@@ -70,124 +75,130 @@
 </template>
 
 <script>
-import {UpdateInformation, cancel} from '@/api/bpm/components/purchasingManage/purchaseOrder';
-import {approveTaskWithVariables, rejectTask} from '@/api/bpm/task';
-import {listAllUserBind} from '@/api/system/organization';
+  import {
+    UpdateInformation,
+    cancel
+  } from '@/api/bpm/components/purchasingManage/purchaseOrder';
+  import { approveTaskWithVariables, rejectTask } from '@/api/bpm/task';
+  import { listAllUserBind } from '@/api/system/organization';
 
-// 流程实例的详情页,可用于审批
-export default {
-  name: '',
-  components: {
-    //   Parser
-  },
-  props: {
-    businessId: {
-      default: ''
-    },
-    taskId: {
-      default: ''
+  // 流程实例的详情页,可用于审批
+  export default {
+    name: '',
+    components: {
+      //   Parser
     },
-    id: {
-      default: ''
-    },
-    taskDefinitionKey: {
-      default: ''
-    }
-  },
-  data() {
-    return {
-      form: {
-        technicianId: '',
-        reason: ''
+    props: {
+      businessId: {
+        default: ''
       },
-      userOptions: []
-    };
-  },
-  created() {
-    this.userOptions = [];
-    listAllUserBind().then((data) => {
-      this.userOptions.push(...data);
-    });
-  },
-  methods: {
-    /** 处理转办审批人 */
-    handleUpdateAssignee() {
-      this.$emit('handleUpdateAssignee');
-    },
-    /** 退回 */
-    handleBackList() {
-      this.$emit('handleBackList');
-    },
-
-    async handleAudit(status) {
-      //发起人补充
-      if (this.taskDefinitionKey === 'starter') {
-        let arr = await this.getTableValue();
-        let isFlag = arr.productList.some(item => item.supplierMark == '')
-        if (isFlag) {
-          return this.$message.warning('请输入供应商代号')
-        }
-        if (!arr) {
-          return;
-        }
-        let data = await UpdateInformation(arr);
-        if (data.code != '0') {
-          return;
-        }
+      taskId: {
+        default: ''
+      },
+      id: {
+        default: ''
+      },
+      taskDefinitionKey: {
+        default: ''
       }
-      this._approveTaskWithVariables(status);
     },
-    async _approveTaskWithVariables(status) {
-      let variables = {
-        pass: !!status
+    data() {
+      return {
+        form: {
+          technicianId: '',
+          reason: ''
+        },
+        userOptions: []
       };
-
-      let API = !!status ? approveTaskWithVariables : rejectTask;
-      API({
-        id: this.taskId,
-        reason: this.form.reason,
-        variables
-      }).then((res) => {
-        if (res.data.code != '-1') {
-          this.$emit('handleAudit', {
-            status,
-            title: status === 0 ? '驳回' : ''
-          });
-        }
+    },
+    created() {
+      this.userOptions = [];
+      listAllUserBind().then((data) => {
+        this.userOptions.push(...data);
       });
     },
+    methods: {
+      /** 处理转办审批人 */
+      handleUpdateAssignee() {
+        this.$emit('handleUpdateAssignee');
+      },
+      /** 退回 */
+      handleBackList() {
+        this.$emit('handleBackList');
+      },
+
+      async handleAudit(status) {
+        //发起人补充
+        if (this.taskDefinitionKey === 'starter') {
+          let arr = await this.getTableValue();
+          let isFlag = arr.productList.some((item) => item.supplierMark == '');
+          if (isFlag) {
+            return this.$message.warning('请输入供应商代号');
+          }
+          if (!arr) {
+            return;
+          }
+          let data = await UpdateInformation(arr);
+          if (data.code != '0') {
+            return;
+          }
+        }
+        this._approveTaskWithVariables(status);
+      },
+      async _approveTaskWithVariables(status) {
+        let variables = {
+          pass: !!status
+        };
 
-    getTableValue() {
-      return new Promise((resolve, reject) => {
-        this.$emit('getTableValue', async (data) => {
-          resolve(await data);
+        let API = !!status ? approveTaskWithVariables : rejectTask;
+        API({
+          id: this.taskId,
+          reason: this.form.reason,
+          variables
+        }).then((res) => {
+          if (res.data.code != '-1') {
+            this.$emit('handleAudit', {
+              status,
+              title: status === 0 ? '驳回' : ''
+            });
+          }
         });
-      });
-    },
+      },
 
-    //更多
-    handleCommand(command) {
-      if (command === 'cancel') {
-        this.$confirm("是否确认作废?", {
-          type: 'warning',
-          cancelButtonText: '取消',
-          confirmButtonText: '确定'
-        }).then(() => {
-          cancel({
-            id: this.taskId,
-            reason: this.form.reason,
-            businessId: this.businessId,
-          }).then(() => {
-            this.$emit('handleClose');
-          }).catch(() => {
-            this.$message.error("流程作废失败");
+      getTableValue() {
+        return new Promise((resolve, reject) => {
+          this.$emit('getTableValue', async (data) => {
+            resolve(await data);
           });
-        }).catch(() => {});
-      }
-    },
+        });
+      },
 
-  }
-};
+      //更多
+      handleCommand(command) {
+        if (command === 'cancel') {
+          this.$confirm('是否确认作废?', {
+            type: 'warning',
+            cancelButtonText: '取消',
+            confirmButtonText: '确定'
+          })
+            .then(() => {
+              cancel({
+                id: this.taskId,
+                reason: this.form.reason,
+                businessId: this.businessId
+              })
+                .then(() => {
+                  this.$emit('handleClose');
+                })
+                .catch(() => {
+                  this.$message.error('流程作废失败');
+                });
+            })
+            .catch(() => {});
+        }
+      }
+    }
+  };
 </script>
 
 <style lang="scss"></style>

+ 12 - 1
src/views/bpm/outgoingManagement/components/AssetsDialog.vue

@@ -173,6 +173,7 @@
                 placeholder="请输入"
                 v-model="row.outboundNum"
                 @input="handleInput(row, $event)"
+                :class="{ password: errorVerify(row) }"
               ></el-input>
             </template>
           </el-table-column>
@@ -340,7 +341,7 @@
         selectionList: [],
         materialType: '',
         warehouseList: [],
-        dimension: '4'
+        dimension: '3'
       };
     },
     created() {
@@ -352,6 +353,12 @@
       }
     },
     methods: {
+      errorVerify(row) {
+        return (
+          !row.outboundNu &&
+          this.selectionList.some((item) => item.id == row.id)
+        );
+      },
       doLayout() {
         let that = this;
         this.$nextTick(() => {
@@ -509,4 +516,8 @@
     max-height: 53vh;
     overflow: auto;
   }
+
+  ::v-deep .password .el-input__inner {
+    border-color: red !important;
+  }
 </style>

+ 48 - 48
src/views/bpm/outgoingManagement/outbound.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="ele-body">
+  <div>
     <el-card shadow="never">
       <header-title title="基本信息"></header-title>
       <el-form
@@ -96,7 +96,7 @@
                 clearable /></el-form-item
           ></el-col>
           <el-col :span="6">
-            <el-form-item label="领料人部门" prop="verifyDeptName">
+            <el-form-item label="领料人部门" prop="extInfo.verifyDeptCode">
               <selectTree
                 ref="tree"
                 class="form-ipt"
@@ -613,6 +613,11 @@
             message: '请选择出库场景',
             trigger: 'change'
           },
+          'extInfo.verifyDeptCode': {
+            required: true,
+            message: '请选择领料人部门',
+            trigger: 'change'
+          },
           fromId: {
             required: true,
             message: '请选择领料人',
@@ -771,57 +776,52 @@
         return new Promise((resolve) => {
           console.log(this.formData);
           this.$refs.formName.validate(async (valid) => {
-            console.log('valid', valid);
-            if (valid) {
-              if (!this.productList?.length) {
-                return this.$message.error('请添加出库明细!');
-              }
-              let obj = deepClone({ ...this.formData, type: 2 });
+            if (!this.productList?.length) {
+              return this.$message.error('请添加出库明细!');
+            }
+            let obj = deepClone({ ...this.formData, type: 2 });
 
-              obj.extInfo.sourceBizNo = obj.sourceBizNo;
-              obj.fromType = obj.type;
-              // 处理物品类型assetType
-              obj.extInfo.assetType = obj.extInfo.assetType.join(',');
-              // 处理仓库id
-              let warehouseId = [];
-              let warehouseName = [];
-              let warehouseIds = this.productList
-                .map((item) => item.warehouseId)
-                .flat();
-              let warehouseNames = this.productList
-                .map((item) => item.warehouseName)
-                .flat();
-              warehouseIds.forEach((item, index) => {
-                if (!warehouseId.includes(item)) {
-                  warehouseId.push(item);
-                  warehouseName.push(warehouseNames[index]);
-                }
-              });
-              obj.warehouseIds = warehouseId;
-              obj.warehouseNames = warehouseName;
-              console.log('2222', obj);
-              let isPass = false;
-              // 1按数量计费 2按重量计费
-              if (this.form.pricingWay == 2) {
-                if (this.materialList.length > 0) {
-                  // 判断物料
-                  isPass = this.materialCodeReqList.every(
-                    (item) => item.weight > 0
-                  );
-                } else {
-                  // 判断包装重量是否全部大于0
-                  isPass = this.packingList.every((item) => item.weight > 0);
-                }
-              } else {
-                isPass = true;
+            obj.extInfo.sourceBizNo = obj.sourceBizNo;
+            obj.fromType = obj.type;
+            // 处理物品类型assetType
+            obj.extInfo.assetType = obj.extInfo.assetType.join(',');
+            // 处理仓库id
+            let warehouseId = [];
+            let warehouseName = [];
+            let warehouseIds = this.productList
+              .map((item) => item.warehouseId)
+              .flat();
+            let warehouseNames = this.productList
+              .map((item) => item.warehouseName)
+              .flat();
+            warehouseIds.forEach((item, index) => {
+              if (!warehouseId.includes(item)) {
+                warehouseId.push(item);
+                warehouseName.push(warehouseNames[index]);
               }
-              if (isPass) {
-                resolve(obj);
+            });
+            obj.warehouseIds = warehouseId;
+            obj.warehouseNames = warehouseName;
+            console.log('2222', obj);
+            let isPass = false;
+            // 1按数量计费 2按重量计费
+            if (this.form.pricingWay == 2) {
+              if (this.materialList.length > 0) {
+                // 判断物料
+                isPass = this.materialCodeReqList.every(
+                  (item) => item.weight > 0
+                );
               } else {
-                this.$message.error('委外发货重量不能为空');
+                // 判断包装重量是否全部大于0
+                isPass = this.packingList.every((item) => item.weight > 0);
               }
             } else {
-              this.$message.error('请选择领料人!');
+              isPass = true;
+            }
+            if (isPass) {
+              resolve(obj);
+            } else {
+              this.$message.error('委外发货重量不能为空');
             }
           });
         });