super-page-designer 2.1.80 → 2.1.81

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