flame-plus 0.1.33 → 0.1.35
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/.browserslistrc +3 -0
- package/.env +0 -0
- package/.eslintrc.js +20 -0
- package/README.md +1 -7
- package/package.json +48 -23
- package/{src/packages → packages}/components/base/flmButton/flmButton.vue +1 -1
- package/{src/packages → packages}/components/base/flmCascader/flmCascader.vue +1 -1
- package/{src/packages → packages}/components/base/flmCheckbox/flmCheckbox.vue +1 -1
- package/{src/packages → packages}/components/base/flmCheckbox/flmCheckboxGroup.vue +1 -1
- package/{src/packages → packages}/components/base/flmColorPicker/flmColorPicker.vue +1 -1
- package/{src/packages → packages}/components/base/flmDatePicker/flmDatePicker.vue +1 -1
- package/{src/packages → packages}/components/base/flmDialog/flmDialog.vue +1 -1
- package/{src/packages → packages}/components/base/flmInput/flmInput.vue +1 -1
- package/{src/packages → packages}/components/base/flmInputNumber/flmInputNumber.vue +1 -1
- package/{src/packages → packages}/components/base/flmPagination/flmPagination.vue +1 -1
- package/{src/packages → packages}/components/base/flmRadio/flmRadio.vue +1 -1
- package/{src/packages → packages}/components/base/flmRate/flmRate.vue +1 -1
- package/{src/packages → packages}/components/base/flmRead/flmRead.vue +2 -2
- package/{src/packages → packages}/components/base/flmSelect/flmSelect.vue +1 -1
- package/{src/packages → packages}/components/base/flmSlider/flmSlider.vue +1 -1
- package/{src/packages → packages}/components/base/flmSwitch/flmSwitch.vue +1 -1
- package/{src/packages → packages}/components/base/flmTimePicker/flmTimePicker.vue +1 -1
- package/{src/packages → packages}/components/base/flmTimeSelect/flmTimeSelect.vue +1 -1
- package/{src/packages → packages}/components/base/flmTransfer/flmTransfer.vue +1 -1
- package/{src/packages → packages}/components/complex/flmForm/flmForm.vue +1 -2
- package/{src/packages → packages}/components/complex/flmSearch/flmSearch.vue +1 -1
- package/{src/packages → packages}/components/complex/flmTable/flmTable.vue +1 -1
- package/{src/packages → packages}/components/complex/flmToolbar/flmToolbar.vue +2 -2
- package/{src/packages → packages}/components/index.ts +1 -2
- package/{src/packages → packages}/components/page/flmReportPage/flmReportPage.vue +122 -79
- package/packages/index.ts +8 -0
- package/packages/model/flmComponentConfig/base/flmButton.ts +53 -0
- package/packages/model/flmComponentConfig/base/flmCascader.ts +77 -0
- package/packages/model/flmComponentConfig/base/flmCheckbox.ts +51 -0
- package/packages/model/flmComponentConfig/base/flmColorPicker.ts +30 -0
- package/packages/model/flmComponentConfig/base/flmDatePicker.ts +73 -0
- package/packages/model/flmComponentConfig/base/flmDialog.ts +49 -0
- package/packages/model/flmComponentConfig/base/flmInput.ts +57 -0
- package/packages/model/flmComponentConfig/base/flmInputNumber.ts +37 -0
- package/packages/model/flmComponentConfig/base/flmPagination.ts +37 -0
- package/packages/model/flmComponentConfig/base/flmRadio.ts +42 -0
- package/packages/model/flmComponentConfig/base/flmRate.ts +49 -0
- package/packages/model/flmComponentConfig/base/flmRead.ts +6 -0
- package/packages/model/flmComponentConfig/base/flmSelect.ts +104 -0
- package/packages/model/flmComponentConfig/base/flmSlider.ts +51 -0
- package/packages/model/flmComponentConfig/base/flmSwitch.ts +37 -0
- package/packages/model/flmComponentConfig/base/flmTimePicker.ts +61 -0
- package/packages/model/flmComponentConfig/base/flmTimeSelect.ts +44 -0
- package/packages/model/flmComponentConfig/base/flmTransfer.ts +51 -0
- package/packages/model/flmComponentConfig/complex/flmForm.ts +147 -0
- package/packages/model/flmComponentConfig/complex/flmSearch.ts +5 -0
- package/packages/model/flmComponentConfig/complex/flmTable.ts +132 -0
- package/packages/model/flmComponentConfig/complex/flmToolbar.ts +13 -0
- package/packages/model/flmComponentConfig/index.ts +31 -0
- package/packages/model/flmComponentConfig/page/flmReportPage.ts +31 -0
- package/packages/model/flmComponentConfig/public.ts +293 -0
- package/tsconfig.json +73 -20
- package/typings/lodash.d.ts +4 -0
- package/webpack.config.js +15 -0
- package/.vscode/extensions.json +0 -3
- package/flameDist/flame-plus.es.js +0 -5128
- package/flameDist/flame-plus.es.js.map +0 -1
- package/flameDist/flame-plus.umd.js +0 -16
- package/flameDist/flame-plus.umd.js.map +0 -1
- package/flameDist/style.css +0 -1
- package/flameDist/vite.svg +0 -1
- package/index.html +0 -13
- package/pnpm-lock.yaml +0 -2107
- package/public/vite.svg +0 -1
- package/src/App.vue +0 -10
- package/src/assets/vue.svg +0 -1
- package/src/components/HelloWorld.vue +0 -33
- package/src/main.ts +0 -19
- package/src/packages/components/page/flmExportPage/flmExportPage.vue +0 -219
- package/src/packages/index.ts +0 -96
- package/src/shims-vue.d.ts +0 -9
- package/vite.config.js +0 -37
- /package/{src/packages → packages}/utils/filterConfig.ts +0 -0
- /package/{src/packages → packages}/utils/index.ts +0 -0
- /package/{src/packages → packages}/utils/isValidKey.ts +0 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<slot :name="`search-${searchSlot}`" :prop="prop" :formModel="formModel"></slot>
|
|
11
11
|
</template>
|
|
12
12
|
</flmSearch>
|
|
13
|
-
<flmToolbar class="page-toolbar" :config="reportPageConfig.toolbar" @toolbarClick="toolbarClick" />
|
|
13
|
+
<flmToolbar v-if="isDialog==false" class="page-toolbar" :config="reportPageConfig.toolbar" @toolbarClick="toolbarClick" />
|
|
14
14
|
<flmTable
|
|
15
15
|
class="page-table"
|
|
16
16
|
:config="reportPageConfig.table"
|
|
@@ -31,7 +31,9 @@
|
|
|
31
31
|
/>
|
|
32
32
|
</template>
|
|
33
33
|
<flmDialog :config="reportPageConfig.readDialog" @close="pageDefaultEvent.closeReadDialog">
|
|
34
|
-
<flmForm
|
|
34
|
+
<flmForm
|
|
35
|
+
class="form-read"
|
|
36
|
+
:config="reportPageConfig.readForm" @cancel="pageDefaultEvent.closeReadDialog">
|
|
35
37
|
<template v-for="readFormSlot in readFormSlots" #[readFormSlot]="{ prop, formModel }">
|
|
36
38
|
<slot :name="`read-${readFormSlot}`" :prop="prop" :formModel="formModel"></slot>
|
|
37
39
|
</template>
|
|
@@ -39,7 +41,7 @@
|
|
|
39
41
|
</flmDialog>
|
|
40
42
|
<flmDialog :config="reportPageConfig.addDialog" @close="pageDefaultEvent.closeAddDialog">
|
|
41
43
|
<flmForm
|
|
42
|
-
|
|
44
|
+
class="form-add"
|
|
43
45
|
:config="reportPageConfig.addForm"
|
|
44
46
|
@submit="pageDefaultEvent.pageAdd"
|
|
45
47
|
@cancel="pageDefaultEvent.closeAddDialog"
|
|
@@ -51,7 +53,7 @@
|
|
|
51
53
|
</flmDialog>
|
|
52
54
|
<flmDialog :config="reportPageConfig.editDialog" @close="pageDefaultEvent.closeEditDialog">
|
|
53
55
|
<flmForm
|
|
54
|
-
|
|
56
|
+
class="form-edit"
|
|
55
57
|
:config="reportPageConfig.editForm"
|
|
56
58
|
@submit="pageDefaultEvent.pageEdit"
|
|
57
59
|
@cancel="pageDefaultEvent.closeEditDialog"
|
|
@@ -65,8 +67,8 @@
|
|
|
65
67
|
</template>
|
|
66
68
|
|
|
67
69
|
<script lang="ts" setup>
|
|
68
|
-
import {
|
|
69
|
-
|
|
70
|
+
import { ref, Ref, computed, onMounted, toRaw } from 'vue'
|
|
71
|
+
import { useRoute } from "vue-router";
|
|
70
72
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
71
73
|
import {
|
|
72
74
|
flmForm,
|
|
@@ -81,19 +83,19 @@ import {
|
|
|
81
83
|
FormConfig,
|
|
82
84
|
TableColumnConfig,
|
|
83
85
|
ReportPageSetting,
|
|
84
|
-
} from '
|
|
86
|
+
} from '../../../model/flmComponentConfig'
|
|
85
87
|
import { isValidKey } from '../../../utils'
|
|
86
|
-
|
|
88
|
+
import request from '@/plugins/request'
|
|
89
|
+
import { is } from '@babel/types'
|
|
87
90
|
const props = defineProps({
|
|
88
91
|
// 表名
|
|
89
92
|
tableName: {
|
|
90
93
|
type: String,
|
|
91
94
|
required: true
|
|
92
95
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
required: true
|
|
96
|
+
isDialog:{
|
|
97
|
+
type:Boolean,
|
|
98
|
+
default:false,
|
|
97
99
|
}
|
|
98
100
|
})
|
|
99
101
|
|
|
@@ -150,23 +152,32 @@ const tableHeight = () => {
|
|
|
150
152
|
|
|
151
153
|
// 查询页面配置
|
|
152
154
|
const queryPageSetting = () => {
|
|
153
|
-
|
|
155
|
+
const route = useRoute();
|
|
156
|
+
let menu_id = route.query.menu_id;
|
|
157
|
+
request.flameRequest({
|
|
154
158
|
tableName: 'flametableinfo',
|
|
155
159
|
flameMethod: 'webgetpagesetting',
|
|
156
|
-
data: { table_name: props.tableName, menu_id:
|
|
160
|
+
data: { table_name: props.tableName, menu_id: menu_id }
|
|
157
161
|
})
|
|
158
162
|
.then(({ items }: any) => {
|
|
159
163
|
const reportPageSetting: ReportPageSetting = items
|
|
160
164
|
reportPageSetting.table['height'] = tableHeight()
|
|
161
165
|
reportPageSetting.table['max-height'] = tableHeight()
|
|
162
|
-
|
|
166
|
+
if(props.isDialog==false) {
|
|
167
|
+
reportPageSetting.tableAction.buttons.length && reportPageSetting.table.columns?.push({
|
|
163
168
|
prop: 'tableAction',
|
|
164
169
|
label: '操作',
|
|
165
170
|
isSlot: true,
|
|
171
|
+
align: 'center',
|
|
172
|
+
'header-align':'center',
|
|
166
173
|
fixed: 'right',
|
|
167
|
-
'min-width': '200px'
|
|
174
|
+
'min-width': '200px',
|
|
175
|
+
'width': '200px'
|
|
168
176
|
})
|
|
177
|
+
}
|
|
178
|
+
|
|
169
179
|
reportPageConfig.value = reportPageSetting
|
|
180
|
+
isLoaded.value =true;
|
|
170
181
|
queryPageData()
|
|
171
182
|
})
|
|
172
183
|
}
|
|
@@ -177,7 +188,7 @@ const queryPageData = () => {
|
|
|
177
188
|
['current-page']: page_no = 1,
|
|
178
189
|
['page-size']: page_size = 20,
|
|
179
190
|
}: ReportPageSetting['pagination'] = reportPageConfig.value.pagination
|
|
180
|
-
|
|
191
|
+
request.flameApi.pageSearch({
|
|
181
192
|
tableName: safeTableName.value,
|
|
182
193
|
data: {
|
|
183
194
|
page_no,
|
|
@@ -190,7 +201,6 @@ const queryPageData = () => {
|
|
|
190
201
|
.then(({ items, total }: any) => {
|
|
191
202
|
reportPageConfig.value.table.data = items
|
|
192
203
|
reportPageConfig.value.pagination['total'] = total
|
|
193
|
-
isLoaded.value = true
|
|
194
204
|
})
|
|
195
205
|
}
|
|
196
206
|
|
|
@@ -210,16 +220,15 @@ const searchSubmit = (event: object) => {
|
|
|
210
220
|
const toolbarClick = (event: string) => {
|
|
211
221
|
isValidKey(event, pageDefaultEvent)
|
|
212
222
|
? pageDefaultEvent[event]()
|
|
213
|
-
: emit('customEvent', event)
|
|
223
|
+
: emit('customEvent', {event,data:{}})
|
|
214
224
|
}
|
|
215
225
|
|
|
216
226
|
// 表格操作栏点击
|
|
217
227
|
const tableActionClick = (event: string, scope: any) => {
|
|
218
228
|
isValidKey(event, pageDefaultEvent)
|
|
219
229
|
? pageDefaultEvent[event](scope)
|
|
220
|
-
: emit('customEvent', { event,
|
|
230
|
+
: emit('customEvent', { event,data: toRaw(scope.row) })
|
|
221
231
|
}
|
|
222
|
-
|
|
223
232
|
// 表格操作
|
|
224
233
|
const tableEvent: Record<string, (event?: any) => void> = {
|
|
225
234
|
// 表格勾选项变化
|
|
@@ -247,9 +256,9 @@ const paginationEvent: Record<string, (event?: any) => void> = {
|
|
|
247
256
|
const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
248
257
|
// 打开详情弹窗
|
|
249
258
|
openReadDialog:(scope: any) => {
|
|
250
|
-
|
|
259
|
+
request.flameApi.singleSearch({
|
|
251
260
|
tableName: safeTableName.value,
|
|
252
|
-
data: { key: scope.row.flame_id }
|
|
261
|
+
data: { key: scope.row.flame_id ,ref_level:1}
|
|
253
262
|
})
|
|
254
263
|
.then(({ items }: any) => {
|
|
255
264
|
reportPageConfig.value.readForm['model'] = items
|
|
@@ -262,7 +271,7 @@ const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
|
262
271
|
},
|
|
263
272
|
// 查看详情
|
|
264
273
|
pageRead:(scope: any) => {
|
|
265
|
-
|
|
274
|
+
request.flameApi.singleSearch({
|
|
266
275
|
tableName: safeTableName.value,
|
|
267
276
|
data: { key: scope.row.flame_id }
|
|
268
277
|
})
|
|
@@ -281,7 +290,7 @@ const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
|
281
290
|
},
|
|
282
291
|
// 页面新增
|
|
283
292
|
pageAdd:(formModel: FormConfig['model']) => {
|
|
284
|
-
|
|
293
|
+
request.flameApi.singleAdd({
|
|
285
294
|
tableName: safeTableName.value,
|
|
286
295
|
data: { data: formModel }
|
|
287
296
|
})
|
|
@@ -291,6 +300,63 @@ const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
|
291
300
|
pageDefaultEvent.closeAddDialog()
|
|
292
301
|
})
|
|
293
302
|
},
|
|
303
|
+
// 页面导入
|
|
304
|
+
pageImport:() => {
|
|
305
|
+
const inputFile: any = document.createElement('input')
|
|
306
|
+
inputFile.type = 'file'
|
|
307
|
+
inputFile.style.display = 'none'
|
|
308
|
+
document.body.appendChild(inputFile)
|
|
309
|
+
inputFile.click()
|
|
310
|
+
inputFile.addEventListener('change', () => {
|
|
311
|
+
const file = inputFile.files[0]
|
|
312
|
+
var fileType = file.name.substring(file.name.lastIndexOf('.') + 1)
|
|
313
|
+
if (!['xls', 'xlsx', 'et'].includes(fileType)) {
|
|
314
|
+
ElMessage.warning('请上传 xls、xlsx、et 格式的文件!')
|
|
315
|
+
document.body.removeChild(inputFile)
|
|
316
|
+
return false
|
|
317
|
+
}
|
|
318
|
+
const formData = new FormData()
|
|
319
|
+
formData.append("file", file)
|
|
320
|
+
request.flameAxios({
|
|
321
|
+
headers: { 'Content-Type': 'multipart/form-data' },
|
|
322
|
+
method: 'post',
|
|
323
|
+
url: `/resource-service/upload_file?source=mongo&token=${request.token}`,
|
|
324
|
+
data: formData
|
|
325
|
+
})
|
|
326
|
+
.then(({ key: code }: any) => {
|
|
327
|
+
request.flameRequest({
|
|
328
|
+
tableName: safeTableName.value,
|
|
329
|
+
flameMethod: 'importfile',
|
|
330
|
+
data: { code }
|
|
331
|
+
})
|
|
332
|
+
.then((res: any) => {
|
|
333
|
+
if(res.result){
|
|
334
|
+
ElMessage.success('导入成功!')
|
|
335
|
+
pageRefresh()
|
|
336
|
+
}
|
|
337
|
+
else{
|
|
338
|
+
ElMessage.error(res.message)
|
|
339
|
+
}
|
|
340
|
+
})
|
|
341
|
+
})
|
|
342
|
+
.finally(() => document.body.removeChild(inputFile))
|
|
343
|
+
})
|
|
344
|
+
},
|
|
345
|
+
// 页面导出
|
|
346
|
+
pageExport:() => {
|
|
347
|
+
request.flameApi.exportFile({
|
|
348
|
+
tableName: safeTableName.value,
|
|
349
|
+
data: {
|
|
350
|
+
conditions: searchParams.value,
|
|
351
|
+
ref_level: 1,
|
|
352
|
+
order_by: "flame_id DESC"
|
|
353
|
+
}
|
|
354
|
+
})
|
|
355
|
+
.then(({ items }: any) => {
|
|
356
|
+
window.open(items.download_url)
|
|
357
|
+
ElMessage.success('导出成功')
|
|
358
|
+
})
|
|
359
|
+
},
|
|
294
360
|
// 页面删除
|
|
295
361
|
pageDelete:(scope: any) => {
|
|
296
362
|
ElMessageBox.confirm(
|
|
@@ -303,7 +369,7 @@ const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
|
303
369
|
}
|
|
304
370
|
)
|
|
305
371
|
.then(() => {
|
|
306
|
-
|
|
372
|
+
request.flameApi.singleDelete({
|
|
307
373
|
tableName: safeTableName.value,
|
|
308
374
|
data: { key: scope.row.flame_id }
|
|
309
375
|
})
|
|
@@ -318,7 +384,7 @@ const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
|
318
384
|
},
|
|
319
385
|
// 打开编辑弹窗
|
|
320
386
|
openEditDialog:(scope: any) => {
|
|
321
|
-
|
|
387
|
+
request.flameApi.singleSearch({
|
|
322
388
|
tableName: safeTableName.value,
|
|
323
389
|
data: { key: scope.row.flame_id }
|
|
324
390
|
})
|
|
@@ -337,7 +403,7 @@ const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
|
337
403
|
},
|
|
338
404
|
// 页面编辑
|
|
339
405
|
pageEdit:(formModel: FormConfig['model']) => {
|
|
340
|
-
|
|
406
|
+
request.flameApi.singleUpdate({
|
|
341
407
|
tableName: safeTableName.value,
|
|
342
408
|
data: {
|
|
343
409
|
key: formModel?.flame_id,
|
|
@@ -351,57 +417,7 @@ const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
|
351
417
|
})
|
|
352
418
|
},
|
|
353
419
|
// 页面导入
|
|
354
|
-
// pageImport:() => {
|
|
355
|
-
// const inputFile: any = document.createElement('input')
|
|
356
|
-
// inputFile.type = 'file'
|
|
357
|
-
// inputFile.style.display = 'none'
|
|
358
|
-
// document.body.appendChild(inputFile)
|
|
359
|
-
// inputFile.click()
|
|
360
|
-
// inputFile.addEventListener('change', () => {
|
|
361
|
-
// const file = inputFile.files[0]
|
|
362
|
-
// var fileType = file.name.substring(file.name.lastIndexOf('.') + 1)
|
|
363
|
-
// if (!['xls', 'xlsx', 'et'].includes(fileType)) {
|
|
364
|
-
// ElMessage.warning('请上传 xls、xlsx、et 格式的文件!')
|
|
365
|
-
// document.body.removeChild(inputFile)
|
|
366
|
-
// return false
|
|
367
|
-
// }
|
|
368
|
-
// const formData = new FormData()
|
|
369
|
-
// formData.append("file", file)
|
|
370
|
-
// props.request.flameAxios({
|
|
371
|
-
// headers: { 'Content-Type': 'multipart/form-data' },
|
|
372
|
-
// method: 'post',
|
|
373
|
-
// url: `/resource-service/upload_file?source=mongo&token=${store.state.token}`,
|
|
374
|
-
// data: formData
|
|
375
|
-
// })
|
|
376
|
-
// .then(({ key: code }: any) => {
|
|
377
|
-
// props.request.flameprops.request({
|
|
378
|
-
// tableName: safeTableName.value,
|
|
379
|
-
// flameMethod: 'importfile',
|
|
380
|
-
// data: { code }
|
|
381
|
-
// })
|
|
382
|
-
// .then((res: any) => {
|
|
383
|
-
// ElMessage.success('上传成功!')
|
|
384
|
-
// pageRefresh()
|
|
385
|
-
// })
|
|
386
|
-
// })
|
|
387
|
-
// .finally(() => document.body.removeChild(inputFile))
|
|
388
|
-
// })
|
|
389
|
-
// },
|
|
390
420
|
// 页面导出
|
|
391
|
-
pageExport:() => {
|
|
392
|
-
props.request.flameApi.exportFile({
|
|
393
|
-
tableName: safeTableName.value,
|
|
394
|
-
data: {
|
|
395
|
-
conditions: searchParams.value,
|
|
396
|
-
ref_level: 1,
|
|
397
|
-
order_by: 'flame_id DESC'
|
|
398
|
-
}
|
|
399
|
-
})
|
|
400
|
-
.then(({ items }: any) => {
|
|
401
|
-
window.open(items.download_url)
|
|
402
|
-
ElMessage.success('导出成功')
|
|
403
|
-
})
|
|
404
|
-
},
|
|
405
421
|
// 页面批量删除
|
|
406
422
|
pageBatchDelete:() => {
|
|
407
423
|
if (tableSelection.value.length) {
|
|
@@ -416,7 +432,7 @@ const pageDefaultEvent: Record<string, (event?: any) => void> = {
|
|
|
416
432
|
)
|
|
417
433
|
.then(() => {
|
|
418
434
|
// 此处需要请求删除接口,并完成回显
|
|
419
|
-
|
|
435
|
+
request.flameApi.batchDelete({
|
|
420
436
|
tableName: safeTableName.value,
|
|
421
437
|
data: {
|
|
422
438
|
conditions: {
|
|
@@ -471,6 +487,7 @@ const editFormSlots = computed((): Array<string> => getFormSlots(reportPageConfi
|
|
|
471
487
|
</script>
|
|
472
488
|
|
|
473
489
|
<style lang="scss" scoped>
|
|
490
|
+
|
|
474
491
|
.report-page {
|
|
475
492
|
display: grid;
|
|
476
493
|
grid-template-columns: repeat(24, 1fr);
|
|
@@ -493,4 +510,30 @@ const editFormSlots = computed((): Array<string> => getFormSlots(reportPageConfi
|
|
|
493
510
|
justify-self: end;
|
|
494
511
|
}
|
|
495
512
|
}
|
|
513
|
+
</style>
|
|
514
|
+
<style lang="scss">
|
|
515
|
+
|
|
516
|
+
.el-dialog__header {
|
|
517
|
+
border-bottom:1px solid #C4C4C4;
|
|
518
|
+
margin-right:0px;
|
|
519
|
+
font-weight:bold;
|
|
520
|
+
}
|
|
521
|
+
.el-dialog__body .form-buttons {
|
|
522
|
+
position: absolute;
|
|
523
|
+
bottom:-15px;
|
|
524
|
+
left:0px;
|
|
525
|
+
// margin-bottom: 50px;
|
|
526
|
+
// border-top:1px solid #C4C4C4;
|
|
527
|
+
width:calc(100% - 10px);
|
|
528
|
+
padding:10px 0 0px 10px;
|
|
529
|
+
.el-form-item__content{
|
|
530
|
+
justify-content: flex-end;
|
|
531
|
+
margin-right: 20px;
|
|
532
|
+
// margin-bottom: 10px;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
.el-dialog__footer{
|
|
536
|
+
border-top:1px solid #C4C4C4;
|
|
537
|
+
background-color: red($color: #000000);
|
|
538
|
+
}
|
|
496
539
|
</style>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ElementSize } from '../../../model/flmComponentConfig'
|
|
2
|
+
|
|
3
|
+
/** @button 按钮 */
|
|
4
|
+
|
|
5
|
+
// 按钮类型
|
|
6
|
+
export enum ButtonType {
|
|
7
|
+
'primary' = 'primary',
|
|
8
|
+
'success' = 'success',
|
|
9
|
+
'warning' = 'warning',
|
|
10
|
+
'danger' = 'danger',
|
|
11
|
+
'info' = 'info',
|
|
12
|
+
'text' = 'text',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 按钮原生type
|
|
16
|
+
export enum ButtonNativeType {
|
|
17
|
+
'button' = 'button',
|
|
18
|
+
'submit' = 'submit',
|
|
19
|
+
'reset' = 'reset',
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// 按钮设置(https://element-plus.gitee.io/zh-CN/component/button.html)
|
|
23
|
+
export interface ButtonConfig {
|
|
24
|
+
// 默认属性
|
|
25
|
+
'size'?: ElementSize
|
|
26
|
+
'type'?: ButtonType
|
|
27
|
+
'plain'?: boolean
|
|
28
|
+
'text'?: boolean
|
|
29
|
+
'bg'?: boolean
|
|
30
|
+
'link'?: boolean
|
|
31
|
+
'round'?: boolean
|
|
32
|
+
'circle'?: boolean
|
|
33
|
+
'loading'?: boolean
|
|
34
|
+
'loading-icon'?: string
|
|
35
|
+
'disabled'?: boolean
|
|
36
|
+
'icon'?: string
|
|
37
|
+
'autofocus'?: boolean
|
|
38
|
+
'native-type'?: ButtonNativeType
|
|
39
|
+
'auto-insert-space'?: boolean
|
|
40
|
+
// 自定义属性
|
|
41
|
+
'buttonText'?: string // 按钮文字
|
|
42
|
+
}
|
|
43
|
+
// 按钮默认设置
|
|
44
|
+
export const buttonDefaultConfig: ButtonConfig = {
|
|
45
|
+
'plain': false,
|
|
46
|
+
'round': false,
|
|
47
|
+
'circle': false,
|
|
48
|
+
'loading': false,
|
|
49
|
+
'loading-icon': 'Loading',
|
|
50
|
+
'disabled': false,
|
|
51
|
+
'autofocus': false,
|
|
52
|
+
'native-type': ButtonNativeType['button'],
|
|
53
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ElementSize } from '../../../model/flmComponentConfig'
|
|
2
|
+
|
|
3
|
+
/** @cascader 级联选择器 */
|
|
4
|
+
|
|
5
|
+
// 标签类型
|
|
6
|
+
export enum CascaderTagType {
|
|
7
|
+
'success' = 'success',
|
|
8
|
+
'info' = 'info',
|
|
9
|
+
'warning' = 'warning',
|
|
10
|
+
'danger' = 'danger',
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// 次级菜单的展开方式
|
|
14
|
+
export enum CascaderPropsExpandTrigger {
|
|
15
|
+
'click' = 'click',
|
|
16
|
+
'hover' = 'hover',
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 级联选择器props
|
|
20
|
+
export interface CascaderProps {
|
|
21
|
+
'expandTrigger'?: CascaderPropsExpandTrigger
|
|
22
|
+
'multiple'?: boolean
|
|
23
|
+
'checkStrictly'?: boolean
|
|
24
|
+
'emitPath'?: boolean
|
|
25
|
+
'lazy'?: boolean
|
|
26
|
+
'lazyLoad'?: Function
|
|
27
|
+
'value'?: string
|
|
28
|
+
'label'?: string
|
|
29
|
+
'children'?: string
|
|
30
|
+
'disabled'?: string
|
|
31
|
+
'leaf'?: string
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// 级联选择器设置(https://element-plus.gitee.io/zh-CN/component/cascader.html)
|
|
35
|
+
export interface CascaderConfig {
|
|
36
|
+
// 默认属性
|
|
37
|
+
'model-value'?: any
|
|
38
|
+
'options'?: Array<any>
|
|
39
|
+
'props'?: CascaderProps
|
|
40
|
+
'size'?: ElementSize
|
|
41
|
+
'placeholder'?: string
|
|
42
|
+
'disabled'?: boolean
|
|
43
|
+
'clearable'?: boolean
|
|
44
|
+
'show-all-levels'?: boolean
|
|
45
|
+
'collapse-tags'?: boolean
|
|
46
|
+
'collapse-tags-tooltip'?: boolean
|
|
47
|
+
'separator'?: string
|
|
48
|
+
'filterable'?: boolean
|
|
49
|
+
'filter-method'?: Function
|
|
50
|
+
'debounce'?: number
|
|
51
|
+
'before-filter'?: Function
|
|
52
|
+
'popper-class'?: string
|
|
53
|
+
'teleported'?: boolean
|
|
54
|
+
'tag-type'?: CascaderTagType
|
|
55
|
+
}
|
|
56
|
+
// 级联选择器默认事件
|
|
57
|
+
export interface CascaderDefaultEvent {
|
|
58
|
+
'onChange': (value: CascaderConfig['model-value']) => void,
|
|
59
|
+
'onExpandChange': (event: any) => void,
|
|
60
|
+
'onBlur': (event: any) => void,
|
|
61
|
+
'onFocus': (event: any) => void,
|
|
62
|
+
'onVisibleChange': (event: boolean) => void,
|
|
63
|
+
'onRemoveTag': (event: any) => void
|
|
64
|
+
}
|
|
65
|
+
// 级联选择器默认设置
|
|
66
|
+
export const cascaderDefaultConfig: CascaderConfig = {
|
|
67
|
+
'placeholder': '请选择',
|
|
68
|
+
'disabled': false,
|
|
69
|
+
'clearable': false,
|
|
70
|
+
'show-all-levels': true,
|
|
71
|
+
'collapse-tags': false,
|
|
72
|
+
'collapse-tags-tooltip': false,
|
|
73
|
+
'separator': '/',
|
|
74
|
+
'debounce': 300,
|
|
75
|
+
'teleported': true,
|
|
76
|
+
'tag-type': CascaderTagType['info'],
|
|
77
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ElementSize } from '../../../model/flmComponentConfig'
|
|
2
|
+
|
|
3
|
+
/** @checkboxGroup 多选框 */
|
|
4
|
+
// 多选框设置(https://element-plus.org/zh-CN/component/checkbox.html)
|
|
5
|
+
export interface CheckboxConfig {
|
|
6
|
+
// 默认属性
|
|
7
|
+
'model-value'?: string | number | boolean
|
|
8
|
+
'label'?: string | number | boolean | object
|
|
9
|
+
'true-label'?: string | number
|
|
10
|
+
'false-label'?: string | number
|
|
11
|
+
'disabled'?: boolean
|
|
12
|
+
'border'?: boolean
|
|
13
|
+
'size'?: ElementSize
|
|
14
|
+
'name'?: string
|
|
15
|
+
'checked'?: boolean
|
|
16
|
+
'indeterminate'?: boolean
|
|
17
|
+
}
|
|
18
|
+
//多选框默认事件
|
|
19
|
+
export interface CheckboxDefaultEvent {
|
|
20
|
+
'onChange': (value: CheckboxConfig['model-value']) => void
|
|
21
|
+
}
|
|
22
|
+
// 多选框默认设置
|
|
23
|
+
export const checkboxDefaultConfig: CheckboxConfig = {
|
|
24
|
+
'disabled': false,
|
|
25
|
+
'border': false,
|
|
26
|
+
'checked': false,
|
|
27
|
+
'indeterminate': false,
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// 多选框组设置
|
|
31
|
+
export interface CheckboxGroupConfig {
|
|
32
|
+
// 默认属性
|
|
33
|
+
'model-value'?: Array<CheckboxConfig['model-value']>
|
|
34
|
+
'size'?: ElementSize
|
|
35
|
+
'disabled'?: boolean
|
|
36
|
+
'min'?: number
|
|
37
|
+
'max'?: number
|
|
38
|
+
'text-color'?: string
|
|
39
|
+
'fill'?: string
|
|
40
|
+
// 自定义属性
|
|
41
|
+
'hasCheckAll'?: boolean // 有全选按钮
|
|
42
|
+
'checkAllConfig'?: CheckboxConfig // 权限值
|
|
43
|
+
'items'?: Array<CheckboxConfig> // 选项组
|
|
44
|
+
}
|
|
45
|
+
// 多选框组默认设置
|
|
46
|
+
export const checkboxGroupDefaultConfig: CheckboxGroupConfig = {
|
|
47
|
+
'model-value': [],
|
|
48
|
+
'disabled': false,
|
|
49
|
+
'text-color': '#FFFFFF',
|
|
50
|
+
'fill': '#409EFF',
|
|
51
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ElementSize } from '../../../model/flmComponentConfig'
|
|
2
|
+
|
|
3
|
+
/** @colorPicker 颜色选择器 */
|
|
4
|
+
// 颜色格式
|
|
5
|
+
export enum ColorFormat {
|
|
6
|
+
'hsl' = 'hsl',
|
|
7
|
+
'hsv' = 'hsv',
|
|
8
|
+
'hex' = 'hex',
|
|
9
|
+
'rgb' = 'rgb',
|
|
10
|
+
}
|
|
11
|
+
// 颜色选择器设置(https://element-plus.gitee.io/zh-CN/component/color-picker.html)
|
|
12
|
+
export interface ColorPickerConfig {
|
|
13
|
+
// 默认属性
|
|
14
|
+
'model-value'?: string
|
|
15
|
+
'disabled'?: boolean
|
|
16
|
+
'size'?: ElementSize
|
|
17
|
+
'show-alpha'?: boolean
|
|
18
|
+
'color-format'?: ColorFormat
|
|
19
|
+
'popper-class'?: string
|
|
20
|
+
'predefine'?: Array<string>
|
|
21
|
+
}
|
|
22
|
+
// 颜色选择器默认事件
|
|
23
|
+
export interface ColorPickerDefaultEvent {
|
|
24
|
+
onChange: (value: ColorPickerConfig['model-value']) => void
|
|
25
|
+
}
|
|
26
|
+
// 颜色选择器默认设置
|
|
27
|
+
export const colorPickerDefaultConfig: ColorPickerConfig = {
|
|
28
|
+
'disabled': false,
|
|
29
|
+
'show-alpha': false,
|
|
30
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ElementSize, ElementIcons } from '../../../model/flmComponentConfig'
|
|
2
|
+
|
|
3
|
+
/** @datePicker 日期选择器 */
|
|
4
|
+
|
|
5
|
+
// 显示类型
|
|
6
|
+
export enum DateType {
|
|
7
|
+
'year' = 'year',
|
|
8
|
+
'month' = 'month',
|
|
9
|
+
'date' = 'date',
|
|
10
|
+
'dates' = 'dates',
|
|
11
|
+
'datetime' = 'datetime',
|
|
12
|
+
'week' = 'week',
|
|
13
|
+
'datetimerange' = 'datetimerange',
|
|
14
|
+
'daterange' = 'daterange',
|
|
15
|
+
'monthrange' = 'monthrange',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// 日期选择器设置(https://element-plus.gitee.io/zh-CN/component/date-picker.html)
|
|
19
|
+
export interface DatePickerConfig {
|
|
20
|
+
// 默认属性
|
|
21
|
+
'model-value'?: Date | Array<Date>
|
|
22
|
+
'readonly'?: boolean
|
|
23
|
+
'disabled'?: boolean
|
|
24
|
+
'size'?: ElementSize
|
|
25
|
+
'editable'?: boolean
|
|
26
|
+
'clearable'?: boolean
|
|
27
|
+
'placeholder'?: string
|
|
28
|
+
'start-placeholder'?: string
|
|
29
|
+
'end-placeholder'?: string
|
|
30
|
+
'type'?: DateType
|
|
31
|
+
'format'?: string
|
|
32
|
+
'popper-class'?: string
|
|
33
|
+
'range-separator'?: string
|
|
34
|
+
'default-value'?: Date
|
|
35
|
+
'default-time'?: Array<Date>
|
|
36
|
+
'value-format'?: string
|
|
37
|
+
'id'?: string | Array<string>
|
|
38
|
+
'name'?: string
|
|
39
|
+
'unlink-panels'?: boolean
|
|
40
|
+
'prefix-icon'?: string
|
|
41
|
+
'clear-icon'?: ElementIcons
|
|
42
|
+
'validate-event'?: boolean
|
|
43
|
+
'disabled-date'?: Function
|
|
44
|
+
'shortcuts'?: Array<{ text: string, value: Date | Function }>
|
|
45
|
+
'cell-class-name'?: Function
|
|
46
|
+
'teleported'?: boolean
|
|
47
|
+
}
|
|
48
|
+
// 日期选择器默认事件
|
|
49
|
+
export interface DatePickerDefaultEvent {
|
|
50
|
+
'onUpdate:modelValue': (value: DatePickerConfig['model-value']) => void, // v-model 不用改不了值
|
|
51
|
+
// onChange: (value: DatePickerConfig['model-value']) => {},
|
|
52
|
+
'onBlur': (event: any) => void,
|
|
53
|
+
'onFocus': (event: any) => void,
|
|
54
|
+
'onCalendarChange': (event: Array<Date>) => void,
|
|
55
|
+
'onPanelChange': (date: any, mode: any, view: any) => void,
|
|
56
|
+
'onVisibleChange': (event: boolean) => void,
|
|
57
|
+
}
|
|
58
|
+
// 日期选择器默认设置
|
|
59
|
+
export const datePickerDefaultConfig: DatePickerConfig = {
|
|
60
|
+
'readonly': false,
|
|
61
|
+
'disabled': false,
|
|
62
|
+
'size': ElementSize['default'],
|
|
63
|
+
'editable': true,
|
|
64
|
+
'clearable': true,
|
|
65
|
+
'type': DateType['date'],
|
|
66
|
+
'format': 'YYYY-MM-DD',
|
|
67
|
+
'range-separator': '-',
|
|
68
|
+
'unlink-panels': false,
|
|
69
|
+
'prefix-icon': 'Date',
|
|
70
|
+
'clear-icon': ElementIcons['CircleClose'],
|
|
71
|
+
'validate-event': true,
|
|
72
|
+
'teleported': true,
|
|
73
|
+
}
|