coys il y a 1 an
Parent
commit
c3245e969e

+ 1 - 1
.env.development

@@ -6,7 +6,7 @@ ENV = 'development'
 
 # 开发环境
 #测试地址
-VUE_APP_BASE_API = 'http://10.87.21.107:8080'
+VUE_APP_BASE_API = 'http://47.92.229.224:8080'
 #罗俊
 # VUE_APP_BASE_API = 'http://10.87.10.49:8080'
 #罗伟

+ 1 - 0
src/App.vue

@@ -1,5 +1,6 @@
 <template>
   <div id="app">
+    <watercom></watercom>
     <router-view />
     <theme-picker />
   </div>

+ 27 - 27
src/components/utils/ranger.js

@@ -1,30 +1,30 @@
 export default {
-    month() {
-        let r = [];
-        for (let i = 1; i <= 12; i++) {
-            r.push({
-                label: `${i}月`,
-                value: i
-            });
-        }
-        return r;
-    },
-
-    year() {
-        let r = [];
-        let d = new Date().getFullYear();
-        for (let i = 10; i >= 0; i--) {
-            r.push({
-                label: `${d - i}年`,
-                value: d - i
-            });
-        }
-        for (let i = 0; i <= 10; i++) {
-            r.push({
-                label: `${d + i}年`,
-                value: d + i
-            });
-        }
-        return r;
+  month() {
+    let r = [];
+    for (let i = 1; i <= 12; i++) {
+      r.push({
+        label: `${i}月`,
+        value: i,
+      });
     }
+    return r;
+  },
+ 
+  year() {
+    let r = [];
+    let d = new Date().getFullYear();
+    for (let i = 10; i >= 0; i--) {
+      r.push({
+        label: `${d - i}年`,
+        value: d - i,
+      });
+    }
+    for (let i = 0; i <= 10; i++) {
+      r.push({
+        label: `${d + i}年`,
+        value: d + i,
+      });
+    }
+    return r;
+  },
 };

+ 86 - 0
src/components/waterCom.vue

@@ -0,0 +1,86 @@
+<template>
+  <div id="water">
+    <canvas id="canvas"></canvas>
+  </div>
+</template>
+<script>
+import Router from "vue-router";
+import { mapGetters } from "vuex";
+
+export default {
+  name: "SocAppWaterCom",
+
+  data() {
+    return {
+      // userName: this.$store.getters.name,
+      // orgName: "",
+      date: "",
+    };
+  },
+  computed: {
+    userName() {
+      return this.$store.getters.name;
+    },
+  },
+  watch: {
+    userName(val) {
+      if (val) {
+        this.getWater();
+      }
+    },
+  },
+  created() {
+    this.date = this.newDateDay();
+
+    console.log(this.$store.getters.name);
+    // this.name = JSON.parse(window.sessionStorage.getItem("SET_USER_ORGNAME"));
+    // this.userName = JSON.parse(window.sessionStorage.getItem("SET_USER_NAME"));
+  },
+  mounted() {},
+
+  methods: {
+    getWater() {
+      // console.log(this);
+      let text = this.userName;
+      let orgName = this.$store.getters.orgShortName;
+      const canvas = document.getElementById("canvas"); //获取canvas
+      canvas.width = 600; //设置画布宽度
+      canvas.height = 600; //设置画布高度
+      canvas.style.display = "none"; //隐藏画布本身
+      //加层级权重
+
+      const ctx = canvas.getContext("2d"); //获取画笔
+      ctx.font = "30px -apple-system";
+      //   设置文字大小
+      ctx.fillStyle = "rgba(0,0,0,.1)"; //设置文字颜色及透明度
+      ctx.rotate(-0.4); //设置文字旋转角度
+      
+
+      ctx.fillText(`${text}${orgName}`, -20,180,); //设置显示文字内容
+      const img = canvas.toDataURL("image/png"); //参数默认为 image/png,可以是其他image/jpeg等,该方法返回值是一个url,是base64组成的图片的源数据、可以直接赋值给图片的src属性
+      const style = `background-image:url(${img});z-index:100000;display:none;`; //定义样式
+      water.setAttribute("style", style); //给要添加水印的元素设置样式
+    },
+    newDateDay(time) {
+      var date = time ? new Date(time) : new Date();
+      var y = date.getFullYear();
+      var m = date.getMonth() + 1;
+      m = m < 10 ? "0" + m : m;
+      var d = date.getDate();
+      d = d < 10 ? "0" + d : d;
+      return y + "-" + m + "-" + d;
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+#water {
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  left: 0;
+  top: 0;
+  //   z-index: -1;
+  pointer-events: none;
+}
+</style>

+ 4 - 0
src/main.js

@@ -54,6 +54,8 @@ import DialogCom from "@/components/elDialog/dialog.vue";
 import layoutCom from "@/components/layoutContainer/index.vue";
 //dialog拖拽指令
 import "@/utils/dialogdrag.js";
+// 水印组件
+import watercom from '@/components/waterCom.vue'
 // 全局方法挂载
 Vue.prototype.getDicts = getDicts;
 //根据参数键名查询参数值
@@ -75,6 +77,8 @@ Vue.prototype.handleTree = handleTree;
 Vue.prototype.imageUrl = imageUrl;
 
 // 全局组件挂载
+
+Vue.component("watercom", watercom);
 Vue.component("DictTag", DictTag);
 Vue.component("Pagination", Pagination);
 Vue.component("RightToolbar", RightToolbar);

+ 56 - 42
src/permission.js

@@ -1,64 +1,78 @@
-import router from './router'
-import store from './store'
-import { Message } from 'element-ui'
-import NProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import { getToken } from '@/utils/auth'
-import { isRelogin } from '@/utils/request'
+import router from "./router";
+import store from "./store";
+import { Message } from "element-ui";
+import NProgress from "nprogress";
+import "nprogress/nprogress.css";
+import { getToken } from "@/utils/auth";
+import { isRelogin } from "@/utils/request";
 
-NProgress.configure({ showSpinner: false })
+NProgress.configure({ showSpinner: false });
 
-const whiteList = ['/login', '/register','/tokenlogin']
+const whiteList = ["/login", "/register", "/tokenlogin"];
 
 router.beforeEach((to, from, next) => {
-  console.log('从'+from.path+'到'+to.path,'路由跳转')
-  NProgress.start()
+  console.log("从" + from.path + "到" + to.path, "路由跳转");
+  
+  NProgress.start();
+  // if (document.querySelector("#water")) {
+  //   if (to.path == "/login") {
+  //     document.querySelector("#water").style.display = "none";
+  //   } else {
+  //     document.querySelector("#water").style.display = "block";
+  //   }
+  // }
   if (getToken()) {
-    to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
+    to.meta.title && store.dispatch("settings/setTitle", to.meta.title);
     /* has token*/
-    if (to.path === '/login') {
-      next()
-      NProgress.done()
+    if (to.path === "/login") {
+      next();
+      NProgress.done();
+      //登录页隐藏水印
+      document.querySelector("#water").style.display = "none";
     } else {
       if (store.getters.roles.length === 0) {
-        isRelogin.show = true
+        isRelogin.show = true;
         // 判断当前用户是否已拉取完user_info信息
-        store.dispatch('GetInfo').then(() => {
-          isRelogin.show = false;
-          store.dispatch('getOrgTree');
-          store.dispatch('getDepTree');
-          store.dispatch('getBusinessTree');
-          store.dispatch('getWholeTree');
-          store.dispatch('GenerateRoutes').then(accessRoutes => {
-            // 根据roles权限生成可访问的路由表
-            router.addRoutes(accessRoutes) // 动态添加可访问路由表
-            next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
+        store
+          .dispatch("GetInfo")
+          .then(() => {
+            isRelogin.show = false;
+            store.dispatch("getOrgTree");
+            store.dispatch("getDepTree");
+            store.dispatch("getBusinessTree");
+            store.dispatch("getWholeTree");
+            store.dispatch("GenerateRoutes").then((accessRoutes) => {
+              // 根据roles权限生成可访问的路由表
+              router.addRoutes(accessRoutes); // 动态添加可访问路由表
+              // 非登录页显示水印
+              document.querySelector("#water").style.display = "block";
+              next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
+            });
           })
-
-        }).catch(err => {
-          console.log(err,'err')
-          next({ path: '/login' })
-          store.dispatch('LogOut').then(() => {
-            //Message.error(err)
-            next({ path: '/' })
-          })
-        })
+          .catch((err) => {
+            console.log(err, "err");
+            next({ path: "/login" });
+            store.dispatch("LogOut").then(() => {
+              //Message.error(err)
+              next({ path: "/" });
+            });
+          });
       } else {
-        next()
+        next();
       }
     }
   } else {
     // 没有token
     if (whiteList.indexOf(to.path) !== -1) {
       // 在免登录白名单,直接进入
-      next()
+      next();
     } else {
-      next(`/login`) // 否则全部重定向到登录页
-      NProgress.done()
+      next(`/login`); // 否则全部重定向到登录页
+      NProgress.done();
     }
   }
-})
+});
 
 router.afterEach(() => {
-  NProgress.done()
-})
+  NProgress.done();
+});

+ 173 - 155
src/router/index.js

@@ -1,10 +1,10 @@
-import Vue from 'vue'
-import Router from 'vue-router'
+import Vue from "vue";
+import Router from "vue-router";
 
-Vue.use(Router)
+Vue.use(Router);
 
 /* Layout */
-import Layout from '@/layout'
+import Layout from "@/layout";
 
 /**
  * Note: 路由配置项
@@ -31,261 +31,279 @@ import Layout from '@/layout'
 // 公共路由
 export const constantRoutes = [
   {
-    path: '/redirect',
+    path: "/redirect",
     component: Layout,
     hidden: true,
     children: [
       {
-        path: '/redirect/:path(.*)',
-        component: () => import('@/views/redirect')
-      }
-    ]
+        path: "/redirect/:path(.*)",
+        component: () => import("@/views/redirect"),
+      },
+    ],
   },
-  
 
-
-// {
+  // {
   //   //自己添加的公开路由页面,不要添加在动态路由中!
   //   path: '/dept/extend',
   //   component: () => import('@/views/system/dept/extend'),
   //   hidden: true,
   // },
   {
-    path: '/system/dept-extend',
+    path: "/system/dept-extend",
     component: Layout,
     hidden: true,
-    permissions: ['system:dept:list'],
+    permissions: ["system:dept:list"],
     children: [
       {
-        path: 'extend/:id(\\d+)',
-        component: () => import('@/views/system/dept/extend'),
-        name: 'Data',
-        meta: { title: '机构信息补充', activeMenu: '/system/extend' }
-      }
-    ]
+        path: "extend/:id(\\d+)",
+        component: () => import("@/views/system/dept/extend"),
+        name: "Data",
+        meta: { title: "机构信息补充", activeMenu: "/system/extend" },
+      },
+    ],
   },
 
   {
-    path: '/login',
-    component: () => import('@/views/login'),
-    hidden: true
+    path: "/login",
+    component: () => import("@/views/login"),
+    hidden: true,
   },
   {
-    path: '/tokenlogin',
-    component: () => import('@/views/tokenLogin'),
-    hidden: true
+    path: "/tokenlogin",
+    component: () => import("@/views/tokenLogin"),
+    hidden: true,
   },
   {
-    path: '/register',
-    component: () => import('@/views/register'),
-    hidden: true
+    path: "/register",
+    component: () => import("@/views/register"),
+    hidden: true,
   },
   {
-    path: '/404',
-    component: () => import('@/views/error/404'),
-    hidden: true
+    path: "/404",
+    component: () => import("@/views/error/404"),
+    hidden: true,
   },
   {
-    path: '/401',
-    component: () => import('@/views/error/401'),
-    hidden: true
+    path: "/401",
+    component: () => import("@/views/error/401"),
+    hidden: true,
   },
   {
-    path: '',
+    path: "",
     component: Layout,
-    redirect: 'home',
+    redirect: "home",
     children: [
       {
-        path: 'home',
-        component: () => import('@/views/index'),
-        name: 'home',
-        meta: { title: '首页', icon: 'dashboard', affix: true }
-      }
-    ]
+        path: "home",
+        component: () => import("@/views/index"),
+        name: "home",
+        meta: { title: "首页", icon: "dashboard", affix: true },
+      },
+    ],
   },
   {
-    path: '/user',
+    path: "/user",
     component: Layout,
     hidden: true,
-    redirect: 'noredirect',
+    redirect: "noredirect",
     children: [
       {
-        path: 'profile',
-        component: () => import('@/views/system/user/profile/index'),
-        name: 'Profile',
-        meta: { title: '个人中心', icon: 'user' }
-      }
-    ]
-  }
-  ,{
-    path: '/safetycheck/tempregister',
-    component: Layout,    
+        path: "profile",
+        component: () => import("@/views/system/user/profile/index"),
+        name: "Profile",
+        meta: { title: "个人中心", icon: "user" },
+      },
+    ],
+  },
+  {
+    path: "/safetycheck/tempregister",
+    component: Layout,
     hidden: true,
-    permissions: ['core:safetycheck:register'],
-    children:[{
-      path:'add',
-      name:'tempRegister',
-      component: () => import('@/views/safetycheck/task/components/checkRegister.vue'),
-      meta:{title:'临时登记'}
-    }]
-  }
-]
+    permissions: ["core:safetycheck:register"],
+    children: [
+      {
+        path: "add",
+        name: "tempRegister",
+        component: () =>
+          import("@/views/safetycheck/task/components/checkRegister.vue"),
+        meta: { title: "临时登记" },
+      },
+    ],
+  },
+];
 
 // 动态路由,基于用户权限动态去加载
 export const dynamicRoutes = [
   {
-    path: '/system/user-extend',
+    path: "/system/user-extend",
     component: Layout,
     hidden: true,
-    permissions: ['system:user:extend'],
+    permissions: ["system:user:extend"],
     children: [
       {
-        path: 'extend/:userId(\\d+)',
-        component: () => import('@/views/system/user/extend'),
-        name: 'UserExtend',
-        meta: { title: '用户信息扩展', activeMenu: '/system/user' }
-      }
-    ]
+        path: "extend/:userId(\\d+)",
+        component: () => import("@/views/system/user/extend"),
+        name: "UserExtend",
+        meta: { title: "用户信息扩展", activeMenu: "/system/user" },
+      },
+    ],
   },
   {
-    path: '/system/user-auth',
+    path: "/system/user-auth",
     component: Layout,
     hidden: true,
-    permissions: ['system:user:edit'],
+    permissions: ["system:user:edit"],
     children: [
       {
-        path: 'role/:userId(\\d+)',
-        component: () => import('@/views/system/user/authRole'),
-        name: 'AuthRole',
-        meta: { title: '分配角色', activeMenu: '/system/user' }
-      }
-    ]
+        path: "role/:userId(\\d+)",
+        component: () => import("@/views/system/user/authRole"),
+        name: "AuthRole",
+        meta: { title: "分配角色", activeMenu: "/system/user" },
+      },
+    ],
   },
   {
-    path: '/system/role-auth',
+    path: "/system/role-auth",
     component: Layout,
     hidden: true,
-    permissions: ['system:role:edit'],
+    permissions: ["system:role:edit"],
     children: [
       {
-        path: 'user/:roleId(\\d+)',
-        component: () => import('@/views/system/role/authUser'),
-        name: 'AuthUser',
-        meta: { title: '分配用户', activeMenu: '/system/role' }
-      }
-    ]
+        path: "user/:roleId(\\d+)",
+        component: () => import("@/views/system/role/authUser"),
+        name: "AuthUser",
+        meta: { title: "分配用户", activeMenu: "/system/role" },
+      },
+    ],
   },
   {
-    path: '/system/dict-data',
+    path: "/system/dict-data",
     component: Layout,
     hidden: true,
-    permissions: ['system:dict:list'],
+    permissions: ["system:dict:list"],
     children: [
       {
-        path: 'index/:dictId(\\d+)',
-        component: () => import('@/views/system/dict/data'),
-        name: 'Data',
-        meta: { title: '字典数据', activeMenu: '/system/dict' }
-      }
-    ]
+        path: "index/:dictId(\\d+)",
+        component: () => import("@/views/system/dict/data"),
+        name: "Data",
+        meta: { title: "字典数据", activeMenu: "/system/dict" },
+      },
+    ],
   },
   {
-    path: '/monitor/job-log',
+    path: "/monitor/job-log",
     component: Layout,
     hidden: true,
-    permissions: ['monitor:job:list'],
+    permissions: ["monitor:job:list"],
     children: [
       {
-        path: 'index/:jobId(\\d+)',
-        component: () => import('@/views/monitor/job/log'),
-        name: 'JobLog',
-        meta: { title: '调度日志', activeMenu: '/monitor/job' }
-      }
-    ]
+        path: "index/:jobId(\\d+)",
+        component: () => import("@/views/monitor/job/log"),
+        name: "JobLog",
+        meta: { title: "调度日志", activeMenu: "/monitor/job" },
+      },
+    ],
   },
   {
-    path: '/tool/gen-edit',
+    path: "/tool/gen-edit",
     component: Layout,
     hidden: true,
-    permissions: ['tool:gen:edit'],
+    permissions: ["tool:gen:edit"],
     children: [
       {
-        path: 'index/:tableId(\\d+)',
-        component: () => import('@/views/tool/gen/editTable'),
-        name: 'GenEdit',
-        meta: { title: '修改生成配置', activeMenu: '/tool/gen' }
-      }
-    ]
+        path: "index/:tableId(\\d+)",
+        component: () => import("@/views/tool/gen/editTable"),
+        name: "GenEdit",
+        meta: { title: "修改生成配置", activeMenu: "/tool/gen" },
+      },
+    ],
   },
   {
-    path: '/core/safetycheck',
+    path: "/core/safetycheck",
     component: Layout,
     hidden: true,
     // permissions: ['core:safetycheck'],
     children: [
       {
-        path: 'register/:taskId(\\d+)',
-        component: () => import('@/views/safetycheck/task/components/register.vue'),
-        name: 'safetyCheckRegister',
-        meta: { title: '检查任务', activeMenu: '/safetycheck/taskmanager' }
-      }
-    ]
+        path: "register/:taskId(\\d+)",
+        component: () =>
+          import("@/views/safetycheck/task/components/register.vue"),
+        name: "safetyCheckRegister",
+        meta: { title: "检查任务", activeMenu: "/safetycheck/taskmanager" },
+      },
+    ],
   },
-  ,{
-    path: '/core/safetycheck',
-    component: Layout,    
+  ,
+  {
+    path: "/core/safetycheck",
+    component: Layout,
     hidden: true,
-    permissions: ['core:task:query'],
-    children:[{
-      path:'detail/:taskId(\\d+)',
-      name:'safetyTaskDetail',
-      component: () => import('@/views/safetycheck/task/components/detail.vue'),
-      meta:{title:'检查任务详情'}
-    }]
+    permissions: ["core:task:query"],
+    children: [
+      {
+        path: "detail/:taskId(\\d+)",
+        name: "safetyTaskDetail",
+        component: () =>
+          import("@/views/safetycheck/task/components/detail.vue"),
+        meta: { title: "检查任务详情" },
+      },
+    ],
   },
   {
-    path: '/core/safetycheck/rule',
+    path: "/core/safetycheck/rule",
     component: Layout,
     hidden: true,
-     permissions: ['safetycheck:rule:contentmanage'],
+    permissions: ["safetycheck:rule:contentmanage"],
     children: [
       {
-        path: 'content/:id(\\d+)',
-        component: () => import('@/views/safetycheck/ruleManager/index.vue'),
-        name: 'safetycheckRuleManager',
-        meta: { title: '检查手册管理', activeMenu: '/safetycheck/rule' }
-      }
-    ]
-  },{
-    path: '/core/resumption/rule',
+        path: "content/:id(\\d+)",
+        component: () => import("@/views/safetycheck/ruleManager/index.vue"),
+        name: "safetycheckRuleManager",
+        meta: { title: "检查手册管理", activeMenu: "/safetycheck/rule" },
+      },
+    ],
+  },
+  {
+    path: "/core/resumption/rule",
     component: Layout,
     hidden: true,
-     permissions: ['resumption:rule:contentmanage'],
+    permissions: ["resumption:rule:contentmanage"],
     children: [
       {
-        path: 'content/:id(\\d+)',
-        component: () => import('@/views/resumption/ruleManager/index.vue'),
-        name: 'resumptionRuleManager',
-        meta: { title: '履职手册管理', activeMenu: '/resumption/rule' }
-      }
-    ]
+        path: "content/:id(\\d+)",
+        component: () => import("@/views/resumption/ruleManager/index.vue"),
+        name: "resumptionRuleManager",
+        meta: { title: "履职手册管理", activeMenu: "/resumption/rule" },
+      },
+    ],
   },
-]
+];
 
 // 防止连续点击多次路由报错
 let routerPush = Router.prototype.push;
 let routerReplace = Router.prototype.replace;
 // push
 Router.prototype.push = function push(location) {
-  return routerPush.call(this, location).catch(err => err)
-}
+  return routerPush.call(this, location).catch((err) => err);
+};
 // replace
 Router.prototype.replace = function push(location) {
-  return routerReplace.call(this, location).catch(err => err)
-}
-
+  return routerReplace.call(this, location).catch((err) => err);
+};
+// const router = 
+// //路由守卫
+// router.beforeEach((to, from, next) => {
+//   //路由守卫控制登陆页面取消水印非登录页显示水印
+//   if (document.querySelector("#water")) {
+//     if (to.path == "/login") {
+//       document.querySelector("#water").style.display = "none";
+//     } else {
+//       document.querySelector("#water").style.display = "block";
+//     }
+//   }
+// });
 export default new Router({
-  mode: 'hash',
+  mode: "hash",
   scrollBehavior: () => ({ y: 0 }),
-  routes: constantRoutes
-})
+  routes: constantRoutes,
+});

+ 5 - 4
src/views/evaluationRule/addEvaluate.vue

@@ -1,7 +1,8 @@
 <template>
   <div>
+    <!-- :visible.sync="isShow" -->
     <DialogCom
-      :visible.sync="isShow"
+    :visible.sync="isShow"
       :width="'500px'"
       :title="`${id ? '编辑' : '新增'}扣分规则`"
       @close="closeHandler"
@@ -73,9 +74,9 @@ export default {
       //包含小数的数字
       let reg = /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g;
       if (value === "") {
-        callback(new Error("请输入内容"));
+        callback(new Error("请输入系数"));
       } else if (!reg.test(value)) {
-        callback(new Error("请输入数字"));
+        callback(new Error("系数只能为数字"));
       } else {
         callback();
       }
@@ -88,7 +89,7 @@ export default {
         indicatorNote: "",
       },
       rules: {
-        indicatorNote: [{ required: true, message: "请选择计算项目" }],
+        indicatorNote: [{ required: true, message: "请输入计算项目" }],
         indicatorDays: [
           { type: "number", message: "连续数只能为数字" },
           { required: true, message: "请输入连续数" },