guoyujia 11 meses atrás
pai
commit
46fc6ce53b

+ 3 - 1
src/views/business/deptEquipment/index.vue

@@ -324,6 +324,7 @@ import {
 } from "@/api/business/deptProcess";
 import resourceGroupForm from "./form";
 import processDialog from "./DialogProcessChoice";
+import useUserStore from '@/store/modules/user'
 const { proxy } = getCurrentInstance();
 /** 字典数组区 */
 const { resource_group_detail } = proxy.useDict("resource_group_detail");
@@ -379,7 +380,8 @@ const single = ref(true);
 /** 获取工段列表 */
 function getWorkSections() {
   workSectionLoading.value = true;
-  queryDeptParams.value.getType = true;
+    //如果当前登录人不是管理员传true;否则传false
+    queryDeptParams.value.getType = true
   workSectionTree(queryDeptParams.value).then((res) => {
     workSectionList.value = res.data;
     if (workSectionList.value.length > 0) {

+ 1 - 1
src/views/business/lot/DialogWasteRecycling.vue

@@ -339,7 +339,7 @@ const handleSave = () => {
       });
       //该工段能干的工序
       listDeptProcess({
-        getFlag: "true",
+        flag: "true",
         deptId: form.value.requisitionDepartmentId,
       }).then((res) => {
         if (res.code == 200) {

+ 28 - 16
src/views/business/outsource/form.vue

@@ -43,7 +43,7 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="表单日期" prop="formDate">
-              <el-date-picker v-if="editStatus" clearable v-model="form.formDate" type="date" value-format="YYYY-MM-DD"
+              <el-date-picker v-if="editStatus &&hasReturnReceiptDetailFlag" clearable v-model="form.formDate" type="date" value-format="YYYY-MM-DD"
                 placeholder="请选择表单日期" style="width: 100%">
               </el-date-picker>
               <span v-else>{{ parseTime(form.formDate, "{y}-{m}-{d}") }}</span>
@@ -51,7 +51,7 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="外协商名称" prop="supplierName">
-              <el-input v-if="editStatus && form.isSubmit == 0" v-model="form.supplierName" readonly
+              <el-input v-if="editStatus && form.isSubmit == 0 &&hasReturnReceiptDetailFlag" v-model="form.supplierName" readonly
                 placeholder="请输入外协商名称">
                 <template #append>
                   <el-button icon="Search" @click="handleShowDialogSuppliers" />
@@ -62,21 +62,21 @@
           </el-col>
           <el-col :span="6" v-if="false">
             <el-form-item label="运费单价" prop="freightPrice">
-              <el-input-number v-if="editStatus" v-model="form.freightPrice" :min="0" :precision="2"
+              <el-input-number v-if="editStatus &&hasReturnReceiptDetailFlag" v-model="form.freightPrice" :min="0" :precision="2"
                 controls-position="right" />
               <span v-else>{{ form.freightPrice }}</span>
             </el-form-item>
           </el-col>
           <el-col :span="6" v-if="false">
             <el-form-item label="运费总价" prop="freightAmount">
-              <el-input-number v-if="editStatus" v-model="form.freightAmount" :min="0" :precision="2"
+              <el-input-number v-if="editStatus &&hasReturnReceiptDetailFlag" v-model="form.freightAmount" :min="0" :precision="2"
                 controls-position="right" />
               <span v-else>{{ form.freightAmount }}</span>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item label="送货方式" prop="deliveryMethod">
-              <el-select v-if="editStatus" v-model="form.deliveryMethod" placeholder="请选择"
+              <el-select v-if="editStatus &&hasReturnReceiptDetailFlag" v-model="form.deliveryMethod" placeholder="请选择"
                 @change="handleChangeDeliveryMethod">
                 <el-option v-for=" dict  in  deliveryMethod " :key="dict.value" :label="dict.label"
                   :value="dict.value" />
@@ -88,7 +88,7 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="带箱方式" prop="packagingMethod">
-              <el-select v-if="editStatus" v-model="form.packagingMethod" placeholder="请选择"
+              <el-select v-if="editStatus &&hasReturnReceiptDetailFlag" v-model="form.packagingMethod" placeholder="请选择"
                 @change="handleChangePackagingMethod">
                 <el-option v-for=" dict  in  packagingMethod " :key="dict.value" :label="dict.label"
                   :value="dict.value" />
@@ -100,7 +100,7 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="结算方式" prop="settlementType">
-              <el-select v-if="editStatus" v-model="form.settlementType" placeholder="请选择">
+              <el-select v-if="editStatus &&hasReturnReceiptDetailFlag" v-model="form.settlementType" placeholder="请选择">
                 <el-option v-for=" dict  in  settlementType " :key="dict.value" :label="dict.label"
                   :value="dict.value" />
               </el-select>
@@ -137,7 +137,7 @@
             <el-table-column label="产品描述" align="center" prop="productDescription" width="320" />
             <el-table-column label="产品数" align="center" width="160" prop="productNum">
               <template #default="scope">
-                <el-input-number v-if="editStatus" :min="0" v-model="scope.row.productNum" placeholder="产品数"
+                <el-input-number v-if="editStatus&&scope.row.hasReturnReceiptDetailFlag" :min="0" v-model="scope.row.productNum" placeholder="产品数"
                   :controls="false" />
                 <span v-else>{{ scope.row.productNum }}</span>
               </template>
@@ -149,7 +149,7 @@
               <template #default="scope">
                 <el-button link type="primary" icon="Refresh" v-if="!scope.row.editStatus && editStatus"
                   @click="handleChangeCarrier(scope.row)">换箱</el-button>
-                <el-select v-if="editStatus && scope.row.editStatus" v-model="scope.row.carrierIds" multiple filterable
+                <el-select v-if="editStatus && scope.row.editStatus&&scope.row.hasReturnReceiptDetailFlag" v-model="scope.row.carrierIds" multiple filterable
                   remote reserve-keyword placeholder="请选择箱号" :remote-method="(arg) =>
     remoteCarriers(arg, scope.row.newCarriers, scope.row)
     " :loading="loadingCarrier" @change="(arg) => handleCarrierChange(arg, scope.row)">
@@ -175,7 +175,7 @@
             </el-table-column>
             <el-table-column label="外协工序" align="center" prop="processNames" width="320">
               <template #default="scope">
-                <el-input v-if="editStatus" v-model="scope.row.processNames" readonly placeholder="请选择工序">
+                <el-input v-if="editStatus&&scope.row.hasReturnReceiptDetailFlag" v-model="scope.row.processNames" readonly placeholder="请选择工序">
                   <template #append>
                     <el-button icon="Search" @click="handleShowDialogProcesses(scope.row)" />
                   </template>
@@ -185,14 +185,14 @@
             </el-table-column>
             <el-table-column label="备注" align="center" prop="remark">
               <template #default="scope">
-                <el-input v-if="editStatus" v-model="scope.row.remark" placeholder="备注" />
+                <el-input v-if="editStatus&&scope.row.hasReturnReceiptDetailFlag" v-model="scope.row.remark" placeholder="备注" />
                 <span v-else>{{ scope.row.remark }}</span>
               </template>
             </el-table-column>
             <el-table-column v-if="editStatus" label="操作" align="center" class-name="small-padding fixed-width"
               width="64">
               <template #default="scope">
-                <el-button circle type="danger" icon="Delete" @click="handleDelete(scope.$index)"
+                <el-button circle type="danger" v-if="scope.row.hasReturnReceiptDetailFlag" icon="Delete" @click="handleDelete(scope.$index)"
                   v-hasPermi="['business:outsource:remove']" />
               </template>
             </el-table-column>
@@ -260,7 +260,7 @@ const loading = ref(false);
 const multiple = ref(true);
 const visible = ref(false);
 const editStatus = ref(true);
-const isFullscreen = ref(false);
+const hasReturnReceiptDetailFlag = ref(true);
 const totalCarriersNum = ref(0);
 const detailInfo = ref({});
 const loadingCarrier = ref(false);
@@ -298,6 +298,7 @@ function open(row) {
     getForm();
   } else {
     editStatus.value = true;
+    hasReturnReceiptDetailFlag.value = true
   }
 }
 
@@ -306,7 +307,16 @@ function getForm() {
   loading.value = true;
   getOrder(form.value.id).then((response) => {
     form.value = response.data;
-    console.log(form.value.details);
+    //如果发出单明细里收回单,主表除了备注之外不能编辑
+    form.value.details.forEach((item) => {
+      item.hasReturnReceiptDetailFlag = true
+      if(item.returnReceiptDetailList&&item.returnReceiptDetailList.length>0) {
+        hasReturnReceiptDetailFlag.value = false
+      }
+      if(item.returnReceiptDetailList&&item.returnReceiptDetailList.length>0&&item.returnReceiptDetailList[0].status == 1) {
+         item.hasReturnReceiptDetailFlag = false
+      }
+    });
     form.value.details.forEach((item) => {
       item.editStatus = false;
       if (!form.value.id) {
@@ -326,7 +336,7 @@ function getForm() {
       editStatus.value = false
       console.log(editStatus.value)
     }
-    console.log(editStatus.value)
+    console.log(hasReturnReceiptDetailFlag.value)
     loading.value = false;
   });
 }
@@ -630,6 +640,7 @@ const handleMultipleSelectedProducts = (selection) => {
       processNames: "",
       remark: item.remark,
       processes: [],
+      hasReturnReceiptDetailFlag :true
     };
     form.value.details.push(newDetail);
     console.log(newDetail);
@@ -795,7 +806,8 @@ const handleShowDialogProcesses = (row) => {
 // 工序选择带回
 const handleMultipleSelectedProcesses = (selection) => {
   currentDetail.value.processes = []
-  const processNames = selection.map((item) => item.processAlias);
+  console.log(selection);
+  const processNames = selection.sort((a, b) => a.processStepNumber - b.processStepNumber).map((item) => item.processAlias);
   // 使用join方法将数组转换为以逗号分隔的字符串
   let commaSeparatedString = processNames.join(",");
   currentDetail.value.processes = [];

+ 0 - 7
src/views/business/outsource/index.vue

@@ -265,7 +265,6 @@ const { packaging_method } = proxy.useDict("packaging_method");
 
 const orderList = ref([]);
 const loading = ref(true);
-const del = ref(true); //选中数据是否可以删除
 const ids = ref([]);
 const single = ref(true);
 const multiple = ref(true);
@@ -313,7 +312,6 @@ function resetQuery() {
 // 多选框选中数据
 function handleSelectionChange(selection) {
   ids.value = selection.map((item) => item.id);
-  del.value = !selection.some((item) => item.isSubmit == 1);
   single.value = selection.length != 1;
   multiple.value = !selection.length;
 }
@@ -338,8 +336,6 @@ function handleView(row) {
 /** 删除按钮操作 */
 function handleDelete(row) {
   const _ids = row.id || ids.value;
-
-  if (del.value) {
     proxy.$modal
       .confirm("是否确认删除选中的数据项?")
       .then(function () {
@@ -350,9 +346,6 @@ function handleDelete(row) {
         proxy.$modal.msgSuccess("删除成功!");
       })
       .catch(() => {});
-  } else {
-    proxy.$modal.msgError("已提交单据,不能删除!");
-  }
 }
 
 /** 导出按钮操作 */

+ 3 - 4
src/views/business/report/index.vue

@@ -136,11 +136,10 @@ function getList() {
         deptList.value = response.data.rows;
         isDispatch.value = response.data.others.isDispatch;
         loading.value = false;
-        if (deptList.value.length > 0 && !isDispatch.value) {
-            queryParams.value.deptId = deptList.value[0].value;
-        } else {
+        if (isDispatch.value) {
             deptList.value.unshift({ label: "全部", value: "0" });
-        }
+        } 
+        queryParams.value.deptId = deptList.value[0].value;
         getDayworkItems();
     });
 }

+ 3 - 6
src/views/business/reportPlan/index.vue

@@ -161,13 +161,10 @@
     getDeptList().then((response) => {
       deptList.value = response.data.rows;
       isDispatch.value = response.data.others.isDispatch;
-      // queryParams.value.deptId = '14'
-      if (deptList.value.length > 0 && !isDispatch.value) {
+      if (isDispatch.value) {
+            deptList.value.unshift({ label: "全部", value: "0" });
+        } 
         queryParams.value.deptId = deptList.value[0].value;
-      }else{
-        console.log("777")
-          deptList.value.unshift({ label: "全部", value: "0" });
-      }
       getProductionPlanDetail();
     });
     loading.value = false;

+ 4 - 2
src/views/business/returnReceipt/form.vue

@@ -181,6 +181,7 @@
                   :inactive-value="0"
                   active-text="已审核"
                   inactive-text="未审核"
+                  :disabled = "scope.row.productionDeptId !=0 || (scope.row.processInspecionList&&scope.row.processInspecionList.length>0)"
                   @change="handleChangeAuditStatus(scope.row)"
                 />
               </template>
@@ -293,7 +294,6 @@ const handleShowDialogOutSourceDetails = () => {
 };
 // 外协明细选择带回
 const handleMultipleSelectedOutsourceDetails = (selection) => {
-  console.log(selection);
   for (let i = 0; i < selection.length; i++) {
     for (let j = 0; j < selection[i].processes.length; j++) {
       const newDetail = {
@@ -326,6 +326,7 @@ const handleMultipleSelectedOutsourceDetails = (selection) => {
         status: 0,
         auditNum: 0,
       };
+      console.log(newDetail)
       form.value.detailInfo.push(newDetail);
     }
     //页面显示内容,一个批次一行
@@ -345,6 +346,7 @@ const handleMultipleSelectedOutsourceDetails = (selection) => {
       status: 0,
       auditNum: 0,
     };
+    console.log(detail)
     form.value.details.push(detail);
   }
 };
@@ -441,7 +443,7 @@ function handleDelReturnReceiveDetail(row) {
   console.log(row);
   if (form.value.id) {
     if (row.productionDeptId != 0) {
-      proxy.$modal.msgError("该批次已周转,不能删除");
+      proxy.$modal.msgError("该批次已外协序检或已周转,不能删除");
     } else {
       proxy.$modal
         .confirm(

+ 21 - 1
src/views/business/returnReceipt/index.vue

@@ -148,7 +148,7 @@ const { proxy } = getCurrentInstance();
 const { is_audit_num } = proxy.useDict("is_audit_num");
 const dataList = ref([]);
 const loading = ref(true);
-const multiple = ref(false);
+const selected = ref([]);
 const ids = ref([]);
 const total = ref(0);
 /** 查询对象 */
@@ -191,6 +191,7 @@ function resetQuery() {
 }
 /**复选框选中数据 */
 function handleSelectionChange(selection) {
+  selected.value = selection
   ids.value = selection.map((item) => item.id);
 }
 
@@ -204,6 +205,22 @@ function handleShowFormDialog(row) {
 /** 删除按钮操作 */
 function handleDelete() {
   const _ids = ids.value;
+  var flag = true;
+  console.log(selected.value)
+  selected.value.forEach((item) => {
+    item.outsourcedOrderDetails.forEach((label) => {
+      if (label.productionDeptId != 0) {
+        flag = false; 
+        return;
+      }
+    });
+    if(item.processInspecionList.length>0) {
+      flag = false; 
+        return;
+    }
+});
+//如果收回单明细里的批次有已经周转的批次,或者有批次进行外协序检了,则该外协收回单不能删除
+  if(flag){
   proxy.$modal
     .confirm("是否确认删除选中的数据项?")
     .then(function () {
@@ -214,6 +231,9 @@ function handleDelete() {
       proxy.$modal.msgSuccess("删除成功!");
     })
     .catch(() => {});
+  }else{
+    proxy.$modal.msgError("收回单中的收回明细存在已序检或已周转的批次,不能删除收回单!");
+  }
 }
 
 /** 导出按钮操作 */

+ 4 - 0
src/views/business/turnover/index.vue

@@ -72,6 +72,8 @@
 import { workSectionTree } from '@/api/system/dept'
 import { listTurnover, delTurnover } from '@/api/business/turnover'
 import turnoverForm from './form'
+import useUserStore from '@/store/modules/user'
+import { User } from '@element-plus/icons-vue';
 const { proxy } = getCurrentInstance()
 /** 字典数组区 */
 const { turnover_status } = proxy.useDict('turnover_status')
@@ -95,6 +97,8 @@ const queryParams = ref({
 /** 获取工段列表 */
 function getWorkSections() {
   workSectionLoading.value = true
+  //如果当前登录人不是管理员传true;否则传false
+  queryParams.value.getType = true
   workSectionTree(queryParams.value).then((res) => {
     workSectionList.value = res.data
     if (workSectionList.value.length > 0) {