n20-common-lib 2.1.4 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n20-common-lib",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "private": false,
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -154,7 +154,7 @@ export default {
154
154
  val = ev.code === 'ArrowUp' ? val + this.step : val - this.step
155
155
  let valueStr = Number(val.toFixed(9)).toString()
156
156
  this.valueStr = valueStr
157
- this.inputFn(valueStr)
157
+ this.changeFn(valueStr)
158
158
  }
159
159
  }
160
160
  },
@@ -162,36 +162,30 @@ export default {
162
162
  if (valStr !== '-' && isNaN(valStr)) {
163
163
  this.valueStr = this.preValue
164
164
  } else {
165
- if (valStr !== '-') {
166
- let val = Number(valStr)
167
- if (val < this.min) {
168
- this.valueStr = this.min
169
- } else if (val > this.max) {
170
- this.valueStr = this.max
171
- } else if (this.stepStrictly) {
172
- let N = val / this.step
173
- if (Number(N.toFixed(9)) === Math.round(N)) {
174
- this.preValue = valStr
175
- } else {
176
- val = Math.round(N) * this.step
177
- this.valueStr = val.toString()
178
- }
179
- } else {
180
- this.preValue = valStr
181
- }
182
- }
165
+ this.preValue = valStr
183
166
  }
184
167
  },
185
168
  changeFn(valStr) {
186
169
  valStr = valStr.replace(/,/g, '')
187
- let val = Number(valStr)
188
170
 
189
- if (!valStr.trim() || isNaN(val)) {
171
+ if (!valStr.trim() || isNaN(valStr)) {
190
172
  this.valueStr = ''
191
173
  this.$emit('input', undefined)
192
174
  this.$emit('change', undefined)
193
175
  return
194
176
  }
177
+
178
+ let val = Number(valStr)
179
+ if (val < this.min) {
180
+ val = this.min
181
+ } else if (val > this.max) {
182
+ val = this.max
183
+ } else if (this.stepStrictly) {
184
+ let N = val / this.step
185
+ if (Number(N.toFixed(9)) !== Math.round(N)) {
186
+ val = Math.round(N) * this.step
187
+ }
188
+ }
195
189
  this.valueStr = this.num2str(val)
196
190
 
197
191
  switch (this.type) {
@@ -36,6 +36,7 @@
36
36
  {{ '单位' | $lc }}: <span class="color-666">{{ userInfo.companyName }}</span>
37
37
  </span>
38
38
  </sapn>
39
+ <span v-else-if="byLabel" class="uif-by">{{ byLabel }}</span>
39
40
  <el-button v-if="inBack" class="header-hdyy f-s-s" plain round size="mini" @click="toSystem">回到应用</el-button>
40
41
  <!-- YSCW-end -->
41
42
  <el-dropdown class="m-l-lg" @command="setLang">
@@ -116,14 +117,12 @@
116
117
  <span class="_edit el-icon-edit" @click="editByLabel"></span>
117
118
  </div>
118
119
  </div>
119
- <dialogWrap
120
- :title="'修改密码' | $lc"
121
- :visible.sync="cpwdV"
122
- append-to-body
123
- :width="_lang == 'zh' ? '400px' : '460px'"
124
- >
125
- <changePwd :visible.sync="cpwdV" />
126
- </dialogWrap>
120
+ <el-dropdown-item command="changePassword">
121
+ <div class="flex-box flex-v">
122
+ <span>{{ '修改密码' | $lc }}</span>
123
+ <i class="el-icon-caret-right m-l-auto m-r-0"></i>
124
+ </div>
125
+ </el-dropdown-item>
127
126
  <el-dropdown-item v-if="customOpt.agency" command="myAgency">
128
127
  <div class="flex-box flex-v">
129
128
  <span>{{ '工作代理' | $lc }}</span>
@@ -255,7 +255,7 @@ export default {
255
255
  this.$message.error($lc('登录首页文字显示信息不能为空'))
256
256
  break
257
257
  case 'LOGIN_MODE':
258
- this.$message.error($lc('登陆方式至少勾选一种方式'))
258
+ this.$message.error($lc('登录方式至少勾选一种方式'))
259
259
  break
260
260
  }
261
261
  },
@@ -292,7 +292,7 @@ export default {
292
292
  let secondsToGo = 5
293
293
  this.$message({
294
294
  type: 'success',
295
- message: `设置成功,系统将在 ${secondsToGo} 秒后退出到登陆页面.`
295
+ message: `设置成功,系统将在 ${secondsToGo} 秒后退出到登录页面.`
296
296
  })
297
297
  const interval = setInterval(() => {
298
298
  secondsToGo -= 1
@@ -3,7 +3,7 @@
3
3
  <div class="flex-box" style="height: 100%; overflow: auto">
4
4
  <div class="bd-r" style="width: 290px">
5
5
  <div class="flex-box flex-v p-l">
6
- <span>登陆页设置</span>
6
+ <span>登录页设置</span>
7
7
  <el-button class="m-l-auto bd-none" plain size="mini" @click="addItem"
8
8
  ><i class="n20-icon-xinzeng m-r-ss"></i>新增</el-button
9
9
  >
@@ -35,7 +35,13 @@
35
35
  </div>
36
36
  </div>
37
37
  <template v-for="item in munList">
38
- <SetItem v-if="activateMunId === item.id" :key="item.id" class="flex-item" :id-no="activateMunId" />
38
+ <SetItem
39
+ v-if="activateMunId === item.id"
40
+ :key="item.id + siKey"
41
+ class="flex-item"
42
+ :id-no="activateMunId"
43
+ @renewal="siKey = siKey + 1"
44
+ />
39
45
  </template>
40
46
  </div>
41
47
  <div slot="footer" style="height: 44px"></div>
@@ -51,7 +57,8 @@ export default {
51
57
  return {
52
58
  userNo: sessionStorage.getItem('userNo'),
53
59
  munList: [],
54
- activateMunId: undefined
60
+ activateMunId: undefined,
61
+ siKey: 0
55
62
  }
56
63
  },
57
64
  created() {
@@ -82,7 +89,7 @@ export default {
82
89
  })
83
90
  },
84
91
  async addItem() {
85
- let { value } = await this.$prompt('请输入登陆页名称', '新增', {
92
+ let { value } = await this.$prompt('请输入登录页名称', '新增', {
86
93
  confirmButtonText: '确定',
87
94
  cancelButtonText: '取消'
88
95
  })
@@ -91,7 +98,7 @@ export default {
91
98
  this.Init(value)
92
99
  },
93
100
  async updateItem(item) {
94
- let { value } = await this.$prompt('请输入登陆页名称', '修改', {
101
+ let { value } = await this.$prompt('请输入登录页名称', '修改', {
95
102
  confirmButtonText: '确定',
96
103
  cancelButtonText: '取消',
97
104
  inputValue: item.logName
@@ -3,25 +3,12 @@
3
3
  <div class="p-l-lg" style="overflow: auto">
4
4
  <el-form ref="form" :model="form" class="m-l-lg" label-position="top">
5
5
  <el-form-item
6
- label="登陆页URL"
6
+ label="登录页URL"
7
7
  prop="LOGIN_URL"
8
- :rules="{ required: true, message: '登陆页URL不能为空', trigger: 'change' }"
8
+ :rules="{ required: true, message: '登录页URL不能为空', trigger: 'change' }"
9
9
  >
10
10
  <el-input v-model="form.LOGIN_URL" class="input-w-u" clearable />
11
11
  </el-form-item>
12
- <el-form-item
13
- label="登录方式设置"
14
- prop="LOGIN_MODE"
15
- :rules="{ type: 'array', required: true, message: '至少选择一种登录方式', trigger: 'change' }"
16
- >
17
- <span slot="label"
18
- ><span>登录方式设置</span
19
- ><span class="color-danger m-l-s f-s-s">({{ '至少选择一种登录方式' | $lc }})</span></span
20
- >
21
- <el-checkbox-group v-model="form.LOGIN_MODE">
22
- <el-checkbox v-for="item in plainOptions" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
23
- </el-checkbox-group>
24
- </el-form-item>
25
12
  <el-form-item
26
13
  label="集团名称设置"
27
14
  prop="GROUP_NAME"
@@ -29,105 +16,120 @@
29
16
  >
30
17
  <el-input v-model="form.GROUP_NAME" class="input-w-u" clearable />
31
18
  </el-form-item>
32
- <el-form-item
33
- label="登录首页文字显示信息"
34
- prop="LOGIN_SLOGAN"
35
- :rules="{ required: true, message: '登录首页文字显示信息不能为空', trigger: 'change' }"
36
- >
37
- <el-input v-model="form.LOGIN_SLOGAN" class="input-w-u" clearable />
19
+ <el-form-item label="登录首页文字显示信息">
20
+ <el-input v-model="form.LOGIN_SLOGAN" type="textarea" class="input-w-u" rows="1" />
38
21
  </el-form-item>
39
22
  <el-form-item
40
23
  label="登录背景图片设置"
41
24
  prop="LOGIN_BG"
42
25
  :rules="{ required: true, message: '登录背景图片不能为空', trigger: 'change' }"
43
26
  >
44
- <cl-upload
45
- :drag="true"
46
- :action="`/bems/1.0/upload/${idNo}_bg`"
47
- :file-url.sync="form.LOGIN_BG"
48
- accept="image/*"
49
- msg-type="message"
50
- style="width: 536px; height: 294px"
51
- >
52
- <template slot="trigger">
53
- <i class="drag-icon n20-icon-shangchuan"></i>
54
- <span class="drag-text">点击或将文件拖拽到这里上传</span>
55
- <span class="drag-tip">建议图片尺寸:1920*1080,支持图片格式:png、jpg、bmp</span>
56
- </template>
57
- </cl-upload>
27
+ <div class="login-form-bg-box">
28
+ <img :key="key_1" class="login-preview" :src="form.LOGIN_BG" />
29
+ <div>
30
+ <div class="flex-box">
31
+ <span class="m-r">上传图片</span>
32
+ <cl-upload
33
+ :action="`/bems/1.0/upload/${idNo}_bg`"
34
+ :file-url.sync="form.LOGIN_BG"
35
+ accept="image/*"
36
+ msg-type="message"
37
+ placeholder="选择附件"
38
+ :on-success="() => (key_1 = key_1 + 1)"
39
+ />
40
+ </div>
41
+ <div class="color-placeholder f-s-s">建议图片尺寸:1920*1080,支持图片格式:png、jpg、bmp、svg。</div>
42
+ </div>
43
+ </div>
58
44
  </el-form-item>
59
45
  <el-form-item
60
46
  label="公司LOGO图片设置"
61
47
  prop="LOGIN_LOGO"
62
48
  :rules="{ required: true, message: '公司LOGO图片不能为空', trigger: 'change' }"
63
49
  >
64
- <cl-upload
65
- :drag="true"
66
- :action="`/bems/1.0/upload/${idNo}_logo`"
67
- :file-url.sync="form.LOGIN_LOGO"
68
- accept="image/*"
69
- msg-type="message"
70
- style="width: 536px; height: 294px"
71
- >
72
- <template slot="trigger">
73
- <i class="drag-icon n20-icon-shangchuan"></i>
74
- <span class="drag-text">点击或将文件拖拽到这里上传</span>
75
- <span class="drag-tip">建议图片尺寸:108*30,支持图片格式:png、jpg、bmp</span>
76
- </template>
77
- </cl-upload>
78
- </el-form-item>
79
- <cl-expandable-pane title="信息内容展开" title-class="m-t-0">
80
- <div class="bd-l bd-t bd-r m-t-lg m-b">
81
- <el-table :data="form.SYSTEM_LIST" highlight-current-row @row-click="sltRow">
82
- <el-table-column label="系统名称" prop="NAME" />
83
- <el-table-column label="是否在登陆页显示" align="center">
84
- <template slot-scope="{ row }">
85
- <el-switch v-model="row.OPEN" @change="openCg" />
86
- </template>
87
- </el-table-column>
88
- </el-table>
50
+ <div class="login-form-bg-box">
51
+ <img :key="key_1" class="login-preview" :src="form.LOGIN_LOGO" />
52
+ <div>
53
+ <div class="flex-box">
54
+ <span class="m-r">上传图片</span>
55
+ <cl-upload
56
+ :action="`/bems/1.0/upload/${idNo}_logo`"
57
+ :file-url.sync="form.LOGIN_LOGO"
58
+ accept="image/*"
59
+ msg-type="message"
60
+ placeholder="选择附件"
61
+ :on-success="() => (key_2 = key_2 + 1)"
62
+ />
63
+ </div>
64
+ <div class="color-placeholder f-s-s">建议图片尺寸:108*30,支持图片格式:png、jpg、bmp、svg。</div>
65
+ </div>
89
66
  </div>
90
- <el-form-item
91
- label="页面展示方式"
92
- :rules="{ required: true, message: '页面展示方式不能为空', trigger: 'change' }"
93
- >
94
- <el-select v-model="form.LOGIN_TYPE" class="input-w-u" :disabled="loginTypeDisabled">
95
- <el-option label="平铺展示" value="T0" />
96
- <el-option label="左右切换" value="T1" />
97
- <el-option label="平铺展示" value="T2" />
98
- </el-select>
99
- </el-form-item>
100
- <template v-if="systemItem">
101
- <el-form-item label="系统名称设置" class="is-required">
102
- <el-input ref="sys-name" v-model="systemItem.NAME" class="input-w-u" clearable />
103
- </el-form-item>
104
- <el-form-item label="系统标识设置" class="is-required">
105
- <cl-upload
106
- :drag="true"
107
- :action="`/bems/1.0/upload/${idNo}_${form.NO}_icon`"
108
- :file-url.sync="systemItem.ICON"
109
- accept="image/*"
110
- msg-type="message"
111
- style="width: 536px; height: 294px"
67
+ </el-form-item>
68
+
69
+ <div class="bd-l bd-t bd-r m-t-lg m-b">
70
+ <el-table :data="form.SYSTEM_LIST">
71
+ <el-table-column label="系统名称" prop="NAME" />
72
+ <el-table-column label="是否在登录页显示" align="center">
73
+ <template slot-scope="{ row }">
74
+ <el-switch v-model="row.OPEN" />
75
+ </template>
76
+ </el-table-column>
77
+ </el-table>
78
+ </div>
79
+ <el-form-item
80
+ label="页面展示方式"
81
+ :rules="{ required: true, message: '页面展示方式不能为空', trigger: 'change' }"
82
+ >
83
+ <el-select v-model="form.LOGIN_TYPE" class="input-w-u">
84
+ <el-option label="左右切换" value="T1" />
85
+ <el-option label="平铺展示" value="T2" />
86
+ </el-select>
87
+ </el-form-item>
88
+ <cl-expandable-pane title="系统详情设置" title-class="m-t-0">
89
+ <template v-for="(systemItem, i) in form.SYSTEM_LIST">
90
+ <div v-if="systemItem.OPEN" :key="i">
91
+ <el-form-item
92
+ label="系统名称设置"
93
+ :prop="`SYSTEM_LIST.${i}.NAME`"
94
+ :rules="{ required: true, message: '系统名称不能为空', trigger: 'change' }"
112
95
  >
113
- <template slot="trigger">
114
- <i class="drag-icon n20-icon-shangchuan"></i>
115
- <span class="drag-text">点击或将文件拖拽到这里上传</span>
116
- <span class="drag-tip">建议图片尺寸:80*80,支持图片格式:png、jpg、bmp</span>
117
- </template>
118
- </cl-upload>
119
- </el-form-item>
120
- <el-form-item label="登录方式设置" class="is-required">
121
- <span slot="label"
122
- ><span>登录方式设置</span
123
- ><span class="color-danger m-l-s f-s-s">({{ '至少选择一种登录方式' | $lc }})</span></span
96
+ <el-input ref="sys-name" v-model="systemItem.NAME" class="input-w-u" clearable />
97
+ </el-form-item>
98
+ <el-form-item label="系统标识图片设置" class="is-required">
99
+ <div class="login-form-bg-box">
100
+ <img :key="keyS[i]" class="login-preview" :src="systemItem.ICON || `/server-assets/N0${i + 1}.png`" />
101
+ <div>
102
+ <div class="flex-box">
103
+ <span class="m-r">上传图片</span>
104
+ <cl-upload
105
+ :action="`/bems/1.0/upload/${idNo}_${systemItem.NO}_icon`"
106
+ :file-url.sync="systemItem.ICON"
107
+ accept="image/*"
108
+ msg-type="message"
109
+ placeholder="选择附件"
110
+ :on-success="() => (keyS[i] = keyS[i] + 1)"
111
+ />
112
+ </div>
113
+ <div class="color-placeholder f-s-s">建议图片尺寸:80*80,支持图片格式:png、jpg、bmp、svg。</div>
114
+ </div>
115
+ </div>
116
+ </el-form-item>
117
+ <el-form-item
118
+ label="登录方式设置"
119
+ :prop="`SYSTEM_LIST.${i}.LOGIN_MODE`"
120
+ :rules="{ type: 'array', required: true, message: '至少选择一种登录方式', trigger: 'change' }"
124
121
  >
125
- <el-checkbox-group v-model="systemItem.LOGIN_MODE">
126
- <el-checkbox v-for="item in plainOptions" :key="item.value" :label="item.value">{{
127
- item.label
128
- }}</el-checkbox>
129
- </el-checkbox-group>
130
- </el-form-item>
122
+ <span slot="label"
123
+ ><span>登录方式设置</span
124
+ ><span class="color-danger m-l-s f-s-s">({{ '至少选择一种登录方式' | $lc }})</span></span
125
+ >
126
+ <el-checkbox-group v-model="systemItem.LOGIN_MODE">
127
+ <el-checkbox v-for="item in plainOptions" :key="item.value" :label="item.value">{{
128
+ item.label
129
+ }}</el-checkbox>
130
+ </el-checkbox-group>
131
+ </el-form-item>
132
+ </div>
131
133
  </template>
132
134
  </cl-expandable-pane>
133
135
  </el-form>
@@ -152,69 +154,67 @@ export default {
152
154
  this.setingId = {}
153
155
  return {
154
156
  userNo: sessionStorage.getItem('userNo'),
155
- loginTypeDisabled: false,
156
157
  form: {
157
158
  LOGIN_URL: '',
158
- LOGIN_MODE: [],
159
159
  GROUP_NAME: '',
160
160
  LOGIN_SLOGAN: '',
161
- LOGIN_BG: undefined,
162
- LOGIN_LOGO: undefined,
161
+ LOGIN_BG: '',
162
+ LOGIN_LOGO: '',
163
163
  LOGIN_TYPE: 'T1',
164
164
  SYSTEM_LIST: [
165
165
  {
166
- NO: 'N01',
166
+ NO: 'CSZHYW',
167
167
  NAME: '财司综合业务系统',
168
- ICON: undefined,
168
+ ICON: '',
169
169
  LOGIN_MODE: [],
170
170
  OPEN: true
171
171
  },
172
172
  {
173
- NO: 'N02',
173
+ NO: 'CSYWGL',
174
174
  NAME: '财司业务管理系统',
175
- ICON: undefined,
175
+ ICON: '',
176
176
  LOGIN_MODE: [],
177
177
  OPEN: false
178
178
  },
179
179
  {
180
- NO: 'N03',
180
+ NO: 'CSFZJC',
181
181
  NAME: '财司辅助决策系统',
182
- ICON: undefined,
182
+ ICON: '',
183
183
  LOGIN_MODE: [],
184
184
  OPEN: false
185
185
  },
186
186
  {
187
- NO: 'N04',
187
+ NO: 'CSWY',
188
188
  NAME: '财司网银系统',
189
- ICON: undefined,
189
+ ICON: '',
190
190
  LOGIN_MODE: [],
191
191
  OPEN: false
192
192
  },
193
193
  {
194
- NO: 'N05',
194
+ NO: 'JTZL',
195
195
  NAME: '财司直连平台系统',
196
- ICON: undefined,
196
+ ICON: '',
197
197
  LOGIN_MODE: [],
198
198
  OPEN: false
199
199
  },
200
200
  {
201
- NO: 'N06',
201
+ NO: 'JRWG',
202
202
  NAME: '金融网管系统',
203
- ICON: undefined,
203
+ ICON: '',
204
204
  LOGIN_MODE: [],
205
205
  OPEN: false
206
206
  },
207
207
  {
208
- NO: 'N07',
208
+ NO: 'JTSKYWGK',
209
209
  NAME: '集团司库业务管控系统',
210
- ICON: undefined,
210
+ ICON: '',
211
211
  LOGIN_MODE: [],
212
212
  OPEN: false
213
213
  },
214
214
  {
215
- NO: 'N08',
215
+ NO: 'JTSKSJFX',
216
216
  NAME: '集团数据分析系统',
217
- ICON: undefined,
217
+ ICON: '',
218
218
  LOGIN_MODE: [],
219
219
  OPEN: false
220
220
  }
@@ -226,7 +226,10 @@ export default {
226
226
  { label: $lc('二维码扫码登录'), value: 'qrcode' },
227
227
  { label: $lc('账户密码验证码登录'), value: 'accountPthon' }
228
228
  ],
229
- systemItem: undefined
229
+ systemItem: undefined,
230
+ key_1: 0,
231
+ key_2: 0,
232
+ keyS: [0, 0, 0, 0, 0, 0, 0, 0]
230
233
  }
231
234
  },
232
235
  created() {
@@ -270,34 +273,19 @@ export default {
270
273
  })
271
274
  }
272
275
  }
273
- this.openCg()
274
-
275
276
  // this.$axios.get(`/bems/1.0/download/${this.idNo}_bg`, null, { responseType: 'blob' })
276
277
  })
277
278
  },
278
279
  sltRow(row) {
279
280
  this.systemItem = row
280
281
  },
281
- openCg() {
282
- if (this.form.SYSTEM_LIST.filter((d) => d.OPEN).length <= 1) {
283
- this.form.LOGIN_TYPE = 'T0'
284
- this.loginTypeDisabled = true
285
- } else {
286
- this.loginTypeDisabled = false
287
- }
288
- },
289
- async save() {
290
- await this.$refs['form'].validate()
291
- let errItem = this.form.SYSTEM_LIST.find((d) => d.OPEN && !d.NAME)
292
- if (errItem) {
293
- this.systemItem = errItem
294
- this.$nextTick(() => {
295
- this.$refs['sys-name'].focus()
296
- })
297
- this.$message.error($lc('系统名称设置不能为空'))
298
- return
299
- }
300
282
 
283
+ async save() {
284
+ let vPro = this.$refs['form'].validate()
285
+ vPro.catch(() => {
286
+ this.$message.error($lc('必填项不能为空'))
287
+ })
288
+ await vPro
301
289
  let data = []
302
290
  for (let k in this.form) {
303
291
  if (k !== 'SYSTEM_LIST') {
@@ -320,7 +308,11 @@ export default {
320
308
  }
321
309
 
322
310
  this.$axios.post(`/bems/1.0/sysSetting`, data).then((res) => {
323
- this.countDown()
311
+ this.$message({
312
+ type: 'success',
313
+ message: `设置成功.`
314
+ })
315
+ this.$emit('renewal')
324
316
  })
325
317
  },
326
318
  Logout() {
@@ -330,7 +322,7 @@ export default {
330
322
  let secondsToGo = 5
331
323
  this.$message({
332
324
  type: 'success',
333
- message: `设置成功,系统将在 ${secondsToGo} 秒后退出到登陆页面.`
325
+ message: `设置成功,系统将在 ${secondsToGo} 秒后退出到登录页面.`
334
326
  })
335
327
  const interval = setInterval(() => {
336
328
  secondsToGo -= 1
@@ -351,4 +343,19 @@ export default {
351
343
  .input-w-u {
352
344
  width: 430px;
353
345
  }
346
+ .login-form-bg-box {
347
+ display: flex;
348
+ align-items: flex-end;
349
+ }
350
+ .login-preview {
351
+ width: 125px;
352
+ height: 125px;
353
+ margin-right: 16px;
354
+ }
355
+ .login-preview:hover {
356
+ background: rgba(0, 0, 0, 0.1);
357
+ }
358
+ ::v-deep .el-upload {
359
+ width: 220px;
360
+ }
354
361
  </style>
@@ -181,6 +181,10 @@ export default {
181
181
  asyncRelaNos: {
182
182
  type: Boolean,
183
183
  default: false
184
+ },
185
+ extraForm: {
186
+ type: Object,
187
+ default: () => ({})
184
188
  }
185
189
  },
186
190
  data() {
@@ -570,7 +574,10 @@ export default {
570
574
  this.loadingAdd()
571
575
  let { data } = await axios.get(
572
576
  '/bems/1.0/menuTree/tree',
573
- { resType: this.asyncRelaNos ? '1' : undefined },
577
+ {
578
+ resType: this.asyncRelaNos ? '1' : undefined,
579
+ ...this.extraForm
580
+ },
574
581
  { loading: this.loadingSub }
575
582
  )
576
583
  data || (data = [])
@@ -33,8 +33,8 @@
33
33
 
34
34
  <div class="sys-carousel">
35
35
  <div class="swiper-wrapper">
36
- <div v-for="(item, i) in systemList" :key="item.NO" class="swiper-slide">
37
- <div class="sys-item" :onclick="`loginSwiperSys(${i})`">
36
+ <div v-for="(item, i) in systemListAs" :key="i" class="swiper-slide">
37
+ <div class="sys-item" :onclick="`loginSwiperSys(${i},'${item.NO}')`">
38
38
  <div class="sys-item-title flex-box flex-v flex-c">
39
39
  <span>{{ item.NAME }}</span>
40
40
  </div>
@@ -56,6 +56,7 @@
56
56
  v-for="(item, i) in systemList"
57
57
  :key="item.NO"
58
58
  class="sys-item float-left"
59
+ :class="{ active: item.NO === sltSys.NO }"
59
60
  :style="{
60
61
  marginRight: (i + 1) % 4 ? '32px' : undefined,
61
62
  marginBottom: systemList.length > 4 && i < 4 ? '54px' : undefined
@@ -76,8 +77,9 @@
76
77
  v-if="operateType === 'login'"
77
78
  :before-login="beforeLogin"
78
79
  :login-types="loginTypes"
79
- :login-then="loginThen"
80
+ :login-then="loginThenT"
80
81
  :async-rela-nos="asyncRelaNos"
82
+ :extra-form="extraForm"
81
83
  class="login-form"
82
84
  @changType="getChangetype"
83
85
  >
@@ -200,56 +202,56 @@ export default {
200
202
  LOGIN_TYPE: undefined,
201
203
  SYSTEM_LIST: [
202
204
  {
203
- NO: 'N01',
205
+ NO: 'CSZHYW',
204
206
  NAME: '财司综合业务系统',
205
207
  ICON: undefined,
206
208
  LOGIN_MODE: [],
207
209
  OPEN: false
208
210
  },
209
211
  {
210
- NO: 'N02',
212
+ NO: 'CSYWGL',
211
213
  NAME: '财司业务管理系统',
212
214
  ICON: undefined,
213
215
  LOGIN_MODE: [],
214
216
  OPEN: false
215
217
  },
216
218
  {
217
- NO: 'N03',
219
+ NO: 'CSFZJC',
218
220
  NAME: '财司辅助决策系统',
219
221
  ICON: undefined,
220
222
  LOGIN_MODE: [],
221
223
  OPEN: false
222
224
  },
223
225
  {
224
- NO: 'N04',
226
+ NO: 'CSWY',
225
227
  NAME: '财司网银系统',
226
228
  ICON: undefined,
227
229
  LOGIN_MODE: [],
228
230
  OPEN: false
229
231
  },
230
232
  {
231
- NO: 'N05',
233
+ NO: 'JTZL',
232
234
  NAME: '财司直连平台系统',
233
235
  ICON: undefined,
234
236
  LOGIN_MODE: [],
235
237
  OPEN: false
236
238
  },
237
239
  {
238
- NO: 'N06',
240
+ NO: 'JRWG',
239
241
  NAME: '金融网管系统',
240
242
  ICON: undefined,
241
243
  LOGIN_MODE: [],
242
244
  OPEN: false
243
245
  },
244
246
  {
245
- NO: 'N07',
247
+ NO: 'JTSKYWGK',
246
248
  NAME: '集团司库业务管控系统',
247
249
  ICON: undefined,
248
250
  LOGIN_MODE: [],
249
251
  OPEN: false
250
252
  },
251
253
  {
252
- NO: 'N08',
254
+ NO: 'JTSKSJFX',
253
255
  NAME: '集团数据分析系统',
254
256
  ICON: undefined,
255
257
  LOGIN_MODE: [],
@@ -257,7 +259,7 @@ export default {
257
259
  }
258
260
  ]
259
261
  },
260
- sltSys: undefined,
262
+ sltSys: {},
261
263
  inspectionV: false
262
264
  }
263
265
  },
@@ -300,6 +302,23 @@ export default {
300
302
  },
301
303
  systemList() {
302
304
  return this.form.SYSTEM_LIST.filter((d) => d.OPEN)
305
+ },
306
+ systemListAs() {
307
+ if (this.systemList.length === 2) {
308
+ return [...this.systemList, ...this.systemList, ...this.systemList]
309
+ } else {
310
+ return this.systemList
311
+ }
312
+ },
313
+ extraForm() {
314
+ let form = {}
315
+ if (this?.sltSys?.NO) {
316
+ form.systemNo = this.sltSys.NO
317
+ } else if (this.systemList.length === 1) {
318
+ form.systemNo = this.systemList[0].NO
319
+ }
320
+
321
+ return form
303
322
  }
304
323
  },
305
324
  created() {
@@ -316,6 +335,16 @@ export default {
316
335
  window.removeEventListener('resize', this.setWrapSty)
317
336
  },
318
337
  methods: {
338
+ async loginThenT() {
339
+ if (this.sltSys?.NO) {
340
+ localStorage.setItem('pageInSystemNo', this.sltSys.NO)
341
+ } else {
342
+ localStorage.removeItem('pageInSystemNo')
343
+ }
344
+ if (this.loginThen) {
345
+ await this.loginThen()
346
+ }
347
+ },
319
348
  setWrapSty() {
320
349
  let winW = document.documentElement.clientWidth
321
350
  let winH = document.documentElement.clientHeight
@@ -376,9 +405,23 @@ export default {
376
405
  }
377
406
  this.jsonData = _layoutData
378
407
 
408
+ if (this.systemList.length <= 1) {
409
+ this.$set(this.form, 'LOGIN_TYPE', 'T0')
410
+ }
411
+
379
412
  this.$nextTick(() => {
413
+ let systemNo = localStorage.getItem('pageInSystemNo')
414
+ let acSysI = this.systemList.findIndex((s) => s.NO === systemNo)
415
+
380
416
  if (this.form.LOGIN_TYPE === 'T1') {
381
417
  this.newSwiper()
418
+ if (acSysI !== -1) {
419
+ window.loginSwiperSys(acSysI)
420
+ }
421
+ } else {
422
+ if (acSysI !== -1) {
423
+ this.selSystem(this.systemList[acSysI])
424
+ }
382
425
  }
383
426
  })
384
427
  },
@@ -437,9 +480,10 @@ export default {
437
480
  centeredSlides: true,
438
481
  loop: true
439
482
  })
440
- window.loginSwiperSys = (i) => {
483
+ window.loginSwiperSys = (i, NO) => {
441
484
  this.swiper.slideTo(i + 3)
442
- this.selSystem(this.systemList[i])
485
+ let item = this.systemList.find((s) => (s.NO = NO))
486
+ this.selSystem(item)
443
487
  }
444
488
  },
445
489
  slidePrev() {
@@ -661,6 +705,10 @@ export default {
661
705
  background: linear-gradient(180deg, rgba(153, 165, 186, 0.53), rgba(96, 108, 133, 0.15));
662
706
  border-radius: 6px;
663
707
  }
708
+ .login-wrap-2 .sys-item:hover,
709
+ .login-wrap-2 .sys-item.active {
710
+ background: linear-gradient(180deg, #327bff, rgba(74, 102, 158, 0.3));
711
+ }
664
712
  .login-wrap-2 .sys-item-title {
665
713
  height: 58px;
666
714
  font-size: 14px;
@@ -1,10 +1,10 @@
1
1
  export default {
2
- N01: '/server-assets/N01.png',
3
- N02: '/server-assets/N02.png',
4
- N03: '/server-assets/N03.png',
5
- N04: '/server-assets/N04.png',
6
- N05: '/server-assets/N05.png',
7
- N06: '/server-assets/N06.png',
8
- N07: '/server-assets/N07.png',
9
- N08: '/server-assets/N08.png'
2
+ CSZHYW: '/server-assets/N01.png',
3
+ CSYWGL: '/server-assets/N02.png',
4
+ CSFZJC: '/server-assets/N03.png',
5
+ CSWY: '/server-assets/N04.png',
6
+ JTZL: '/server-assets/N05.png',
7
+ JRWG: '/server-assets/N06.png',
8
+ JTSKYWGK: '/server-assets/N07.png',
9
+ JTSKSJFX: '/server-assets/N08.png'
10
10
  }
@@ -274,12 +274,12 @@ export default {
274
274
  }
275
275
  },
276
276
  successFn(response, file, fileList) {
277
+ this.fileNameC = this.multiple ? '' : file.name
278
+ this.fileUrlC = response.data
279
+ this.fileList = fileList
280
+
277
281
  if (this.onSuccess) {
278
282
  this.onSuccess(response, file, fileList)
279
- } else {
280
- this.fileNameC = this.multiple ? '' : file.name
281
- this.fileUrlC = response.data
282
- this.fileList = fileList
283
283
  }
284
284
 
285
285
  if (this.msgType === 'dialog') {
package/src/i18n.json CHANGED
@@ -1466,7 +1466,7 @@
1466
1466
  "登录首页文字显示信息不能为空": {
1467
1467
  "en": "Login homepage text display information cannot be empty"
1468
1468
  },
1469
- "登陆方式至少勾选一种方式": {
1470
- "en": "Login method Check at least one method"
1469
+ "登录方式至少勾选一种方式": {
1470
+ "en": "Check at least one login method"
1471
1471
  }
1472
1472
  }
@@ -63,26 +63,23 @@ axios.interceptors.request.use((opt) => {
63
63
  return opt
64
64
  })
65
65
 
66
- function errorFn(status, msg, noMsg) {
67
- if (status === 401) {
68
- if (navigator.userAgent.indexOf('NSTC-WebEntry') > -1) {
69
- showMsg($lc('超时未操作,请重新登录!'))
70
- setTimeout(() => {
66
+ function errorFn(status, msg, noMsg, isErr) {
67
+ if (status === 401 || (msg.includes('401') && isErr)) {
68
+ noMsg || showMsg($lc('超时未操作,请重新登录!'))
69
+ setTimeout(() => {
70
+ if (navigator.userAgent.includes('NSTC-WebEntry')) {
71
71
  localStorage.clear()
72
72
  sessionStorage.clear()
73
73
  window.top.webQuit()
74
- }, 3000)
75
- } else {
76
- noMsg || showMsg($lc('超时未操作,请重新登录!'))
77
- setTimeout(() => {
74
+ } else {
78
75
  auth.removeToken()
79
- }, 1000)
80
- }
81
- } else if (status === 400) {
76
+ }
77
+ }, 1000)
78
+ } else if (status === 400 || (msg.includes('400') && isErr)) {
82
79
  noMsg || showMsg($lc('400,参数错误!'))
83
- } else if (status === 404) {
80
+ } else if (status === 404 || (msg.includes('404') && isErr)) {
84
81
  noMsg || showMsg($lc('404,网络连接失败!'))
85
- } else if (status === 500) {
82
+ } else if (status === 500 || (msg.includes('500') && isErr)) {
86
83
  noMsg || showMsg($lc('500,服务器链接失败!'))
87
84
  } else if (status === 'ECONNABORTED' && msg.includes('timeout')) {
88
85
  showMsg($lc('请求超时'))
@@ -111,7 +108,7 @@ axios.interceptors.response.use(
111
108
  let msg = err.message || ''
112
109
  let noMsg = err.config && err.config.noMsg
113
110
 
114
- return errorFn(status, msg, noMsg)
111
+ return errorFn(status, msg, noMsg, true)
115
112
  }
116
113
  )
117
114