Browse Source

bug 修复

dengrui 9 months ago
parent
commit
ba416286f3

File diff suppressed because it is too large
+ 4 - 0
src/assets/icons/shutdown.svg


+ 41 - 35
src/components/Upload/CameraUpload.vue

@@ -60,29 +60,32 @@ const cameraEmit = defineEmits([
 ]);
 
 const openMedia = async () => {
-  camera_ohos();
-  // visible.value = true;
-  // nextTick(() => {
-  //   let constraints = {
-  //     video: { width: photoSize, height: photoSize },
-  //     audio: false,
-  //   };
-  //   //获得video摄像头
-  //   video = document.getElementById("video");
-  //   navigator.mediaDevices
-  //     .getUserMedia(constraints)
-  //     .then((mediaStream) => {
-  //       console.log("mediaStream", mediaStream);
-  //       // mediaStreamTrack = typeof mediaStream.stop === 'function' ? mediaStream : mediaStream.getTracks()[1];
-  //       mediaStreamTrack = mediaStream.getVideoTracks();
-  //       video.srcObject = mediaStream;
-  //       video.play();
-  //     })
-  //     .catch((error) => {
-  //       console.log("Error: " + error);
-  //       ElMessage.error("没有找到设备,或者没有权限");
-  //     });
-  // });
+  if (window.openHarmonyBridge && window.openHarmonyBridge.startCamera) {
+    camera_ohos();
+  } else {
+    visible.value = true;
+    nextTick(() => {
+      let constraints = {
+        video: { width: photoSize, height: photoSize },
+        audio: false,
+      };
+      //获得video摄像头
+      video = document.getElementById("video");
+      navigator.mediaDevices
+        .getUserMedia(constraints)
+        .then((mediaStream) => {
+          console.log("mediaStream", mediaStream);
+          // mediaStreamTrack = typeof mediaStream.stop === 'function' ? mediaStream : mediaStream.getTracks()[1];
+          mediaStreamTrack = mediaStream.getVideoTracks();
+          video.srcObject = mediaStream;
+          video.play();
+        })
+        .catch((error) => {
+          console.log("Error: " + error);
+          ElMessage.error("没有找到设备,或者没有权限");
+        });
+    });
+  }
 };
 
 function dataURItoBlob(base64Data) {
@@ -139,18 +142,21 @@ function closeMedia() {
 const visible = ref(false);
 
 const selectFile = () => {
-  select_ohos();
-  // let input = document.getElementById("fileInput");
-  // input.click();
-  // input.onchange = function () {
-  //   let file = this.files[0];
-  //   if (file) {
-  //     uploadFileApi(file).then((res) => {
-  //       cameraEmit("uploadFinish", res.data.fileUrl);
-  //       input.value = "";
-  //     });
-  //   }
-  // };
+  if (window.openHarmonyBridge && window.openHarmonyBridge.selectFile) {
+    select_ohos();
+  } else {
+    let input = document.getElementById("fileInput");
+    input.click();
+    input.onchange = function () {
+      let file = this.files[0];
+      if (file) {
+        uploadFileApi(file).then((res) => {
+          cameraEmit("uploadFinish", res.data.fileUrl);
+          input.value = "";
+        });
+      }
+    };
+  }
 };
 
 const clickReset = () => {

+ 13 - 0
src/layout/components/header.vue

@@ -21,6 +21,14 @@
         <div>
           <svg-icon
             class="activeNotice"
+            icon-class="shutdown"
+            size="47"
+            @click="toExitApp"
+          />
+        </div>
+        <div>
+          <svg-icon
+            class="activeNotice"
             icon-class="hongDa_black"
             size="48"
             @click="goToDevice"
@@ -162,6 +170,11 @@ const handleCommand = (command: string | number | object) => {
     ElMessage.success("设置成功!");
   }
 };
+const toExitApp = () => {
+  if (window.openHarmonyBridge && window.openHarmonyBridge.exitApp) {
+    window.openHarmonyBridge.exitApp("");
+  }
+};
 const goToDevice = () => {
   let p = {
     stationIP: userStore.user.stationIP,

+ 139 - 119
src/views/login/index.vue

@@ -1,148 +1,155 @@
 <template>
   <div class="login-container">
     <el-card class="form-container">
-      <div class="login-title">
-        <h2>{{ defaultSettings.title }}</h2>
-        <div @click="showJobNumber = !showJobNumber">
-          {{ showJobNumber ? "账号密码登录" : "扫码登录" }}
-        </div>
-      </div>
-
-      <el-form
-        ref="loginFormRef"
-        :model="loginData"
-        :rules="loginRules"
-        class="login-form"
-        size="default"
-      >
-        <el-form-item v-if="showJobNumber" prop="jobNumber">
-          <div class="flex-y-center w-full">
-            <svg-icon class="mx-2" icon-class="document" />
-            <el-input
-              ref="username"
-              v-model="loginData.jobNumber"
-              class="h-[48px]"
-              name="jobNumber"
-              placeholder="请扫码或输入工号"
-              size="large"
-            />
+      <el-scrollbar class="scrollbar">
+        <div class="login-title">
+          <h2>{{ defaultSettings.title }}</h2>
+          <div @click="showJobNumber = !showJobNumber">
+            {{ showJobNumber ? "账号密码登录" : "扫码登录" }}
           </div>
-        </el-form-item>
-        <div v-else>
-          <!-- 用户名 -->
-          <el-form-item prop="userName">
+        </div>
+
+        <el-form
+          ref="loginFormRef"
+          :model="loginData"
+          :rules="loginRules"
+          class="login-form"
+          size="default"
+        >
+          <el-form-item v-if="showJobNumber" prop="jobNumber">
             <div class="flex-y-center w-full">
-              <svg-icon class="mx-2" icon-class="user" />
+              <svg-icon class="mx-2" icon-class="document" />
               <el-input
                 ref="username"
-                v-model="loginData.userName"
+                v-model="loginData.jobNumber"
                 class="h-[48px]"
-                name="userName"
-                placeholder="请输入用户名"
+                name="jobNumber"
+                placeholder="请扫码或输入工号"
                 size="large"
               />
             </div>
           </el-form-item>
-
-          <!-- 密码 -->
-          <el-tooltip
-            :content="$t('login.capsLock')"
-            :visible="isCapslock"
-            placement="right"
-          >
-            <el-form-item prop="password">
+          <div v-else>
+            <el-form-item prop="userName">
               <div class="flex-y-center w-full">
-                <svg-icon class="mx-2" icon-class="lock" />
+                <svg-icon class="mx-2" icon-class="user" />
                 <el-input
-                  v-model="loginData.password"
-                  :placeholder="$t('login.password')"
-                  class="h-[48px] pr-2"
-                  name="password"
-                  show-password
+                  ref="username"
+                  v-model="loginData.userName"
+                  class="h-[48px]"
+                  name="userName"
+                  placeholder="请输入用户名"
                   size="large"
-                  type="password"
-                  @keyup="checkCapslock"
                 />
               </div>
             </el-form-item>
-          </el-tooltip>
-        </div>
 
-        <!-- 组织 -->
-        <el-form-item prop="orgId">
-          <div class="flex-y-center w-full">
-            <svg-icon class="mx-2" icon-class="captcha" />
-            <el-select
-              v-model="loginData.orgId"
-              class="no-border"
-              placeholder="请选择组织"
-              size="large"
-            >
-              <el-option
-                v-for="item in orgList"
-                :key="item.id"
-                :label="item.deptName"
-                :value="item.id"
-              />
-            </el-select>
-          </div>
-        </el-form-item>
-
-        <el-form-item prop="proCode">
-          <div class="flex-y-center w-full">
-            <svg-icon class="mx-2" icon-class="cascader" />
-            <el-select
-              v-model="loginData.proCode"
-              class="no-border"
-              placeholder="请选择产线"
-              size="large"
-            >
-              <el-option
-                v-for="item in productionList"
-                :key="item.code"
-                :label="item.name"
-                :value="item.code"
-              />
-            </el-select>
-          </div>
-        </el-form-item>
-
-        <el-form-item prop="stationId">
-          <div class="flex-y-center w-full">
-            <svg-icon class="mx-2" icon-class="client" />
-            <el-select
-              v-model="loginData.stationId"
-              class="no-border"
-              placeholder="请选择工位"
-              size="large"
-              @change="onStationChange"
+            <el-tooltip
+              :content="$t('login.capsLock')"
+              :visible="isCapslock"
+              placement="right"
             >
-              <el-option
-                v-for="item in stationList"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              />
-            </el-select>
+              <el-form-item prop="password">
+                <div class="flex-y-center w-full">
+                  <svg-icon class="mx-2" icon-class="lock" />
+                  <el-input
+                    v-model="loginData.password"
+                    :placeholder="$t('login.password')"
+                    class="h-[48px] pr-2"
+                    name="password"
+                    show-password
+                    size="large"
+                    type="password"
+                    @keyup="checkCapslock"
+                  />
+                </div>
+              </el-form-item>
+            </el-tooltip>
           </div>
-        </el-form-item>
-
-        <!-- 登录按钮 -->
-        <el-button
-          :loading="loading"
-          class="login-btn"
-          size="large"
-          type="primary"
-          @click.prevent="handleLogin"
-          >{{ $t("login.login") }}
-        </el-button>
-      </el-form>
+
+          <el-form-item prop="orgId">
+            <div class="flex-y-center w-full">
+              <svg-icon class="mx-2" icon-class="captcha" />
+              <el-select
+                v-model="loginData.orgId"
+                class="no-border"
+                placeholder="请选择组织"
+                size="large"
+              >
+                <el-option
+                  v-for="item in orgList"
+                  :key="item.id"
+                  :label="item.deptName"
+                  :value="item.id"
+                />
+              </el-select>
+            </div>
+          </el-form-item>
+
+          <el-form-item prop="proCode">
+            <div class="flex-y-center w-full">
+              <svg-icon class="mx-2" icon-class="cascader" />
+              <el-select
+                v-model="loginData.proCode"
+                class="no-border"
+                placeholder="请选择产线"
+                size="large"
+              >
+                <el-option
+                  v-for="item in productionList"
+                  :key="item.code"
+                  :label="item.name"
+                  :value="item.code"
+                />
+              </el-select>
+            </div>
+          </el-form-item>
+
+          <el-form-item prop="stationId">
+            <div class="flex-y-center w-full">
+              <svg-icon class="mx-2" icon-class="client" />
+              <el-select
+                v-model="loginData.stationId"
+                class="no-border"
+                placeholder="请选择工位"
+                size="large"
+                @change="onStationChange"
+              >
+                <el-option
+                  v-for="item in stationList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                />
+              </el-select>
+            </div>
+          </el-form-item>
+
+          <el-button
+            :loading="loading"
+            class="login-btn"
+            size="large"
+            type="primary"
+            @click.prevent="handleLogin"
+            >{{ $t("login.login") }}
+          </el-button>
+        </el-form>
+      </el-scrollbar>
     </el-card>
 
     <!-- ICP备案 -->
     <div v-show="icpVisible" class="absolute bottom-1 text-[10px] text-center">
       <p>Copyright © 2022-2025 jgai.com All Rights Reserved.</p>
     </div>
+    <div>
+      <svg-icon
+        class="activeNotice"
+        style="right: 20px; top: 20px; position: absolute"
+        icon-class="shutdown"
+        size="40"
+        @click="toExitApp"
+      />
+    </div>
   </div>
 </template>
 
@@ -184,7 +191,11 @@ const loginData = ref<LoginData>({
   userName: "",
   password: "",
 });
-
+const toExitApp = () => {
+  if (window.openHarmonyBridge && window.openHarmonyBridge.exitApp) {
+    window.openHarmonyBridge.exitApp("");
+  }
+};
 const loginRules = computed?.(() => {
   return {
     userName: [
@@ -497,4 +508,13 @@ onMounted?.(() => {
     }
   }
 }
+@media (max-height: 540px) {
+  /* 在页面高度低于500px时应用的样式 */
+  .form-container {
+    height: 100vh;
+  }
+  .scrollbar {
+    height: 100vh;
+  }
+}
 </style>

+ 4 - 2
src/views/pro-operation/inspect/components/checkForm.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-form ref="formRef" :model="modelValue" :rules="rules" label-width="100px">
+  <el-form ref="formRef" :model="modelValue" :rules="rules" label-width="120px">
     <el-form-item label="检验项名称" prop="checkName">
       <el-input v-model="modelValue.checkName" />
     </el-form-item>
@@ -30,7 +30,6 @@
     <!--    </el-form-item>-->
   </el-form>
 </template>
-
 <script setup>
 import { useProcessStore } from "@/store/modules/processView";
 
@@ -100,4 +99,7 @@ defineExpose({
   padding: 0 20%;
   justify-content: space-evenly;
 }
+:deep(.el-form-item__label) {
+  font-size: 16px;
+}
 </style>

+ 3 - 2
src/views/pro-operation/inspect/index.vue

@@ -368,9 +368,10 @@ onUnmounted(() => {
 }
 
 .sureBtn {
-  border-radius: 16px;
-  font-size: 16px;
+  border-radius: 25px;
+  font-size: 20px;
   font-size: 500;
+  height: 50px;
 }
 
 .body {

+ 0 - 2
src/views/pro-steps/components/dianjian.vue

@@ -61,7 +61,6 @@ const getCheckList = async () => {
     pageSize: 9999,
     pageNo: 1,
   });
-  // console.log("getCheckList",data)
   checkListData.value = data;
 };
 const updateCheck = async (item, res) => {
@@ -104,7 +103,6 @@ const buhege = async (index) => {
   updateCheck(checkListData.value[index], "2");
 };
 onMounted(() => {
-  console.log("wajajaj");
   getCheckList();
 });
 </script>

+ 90 - 83
src/views/pro-steps/components/excel.vue

@@ -1,88 +1,95 @@
 <template>
-  <div v-if="!excelViewStatus">
-    <el-table :data="tableData" class="tableView">
-      <el-table-column fixed prop="formName" label="模板名称" align="center" />
-      <el-table-column prop="writeData" align="center" label="是否已填报">
-        <template #default="scope">
-          <span
-            :class="{
-              'red-text': scope.row.writeData === '',
-              'green-text': scope.row.writeData !== '',
-            }"
-          >
-            {{ scope.row.writeData === "" ? "否" : "是" }}
-          </span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" fixed="right" width="200">
-        <template #default="scope">
-          <el-button
-            link
-            v-if="scope.row.writeData !== ''"
-            class="btnText"
-            type="primary"
-            @click="handleLook(scope.row)"
-          >
-            查看
-          </el-button>
-          <el-button
-            link
-            class="btnText"
-            type="primary"
-            @click="handleEdit(scope.row)"
-          >
-            编辑
-          </el-button>
-
-          <el-popconfirm
-            v-if="scope.row.writeData !== ''"
-            :visible="scope.row.dialogVisible"
-            title="您确认重置吗?(重置此操作不可逆)"
-            width="200"
-            @cancel="scope.row.dialogVisible = false"
-            @confirm="reset(scope.row)"
-          >
-            <el-button> 取消 </el-button>
-            <el-button type="primary"> 确认 </el-button>
-            <template #reference>
-              <el-button
-                link
-                class="btnText"
-                type="primary"
-                @click="scope.row.dialogVisible = true"
-                >重置</el-button
-              >
-            </template>
-          </el-popconfirm>
-        </template>
-      </el-table-column>
-    </el-table>
-  </div>
-  <div v-else class="fullScreen">
-    <div class="excelView">
-      <div class="view">
-        <ExcelView
-          v-model:data="excelData"
-          :option="excelOptions"
-          ref="excelViewRef"
-          :checkStatus="true"
-          :verifications="setting"
+  <div>
+    <div v-if="!excelViewStatus">
+      <el-table :data="tableData" class="tableView">
+        <el-table-column
+          fixed
+          prop="formName"
+          label="模板名称"
+          align="center"
         />
-      </div>
-      <div class="opeara">
-        <div class="titles">当前操作表格:</div>
-        <div class="titles">{{ title }}</div>
-        <div>
-          <el-button
-            v-if="excelOptions.edit"
-            type="primary"
-            class="btn"
-            @click="submitData"
-            >提交</el-button
-          >
-          <el-button class="btn" @click="resetData">{{
-            excelOptions.edit ? "取消" : "返回"
-          }}</el-button>
+        <el-table-column prop="writeData" align="center" label="是否已填报">
+          <template #default="scope">
+            <span
+              :class="{
+                'red-text': scope.row.writeData === '',
+                'green-text': scope.row.writeData !== '',
+              }"
+            >
+              {{ scope.row.writeData === "" ? "否" : "是" }}
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right" width="200">
+          <template #default="scope">
+            <el-button
+              link
+              v-if="scope.row.writeData !== ''"
+              class="btnText"
+              type="primary"
+              @click="handleLook(scope.row)"
+            >
+              查看
+            </el-button>
+            <el-button
+              link
+              class="btnText"
+              type="primary"
+              @click="handleEdit(scope.row)"
+            >
+              编辑
+            </el-button>
+
+            <el-popconfirm
+              v-if="scope.row.writeData !== ''"
+              :visible="scope.row.dialogVisible"
+              title="您确认重置吗?(重置此操作不可逆)"
+              width="200"
+              @cancel="scope.row.dialogVisible = false"
+              @confirm="reset(scope.row)"
+            >
+              <el-button> 取消 </el-button>
+              <el-button type="primary"> 确认 </el-button>
+              <template #reference>
+                <el-button
+                  link
+                  class="btnText"
+                  type="primary"
+                  @click="scope.row.dialogVisible = true"
+                  >重置</el-button
+                >
+              </template>
+            </el-popconfirm>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <div v-else class="fullScreen">
+      <div class="excelView">
+        <div class="view">
+          <ExcelView
+            v-model:data="excelData"
+            :option="excelOptions"
+            ref="excelViewRef"
+            :checkStatus="true"
+            :verifications="setting"
+          />
+        </div>
+        <div class="opeara">
+          <div class="titles">当前操作表格:</div>
+          <div class="titles">{{ title }}</div>
+          <div>
+            <el-button
+              v-if="excelOptions.edit"
+              type="primary"
+              class="btn"
+              @click="submitData"
+              >提交</el-button
+            >
+            <el-button class="btn" @click="resetData">{{
+              excelOptions.edit ? "取消" : "返回"
+            }}</el-button>
+          </div>
         </div>
       </div>
     </div>

+ 0 - 1
src/views/process/components/order.vue

@@ -98,7 +98,6 @@ const planStyle = (val) => {
 .body {
   position: relative;
   width: 100%;
-  min-height: 244px;
   border-radius: 16px;
   margin-bottom: 10px;
   display: flex;

+ 22 - 1
src/views/process/components/transferNum.vue

@@ -29,11 +29,13 @@
               trigger="hover"
             >
               <span
+                :ref="(el) => refArray.push(el)"
                 :class="
                   index == selectSeqIndex
                     ? 'describeText active'
                     : 'describeText'
                 "
+                @dblclick="fz(index)"
                 >{{ item.seqNo }}</span
               >
             </el-tooltip>
@@ -52,15 +54,34 @@
 <script lang="ts" setup>
 import { useDictionaryStore, useProcessStore } from "@/store";
 import { Transition } from "vue";
-
+const refArray = ref([]);
 const store = useProcessStore();
 const dictS = useDictionaryStore();
 const selectSeqIndex = inject("selectSeqIndex");
 const selectSeqArray = inject("selectSeqArray");
+const fz = async (index: any) => {
+  // try {
+  //   const text = refArray.value[index].textContent;
+  //   // 确保 text 是正确的
+  //   console.log("准备复制的文本:", text);
+  //   // 使用 await 处理异步操作
+  //   await navigator.clipboard.writeText(text);
+  //   ElMessage.success("复制成功");
+  //   console.log("复制的文本:", text);
+  // } catch (err) {
+  //   console.error("复制失败:", err);
+  // }
+};
 const clickCardNum = (index: number) => {
   selectSeqIndex.value = index;
   store.useSeqNo = selectSeqArray.value[selectSeqIndex.value].seqNo;
 };
+watch(
+  () => selectSeqArray.value,
+  () => {
+    refArray.value = [];
+  }
+);
 onMounted(() => {
   if (!selectSeqIndex.value) store.useSeqNo = "";
 });

+ 5 - 6
src/views/traceability/components/check.vue

@@ -14,12 +14,7 @@
             <el-table-column prop="content" label="内容" />
             <el-table-column prop="result" label="结果">
               <template #default="scope">
-                {{
-                  dictS.getLableByValue(
-                    "process_check_result",
-                    scope.row.disposalMeasures
-                  )
-                }}
+                {{ scope.row.result == "1" ? "合格" : "不合格" }}
               </template>
             </el-table-column>
             <el-table-column prop="standard" label="标准值" />
@@ -71,6 +66,10 @@ const setTableHeight = () => {
 onMounted(() => {
   getPagination();
   setTableHeight();
+  window.addEventListener("resize", setTableHeight);
+});
+onUnmounted(() => {
+  window.removeEventListener("resize", setTableHeight);
 });
 </script>
 

+ 5 - 0
src/views/traceability/components/equit.vue

@@ -58,7 +58,12 @@ const setTableHeight = () => {
 onMounted(() => {
   getPagination();
   setTableHeight();
+  window.addEventListener("resize", setTableHeight);
+  
 });
+onUnmounted(() => {
+      window.removeEventListener('resize', setTableHeight);
+    });
 </script>
 
 <style lang="scss" scoped></style>

+ 13 - 3
src/views/traceability/components/excel.vue

@@ -44,8 +44,6 @@
     <el-dialog
       v-model="excelDialogVisible"
       title="查看表单"
-      :append-to-body="true"
-      :destroy-on-close="true"
       width="70%"
       height="80%"
       @close="excelDialogVisible = true"
@@ -102,7 +100,19 @@ const setTableHeight = () => {
 onMounted(() => {
   getPagination();
   setTableHeight();
+  window.addEventListener("resize", setTableHeight);
+ 
 });
+onUnmounted(() => {
+      window.removeEventListener('resize', setTableHeight);
+    });
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+:deep(.el-dialog) {
+  margin: auto auto !important;
+}
+:deep(.el-overlay-dialog) {
+  display: flex;
+}
+</style>

+ 4 - 0
src/views/traceability/components/fault.vue

@@ -65,7 +65,11 @@ const getPagination = async () => {
 onMounted(() => {
   getPagination();
   setTableHeight();
+  window.addEventListener("resize", setTableHeight);
 });
+onUnmounted(() => {
+      window.removeEventListener('resize', setTableHeight);
+    });
 </script>
 
 <style lang="scss" scoped></style>

+ 4 - 0
src/views/traceability/components/materials.vue

@@ -58,7 +58,11 @@ const setTableHeight = () => {
 onMounted(() => {
   getPagination();
   setTableHeight();
+  window.addEventListener("resize", setTableHeight);
 });
+onUnmounted(() => {
+      window.removeEventListener('resize', setTableHeight);
+    });
 </script>
 
 <style lang="scss" scoped></style>

+ 21 - 11
src/views/traceability/components/media.vue

@@ -6,7 +6,12 @@
       <el-table-column prop="created" label="上传时间" />
       <el-table-column label="操作" prop="operation">
         <template #default="{ row }">
-          <span @click="handleLook(row.filePath)">查看</span>
+          <el-button
+            link
+            @click="handleLook(row.filePath)"
+            style="font-size: 18px; font-weight: 500"
+            >查看</el-button
+          >
         </template>
       </el-table-column>
       <template #empty>
@@ -15,13 +20,11 @@
         </div>
       </template>
     </el-table>
-    <el-image
-      id="showImg"
-      style="width: 0; height: 0"
+    <el-image-viewer
+      v-if="showImagePreview"
+      @close="closePreview"
       :min-scale="0.2"
-      :src="srcList[0]"
-      :preview-src-list="srcList"
-      fit="cover"
+      :url-list="srcList"
     />
     <Pagination
       position="right"
@@ -29,7 +32,7 @@
       :limit="limit"
       :total="total"
       @pagination="getPagination"
-      style="margin-top: -20px"
+      style="margin-top: -10px"
     />
   </el-scrollbar>
 </template>
@@ -37,6 +40,11 @@
 <script lang="ts" setup>
 import { useProcessStore } from "@/store";
 import { media } from "@/api/process/traceability";
+const showImagePreview = ref(false);
+const closePreview = () => {
+  srcList.value = [];
+  showImagePreview.value = false;
+};
 const store = useProcessStore();
 const page = ref(1);
 const limit = ref(10);
@@ -48,9 +56,7 @@ const baseUrl = import.meta.env.VITE_APP_UPLOAD_URL;
 const handleLook = (path: string) => {
   srcList.value = [];
   srcList.value.push(baseUrl + path);
-  setTimeout(() => {
-    document.getElementById("showImg").click();
-  }, 0);
+  showImagePreview.value = true;
 };
 //动态控制表格高度
 const setTableHeight = () => {
@@ -71,7 +77,11 @@ const getPagination = async () => {
 onMounted(() => {
   getPagination();
   setTableHeight();
+  window.addEventListener("resize", setTableHeight);
 });
+onUnmounted(() => {
+      window.removeEventListener('resize', setTableHeight);
+    });
 </script>
 
 <style lang="scss" scoped></style>

+ 4 - 0
src/views/traceability/components/record.vue

@@ -55,7 +55,11 @@ const setTableHeight = () => {
 onMounted(() => {
   getPagination();
   setTableHeight();
+  window.addEventListener("resize", setTableHeight);
 });
+onUnmounted(() => {
+      window.removeEventListener('resize', setTableHeight);
+    });
 </script>
 
 <style lang="scss" scoped></style>

+ 22 - 10
src/views/traceability/components/taskExcel.vue

@@ -10,15 +10,15 @@
         :verifications="setting"
       />
     </div>
-    <!--    <div class="btns" v-if="options.edit !== false">-->
-    <!--      <el-button class="btn" type="success" @click="submit">确 定 </el-button>-->
-    <!--      <el-button class="btn" @click="reset">重 置 </el-button>-->
-    <!--      <el-button class="btn" type="info" @click="cancel">取 消 </el-button>-->
-    <!--    </div>-->
-    <!--    <div class="btns" v-else>-->
-    <!--      <el-button class="btn" type="info" @click="cancel">返 回 </el-button>-->
-    <!--    </div>-->
   </div>
+  <!--    <div class="btns" v-if="options.edit !== false">-->
+  <!--      <el-button class="btn" type="success" @click="submit">确 定 </el-button>-->
+  <!--      <el-button class="btn" @click="reset">重 置 </el-button>-->
+  <!--      <el-button class="btn" type="info" @click="cancel">取 消 </el-button>-->
+  <!--    </div>-->
+  <!--    <div class="btns" v-else>-->
+  <!--      <el-button class="btn" type="info" @click="cancel">返 回 </el-button>-->
+  <!--    </div>-->
 </template>
 <script setup lang="ts">
 import { ref } from "vue";
@@ -314,14 +314,26 @@ watch(
 );
 </script>
 <style lang="scss" scoped>
+:deep(.luckysheet-scrollbar-y::-webkit-scrollbar) {
+  width: 30px !important;
+}
+:deep(.luckysheet-scrollbar-x::-webkit-scrollbar) {
+  height: 30px !important;
+}
+:deep(#luckysheet-scrollbar-y) {
+  width: 30px !important;
+}
+:deep(#luckysheet-scrollbar-x) {
+  height: 30px !important;
+}
 .dialogBody {
   width: 100%;
-  height: 68vh;
+  height: 66vh;
   display: flex;
   position: relative;
   .exView {
     width: 100%;
-    height: 68vh;
+    height: 66vh;
     //width: 1330px;
     display: flex;
     position: relative;

+ 4 - 0
src/views/traceability/components/traceability.vue

@@ -52,6 +52,10 @@ const getPagination = async () => {
 onMounted(() => {
   getPagination();
   setTableHeight();
+  window.addEventListener("resize", setTableHeight);
+});
+onUnmounted(() => {
+  window.removeEventListener("resize", setTableHeight);
 });
 </script>
 

+ 4 - 6
src/views/traceability/index.vue

@@ -100,9 +100,7 @@
                 </div>
                 工单出站
               </div>
-              <div class="value destext">
-                1
-              </div>
+              <div class="value destext">1</div>
             </div>
             <div class="item" style="flex: 2">
               <div class="label">
@@ -360,16 +358,16 @@ onMounted(() => {
   padding: 10px 0;
 }
 :deep(.cell-item) {
-  font-size: $f24;
+  font-size: $f20;
   display: flex;
-  padding: 10px 0;
+  padding: 8px 0;
 }
 :deep(.el-icon) {
   margin-right: 5px;
 }
 
 :deep(.is-bordered-content) {
-  font-size: $f24 !important;
+  font-size: $f20 !important;
 }
 
 .destext {