@bytenew/bn-bus-ui 1.1.463 → 1.1.464

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 (167) hide show
  1. package/dist/assocTableSearch-Bfe96864.js +349 -0
  2. package/dist/assocTableSearch.css +1 -0
  3. package/dist/bn-bus-ui.es.js +65 -0
  4. package/dist/bn-bus-ui.umd.js +49 -0
  5. package/dist/chooseIPaasData-COrrvQKZ.js +391 -0
  6. package/dist/chooseIPaasData.css +1 -0
  7. package/dist/defaultSet-CzN1ec_d.js +297 -0
  8. package/dist/defaultSet.css +1 -0
  9. package/dist/fileFormData-D_Q1vylE.js +53 -0
  10. package/dist/formItemFooter-BvptZj_u.js +108 -0
  11. package/dist/formItemFooter.css +1 -0
  12. package/dist/funcExprDialog-BguNs9fl.js +139 -0
  13. package/dist/funcExprDialog.css +1 -0
  14. package/dist/index-0oB7QocU.js +44 -0
  15. package/dist/index-69fRP0M8.js +89 -0
  16. package/dist/index-BdklTJtF.js +66 -0
  17. package/dist/index-Bu3jHlby.js +45 -0
  18. package/dist/index-BxWx5kpG.js +89 -0
  19. package/dist/index-C5LQ0OSs.js +183 -0
  20. package/dist/index-C8YhrrUN.js +51 -0
  21. package/dist/index-COuPCIzB.js +45 -0
  22. package/dist/index-CSvVyjxx.js +178 -0
  23. package/dist/index-DCv51EXX.js +109 -0
  24. package/dist/index-DUSI6MuC.js +135 -0
  25. package/dist/index-DVzxs2vR.js +58 -0
  26. package/dist/index-Dd4b8zNb.js +746 -0
  27. package/dist/index-Md-ZlkCW.js +66 -0
  28. package/dist/index-hsSIY2FP.js +221 -0
  29. package/dist/index-n13-H3_Y.js +118 -0
  30. package/dist/index-wUl5aPUD.js +64 -0
  31. package/dist/index.css +1 -0
  32. package/dist/index2.css +1 -0
  33. package/dist/index3.css +1 -0
  34. package/dist/index4.css +1 -0
  35. package/dist/index5.css +1 -0
  36. package/dist/index6.css +1 -0
  37. package/dist/index7.css +1 -0
  38. package/dist/install-CNjs0u5x.js +23299 -0
  39. package/dist/install.css +1 -0
  40. package/dist/setOption-CXOifQcx.js +329 -0
  41. package/dist/setOption.css +1 -0
  42. package/dist/setRelationOption-C7VDhej7.js +5217 -0
  43. package/dist/setRelationOption.css +1 -0
  44. package/package.json +4 -20
  45. package/install.js +0 -134
  46. package/packages/BnAddress/index.vue +0 -141
  47. package/packages/BnAddressParse/index.vue +0 -75
  48. package/packages/BnAdvancedFilter/BnFilterView.vue +0 -145
  49. package/packages/BnAdvancedFilter/index.vue +0 -345
  50. package/packages/BnAdvancedFilter/util.js +0 -171
  51. package/packages/BnCascader/BnCascader.vue +0 -543
  52. package/packages/BnCascader/BnCascaderPanel.vue +0 -1331
  53. package/packages/BnCascader/cascaderDisplay.js +0 -102
  54. package/packages/BnCheck/BnCheck.vue +0 -253
  55. package/packages/BnColumnConfig/columnConfigDialog.vue +0 -134
  56. package/packages/BnColumnConfig/component/childrenFormSetting/assocTable.vue +0 -143
  57. package/packages/BnColumnConfig/component/childrenFormSetting/assocTableSearch.vue +0 -314
  58. package/packages/BnColumnConfig/component/childrenFormSetting/index.vue +0 -243
  59. package/packages/BnColumnConfig/component/defaultSet/defaultSet.vue +0 -114
  60. package/packages/BnColumnConfig/component/defaultSet/stringDefault.vue +0 -210
  61. package/packages/BnColumnConfig/component/funcExprDialog/funcExprDialog.vue +0 -126
  62. package/packages/BnColumnConfig/component/packageFilter/index.vue +0 -141
  63. package/packages/BnColumnConfig/component/paraExplainSet/index.vue +0 -156
  64. package/packages/BnColumnConfig/component/setOption/setOption.vue +0 -321
  65. package/packages/BnColumnConfig/component/setRelationOption/ConditionList.vue +0 -277
  66. package/packages/BnColumnConfig/component/setRelationOption/LevelHeader.vue +0 -144
  67. package/packages/BnColumnConfig/component/setRelationOption/setRelationOption.vue +0 -642
  68. package/packages/BnColumnConfig/data.js +0 -129
  69. package/packages/BnColumnConfig/index.scss +0 -23
  70. package/packages/BnColumnConfig/index.vue +0 -309
  71. package/packages/BnCondVal/BnCondVal.vue +0 -112
  72. package/packages/BnCondVal/itemVal/dateRegVal.vue +0 -39
  73. package/packages/BnCondVal/itemVal/dateVal.vue +0 -39
  74. package/packages/BnCondVal/itemVal/numRegVal.vue +0 -67
  75. package/packages/BnCondVal/itemVal/numVal.vue +0 -44
  76. package/packages/BnCondVal/itemVal/relationVal.vue +0 -73
  77. package/packages/BnCondVal/itemVal/selectColumnVal.vue +0 -58
  78. package/packages/BnCondVal/itemVal/selectVal.vue +0 -59
  79. package/packages/BnCondVal/itemVal/stringVal.vue +0 -156
  80. package/packages/BnCondition/index.vue +0 -551
  81. package/packages/BnCondition/util.js +0 -232
  82. package/packages/BnDatePicker/BnDatePicker.vue +0 -194
  83. package/packages/BnDrop/BnDrop.vue +0 -917
  84. package/packages/BnEmptyTip/BnEmptyTip.vue +0 -107
  85. package/packages/BnExportOrder/BnExportOrder.vue +0 -241
  86. package/packages/BnExportOrder/validatorCode.vue +0 -94
  87. package/packages/BnFileView/BnFileView.vue +0 -271
  88. package/packages/BnFileView/FileDetail.vue +0 -125
  89. package/packages/BnFileView/videoPreview.vue +0 -70
  90. package/packages/BnFilterOption/BnFilterOption.vue +0 -160
  91. package/packages/BnFunExpr/BnFunExpr.vue +0 -608
  92. package/packages/BnImportOrder/BnImportOrder.vue +0 -323
  93. package/packages/BnImportTemplate/BnImportTemplate.vue +0 -866
  94. package/packages/BnImportTemplate/assets/merge_tip_img.png +0 -0
  95. package/packages/BnImportTemplate/assets/sheet_tip.png +0 -0
  96. package/packages/BnImportTemplate/assets/xls.png +0 -0
  97. package/packages/BnImportTemplate/components/ImportTemplateTrigger.vue +0 -198
  98. package/packages/BnImportTemplate/components/TemplateEditDialog.vue +0 -340
  99. package/packages/BnImportTemplate/components/TemplateFieldsConfig.vue +0 -401
  100. package/packages/BnImportTemplate/components/TemplateListDialog.vue +0 -297
  101. package/packages/BnInpNum/BnInpNum.vue +0 -165
  102. package/packages/BnMenus/BnMenus.vue +0 -502
  103. package/packages/BnMenus/MenuItem.vue +0 -321
  104. package/packages/BnOrderCard/BnOrderCard.vue +0 -389
  105. package/packages/BnOrderCard/orderRemark.vue +0 -178
  106. package/packages/BnOrderCard/util.js +0 -94
  107. package/packages/BnOrderDetail/BnOrderDetail.vue +0 -338
  108. package/packages/BnOrderDetail/filterLogByUser.vue +0 -108
  109. package/packages/BnOrderDetail/orderLogs.vue +0 -53
  110. package/packages/BnOrderDetail/showSubForm/index.vue +0 -41
  111. package/packages/BnOrderDetail/showSubForm/showChildTable.vue +0 -61
  112. package/packages/BnOrderDetail/showSubForm/showTimeLine.vue +0 -131
  113. package/packages/BnOrderDetail/showSubForm/tableCellCopy.vue +0 -84
  114. package/packages/BnOrderShare/index.vue +0 -378
  115. package/packages/BnOrderShare/shareUrlInp.vue +0 -54
  116. package/packages/BnRadio/BnRadio.vue +0 -181
  117. package/packages/BnRelation/BnRelation.vue +0 -120
  118. package/packages/BnSelect/BnSelect.vue +0 -485
  119. package/packages/BnSmartForm/BnBatchForm.vue +0 -334
  120. package/packages/BnSmartForm/BnBatchFormDialog.vue +0 -423
  121. package/packages/BnSmartForm/BnSmartElf/elfLog/index.vue +0 -57
  122. package/packages/BnSmartForm/BnSmartElf/index.vue +0 -95
  123. package/packages/BnSmartForm/BnSmartFormPsychic.js +0 -629
  124. package/packages/BnSmartForm/BnSmartFormUtil.js +0 -524
  125. package/packages/BnSmartForm/addressForm/index.vue +0 -73
  126. package/packages/BnSmartForm/checkboxForm/index.vue +0 -99
  127. package/packages/BnSmartForm/childrenForm/childFormFile.vue +0 -237
  128. package/packages/BnSmartForm/childrenForm/childrenFormBody.vue +0 -260
  129. package/packages/BnSmartForm/childrenForm/index.vue +0 -110
  130. package/packages/BnSmartForm/childrenForm/searchInventory.vue +0 -115
  131. package/packages/BnSmartForm/chooseAssocTable/chooseAssocTable.vue +0 -451
  132. package/packages/BnSmartForm/chooseAssocTable/chooseChildGood.vue +0 -229
  133. package/packages/BnSmartForm/chooseAssocTable/tableCellCopy.vue +0 -84
  134. package/packages/BnSmartForm/chooseChildOrder/chooseChildOrder.vue +0 -158
  135. package/packages/BnSmartForm/chooseIPaasData/chooseIPaasData.vue +0 -307
  136. package/packages/BnSmartForm/chooseIPaasData/tableCellCopy.vue +0 -84
  137. package/packages/BnSmartForm/choosePackage/choosePackage.vue +0 -361
  138. package/packages/BnSmartForm/dateDualForm/index.vue +0 -37
  139. package/packages/BnSmartForm/dateForm/index.vue +0 -38
  140. package/packages/BnSmartForm/fileForm/fileFormData.js +0 -50
  141. package/packages/BnSmartForm/fileForm/index.vue +0 -240
  142. package/packages/BnSmartForm/formItemFooter/formItemFooter.vue +0 -38
  143. package/packages/BnSmartForm/formItemTop/formItemTop.vue +0 -42
  144. package/packages/BnSmartForm/index.vue +0 -1201
  145. package/packages/BnSmartForm/numberForm/index.vue +0 -63
  146. package/packages/BnSmartForm/radioForm/index.vue +0 -72
  147. package/packages/BnSmartForm/receiveForm/index.vue +0 -112
  148. package/packages/BnSmartForm/relationForm/index.vue +0 -82
  149. package/packages/BnSmartForm/scoreForm/index.vue +0 -39
  150. package/packages/BnSmartForm/selectForm/index.vue +0 -55
  151. package/packages/BnSmartForm/showValForm/index.vue +0 -42
  152. package/packages/BnSmartForm/showValForm/showValFormTable.vue +0 -104
  153. package/packages/BnSmartForm/smartFormsCommon.scss +0 -43
  154. package/packages/BnSmartForm/stringForm/index.vue +0 -170
  155. package/packages/BnVirtPopover/index.vue +0 -319
  156. package/packages/BnWebLog/BnWebLog.vue +0 -140
  157. package/packages/BnWorkSettingDrop/advancedOptions.js +0 -112
  158. package/packages/BnWorkSettingDrop/benBenAIUtil.js +0 -89
  159. package/packages/BnWorkSettingDrop/index.vue +0 -292
  160. package/packages/font/iconfont.css +0 -243
  161. package/packages/font/iconfont.ttf +0 -0
  162. package/packages/font/iconfont.woff +0 -0
  163. package/packages/font/iconfont.woff2 +0 -0
  164. package/utils/addressParse-old.js +0 -645
  165. package/utils/addressParse.js +0 -735
  166. package/utils/config.js +0 -68
  167. package/utils/index.js +0 -1171
@@ -1,401 +0,0 @@
1
- <template>
2
- <div class="BnImportTemplate-fields" :class="{ 'is-no-key': importType !== 1 && importType !== 3 }">
3
- <el-input
4
- v-model="filterText"
5
- class="BnImportTemplate-field-filter"
6
- clearable
7
- placeholder="请输入字段名称"
8
- />
9
- <div class="BnImportTemplate-fields-content">
10
- <div class="BnImportTemplate-fields-header">
11
- <div class="BnImportTemplate-field-name">字段名称</div>
12
- <div class="BnImportTemplate-field-show">
13
- <BnCheck v-model="showAll" label="模板显示" @change="checkAllShow" />
14
- <el-tooltip content="不显示的字段,导入时会忽略该字段" placement="top">
15
- <span class="bnUIcon bnUIcon-question BnImportTemplate-help"></span>
16
- </el-tooltip>
17
- </div>
18
- <div class="BnImportTemplate-field-other">
19
- <BnCheck v-model="checkMustAll" label="必填" @change="checkAllCheckMust" />
20
- </div>
21
- <div v-show="importType === 1 || importType === 3" class="BnImportTemplate-field-other">
22
- <BnCheck v-model="keyAll" label="主键" @change="checkAllKey" />
23
- <el-tooltip
24
- content="导入创建时以所选主键进行工单合并;导入更新时以主键ID进行工单合并;子表单、子订单不可选为主键"
25
- placement="top"
26
- >
27
- <span class="bnUIcon bnUIcon-question BnImportTemplate-help"></span>
28
- </el-tooltip>
29
- </div>
30
- </div>
31
- <el-scrollbar class="BnImportTemplate-fields-scrollbar">
32
- <div class="BnImportTemplate-fields-content-view">
33
- <div v-for="item in columns" :key="item.columnId">
34
- <div
35
- v-show="(!filterText || item.columnName.indexOf(filterText) !== -1) && !(importType === 1 && item.columnId === 0)"
36
- class="BnImportTemplate-field-row"
37
- >
38
- <div
39
- class="BnImportTemplate-field-name"
40
- :class="{ 'is-leaf': item.behaviorType !== 13 }"
41
- @click="showOrCloseChildList(item)"
42
- >
43
- <span v-if="item.behaviorType === 13" class="BnImportTemplate-expand">
44
- {{ item.childOpen ? '▾' : '▸' }}
45
- </span>
46
- {{ item.columnName }}
47
- </div>
48
- <div class="BnImportTemplate-field-show">
49
- <BnCheck
50
- v-model="item.show"
51
- :disabled="importType !== 1 && item.columnId === 0"
52
- @change="itemCheckChange(item, 'show')"
53
- />
54
- </div>
55
- <div class="BnImportTemplate-field-other">
56
- <BnCheck
57
- v-model="item.checkMust"
58
- :disabled="importType !== 1 && item.columnId === 0"
59
- @change="itemCheckChange(item, 'checkMust')"
60
- />
61
- </div>
62
- <div v-show="importType === 1 || importType === 3" class="BnImportTemplate-field-other">
63
- <BnCheck
64
- v-model="item.key"
65
- :disabled="item.behaviorType === 13 || (importType !== 1 && item.columnId === 0) || !mergeCells"
66
- @change="itemCheckChange(item, 'key')"
67
- />
68
- </div>
69
- </div>
70
- <div v-if="item.childColumns && item.childOpen">
71
- <div
72
- v-for="childItem in item.childColumns"
73
- :key="childItem.columnId"
74
- class="BnImportTemplate-field-row is-child"
75
- >
76
- <div class="BnImportTemplate-field-name">{{ childItem.columnName }}</div>
77
- <div class="BnImportTemplate-field-show">
78
- <BnCheck v-model="childItem.show" @change="itemCheckChange(childItem, 'show')" />
79
- </div>
80
- <div class="BnImportTemplate-field-other">
81
- <BnCheck v-model="childItem.checkMust" @change="itemCheckChange(childItem, 'checkMust')" />
82
- </div>
83
- <div v-show="importType === 1 || importType === 3" class="BnImportTemplate-field-other">
84
- <BnCheck v-model="childItem.key" disabled />
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
- </div>
90
- </el-scrollbar>
91
- </div>
92
- </div>
93
- </template>
94
-
95
- <script>
96
- // 字段配置区只负责渲染字段树和收集用户操作。
97
- // “模板显示/必填/主键”的父子联动规则在父组件中处理,避免这里同时承担复杂业务状态计算。
98
- export default {
99
- name: "TemplateFieldsConfig",
100
- props: {
101
- // 父组件维护的字段配置树,包含普通字段和子表单 childColumns。
102
- columns: {
103
- type: Array,
104
- default() {
105
- return [];
106
- },
107
- },
108
- // 字段名称过滤关键字,对应顶部搜索框。
109
- filterVar: {
110
- type: String,
111
- default: "",
112
- },
113
- // “模板显示”表头复选框状态。
114
- allShow: {
115
- type: Boolean,
116
- default: false,
117
- },
118
- // “必填”表头复选框状态。
119
- allCheckMust: {
120
- type: Boolean,
121
- default: false,
122
- },
123
- // “主键”表头复选框状态。
124
- allKey: {
125
- type: Boolean,
126
- default: false,
127
- },
128
- // 导入方式:1 新增、2 更新、3 更新和新增;用于控制主键ID和主键列可编辑状态。
129
- importType: {
130
- type: Number,
131
- default: 1,
132
- },
133
- // 是否开启多行合并导入;关闭时主键列不可勾选。
134
- mergeCells: {
135
- type: Boolean,
136
- default: false,
137
- },
138
- },
139
- emits: [
140
- "update:filterVar",
141
- "update:allShow",
142
- "update:allCheckMust",
143
- "update:allKey",
144
- "checkAllShow",
145
- "checkAllCheckMust",
146
- "checkAllKey",
147
- "itemCheckChange",
148
- "toggleChild",
149
- ],
150
- computed: {
151
- /**
152
- * 字段过滤关键字的 v-model 代理,输入框变化时同步给父组件。
153
- *
154
- * @return 当前字段过滤关键字。
155
- */
156
- filterText: {
157
- get() {
158
- return this.filterVar;
159
- },
160
- set(val) {
161
- this.$emit("update:filterVar", val);
162
- },
163
- },
164
- /**
165
- * “模板显示”表头全选状态代理,真实批量逻辑由父组件执行。
166
- *
167
- * @return 当前“模板显示”表头是否全选。
168
- */
169
- showAll: {
170
- get() {
171
- return this.allShow;
172
- },
173
- set(val) {
174
- this.$emit("update:allShow", val);
175
- },
176
- },
177
- /**
178
- * “必填校验”表头全选状态代理,真实批量逻辑由父组件执行。
179
- *
180
- * @return 当前“必填校验”表头是否全选。
181
- */
182
- checkMustAll: {
183
- get() {
184
- return this.allCheckMust;
185
- },
186
- set(val) {
187
- this.$emit("update:allCheckMust", val);
188
- },
189
- },
190
- /**
191
- * “相同合并主键”表头全选状态代理,真实批量逻辑由父组件执行。
192
- *
193
- * @return 当前“相同合并主键”表头是否全选。
194
- */
195
- keyAll: {
196
- get() {
197
- return this.allKey;
198
- },
199
- set(val) {
200
- this.$emit("update:allKey", val);
201
- },
202
- },
203
- },
204
- methods: {
205
- /**
206
- * 通知父组件批量切换所有字段的“模板显示”状态。
207
- *
208
- * @return 无返回值。
209
- */
210
- checkAllShow() {
211
- this.$emit("checkAllShow");
212
- },
213
- /**
214
- * 通知父组件批量切换所有字段的“必填校验”状态。
215
- *
216
- * @return 无返回值。
217
- */
218
- checkAllCheckMust() {
219
- this.$emit("checkAllCheckMust");
220
- },
221
- /**
222
- * 通知父组件批量切换所有可选字段的“相同合并主键”状态。
223
- *
224
- * @return 无返回值。
225
- */
226
- checkAllKey() {
227
- this.$emit("checkAllKey");
228
- },
229
- /**
230
- * 将单个字段的勾选变化转发给父组件处理父子联动和表头全选状态。
231
- *
232
- * @param item 当前发生勾选变化的字段配置项。
233
- * @param type 勾选类型,可取 show、checkMust、key。
234
- * @return 无返回值。
235
- */
236
- itemCheckChange(item, type) {
237
- this.$emit("itemCheckChange", item, type);
238
- },
239
- /**
240
- * 通知父组件展开或收起当前子表单字段列表。
241
- *
242
- * @param item 当前点击的字段配置项。
243
- * @return 无返回值。
244
- */
245
- showOrCloseChildList(item) {
246
- this.$emit("toggleChild", item);
247
- },
248
- },
249
- };
250
- </script>
251
-
252
- <style scoped lang="scss">
253
- .BnImportTemplate {
254
- &-fields {
255
- --BnImportTemplate-fields-grid: minmax(220px, 1fr) 128px 128px 128px;
256
-
257
- padding: 12px 14px 14px;
258
- border: 1px solid #e6edf5;
259
- border-radius: 6px;
260
- background: linear-gradient(180deg, #fbfdff 0%, #ffffff 42%);
261
- box-shadow: 0 8px 24px rgba(31, 45, 61, 0.06);
262
-
263
- &.is-no-key {
264
- --BnImportTemplate-fields-grid: minmax(220px, 1fr) 128px 128px;
265
- }
266
- }
267
-
268
- &-field-filter {
269
- max-width: 360px;
270
- height: 32px;
271
- margin-bottom: 16px;
272
-
273
- :deep(.el-input__wrapper) {
274
- border-radius: 3px;
275
- box-shadow: 0 0 0 1px #dfe6ee inset;
276
- }
277
-
278
- :deep(.el-input__wrapper.is-focus) {
279
- box-shadow: 0 0 0 1px #409eff inset;
280
- }
281
- }
282
-
283
- &-fields-header,
284
- &-field-row {
285
- display: grid;
286
- grid-template-columns: var(--BnImportTemplate-fields-grid);
287
- align-items: center;
288
- min-height: 40px;
289
- }
290
-
291
- &-fields-header {
292
- border-bottom: 1px solid #dce7f3;
293
- background: linear-gradient(180deg, #eef6ff 0%, #e7f0fb 100%);
294
- color: #1f2d3d;
295
- font-size: 13px;
296
- font-weight: 600;
297
- flex-shrink: 0;
298
- padding-right: 14px;
299
- }
300
-
301
- &-fields-content {
302
- display: flex;
303
- flex-direction: column;
304
- height: 400px;
305
- border: 1px solid #dce7f3;
306
- border-radius: 4px;
307
- background: #fff;
308
- overflow: hidden;
309
- }
310
-
311
- &-fields-scrollbar {
312
- flex: 1;
313
- min-height: 0;
314
-
315
- :deep(.el-scrollbar__wrap) {
316
- scrollbar-gutter: auto;
317
- scrollbar-width: none;
318
- }
319
-
320
- :deep(.el-scrollbar__wrap::-webkit-scrollbar) {
321
- display: none;
322
- width: 0;
323
- height: 0;
324
- }
325
-
326
- :deep(.el-scrollbar__view) {
327
- min-width: 100%;
328
- }
329
- }
330
-
331
- &-field-row {
332
- min-height: 36px;
333
- border-bottom: 1px solid #edf1f6;
334
- color: #1f2d3d;
335
- font-size: 13px;
336
-
337
- &:hover {
338
- background-color: #f7fbff;
339
- }
340
-
341
- &.is-child {
342
- .BnImportTemplate-field-name {
343
- padding-left: 42px;
344
- }
345
- }
346
- }
347
-
348
- &-field-name {
349
- min-width: 0;
350
- padding: 0 16px;
351
- text-overflow: ellipsis;
352
- overflow: hidden;
353
- word-break: break-all;
354
- white-space: nowrap;
355
- cursor: pointer;
356
-
357
- &.is-leaf {
358
- padding-left: 16px;
359
- cursor: auto;
360
- }
361
- }
362
-
363
- &-field-show {
364
- box-sizing: border-box;
365
- display: flex;
366
- align-items: center;
367
- justify-content: flex-start;
368
- min-width: 0;
369
- padding-left: 24px;
370
- }
371
-
372
- &-field-other {
373
- box-sizing: border-box;
374
- display: flex;
375
- align-items: center;
376
- justify-content: flex-start;
377
- min-width: 0;
378
- padding-left: 24px;
379
- }
380
-
381
- &-expand {
382
- display: inline-block;
383
- width: 14px;
384
- }
385
-
386
- &-help {
387
- display: inline-flex;
388
- align-items: center;
389
- justify-content: center;
390
- width: 16px;
391
- height: 16px;
392
- color: #8a97a8;
393
- font-size: 16px;
394
- cursor: help;
395
-
396
- &:hover {
397
- color: #409eff;
398
- }
399
- }
400
- }
401
- </style>
@@ -1,297 +0,0 @@
1
- <template>
2
- <el-dialog
3
- v-model="visible"
4
- width="960px"
5
- top="48px"
6
- class="BnImportTemplate-dialog"
7
- title="自定义导入模板管理"
8
- destroy-on-close
9
- :close-on-click-modal="false"
10
- >
11
- <div class="BnImportTemplate-list" v-loading="loading">
12
- <div class="BnImportTemplate-list-top">
13
- <div class="BnImportTemplate-list-title">
14
- <span class="BnImportTemplate-list-dot"></span>
15
- <span>模板列表</span>
16
- </div>
17
- <el-button class="BnImportTemplate-add-btn" type="primary" size="small" @click="$emit('addTemplate')">
18
- 新建
19
- </el-button>
20
- </div>
21
- <el-table
22
- :data="modalListData"
23
- border
24
- size="small"
25
- max-height="360"
26
- class="BnImportTemplate-table"
27
- style="width: 100%"
28
- >
29
- <template #empty>
30
- <div class="BnImportTemplate-empty">暂无数据</div>
31
- </template>
32
- <el-table-column prop="templateName" label="模板名称" min-width="180" show-overflow-tooltip/>
33
- <el-table-column prop="sheetName" label="Sheet名称" min-width="160" show-overflow-tooltip/>
34
- <el-table-column prop="gmtCreate" label="创建时间" width="170" show-overflow-tooltip/>
35
- <el-table-column prop="gmtModify" label="更新时间" width="170" show-overflow-tooltip/>
36
- <el-table-column label="操作" width="170" fixed="right">
37
- <template #default="{ row }">
38
- <div class="BnImportTemplate-actions">
39
- <el-button link type="primary" @click="$emit('editTemplate', row)">编辑</el-button>
40
- <el-button link type="primary" @click="$emit('copyTemplate', row)">复制</el-button>
41
- <el-button link type="danger" @click="$emit('deleteTemplate', row)">删除</el-button>
42
- </div>
43
- </template>
44
- </el-table-column>
45
- </el-table>
46
- <div class="BnImportTemplate-pagination">
47
- <el-pagination
48
- v-model:current-page="currentPage"
49
- v-model:page-size="currentPageSize"
50
- :page-sizes="[10, 20, 40, 80]"
51
- layout="total, sizes, prev, pager, next, jumper"
52
- :total="total"
53
- @current-change="$emit('pageChange')"
54
- @size-change="$emit('sizeChange', 1)"
55
- />
56
- </div>
57
- </div>
58
- </el-dialog>
59
- </template>
60
-
61
- <script>
62
- // 自定义模板管理列表只管理表格、分页和操作入口。
63
- // 列表查询、删除确认、复制刷新等业务状态都放在父组件,保证弹窗组件可复用且没有接口依赖。
64
- export default {
65
- name: "TemplateListDialog",
66
- props: {
67
- // 父组件控制的模板管理弹窗显隐状态,对应 v-model。
68
- modelValue: {
69
- type: Boolean,
70
- default: false,
71
- },
72
- // 当前页模板列表数据,由父组件请求后传入表格。
73
- modalListData: {
74
- type: Array,
75
- default() {
76
- return [];
77
- },
78
- },
79
- // 列表加载状态,由父组件在请求模板列表时控制。
80
- loading: {
81
- type: Boolean,
82
- default: false,
83
- },
84
- // 当前页码,对应分页组件 current-page。
85
- pageNum: {
86
- type: Number,
87
- default: 1,
88
- },
89
- // 每页条数,对应分页组件 page-size。
90
- pageSize: {
91
- type: Number,
92
- default: 10,
93
- },
94
- // 后端返回的模板总数,用于分页总条数展示。
95
- total: {
96
- type: Number,
97
- default: 0,
98
- },
99
- },
100
- emits: [
101
- "update:modelValue",
102
- "update:pageNum",
103
- "update:pageSize",
104
- "addTemplate",
105
- "editTemplate",
106
- "copyTemplate",
107
- "deleteTemplate",
108
- "pageChange",
109
- "sizeChange",
110
- ],
111
- computed: {
112
- /**
113
- * 管理弹窗显隐状态的 v-model 代理,变化时同步给父组件。
114
- *
115
- * @return 当前弹窗是否显示。
116
- */
117
- visible: {
118
- get() {
119
- return this.modelValue;
120
- },
121
- set(val) {
122
- this.$emit("update:modelValue", val);
123
- },
124
- },
125
- /**
126
- * 分页当前页码的 v-model 代理,供父组件持有真实页码。
127
- *
128
- * @return 当前分页页码。
129
- */
130
- currentPage: {
131
- get() {
132
- return this.pageNum;
133
- },
134
- set(val) {
135
- this.$emit("update:pageNum", val);
136
- },
137
- },
138
- /**
139
- * 分页每页条数的 v-model 代理,供父组件持有真实 pageSize。
140
- *
141
- * @return 当前每页条数。
142
- */
143
- currentPageSize: {
144
- get() {
145
- return this.pageSize;
146
- },
147
- set(val) {
148
- this.$emit("update:pageSize", val);
149
- },
150
- },
151
- },
152
- };
153
- </script>
154
-
155
- <style scoped lang="scss">
156
- :deep(.BnImportTemplate-dialog) {
157
- border-radius: 2px;
158
-
159
- .el-dialog__header {
160
- display: flex;
161
- align-items: center;
162
- min-height: 48px;
163
- padding: 0 18px;
164
- margin-right: 0;
165
- border-bottom: 1px solid #e5eaf3;
166
- }
167
-
168
- .el-dialog__title {
169
- color: #1f2d3d;
170
- font-size: 15px;
171
- font-weight: 600;
172
- line-height: 48px;
173
- }
174
-
175
- .el-dialog__headerbtn {
176
- top: 0;
177
- width: 48px;
178
- height: 48px;
179
- }
180
-
181
- .el-dialog__body {
182
- padding: 0;
183
- background: #fff;
184
- }
185
- }
186
-
187
- .BnImportTemplate {
188
- &-list {
189
- min-height: 430px;
190
- padding: 12px;
191
- background: #fff;
192
- }
193
-
194
- &-list-top {
195
- display: flex;
196
- align-items: center;
197
- justify-content: space-between;
198
- height: 42px;
199
- padding-bottom: 10px;
200
- border-bottom: 1px solid #e5eaf3;
201
- }
202
-
203
- &-list-title {
204
- display: inline-flex;
205
- align-items: center;
206
- color: #1f2d3d;
207
- font-size: 13px;
208
- font-weight: 600;
209
- }
210
-
211
- &-list-dot {
212
- width: 3px;
213
- height: 14px;
214
- margin-right: 8px;
215
- border-radius: 1px;
216
- background: #409eff;
217
- }
218
-
219
- &-add-btn {
220
- min-width: 60px;
221
- height: 32px;
222
- padding: 0 16px;
223
- border-color: #409eff;
224
- border-radius: 3px;
225
- background: #409eff;
226
- font-weight: 600;
227
- }
228
-
229
- &-empty {
230
- padding: 52px 0;
231
- color: #8a97a8;
232
- font-size: 13px;
233
- }
234
-
235
- &-table {
236
- margin-top: 10px;
237
- color: #1f2d3d;
238
-
239
- :deep(.el-table__header th) {
240
- height: 36px;
241
- padding: 0;
242
- background: #edf4fc;
243
- color: #1f2d3d;
244
- font-size: 13px;
245
- font-weight: 600;
246
- }
247
-
248
- :deep(.el-table__cell) {
249
- height: 36px;
250
- padding: 0 0;
251
- border-color: #e4eaf2;
252
- }
253
-
254
- :deep(.cell) {
255
- padding: 0 8px;
256
- line-height: 36px;
257
- }
258
-
259
- :deep(.el-table__row:hover > td.el-table__cell) {
260
- background: #f7fbff;
261
- }
262
- }
263
-
264
- &-actions {
265
- display: inline-flex;
266
- align-items: center;
267
- gap: 10px;
268
-
269
- :deep(.el-button) {
270
- margin-left: 0;
271
- padding: 0;
272
- font-size: 12px;
273
- font-weight: 500;
274
- }
275
- }
276
-
277
- &-pagination {
278
- display: flex;
279
- justify-content: flex-end;
280
- margin-top: 12px;
281
- padding-top: 10px;
282
- border-top: 1px solid #edf1f6;
283
-
284
- :deep(.el-pagination) {
285
- --el-pagination-button-width: 28px;
286
- --el-pagination-button-height: 28px;
287
- --el-pagination-font-size: 12px;
288
- color: #3f4b5f;
289
- }
290
-
291
- :deep(.el-pagination .el-select .el-input) {
292
- width: 100px;
293
- }
294
- }
295
-
296
- }
297
- </style>