乐菲 3 weeks ago
parent
commit
b0ec4feaf8

+ 83 - 15
src/views/rtkwms/inrequest/InRequestForm.vue

@@ -9,12 +9,47 @@
             :loading="formLoading"
             plain
             size="mini"
+            :disabled="isFormDisabled"
             @click="submitForm"
           >
             保 存
           </el-button>
+          <!-- 提交菜单 -->
+          <el-dropdown class="ml-5" trigger="click">
+            <el-button type="primary" size="mini" plain>
+              提交菜单
+              <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-menu>
+          </el-dropdown>
+
+          <!-- 审批菜单 -->
+          <el-dropdown class="ml-5 mr-5" trigger="click">
+            <el-button type="warning" size="mini" plain>
+              审批菜单
+              <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-menu>
+          </el-dropdown>
           <!-- <el-button @click="reset" plain>重置</el-button> -->
-          <el-button type="primary" size="mini" plain @click="add()"
+          <el-button
+            type="primary"
+            size="mini"
+            plain
+            :disabled="isFormDisabled"
+            @click="add()"
             >新增明细</el-button
           >
           <el-button plain size="mini" @click="handleCancel">返回</el-button>
@@ -36,6 +71,7 @@
             <el-select
               v-model="formData.businessType"
               placeholder="请选择业务类型"
+              :disabled="isFormDisabled"
               @change="changeBusinessType"
             >
               <el-option
@@ -52,7 +88,7 @@
             <DepartMentSelect
               ref="departMentSelect"
               v-model="formData.departmentNo"
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               placeholder="请选择部门"
               clearable
               @change="selectDepart"
@@ -63,7 +99,7 @@
           ><el-form-item label="业务分类名称" prop="businessDescribe">
             <el-select
               v-model="formData.businessDescribe"
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               placeholder="请选择业务类型"
               @change="changeBusinessDescribe"
             >
@@ -80,7 +116,7 @@
           ><el-form-item label="优先级" prop="priority">
             <el-select
               v-model="formData.priority"
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               placeholder="请选择优先级"
             >
               <el-option
@@ -96,7 +132,7 @@
           <el-form-item label="供应商编码" prop="supplierCode">
             <el-input
               v-model="formData.supplierCode"
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               placeholder="请输入供应商编码"
             />
           </el-form-item>
@@ -105,7 +141,7 @@
           <el-form-item label="客户编码" prop="customerCode">
             <el-input
               v-model="formData.customerCode"
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               placeholder="请输入客户编码"
             />
           </el-form-item>
@@ -116,7 +152,7 @@
               v-model="formData.sourceOrderNo"
               filterable
               remote
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               reserve-keyword
               placeholder="请输入源单编号"
               :remote-method="remoteMethod"
@@ -136,7 +172,7 @@
           <el-form-item label="预计出入库时间" prop="expectedTime">
             <el-date-picker
               v-model="formData.expectedTime"
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               clearable
               type="date"
               value-format="timestamp"
@@ -148,7 +184,7 @@
             <el-date-picker
               v-model="formData.actualTime"
               clearable
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               type="date"
               value-format="timestamp"
               placeholder="选择实际出入库时间"
@@ -159,7 +195,7 @@
           <el-form-item label="备注" prop="remark">
             <el-input
               v-model="formData.remark"
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               placeholder="请输入备注"
             /> </el-form-item
         ></el-col>
@@ -169,7 +205,7 @@
               v-model="formData.warehouseId"
               filterable
               remote
-              :disabled="formData.businessType ? false : true"
+              :disabled="isFormDisabled || !formData.businessType"
               reserve-keyword
               placeholder="请输入存储地点"
               :remote-method="remoteWarehouse"
@@ -184,6 +220,22 @@
             </el-select>
           </el-form-item>
         </el-col>
+        <el-col :span="12">
+          <el-form-item label="状态" prop="status" aria-disabled="true">
+            <el-select
+              v-model="formData.status"
+              disabled
+              placeholder="请选择状态"
+            >
+              <el-option
+                v-for="dict in getDictDatas('in_out_status')"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
       </el-row>
     </el-form>
 
@@ -283,6 +335,7 @@
         <template slot-scope="scope">
           <el-input
             v-model="scope.row.nowDeliveredQty"
+            :disabled="isFormDisabled"
             @change="deliverChange"
           />
         </template>
@@ -314,7 +367,7 @@
       />
       <el-table-column label="行备注" align="center" prop="remark" width="200">
         <template slot-scope="scope">
-          <el-input v-model="scope.row.remark" />
+          <el-input v-model="scope.row.remark" :disabled="isFormDisabled" />
         </template>
       </el-table-column>
       <el-table-column
@@ -329,6 +382,7 @@
             size="mini"
             type="text"
             icon="el-icon-delete"
+            :disabled="isFormDisabled"
             @click="handleDelete(scope)"
             >删除</el-button
           >
@@ -401,6 +455,9 @@ export default {
         requestNo: [
           { required: true, message: "申请单号不能为空", trigger: "blur" },
         ],
+        expectedTime: [
+          { required: true, message: "预计入库时间不能为空", trigger: "blur" },
+        ],
         requestType: [
           {
             required: true,
@@ -425,7 +482,7 @@ export default {
         ],
         status: [
           {
-            required: true,
+            required: false,
             message:
               "状态(0草稿 1已提交 2已审核 3执行中 4已完成 5已取消)不能为空",
             trigger: "blur",
@@ -441,11 +498,19 @@ export default {
       },
     };
   },
+  computed: {
+    isFormDisabled() {
+      // 当路径有id且status>=2时禁用表单
+      const hasId = this.$route.query.id;
+      const status = parseInt(this.formData.status || "0");
+      return hasId && status >= 2;
+    },
+  },
   watch: {
     "$route.query.id": {
       immediate: true,
       handler(newId) {
-        // 只有当前路由路径包含'/inStorageManage/in-request/InRequestForm'时才处理,避免标签跳转时错误调用API
+        // 只有当前路由路径包含"/inStorageManage/in-request/InRequestForm"时才处理,避免标签跳转时错误调用API
         if (
           this.$route.path.includes("/inStorageManage/in-request/InRequestForm")
         ) {
@@ -463,7 +528,7 @@ export default {
     const id = this.$route.query.id;
     if (id) {
       this.dialogTitle = "修改";
-      this.initData(id);
+      // this.initData(id)
     } else {
       this.dialogTitle = "新增";
     }
@@ -642,6 +707,8 @@ export default {
         res.data.priority = res.data.priority
           ? res.data.priority.toString()
           : "0";
+        res.data.status = res.data.status ? res.data.status.toString() : "0";
+        // res.data.list = res.data.list || [];
         this.formData = res.data;
       } finally {
         this.formLoading = false;
@@ -700,6 +767,7 @@ export default {
     reset() {
       this.formData = {
         id: undefined,
+        // list: [],
         requestNo: undefined,
         requestType: undefined,
         businessType: undefined,

+ 91 - 16
src/views/wms/output/inrequest/components/InRequestForm.vue

@@ -8,13 +8,41 @@
     <div class="buttons-container">
       <el-button
         type="primary"
-        :disabled="formLoading"
+        :disabled="formLoading || isFormDisabled"
         plain
         size="mini"
         @click="submitForm"
         >保 存</el-button
       >
-      <el-button type="primary" plain size="mini" @click="add()"
+      <!-- 提交菜单 -->
+      <el-dropdown class="ml-5" trigger="click">
+        <el-button type="primary" size="mini" plain>
+          提交菜单
+          <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-menu>
+      </el-dropdown>
+
+      <!-- 审批菜单 -->
+      <el-dropdown class="ml-5 mr-5" trigger="click">
+        <el-button type="warning" size="mini" plain>
+          审批菜单
+          <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-menu>
+      </el-dropdown>
+      <el-button
+        type="primary"
+        plain
+        size="mini"
+        :disabled="isFormDisabled"
+        @click="add()"
         >新增明细</el-button
       >
       <el-button plain size="mini" @click="handleCancel">返 回</el-button>
@@ -31,6 +59,7 @@
           <el-select
             v-model="formData.businessType"
             placeholder="请选择业务类型"
+            :disabled="isFormDisabled"
             @change="changeBusinessType"
           >
             <el-option
@@ -46,7 +75,7 @@
           <DepartMentSelect
             ref="departMentSelect"
             v-model="formData.departmentNo"
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || !formData.businessType"
             placeholder="请选择部门"
             clearable
             @change="selectDepart"
@@ -57,7 +86,7 @@
         ><el-form-item label="业务分类名称" prop="businessDescribe">
           <el-select
             v-model="formData.businessDescribe"
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             placeholder="请选择业务类型"
             @change="changeBusinessDescribe"
           >
@@ -74,7 +103,7 @@
         ><el-form-item label="优先级" prop="priority">
           <el-select
             v-model="formData.priority"
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             placeholder="请选择优先级"
           >
             <el-option
@@ -90,7 +119,7 @@
         <el-form-item label="供应商编码" prop="supplierCode">
           <el-input
             v-model="formData.supplierCode"
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             placeholder="请输入供应商编码"
           />
         </el-form-item>
@@ -99,7 +128,7 @@
         <el-form-item label="客户编码" prop="customerCode">
           <el-input
             v-model="formData.customerCode"
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             placeholder="请输入客户编码"
           />
         </el-form-item>
@@ -110,7 +139,7 @@
             v-model="formData.sourceOrderNo"
             filterable
             remote
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             reserve-keyword
             placeholder="请输入源单编号"
             :remote-method="remoteMethod"
@@ -130,7 +159,7 @@
         <el-form-item label="预计出入库时间" prop="expectedTime">
           <el-date-picker
             v-model="formData.expectedTime"
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             clearable
             type="date"
             value-format="timestamp"
@@ -142,18 +171,17 @@
           <el-date-picker
             v-model="formData.actualTime"
             clearable
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             type="date"
             value-format="timestamp"
             placeholder="选择实际出入库时间"
           /> </el-form-item
       ></el-col>
-
       <el-col :span="12">
         <el-form-item label="备注" prop="remark">
           <el-input
             v-model="formData.remark"
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             placeholder="请输入备注"
           /> </el-form-item
       ></el-col>
@@ -163,7 +191,7 @@
             v-model="formData.warehouseId"
             filterable
             remote
-            :disabled="formData.businessType ? false : true"
+            :disabled="isFormDisabled || (formData.businessType ? false : true)"
             reserve-keyword
             placeholder="请输入存储地点"
             :remote-method="remoteWarehouse"
@@ -178,6 +206,22 @@
           </el-select>
         </el-form-item>
       </el-col>
+      <el-col :span="12">
+        <el-form-item label="状态" prop="status" aria-disabled="true">
+          <el-select
+            v-model="formData.status"
+            disabled
+            placeholder="请选择状态"
+          >
+            <el-option
+              v-for="dict in getDictDatas('in_out_status')"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+      </el-col>
     </el-form>
 
     <el-table :data="formData.list" border size="mini">
@@ -208,6 +252,7 @@
             filterable
             remote
             reserve-keyword
+            :disabled="isFormDisabled"
             placeholder="请选择物料编码"
             :remote-method="
               (query) => remoteMaterialSearch(query, 'code', scope.$index)
@@ -237,6 +282,7 @@
             filterable
             remote
             reserve-keyword
+            :disabled="isFormDisabled"
             placeholder="请选择物料名称"
             :remote-method="
               (query) => remoteMaterialSearch(query, 'name', scope.$index)
@@ -276,6 +322,7 @@
         <template slot-scope="scope">
           <el-input
             v-model="scope.row.nowDeliveredQty"
+            :disabled="isFormDisabled"
             @change="deliverChange"
           />
         </template>
@@ -307,7 +354,7 @@
       />
       <el-table-column label="行备注" align="center" prop="remark" width="200">
         <template slot-scope="scope">
-          <el-input v-model="scope.row.remark" />
+          <el-input v-model="scope.row.remark" :disabled="isFormDisabled" />
         </template>
       </el-table-column>
       <el-table-column
@@ -322,6 +369,7 @@
             size="mini"
             type="text"
             icon="el-icon-delete"
+            :disabled="isFormDisabled"
             @click="handleDelete(scope)"
             >删除</el-button
           >
@@ -396,6 +444,9 @@ export default {
         requestNo: [
           { required: true, message: "申请单号不能为空", trigger: "blur" },
         ],
+        expectedTime: [
+          { required: true, message: "预计入库时间不能为空", trigger: "blur" },
+        ],
         requestType: [
           {
             required: true,
@@ -425,9 +476,28 @@ export default {
             trigger: "blur",
           },
         ],
+        status: [
+          {
+            required: false,
+            message:
+              "状态(0草稿 1已提交 2已审核 3执行中 4已完成 5已取消)不能为空",
+            trigger: "blur",
+          },
+        ],
       },
     };
   },
+  computed: {
+    // 判断表单是否不可编辑:路径有id且status>=2
+    isFormDisabled() {
+      // 检查是否有id(编辑模式)且status>=2
+      return (
+        this.$route.query.id &&
+        this.formData.status &&
+        Number(this.formData.status) >= 2
+      );
+    },
+  },
   watch: {
     "$route.query.id": {
       immediate: true,
@@ -449,7 +519,8 @@ export default {
     // 从路由参数获取ID
     const id = this.$route.query.id;
     if (id) {
-      this.open(id);
+      this.dialogTitle = "修改";
+      // this.open(id);
     } else {
       this.dialogTitle = "新增";
     }
@@ -628,6 +699,8 @@ export default {
           res.data.priority = res.data.priority
             ? res.data.priority.toString()
             : "0";
+          res.data.status = res.data.status ? res.data.status.toString() : "0";
+          res.data.list = res.data.list || [];
           this.formData = res.data;
           this.dialogTitle = "修改";
         } finally {
@@ -635,6 +708,7 @@ export default {
         }
       } else {
         this.dialogTitle = "新增";
+        this.formData.list = [];
       }
     },
     /** 提交按钮 */
@@ -644,7 +718,7 @@ export default {
       this.formLoading = true;
       try {
         const data = this.formData;
-        data.list = data.list
+        data.list = (data.list || [])
           .filter((v) => v.nowDeliveredQty)
           .map(
             ({
@@ -710,6 +784,7 @@ export default {
         erpWriteFlag: undefined,
         erpErrMsg: undefined,
         erpBackId: undefined,
+        list: [],
       };
       this.resetForm("formRef");
     },

+ 11 - 1
src/views/wms/quality/iqcInspection/components/InspectDetail.vue

@@ -77,7 +77,7 @@
           >{{ apiStatus == -1 ? "上传附件" : "查看附件" }}</el-button
         >
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           v-hasPermi="['wms:delivery-notice-master:query']"
           type="primary"
@@ -87,6 +87,16 @@
           @click="handleViewSupplierFile"
           >供应商附件</el-button
         >
+      </el-col> -->
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          size="mini"
+          icon="el-icon-view"
+          :loading="supplierLoading"
+          @click="handleViewSupplierFile"
+          >供应商附件</el-button
+        >
       </el-col>
     </el-row>
     <!-- 搜索工作栏 -->