super-page-designer 2.1.38 → 2.1.41

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