cloud-web-corejs 1.0.54-dev.810 → 1.0.54-dev.812

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.
Files changed (83) hide show
  1. package/package.json +1 -1
  2. package/src/components/VabUpload/image-viewer.vue +442 -442
  3. package/src/components/VabUpload/index.vue +44 -2
  4. package/src/components/VabUpload/mixins.js +126 -19
  5. package/src/components/VabUpload/view.vue +247 -209
  6. package/src/components/baseTabs/mixins.js +181 -181
  7. package/src/components/mobile/wf/content.vue +1665 -1556
  8. package/src/components/table/config.js +78 -78
  9. package/src/components/table/index.js +1276 -1276
  10. package/src/components/table/tableForm.vue +330 -330
  11. package/src/components/table/tableFormMixin.js +318 -318
  12. package/src/components/table/vxeFilter/index.js +163 -163
  13. package/src/components/table/vxeFilter/mixin.js +316 -316
  14. package/src/components/wf/content.vue +1188 -1188
  15. package/src/components/wf/wf.js +29 -12
  16. package/src/components/wf/wfActionDropdown.vue +1 -1
  17. package/src/components/wf/wfActionItems.js +1 -1
  18. package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +528 -0
  19. package/src/components/xform/docs/2026-08 xform H5 P1 /345/256/236/347/216/260/350/247/204/346/240/274.md" +412 -0
  20. package/src/components/xform/docs/2026-08 xform H5 P2 /345/256/236/347/216/260/350/247/204/346/240/274.md" +287 -0
  21. package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +400 -0
  22. package/src/components/xform/form-designer/designer.js +15 -0
  23. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +269 -269
  24. package/src/components/xform/form-designer/form-widget/container-widget/detail-temp-widget.vue +132 -0
  25. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +250 -250
  26. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +319 -320
  27. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +365 -365
  28. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +554 -555
  29. package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +409 -409
  30. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +150 -132
  31. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +114 -114
  32. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +154 -154
  33. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +29 -1
  34. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +178 -178
  35. package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -77
  36. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +139 -139
  37. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +106 -106
  38. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +134 -134
  39. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +1 -0
  40. package/src/components/xform/form-designer/setting-panel/form-setting.vue +39 -39
  41. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +438 -438
  42. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +2103 -2103
  43. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +90 -0
  44. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +82 -82
  45. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +8 -8
  46. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +137 -137
  47. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -237
  48. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +43 -43
  49. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +43 -43
  50. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -96
  51. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +42 -42
  52. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +43 -43
  53. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +158 -158
  54. package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
  55. package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
  56. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +188 -188
  57. package/src/components/xform/form-designer/setting-panel/property-editor/styleTempClass-editor.vue +51 -0
  58. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +347 -347
  59. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +4 -0
  60. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +55 -3
  61. package/src/components/xform/form-render/container-item/data-table-mixin.js +33 -12
  62. package/src/components/xform/form-render/container-item/detail-h5-item.vue +183 -32
  63. package/src/components/xform/form-render/container-item/detail-temp-item.vue +110 -0
  64. package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
  65. package/src/components/xform/form-render/container-item/list-h5-item.vue +1642 -1700
  66. package/src/components/xform/form-render/index.vue +153 -147
  67. package/src/components/xform/form-render/indexMixin.js +12 -0
  68. package/src/components/xform/lang/en-US.js +10 -0
  69. package/src/components/xform/lang/zh-CN.js +12 -0
  70. package/src/components/xform/mixins/defaultHandle.js +707 -707
  71. package/src/components/xform/styles/h5.scss +1634 -0
  72. package/src/components/xform/utils/textMaskUtil.js +182 -182
  73. package/src/components/xform/utils/treeTableUtil.js +1292 -1265
  74. package/src/components/xform/utils/util.js +56 -11
  75. package/src/utils/pdfUtil.js +429 -429
  76. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
  77. package/src/views/bd/setting/table_model/edit.vue +1066 -1066
  78. package/src/views/bd/setting/table_model/mixins/edit.js +1455 -1455
  79. package/src/views/bd/setting/table_model/mixins/zdDialog.js +148 -148
  80. package/src/views/user/home/wjl/content.vue +394 -31
  81. package/src/views/user/role/edit.vue +632 -632
  82. package/src/views/user/role/list.vue +260 -260
  83. package/src/views/user/wf/wf_manage/list.vue +1116 -1116
@@ -0,0 +1,90 @@
1
+ <template>
2
+ <div>
3
+ <el-form-item label-width="0">
4
+ <el-divider class="custom-divider">{{ i18nt('designer.setting.columnSetting') }}</el-divider>
5
+ </el-form-item>
6
+ <el-form-item :label="i18nt('隐藏标题栏')">
7
+ <el-switch v-model="optionModel.hideHeader"></el-switch>
8
+ </el-form-item>
9
+ <el-form-item :label="i18nt('designer.setting.colsOfGrid')"></el-form-item>
10
+ <el-form-item class="form-item-label-top" label-width="0">
11
+ <!-- panes 是通用容器列表(还可能挂 tab 等容器承载标签)。内容模块的 label 可改;
12
+ 其它容器的 options.label 在画布上并不渲染,改了没反应,所以只读占位——
13
+ 但必须列出来,否则标签形态下这个列表会整个空掉,看着像坏了。
14
+ 拖拽排序绑的是原数组 selectedWidget.panes,排序结果能写回去。 -->
15
+ <draggable tag="ul" class="draggable-box" :list="selectedWidget.panes"
16
+ v-bind="{ group: 'optionsGroup', ghostClass: 'ghost', handle: '.drag-option' }">
17
+ <li v-for="(colItem, colIdx) in selectedWidget.panes" :key="colItem.id || colIdx" class="col-item">
18
+ <i class="el-icon-s-operation drag-option"></i>
19
+ <el-input v-if="colItem.type === 'detail-pane'" v-model="colItem.options.label"
20
+ class="cell-span-input"></el-input>
21
+ <el-input v-else :value="paneTypeLabel(colItem)" class="cell-span-input" disabled
22
+ :title="i18nt('请在画布中编辑')"></el-input>
23
+ <el-button circle plain size="mini" type="danger" @click="deleteCol(selectedWidget, colItem)"
24
+ icon="el-icon-minus" class="col-delete-button" style="position: unset;"></el-button>
25
+ </li>
26
+ </draggable>
27
+ <div>
28
+ <el-button type="text" @click="addNewCol(selectedWidget)" icon="el-icon-circle-plus-outline" class="add-option">
29
+ {{ i18nt('designer.setting.addColumn') }}
30
+ </el-button>
31
+ </div>
32
+ </el-form-item>
33
+ </div>
34
+ </template>
35
+
36
+ <script>
37
+ import Draggable from 'vuedraggable';
38
+ import i18n from "../../../../../../components/xform/utils/i18n"
39
+
40
+ export default {
41
+ name: "detail-temp-editor",
42
+ mixins: [i18n],
43
+ components: {
44
+ Draggable,
45
+ },
46
+ props: {
47
+ designer: Object,
48
+ selectedWidget: Object,
49
+ optionModel: Object,
50
+ },
51
+ methods: {
52
+ deleteCol(curGrid, colItem) {
53
+ // 传 widget 引用而非下标:列表里混着内容模块和其它容器,下标语义不如引用直白
54
+ this.designer.deletePaneOfDetail(curGrid, colItem)
55
+ this.designer.emitHistoryChange()
56
+ },
57
+
58
+ // 非内容模块(如标签容器)在列表里只做占位展示,取组件面板上的同一套显示名
59
+ paneTypeLabel(colItem) {
60
+ return this.i18n2t(
61
+ `designer.widgetLabel.${colItem.type}`,
62
+ `extension.widgetLabel.${colItem.type}`
63
+ )
64
+ },
65
+
66
+ addNewCol(curGrid) {
67
+ this.designer.addNewPaneOfDetail(curGrid)
68
+ this.designer.emitHistoryChange()
69
+ },
70
+
71
+ }
72
+ }
73
+ </script>
74
+
75
+ <style lang="scss" scoped>
76
+ li.col-item {
77
+ list-style: none;
78
+
79
+ span.col-span-title {
80
+ display: inline-block;
81
+ font-size: 13px;
82
+ width: 120px;
83
+ }
84
+
85
+ .col-delete-button {
86
+ margin-left: 6px;
87
+ }
88
+ }
89
+
90
+ </style>
@@ -1,82 +1,82 @@
1
- <template>
2
- <div>
3
- <el-form-item label-width="0">
4
- <el-divider class="custom-divider">{{i18nt('designer.setting.columnSetting')}}</el-divider>
5
- </el-form-item>
6
- <el-form-item :label="i18nt('designer.setting.gutter')" class="form-item-label-top">
7
- <el-input-number v-model="optionModel.gutter" style="width: 100%"></el-input-number>
8
- </el-form-item>
9
- <el-form-item :label="i18nt('designer.setting.colsOfGrid')" class="form-item-label-top">
10
- <div class="draggable-list">
11
- <li v-for="(colItem, colIdx) in selectedWidget.cols" :key="colIdx" class="col-item">
12
- <span class="col-span-title">{{i18nt('designer.setting.colSpanTitle')}}{{colIdx + 1}}</span>
13
- <el-input-number v-model.number="colItem.options.span" :min="1" :max="24"
14
- @change="(newValue, oldValue) => spanChanged(selectedWidget, colItem, colIdx, newValue, oldValue)"
15
- class="cell-span-input"></el-input-number>
16
- <el-button circle plain size="mini" type="danger" @click="deleteCol(selectedWidget, colIdx)"
17
- icon="el-icon-minus" class="col-delete-button"></el-button>
18
- </li>
19
- <div>
20
- <el-button type="text" @click="addNewCol(selectedWidget)" icon="el-icon-circle-plus-outline" class="add-option">{{i18nt('designer.setting.addColumn')}}</el-button>
21
- </div>
22
- </div>
23
- </el-form-item>
24
- </div>
25
- </template>
26
-
27
- <script>
28
- import i18n from "../../../../../../components/xform/utils/i18n"
29
-
30
- export default {
31
- name: "gutter-editor",
32
- mixins: [i18n],
33
- props: {
34
- designer: Object,
35
- selectedWidget: Object,
36
- optionModel: Object,
37
- },
38
- methods: {
39
- spanChanged(curGrid) {
40
- let spanSum = 0
41
- curGrid.cols.forEach((colItem) => {
42
- spanSum += colItem.options.span
43
- })
44
- if (spanSum > 24) {
45
- //this.$message.info('列栅格之和超出24')
46
- console.log('列栅格之和超出24')
47
- //TODO: 语言字符串资源化
48
- }
49
-
50
- this.designer.saveCurrentHistoryStep()
51
- },
52
-
53
- deleteCol(curGrid, colIdx) {
54
- this.designer.deleteColOfGrid(curGrid, colIdx)
55
- this.designer.emitHistoryChange()
56
- },
57
-
58
- addNewCol(curGrid) {
59
- this.designer.addNewColOfGrid(curGrid)
60
- this.designer.emitHistoryChange()
61
- },
62
-
63
- }
64
- }
65
- </script>
66
-
67
- <style lang="scss" scoped>
68
- li.col-item {
69
- list-style: none;
70
-
71
- span.col-span-title {
72
- display: inline-block;
73
- font-size: 13px;
74
- width: 120px;
75
- }
76
-
77
- .col-delete-button {
78
- margin-left: 6px;
79
- }
80
- }
81
-
82
- </style>
1
+ <template>
2
+ <div>
3
+ <el-form-item label-width="0">
4
+ <el-divider class="custom-divider">{{i18nt('designer.setting.columnSetting')}}</el-divider>
5
+ </el-form-item>
6
+ <el-form-item :label="i18nt('designer.setting.gutter')" class="form-item-label-top">
7
+ <el-input-number v-model="optionModel.gutter" style="width: 100%"></el-input-number>
8
+ </el-form-item>
9
+ <el-form-item :label="i18nt('designer.setting.colsOfGrid')" class="form-item-label-top">
10
+ <div class="draggable-list">
11
+ <li v-for="(colItem, colIdx) in selectedWidget.cols" :key="colIdx" class="col-item">
12
+ <span class="col-span-title">{{i18nt('designer.setting.colSpanTitle')}}{{colIdx + 1}}</span>
13
+ <el-input-number v-model.number="colItem.options.span" :min="1" :max="24"
14
+ @change="(newValue, oldValue) => spanChanged(selectedWidget, colItem, colIdx, newValue, oldValue)"
15
+ class="cell-span-input"></el-input-number>
16
+ <el-button circle plain size="mini" type="danger" @click="deleteCol(selectedWidget, colIdx)"
17
+ icon="el-icon-minus" class="col-delete-button"></el-button>
18
+ </li>
19
+ <div>
20
+ <el-button type="text" @click="addNewCol(selectedWidget)" icon="el-icon-circle-plus-outline" class="add-option">{{i18nt('designer.setting.addColumn')}}</el-button>
21
+ </div>
22
+ </div>
23
+ </el-form-item>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ import i18n from "../../../../../../components/xform/utils/i18n"
29
+
30
+ export default {
31
+ name: "gutter-editor",
32
+ mixins: [i18n],
33
+ props: {
34
+ designer: Object,
35
+ selectedWidget: Object,
36
+ optionModel: Object,
37
+ },
38
+ methods: {
39
+ spanChanged(curGrid) {
40
+ let spanSum = 0
41
+ curGrid.cols.forEach((colItem) => {
42
+ spanSum += colItem.options.span
43
+ })
44
+ if (spanSum > 24) {
45
+ //this.$message.info('列栅格之和超出24')
46
+ console.log('列栅格之和超出24')
47
+ //TODO: 语言字符串资源化
48
+ }
49
+
50
+ this.designer.saveCurrentHistoryStep()
51
+ },
52
+
53
+ deleteCol(curGrid, colIdx) {
54
+ this.designer.deleteColOfGrid(curGrid, colIdx)
55
+ this.designer.emitHistoryChange()
56
+ },
57
+
58
+ addNewCol(curGrid) {
59
+ this.designer.addNewColOfGrid(curGrid)
60
+ this.designer.emitHistoryChange()
61
+ },
62
+
63
+ }
64
+ }
65
+ </script>
66
+
67
+ <style lang="scss" scoped>
68
+ li.col-item {
69
+ list-style: none;
70
+
71
+ span.col-span-title {
72
+ display: inline-block;
73
+ font-size: 13px;
74
+ width: 120px;
75
+ }
76
+
77
+ .col-delete-button {
78
+ margin-left: 6px;
79
+ }
80
+ }
81
+
82
+ </style>
@@ -212,7 +212,7 @@
212
212
  optionModel.dynamicSchemaMode !== 'anchor' ||
213
213
  !optionModel.dynamicSchemaInheritLayout
214
214
  "
215
- label="每行列数"
215
+ label="每行列数"
216
216
  class="el-form-item-second"
217
217
  >
218
218
  <el-input-number
@@ -309,13 +309,13 @@ export default {
309
309
 
310
310
  <style lang="scss" scoped>
311
311
  .form-section-label {
312
- margin: 16px 0 8px;
313
- padding-left: 8px;
314
- color: rgba(0, 0, 0, 0.65);
315
- font-size: 13px;
316
- font-weight: 600;
317
- line-height: 1.3;
318
- background: rgba(0, 0, 0, 0.04);
312
+ margin: 16px 0 8px;
313
+ padding-left: 8px;
314
+ color: rgba(0, 0, 0, 0.65);
315
+ font-size: 13px;
316
+ font-weight: 600;
317
+ line-height: 1.3;
318
+ background: rgba(0, 0, 0, 0.04);
319
319
  padding: 4px 0 4px 8px;
320
320
  }
321
321
 
@@ -1,137 +1,137 @@
1
- <template>
2
- <div>
3
- <el-form-item label-width="0">
4
- <el-divider class="custom-divider">下拉按钮设置</el-divider>
5
- </el-form-item>
6
- <el-form-item label="按钮样式" class="form-item-label-top">
7
- <el-select
8
- v-model="optionModel.dropdownType"
9
- placeholder="请选择按钮样式"
10
- >
11
- <el-option label="按钮" value="button"></el-option>
12
- <el-option label="链接" value="link"></el-option>
13
- </el-select>
14
- </el-form-item>
15
- <el-form-item label="下拉触发方式" class="form-item-label-top">
16
- <el-select
17
- v-model="optionModel.dropdownTrigger"
18
- placeholder="请选择下拉触发方式"
19
- >
20
- <el-option label="点击" value="click"></el-option>
21
- <el-option label="悬停" value="hover"></el-option>
22
- </el-select>
23
- </el-form-item>
24
- <el-form-item label="下拉按钮选项">
25
- <draggable
26
- tag="ul"
27
- class="draggable-box"
28
- >
29
- <li
30
- v-for="(colItem, colIdx) in selectedWidget.widgetList"
31
- :key="colIdx"
32
- class="col-item"
33
- >
34
- <i class="el-icon-s-operation drag-option"></i>
35
- <el-input
36
- v-model="colItem.options.label"
37
- class="cell-span-input"
38
- ></el-input>
39
- <el-button
40
- circle
41
- plain
42
- size="mini"
43
- type="button"
44
- icon="el-icon-edit"
45
- class="col-delete-button"
46
- style="position: unset"
47
- @click="openEditFormatConfigDialog(colItem, colIdx)"
48
- ></el-button>
49
- <el-button
50
- circle
51
- plain
52
- size="mini"
53
- type="danger"
54
- @click="deleteCol(selectedWidget, colIdx)"
55
- icon="el-icon-minus"
56
- class="col-delete-button"
57
- style="position: unset"
58
- ></el-button>
59
- </li>
60
- </draggable>
61
- <div>
62
- <el-button
63
- type="text"
64
- @click="addNewCol(selectedWidget)"
65
- icon="el-icon-circle-plus-outline"
66
- class="add-option"
67
- >
68
- 增加
69
- </el-button>
70
- </div>
71
- </el-form-item>
72
- </div>
73
- </template>
74
-
75
- <script>
76
- import Draggable from "vuedraggable";
77
- import i18n from "../../../utils/i18n";
78
- import { deepClone, generateId } from "../../../utils/util";
79
-
80
- export default {
81
- name: "dropdownFlag-editor",
82
- mixins: [i18n],
83
- components: {
84
- Draggable,
85
- },
86
- props: {
87
- designer: Object,
88
- selectedWidget: Object,
89
- optionModel: Object,
90
- },
91
- inject: ["openWidgetPropertyDialog"],
92
- methods: {
93
- deleteCol(gridWidget, colIdx) {
94
- if (!!gridWidget && !!gridWidget.widgetList) {
95
- gridWidget.widgetList.splice(colIdx, 1);
96
- }
97
- this.designer.emitHistoryChange();
98
- },
99
-
100
- addNewCol(gridWidget) {
101
- let newGridCol = deepClone(
102
- this.designer.getFieldWidgetByType("dropdown-item")
103
- );
104
- let tmpId = generateId();
105
- newGridCol.id = "dropdown-item-" + tmpId;
106
- newGridCol.options.name = "dropdownItem" + tmpId;
107
- newGridCol.options.label = "dropdownItem" + tmpId;
108
- gridWidget.widgetList.push(newGridCol);
109
- this.designer.emitHistoryChange();
110
- },
111
- openEditFormatConfigDialog(fieldWidget, index) {
112
- this.openWidgetPropertyDialog({
113
- columnSelectedWidget: deepClone(fieldWidget),
114
- callback: (columnSelectedWidget) => {
115
- fieldWidget.options = columnSelectedWidget.options;
116
- },
117
- });
118
- },
119
- },
120
- };
121
- </script>
122
-
123
- <style lang="scss" scoped>
124
- li.col-item {
125
- list-style: none;
126
-
127
- span.col-span-title {
128
- display: inline-block;
129
- font-size: 13px;
130
- width: 120px;
131
- }
132
-
133
- .col-delete-button {
134
- margin-left: 6px;
135
- }
136
- }
137
- </style>
1
+ <template>
2
+ <div>
3
+ <el-form-item label-width="0">
4
+ <el-divider class="custom-divider">下拉按钮设置</el-divider>
5
+ </el-form-item>
6
+ <el-form-item label="按钮样式" class="form-item-label-top">
7
+ <el-select
8
+ v-model="optionModel.dropdownType"
9
+ placeholder="请选择按钮样式"
10
+ >
11
+ <el-option label="按钮" value="button"></el-option>
12
+ <el-option label="链接" value="link"></el-option>
13
+ </el-select>
14
+ </el-form-item>
15
+ <el-form-item label="下拉触发方式" class="form-item-label-top">
16
+ <el-select
17
+ v-model="optionModel.dropdownTrigger"
18
+ placeholder="请选择下拉触发方式"
19
+ >
20
+ <el-option label="点击" value="click"></el-option>
21
+ <el-option label="悬停" value="hover"></el-option>
22
+ </el-select>
23
+ </el-form-item>
24
+ <el-form-item label="下拉按钮选项">
25
+ <draggable
26
+ tag="ul"
27
+ class="draggable-box"
28
+ >
29
+ <li
30
+ v-for="(colItem, colIdx) in selectedWidget.widgetList"
31
+ :key="colIdx"
32
+ class="col-item"
33
+ >
34
+ <i class="el-icon-s-operation drag-option"></i>
35
+ <el-input
36
+ v-model="colItem.options.label"
37
+ class="cell-span-input"
38
+ ></el-input>
39
+ <el-button
40
+ circle
41
+ plain
42
+ size="mini"
43
+ type="button"
44
+ icon="el-icon-edit"
45
+ class="col-delete-button"
46
+ style="position: unset"
47
+ @click="openEditFormatConfigDialog(colItem, colIdx)"
48
+ ></el-button>
49
+ <el-button
50
+ circle
51
+ plain
52
+ size="mini"
53
+ type="danger"
54
+ @click="deleteCol(selectedWidget, colIdx)"
55
+ icon="el-icon-minus"
56
+ class="col-delete-button"
57
+ style="position: unset"
58
+ ></el-button>
59
+ </li>
60
+ </draggable>
61
+ <div>
62
+ <el-button
63
+ type="text"
64
+ @click="addNewCol(selectedWidget)"
65
+ icon="el-icon-circle-plus-outline"
66
+ class="add-option"
67
+ >
68
+ 增加
69
+ </el-button>
70
+ </div>
71
+ </el-form-item>
72
+ </div>
73
+ </template>
74
+
75
+ <script>
76
+ import Draggable from "vuedraggable";
77
+ import i18n from "../../../utils/i18n";
78
+ import { deepClone, generateId } from "../../../utils/util";
79
+
80
+ export default {
81
+ name: "dropdownFlag-editor",
82
+ mixins: [i18n],
83
+ components: {
84
+ Draggable,
85
+ },
86
+ props: {
87
+ designer: Object,
88
+ selectedWidget: Object,
89
+ optionModel: Object,
90
+ },
91
+ inject: ["openWidgetPropertyDialog"],
92
+ methods: {
93
+ deleteCol(gridWidget, colIdx) {
94
+ if (!!gridWidget && !!gridWidget.widgetList) {
95
+ gridWidget.widgetList.splice(colIdx, 1);
96
+ }
97
+ this.designer.emitHistoryChange();
98
+ },
99
+
100
+ addNewCol(gridWidget) {
101
+ let newGridCol = deepClone(
102
+ this.designer.getFieldWidgetByType("dropdown-item")
103
+ );
104
+ let tmpId = generateId();
105
+ newGridCol.id = "dropdown-item-" + tmpId;
106
+ newGridCol.options.name = "dropdownItem" + tmpId;
107
+ newGridCol.options.label = "dropdownItem" + tmpId;
108
+ gridWidget.widgetList.push(newGridCol);
109
+ this.designer.emitHistoryChange();
110
+ },
111
+ openEditFormatConfigDialog(fieldWidget, index) {
112
+ this.openWidgetPropertyDialog({
113
+ columnSelectedWidget: deepClone(fieldWidget),
114
+ callback: (columnSelectedWidget) => {
115
+ fieldWidget.options = columnSelectedWidget.options;
116
+ },
117
+ });
118
+ },
119
+ },
120
+ };
121
+ </script>
122
+
123
+ <style lang="scss" scoped>
124
+ li.col-item {
125
+ list-style: none;
126
+
127
+ span.col-span-title {
128
+ display: inline-block;
129
+ font-size: 13px;
130
+ width: 120px;
131
+ }
132
+
133
+ .col-delete-button {
134
+ margin-left: 6px;
135
+ }
136
+ }
137
+ </style>