Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
0c091c46
Commit
0c091c46
authored
Jul 04, 2023
by
姬鋆屾
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
推
parent
bc54dbb7
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
994 additions
and
394 deletions
+994
-394
attendance-performance-manager-ui/admin/package-lock.json
attendance-performance-manager-ui/admin/package-lock.json
+106
-39
attendance-performance-manager-ui/admin/package.json
attendance-performance-manager-ui/admin/package.json
+1
-0
attendance-performance-manager-ui/admin/src/assets/images/title.png
...-performance-manager-ui/admin/src/assets/images/title.png
+0
-0
attendance-performance-manager-ui/admin/src/assets/images/u10938.svg
...performance-manager-ui/admin/src/assets/images/u10938.svg
+7
-0
attendance-performance-manager-ui/admin/src/components/Header.vue
...ce-performance-manager-ui/admin/src/components/Header.vue
+122
-109
attendance-performance-manager-ui/admin/src/main.js
attendance-performance-manager-ui/admin/src/main.js
+4
-0
attendance-performance-manager-ui/admin/src/router.js
attendance-performance-manager-ui/admin/src/router.js
+183
-165
attendance-performance-manager-ui/admin/src/views/homeCharts/record/list.vue
...nce-manager-ui/admin/src/views/homeCharts/record/list.vue
+430
-0
attendance-performance-manager-ui/admin/src/views/perform/staff/conf/list.vue
...ce-manager-ui/admin/src/views/perform/staff/conf/list.vue
+92
-63
attendance-performance-manager-ui/admin/vue.config.js
attendance-performance-manager-ui/admin/vue.config.js
+1
-1
attendance-performance-manager-ui/admin/yarn.lock
attendance-performance-manager-ui/admin/yarn.lock
+48
-17
No files found.
attendance-performance-manager-ui/admin/package-lock.json
View file @
0c091c46
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
"dependencies": {
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@ampproject/remapping": "^2.2.0",
"@chenfengyuan/vue-qrcode": "^1.0.2",
"@chenfengyuan/vue-qrcode": "^1.0.2",
"@jiaminghi/data-view": "^2.10.0",
"@riophae/vue-treeselect": "0.4.0",
"@riophae/vue-treeselect": "0.4.0",
"@vue/babel-preset-app": "^4.5.13",
"@vue/babel-preset-app": "^4.5.13",
"@xunlei/vue-context-menu": "^1.0.2",
"@xunlei/vue-context-menu": "^1.0.2",
...
@@ -40,12 +41,10 @@
...
@@ -40,12 +41,10 @@
"vuex": "3.6.0"
"vuex": "3.6.0"
},
},
"devDependencies": {
"devDependencies": {
"@vue/babel-plugin-transform-vue-jsx": "^1.4.0",
"@vue/cli-plugin-babel": "4.4.6",
"@vue/cli-plugin-babel": "4.4.6",
"@vue/cli-plugin-eslint": "4.4.6",
"@vue/cli-plugin-eslint": "4.4.6",
"@vue/cli-service": "4.4.6",
"@vue/cli-service": "4.4.6",
"babel-eslint": "10.1.0",
"babel-eslint": "10.1.0",
"babel-plugin-jsx-v-model": "^2.0.3",
"chalk": "4.1.0",
"chalk": "4.1.0",
"connect": "3.6.6",
"connect": "3.6.6",
"eslint": "7.15.0",
"eslint": "7.15.0",
...
@@ -1828,6 +1827,56 @@
...
@@ -1828,6 +1827,56 @@
"webpack": "^4.0.0"
"webpack": "^4.0.0"
}
}
},
},
"node_modules/@jiaminghi/bezier-curve": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz",
"integrity": "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==",
"dependencies": {
"@babel/runtime": "^7.5.5"
}
},
"node_modules/@jiaminghi/c-render": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@jiaminghi/c-render/-/c-render-0.4.3.tgz",
"integrity": "sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==",
"dependencies": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/bezier-curve": "*",
"@jiaminghi/color": "*",
"@jiaminghi/transition": "*"
}
},
"node_modules/@jiaminghi/charts": {
"version": "0.2.18",
"resolved": "https://registry.npmjs.org/@jiaminghi/charts/-/charts-0.2.18.tgz",
"integrity": "sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==",
"dependencies": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/c-render": "^0.4.3"
}
},
"node_modules/@jiaminghi/color": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@jiaminghi/color/-/color-1.1.3.tgz",
"integrity": "sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg=="
},
"node_modules/@jiaminghi/data-view": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/@jiaminghi/data-view/-/data-view-2.10.0.tgz",
"integrity": "sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA==",
"dependencies": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/charts": "*"
}
},
"node_modules/@jiaminghi/transition": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/@jiaminghi/transition/-/transition-1.1.11.tgz",
"integrity": "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==",
"dependencies": {
"@babel/runtime": "^7.5.5"
}
},
"node_modules/@jridgewell/gen-mapping": {
"node_modules/@jridgewell/gen-mapping": {
"version": "0.1.1",
"version": "0.1.1",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
...
@@ -2211,6 +2260,8 @@
...
@@ -2211,6 +2260,8 @@
"version": "3.16.0",
"version": "3.16.0",
"hasInstallScript": true,
"hasInstallScript": true,
"license": "MIT",
"license": "MIT",
"optional": true,
"peer": true,
"funding": {
"funding": {
"type": "opencollective",
"type": "opencollective",
"url": "https://opencollective.com/core-js"
"url": "https://opencollective.com/core-js"
...
@@ -3492,17 +3543,6 @@
...
@@ -3492,17 +3543,6 @@
"object.assign": "^4.1.0"
"object.assign": "^4.1.0"
}
}
},
},
"node_modules/babel-plugin-jsx-v-model": {
"version": "2.0.3",
"resolved": "https://registry.npmmirror.com/babel-plugin-jsx-v-model/-/babel-plugin-jsx-v-model-2.0.3.tgz",
"integrity": "sha512-SIx3Y3XxwGEz56Q1atwr5GaZsxJ2IRYmn5dl38LFkaTAvjnbNQxsZHO+ylJPsd+Hmv+ixJBYYFEekPBTHwiGfQ==",
"dev": true,
"dependencies": {
"babel-plugin-syntax-jsx": "^6.18.0",
"html-tags": "^2.0.0",
"svg-tags": "^1.0.0"
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
"node_modules/babel-plugin-polyfill-corejs2": {
"version": "0.2.2",
"version": "0.2.2",
"resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622024057197&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz",
"resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622024057197&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz",
...
@@ -3542,12 +3582,6 @@
...
@@ -3542,12 +3582,6 @@
"@babel/core": "^7.0.0-0"
"@babel/core": "^7.0.0-0"
}
}
},
},
"node_modules/babel-plugin-syntax-jsx": {
"version": "6.18.0",
"resolved": "https://registry.npmmirror.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
"integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==",
"dev": true
},
"node_modules/babel-runtime": {
"node_modules/babel-runtime": {
"version": "6.26.0",
"version": "6.26.0",
"resolved": "https://registry.nlark.com/babel-runtime/download/babel-runtime-6.26.0.tgz?cache=0&sync_timestamp=1618911095190&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz",
"resolved": "https://registry.nlark.com/babel-runtime/download/babel-runtime-6.26.0.tgz?cache=0&sync_timestamp=1618911095190&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz",
...
@@ -18877,6 +18911,56 @@
...
@@ -18877,6 +18911,56 @@
"postcss": "^7.0.0"
"postcss": "^7.0.0"
}
}
},
},
"@jiaminghi/bezier-curve": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz",
"integrity": "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==",
"requires": {
"@babel/runtime": "^7.5.5"
}
},
"@jiaminghi/c-render": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@jiaminghi/c-render/-/c-render-0.4.3.tgz",
"integrity": "sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==",
"requires": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/bezier-curve": "*",
"@jiaminghi/color": "*",
"@jiaminghi/transition": "*"
}
},
"@jiaminghi/charts": {
"version": "0.2.18",
"resolved": "https://registry.npmjs.org/@jiaminghi/charts/-/charts-0.2.18.tgz",
"integrity": "sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==",
"requires": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/c-render": "^0.4.3"
}
},
"@jiaminghi/color": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@jiaminghi/color/-/color-1.1.3.tgz",
"integrity": "sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg=="
},
"@jiaminghi/data-view": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/@jiaminghi/data-view/-/data-view-2.10.0.tgz",
"integrity": "sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA==",
"requires": {
"@babel/runtime": "^7.5.5",
"@jiaminghi/charts": "*"
}
},
"@jiaminghi/transition": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/@jiaminghi/transition/-/transition-1.1.11.tgz",
"integrity": "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==",
"requires": {
"@babel/runtime": "^7.5.5"
}
},
"@jridgewell/gen-mapping": {
"@jridgewell/gen-mapping": {
"version": "0.1.1",
"version": "0.1.1",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
...
@@ -19144,7 +19228,6 @@
...
@@ -19144,7 +19228,6 @@
"resolved": "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.13.tgz",
"resolved": "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.13.tgz",
"integrity": "sha1-y0dTIeTHP38RDawppIwqnLgK/rY=",
"integrity": "sha1-y0dTIeTHP38RDawppIwqnLgK/rY=",
"requires": {
"requires": {
"@babel/core": "^7.11.0",
"@babel/helper-compilation-targets": "^7.9.6",
"@babel/helper-compilation-targets": "^7.9.6",
"@babel/helper-module-imports": "^7.8.3",
"@babel/helper-module-imports": "^7.8.3",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-proposal-class-properties": "^7.8.3",
...
@@ -19157,13 +19240,14 @@
...
@@ -19157,13 +19240,14 @@
"@vue/babel-plugin-jsx": "^1.0.3",
"@vue/babel-plugin-jsx": "^1.0.3",
"@vue/babel-preset-jsx": "^1.2.4",
"@vue/babel-preset-jsx": "^1.2.4",
"babel-plugin-dynamic-import-node": "^2.3.3",
"babel-plugin-dynamic-import-node": "^2.3.3",
"core-js": "^3.6.5",
"core-js-compat": "^3.6.5",
"core-js-compat": "^3.6.5",
"semver": "^6.1.0"
"semver": "^6.1.0"
},
},
"dependencies": {
"dependencies": {
"core-js": {
"core-js": {
"version": "3.16.0"
"version": "3.16.0",
"optional": true,
"peer": true
}
}
}
}
},
},
...
@@ -20113,17 +20197,6 @@
...
@@ -20113,17 +20197,6 @@
"object.assign": "^4.1.0"
"object.assign": "^4.1.0"
}
}
},
},
"babel-plugin-jsx-v-model": {
"version": "2.0.3",
"resolved": "https://registry.npmmirror.com/babel-plugin-jsx-v-model/-/babel-plugin-jsx-v-model-2.0.3.tgz",
"integrity": "sha512-SIx3Y3XxwGEz56Q1atwr5GaZsxJ2IRYmn5dl38LFkaTAvjnbNQxsZHO+ylJPsd+Hmv+ixJBYYFEekPBTHwiGfQ==",
"dev": true,
"requires": {
"babel-plugin-syntax-jsx": "^6.18.0",
"html-tags": "^2.0.0",
"svg-tags": "^1.0.0"
}
},
"babel-plugin-polyfill-corejs2": {
"babel-plugin-polyfill-corejs2": {
"version": "0.2.2",
"version": "0.2.2",
"resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622024057197&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz",
"resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622024057197&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz",
...
@@ -20151,12 +20224,6 @@
...
@@ -20151,12 +20224,6 @@
"@babel/helper-define-polyfill-provider": "^0.2.2"
"@babel/helper-define-polyfill-provider": "^0.2.2"
}
}
},
},
"babel-plugin-syntax-jsx": {
"version": "6.18.0",
"resolved": "https://registry.npmmirror.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
"integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==",
"dev": true
},
"babel-runtime": {
"babel-runtime": {
"version": "6.26.0",
"version": "6.26.0",
"resolved": "https://registry.nlark.com/babel-runtime/download/babel-runtime-6.26.0.tgz?cache=0&sync_timestamp=1618911095190&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz",
"resolved": "https://registry.nlark.com/babel-runtime/download/babel-runtime-6.26.0.tgz?cache=0&sync_timestamp=1618911095190&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz",
attendance-performance-manager-ui/admin/package.json
View file @
0c091c46
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
"dependencies"
:
{
"dependencies"
:
{
"@ampproject/remapping"
:
"^2.2.0"
,
"@ampproject/remapping"
:
"^2.2.0"
,
"@chenfengyuan/vue-qrcode"
:
"^1.0.2"
,
"@chenfengyuan/vue-qrcode"
:
"^1.0.2"
,
"@jiaminghi/data-view"
:
"^2.10.0"
,
"@riophae/vue-treeselect"
:
"0.4.0"
,
"@riophae/vue-treeselect"
:
"0.4.0"
,
"@vue/babel-preset-app"
:
"^4.5.13"
,
"@vue/babel-preset-app"
:
"^4.5.13"
,
"@xunlei/vue-context-menu"
:
"^1.0.2"
,
"@xunlei/vue-context-menu"
:
"^1.0.2"
,
...
...
attendance-performance-manager-ui/admin/src/assets/images/title.png
0 → 100644
View file @
0c091c46
4.41 KB
attendance-performance-manager-ui/admin/src/assets/images/u10938.svg
0 → 100644
View file @
0c091c46
This source diff could not be displayed because it is too large. You can
view the blob
instead.
attendance-performance-manager-ui/admin/src/components/Header.vue
View file @
0c091c46
...
@@ -6,55 +6,62 @@
...
@@ -6,55 +6,62 @@
<div
class=
"layout-menu flex flex-1"
>
<div
class=
"layout-menu flex flex-1"
>
<!-- logo -->
<!-- logo -->
<div
class=
"layout-logo flex"
>
<div
class=
"layout-logo flex"
>
<i
class=
"el-icon-menu"
@
click=
'showMobileMenu=!showMobileMenu'
>
</i>
<i
class=
"el-icon-menu"
@
click=
"showMobileMenu = !showMobileMenu"
>
</i>
<router-link
to=
"/"
>
<router-link
to=
"/"
>
<!--
<img
src=
"../assets/images/logo.png"
style=
"margin-bottom:5px"
height=
"40"
alt=
""
>
-->
<!--
<img
src=
"../assets/images/logo.png"
style=
"margin-bottom:5px"
height=
"40"
alt=
""
>
-->
<b
style=
"color:white;font-size:20px;"
>
智慧政务绩效管理系统
</b>
<b
style=
"color:white;font-size:20px;"
>
智慧政务绩效管理系统
</b
>
</router-link>
</router-link>
</div>
</div>
<!-- 一级菜单 -->
<!-- 一级菜单 -->
<ul
class=
"menu-list flex"
>
<ul
class=
"menu-list flex"
>
<li
v-for=
'item in menu'
:key=
'item.id'
>
<li
v-for=
"item in menu"
:key=
"item.id"
>
<span
@
click=
"RouterTo(item.path)"
:class=
"
{active:activePath === item.path}">
<span
<i
:class=
"'el-icon-'+item.icon"
></i>
@
click=
"RouterTo(item.path)"
{{
item
.
name
}}
:class=
"
{ active: activePath === item.path }"
>
<i
:class=
"'el-icon-' + item.icon"
></i>
{{
item
.
name
}}
</span>
</span>
</li>
</li>
</ul>
</ul>
</div>
</div>
<div
class=
"controllBar"
>
<div
class=
"controllBar"
>
<el-badge
:value=
"12"
class=
"item"
>
<el-badge
:value=
"12"
class=
"item"
>
<i
class=
"el-icon-bell"
style=
"font-size: 15px;margin-right: 10px"
>
消息
</i>
<i
class=
"el-icon-bell"
style=
"font-size: 15px;margin-right: 10px"
>
消息
</i
>
</el-badge>
</el-badge>
</div>
</div>
<div
class=
"controllBar"
@
click=
"returnHome"
>
<div
class=
"controllBar"
@
click=
"returnHome"
>
<i
class=
"el-icon-s-home"
style=
"font-size: 15px;margin-right: 10px"
>
首页
</i>
<i
class=
"el-icon-s-home"
style=
"font-size: 15px;margin-right: 10px"
>
首页
</i
>
</div>
</div>
<div
class=
"layout-profile"
>
<div
class=
"layout-profile"
>
<el-dropdown
@
command=
"handleCommand"
>
<el-dropdown
@
command=
"handleCommand"
>
<span
class=
"el-dropdown-link"
style=
"color:white"
>
<span
class=
"el-dropdown-link"
style=
"color:white"
>
{{
userData
.
currUserName
}}
{{
userData
.
currUserName
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</span>
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"update"
>
修改密码
</el-dropdown-item>
<el-dropdown-item
command=
"update"
>
修改密码
</el-dropdown-item>
<el-dropdown-item
command=
"logout"
>
退出登录
</el-dropdown-item>
<el-dropdown-item
command=
"logout"
>
退出登录
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown>
</div>
</div>
</div>
</div>
<!-- 一级菜单 -->
<!-- 一级菜单 -->
<ul
class=
"mobile-menu-list flex flex-pack-justify"
v-if=
'showMobileMenu'
>
<ul
class=
"mobile-menu-list flex flex-pack-justify"
v-if=
"showMobileMenu"
>
<li
v-for=
'item in menu'
:key=
'item.id'
@
click=
"RouterTo(item.path)"
>
<li
v-for=
"item in menu"
:key=
"item.id"
@
click=
"RouterTo(item.path)"
>
<span
:class=
"
{
active:activePath === item.path
}">
<span
:class=
"
{
active: activePath === item.path
}">
<i
:class=
"'el-icon-'
+
item.icon"
></i>
<i
:class=
"'el-icon-'
+
item.icon"
></i>
{{
item
.
name
}}
{{
item
.
name
}}
</span>
</span>
</li>
</li>
</ul>
</ul>
...
@@ -66,128 +73,135 @@ export default {
...
@@ -66,128 +73,135 @@ export default {
name
:
"
Header
"
,
name
:
"
Header
"
,
methods
:
{
methods
:
{
// 导航栏路由跳转
// 导航栏路由跳转
RouterTo
(
path
){
RouterTo
(
path
)
{
window
.
sessionStorage
.
CurrentSecondPath
=
path
window
.
sessionStorage
.
CurrentSecondPath
=
path
;
this
.
$store
.
commit
(
'
setCurrentSecondPath
'
,
path
)
this
.
$store
.
commit
(
"
setCurrentSecondPath
"
,
path
);
this
.
$store
.
commit
(
'
setThirdPath
'
,
path
)
this
.
$store
.
commit
(
"
setThirdPath
"
,
path
);
this
.
$router
.
push
({
path
})
this
.
$router
.
push
({
path
});
let
thirdArr
=
this
.
headBar
.
children
.
find
(
item
=>
item
.
path
===
path
)
let
thirdArr
=
this
.
headBar
.
children
.
find
((
item
)
=>
item
.
path
===
path
);
let
arr
=
[]
let
arr
=
[];
if
(
thirdArr
.
children
.
length
===
0
){
if
(
thirdArr
.
children
.
length
===
0
)
{
arr
.
push
(
arr
.
push
({
{
children
:
[],
children
:
[],
id
:
thirdArr
.
id
,
id
:
thirdArr
.
id
,
name
:
thirdArr
.
name
,
name
:
thirdArr
.
name
,
path
:
thirdArr
.
path
,
path
:
thirdArr
.
path
});
}
}
else
{
)
arr
=
thirdArr
.
children
;
}
else
{
arr
=
thirdArr
.
children
}
}
this
.
$store
.
commit
(
'
setCurrentThirdArr
'
,
arr
)
this
.
$store
.
commit
(
"
setCurrentThirdArr
"
,
arr
);
this
.
$emit
(
'
changePath
'
,
path
)
//触发点击事件
this
.
$emit
(
"
changePath
"
,
path
);
//触发点击事件
},
},
returnHome
(){
returnHome
()
{
this
.
$router
.
replace
({
path
:
'
/
'
})
this
.
$router
.
replace
({
path
:
"
/
"
});
},
},
handleCommand
(
key
)
{
handleCommand
(
key
)
{
if
(
key
===
'
update
'
)
{
if
(
key
===
"
update
"
)
{
this
.
$router
.
push
(
'
/login/updatePwd
'
)
this
.
$router
.
push
(
"
/login/updatePwd
"
);
}
}
if
(
key
===
'
logout
'
)
{
if
(
key
===
"
logout
"
)
{
this
.
logout
()
this
.
logout
()
;
}
}
},
},
// 退出登录
// 退出登录
logout
()
{
logout
()
{
this
.
$post
(
'
/login/logout
'
).
then
(
data
=>
{}).
catch
(
error
=>
{}).
then
(()
=>
{
this
.
$post
(
"
/login/logout
"
)
this
.
$message
.
success
(
'
已退出登录
'
);
.
then
((
data
)
=>
{})
this
.
$store
.
commit
(
'
logout
'
);
.
catch
((
error
)
=>
{})
this
.
$router
.
replace
(
'
/login
'
);
.
then
(()
=>
{
})
this
.
$message
.
success
(
"
已退出登录
"
);
}
this
.
$store
.
commit
(
"
logout
"
);
this
.
$router
.
replace
(
"
/login
"
);
});
},
},
},
beforeDestroy
()
{
beforeDestroy
()
{
console
.
log
(
"
beforeDestroy
"
);
console
.
log
(
"
beforeDestroy
"
);
},
},
mounted
()
{},
mounted
()
{
console
.
log
(
this
.
menu
);
},
computed
:
{
computed
:
{
group
()
{
group
()
{
const
relativeGroup
=
this
.
$store
.
state
.
group
;
const
relativeGroup
=
this
.
$store
.
state
.
group
;
if
(
relativeGroup
)
{
if
(
relativeGroup
)
{
return
relativeGroup
;
return
relativeGroup
;
}
}
let
groupArray
=
this
.
$route
.
path
.
split
(
'
/
'
);
let
groupArray
=
this
.
$route
.
path
.
split
(
"
/
"
);
let
group
=
this
.
$route
.
path
;
let
group
=
this
.
$route
.
path
;
let
type
=
groupArray
.
pop
();
let
type
=
groupArray
.
pop
();
if
([
'
add
'
,
'
edit
'
,
'
view
'
,
'
new
'
,
'
importView
'
,
'
resetPwdView
'
].
indexOf
(
type
)
>
-
1
){
if
(
groupArray
.
push
(
'
list
'
);
[
"
add
"
,
"
edit
"
,
"
view
"
,
"
new
"
,
"
importView
"
,
"
resetPwdView
"
].
indexOf
(
group
=
groupArray
.
join
(
'
/
'
)
type
)
>
-
1
)
{
groupArray
.
push
(
"
list
"
);
group
=
groupArray
.
join
(
"
/
"
);
}
}
return
group
;
return
group
;
},
},
relativeGroup
()
{
relativeGroup
()
{
return
this
.
$store
.
state
.
group
return
this
.
$store
.
state
.
group
;
},
},
flat
()
{
flat
()
{
return
this
.
userData
.
flat
return
this
.
userData
.
flat
;
},
},
menu
()
{
menu
()
{
if
(
!
this
.
headBar
.
children
)
{
if
(
!
this
.
headBar
.
children
)
{
return
[]
return
[]
;
}
else
{
}
else
{
return
this
.
headBar
.
children
return
this
.
headBar
.
children
;
}
}
},
},
// 二级菜单数据
// 二级菜单数据
headBar
()
{
headBar
()
{
return
this
.
$store
.
state
.
headBar
;
return
this
.
$store
.
state
.
headBar
;
},
},
userData
(){
userData
()
{
return
this
.
$store
.
state
.
userData
return
this
.
$store
.
state
.
userData
;
},
},
// 二级路径
// 二级路径
activePath
(){
activePath
()
{
return
this
.
$store
.
state
.
CurrentSecondPath
return
this
.
$store
.
state
.
CurrentSecondPath
;
}
}
,
},
},
data
()
{
data
()
{
return
{
return
{
showMobileMenu
:
false
,
showMobileMenu
:
false
,
}
}
;
},
},
created
(){
created
()
{},
};
}
}
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
.layout-header{
.layout-header {
.mobile-menu-list{display: none}
.mobile-menu-list {
.layout-menu-wrapper{
display: none;
}
.layout-menu-wrapper {
height: 72px;
height: 72px;
line-height: 72px;
line-height: 72px;
font-size: 16px;
font-size: 16px;
color: #eee;
color: #eee;
background: #1848c8;
background: #1848c8;
.layout-logo{
.layout-logo {
height: 50px;
height: 50px;
.el-icon-menu{display: none}
.el-icon-menu {
a{
display: none;
}
a {
margin: auto;
margin: auto;
}
}
img{
img
{
vertical-align: middle;
vertical-align: middle;
}
}
}
}
.menu-list{
.menu-list
{
li{
li
{
span{
span
{
display: block;
display: block;
padding: 0 16px;
padding: 0 16px;
height: 100%;
height: 100%;
...
@@ -195,20 +209,19 @@ export default {
...
@@ -195,20 +209,19 @@ export default {
cursor: pointer;
cursor: pointer;
margin-right: 20px;
margin-right: 20px;
}
}
.active{
.active
{
color: #fff;
color: #fff;
list-style-type:none;
list-style-type:
none;
border-bottom:3px solid #fff;
border-bottom:
3px solid #fff;
padding-bottom: 2px;
padding-bottom: 2px;
}
}
}
}
}
}
.layout-profile{
.layout-profile
{
padding-right: 30px;
padding-right: 30px;
}
}
}
}
.controllBar{
.controllBar
{
background-color: rgba(170, 170, 170, 0.4);
background-color: rgba(170, 170, 170, 0.4);
width: 120px;
width: 120px;
height: 44px;
height: 44px;
...
@@ -220,23 +233,23 @@ export default {
...
@@ -220,23 +233,23 @@ export default {
margin-right: 15px;
margin-right: 15px;
cursor: pointer;
cursor: pointer;
}
}
.layout-submenu-wrapper{
.layout-submenu-wrapper
{
padding-left: 20px;
padding-left: 20px;
background: #fff;
background: #fff;
height: 42px;
height: 42px;
border-bottom: 1px solid #ededed;
border-bottom: 1px solid #ededed;
.layout-title{
.layout-title
{
font-size: 18px;
font-size: 18px;
height: 40px;
height: 40px;
line-height: 40px;
line-height: 40px;
color: #333;
color: #333;
}
}
.layout-submenu{
.layout-submenu
{
margin-left: 15px;
margin-left: 15px;
white-space: nowrap;
white-space: nowrap;
overflow: auto;
overflow: auto;
li{
li
{
a{
a
{
display: block;
display: block;
padding: 0 10px;
padding: 0 10px;
height: 40px;
height: 40px;
...
@@ -244,7 +257,7 @@ export default {
...
@@ -244,7 +257,7 @@ export default {
font-size: 14px;
font-size: 14px;
color: #666;
color: #666;
&.router-link-active,
&.router-link-active,
&[active]{
&[active]
{
color: #1890ff;
color: #1890ff;
border-bottom: 2px solid #1890ff;
border-bottom: 2px solid #1890ff;
}
}
...
@@ -254,46 +267,46 @@ export default {
...
@@ -254,46 +267,46 @@ export default {
}
}
}
}
@media screen and (max-width: 800px){
@media screen and (max-width: 800px)
{
.layout-header {
.layout-header {
.mobile-menu-list{
.mobile-menu-list
{
display: flex;
display: flex;
background: #222333;
background: #222333;
padding: 10px;
padding: 10px;
li{
li
{
span{
span
{
display: block;
display: block;
padding: 0 12px;
padding: 0 12px;
height: 100%;
height: 100%;
color: #eee;
color: #eee;
cursor: pointer;
cursor: pointer;
}
}
.active{
.active
{
color: #1890ff;
color: #1890ff;
}
}
}
}
}
}
.layout-submenu-wrapper{
.layout-submenu-wrapper
{
padding-left: 0;
padding-left: 0;
overflow: auto;
overflow: auto;
-webkit-overflow-scrolling: touch;
-webkit-overflow-scrolling: touch;
}
}
.layout-menu-wrapper {
.layout-menu-wrapper {
width: 100%;
width: 100%;
.layout-logo{
.layout-logo
{
width: 40px;
width: 40px;
.el-icon-menu{
.el-icon-menu
{
margin: auto;
margin: auto;
display: inline-block;
display: inline-block;
}
}
a{
a
{
display: none;
display: none;
}
}
}
}
.menu-list{
.menu-list
{
display: none;
display: none;
}
}
li{
li
{
width: 100%;
width: 100%;
}
}
}
}
...
...
attendance-performance-manager-ui/admin/src/main.js
View file @
0c091c46
...
@@ -12,6 +12,10 @@ import Global from './assets/utils/global.js'
...
@@ -12,6 +12,10 @@ import Global from './assets/utils/global.js'
import
VueClipboard
from
'
vue-clipboard2
'
import
VueClipboard
from
'
vue-clipboard2
'
import
VueAMap
from
'
vue-amap
'
;
import
VueAMap
from
'
vue-amap
'
;
import
*
as
echarts
from
'
echarts
'
import
*
as
echarts
from
'
echarts
'
// 将自动注册所有组件为全局组件
import
dataV
from
'
@jiaminghi/data-view
'
Vue
.
use
(
dataV
)
Vue
.
prototype
.
$echarts
=
echarts
;
Vue
.
prototype
.
$echarts
=
echarts
;
Vue
.
config
.
productionTip
=
false
Vue
.
config
.
productionTip
=
false
...
...
attendance-performance-manager-ui/admin/src/router.js
View file @
0c091c46
import
Vue
from
'
vue
'
import
Vue
from
"
vue
"
;
import
Router
from
'
vue-router
'
import
Router
from
"
vue-router
"
;
import
Store
from
'
./store
'
import
Store
from
"
./store
"
;
import
Layout
from
'
./views/Layout.vue
'
import
Layout
from
"
./views/Layout.vue
"
;
import
fileNotFound
from
'
./views/errors/fileNotFound.vue
'
import
fileNotFound
from
"
./views/errors/fileNotFound.vue
"
;
import
NProgress
from
'
nprogress
'
import
NProgress
from
"
nprogress
"
;
import
'
nprogress/nprogress.css
'
import
"
nprogress/nprogress.css
"
;
NProgress
.
configure
({
showSpinner
:
false
})
NProgress
.
configure
({
showSpinner
:
false
})
;
Vue
.
use
(
Router
);
Vue
.
use
(
Router
);
const
originalPush
=
VueRouter
.
prototype
.
push
;
const
originalPush
=
VueRouter
.
prototype
.
push
VueRouter
.
prototype
.
push
=
function
push
(
location
,
onResolve
,
onReject
)
{
VueRouter
.
prototype
.
push
=
function
push
(
location
,
onResolve
,
onReject
)
{
if
(
onResolve
||
onReject
)
return
originalPush
.
call
(
this
,
location
,
onResolve
,
onReject
)
if
(
onResolve
||
onReject
)
return
originalPush
.
call
(
this
,
location
).
catch
(
err
=>
err
)
return
originalPush
.
call
(
this
,
location
,
onResolve
,
onReject
);
}
return
originalPush
.
call
(
this
,
location
).
catch
((
err
)
=>
err
);
};
const
router
=
new
Router
({
const
router
=
new
Router
({
routes
:
[
routes
:
[
builder
(
'
/authentication
'
,
'
login/authentication
'
),
builder
(
"
/authentication
"
,
"
login/authentication
"
),
builder
(
'
/login
'
,
'
login/login
'
),
builder
(
"
/login
"
,
"
login/login
"
),
builder
(
'
/sso
'
,
'
SSO
'
),
builder
(
"
/sso
"
,
"
SSO
"
),
{
{
path
:
'
/
'
,
path
:
"
/
"
,
name
:
'
layout
'
,
name
:
"
layout
"
,
component
:
Layout
,
component
:
Layout
,
meta
:
{
meta
:
{
requiresAuth
:
true
requiresAuth
:
true
,
},
},
children
:
[
children
:
[
...
restBuilder
(
'
oper/log
'
,
'
system/log
'
),
// 系统管理-操作日志
...
restBuilder
(
"
oper/log
"
,
"
system/log
"
),
// 系统管理-操作日志
...
restBuilder
(
'
validcode
'
,
'
system/validcode
'
),
// 接入管理-接入信息
...
restBuilder
(
"
validcode
"
,
"
system/validcode
"
),
// 接入管理-接入信息
...
restBuilder
(
'
menu
'
,
'
system/menu
'
),
// 系统管理--菜单管理
...
restBuilder
(
"
menu
"
,
"
system/menu
"
),
// 系统管理--菜单管理
...
restBuilder
(
'
resource
'
,
'
system/resource
'
),
// 系统管理--资源管理
...
restBuilder
(
"
resource
"
,
"
system/resource
"
),
// 系统管理--资源管理
...
restBuilder
(
'
role
'
,
'
system/role
'
),
// 系统管理--角色管理
...
restBuilder
(
"
role
"
,
"
system/role
"
),
// 系统管理--角色管理
...
restBuilder
(
'
user
'
,
'
system/user
'
),
// 用户管理 -- 管理用户
...
restBuilder
(
"
user
"
,
"
system/user
"
),
// 用户管理 -- 管理用户
...
restBuilder
(
'
param
'
,
'
system/param
'
),
// 系统管理--参数管理
...
restBuilder
(
"
param
"
,
"
system/param
"
),
// 系统管理--参数管理
...
restBuilder
(
'
task
'
,
'
system/task
'
),
// 系统管理--任务管理
...
restBuilder
(
"
task
"
,
"
system/task
"
),
// 系统管理--任务管理
// 绩效负责人
// 绩效负责人
...
restBuilder
(
'
workman
'
,
'
workman
'
),
...
restBuilder
(
"
workman
"
,
"
workman
"
),
//部门
//部门
...
restBuilder
(
'
dept
'
,
'
dept
'
),
//部门
...
restBuilder
(
"
dept
"
,
"
dept
"
),
//部门
...
restBuilder
(
'
staff
'
,
'
staff
'
),
//花名册 员工信息
...
restBuilder
(
"
staff
"
,
"
staff
"
),
//花名册 员工信息
...
restBuilder
(
'
staff/care
'
,
'
staff/care
'
),
// 员工关怀信息
...
restBuilder
(
"
staff/care
"
,
"
staff/care
"
),
// 员工关怀信息
...
restBuilder
(
'
care/template
'
,
'
care/template
'
),
// 关怀问候信息
...
restBuilder
(
"
care/template
"
,
"
care/template
"
),
// 关怀问候信息
...
restBuilder
(
'
staff/black
'
,
'
staff/black
'
),
// 员工黑名单信息
...
restBuilder
(
"
staff/black
"
,
"
staff/black
"
),
// 员工黑名单信息
...
restBuilder
(
'
job
'
,
'
job
'
),
// 职位信息
...
restBuilder
(
"
job
"
,
"
job
"
),
// 职位信息
...
restBuilder
(
'
staff/adjust/log
'
,
'
staff/adjust/log
'
),
// 员工调岗信息
...
restBuilder
(
"
staff/adjust/log
"
,
"
staff/adjust/log
"
),
// 员工调岗信息
...
restBuilder
(
'
staff/regular
'
,
'
staff/regular
'
),
// 员工转正信息
...
restBuilder
(
"
staff/regular
"
,
"
staff/regular
"
),
// 员工转正信息
...
restBuilder
(
'
staff/leave
'
,
'
staff/leave
'
),
// 员工离职信息
...
restBuilder
(
"
staff/leave
"
,
"
staff/leave
"
),
// 员工离职信息
...
restBuilder
(
'
staff/contract
'
,
'
staff/contract
'
),
// 员工合同信息
...
restBuilder
(
"
staff/contract
"
,
"
staff/contract
"
),
// 员工合同信息
...
restBuilder
(
'
attendance/record/hik
'
,
'
attendance/record/hik
'
),
// 海康考勤
...
restBuilder
(
"
attendance/record/hik
"
,
"
attendance/record/hik
"
),
// 海康考勤
...
restBuilder
(
'
attendance/record/error
'
,
'
attendance/record/error
'
),
// 考勤打卡记录异常信息
...
restBuilder
(
"
attendance/record/error
"
,
"
attendance/record/error
"
),
// 考勤打卡记录异常信息
...
restBuilder
(
'
attendance/stat
'
,
'
attendance/stat
'
),
// 考勤汇总信息
...
restBuilder
(
"
attendance/stat
"
,
"
attendance/stat
"
),
// 考勤汇总信息
...
restBuilder
(
'
attendance/staff/stat
'
,
'
attendance/staff/stat
'
),
// 考勤人员汇总信息
...
restBuilder
(
"
attendance/staff/stat
"
,
"
attendance/staff/stat
"
),
// 考勤人员汇总信息
...
restBuilder
(
"
attendance/record
"
,
"
attendance/record
"
),
// 考勤打卡记录信息
...
restBuilder
(
'
attendance/record
'
,
'
attendance/record
'
),
// 考勤打卡记录信息
...
restBuilder
(
"
attendance/record/detail
"
,
"
attendance/record/detail
"
),
// 考勤打卡记录详细信息
...
restBuilder
(
'
attendance/record/detail
'
,
'
attendance/record/detail
'
),
// 考勤打卡记录详细信息
...
restBuilder
(
"
attendance/group
"
,
"
attendance/group
"
),
// 考勤组信息
...
restBuilder
(
'
attendance/group
'
,
'
attendance/group
'
),
// 考勤组信息
...
restBuilder
(
"
attendance/class
"
,
"
attendance/class
"
),
// 考勤班次信息
...
restBuilder
(
'
attendance/class
'
,
'
attendance/class
'
),
// 考勤班次信息
...
restBuilder
(
"
attendance/leave/record
"
,
"
attendance/leave/record
"
),
// 请假记录信息
...
restBuilder
(
'
attendance/leave/record
'
,
'
attendance/leave/record
'
),
// 请假记录信息
...
restBuilder
(
...
restBuilder
(
'
attendance/vacation/balance
'
,
'
attendance/vacation/balance
'
),
// 员工假期余额信息
"
attendance/vacation/balance
"
,
"
attendance/vacation/balance
"
),
// 员工假期余额信息
...
restBuilder
(
'
staff/perform/stat
'
,
'
staff/perform/stat
'
),
//员工分数统计
...
restBuilder
(
"
staff/perform/stat
"
,
"
staff/perform/stat
"
),
//员工分数统计
...
restBuilder
(
'
dept/perform/stat
'
,
'
dept/perform/stat
'
),
//部门绩效分数统计
...
restBuilder
(
"
dept/perform/stat
"
,
"
dept/perform/stat
"
),
//部门绩效分数统计
...
restBuilder
(
'
perform/perpose/staff/stat
'
,
'
perform/perpose/staff/stat
'
),
//员工目标统计
...
restBuilder
(
...
restBuilder
(
'
perform/perpose/dept/stat/stat
'
,
'
perform/perpose/dept/stat/stat
'
),
//部门目标统计
"
perform/perpose/staff/stat
"
,
...
restBuilder
(
'
perform/perpose/staff
'
,
'
perform/perpose/staff
'
),
//员工考核目标详细信息表
"
perform/perpose/staff/stat
"
...
restBuilder
(
'
perform/perpose/staff/stat
'
,
'
perform/perpose/staff/stat
'
),
//员工考核目标详细信息表
),
//员工目标统计
...
restBuilder
(
'
perform/perpose/dept
'
,
'
perform/perpose/dept
'
),
//部门考核目标详细信息表
...
restBuilder
(
...
restBuilder
(
'
perform/perpose/dept/stat
'
,
'
perform/perpose/dept/stat
'
),
//部门考核目标详细信息表
"
perform/perpose/dept/stat/stat
"
,
...
restBuilder
(
'
perform/perpose
'
,
'
perform/perpose
'
),
//考核目标表
"
perform/perpose/dept/stat/stat
"
...
restBuilder
(
'
window/owner
'
,
'
window/owner
'
),
//窗口负责人表
),
//部门目标统计
...
restBuilder
(
'
perform/staff/conf/detail
'
,
'
perform/staff/conf/detail
'
),
//人员考核内容详细信息表
...
restBuilder
(
"
perform/perpose/staff
"
,
"
perform/perpose/staff
"
),
//员工考核目标详细信息表
...
restBuilder
(
'
perform/staff/conf
'
,
'
perform/staff/conf
'
),
//人员自动考核信息表
...
restBuilder
(
...
restBuilder
(
'
perform/dept/conf/detail
'
,
'
perform/dept/conf/detail
'
),
//部门考核内容详细信息表
"
perform/perpose/staff/stat
"
,
...
restBuilder
(
'
perform/dept/conf
'
,
'
perform/dept/conf
'
),
//部门自动考核信息表
"
perform/perpose/staff/stat
"
...
restBuilder
(
'
perform/rules/category
'
,
'
perform/rules/category
'
),
//绩效规则分类信息表
),
//员工考核目标详细信息表
...
restBuilder
(
'
perform/rules
'
,
'
perform/rules
'
),
//绩效规则信息表
...
restBuilder
(
"
perform/perpose/dept
"
,
"
perform/perpose/dept
"
),
//部门考核目标详细信息表
...
restBuilder
(
...
restBuilder
(
'
perform/rules/attend
'
,
'
perform/rules/attend
'
),
//考勤绩效规则信息表
"
perform/perpose/dept/stat
"
,
...
restBuilder
(
'
perform/rules/review
'
,
'
perform/rules/review
'
),
//评价绩效规则信息表
"
perform/perpose/dept/stat
"
...
restBuilder
(
'
perform/rules/gowork
'
,
'
perform/rules/gowork
'
),
//办件绩效规则信息表
),
//部门考核目标详细信息表
...
restBuilder
(
'
perform/rules/effect
'
,
'
perform/rules/effect
'
),
//效能绩效规则信息表
...
restBuilder
(
"
perform/perpose
"
,
"
perform/perpose
"
),
//考核目标表
...
restBuilder
(
'
perform/rules/other
'
,
'
perform/rules/other
'
),
//其它绩效规则信息表
...
restBuilder
(
"
window/owner
"
,
"
window/owner
"
),
//窗口负责人表
...
restBuilder
(
...
restBuilder
(
'
perform/attend/record
'
,
'
perform/attend/record
'
),
//考勤绩效记录信息
"
perform/staff/conf/detail
"
,
...
restBuilder
(
'
perform/review/record
'
,
'
perform/review/record
'
),
//评价绩效记录信息
"
perform/staff/conf/detail
"
...
restBuilder
(
'
perform/complain/record
'
,
'
perform/complain/record
'
),
//投诉绩效记录信息
),
//人员考核内容详细信息表
...
restBuilder
(
'
perform/gowork/record
'
,
'
perform/gowork/record
'
),
//办件绩效记录信息
...
restBuilder
(
"
perform/staff/conf
"
,
"
perform/staff/conf
"
),
//人员自动考核信息表
...
restBuilder
(
'
perform/effect/record
'
,
'
perform/effect/record
'
),
//效能绩效记录信息
...
restBuilder
(
"
perform/dept/conf/detail
"
,
"
perform/dept/conf/detail
"
),
//部门考核内容详细信息表
...
restBuilder
(
'
perform/other/record
'
,
'
perform/other/record
'
),
//其它绩效记录信息
...
restBuilder
(
"
perform/dept/conf
"
,
"
perform/dept/conf
"
),
//部门自动考核信息表
...
restBuilder
(
"
perform/rules/category
"
,
"
perform/rules/category
"
),
//绩效规则分类信息表
...
restBuilder
(
'
check/attend/record
'
,
'
check/attend/record
'
),
//考勤绩效核查信息
...
restBuilder
(
"
perform/rules
"
,
"
perform/rules
"
),
//绩效规则信息表
...
restBuilder
(
'
check/review/record
'
,
'
check/review/record
'
),
//评价绩效核查信息
...
restBuilder
(
'
check/complain/record
'
,
'
check/complain/record
'
),
//投诉绩效核查信息
...
restBuilder
(
"
perform/rules/attend
"
,
"
perform/rules/attend
"
),
//考勤绩效规则信息表
...
restBuilder
(
'
check/gowork/record
'
,
'
check/gowork/record
'
),
//办件绩效核查信息
...
restBuilder
(
"
perform/rules/review
"
,
"
perform/rules/review
"
),
//评价绩效规则信息表
...
restBuilder
(
'
check/effect/record
'
,
'
check/effect/record
'
),
//效能绩效核查信息
...
restBuilder
(
"
perform/rules/gowork
"
,
"
perform/rules/gowork
"
),
//办件绩效规则信息表
...
restBuilder
(
'
check/other/record
'
,
'
check/other/record
'
),
//其它绩效核查信息
...
restBuilder
(
"
perform/rules/effect
"
,
"
perform/rules/effect
"
),
//效能绩效规则信息表
...
restBuilder
(
"
perform/rules/other
"
,
"
perform/rules/other
"
),
//其它绩效规则信息表
...
restBuilder
(
"
perform/attend/record
"
,
"
perform/attend/record
"
),
//考勤绩效记录信息
...
restBuilder
(
"
perform/review/record
"
,
"
perform/review/record
"
),
//评价绩效记录信息
//以下为基础路由配置
...
restBuilder
(
"
perform/complain/record
"
,
"
perform/complain/record
"
),
//投诉绩效记录信息
builder
(
'
blank
'
,
'
blank
'
),
...
restBuilder
(
"
perform/gowork/record
"
,
"
perform/gowork/record
"
),
//办件绩效记录信息
builder
(
''
,
'
Home
'
),
...
restBuilder
(
"
perform/effect/record
"
,
"
perform/effect/record
"
),
//效能绩效记录信息
builder
(
'
index
'
,
'
Home
'
),
...
restBuilder
(
"
perform/other/record
"
,
"
perform/other/record
"
),
//其它绩效记录信息
builder
(
'
login/updatePwd
'
,
'
login/updatePwd
'
),
builder
(
'
403
'
,
'
errors/403
'
),
...
restBuilder
(
"
check/attend/record
"
,
"
check/attend/record
"
),
//考勤绩效核查信息
builder
(
'
*
'
,
'
errors/404
'
),
...
restBuilder
(
"
check/review/record
"
,
"
check/review/record
"
),
//评价绩效核查信息
]
...
restBuilder
(
"
check/complain/record
"
,
"
check/complain/record
"
),
//投诉绩效核查信息
},
...
restBuilder
(
"
check/gowork/record
"
,
"
check/gowork/record
"
),
//办件绩效核查信息
]
...
restBuilder
(
"
check/effect/record
"
,
"
check/effect/record
"
),
//效能绩效核查信息
})
...
restBuilder
(
"
check/other/record
"
,
"
check/other/record
"
),
//其它绩效核查信息
// 360评估
...
restBuilder
(
"
homeCharts/record
"
,
"
homeCharts/record
"
),
//以下为基础路由配置
builder
(
"
blank
"
,
"
blank
"
),
builder
(
""
,
"
Home
"
),
builder
(
"
index
"
,
"
Home
"
),
builder
(
"
login/updatePwd
"
,
"
login/updatePwd
"
),
builder
(
"
403
"
,
"
errors/403
"
),
builder
(
"
*
"
,
"
errors/404
"
),
],
},
],
});
/**
/**
* rest路由生成器
* rest路由生成器
...
@@ -128,12 +141,12 @@ const router = new Router({
...
@@ -128,12 +141,12 @@ const router = new Router({
* @returns {array} [] reset路由数组,包含list/edit/add/view
* @returns {array} [] reset路由数组,包含list/edit/add/view
*/
*/
function
restBuilder
(
path
,
component
=
path
)
{
function
restBuilder
(
path
,
component
=
path
)
{
let
arr
=
[];
let
arr
=
[];
arr
.
push
(
builder
(
`
${
path
}
/list`
,
`
${
component
}
/list`
));
arr
.
push
(
builder
(
`
${
path
}
/list`
,
`
${
component
}
/list`
));
arr
.
push
(
builder
(
`
${
path
}
/edit`
,
`
${
component
}
/show`
));
arr
.
push
(
builder
(
`
${
path
}
/edit`
,
`
${
component
}
/show`
));
arr
.
push
(
builder
(
`
${
path
}
/add`
,
`
${
component
}
/show`
));
arr
.
push
(
builder
(
`
${
path
}
/add`
,
`
${
component
}
/show`
));
arr
.
push
(
builder
(
`
${
path
}
/view`
,
`
${
component
}
/view`
));
arr
.
push
(
builder
(
`
${
path
}
/view`
,
`
${
component
}
/view`
));
return
arr
;
return
arr
;
}
}
/**
/**
...
@@ -145,63 +158,68 @@ function restBuilder(path, component = path) {
...
@@ -145,63 +158,68 @@ function restBuilder(path, component = path) {
* @returns {any} {} 路由对象
* @returns {any} {} 路由对象
*/
*/
function
builder
(
path
,
component
=
path
,
requiresAuth
=
false
)
{
function
builder
(
path
,
component
=
path
,
requiresAuth
=
false
)
{
return
{
return
{
path
:
path
,
path
:
path
,
name
:
path
||
'
homepage
'
,
name
:
path
||
"
homepage
"
,
component
:
getComponent
(
component
),
component
:
getComponent
(
component
),
meta
:
{
meta
:
{
requiresAuth
:
requiresAuth
requiresAuth
:
requiresAuth
,
},
},
}
};
}
}
function
getComponent
(
fileName
)
{
function
getComponent
(
fileName
)
{
try
{
try
{
return
require
(
'
./views/
'
+
fileName
).
default
return
require
(
"
./views/
"
+
fileName
).
default
;
}
catch
(
error
)
{
}
catch
(
error
)
{
return
fileNotFound
;
return
fileNotFound
;
}
}
}
}
//检查是否跳转到sso地址
//检查是否跳转到sso地址
function
ssoCheck
(
to
,
from
,
next
)
{
function
ssoCheck
(
to
,
from
,
next
)
{
let
redirect
=
to
.
path
===
"
/login/updatePwd
"
?
"
/#/updatePwd
"
:
""
;
let
redirect
=
(
to
.
path
===
'
/login/updatePwd
'
)
?
'
/#/updatePwd
'
:
''
redirect
=
redirect
=
(
redirect
===
''
&&
to
.
path
===
'
/login
'
)
?
(
location
.
protocol
+
'
//
'
+
location
.
host
+
'
/#
'
+
from
.
fullPath
)
:
redirect
redirect
===
""
&&
to
.
path
===
"
/login
"
if
(
redirect
!=
''
)
{
?
location
.
protocol
+
"
//
"
+
location
.
host
+
"
/#
"
+
from
.
fullPath
next
(
false
)
:
redirect
;
window
.
location
.
href
=
'
//
'
+
location
.
host
+
'
/m/login/logout?redirect=
'
+
encodeURIComponent
(
redirect
)
if
(
redirect
!=
""
)
{
return
true
;
next
(
false
);
}
window
.
location
.
href
=
return
false
;
"
//
"
+
location
.
host
+
"
/m/login/logout?redirect=
"
+
encodeURIComponent
(
redirect
);
return
true
;
}
return
false
;
}
}
router
.
afterEach
(()
=>
{
router
.
afterEach
(()
=>
{
document
.
body
.
scrollTop
=
0
document
.
body
.
scrollTop
=
0
;
document
.
documentElement
.
scrollTop
=
0
document
.
documentElement
.
scrollTop
=
0
;
NProgress
.
done
()
NProgress
.
done
();
})
})
;
// 路由鉴权
// 路由鉴权
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
// if (ssoCheck(to, from, next)) { //sso鉴权检查
// if (ssoCheck(to, from, next)) { //sso鉴权检查
// return
// return
// }
// }
NProgress
.
start
()
NProgress
.
start
();
if
(
to
.
matched
.
some
(
record
=>
record
.
meta
.
requiresAuth
))
{
if
(
to
.
matched
.
some
((
record
)
=>
record
.
meta
.
requiresAuth
))
{
if
(
Store
.
state
.
isLogin
)
{
if
(
Store
.
state
.
isLogin
)
{
next
();
next
();
}
else
{
next
({
path
:
'
/authentication
'
,
query
:
{
redirect
:
to
.
fullPath
}
})
}
}
else
{
}
else
{
next
();
next
({
path
:
"
/authentication
"
,
query
:
{
redirect
:
to
.
fullPath
,
},
});
}
}
})
}
else
{
next
();
}
});
export
default
router
;
export
default
router
;
attendance-performance-manager-ui/admin/src/views/homeCharts/record/list.vue
0 → 100644
View file @
0c091c46
<
template
>
<div
class=
"page"
>
<div
class=
"left"
>
<div
class=
"left_top"
>
<div
class=
"title"
>
部门绩效总分排名TOP10
</div>
<dv-scroll-ranking-board
:config=
"config"
style=
"width:100%;height:93%"
/>
</div>
<div
class=
"left_mid"
></div>
<div
class=
"left_down"
></div>
</div>
<div
class=
"mid"
>
<div
class=
"mid_top"
>
<div
class=
"top_box one"
>
<div
class=
"title"
>
今年分值情况
</div>
<div
class=
"mid_content"
>
<div
class=
"content_top"
>
<p
class=
"content_text"
>
<span
class=
"txt"
>
初始扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
核查扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
<span
class=
"txt_small"
>
占比:87.21%
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
申诉分值
</span
><span
class=
"txt_num"
>
9856241
</span>
<span
class=
"txt_small"
>
占比:87.21%
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
累计扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
</p>
</div>
<div
class=
"content_down"
>
<div
class=
"down_left"
>
<div
class=
"num"
>
+65.32%
</div>
<p
class=
"down_text"
>
环比增长率
</p>
</div>
<div
class=
"down_right"
>
<div
class=
"num"
>
+65.32%
</div>
<p
class=
"down_text"
>
同比增长率
</p>
</div>
</div>
</div>
</div>
<div
class=
"top_box two"
>
<div
class=
"title"
>
本月分值情况
</div>
<div
class=
"mid_content"
>
<div
class=
"content_top"
>
<p
class=
"content_text"
>
<span
class=
"txt"
>
初始扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
核查扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
<span
class=
"txt_small"
>
占比:87.21%
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
申诉分值
</span
><span
class=
"txt_num"
>
9856241
</span>
<span
class=
"txt_small"
>
占比:87.21%
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
累计扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
</p>
</div>
<div
class=
"content_down"
>
<div
class=
"down_left"
>
<div
class=
"num"
>
+65.32%
</div>
<p
class=
"down_text"
>
环比增长率
</p>
</div>
<div
class=
"down_right"
>
<div
class=
"num"
>
+65.32%
</div>
<p
class=
"down_text"
>
同比增长率
</p>
</div>
</div>
</div>
</div>
<div
class=
"top_box three"
>
<div
class=
"title"
>
今日分值情况
</div>
<div
class=
"mid_content"
>
<div
class=
"content_top"
>
<p
class=
"content_text"
>
<span
class=
"txt"
>
初始扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
核查扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
<span
class=
"txt_small"
>
占比:87.21%
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
申诉分值
</span
><span
class=
"txt_num"
>
9856241
</span>
<span
class=
"txt_small"
>
占比:87.21%
</span>
</p>
<p
class=
"content_text"
>
<span
class=
"txt"
>
累计扣分
</span
><span
class=
"txt_num"
>
9856241
</span>
</p>
</div>
<div
class=
"content_down"
>
<div
class=
"down_left"
>
<div
class=
"num"
>
+65.32%
</div>
<p
class=
"down_text"
>
环比增长率
</p>
</div>
<div
class=
"down_right"
>
<div
class=
"num"
>
+65.32%
</div>
<p
class=
"down_text"
>
同比增长率
</p>
</div>
</div>
</div>
</div>
</div>
<div
class=
"mid_down"
>
<div
class=
"down_content"
>
<img
class=
"content_title"
src=
"../../../assets/images/title.png"
/>
<div
style=
"margin: 20px 0;"
>
<el-radio-group
v-model=
"radio1"
>
<el-radio-button
label=
"1"
>
部门评估
</el-radio-button>
<el-radio-button
label=
"2"
>
个人评估
</el-radio-button>
</el-radio-group>
</div>
<div
class=
"form"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"100px"
>
<el-form-item
label=
"请选择部门:"
>
<el-select
v-model=
"form.region"
placeholder=
"请选择部门"
style=
"width: 100%;"
>
<el-option
label=
"区域一"
value=
"shanghai"
></el-option>
<el-option
label=
"区域二"
value=
"beijing"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"请选择时间:"
>
<el-date-picker
type=
"date"
placeholder=
"选择日期"
v-model=
"form.date1"
style=
"width: 100%;"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"请选择类型:"
style=
"text-align: left;"
>
<el-radio-group
v-model=
"form.resource"
>
<el-radio
label=
"0"
>
按年
</el-radio>
<el-radio
label=
"1"
>
按月
</el-radio>
<el-radio
label=
"2"
>
按天
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"onSubmit"
style=
"margin-top: 20px;transform: translateX(-50%);"
>
立即创建
</el-button
>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
<div
class=
"right"
>
<div
class=
"right_top"
>
<div
class=
"title"
>
部门绩效总分排名TOP10
</div>
<dv-scroll-ranking-board
:config=
"config"
style=
"width:100%;height:93%"
/>
</div>
<div
class=
"right_mid"
></div>
<div
class=
"right_down"
></div>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
radio1
:
""
,
form
:
{
date1
:
""
,
type
:
[],
resource
:
""
,
},
config
:
{
data
:
[
{
name
:
"
周口
"
,
value
:
55
,
},
{
name
:
"
南阳
"
,
value
:
120
,
},
{
name
:
"
西峡
"
,
value
:
78
,
},
{
name
:
"
驻马店
"
,
value
:
66
,
},
{
name
:
"
新乡
"
,
value
:
80
,
},
{
name
:
"
信阳
"
,
value
:
45
,
},
{
name
:
"
漯河
"
,
value
:
29
,
},
],
},
};
},
mounted
()
{},
methods
:
{},
};
</
script
>
<
style
lang=
"less"
scoped
>
.page {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
overflow: hidden;
background: unset;
font-family: "微软雅黑 Bold", "微软雅黑 Regular", "微软雅黑", sans-serif;
.left,
.mid,
.right {
width: 24%;
height: 100%;
display: flex;
flex-direction: column;
}
.mid {
flex: 1;
justify-content: space-between;
.mid_top,
.mid_down {
width: 100%;
}
.mid_top {
padding: 0 10px;
height: 40%;
display: flex;
justify-content: space-around;
.top_box {
width: 31%;
height: 100%;
border-width: 2px;
padding: 12px;
border-style: solid;
border-color: rgba(255, 255, 255, 1);
border-radius: 8px;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
.title {
font-weight: 700;
font-style: normal;
font-size: 14px;
}
.mid_content {
width: 100%;
height: 100%;
color: #fff;
overflow: hidden;
.content_top {
width: 100%;
height: 70%;
display: flex;
justify-content: space-evenly;
flex-direction: column;
border-bottom: 2px solid rgb(240, 240, 240);
.content_text {
position: relative;
margin-bottom: 5px;
font-size: 14px;
.txt {
display: inline-block;
width: 30%;
}
.txt_num {
display: inline-block;
width: 70%;
text-align: right;
font-weight: 600;
}
.txt_small {
position: absolute;
right: 0;
top: 20px;
font-size: 12px;
}
}
}
.content_down {
width: 100%;
height: auto;
display: flex;
justify-content: space-between;
padding: 10px 0;
.down_left,
.down_right {
padding: 8px 0;
width: 50%;
height: 100%;
text-align: center;
.down_text {
font-size: 12px;
}
.num {
font-weight: 700;
font-style: normal;
font-size: 18px;
color: #ffffff;
}
}
.down_left {
border-right: 2px solid rgb(240, 240, 240);
}
}
}
}
.one {
background: linear-gradient(
180deg,
rgba(241, 189, 76, 1) 0%,
rgba(237, 133, 77, 1) 100%
);
.title {
color: #7d2d00;
}
}
.two {
background: linear-gradient(
180deg,
rgba(96, 155, 248, 1) 0%,
rgba(102, 135, 244, 1) 100%
);
.title {
color: #001c80;
}
}
.three {
background: linear-gradient(
180deg,
rgba(76, 201, 245, 1) 0%,
rgba(19, 149, 235, 1) 100%
);
.title {
color: #004679;
}
}
}
.mid_down {
width: 96%;
height: 58%;
border-radius: 8px;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
margin: 0 auto;
background: url(../../../assets/images/u10938.svg) no-repeat;
background-size: cover;
overflow: hidden;
.down_content {
width: 100%;
height: 100%;
text-align: center;
padding: 40px 30px 10px 30px;
.form {
width: 70%;
margin: 0 auto;
}
}
}
}
.left_top,
.left_mid,
.left_down,
.right_top,
.right_mid,
.right_down {
width: 100%;
height: 33%;
background: #fff;
border-radius: 8px;
padding: 10px;
.title {
font-weight: 600;
margin-bottom: 5px;
}
/deep/.info-name,
/deep/.ranking-value {
color: #000;
}
}
.left_mid,
.right_mid {
width: 100%;
height: 30%;
margin: 15px 0;
}
}
</
style
>
attendance-performance-manager-ui/admin/src/views/perform/staff/conf/list.vue
View file @
0c091c46
<
template
>
<
template
>
<div
class=
"page"
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
</LayoutTable>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
/** 表单弹出框模式需引入 */
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
export
default
{
name
:
"
PerformStaffConfList
"
,
name
:
"
PerformStaffConfList
"
,
components
:
{
components
:
{
drawerShow
drawerShow
,
},
},
mixins
:
[
table
],
mixins
:
[
table
],
created
()
{
created
()
{},
},
methods
:
{
methods
:
{
/** 重写新增方法 */
/** 重写新增方法 */
toAdd
(
row
)
{
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
this
.
$refs
.
drawerform
.
add
(
row
);
},
},
/** 重写编辑方法 */
/** 重写编辑方法 */
toEdit
(
row
)
{
toEdit
(
row
)
{
this
.
$refs
.
drawerform
.
edit
(
row
);
this
.
$refs
.
drawerform
.
edit
(
row
);
},
},
/** 重写查看方法 */
/** 重写查看方法 */
toView
(
row
)
{
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
},
data
()
{
},
return
{
data
()
{
config
:
{
return
{
isshowTabPane
:
true
,
config
:
{
search
:
[],
isshowTabPane
:
true
,
columns
:
[
search
:
[
{
type
:
"
selection
"
,
width
:
60
},
],
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
人员ids
"
,
prop
:
"
staffIds
"
},
{
label
:
"
人员ids
"
,
prop
:
"
staffIds
"
},
{
label
:
"
人员名称n
"
,
prop
:
"
staffNames
"
},
{
label
:
"
人员名称n
"
,
prop
:
"
staffNames
"
},
{
label
:
"
考核人总数
"
,
prop
:
"
staffCount
"
,
formatter
:
this
.
formatter
},
{
label
:
"
考核人总数
"
,
prop
:
"
staffCount
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
考勤绩效指标数量
"
,
prop
:
"
attendCount
"
,
formatter
:
this
.
formatter
},
{
label
:
"
考勤绩效指标数量
"
,
prop
:
"
attendCount
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
评价绩效指标数量
"
,
prop
:
"
assessCount
"
,
formatter
:
this
.
formatter
},
{
label
:
"
评价绩效指标数量
"
,
prop
:
"
assessCount
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
办件绩效指标数量
"
,
prop
:
"
workCount
"
,
formatter
:
this
.
formatter
},
{
label
:
"
办件绩效指标数量
"
,
prop
:
"
workCount
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
效能绩效指标数量
"
,
prop
:
"
effectCount
"
,
formatter
:
this
.
formatter
},
{
label
:
"
效能绩效指标数量
"
,
prop
:
"
effectCount
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
其它绩效指标数量
"
,
prop
:
"
otherCount
"
,
formatter
:
this
.
formatter
},
{
label
:
"
其它绩效指标数量
"
,
prop
:
"
otherCount
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
},
{
{
label
:
"
创建用户
"
,
label
:
"
操作
"
,
prop
:
"
createUserId
"
,
width
:
240
,
formatter
:
this
.
formatter
,
formatter
:
row
=>
{
},
return
(
{
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
label
:
"
操作
"
,
);
width
:
240
,
}
formatter
:
(
row
)
=>
{
}
return
(
]
<
table
-
buttons
}
noAdd
};
row
=
{
row
}
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
},
},
],
},
};
};
},
};
</
script
>
</
script
>
attendance-performance-manager-ui/admin/vue.config.js
View file @
0c091c46
...
@@ -17,7 +17,7 @@ module.exports = {
...
@@ -17,7 +17,7 @@ module.exports = {
hot
:
true
,
//自动保存
hot
:
true
,
//自动保存
proxy
:
{
proxy
:
{
'
/attendance
'
:
{
'
/attendance
'
:
{
target
:
'
http://1
27.0.0.1:17500
'
,
target
:
'
http://1
92.168.0.98:11039
'
,
changeOrigin
:
true
,
changeOrigin
:
true
,
secure
:
false
,
secure
:
false
,
cookieDomainRewrite
:
'
localhost
'
,
cookieDomainRewrite
:
'
localhost
'
,
...
...
attendance-performance-manager-ui/admin/yarn.lock
View file @
0c091c46
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
"resolved" "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.9.tgz?cache=0&sync_timestamp=1627804534988&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.14.9.tgz"
"resolved" "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.9.tgz?cache=0&sync_timestamp=1627804534988&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.14.9.tgz"
"version" "7.14.9"
"version" "7.14.9"
"@babel/core@
^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.
0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.9.6":
"@babel/core@
*", "@babel/core@^7.0.0", "@babel/core@^7.0.0-
0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.9.6":
"integrity" "sha1-IM33yEtdhtg/rIcQqLxgWnuj8BA="
"integrity" "sha1-IM33yEtdhtg/rIcQqLxgWnuj8BA="
"resolved" "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.8.tgz"
"resolved" "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.8.tgz"
"version" "7.14.8"
"version" "7.14.8"
...
@@ -872,7 +872,7 @@
...
@@ -872,7 +872,7 @@
"@babel/types" "^7.4.4"
"@babel/types" "^7.4.4"
"esutils" "^2.0.2"
"esutils" "^2.0.2"
"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4":
"@babel/runtime@^7.11.0", "@babel/runtime@^7.
5.5", "@babel/runtime@^7.
8.4":
"integrity" "sha1-cRmlb0IQGIUmlCkLn5FICXORtEY="
"integrity" "sha1-cRmlb0IQGIUmlCkLn5FICXORtEY="
"resolved" "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.8.tgz"
"resolved" "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.8.tgz"
"version" "7.14.8"
"version" "7.14.8"
...
@@ -982,6 +982,51 @@
...
@@ -982,6 +982,51 @@
"cssnano-preset-default" "^4.0.0"
"cssnano-preset-default" "^4.0.0"
"postcss" "^7.0.0"
"postcss" "^7.0.0"
"@jiaminghi/bezier-curve@*":
"integrity" "sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw=="
"resolved" "https://registry.npmjs.org/@jiaminghi/bezier-curve/-/bezier-curve-0.0.9.tgz"
"version" "0.0.9"
dependencies:
"@babel/runtime" "^7.5.5"
"@jiaminghi/c-render@^0.4.3":
"integrity" "sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q=="
"resolved" "https://registry.npmjs.org/@jiaminghi/c-render/-/c-render-0.4.3.tgz"
"version" "0.4.3"
dependencies:
"@babel/runtime" "^7.5.5"
"@jiaminghi/bezier-curve" "*"
"@jiaminghi/color" "*"
"@jiaminghi/transition" "*"
"@jiaminghi/charts@*":
"integrity" "sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA=="
"resolved" "https://registry.npmjs.org/@jiaminghi/charts/-/charts-0.2.18.tgz"
"version" "0.2.18"
dependencies:
"@babel/runtime" "^7.5.5"
"@jiaminghi/c-render" "^0.4.3"
"@jiaminghi/color@*":
"integrity" "sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg=="
"resolved" "https://registry.npmjs.org/@jiaminghi/color/-/color-1.1.3.tgz"
"version" "1.1.3"
"@jiaminghi/data-view@^2.10.0":
"integrity" "sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA=="
"resolved" "https://registry.npmjs.org/@jiaminghi/data-view/-/data-view-2.10.0.tgz"
"version" "2.10.0"
dependencies:
"@babel/runtime" "^7.5.5"
"@jiaminghi/charts" "*"
"@jiaminghi/transition@*":
"integrity" "sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg=="
"resolved" "https://registry.npmjs.org/@jiaminghi/transition/-/transition-1.1.11.tgz"
"version" "1.1.11"
dependencies:
"@babel/runtime" "^7.5.5"
"@jridgewell/gen-mapping@^0.1.0":
"@jridgewell/gen-mapping@^0.1.0":
"integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w=="
"integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w=="
"resolved" "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz"
"resolved" "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz"
...
@@ -1889,15 +1934,6 @@
...
@@ -1889,15 +1934,6 @@
dependencies:
dependencies:
"object.assign" "^4.1.0"
"object.assign" "^4.1.0"
"babel-plugin-jsx-v-model@^2.0.3":
"integrity" "sha512-SIx3Y3XxwGEz56Q1atwr5GaZsxJ2IRYmn5dl38LFkaTAvjnbNQxsZHO+ylJPsd+Hmv+ixJBYYFEekPBTHwiGfQ=="
"resolved" "https://registry.npmmirror.com/babel-plugin-jsx-v-model/-/babel-plugin-jsx-v-model-2.0.3.tgz"
"version" "2.0.3"
dependencies:
"babel-plugin-syntax-jsx" "^6.18.0"
"html-tags" "^2.0.0"
"svg-tags" "^1.0.0"
"babel-plugin-polyfill-corejs2@^0.2.2":
"babel-plugin-polyfill-corejs2@^0.2.2":
"integrity" "sha1-6RJHheb9lPlLYYp5VOVpMFO/Uyc="
"integrity" "sha1-6RJHheb9lPlLYYp5VOVpMFO/Uyc="
"resolved" "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622024057197&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz"
"resolved" "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622024057197&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz"
...
@@ -1922,11 +1958,6 @@
...
@@ -1922,11 +1958,6 @@
dependencies:
dependencies:
"@babel/helper-define-polyfill-provider" "^0.2.2"
"@babel/helper-define-polyfill-provider" "^0.2.2"
"babel-plugin-syntax-jsx@^6.18.0":
"integrity" "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw=="
"resolved" "https://registry.npmmirror.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz"
"version" "6.18.0"
"babel-runtime@6.x":
"babel-runtime@6.x":
"integrity" "sha1-llxwWGaOgrVde/4E/yM3vItWR/4="
"integrity" "sha1-llxwWGaOgrVde/4E/yM3vItWR/4="
"resolved" "https://registry.nlark.com/babel-runtime/download/babel-runtime-6.26.0.tgz?cache=0&sync_timestamp=1618911095190&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"
"resolved" "https://registry.nlark.com/babel-runtime/download/babel-runtime-6.26.0.tgz?cache=0&sync_timestamp=1618911095190&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz"
...
@@ -2951,7 +2982,7 @@
...
@@ -2951,7 +2982,7 @@
"resolved" "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz"
"resolved" "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz"
"version" "2.6.12"
"version" "2.6.12"
"core-js@^3
.6.5
":
"core-js@^3":
"version" "3.16.0"
"version" "3.16.0"
"core-js@3.8.1":
"core-js@3.8.1":
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment