Преглед изворни кода

1.登录修改 2.生产履历白名单。

jiaxiaoqiang пре 1 година
родитељ
комит
7bad0b5d6b

+ 10 - 3
src/plugins/permission.ts

@@ -4,7 +4,7 @@ import { useDictionaryStore } from "@/store/modules/dictionary";
 
 export function setupPermission() {
   // 白名单路由
-  const whiteList = ["/login"];
+  const whiteList: string[] = ["client-traceability"]; //由于包含动态路由,这里面存储的是路由的name而不是path
 
   router.beforeEach(async (to, from, next) => {
     NProgress.start();
@@ -22,10 +22,17 @@ export function setupPermission() {
       }
     } else {
       // 未登录可以访问白名单页面
-      if (whiteList.indexOf(to.path) !== -1) {
+
+      if (whiteList.indexOf(to.name as string) !== -1) {
+        const dictStore = useDictionaryStore();
+        dictStore.checkAllData();
         next();
       } else {
-        next(`/login?redirect=${to.path}`);
+        if (to.path === "/login") {
+          next();
+        } else {
+          next(`/login`);
+        }
         NProgress.done();
       }
     }

+ 5 - 0
src/router/modules/constant.ts

@@ -20,6 +20,11 @@ const constantRoutes: RouteRecordRaw[] = [
     component: () => import("@/views/login/index.vue"),
     meta: { hidden: true },
   },
+  {
+    path: "/client-traceability/:id",
+    component: () => import("@/views/traceability/index.vue"),
+    name: "client-traceability",
+  },
 
   {
     path: "/:pathMatch(.*)*", // 必备

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

@@ -152,7 +152,7 @@ export default {
       },
     },
     {
-      path: "traceability",
+      path: "traceability/:id?",
       component: () => import("@/views/traceability/index.vue"),
       name: "traceability",
       meta: {

+ 12 - 13
src/utils/request.ts

@@ -1,5 +1,4 @@
 import axios, { AxiosResponse, InternalAxiosRequestConfig } from "axios";
-import { useUserStoreHook } from "@/store/modules/user";
 
 // 创建 axios 实例
 const service = axios.create({
@@ -35,18 +34,18 @@ service.interceptors.response.use(
     }
 
     // token 过期,重新登录
-    if (code === "4106") {
-      ElMessageBox.confirm("当前页面已失效,请重新登录", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        const userStore = useUserStoreHook();
-        userStore.resetToken().then(() => {
-          location.reload();
-        });
-      });
-    }
+    // if (code === "4106") {
+    //   ElMessageBox.confirm("当前页面已失效,请重新登录", "提示", {
+    //     confirmButtonText: "确定",
+    //     cancelButtonText: "取消",
+    //     type: "warning",
+    //   }).then(() => {
+    //     const userStore = useUserStoreHook();
+    //     userStore.resetToken().then(() => {
+    //       location.reload();
+    //     });
+    //   });
+    // }
 
     ElMessage.error(msg || "系统出错");
 

+ 17 - 1
src/views/login/index.vue

@@ -275,8 +275,24 @@ function handleLogin() {
   loginFormRef.value.validate((valid: boolean) => {
     if (valid) {
       loading.value = true;
+
+      let numberP = {
+        proCode: loginData.value.proCode,
+        orgId: loginData.value.orgId,
+        jobNumber: loginData.value.jobNumber,
+        stationId: loginData.value.stationId,
+      };
+
+      let acountP = {
+        userName: loginData.value.userName,
+        password: loginData.value.password,
+        proCode: loginData.value.proCode,
+        orgId: loginData.value.orgId,
+        stationId: loginData.value.stationId,
+      };
+
       userStore
-        .login(loginData.value)
+        .login(showJobNumber.value ? numberP : acountP)
         .then(() => {
           userStore.user.station = stationName;
           userStore.user.proCode = loginData.value.proCode;

+ 20 - 9
src/views/process/components/operate.vue

@@ -3,18 +3,22 @@
   <div class="body">
     <ScanCode />
     <div class="btnBox">
-      <el-button color="#0A59F7" class="btn" @click="call" round>
+      <el-button class="btn" color="#0A59F7" round @click="call">
         <span class="btnText">叫料</span>
       </el-button>
     </div>
     <template v-for="(item, index) in operationObjs" :key="index">
-      <div v-if="
-        index == 1
-          ? selectSeqArray.length > 0 && selectSeqIndex > -1
-            ? true
-            : false
-          : true
-      " class="operateBox" @click="handleClick(item)">
+      <div
+        v-if="
+          index == 1
+            ? selectSeqArray.length > 0 && selectSeqIndex > -1
+              ? true
+              : false
+            : true
+        "
+        class="operateBox"
+        @click="handleClick(item)"
+      >
         <span class="operateText">{{ item.text }}</span>
         <svg-icon v-if="item.icon" :icon-class="item.icon" size="30" />
         <span v-else>{{ item.num }}</span>
@@ -27,8 +31,11 @@
 
 <script lang="ts" setup>
 import router from "@/router";
+import { useProcessStore } from "@/store";
 import ScanCode from "@/views/process/components/scanCode.vue";
 import OperatePop from "../popUpView/operatePop.vue";
+
+const store = useProcessStore();
 const operationObjs: { icon?: string; text: string; num?: number }[] = [
   {
     icon: "liuzhuan",
@@ -50,7 +57,11 @@ const handleClick = (item: { text: string }) => {
     case "取暂存料":
       break;
     case "生产履历":
-      router.push({ name: "traceability" });
+      if (!store.useSeqNo) {
+        ElMessage.error("请选择流转卡号");
+      } else {
+        router.push({ path: `/traceability/${store.useSeqNo}` });
+      }
       break;
     default:
       break;

+ 57 - 24
src/views/traceability/index.vue

@@ -3,7 +3,7 @@
     <!-- 基础信息展示 -->
     <div class="contentBody">
       <div class="headerInfo">
-        <el-descriptions class="descriptions" :column="3" border>
+        <el-descriptions :column="3" border class="descriptions">
           <el-descriptions-item>
             <template #label>
               <div class="cell-item">
@@ -94,19 +94,29 @@
           </el-descriptions-item>
         </el-descriptions>
       </div>
-      <div class="tabBox" id="tabBox">
-        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+      <div id="tabBox" class="tabBox">
+        <el-tabs
+          v-model="activeName"
+          class="demo-tabs"
+          @tab-click="handleClick"
+        >
           <el-tab-pane name="f1">
             <template #label>
-              <el-badge :value="tabCountData.traceability"
-                :type="activeName == 'f1' ? 'warning' : 'primary'">生产履历</el-badge>
+              <el-badge
+                :type="activeName == 'f1' ? 'warning' : 'primary'"
+                :value="tabCountData.traceability"
+                >生产履历
+              </el-badge>
             </template>
             <Traceability />
           </el-tab-pane>
           <el-tab-pane name="f2">
             <template #label>
-              <el-badge :value="tabCountData.materials"
-                :type="activeName == 'f2' ? 'warning' : 'primary'">已采物料</el-badge>
+              <el-badge
+                :type="activeName == 'f2' ? 'warning' : 'primary'"
+                :value="tabCountData.materials"
+                >已采物料
+              </el-badge>
             </template>
             <keep-alive>
               <Materials v-if="activeName == 'f2'" />
@@ -114,15 +124,25 @@
           </el-tab-pane>
           <el-tab-pane name="f3">
             <template #label>
-              <el-badge :value="tabCountData.record" :type="activeName == 'f3' ? 'warning' : 'primary'">记录项</el-badge>
+              <el-badge
+                :type="activeName == 'f3' ? 'warning' : 'primary'"
+                :value="tabCountData.record"
+                >记录项
+              </el-badge>
             </template>
             <keep-alive>
               <template v-if="activeName == 'f3'">
                 <Record />
-              </template> </keep-alive></el-tab-pane>
+              </template>
+            </keep-alive>
+          </el-tab-pane>
           <el-tab-pane name="f4">
             <template #label>
-              <el-badge :value="tabCountData.checks" :type="activeName == 'f4' ? 'warning' : 'primary'">点检判定</el-badge>
+              <el-badge
+                :type="activeName == 'f4' ? 'warning' : 'primary'"
+                :value="tabCountData.checks"
+                >点检判定
+              </el-badge>
             </template>
             <keep-alive>
               <template v-if="activeName == 'f4'">
@@ -132,7 +152,11 @@
           </el-tab-pane>
           <el-tab-pane name="f5">
             <template #label>
-              <el-badge :value="tabCountData.equit" :type="activeName == 'f5' ? 'warning' : 'danger'">设备使用</el-badge>
+              <el-badge
+                :type="activeName == 'f5' ? 'warning' : 'danger'"
+                :value="tabCountData.equit"
+                >设备使用
+              </el-badge>
             </template>
             <keep-alive>
               <template v-if="activeName == 'f5'">
@@ -142,20 +166,32 @@
           </el-tab-pane>
           <el-tab-pane name="f6">
             <template #label>
-              <el-badge :value="tabCountData.fault" :type="activeName == 'f6' ? 'warning' : 'danger'">报故记录</el-badge>
+              <el-badge
+                :type="activeName == 'f6' ? 'warning' : 'danger'"
+                :value="tabCountData.fault"
+                >报故记录
+              </el-badge>
             </template>
             <keep-alive>
               <template v-if="activeName == 'f6'">
                 <Fault />
-              </template> </keep-alive></el-tab-pane>
+              </template>
+            </keep-alive>
+          </el-tab-pane>
           <el-tab-pane name="f7">
             <template #label>
-              <el-badge :value="12" :type="activeName == 'f7' ? 'warning' : 'danger'">图片采集</el-badge>
+              <el-badge
+                :type="activeName == 'f7' ? 'warning' : 'danger'"
+                :value="12"
+                >图片采集
+              </el-badge>
             </template>
             <keep-alive>
               <template v-if="activeName == 'f7'">
                 <Media />
-              </template> </keep-alive></el-tab-pane>
+              </template>
+            </keep-alive>
+          </el-tab-pane>
         </el-tabs>
       </div>
     </div>
@@ -164,7 +200,7 @@
 
 <script lang="ts" setup>
 import { useProcessStore } from "@/store";
-import { getTraceabilityInfo, getTabCount } from "@/api/process/traceability";
+import { getTabCount, getTraceabilityInfo } from "@/api/process/traceability";
 import Traceability from "./components/traceability.vue";
 // import Materials from "./components/materials.vue";
 const Materials = defineAsyncComponent(
@@ -178,7 +214,7 @@ const Media = defineAsyncComponent(() => import("./components/media.vue"));
 const store = useProcessStore();
 const router = useRouter();
 const activeName = ref("f1");
-const handleClick = () => { };
+const handleClick = () => {};
 const infoData = ref({});
 const tabCountData = ref({});
 //获取卡号基础信息
@@ -192,14 +228,11 @@ const getTabCountData = async (seq) => {
   });
   tabCountData.value = data;
 };
+const route = useRoute();
+store.useSeqNo = route.params.id;
 onMounted(() => {
-  if (!store.useSeqNo) {
-    ElMessage.error("流转卡号有误,请检查");
-    router.go(-1);
-  } else {
-    getInfo(store.useSeqNo);
-    getTabCountData(store.useSeqNo);
-  }
+  getInfo(store.useSeqNo);
+  getTabCountData(store.useSeqNo);
 });
 </script>