29f6160b by xiaomiao

--no commit message

2 parents 61c6d9a4 7c233183
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-27 13:25:25
5 -->
1 # 安装依赖 6 # 安装依赖
2 npm install 7 npm install
3 # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 8 # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
...@@ -14,5 +19,6 @@ npm install --registry=https://registry.npm.taobao.org ...@@ -14,5 +19,6 @@ npm install --registry=https://registry.npm.taobao.org
14 - `docs` 文档/注释 19 - `docs` 文档/注释
15 - `chore` 依赖更新/脚手架配置修改等 20 - `chore` 依赖更新/脚手架配置修改等
16 - `wip` 开发中 21 - `wip` 开发中
17 22
18 23 ## 项目换肤
24 给html根标签设置一个data-theme属性,然后通过js切换data-theme的属性值,Scss根据此属性来判断使用对应主题变量
...\ No newline at end of file ...\ No newline at end of file
......
1 { 1 {
2 "TITLE": "汉中市数据上报系统", 2 "TITLE": "汉中市数据上报系统",
3 "THEME": "sb", 3 "THEME": "sb",
4 "CODE": "BDCSBPT", 4 "CODE": "BDCJGPT",
5 "SERVERAPI": "/bdcsjsb", 5 "SERVERAPI": "/bdcsjsb",
6 "MANAGEMENTAPI": "http://192.168.2.38:8090/management" 6 "MANAGEMENTAPI": "http://192.168.2.38:8090/management"
7 } 7 }
...\ No newline at end of file ...\ No newline at end of file
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-27 09:53:16
5 */
1 import dialogBox from '@/components/DialogBox' 6 import dialogBox from '@/components/DialogBox'
2 import LbTable from '@/components/LbTable' 7 import LbTable from '@/components/LbTable'
3 import Theme from '@/components/Theme.vue'
4 import Breadcrumb from "@/components/Breadcrumb.vue"; 8 import Breadcrumb from "@/components/Breadcrumb.vue";
5 // 引入按钮 9 // 引入按钮
6 import btn from '@/components/Button.vue' 10 import btn from '@/components/Button.vue'
...@@ -12,8 +16,6 @@ export default { ...@@ -12,8 +16,6 @@ export default {
12 Vue.component('Breadcrumb', Breadcrumb); 16 Vue.component('Breadcrumb', Breadcrumb);
13 Vue.component('btn', btn); 17 Vue.component('btn', btn);
14 Vue.component('lbTable', LbTable); 18 Vue.component('lbTable', LbTable);
15 Vue.component('Theme', Theme);
16 Vue.prototype.$popup = Popup.install;
17 Vue.prototype.$alertMes = MessageBox.alert; 19 Vue.prototype.$alertMes = MessageBox.alert;
18 } 20 }
19 } 21 }
...\ No newline at end of file ...\ No newline at end of file
......
1 <template>
2 <el-color-picker v-model="theme"
3 :predefine="['#409EFF', '#1890ff', '#304156', '#212121', '#11a983', '#13c2c2', '#6959CD', '#f5222d',]"
4 class="theme-picker" popper-class="theme-picker-dropdown" />
5 </template>
6
7 <script>
8 const version = require('element-ui/package.json').version // element-ui version from node_modules
9 const ORIGINAL_THEME = '#409EFF' // default color
10
11 export default {
12 data () {
13 return {
14 chalk: '', // content of theme-chalk css
15 theme: ''
16 }
17 },
18 computed: {
19 defaultTheme () {
20 return this.$store.state.app.theme
21 }
22 },
23 watch: {
24 defaultTheme: {
25 handler: function (val, oldVal) {
26 this.theme = val
27 },
28 immediate: true
29 },
30 async theme (val) {
31 const oldVal = this.chalk ? this.theme : ORIGINAL_THEME
32 if (typeof val !== 'string') return
33 const themeCluster = this.getThemeCluster(val.replace('#', ''))
34 const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))
35 const $message = this.$message({
36 message: ' Compiling the theme',
37 customClass: 'theme-message',
38 type: 'success',
39 duration: 0,
40 iconClass: 'el-icon-loading'
41 })
42
43 const getHandler = (variable, id) => {
44 return () => {
45 const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))
46 const newStyle = this.updateStyle(this[variable], originalCluster, themeCluster)
47
48 let styleTag = document.getElementById(id)
49 if (!styleTag) {
50 styleTag = document.createElement('style')
51 styleTag.setAttribute('id', id)
52 document.head.appendChild(styleTag)
53 }
54 styleTag.innerText = newStyle
55 }
56 }
57
58 if (!this.chalk) {
59 const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`
60 await this.getCSSString(url, 'chalk')
61 }
62
63 const chalkHandler = getHandler('chalk', 'chalk-style')
64
65 chalkHandler()
66
67 const styles = [].slice.call(document.querySelectorAll('style'))
68 .filter(style => {
69 const text = style.innerText
70 return new RegExp(oldVal, 'i').test(text) && !/Chalk Variables/.test(text)
71 })
72 styles.forEach(style => {
73 const { innerText } = style
74 if (typeof innerText !== 'string') return
75 style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)
76 })
77
78 this.$emit('change', val)
79
80 $message.close()
81 }
82 },
83
84 methods: {
85 updateStyle (style, oldCluster, newCluster) {
86 let newStyle = style
87 oldCluster.forEach((color, index) => {
88 newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])
89 })
90 return newStyle
91 },
92
93 getCSSString (url, variable) {
94 return new Promise(resolve => {
95 const xhr = new XMLHttpRequest()
96 xhr.onreadystatechange = () => {
97 if (xhr.readyState === 4 && xhr.status === 200) {
98 this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')
99 resolve()
100 }
101 }
102 xhr.open('GET', url)
103 xhr.send()
104 })
105 },
106
107 getThemeCluster (theme) {
108 const tintColor = (color, tint) => {
109 let red = parseInt(color.slice(0, 2), 16)
110 let green = parseInt(color.slice(2, 4), 16)
111 let blue = parseInt(color.slice(4, 6), 16)
112
113 if (tint === 0) { // when primary color is in its rgb space
114 return [red, green, blue].join(',')
115 } else {
116 red += Math.round(tint * (255 - red))
117 green += Math.round(tint * (255 - green))
118 blue += Math.round(tint * (255 - blue))
119
120 red = red.toString(16)
121 green = green.toString(16)
122 blue = blue.toString(16)
123
124 return `#${red}${green}${blue}`
125 }
126 }
127
128 const shadeColor = (color, shade) => {
129 let red = parseInt(color.slice(0, 2), 16)
130 let green = parseInt(color.slice(2, 4), 16)
131 let blue = parseInt(color.slice(4, 6), 16)
132
133 red = Math.round((1 - shade) * red)
134 green = Math.round((1 - shade) * green)
135 blue = Math.round((1 - shade) * blue)
136
137 red = red.toString(16)
138 green = green.toString(16)
139 blue = blue.toString(16)
140
141 return `#${red}${green}${blue}`
142 }
143
144 const clusters = [theme]
145 for (let i = 0; i <= 9; i++) {
146 clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))
147 }
148 clusters.push(shadeColor(theme, 0.1))
149 return clusters
150 }
151 }
152 }
153 </script>
154
155 <style>
156 .theme-message,
157 .theme-picker-dropdown {
158 z-index: 99999 !important;
159 }
160
161 .theme-picker .el-color-picker__trigger {
162 height: 26px !important;
163 width: 26px !important;
164 padding: 2px;
165 }
166
167 .theme-picker-dropdown .el-color-dropdown__link-btn {
168 display: none;
169 }
170 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-03-24 17:10:32 4 * @LastEditTime: 2023-03-27 14:09:57
5 --> 5 -->
6 <template> 6 <template>
7 <div> 7 <div>
...@@ -48,9 +48,6 @@ export default { ...@@ -48,9 +48,6 @@ export default {
48 asyncRoutes () { 48 asyncRoutes () {
49 return asyncRoutes 49 return asyncRoutes
50 } 50 }
51 },
52 mounted () {
53 console.log(this.permission_routes.slice(5), 'permission_routes');
54 } 51 }
55 } 52 }
56 </script> 53 </script>
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
3 <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll"> 3 <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
4 <router-link v-for="tag in visitedViews" ref="tag" :key="tag.path" :class="isActive(tag) ? 'active' : ''" 4 <router-link v-for="tag in visitedViews" ref="tag" :key="tag.path" :class="isActive(tag) ? 'active' : ''"
5 :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" tag="span" class="tags-view-item" 5 :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" tag="span" class="tags-view-item"
6 @click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''" @contextmenu.prevent.native="openMenu(tag, $event)"> 6 @click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''"
7 @contextmenu.prevent.native="openMenu(tag, $event)">
7 {{ tag.title }} 8 {{ tag.title }}
8 <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" /> 9 <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
9 </router-link> 10 </router-link>
...@@ -190,30 +191,32 @@ export default { ...@@ -190,30 +191,32 @@ export default {
190 </script> 191 </script>
191 192
192 <style lang="scss" scoped> 193 <style lang="scss" scoped>
194 @import "~@/styles/_handle.scss";
195
193 .tags-view-container { 196 .tags-view-container {
194 height: 40px; 197 height: 40px;
195 width: 100%; 198 width: 100%;
196 background: #fff; 199 background: #fff;
197 border-bottom: 1px solid #d8dce5; 200 border-bottom: 1px solid #d8dce5;
198 box-sizing: border-box; 201 box-sizing: border-box;
199 padding-top: 3px; 202 padding-top: 2px;
200 box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04); 203 margin-bottom: 7px;
201 margin-bottom: 5px; 204 border-radius: 4px;
202 205
203 .tags-view-wrapper { 206 .tags-view-wrapper {
204 .tags-view-item { 207 .tags-view-item {
205 display: inline-block; 208 display: inline-block;
206 position: relative; 209 position: relative;
207 cursor: pointer; 210 cursor: pointer;
208 height: 26px;
209 line-height: 26px; 211 line-height: 26px;
210 border: 1px solid #d8dce5; 212 color: #4A4A4A;
211 color: #495060; 213 @include font_color("tagsText");
212 background: #fff;
213 padding: 0 8px; 214 padding: 0 8px;
214 font-size: 12px; 215 font-size: 12px;
215 margin-left: 5px; 216 margin-left: 5px;
216 margin-top: 4px; 217 margin-top: 4px;
218 border-radius: 4px;
219 @include borderColor("tagsBorderColor");
217 220
218 &:first-of-type { 221 &:first-of-type {
219 margin-left: 15px; 222 margin-left: 15px;
...@@ -224,13 +227,13 @@ export default { ...@@ -224,13 +227,13 @@ export default {
224 } 227 }
225 228
226 &.active { 229 &.active {
227 background-color: #0794FF; 230 @include background("tagsBg");
228 color: #fff; 231 @include borderColor("tagsActiveText");
229 border-color: #0794FF; 232 @include font_color("tagsActiveText");
230 233
231 &::before { 234 &::before {
232 content: ''; 235 content: '';
233 background: #fff; 236 @include background("tagsActiveText");
234 display: inline-block; 237 display: inline-block;
235 width: 8px; 238 width: 8px;
236 height: 8px; 239 height: 8px;
......
1 /* 1
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-27 14:25:19
5 */
6 import Vue from 'vue' 2 import Vue from 'vue'
7 import router from "./router"; 3 import router from "./router";
8 import store from "./store"; 4 import store from "./store";
...@@ -16,7 +12,6 @@ NProgress.configure({ showSpinner: false }); ...@@ -16,7 +12,6 @@ NProgress.configure({ showSpinner: false });
16 router.beforeEach(async (to, from, next) => { 12 router.beforeEach(async (to, from, next) => {
17 getTheme() 13 getTheme()
18 NProgress.start(); 14 NProgress.start();
19 window.document.documentElement.setAttribute("data-theme", 'blue');
20 document.title = getPageTitle(to.meta.title); 15 document.title = getPageTitle(to.meta.title);
21 let hasAddDict = store.state.dict.addDict; 16 let hasAddDict = store.state.dict.addDict;
22 let hasUser = store.state.user.hasUser; 17 let hasUser = store.state.user.hasUser;
...@@ -25,6 +20,7 @@ router.beforeEach(async (to, from, next) => { ...@@ -25,6 +20,7 @@ router.beforeEach(async (to, from, next) => {
25 localStorage.removeItem("token"); 20 localStorage.removeItem("token");
26 next(); 21 next();
27 } else { 22 } else {
23 window.document.documentElement.setAttribute("data-theme", 'blue');
28 let code = Vue.prototype.BASE_API.CODE 24 let code = Vue.prototype.BASE_API.CODE
29 //判断token是否存在 25 //判断token是否存在
30 const hasToken = localStorage.getItem("token"); 26 const hasToken = localStorage.getItem("token");
...@@ -36,6 +32,7 @@ router.beforeEach(async (to, from, next) => { ...@@ -36,6 +32,7 @@ router.beforeEach(async (to, from, next) => {
36 if (hasAddRoute) { 32 if (hasAddRoute) {
37 next(); 33 next();
38 } else { 34 } else {
35
39 //请求菜单 36 //请求菜单
40 const { result: getMenuData } = (await getMenuInfo(code)) || []; 37 const { result: getMenuData } = (await getMenuInfo(code)) || [];
41 const accessRoutes = await store.dispatch( 38 const accessRoutes = await store.dispatch(
...@@ -55,6 +52,7 @@ router.beforeEach(async (to, from, next) => { ...@@ -55,6 +52,7 @@ router.beforeEach(async (to, from, next) => {
55 } else { 52 } else {
56 next(); 53 next();
57 } 54 }
55
58 } 56 }
59 } else { 57 } else {
60 if (code == 'BDCSBPT') { 58 if (code == 'BDCSBPT') {
......
...@@ -20,6 +20,15 @@ ...@@ -20,6 +20,15 @@
20 @function themed($key) { 20 @function themed($key) {
21 @return map-get($theme-map, $key); 21 @return map-get($theme-map, $key);
22 } 22 }
23
24 //获取边框颜色
25 @mixin borderColor($color) {
26 @include themeify {
27 border: 1px solid themed($color) !important;
28 }
29 }
30
31
23 //获取渐变背景 32 //获取渐变背景
24 @mixin background($color) { 33 @mixin background($color) {
25 @include themeify { 34 @include themeify {
...@@ -33,9 +42,10 @@ ...@@ -33,9 +42,10 @@
33 background-color: themed($color) !important; 42 background-color: themed($color) !important;
34 } 43 }
35 } 44 }
45
36 //获取字体颜色 46 //获取字体颜色
37 @mixin font_color($color) { 47 @mixin font_color($color) {
38 @include themeify { 48 @include themeify {
39 color: themed($color)!important; 49 color: themed($color) !important;
40 } 50 }
41 } 51 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -7,15 +7,25 @@ $themes: (blue: ( //背景 ...@@ -7,15 +7,25 @@ $themes: (blue: ( //背景
7 menuActiveText: #4162D8, 7 menuActiveText: #4162D8,
8 // 没有子集 8 // 没有子集
9 submenuBg: #3D59C4, 9 submenuBg: #3D59C4,
10 submenuColor: #FFFFFF 10 submenuColor: #FFFFFF,
11 // tags
12 tagsBorderColor: #E5E5E5,
13 tagsBg: rgba(65, 98, 216, 0.1),
14 tagsText: #4A4A4A,
15 tagsActiveText: #4162D8,
16 // 操纵btn
17 btnBg: #4162D8,
18 btnColor: #4162D8,
19 // table样式相关
20 pagBg:rgba(65, 98, 216, 0.1),
21 pagBorderColor: #D9D9D9,
22 pagText: #4A4A4A,
23 pagActiveText: #4162D8,
11 ), 24 ),
12 25
13 green: ( 26 green: (navbg: #0F8B80,
14 navbg: #0F8B80,
15 menuBg:#121A2E, 27 menuBg:#121A2E,
16 menuActive: linear-gradient(90deg, rgba(61,90,198,0.7) 0%, rgba(61,90,198,0) 100%), 28 menuActive: linear-gradient(90deg, rgba(61, 90, 198, 0.7) 0%, rgba(61, 90, 198, 0) 100%),
17 //字体 29 //字体
18 menuText: #A1A7C2, 30 menuText: #A1A7C2,
19 menuActiveText: #FFFFFF
20 )
21 )
...\ No newline at end of file ...\ No newline at end of file
31 menuActiveText: #FFFFFF))
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 **/ 4 **/
5 5
6 /* theme color */ 6 /* theme color */
7 $--color-primary: #0F93F6; 7 $--color-primary: #4162D8;
8 $--color-success: #67C23B; 8 $--color-success: #67C23B;
9 $--color-warning: #E6A23C; 9 $--color-warning: #E6A23C;
10 $--color-danger: #F46C6C; 10 $--color-danger: #F46C6C;
......
...@@ -9,12 +9,6 @@ ...@@ -9,12 +9,6 @@
9 line-height: 16px; 9 line-height: 16px;
10 } 10 }
11 11
12 //input
13 .el-input__inner {
14 color: #FFFFFF !important;
15 padding: 0 7px !important;
16 }
17
18 // input 样式 12 // input 样式
19 // 全局css 加上以下代码,可以隐藏上下箭头 13 // 全局css 加上以下代码,可以隐藏上下箭头
20 14
...@@ -429,10 +423,6 @@ table td { ...@@ -429,10 +423,6 @@ table td {
429 background: color #074487; 423 background: color #074487;
430 } 424 }
431 425
432 .el-input__inner {
433 background-color: #074487;
434 }
435
436 .el-input.is-disabled .el-input__inner { 426 .el-input.is-disabled .el-input__inner {
437 background-color: #074487; 427 background-color: #074487;
438 } 428 }
......
...@@ -53,6 +53,12 @@ ...@@ -53,6 +53,12 @@
53 background-color: rgba(0, 0, 0, 0); 53 background-color: rgba(0, 0, 0, 0);
54 } 54 }
55 55
56 //input
57 .el-input__inner {
58 color: #FFFFFF !important;
59 padding: 0 7px !important;
60 }
61
56 // 查询表单样式 62 // 查询表单样式
57 .from-clues { 63 .from-clues {
58 height: 100%; 64 height: 100%;
...@@ -77,7 +83,7 @@ ...@@ -77,7 +83,7 @@
77 .el-input__inner { 83 .el-input__inner {
78 background: #07388B; 84 background: #07388B;
79 border-radius: 2px; 85 border-radius: 2px;
80 color: #CEF8FF !important; 86 color: #7A7A7A !important;
81 border: 1px solid #6BC1FC; 87 border: 1px solid #6BC1FC;
82 } 88 }
83 89
...@@ -1013,6 +1019,7 @@ ...@@ -1013,6 +1019,7 @@
1013 .selbig { 1019 .selbig {
1014 width: 500px; 1020 width: 500px;
1015 } 1021 }
1022
1016 } 1023 }
1017 1024
1018 // 弹框中间区域样式 1025 // 弹框中间区域样式
...@@ -1080,3 +1087,4 @@ ...@@ -1080,3 +1087,4 @@
1080 text-align: center; 1087 text-align: center;
1081 } 1088 }
1082 } 1089 }
1090
......
1 @import "~@/styles/_handle.scss";
2
1 // cover some element-ui styles 3 // cover some element-ui styles
2 .el-breadcrumb__inner, 4 .el-breadcrumb__inner,
3 .el-breadcrumb__inner a { 5 .el-breadcrumb__inner a {
...@@ -172,6 +174,25 @@ input[type="number"] { ...@@ -172,6 +174,25 @@ input[type="number"] {
172 color: #4A4A4A; 174 color: #4A4A4A;
173 } 175 }
174 176
177 .el-pagination.is-background .btn-prev,
178 .el-pagination.is-background .btn-next,
179 .el-pagination.is-background .el-pager li {
180 @include borderColor("pagBorderColor");
181 background-color: #FFFFFF;
182 @include font_color("pagText");
183 }
184
185 .el-pagination.is-background .el-pager li:not(.disabled).active {
186 @include background("pagBg");
187 border-radius: 4px;
188 @include font_color("pagActiveText");
189 @include borderColor("pagActiveText");
190 }
191
192 .el-table__header th {
193 background-color: #F1F3F7 !important;
194 }
195
175 .el-table tr td { 196 .el-table tr td {
176 font-size: 14px; 197 font-size: 14px;
177 color: #7A7A7A; 198 color: #7A7A7A;
...@@ -197,4 +218,4 @@ input[type="number"] { ...@@ -197,4 +218,4 @@ input[type="number"] {
197 218
198 .el-form-item__content { 219 .el-form-item__content {
199 flex: 1; 220 flex: 1;
200 } 221 }
...\ No newline at end of file ...\ No newline at end of file
......
1 @import '~@/styles/sbElement-ui.scss'; 1 @import '~@/styles/sbElement-ui.scss';
2 @import "~@/styles/_handle.scss";
3
4 //input
5 .el-input__inner {
6 color: #7A7A7A !important;
7 padding: 0 7px !important;
8 }
2 9
3 10
4 .from-clues { 11 .from-clues {
...@@ -10,7 +17,7 @@ ...@@ -10,7 +17,7 @@
10 17
11 &-header { 18 &-header {
12 width: 100%; 19 width: 100%;
13 padding: 15px; 20 padding: 7px 15px 10px 15px;
14 box-sizing: border-box; 21 box-sizing: border-box;
15 background-size: 100% 100%; 22 background-size: 100% 100%;
16 background: #FFFFFF; 23 background: #FFFFFF;
...@@ -97,7 +104,7 @@ ...@@ -97,7 +104,7 @@
97 .cx { 104 .cx {
98 width: 86px; 105 width: 86px;
99 height: 32px; 106 height: 32px;
100 background-color: #4162D8; 107 @include background_color("btnBg");
101 color: white; 108 color: white;
102 border: none; 109 border: none;
103 } 110 }
...@@ -105,7 +112,7 @@ ...@@ -105,7 +112,7 @@
105 .cx:hover { 112 .cx:hover {
106 width: 86px; 113 width: 86px;
107 height: 32px; 114 height: 32px;
108 background-color: #4162D8; 115 @include background_color("btnBg");
109 color: white; 116 color: white;
110 border: none; 117 border: none;
111 } 118 }
...@@ -114,8 +121,7 @@ ...@@ -114,8 +121,7 @@
114 width: 86px; 121 width: 86px;
115 height: 32px; 122 height: 32px;
116 background-color: white; 123 background-color: white;
117 color: #4162D8; 124 @include font_color("btnColor");
118
119 border: 1px solid rgba(65, 98, 216, 0.3); 125 border: 1px solid rgba(65, 98, 216, 0.3);
120 } 126 }
121 127
...@@ -123,24 +129,18 @@ ...@@ -123,24 +129,18 @@
123 width: 86px; 129 width: 86px;
124 height: 32px; 130 height: 32px;
125 background-color: white; 131 background-color: white;
126 color: #4162D8; 132 @include font_color("btnColor");
127 border: 1px solid rgba(65, 98, 216, 0.3); 133 border: 1px solid rgba(65, 98, 216, 0.3);
128 } 134 }
129 135
130 .el-button:focus {
131 // background: none;
132 }
133
134 .cx:focus { 136 .cx:focus {
135 color: white; 137 color: white;
136 background-color: #4162D8; 138 @include background_color("btnBg");
137 background-size: cover; 139 background-size: cover;
138 } 140 }
139 141
140 .cz:focus { 142 .cz:focus {
141 color: #4162D8;
142 background-color: white; 143 background-color: white;
143 ;
144 background-size: cover; 144 background-size: cover;
145 } 145 }
146 146
......
...@@ -9,7 +9,7 @@ $yellow:#FEC171; ...@@ -9,7 +9,7 @@ $yellow:#FEC171;
9 $panGreen: #30B08F; 9 $panGreen: #30B08F;
10 10
11 // header 11 // header
12 $headerHeight: 74px; 12 $headerHeight: 72px;
13 13
14 // sidebar 14 // sidebar
15 $menuText:#ffffff; 15 $menuText:#ffffff;
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
15 <el-input type="password" class="password" v-model="user.password" placeholder="请输入密码" 15 <el-input type="password" class="password" v-model="user.password" placeholder="请输入密码"
16 show-password></el-input> 16 show-password></el-input>
17 </el-form-item> 17 </el-form-item>
18 <!-- <el-form-item prop="yz"> 18 <el-form-item prop="yz">
19 <div class="flex-container"> 19 <div class="flex-container">
20 <div class="flex-input"> 20 <div class="flex-input">
21 <el-input class="yz" @keyup.native="login('user')" v-model="user.yz" placeholder="请输入验证码"></el-input> 21 <el-input class="yz" @keyup.native="login('user')" v-model="user.yz" placeholder="请输入验证码"></el-input>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
26 <font id="renovate" @click="verification">换一批</font> 26 <font id="renovate" @click="verification">换一批</font>
27 </div> 27 </div>
28 </div> 28 </div>
29 </el-form-item> --> 29 </el-form-item>
30 <el-form-item class="login-btn"> 30 <el-form-item class="login-btn">
31 <el-button type="primary" style="width: 100%" @click="login('user')">登录</el-button> 31 <el-button type="primary" style="width: 100%" @click="login('user')">登录</el-button>
32 </el-form-item> 32 </el-form-item>
...@@ -244,9 +244,7 @@ export default { ...@@ -244,9 +244,7 @@ export default {
244 .login-inner-bg { 244 .login-inner-bg {
245 background: white; 245 background: white;
246 width: 24.6%; 246 width: 24.6%;
247 height: 47%;
248 min-width: 360px; 247 min-width: 360px;
249 min-height: 380px;
250 top: 30%; 248 top: 30%;
251 right: 38%; 249 right: 38%;
252 position: absolute; 250 position: absolute;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
3 <!-- 表单部分 --> 3 <!-- 表单部分 -->
4 <div class="from-clues-header"> 4 <div class="from-clues-header">
5 <el-form @submit.native.prevent :model="ruleForm" label-width="120px"> 5 <el-form @submit.native.prevent :model="ruleForm" label-width="120px">
6 <el-form-item v-if="BASE_API.THEME=='jg'"> 6 <el-form-item v-if="BASE_API.THEME == 'jg'">
7 <Breadcrumb /> 7 <Breadcrumb />
8 </el-form-item> 8 </el-form-item>
9 <el-row :gutter="20" class="mb-5"> 9 <el-row :gutter="20" class="mb-5">
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 * @Author: xiaomiao 1158771342@qq.com 2 * @Author: xiaomiao 1158771342@qq.com
3 * @Date: 2023-03-09 20:54:28 3 * @Date: 2023-03-09 20:54:28
4 * @LastEditors: xiaomiao 1158771342@qq.com 4 * @LastEditors: xiaomiao 1158771342@qq.com
5 * @LastEditTime: 2023-03-16 19:40:40 5 * @LastEditTime: 2023-03-27 14:26:49
6 * @FilePath: \上报\bdcjg-web\src\views\system\information\index.vue 6 * @FilePath: \上报\bdcjg-web\src\views\system\information\index.vue
7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE 7 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8 --> 8 -->
...@@ -67,26 +67,5 @@ ...@@ -67,26 +67,5 @@
67 </script> 67 </script>
68 68
69 <style scoped lang="scss"> 69 <style scoped lang="scss">
70 .information { 70 @import "~@/styles/mixin.scss";
71 display: flex;
72 flex-direction: column;
73 .btnColRight {
74 margin-top: 10px;
75 display: flex;
76 justify-content: center;
77 // background-color: cadetblue;
78 height: 30px;
79 }
80 /deep/.content {
81 .el-input__inner {
82 background: none;
83 }
84 .user-info {
85 background: none;
86 }
87 }
88 .boxin {
89 flex: 1;
90 }
91 }
92 </style> 71 </style>
......
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-03-27 10:27:32
5 */
1 import filter from '@/utils/filter.js' 6 import filter from '@/utils/filter.js'
2 class data extends filter { 7 class data extends filter {
3 constructor() { 8 constructor() {
...@@ -17,7 +22,8 @@ class data extends filter { ...@@ -17,7 +22,8 @@ class data extends filter {
17 }, 22 },
18 { 23 {
19 prop: "cronExpression", 24 prop: "cronExpression",
20 label: "cron表达式" 25 label: "cron表达式",
26 width: 160,
21 }, 27 },
22 { 28 {
23 prop: "beanName", 29 prop: "beanName",
...@@ -34,7 +40,7 @@ class data extends filter { ...@@ -34,7 +40,7 @@ class data extends filter {
34 render: (h, scope) => { 40 render: (h, scope) => {
35 return ( 41 return (
36 <div> 42 <div>
37 { this.stateStatus(scope.row.jobStatus) } 43 {this.stateStatus(scope.row.jobStatus)}
38 </div> 44 </div>
39 ) 45 )
40 }, 46 },
......
...@@ -38,375 +38,379 @@ ...@@ -38,375 +38,379 @@
38 </div> 38 </div>
39 </template> 39 </template>
40 <script> 40 <script>
41 import { 41 import {
42 getUuid, 42 getUuid,
43 judgeSort, 43 judgeSort,
44 realMove, 44 realMove,
45 findParents, 45 findParents,
46 removeTreeListItem, 46 removeTreeListItem,
47 } from "@/utils/operation"; 47 } from "@/utils/operation";
48 import { 48 import {
49 resetPassword, 49 resetPassword,
50 getUserList, getUserLists 50 getUserList, getUserLists
51 } from "@/api/personnelManage"; 51 } from "@/api/personnelManage";
52 import { api, deleteAction, getAction } from '@/api/manageApi' 52 import { api, deleteAction, getAction } from '@/api/manageApi'
53 import data from "./data"; 53 import data from "./data";
54 import { deleteDomStr } from '@/utils/proDomStr' 54 import { deleteDomStr } from '@/utils/proDomStr'
55 import tableMixin from "@/mixins/tableMixin.js"; 55 import tableMixin from "@/mixins/tableMixin.js";
56 import EditDialog from "./edit-dialog.vue"; 56 import EditDialog from "./edit-dialog.vue";
57 import { updateOrder } from "@/api/orders" 57 import { updateOrder } from "@/api/orders"
58 export default { 58 export default {
59 name: "menus", 59 name: "menus",
60 mixins: [tableMixin], 60 mixins: [tableMixin],
61 components: { 61 components: {
62 EditDialog, 62 EditDialog,
63 }, 63 },
64 data () { 64 data () {
65 return { 65 return {
66 isDialog: false, 66 isDialog: false,
67 taskData: null, 67 taskData: null,
68 keyList: [], 68 keyList: [],
69 form: { 69 form: {
70 loginName: "", 70 loginName: "",
71 name: "", 71 name: "",
72 code: "", 72 code: "",
73 },
74 queryParam: {},
75 selectType: "0",
76 queryName: "",
77 organizationId: "", // 组织机构ID
78 departmentId: "", // 部门ID
79 departmentList: [], // 部门列表
80 levelList: [], // 职务级别
81 sexList: [],
82 typeOptions: [
83 {
84 value: "0",
85 label: "姓名",
73 }, 86 },
74 queryParam: {}, 87 {
75 selectType: "0", 88 value: "1",
76 queryName: "", 89 label: "工号",
77 organizationId: "", // 组织机构ID 90 },
78 departmentId: "", // 部门ID 91 {
79 departmentList: [], // 部门列表 92 value: "2",
80 levelList: [], // 职务级别 93 label: "部门",
81 sexList: [], 94 },
82 typeOptions: [ 95 {
83 { 96 value: "3",
84 value: "0", 97 label: "机构",
85 label: "姓名", 98 },
86 }, 99 ],
87 { 100
88 value: "1", 101 selectionList: [],
89 label: "工号", 102 tableData: {
90 }, 103 columns: [
91 {
92 value: "2",
93 label: "部门",
94 },
95 { 104 {
96 value: "3", 105 label: "序号",
97 label: "机构", 106 type: "index",
107 width: "50",
108 index: this.indexMethod,
98 }, 109 },
99 ], 110 ]
111 .concat(data.columns())
112 .concat([
113 {
114 label: "职位",
115 render: (h, scope) => {
116 return (
117 <div v-show={scope.row.jobLevel !== null}>{scope.row.jobLevel ? "干事" : "经理"}</div>
118 )
100 119
101 selectionList: [], 120 }
102 tableData: { 121 },
103 columns: [
104 { 122 {
105 label: "序号", 123 label: "负责人",
106 type: "index", 124 render: (h, scope) => {
107 width: "50", 125 return (
108 index: this.indexMethod, 126 <i v-show={scope.row.isDuty !== null} class="el-icon-check" />
127 )
128 }
109 }, 129 },
110 ] 130 {
111 .concat(data.columns()) 131 label: "排序",
112 .concat([ 132 width: 300,
113 { 133 render: (h, scope) => {
114 label: "职位", 134 return (
115 render: (h, scope) => { 135 <div>
116 return ( 136 <el-button
117 <div v-show={scope.row.jobLevel !== null}>{scope.row.jobLevel ? "干事" : "经理"}</div> 137 type="text"
118 ) 138 class='movebtnColor'
119 139 disabled={scope.row.isTop}
120 } 140 onClick={() => {
121 }, 141 this.updateOrder(scope.row, 'TOP');
122 { 142 }}
123 label: "负责人", 143 >
124 render: (h, scope) => { 144 置顶
125 return ( 145 </el-button>
126 <i v-show={scope.row.isDuty !== null} class="el-icon-check" /> 146 <el-button
127 ) 147 type="text"
128 } 148 class='movebtnColor'
149 disabled={scope.row.isTop}
150 onClick={() => {
151 this.updateOrder(scope.row, 'UP');
152 }}
153 >
154 上移
155 </el-button>
156 <el-button
157 type="text"
158 class='movebtnColor'
159 disabled={scope.row.isBottom}
160 onClick={() => {
161 this.updateOrder(scope.row, 'DOWN');
162 }}
163 >
164 下移
165 </el-button>
166 <el-button
167 type="text"
168 size="mini"
169 class='movebtnColor'
170 disabled={scope.row.isBottom}
171 onClick={() => {
172 this.updateOrder(scope.row, 'BOTTOM');
173 }}
174 >
175 置底
176 </el-button>
177 </div>
178 );
129 }, 179 },
130 { 180 },
131 label: "排序", 181 {
132 width: 300, 182 label: "操作",
133 render: (h, scope) => { 183 width: 380,
134 return ( 184 render: (h, scope) => {
135 <div> 185 return (
136 <el-button 186 <div>
137 type="text" 187 <el-button
138 class='movebtnColor' 188 type="text"
139 disabled={scope.row.isTop} 189 size="mini"
140 onClick={() => { 190 class='resetbtnColor'
141 this.updateOrder(scope.row, 'TOP'); 191 onClick={() => {
142 }} 192 this.resetPassword(scope.row.id);
143 > 193 }}
144 置顶 194 >
145 </el-button> 195 重置
146 <el-button 196 </el-button>
147 type="text" 197 <el-button
148 class='movebtnColor' 198 type="text"
149 disabled={scope.row.isTop} 199 size="mini"
150 onClick={() => { 200 class='successColor'
151 this.updateOrder(scope.row, 'UP'); 201 onClick={() => {
152 }} 202 this.handleEdit(scope.row);
153 > 203 }}
154 上移 204 >
155 </el-button> 205 修改
156 <el-button 206 </el-button>
157 type="text" 207 <el-button
158 class='movebtnColor' 208 type="text"
159 disabled={scope.row.isBottom} 209 size="mini"
160 onClick={() => { 210 class='delColor'
161 this.updateOrder(scope.row, 'DOWN'); 211 onClick={() => {
162 }} 212 this.handleDelete(scope.row.id, scope.row.name);
163 > 213 }}
164 下移 214 >
165 </el-button> 215 删除
166 <el-button 216 </el-button>
167 type="text" 217 </div>
168 size="mini" 218 );
169 class='movebtnColor'
170 disabled={scope.row.isBottom}
171 onClick={() => {
172 this.updateOrder(scope.row, 'BOTTOM');
173 }}
174 >
175 置底
176 </el-button>
177 </div>
178 );
179 },
180 }, 219 },
220 },
221 ]),
222 data: [],
223 },
224 };
225 },
226 created () {
227 this.getTableList();
228 },
229 computed: {
230 departmentid () {
231 return this.$store.state.user.userInfo;
232 },
233 },
234 methods: {
235 handleAdd () {
236 this.isDialog = true
237 this.$refs.dialogForm.adds();
238 this.$refs.dialogForm.title = "添加";
239 },
240 // 查询
241 getTableList () {
242 this.queryParam = {
243 name: this.form.name,
244 code: this.form.code,
245 loginName: this.form.loginName,
246 };
247 getUserLists(this.queryParam).then((res) => {
248 if (res.status === 1) {
249 this.loading = false;
250 this.tableData.data = res.content;
251 this.tableData.data = judgeSort(this.tableData.data);
252 let arr = []
253 this.tableData.data.forEach((item) => {
254 arr.push(item.departmentId)
255 })
256 this.getDepts(arr)
257 } else {
258 this.$message.error({ message: res.message, showClose: true })
259 }
260 })
261 },
262 // 获取组织机构
263 getDepts (deptIdArr) {
264 let params = {
265 queryOptions: {
266 conditionGroup: {
267 conditions: [
181 { 268 {
182 label: "操作", 269 property: "id",
183 width: 380, 270 value: deptIdArr,
184 render: (h, scope) => { 271 operator: "IN",
185 return (
186 <div>
187 <el-button
188 type="text"
189 size="mini"
190 class='resetbtnColor'
191 onClick={() => {
192 this.resetPassword(scope.row.id);
193 }}
194 >
195 重置
196 </el-button>
197 <el-button
198 type="text"
199 size="mini"
200 class='successColor'
201 onClick={() => {
202 this.handleEdit(scope.row);
203 }}
204 >
205 修改
206 </el-button>
207 <el-button
208 type="text"
209 size="mini"
210 class='delColor'
211 onClick={() => {
212 this.handleDelete(scope.row.id, scope.row.name);
213 }}
214 >
215 删除
216 </el-button>
217 </div>
218 );
219 },
220 }, 272 },
221 ]), 273 ],
222 data: [], 274 queryRelation: "AND",
275 },
276 orderBys: [],
223 }, 277 },
224 }; 278 };
225 }, 279 getAction(api.departments, params).then(
226 created () { 280 (res) => {
227 this.getTableList(); 281 let deptsList = res.content;
228 }, 282 deptsList.forEach((ele) => {
229 computed: {
230 departmentid () {
231 return this.$store.state.user.userInfo;
232 },
233 },
234 methods: {
235 handleAdd () {
236 this.isDialog = true
237 this.$refs.dialogForm.adds();
238 this.$refs.dialogForm.title = "添加";
239 },
240 // 查询
241 getTableList () {
242 this.queryParam = {
243 name: this.form.name,
244 code: this.form.code,
245 loginName: this.form.loginName,
246 };
247 getUserLists(this.queryParam).then((res) => {
248 if (res.status === 1) {
249 this.loading = false;
250 this.tableData.data = res.content;
251 this.tableData.data = judgeSort(this.tableData.data);
252 let arr = []
253 this.tableData.data.forEach((item) => { 283 this.tableData.data.forEach((item) => {
254 arr.push(item.departmentId) 284 if (ele.id == item.departmentId) {
255 }) 285 item.departmentName = ele.name
256 this.getDepts(arr) 286 }
257 } else {
258 this.$message.error({ message: res.message, showClose: true })
259 }
260 })
261 },
262 // 获取组织机构
263 getDepts (deptIdArr) {
264 let params = {
265 queryOptions: {
266 conditionGroup: {
267 conditions: [
268 {
269 property: "id",
270 value: deptIdArr,
271 operator: "IN",
272 },
273 ],
274 queryRelation: "AND",
275 },
276 orderBys: [],
277 },
278 };
279 getAction(api.departments, params).then(
280 (res) => {
281 let deptsList = res.content;
282 deptsList.forEach((ele) => {
283 this.tableData.data.forEach((item) => {
284 if (ele.id == item.departmentId) {
285 item.departmentName = ele.name
286 }
287 })
288 }) 287 })
288 })
289 289
290 }, 290 },
291 (err) => { 291 (err) => {
292 console.log("err :", err); 292 console.log("err :", err);
293 } 293 }
294 ); 294 );
295 }, 295 },
296 // getTableList () { 296 // getTableList () {
297 // this.loading = true; 297 // this.loading = true;
298 298
299 // getUserList().then((res) => { 299 // getUserList().then((res) => {
300 // if (res.status === 1) { 300 // if (res.status === 1) {
301 // console.log("res人员列表", res); 301 // console.log("res人员列表", res);
302 // this.loading = false; 302 // this.loading = false;
303 // this.tableData.data = res.content; 303 // this.tableData.data = res.content;
304 // this.tableData.data = judgeSort(this.tableData.data); 304 // this.tableData.data = judgeSort(this.tableData.data);
305 // } else { 305 // } else {
306 // this.$message.error({ message: res.message, showClose: true }); 306 // this.$message.error({ message: res.message, showClose: true });
307 // } 307 // }
308 // }); 308 // });
309 // }, 309 // },
310 310
311 // 重置用户密码 311 // 重置用户密码
312 resetPassword (data) { 312 resetPassword (data) {
313 const ids = [] 313 const ids = []
314 if (data instanceof Array) { 314 if (data instanceof Array) {
315 data.forEach((item) => { 315 data.forEach((item) => {
316 ids.push(item.id) 316 ids.push(item.id)
317 }) 317 })
318 } else { 318 } else {
319 ids.push(data) 319 ids.push(data)
320 } 320 }
321 if (ids.length === 0) { 321 if (ids.length === 0) {
322 this.$message({ 322 this.$message({
323 message: '请选择需要重置密码的用户!', 323 message: '请选择需要重置密码的用户!',
324 showClose: true 324 showClose: true
325 }) 325 })
326 return 326 return
327 } 327 }
328 this.$confirm( 328 this.$confirm(
329 `<div class="customer-message-wrapper"> 329 `<div class="customer-message-wrapper">
330 <h5 class="title">确定要重置密码吗</h5> 330 <h5 class="title">确定要重置密码吗</h5>
331 <p class="result">执行后,数据将 331 <p class="result">执行后,数据将
332 <span >无法恢复</span> 332 <span >无法恢复</span>
333 </p> 333 </p>
334 </div>`, 334 </div>`,
335 '执行确认', 335 '执行确认',
336 { 336 {
337 dangerouslyUseHTMLString: true,
338 customClass: 'customer-delete',
339 confirmButtonText: '确定',
340 cancelButtonText: '取消',
341 type: 'warning'
342 }
343 )
344 .then(() => {
345 resetPassword(ids).then((res) => {
346 if (res.status === 1) {
347 this.$message.success({ message: res.message, showClose: true })
348 this.getTableList()
349 } else {
350 this.$message.error({ message: res.message, showClose: true })
351 }
352 })
353 })
354 .catch(() => { })
355 },
356 //排序
357 updateOrder (record, operate) {
358 const findIndex = this.tableData.data.findIndex(item => item.id === record.id)
359 let swapId = ''
360 if (operate === 'UP') {
361 swapId = this.tableData.data[findIndex - 1].id
362 } else if (operate === 'DOWN') {
363 swapId = this.tableData.data[findIndex + 1].id
364 }
365 updateOrder('/rest/users', record, operate, swapId).then(res => {
366 if (res.status === 1) {
367 this.$message.success({ message: res.message, showClose: true })
368 this.getTableList();
369 } else {
370 this.$message.error({ message: res.message, showClose: true })
371 }
372 })
373 },
374
375 // 修改人员信息
376 handleEdit (row) {
377 console.log("rowwwww", row);
378 this.isDialog = true
379 this.$refs.dialogForm.edit(row);
380 this.$refs.dialogForm.title = "修改";
381 },
382 // 删除
383 handleDelete (id, content) {
384 this.$confirm(deleteDomStr(content), '执行确认', {
385 dangerouslyUseHTMLString: true, 337 dangerouslyUseHTMLString: true,
386 customClass: 'customer-delete', 338 customClass: 'customer-delete',
387 confirmButtonText: '确定', 339 confirmButtonText: '确定',
388 cancelButtonText: '取消', 340 cancelButtonText: '取消',
389 type: 'warning' 341 type: 'warning'
390 }) 342 }
391 .then(() => { 343 )
392 deleteAction(`${api.users}/${id}`).then((res) => { 344 .then(() => {
393 if (res.status === 1) { 345 resetPassword(ids).then((res) => {
394 this.$message.success({ message: res.message, showClose: true }) 346 if (res.status === 1) {
395 } else { 347 this.$message.success({ message: res.message, showClose: true })
396 this.$message.error({ message: res.message, showClose: true })
397 }
398 this.getTableList() 348 this.getTableList()
399 }) 349 } else {
350 this.$message.error({ message: res.message, showClose: true })
351 }
400 }) 352 })
401 .catch(() => { }) 353 })
402 }, 354 .catch(() => { })
403 // 新增回显 355 },
404 reloadTableData () { 356 //排序
405 this.getTableList() 357 updateOrder (record, operate) {
406 }, 358 const findIndex = this.tableData.data.findIndex(item => item.id === record.id)
359 let swapId = ''
360 if (operate === 'UP') {
361 swapId = this.tableData.data[findIndex - 1].id
362 } else if (operate === 'DOWN') {
363 swapId = this.tableData.data[findIndex + 1].id
364 }
365 updateOrder('/rest/users', record, operate, swapId).then(res => {
366 if (res.status === 1) {
367 this.$message.success({ message: res.message, showClose: true })
368 this.getTableList();
369 } else {
370 this.$message.error({ message: res.message, showClose: true })
371 }
372 })
373 },
374
375 // 修改人员信息
376 handleEdit (row) {
377 console.log("rowwwww", row);
378 this.isDialog = true
379 this.$refs.dialogForm.edit(row);
380 this.$refs.dialogForm.title = "修改";
381 },
382 // 删除
383 handleDelete (id, content) {
384 this.$confirm(deleteDomStr(content), '执行确认', {
385 dangerouslyUseHTMLString: true,
386 customClass: 'customer-delete',
387 confirmButtonText: '确定',
388 cancelButtonText: '取消',
389 type: 'warning'
390 })
391 .then(() => {
392 deleteAction(`${api.users}/${id}`).then((res) => {
393 if (res.status === 1) {
394 this.$message.success({ message: res.message, showClose: true })
395 } else {
396 this.$message.error({ message: res.message, showClose: true })
397 }
398 this.getTableList()
399 })
400 })
401 .catch(() => { })
402 },
403 // 新增回显
404 reloadTableData () {
405 this.getTableList()
407 }, 406 },
408 }; 407 },
408 };
409 </script> 409 </script>
410 <style scoped lang="scss"> 410 <style scoped lang="scss">
411 <<<<<<< HEAD
411 @import "~@/styles/mixin.scss"; 412 @import "~@/styles/mixin.scss";
413 =======
414 @import "~@/styles/mixin.scss";
415 >>>>>>> 7c233183698a503df659c8b6cf28f340f4de3587
412 </style> 416 </style>
......
...@@ -6,7 +6,6 @@ function resolve (dir) { ...@@ -6,7 +6,6 @@ function resolve (dir) {
6 } 6 }
7 const name = defaultSettings.title 7 const name = defaultSettings.title
8 const port = process.env.port || process.env.npm_config_port || 8888 // dev port 8 const port = process.env.port || process.env.npm_config_port || 8888 // dev port
9
10 // All configuration item explanations can be find in https://cli.vuejs.org/config/ 9 // All configuration item explanations can be find in https://cli.vuejs.org/config/
11 module.exports = { 10 module.exports = {
12 /** 11 /**
......