super-page-designer 2.0.51 → 2.0.55

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 (196) hide show
  1. package/dist/es/components/design/utils/assemblys-config.js +68 -3
  2. package/dist/es/components/design/utils/chart-design-util.js +1 -2
  3. package/dist/es/components/design/utils/data-table-util.js +3 -3
  4. package/dist/es/components/design/utils/form-design-util.d.ts +7 -0
  5. package/dist/es/components/design/utils/form-design-util.js +10 -2
  6. package/dist/es/components/design/utils/page-design-util.js +1 -4
  7. package/dist/es/components/design/utils/page-table-util.d.ts +7 -0
  8. package/dist/es/components/design/utils/page-table-util.js +50 -7
  9. package/dist/es/components/design/views/assemblys/button/button/button-attr-base.vue.js +1 -1
  10. package/dist/es/components/design/views/assemblys/button/button-group/buttongroup-attr.vue.js +1 -1
  11. package/dist/es/components/design/views/assemblys/button/component/journal-set-dialog.vue.js +1 -1
  12. package/dist/es/components/design/views/assemblys/button/dropdown/dropdown-attr.vue.js +1 -1
  13. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr-advanced.vue.js +242 -0
  14. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr-advanced.vue2.js +4 -0
  15. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr-base.vue.js +571 -0
  16. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr-base.vue2.js +4 -0
  17. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr-event.vue.js +33 -0
  18. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr-event.vue2.js +4 -0
  19. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr-style.vue.js +50 -0
  20. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr-style.vue2.js +4 -0
  21. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr.vue.js +5 -0
  22. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-attr.vue2.js +80 -0
  23. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-design.vue.js +4 -0
  24. package/dist/es/components/design/views/assemblys/button/export-pdf/exportpdf-design.vue2.js +91 -0
  25. package/dist/es/components/design/views/assemblys/button/print-label/printlabel-attr.vue.js +1 -1
  26. package/dist/es/components/design/views/assemblys/chart/common/common-attr-groupby.vue.js +2 -4
  27. package/dist/es/components/design/views/assemblys/chart/gauge/series/styles/style-axislabel.vue.js +1 -2
  28. package/dist/es/components/design/views/assemblys/common/common-advanced-basic-showcondition.vue.js +1 -2
  29. package/dist/es/components/design/views/assemblys/common/common-variable-bind.vue.d.ts +9 -0
  30. package/dist/es/components/design/views/assemblys/common/common-variable-bind.vue.js +3 -3
  31. package/dist/es/components/design/views/assemblys/common/common-variable-bind.vue3.js +698 -1
  32. package/dist/es/components/design/views/assemblys/common/page-permission-select.vue.js +5 -9
  33. package/dist/es/components/design/views/assemblys/common/state-button.vue.js +1 -1
  34. package/dist/es/components/design/views/assemblys/container/card/card-design.vue2.js +23 -4
  35. package/dist/es/components/design/views/assemblys/container/collapse/collapse-design.vue2.js +23 -16
  36. package/dist/es/components/design/views/assemblys/container/container/container-design.vue2.js +14 -13
  37. package/dist/es/components/design/views/assemblys/container/flex/flex-design.vue2.js +10 -5
  38. package/dist/es/components/design/views/assemblys/container/form/form-design.vue2.js +10 -5
  39. package/dist/es/components/design/views/assemblys/container/tabs/tabs-design.vue2.js +22 -16
  40. package/dist/es/components/design/views/assemblys/container/tools/tools-design.vue2.js +10 -5
  41. package/dist/es/components/design/views/assemblys/data/bar-code/barcode-attr.vue.js +1 -1
  42. package/dist/es/components/design/views/assemblys/data/component/column-config.vue.js +1 -2
  43. package/dist/es/components/design/views/assemblys/data/component/composite-header.vue.js +1 -1
  44. package/dist/es/components/design/views/assemblys/data/component/configuration-value.vue.js +1 -1
  45. package/dist/es/components/design/views/assemblys/data/component/data-origin-tree.vue.js +1 -1
  46. package/dist/es/components/design/views/assemblys/data/component/data-origin.vue.js +2 -2
  47. package/dist/es/components/design/views/assemblys/data/component/data-origin.vue2.js +4 -3
  48. package/dist/es/components/design/views/assemblys/data/component/formatting-icon-label.vue.js +188 -0
  49. package/dist/es/components/design/views/assemblys/data/component/formatting-icon-label.vue2.js +4 -0
  50. package/dist/es/components/design/views/assemblys/data/component/formatting.vue.js +21 -59
  51. package/dist/es/components/design/views/assemblys/data/component/querySetting.vue.js +1 -1
  52. package/dist/es/components/design/views/assemblys/data/component/row-backgroud-color.vue.js +1 -1
  53. package/dist/es/components/design/views/assemblys/data/component/table-children-column.vue.js +3 -1
  54. package/dist/es/components/design/views/assemblys/data/component/variate-select.vue.js +1 -2
  55. package/dist/es/components/design/views/assemblys/data/table/table-attr-advanced.vue.js +2 -2
  56. package/dist/es/components/design/views/assemblys/data/table/table-attr-base.vue.js +2 -1
  57. package/dist/es/components/design/views/assemblys/data/table/table-attr.vue.js +1 -1
  58. package/dist/es/components/design/views/assemblys/data/table/table-attr.vue2.js +0 -1
  59. package/dist/es/components/design/views/assemblys/data/table/table-design.vue.js +3 -3
  60. package/dist/es/components/design/views/assemblys/data/table/table-design.vue2.js +16 -5
  61. package/dist/es/components/design/views/assemblys/data/table/tablecolumn-attr-base.vue.js +70 -97
  62. package/dist/es/components/design/views/assemblys/data/tree/tree-attr-base.vue.js +2 -5
  63. package/dist/es/components/design/views/assemblys/data/tree/tree-attr.vue.js +1 -1
  64. package/dist/es/components/design/views/assemblys/data/tree/tree-design.vue2.js +12 -5
  65. package/dist/es/components/design/views/assemblys/form/checkbox/checkbox-attr-base.vue.js +27 -30
  66. package/dist/es/components/design/views/assemblys/form/checkbox/checkbox-attr.vue.js +1 -1
  67. package/dist/es/components/design/views/assemblys/form/checkbox/checkbox-attr.vue2.js +11 -1
  68. package/dist/es/components/design/views/assemblys/form/common/attr-event.vue.js +1 -1
  69. package/dist/es/components/design/views/assemblys/form/common/attr-header.vue.js +1 -1
  70. package/dist/es/components/design/views/assemblys/form/common/data-format.vue.js +92 -63
  71. package/dist/es/components/design/views/assemblys/form/common/data-origin.vue.js +2 -2
  72. package/dist/es/components/design/views/assemblys/form/common/data-origin.vue2.js +20 -30
  73. package/dist/es/components/design/views/assemblys/form/common/dataorigin-input-table.vue.js +1 -152
  74. package/dist/es/components/design/views/assemblys/form/common/dataorigin-input-table.vue2.js +152 -1
  75. package/dist/es/components/design/views/assemblys/form/common/icon-set-dialog.vue.js +2 -2
  76. package/dist/es/components/design/views/assemblys/form/common/icon-set-dialog.vue3.js +217 -1
  77. package/dist/es/components/design/views/assemblys/form/common/suffixmodule.vue.js +102 -8
  78. package/dist/es/components/design/views/assemblys/form/common/verification-custom.vue.js +176 -0
  79. package/dist/es/components/design/views/assemblys/form/common/verification-custom.vue2.js +4 -0
  80. package/dist/es/components/design/views/assemblys/form/common/verification.vue.js +17 -28
  81. package/dist/es/components/design/views/assemblys/form/custom/custom-attr-base.vue.js +1 -1
  82. package/dist/es/components/design/views/assemblys/form/custom/custom-attr.vue.js +1 -1
  83. package/dist/es/components/design/views/assemblys/form/custom/custom-design.vue.js +1 -1
  84. package/dist/es/components/design/views/assemblys/form/date-picker/datepicker-attr-base.vue.js +14 -1
  85. package/dist/es/components/design/views/assemblys/form/date-picker/datepicker-attr.vue.js +1 -1
  86. package/dist/es/components/design/views/assemblys/form/date-picker/datepicker-attr.vue2.js +4 -1
  87. package/dist/es/components/design/views/assemblys/form/dept-tree/depttree-attr-base.vue.js +14 -3
  88. package/dist/es/components/design/views/assemblys/form/dept-tree/depttree-attr.vue.js +1 -1
  89. package/dist/es/components/design/views/assemblys/form/dept-tree/depttree-attr.vue2.js +4 -1
  90. package/dist/es/components/design/views/assemblys/form/dept-tree/depttree-autoset.vue.js +6 -1
  91. package/dist/es/components/design/views/assemblys/form/divider/divider-attr.vue.js +1 -1
  92. package/dist/es/components/design/views/assemblys/form/file-upload/fileupload-attr-base.vue.js +26 -11
  93. package/dist/es/components/design/views/assemblys/form/file-upload/fileupload-attr.vue.js +1 -1
  94. package/dist/es/components/design/views/assemblys/form/file-upload/fileupload-attr.vue2.js +4 -1
  95. package/dist/es/components/design/views/assemblys/form/input-number/input-number-attr-base.vue.js +14 -1
  96. package/dist/es/components/design/views/assemblys/form/input-number/input-number-attr.vue.js +1 -1
  97. package/dist/es/components/design/views/assemblys/form/input-number/input-number-attr.vue2.js +4 -1
  98. package/dist/es/components/design/views/assemblys/form/input-text/inputtext-attr-base.vue.js +17 -3
  99. package/dist/es/components/design/views/assemblys/form/input-text/inputtext-attr.vue.js +1 -1
  100. package/dist/es/components/design/views/assemblys/form/input-text/inputtext-attr.vue2.js +3 -1
  101. package/dist/es/components/design/views/assemblys/form/input-text/inputtext-design.vue2.js +0 -1
  102. package/dist/es/components/design/views/assemblys/form/label/label-attr-base.vue.js +14 -1
  103. package/dist/es/components/design/views/assemblys/form/label/label-attr.vue.js +1 -1
  104. package/dist/es/components/design/views/assemblys/form/label/label-attr.vue2.js +4 -1
  105. package/dist/es/components/design/views/assemblys/form/label/label-design.vue2.js +29 -14
  106. package/dist/es/components/design/views/assemblys/form/link/link-attr-base.vue.js +41 -3
  107. package/dist/es/components/design/views/assemblys/form/link/link-attr.vue2.js +2 -1
  108. package/dist/es/components/design/views/assemblys/form/link/link-design.vue2.js +20 -14
  109. package/dist/es/components/design/views/assemblys/form/placeholder/placeholder-attr-base.vue.js +14 -1
  110. package/dist/es/components/design/views/assemblys/form/placeholder/placeholder-attr.vue.js +1 -1
  111. package/dist/es/components/design/views/assemblys/form/placeholder/placeholder-attr.vue2.js +4 -1
  112. package/dist/es/components/design/views/assemblys/form/radio/radio-attr-base.vue.js +27 -30
  113. package/dist/es/components/design/views/assemblys/form/radio/radio-attr.vue.js +1 -1
  114. package/dist/es/components/design/views/assemblys/form/radio/radio-attr.vue2.js +11 -1
  115. package/dist/es/components/design/views/assemblys/form/rich-text/richtext-attr-base.vue.js +14 -1
  116. package/dist/es/components/design/views/assemblys/form/rich-text/richtext-attr.vue2.js +4 -1
  117. package/dist/es/components/design/views/assemblys/form/select/select-attr-base.vue.js +26 -29
  118. package/dist/es/components/design/views/assemblys/form/select/select-attr.vue.js +1 -1
  119. package/dist/es/components/design/views/assemblys/form/select/select-attr.vue2.js +12 -1
  120. package/dist/es/components/design/views/assemblys/form/select/select-design.vue2.js +4 -1
  121. package/dist/es/components/design/views/assemblys/form/switch/switch-attr-base.vue.js +14 -1
  122. package/dist/es/components/design/views/assemblys/form/switch/switch-attr.vue.js +1 -1
  123. package/dist/es/components/design/views/assemblys/form/switch/switch-attr.vue2.js +4 -1
  124. package/dist/es/components/design/views/assemblys/form/tag/tag-attr-base.vue.js +28 -2
  125. package/dist/es/components/design/views/assemblys/form/tag/tag-attr.vue.js +1 -1
  126. package/dist/es/components/design/views/assemblys/form/tag/tag-attr.vue2.js +4 -1
  127. package/dist/es/components/design/views/assemblys/form/textarea/textarea-attr-base.vue.js +27 -29
  128. package/dist/es/components/design/views/assemblys/form/textarea/textarea-attr.vue.js +1 -1
  129. package/dist/es/components/design/views/assemblys/form/textarea/textarea-attr.vue2.js +11 -1
  130. package/dist/es/components/design/views/assemblys/object-design.vue.js +0 -1
  131. package/dist/es/components/design/views/assemblys/page/component/setting-form-rule-base-input.vue.js +57 -18
  132. package/dist/es/components/design/views/assemblys/page/component/weight-field-input.vue.js +1 -2
  133. package/dist/es/components/design/views/assemblys/page/page-attr-advanced.vue.js +49 -24
  134. package/dist/es/components/design/views/assemblys/page/page-attr-base.vue.js +20 -7
  135. package/dist/es/components/design/views/assemblys/page/page-attr.vue.js +5 -4
  136. package/dist/es/components/design/views/assemblys/workflow/picture-flow/pictureflow-attr-base.vue.js +1 -1
  137. package/dist/es/components/design/views/assemblys/workflow/picture-flow/pictureflow-attr.vue.js +1 -1
  138. package/dist/es/components/design/views/assemblys/workflow/text-history/texthistory-attr-base.vue.js +1 -1
  139. package/dist/es/components/design/views/assemblys/workflow/text-history/texthistory-attr.vue.js +1 -1
  140. package/dist/es/components/design/views/assemblys/workflow/workflow-button/workflowbutton-attr-base.vue.js +38 -6
  141. package/dist/es/components/design/views/assemblys/workflow/workflow-button/workflowbutton-attr.vue.js +1 -1
  142. package/dist/es/components/design/views/design/page-design.vue.js +6 -7
  143. package/dist/es/components/design/views/design/page-event/config.vue.js +2 -2
  144. package/dist/es/components/design/views/design/page-event/config.vue2.js +335 -1
  145. package/dist/es/components/design/views/design/view/attr-container.vue.js +4 -2
  146. package/dist/es/components/design/views/design/view/page-switch.vue.js +1 -1
  147. package/dist/es/components/design/views/design/view/view-design-display.vue.js +1 -26
  148. package/dist/es/index.js +2 -2
  149. package/dist/es/stores/page-store.js +1 -2
  150. package/dist/es/stores/table-store.d.ts +10 -0
  151. package/dist/es/stores/table-store.js +20 -0
  152. package/dist/es/style.css +759 -140
  153. package/package.json +4 -4
  154. package/dist/es/assets/design-attr.css.js +0 -1
  155. package/dist/es/assets/fonts/iconfont.css.js +0 -1
  156. package/dist/es/components/design/views/assemblys/button/button-group/buttongroup-attr.vue3.js +0 -1
  157. package/dist/es/components/design/views/assemblys/button/component/journal-set-dialog.vue3.js +0 -1
  158. package/dist/es/components/design/views/assemblys/button/dropdown/dropdown-attr.vue3.js +0 -1
  159. package/dist/es/components/design/views/assemblys/button/print-label/printlabel-attr.vue3.js +0 -1
  160. package/dist/es/components/design/views/assemblys/common/common-variable-bind.vue2.js +0 -692
  161. package/dist/es/components/design/views/assemblys/common/state-button.vue3.js +0 -1
  162. package/dist/es/components/design/views/assemblys/data/bar-code/barcode-attr.vue3.js +0 -1
  163. package/dist/es/components/design/views/assemblys/data/component/composite-header.vue3.js +0 -1
  164. package/dist/es/components/design/views/assemblys/data/component/data-origin-tree.vue3.js +0 -1
  165. package/dist/es/components/design/views/assemblys/data/component/data-origin.vue3.js +0 -1
  166. package/dist/es/components/design/views/assemblys/data/component/row-backgroud-color.vue3.js +0 -1
  167. package/dist/es/components/design/views/assemblys/data/table/table-attr.vue3.js +0 -1
  168. package/dist/es/components/design/views/assemblys/data/table/table-design.vue3.js +0 -1
  169. package/dist/es/components/design/views/assemblys/data/table/table-design.vue4.js +0 -1
  170. package/dist/es/components/design/views/assemblys/data/tree/tree-attr.vue3.js +0 -1
  171. package/dist/es/components/design/views/assemblys/form/checkbox/checkbox-attr.vue3.js +0 -1
  172. package/dist/es/components/design/views/assemblys/form/common/attr-event.vue3.js +0 -1
  173. package/dist/es/components/design/views/assemblys/form/common/attr-header.vue3.js +0 -1
  174. package/dist/es/components/design/views/assemblys/form/common/data-origin.vue3.js +0 -1
  175. package/dist/es/components/design/views/assemblys/form/common/dimension-input.vue.js +0 -1
  176. package/dist/es/components/design/views/assemblys/form/common/icon-set-dialog.vue2.js +0 -217
  177. package/dist/es/components/design/views/assemblys/form/custom/custom-attr.vue3.js +0 -1
  178. package/dist/es/components/design/views/assemblys/form/custom/custom-design.vue3.js +0 -1
  179. package/dist/es/components/design/views/assemblys/form/date-picker/datepicker-attr.vue3.js +0 -1
  180. package/dist/es/components/design/views/assemblys/form/dept-tree/depttree-attr.vue3.js +0 -1
  181. package/dist/es/components/design/views/assemblys/form/divider/divider-attr.vue3.js +0 -1
  182. package/dist/es/components/design/views/assemblys/form/file-upload/fileupload-attr.vue3.js +0 -1
  183. package/dist/es/components/design/views/assemblys/form/input-number/input-number-attr.vue3.js +0 -1
  184. package/dist/es/components/design/views/assemblys/form/input-text/inputtext-attr.vue3.js +0 -1
  185. package/dist/es/components/design/views/assemblys/form/label/label-attr.vue3.js +0 -1
  186. package/dist/es/components/design/views/assemblys/form/placeholder/placeholder-attr.vue3.js +0 -1
  187. package/dist/es/components/design/views/assemblys/form/radio/radio-attr.vue3.js +0 -1
  188. package/dist/es/components/design/views/assemblys/form/select/select-attr.vue3.js +0 -1
  189. package/dist/es/components/design/views/assemblys/form/switch/switch-attr.vue3.js +0 -1
  190. package/dist/es/components/design/views/assemblys/form/tag/tag-attr.vue3.js +0 -1
  191. package/dist/es/components/design/views/assemblys/form/textarea/textarea-attr.vue3.js +0 -1
  192. package/dist/es/components/design/views/assemblys/workflow/picture-flow/pictureflow-attr.vue3.js +0 -1
  193. package/dist/es/components/design/views/assemblys/workflow/text-history/texthistory-attr.vue3.js +0 -1
  194. package/dist/es/components/design/views/assemblys/workflow/workflow-button/workflowbutton-attr.vue3.js +0 -1
  195. package/dist/es/components/design/views/design/page-event/config.vue3.js +0 -336
  196. package/dist/es/components/design/views/design/view/page-switch.vue3.js +0 -1
@@ -1 +1,698 @@
1
-
1
+ import { defineComponent, ref, onMounted, onUnmounted, computed, watch, resolveComponent, openBlock, createElementBlock, toDisplayString, createBlock, withCtx, createVNode, withDirectives, withModifiers, unref, vShow, createElementVNode, createTextVNode, normalizeStyle, createCommentVNode, nextTick, pushScopeId, popScopeId } from "vue";
2
+ import { CircleClose, Plus, InfoFilled, Search } from "@element-plus/icons-vue";
3
+ import http from "agilebuilder-ui/src/utils/request";
4
+ import { deepCopy, getUuidv4 } from "../../../utils/common-util.js";
5
+ import { getTypeOptions, taskVarOptions, contextVarOptions } from "./common-variable-bind-option.js";
6
+ import { usePageContextStore } from "../../../../../stores/page-store.js";
7
+ import { tableField } from "../../../../../stores/table-store.js";
8
+ const _withScopeId = (n) => (pushScopeId("data-v-48d27f9e"), n = n(), popScopeId(), n);
9
+ const _hoisted_1 = { key: 0 };
10
+ const _hoisted_2 = { style: { "margin-top": "10px", "font-size": "10px", "display": "flex", "align-items": "center", "justify-self": "center" } };
11
+ const _hoisted_3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("span", { style: { "margin-left": "5px" } }, "输入变量名后点击加号按钮添加", -1));
12
+ const _hoisted_4 = { style: { "font-size": "10px", "line-height": "40px" } };
13
+ const _hoisted_5 = { style: { "margin-top": "4px", "margin-bottom": "8px", "font-size": "10px", "display": "flex", "align-items": "center", "justify-self": "center" } };
14
+ const _hoisted_6 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("span", { style: { "margin-left": "5px" } }, "输入变量名后点击加号按钮添加", -1));
15
+ const _hoisted_7 = {
16
+ key: 0,
17
+ style: { "display": "flex" }
18
+ };
19
+ const _hoisted_8 = ["title"];
20
+ const _hoisted_9 = ["title"];
21
+ const _hoisted_10 = { class: "totalStyle" };
22
+ const _sfc_main = /* @__PURE__ */ defineComponent({
23
+ ...{
24
+ name: "ValueSetInput",
25
+ inheritAttrs: false
26
+ },
27
+ __name: "common-variable-bind",
28
+ props: {
29
+ modelValue: {
30
+ type: [String],
31
+ default: null
32
+ },
33
+ paramTypes: {
34
+ type: Array,
35
+ default: () => []
36
+ },
37
+ size: {
38
+ type: String,
39
+ default: "small"
40
+ },
41
+ showLabel: {
42
+ type: Boolean,
43
+ default: false
44
+ },
45
+ // 是否需要方法参数
46
+ needParams: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ isRange: {
51
+ type: Boolean,
52
+ default: false
53
+ },
54
+ isTable: {
55
+ type: Boolean,
56
+ default: false
57
+ }
58
+ },
59
+ emits: ["update:modelValue"],
60
+ setup(__props, { emit: __emit }) {
61
+ const pageContextUtil = usePageContextStore();
62
+ const emits = __emit;
63
+ const props = __props;
64
+ const popoverVisible = ref(false);
65
+ const defalutValue = ref("");
66
+ const inputRef = ref(null);
67
+ const contentRef = ref(null);
68
+ const typeOptions = ref([]);
69
+ const showInput = ref(false);
70
+ const labelValue = ref("");
71
+ const paramType = ref("");
72
+ const paramValue = ref("");
73
+ const valueOptions = ref([]);
74
+ const selectOptions = ref({});
75
+ const searchValue = ref("");
76
+ const popoverRef = ref(null);
77
+ const selectInputType = ["context", "system", "task", "data", "page"];
78
+ const tableFieldStore = tableField();
79
+ onMounted(() => {
80
+ window.addEventListener("click", handleClickOutside);
81
+ const pageContext = pageContextUtil.pageContext;
82
+ let hasTask = false;
83
+ let hasData = false;
84
+ if (props.isTable || pageContext && (!pageContext.pageType || pageContext.pageType == "form") && pageContext.tableName) {
85
+ hasData = true;
86
+ }
87
+ if (pageContext && pageContext.workflowCode && hasData) {
88
+ hasTask = true;
89
+ }
90
+ let newOptions = getTypeOptions(props.paramTypes, props.needParams);
91
+ if (!hasData) {
92
+ newOptions = newOptions.filter((item) => item.value != "data");
93
+ }
94
+ if (!hasTask) {
95
+ newOptions = newOptions.filter((item) => item.value != "task");
96
+ }
97
+ typeOptions.value = newOptions;
98
+ setSelectOptions();
99
+ if (props.modelValue) {
100
+ const [type, val] = props.modelValue.slice(0, props.modelValue.length - 1).slice(2).split(".");
101
+ paramType.value = type;
102
+ paramValue.value = val;
103
+ if (selectInputType.includes(type)) {
104
+ showInput.value = false;
105
+ }
106
+ setValueOptions(paramType.value);
107
+ labelValue.value = formatter();
108
+ defalutValue.value = props.modelValue;
109
+ }
110
+ if (!paramType.value) {
111
+ paramType.value = newOptions.length > 0 ? newOptions[0].value : "";
112
+ setValueOptions(paramType.value);
113
+ }
114
+ console.log("popoverRef", popoverRef.value);
115
+ });
116
+ onUnmounted(() => {
117
+ window.removeEventListener("click", handleClickOutside);
118
+ });
119
+ let lastTarget = null;
120
+ function handleClickOutside(event) {
121
+ if (!popoverVisible.value) {
122
+ return;
123
+ }
124
+ if (paramTypeCheck) {
125
+ paramTypeCheck = false;
126
+ return;
127
+ }
128
+ let popoverDom = null;
129
+ if (contentRef.value) {
130
+ popoverDom = contentRef.value.$el.parentNode;
131
+ }
132
+ if (!event.target || !popoverDom) {
133
+ return;
134
+ }
135
+ if (event.target === lastTarget) {
136
+ console.log("与最后的点击一致");
137
+ return;
138
+ }
139
+ const inputDom = inputRef.value ? inputRef.value.input : null;
140
+ if (inputDom && (event.target === inputDom || inputDom.contains(event.target))) {
141
+ console.log("click contains input");
142
+ return;
143
+ }
144
+ if (event.target === popoverDom || popoverDom.contains(event.target)) {
145
+ console.log("click contains");
146
+ lastTarget = event.target;
147
+ } else {
148
+ if (contentRef.value.$el) {
149
+ console.log("contentRef.value.$el.contains", contentRef.value.$el.contains(event.target));
150
+ }
151
+ console.log("click contains--------not");
152
+ if (popoverVisible.value) {
153
+ closePopover();
154
+ }
155
+ }
156
+ }
157
+ const symbolUnits = ref([
158
+ {
159
+ label: "天",
160
+ value: "d"
161
+ },
162
+ {
163
+ label: "周",
164
+ value: "w"
165
+ },
166
+ {
167
+ label: "月",
168
+ value: "m"
169
+ },
170
+ {
171
+ label: "年",
172
+ value: "y"
173
+ }
174
+ ]);
175
+ const symbolUnitFormatter = (unit) => {
176
+ const items = symbolUnits.value.filter((item) => {
177
+ return item.value == unit;
178
+ });
179
+ if (items.length > 0) {
180
+ return items[0].label;
181
+ } else {
182
+ return "";
183
+ }
184
+ };
185
+ let popoverTimeout = null;
186
+ function closePopover(immediate) {
187
+ clearTimeout(popoverTimeout);
188
+ {
189
+ popoverVisible.value = false;
190
+ }
191
+ }
192
+ function openPopover() {
193
+ clearTimeout(popoverTimeout);
194
+ popoverVisible.value = true;
195
+ }
196
+ const filterTableData = computed(
197
+ () => (
198
+ //等于System时为全部
199
+ valueOptions.value.filter(
200
+ (data) => !searchValue.value || paramType.value == "system" || data.label.toLowerCase().includes(searchValue.value.toLowerCase()) || data.value.toLowerCase().includes(searchValue.value.toLowerCase())
201
+ )
202
+ )
203
+ );
204
+ watch(searchValue, () => {
205
+ if (paramType.value == "system") {
206
+ querySystemParams();
207
+ }
208
+ });
209
+ let lastSystemQuery = null;
210
+ function querySystemParams() {
211
+ if (lastSystemQuery == searchValue.value) {
212
+ return;
213
+ }
214
+ const param = {
215
+ query: searchValue.value
216
+ };
217
+ lastSystemQuery = searchValue.value;
218
+ http.post(window["$vueApp"].config.globalProperties.baseAPI + "/component/system-params/query", param).then((results) => {
219
+ const tempOptions = [];
220
+ for (let result of results) {
221
+ tempOptions.push({
222
+ value: result.propKey,
223
+ label: result.propKey + " (" + result.propValue + ")"
224
+ });
225
+ }
226
+ selectOptions.value.systemVarOptions = tempOptions;
227
+ if (paramType.value == "system") {
228
+ setValueOptions(paramType.value);
229
+ }
230
+ });
231
+ }
232
+ const tableHeight = computed(() => {
233
+ let height = 185;
234
+ if (paramType.value == "page") {
235
+ height = 170;
236
+ }
237
+ return height;
238
+ });
239
+ const searchWidthStyle = computed(() => {
240
+ const style = {};
241
+ if (paramType.value == "page") {
242
+ style.width = "210px";
243
+ }
244
+ return style;
245
+ });
246
+ function setSelectOptions() {
247
+ if (props.isTable) {
248
+ selectOptions.value.dataModelOptions = tableFieldStore.fieldList;
249
+ } else {
250
+ selectOptions.value.dataModelOptions = pageContextUtil.pageContextVarOptions.dataOptions;
251
+ }
252
+ selectOptions.value.pageVarOptions = pageContextUtil.pageContextVarOptions.pageVarOptions;
253
+ }
254
+ function formatter() {
255
+ if (props.modelValue) {
256
+ return paramType.value + "." + getValueLabel(paramType.value, paramValue.value);
257
+ }
258
+ return props.modelValue;
259
+ }
260
+ let paramTypeCheck = false;
261
+ function paramTypeChange(selParamType) {
262
+ if (selParamType) {
263
+ if (Array.isArray(selParamType)) {
264
+ if (selParamType.length > 0) {
265
+ selParamType = selParamType[0];
266
+ }
267
+ }
268
+ }
269
+ paramType.value = selParamType;
270
+ paramValue.value = "";
271
+ if (selectInputType.includes(selParamType)) {
272
+ showInput.value = false;
273
+ setValueOptions(selParamType);
274
+ } else {
275
+ showInput.value = true;
276
+ }
277
+ if (paramType.value == "system") {
278
+ querySystemParams();
279
+ }
280
+ paramTypeCheck = true;
281
+ }
282
+ function setValueOptions(value) {
283
+ if (value === "context") {
284
+ let options = contextVarOptions;
285
+ if (props.isRange) {
286
+ options = deepCopy(options);
287
+ for (let i = 0; i < options.length; i++) {
288
+ let o = options[i];
289
+ if (o.value == "currentDate") {
290
+ options.splice(i + 1, 0, {
291
+ value: "currentDate",
292
+ symbolUnit: "d",
293
+ symbol: "-",
294
+ type: "range"
295
+ });
296
+ break;
297
+ }
298
+ }
299
+ }
300
+ valueOptions.value = options;
301
+ } else if (value === "system") {
302
+ valueOptions.value = selectOptions.value.systemVarOptions || [];
303
+ } else if (value === "task") {
304
+ valueOptions.value = taskVarOptions;
305
+ } else if (value === "data") {
306
+ valueOptions.value = selectOptions.value.dataModelOptions || [];
307
+ } else if (value === "params") {
308
+ valueOptions.value = selectOptions.value.paramsVarOptions || [];
309
+ } else if (value === "page") {
310
+ valueOptions.value = selectOptions.value.pageVarOptions || [];
311
+ }
312
+ }
313
+ function clearSelect() {
314
+ defalutValue.value = "";
315
+ emits("update:modelValue", defalutValue.value);
316
+ popoverRef.value.hide();
317
+ }
318
+ function selectRow(row) {
319
+ if (row.type == "range") {
320
+ if (row.symbolNum === "") {
321
+ ElMessage.warning("周期不能为空!");
322
+ return;
323
+ }
324
+ if (isNaN(row.symbolNum)) {
325
+ ElMessage.warning("周期为无效的数字!");
326
+ return;
327
+ }
328
+ if (row.symbolNum != "0") {
329
+ paramValue.value = row.value + row.symbol + row.symbolNum + row.symbolUnit;
330
+ } else {
331
+ paramValue.value = row.value;
332
+ }
333
+ } else {
334
+ paramValue.value = row.value;
335
+ }
336
+ defalutValue.value = "${" + paramType.value + "." + paramValue.value + "}";
337
+ emits("update:modelValue", defalutValue.value, row.alias);
338
+ closePopover();
339
+ }
340
+ function addRequestParam(paramName) {
341
+ paramValue.value = paramName;
342
+ addInputParams();
343
+ }
344
+ function addInputParams() {
345
+ if (!paramValue.value) {
346
+ ElMessage.warning("请输入参数名");
347
+ return;
348
+ }
349
+ defalutValue.value = "${" + paramType.value + "." + paramValue.value + "}";
350
+ emits("update:modelValue", defalutValue.value);
351
+ closePopover();
352
+ }
353
+ function addPageParams() {
354
+ searchValue.value = searchValue.value.trim();
355
+ if (!searchValue.value) {
356
+ ElMessage.warning("请输入参数名");
357
+ return;
358
+ }
359
+ const tempValues = selectOptions.value.pageVarOptions || [];
360
+ for (let t of tempValues) {
361
+ if (t.value === searchValue.value) {
362
+ ElMessage.warning("该变量已存在!");
363
+ return;
364
+ }
365
+ }
366
+ const variable = {
367
+ code: getUuidv4(),
368
+ name: searchValue.value,
369
+ alias: searchValue.value,
370
+ type: "string",
371
+ defaultValue: ""
372
+ };
373
+ if (!pageContextUtil.pageContext.variables) {
374
+ pageContextUtil.pageContext.variables = [];
375
+ }
376
+ pageContextUtil.pageContext.variables.push(variable);
377
+ pageContextUtil.setPageContext(pageContextUtil.pageContext);
378
+ selectOptions.value.pageVarOptions = pageContextUtil.pageContextVarOptions.pageVarOptions;
379
+ valueOptions.value = selectOptions.value.pageVarOptions || [];
380
+ paramValue.value = searchValue.value;
381
+ defalutValue.value = "${" + paramType.value + "." + searchValue.value + "}";
382
+ searchValue.value = "";
383
+ emits("update:modelValue", defalutValue.value);
384
+ closePopover();
385
+ }
386
+ function getValueLabel(valueType, value) {
387
+ if (selectInputType.includes(valueType)) {
388
+ if (valueType === "context" && value && value.startsWith("currentDate") && value.length > 11) {
389
+ const str = value.substring(11);
390
+ const symbol = str.substring(0, 1);
391
+ const num = str.substring(1, str.length - 1);
392
+ const unit = str.substring(str.length - 1);
393
+ return num + symbolUnitFormatter(unit) + ("+" === symbol ? "后" : "前");
394
+ }
395
+ const option = valueOptions.value.find((item) => item.value === value);
396
+ if (option) {
397
+ return option.label;
398
+ }
399
+ }
400
+ return value;
401
+ }
402
+ const tableRef = ref();
403
+ function handSelectRow() {
404
+ if (!props.showLabel && !showInput.value) {
405
+ const index = filterTableData.value.findIndex((item) => item.value === paramValue.value);
406
+ if (index > -1) {
407
+ tableRef.value.setCurrentRow(filterTableData.value[index]);
408
+ }
409
+ }
410
+ }
411
+ function showPopover() {
412
+ openPopover();
413
+ nextTick(() => {
414
+ setSelectOptions();
415
+ if (paramType.value) {
416
+ setValueOptions(paramType.value);
417
+ }
418
+ handSelectRow();
419
+ });
420
+ }
421
+ return (_ctx, _cache) => {
422
+ const _component_el_icon = resolveComponent("el-icon");
423
+ const _component_el_input = resolveComponent("el-input");
424
+ const _component_el_cascader_panel = resolveComponent("el-cascader-panel");
425
+ const _component_el_col = resolveComponent("el-col");
426
+ const _component_el_empty = resolveComponent("el-empty");
427
+ const _component_el_button = resolveComponent("el-button");
428
+ const _component_el_table_column = resolveComponent("el-table-column");
429
+ const _component_el_option = resolveComponent("el-option");
430
+ const _component_el_select = resolveComponent("el-select");
431
+ const _component_el_table = resolveComponent("el-table");
432
+ const _component_el_row = resolveComponent("el-row");
433
+ const _component_el_popover = resolveComponent("el-popover");
434
+ return __props.showLabel ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(defalutValue.value), 1)) : (openBlock(), createBlock(_component_el_popover, {
435
+ key: 1,
436
+ ref_key: "popoverRef",
437
+ ref: popoverRef,
438
+ visible: popoverVisible.value,
439
+ width: 400
440
+ }, {
441
+ reference: withCtx(() => [
442
+ createVNode(_component_el_input, {
443
+ readonly: "",
444
+ size: __props.size,
445
+ title: defalutValue.value,
446
+ ref_key: "inputRef",
447
+ ref: inputRef,
448
+ onClick: showPopover,
449
+ formatter,
450
+ modelValue: defalutValue.value,
451
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => defalutValue.value = $event),
452
+ placeholder: "请选择"
453
+ }, {
454
+ suffix: withCtx(() => [
455
+ withDirectives(createVNode(_component_el_icon, {
456
+ style: { "cursor": "pointer" },
457
+ onClick: withModifiers(clearSelect, ["stop"])
458
+ }, {
459
+ default: withCtx(() => [
460
+ createVNode(unref(CircleClose))
461
+ ]),
462
+ _: 1
463
+ }, 512), [
464
+ [vShow, defalutValue.value]
465
+ ])
466
+ ]),
467
+ _: 1
468
+ }, 8, ["size", "title", "modelValue"])
469
+ ]),
470
+ default: withCtx(() => [
471
+ createVNode(_component_el_row, {
472
+ ref_key: "contentRef",
473
+ ref: contentRef
474
+ }, {
475
+ default: withCtx(() => [
476
+ createVNode(_component_el_col, { span: 8 }, {
477
+ default: withCtx(() => [
478
+ createVNode(_component_el_cascader_panel, {
479
+ modelValue: paramType.value,
480
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => paramType.value = $event),
481
+ onChange: paramTypeChange,
482
+ props: { emitPath: true },
483
+ size: "small",
484
+ options: typeOptions.value,
485
+ style: { "height": "240px", "width": "100%" }
486
+ }, null, 8, ["modelValue", "options"])
487
+ ]),
488
+ _: 1
489
+ }),
490
+ !paramType.value ? (openBlock(), createBlock(_component_el_col, {
491
+ key: 0,
492
+ span: 16
493
+ }, {
494
+ default: withCtx(() => [
495
+ createVNode(_component_el_empty, {
496
+ description: "请选择类型",
497
+ "image-size": 40
498
+ })
499
+ ]),
500
+ _: 1
501
+ })) : showInput.value ? (openBlock(), createBlock(_component_el_col, {
502
+ key: 1,
503
+ span: 16,
504
+ style: { "padding-left": "10px" }
505
+ }, {
506
+ default: withCtx(() => [
507
+ createVNode(_component_el_input, {
508
+ style: { "width": "210px" },
509
+ size: "small",
510
+ modelValue: paramValue.value,
511
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => paramValue.value = $event),
512
+ placeholder: "请手动输入"
513
+ }, null, 8, ["modelValue"]),
514
+ createVNode(_component_el_button, {
515
+ style: { "float": "right" },
516
+ onClick: addInputParams,
517
+ size: "small",
518
+ type: "primary",
519
+ icon: unref(Plus),
520
+ circle: ""
521
+ }, null, 8, ["icon"]),
522
+ createElementVNode("div", _hoisted_2, [
523
+ createVNode(_component_el_icon, null, {
524
+ default: withCtx(() => [
525
+ createVNode(unref(InfoFilled))
526
+ ]),
527
+ _: 1
528
+ }),
529
+ _hoisted_3
530
+ ]),
531
+ withDirectives(createElementVNode("div", _hoisted_4, [
532
+ createTextVNode(" 常用参数: "),
533
+ createVNode(_component_el_button, {
534
+ type: "primary",
535
+ size: "small",
536
+ onClick: _cache[3] || (_cache[3] = ($event) => addRequestParam("query"))
537
+ }, {
538
+ default: withCtx(() => [
539
+ createTextVNode("query")
540
+ ]),
541
+ _: 1
542
+ })
543
+ ], 512), [
544
+ [vShow, paramType.value == "request"]
545
+ ])
546
+ ]),
547
+ _: 1
548
+ })) : (openBlock(), createBlock(_component_el_col, {
549
+ key: 2,
550
+ span: 16,
551
+ style: { "padding-left": "10px" }
552
+ }, {
553
+ default: withCtx(() => [
554
+ createVNode(_component_el_input, {
555
+ size: "small",
556
+ modelValue: searchValue.value,
557
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => searchValue.value = $event),
558
+ placeholder: "搜索",
559
+ "suffix-icon": unref(Search),
560
+ style: normalizeStyle([{ "margin-bottom": "5px", "height": "25px" }, searchWidthStyle.value])
561
+ }, null, 8, ["modelValue", "suffix-icon", "style"]),
562
+ withDirectives(createVNode(_component_el_button, {
563
+ style: { "float": "right" },
564
+ onClick: addPageParams,
565
+ size: "small",
566
+ type: "primary",
567
+ icon: unref(Plus),
568
+ circle: ""
569
+ }, null, 8, ["icon"]), [
570
+ [vShow, paramType.value == "page"]
571
+ ]),
572
+ withDirectives(createElementVNode("div", _hoisted_5, [
573
+ createVNode(_component_el_icon, null, {
574
+ default: withCtx(() => [
575
+ createVNode(unref(InfoFilled))
576
+ ]),
577
+ _: 1
578
+ }),
579
+ _hoisted_6
580
+ ], 512), [
581
+ [vShow, paramType.value == "page"]
582
+ ]),
583
+ createVNode(_component_el_table, {
584
+ ref_key: "tableRef",
585
+ ref: tableRef,
586
+ height: tableHeight.value,
587
+ "show-header": false,
588
+ size: "small",
589
+ "current-row-key": "code",
590
+ "row-key": "code",
591
+ "tree-props": { children: "items" },
592
+ "highlight-current-row": true,
593
+ data: filterTableData.value
594
+ }, {
595
+ default: withCtx(() => [
596
+ createVNode(_component_el_table_column, { width: "65" }, {
597
+ default: withCtx((scope) => [
598
+ createVNode(_component_el_button, {
599
+ size: "small",
600
+ onClick: ($event) => selectRow(scope.row)
601
+ }, {
602
+ default: withCtx(() => [
603
+ createTextVNode(" 选择 ")
604
+ ]),
605
+ _: 2
606
+ }, 1032, ["onClick"])
607
+ ]),
608
+ _: 1
609
+ }),
610
+ createVNode(_component_el_table_column, {
611
+ label: "Date",
612
+ prop: "label"
613
+ }, {
614
+ default: withCtx((scope) => [
615
+ paramType.value == "context" && scope.row.type == "range" ? (openBlock(), createElementBlock("div", _hoisted_7, [
616
+ createVNode(_component_el_input, {
617
+ size: "small",
618
+ modelValue: scope.row.symbolNum,
619
+ "onUpdate:modelValue": ($event) => scope.row.symbolNum = $event,
620
+ placeholder: "",
621
+ style: { "width": "35px", "margin-left": "4px" }
622
+ }, null, 8, ["modelValue", "onUpdate:modelValue"]),
623
+ createVNode(_component_el_select, {
624
+ size: "small",
625
+ style: { "margin-left": "4px", "width": "50px" },
626
+ modelValue: scope.row.symbolUnit,
627
+ "onUpdate:modelValue": ($event) => scope.row.symbolUnit = $event,
628
+ placeholder: ""
629
+ }, {
630
+ default: withCtx(() => [
631
+ createVNode(_component_el_option, {
632
+ label: "天",
633
+ value: "d"
634
+ }),
635
+ createVNode(_component_el_option, {
636
+ label: "周",
637
+ value: "w"
638
+ }),
639
+ createVNode(_component_el_option, {
640
+ label: "月",
641
+ value: "m"
642
+ }),
643
+ createVNode(_component_el_option, {
644
+ label: "年",
645
+ value: "y"
646
+ })
647
+ ]),
648
+ _: 2
649
+ }, 1032, ["modelValue", "onUpdate:modelValue"]),
650
+ createVNode(_component_el_select, {
651
+ size: "small",
652
+ style: { "margin-left": "4px", "width": "50px" },
653
+ modelValue: scope.row.symbol,
654
+ "onUpdate:modelValue": ($event) => scope.row.symbol = $event,
655
+ placeholder: ""
656
+ }, {
657
+ default: withCtx(() => [
658
+ createVNode(_component_el_option, {
659
+ label: "前",
660
+ value: "-"
661
+ }),
662
+ createVNode(_component_el_option, {
663
+ label: "后",
664
+ value: "+"
665
+ })
666
+ ]),
667
+ _: 2
668
+ }, 1032, ["modelValue", "onUpdate:modelValue"])
669
+ ])) : createCommentVNode("", true),
670
+ paramType.value == "data" ? (openBlock(), createElementBlock("span", {
671
+ key: 1,
672
+ title: scope.row.label + " " + scope.row.value
673
+ }, toDisplayString(scope.row.label + " " + scope.row.value), 9, _hoisted_8)) : (openBlock(), createElementBlock("span", {
674
+ key: 2,
675
+ title: scope.row.label
676
+ }, toDisplayString(scope.row.label), 9, _hoisted_9))
677
+ ]),
678
+ _: 1
679
+ })
680
+ ]),
681
+ _: 1
682
+ }, 8, ["height", "data"]),
683
+ createElementVNode("div", _hoisted_10, "总计:" + toDisplayString(filterTableData.value.length), 1)
684
+ ]),
685
+ _: 1
686
+ }))
687
+ ]),
688
+ _: 1
689
+ }, 512)
690
+ ]),
691
+ _: 1
692
+ }, 8, ["visible"]));
693
+ };
694
+ }
695
+ });
696
+ export {
697
+ _sfc_main as default
698
+ };