Commit 011dc236996b3919fa46499b40b2086844d4dda6
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,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"); | 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 './ruoyi' | @@ -4,14 +4,14 @@ import { parseTime } from './ruoyi' | ||
| 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 => { | @@ -49,12 +49,12 @@ service.interceptors.request.use(config => { | ||
| 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 '@/views/infra/build/RightPanel' | @@ -151,9 +151,7 @@ import RightPanel from '@/views/infra/build/RightPanel' | ||
| 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 "@/utils/dict"; | @@ -110,8 +110,8 @@ import {DICT_TYPE, getDictDatas} from "@/utils/dict"; | ||
| 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
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 || ' '; | 214 | return result.value || ' '; |
| 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
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 "@/api/pay/order"; | @@ -219,7 +219,6 @@ import {getOrder, getOrderPage, exportOrderExcel} from "@/api/pay/order"; | ||
| 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
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== |