Parcourir la source

测试数据维修履历

jiaxiaoqiang il y a 8 mois
Parent
commit
23244acddd

Fichier diff supprimé car celui-ci est trop grand
+ 7 - 0
src/assets/icons/ceshishuju.svg


+ 4 - 0
src/views/base/craftManagement/route/components/configs.ts

@@ -363,4 +363,8 @@ export const comTypes: comType[] = [
     compentName: "工序表单",
     compentType: "operationExcel",
   },
+  {
+    compentName: "测试数据",
+    compentType: "ceshishuju",
+  },
 ];

+ 2 - 1
src/views/base/craftManagement/route/components/processComponent.vue

@@ -180,7 +180,8 @@ const clickToolCom = (com, index) => {
     com.compentType === "mingpai" ||
     com.compentType === "duomeiticaiji" ||
     com.compentType === "tiaoshipipei" ||
-    com.compentType === "jingu"
+    com.compentType === "jingu" ||
+    com.compentType === "ceshishuju"
   ) {
     isNoneedEdit.value = true;
   } else {

+ 147 - 0
src/views/pro/traceability/components/testData.vue

@@ -0,0 +1,147 @@
+<!-- 维修履历 -->
+<template>
+  <div class="mainContentBox">
+    <avue-crud
+      ref="crudRefJSSJ"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      @row-update="updateRow"
+      v-model:page="page"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+    >
+      <template #menu="{ size, row, index }">
+        <el-button type="text" size="mini" @click="lookData(row)">
+          查看
+        </el-button>
+      </template>
+    </avue-crud>
+  </div>
+  <el-dialog title="详细信息" v-model="dialogVisible">
+    <el-table :data="tableData" class="tableView-cssj">
+      <el-table-column fixed prop="proName" label="测试项目" align="center" />
+      <el-table-column fixed prop="name" label="测试名称" align="center" />
+      <el-table-column fixed prop="value" label="测试值" align="center" />
+      <el-table-column prop="flag" align="center" label="是否合格">
+        <template #default="scope">
+          <span
+            :class="{
+              'red-text': scope.row.flag == 0,
+              'green-text': scope.row.writeData == 1,
+            }"
+          >
+            {{ scope.row.flag == 1 ? "合格" : "不合格" }}
+          </span>
+        </template>
+      </el-table-column>
+    </el-table>
+  </el-dialog>
+</template>
+<script setup>
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import dictDataUtil from "@/common/configs/dictDataUtil";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import {
+  useCommonStoreHook,
+  useDictionaryStore,
+  useUserStoreHook,
+} from "@/store";
+
+// 数据字典相关
+const { dicts } = useDictionaryStore();
+const userStore = useUserStoreHook();
+
+// 传入一个url,后面不带/
+const {
+  form,
+  data,
+  option,
+  search,
+  page,
+  toDeleteIds,
+  Methords,
+  Utils,
+  commonConfig,
+} = useCrud({
+  src: "/api/v1/testData/testData",
+});
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+const onUserSelectedFinish = (selectedValue) => {
+  form.value.operator = selectedValue.userName;
+};
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+const userRef = ref(null);
+const refreshTra = (row) => {
+  commonConfig.value.params = {
+    seqNo: row.seqNo,
+    workOrderCode: row.workOrderCode,
+  };
+  dataList();
+};
+defineExpose({ refreshTra });
+onMounted(() => {
+  if (userStore.user.userId === 10000) {
+    option.value.menu = true;
+    option.value.editBtn = true;
+  }
+});
+
+option.value = Object.assign(option.value, {
+  // selection: false,
+  // border: true,
+  // index: false,
+  // expandLevel: 3,
+  // headerAlign: "center",
+  // align: "center",
+  // labelWidth: 100,
+  // addBtn: false,
+  // delBtn: false,
+  // menuWidth: 0,
+  // editBtn: false,
+  // viewBtn: false,
+  // // menu: false,
+  header: false,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  column: [
+    {
+      label: "测试时间",
+      prop: "created",
+    },
+    {
+      label: "测试人",
+      prop: "creator",
+    },
+    {
+      label: "物料名称",
+      prop: "materialName",
+    },
+    // {
+    //   label: "操作",
+    //   prop: "op",
+    // },
+  ],
+});
+
+// 查看相关代码
+const dialogVisible = ref(false);
+const tableData = ref([]);
+const lookData = (row) => {
+  tableData.value = JSON.parse(row.testData);
+
+  dialogVisible.value = true;
+};
+
+const handleDialogCancel = () => {
+  dialogVisible.value = false;
+};
+</script>

+ 36 - 12
src/views/pro/traceability/index.vue

@@ -44,7 +44,7 @@
             }}</el-descriptions-item>
             <el-descriptions-item label="铭牌号">-</el-descriptions-item>
             <el-descriptions-item label="是否返工">
-              <el-tag size="small">{{productReviewInfo.rework}}</el-tag>
+              <el-tag size="small">{{ productReviewInfo.rework }}</el-tag>
             </el-descriptions-item>
             <el-descriptions-item label="工单出站">{{
               productReviewInfo.outNum
@@ -52,7 +52,11 @@
             <el-descriptions-item label="交付日期">{{
               productReviewInfo.planStartEnd
             }}</el-descriptions-item>
-            <el-descriptions-item label="工单报故"><el-tag size="small">{{productReviewInfo.bug}}</el-tag></el-descriptions-item>
+            <el-descriptions-item label="工单报故"
+              ><el-tag size="small">{{
+                productReviewInfo.bug
+              }}</el-tag></el-descriptions-item
+            >
           </el-descriptions>
         </el-header>
         <el-main>
@@ -166,6 +170,19 @@
               </template>
               <ExcelCom ref="excelComRef"
             /></el-tab-pane>
+            <el-tab-pane name="cssjComRef" label="测试数据"
+              ><template #label>
+                <span
+                  >测试数据
+                  <el-badge
+                    :value="tabCount.testData"
+                    class="item"
+                    type="primary"
+                  />
+                </span>
+              </template>
+              <TestData ref="cssjComRef"
+            /></el-tab-pane>
           </el-tabs>
         </el-main>
       </el-container>
@@ -185,6 +202,7 @@ import EquitCom from "@/views/pro/traceability/components/equitCom.vue";
 import FaultCom from "@/views/pro/traceability/components/faultCom.vue";
 import MediaCom from "./components/mediaCom.vue";
 import ExcelCom from "./components/excelCom.vue";
+import TestData from "./components/testData.vue";
 
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
@@ -207,6 +225,7 @@ const equitComRef = ref(null);
 const faultComRef = ref(null);
 const mediaComRef = ref(null);
 const excelComRef = ref(null);
+const cssjComRef = ref(null);
 let defaultTabName = ref("traceabilityComRef");
 //tab页组件
 const tabNameComRef = new Map([
@@ -218,6 +237,7 @@ const tabNameComRef = new Map([
   ["faultComRef", faultComRef],
   ["mediaComRef", mediaComRef],
   ["excelComRef", excelComRef],
+  ["cssjComRef", cssjComRef],
 ]);
 let temRow = ref({});
 const tabsEvent = (pane, ev) => {
@@ -248,8 +268,8 @@ let productReviewInfo = reactive({
   planStartEnd: "",
   workOrderCode: "",
   outNum: "",
-  rework: '-',
-  bug: '-'
+  rework: "-",
+  bug: "-",
 });
 
 let tabCount = reactive({
@@ -261,14 +281,15 @@ let tabCount = reactive({
   fault: "",
   medias: "",
   excel: "",
+  testData: "",
 });
 
 const handleCellClick = (row, column, event) => {
-  if(row.level === 'order'){
-    productReviewInfo.bug = '-'
+  if (row.level === "order") {
+    productReviewInfo.bug = "-";
   }
-  if(row.orderType){
-    productReviewInfo.rework = row.orderType === '2' ? '是' : '否'
+  if (row.orderType) {
+    productReviewInfo.rework = row.orderType === "2" ? "是" : "否";
   }
   //获取出单的数量
   if (data.value) {
@@ -276,8 +297,8 @@ const handleCellClick = (row, column, event) => {
       if (topTree) {
         for (let secondTree of topTree.children) {
           if (row.workOrderCode == secondTree.workOrderCode) {
-            productReviewInfo.rework = topTree.orderType === '2' ? '是' : '否'
-            productReviewInfo.bug = secondTree.bugNum === 0 ? '否' : '是'
+            productReviewInfo.rework = topTree.orderType === "2" ? "是" : "否";
+            productReviewInfo.bug = secondTree.bugNum === 0 ? "否" : "是";
             productReviewInfo.outNum = secondTree.children.length;
           }
         }
@@ -293,7 +314,10 @@ const handleCellClick = (row, column, event) => {
       tabNameComRef.get(defaultTabName.value)?.value.refreshTra(temRow.value);
     }
     //每次点击都要获取tab页面的数量
-    traceabilityTabCount({ seqNo: row.seqNo,workOrderCode: row.workOrderCode }).then(({ data }) => {
+    traceabilityTabCount({
+      seqNo: row.seqNo,
+      workOrderCode: row.workOrderCode,
+    }).then(({ data }) => {
       tabCount = Object.assign(tabCount, data);
     });
     if (row.workOrderCode == productReviewInfo.workOrderCode) {
@@ -301,7 +325,7 @@ const handleCellClick = (row, column, event) => {
       return;
     }
     //产品信息
-    getMaterialDetailsByseqNo(row.workOrderCode,row.seqNo).then(({ data }) => {
+    getMaterialDetailsByseqNo(row.workOrderCode, row.seqNo).then(({ data }) => {
       productReviewInfo = Object.assign(productReviewInfo, data);
       productReviewInfo.workOrderCode = row.workOrderCode;
       // productReviewInfo.outNum =