Commit 011dc236996b3919fa46499b40b2086844d4dda6

Authored by xingyu4j
1 parent c9e11e76

替换var 为const/let

删除未使用import
替换 == 为 ===
Showing 66 changed files with 305 additions and 319 deletions
yudao-ui-admin/build/index.js
@@ -12,8 +12,8 @@ if (process.env.npm_config_preview || rawArgv.includes('--preview')) { @@ -12,8 +12,8 @@ if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
12 const port = 9526 12 const port = 9526
13 const publicPath = config.publicPath 13 const publicPath = config.publicPath
14 14
15 - var connect = require('connect')  
16 - var serveStatic = require('serve-static') 15 + const connect = require('connect')
  16 + const serveStatic = require('serve-static')
17 const app = connect() 17 const app = connect()
18 18
19 app.use( 19 app.use(
yudao-ui-admin/package.json
@@ -89,8 +89,8 @@ @@ -89,8 +89,8 @@
89 "fs-extra": "^8.1.0", 89 "fs-extra": "^8.1.0",
90 "lint-staged": "10.5.3", 90 "lint-staged": "10.5.3",
91 "runjs": "4.4.2", 91 "runjs": "4.4.2",
92 - "sass": "1.32.13",  
93 - "sass-loader": "10.1.1", 92 + "sass": "1.56.0",
  93 + "sass-loader": "13.1.0",
94 "script-ext-html-webpack-plugin": "2.1.5", 94 "script-ext-html-webpack-plugin": "2.1.5",
95 "svg-sprite-loader": "5.1.1", 95 "svg-sprite-loader": "5.1.1",
96 "terser-webpack-plugin": "^4.2.3", 96 "terser-webpack-plugin": "^4.2.3",
yudao-ui-admin/src/components/Breadcrumb/index.vue
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <el-breadcrumb class="app-breadcrumb" separator="/"> 2 <el-breadcrumb class="app-breadcrumb" separator="/">
3 <transition-group name="breadcrumb"> 3 <transition-group name="breadcrumb">
4 <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path"> 4 <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
5 - <span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span> 5 + <span v-if="item.redirect==='noRedirect'||index===levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
6 <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> 6 <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
7 </el-breadcrumb-item> 7 </el-breadcrumb-item>
8 </transition-group> 8 </transition-group>
yudao-ui-admin/src/components/Crontab/day.vue
@@ -103,25 +103,25 @@ export default { @@ -103,25 +103,25 @@ export default {
103 }, 103 },
104 // 周期两个值变化时 104 // 周期两个值变化时
105 cycleChange() { 105 cycleChange() {
106 - if (this.radioValue == '3') { 106 + if (this.radioValue === '3') {
107 this.$emit('update', 'day', this.cycleTotal); 107 this.$emit('update', 'day', this.cycleTotal);
108 } 108 }
109 }, 109 },
110 // 平均两个值变化时 110 // 平均两个值变化时
111 averageChange() { 111 averageChange() {
112 - if (this.radioValue == '4') { 112 + if (this.radioValue === '4') {
113 this.$emit('update', 'day', this.averageTotal); 113 this.$emit('update', 'day', this.averageTotal);
114 } 114 }
115 }, 115 },
116 // 最近工作日值变化时 116 // 最近工作日值变化时
117 workdayChange() { 117 workdayChange() {
118 - if (this.radioValue == '5') { 118 + if (this.radioValue === '5') {
119 this.$emit('update', 'day', this.workdayCheck + 'W'); 119 this.$emit('update', 'day', this.workdayCheck + 'W');
120 } 120 }
121 }, 121 },
122 // checkbox值变化时 122 // checkbox值变化时
123 checkboxChange() { 123 checkboxChange() {
124 - if (this.radioValue == '7') { 124 + if (this.radioValue === '7') {
125 this.$emit('update', 'day', this.checkboxString); 125 this.$emit('update', 'day', this.checkboxString);
126 } 126 }
127 } 127 }
@@ -148,13 +148,12 @@ export default { @@ -148,13 +148,12 @@ export default {
148 }, 148 },
149 // 计算工作日格式 149 // 计算工作日格式
150 workdayCheck: function () { 150 workdayCheck: function () {
151 - const workday = this.checkNum(this.workday, 1, 31)  
152 - return workday; 151 + return this.checkNum(this.workday, 1, 31);
153 }, 152 },
154 // 计算勾选的checkbox值合集 153 // 计算勾选的checkbox值合集
155 checkboxString: function () { 154 checkboxString: function () {
156 let str = this.checkboxList.join(); 155 let str = this.checkboxList.join();
157 - return str == '' ? '*' : str; 156 + return str === '' ? '*' : str;
158 } 157 }
159 } 158 }
160 } 159 }
yudao-ui-admin/src/components/Crontab/hour.vue
@@ -68,19 +68,19 @@ export default { @@ -68,19 +68,19 @@ export default {
68 }, 68 },
69 // 周期两个值变化时 69 // 周期两个值变化时
70 cycleChange() { 70 cycleChange() {
71 - if (this.radioValue == '2') { 71 + if (this.radioValue === '2') {
72 this.$emit('update', 'hour', this.cycleTotal); 72 this.$emit('update', 'hour', this.cycleTotal);
73 } 73 }
74 }, 74 },
75 // 平均两个值变化时 75 // 平均两个值变化时
76 averageChange() { 76 averageChange() {
77 - if (this.radioValue == '3') { 77 + if (this.radioValue === '3') {
78 this.$emit('update', 'hour', this.averageTotal); 78 this.$emit('update', 'hour', this.averageTotal);
79 } 79 }
80 }, 80 },
81 // checkbox值变化时 81 // checkbox值变化时
82 checkboxChange() { 82 checkboxChange() {
83 - if (this.radioValue == '4') { 83 + if (this.radioValue === '4') {
84 this.$emit('update', 'hour', this.checkboxString); 84 this.$emit('update', 'hour', this.checkboxString);
85 } 85 }
86 } 86 }
@@ -107,7 +107,7 @@ export default { @@ -107,7 +107,7 @@ export default {
107 // 计算勾选的checkbox值合集 107 // 计算勾选的checkbox值合集
108 checkboxString: function () { 108 checkboxString: function () {
109 let str = this.checkboxList.join(); 109 let str = this.checkboxList.join();
110 - return str == '' ? '*' : str; 110 + return str === '' ? '*' : str;
111 } 111 }
112 } 112 }
113 } 113 }
yudao-ui-admin/src/components/Crontab/index.vue
@@ -143,8 +143,8 @@ export default { @@ -143,8 +143,8 @@ export default {
143 props: ["expression", "hideComponent"], 143 props: ["expression", "hideComponent"],
144 methods: { 144 methods: {
145 shouldHide(key) { 145 shouldHide(key) {
146 - if (this.hideComponent && this.hideComponent.includes(key)) return false;  
147 - return true; 146 + return !(this.hideComponent && this.hideComponent.includes(key));
  147 +
148 }, 148 },
149 resolveExp() { 149 resolveExp() {
150 // 反解析 表达式 150 // 反解析 表达式
@@ -215,10 +215,10 @@ export default { @@ -215,10 +215,10 @@ export default {
215 insValue = 4; 215 insValue = 4;
216 this.$refs[refName].checkboxList = value.split(","); 216 this.$refs[refName].checkboxList = value.split(",");
217 } 217 }
218 - } else if (name == "day") { 218 + } else if (name === "day") {
219 if (value === "*") { 219 if (value === "*") {
220 insValue = 1; 220 insValue = 1;
221 - } else if (value == "?") { 221 + } else if (value === "?") {
222 insValue = 2; 222 insValue = 2;
223 } else if (value.indexOf("-") > -1) { 223 } else if (value.indexOf("-") > -1) {
224 let indexArr = value.split("-"); 224 let indexArr = value.split("-");
@@ -246,10 +246,10 @@ export default { @@ -246,10 +246,10 @@ export default {
246 this.$refs[refName].checkboxList = value.split(","); 246 this.$refs[refName].checkboxList = value.split(",");
247 insValue = 7; 247 insValue = 7;
248 } 248 }
249 - } else if (name == "week") { 249 + } else if (name === "week") {
250 if (value === "*") { 250 if (value === "*") {
251 insValue = 1; 251 insValue = 1;
252 - } else if (value == "?") { 252 + } else if (value === "?") {
253 insValue = 2; 253 insValue = 2;
254 } else if (value.indexOf("-") > -1) { 254 } else if (value.indexOf("-") > -1) {
255 let indexArr = value.split("-"); 255 let indexArr = value.split("-");
@@ -275,10 +275,10 @@ export default { @@ -275,10 +275,10 @@ export default {
275 this.$refs[refName].checkboxList = value.split(","); 275 this.$refs[refName].checkboxList = value.split(",");
276 insValue = 6; 276 insValue = 6;
277 } 277 }
278 - } else if (name == "year") {  
279 - if (value == "") { 278 + } else if (name === "year") {
  279 + if (value === "") {
280 insValue = 1; 280 insValue = 1;
281 - } else if (value == "*") { 281 + } else if (value === "*") {
282 insValue = 2; 282 insValue = 2;
283 } else if (value.indexOf("-") > -1) { 283 } else if (value.indexOf("-") > -1) {
284 insValue = 3; 284 insValue = 3;
@@ -343,7 +343,7 @@ export default { @@ -343,7 +343,7 @@ export default {
343 obj.month + 343 obj.month +
344 " " + 344 " " +
345 obj.week + 345 obj.week +
346 - (obj.year == "" ? "" : " " + obj.year); 346 + (obj.year === "" ? "" : " " + obj.year);
347 return str; 347 return str;
348 }, 348 },
349 }, 349 },
yudao-ui-admin/src/components/Crontab/min.vue
@@ -69,19 +69,19 @@ export default { @@ -69,19 +69,19 @@ export default {
69 }, 69 },
70 // 周期两个值变化时 70 // 周期两个值变化时
71 cycleChange() { 71 cycleChange() {
72 - if (this.radioValue == '2') { 72 + if (this.radioValue === '2') {
73 this.$emit('update', 'min', this.cycleTotal, 'min'); 73 this.$emit('update', 'min', this.cycleTotal, 'min');
74 } 74 }
75 }, 75 },
76 // 平均两个值变化时 76 // 平均两个值变化时
77 averageChange() { 77 averageChange() {
78 - if (this.radioValue == '3') { 78 + if (this.radioValue === '3') {
79 this.$emit('update', 'min', this.averageTotal, 'min'); 79 this.$emit('update', 'min', this.averageTotal, 'min');
80 } 80 }
81 }, 81 },
82 // checkbox值变化时 82 // checkbox值变化时
83 checkboxChange() { 83 checkboxChange() {
84 - if (this.radioValue == '4') { 84 + if (this.radioValue === '4') {
85 this.$emit('update', 'min', this.checkboxString, 'min'); 85 this.$emit('update', 'min', this.checkboxString, 'min');
86 } 86 }
87 }, 87 },
@@ -109,8 +109,8 @@ export default { @@ -109,8 +109,8 @@ export default {
109 // 计算勾选的checkbox值合集 109 // 计算勾选的checkbox值合集
110 checkboxString: function () { 110 checkboxString: function () {
111 let str = this.checkboxList.join(); 111 let str = this.checkboxList.join();
112 - return str == '' ? '*' : str; 112 + return str === '' ? '*' : str;
113 } 113 }
114 } 114 }
115 } 115 }
116 -</script>  
117 \ No newline at end of file 116 \ No newline at end of file
  117 +</script>
yudao-ui-admin/src/components/Crontab/month.vue
@@ -68,19 +68,19 @@ export default { @@ -68,19 +68,19 @@ export default {
68 }, 68 },
69 // 周期两个值变化时 69 // 周期两个值变化时
70 cycleChange() { 70 cycleChange() {
71 - if (this.radioValue == '2') { 71 + if (this.radioValue === '2') {
72 this.$emit('update', 'month', this.cycleTotal); 72 this.$emit('update', 'month', this.cycleTotal);
73 } 73 }
74 }, 74 },
75 // 平均两个值变化时 75 // 平均两个值变化时
76 averageChange() { 76 averageChange() {
77 - if (this.radioValue == '3') { 77 + if (this.radioValue === '3') {
78 this.$emit('update', 'month', this.averageTotal); 78 this.$emit('update', 'month', this.averageTotal);
79 } 79 }
80 }, 80 },
81 // checkbox值变化时 81 // checkbox值变化时
82 checkboxChange() { 82 checkboxChange() {
83 - if (this.radioValue == '4') { 83 + if (this.radioValue === '4') {
84 this.$emit('update', 'month', this.checkboxString); 84 this.$emit('update', 'month', this.checkboxString);
85 } 85 }
86 } 86 }
@@ -107,7 +107,7 @@ export default { @@ -107,7 +107,7 @@ export default {
107 // 计算勾选的checkbox值合集 107 // 计算勾选的checkbox值合集
108 checkboxString: function () { 108 checkboxString: function () {
109 let str = this.checkboxList.join(); 109 let str = this.checkboxList.join();
110 - return str == '' ? '*' : str; 110 + return str === '' ? '*' : str;
111 } 111 }
112 } 112 }
113 } 113 }
yudao-ui-admin/src/components/Crontab/result.vue
@@ -126,7 +126,7 @@ export default { @@ -126,7 +126,7 @@ export default {
126 // 如果到达最大值时 126 // 如果到达最大值时
127 if (nDay > DDate[DDate.length - 1]) { 127 if (nDay > DDate[DDate.length - 1]) {
128 resetDay(); 128 resetDay();
129 - if (Mi == MDate.length - 1) { 129 + if (Mi === MDate.length - 1) {
130 resetMonth(); 130 resetMonth();
131 continue goYear; 131 continue goYear;
132 } 132 }
@@ -141,9 +141,9 @@ export default { @@ -141,9 +141,9 @@ export default {
141 // 如果到达最大值时 141 // 如果到达最大值时
142 if (nHour > hDate[hDate.length - 1]) { 142 if (nHour > hDate[hDate.length - 1]) {
143 resetHour(); 143 resetHour();
144 - if (Di == DDate.length - 1) { 144 + if (Di === DDate.length - 1) {
145 resetDay(); 145 resetDay();
146 - if (Mi == MDate.length - 1) { 146 + if (Mi === MDate.length - 1) {
147 resetMonth(); 147 resetMonth();
148 continue goYear; 148 continue goYear;
149 } 149 }
@@ -158,7 +158,7 @@ export default { @@ -158,7 +158,7 @@ export default {
158 continue goMonth; 158 continue goMonth;
159 } 159 }
160 // 如果日期规则中有值时 160 // 如果日期规则中有值时
161 - if (this.dayRule == 'lastDay') { 161 + if (this.dayRule === 'lastDay') {
162 // 如果不是合法日期则需要将前将日期调到合法日期即月末最后一天 162 // 如果不是合法日期则需要将前将日期调到合法日期即月末最后一天
163 163
164 if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) { 164 if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
@@ -168,7 +168,7 @@ export default { @@ -168,7 +168,7 @@ export default {
168 thisDD = DD < 10 ? '0' + DD : DD; 168 thisDD = DD < 10 ? '0' + DD : DD;
169 } 169 }
170 } 170 }
171 - } else if (this.dayRule == 'workDay') { 171 + } else if (this.dayRule === 'workDay') {
172 // 校验并调整如果是2月30号这种日期传进来时需调整至正常月底 172 // 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
173 if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) { 173 if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
174 while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) { 174 while (DD > 0 && this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
@@ -179,7 +179,7 @@ export default { @@ -179,7 +179,7 @@ export default {
179 // 获取达到条件的日期是星期X 179 // 获取达到条件的日期是星期X
180 let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week'); 180 let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
181 // 当星期日时 181 // 当星期日时
182 - if (thisWeek == 1) { 182 + if (thisWeek === 1) {
183 // 先找下一个日,并判断是否为月底 183 // 先找下一个日,并判断是否为月底
184 DD++; 184 DD++;
185 thisDD = DD < 10 ? '0' + DD : DD; 185 thisDD = DD < 10 ? '0' + DD : DD;
@@ -187,7 +187,7 @@ export default { @@ -187,7 +187,7 @@ export default {
187 if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) { 187 if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
188 DD -= 3; 188 DD -= 3;
189 } 189 }
190 - } else if (thisWeek == 7) { 190 + } else if (thisWeek === 7) {
191 // 当星期6时只需判断不是1号就可进行操作 191 // 当星期6时只需判断不是1号就可进行操作
192 if (this.dayRuleSup !== 1) { 192 if (this.dayRuleSup !== 1) {
193 DD--; 193 DD--;
@@ -195,16 +195,16 @@ export default { @@ -195,16 +195,16 @@ export default {
195 DD += 2; 195 DD += 2;
196 } 196 }
197 } 197 }
198 - } else if (this.dayRule == 'weekDay') { 198 + } else if (this.dayRule === 'weekDay') {
199 // 如果指定了是星期几 199 // 如果指定了是星期几
200 // 获取当前日期是属于星期几 200 // 获取当前日期是属于星期几
201 let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week'); 201 let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
202 // 校验当前星期是否在星期池(dayRuleSup)中 202 // 校验当前星期是否在星期池(dayRuleSup)中
203 if (this.dayRuleSup.indexOf(thisWeek) < 0) { 203 if (this.dayRuleSup.indexOf(thisWeek) < 0) {
204 // 如果到达最大值时 204 // 如果到达最大值时
205 - if (Di == DDate.length - 1) { 205 + if (Di === DDate.length - 1) {
206 resetDay(); 206 resetDay();
207 - if (Mi == MDate.length - 1) { 207 + if (Mi === MDate.length - 1) {
208 resetMonth(); 208 resetMonth();
209 continue goYear; 209 continue goYear;
210 } 210 }
@@ -212,7 +212,7 @@ export default { @@ -212,7 +212,7 @@ export default {
212 } 212 }
213 continue; 213 continue;
214 } 214 }
215 - } else if (this.dayRule == 'assWeek') { 215 + } else if (this.dayRule === 'assWeek') {
216 // 如果指定了是第几周的星期几 216 // 如果指定了是第几周的星期几
217 // 获取每月1号是属于星期几 217 // 获取每月1号是属于星期几
218 let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week'); 218 let thisWeek = this.formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
@@ -221,7 +221,7 @@ export default { @@ -221,7 +221,7 @@ export default {
221 } else { 221 } else {
222 DD = this.dayRuleSup[0] * 7 + this.dayRuleSup[1] - thisWeek + 1; 222 DD = this.dayRuleSup[0] * 7 + this.dayRuleSup[1] - thisWeek + 1;
223 } 223 }
224 - } else if (this.dayRule == 'lastWeek') { 224 + } else if (this.dayRule === 'lastWeek') {
225 // 如果指定了每月最后一个星期几 225 // 如果指定了每月最后一个星期几
226 // 校验并调整如果是2月30号这种日期传进来时需调整至正常月底 226 // 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
227 if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) { 227 if (this.checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
@@ -249,11 +249,11 @@ export default { @@ -249,11 +249,11 @@ export default {
249 // 如果到达最大值时 249 // 如果到达最大值时
250 if (nMin > mDate[mDate.length - 1]) { 250 if (nMin > mDate[mDate.length - 1]) {
251 resetMin(); 251 resetMin();
252 - if (hi == hDate.length - 1) { 252 + if (hi === hDate.length - 1) {
253 resetHour(); 253 resetHour();
254 - if (Di == DDate.length - 1) { 254 + if (Di === DDate.length - 1) {
255 resetDay(); 255 resetDay();
256 - if (Mi == MDate.length - 1) { 256 + if (Mi === MDate.length - 1) {
257 resetMonth(); 257 resetMonth();
258 continue goYear; 258 continue goYear;
259 } 259 }
@@ -270,13 +270,13 @@ export default { @@ -270,13 +270,13 @@ export default {
270 // 如果到达最大值时 270 // 如果到达最大值时
271 if (nSecond > sDate[sDate.length - 1]) { 271 if (nSecond > sDate[sDate.length - 1]) {
272 resetSecond(); 272 resetSecond();
273 - if (mi == mDate.length - 1) { 273 + if (mi === mDate.length - 1) {
274 resetMin(); 274 resetMin();
275 - if (hi == hDate.length - 1) { 275 + if (hi === hDate.length - 1) {
276 resetHour(); 276 resetHour();
277 - if (Di == DDate.length - 1) { 277 + if (Di === DDate.length - 1) {
278 resetDay(); 278 resetDay();
279 - if (Mi == MDate.length - 1) { 279 + if (Mi === MDate.length - 1) {
280 resetMonth(); 280 resetMonth();
281 continue goYear; 281 continue goYear;
282 } 282 }
@@ -297,17 +297,17 @@ export default { @@ -297,17 +297,17 @@ export default {
297 nums++; 297 nums++;
298 } 298 }
299 // 如果条数满了就退出循环 299 // 如果条数满了就退出循环
300 - if (nums == 5) break goYear; 300 + if (nums === 5) break goYear;
301 // 如果到达最大值时 301 // 如果到达最大值时
302 - if (si == sDate.length - 1) { 302 + if (si === sDate.length - 1) {
303 resetSecond(); 303 resetSecond();
304 - if (mi == mDate.length - 1) { 304 + if (mi === mDate.length - 1) {
305 resetMin(); 305 resetMin();
306 - if (hi == hDate.length - 1) { 306 + if (hi === hDate.length - 1) {
307 resetHour(); 307 resetHour();
308 - if (Di == DDate.length - 1) { 308 + if (Di === DDate.length - 1) {
309 resetDay(); 309 resetDay();
310 - if (Mi == MDate.length - 1) { 310 + if (Mi === MDate.length - 1) {
311 resetMonth(); 311 resetMonth();
312 continue goYear; 312 continue goYear;
313 } 313 }
@@ -326,7 +326,7 @@ export default { @@ -326,7 +326,7 @@ export default {
326 }//goMonth 326 }//goMonth
327 } 327 }
328 // 判断100年内的结果条数 328 // 判断100年内的结果条数
329 - if (resultArr.length == 0) { 329 + if (resultArr.length === 0) {
330 this.resultList = ['没有达到条件的结果!']; 330 this.resultList = ['没有达到条件的结果!'];
331 } else { 331 } else {
332 this.resultList = resultArr; 332 this.resultList = resultArr;
@@ -378,23 +378,23 @@ export default { @@ -378,23 +378,23 @@ export default {
378 // 获取"日"数组-主要为日期规则 378 // 获取"日"数组-主要为日期规则
379 getWeekArr(rule) { 379 getWeekArr(rule) {
380 // 只有当日期规则的两个值均为“”时则表达日期是有选项的 380 // 只有当日期规则的两个值均为“”时则表达日期是有选项的
381 - if (this.dayRule == '' && this.dayRuleSup == '') { 381 + if (this.dayRule === '' && this.dayRuleSup === '') {
382 if (rule.indexOf('-') >= 0) { 382 if (rule.indexOf('-') >= 0) {
383 this.dayRule = 'weekDay'; 383 this.dayRule = 'weekDay';
384 this.dayRuleSup = this.getCycleArr(rule, 7, false) 384 this.dayRuleSup = this.getCycleArr(rule, 7, false)
385 } else if (rule.indexOf('#') >= 0) { 385 } else if (rule.indexOf('#') >= 0) {
386 this.dayRule = 'assWeek'; 386 this.dayRule = 'assWeek';
387 - let matchRule = rule.match(/[0-9]{1}/g); 387 + let matchRule = rule.match(/[0-9]/g);
388 this.dayRuleSup = [Number(matchRule[1]), Number(matchRule[0])]; 388 this.dayRuleSup = [Number(matchRule[1]), Number(matchRule[0])];
389 this.dateArr[3] = [1]; 389 this.dateArr[3] = [1];
390 - if (this.dayRuleSup[1] == 7) { 390 + if (this.dayRuleSup[1] === 7) {
391 this.dayRuleSup[1] = 0; 391 this.dayRuleSup[1] = 0;
392 } 392 }
393 } else if (rule.indexOf('L') >= 0) { 393 } else if (rule.indexOf('L') >= 0) {
394 this.dayRule = 'lastWeek'; 394 this.dayRule = 'lastWeek';
395 this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]); 395 this.dayRuleSup = Number(rule.match(/[0-9]{1,2}/g)[0]);
396 this.dateArr[3] = [31]; 396 this.dateArr[3] = [31];
397 - if (this.dayRuleSup == 7) { 397 + if (this.dayRuleSup === 7) {
398 this.dayRuleSup = 0; 398 this.dayRuleSup = 0;
399 } 399 }
400 } else if (rule !== '*' && rule !== '?') { 400 } else if (rule !== '*' && rule !== '?') {
@@ -425,7 +425,7 @@ export default { @@ -425,7 +425,7 @@ export default {
425 } else if (rule !== '*' && rule !== '?') { 425 } else if (rule !== '*' && rule !== '?') {
426 this.dateArr[3] = this.getAssignArr(rule) 426 this.dateArr[3] = this.getAssignArr(rule)
427 this.dayRuleSup = 'null'; 427 this.dayRuleSup = 'null';
428 - } else if (rule == '*') { 428 + } else if (rule === '*') {
429 this.dayRuleSup = 'null'; 429 this.dayRuleSup = 'null';
430 } 430 }
431 }, 431 },
@@ -504,7 +504,7 @@ export default { @@ -504,7 +504,7 @@ export default {
504 } 504 }
505 for (let i = min; i <= max; i++) { 505 for (let i = min; i <= max; i++) {
506 let add = 0; 506 let add = 0;
507 - if (status == false && i % limit == 0) { 507 + if (status === false && i % limit === 0) {
508 add = limit; 508 add = limit;
509 } 509 }
510 arr.push(Math.round(i % limit + add)) 510 arr.push(Math.round(i % limit + add))
@@ -532,9 +532,9 @@ export default { @@ -532,9 +532,9 @@ export default {
532 let s = time.getSeconds(); 532 let s = time.getSeconds();
533 let week = time.getDay(); 533 let week = time.getDay();
534 // 如果传递了type的话 534 // 如果传递了type的话
535 - if (type == undefined) { 535 + if (type === undefined) {
536 return Y + '-' + (M < 10 ? '0' + M : M) + '-' + (D < 10 ? '0' + D : D) + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s); 536 return Y + '-' + (M < 10 ? '0' + M : M) + '-' + (D < 10 ? '0' + D : D) + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s);
537 - } else if (type == 'week') { 537 + } else if (type === 'week') {
538 // 在quartz中 1为星期日 538 // 在quartz中 1为星期日
539 return week + 1; 539 return week + 1;
540 } 540 }
yudao-ui-admin/src/components/Crontab/second.vue
@@ -68,19 +68,19 @@ export default { @@ -68,19 +68,19 @@ export default {
68 }, 68 },
69 // 周期两个值变化时 69 // 周期两个值变化时
70 cycleChange() { 70 cycleChange() {
71 - if (this.radioValue == '2') { 71 + if (this.radioValue === '2') {
72 this.$emit('update', 'second', this.cycleTotal); 72 this.$emit('update', 'second', this.cycleTotal);
73 } 73 }
74 }, 74 },
75 // 平均两个值变化时 75 // 平均两个值变化时
76 averageChange() { 76 averageChange() {
77 - if (this.radioValue == '3') { 77 + if (this.radioValue === '3') {
78 this.$emit('update', 'second', this.averageTotal); 78 this.$emit('update', 'second', this.averageTotal);
79 } 79 }
80 }, 80 },
81 // checkbox值变化时 81 // checkbox值变化时
82 checkboxChange() { 82 checkboxChange() {
83 - if (this.radioValue == '4') { 83 + if (this.radioValue === '4') {
84 this.$emit('update', 'second', this.checkboxString); 84 this.$emit('update', 'second', this.checkboxString);
85 } 85 }
86 } 86 }
@@ -110,7 +110,7 @@ export default { @@ -110,7 +110,7 @@ export default {
110 // 计算勾选的checkbox值合集 110 // 计算勾选的checkbox值合集
111 checkboxString: function () { 111 checkboxString: function () {
112 let str = this.checkboxList.join(); 112 let str = this.checkboxList.join();
113 - return str == '' ? '*' : str; 113 + return str === '' ? '*' : str;
114 } 114 }
115 } 115 }
116 } 116 }
yudao-ui-admin/src/components/Crontab/week.vue
@@ -144,25 +144,25 @@ export default { @@ -144,25 +144,25 @@ export default {
144 144
145 // 周期两个值变化时 145 // 周期两个值变化时
146 cycleChange() { 146 cycleChange() {
147 - if (this.radioValue == '3') { 147 + if (this.radioValue === '3') {
148 this.$emit('update', 'week', this.cycleTotal); 148 this.$emit('update', 'week', this.cycleTotal);
149 } 149 }
150 }, 150 },
151 // 平均两个值变化时 151 // 平均两个值变化时
152 averageChange() { 152 averageChange() {
153 - if (this.radioValue == '4') { 153 + if (this.radioValue === '4') {
154 this.$emit('update', 'week', this.averageTotal); 154 this.$emit('update', 'week', this.averageTotal);
155 } 155 }
156 }, 156 },
157 // 最近工作日值变化时 157 // 最近工作日值变化时
158 weekdayChange() { 158 weekdayChange() {
159 - if (this.radioValue == '5') { 159 + if (this.radioValue === '5') {
160 this.$emit('update', 'week', this.weekday + 'L'); 160 this.$emit('update', 'week', this.weekday + 'L');
161 } 161 }
162 }, 162 },
163 // checkbox值变化时 163 // checkbox值变化时
164 checkboxChange() { 164 checkboxChange() {
165 - if (this.radioValue == '6') { 165 + if (this.radioValue === '6') {
166 this.$emit('update', 'week', this.checkboxString); 166 this.$emit('update', 'week', this.checkboxString);
167 } 167 }
168 }, 168 },
@@ -195,7 +195,7 @@ export default { @@ -195,7 +195,7 @@ export default {
195 // 计算勾选的checkbox值合集 195 // 计算勾选的checkbox值合集
196 checkboxString: function () { 196 checkboxString: function () {
197 let str = this.checkboxList.join(); 197 let str = this.checkboxList.join();
198 - return str == '' ? '*' : str; 198 + return str === '' ? '*' : str;
199 } 199 }
200 } 200 }
201 } 201 }
yudao-ui-admin/src/components/Crontab/year.vue
@@ -79,19 +79,19 @@ export default { @@ -79,19 +79,19 @@ export default {
79 }, 79 },
80 // 周期两个值变化时 80 // 周期两个值变化时
81 cycleChange() { 81 cycleChange() {
82 - if (this.radioValue == '3') { 82 + if (this.radioValue === '3') {
83 this.$emit('update', 'year', this.cycleTotal); 83 this.$emit('update', 'year', this.cycleTotal);
84 } 84 }
85 }, 85 },
86 // 平均两个值变化时 86 // 平均两个值变化时
87 averageChange() { 87 averageChange() {
88 - if (this.radioValue == '4') { 88 + if (this.radioValue === '4') {
89 this.$emit('update', 'year', this.averageTotal); 89 this.$emit('update', 'year', this.averageTotal);
90 } 90 }
91 }, 91 },
92 // checkbox值变化时 92 // checkbox值变化时
93 checkboxChange() { 93 checkboxChange() {
94 - if (this.radioValue == '5') { 94 + if (this.radioValue === '5') {
95 this.$emit('update', 'year', this.checkboxString); 95 this.$emit('update', 'year', this.checkboxString);
96 } 96 }
97 } 97 }
yudao-ui-admin/src/components/PanThumb/index.vue
@@ -108,7 +108,6 @@ export default { @@ -108,7 +108,6 @@ export default {
108 108
109 .pan-info p a { 109 .pan-info p a {
110 display: block; 110 display: block;
111 - color: #333;  
112 width: 80px; 111 width: 80px;
113 height: 80px; 112 height: 80px;
114 background: rgba(255, 255, 255, 0.3); 113 background: rgba(255, 255, 255, 0.3);
yudao-ui-admin/src/components/RightToolbar/index.vue
@@ -62,7 +62,7 @@ export default { @@ -62,7 +62,7 @@ export default {
62 }, 62 },
63 // 右侧列表元素变化 63 // 右侧列表元素变化
64 dataChange(data) { 64 dataChange(data) {
65 - for (var item in this.columns) { 65 + for (let item in this.columns) {
66 const key = this.columns[item].key; 66 const key = this.columns[item].key;
67 this.columns[item].visible = !data.includes(key); 67 this.columns[item].visible = !data.includes(key);
68 } 68 }
yudao-ui-admin/src/components/TopNav/index.vue
@@ -69,7 +69,7 @@ export default { @@ -69,7 +69,7 @@ export default {
69 childrenMenus() { 69 childrenMenus() {
70 const childrenMenus = []; 70 const childrenMenus = [];
71 this.routers.map((router) => { 71 this.routers.map((router) => {
72 - for (var item in router.children) { 72 + for (let item in router.children) {
73 if (router.children[item].parentPath === undefined) { 73 if (router.children[item].parentPath === undefined) {
74 if(router.path === "/") { 74 if(router.path === "/") {
75 router.children[item].path = "/" + router.children[item].path; 75 router.children[item].path = "/" + router.children[item].path;
@@ -135,10 +135,10 @@ export default { @@ -135,10 +135,10 @@ export default {
135 }, 135 },
136 // 当前激活的路由 136 // 当前激活的路由
137 activeRoutes(key) { 137 activeRoutes(key) {
138 - var routes = []; 138 + const routes = []
139 if (this.childrenMenus && this.childrenMenus.length > 0) { 139 if (this.childrenMenus && this.childrenMenus.length > 0) {
140 this.childrenMenus.map((item) => { 140 this.childrenMenus.map((item) => {
141 - if (key == item.parentPath || (key == "index" && "" == item.path)) { 141 + if (key === item.parentPath || (key === "index" && "" === item.path)) {
142 routes.push(item); 142 routes.push(item);
143 } 143 }
144 }); 144 });
yudao-ui-admin/src/components/Verifition/Verify.vue
@@ -440,7 +440,6 @@ export default { @@ -440,7 +440,6 @@ export default {
440 right: 0; 440 right: 0;
441 top: 0; 441 top: 0;
442 bottom: 0; 442 bottom: 0;
443 - background-size: cover;  
444 z-index: 9999; 443 z-index: 9999;
445 background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADIEAYAAAD9yHLdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAJ4pJREFUeNrt3XtcVXW6P/Dn2VwCBxUzNbnkkXRSGzXW2huQRLyMIqKRJF7Q1CkrDS+VGp3Gy9g5YzI6qVsNfTmlqGmipQiIiJqAcnOvhaKRHidshoatpKaBogL7OX+s6Mz8flO5CfzutXne/+zXWhR8QOXZ3+93Pd8vAHuAEKW10lpp7dix0mXpsnR5/34pX8qX8r/7TpZlWZaJGl//9f6+fY3/X+PnEf2dMMYY/yJqYcbbxtvG2/7+lEM5lLN7NyyCRbBowICmfj56m96mt/PzDZGGSEPkxImWNpY2ljYVFaK/T8ZY6+MiOoCzMn1t+tr09a9/TQfpIB0sLITlsByW9+r1Sz8v5mEe5vn7Q3toD+0nT/Y77Xfa73ROTuWNyhuVNyorRX/fjLHWg0cgzUybcmrThvIoj/JUFcMwDMOeeKLFvmA8xEN8TQ2sh/Ww/rnnFFVRFfXwYdE/B8aY8zOIDuBsqDf1pt6vvdbihaPRBtgAG7y8wAQmMKWlyflyvpw/aZLonwNjzPlxAWlWiOiN3ugdH//Av7QFLGBxd4dzcA7O7dgh75H3yHvmzBH9E2GMOS+ewmomplhTrCn2qads5bZyW3lJieg8jWgADaABf/yjul5dr65fvPj7uyQ6F2NM/3gE0kxsb9vetr3do4foHP8vLMACLPj977W1mS1bwimcwsnVVXQuxpj+cQFpLt/Ct/BtmzaiY/y0adNqltYsrVmakqIVEg8P0YkYY/rFj/E2E5+zPmd9znbpAggI+PzzovP8qItwES727n23w90OdzuEhfl86fOlz5f79lmtVqvVeveu6HiMMf3gEUgzqVfqlXqluFi7qqsTnefnYCImYmJ4OOVSLuWeONF/Zv+Z/Wf6+orOxRjTD15Eb2ZSlVQlVWVkYCRGYuSoUaLz3C86QSfoRHk5lVAJlURElISWhJaE/vWvonMxxhwXj0CaGT1Lz9KzS5eCDDLI+nnaCQfiQBwYEID1WI/1J05oi+6SJDoXY8xx8RpIM7tccbnickVlZdekrkldk4gwAzMwY8gQ0bnuF2ZhFmZ5eWkd7pMn+1T4VPhUKIq2RvLll6LzMcYcB09htShE6YJ0Qbqwdi3GYRzG6bCxbxbMgll372ojqilTlEAlUAncu1d0LMaYeDyF1aKI1CfUJ9Qn5s6FuTAX5r71lt6mtiAJkiDpoYeojuqo7uOP5VQ5VU6dOVN0LMaYeDwCecCkFClFSpk+HcbBOBi3eTOa0IQm/TX20RbaQlsSE9V+aj+131tvic7DGHvwuIAIIp+Xz8vno6OpJ/Wknrt2YRAGYZCnp+hcdpsAE2DC++8rbypvKm82TtHZbKJjMcZaHhcQwYxnjWeNZ8PDaTpNp+mpqdrd9u1F52qa/fu9LF4WL8ukSTmYgzl4547oRIyxlsNrIIJZ+lr6Wvrm5GBv7I29Bw6EN+ANeOMf/xCdq2mefbbGWGOsMR48GHQx6GLQxXbtRCdijLUcfozXQVSWVpZWllZV+df51/nX7dtH8RRP8aNGwQk4ASc6dhSdzz7du9NVukpXR4zoFNMpplPM/v1Xsq9kX8m+dUt0MsZY8+ERiIMpTitOK067dMm1zrXOtS4sTLurqqJz2e04HIfjsuw623W26+yCgsD8wPzAfMfbrZgx1nRcQBxUUVxRXFHclSu1CbUJtQnh4dpd/R1V+0OHuxGNaMzLazw3RXQuxtgvx4voOtEnpU9KnxR3d88yzzLPsu3bIQ3SIG38eNG57BYEQRB04wZVUzVVP/OMukPdoe7IyxMdizFmPx6B6ETZ+LLxZePv3Qv4PODzgM/j4mg37abdGzeKzmW3YiiGYm9vHIyDcXB2tlwil8gl48aJjsUYsx+PQHROTpaT5eSEBDCDGcwrVojOYy9KoiRKamgAK1jBOmuWGq1Gq9GbN4vOxRj7eVxAnISUKWVKma++ihVYgRXr1sEm2ASbDPoZYTZu8bIJNsGmd95RUEEF//AH0bEYYz9OP79g2E9SI9VINfL996mWaql23DjaQBtog44a+RRQQEEEIxjBuHSptgml2ax9UEeFkLFWhEcgTko7z2PIECqiIiravx+DMRiD9drYt3MnEBDQ9OmKqqiK6vgnPjLWGvA7OyelKIqiKJ99pj31NHQovAavwWtVVaJzNU1cHKyCVbAqM/Ppjk93fLpj27aiEzHGeATSahjTjenG9IAAOkyH6XBWFpyEk3BSf419tISW0JJTp2wdbB1sHaKiTg86Pej0oG++EZ2LsdaIC0grozXyPfpow7SGaQ3TMjNxKS7FpTps7CMgoPPntYuICG1q6+9/Fx2LsdaEC0gr1Z/6U3/y9nZNcE1wTThwAI7CUTjauHWK3litVEEVVDFypFqlVqlVpaWiEzHWGvAaSCt1Bs/gGbxx46bfTb+bfsOHUxqlUZpej6rt2hVX4kpcefy4sYOxg7HD00+LTsRYa8AjEAYAALGxsbGxsS4u5XK5XC4nJcEe2AN7XnpJdK6muX1bex0/XnuYICNDdCLGnBEXEPZvIMokk0xLlzb2ZYhOZK/GDne8htfw2iuvKJFKpBL5wQeiczHmTPg8EPZvWZdZl1mXHT/uY/Yx+5ivX4cn4Ul4MiLih4Y/B4cZmIEZBgPchJtwc8wY33Lfct/y2trKO5V3Ku+cPCk6H2POwOF/ETDHoDUmxsVpV1u3aq9ubqJzNY3ZrE1tvf66ds1nuDPWFFxAmF0C9wTuCdwzbBj6oi/67tuHc3AOztFfYx9Npak0dft2TMZkTH7xRe5wZ8x+XEBYk5i6m7qbuptMtlG2UbZRGRlQCIVQ2KmT6Fx2i4RIiExPh0zIhMwJE7SRSeMiPGPsp3ABYb+INrXVq5d2lZWlvT72mOhcdiMgoKIi7WL0aG1EcvWq6FiMOTLuA2G/iPaOvbEjPCQEBsEgGKTDRj4EBAwOhkWwCBbl5BhvG28bb/v7i47FmCPjEQhrVn379u3bt2+HDm55bnlueWlpOAyH4TAdNvaFQiiE/u1v2Bk7Y+eICMtiy2LL4gsXRMdizJHwY7ysWVVVVVVVVd2545Ptk+2T/fHH2t3GvbZ+/WvR+e5bBVRAhbc3zaJZNCsu7lG3R90edcvLu6xcVi4rX38tOh5jjoCnsFiLaFyMDggICAgIiI6mPbSH9uivkQ/n4Tyc9/DDBjSgAbOzA/MD8wPzR44UnYsxR8BTWOwBQpTmS/Ol+StW4HE8jsfffFN0IrsZwQjGe/dgGkyDadOnK6FKqBK6a5foWIyJwFNY7IGyFlgLrAVHjnTd3nV71+03buDj+Dg+PmKEXjrcoRIqodLFBaqgCqpiYnzAB3ygpsZqtVqt1oIC0fEYe5C4gDAhrNus26zbiop8yZd86dIlqIEaqBk9Wvuoi+P/vbSCFayNBW/EiK5ZXbO6Znl6WpOsSdako0dFx2PsQXD8d3ysVZCWS8ul5aNH4yf4CX6ye7d2t00b0bmaJjnZy+Jl8bLMmJGDOZiD9fWiEzHWEriAMIciS7IkS8HB2lV6utaf8cgjonPZi+IpnuIPHHAf7j7cffjEiYX+hf6F/rW1onMx1pz4KSzmULQO8KKihjUNaxrWhIdTPuVTfkWF6Fz2wg24ATc888y9gnsF9woyM7XC2L696FyMNScuIMwhnR50etDpQWVltI7W0bqwMMqjPMrTXyMfJmIiJoaHUy7lUu6JE/1n9p/Zf6avr+hcjDUHnsJiuhBSEVIRUvHww3Xn6s7VnUtP17YcGTBAdC57USIlUuKlS7YDtgO2AxERp82nzafNFy+KzsVYU/AIhOmCtoZw/bpWQIYPh9WwGlYfOiQ6l70wARMwoXt3wzjDOMO4vDxtM0pJEp2LsabgAsJ0pXRh6cLShbdu1V6uvVx7OTqaUimVUvXXyIev4+v4epcuEA/xEJ+To62RjBghOhdj9uApLOYEELVfwCtXak9tzZ8vOpHdvu9wJ5lkkp9/Xn1ZfVl9OSVFdCzGforjN2wxdh+0TvDDh31W+KzwWXHnDtRDPdQPG/avDX8OrLHDfQbMgBkxMT6jfUb7jK6qsn5s/dj6scUiOh5j/47j/8NirAm0tYVp0+gUnaJTf/kLmtCEJldX0bnsRVtoC21JTFT7qf3Ufm+9JToPY/+MCwhzavJ5+bx8PjqaelJP6rlrFwZhEAZ5eorOZbcJMAEmvP++8qbypvLmnDnaTZtNdCzWunEBYa2C8azxrPFseDhNp+k0PTVVu6vDxr4oiIKoffu8lnkt81oWF6dtlXLnjuhYrHXip7BYq2Dpa+lr6ZuTg72xN/YeOBDegDfgjX/8Q3Quu2VABmSMHVtjrDHWGA8eDLoYdDHoYrt2omOx1okX0VmrUllaWVpZWlXlX+df51+3b5+2Z9WoUXACTsCJjh1F57NP9+50la7S1REjOsV0iukUs3//lewr2Veyb90SnYy1DjwCYa1ScVpxWnHapUuuda51rnVhYdpdVRWdy27H4Tgcl2XX2a6zXWcXFGgnJvboIToWax24gLBWrSiuKK4o7sqV2oTahNqE8HDt7uHDonPZCwfiQBwYEIBGNKIxL88Ua4o1xTaeRc9Yy+BFdMb+SZ+UPil9UtzdPcs8yzzLtm+HNEiDtPHjReeyWxAEQdCNG1RN1VT9zDPqDnWHuiMvT3Qs5lx4BMLYPykbXza+bPy9ewGfB3we8HlcHO2m3bR740bRuexWDMVQ7O2Ng3EwDs7OlkvkErlk3DjRsZhz4REIY/dBTpaT5eSEBDCDGcwrVojOYy9KoiRKamjQOvNnzVKj1Wg1evNm0bmYvnEBYcwOUqaUKWW++ipWYAVWrFsHm2ATbDLoZyQvgwwykZb7nXcUVFDBP/xBdCymT/r5i8+YA1Aj1Ug18v33qZZqqXbcONpAG2iDjhr5FFBAQdQ2b1y6VLogXZAumM3aB3VUCJlD4BEIY7+AtufWkCFUREVUtH8/BmMwBuu1sW/nTiAgoOnTtaOF6+pEJ2KOjd9xMPYLKIqiKMpnn2lPPQ0dCq/Ba/BaVZXoXE0TFwerYBWsysx8uuPTHZ/u2Lat6ETMsfEIhLFmZEw3phvTAwLoMB2mw1lZcBJOwkn9NfbRElpCS06dsnWwdbB1iIrSzqj/5hvRuZhj4QLCWAvQGvkefbRhWsO0hmmZmbgUl+JSHTb2ERDQ+fPaRUSENrX197+LjsUcAxcQxlpQf+pP/cnb2zXBNcE14cABOApH4Wjj1il6Y7VSBVVQxciRapVapVaVlopOxMTiNRDGWtAZPINn8MaNm343/W76DR9OaZRGaXv3is7VNF274kpciSuPHzd2MHYwdnj6adGJmFg8AmHsAYqNjY2NjXVxKZfL5XI5KQn2wB7Y89JLonM1ze3b2uv48drDBBkZohOxB4sLCGPCIMokk0xLlzb2ZYhOZK/GDne8htfw2iuvKJFKpBL5wQeic7EHg88DYUwg6zLrMuuy48d9zD5mH/P16/AkPAlPRkT80PDn4DADMzDDYICbcBNujhnjW+5b7lteW1t5p/JO5Z2TJ0XnYy3L4f+CMtaaaI2JcXHa1dat2qubm+hcTWM2a1Nbr7+uXfMZ7s6GCwhjDihwT+CewD3DhqEv+qLvvn04B+fgHP019tFUmkpTt2/HZEzG5Bdf5A5358IFhDEHZupu6m7qbjLZRtlG2UZlZEAhFEJhp06ic9ktEiIhMj0dMiETMidM0EYmjYvwTK+4gDCmA9rUVq9e2lVWlvb62GOic9mNgICKigwHDAcMB6KiTvmd8jvld+2a6FisabgPhDEd0N6xN3aEh4TAIBgEg3TYyIeAgMHBtmJbsa04NzfoYtDFoIt+fqJjsabhEQhjOtS3b9++fft26OCW55bnlpeWhsNwGA7TYWNfKIRC6N/+hp2xM3aOiLAstiy2LL5wQXQsdn/4MV7GdKiqqqqqqurOHZ9sn2yf7I8/1u427rX161+LznffKqACKry9aRbNollxcY+6Per2qFte3mXlsnJZ+fpr0fHYT+MpLMZ0rHExOiAgICAgIDqa9tAe2qO/Rj6ch/Nw3sMPG9CABszODswPzA/MHzlSdC7203gKizGngyjNl+ZL81eswON4HI+/+aboRHYzghGM9+7hLbyFt6ZNs+yw7LDsaBxpMUfBU1iMOSFrgbXAWnDkSNftXbd33X7jBj6Oj+PjI0bopcMdKqESKl1coBt0g27PPecDPuADNTVWq9VqtRYUiI7HNFxAGHNi1m3WbdZtRUW+5Eu+dOkS1EAN1IwerX3UxfH//VvBCtbGgjdiRNesrlldszw9rUnWJGvS0aOi47V2jv9OhDHWbKTl0nJp+ejR+Al+gp/s3q3dbdNGdC67xUAMxGzd6vW219teb7/0Ug7mYA7W14uO1dpwAWGsFZIlWZKl4GDtKj1d68945BHRuexFGZRBGamp7nXude51kyYV+hf6F/rX1orO1VrwU1iMtULanlRFRQ1rGtY0rAkPp3zKp/yKCtG57IVRGIVR0dH3Cu4V3CvIzNQKY/v2onO1FlxAGGvFTg86Pej0oLIyWkfraF1YGOVRHuXpr5EPEzERE8PDKZdyKffEif4z+8/sP9PXV3QuZ8dTWIyxHzyV+1TuU7mdOhm+NXxr+DYjA9/Bd/Adk0l0LnvRCTpBJ8rLaRgNo2FhYSX5Jfkl+ZWVonM5Gx6BMMZ+oI1Ivvnmzt07d+/cHTpUu3v4sOhc9sKBOBAHBgQYFhsWGxbv3dsnpU9KnxR3d9G5nA2PQBhjP6rxF69HqEeoR+jWrRiN0Rg9aZLoXE3z6qta535SkugkzoILCGPsPhkM0gXpgnRhzRqMwziMmzNHdKL7thAWwsKvvlImKhOVid27i47jLLiAMMbsJifLyXJyQgKchJNw8t139dLhjs/is/hsr16862/z4DUQxpjdlGnKNGVaYiJFURRFvfIKJVESJTU0iM71s76Bb+Cb3/xGdAxnwQWEMdZkarQarUZv3ky9qTf1Hj8eXoFX4BWbTXSuH0PP0rP07K9+JTqHs+ACwhhrstjY2NjYWBcX3ISbcFNUFGyCTbDJ4Li/VxbCQljIW540F8f9g2aMOSztjPY2bb7c8OWGLzccOIC7cBfueuEF0bl+ViqkQuqNG6JjOAtX0QEYY/rReJQuHaWjdFRHR+nKIINMVLerblfdLotFdBxnwQWEMfazgi4GXQy66OfXcLbhbMPZrCwYBsNgWJ8+onPdL/oT/Yn+lJ9f6l3qXepdVSU6j7PgAsIY+1HaVFWvXg0TGyY2TMzK0u4+9pjoXPYypBhSDCl//KPoHM6G10AYY/8fU3dTd1N3kwlCIARCcnO1u/orHPQcPUfPbdpkednysuXlzEzReZwNj0AYYz+Q3pbelt6OiLBdt123Xf/kEyiEQijU32OvFE/xFH/gwHc139V8VzNvnug8zsrhO0cZYy1Pm6qKi9Outm7VXt3cROeyF31Kn9Kn27bhWByLY2fM0M49qasTnctZ8RQWY62Ysaexp7Hn7NlaA+D27dpd/RUOjdmsdlO7qd2mT+fC8WC4iA7AGHvwftjL6jSchtPvvaeXvaz+7xvQHssld3In94QE9Zh6TD22eLHoWK0Nj0AYawUaO8blcrlcLt+0CcxgBvOKFaJz2YtO0Sk6VV+P5/E8np8xQ/1U/VT9dOVK0blaK/2842CM2a2HuYe5h/mhh9pvbb+1/dbt2wEBAWNjRedqmtu3tU7y2FjFT/FT/A4eFJ2oteMRCGNOSDsIysurXVy7uHZxaWm6LRxzYS7M/fZbLMdyLB8xgguHY+ERCGNOJHhn8M7gnV261I2pG1M3JjMTB+NgHBwYKDqX3QbAABhQWQn5kA/5I0dqi+Jnz4qOxf4Vj0AYcwJBY4LGBI3p3r3erd6t3i0vT7eFIwzCIOyLL7TCMWAAFw7HxiMQxnTMOMU4xTjlN78hb/Im76wsKIACKPDxEZ3LXrSEltCSU6dwGS7DZaNGaYXj6lXRudhP4050xnRIJplkGjyYjGQk4/792t327UXnshfNp/k0/8gRzxc8X/B8ISbm5LWT105eq64WnYvdH57CYkxH5PPyefl8dDQVUREVNe7tpL/CAdEQDdEffYSrcBWuGjWKC4c+8RQWYzogpUgpUsr06TAOxsG4zZvRhCY0uep0BsFsVhRFUZTXX9euHfcIXPbTuIAw5sB+6BjXaeNfY8e4dtTtO+8oqKCCf/iD6Fiseej0HQxjzgxRKpPKpLJVq+B5eB6ef+MN0YnsRUmUREkNDWAFK1hnzVJRRRU3bxadizUvHoEw5gC0xj93d4+rHlc9riYn4wf4AX4wcaLoXHabBbNg1t27WIqlWDp5ssVsMVvMn3wiOhZrGVxAGBOo38p+K/ut/NWv3ILdgt2C9+6F1+F1eH3kSNG57BYEQRB04wZVUzVVP/OMukPdoe7IyxMdi7UsLiCMCRBSEVIRUvHww3Xn6s7VnUtPh0WwCBYNGCA6V9NYrbZSW6mtNDKypK6krqTuzBnRidiDwY/xMvYABa4KXBW4qlu3ex3vdbzXMT9fr4WDTtAJOlFerl2FhXHhaJ14EZ2xB+Cp3Kdyn8rt0weDMRiDDx3CUAzFUH9/0bnstgyWwTKLpX59/fr69VFRpUqpUqpUVYmOxcTgKSzGWpAsyZIsBQdrV+np2q64jzwiOpfdhsNwGH7smMuLLi+6vDh2bHHP4p7FPb/7TnQsJhZPYTHWAqTl0nJp+ejRWsE4dky3hSMKoiBq3z6vd73e9Xo3KooLB/tnPAJhrBlJnaXOUucpU9Af/dH/ww+1uzo8YzwVUiF1wwbt/I25c7Wb3DHO/hWfic5YM5COSEekI/PmYSAGYuDGjdoZ4/rbaoS20Bbakpio9lR7qj0bGxiJROdijkl3f8EZcxyIUqlUKpW++y7+Dn+Hv0tIEJ3IXo0d42hFK1pnz1b7qf3Ufhs3is7F9IGnsBizQ2xsbGxsrItL+ZflX5Z/uXGjtrYxY4boXHb7vmOcbGQj29Sp6svqy+rLKSmiYzF94QLC2H3oYe5h7mF+6KH2Ie1D2ofs3Kn9Ao6JEZ3LbvEQD/E1NRADMRATE6N4K96Kd3a26FhMn7iAMPYT+lN/6k/e3q5GV6OrMS1NuztwoOhc9qLVtJpWX7liWGRYZFgUGWnJteRacktKROdi+sZrIIz9G7Isy7LctSscgANwoPHgpv79ReeyFyVSIiVeumTba9tr2xsRoeaquWruxYuiczHnwCMQxv6JVjgefxwICCgrS1vjePxx0bnsRTmUQznnzjUsaFjQsGDkyDMbz2w8s/Ef/xCdizkXbiRkDAACQwNDA0ONRgiBEAgpKNBt4UigBErIycFBOAgHDRzIhYO1JB6BsFZNmi3NlmYPHQprYA2s2bdP26uqXTvRuexFGZRBGamp7nXude51kyYV+hf6F/rX1orOxZwbr4GwVklaK62V1o4dC8EQDME7d2qFw8NDdC67xUAMxGzd2rZL2y5tu7z0Ug7mYA7W14uOxVoHHoGwVkUaJA2SBsXH4xScglPMZu2sboPupnJ/6Bjvp/ZT+731lug8rHXiAsJaBTlZTpaTExLADGYwr1ghOo/93wDIIBNBOIRD+IIFymRlsjL5vfdEx2Ktm+7eeTF2Pxo7xqW/Sn+V/pqUpNvCYQQjGO/dw9t4G2/HxXHhYI6ERyDMqfzQMX69/fX217dtgzRIg7Tx40XnspsJTGC6dcs21TbVNnXcuJLQktCS0EOHRMdi7J/xCIQ5hT4pfVL6pHh5tYtrF9cuLi1Nr4WD1tJaWnv9uo1sZKPhw7lwMEfGIxCma8E7g3cG7+zSpf7P9X+u//PBg9pdSRKdy26hEAqhf/sbdsbO2DkiwrLYstiy+MIF0bEY+yn8GC/TpaAxQWOCxnTvXu9W71bvlpWl3e3ZU3Quu/0efg+/Lytz6evS16VvRIR24t/XX4uOxdj94ALCdMU4xTjFOOU3v2mIbIhsiDx0CFbACljh6ys6l90ICKioyBBkCDIERUUV+xX7FftduyY6FmP24CkspgvGs8azxrPh4TSdptP01FTtbvv2onPZbR2sg3VpaW7+bv5u/hMmcMc40zNeRGcOzfhfxv8y/tczz9j62PrY+jTuiqu/wkGf0qf06bZtMBtmw+znnuPCwZwBj0CYQ9J2xZ02jU7RKTr1l7+gCU1o0t8Z4xqzWVEURVFee0275jPGmXPgEQhzKD90jMsgg7xli+4Kx/cd49SNulG3N9/UCse8edoHuXAw58IjEOYAEOW18lp57Z/+BNtgG2xbsEB0IntpI6X6esNgw2DD4Fde0U78+/BD0bkYa0n6eWfHnIrW+Ofu7hHqEeoRunUrREM0RE+aJDpX09y+jZVYiZWxsVrhaOxHYcy58RQWe6D6rey3st/KX/3K447HHY87+/djNEajHgvHXJgLc7/9FsuxHMtHjFD8FD/FjwsHa11cRAdgrUNIRUhFSMXDD9Ntuk23MzNxFa7CVUOHis5ltwEwAAZUVsJe2At7f/tb5ZJySblksYiOxZgIvAbCWpR2VKyPj+Gu4a7hbuOeTn37is5ltzAIg7AvvoBcyIXckSMVVVEV9e9/Fx2LMZF4Cou1iMDqwOrA6t698TP8DD8rLNTu6q9w0BJaQktOndIKx6BBXDgY+z88AmHNytjT2NPYMyiI2lJbapuRAQgI+MgjonPZbSWshJVHj3rEesR6xI4de/LayWsnr1VXi47FmCPhEQhrFsZ0Y7ox/be/tSXbkm3JR47otnBEQzREf/QRLIAFsCAykgsHYz+ORyDsF5E6S52lzlOmoD/6o39j34Obm+hc9qKdtJN2rlunPqE+oT7R2DFus4nOxZgj4xEIaxJZkiVZmjsX/xv/G/87OVm7q6PC0XjGuAUsYFm2TCscc+dqH+TCwdj94BEIswOiTDLJtHSpdlb30qWiE9mLkiiJkhoawApWsM6apUar0Wr05s2iczGmR1xA2E+KjY2NjY11cSmXy+VyOSkJ9sAe2PPSS6Jz2W0WzIJZd+9iKZZi6eTJFrPFbDF/8onoWIzpGRcQ9m/1MPcw9zA/9FA7j3Ye7Tw++gg34Sbc9NxzonPZLQiCIOjGDaqmaqp+5hl1h7pD3ZGXJzoWY86A10DYv+hP/ak/eXu3/7r91+2/zs7Wa+GgAiqggsuXDVcNVw1XhwzhwsFY8+OtTBgAAJhiTbGm2EcfhTbQBtpkZ+OH+CF+GBwsOpe96ASdoBPl5aSSSurQocp8Zb4yv6xMdC7GnBEXkFZO698ICKAqqqKqY8dwG27DbX36iM5lt8EwGAYrSn1ZfVl92dChZyaemXhmYkWF6FiMOTPezr2VkiRJkiRZpm/pW/r24EE4CSfhZOfOonM1zWefucx0meky89lnlZ5KT6Xnd9+JTsRYa8BrIK2MdlTskCFQDMVQfOwYrIE1sEaHhSMKoiBq3z4vi5fFyzJqVHHP4p7FXDgYe6D4KaxWQlorrZXWjh0LwRAMwTt3YjzGY7yHh+hcdkuFVEjdsEE7f4Mb/xgTiUcgTk7KlDKlzFdfRU/0RM+9e/VaOGgLbaEtiYla4Zg9W7vLhYMxkXgNxEnJyXKynJyQAItgESxasUJ0Hns1doyjFa1onT1b7af2U/tt3Cg6F2Ps//BTWE6isWPc44DHAY8D77+PC3EhLnzrLdG57PZ9x7i21ciUKepkdbI6uXGvLcaYI+E1EJ3rk9InpU+Ku7tnmWeZZ9n27ZAGaZA2frzoXHaLh3iIr6mBGIiBmJgYxVvxVryzs0XHYoz9OC4gOqUVDi8vz0TPRM/Exj2dRowQnctetJpW0+orVwyLDIsMiyIjLbmWXEtuSYnoXIyxn8drIDoTvDN4Z/DOLl3qE+sT6xMPHtTuSpLoXPaiREqkxEuXbHtte217IyLUXDVXzb14UXQuxtj946ewdELbo+o//qPukbpH6h7JzdXu6rBw5FAO5Zw717C3YW/D3rCw0+bT5tNmLhyM6RFPYTk403rTetP6J5+0dbB1sHXIyoL34D14z9dXdC57UQIlUEJODq7AFbgiOlpRFVVRb94UnYsx1nRcQByUNFIaKY0MCdEWxdPTMQRDMKRjR9G57EUZlEEZqanude517nWTJhX6F/oX+tfWis7FGPvleA3EwQSWB5YHlo8ZA92gG3TbvRuDMAiDPD1F57JbDMRAzNatbbu07dK2y0sv5WAO5mB9vehYjLHmwyMQByEfk4/Jx6ZOpcE0mAZ/8AGa0IQmV90V+MaOca3xT4d9KIyx+8YFRDDpiHREOjJvHqZgCqasXg0KKKCgfv5cZJBBJoJwCIfwBQuUycpkZfJ774mOxRhrebp7h+scEOUb8g35RmIiDINhMGzhQtGJ7GYEIxjv3cNbeAtvTZtmmWyZbJn88ceiYzHGHhwuIA9IOIVTOLm6Vv+5+s/Vf960SSscL7wgOpfdTGAC061btqm2qbap48aVhJaEloQeOiQ6FmPsweM+kBamnb/Rpk31N9XfVH+Tmoq7cBfu0l/hoLW0ltZev24jG9lo+HAuHIwx/cy168zTHZ/u+HTHtm3v/O7O7+787vBh+Aw+g89CQkTnsttCWAgLv/rKMNAw0DAwIuKU3ym/U37/8z+iYzHGxOMC0iIQ5Xw5X85PTYU5MAfmjBkjOlHTnD1re8j2kO2hkSNL8kvyS/IrK0UnYow5Di4gzcw4xTjFOGXiRPqCvqAvdu0SncduBARUVGQ4YDhgOBAVpY04rl0THYsx5nh4DaSZUSfqRJ3+8z9F57DbOlgH69LS3FLdUt1ShwzhwsEY+zlcQJqJMd2YbkwPCIBcyIXcfv1E57lvH8FH8NGWLV4DvAZ4DYiJ4a1GGGP3ix/jbSbUg3pQj759Reewj9ms9FJ6Kb1ee+3774JEJ2KM6QePQJoJlVIplXboIDrHj/q+Y1w7Y/yNNxRFURRl3rzv03PhYIzZjQtIMyEjGcnoeGsGdIpO0an6ejyP5/H8jBmWSkulpXL1atG5GGP65yI6gLN4rPyx8sfK6+qomqqpuvGdvUDfd4wbrAarwRoTY1lvWW9Zv2eP6FiMMefBI5BmUpxWnFacdukSLIElsOTMGVE5qJAKqfDaNfqKvqKvfvtby8uWly0vZ2aK/vkwxpwPF5BmRlfoCl1ZvlzMV7dawRd8wXfoUPWQekg9VFgo+ufBGHNe3EjYIhCly9Jl6fK+fRiFURgVHd1iXyoMwiDsiy9wOS7H5RERljaWNpY2FRWifwKMMefHI5AWQeT5pOeTnk8+/zy8C+/Cu7m5zf4lvv+8hgWGBYYFYWFcOBhjDxovoreQitqK2orae/d8Pvf53Ofzjz4CBAR0c6NiKqZiWcbNuBk3u7nd7+fT/r/aWqzHeqxftQpWwkpY+cILloWWhZaFNTWiv1/GWOvDU1gPWGBoYGhgqI+Py1cuX7l8NWEC7aW9tHfIELpO1+m6v3/jf4cP48P4cEUFvUPv0DvHjtF39B19l5LCmxoyxhzF/wKeYeMy/zPC/wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNy0xMi0xNVQxNTo1NzoyNyswODowMKIRvi8AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTctMTItMTVUMTU6NTc6MjcrMDg6MDDTTAaTAAAATXRFWHRzdmc6YmFzZS11cmkAZmlsZTovLy9ob21lL2FkbWluL2ljb24tZm9udC90bXAvaWNvbl9jazFiemEwemo5ampkY3hyL3JpZ2h0LnN2Z7O3J80AAAAASUVORK5CYII="); 444 background-image: url("data:image/png;base64,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");
446 background-size: contain; 445 background-size: contain;
yudao-ui-admin/src/components/Verifition/Verify/VerifyPoints.vue
@@ -58,7 +58,7 @@ @@ -58,7 +58,7 @@
58 * VerifyPoints 58 * VerifyPoints
59 * @description 点选 59 * @description 点选
60 * */ 60 * */
61 -import { resetSize, _code_chars, _code_color1, _code_color2 } from './../utils/util' 61 +import { resetSize } from './../utils/util'
62 import { aesEncrypt } from '@/utils/ase' 62 import { aesEncrypt } from '@/utils/ase'
63 import { reqGet, reqCheck } from './../api/index' 63 import { reqGet, reqCheck } from './../api/index'
64 64
@@ -167,7 +167,7 @@ export default { @@ -167,7 +167,7 @@ export default {
167 setTimeout(() => { 167 setTimeout(() => {
168 // var flag = this.comparePos(this.fontPos, this.checkPosArr); 168 // var flag = this.comparePos(this.fontPos, this.checkPosArr);
169 // 发送后端请求 169 // 发送后端请求
170 - var captchaVerification = this.secretKey ? aesEncrypt(this.backToken + '---' + JSON.stringify(this.checkPosArr), this.secretKey) : this.backToken + '---' + JSON.stringify(this.checkPosArr) 170 + const captchaVerification = this.secretKey ? aesEncrypt(this.backToken + '---' + JSON.stringify(this.checkPosArr), this.secretKey) : this.backToken + '---' + JSON.stringify(this.checkPosArr)
171 const data = { 171 const data = {
172 captchaType: this.captchaType, 172 captchaType: this.captchaType,
173 'pointJson': this.secretKey ? aesEncrypt(JSON.stringify(this.checkPosArr), this.secretKey) : JSON.stringify(this.checkPosArr), 173 'pointJson': this.secretKey ? aesEncrypt(JSON.stringify(this.checkPosArr), this.secretKey) : JSON.stringify(this.checkPosArr),
@@ -205,8 +205,8 @@ export default { @@ -205,8 +205,8 @@ export default {
205 205
206 // 获取坐标 206 // 获取坐标
207 getMousePos: function(obj, e) { 207 getMousePos: function(obj, e) {
208 - var x = e.offsetX  
209 - var y = e.offsetY 208 + const x = e.offsetX
  209 + const y = e.offsetY
210 return { x, y } 210 return { x, y }
211 }, 211 },
212 // 创建坐标点 212 // 创建坐标点
@@ -253,7 +253,7 @@ export default { @@ -253,7 +253,7 @@ export default {
253 }, 253 },
254 // 坐标转换函数 254 // 坐标转换函数
255 pointTransfrom(pointArr, imgSize) { 255 pointTransfrom(pointArr, imgSize) {
256 - var newPointArr = pointArr.map(p => { 256 + const newPointArr = pointArr.map(p => {
257 const x = Math.round(310 * p.x / parseInt(imgSize.imgWidth)) 257 const x = Math.round(310 * p.x / parseInt(imgSize.imgWidth))
258 const y = Math.round(155 * p.y / parseInt(imgSize.imgHeight)) 258 const y = Math.round(155 * p.y / parseInt(imgSize.imgHeight))
259 return { x, y } 259 return { x, y }
yudao-ui-admin/src/components/Verifition/Verify/VerifySlide.vue
@@ -193,7 +193,7 @@ export default { @@ -193,7 +193,7 @@ export default {
193 this.$parent.$emit('ready', this) 193 this.$parent.$emit('ready', this)
194 }) 194 })
195 195
196 - var _this = this 196 + const _this = this
197 197
198 window.removeEventListener('touchmove', function(e) { 198 window.removeEventListener('touchmove', function(e) {
199 _this.move(e) 199 _this.move(e)
@@ -228,11 +228,12 @@ export default { @@ -228,11 +228,12 @@ export default {
228 228
229 // 鼠标按下 229 // 鼠标按下
230 start: function(e) { 230 start: function(e) {
  231 + let x
231 e = e || window.event 232 e = e || window.event
232 if (!e.touches) { // 兼容PC端 233 if (!e.touches) { // 兼容PC端
233 - var x = e.clientX 234 + x = e.clientX
234 } else { // 兼容移动端 235 } else { // 兼容移动端
235 - var x = e.touches[0].pageX 236 + x = e.touches[0].pageX
236 } 237 }
237 this.startLeft = Math.floor(x - this.barArea.getBoundingClientRect().left) 238 this.startLeft = Math.floor(x - this.barArea.getBoundingClientRect().left)
238 this.startMoveTime = +new Date() // 开始滑动的时间 239 this.startMoveTime = +new Date() // 开始滑动的时间
@@ -247,15 +248,16 @@ export default { @@ -247,15 +248,16 @@ export default {
247 }, 248 },
248 // 鼠标移动 249 // 鼠标移动
249 move: function(e) { 250 move: function(e) {
  251 + let x
250 e = e || window.event 252 e = e || window.event
251 if (this.status && this.isEnd === false) { 253 if (this.status && this.isEnd === false) {
252 if (!e.touches) { // 兼容PC端 254 if (!e.touches) { // 兼容PC端
253 - var x = e.clientX 255 + x = e.clientX
254 } else { // 兼容移动端 256 } else { // 兼容移动端
255 - var x = e.touches[0].pageX 257 + x = e.touches[0].pageX
256 } 258 }
257 - var bar_area_left = this.barArea.getBoundingClientRect().left  
258 - var move_block_left = x - bar_area_left // 小方块相对于父元素的left值 259 + const bar_area_left = this.barArea.getBoundingClientRect().left
  260 + let move_block_left = x - bar_area_left // 小方块相对于父元素的left值
259 if (move_block_left >= this.barArea.offsetWidth - parseInt(parseInt(this.blockSize.width) / 2) - 2) { 261 if (move_block_left >= this.barArea.offsetWidth - parseInt(parseInt(this.blockSize.width) / 2) - 2) {
260 move_block_left = this.barArea.offsetWidth - parseInt(parseInt(this.blockSize.width) / 2) - 2 262 move_block_left = this.barArea.offsetWidth - parseInt(parseInt(this.blockSize.width) / 2) - 2
261 } 263 }
@@ -271,10 +273,10 @@ export default { @@ -271,10 +273,10 @@ export default {
271 // 鼠标松开 273 // 鼠标松开
272 end: function() { 274 end: function() {
273 this.endMovetime = +new Date() 275 this.endMovetime = +new Date()
274 - var _this = this 276 + const _this = this
275 // 判断是否重合 277 // 判断是否重合
276 if (this.status && this.isEnd === false) { 278 if (this.status && this.isEnd === false) {
277 - var moveLeftDistance = parseInt((this.moveBlockLeft || '').replace('px', '')) 279 + const moveLeftDistance = parseInt((this.moveBlockLeft || '').replace('px', ''))
278 moveLeftDistance = moveLeftDistance * 310 / parseInt(this.setSize.imgWidth) 280 moveLeftDistance = moveLeftDistance * 310 / parseInt(this.setSize.imgWidth)
279 const data = { 281 const data = {
280 captchaType: this.captchaType, 282 captchaType: this.captchaType,
@@ -297,7 +299,10 @@ export default { @@ -297,7 +299,10 @@ export default {
297 } 299 }
298 this.passFlag = true 300 this.passFlag = true
299 this.tipWords = `${((this.endMovetime - this.startMoveTime) / 1000).toFixed(2)}s验证成功` 301 this.tipWords = `${((this.endMovetime - this.startMoveTime) / 1000).toFixed(2)}s验证成功`
300 - var captchaVerification = this.secretKey ? aesEncrypt(this.backToken + '---' + JSON.stringify({ x: moveLeftDistance, y: 5.0 }), this.secretKey) : this.backToken + '---' + JSON.stringify({ x: moveLeftDistance, y: 5.0 }) 302 + const captchaVerification = this.secretKey ? aesEncrypt(this.backToken + '---' + JSON.stringify({
  303 + x: moveLeftDistance,
  304 + y: 5.0
  305 + }), this.secretKey) : this.backToken + '---' + JSON.stringify({ x: moveLeftDistance, y: 5.0 })
301 setTimeout(() => { 306 setTimeout(() => {
302 this.tipWords = '' 307 this.tipWords = ''
303 this.$parent.closeBox() 308 this.$parent.closeBox()
yudao-ui-admin/src/components/Verifition/utils/axios.js
@@ -21,8 +21,7 @@ service.interceptors.request.use( @@ -21,8 +21,7 @@ service.interceptors.request.use(
21 // response interceptor 21 // response interceptor
22 service.interceptors.response.use( 22 service.interceptors.response.use(
23 response => { 23 response => {
24 - const res = response.data  
25 - return res 24 + return response.data
26 }, 25 },
27 error => { 26 error => {
28 } 27 }
yudao-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js
@@ -49,14 +49,14 @@ export default function ContextPadProvider( @@ -49,14 +49,14 @@ export default function ContextPadProvider(
49 } 49 }
50 50
51 eventBus.on("create.end", 250, function(event) { 51 eventBus.on("create.end", 250, function(event) {
52 - var context = event.context,  
53 - shape = context.shape; 52 + const context = event.context,
  53 + shape = context.shape
54 54
55 if (!hasPrimaryModifier(event) || !contextPad.isOpen(shape)) { 55 if (!hasPrimaryModifier(event) || !contextPad.isOpen(shape)) {
56 return; 56 return;
57 } 57 }
58 58
59 - var entries = contextPad.getEntries(shape); 59 + const entries = contextPad.getEntries(shape)
60 60
61 if (entries.replace) { 61 if (entries.replace) {
62 entries.replace.action.click(event, shape); 62 entries.replace.action.click(event, shape);
@@ -81,7 +81,7 @@ ContextPadProvider.$inject = [ @@ -81,7 +81,7 @@ ContextPadProvider.$inject = [
81 ]; 81 ];
82 82
83 ContextPadProvider.prototype.getContextPadEntries = function(element) { 83 ContextPadProvider.prototype.getContextPadEntries = function(element) {
84 - var contextPad = this._contextPad, 84 + const contextPad = this._contextPad,
85 modeling = this._modeling, 85 modeling = this._modeling,
86 elementFactory = this._elementFactory, 86 elementFactory = this._elementFactory,
87 connect = this._connect, 87 connect = this._connect,
@@ -90,15 +90,15 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { @@ -90,15 +90,15 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
90 canvas = this._canvas, 90 canvas = this._canvas,
91 rules = this._rules, 91 rules = this._rules,
92 autoPlace = this._autoPlace, 92 autoPlace = this._autoPlace,
93 - translate = this._translate; 93 + translate = this._translate
94 94
95 - var actions = {}; 95 + const actions = {}
96 96
97 if (element.type === "label") { 97 if (element.type === "label") {
98 return actions; 98 return actions;
99 } 99 }
100 100
101 - var businessObject = element.businessObject; 101 + const businessObject = element.businessObject
102 102
103 function startConnect(event, element) { 103 function startConnect(event, element) {
104 connect.start(event, element); 104 connect.start(event, element);
@@ -109,21 +109,21 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { @@ -109,21 +109,21 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
109 } 109 }
110 110
111 function getReplaceMenuPosition(element) { 111 function getReplaceMenuPosition(element) {
112 - var Y_OFFSET = 5; 112 + const Y_OFFSET = 5
113 113
114 - var diagramContainer = canvas.getContainer(),  
115 - pad = contextPad.getPad(element).html; 114 + const diagramContainer = canvas.getContainer(),
  115 + pad = contextPad.getPad(element).html
116 116
117 - var diagramRect = diagramContainer.getBoundingClientRect(),  
118 - padRect = pad.getBoundingClientRect(); 117 + const diagramRect = diagramContainer.getBoundingClientRect(),
  118 + padRect = pad.getBoundingClientRect()
119 119
120 - var top = padRect.top - diagramRect.top;  
121 - var left = padRect.left - diagramRect.left; 120 + const top = padRect.top - diagramRect.top
  121 + const left = padRect.left - diagramRect.left
122 122
123 - var pos = { 123 + const pos = {
124 x: left, 124 x: left,
125 y: top + padRect.height + Y_OFFSET 125 y: top + padRect.height + Y_OFFSET
126 - }; 126 + }
127 127
128 return pos; 128 return pos;
129 } 129 }
@@ -145,19 +145,19 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { @@ -145,19 +145,19 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
145 } 145 }
146 146
147 function appendStart(event, element) { 147 function appendStart(event, element) {
148 - var shape = elementFactory.createShape(assign({ type: type }, options)); 148 + const shape = elementFactory.createShape(assign({ type: type }, options))
149 create.start(event, shape, { 149 create.start(event, shape, {
150 source: element 150 source: element
151 }); 151 });
152 } 152 }
153 153
154 - var append = autoPlace 154 + const append = autoPlace
155 ? function(event, element) { 155 ? function(event, element) {
156 - var shape = elementFactory.createShape(assign({ type: type }, options)); 156 + const shape = elementFactory.createShape(assign({ type: type }, options))
157 157
158 - autoPlace.append(element, shape);  
159 - }  
160 - : appendStart; 158 + autoPlace.append(element, shape)
  159 + }
  160 + : appendStart
161 161
162 return { 162 return {
163 group: "model", 163 group: "model",
@@ -182,7 +182,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { @@ -182,7 +182,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
182 } 182 }
183 183
184 if (isAny(businessObject, ["bpmn:Lane", "bpmn:Participant"]) && isExpanded(businessObject)) { 184 if (isAny(businessObject, ["bpmn:Lane", "bpmn:Participant"]) && isExpanded(businessObject)) {
185 - var childLanes = getChildLanes(element); 185 + const childLanes = getChildLanes(element)
186 186
187 assign(actions, { 187 assign(actions, {
188 "lane-insert-above": { 188 "lane-insert-above": {
@@ -302,9 +302,9 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { @@ -302,9 +302,9 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
302 title: translate("Change type"), 302 title: translate("Change type"),
303 action: { 303 action: {
304 click: function(event, element) { 304 click: function(event, element) {
305 - var position = assign(getReplaceMenuPosition(element), { 305 + const position = assign(getReplaceMenuPosition(element), {
306 cursor: { x: event.x, y: event.y } 306 cursor: { x: event.x, y: event.y }
307 - }); 307 + })
308 308
309 popupMenu.open(element, "bpmn-replace", position); 309 popupMenu.open(element, "bpmn-replace", position);
310 } 310 }
@@ -350,7 +350,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { @@ -350,7 +350,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
350 } 350 }
351 351
352 // delete element entry, only show if allowed by rules 352 // delete element entry, only show if allowed by rules
353 - var deleteAllowed = rules.allowed("elements.delete", { elements: [element] }); 353 + let deleteAllowed = rules.allowed('elements.delete', { elements: [element] })
354 354
355 if (isArray(deleteAllowed)) { 355 if (isArray(deleteAllowed)) {
356 // was the element returned as a deletion candidate? 356 // was the element returned as a deletion candidate?
@@ -376,10 +376,10 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) { @@ -376,10 +376,10 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
376 // helpers ///////// 376 // helpers /////////
377 377
378 function isEventType(eventBo, type, definition) { 378 function isEventType(eventBo, type, definition) {
379 - var isType = eventBo.$instanceOf(type);  
380 - var isDefinition = false; 379 + const isType = eventBo.$instanceOf(type)
  380 + let isDefinition = false
381 381
382 - var definitions = eventBo.eventDefinitions || []; 382 + const definitions = eventBo.eventDefinitions || []
383 forEach(definitions, function(def) { 383 forEach(definitions, function(def) {
384 if (def.$type === definition) { 384 if (def.$type === definition) {
385 isDefinition = true; 385 isDefinition = true;
yudao-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js
1 "use strict"; 1 "use strict";
2 2
3 -var some = require("min-dash").some; 3 +const some = require('min-dash').some
4 4
5 -var ALLOWED_TYPES = {  
6 - FailedJobRetryTimeCycle: ["bpmn:StartEvent", "bpmn:BoundaryEvent", "bpmn:IntermediateCatchEvent", "bpmn:Activity"],  
7 - Connector: ["bpmn:EndEvent", "bpmn:IntermediateThrowEvent"],  
8 - Field: ["bpmn:EndEvent", "bpmn:IntermediateThrowEvent"]  
9 -}; 5 +const ALLOWED_TYPES = {
  6 + FailedJobRetryTimeCycle: ['bpmn:StartEvent', 'bpmn:BoundaryEvent', 'bpmn:IntermediateCatchEvent', 'bpmn:Activity'],
  7 + Connector: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'],
  8 + Field: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent']
  9 +}
10 10
11 function is(element, type) { 11 function is(element, type) {
12 return element && typeof element.$instanceOf === "function" && element.$instanceOf(type); 12 return element && typeof element.$instanceOf === "function" && element.$instanceOf(type);
@@ -32,8 +32,8 @@ function anyType(element, types) { @@ -32,8 +32,8 @@ function anyType(element, types) {
32 } 32 }
33 33
34 function isAllowed(propName, propDescriptor, newElement) { 34 function isAllowed(propName, propDescriptor, newElement) {
35 - var name = propDescriptor.name,  
36 - types = ALLOWED_TYPES[name.replace(/activiti:/, "")]; 35 + const name = propDescriptor.name,
  36 + types = ALLOWED_TYPES[name.replace(/activiti:/, '')]
37 37
38 return name === propName && anyType(newElement, types); 38 return name === propName && anyType(newElement, types);
39 } 39 }
@@ -42,8 +42,8 @@ function ActivitiModdleExtension(eventBus) { @@ -42,8 +42,8 @@ function ActivitiModdleExtension(eventBus) {
42 eventBus.on( 42 eventBus.on(
43 "property.clone", 43 "property.clone",
44 function(context) { 44 function(context) {
45 - var newElement = context.newElement,  
46 - propDescriptor = context.propertyDescriptor; 45 + const newElement = context.newElement,
  46 + propDescriptor = context.propertyDescriptor
47 47
48 this.canCloneProperty(newElement, propDescriptor); 48 this.canCloneProperty(newElement, propDescriptor);
49 }, 49 },
yudao-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js
1 "use strict"; 1 "use strict";
2 2
3 -var isFunction = require("min-dash").isFunction,  
4 - isObject = require("min-dash").isObject,  
5 - some = require("min-dash").some; 3 +const isFunction = require('min-dash').isFunction,
  4 + isObject = require('min-dash').isObject,
  5 + some = require('min-dash').some
6 6
7 -var WILDCARD = "*"; 7 +const WILDCARD = '*'
8 8
9 function CamundaModdleExtension(eventBus) { 9 function CamundaModdleExtension(eventBus) {
10 - var self = this; 10 + const self = this
11 11
12 eventBus.on("moddleCopy.canCopyProperty", function(context) { 12 eventBus.on("moddleCopy.canCopyProperty", function(context) {
13 - var property = context.property,  
14 - parent = context.parent; 13 + const property = context.property,
  14 + parent = context.parent
15 15
16 return self.canCopyProperty(property, parent); 16 return self.canCopyProperty(property, parent);
17 }); 17 });
@@ -45,14 +45,14 @@ CamundaModdleExtension.prototype.canCopyProperty = function(property, parent) { @@ -45,14 +45,14 @@ CamundaModdleExtension.prototype.canCopyProperty = function(property, parent) {
45 45
46 CamundaModdleExtension.prototype.canHostInputOutput = function(parent) { 46 CamundaModdleExtension.prototype.canHostInputOutput = function(parent) {
47 // allowed in camunda:Connector 47 // allowed in camunda:Connector
48 - var connector = getParent(parent, "camunda:Connector"); 48 + const connector = getParent(parent, 'camunda:Connector')
49 49
50 if (connector) { 50 if (connector) {
51 return true; 51 return true;
52 } 52 }
53 53
54 // special rules inside bpmn:FlowNode 54 // special rules inside bpmn:FlowNode
55 - var flowNode = getParent(parent, "bpmn:FlowNode"); 55 + const flowNode = getParent(parent, 'bpmn:FlowNode')
56 56
57 if (!flowNode) { 57 if (!flowNode) {
58 return false; 58 return false;
@@ -62,15 +62,13 @@ CamundaModdleExtension.prototype.canHostInputOutput = function(parent) { @@ -62,15 +62,13 @@ CamundaModdleExtension.prototype.canHostInputOutput = function(parent) {
62 return false; 62 return false;
63 } 63 }
64 64
65 - if (is(flowNode, "bpmn:SubProcess") && flowNode.get("triggeredByEvent")) {  
66 - return false;  
67 - } 65 + return !(is(flowNode, "bpmn:SubProcess") && flowNode.get("triggeredByEvent"));
  66 +
68 67
69 - return true;  
70 }; 68 };
71 69
72 CamundaModdleExtension.prototype.canHostConnector = function(parent) { 70 CamundaModdleExtension.prototype.canHostConnector = function(parent) {
73 - var serviceTaskLike = getParent(parent, "camunda:ServiceTaskLike"); 71 + const serviceTaskLike = getParent(parent, 'camunda:ServiceTaskLike')
74 72
75 if (is(serviceTaskLike, "bpmn:MessageEventDefinition")) { 73 if (is(serviceTaskLike, "bpmn:MessageEventDefinition")) {
76 // only allow on throw and end events 74 // only allow on throw and end events
@@ -81,13 +79,13 @@ CamundaModdleExtension.prototype.canHostConnector = function(parent) { @@ -81,13 +79,13 @@ CamundaModdleExtension.prototype.canHostConnector = function(parent) {
81 }; 79 };
82 80
83 CamundaModdleExtension.prototype.canHostIn = function(parent) { 81 CamundaModdleExtension.prototype.canHostIn = function(parent) {
84 - var callActivity = getParent(parent, "bpmn:CallActivity"); 82 + const callActivity = getParent(parent, 'bpmn:CallActivity')
85 83
86 if (callActivity) { 84 if (callActivity) {
87 return true; 85 return true;
88 } 86 }
89 87
90 - var signalEventDefinition = getParent(parent, "bpmn:SignalEventDefinition"); 88 + const signalEventDefinition = getParent(parent, 'bpmn:SignalEventDefinition')
91 89
92 if (signalEventDefinition) { 90 if (signalEventDefinition) {
93 // only allow on throw and end events 91 // only allow on throw and end events
@@ -129,9 +127,9 @@ function getParent(element, type) { @@ -129,9 +127,9 @@ function getParent(element, type) {
129 127
130 function isAllowedInParent(property, parent) { 128 function isAllowedInParent(property, parent) {
131 // (1) find property descriptor 129 // (1) find property descriptor
132 - var descriptor = property.$type && property.$model.getTypeDescriptor(property.$type); 130 + const descriptor = property.$type && property.$model.getTypeDescriptor(property.$type)
133 131
134 - var allowedIn = descriptor && descriptor.meta && descriptor.meta.allowedIn; 132 + const allowedIn = descriptor && descriptor.meta && descriptor.meta.allowedIn
135 133
136 if (!allowedIn || isWildcard(allowedIn)) { 134 if (!allowedIn || isWildcard(allowedIn)) {
137 return true; 135 return true;
yudao-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js
1 "use strict"; 1 "use strict";
2 2
3 -var some = require("min-dash").some; 3 +const some = require('min-dash').some
4 4
5 -var ALLOWED_TYPES = {  
6 - FailedJobRetryTimeCycle: ["bpmn:StartEvent", "bpmn:BoundaryEvent", "bpmn:IntermediateCatchEvent", "bpmn:Activity"],  
7 - Connector: ["bpmn:EndEvent", "bpmn:IntermediateThrowEvent"],  
8 - Field: ["bpmn:EndEvent", "bpmn:IntermediateThrowEvent"]  
9 -}; 5 +const ALLOWED_TYPES = {
  6 + FailedJobRetryTimeCycle: ['bpmn:StartEvent', 'bpmn:BoundaryEvent', 'bpmn:IntermediateCatchEvent', 'bpmn:Activity'],
  7 + Connector: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'],
  8 + Field: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent']
  9 +}
10 10
11 function is(element, type) { 11 function is(element, type) {
12 return element && typeof element.$instanceOf === "function" && element.$instanceOf(type); 12 return element && typeof element.$instanceOf === "function" && element.$instanceOf(type);
@@ -32,8 +32,8 @@ function anyType(element, types) { @@ -32,8 +32,8 @@ function anyType(element, types) {
32 } 32 }
33 33
34 function isAllowed(propName, propDescriptor, newElement) { 34 function isAllowed(propName, propDescriptor, newElement) {
35 - var name = propDescriptor.name,  
36 - types = ALLOWED_TYPES[name.replace(/flowable:/, "")]; 35 + const name = propDescriptor.name,
  36 + types = ALLOWED_TYPES[name.replace(/flowable:/, '')]
37 37
38 return name === propName && anyType(newElement, types); 38 return name === propName && anyType(newElement, types);
39 } 39 }
@@ -42,8 +42,8 @@ function FlowableModdleExtension(eventBus) { @@ -42,8 +42,8 @@ function FlowableModdleExtension(eventBus) {
42 eventBus.on( 42 eventBus.on(
43 "property.clone", 43 "property.clone",
44 function(context) { 44 function(context) {
45 - var newElement = context.newElement,  
46 - propDescriptor = context.propertyDescriptor; 45 + const newElement = context.newElement,
  46 + propDescriptor = context.propertyDescriptor
47 47
48 this.canCloneProperty(newElement, propDescriptor); 48 this.canCloneProperty(newElement, propDescriptor);
49 }, 49 },
yudao-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js
@@ -10,18 +10,18 @@ F.prototype = PaletteProvider.prototype; // 核心,将父类的原型赋值给 @@ -10,18 +10,18 @@ F.prototype = PaletteProvider.prototype; // 核心,将父类的原型赋值给
10 10
11 // 利用中介函数重写原型链方法 11 // 利用中介函数重写原型链方法
12 F.prototype.getPaletteEntries = function() { 12 F.prototype.getPaletteEntries = function() {
13 - var actions = {}, 13 + const actions = {},
14 create = this._create, 14 create = this._create,
15 elementFactory = this._elementFactory, 15 elementFactory = this._elementFactory,
16 spaceTool = this._spaceTool, 16 spaceTool = this._spaceTool,
17 lassoTool = this._lassoTool, 17 lassoTool = this._lassoTool,
18 handTool = this._handTool, 18 handTool = this._handTool,
19 globalConnect = this._globalConnect, 19 globalConnect = this._globalConnect,
20 - translate = this._translate; 20 + translate = this._translate
21 21
22 function createAction(type, group, className, title, options) { 22 function createAction(type, group, className, title, options) {
23 function createListener(event) { 23 function createListener(event) {
24 - var shape = elementFactory.createShape(assign({ type: type }, options)); 24 + const shape = elementFactory.createShape(assign({ type: type }, options))
25 25
26 if (options) { 26 if (options) {
27 shape.businessObject.di.isExpanded = options.isExpanded; 27 shape.businessObject.di.isExpanded = options.isExpanded;
@@ -30,7 +30,7 @@ F.prototype.getPaletteEntries = function() { @@ -30,7 +30,7 @@ F.prototype.getPaletteEntries = function() {
30 create.start(event, shape); 30 create.start(event, shape);
31 } 31 }
32 32
33 - var shortType = type.replace(/^bpmn:/, ""); 33 + const shortType = type.replace(/^bpmn:/, '')
34 34
35 return { 35 return {
36 group: group, 36 group: group,
@@ -44,19 +44,19 @@ F.prototype.getPaletteEntries = function() { @@ -44,19 +44,19 @@ F.prototype.getPaletteEntries = function() {
44 } 44 }
45 45
46 function createSubprocess(event) { 46 function createSubprocess(event) {
47 - var subProcess = elementFactory.createShape({  
48 - type: "bpmn:SubProcess", 47 + const subProcess = elementFactory.createShape({
  48 + type: 'bpmn:SubProcess',
49 x: 0, 49 x: 0,
50 y: 0, 50 y: 0,
51 isExpanded: true 51 isExpanded: true
52 - }); 52 + })
53 53
54 - var startEvent = elementFactory.createShape({  
55 - type: "bpmn:StartEvent", 54 + const startEvent = elementFactory.createShape({
  55 + type: 'bpmn:StartEvent',
56 x: 40, 56 x: 40,
57 y: 82, 57 y: 82,
58 parent: subProcess 58 parent: subProcess
59 - }); 59 + })
60 60
61 create.start(event, [subProcess, startEvent], { 61 create.start(event, [subProcess, startEvent], {
62 hints: { 62 hints: {
yudao-ui-admin/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js
@@ -19,18 +19,18 @@ export default function PaletteProvider(palette, create, elementFactory, spaceTo @@ -19,18 +19,18 @@ export default function PaletteProvider(palette, create, elementFactory, spaceTo
19 PaletteProvider.$inject = ["palette", "create", "elementFactory", "spaceTool", "lassoTool", "handTool", "globalConnect", "translate"]; 19 PaletteProvider.$inject = ["palette", "create", "elementFactory", "spaceTool", "lassoTool", "handTool", "globalConnect", "translate"];
20 20
21 PaletteProvider.prototype.getPaletteEntries = function() { 21 PaletteProvider.prototype.getPaletteEntries = function() {
22 - var actions = {}, 22 + const actions = {},
23 create = this._create, 23 create = this._create,
24 elementFactory = this._elementFactory, 24 elementFactory = this._elementFactory,
25 spaceTool = this._spaceTool, 25 spaceTool = this._spaceTool,
26 lassoTool = this._lassoTool, 26 lassoTool = this._lassoTool,
27 handTool = this._handTool, 27 handTool = this._handTool,
28 globalConnect = this._globalConnect, 28 globalConnect = this._globalConnect,
29 - translate = this._translate; 29 + translate = this._translate
30 30
31 function createAction(type, group, className, title, options) { 31 function createAction(type, group, className, title, options) {
32 function createListener(event) { 32 function createListener(event) {
33 - var shape = elementFactory.createShape(assign({ type: type }, options)); 33 + const shape = elementFactory.createShape(assign({ type: type }, options))
34 34
35 if (options) { 35 if (options) {
36 shape.businessObject.di.isExpanded = options.isExpanded; 36 shape.businessObject.di.isExpanded = options.isExpanded;
@@ -39,7 +39,7 @@ PaletteProvider.prototype.getPaletteEntries = function() { @@ -39,7 +39,7 @@ PaletteProvider.prototype.getPaletteEntries = function() {
39 create.start(event, shape); 39 create.start(event, shape);
40 } 40 }
41 41
42 - var shortType = type.replace(/^bpmn:/, ""); 42 + const shortType = type.replace(/^bpmn:/, '')
43 43
44 return { 44 return {
45 group: group, 45 group: group,
@@ -53,19 +53,19 @@ PaletteProvider.prototype.getPaletteEntries = function() { @@ -53,19 +53,19 @@ PaletteProvider.prototype.getPaletteEntries = function() {
53 } 53 }
54 54
55 function createSubprocess(event) { 55 function createSubprocess(event) {
56 - var subProcess = elementFactory.createShape({  
57 - type: "bpmn:SubProcess", 56 + const subProcess = elementFactory.createShape({
  57 + type: 'bpmn:SubProcess',
58 x: 0, 58 x: 0,
59 y: 0, 59 y: 0,
60 isExpanded: true 60 isExpanded: true
61 - }); 61 + })
62 62
63 - var startEvent = elementFactory.createShape({  
64 - type: "bpmn:StartEvent", 63 + const startEvent = elementFactory.createShape({
  64 + type: 'bpmn:StartEvent',
65 x: 40, 65 x: 40,
66 y: 82, 66 y: 82,
67 parent: subProcess 67 parent: subProcess
68 - }); 68 + })
69 69
70 create.start(event, [subProcess, startEvent], { 70 create.start(event, [subProcess, startEvent], {
71 hints: { 71 hints: {
yudao-ui-admin/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue
@@ -76,7 +76,7 @@ export default { @@ -76,7 +76,7 @@ export default {
76 if (!value) { 76 if (!value) {
77 return; 77 return;
78 } 78 }
79 - if (!value.match(/[a-zA-Z_][\-_.0-9_a-zA-Z$]*/)) { 79 + if (!value.match(/[a-zA-Z_][\-_.0-9a-zA-Z$]*/)) {
80 console.log('key 不满足 XML NCName 规则,所以不进行赋值'); 80 console.log('key 不满足 XML NCName 规则,所以不进行赋值');
81 return; 81 return;
82 } 82 }
yudao-ui-admin/src/components/generator/js.js
1 import { isArray } from 'util' 1 import { isArray } from 'util'
2 -import { exportDefault, titleCase, deepClone } from '@/utils/index' 2 +import { exportDefault, titleCase, deepClone } from '@/utils'
3 import ruleTrigger from './ruleTrigger' 3 import ruleTrigger from './ruleTrigger'
4 4
5 const units = { 5 const units = {
yudao-ui-admin/src/directive/dialog/drag.js
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 export default { 5 export default {
6 bind(el, binding, vnode, oldVnode) { 6 bind(el, binding, vnode, oldVnode) {
7 const value = binding.value 7 const value = binding.value
8 - if (value == false) return 8 + if (value === false) return
9 // 获取拖拽内容头部 9 // 获取拖拽内容头部
10 const dialogHeaderEl = el.querySelector('.el-dialog__header'); 10 const dialogHeaderEl = el.querySelector('.el-dialog__header');
11 const dragDom = el.querySelector('.el-dialog'); 11 const dragDom = el.querySelector('.el-dialog');
@@ -16,7 +16,7 @@ export default { @@ -16,7 +16,7 @@ export default {
16 dragDom.style.marginTop = 0; 16 dragDom.style.marginTop = 0;
17 let width = dragDom.style.width; 17 let width = dragDom.style.width;
18 if (width.includes('%')) { 18 if (width.includes('%')) {
19 - width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100); 19 + width = +document.body.clientWidth * (+width.replace(/%/g, '') / 100);
20 } else { 20 } else {
21 width = +width.replace(/\px/g, ''); 21 width = +width.replace(/\px/g, '');
22 } 22 }
@@ -32,12 +32,12 @@ export default { @@ -32,12 +32,12 @@ export default {
32 32
33 // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px 33 // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
34 if (sty.left.includes('%')) { 34 if (sty.left.includes('%')) {
35 - styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100);  
36 - styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100); 35 + styL = +document.body.clientWidth * (+sty.left.replace(/%/g, '') / 100);
  36 + styT = +document.body.clientHeight * (+sty.top.replace(/%/g, '') / 100);
37 } else { 37 } else {
38 styL = +sty.left.replace(/\px/g, ''); 38 styL = +sty.left.replace(/\px/g, '');
39 styT = +sty.top.replace(/\px/g, ''); 39 styT = +sty.top.replace(/\px/g, '');
40 - }; 40 + }
41 41
42 // 鼠标拖拽事件 42 // 鼠标拖拽事件
43 document.onmousemove = function (e) { 43 document.onmousemove = function (e) {
yudao-ui-admin/src/plugins/tab.js
@@ -56,7 +56,7 @@ export default { @@ -56,7 +56,7 @@ export default {
56 }, 56 },
57 // 添加tab页签 57 // 添加tab页签
58 openPage(title, url, params) { 58 openPage(title, url, params) {
59 - var obj = { path: url, meta: { title: title } } 59 + const obj = { path: url, meta: { title: title } }
60 store.dispatch('tagsView/addView', obj); 60 store.dispatch('tagsView/addView', obj);
61 return router.push({ path: url, query: params }); 61 return router.push({ path: url, query: params });
62 }, 62 },
yudao-ui-admin/src/store/modules/permission.js
@@ -86,7 +86,7 @@ function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) { @@ -86,7 +86,7 @@ function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
86 } 86 }
87 87
88 function filterChildren(childrenMap, lastRouter = false) { 88 function filterChildren(childrenMap, lastRouter = false) {
89 - var children = [] 89 + let children = []
90 childrenMap.forEach((el, index) => { 90 childrenMap.forEach((el, index) => {
91 if (el.children && el.children.length) { 91 if (el.children && el.children.length) {
92 if (el.component === 'ParentView' && !lastRouter) { 92 if (el.component === 'ParentView' && !lastRouter) {
yudao-ui-admin/src/store/modules/user.js
1 -import {login, logout, getInfo, socialLogin, socialBindLogin, smsLogin} from '@/api/login' 1 +import {login, logout, getInfo, socialLogin, smsLogin} from '@/api/login'
2 import {setToken, removeToken} from '@/utils/auth' 2 import {setToken, removeToken} from '@/utils/auth'
3 3
4 const user = { 4 const user = {
yudao-ui-admin/src/utils/index.js
@@ -4,14 +4,14 @@ import { parseTime } from &#39;./ruoyi&#39; @@ -4,14 +4,14 @@ import { parseTime } from &#39;./ruoyi&#39;
4 * 表格时间格式化 4 * 表格时间格式化
5 */ 5 */
6 export function formatDate(cellValue) { 6 export function formatDate(cellValue) {
7 - if (cellValue == null || cellValue == "") return "";  
8 - var date = new Date(cellValue)  
9 - var year = date.getFullYear()  
10 - var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1  
11 - var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()  
12 - var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()  
13 - var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()  
14 - var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() 7 + if (cellValue == null || cellValue === "") return "";
  8 + const date = new Date(cellValue)
  9 + const year = date.getFullYear()
  10 + const month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
  11 + const day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
  12 + const hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
  13 + const minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
  14 + const seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
15 return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds 15 return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
16 } 16 }
17 17
@@ -78,13 +78,13 @@ export function getQueryObject(url) { @@ -78,13 +78,13 @@ export function getQueryObject(url) {
78 } 78 }
79 79
80 /** 80 /**
81 - * @param {string} input value  
82 - * @returns {number} output value 81 + * @param str
  82 + * @param str
83 */ 83 */
84 export function byteLength(str) { 84 export function byteLength(str) {
85 // returns the byte length of an utf8 string 85 // returns the byte length of an utf8 string
86 let s = str.length 86 let s = str.length
87 - for (var i = str.length - 1; i >= 0; i--) { 87 + for (let i = str.length - 1; i >= 0; i--) {
88 const code = str.charCodeAt(i) 88 const code = str.charCodeAt(i)
89 if (code > 0x7f && code <= 0x7ff) s++ 89 if (code > 0x7f && code <= 0x7ff) s++
90 else if (code > 0x7ff && code <= 0xffff) s += 2 90 else if (code > 0x7ff && code <= 0xffff) s += 2
@@ -136,8 +136,7 @@ export function param2Obj(url) { @@ -136,8 +136,7 @@ export function param2Obj(url) {
136 const index = v.indexOf('=') 136 const index = v.indexOf('=')
137 if (index !== -1) { 137 if (index !== -1) {
138 const name = v.substring(0, index) 138 const name = v.substring(0, index)
139 - const val = v.substring(index + 1, v.length)  
140 - obj[name] = val 139 + obj[name] = v.substring(index + 1, v.length)
141 } 140 }
142 }) 141 })
143 return obj 142 return obj
@@ -330,7 +329,7 @@ export function createUniqueString() { @@ -330,7 +329,7 @@ export function createUniqueString() {
330 329
331 /** 330 /**
332 * Check if an element has a class 331 * Check if an element has a class
333 - * @param {HTMLElement} elm 332 + * @param ele
334 * @param {string} cls 333 * @param {string} cls
335 * @returns {boolean} 334 * @returns {boolean}
336 */ 335 */
@@ -340,7 +339,7 @@ export function hasClass(ele, cls) { @@ -340,7 +339,7 @@ export function hasClass(ele, cls) {
340 339
341 /** 340 /**
342 * Add class to element 341 * Add class to element
343 - * @param {HTMLElement} elm 342 + * @param ele
344 * @param {string} cls 343 * @param {string} cls
345 */ 344 */
346 export function addClass(ele, cls) { 345 export function addClass(ele, cls) {
@@ -349,7 +348,7 @@ export function addClass(ele, cls) { @@ -349,7 +348,7 @@ export function addClass(ele, cls) {
349 348
350 /** 349 /**
351 * Remove class from element 350 * Remove class from element
352 - * @param {HTMLElement} elm 351 + * @param ele
353 * @param {string} cls 352 * @param {string} cls
354 */ 353 */
355 export function removeClass(ele, cls) { 354 export function removeClass(ele, cls) {
yudao-ui-admin/src/utils/permission.js
@@ -15,10 +15,8 @@ export function checkPermi(value) { @@ -15,10 +15,8 @@ export function checkPermi(value) {
15 return all_permission === permission || permissionDatas.includes(permission) 15 return all_permission === permission || permissionDatas.includes(permission)
16 }) 16 })
17 17
18 - if (!hasPermission) {  
19 - return false  
20 - }  
21 - return true 18 + return hasPermission;
  19 +
22 } else { 20 } else {
23 console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`) 21 console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
24 return false 22 return false
@@ -40,12 +38,10 @@ export function checkRole(value) { @@ -40,12 +38,10 @@ export function checkRole(value) {
40 return super_admin === role || permissionRoles.includes(role) 38 return super_admin === role || permissionRoles.includes(role)
41 }) 39 })
42 40
43 - if (!hasRole) {  
44 - return false  
45 - }  
46 - return true 41 + return hasRole;
  42 +
47 } else { 43 } else {
48 console.error(`need roles! Like checkRole="['admin','editor']"`) 44 console.error(`need roles! Like checkRole="['admin','editor']"`)
49 return false 45 return false
50 } 46 }
51 -}  
52 \ No newline at end of file 47 \ No newline at end of file
  48 +}
yudao-ui-admin/src/utils/request.js
@@ -49,12 +49,12 @@ service.interceptors.request.use(config =&gt; { @@ -49,12 +49,12 @@ service.interceptors.request.use(config =&gt; {
49 let url = config.url + '?'; 49 let url = config.url + '?';
50 for (const propName of Object.keys(config.params)) { 50 for (const propName of Object.keys(config.params)) {
51 const value = config.params[propName]; 51 const value = config.params[propName];
52 - var part = encodeURIComponent(propName) + "="; 52 + const part = encodeURIComponent(propName) + '='
53 if (value !== null && typeof(value) !== "undefined") { 53 if (value !== null && typeof(value) !== "undefined") {
54 if (typeof value === 'object') { 54 if (typeof value === 'object') {
55 for (const key of Object.keys(value)) { 55 for (const key of Object.keys(value)) {
56 let params = propName + '[' + key + ']'; 56 let params = propName + '[' + key + ']';
57 - var subPart = encodeURIComponent(params) + "="; 57 + const subPart = encodeURIComponent(params) + '='
58 url += subPart + encodeURIComponent(value[key]) + "&"; 58 url += subPart + encodeURIComponent(value[key]) + "&";
59 } 59 }
60 } else { 60 } else {
yudao-ui-admin/src/utils/ruoyi.js
@@ -18,7 +18,7 @@ export function parseTime(time, pattern) { @@ -18,7 +18,7 @@ export function parseTime(time, pattern) {
18 if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { 18 if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
19 time = parseInt(time) 19 time = parseInt(time)
20 } else if (typeof time === 'string') { 20 } else if (typeof time === 'string') {
21 - time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm),''); 21 + time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm),'');
22 } 22 }
23 if ((typeof time === 'number') && (time.toString().length === 10)) { 23 if ((typeof time === 'number') && (time.toString().length === 10)) {
24 time = time * 1000 24 time = time * 1000
@@ -34,7 +34,7 @@ export function parseTime(time, pattern) { @@ -34,7 +34,7 @@ export function parseTime(time, pattern) {
34 s: date.getSeconds(), 34 s: date.getSeconds(),
35 a: date.getDay() 35 a: date.getDay()
36 } 36 }
37 - const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { 37 + const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
38 let value = formatObj[key] 38 let value = formatObj[key]
39 // Note: getDay() returns 0 on Sunday 39 // Note: getDay() returns 0 on Sunday
40 if (key === 'a') { 40 if (key === 'a') {
@@ -102,9 +102,11 @@ export function addBeginAndEndTime(params, dateRange, propName) { @@ -102,9 +102,11 @@ export function addBeginAndEndTime(params, dateRange, propName) {
102 102
103 // 字符串格式化(%s ) 103 // 字符串格式化(%s )
104 export function sprintf(str) { 104 export function sprintf(str) {
105 - var args = arguments, flag = true, i = 1; 105 + const args = arguments
  106 + let flag = true
  107 + const i = 1
106 str = str.replace(/%s/g, function () { 108 str = str.replace(/%s/g, function () {
107 - var arg = args[i++]; 109 + const arg = args[i++]
108 if (typeof arg === 'undefined') { 110 if (typeof arg === 'undefined') {
109 flag = false; 111 flag = false;
110 return ''; 112 return '';
@@ -116,7 +118,7 @@ export function sprintf(str) { @@ -116,7 +118,7 @@ export function sprintf(str) {
116 118
117 // 转换字符串,undefined,null等转化为"" 119 // 转换字符串,undefined,null等转化为""
118 export function praseStrEmpty(str) { 120 export function praseStrEmpty(str) {
119 - if (!str || str == "undefined" || str == "null") { 121 + if (!str || str === "undefined" || str === "null") {
120 return ""; 122 return "";
121 } 123 }
122 return str; 124 return str;
@@ -244,7 +246,7 @@ export function getPath(path) { @@ -244,7 +246,7 @@ export function getPath(path) {
244 * @returns 246 * @returns
245 */ 247 */
246 export function divide(divisor, dividend) { 248 export function divide(divisor, dividend) {
247 - if(divisor == null || dividend == null || dividend == 0){ 249 + if(divisor == null || dividend == null || dividend === 0){
248 return null; 250 return null;
249 } 251 }
250 return Math.floor(divisor/dividend*100)/100; 252 return Math.floor(divisor/dividend*100)/100;
yudao-ui-admin/src/utils/scroll-to.js
@@ -8,8 +8,10 @@ Math.easeInOutQuad = function(t, b, c, d) { @@ -8,8 +8,10 @@ Math.easeInOutQuad = function(t, b, c, d) {
8 } 8 }
9 9
10 // requestAnimationFrame for Smart Animating http://goo.gl/sx5sts 10 // requestAnimationFrame for Smart Animating http://goo.gl/sx5sts
11 -var requestAnimFrame = (function() {  
12 - return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) } 11 +const requestAnimFrame = (function() {
  12 + return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) {
  13 + window.setTimeout(callback, 1000 / 60)
  14 + }
13 })() 15 })()
14 16
15 /** 17 /**
@@ -37,11 +39,11 @@ export function scrollTo(to, duration, callback) { @@ -37,11 +39,11 @@ export function scrollTo(to, duration, callback) {
37 const increment = 20 39 const increment = 20
38 let currentTime = 0 40 let currentTime = 0
39 duration = (typeof (duration) === 'undefined') ? 500 : duration 41 duration = (typeof (duration) === 'undefined') ? 500 : duration
40 - var animateScroll = function() { 42 + const animateScroll = function() {
41 // increment the time 43 // increment the time
42 currentTime += increment 44 currentTime += increment
43 // find the value with the quadratic in-out easing function 45 // find the value with the quadratic in-out easing function
44 - var val = Math.easeInOutQuad(currentTime, start, change, duration) 46 + const val = Math.easeInOutQuad(currentTime, start, change, duration)
45 // move the document.body 47 // move the document.body
46 move(val) 48 move(val)
47 // do the animation unless its over 49 // do the animation unless its over
yudao-ui-admin/src/utils/validate.js
@@ -56,7 +56,7 @@ export function validAlphabets(str) { @@ -56,7 +56,7 @@ export function validAlphabets(str) {
56 * @returns {Boolean} 56 * @returns {Boolean}
57 */ 57 */
58 export function validEmail(email) { 58 export function validEmail(email) {
59 - const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ 59 + const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
60 return reg.test(email) 60 return reg.test(email)
61 } 61 }
62 62
@@ -65,10 +65,8 @@ export function validEmail(email) { @@ -65,10 +65,8 @@ export function validEmail(email) {
65 * @returns {Boolean} 65 * @returns {Boolean}
66 */ 66 */
67 export function isString(str) { 67 export function isString(str) {
68 - if (typeof str === 'string' || str instanceof String) {  
69 - return true  
70 - }  
71 - return false 68 + return typeof str === 'string' || str instanceof String;
  69 +
72 } 70 }
73 71
74 /** 72 /**
yudao-ui-admin/src/views/bpm/definition/index.vue
@@ -76,7 +76,6 @@ @@ -76,7 +76,6 @@
76 <script> 76 <script>
77 import {getProcessDefinitionBpmnXML, getProcessDefinitionPage} from "@/api/bpm/definition"; 77 import {getProcessDefinitionBpmnXML, getProcessDefinitionPage} from "@/api/bpm/definition";
78 import {DICT_TYPE, getDictDatas} from "@/utils/dict"; 78 import {DICT_TYPE, getDictDatas} from "@/utils/dict";
79 -import {getForm} from "@/api/bpm/form";  
80 import {decodeFields} from "@/utils/formGenerator"; 79 import {decodeFields} from "@/utils/formGenerator";
81 import Parser from '@/components/parser/Parser' 80 import Parser from '@/components/parser/Parser'
82 import taskAssignRuleDialog from "../taskAssignRule/taskAssignRuleDialog"; 81 import taskAssignRuleDialog from "../taskAssignRule/taskAssignRuleDialog";
yudao-ui-admin/src/views/bpm/form/formEditor.vue
@@ -151,9 +151,7 @@ import RightPanel from &#39;@/views/infra/build/RightPanel&#39; @@ -151,9 +151,7 @@ import RightPanel from &#39;@/views/infra/build/RightPanel&#39;
151 import { 151 import {
152 inputComponents, selectComponents, layoutComponents, formConf 152 inputComponents, selectComponents, layoutComponents, formConf
153 } from '@/components/generator/config' 153 } from '@/components/generator/config'
154 -import {  
155 - exportDefault, beautifierConf, isNumberStr, titleCase, deepClone, isObjectObject  
156 -} from '@/utils/index' 154 +import {beautifierConf, titleCase, deepClone, isObjectObject} from '@/utils'
157 import { 155 import {
158 makeUpHtml, vueTemplate, vueScript, cssStyle 156 makeUpHtml, vueTemplate, vueScript, cssStyle
159 } from '@/components/generator/html' 157 } from '@/components/generator/html'
yudao-ui-admin/src/views/bpm/oa/leave/index.vue
@@ -159,7 +159,7 @@ export default { @@ -159,7 +159,7 @@ export default {
159 type: 'warning', 159 type: 'warning',
160 confirmButtonText: "确定", 160 confirmButtonText: "确定",
161 cancelButtonText: "取消", 161 cancelButtonText: "取消",
162 - inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, // 判断非空,且非空格 162 + inputPattern: /^[\s\S]*.*\S[\s\S]*$/, // 判断非空,且非空格
163 inputErrorMessage: "取消原因不能为空", 163 inputErrorMessage: "取消原因不能为空",
164 }).then(({ value }) => { 164 }).then(({ value }) => {
165 return cancelProcessInstance(id, value); 165 return cancelProcessInstance(id, value);
yudao-ui-admin/src/views/bpm/processInstance/detail.vue
@@ -110,8 +110,8 @@ import {DICT_TYPE, getDictDatas} from &quot;@/utils/dict&quot;; @@ -110,8 +110,8 @@ import {DICT_TYPE, getDictDatas} from &quot;@/utils/dict&quot;;
110 import store from "@/store"; 110 import store from "@/store";
111 import {decodeFields} from "@/utils/formGenerator"; 111 import {decodeFields} from "@/utils/formGenerator";
112 import Parser from '@/components/parser/Parser' 112 import Parser from '@/components/parser/Parser'
113 -import {createProcessInstance, getProcessInstance} from "@/api/bpm/processInstance";  
114 -import {approveTask, getTaskListByProcessInstanceId, rejectTask, updateTaskAssignee,backTask} from "@/api/bpm/task"; 113 +import {getProcessInstance} from "@/api/bpm/processInstance";
  114 +import {approveTask, getTaskListByProcessInstanceId, rejectTask, updateTaskAssignee} from "@/api/bpm/task";
115 import {getDate} from "@/utils/dateUtils"; 115 import {getDate} from "@/utils/dateUtils";
116 import {listSimpleUsers} from "@/api/system/user"; 116 import {listSimpleUsers} from "@/api/system/user";
117 import {getActivityList} from "@/api/bpm/activity"; 117 import {getActivityList} from "@/api/bpm/activity";
yudao-ui-admin/src/views/bpm/processInstance/index.vue
@@ -164,7 +164,7 @@ export default { @@ -164,7 +164,7 @@ export default {
164 type: 'warning', 164 type: 'warning',
165 confirmButtonText: "确定", 165 confirmButtonText: "确定",
166 cancelButtonText: "取消", 166 cancelButtonText: "取消",
167 - inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/, // 判断非空,且非空格 167 + inputPattern: /^[\s\S]*.*\S[\s\S]*$/, // 判断非空,且非空格
168 inputErrorMessage: "取消原因不能为空", 168 inputErrorMessage: "取消原因不能为空",
169 }).then(({ value }) => { 169 }).then(({ value }) => {
170 return cancelProcessInstance(id, value); 170 return cancelProcessInstance(id, value);
yudao-ui-admin/src/views/bpm/task/todo.vue
@@ -50,7 +50,6 @@ @@ -50,7 +50,6 @@
50 50
51 <script> 51 <script>
52 import {getTodoTaskPage} from '@/api/bpm/task' 52 import {getTodoTaskPage} from '@/api/bpm/task'
53 -import {listSimpleUsers} from "@/api/system/user";  
54 53
55 export default { 54 export default {
56 name: "Todo", 55 name: "Todo",
yudao-ui-admin/src/views/dashboard/PanelGroup.vue
@@ -143,8 +143,7 @@ export default { @@ -143,8 +143,7 @@ export default {
143 .card-panel-description { 143 .card-panel-description {
144 float: right; 144 float: right;
145 font-weight: bold; 145 font-weight: bold;
146 - margin: 26px;  
147 - margin-left: 0px; 146 + margin: 26px 26px 26px 0;
148 147
149 .card-panel-text { 148 .card-panel-text {
150 line-height: 18px; 149 line-height: 18px;
yudao-ui-admin/src/views/infra/build/ResourceDialog.vue
@@ -60,7 +60,7 @@ @@ -60,7 +60,7 @@
60 </div> 60 </div>
61 </template> 61 </template>
62 <script> 62 <script>
63 -import { deepClone } from '@/utils/index' 63 +import { deepClone } from '@/utils'
64 64
65 export default { 65 export default {
66 components: {}, 66 components: {},
yudao-ui-admin/src/views/infra/build/RightPanel.vue
@@ -651,10 +651,10 @@ @@ -651,10 +651,10 @@
651 <script> 651 <script>
652 import { isArray } from 'util' 652 import { isArray } from 'util'
653 import TreeNodeDialog from './TreeNodeDialog' 653 import TreeNodeDialog from './TreeNodeDialog'
654 -import { isNumberStr } from '@/utils/index' 654 +import { isNumberStr } from '@/utils'
655 import IconsDialog from './IconsDialog' 655 import IconsDialog from './IconsDialog'
656 import { 656 import {
657 - inputComponents, selectComponents, layoutComponents 657 + inputComponents, selectComponents
658 } from '@/components/generator/config' 658 } from '@/components/generator/config'
659 import { saveFormConf } from '@/utils/db' 659 import { saveFormConf } from '@/utils/db'
660 660
yudao-ui-admin/src/views/infra/build/TreeNodeDialog.vue
@@ -71,7 +71,7 @@ @@ -71,7 +71,7 @@
71 </div> 71 </div>
72 </template> 72 </template>
73 <script> 73 <script>
74 -import { isNumberStr } from '@/utils/index' 74 +import { isNumberStr } from '@/utils'
75 import { getTreeNodeId, saveTreeNodeId } from '@/utils/db' 75 import { getTreeNodeId, saveTreeNodeId } from '@/utils/db'
76 76
77 const id = getTreeNodeId() 77 const id = getTreeNodeId()
yudao-ui-admin/src/views/infra/build/index.vue
@@ -133,8 +133,8 @@ import { @@ -133,8 +133,8 @@ import {
133 inputComponents, selectComponents, layoutComponents, formConf 133 inputComponents, selectComponents, layoutComponents, formConf
134 } from '@/components/generator/config' 134 } from '@/components/generator/config'
135 import { 135 import {
136 - exportDefault, beautifierConf, isNumberStr, titleCase, deepClone  
137 -} from '@/utils/index' 136 + beautifierConf, titleCase, deepClone
  137 +} from '@/utils'
138 import { 138 import {
139 makeUpHtml, vueTemplate, vueScript, cssStyle 139 makeUpHtml, vueTemplate, vueScript, cssStyle
140 } from '@/components/generator/html' 140 } from '@/components/generator/html'
yudao-ui-admin/src/views/infra/codegen/genInfoForm.vue
@@ -105,7 +105,7 @@ @@ -105,7 +105,7 @@
105 </el-form-item> 105 </el-form-item>
106 </el-col> 106 </el-col>
107 107
108 - <el-col :span="24" v-if="info.genType == '1'"> 108 + <el-col :span="24" v-if="info.genType === '1'">
109 <el-form-item prop="genPath"> 109 <el-form-item prop="genPath">
110 <span slot="label"> 110 <span slot="label">
111 自定义路径 111 自定义路径
@@ -128,7 +128,7 @@ @@ -128,7 +128,7 @@
128 </el-col> 128 </el-col>
129 </el-row> 129 </el-row>
130 130
131 - <el-row v-show="info.tplCategory == 'tree'"> 131 + <el-row v-show="info.tplCategory === 'tree'">
132 <h4 class="form-header">其他信息</h4> 132 <h4 class="form-header">其他信息</h4>
133 <el-col :span="12"> 133 <el-col :span="12">
134 <el-form-item> 134 <el-form-item>
@@ -185,7 +185,7 @@ @@ -185,7 +185,7 @@
185 </el-form-item> 185 </el-form-item>
186 </el-col> 186 </el-col>
187 </el-row> 187 </el-row>
188 - <el-row v-show="info.tplCategory == 'sub'"> 188 + <el-row v-show="info.tplCategory === 'sub'">
189 <h4 class="form-header">关联信息</h4> 189 <h4 class="form-header">关联信息</h4>
190 <el-col :span="12"> 190 <el-col :span="12">
191 <el-form-item> 191 <el-form-item>
@@ -314,7 +314,7 @@ export default { @@ -314,7 +314,7 @@ export default {
314 }, 314 },
315 /** 设置关联外键 */ 315 /** 设置关联外键 */
316 setSubTableColumns(value) { 316 setSubTableColumns(value) {
317 - for (var item in this.tables) { 317 + for (let item in this.tables) {
318 const name = this.tables[item].tableName; 318 const name = this.tables[item].tableName;
319 if (value === name) { 319 if (value === name) {
320 this.subColumns = this.tables[item].columns; 320 this.subColumns = this.tables[item].columns;
yudao-ui-admin/src/views/infra/codegen/index.vue
@@ -209,7 +209,7 @@ export default { @@ -209,7 +209,7 @@ export default {
209 highlightedCode(item) { 209 highlightedCode(item) {
210 // const vmName = key.substring(key.lastIndexOf("/") + 1, key.indexOf(".vm")); 210 // const vmName = key.substring(key.lastIndexOf("/") + 1, key.indexOf(".vm"));
211 // var language = vmName.substring(vmName.indexOf(".") + 1, vmName.length); 211 // var language = vmName.substring(vmName.indexOf(".") + 1, vmName.length);
212 - var language = item.filePath.substring(item.filePath.lastIndexOf(".") + 1); 212 + const language = item.filePath.substring(item.filePath.lastIndexOf('.') + 1)
213 const result = hljs.highlight(language, item.code || "", true); 213 const result = hljs.highlight(language, item.code || "", true);
214 return result.value || '&nbsp;'; 214 return result.value || '&nbsp;';
215 }, 215 },
yudao-ui-admin/src/views/infra/redis/index.vue
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 <td><div class="cell">Redis版本</div></td> 13 <td><div class="cell">Redis版本</div></td>
14 <td><div class="cell" v-if="cache.info">{{ cache.info.redis_version }}</div></td> 14 <td><div class="cell" v-if="cache.info">{{ cache.info.redis_version }}</div></td>
15 <td><div class="cell">运行模式</div></td> 15 <td><div class="cell">运行模式</div></td>
16 - <td><div class="cell" v-if="cache.info">{{ cache.info.redis_mode == "standalone" ? "单机" : "集群" }}</div></td> 16 + <td><div class="cell" v-if="cache.info">{{ cache.info.redis_mode === "standalone" ? "单机" : "集群" }}</div></td>
17 <td><div class="cell">端口</div></td> 17 <td><div class="cell">端口</div></td>
18 <td><div class="cell" v-if="cache.info">{{ cache.info.tcp_port }}</div></td> 18 <td><div class="cell" v-if="cache.info">{{ cache.info.tcp_port }}</div></td>
19 <td><div class="cell">客户端数</div></td> 19 <td><div class="cell">客户端数</div></td>
yudao-ui-admin/src/views/login.vue
1 -<template> 1 +<template xmlns="">
2 <div class="container"> 2 <div class="container">
3 <div class="logo"></div> 3 <div class="logo"></div>
4 <!-- 登录区域 --> 4 <!-- 登录区域 -->
@@ -150,7 +150,7 @@ export default { @@ -150,7 +150,7 @@ export default {
150 {required: true, trigger: "blur", message: "手机号不能为空"}, 150 {required: true, trigger: "blur", message: "手机号不能为空"},
151 { 151 {
152 validator: function (rule, value, callback) { 152 validator: function (rule, value, callback) {
153 - if (/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/.test(value) === false) { 153 + if (/^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/.test(value) === false) {
154 callback(new Error("手机号格式错误")); 154 callback(new Error("手机号格式错误"));
155 } else { 155 } else {
156 callback(); 156 callback();
@@ -285,7 +285,7 @@ export default { @@ -285,7 +285,7 @@ export default {
285 285
286 .oauth-login { 286 .oauth-login {
287 display: flex; 287 display: flex;
288 - align-items: cen; 288 + align-items: center;
289 cursor:pointer; 289 cursor:pointer;
290 } 290 }
291 .oauth-login-item { 291 .oauth-login-item {
yudao-ui-admin/src/views/mall/market/banner/index.vue
@@ -107,7 +107,6 @@ @@ -107,7 +107,6 @@
107 import { 107 import {
108 createBanner, 108 createBanner,
109 deleteBanner, 109 deleteBanner,
110 - exportBannerExcel,  
111 getBanner, 110 getBanner,
112 getBannerPage, 111 getBannerPage,
113 updateBanner 112 updateBanner
yudao-ui-admin/src/views/mall/product/category/index.vue
@@ -98,7 +98,6 @@ @@ -98,7 +98,6 @@
98 import { 98 import {
99 createProductCategory, 99 createProductCategory,
100 deleteProductCategory, 100 deleteProductCategory,
101 - exportCategoryExcel,  
102 getProductCategory, 101 getProductCategory,
103 getProductCategoryList, 102 getProductCategoryList,
104 updateProductCategory 103 updateProductCategory
@@ -106,7 +105,6 @@ import { @@ -106,7 +105,6 @@ import {
106 import Editor from '@/components/Editor'; 105 import Editor from '@/components/Editor';
107 import Treeselect from "@riophae/vue-treeselect"; 106 import Treeselect from "@riophae/vue-treeselect";
108 import "@riophae/vue-treeselect/dist/vue-treeselect.css"; 107 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
109 -import IconSelect from "@/components/IconSelect";  
110 import ImageUpload from '@/components/ImageUpload'; 108 import ImageUpload from '@/components/ImageUpload';
111 import {CommonStatusEnum} from "@/utils/constants"; 109 import {CommonStatusEnum} from "@/utils/constants";
112 110
yudao-ui-admin/src/views/mall/product/property/index.vue
@@ -254,7 +254,7 @@ export default { @@ -254,7 +254,7 @@ export default {
254 }).catch(() => {}); 254 }).catch(() => {});
255 }, 255 },
256 removePropertyValue(item) { 256 removePropertyValue(item) {
257 - var index = this.form.propertyValueList.indexOf(item) 257 + const index = this.form.propertyValueList.indexOf(item)
258 if (index !== -1) { 258 if (index !== -1) {
259 this.form.propertyValueList.splice(index, 1) 259 this.form.propertyValueList.splice(index, 1)
260 } 260 }
@@ -266,9 +266,9 @@ export default { @@ -266,9 +266,9 @@ export default {
266 }, 266 },
267 formatList(list) { 267 formatList(list) {
268 let str = '' 268 let str = ''
269 - for (var i = 0; i < list.length; i++) { 269 + for (let i = 0; i < list.length; i++) {
270 str += list[i].name; 270 str += list[i].name;
271 - if(i != list.length-1){ 271 + if(i !== list.length-1){
272 str+="/"; 272 str+="/";
273 } 273 }
274 } 274 }
yudao-ui-admin/src/views/mall/product/spu/save.vue
@@ -67,7 +67,7 @@ @@ -67,7 +67,7 @@
67 <!-- 规格明细 --> 67 <!-- 规格明细 -->
68 <el-form-item label="规格明细"> 68 <el-form-item label="规格明细">
69 <el-table :data="ratesForm.rates" border style="width: 100%" ref="ratesTable"> 69 <el-table :data="ratesForm.rates" border style="width: 100%" ref="ratesTable">
70 - <template v-if="ratesForm.spec == 2"> 70 + <template v-if="ratesForm.spec === 2">
71 <el-table-column :key="index" v-for="(item, index) in dynamicSpec.filter(v => v.specName !== undefined)" 71 <el-table-column :key="index" v-for="(item, index) in dynamicSpec.filter(v => v.specName !== undefined)"
72 :label="item.specName"> 72 :label="item.specName">
73 <template v-slot="scope"> 73 <template v-slot="scope">
@@ -118,13 +118,13 @@ @@ -118,13 +118,13 @@
118 <el-table-column label="库存" :render-header="addRedStar" key="95"> 118 <el-table-column label="库存" :render-header="addRedStar" key="95">
119 <template v-slot="scope"> 119 <template v-slot="scope">
120 <el-form-item :prop="'rates.'+ scope.$index + '.stock'" :rules="[{required: true, trigger: 'change'}]"> 120 <el-form-item :prop="'rates.'+ scope.$index + '.stock'" :rules="[{required: true, trigger: 'change'}]">
121 - <el-input v-model="scope.row.stock" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"></el-input> 121 + <el-input v-model="scope.row.stock" oninput="value=value.replace(/^(0+)|\D+/g,'')"></el-input>
122 </el-form-item> 122 </el-form-item>
123 </template> 123 </template>
124 </el-table-column> 124 </el-table-column>
125 <el-table-column label="预警库存" key="96"> 125 <el-table-column label="预警库存" key="96">
126 <template v-slot="scope"> 126 <template v-slot="scope">
127 - <el-input v-model="scope.row.warnStock" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"></el-input> 127 + <el-input v-model="scope.row.warnStock" oninput="value=value.replace(/^(0+)|\D+/g,'')"></el-input>
128 </template> 128 </template>
129 </el-table-column> 129 </el-table-column>
130 <el-table-column label="体积" key="97"> 130 <el-table-column label="体积" key="97">
@@ -145,8 +145,8 @@ @@ -145,8 +145,8 @@
145 <template v-if="ratesForm.spec === 2"> 145 <template v-if="ratesForm.spec === 2">
146 <el-table-column fixed="right" label="操作" width="50" key="100"> 146 <el-table-column fixed="right" label="操作" width="50" key="100">
147 <template v-slot="scope"> 147 <template v-slot="scope">
148 - <el-button @click="scope.row.status = 1" type="text" size="small" v-show="scope.row.status == undefined || scope.row.status == 0 ">禁用</el-button>  
149 - <el-button @click="scope.row.status = 0" type="text" size="small" v-show="scope.row.status == 1">启用</el-button> 148 + <el-button @click="scope.row.status = 1" type="text" size="small" v-show="scope.row.status == 0 ">禁用</el-button>
  149 + <el-button @click="scope.row.status = 0" type="text" size="small" v-show="scope.row.status === 1">启用</el-button>
150 </template> 150 </template>
151 </el-table-column> 151 </el-table-column>
152 </template> 152 </template>
@@ -154,7 +154,7 @@ @@ -154,7 +154,7 @@
154 </el-form-item> 154 </el-form-item>
155 <el-form-item label="虚拟销量" prop="virtualSalesCount"> 155 <el-form-item label="虚拟销量" prop="virtualSalesCount">
156 <!-- TODO @Luowenfeng:使用 input 类型即可 --> 156 <!-- TODO @Luowenfeng:使用 input 类型即可 -->
157 - <el-input v-model="baseForm.virtualSalesCount" placeholder="请输入虚拟销量" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"/> 157 + <el-input v-model="baseForm.virtualSalesCount" placeholder="请输入虚拟销量" oninput="value=value.replace(/^(0+)|\D+/g,'')"/>
158 </el-form-item> 158 </el-form-item>
159 </el-form> 159 </el-form>
160 </el-tab-pane> 160 </el-tab-pane>
@@ -172,7 +172,7 @@ @@ -172,7 +172,7 @@
172 <el-tab-pane label="高级设置" name="fourth"> 172 <el-tab-pane label="高级设置" name="fourth">
173 <el-form ref="fourth" :model="baseForm" :rules="rules" label-width="100px" style="width: 95%"> 173 <el-form ref="fourth" :model="baseForm" :rules="rules" label-width="100px" style="width: 95%">
174 <el-form-item label="排序字段"> 174 <el-form-item label="排序字段">
175 - <el-input v-model="baseForm.sort" placeholder="请输入排序字段" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"/> 175 + <el-input v-model="baseForm.sort" placeholder="请输入排序字段" oninput="value=value.replace(/^(0+)|\D+/g,'')"/>
176 </el-form-item> 176 </el-form-item>
177 <el-form-item label="是否展示库存" prop="showStock"> 177 <el-form-item label="是否展示库存" prop="showStock">
178 <el-radio-group v-model="baseForm.showStock"> 178 <el-radio-group v-model="baseForm.showStock">
@@ -271,7 +271,7 @@ export default { @@ -271,7 +271,7 @@ export default {
271 this.getListBrand(); 271 this.getListBrand();
272 this.getListCategory(); 272 this.getListCategory();
273 this.getPropertyPageList(); 273 this.getPropertyPageList();
274 - if(this.type == 'upd'){ 274 + if(this.type === 'upd'){
275 this.updateType(this.obj.id) 275 this.updateType(this.obj.id)
276 } 276 }
277 }, 277 },
@@ -297,7 +297,7 @@ export default { @@ -297,7 +297,7 @@ export default {
297 }, 297 },
298 changeRadio() { 298 changeRadio() {
299 this.$refs.ratesTable.doLayout(); 299 this.$refs.ratesTable.doLayout();
300 - if (this.ratesForm.spec == 1) { 300 + if (this.ratesForm.spec === 1) {
301 this.ratesForm.rates = [{}] 301 this.ratesForm.rates = [{}]
302 } else { 302 } else {
303 this.ratesForm.rates = [] 303 this.ratesForm.rates = []
@@ -363,7 +363,7 @@ export default { @@ -363,7 +363,7 @@ export default {
363 }) 363 })
364 364
365 // 动态规格调整字段 365 // 动态规格调整字段
366 - if (this.ratesForm.spec == 2) { 366 + if (this.ratesForm.spec === 2) {
367 rates.forEach(r => { 367 rates.forEach(r => {
368 let properties = [] 368 let properties = []
369 Array.of(r.spec).forEach(s => { 369 Array.of(r.spec).forEach(s => {
@@ -374,7 +374,7 @@ export default { @@ -374,7 +374,7 @@ export default {
374 obj = Array.of(s); 374 obj = Array.of(s);
375 } 375 }
376 obj.forEach((v, i) => { 376 obj.forEach((v, i) => {
377 - let specValue = this.dynamicSpec[i].specValue.find(o => o.name == v); 377 + let specValue = this.dynamicSpec[i].specValue.find(o => o.name === v);
378 let propertie = {}; 378 let propertie = {};
379 propertie.propertyId = this.dynamicSpec[i].specId; 379 propertie.propertyId = this.dynamicSpec[i].specId;
380 propertie.valueId = specValue.id; 380 propertie.valueId = specValue.id;
@@ -422,9 +422,9 @@ export default { @@ -422,9 +422,9 @@ export default {
422 }); 422 });
423 }, 423 },
424 changeSpec(val) { 424 changeSpec(val) {
425 - let obj = this.propertyPageList.find(o => o.id == val); 425 + let obj = this.propertyPageList.find(o => o.id === val);
426 let dynamicSpec = this.dynamicSpec; 426 let dynamicSpec = this.dynamicSpec;
427 - let spec = dynamicSpec.find(o => o.specId == val) 427 + let spec = dynamicSpec.find(o => o.specId === val)
428 spec.specId = obj.id; 428 spec.specId = obj.id;
429 spec.specName = obj.name; 429 spec.specName = obj.name;
430 spec.specValue = obj.propertyValueList; 430 spec.specValue = obj.propertyValueList;
@@ -451,7 +451,7 @@ export default { @@ -451,7 +451,7 @@ export default {
451 r.price = this.divide(r.price, 100) 451 r.price = this.divide(r.price, 100)
452 r.costPrice = this.divide(r.costPrice, 100) 452 r.costPrice = this.divide(r.costPrice, 100)
453 }) 453 })
454 - if(this.ratesForm.spec == 2){ 454 + if(this.ratesForm.spec === 2){
455 data.productPropertyViews.forEach(p=>{ 455 data.productPropertyViews.forEach(p=>{
456 let obj = {}; 456 let obj = {};
457 obj.specId = p.propertyId; 457 obj.specId = p.propertyId;
@@ -462,7 +462,7 @@ export default { @@ -462,7 +462,7 @@ export default {
462 data.skus.forEach(s=>{ 462 data.skus.forEach(s=>{
463 s.spec = []; 463 s.spec = [];
464 s.properties.forEach(sp=>{ 464 s.properties.forEach(sp=>{
465 - let spec = data.productPropertyViews.find(o=>o.propertyId == sp.propertyId).propertyValues.find(v=>v.id == sp.valueId).name; 465 + let spec = data.productPropertyViews.find(o=>o.propertyId === sp.propertyId).propertyValues.find(v=>v.id === sp.valueId).name;
466 s.spec.push(spec) 466 s.spec.push(spec)
467 }) 467 })
468 }) 468 })
@@ -483,12 +483,10 @@ export default { @@ -483,12 +483,10 @@ export default {
483 .dynamic-spec { 483 .dynamic-spec {
484 background-color: #f2f2f2; 484 background-color: #f2f2f2;
485 width: 85%; 485 width: 85%;
486 - margin: auto;  
487 - margin-bottom: 10px; 486 + margin: auto auto 10px;
488 487
489 .spec-header { 488 .spec-header {
490 - padding: 30px;  
491 - padding-bottom: 20px; 489 + padding: 30px 30px 20px;
492 490
493 .spec-name { 491 .spec-name {
494 display: inline; 492 display: inline;
@@ -501,9 +499,8 @@ export default { @@ -501,9 +499,8 @@ export default {
501 499
502 .spec-values { 500 .spec-values {
503 width: 84%; 501 width: 84%;
504 - padding: 25px;  
505 margin: auto; 502 margin: auto;
506 - padding-top: 5px; 503 + padding: 5px 25px 25px;
507 504
508 .spec-value { 505 .spec-value {
509 display: inline-block; 506 display: inline-block;
yudao-ui-admin/src/views/pay/order/index.vue
@@ -219,7 +219,6 @@ import {getOrder, getOrderPage, exportOrderExcel} from &quot;@/api/pay/order&quot;; @@ -219,7 +219,6 @@ import {getOrder, getOrderPage, exportOrderExcel} from &quot;@/api/pay/order&quot;;
219 import {getMerchantListByName} from "@/api/pay/merchant"; 219 import {getMerchantListByName} from "@/api/pay/merchant";
220 import {getAppListByMerchantId} from "@/api/pay/app"; 220 import {getAppListByMerchantId} from "@/api/pay/app";
221 import {DICT_TYPE, getDictDatas} from "@/utils/dict"; 221 import {DICT_TYPE, getDictDatas} from "@/utils/dict";
222 -import {PayOrderNotifyStatusEnum, PayOrderRefundStatusEnum, PayOrderStatusEnum} from "@/utils/constants";  
223 import { getNowDateTime} from "@/utils/ruoyi"; 222 import { getNowDateTime} from "@/utils/ruoyi";
224 223
225 const defaultOrderDetail = { 224 const defaultOrderDetail = {
yudao-ui-admin/src/views/sso.vue
@@ -175,7 +175,7 @@ export default { @@ -175,7 +175,7 @@ export default {
175 @import "~@/assets/styles/login.scss"; 175 @import "~@/assets/styles/login.scss";
176 .oauth-login { 176 .oauth-login {
177 display: flex; 177 display: flex;
178 - align-items: cen; 178 + align-items: center;
179 cursor:pointer; 179 cursor:pointer;
180 } 180 }
181 .oauth-login-item { 181 .oauth-login-item {
yudao-ui-admin/src/views/system/dept/index.vue
@@ -167,7 +167,7 @@ export default { @@ -167,7 +167,7 @@ export default {
167 ], 167 ],
168 phone: [ 168 phone: [
169 { 169 {
170 - pattern: /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/, 170 + pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
171 message: "请输入正确的手机号码", 171 message: "请输入正确的手机号码",
172 trigger: "blur" 172 trigger: "blur"
173 } 173 }
yudao-ui-admin/src/views/system/role/index.vue
@@ -167,7 +167,6 @@ @@ -167,7 +167,6 @@
167 import { 167 import {
168 addRole, 168 addRole,
169 changeRoleStatus, 169 changeRoleStatus,
170 - dataScope,  
171 delRole, 170 delRole,
172 exportRole, 171 exportRole,
173 getRole, 172 getRole,
yudao-ui-admin/src/views/system/sms/smsChannel.vue
@@ -107,8 +107,7 @@ @@ -107,8 +107,7 @@
107 </template> 107 </template>
108 108
109 <script> 109 <script>
110 -import { createSmsChannel, updateSmsChannel, deleteSmsChannel, getSmsChannel, getSmsChannelPage,  
111 - getSimpleSmsChannels } from "@/api/system/sms/smsChannel"; 110 +import { createSmsChannel, updateSmsChannel, deleteSmsChannel, getSmsChannel, getSmsChannelPage } from "@/api/system/sms/smsChannel";
112 111
113 export default { 112 export default {
114 name: "SmsChannel", 113 name: "SmsChannel",
yudao-ui-admin/src/views/system/tenantPackage/index.vue
@@ -91,7 +91,7 @@ @@ -91,7 +91,7 @@
91 91
92 <script> 92 <script>
93 import { createTenantPackage, updateTenantPackage, deleteTenantPackage, getTenantPackage, getTenantPackagePage} from "@/api/system/tenantPackage"; 93 import { createTenantPackage, updateTenantPackage, deleteTenantPackage, getTenantPackage, getTenantPackagePage} from "@/api/system/tenantPackage";
94 -import {CommonStatusEnum, SystemMenuTypeEnum} from "@/utils/constants"; 94 +import {CommonStatusEnum} from "@/utils/constants";
95 import {listSimpleMenus} from "@/api/system/menu"; 95 import {listSimpleMenus} from "@/api/system/menu";
96 96
97 export default { 97 export default {
yudao-ui-admin/src/views/system/user/index.vue
@@ -343,7 +343,7 @@ export default { @@ -343,7 +343,7 @@ export default {
343 ], 343 ],
344 mobile: [ 344 mobile: [
345 { 345 {
346 - pattern: /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/, 346 + pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
347 message: "请输入正确的手机号码", 347 message: "请输入正确的手机号码",
348 trigger: "blur" 348 trigger: "blur"
349 } 349 }
yudao-ui-admin/src/views/system/user/profile/userAvatar.vue
@@ -109,7 +109,7 @@ export default { @@ -109,7 +109,7 @@ export default {
109 }, 109 },
110 // 上传预处理 110 // 上传预处理
111 beforeUpload(file) { 111 beforeUpload(file) {
112 - if (file.type.indexOf("image/") == -1) { 112 + if (file.type.indexOf("image/") === -1) {
113 this.$modal.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。"); 113 this.$modal.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。");
114 } else { 114 } else {
115 const reader = new FileReader(); 115 const reader = new FileReader();
yudao-ui-admin/src/views/system/user/profile/userInfo.vue
@@ -49,7 +49,7 @@ export default { @@ -49,7 +49,7 @@ export default {
49 mobile: [ 49 mobile: [
50 { required: true, message: "手机号码不能为空", trigger: "blur" }, 50 { required: true, message: "手机号码不能为空", trigger: "blur" },
51 { 51 {
52 - pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, 52 + pattern: /^1[3|456789][0-9]\d{8}$/,
53 message: "请输入正确的手机号码", 53 message: "请输入正确的手机号码",
54 trigger: "blur" 54 trigger: "blur"
55 } 55 }
yudao-ui-admin/yarn.lock
@@ -5504,6 +5504,11 @@ image-size@^0.5.1: @@ -5504,6 +5504,11 @@ image-size@^0.5.1:
5504 resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" 5504 resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
5505 integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== 5505 integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
5506 5506
  5507 +immutable@^4.0.0:
  5508 + version "4.1.0"
  5509 + resolved "https://registry.npmmirror.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef"
  5510 + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==
  5511 +
5507 import-cwd@^2.0.0: 5512 import-cwd@^2.0.0:
5508 version "2.1.0" 5513 version "2.1.0"
5509 resolved "https://registry.npmmirror.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" 5514 resolved "https://registry.npmmirror.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
@@ -8560,23 +8565,22 @@ safe-regex@^1.1.0: @@ -8560,23 +8565,22 @@ safe-regex@^1.1.0:
8560 resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 8565 resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
8561 integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 8566 integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
8562 8567
8563 -sass-loader@10.1.1:  
8564 - version "10.1.1"  
8565 - resolved "https://registry.npmmirror.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d"  
8566 - integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== 8568 +sass-loader@13.1.0:
  8569 + version "13.1.0"
  8570 + resolved "https://registry.npmmirror.com/sass-loader/-/sass-loader-13.1.0.tgz#e5b9acf14199a9bc6eaed7a0b8b23951c2cebf6f"
  8571 + integrity sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ==
8567 dependencies: 8572 dependencies:
8568 klona "^2.0.4" 8573 klona "^2.0.4"
8569 - loader-utils "^2.0.0"  
8570 neo-async "^2.6.2" 8574 neo-async "^2.6.2"
8571 - schema-utils "^3.0.0"  
8572 - semver "^7.3.2"  
8573 8575
8574 -sass@1.32.13:  
8575 - version "1.32.13"  
8576 - resolved "https://registry.npmmirror.com/sass/-/sass-1.32.13.tgz#8d29c849e625a415bce71609c7cf95e15f74ed00"  
8577 - integrity sha512-dEgI9nShraqP7cXQH+lEXVf73WOPCse0QlFzSD8k+1TcOxCMwVXfQlr0jtoluZysQOyJGnfr21dLvYKDJq8HkA== 8576 +sass@1.56.0:
  8577 + version "1.56.0"
  8578 + resolved "https://registry.npmmirror.com/sass/-/sass-1.56.0.tgz#134032075a3223c8d49cb5c35e091e5ba1de8e0a"
  8579 + integrity sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==
8578 dependencies: 8580 dependencies:
8579 chokidar ">=3.0.0 <4.0.0" 8581 chokidar ">=3.0.0 <4.0.0"
  8582 + immutable "^4.0.0"
  8583 + source-map-js ">=0.6.2 <2.0.0"
8580 8584
8581 sax@^1.2.4, sax@~1.2.4: 8585 sax@^1.2.4, sax@~1.2.4:
8582 version "1.2.4" 8586 version "1.2.4"
@@ -8673,7 +8677,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: @@ -8673,7 +8677,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
8673 resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 8677 resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
8674 integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 8678 integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
8675 8679
8676 -semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.6: 8680 +semver@^7.2.1, semver@^7.3.5, semver@^7.3.6:
8677 version "7.3.8" 8681 version "7.3.8"
8678 resolved "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" 8682 resolved "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
8679 integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== 8683 integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
@@ -8933,7 +8937,7 @@ source-list-map@^2.0.0: @@ -8933,7 +8937,7 @@ source-list-map@^2.0.0:
8933 resolved "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" 8937 resolved "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
8934 integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== 8938 integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
8935 8939
8936 -source-map-js@^1.0.2: 8940 +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
8937 version "1.0.2" 8941 version "1.0.2"
8938 resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 8942 resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
8939 integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 8943 integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==