@fecp/designer 5.5.120 → 5.5.121

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 (115) hide show
  1. package/es/designer/package.json.mjs +1 -1
  2. package/es/designer/src/packages/dataSource/index.vue.mjs +3 -3
  3. package/es/designer/src/packages/dialog/index.vue2.mjs +15 -15
  4. package/es/designer/src/packages/dialog/useDialogDialog.mjs +1 -1
  5. package/es/designer/src/packages/dialogGlobal/index.vue2.mjs +15 -16
  6. package/es/designer/src/packages/dialogGlobal/useDialogGlobalDialog.mjs +1 -1
  7. package/es/designer/src/packages/event/pageEvent.vue.mjs +1 -1
  8. package/es/designer/src/packages/form/index.vue.mjs +2 -2
  9. package/es/designer/src/packages/form/property/widgets.vue.mjs +2 -2
  10. package/es/designer.css +505 -415
  11. package/es/packages/mobile/index.mjs +2 -0
  12. package/es/packages/mobile/src/api/index.mjs +1 -1
  13. package/es/packages/mobile/src/assets/images/baseRate.png.mjs +1 -1
  14. package/es/packages/mobile/src/assets/images/home-bg.png.mjs +1 -1
  15. package/es/packages/mobile/src/assets/images/rentCalc.png.mjs +1 -1
  16. package/es/packages/mobile/src/assets/images/user.png.mjs +4 -0
  17. package/es/packages/mobile/src/components/all.mjs +2 -0
  18. package/es/packages/mobile/src/components/base/card/Card.vue.mjs +2 -2
  19. package/es/packages/mobile/src/components/custom/appDetail/AppDetail.vue.mjs +62 -44
  20. package/es/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.mjs +2 -2
  21. package/es/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.mjs +128 -67
  22. package/es/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.mjs +5 -5
  23. package/es/packages/mobile/src/components/custom/customCode/CustomCode.vue.mjs +60 -0
  24. package/es/packages/mobile/src/components/custom/customCode/index.mjs +10 -0
  25. package/es/packages/mobile/src/components/custom/document/Document.vue.mjs +2 -2
  26. package/es/packages/mobile/src/components/custom/userSelect/UserSelect.vue.mjs +2 -2
  27. package/es/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.mjs +187 -7
  28. package/es/packages/mobile/src/components/dataDisplay/dataStat/DataStat.vue.mjs +2 -2
  29. package/es/packages/mobile/src/components/dataDisplay/mine/Mine.vue.mjs +33 -9
  30. package/es/packages/mobile/src/components/dataDisplay/rentCalcResult/RentCalcResult.vue.mjs +39 -79
  31. package/es/packages/mobile/src/components/feedback/quickFilter/QuickFilter.vue.mjs +10 -2
  32. package/es/packages/mobile/src/components/form/field/Field.vue.mjs +167 -32
  33. package/es/packages/mobile/src/components/form/fieldArea/FieldArea.vue.mjs +3 -2
  34. package/es/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.mjs +13 -15
  35. package/es/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.mjs +10 -10
  36. package/es/packages/mobile/src/components/form/fieldCheckbox/FieldCheckbox.vue.mjs +7 -23
  37. package/es/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.mjs +14 -26
  38. package/es/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.mjs +14 -15
  39. package/es/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.mjs +6 -19
  40. package/es/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.mjs +9 -25
  41. package/es/packages/mobile/src/components/form/fieldRadio/FieldRadio.vue.mjs +8 -24
  42. package/es/packages/mobile/src/components/form/search/Search.vue.mjs +15 -6
  43. package/es/packages/mobile/src/components/form/uploader/Uploader.vue.mjs +2 -2
  44. package/es/packages/mobile/src/components/navigation/tabbar/Tabbar.vue.mjs +9 -5
  45. package/es/packages/mobile/src/components/navigation/tabs/Tabs.vue.mjs +58 -25
  46. package/es/packages/mobile/src/index.vue.mjs +21 -4
  47. package/es/packages/mobile/src/page.vue.mjs +342 -138
  48. package/es/packages/mobile/src/utils/common.mjs +21 -0
  49. package/es/packages/mobile/src/utils/datasource.mjs +3 -3
  50. package/es/packages/mobile/src/utils/eventFlow/actionHandlers.mjs +35 -22
  51. package/es/packages/mobile/src/utils/formatterUtil.mjs +4 -24
  52. package/es/packages/mobile/src/utils/formulajs/calculate.mjs +11 -5
  53. package/es/packages/mobile/src/utils/optionUtil.mjs +3 -28
  54. package/es/packages/mobile/src/utils/pageHistory.mjs +16 -0
  55. package/es/packages/mobile/src/utils/validation.mjs +129 -0
  56. package/es/packages/vue/src/components/forms/number/Number.vue.mjs +3 -2
  57. package/es/packages/vue/src/components/table/TableColumn.vue.mjs +12 -8
  58. package/lib/designer/package.json.js +1 -1
  59. package/lib/designer/src/packages/dataSource/index.vue.js +3 -3
  60. package/lib/designer/src/packages/dialog/index.vue2.js +15 -15
  61. package/lib/designer/src/packages/dialog/useDialogDialog.js +1 -1
  62. package/lib/designer/src/packages/dialogGlobal/index.vue2.js +15 -16
  63. package/lib/designer/src/packages/dialogGlobal/useDialogGlobalDialog.js +1 -1
  64. package/lib/designer/src/packages/event/pageEvent.vue.js +1 -1
  65. package/lib/designer/src/packages/form/index.vue.js +2 -2
  66. package/lib/designer/src/packages/form/property/widgets.vue.js +2 -2
  67. package/lib/designer.css +505 -415
  68. package/lib/packages/mobile/index.js +4 -2
  69. package/lib/packages/mobile/src/api/index.js +1 -1
  70. package/lib/packages/mobile/src/assets/images/baseRate.png.js +1 -1
  71. package/lib/packages/mobile/src/assets/images/home-bg.png.js +1 -1
  72. package/lib/packages/mobile/src/assets/images/rentCalc.png.js +1 -1
  73. package/lib/packages/mobile/src/assets/images/user.png.js +4 -0
  74. package/lib/packages/mobile/src/components/all.js +2 -0
  75. package/lib/packages/mobile/src/components/base/card/Card.vue.js +2 -2
  76. package/lib/packages/mobile/src/components/custom/appDetail/AppDetail.vue.js +61 -43
  77. package/lib/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.js +2 -2
  78. package/lib/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.js +131 -70
  79. package/lib/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.js +5 -5
  80. package/lib/packages/mobile/src/components/custom/customCode/CustomCode.vue.js +60 -0
  81. package/lib/packages/mobile/src/components/custom/customCode/index.js +10 -0
  82. package/lib/packages/mobile/src/components/custom/document/Document.vue.js +2 -2
  83. package/lib/packages/mobile/src/components/custom/userSelect/UserSelect.vue.js +2 -2
  84. package/lib/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.js +187 -7
  85. package/lib/packages/mobile/src/components/dataDisplay/dataStat/DataStat.vue.js +2 -2
  86. package/lib/packages/mobile/src/components/dataDisplay/mine/Mine.vue.js +38 -14
  87. package/lib/packages/mobile/src/components/dataDisplay/rentCalcResult/RentCalcResult.vue.js +39 -79
  88. package/lib/packages/mobile/src/components/feedback/quickFilter/QuickFilter.vue.js +10 -2
  89. package/lib/packages/mobile/src/components/form/field/Field.vue.js +165 -30
  90. package/lib/packages/mobile/src/components/form/fieldArea/FieldArea.vue.js +3 -2
  91. package/lib/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.js +13 -15
  92. package/lib/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.js +9 -9
  93. package/lib/packages/mobile/src/components/form/fieldCheckbox/FieldCheckbox.vue.js +6 -22
  94. package/lib/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.js +13 -25
  95. package/lib/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.js +13 -14
  96. package/lib/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.js +6 -19
  97. package/lib/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.js +8 -24
  98. package/lib/packages/mobile/src/components/form/fieldRadio/FieldRadio.vue.js +7 -23
  99. package/lib/packages/mobile/src/components/form/search/Search.vue.js +15 -6
  100. package/lib/packages/mobile/src/components/form/uploader/Uploader.vue.js +2 -2
  101. package/lib/packages/mobile/src/components/navigation/tabbar/Tabbar.vue.js +9 -5
  102. package/lib/packages/mobile/src/components/navigation/tabs/Tabs.vue.js +61 -28
  103. package/lib/packages/mobile/src/index.vue.js +20 -3
  104. package/lib/packages/mobile/src/page.vue.js +341 -137
  105. package/lib/packages/mobile/src/utils/common.js +21 -0
  106. package/lib/packages/mobile/src/utils/datasource.js +3 -3
  107. package/lib/packages/mobile/src/utils/eventFlow/actionHandlers.js +35 -22
  108. package/lib/packages/mobile/src/utils/formatterUtil.js +3 -23
  109. package/lib/packages/mobile/src/utils/formulajs/calculate.js +11 -5
  110. package/lib/packages/mobile/src/utils/optionUtil.js +2 -27
  111. package/lib/packages/mobile/src/utils/pageHistory.js +16 -0
  112. package/lib/packages/mobile/src/utils/validation.js +129 -0
  113. package/lib/packages/vue/src/components/forms/number/Number.vue.js +3 -2
  114. package/lib/packages/vue/src/components/table/TableColumn.vue.js +12 -8
  115. package/package.json +1 -1
@@ -68,7 +68,7 @@ class DataSourceManager {
68
68
  if (this.sortRules && this.sortRules.length > 0) {
69
69
  params.sortRules = JSON.stringify(this.sortRules);
70
70
  }
71
- return { ...this.initSearchData, ...params, ...extraParams };
71
+ return { ...this.initSearchData, ...params, ...extraParams, isMobile: true };
72
72
  }
73
73
  /**
74
74
  * 根据内容类型处理请求数据
@@ -155,13 +155,13 @@ class DataSourceManager {
155
155
  break;
156
156
  case "post":
157
157
  if (currentDs.contentType === "formData") {
158
- response = await this.http.postForm(url, params, false);
158
+ response = await this.http.postFormMobile(url, params, false, false);
159
159
  } else if (currentDs.contentType === "download") {
160
160
  await this.http.download(url, params, false);
161
161
  } else if (currentDs.contentType === "upload") {
162
162
  response = await this.http.upload(url, params, false);
163
163
  } else {
164
- response = await this.http.post(url, params, false);
164
+ response = await this.http.postMobile(url, params, false);
165
165
  }
166
166
  break;
167
167
  case "put":
@@ -10,9 +10,17 @@ import "../../../../../node_modules/element-plus/es/index.mjs";
10
10
  /* empty css */
11
11
  /* empty css */
12
12
  import { ElMessageBox } from "../../../../../node_modules/element-plus/es/components/message-box/index.mjs";
13
+ import { showToast, showFailToast, showSuccessToast } from "../../../../../node_modules/vant/es/toast/function-call.mjs";
14
+ import "../../../../../node_modules/vant/es/toast/index.mjs";
15
+ import { showConfirmDialog, showDialog } from "../../../../../node_modules/vant/es/dialog/function-call.mjs";
16
+ import "../../../../../node_modules/vant/es/dialog/index.mjs";
13
17
  async function handlePageJump(node, data, fields, context) {
18
+ var _a, _b, _c;
14
19
  const basic = node.basic || {};
15
- const params = parseRouteParams(basic.routeParams, data, fields);
20
+ const formComponent = (_a = context.components) == null ? void 0 : _a.form;
21
+ const getFormDataMethod = (_c = (_b = formComponent == null ? void 0 : formComponent.$) == null ? void 0 : _b.exposed) == null ? void 0 : _c.getFormData;
22
+ let formData = getFormDataMethod();
23
+ const params = parseRouteParams(basic.routeParams, { ...formData, ...data }, fields);
16
24
  if (basic.pageId) {
17
25
  if (basic.canNotGoBack === true) {
18
26
  emitter.emit("replaceLoadPage", { pageId: basic.pageId, params });
@@ -116,26 +124,19 @@ async function handleApiCall(node, data, fields, context, params) {
116
124
  }
117
125
  async function handleConfirm(node, data, fields, context) {
118
126
  const basic = node.basic || {};
119
- const config = {
120
- messageType: basic.messageType || "warning",
121
- title: basic.title || "确认操作",
122
- message: basic.message || "确定要执行此操作吗?",
123
- confirmText: basic.confirmText || "确定",
124
- cancelText: basic.cancelText || "取消",
125
- showCancel: basic.showCancel !== false,
126
- confirmAction: basic.confirmAction || "continue",
127
- cancelAction: basic.cancelAction || "stop"
128
- };
129
127
  try {
130
- await ElMessageBox.confirm(config.message, config.title, {
131
- confirmButtonText: config.confirmText,
132
- cancelButtonText: config.cancelText,
133
- type: config.messageType,
134
- showCancelButton: config.showCancel,
135
- draggable: true,
136
- showClose: false
137
- });
138
- if (config.confirmAction === "stop") {
128
+ if (basic.showCancel) {
129
+ await showConfirmDialog({
130
+ title: basic.title,
131
+ message: basic.message
132
+ });
133
+ } else {
134
+ await showDialog({
135
+ title: basic.title,
136
+ message: basic.message
137
+ });
138
+ }
139
+ if (basic.confirmAction === "stop") {
139
140
  return {
140
141
  success: false,
141
142
  message: "用户确认后停止执行",
@@ -170,8 +171,20 @@ async function handleMessage(node, data, fields, context) {
170
171
  };
171
172
  }
172
173
  if (node.basic) {
173
- node.basic.messageType || "info";
174
- node.basic.message || "操作成功";
174
+ const messageType = node.basic.messageType || "info";
175
+ const message = node.basic.message || "操作成功";
176
+ switch (messageType) {
177
+ case "success":
178
+ showSuccessToast(message);
179
+ break;
180
+ case "error":
181
+ showFailToast(message);
182
+ break;
183
+ case "info":
184
+ default:
185
+ showToast(message);
186
+ break;
187
+ }
175
188
  }
176
189
  return {
177
190
  success: true,
@@ -45,7 +45,6 @@ const dateFormatter = (value, dateType, formatterType) => {
45
45
  return dateValue.format(textFormat);
46
46
  };
47
47
  const textFormatter = (value, dataFormatter) => {
48
- console.log("🚀 ~ textFormatter ~ dataFormatter:", dataFormatter);
49
48
  switch (dataFormatter) {
50
49
  case "money(yuan)":
51
50
  case "money(wanyuan)":
@@ -72,6 +71,9 @@ const textFormatter = (value, dataFormatter) => {
72
71
  }
73
72
  };
74
73
  const moneyFormatter = (value, dataFormatter) => {
74
+ if (!value) {
75
+ return value;
76
+ }
75
77
  let moneyValue;
76
78
  switch (dataFormatter) {
77
79
  case "money(yuan)":
@@ -89,27 +91,6 @@ const moneyFormatter = (value, dataFormatter) => {
89
91
  }
90
92
  return XEUtils.commafy(moneyValue, { digits: 2 });
91
93
  };
92
- const textFormatter4Input = (value, dataFormatter) => {
93
- if (!value) {
94
- return value;
95
- }
96
- switch (dataFormatter) {
97
- case "money(yuan)":
98
- case "money(wanyuan)":
99
- case "money(yi)":
100
- return XEUtils.toNumberString(XEUtils.toNumber(value)).replace(
101
- /\B(?=(\d{3})+(?!\d))/g,
102
- ","
103
- );
104
- case "bankCard":
105
- return XEUtils.toValueString(value.replace(/\s+/g, "")).replace(
106
- /\B(?=(\d{4})+(?!\d))/g,
107
- " "
108
- );
109
- default:
110
- return value;
111
- }
112
- };
113
94
  const reverseTextFormatter = (value, dataFormatter) => {
114
95
  if (!value) {
115
96
  return value;
@@ -180,6 +161,5 @@ export {
180
161
  reverseMoneyFormatter,
181
162
  reverseTextFormatter,
182
163
  selectFormatter,
183
- textFormatter,
184
- textFormatter4Input
164
+ textFormatter
185
165
  };
@@ -1,4 +1,5 @@
1
1
  import functionCore from "./functionCore.mjs";
2
+ import XEUtils from "xe-utils";
2
3
  import "vue";
3
4
  function calculate(params) {
4
5
  const { text, value = {}, fieldsList = [] } = params;
@@ -26,11 +27,16 @@ function calculate(params) {
26
27
  const fieldItem = fieldsList.find((item) => item.fieldName == enCode);
27
28
  if (fieldItem) {
28
29
  switch (fieldItem.fieldType) {
29
- case "number":
30
- if (!data) {
31
- data = 0;
32
- } else {
33
- Number(data);
30
+ case "text":
31
+ switch (fieldItem.dataFormatter) {
32
+ case "money(yuan)":
33
+ case "money(wanyuan)":
34
+ case "money(yi)":
35
+ case "percent":
36
+ case "thousand":
37
+ case "tenThousand":
38
+ data = XEUtils.toNumber(data);
39
+ break;
34
40
  }
35
41
  break;
36
42
  case "switch":
@@ -25,7 +25,7 @@ const getOptions = ({
25
25
  resolve([]);
26
26
  break;
27
27
  }
28
- const response = await ctx.$http.postForm(
28
+ const response = await ctx.$http.postFormMobile(
29
29
  "/base-server/parm/sysParmDic/getDicListByKey",
30
30
  {
31
31
  keyName: dictionaryValue
@@ -76,33 +76,9 @@ const getOptions = ({
76
76
  }
77
77
  });
78
78
  };
79
- const getTreeOptions = ({
80
- optionType,
81
- dataSource,
82
- dataSourceParams,
83
- staticOptions,
84
- optionsFieldNames
85
- }) => {
86
- return new Promise((resolve, reject) => {
87
- switch (optionType) {
88
- case "static":
89
- resolve(staticOptions);
90
- case "library":
91
- const dataSourceRef = useDataSource(dataSource);
92
- dataSourceRef == null ? void 0 : dataSourceRef.load(dataSourceParams || {}).then((res) => {
93
- var _a;
94
- const data = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.records) || (res == null ? void 0 : res.data) || res || [];
95
- resolve(data);
96
- }).catch((err) => {
97
- console.error(err);
98
- });
99
- break;
100
- }
101
- });
102
- };
103
79
  const getParmDicMapByKeys = async (dicKeys) => {
104
80
  const http = useHttp();
105
- const res = await http.postForm(
81
+ const res = await http.postFormMobile(
106
82
  `${baseUrl}/parm/sysParmDic/getDicListByKey`,
107
83
  {
108
84
  keyName: dicKeys
@@ -112,6 +88,5 @@ const getParmDicMapByKeys = async (dicKeys) => {
112
88
  };
113
89
  export {
114
90
  getOptions,
115
- getParmDicMapByKeys,
116
- getTreeOptions
91
+ getParmDicMapByKeys
117
92
  };
@@ -39,6 +39,7 @@ class PageHistory {
39
39
  if (this.history.length > 0 && this.history[this.history.length - 1].id == page.id) {
40
40
  return;
41
41
  }
42
+ this.setWmpTitle(page.name);
42
43
  this.history.push({
43
44
  id: page.id,
44
45
  name: page.name || "",
@@ -59,6 +60,7 @@ class PageHistory {
59
60
  this.push(page);
60
61
  return;
61
62
  }
63
+ this.setWmpTitle(page.name);
62
64
  this.history[this.history.length - 1] = {
63
65
  id: page.id,
64
66
  name: page.name || "",
@@ -81,6 +83,7 @@ class PageHistory {
81
83
  const pageId = prevPage ? prevPage.id : null;
82
84
  const params = prevPage ? prevPage.params : null;
83
85
  if (pageId) {
86
+ this.setWmpTitle(prevPage.name);
84
87
  emitter.emit("loadPage", { pageId, params });
85
88
  }
86
89
  }
@@ -115,6 +118,19 @@ class PageHistory {
115
118
  this.history = [];
116
119
  this.saveHistory();
117
120
  }
121
+ /**
122
+ * 设置微信小程序标题
123
+ */
124
+ setWmpTitle(title) {
125
+ if (window.wx && wx.miniProgram) {
126
+ wx.miniProgram.postMessage({
127
+ data: {
128
+ type: "setTitle",
129
+ title
130
+ }
131
+ });
132
+ }
133
+ }
118
134
  }
119
135
  const pageHistory = new PageHistory();
120
136
  export {
@@ -0,0 +1,129 @@
1
+ import { checkFilterMatch } from "./parseFilterConfig.mjs";
2
+ const VALIDATION_RULES = {
3
+ // 身份证
4
+ idCard: {
5
+ pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
6
+ message: "请输入正确的身份证号码"
7
+ },
8
+ // 统一社会信用代码
9
+ creditCode: {
10
+ pattern: /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/,
11
+ message: "请输入正确的统一社会信用代码"
12
+ },
13
+ // 邮编
14
+ zipCode: {
15
+ pattern: /^[1-9]\d{5}$/,
16
+ message: "请输入正确的邮政编码"
17
+ },
18
+ // 传真
19
+ fax: {
20
+ pattern: /^\d{3,4}-?\d{7,8}$/,
21
+ message: "请输入正确的传真号码"
22
+ },
23
+ // 银行卡号
24
+ bankCard: {
25
+ pattern: /^[1-9]\d{15,18}$/,
26
+ message: "请输入正确的银行卡号"
27
+ },
28
+ // 邮箱
29
+ email: {
30
+ pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
31
+ message: "请输入正确的邮箱地址"
32
+ },
33
+ // 手机
34
+ mobile: {
35
+ pattern: /^1[3-9]\d{9}$/,
36
+ message: "请输入正确的手机号码"
37
+ },
38
+ // 座机
39
+ phone: {
40
+ pattern: /^0\d{2,3}-?\d{7,8}$/,
41
+ message: "请输入正确的座机号码"
42
+ },
43
+ // 手机+座机
44
+ mobilePhone: {
45
+ pattern: /^(1[3-9]\d{9})|(0\d{2,3}-?\d{7,8})$/,
46
+ message: "请输入正确的联系电话"
47
+ }
48
+ };
49
+ function generateFieldRules(component, formData, fields) {
50
+ const rules = [];
51
+ if (!component.fieldName) {
52
+ return rules;
53
+ }
54
+ if (component.required) {
55
+ rules.push({
56
+ required: true,
57
+ message: component.requiredMessage || `请录入${component.label}`,
58
+ trigger: "blur"
59
+ });
60
+ }
61
+ if (component.validationType && component.validationType !== "none") {
62
+ if (component.validationType === "regex" && component.validationPattern) {
63
+ try {
64
+ const validator = (_rule, _value, callback) => {
65
+ try {
66
+ const isMatch = checkFilterMatch(component.validationPattern, formData.value, fields);
67
+ if (!isMatch) {
68
+ callback(new Error(component.validationMessage || "校验失败"));
69
+ } else {
70
+ callback();
71
+ }
72
+ } catch (error) {
73
+ console.error("Validation function error:", error);
74
+ callback(new Error(component.validationMessage || "校验函数执行出错"));
75
+ }
76
+ };
77
+ rules.push({
78
+ validator,
79
+ trigger: "change"
80
+ });
81
+ } catch (e) {
82
+ console.error("Invalid validation pattern:", component.validationPattern, e);
83
+ }
84
+ } else if (component.validationType === "custom" && component.customValidator) {
85
+ try {
86
+ const validator = createCustomValidator(component.customValidator);
87
+ if (validator) {
88
+ rules.push({
89
+ validator,
90
+ trigger: "blur"
91
+ });
92
+ }
93
+ } catch (e) {
94
+ console.error("Invalid custom validator:", e);
95
+ }
96
+ } else if (VALIDATION_RULES[component.validationType]) {
97
+ const rule = VALIDATION_RULES[component.validationType];
98
+ rules.push({
99
+ pattern: rule.pattern,
100
+ message: component.validationMessage || rule.message,
101
+ trigger: "blur"
102
+ });
103
+ }
104
+ }
105
+ return rules;
106
+ }
107
+ function createCustomValidator(validatorStr) {
108
+ if (!validatorStr || typeof validatorStr !== "string") {
109
+ return null;
110
+ }
111
+ try {
112
+ const validator = new Function("return " + validatorStr)();
113
+ if (typeof validator === "function") {
114
+ return (rule, value, callback) => {
115
+ try {
116
+ validator(rule, value, callback);
117
+ } catch (error) {
118
+ callback(new Error("校验函数执行出错: " + error.message));
119
+ }
120
+ };
121
+ }
122
+ } catch (e) {
123
+ console.error("Failed to create validator from string:", e);
124
+ }
125
+ return null;
126
+ }
127
+ export {
128
+ generateFieldRules
129
+ };
@@ -195,7 +195,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
195
195
  if (showThousandsSeparator.value) {
196
196
  value = formatNumberWithComma(value);
197
197
  }
198
- return value;
198
+ return (value == null ? void 0 : value.toString()) || "";
199
199
  };
200
200
  const showThousandsSeparator = computed(() => {
201
201
  return props.format == "yuan" || props.format == "wan" || props.format == "million";
@@ -449,6 +449,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
449
449
  disabled: __props.disabled,
450
450
  readonly: __props.readonly,
451
451
  formatter,
452
+ maxlength: 15,
452
453
  parser,
453
454
  onBlur: handleBlur,
454
455
  onInput: handleInput
@@ -504,7 +505,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
504
505
  };
505
506
  }
506
507
  });
507
- const _Number = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-01611195"]]);
508
+ const _Number = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-93ac5b02"]]);
508
509
  export {
509
510
  _Number as default
510
511
  };
@@ -38,7 +38,8 @@ const _hoisted_2 = {
38
38
  key: 0,
39
39
  class: "prefix-content"
40
40
  };
41
- const _hoisted_3 = {
41
+ const _hoisted_3 = ["title"];
42
+ const _hoisted_4 = {
42
43
  key: 3,
43
44
  class: "suffix-content"
44
45
  };
@@ -271,7 +272,7 @@ const _sfc_main = {
271
272
  resizable: false,
272
273
  "show-header-overflow": "",
273
274
  "show-footer-overflow": "",
274
- "show-overflow": field.isOverflowWrap ? false : "title",
275
+ "show-overflow": false,
275
276
  "header-class-name": field.sortRule == "server" ? "serverSort" : ""
276
277
  }, {
277
278
  default: withCtx(({ row }) => [
@@ -282,18 +283,21 @@ const _sfc_main = {
282
283
  field.prefix ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(field.prefix), 1)) : createCommentVNode("", true),
283
284
  field.isLink ? (openBlock(), createBlock(_component_el_link, {
284
285
  key: 1,
286
+ class: "cell-link",
285
287
  type: "primary",
286
288
  underline: "never",
289
+ title: __props.formatCellValue(row, field),
287
290
  onClick: ($event) => handleButtonClick(row, field, field.linkConfig)
288
291
  }, {
289
292
  default: withCtx(() => [
290
293
  createTextVNode(toDisplayString(__props.formatCellValue(row, field)), 1)
291
294
  ]),
292
295
  _: 2
293
- }, 1032, ["onClick"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [
294
- createTextVNode(toDisplayString(__props.formatCellValue(row, field)), 1)
295
- ], 64)),
296
- field.suffix ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(field.suffix), 1)) : createCommentVNode("", true),
296
+ }, 1032, ["title", "onClick"])) : (openBlock(), createElementBlock("span", {
297
+ key: 2,
298
+ title: __props.formatCellValue(row, field)
299
+ }, toDisplayString(__props.formatCellValue(row, field)), 9, _hoisted_3)),
300
+ field.suffix ? (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(field.suffix), 1)) : createCommentVNode("", true),
297
301
  field.canCopy ? (openBlock(), createBlock(_component_el_icon, {
298
302
  key: 4,
299
303
  class: "copy-icon",
@@ -307,7 +311,7 @@ const _sfc_main = {
307
311
  ], true)
308
312
  ]),
309
313
  _: 2
310
- }, 1032, ["field", "title", "width", "min-width", "fixed", "align", "header-align", "sortable", "show-overflow", "header-class-name"]);
314
+ }, 1032, ["field", "title", "width", "min-width", "fixed", "align", "header-align", "sortable", "header-class-name"]);
311
315
  }), 128)),
312
316
  !__props.readonly && shouldShowOptColumn.value ? (openBlock(), createBlock(unref(VxeColumn), {
313
317
  key: 3,
@@ -339,7 +343,7 @@ const _sfc_main = {
339
343
  };
340
344
  }
341
345
  };
342
- const TableColumn = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-336afafd"]]);
346
+ const TableColumn = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7b218935"]]);
343
347
  export {
344
348
  TableColumn as default
345
349
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const version = "5.5.119";
3
+ const version = "5.5.121";
4
4
  const packageJson = {
5
5
  version
6
6
  };
@@ -57,9 +57,9 @@ const _sfc_main = {
57
57
  selectedDataSources.value = common.cloneDeep(common.getEditConfigDataSources());
58
58
  if (selectedDataSources.value.length > 0 && activeDataSourceIndex.value === -1) {
59
59
  activeDataSourceIndex.value = 0;
60
- } else {
61
- activeDataSourceIndex.value = -1;
62
60
  }
61
+ } else {
62
+ activeDataSourceIndex.value = -1;
63
63
  }
64
64
  });
65
65
  const isEditingNew = Vue.ref(false);
@@ -296,5 +296,5 @@ const _sfc_main = {
296
296
  };
297
297
  }
298
298
  };
299
- const DataSourceDialog = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-482d52bb"]]);
299
+ const DataSourceDialog = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-c3412ba0"]]);
300
300
  exports.default = DataSourceDialog;
@@ -1,20 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const index$7 = require("../../../../node_modules/element-plus/es/components/icon/index.js");
4
- const index$9 = require("../../../../node_modules/element-plus/es/components/form/index.js");
5
- const index$5 = require("../../../../node_modules/element-plus/es/components/input/index.js");
6
- const index$8 = require("../../../../node_modules/element-plus/es/components/scrollbar/index.js");
7
- const index$3 = require("../../../../node_modules/element-plus/es/components/button/index.js");
8
- const index$b = require("../../../../node_modules/element-plus/es/components/select/index.js");
9
- const index$e = require("../../../../node_modules/element-plus/es/components/checkbox/index.js");
10
- const index$a = require("../../../../node_modules/element-plus/es/components/radio/index.js");
11
- const index$2 = require("../../../../node_modules/element-plus/es/components/container/index.js");
12
- const index$1 = require("../../../../node_modules/element-plus/es/components/dialog/index.js");
13
- const index$6 = require("../../../../node_modules/element-plus/es/components/link/index.js");
14
- const index$d = require("../../../../node_modules/element-plus/es/components/switch/index.js");
15
- const index$f = require("../../../../node_modules/element-plus/es/components/message/index.js");
16
- const index$c = require("../../../../node_modules/element-plus/es/components/popover/index.js");
17
- require("../../../../_virtual/dayjs.min.js");
3
+ require("../../../../node_modules/element-plus/es/index.js");
18
4
  ;/* empty css */
19
5
  ;/* empty css */
20
6
  ;/* empty css */
@@ -58,6 +44,20 @@ const widgets = require("../table/property/widgets.vue.js");
58
44
  ;/* empty css */
59
45
  ;/* empty css */
60
46
  const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export-helper.js");
47
+ const index$1 = require("../../../../node_modules/element-plus/es/components/dialog/index.js");
48
+ const index$2 = require("../../../../node_modules/element-plus/es/components/container/index.js");
49
+ const index$3 = require("../../../../node_modules/element-plus/es/components/button/index.js");
50
+ const index$5 = require("../../../../node_modules/element-plus/es/components/input/index.js");
51
+ const index$6 = require("../../../../node_modules/element-plus/es/components/link/index.js");
52
+ const index$7 = require("../../../../node_modules/element-plus/es/components/icon/index.js");
53
+ const index$8 = require("../../../../node_modules/element-plus/es/components/scrollbar/index.js");
54
+ const index$9 = require("../../../../node_modules/element-plus/es/components/form/index.js");
55
+ const index$a = require("../../../../node_modules/element-plus/es/components/radio/index.js");
56
+ const index$b = require("../../../../node_modules/element-plus/es/components/select/index.js");
57
+ const index$c = require("../../../../node_modules/element-plus/es/components/popover/index.js");
58
+ const index$d = require("../../../../node_modules/element-plus/es/components/switch/index.js");
59
+ const index$e = require("../../../../node_modules/element-plus/es/components/checkbox/index.js");
60
+ const index$f = require("../../../../node_modules/element-plus/es/components/message/index.js");
61
61
  const _hoisted_1 = { key: 0 };
62
62
  const _hoisted_2 = { class: "dialog-menu-item is-editing" };
63
63
  const _hoisted_3 = { class: "new-item-content" };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./index.vue.js");
3
+ const index = require("./index.vue2.js");
4
4
  const Vue = require("vue");
5
5
  function useDialogDialog() {
6
6
  const dialogDialogVisible = Vue.ref(false);
@@ -1,20 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const index$4 = require("../../../../node_modules/element-plus/es/components/icon/index.js");
4
- const index$a = require("../../../../node_modules/element-plus/es/components/form/index.js");
5
- const index$7 = require("../../../../node_modules/element-plus/es/components/input/index.js");
6
- const index$9 = require("../../../../node_modules/element-plus/es/components/scrollbar/index.js");
7
- const index$6 = require("../../../../node_modules/element-plus/es/components/button/index.js");
8
- const index$c = require("../../../../node_modules/element-plus/es/components/select/index.js");
9
- const index$f = require("../../../../node_modules/element-plus/es/components/checkbox/index.js");
10
- const index$b = require("../../../../node_modules/element-plus/es/components/radio/index.js");
11
- const index$3 = require("../../../../node_modules/element-plus/es/components/container/index.js");
12
- const index$2 = require("../../../../node_modules/element-plus/es/components/dialog/index.js");
13
- const index$8 = require("../../../../node_modules/element-plus/es/components/link/index.js");
14
- const index$e = require("../../../../node_modules/element-plus/es/components/switch/index.js");
15
- const index$1 = require("../../../../node_modules/element-plus/es/components/message/index.js");
16
- const index$d = require("../../../../node_modules/element-plus/es/components/popover/index.js");
17
- require("../../../../_virtual/dayjs.min.js");
3
+ require("../../../../node_modules/element-plus/es/index.js");
18
4
  ;/* empty css */
19
5
  ;/* empty css */
20
6
  ;/* empty css */
@@ -57,7 +43,6 @@ const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export
57
43
  require("../../../../node_modules/element-plus/theme-chalk/el-tooltip.css.js");
58
44
  ;/* empty css */
59
45
  ;/* empty css */
60
- require("element-plus");
61
46
  ;/* empty css */
62
47
  ;/* empty css */
63
48
  ;/* empty css */
@@ -118,6 +103,20 @@ require("../../../../node_modules/element-plus/theme-chalk/el-date-picker.css.js
118
103
  ;/* empty css */
119
104
  ;/* empty css */
120
105
  ;/* empty css */
106
+ const index$1 = require("../../../../node_modules/element-plus/es/components/message/index.js");
107
+ const index$2 = require("../../../../node_modules/element-plus/es/components/dialog/index.js");
108
+ const index$3 = require("../../../../node_modules/element-plus/es/components/container/index.js");
109
+ const index$4 = require("../../../../node_modules/element-plus/es/components/icon/index.js");
110
+ const index$6 = require("../../../../node_modules/element-plus/es/components/button/index.js");
111
+ const index$7 = require("../../../../node_modules/element-plus/es/components/input/index.js");
112
+ const index$8 = require("../../../../node_modules/element-plus/es/components/link/index.js");
113
+ const index$9 = require("../../../../node_modules/element-plus/es/components/scrollbar/index.js");
114
+ const index$a = require("../../../../node_modules/element-plus/es/components/form/index.js");
115
+ const index$b = require("../../../../node_modules/element-plus/es/components/radio/index.js");
116
+ const index$c = require("../../../../node_modules/element-plus/es/components/select/index.js");
117
+ const index$d = require("../../../../node_modules/element-plus/es/components/popover/index.js");
118
+ const index$e = require("../../../../node_modules/element-plus/es/components/switch/index.js");
119
+ const index$f = require("../../../../node_modules/element-plus/es/components/checkbox/index.js");
121
120
  const _hoisted_1 = {
122
121
  key: 0,
123
122
  class: "loading-overlay"
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./index.vue.js");
3
+ const index = require("./index.vue2.js");
4
4
  const Vue = require("vue");
5
5
  function useDialogGlobalDialog() {
6
6
  const dialogGlobalDialogVisible = Vue.ref(false);
@@ -270,5 +270,5 @@ const _sfc_main = {
270
270
  };
271
271
  }
272
272
  };
273
- const PageEvent = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-824c7c40"]]);
273
+ const PageEvent = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-8521b37c"]]);
274
274
  exports.default = PageEvent;