Sfoglia il codice sorgente

1、入库申请、出库申请页面优化
2、入库申请、出库申请对接提交、撤销、审核、反审核接口

yesheng 1 mese fa
parent
commit
d866153555

+ 80 - 7
src/api/wms/output/inrequest.js

@@ -1,6 +1,6 @@
 import request from "@/utils/request";
 
-// 创建库申请主
+// 创建库申请主
 export function createInRequest(data) {
   return request({
     url: "/rtkwms/inout-request/createOutRequestOrder",
@@ -16,7 +16,7 @@ export function createRequest(data) {
     data: data,
   });
 }
-// 创建入库申请主
+// 获得出库申请主
 export function getSourceOrder(data) {
   return request({
     url: "/rtkwms/inout-request/getSourceOrder",
@@ -25,7 +25,7 @@ export function getSourceOrder(data) {
   });
 }
 
-// 更新库申请主
+// 更新库申请主
 export function updateInRequest(data) {
   return request({
     url: "/rtkwms/inout-request/updateOutRequestOrder",
@@ -42,7 +42,79 @@ export function updateRequest(data) {
   });
 }
 
-// 删除入库申请主
+// 提交出库申请
+export function commitOutRequest(data) {
+  return request({
+    url: "/rtkwms/inout-request/commit",
+    method: "put",
+    data: data,
+  });
+}
+
+// 提交入库申请
+export function commitInRequest(data) {
+  return request({
+    url: "/rtkwms/in-request/commit",
+    method: "put",
+    data: data,
+  });
+}
+
+// 撤销出库申请
+export function cancelOutRequest(data) {
+  return request({
+    url: "/rtkwms/inout-request/cancel",
+    method: "put",
+    data: data,
+  });
+}
+
+// 撤销入库申请
+export function cancelInRequest(data) {
+  return request({
+    url: "/rtkwms/in-request/cancel",
+    method: "put",
+    data: data,
+  });
+}
+
+// 审核出库申请
+export function auditOutRequest(data) {
+  return request({
+    url: "/rtkwms/inout-request/audit",
+    method: "put",
+    data: data,
+  });
+}
+
+// 审核入库申请
+export function auditInRequest(data) {
+  return request({
+    url: "/rtkwms/in-request/audit",
+    method: "put",
+    data: data,
+  });
+}
+
+// 反审核出库申请
+export function antiAuditOutRequest(data) {
+  return request({
+    url: "/rtkwms/inout-request/antiAudit",
+    method: "put",
+    data: data,
+  });
+}
+
+// 反审核入库申请
+export function antiAuditInRequest(data) {
+  return request({
+    url: "/rtkwms/in-request/antiAudit",
+    method: "put",
+    data: data,
+  });
+}
+
+// 删除出库申请主
 export function deleteInRequest(id) {
   return request({
     url: "/rtkwms/inout-request/delete?id=" + id,
@@ -50,7 +122,7 @@ export function deleteInRequest(id) {
   });
 }
 
-// 获得库申请主
+// 获得库申请主
 export function getInRequest(id) {
   return request({
     url: "/rtkwms/inout-request/get?id=" + id,
@@ -63,7 +135,7 @@ export function getRequest(id) {
     method: "get",
   });
 }
-// 获得入库申请主
+// 获得仓库列表
 export function getStockPage(params) {
   return request({
     url: "/rtkerp/stock/page",
@@ -71,6 +143,7 @@ export function getStockPage(params) {
     params,
   });
 }
+//获得物料列表
 export function getMaterialPage(params) {
   return request({
     url: "/rtkerp/material/page",
@@ -78,7 +151,7 @@ export function getMaterialPage(params) {
     params,
   });
 }
-// 获得库申请主分页
+// 获得库申请主分页
 export function getInRequestPage(params) {
   return request({
     url: "/rtkwms/inout-request/page",

+ 1 - 0
src/utils/dict.js

@@ -39,6 +39,7 @@ export const DICT_TYPE = {
   INFRA_CODEGEN_SCENE: "infra_codegen_scene",
   INFRA_FILE_STORAGE: "infra_file_storage",
   INFRA_CODEGEN_FRONT_TYPE: "infra_codegen_front_type", //生成代码前端类型
+  AUDIT_TYPE: "audit_type", //审核类型
 
   // ========== BPM 模块 ==========
   BPM_MODEL_CATEGORY: "bpm_model_category",

+ 10 - 0
src/views/infra/codegen/components/GenInfoForm.vue

@@ -116,6 +116,16 @@
         </el-form-item>
       </el-col>
 
+      <el-col :span="12">
+        <el-form-item prop="auditType">
+          <span slot="label">审核类型</span>
+          <el-tooltip content="要生成提交、撤销、审核和反审核接口时填写" placement="top">
+            <i class="el-icon-question" />
+          </el-tooltip>
+          <DictSelect v-model="formData.auditType" placeholder="请选择审核类型" dict-type="AUDIT_TYPE" />
+        </el-form-item>
+      </el-col>
+
       <el-col v-if="formData.genType === '1'" :span="24">
         <el-form-item prop="genPath">
           <span slot="label">

+ 84 - 31
src/views/rtkwms/inrequest/InRequestForm.vue

@@ -21,12 +21,8 @@
               <i class="el-icon-arrow-down el-icon--right" />
             </el-button>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item :disabled="isFormDisabled"
-                >提交</el-dropdown-item
-              >
-              <el-dropdown-item :disabled="isFormDisabled"
-                >撤销</el-dropdown-item
-              >
+              <el-dropdown-item :disabled="isButtonDisabled('commit')" @click.native="commit">提交</el-dropdown-item>
+              <el-dropdown-item :disabled="isButtonDisabled('cancel')" @click.native="cancel">撤销</el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
 
@@ -37,10 +33,8 @@
               <i class="el-icon-arrow-down el-icon--right" />
             </el-button>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item :disabled="isFormDisabled"
-                >审核</el-dropdown-item
-              >
-              <el-dropdown-item>反审核</el-dropdown-item>
+              <el-dropdown-item :disabled="isButtonDisabled('audit')" @click.native="audit">审核</el-dropdown-item>
+              <el-dropdown-item :disabled="isButtonDisabled('antiAudit')" @click.native="antiAudit">反审核</el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
           <!-- <el-button @click="reset" plain>重置</el-button> -->
@@ -49,9 +43,8 @@
             size="mini"
             plain
             :disabled="isFormDisabled"
-            @click="add()"
-            >新增明细</el-button
-          >
+            @click="add()">新增明细
+          </el-button>
           <el-button plain size="mini" @click="handleCancel">返回</el-button>
         </div>
       </div>
@@ -71,7 +64,7 @@
             <el-select
               v-model="formData.businessType"
               placeholder="请选择业务类型"
-              :disabled="isFormDisabled"
+              :disabled="!isEditable"
               @change="changeBusinessType"
             >
               <el-option
@@ -84,10 +77,18 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="部门" prop="departmentNo">
+          <el-form-item label="申请单号" prop="remark">
+            <el-input
+              v-model="formData.requestNo"
+              :disabled="true"
+              placeholder="保存后自动生成"
+            /> </el-form-item
+          ></el-col>
+        <el-col :span="12">
+          <el-form-item label="部门" prop="deptCode">
             <DepartMentSelect
               ref="departMentSelect"
-              v-model="formData.departmentNo"
+              v-model="formData.deptCode"
               :disabled="isFormDisabled || !formData.businessType"
               placeholder="请选择部门"
               clearable
@@ -184,7 +185,7 @@
             <el-date-picker
               v-model="formData.actualTime"
               clearable
-              :disabled="isFormDisabled || !formData.businessType"
+              :disabled="true"
               type="date"
               value-format="timestamp"
               placeholder="选择实际出入库时间"
@@ -327,7 +328,7 @@
         show-overflow-tooltip
       />
       <el-table-column
-        label="本次出入数量"
+        label="本次申请数量"
         align="center"
         prop="nowDeliveredQty"
         width="160"
@@ -341,23 +342,17 @@
         </template>
       </el-table-column>
       <el-table-column
-        label="已入数量"
+        label="已入数量"
         align="center"
         prop="completedQty"
         width="120"
       />
       <el-table-column
-        label="应出入数量"
+        label="源单计划数量"
         align="center"
         prop="planQty"
         width="120"
       />
-      <el-table-column
-        label="申请数量"
-        align="center"
-        prop="requireQty"
-        width="120"
-      />
       <el-table-column
         label="单位"
         align="center"
@@ -417,6 +412,8 @@ export default {
       // 表单参数
       formData: {
         departmentNo: undefined,
+        deptCode: undefined,
+        deptName: undefined,
         id: undefined,
         requestNo: undefined,
         requestType: undefined,
@@ -449,7 +446,7 @@ export default {
       },
       // 表单校验
       formRules: {
-        departmentNo: [
+        deptCode: [
           { required: true, message: "请选择部门", trigger: "blur" },
         ],
         requestNo: [
@@ -505,6 +502,12 @@ export default {
       const status = parseInt(this.formData.status || "0");
       return hasId && status >= 2;
     },
+    //计算属性判断修改状态下是否可编辑
+    isEditable() {
+      // 有 id 表示是编辑模式,不可编辑
+      // 没有 id 表示是新增模式,可编辑
+      return this.formData.id === undefined || this.formData.id === null || this.formData.id === '';
+    },
   },
   watch: {
     "$route.query.id": {
@@ -534,6 +537,23 @@ export default {
     }
   },
   methods: {
+    // 通用的判断函数判断按钮是否可点击
+    isButtonDisabled(buttonType) {
+      const status = Number(this.formData.status);
+
+      switch(buttonType) {
+        case 'commit':
+          return status !== 0;  // 提交,status=0时可点击
+        case 'cancel':
+          return status !== 1;  // 撤销,status=1时可点击
+        case 'audit':
+          return status !== 1;  // 审核,status=1时可点击
+        case 'antiAudit':
+          return status < 2;    // 反审核,status>=2时可点击
+        default:
+          return true;
+      }
+    },
     handleDelete(row) {
       console.log(row);
       this.formData.list.splice(row.$index, 1);
@@ -714,7 +734,7 @@ export default {
         this.formLoading = false;
       }
     },
-    /** 提交按钮 */
+    /** 保存按钮 */
     async submitForm() {
       // 校验主表
       await this.$refs["formRef"].validate();
@@ -741,9 +761,6 @@ export default {
         if (data.id) {
           await InRequestApi.updateRequest(data);
           this.$modal.msgSuccess("修改成功");
-          this.$router.push({
-            path: "/inStorageManage/in-request",
-          });
           return;
         }
         // 添加的提交
@@ -756,6 +773,42 @@ export default {
         this.formLoading = false;
       }
     },
+    /** 提交按钮 */
+    async commit() {
+      const data = this.formData;
+      // 接口调用
+      await InRequestApi.commitInRequest(data);
+      this.$modal.msgSuccess("提交成功");
+      // 状态变化
+      this.$set(this.formData, 'status', "1");
+    },
+    /** 撤销按钮 */
+    async cancel() {
+      const data = this.formData;
+      // 接口调用
+      await InRequestApi.cancelInRequest(data);
+      this.$modal.msgSuccess("撤销成功");
+      // 状态变化
+      this.$set(this.formData, 'status', "0");
+    },
+    /** 审核按钮 */
+    async audit() {
+      const data = this.formData;
+      // 接口调用
+      await InRequestApi.auditInRequest(data);
+      this.$modal.msgSuccess("审核成功");
+      // 状态变化
+      this.$set(this.formData, 'status', "2");
+    },
+    /** 反审核按钮 */
+    async antiAudit() {
+      const data = this.formData;
+      // 接口调用
+      await InRequestApi.antiAuditInRequest(data);
+      this.$modal.msgSuccess("反审核成功");
+      // 状态变化
+      this.$set(this.formData, 'status', "0");
+    },
     /** 返回按钮 */
     handleCancel() {
       this.reset();

+ 86 - 28
src/views/wms/output/inrequest/components/InRequestForm.vue

@@ -1,9 +1,5 @@
 <template>
   <div class="app-container">
-    <!-- 标题 -->
-    <!-- <div class="app-header">
-      <h2>{{ dialogTitle }}</h2>
-    </div> -->
     <!-- 左上角按钮容器 -->
     <div class="buttons-container">
       <el-button
@@ -21,8 +17,8 @@
           <i class="el-icon-arrow-down el-icon--right" />
         </el-button>
         <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item :disabled="isFormDisabled">提交</el-dropdown-item>
-          <el-dropdown-item :disabled="isFormDisabled">撤销</el-dropdown-item>
+          <el-dropdown-item :disabled="isButtonDisabled('commit')" @click.native="commit">提交</el-dropdown-item>
+          <el-dropdown-item :disabled="isButtonDisabled('cancel')" @click.native="cancel">撤销</el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
 
@@ -33,8 +29,8 @@
           <i class="el-icon-arrow-down el-icon--right" />
         </el-button>
         <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item :disabled="isFormDisabled">审核</el-dropdown-item>
-          <el-dropdown-item>反审核</el-dropdown-item>
+          <el-dropdown-item :disabled="isButtonDisabled('audit')" @click.native="audit">审核</el-dropdown-item>
+          <el-dropdown-item :disabled="isButtonDisabled('antiAudit')" @click.native="antiAudit">反审核</el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
       <el-button
@@ -59,7 +55,7 @@
           <el-select
             v-model="formData.businessType"
             placeholder="请选择业务类型"
-            :disabled="isFormDisabled"
+            :disabled="!isEditable"
             @change="changeBusinessType"
           >
             <el-option
@@ -71,10 +67,18 @@
           </el-select> </el-form-item
       ></el-col>
       <el-col :span="12">
-        <el-form-item label="部门" prop="departmentNo">
+        <el-form-item label="申请单号" prop="remark">
+          <el-input
+            v-model="formData.requestNo"
+            :disabled="true"
+            placeholder="保存后自动生成"
+          /> </el-form-item
+        ></el-col>
+      <el-col :span="12">
+        <el-form-item label="部门" prop="deptCode">
           <DepartMentSelect
             ref="departMentSelect"
-            v-model="formData.departmentNo"
+            v-model="formData.deptCode"
             :disabled="isFormDisabled || !formData.businessType"
             placeholder="请选择部门"
             clearable
@@ -171,7 +175,7 @@
           <el-date-picker
             v-model="formData.actualTime"
             clearable
-            :disabled="isFormDisabled || (formData.businessType ? false : true)"
+            :disabled="true"
             type="date"
             value-format="timestamp"
             placeholder="选择实际出入库时间"
@@ -314,7 +318,7 @@
         show-overflow-tooltip
       />
       <el-table-column
-        label="本次出入数量"
+        label="本次申请数量"
         align="center"
         prop="nowDeliveredQty"
         width="160"
@@ -328,23 +332,17 @@
         </template>
       </el-table-column>
       <el-table-column
-        label="已出数量"
+        label="已出数量"
         align="center"
         prop="completedQty"
         width="120"
       />
       <el-table-column
-        label="应出入数量"
+        label="源单计划数量"
         align="center"
         prop="planQty"
         width="120"
       />
-      <el-table-column
-        label="申请数量"
-        align="center"
-        prop="requireQty"
-        width="120"
-      />
       <el-table-column
         label="单位"
         align="center"
@@ -406,6 +404,8 @@ export default {
       // 表单参数
       formData: {
         departmentNo: undefined,
+        deptCode: undefined,
+        deptName: undefined,
         id: undefined,
         requestNo: undefined,
         requestType: undefined,
@@ -438,7 +438,7 @@ export default {
       },
       // 表单校验
       formRules: {
-        departmentNo: [
+        deptCode: [
           { required: true, message: "请选择部门", trigger: "blur" },
         ],
         requestNo: [
@@ -488,15 +488,20 @@ export default {
     };
   },
   computed: {
-    // 判断表单是否不可编辑:路径有id且status>=2
+    // 判断表单是否不可编辑:路径有id且status>=1
     isFormDisabled() {
-      // 检查是否有id(编辑模式)且status>=2
+      // 检查是否有id(编辑模式)且status>=1
       return (
-        this.$route.query.id &&
         this.formData.status &&
-        Number(this.formData.status) >= 2
+        Number(this.formData.status) >= 1
       );
     },
+    //计算属性判断修改状态下是否可编辑
+    isEditable() {
+      // 有 id 表示是编辑模式,不可编辑
+      // 没有 id 表示是新增模式,可编辑
+      return this.formData.id === undefined || this.formData.id === null || this.formData.id === '';
+    },
   },
   watch: {
     "$route.query.id": {
@@ -526,6 +531,23 @@ export default {
     }
   },
   methods: {
+    // 通用的判断函数判断按钮是否可点击
+    isButtonDisabled(buttonType) {
+      const status = Number(this.formData.status);
+
+      switch(buttonType) {
+        case 'commit':
+          return status !== 0;  // 提交,status=0时可点击
+        case 'cancel':
+          return status !== 1;  // 撤销,status=1时可点击
+        case 'audit':
+          return status !== 1;  // 审核,status=1时可点击
+        case 'antiAudit':
+          return status < 2;    // 反审核,status>=2时可点击
+        default:
+          return true;
+      }
+    },
     handleDelete(row) {
       console.log(row);
       this.formData.list.splice(row.$index, 1);
@@ -711,7 +733,7 @@ export default {
         this.formData.list = [];
       }
     },
-    /** 提交按钮 */
+    /** 保存按钮 */
     async submitForm() {
       // 校验主表
       await this.$refs["formRef"].validate();
@@ -737,7 +759,7 @@ export default {
         if (data.id) {
           await InRequestApi.updateInRequest(data);
           this.$modal.msgSuccess("修改成功");
-          this.$router.back();
+          //this.$router.back();//修改时停留在当前页面
           return;
         }
         // 添加的提交
@@ -748,6 +770,42 @@ export default {
         this.formLoading = false;
       }
     },
+    /** 提交按钮 */
+    async commit() {
+      const data = this.formData;
+      // 接口调用
+      await InRequestApi.commitOutRequest(data);
+      this.$modal.msgSuccess("提交成功");
+      // 状态变化
+      this.$set(this.formData, 'status', "1");
+    },
+    /** 撤销按钮 */
+    async cancel() {
+      const data = this.formData;
+      // 接口调用
+      await InRequestApi.cancelOutRequest(data);
+      this.$modal.msgSuccess("撤销成功");
+      // 状态变化
+      this.$set(this.formData, 'status', "0");
+    },
+    /** 审核按钮 */
+    async audit() {
+      const data = this.formData;
+      // 接口调用
+      await InRequestApi.auditOutRequest(data);
+      this.$modal.msgSuccess("审核成功");
+      // 状态变化
+      this.$set(this.formData, 'status', "2");
+    },
+    /** 反审核按钮 */
+    async antiAudit() {
+      const data = this.formData;
+      // 接口调用
+      await InRequestApi.antiAuditOutRequest(data);
+      this.$modal.msgSuccess("反审核成功");
+      // 状态变化
+      this.$set(this.formData, 'status', "0");
+    },
     /** 取消按钮 */
     handleCancel() {
       this.reset();