cloud-web-corejs 1.0.54-dev.797 → 1.0.54-dev.799

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 (187) hide show
  1. package/package.json +3 -1
  2. package/src/components/baseTabs/mixins.js +11 -12
  3. package/src/components/bizTab/BizBillActions.vue +129 -0
  4. package/src/components/bizTab/BizTabListPage.vue +391 -0
  5. package/src/components/bizTab/README.md +378 -0
  6. package/src/components/bizTab/billTableUtil.js +48 -0
  7. package/src/components/bizTab/billValidators.js +136 -0
  8. package/src/components/bizTab/bizBillDetailMixin.js +687 -0
  9. package/src/components/bizTab/index.js +24 -0
  10. package/src/components/excelExport/exportFieldDialog.vue +373 -367
  11. package/src/components/excelExport/exportType.js +49 -0
  12. package/src/components/excelExport/mixins.js +1153 -1141
  13. package/src/components/vb-tabs/x-tabs.vue +167 -143
  14. package/src/components/wf/wfUtil.js +327 -292
  15. package/src/components/xform/form-designer/designer.js +56 -8
  16. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +59 -5
  17. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +60 -8
  18. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +8 -2
  19. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +120 -92
  20. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +63 -94
  21. package/src/components/xform/form-designer/index.vue +0 -1
  22. package/src/components/xform/form-designer/setting-panel/dataSource-setting.vue +397 -397
  23. package/src/components/xform/form-designer/setting-panel/form-dynamicField-setting.vue +602 -602
  24. package/src/components/xform/form-designer/setting-panel/form-setting.vue +13 -13
  25. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +585 -585
  26. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +1 -1
  27. package/src/components/xform/form-designer/setting-panel/property-editor/a-text-editor.vue +1 -1
  28. package/src/components/xform/form-designer/setting-panel/property-editor/alignType-editor.vue +1 -1
  29. package/src/components/xform/form-designer/setting-panel/property-editor/censusClass-editor.vue +1 -1
  30. package/src/components/xform/form-designer/setting-panel/property-editor/colorClass-editor.vue +1 -1
  31. package/src/components/xform/form-designer/setting-panel/property-editor/commonAttributeEnabled-editor.vue +3 -3
  32. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +1154 -1154
  33. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +96 -80
  34. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail-plain/detail-plain-editor.vue +75 -75
  35. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/colHeight-editor.vue +1 -1
  36. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +1 -1
  37. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-height-editor.vue +1 -1
  38. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-offset-editor.vue +1 -1
  39. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-pull-editor.vue +1 -1
  40. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-push-editor.vue +1 -1
  41. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid-col/grid-col-span-editor.vue +4 -4
  42. package/src/components/xform/form-designer/setting-panel/property-editor/container-h5-card/h5-card-editor.vue +124 -124
  43. package/src/components/xform/form-designer/setting-panel/property-editor/container-panel/height-editor.vue +1 -1
  44. package/src/components/xform/form-designer/setting-panel/property-editor/container-panel/width-editor.vue +1 -1
  45. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue +119 -119
  46. package/src/components/xform/form-designer/setting-panel/property-editor/container-tab/tabClass-editor.vue +45 -45
  47. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +344 -344
  48. package/src/components/xform/form-designer/setting-panel/property-editor/container-table-cell/cellHeight-editor.vue +1 -1
  49. package/src/components/xform/form-designer/setting-panel/property-editor/container-table-cell/cellWidth-editor.vue +1 -1
  50. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree/tree-customClass-editor.vue +2 -2
  51. package/src/components/xform/form-designer/setting-panel/property-editor/container-tree-pane/tree-pane-editor.vue +1 -1
  52. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonLabel-editor.vue +1 -1
  53. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/okButtonLabel-editor.vue +1 -1
  54. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/title-editor.vue +1 -1
  55. package/src/components/xform/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue +1 -1
  56. package/src/components/xform/form-designer/setting-panel/property-editor/containerClass-editor.vue +1 -1
  57. package/src/components/xform/form-designer/setting-panel/property-editor/customClass-editor.vue +1 -1
  58. package/src/components/xform/form-designer/setting-panel/property-editor/defaultValue-editor.vue +1 -1
  59. package/src/components/xform/form-designer/setting-panel/property-editor/descriptionsItems-editor.vue +4 -4
  60. package/src/components/xform/form-designer/setting-panel/property-editor/downloadButtonFlag-editor.vue +3 -3
  61. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +2 -2
  62. package/src/components/xform/form-designer/setting-panel/property-editor/dsName-editor.vue +1 -1
  63. package/src/components/xform/form-designer/setting-panel/property-editor/echartHeight-editor.vue +1 -1
  64. package/src/components/xform/form-designer/setting-panel/property-editor/endPlaceholder-editor.vue +1 -1
  65. package/src/components/xform/form-designer/setting-panel/property-editor/field-accessUrl/accessUrl-editor.vue +2 -2
  66. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaDataType-editor.vue +1 -1
  67. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaMinLevel-editor.vue +50 -50
  68. package/src/components/xform/form-designer/setting-panel/property-editor/field-area-select/areaName-editor.vue +1 -1
  69. package/src/components/xform/form-designer/setting-panel/property-editor/field-autocomplete/autocomplete-vabSearchName-editor.vue +7 -7
  70. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/addTableData-event-editor.vue +84 -84
  71. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/button-type-editor.vue +1 -1
  72. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/clickBindEvent-editor.vue +97 -97
  73. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/form-host-event-editor.vue +188 -188
  74. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -237
  75. package/src/components/xform/form-designer/setting-panel/property-editor/field-common/keyName-editor.vue +74 -67
  76. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-dateLimit-editor.vue +4 -4
  77. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +1 -1
  78. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-format-editor.vue +1 -1
  79. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-type-editor.vue +1 -1
  80. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-valueFormat-editor.vue +1 -1
  81. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +1 -1
  82. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +1 -1
  83. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-format-editor.vue +1 -1
  84. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-type-editor.vue +1 -1
  85. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-valueFormat-editor.vue +1 -1
  86. package/src/components/xform/form-designer/setting-panel/property-editor/field-divider/contentPosition-editor.vue +1 -1
  87. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -59
  88. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +11 -11
  89. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +10 -10
  90. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-pie-editor.vue +12 -12
  91. package/src/components/xform/form-designer/setting-panel/property-editor/field-file-upload/file-upload-fileTypes-editor.vue +44 -44
  92. package/src/components/xform/form-designer/setting-panel/property-editor/field-html-text/htmlContent-editor.vue +29 -29
  93. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +6 -6
  94. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +3 -3
  95. package/src/components/xform/form-designer/setting-panel/property-editor/field-number/controlsPosition-editor.vue +1 -1
  96. package/src/components/xform/form-designer/setting-panel/property-editor/field-picture-upload/picture-upload-fileTypes-editor.vue +44 -44
  97. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +115 -115
  98. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +115 -115
  99. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/highThreshold-editor.vue +1 -1
  100. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/lowThreshold-editor.vue +1 -1
  101. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-defaultValue-editor.vue +1 -1
  102. package/src/components/xform/form-designer/setting-panel/property-editor/field-rate/rate-max-editor.vue +1 -1
  103. package/src/components/xform/form-designer/setting-panel/property-editor/field-script/script-editor.vue +4 -4
  104. package/src/components/xform/form-designer/setting-panel/property-editor/field-script-input/script-input-editor.vue +4 -4
  105. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/fontSize-editor.vue +1 -1
  106. package/src/components/xform/form-designer/setting-panel/property-editor/field-static-text/textContent-editor.vue +1 -1
  107. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +3 -3
  108. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/activeText-editor.vue +1 -1
  109. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/inactiveText-editor.vue +1 -1
  110. package/src/components/xform/form-designer/setting-panel/property-editor/field-switch/switchWidth-editor.vue +1 -1
  111. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-button-editor.vue +2 -2
  112. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +74 -71
  113. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/table-export-button-editor.vue +3 -3
  114. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +1 -1
  115. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-format-editor.vue +1 -1
  116. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-timeLimit-editor.vue +1 -1
  117. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +1 -1
  118. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-format-editor.vue +1 -1
  119. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchField-editor.vue +2 -2
  120. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +2 -2
  121. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload/field-vabUpload-editor.vue +1 -1
  122. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload2/field-vabUpload2-editor.vue +1 -1
  123. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +2 -2
  124. package/src/components/xform/form-designer/setting-panel/property-editor/fileMaxSize-editor.vue +1 -1
  125. package/src/components/xform/form-designer/setting-panel/property-editor/fileTypesSelect.vue +176 -176
  126. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +2 -1
  127. package/src/components/xform/form-designer/setting-panel/property-editor/formatType-editor.vue +2 -2
  128. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +972 -972
  129. package/src/components/xform/form-designer/setting-panel/property-editor/iconClass-editor.vue +1 -1
  130. package/src/components/xform/form-designer/setting-panel/property-editor/label-editor.vue +1 -1
  131. package/src/components/xform/form-designer/setting-panel/property-editor/labelAlign-editor.vue +1 -1
  132. package/src/components/xform/form-designer/setting-panel/property-editor/labelColor-editor.vue +1 -1
  133. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +1 -1
  134. package/src/components/xform/form-designer/setting-panel/property-editor/labelWidth-editor.vue +1 -1
  135. package/src/components/xform/form-designer/setting-panel/property-editor/limit-editor.vue +1 -1
  136. package/src/components/xform/form-designer/setting-panel/property-editor/max-editor.vue +1 -1
  137. package/src/components/xform/form-designer/setting-panel/property-editor/maxLength-editor.vue +1 -1
  138. package/src/components/xform/form-designer/setting-panel/property-editor/min-editor.vue +1 -1
  139. package/src/components/xform/form-designer/setting-panel/property-editor/minLength-editor.vue +1 -1
  140. package/src/components/xform/form-designer/setting-panel/property-editor/multipleLimit-editor.vue +1 -1
  141. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +178 -178
  142. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +3 -3
  143. package/src/components/xform/form-designer/setting-panel/property-editor/placeholder-editor.vue +1 -1
  144. package/src/components/xform/form-designer/setting-panel/property-editor/precision-editor.vue +1 -1
  145. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +6 -6
  146. package/src/components/xform/form-designer/setting-panel/property-editor/requiredHint-editor.vue +1 -1
  147. package/src/components/xform/form-designer/setting-panel/property-editor/rows-editor.vue +1 -1
  148. package/src/components/xform/form-designer/setting-panel/property-editor/space-editor-editor.vue +1 -1
  149. package/src/components/xform/form-designer/setting-panel/property-editor/startPlaceholder-editor.vue +1 -1
  150. package/src/components/xform/form-designer/setting-panel/property-editor/step-editor.vue +1 -1
  151. package/src/components/xform/form-designer/setting-panel/property-editor/styleTableClass-editor.vue +1 -1
  152. package/src/components/xform/form-designer/setting-panel/property-editor/styleTitClass-editor.vue +1 -1
  153. package/src/components/xform/form-designer/setting-panel/property-editor/tempStorage-editor.vue +1 -1
  154. package/src/components/xform/form-designer/setting-panel/property-editor/type-editor.vue +1 -1
  155. package/src/components/xform/form-designer/setting-panel/property-editor/uploadTip-editor.vue +1 -1
  156. package/src/components/xform/form-designer/setting-panel/property-editor/uploadURL-editor.vue +1 -1
  157. package/src/components/xform/form-designer/setting-panel/property-editor/urlValueEnabled-editor.vue +91 -0
  158. package/src/components/xform/form-designer/setting-panel/property-editor/validation-editor.vue +1 -1
  159. package/src/components/xform/form-designer/setting-panel/property-editor/validationHint-editor.vue +1 -1
  160. package/src/components/xform/form-designer/setting-panel/property-editor/widgetWidth-editor.vue +1 -1
  161. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +1 -0
  162. package/src/components/xform/form-designer/widget-panel/index.vue +3 -1
  163. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +55 -13
  164. package/src/components/xform/form-render/container-item/data-table-mixin copy.js +5910 -0
  165. package/src/components/xform/form-render/container-item/data-table-mixin.js +59 -13
  166. package/src/components/xform/form-render/container-item/detail-item.vue +52 -11
  167. package/src/components/xform/form-render/container-item/tab-item.vue +6 -2
  168. package/src/components/xform/form-render/indexMixin.js +56 -16
  169. package/src/components/xform/lang/zh-CN.js +2 -1
  170. package/src/components/xform/utils/attachmentValueUtil.js +239 -0
  171. package/src/components/xform/utils/util.js +27 -0
  172. package/src/mixins/wf/index.js +40 -38
  173. package/src/router/modules/customer.js +50 -0
  174. package/src/store/config/index.js +46 -0
  175. package/src/utils/scrollUtil.js +25 -0
  176. package/src/views/demo/bizTab/bill/billConfig.js +41 -0
  177. package/src/views/demo/bizTab/bill/detail.vue +436 -0
  178. package/src/views/demo/bizTab/bill/list.vue +288 -0
  179. package/src/views/demo/bizTab/bill/productDialog.vue +176 -0
  180. package/src/views/demo/bizTab/simple/billApi.js +123 -0
  181. package/src/views/demo/bizTab/simple/detail.vue +407 -0
  182. package/src/views/demo/bizTab/simple/list.vue +217 -0
  183. package/src/views/demo/bizTab/standalone/index.vue +121 -0
  184. package/src/views/demo/bizTab/wf/billConfig.js +44 -0
  185. package/src/views/demo/bizTab/wf/detail.vue +661 -0
  186. package/src/views/demo/bizTab/wf/list.vue +242 -0
  187. package/src/views/user/outLink/cc_form_view.vue +185 -0
@@ -1,176 +1,176 @@
1
- <template>
2
- <!-- 分类勾选行放不进 120px 标签剩下的宽度里,故整块用 label-width="0" 占满属性面板 -->
3
- <el-form-item class="file-types-item" label-width="0">
4
- <div class="file-types-title">{{i18nt('designer.setting.fileTypes')}}
5
- <el-tooltip effect="light" :content="i18nt('designer.setting.fileTypesCategoryHelp')">
6
- <i class="el-icon-info"></i></el-tooltip>
7
- </div>
8
- <div class="file-types-category">
9
- <el-checkbox v-for="category in fileTypeCategories"
10
- :key="category.value"
11
- :value="isCategoryChecked(category)"
12
- :indeterminate="isCategoryIndeterminate(category)"
13
- @change="toggleCategory(category, $event)">{{ category.label }}</el-checkbox>
14
- </div>
15
- <div class="file-types-select">
16
- <el-select ref="fileTypesSelect" multiple allow-create filterable default-first-option clearable
17
- popper-class="file-types-select-dropdown"
18
- :placeholder="i18nt('designer.setting.fileTypesPlaceholder')"
19
- v-model="selectedFileTypes" style="width: 100%">
20
- <el-option-group v-for="category in fileTypeCategories"
21
- :key="category.value"
22
- :label="category.label">
23
- <el-option v-for="fileType in category.types"
24
- :key="fileType"
25
- :label="fileType"
26
- :value="fileType">
27
- </el-option>
28
- </el-option-group>
29
- </el-select>
30
- </div>
31
- </el-form-item>
32
- </template>
33
-
34
- <script>
35
- import i18n from "../../../../../components/xform/utils/i18n"
36
- import fileTypesEditorMixin from "./fileTypesEditorMixin"
37
-
38
- export default {
39
- name: "file-types-select",
40
- mixins: [i18n, fileTypesEditorMixin],
41
- props: {
42
- optionModel: Object,
43
- },
44
- mounted() {
45
- this.syncSelectLayout()
46
- },
47
- watch: {
48
- selectedFileTypes() {
49
- this.syncSelectLayout()
50
- },
51
- },
52
- methods: {
53
- /*
54
- * 两处都是 element 用 JS 量出来再写成内联样式的尺寸,在这里都不成立:
55
- * 1. 标签区的 max-width 按挂载那一刻的控件宽度算,而本编辑器挂载在还没完成
56
- * 布局的属性弹窗里,量到的值偏小;
57
- * 2. 输入框高度由 resetInputHeight() 写成内联样式,但全局样式表里
58
- * body .el-input .el-input__inner 把 height 写死成 28px !important,
59
- * 内联样式压不过它,标签一换行就溢出到框外,展开的下拉面板还会盖住溢出部分。
60
- * 所以这里等布局稳定后让宽度重算,并用同等优先级把高度补回去。
61
- */
62
- syncSelectLayout() {
63
- this.$nextTick(() => {
64
- let select = this.$refs.fileTypesSelect
65
- if (!select || !select.$refs.reference) {
66
- return
67
- }
68
- if (!!select.resetInputWidth) {
69
- select.resetInputWidth()
70
- }
71
- let input = select.$refs.reference.$el.querySelector("input.el-input__inner")
72
- let tags = select.$refs.tags
73
- if (!input || !tags) {
74
- return
75
- }
76
- let minHeight = select.initialInputHeight || input.offsetHeight
77
- let tagsHeight = Math.round(tags.getBoundingClientRect().height)
78
- let height = Math.max(tagsHeight > minHeight ? tagsHeight + 6 : tagsHeight, minHeight)
79
- input.style.setProperty("height", height + "px", "important")
80
- /* 高度变了要让下拉面板重新定位,否则还是按旧高度贴在原处 */
81
- if (!!select.broadcast) {
82
- select.broadcast("ElSelectDropdown", "updatePopper")
83
- }
84
- })
85
- },
86
- },
87
- }
88
- </script>
89
-
90
- <style scoped>
91
- .file-types-title {
92
- color: #606266;
93
- line-height: 22px;
94
- }
95
-
96
- .file-types-category {
97
- margin-bottom: 4px;
98
- line-height: 22px;
99
- }
100
-
101
- /* 独立的 el-checkbox 默认没有间距,且标签会跟着换行错位 */
102
- .file-types-category .el-checkbox {
103
- margin-right: 10px;
104
- }
105
-
106
- /*
107
- * 全局样式表 src/resources/css/style.scss 在 body 作用域下写了
108
- * .el-input{width:148px !important},画边框的 .el-input__inner 也跟着只有 148px,
109
- * 所以这里必须从内容区一路 !important 压到最内层的 input 才能铺满。
110
- */
111
- .file-types-item ::v-deep .el-form-item__content {
112
- display: block !important;
113
- width: auto !important;
114
- margin-left: 0 !important;
115
- float: none;
116
- }
117
-
118
- .file-types-select {
119
- display: block;
120
- width: auto;
121
- }
122
-
123
- .file-types-select ::v-deep .el-select {
124
- display: block !important;
125
- width: 100% !important;
126
- }
127
-
128
- .file-types-select ::v-deep .el-select .el-input,
129
- .file-types-select ::v-deep .el-select .el-input__inner {
130
- width: 100% !important;
131
- }
132
-
133
- /*
134
- * 标签区是绝对定位盖在输入框上的兄弟节点:
135
- * max-width 是挂载时按控件宽度算出的内联值,弹窗里量到的偏小,用 !important 盖掉,
136
- * 并和 element 一样留出右侧 32px 的图标位;
137
- * pointer-events 置空则是因为清空按钮的显隐挂在 el-input 的 mouseenter/mouseleave 上,
138
- * 标签层盖住的地方 hover 都算不到 el-input 头上,按钮就只在图标区才出现。
139
- */
140
- .file-types-select ::v-deep .el-select__tags {
141
- max-width: calc(100% - 32px) !important;
142
- pointer-events: none;
143
- }
144
-
145
- /* 标签上的删除按钮和手工输入框仍要能点 */
146
- .file-types-select ::v-deep .el-select__tags .el-tag__close,
147
- .file-types-select ::v-deep .el-select__input {
148
- pointer-events: auto;
149
- }
150
-
151
- /* 手工输入用的内联 input 同样带着按旧宽度算出的内联 max-width,同样留出图标区 */
152
- .file-types-select ::v-deep .el-select__input {
153
- max-width: calc(100% - 42px) !important;
154
- }
155
-
156
- /*
157
- * 全局样式表有 :focus-visible{outline:2px solid 主题色},展开下拉时焦点落在这个
158
- * 内联输入框上,Chrome 对文本框恒判定 focus-visible,于是框里又套出一圈蓝边。
159
- * 外层输入框自己已有聚焦态边框,这圈去掉。
160
- */
161
- .file-types-select ::v-deep .el-select__input:focus,
162
- .file-types-select ::v-deep .el-select__input:focus-visible {
163
- outline: none;
164
- }
165
- </style>
166
-
167
- <style>
168
- /*
169
- * 下拉面板是挂到 body 上的,scoped 样式够不到,只能靠 popper-class 做全局约束。
170
- * 全局样式表把 .el-select-dropdown__wrap 的 max-height 放大到了 474px,
171
- * 而这里有 9 个分组共 27 个后缀,面板会高到底部放不下、翻上来盖住整块属性面板。
172
- */
173
- .file-types-select-dropdown .el-select-dropdown__wrap {
174
- max-height: 320px;
175
- }
176
- </style>
1
+ <template>
2
+ <!-- 分类勾选行放不进 120px 标签剩下的宽度里,故整块用 label-width="0" 占满属性面板 -->
3
+ <el-form-item class="file-types-item form-item-label-top" label-width="0">
4
+ <div class="file-types-title">{{i18nt('designer.setting.fileTypes')}}
5
+ <el-tooltip effect="light" :content="i18nt('designer.setting.fileTypesCategoryHelp')">
6
+ <i class="el-icon-info"></i></el-tooltip>
7
+ </div>
8
+ <div class="file-types-category">
9
+ <el-checkbox v-for="category in fileTypeCategories"
10
+ :key="category.value"
11
+ :value="isCategoryChecked(category)"
12
+ :indeterminate="isCategoryIndeterminate(category)"
13
+ @change="toggleCategory(category, $event)">{{ category.label }}</el-checkbox>
14
+ </div>
15
+ <div class="file-types-select">
16
+ <el-select ref="fileTypesSelect" multiple allow-create filterable default-first-option clearable
17
+ popper-class="file-types-select-dropdown"
18
+ :placeholder="i18nt('designer.setting.fileTypesPlaceholder')"
19
+ v-model="selectedFileTypes" style="width: 100%">
20
+ <el-option-group v-for="category in fileTypeCategories"
21
+ :key="category.value"
22
+ :label="category.label">
23
+ <el-option v-for="fileType in category.types"
24
+ :key="fileType"
25
+ :label="fileType"
26
+ :value="fileType">
27
+ </el-option>
28
+ </el-option-group>
29
+ </el-select>
30
+ </div>
31
+ </el-form-item>
32
+ </template>
33
+
34
+ <script>
35
+ import i18n from "../../../../../components/xform/utils/i18n"
36
+ import fileTypesEditorMixin from "./fileTypesEditorMixin"
37
+
38
+ export default {
39
+ name: "file-types-select",
40
+ mixins: [i18n, fileTypesEditorMixin],
41
+ props: {
42
+ optionModel: Object,
43
+ },
44
+ mounted() {
45
+ this.syncSelectLayout()
46
+ },
47
+ watch: {
48
+ selectedFileTypes() {
49
+ this.syncSelectLayout()
50
+ },
51
+ },
52
+ methods: {
53
+ /*
54
+ * 两处都是 element 用 JS 量出来再写成内联样式的尺寸,在这里都不成立:
55
+ * 1. 标签区的 max-width 按挂载那一刻的控件宽度算,而本编辑器挂载在还没完成
56
+ * 布局的属性弹窗里,量到的值偏小;
57
+ * 2. 输入框高度由 resetInputHeight() 写成内联样式,但全局样式表里
58
+ * body .el-input .el-input__inner 把 height 写死成 28px !important,
59
+ * 内联样式压不过它,标签一换行就溢出到框外,展开的下拉面板还会盖住溢出部分。
60
+ * 所以这里等布局稳定后让宽度重算,并用同等优先级把高度补回去。
61
+ */
62
+ syncSelectLayout() {
63
+ this.$nextTick(() => {
64
+ let select = this.$refs.fileTypesSelect
65
+ if (!select || !select.$refs.reference) {
66
+ return
67
+ }
68
+ if (!!select.resetInputWidth) {
69
+ select.resetInputWidth()
70
+ }
71
+ let input = select.$refs.reference.$el.querySelector("input.el-input__inner")
72
+ let tags = select.$refs.tags
73
+ if (!input || !tags) {
74
+ return
75
+ }
76
+ let minHeight = select.initialInputHeight || input.offsetHeight
77
+ let tagsHeight = Math.round(tags.getBoundingClientRect().height)
78
+ let height = Math.max(tagsHeight > minHeight ? tagsHeight + 6 : tagsHeight, minHeight)
79
+ input.style.setProperty("height", height + "px", "important")
80
+ /* 高度变了要让下拉面板重新定位,否则还是按旧高度贴在原处 */
81
+ if (!!select.broadcast) {
82
+ select.broadcast("ElSelectDropdown", "updatePopper")
83
+ }
84
+ })
85
+ },
86
+ },
87
+ }
88
+ </script>
89
+
90
+ <style scoped>
91
+ .file-types-title {
92
+ color: #606266;
93
+ line-height: 22px;
94
+ }
95
+
96
+ .file-types-category {
97
+ margin-bottom: 4px;
98
+ line-height: 22px;
99
+ }
100
+
101
+ /* 独立的 el-checkbox 默认没有间距,且标签会跟着换行错位 */
102
+ .file-types-category .el-checkbox {
103
+ margin-right: 10px;
104
+ }
105
+
106
+ /*
107
+ * 全局样式表 src/resources/css/style.scss 在 body 作用域下写了
108
+ * .el-input{width:148px !important},画边框的 .el-input__inner 也跟着只有 148px,
109
+ * 所以这里必须从内容区一路 !important 压到最内层的 input 才能铺满。
110
+ */
111
+ .file-types-item ::v-deep .el-form-item__content {
112
+ display: block !important;
113
+ width: auto !important;
114
+ margin-left: 0 !important;
115
+ float: none;
116
+ }
117
+
118
+ .file-types-select {
119
+ display: block;
120
+ width: auto;
121
+ }
122
+
123
+ .file-types-select ::v-deep .el-select {
124
+ display: block !important;
125
+ width: 100% !important;
126
+ }
127
+
128
+ .file-types-select ::v-deep .el-select .el-input,
129
+ .file-types-select ::v-deep .el-select .el-input__inner {
130
+ width: 100% !important;
131
+ }
132
+
133
+ /*
134
+ * 标签区是绝对定位盖在输入框上的兄弟节点:
135
+ * max-width 是挂载时按控件宽度算出的内联值,弹窗里量到的偏小,用 !important 盖掉,
136
+ * 并和 element 一样留出右侧 32px 的图标位;
137
+ * pointer-events 置空则是因为清空按钮的显隐挂在 el-input 的 mouseenter/mouseleave 上,
138
+ * 标签层盖住的地方 hover 都算不到 el-input 头上,按钮就只在图标区才出现。
139
+ */
140
+ .file-types-select ::v-deep .el-select__tags {
141
+ max-width: calc(100% - 32px) !important;
142
+ pointer-events: none;
143
+ }
144
+
145
+ /* 标签上的删除按钮和手工输入框仍要能点 */
146
+ .file-types-select ::v-deep .el-select__tags .el-tag__close,
147
+ .file-types-select ::v-deep .el-select__input {
148
+ pointer-events: auto;
149
+ }
150
+
151
+ /* 手工输入用的内联 input 同样带着按旧宽度算出的内联 max-width,同样留出图标区 */
152
+ .file-types-select ::v-deep .el-select__input {
153
+ max-width: calc(100% - 42px) !important;
154
+ }
155
+
156
+ /*
157
+ * 全局样式表有 :focus-visible{outline:2px solid 主题色},展开下拉时焦点落在这个
158
+ * 内联输入框上,Chrome 对文本框恒判定 focus-visible,于是框里又套出一圈蓝边。
159
+ * 外层输入框自己已有聚焦态边框,这圈去掉。
160
+ */
161
+ .file-types-select ::v-deep .el-select__input:focus,
162
+ .file-types-select ::v-deep .el-select__input:focus-visible {
163
+ outline: none;
164
+ }
165
+ </style>
166
+
167
+ <style>
168
+ /*
169
+ * 下拉面板是挂到 body 上的,scoped 样式够不到,只能靠 popper-class 做全局约束。
170
+ * 全局样式表把 .el-select-dropdown__wrap 的 max-height 放大到了 474px,
171
+ * 而这里有 9 个分组共 27 个后缀,面板会高到底部放不下、翻上来盖住整块属性面板。
172
+ */
173
+ .file-types-select-dropdown .el-select-dropdown__wrap {
174
+ max-height: 320px;
175
+ }
176
+ </style>
@@ -16,7 +16,7 @@
16
16
  <!-- <el-form-item label="请求表单编码" v-if="optionModel.formScriptEnabled">
17
17
  <el-input v-model="optionModel.httpFormCode" clearable></el-input>
18
18
  </el-form-item>-->
19
- <el-form-item label="表单脚本编码" v-if="optionModel.formScriptEnabled">
19
+ <el-form-item label="表单脚本编码" v-if="optionModel.formScriptEnabled" class="form-item-label-top">
20
20
  <el-input v-model="optionModel.formScriptCode" clearable></el-input>
21
21
  </el-form-item>
22
22
  <el-form-item
@@ -45,6 +45,7 @@
45
45
  <el-form-item
46
46
  :label="i18nt('词汇编码')"
47
47
  v-if="optionModel.commonAttributeEnabled"
48
+ class="form-item-label-top"
48
49
  >
49
50
  <el-input
50
51
  type="text"
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div>
3
3
  <el-form-item label="格式化"> </el-form-item>
4
- <el-form-item label-width="0">
4
+ <el-form-item label-width="0" class="form-item-label-top">
5
5
  <el-select v-model="optionModel.formatType" clearable style="width: 100%">
6
6
  <el-option-group v-for="t in op" :key="t.label" :label="t.label">
7
7
  <el-option
@@ -27,7 +27,7 @@
27
27
  <i class="el-icon-edit"></i>
28
28
  </a>
29
29
  </el-form-item>
30
- <el-form-item :label="i18nt('格式化小数位')" v-if="optionModel.formatType === 'n0'">
30
+ <el-form-item :label="i18nt('格式化小数位')" v-if="optionModel.formatType === 'n0'" class="form-item-label-top">
31
31
  <el-input-number v-model="optionModel.formatDecimal" />
32
32
  </el-form-item>
33
33
  </div>