lw-cdp-ui 1.1.9 → 1.1.11

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.
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <el-skeleton v-if="renderLoading || Object.keys(form).length==0"
2
+ <el-skeleton v-if="renderLoading || Object.keys(form).length == 0"
3
3
  animated />
4
4
 
5
5
  <el-form v-else
@@ -29,7 +29,7 @@
29
29
  :prop="item?.options?.name ? `${item.name}.${item.options.name}` : item.name"
30
30
  :rules="rulesHandle(item)">
31
31
  <template #label>
32
- {{item.label}}
32
+ {{ item.label }}
33
33
  <el-tooltip v-if="item.tips"
34
34
  :content="item.tips">
35
35
  <el-icon><el-icon-question-filled /></el-icon>
@@ -37,7 +37,7 @@
37
37
  </template>
38
38
 
39
39
  <!-- input -->
40
- <template v-if="item.component=='input'">
40
+ <template v-if="item.component == 'input'">
41
41
  <template v-if="item?.options?.name">
42
42
  <el-input v-model="form[item.name][item.options.name]"
43
43
  :placeholder="item.options.placeholder"
@@ -47,7 +47,7 @@
47
47
  :maxlength="item.options.maxlength"
48
48
  show-word-limit>
49
49
  <template v-if="item.options.append"
50
- #append>{{item.options.append}}</template>
50
+ #append>{{ item.options.append }}</template>
51
51
  </el-input>
52
52
  </template>
53
53
  <template v-else>
@@ -59,39 +59,39 @@
59
59
  :maxlength="item.options.maxlength"
60
60
  show-word-limit>
61
61
  <template v-if="item.options.append"
62
- #append>{{item.options.append}}</template>
62
+ #append>{{ item.options.append }}</template>
63
63
  </el-input>
64
64
  </template>
65
65
  </template>
66
66
  <!-- upload -->
67
- <template v-else-if="item.component=='upload'">
67
+ <template v-else-if="item.component == 'upload'">
68
68
  <template v-for="(_item, _index) in item.options.items"
69
69
  :key="_index">
70
70
  <template v-if="item.name">
71
- <el-form-item :prop="_item.name">
71
+ <div style="margin-right: 5px;">
72
72
  <lw-upload v-model="form[item.name][_item.name]"
73
73
  :maxSize="_item.maxSize"
74
74
  :accept="_item.accept"
75
75
  :title="_item.label"
76
76
  :parseData="item.parseData"
77
77
  :apiObj="item.apiObj"></lw-upload>
78
- </el-form-item>
78
+ </div>
79
79
  </template>
80
80
  <template v-else>
81
- <el-form-item :prop="item.name">
81
+ <div style="margin-right: 5px;">
82
82
  <lw-upload v-model="form[_item.name]"
83
83
  :maxSize="_item.maxSize"
84
84
  :accept="_item.accept"
85
85
  :title="_item.label"
86
86
  :parseData="item.parseData"
87
87
  :apiObj="item.apiObj"></lw-upload>
88
- </el-form-item>
88
+ </div>
89
89
  </template>
90
90
 
91
91
  </template>
92
92
  </template>
93
93
  <!-- checkbox -->
94
- <template v-else-if="item.component=='checkbox'">
94
+ <template v-else-if="item.component == 'checkbox'">
95
95
  <template v-if="item.name">
96
96
  <el-checkbox v-model="form[item.name][_item.name]"
97
97
  :label="_item.label"
@@ -106,16 +106,16 @@
106
106
  </template>
107
107
  </template>
108
108
  <!-- checkboxGroup -->
109
- <template v-else-if="item.component=='checkboxGroup'">
109
+ <template v-else-if="item.component == 'checkboxGroup'">
110
110
  <el-checkbox-group v-model="form[item.name]">
111
111
  <el-checkbox v-for="_item in item.options.items"
112
112
  :key="_item.value"
113
- :label="_item.value">{{_item.label}}</el-checkbox>
113
+ :label="_item.value">{{ _item.label }}</el-checkbox>
114
114
  </el-checkbox-group>
115
115
  </template>
116
116
 
117
117
  <!-- switch -->
118
- <template v-else-if="item.component=='switch'">
118
+ <template v-else-if="item.component == 'switch'">
119
119
  <template v-if="item?.options?.name">
120
120
  <el-switch v-model="form[item.name][item.options.name]" />
121
121
  </template>
@@ -124,7 +124,7 @@
124
124
  </template>
125
125
  </template>
126
126
  <!-- select -->
127
- <template v-else-if="item.component=='select'">
127
+ <template v-else-if="item.component == 'select'">
128
128
  <template v-if="item?.options?.name">
129
129
  <el-select v-model="form[item.name][item.options.name]"
130
130
  :multiple="item.options?.multiple"
@@ -160,21 +160,23 @@
160
160
 
161
161
  </template>
162
162
  <!-- cascader -->
163
- <template v-else-if="item.component=='cascader'">
163
+ <template v-else-if="item.component == 'cascader'">
164
164
  <template v-if="item?.options?.name">
165
165
  <el-cascader v-model="form[item.name][item.options.name]"
166
+ style="width: 100%;"
166
167
  :options="item.options.items"
167
168
  clearable></el-cascader>
168
169
  </template>
169
170
  <template v-else>
170
171
  <el-cascader v-model="form[item.name]"
172
+ style="width: 100%;"
171
173
  :options="item.options.items"
172
174
  clearable></el-cascader>
173
175
  </template>
174
176
 
175
177
  </template>
176
178
  <!-- date -->
177
- <template v-else-if="item.component=='date'">
179
+ <template v-else-if="item.component == 'date'">
178
180
  <template v-if="item?.options?.name">
179
181
  <el-date-picker v-model="form[item.name][item.options.name]"
180
182
  style="width: 100%;"
@@ -186,6 +188,7 @@
186
188
  :default-time="item.options.defaultTime"
187
189
  :disabled="item.options.disabled"
188
190
  :value-format="item.options.valueFormat"
191
+ :format="item.options.format"
189
192
  :placeholder="item.options.placeholder || '请选择'"></el-date-picker>
190
193
  </template>
191
194
  <template v-else>
@@ -199,52 +202,53 @@
199
202
  :default-time="item.options.defaultTime"
200
203
  :disabled="item.options.disabled"
201
204
  :value-format="item.options.valueFormat"
205
+ :format="item.options.format"
202
206
  :placeholder="item.options.placeholder || '请选择'"></el-date-picker>
203
207
  </template>
204
208
 
205
209
  </template>
206
210
  <!-- number -->
207
- <template v-else-if="item.component=='number'">
211
+ <template v-else-if="item.component == 'number'">
208
212
  <template v-if="item?.options?.name">
209
213
  <el-input-number v-model="form[item.name][item.options.name]"
210
- :disabled="item.options.disabled"
214
+ :disabled="item.options?.disabled"
211
215
  :min="item?.options?.min"
212
216
  :max="item?.options?.max"
213
217
  :step="item?.options?.step || 1"
214
218
  :precision="item?.options?.precision"
215
- :placeholder=" item?.options?.placeholder || ''"
219
+ :placeholder="item?.options?.placeholder || ''"
216
220
  :controls-position="item?.options?.controlsPosition || 'right'">
217
221
  <template v-if="item?.options?.suffix"
218
222
  #suffix>
219
- <span>{{item.options.suffix}}</span>
223
+ <span>{{ item.options.suffix }}</span>
220
224
  </template>
221
225
  </el-input-number>
222
226
  </template>
223
227
  <template v-else>
224
228
  <el-input-number v-model="form[item.name]"
225
- :disabled="item.options.disabled"
229
+ :disabled="item.options?.disabled"
226
230
  :min="item?.options?.min"
227
231
  :max="item?.options?.max"
228
232
  :step="item?.options?.step || 1"
229
233
  :precision="item?.options?.precision"
230
- :placeholder=" item?.options?.placeholder || ''"
234
+ :placeholder="item?.options?.placeholder || ''"
231
235
  :controls-position="item?.options?.controlsPosition || 'right'">
232
236
  <template v-if="item?.options?.suffix"
233
237
  #suffix>
234
- <span>{{item.options.suffix}}</span>
238
+ <span>{{ item.options.suffix }}</span>
235
239
  </template>
236
240
  </el-input-number>
237
241
  </template>
238
242
 
239
243
  </template>
240
244
  <!-- radio -->
241
- <template v-else-if="item.component=='radio'">
245
+ <template v-else-if="item.component == 'radio'">
242
246
  <template v-if="item?.options?.name">
243
247
  <el-radio-group v-model="form[item.name][item.options.name]"
244
248
  :disabled="item.options.disabled">
245
249
  <el-radio v-for="_item in item.options.items"
246
250
  :key="_item.value"
247
- :label="_item.value">{{_item.label}}</el-radio>
251
+ :label="_item.value">{{ _item.label }}</el-radio>
248
252
  </el-radio-group>
249
253
  </template>
250
254
  <template v-else>
@@ -252,13 +256,13 @@
252
256
  :disabled="item.options.disabled">
253
257
  <el-radio v-for="_item in item.options.items"
254
258
  :key="_item.value"
255
- :label="_item.value">{{_item.label}}</el-radio>
259
+ :label="_item.value">{{ _item.label }}</el-radio>
256
260
  </el-radio-group>
257
261
  </template>
258
262
 
259
263
  </template>
260
264
  <!-- color -->
261
- <template v-else-if="item.component=='color'">
265
+ <template v-else-if="item.component == 'color'">
262
266
  <template v-if="item?.options?.name">
263
267
  <el-color-picker v-model="form[item.name][item.options.name]" />
264
268
  </template>
@@ -268,7 +272,7 @@
268
272
 
269
273
  </template>
270
274
  <!-- rate -->
271
- <template v-else-if="item.component=='rate'">
275
+ <template v-else-if="item.component == 'rate'">
272
276
  <template v-if="item?.options?.name">
273
277
  <el-rate style="margin-top: 6px;"
274
278
  v-model="form[item.name][item.options.name]"></el-rate>
@@ -280,7 +284,7 @@
280
284
 
281
285
  </template>
282
286
  <!-- slider -->
283
- <template v-else-if="item.component=='slider'">
287
+ <template v-else-if="item.component == 'slider'">
284
288
  <template v-if="item?.options?.name">
285
289
  <el-slider v-model="form[item.name][item.options.name]"
286
290
  :marks="item.options.marks"></el-slider>
@@ -293,7 +297,7 @@
293
297
  </template>
294
298
 
295
299
  <!-- tags -->
296
- <template v-else-if="item.component=='tags'">
300
+ <template v-else-if="item.component == 'tags'">
297
301
  <div class="tags-list">
298
302
  <template v-if="item?.options?.name">
299
303
  <el-tag v-for="tag in form[item.name][item?.options?.name]"
@@ -331,13 +335,13 @@
331
335
 
332
336
  <!-- 没有组件是component值 就是插槽名称 -->
333
337
  <template v-else>
334
- <slot :name="item.component">
335
- <el-tag type="danger">[{{item.component}}]
338
+ <slot :name="item.component" :itemCur="item" :formCur="form">
339
+ <el-tag type="danger">[{{ item.component }}]
336
340
  没有这个默认组件也未自定义插槽内容</el-tag>
337
341
  </slot>
338
342
  </template>
339
343
  <div v-if="item.message"
340
- class="el-form-item-msg">{{item.message}}</div>
344
+ class="el-form-item-msg">{{ item.message }}</div>
341
345
  </el-form-item>
342
346
  </el-col>
343
347
  </template>
@@ -567,14 +571,19 @@ export default {
567
571
  }
568
572
  </script>
569
573
  <style lang="scss" scoped>
570
- .button-new-tag {
574
+ .button-new-tag
575
+ {
571
576
  margin-left: 10px;
572
577
  }
573
- .w-20 {
578
+
579
+ .w-20
580
+ {
574
581
  width: 100px;
575
582
  margin-left: 10px;
576
583
  }
577
- .title-name {
584
+
585
+ .title-name
586
+ {
578
587
  font-size: 18px;
579
588
  font-weight: bold;
580
589
  margin-bottom: 10px;
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <!-- 通栏布局 -->
3
- <template v-if="layout=='header'">
3
+ <template v-if="layout == 'header'">
4
4
  <header class="adminui-header">
5
5
  <div class="adminui-header-left">
6
6
  <div class="logo-bar">
@@ -12,7 +12,7 @@
12
12
  class="nav">
13
13
  <li v-for="item in menu"
14
14
  :key="item"
15
- :class="pmenu.path==item.path?'active':''"
15
+ :class="pmenu.path == item.path ? 'active' : ''"
16
16
  @click="showMenu(item)">
17
17
  <el-icon>
18
18
  <component :is="item.meta.icon || 'el-icon-menu'" />
@@ -27,8 +27,8 @@
27
27
  </div>
28
28
  </header>
29
29
  <section class="aminui-wrapper">
30
- <div v-if="!ismobile && nextMenu.length>0 || !pmenu.component"
31
- :class="menuIsCollapse?'aminui-side isCollapse':'aminui-side'">
30
+ <div v-if="!ismobile && nextMenu.length > 0 || !pmenu.component"
31
+ :class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
32
32
  <div v-if="!menuIsCollapse"
33
33
  class="adminui-side-top">
34
34
  <h2>{{ pmenu.meta.title }}</h2>
@@ -45,8 +45,7 @@
45
45
  </div>
46
46
  <div class="adminui-side-bottom"
47
47
  @click="$store.commit('TOGGLE_menuIsCollapse')">
48
- <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold
49
- v-else /></el-icon>
48
+ <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold v-else /></el-icon>
50
49
  </div>
51
50
  </div>
52
51
  <Side-m v-if="ismobile"></Side-m>
@@ -71,7 +70,7 @@
71
70
  </template>
72
71
 
73
72
  <!-- 经典布局 -->
74
- <template v-else-if="layout=='menu'">
73
+ <template v-else-if="layout == 'menu'">
75
74
  <section class="aminui-body-menu">
76
75
  <div class="aminui-side-split-left">
77
76
  <Aside></Aside>
@@ -79,13 +78,12 @@
79
78
 
80
79
  <section class="aminui-wrapper">
81
80
  <div v-if="!ismobile"
82
- :class="menuIsCollapse?'aminui-side isCollapse':'aminui-side'">
81
+ :class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
82
+ <div class="title-name">
83
+ {{ menuIsCollapse ? $config.APP_NAME.charAt(0) : $config.APP_NAME }}
84
+ </div>
83
85
  <div class="adminui-side-scroll">
84
-
85
86
  <el-scrollbar>
86
- <div class="title-name">
87
- {{ menuIsCollapse ? $config.APP_NAME.charAt(0) : $config.APP_NAME }}
88
- </div>
89
87
  <el-menu :default-active="active"
90
88
  router
91
89
  :collapse="menuIsCollapse"
@@ -96,15 +94,14 @@
96
94
  </div>
97
95
  <div class="adminui-side-bottom"
98
96
  @click="$store.commit('TOGGLE_menuIsCollapse')">
99
- <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold
100
- v-else /></el-icon>
97
+ <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold v-else /></el-icon>
101
98
  </div>
102
99
  </div>
103
100
  <Side-m v-if="ismobile"></Side-m>
104
101
  <div class="aminui-body el-container">
105
102
  <div class="aminui-body-menu-top">
106
103
  <div class="top-bar-title">
107
- <span class="title">{{$t("layout.topbar")}}:</span>
104
+ <span class="title">{{ $t("layout.topbar") }}:</span>
108
105
  <Topbar v-if="!ismobile"></Topbar>
109
106
  </div>
110
107
  <userbar :isShowBu="isShowBu"
@@ -115,8 +112,7 @@
115
112
  id="adminui-main">
116
113
  <slot name="routerView">
117
114
  <router-view v-slot="{ Component }">
118
- <keep-alive
119
- :include="this.$store.state.keepAlive.keepLiveRoute">
115
+ <keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
120
116
  <component :is="Component"
121
117
  :key="$route.fullPath"
122
118
  v-if="$store.state.keepAlive.routeShow" />
@@ -131,7 +127,7 @@
131
127
  </template>
132
128
 
133
129
  <!-- 功能坞布局 -->
134
- <template v-else-if="layout=='dock'">
130
+ <template v-else-if="layout == 'dock'">
135
131
  <header class="adminui-header">
136
132
  <div class="adminui-header-left">
137
133
  <div class="logo-bar">
@@ -191,10 +187,10 @@
191
187
  <ul>
192
188
  <li v-for="item in menu"
193
189
  :key="item"
194
- :class="pmenu.path==item.path?'active':''"
190
+ :class="pmenu.path == item.path ? 'active' : ''"
195
191
  @click="showMenu(item)">
196
192
  <el-icon>
197
- <component :is="item.meta.icon || el-icon-menu" />
193
+ <component :is="item.meta.icon || el - icon - menu" />
198
194
  </el-icon>
199
195
  <p>{{ item.meta.title }}</p>
200
196
  </li>
@@ -202,8 +198,8 @@
202
198
  </el-scrollbar>
203
199
  </div>
204
200
  </div>
205
- <div v-if="!ismobile && nextMenu.length>0 || !pmenu.component"
206
- :class="menuIsCollapse?'aminui-side isCollapse':'aminui-side'">
201
+ <div v-if="!ismobile && nextMenu.length > 0 || !pmenu.component"
202
+ :class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
207
203
  <div v-if="!menuIsCollapse"
208
204
  class="adminui-side-top">
209
205
  <h2>{{ pmenu.meta.title }}</h2>
@@ -220,8 +216,7 @@
220
216
  </div>
221
217
  <div class="adminui-side-bottom"
222
218
  @click="$store.commit('TOGGLE_menuIsCollapse')">
223
- <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold
224
- v-else /></el-icon>
219
+ <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold v-else /></el-icon>
225
220
  </div>
226
221
  </div>
227
222
  <Side-m v-if="ismobile"></Side-m>
@@ -298,6 +293,7 @@ export default {
298
293
  data() {
299
294
  return {
300
295
  settingDialog: false,
296
+ changeMenu: false,
301
297
  menu: [],
302
298
  nextMenu: [],
303
299
  pmenu: {},
@@ -318,25 +314,29 @@ export default {
318
314
  return this.$store.state.global.menuIsCollapse
319
315
  }
320
316
  },
317
+ beforeCreate() {
318
+ // 挂载菜单订阅
319
+ this.$bus.$on('setMenu', (menu) => {
320
+ this.changeMenu = true
321
+ this.menu = this.filterUrl(menu)
322
+ })
323
+ },
321
324
  async created() {
322
325
  // 标识当前项目
323
326
  let isCombined = this.$tool.data.get("MENUCOMBINED")
324
327
  if (isCombined) {
325
328
  this.$tool.data.set("MENUCOMBINEDNMAE", this.$config.APP_NAME);
326
329
  }
327
-
330
+
328
331
  this.onLayoutResize();
329
332
  window.addEventListener('resize', this.onLayoutResize);
330
- await this.getUserInfo();
331
- var menu = this.$router.sc_getMenu();
332
- this.menu = this.filterUrl(menu);
333
+ this.getUserInfo();
334
+ if (!this.changeMenu) {
335
+ var menu = this.$router.sc_getMenu();
336
+ this.menu = this.filterUrl(menu);
337
+ }
333
338
  this.showThis()
334
339
  this.$store.commit("LOAD_USER_FROM_LOCAL_STORAGE")
335
-
336
- // 挂载菜单订阅
337
- this.$bus.$on('setMenu', (menu) => {
338
- this.menu = this.filterUrl(menu)
339
- })
340
340
  },
341
341
  watch: {
342
342
  async $route() {
@@ -356,8 +356,8 @@ export default {
356
356
  },
357
357
  methods: {
358
358
  // 获取用户信息 - 用于从demo环境直接跳转
359
- async getUserInfo(){
360
-
359
+ async getUserInfo() {
360
+
361
361
  // 获取所有bu
362
362
  let bu = await this.$api.auth.bu()
363
363
  this.$tool.data.set('buList', bu)
@@ -396,6 +396,7 @@ export default {
396
396
  },
397
397
  //转换外部链接的路由
398
398
  filterUrl(map) {
399
+
399
400
  var newMap = []
400
401
  map && map.forEach(item => {
401
402
  item.meta = item.meta ? item.meta : {};
@@ -413,6 +414,8 @@ export default {
413
414
  }
414
415
  newMap.push(item)
415
416
  })
417
+
418
+ this.changeMenu = false
416
419
  return newMap;
417
420
  },
418
421
  //退出最大化
@@ -212,14 +212,6 @@ export default {
212
212
  file.uid = this.$tool.getUUID('file, 16')
213
213
  this.$refs.uploader.handleStart(file)
214
214
  },
215
- // parseData(res) {
216
- // return {
217
- // code: 200, //分析状态字段结构
218
- // fileName: res.fileName,//分析文件名称
219
- // src: res.previewInfo.url, //分析图片远程地址结构
220
- // msg: res.message //分析描述字段结构
221
- // }
222
- // },
223
215
  success(res, file) {
224
216
  //释放内存删除blob
225
217
  URL.revokeObjectURL(file.tempFile)
@@ -232,7 +224,7 @@ export default {
232
224
  })
233
225
  return false
234
226
  }
235
- var response = this.parseData(res)
227
+ var response = this.parseData(res,file)
236
228
  file.url = response.src
237
229
  this.value = file.url
238
230
  },