瀏覽代碼

修改项目管理模块bug

hzj18279462576@163.com 1 年之前
父節點
當前提交
e3f137280a

+ 1 - 0
src/layout/sidebar/SidevarItem.vue

@@ -141,6 +141,7 @@ const roleChange = async () => {
           store.commit("ROLELIST", "");
         }
       } else {
+        window.location.href = 'https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize';
         ElMessage({
           type: "error",
           showClose: true,

+ 10 - 9
src/main.js

@@ -22,15 +22,16 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
   app.component(key, component);
 }
 
-app.config.globalProperties.$filters = {
-  btnFlag(val) {
-    let btnList=JSON.parse(sessionStorage.getItem('btnList'))
-    let flag=btnList.some(i=>{
-      return i==val
-    })
-    return flag
-  },
-}
+
+const btnFlag = (val) => {
+  let btnList = JSON.parse(sessionStorage.getItem("btnList"));
+  let flag = btnList.some((i) => {
+    return i == val;
+  });
+  return flag;
+};
+app.provide("$btnFlag", btnFlag);
+
 
 app.use(ElementPlus, {
   locale: zhCn,

+ 2 - 1
src/router/index.js

@@ -75,7 +75,8 @@ const routes = [
 ];
 
 const router = createRouter({
-  history: createWebHashHistory("/kpi"), // 发布地址
+  history: createWebHistory("/kpi"), // 发布地址
+  // history: createWebHistory(""), // 发布地址
   routes: routes,
 });
 

+ 21 - 6
src/store/modules/user.js

@@ -109,7 +109,11 @@ const mutations = {
           },
         ],
       });
+      let roles = []; // 真实拥有的菜单权限
       roleList.forEach((item) => {
+        if (item.state == 1) {
+          roles.push(item);
+        }
         let arr = {
           path: item.url,
           name: item.url,
@@ -119,14 +123,25 @@ const mutations = {
         router.addRoute("process", arr);
       });
       if (roleList) {
-        if(sessionStorage.getItem('sidevarItem')){
-          router.push({
-            path: `${sessionStorage.getItem('sidevarItem')}`,
+        if (sessionStorage.getItem("sidevarItem")) {
+          let sidevarItem = sessionStorage.getItem("sidevarItem");
+          let flag = roles.some((i) => {
+            return sidevarItem.includes(i.url);
           });
-        }else{
-          sessionStorage.setItem('sidevarItem',`/process/${roleList[0].url}`)
+          console.log(flag);
+          if(flag){
+            router.push({
+            path: `${sessionStorage.getItem("sidevarItem")}`,
+          });
+          }else{
+            router.push({
+              path: `/process/${roles[0].url}`,
+            });
+          }
+        } else {
+          sessionStorage.setItem("sidevarItem", `/process/${roleList[0].url}`);
           router.push({
-            path: `/process/${roleList[0].url}`,
+            path: `/process/${roles[0].url}`,
           });
         }
       }

+ 41 - 41
src/views/error/error.vue

@@ -47,48 +47,48 @@ const selectData = reactive({
 const api = ref("");
 
 // 获取账户列表
-const getList = async () => {
-  loading.value = true;
-  let data = {
-    currentPage: currentPage.value, // 当前页
-    pageCount: pageSize.value, // 一页数据条数
-    projectName: searchInput.name,
-    pageType: 1,
-    permitNum: searchInput.LicenseCode, // 施工许可证编码
-    projectUnit: searchInput.unit, // 建设单位
-    projectPurpose: searchInput.purpose, // 项目用途
-    structureType: searchInput.structureType, // 结构类型
-    projectType: searchInput.projectType, // 项目类型
-  };
+// const getList = async () => {
+//   loading.value = true;
+//   let data = {
+//     currentPage: currentPage.value, // 当前页
+//     pageCount: pageSize.value, // 一页数据条数
+//     projectName: searchInput.name,
+//     pageType: 1,
+//     permitNum: searchInput.LicenseCode, // 施工许可证编码
+//     projectUnit: searchInput.unit, // 建设单位
+//     projectPurpose: searchInput.purpose, // 项目用途
+//     structureType: searchInput.structureType, // 结构类型
+//     projectType: searchInput.projectType, // 项目类型
+//   };
 
-  if (searchInput.createTime) {
-    data.startDate = searchInput.createTime[0];
-    data.endDate = searchInput.createTime[1];
-  }
-  let res = await axios({
-    method: "get",
-    url: api.value + "/jgcloudProject/queryPageJgcloudProject",
-    headers: {
-      tokenP: sessionStorage.getItem("tokenP"),
-      user_head: sessionStorage.getItem("userhead"),
-    },
-    params: data,
-  });
-  console.log(res, "项目分页数据");
-  if (res.data.code == 200) {
-    tableData.list = res.data.data.list;
-    total.value = res.data.data.totalCount;
-    loading.value = false;
-  } else {
-    loading.value = false;
-    ElMessage({
-      type: "error",
-      showClose: true,
-      message: res.data.message,
-      center: true,
-    });
-  }
-};
+//   if (searchInput.createTime) {
+//     data.startDate = searchInput.createTime[0];
+//     data.endDate = searchInput.createTime[1];
+//   }
+//   let res = await axios({
+//     method: "get",
+//     url: api.value + "/jgcloudProject/queryPageJgcloudProject",
+//     headers: {
+//       tokenP: sessionStorage.getItem("tokenP"),
+//       user_head: sessionStorage.getItem("userhead"),
+//     },
+//     params: data,
+//   });
+//   console.log(res, "项目分页数据");
+//   if (res.data.code == 200) {
+//     tableData.list = res.data.data.list;
+//     total.value = res.data.data.totalCount;
+//     loading.value = false;
+//   } else {
+//     loading.value = false;
+//     ElMessage({
+//       type: "error",
+//       showClose: true,
+//       message: res.data.message,
+//       center: true,
+//     });
+//   }
+// };
 
 onBeforeMount(() => {
   api.value = store.state.user.api;

文件差異過大導致無法顯示
+ 1531 - 917
src/views/homePage/homePage.vue


+ 1 - 0
src/views/menu/menu.vue

@@ -330,6 +330,7 @@ const getList = async () => {
   if (res.data.code == 200) {
     tableData.list = res.data.data;
   } else {
+    window.location.href = 'https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize';
     ElMessage({
       type: "error",
       showClose: true,

文件差異過大導致無法顯示
+ 465 - 178
src/views/project/project.vue


+ 6 - 2
src/views/role/role.vue

@@ -50,7 +50,7 @@
       </div>
       <!-- 按钮列表 -->
       <div class="gongneng">
-        <el-button @click="addProjectbtn(1)" class="add"
+        <el-button v-if="btnFlag('role-chuangjianjuese')" @click="addProjectbtn(1)" class="add"
           ><el-icon> <CirclePlus /> </el-icon><span>创建角色</span></el-button
         >
         <!-- <el-button @click="projectImportBtn" class="imp"
@@ -91,8 +91,9 @@
                 <!-- <div class="reset" @click="addProjectbtn(2, scope.row)">
                   添加
                 </div> -->
-                <div class="look" @click="edit(scope.row)">编辑</div>
+                <div class="look" v-if="btnFlag('role-xiugaijuese')" @click="edit(scope.row)">编辑</div>
                 <el-popconfirm
+                v-if="btnFlag('role-shanchujuese')"
                   width="220"
                   confirm-button-text="确认"
                   cancel-button-text="取消"
@@ -281,6 +282,7 @@ import {
   watch,
   onBeforeMount,
   onUnmounted,
+  inject
 } from "vue";
 import COS from "cos-js-sdk-v5";
 import { useRouter } from "vue-router";
@@ -293,6 +295,7 @@ import { useStore } from "vuex";
 
 const store = useStore();
 const router = useRouter();
+const btnFlag = inject('$btnFlag')
 
 const loading = ref();
 const tableData = reactive({
@@ -380,6 +383,7 @@ const getList = async () => {
     total.value = res.data.data.total;
     loading.value = false;
   } else {
+    window.location.href = 'https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize';
     loading.value = false;
     ElMessage({
       type: "error",

+ 6 - 3
src/views/system/system.vue

@@ -9,13 +9,13 @@
       <div class="filter">
         <!-- <el-checkbox v-model="checked1" label="提醒次数扣分" size="large" /> -->
         <span style="font-size: 14px; margin-right: 10px">提醒次数扣分</span>
-        <el-input @blur="updateRemind" v-model="remind" placeholder="请输入次数" clearable />
+        <el-input :disabled="!btnFlag('system-xiugaikeheguize')" @blur="updateRemind" v-model="remind" placeholder="请输入次数" clearable />
         <span class="grade">分/次</span>
       </div>
       <div class="filter">
         <!-- <el-checkbox v-model="checked1" label="预警次数扣分" size="large" /> -->
         <span style="font-size: 14px; margin-right: 10px">预警次数扣分</span>
-        <el-input @blur="updateWarn" v-model="warning" placeholder="请输入次数" clearable />
+        <el-input :disabled="!btnFlag('system-xiugaikeheguize')" @blur="updateWarn" v-model="warning" placeholder="请输入次数" clearable />
         <span class="grade">分/次</span>
       </div>
       <div class="roles">考核维度管理</div>
@@ -47,7 +47,7 @@
           <el-table-column align="center" label="操作" width="220">
             <template #default="scope">
               <div class="options">
-                <div class="look" @click="edit(scope.row)">编辑</div>
+                <div class="look" v-if="btnFlag('system-xiugaiweidukaohe')" @click="edit(scope.row)">编辑</div>
                 <!-- <el-popconfirm
                   width="150"
                   confirm-button-text="确认"
@@ -165,6 +165,7 @@ import {
   watch,
   onBeforeMount,
   onUnmounted,
+  inject
 } from "vue";
 import COS from "cos-js-sdk-v5";
 import { useRouter } from "vue-router";
@@ -177,6 +178,7 @@ import { useStore } from "vuex";
 
 const store = useStore();
 const router = useRouter();
+const btnFlag = inject('$btnFlag')
 
 const remind = ref();
 const remindList = ref();
@@ -236,6 +238,7 @@ const getList = async () => {
     warningList.value = res.data.data.rows[1];
     tableData.list = [res.data.data.rows[2], res.data.data.rows[3]];
   } else {
+    window.location.href = 'https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize';
     ElMessage({
       type: "error",
       showClose: true,

+ 8 - 3
src/views/user/user.vue

@@ -95,7 +95,7 @@
       </div>
       <!-- 按钮列表 -->
       <div class="gongneng">
-        <el-button @click="addProjectbtn" class="add"
+        <el-button v-if="btnFlag('user-tianjiayonghu')" @click="addProjectbtn" class="add"
           ><el-icon> <CirclePlus /> </el-icon><span>创建用户</span></el-button
         >
         <!-- <el-button @click="projectImportBtn" class="imp"
@@ -149,8 +149,9 @@
           <el-table-column align="center" label="操作" width="220">
             <template #default="scope">
               <div class="options">
-                <div class="look" @click="edit(scope.row)">编辑</div>
+                <div class="look" v-if="btnFlag('user-xiugaiyonghu')" @click="edit(scope.row)">编辑</div>
                 <el-popconfirm
+                v-if="btnFlag('user-shanchuyonghu')"
                   width="200"
                   confirm-button-text="确认"
                   cancel-button-text="取消"
@@ -260,6 +261,7 @@
                 style="width: 220px"
                 collapse-tags
                 multiple
+                clearable
               >
                 <el-option
                   v-for="item in departmentData"
@@ -357,6 +359,7 @@ import {
   watch,
   onBeforeMount,
   onUnmounted,
+  inject
 } from "vue";
 import COS from "cos-js-sdk-v5";
 import { useRouter } from "vue-router";
@@ -369,6 +372,7 @@ import { useStore } from "vuex";
 
 const store = useStore();
 const router = useRouter();
+const btnFlag = inject('$btnFlag')
 
 const loading = ref(false);
 const tableData = reactive({
@@ -464,6 +468,7 @@ const getList = async () => {
     total.value = res.data.data.total;
     loading.value = false;
   } else {
+    window.location.href = 'https://chtech.ncjti.edu.cn/kpi/template/api/sysUser/authorize';
     loading.value = false;
     ElMessage({
       type: "error",
@@ -594,7 +599,7 @@ const confirmAccount = (formEl) => {
         userCode: accountRuleForm.userCode,
         cardNumber: accountRuleForm.cardNumber,
         roleId: accountRuleForm.roleId,
-        manageDepartment: accountRuleForm.manageDepartment.join(","),
+        manageDepartment: accountRuleForm.manageDepartment?accountRuleForm.manageDepartment.join(","):null,
         department: accountRuleForm.department,
         mobile: accountRuleForm.mobile,
       };

文件差異過大導致無法顯示
+ 0 - 96
vite.config.js.timestamp-1734483881723.mjs