super-page-designer 2.0.88 → 2.0.92

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