소스 검색

拆分返工剔除页面

dengrui 6 달 전
부모
커밋
516273a54d

+ 10 - 1
src/router/modules/process.ts

@@ -223,7 +223,16 @@ export default {
       component: () => import("@/views/pro-operation/rework/index.vue"),
       name: "rework",
       meta: {
-        title: "返工/剔除",
+        title: "返工",
+        back: true,
+      },
+    },
+    {
+      path: "remove",
+      component: () => import("@/views/pro-operation/remove/index.vue"),
+      name: "remove",
+      meta: {
+        title: "剔除",
         back: true,
       },
     },

+ 1 - 0
src/views/prepare-complete-suit/components/steps.vue

@@ -86,6 +86,7 @@ const emit = defineEmits(["setstepindex"]);
 const boxClick = (item, index) => {
   //第二层参数赋值
   store.odersData.operationId = item.operationId;
+  store.odersData.operationType = item.operationType;
   store.processInfo.operationCode = item.operationCode;
   store.processInfo.operationName = item.operationName;
   emit("setstepindex", index);

+ 316 - 0
src/views/pro-operation/remove/index.vue

@@ -0,0 +1,316 @@
+<template>
+  <div class="body">
+    <!-- 剔除 -->
+
+    <el-scrollbar class="containerBox">
+      <div
+        style="margin-bottom: 10px; display: flex"
+        :style="{ justifyContent: !formStatus ? 'center' : '' }"
+      >
+        <el-button
+          type="primary"
+          style="font-size: 16px"
+          v-if="formStatus"
+          @click="toAdd"
+          >新增</el-button
+        >
+        <el-button type="primary" v-else @click="toList">返回</el-button>
+      </div>
+
+      <template v-if="formStatus">
+        <el-table class="table" :data="tableData">
+          <el-table-column label="物料名称" prop="materialName" />
+          <el-table-column label="状态" prop="num">
+            <template #default="scope">
+              <span v-if="scope.row.state === 0">待处理</span>
+              <span v-else-if="scope.row.state === 1">审核中</span>
+              <span v-else-if="scope.row.state === 2">审核驳回</span>
+              <span v-else-if="scope.row.state === 3">审核完成</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="操作">
+            <template #default="{ row }">
+              <el-button
+                v-if="row.state === 0"
+                link
+                type="danger"
+                @click="del(row.id)"
+                style="font-size: 20px"
+                >删除</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+        <Pagination
+          v-model:limit="limit"
+          v-model:page="page"
+          :position="'right'"
+          :total="total"
+          @pagination="getPagination"
+        />
+      </template>
+      <template v-else>
+        <el-scrollbar class="form">
+          <el-form
+            ref="ruleFormRef1"
+            :model="ruleForm1"
+            :rules="rules1"
+            label-width="100"
+          >
+            <el-form-item label="流转卡号" prop="seqs">
+              <el-select
+                v-model="ruleForm1.seqs"
+                multiple
+                placeholder="请选择"
+                value-key="value"
+              >
+                <el-option
+                  v-for="item in infoData?.processWorkSeq"
+                  :key="item"
+                  :label="item"
+                  :value="item"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="发生地点" prop="address">
+              <el-input v-model="ruleForm1.address" />
+            </el-form-item>
+            <el-form-item label="数量" prop="address">
+              <el-input v-model="ruleForm1.remark1.num" />
+            </el-form-item>
+            <el-form-item label="问题描述" prop="remark1[content]">
+              <el-input type="textarea" v-model="ruleForm1.remark1.content" />
+            </el-form-item>
+            <el-form-item label="审理级别:" prop="remark1[content]">
+              <el-radio-group v-model="ruleForm1.remark1.lv">
+                <el-radio value="1">一级</el-radio>
+                <el-radio value="2">二级</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item label="填表人" prop="reason">
+              <el-select
+                v-model="ruleForm1.remark1.user1"
+                filterable
+                placeholder="请选择人员"
+                value-key="id"
+              >
+                <el-option
+                  v-for="item in dictStroe.allUsers"
+                  :key="item.id"
+                  :label="item.userName"
+                  :value="item.userName"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="发生日期" prop="reason">
+              <el-date-picker
+                v-model="ruleForm1.remark1.time"
+                type="date"
+                format="YYYY-MM-DD"
+                value-format="YYYY-MM-DD"
+              />
+            </el-form-item>
+            <el-form-item label="指定检验人" prop="reason">
+              <el-select
+                v-model="ruleForm1.remark2.user2"
+                filterable
+                placeholder="请选择人员"
+                value-key="id"
+              >
+                <el-option
+                  v-for="item in dictStroe.allUsers"
+                  :key="item.id"
+                  :label="item.userName"
+                  :value="item.userName"
+                />
+              </el-select>
+            </el-form-item>
+          </el-form>
+        </el-scrollbar>
+        <div class="btns">
+          <el-button type="primary" @click="submit1">提交</el-button>
+        </div>
+      </template>
+    </el-scrollbar>
+  </div>
+</template>
+
+<script setup>
+import {
+  breakReportInfoById,
+  operationListByIds,
+} from "@/api/process/reportBreak";
+import {
+  addRework,
+  addRework1,
+  getList,
+  getList1,
+  delError,
+} from "@/api/rework";
+import { useProcessStore } from "@/store/modules/processView";
+import { useDictionaryStore } from "@/store/modules/dictionary";
+const dictStroe = useDictionaryStore();
+const processStore = useProcessStore();
+const ruleForm = ref({
+  seqList: [],
+});
+const ruleForm1 = ref({
+  seqs: [],
+  remark1: {
+    content: "",
+    user1: "",
+  },
+  remark2: {
+    user2: "",
+  },
+});
+const tableData = ref([]);
+const toAdd = () => {
+  formStatus.value = false;
+  breakReportInfoById(processStore.scanInfo.id).then((res) => {
+    infoData.value = res.data;
+  });
+};
+const toList = () => {
+  resetForm();
+  formStatus.value = true;
+};
+const resetForm = () => {
+  page.value = 1;
+  limit.value = 10;
+  ruleForm.value = { seqList: [] };
+  ruleForm1.value = {
+    seqs: [],
+    remark1: {
+      content: "",
+      user1: "",
+    },
+    remark2: {
+      user2: "",
+    },
+  };
+};
+const getPagination = async () => {
+  const { data } = await getList({
+    pageNo: page.value,
+    pageSize: limit.value,
+    seqNo: processStore.useSeqNo,
+  });
+  tableData.value = data;
+};
+const del = async (id) => {
+  const { code } = await delError({
+    id,
+  });
+  if (code == "200") {
+    ElMessage.success("删除成功");
+    getPagination1();
+  }
+};
+const getPagination1 = async () => {
+  const { data } = await getList1({
+    pageNo: page.value,
+    pageSize: limit.value,
+  });
+  tableData.value = data.records;
+};
+const formStatus = ref(true);
+
+const submit1 = async () => {
+  ruleFormRef1.value.validate((valid) => {
+    if (valid) {
+      addTask1();
+    } else {
+      ElMessage.error("请检查是否有未填项");
+    }
+  });
+};
+
+const addTask1 = async () => {
+  const { code } = await addRework1({
+    ...ruleForm1.value,
+    materialModel: processStore.processInfo.materialModel,
+    materialCode: processStore.scanInfo.materialCode,
+    materialName: processStore.scanInfo.materialName,
+    operationId: processStore.scanInfo.operationId,
+    operationName: processStore.scanInfo.operationName,
+    pid: processStore.scanInfo.id,
+    workOrderCode: processStore.odersData.workOrderCode,
+    orderNo: processStore.scanInfo.orderCode,
+    stage: processStore.scanInfo.operationName,
+    type: "eliminate",
+    seqs: ruleForm1.value.seqs.join(","),
+  });
+  if (code == "200") {
+    resetForm();
+    formStatus.value = true;
+    getPagination1();
+    ElMessage.success("操作成功!");
+  }
+};
+
+const total = ref(0);
+const page = ref(1);
+const limit = ref(10);
+const operationList = ref([]);
+const infoData = ref({});
+
+const rules1 = reactive({
+  location: [
+    {
+      required: true,
+      message: "Please select a location",
+      trigger: "change",
+    },
+  ],
+});
+</script>
+
+<style lang="scss" scoped>
+.table {
+  height: calc(100vh - 240px);
+  border-radius: 16px;
+}
+.body {
+  width: 100%;
+  height: calc(100vh - 60px);
+  .opera {
+    height: 40px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    background-color: white;
+    padding-right: 8%;
+  }
+}
+.containerBox {
+  height: calc(100vh - 100px);
+  padding: 20px;
+}
+:deep(.el-switch__label) {
+  span {
+    font-size: 20px !important;
+    line-height: 25px !important;
+  }
+}
+.form {
+  width: 50%;
+  max-width: 600px;
+  height: calc(100vh - 240px);
+  background-color: white;
+  margin: 0 auto;
+  padding: 0 20px;
+  padding-top: 20px;
+  border-radius: 16px;
+}
+.btns {
+  height: 40px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 50%;
+  max-width: 600px;
+
+  margin: 0 auto;
+}
+</style>

+ 14 - 207
src/views/pro-operation/rework/index.vue

@@ -1,25 +1,16 @@
 <template>
   <div class="body">
-    <div class="opera">
-      <el-switch
-        v-model="value"
-        size="large"
-        style="--el-switch-on-color: red; --el-switch-off-color: #13ce66"
-        active-text="剔除"
-        inactive-text="返工"
+    <!-- 返工 -->
+    <el-scrollbar class="containerBox">
+      <div
+        style="margin-bottom: 10px; display: flex"
+        :style="{ justifyContent: !formStatus ? 'center' : '' }"
       >
-        <template #active-action>
-          <span class="custom-active-action" style="font-weight: 600">T</span>
-        </template>
-        <template #inactive-action>
-          <span class="custom-inactive-action" style="font-weight: 600">F</span>
-        </template></el-switch
-      >
-    </div>
-
-    <el-scrollbar class="containerBox" v-if="!value">
-      <div style="margin-bottom: 10px; display: flex; justify-content: center">
-        <el-button type="primary" v-if="formStatus" @click="toAdd"
+        <el-button
+          type="primary"
+          style="font-size: 16px"
+          v-if="formStatus"
+          @click="toAdd"
           >新增</el-button
         >
         <el-button type="primary" v-else @click="toList">返回</el-button>
@@ -90,129 +81,6 @@
         </div>
       </template>
     </el-scrollbar>
-    <el-scrollbar class="containerBox" v-else>
-      <div style="margin-bottom: 10px; display: flex; justify-content: center">
-        <el-button type="primary" v-if="formStatus" @click="toAdd"
-          >新增</el-button
-        >
-        <el-button type="primary" v-else @click="toList">返回</el-button>
-      </div>
-
-      <template v-if="formStatus">
-        <el-table class="table" :data="tableData">
-          <el-table-column label="物料名称" prop="materialName" />
-          <el-table-column label="状态" prop="num">
-            <template #default="scope">
-              <span v-if="scope.row.state === 0">待处理</span>
-              <span v-else-if="scope.row.state === 1">审核中</span>
-              <span v-else-if="scope.row.state === 2">审核驳回</span>
-              <span v-else-if="scope.row.state === 3">审核完成</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="操作">
-            <template #default="{ row }">
-              <el-button
-                v-if="row.state === 0"
-                link
-                type="danger"
-                @click="del(row.id)"
-                style="font-size: 20px"
-                >删除</el-button
-              >
-            </template>
-          </el-table-column>
-        </el-table>
-        <Pagination
-          v-model:limit="limit"
-          v-model:page="page"
-          :position="'right'"
-          :total="total"
-          @pagination="getPagination"
-        />
-      </template>
-      <template v-else>
-        <el-scrollbar class="form">
-          <el-form
-            ref="ruleFormRef1"
-            :model="ruleForm1"
-            :rules="rules1"
-            label-width="100"
-          >
-            <el-form-item label="流转卡号" prop="seqs">
-              <el-select
-                v-model="ruleForm1.seqs"
-                multiple
-                placeholder="请选择"
-                value-key="value"
-              >
-                <el-option
-                  v-for="item in infoData?.processWorkSeq"
-                  :key="item"
-                  :label="item"
-                  :value="item"
-                />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="发生地点" prop="address">
-              <el-input v-model="ruleForm1.address" />
-            </el-form-item>
-            <el-form-item label="数量" prop="address">
-              <el-input v-model="ruleForm1.remark1.num" />
-            </el-form-item>
-            <el-form-item label="问题描述" prop="remark1[content]">
-              <el-input type="textarea" v-model="ruleForm1.remark1.content" />
-            </el-form-item>
-            <el-form-item label="审理级别:" prop="remark1[content]">
-              <el-radio-group v-model="ruleForm1.remark1.lv">
-                <el-radio value="1">一级</el-radio>
-                <el-radio value="2">二级</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item label="填表人" prop="reason">
-              <el-select
-                v-model="ruleForm1.remark1.user1"
-                filterable
-                placeholder="请选择人员"
-                value-key="id"
-              >
-                <el-option
-                  v-for="item in dictStroe.allUsers"
-                  :key="item.id"
-                  :label="item.userName"
-                  :value="item.userName"
-                />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="发生日期" prop="reason">
-              <el-date-picker
-                v-model="ruleForm1.remark1.time"
-                type="date"
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
-              />
-            </el-form-item>
-            <el-form-item label="指定检验人" prop="reason">
-              <el-select
-                v-model="ruleForm1.remark2.user2"
-                filterable
-                placeholder="请选择人员"
-                value-key="id"
-              >
-                <el-option
-                  v-for="item in dictStroe.allUsers"
-                  :key="item.id"
-                  :label="item.userName"
-                  :value="item.userName"
-                />
-              </el-select>
-            </el-form-item>
-          </el-form>
-        </el-scrollbar>
-        <div class="btns">
-          <el-button type="primary" @click="submit1">提交</el-button>
-        </div>
-      </template>
-    </el-scrollbar>
   </div>
 </template>
 
@@ -279,15 +147,6 @@ const getPagination = async () => {
   });
   tableData.value = data;
 };
-const del = async (id) => {
-  const { code } = await delError({
-    id,
-  });
-  if (code == "200") {
-    ElMessage.success("删除成功");
-    getPagination1();
-  }
-};
 const getPagination1 = async () => {
   const { data } = await getList1({
     pageNo: page.value,
@@ -305,15 +164,7 @@ const submit = async () => {
     }
   });
 };
-const submit1 = async () => {
-  ruleFormRef1.value.validate((valid) => {
-    if (valid) {
-      addTask1();
-    } else {
-      ElMessage.error("请检查是否有未填项");
-    }
-  });
-};
+
 const addTask = async () => {
   const { code } = await addRework({
     ...ruleForm.value,
@@ -331,32 +182,9 @@ const addTask = async () => {
     ElMessage.success("操作成功!");
   }
 };
-const addTask1 = async () => {
-  const { code } = await addRework1({
-    ...ruleForm1.value,
-    materialModel: processStore.processInfo.materialModel,
-    materialCode: processStore.scanInfo.materialCode,
-    materialName: processStore.scanInfo.materialName,
-    operationId: processStore.scanInfo.operationId,
-    operationName: processStore.scanInfo.operationName,
-    pid: processStore.scanInfo.id,
-    workOrderCode: processStore.odersData.workOrderCode,
-    orderNo: processStore.scanInfo.orderCode,
-    stage: processStore.scanInfo.operationName,
-    type: "eliminate",
-    seqs: ruleForm1.value.seqs.join(","),
-  });
-  if (code == "200") {
-    resetForm();
-    formStatus.value = true;
-    getPagination1();
-    ElMessage.success("操作成功!");
-  }
-};
-const value = ref(false);
-const valueStatus = ref(false);
+
 const ruleFormRef = ref(null);
-const ruleFormRef1 = ref(null);
+
 const total = ref(0);
 const page = ref(1);
 const limit = ref(10);
@@ -371,33 +199,12 @@ const rules = reactive({
     },
   ],
 });
-const rules1 = reactive({
-  location: [
-    {
-      required: true,
-      message: "Please select a location",
-      trigger: "change",
-    },
-  ],
-});
+
 const selectProcessWorkSeqChange = () => {
   operationListByIds(ruleForm.value.seqList).then((res) => {
     operationList.value = res.data;
   });
 };
-
-watch(
-  () => value.value,
-  (val) => {
-    resetForm();
-    if (val == false) {
-      getPagination();
-    } else {
-      getPagination1();
-    }
-  },
-  { immediate: true }
-);
 </script>
 
 <style lang="scss" scoped>

+ 26 - 3
src/views/pro-steps/components/operates.vue

@@ -56,6 +56,9 @@ const setIndex = (index: number) => {
     case "fangong":
       router.push({ name: "rework" });
       break;
+    case "tichu":
+      router.push({ name: "remove" });
+      break;
     case "baogong":
       reportWorkRef.value?.openReportWorkDrawer();
       break;
@@ -96,22 +99,42 @@ const stepComponents = ref([
     compentType: "baogong",
   },
   {
-    compentName: "返工/剔除",
+    compentName: "返工",
     compentType: "fangong",
   },
   {
+    compentName: "剔除",
+    compentType: "tichu",
+  },
+  {
     compentName: "印刷板",
     compentType: "printboard",
   },
 ]);
-
-onMounted(() => {
+const setComponents = () => {
   if (store.scanInfo.inspection == 1 || store.scanInfo.firstCheck == 1) {
+    stepComponents.value = stepComponents.value.filter(
+      (item) => item.compentName !== "检验"
+    );
     stepComponents.value.push({
       compentName: "检验",
       compentType: "xunjian",
     });
   }
+  if (
+    store.scanInfo.operationType == "SX" ||
+    store.scanInfo.operationType == "RX"
+  ) {
+    stepComponents.value = stepComponents.value.filter(
+      (item) => item.compentName !== "返工"
+    );
+  }
+};
+onMounted(() => {
+  setComponents();
+});
+onActivated(() => {
+  setComponents();
 });
 </script>