Forráskód Böngészése

生产履历-数据采集

dengrui 8 hónapja
szülő
commit
855b77142b

+ 325 - 0
src/views/pro/traceability/components/collectionCom.vue

@@ -0,0 +1,325 @@
+<!-- 表格数据 -->
+<template>
+  <div class="mainContentBox">
+    <avue-crud
+      v-model="form"
+      @row-update="createRow"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+    >
+      <template #menu="{ row }">
+        <el-button
+          v-if="row.deviceNo"
+          link
+          size="small"
+          type="primary"
+          @click="opView(row)"
+          style="margin: 0"
+          ><i-ep-view />查看
+        </el-button>
+        <!--        <el-button
+          v-if="row.excelData != '' && row.excelData != null"
+          type="warning"
+          link
+          size="small"
+          @click="opUpdate(row)"
+          style="margin: 0"
+          ><i-ep-edit />修改表格数据
+        </el-button>-->
+      </template>
+    </avue-crud>
+    <el-dialog
+      v-model="updataShow"
+      :title="updateTitle"
+      @close="closeShow"
+      width="1600"
+    >
+      <avue-crud
+        v-model="useCrud2.form"
+        :data="useCrud2.data"
+        v-model:search="useCrud2.search"
+        :option="useCrud2.option"
+        v-model:page="useCrud2.page"
+        @search-change="useCrud2.Methords.searchChange"
+        @search-reset="useCrud2.Methords.resetChange"
+        @size-change="useCrud2.Methords.dataList"
+        @current-change="useCrud2.Methords.dataList"
+      />
+    </el-dialog>
+  </div>
+</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 updataShow = ref(false);
+const updateTitle = ref("采集详情");
+const opUpdate = (row) => {
+  ExData.value = row;
+  ExData.value.lookStatus = false;
+  if (row.writeData == "" || row.writeData == null) {
+    ElMessage.error("数据有误请联系管理员");
+    return;
+  }
+  updataShow.value = true;
+};
+
+const closeShow = () => {
+  updataShow.value = false;
+};
+const ExData = ref("");
+// 传入一个url,后面不带/
+const {
+  form,
+  data,
+  option,
+  search,
+  page,
+  toDeleteIds,
+  Methords,
+  Utils,
+  commonConfig,
+} = useCrud({
+  src: "/api/v1/process/web/traceability/collect",
+});
+const useCrud2 = ref(
+  useCrud({
+    src: "/api/v1/process/web/traceability/collectData",
+  })
+);
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+const userStore = useUserStoreHook();
+const refreshTra = (row) => {
+  commonConfig.value.params = {
+    seqNo: row.seqNo,
+    workOrderCode: row.workOrderCode,
+  };
+  dataList();
+};
+const refreshDatalist = () => {
+  dataList();
+};
+defineExpose({ refreshTra });
+
+option.value = Object.assign(option.value, {
+  selection: false,
+  border: true,
+  index: false,
+  expandLevel: 3,
+  headerAlign: "center",
+  align: "center",
+  labelWidth: 100,
+  addBtn: false,
+  delBtn: false,
+  viewBtn: false,
+  menu: false,
+  header: false,
+  editBtn: false,
+  rowKey: "operationId",
+  column: [
+    {
+      label: "工序Id",
+      prop: "operationId",
+      display: false,
+      hide: true,
+    },
+    {
+      label: "工序名称",
+      prop: "operationName",
+      disabled: true,
+      search: false,
+      display: false,
+    },
+    {
+      label: "设备名称",
+      disabled: true,
+      prop: "deviceName",
+      search: false,
+    },
+    {
+      label: "设备编号",
+      disabled: true,
+      prop: "deviceNo",
+      search: false,
+    },
+  ],
+});
+
+useCrud2.value.option = Object.assign(useCrud2.value.option, {
+  selection: false,
+  border: true,
+  index: false,
+  expandLevel: 3,
+  headerAlign: "center",
+  align: "center",
+  labelWidth: 100,
+  addBtn: false,
+  delBtn: false,
+  viewBtn: false,
+  menu: false,
+  header: false,
+  editBtn: false,
+  rowKey: "operationId",
+  column: [
+    {
+      label: "设备名称",
+      disabled: true,
+      prop: "deviceName",
+      search: false,
+    },
+    {
+      label: "设备编号",
+      disabled: true,
+      prop: "deviceNo",
+      search: false,
+    },
+    {
+      label: "采集数据",
+      prop: "data",
+      html: true,
+      formatter: (val) => {
+        return dataShow(val.data);
+      },
+    },
+  ],
+});
+const showLable = (key) => {
+  switch (key) {
+    case "CH5Val":
+      return "CH5";
+    case "CH6Val":
+      return "CH6";
+    case "DataTimes":
+      return "采集时间";
+    case "torquetarget":
+      return "当前任务目标扭力";
+    case "tightenTorqueMax":
+      return "拧紧过程中最大扭力值";
+    case "taskNo":
+      return "当前任务号";
+    case "warning":
+      return "警报";
+    case "tightenResult":
+      return "最终拧紧结果";
+    case "totalCycles":
+      return "总圈数";
+    case "length":
+      return "长度";
+    case "height":
+      return "高度";
+    case "DDLSD1":
+      return "拧紧的模式";
+    case "DDLSD2":
+      return "拧紧旋转方向";
+    case "DDLSD3":
+      return "目标扭力";
+    case "DDLSD4":
+      return "扭力保持时间";
+    case "DDLSD5":
+      return "浮高界定圈数";
+    case "DDLSD6":
+      return "滑牙界定圈数";
+    case "DDLSD7":
+      return "触发速度切换的扭力比值";
+    case "DDLSD8":
+      return "扭力补偿值";
+    case "DDLSD9":
+      return "开启浮高滑牙检测";
+    case "DDLSD10":
+      return "触发速度切换的扭力";
+    case "DDLSD11":
+      return "触发速度切换的速度比值";
+    case "DDLSD12":
+      return "扭力偏差上限";
+    case "DDLSD13":
+      return "扭力偏差下限";
+    case "DDLSD14":
+      return "扭力免检圈数";
+    case "DDLSD15":
+      return "拧松有效触发的扭力阀值";
+    case "DDLSD16":
+      return "拧松有效触发的保持时间";
+    case "DDLSD17":
+      return "自由旋转方向";
+    case "DDLSD18":
+      return "STEP-00拧紧圈数";
+    case "DDLSD19":
+      return "STEP-00拧紧速度";
+    case "DDLSD20":
+      return "STEP-01拧紧圈数";
+    case "DDLSD21":
+      return "STEP-01拧紧速度";
+    case "DDLSD22":
+      return "STEP-02拧紧圈数";
+    case "DDLSD23":
+      return "STEP-02拧紧速度";
+    case "DDLSD24":
+      return "STEP-03拧紧圈数";
+    case "DDLSD25":
+      return "STEP-03拧紧速度";
+    case "DDLSD26":
+      return "STEP-04拧紧圈数";
+    case "DDLSD27":
+      return "STEP-04拧紧速度";
+    case "DDLSD28":
+      return "STEP-00拧松圈数";
+    case "DDLSD29":
+      return "STEP-00拧松速度";
+    case "DDLSD30":
+      return "STEP-01拧松圈数";
+    case "DDLSD31":
+      return "STEP-01拧松速度";
+    case "DDLSD32":
+      return "STEP-02拧松圈数";
+    case "DDLSD33":
+      return "STEP-02拧松速度";
+    case "DDLSD34":
+      return "STEP-00自由圈数";
+    case "DDLSD35":
+      return "STEP-00自由速度";
+    default:
+      return null;
+  }
+};
+const dataShow = (dataJSON) => {
+  const obj = JSON.parse(dataJSON);
+  let str = "";
+  for (let key in obj) {
+    if (obj.hasOwnProperty(key)) {
+      if (showLable(key) == null) continue;
+      let str1 = showLable(key);
+      let str2 = obj[key];
+      let res = str1 + ":" + str2 + "<br/>";
+      str += res;
+    }
+  }
+  return str;
+};
+const opView = (row) => {
+  updataShow.value = true;
+  useCrud2.value.search = {
+    seqNo: commonConfig.value.params.seqNo,
+    workOrderCode: commonConfig.value.params.workOrderCode,
+    deviceNo: row.deviceNo,
+    operationId: row.operationId,
+  };
+  useCrud2.value.Methords.dataList();
+};
+onMounted(() => {
+  if (userStore.user.userId === 10000) {
+    option.value.menu = true;
+  }
+});
+</script>

+ 20 - 3
src/views/pro/traceability/index.vue

@@ -42,7 +42,9 @@
             <el-descriptions-item label="产品规格">{{
               productReviewInfo.materialModel
             }}</el-descriptions-item>
-            <el-descriptions-item label="订单编号">{{productReviewInfo.orderCode}}</el-descriptions-item>
+            <el-descriptions-item label="订单编号">{{
+              productReviewInfo.orderCode
+            }}</el-descriptions-item>
             <el-descriptions-item label="是否返工">
               <el-tag size="small">{{ productReviewInfo.rework }}</el-tag>
             </el-descriptions-item>
@@ -170,6 +172,19 @@
               </template>
               <ExcelCom ref="excelComRef"
             /></el-tab-pane>
+            <el-tab-pane name="collectionComRef" label="表格数据"
+              ><template #label>
+                <span
+                  >数据采集
+                  <el-badge
+                    :value="tabCount.collect"
+                    class="item"
+                    type="primary"
+                  />
+                </span>
+              </template>
+              <CollectionCom ref="collectionComRef"
+            /></el-tab-pane>
           </el-tabs>
         </el-main>
       </el-container>
@@ -189,7 +204,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 CollectionCom from "./components/collectionCom.vue";
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
@@ -211,6 +226,7 @@ const equitComRef = ref(null);
 const faultComRef = ref(null);
 const mediaComRef = ref(null);
 const excelComRef = ref(null);
+const collectionComRef = ref(null);
 let defaultTabName = ref("traceabilityComRef");
 //tab页组件
 const tabNameComRef = new Map([
@@ -222,6 +238,7 @@ const tabNameComRef = new Map([
   ["faultComRef", faultComRef],
   ["mediaComRef", mediaComRef],
   ["excelComRef", excelComRef],
+  ["collectionComRef", collectionComRef],
 ]);
 let temRow = ref({});
 const tabsEvent = (pane, ev) => {
@@ -268,7 +285,7 @@ let tabCount = reactive({
 });
 
 const handleCellClick = (row, column, event) => {
-  productReviewInfo.orderCode = row.orderCode
+  productReviewInfo.orderCode = row.orderCode;
   if (row.level === "order") {
     productReviewInfo.bug = "-";
   }