lw-cdp-ui 1.3.42 → 1.3.44

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.
@@ -9,7 +9,12 @@
9
9
  <section class="aminui-wrapper">
10
10
  <div v-if="!ismobile"
11
11
  :class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
12
- <div class="aminui-title-name">
12
+ <div v-if="appName && appSimpleName"
13
+ class="aminui-title-name">
14
+ {{ menuIsCollapse ? appSimpleName : appName }}
15
+ </div>
16
+ <div v-else
17
+ class="aminui-title-name">
13
18
  {{ menuIsCollapse ? $config.APP_NAME.charAt(0) : $config.APP_NAME }}
14
19
  </div>
15
20
  <div class="adminui-side-scroll">
@@ -50,8 +55,7 @@
50
55
  <div class="adminui-main">
51
56
  <slot name="routerView">
52
57
  <router-view v-slot="{ Component }">
53
- <keep-alive
54
- :include="this.$store.state.keepAlive.keepLiveRoute">
58
+ <keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
55
59
  <component :is="Component"
56
60
  :key="$route.fullPath"
57
61
  v-if="$store.state.keepAlive.routeShow" />
@@ -66,7 +70,7 @@
66
70
  </template>
67
71
 
68
72
  <!-- 默认布局 -->
69
- <template v-else>
73
+ <!-- <template v-else>
70
74
  <div class="aminui-body-default">
71
75
  <div class="aminui-title-name">
72
76
  {{ menuIsCollapse ? $config.APP_NAME.charAt(0) : $config.APP_NAME }}
@@ -119,18 +123,18 @@
119
123
  <iframe-view></iframe-view>
120
124
  </div>
121
125
  </div>
122
- </template>
123
-
126
+ </template> -->
127
+
124
128
  </template>
125
129
 
126
130
  <script>
127
- import SideM from './components/sideM.vue';
128
- import Aside from './components/aside.vue';
129
- import Topbar from './components/topbar.vue';
130
- import Tags from './components/tags.vue';
131
- import NavMenu from './components/NavMenu.vue';
132
- import userbar from './components/userbar.vue';
133
- import iframeView from './components/iframeView.vue';
131
+ import SideM from './components/sideM.vue'
132
+ import Aside from './components/aside.vue'
133
+ import Topbar from './components/topbar.vue'
134
+ import Tags from './components/tags.vue'
135
+ import NavMenu from './components/NavMenu.vue'
136
+ import userbar from './components/userbar.vue'
137
+ import iframeView from './components/iframeView.vue'
134
138
  export default {
135
139
  name: 'lwLayout',
136
140
  props: {
@@ -151,6 +155,16 @@ export default {
151
155
  tagShowID: {
152
156
  type: Boolean,
153
157
  default: false
158
+ },
159
+ // 应用名称
160
+ appName: {
161
+ type: String,
162
+ default: ''
163
+ },
164
+ // 应用缩写名称
165
+ appSimpleName: {
166
+ type: String,
167
+ default: ''
154
168
  }
155
169
  },
156
170
  components: {
@@ -187,50 +201,48 @@ export default {
187
201
  },
188
202
  beforeCreate() {
189
203
  // 挂载自定义菜单订阅
190
- this.$bus.$on('setMenu', (menu) => {
204
+ this.$bus.$on('setMenu', menu => {
191
205
  this.changeMenu = true
192
206
  this.menu = this.filterUrl(menu)
193
207
  })
194
208
 
195
209
  // 处理标签状态
196
- let isHideTab = this.$tool.data.get("APP_LAYOUTTAGS")
210
+ let isHideTab = this.$tool.data.get('APP_LAYOUTTAGS')
197
211
  if (isHideTab) {
198
212
  this.$store.state.global.layoutTags = false
199
213
  }
200
- let isMenuIsCollapse = this.$tool.data.get("APP_menuIsCollapse")
214
+ let isMenuIsCollapse = this.$tool.data.get('APP_menuIsCollapse')
201
215
  this.$store.state.global.menuIsCollapse = !!isMenuIsCollapse
202
216
  },
203
217
  async created() {
204
- this.onLayoutResize();
205
- window.addEventListener('resize', this.onLayoutResize);
206
- this.getUserInfo();
218
+ this.onLayoutResize()
219
+ window.addEventListener('resize', this.onLayoutResize)
220
+ this.getUserInfo()
207
221
  if (!this.changeMenu) {
208
- var menu = this.$router.sc_getMenu();
209
- this.menu = this.filterUrl(menu);
222
+ var menu = this.$router.sc_getMenu()
223
+ this.menu = this.filterUrl(menu)
210
224
  }
211
225
  this.showThis()
212
- this.$store.commit("LOAD_USER_FROM_LOCAL_STORAGE")
226
+ this.$store.commit('LOAD_USER_FROM_LOCAL_STORAGE')
213
227
  },
214
228
  watch: {
215
229
  async $route() {
216
230
  this.showThis()
217
231
  },
218
232
  '$i18n.locale'() {
219
- var menu = this.$router.sc_getMenu();
220
- this.menu = this.filterUrl(menu);
233
+ var menu = this.$router.sc_getMenu()
234
+ this.menu = this.filterUrl(menu)
221
235
  },
222
236
  layout: {
223
237
  handler(val) {
224
238
  document.body.setAttribute('data-layout', val)
225
239
  },
226
- immediate: true,
227
- },
228
-
240
+ immediate: true
241
+ }
229
242
  },
230
243
  methods: {
231
244
  // 获取用户信息 - 用于从demo环境直接跳转
232
245
  async getUserInfo() {
233
-
234
246
  // 获取所有bu
235
247
  let bu = await this.$api.auth.bu()
236
248
  this.$tool.data.set('buList', bu)
@@ -240,60 +252,62 @@ export default {
240
252
 
241
253
  // 处理应用显示逻辑
242
254
  let application = [...new Set(user.userAuthInfo.menus.map(permission => permission.split('.')[0].split('_')[0]))]
243
- user.userAuthInfo.grantedApplications = user.userAuthInfo.grantedApplications.filter(x => application.includes(x.code))
255
+ user.userAuthInfo.grantedApplications = user.userAuthInfo.grantedApplications.filter(x =>
256
+ application.includes(x.code)
257
+ )
244
258
 
245
259
  let userAuthInfo = {
246
260
  ...user.userAuthInfo,
247
261
  combined: user.combined,
248
262
  loginPage: user.loginPage,
249
- menuContent: user.menuContent,
263
+ menuContent: user.menuContent
250
264
  }
251
265
  this.$tool.data.set('tenantId', user.userAuthInfo.tenantId)
252
266
  this.$tool.data.set('userAuthInfo', userAuthInfo)
253
267
  this.$store.state.user = userAuthInfo
254
268
  },
255
269
  onLayoutResize() {
256
- this.$store.commit("SET_ismobile", document.body.clientWidth < 992)
270
+ this.$store.commit('SET_ismobile', document.body.clientWidth < 992)
257
271
  },
258
272
  //路由监听高亮
259
273
  showThis() {
260
274
  this.pmenu = this.$route.meta.breadcrumb ? this.$route.meta.breadcrumb[0] : {}
261
- this.nextMenu = this.filterUrl(this.pmenu.children);
275
+ this.nextMenu = this.filterUrl(this.pmenu.children)
262
276
  this.$nextTick(() => {
263
- this.active = this.$route.meta.active || this.$route.fullPath;
277
+ this.active = this.$route.meta.active || this.$route.fullPath
264
278
  })
265
279
  },
266
280
  //点击显示
267
281
  showMenu(route) {
268
- this.pmenu = route;
269
- this.nextMenu = this.filterUrl(route.children);
282
+ this.pmenu = route
283
+ this.nextMenu = this.filterUrl(route.children)
270
284
  if ((!route.children || route.children.length == 0) && route.component) {
271
- this.$router.push({ path: route.path })
285
+ this.$router.push({path: route.path})
272
286
  }
273
287
  },
274
288
  //转换外部链接的路由
275
289
  filterUrl(map) {
276
-
277
290
  var newMap = []
278
- map && map.forEach(item => {
279
- item.meta = item.meta ? item.meta : {};
280
- //处理隐藏
281
- if (item.meta.hidden || item.meta.type == "button") {
282
- return false
283
- }
284
- //处理http
285
- if (item.meta.type == 'iframe') {
286
- item.path = `/i/${item.name}`;
287
- }
288
- //递归循环
289
- if (item.children && item.children.length > 0) {
290
- item.children = this.filterUrl(item.children)
291
- }
292
- newMap.push(item)
293
- })
291
+ map &&
292
+ map.forEach(item => {
293
+ item.meta = item.meta ? item.meta : {}
294
+ //处理隐藏
295
+ if (item.meta.hidden || item.meta.type == 'button') {
296
+ return false
297
+ }
298
+ //处理http
299
+ if (item.meta.type == 'iframe') {
300
+ item.path = `/i/${item.name}`
301
+ }
302
+ //递归循环
303
+ if (item.children && item.children.length > 0) {
304
+ item.children = this.filterUrl(item.children)
305
+ }
306
+ newMap.push(item)
307
+ })
294
308
 
295
309
  this.changeMenu = false
296
- return newMap;
310
+ return newMap
297
311
  }
298
312
  }
299
313
  }
@@ -16,10 +16,7 @@
16
16
  </div>
17
17
  <div v-else
18
18
  class="table-block">
19
- <lwFormMini v-model="dataForm"
20
- ref="dataFormRef"
21
- :config="formConfig">
22
- </lwFormMini>
19
+ <slot></slot>
23
20
  </div>
24
21
 
25
22
  </el-main>
@@ -34,11 +31,8 @@
34
31
  </template>
35
32
 
36
33
  <script>
34
+ import {ref} from 'vue'
37
35
  import empty from '@/assets/images/empty.jpg'
38
- import {getCurrentInstance, ref, toRefs, computed} from 'vue'
39
- import dayjs from 'dayjs'
40
- import {ElMessage} from 'element-plus'
41
- import {useRouter} from 'vue-router'
42
36
  import bu from './components/bu'
43
37
 
44
38
  export default {
@@ -46,182 +40,18 @@ export default {
46
40
  components: {
47
41
  bu
48
42
  },
49
- props: {
50
- typeList: {
51
- type: Array,
52
- default: () => {
53
- return [
54
- {value: 'nfs', label: '本地硬盘'},
55
- {value: 'aws', label: '亚马逊云'},
56
- {value: 'oss', label: '阿里云'},
57
- {value: 'minio', label: 'MinIO'}
58
- ]
59
- }
60
- },
61
- config: {
62
- type: Object,
63
- default: null
64
- }
65
- },
66
- setup(props) {
67
- const {
68
- proxy: {$api, $expression, t, $tool, $bus}
69
- } = getCurrentInstance()
70
- const router = useRouter()
71
-
43
+ props: {},
44
+ emits: ['save'],
45
+ setup(props, { emit }) {
72
46
  const startInit = ref(true)
73
- const dataForm = ref({})
74
- const dataFormRef = ref(null)
75
- const formConfig = computed(() => {
76
- return (
77
- props?.config || {
78
- labelWidth: '110px',
79
- labelPosition: 'top',
80
- formItems: [
81
- {label: '基础设置', component: 'divider'},
82
- {
83
- label: '名称',
84
- name: 'name',
85
- value: '',
86
- component: 'input',
87
- span: 24,
88
- options: {
89
- maxlength: '20',
90
- placeholder: '请输入'
91
- },
92
- rules: [{required: true, message: '请输入', trigger: 'blur'}]
93
- },
94
- {label: '存储上传设置', component: 'divider'},
95
- {
96
- label: 'OLTP类型',
97
- name: 'setting.persistent.oltp.type',
98
- value: '',
99
- component: 'select',
100
- span: 12,
101
- options: {
102
- items: props.typeList,
103
- placeholder: '请选择'
104
- },
105
- rules: [{required: true, message: '请选择', trigger: 'blur'}]
106
- },
107
- {
108
- label: 'OLTP是否启用',
109
- name: 'setting.persistent.oltp.zoned',
110
- value: true,
111
- component: 'switch',
112
- span: 12
113
- },
114
- {
115
- label: 'OLAP类型',
116
- name: 'setting.persistent.olap.type',
117
- value: '',
118
- component: 'select',
119
- span: 12,
120
- options: {
121
- items: props.typeList,
122
- placeholder: '请选择'
123
- },
124
- rules: [{required: true, message: '请选择', trigger: 'blur'}]
125
- },
126
- {
127
- label: 'OLAP是否启用',
128
- name: 'setting.persistent.olap.zoned',
129
- value: true,
130
- component: 'switch',
131
- span: 12
132
- },
133
- {
134
- label: 'LAKE类型',
135
- name: 'setting.persistent.lake.type',
136
- value: '',
137
- component: 'select',
138
- span: 12,
139
- options: {
140
- items: props.typeList,
141
- placeholder: '请选择'
142
- },
143
- rules: [{required: true, message: '请选择', trigger: 'blur'}]
144
- },
145
- {
146
- label: 'LAKE是否启用',
147
- name: 'setting.persistent.lake.zoned',
148
- value: true,
149
- component: 'switch',
150
- span: 12
151
- },
152
- {label: 'LAKE配置', component: 'divider', hideHandle: '!$.setting.persistent.lake.zoned'},
153
- {
154
- label: 'endpoint',
155
- name: 'setting.persistent.lake.endpoint',
156
- value: '',
157
- component: 'input',
158
- span: 12,
159
- options: {
160
- placeholder: '请输入'
161
- },
162
- hideHandle: '!$.setting.persistent.lake.zoned',
163
- rules: [{required: true, message: '请输入', trigger: 'blur'}]
164
- },
165
- {
166
- label: 'accessKey',
167
- name: 'setting.persistent.lake.accessKey',
168
- value: '',
169
- component: 'input',
170
- span: 12,
171
- options: {
172
- placeholder: '请输入'
173
- },
174
- hideHandle: '!$.setting.persistent.lake.zoned',
175
- rules: [{required: true, message: '请输入', trigger: 'blur'}]
176
- },
177
- {
178
- label: 'secretKey',
179
- name: 'setting.persistent.lake.secretKey',
180
- value: '',
181
- component: 'input',
182
- span: 12,
183
- options: {
184
- placeholder: '请输入'
185
- },
186
- hideHandle: '!$.setting.persistent.lake.zoned',
187
- rules: [{required: true, message: '请输入', trigger: 'blur'}]
188
- },
189
- {
190
- label: 'location',
191
- name: 'setting.persistent.lake.location',
192
- value: '',
193
- component: 'input',
194
- span: 12,
195
- options: {
196
- placeholder: '请输入'
197
- },
198
- hideHandle: '!$.setting.persistent.lake.zoned',
199
- rules: [{required: true, message: '请输入', trigger: 'blur'}]
200
- }
201
- ]
202
- }
203
- )
204
- })
205
-
206
47
  const save = () => {
207
- dataFormRef.value.validate((valid, obj) => {
208
- if (valid) {
209
- $api.auth.setInitialized(dataForm.value).then(() => {
210
- ElMessage.success('初始化成功!')
211
- $tool.data.set('zoneInitialized', 'true')
212
- router.push('/')
213
- })
214
- }
215
- })
48
+ emit('save')
216
49
  }
217
50
 
218
51
  return {
219
- save,
220
- empty,
221
52
  startInit,
222
- dataFormRef,
223
- formConfig,
224
- dataForm
53
+ save,
54
+ empty
225
55
  }
226
56
  }
227
57
  }