super-page-designer 2.0.37 → 2.0.41-beta1

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