@utogether/utils 1.0.0

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.
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # Vue 3 + Vite
2
+
3
+ This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
4
+
5
+ ## Recommended IDE Setup
6
+
7
+ - [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar)
Binary file
@@ -0,0 +1,410 @@
1
+ import { useI18n } from "vue-i18n";
2
+ import { inject } from "vue";
3
+ import { isArray, toStringJSON } from "xe-utils";
4
+ import { VXETable } from "vxe-table";
5
+ const serviceApi = inject("serviceApi");
6
+ VXETable.renderer.add("#SuSelect", {
7
+ renderItemContent(renderOpts2, params2) {
8
+ const { data, property } = params2;
9
+ const { options: options2, props: props2, optionProps: optionProps2 = {}, events } = renderOpts2;
10
+ const { label: label2 = "label", value: value2 = "value", extLabel: extLabel2 } = optionProps2;
11
+ const { code, fetchField, extParam = {}, loading = false } = props2;
12
+ async function remoteMethod(query) {
13
+ const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, { [fetchField]: query });
14
+ let res;
15
+ try {
16
+ options2.length = 0;
17
+ props2.loading = true;
18
+ res = await serviceApi(code, param);
19
+ res && options2.push(...res.list);
20
+ } finally {
21
+ props2.loading = false;
22
+ }
23
+ }
24
+ function onChange(val2) {
25
+ const { fieldMap = {} } = props2;
26
+ const item2 = options2.find((option) => val2 === option[value2]);
27
+ const keys = Object.keys(fieldMap);
28
+ if (keys.length) {
29
+ const values = Object.values(fieldMap);
30
+ keys.forEach((key, idx) => {
31
+ data[key] = val2 ? item2[values[idx]] : "";
32
+ });
33
+ }
34
+ (events == null ? void 0 : events.change) && events.change(val2, item2, data, property);
35
+ }
36
+ function onClear() {
37
+ (events == null ? void 0 : events.clear) && events.clear({ data, property });
38
+ }
39
+ function onFocus() {
40
+ !options2.length && remoteMethod("");
41
+ }
42
+ return [
43
+ /* @__PURE__ */ React.createElement("el-select", {
44
+ "v-model": data[property],
45
+ ...props2,
46
+ filterable: true,
47
+ remote: true,
48
+ clearable: true,
49
+ size: "small",
50
+ style: "width: 100%",
51
+ placeholder: "\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",
52
+ "remote-method": remoteMethod,
53
+ loading,
54
+ onFocus: () => onFocus(),
55
+ onChange: (v) => onChange(v),
56
+ onClear: () => onClear()
57
+ }, options2.map((item2) => {
58
+ return /* @__PURE__ */ React.createElement("el-option", {
59
+ key: item2[value2],
60
+ label: item2[label2],
61
+ value: item2[value2]
62
+ }, /* @__PURE__ */ React.createElement("span", {
63
+ style: "float: left"
64
+ }, item2[extLabel2] ? `${item2[value2]}-${item2[extLabel2]}` : item2[value2]), value2 !== label2 && !item2[extLabel2] ? /* @__PURE__ */ React.createElement("span", {
65
+ class: "su-coSelect-option"
66
+ }, item2[label2]) : null);
67
+ }))
68
+ ];
69
+ }
70
+ });
71
+ VXETable.renderer.add("#SuDateRange", {
72
+ renderItemContent(renderOpts2, params2) {
73
+ const { data, property } = params2;
74
+ const { props: props2 } = renderOpts2;
75
+ const { t } = useI18n();
76
+ return [
77
+ /* @__PURE__ */ React.createElement("el-date-picker", {
78
+ "v-model": data[property],
79
+ type: (props2 == null ? void 0 : props2.type) || "daterange",
80
+ size: "small",
81
+ style: "width: 100%",
82
+ "range-separator": t("message.to"),
83
+ "start-placeholder": t("message.startDate"),
84
+ "end-placeholder": t("message.endDate")
85
+ })
86
+ ];
87
+ }
88
+ });
89
+ VXETable.renderer.add("#SuColSelect", {
90
+ renderEdit(renderOpts2, params2) {
91
+ const { row: row2, column: column2 } = params2;
92
+ const { options: options2, props: props2, optionProps: optionProps2 = {}, events } = renderOpts2;
93
+ const { label: label2 = "label", value: value2 = "value", extLabel: extLabel2 } = optionProps2;
94
+ const { code, fetchField, extParam = {}, loading = false, multiple: multiple2, defaultValue } = props2;
95
+ if (defaultValue) {
96
+ const keys = Object.keys(defaultValue);
97
+ keys.forEach((key) => {
98
+ row2[key] = row2[key] || defaultValue[key];
99
+ });
100
+ }
101
+ if (multiple2 && row2[column2.field]) {
102
+ !isArray(row2[column2.field]) && row2[column2.field].split(",").forEach((ff) => {
103
+ const isExit = options2.some((s) => s[label2] === ff);
104
+ !isExit && options2.push({ [value2]: ff, [label2]: ff });
105
+ });
106
+ }
107
+ async function remoteMethod(query) {
108
+ const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {
109
+ [fetchField || label2]: query
110
+ });
111
+ let res;
112
+ try {
113
+ options2.length = 0;
114
+ props2.loading = true;
115
+ res = await serviceApi(code, param);
116
+ if (res) {
117
+ res.list ? options2.push(...res.list) : options2.push(...res);
118
+ }
119
+ } finally {
120
+ props2.loading = false;
121
+ }
122
+ }
123
+ function onChange(val2) {
124
+ const { fieldMap = {} } = props2;
125
+ const item2 = val2 && options2.find((option) => val2 === option[value2]);
126
+ const keys = Object.keys(fieldMap);
127
+ if (keys.length) {
128
+ const values = Object.values(fieldMap);
129
+ keys.forEach((key, idx) => {
130
+ row2[key] = val2 ? item2[values[idx]] : "";
131
+ });
132
+ }
133
+ (events == null ? void 0 : events.change) && events.change(params2, val2, item2, column2.field);
134
+ }
135
+ function onClear() {
136
+ (events == null ? void 0 : events.onClear) && events.onClear({ row: row2, field: column2.field });
137
+ }
138
+ function onFocus() {
139
+ !options2.length && remoteMethod("");
140
+ }
141
+ return [
142
+ /* @__PURE__ */ React.createElement("el-select", {
143
+ "v-model": row2[column2.field],
144
+ ...props2,
145
+ filterable: true,
146
+ remote: true,
147
+ clearable: true,
148
+ size: "small",
149
+ placeholder: "\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",
150
+ style: "width: 100%",
151
+ "remote-method": remoteMethod,
152
+ loading,
153
+ onFocus: () => onFocus(),
154
+ onChange: (v) => onChange(v),
155
+ onClear: () => onClear()
156
+ }, options2.map((item2) => {
157
+ return /* @__PURE__ */ React.createElement("el-option", {
158
+ key: item2[value2],
159
+ label: item2[label2],
160
+ value: item2[value2]
161
+ }, /* @__PURE__ */ React.createElement("span", {
162
+ style: "float: left"
163
+ }, item2[extLabel2] ? `${item2[value2]}-${item2[extLabel2]}` : item2[value2]), value2 !== label2 && !item2[extLabel2] ? /* @__PURE__ */ React.createElement("span", {
164
+ class: "su-coSelect-option"
165
+ }, item2[label2]) : null);
166
+ }))
167
+ ];
168
+ },
169
+ renderCell(renderOpts, params) {
170
+ const { row, column } = params;
171
+ const { props } = renderOpts;
172
+ const { textValue, multiple } = props;
173
+ let val = row[column.field];
174
+ if (textValue) {
175
+ val = eval(`row.${textValue}`) || row[column.field];
176
+ }
177
+ if (val && multiple && isArray(val)) {
178
+ val = val && val.join(",");
179
+ }
180
+ return [/* @__PURE__ */ React.createElement("span", null, val)];
181
+ }
182
+ });
183
+ VXETable.renderer.add("#SuSelect", {
184
+ renderEdit(renderOpts2, params2) {
185
+ const { row: row2, column: column2 } = params2;
186
+ const { options: options2, props: props2, optionProps: optionProps2 = {}, events } = renderOpts2;
187
+ const { label: label2 = "label", value: value2 = "value", extLabel: extLabel2 } = optionProps2;
188
+ const { code, fetchField, extParam = {}, loading = false, multiple: multiple2, defaultValue } = props2;
189
+ if (defaultValue) {
190
+ const keys = Object.keys(defaultValue);
191
+ keys.forEach((key) => {
192
+ row2[key] = row2[key] || defaultValue[key];
193
+ });
194
+ }
195
+ if (multiple2 && row2[column2.field]) {
196
+ !isArray(row2[column2.field]) && row2[column2.field].split(",").forEach((ff) => {
197
+ const isExit = options2.some((s) => s[label2] === ff);
198
+ !isExit && options2.push({ [value2]: ff, [label2]: ff });
199
+ });
200
+ }
201
+ async function remoteMethod(query) {
202
+ const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {
203
+ [fetchField || label2]: query
204
+ });
205
+ let res;
206
+ try {
207
+ options2.length = 0;
208
+ props2.loading = true;
209
+ res = await serviceApi(code, param);
210
+ if (res) {
211
+ res.list ? options2.push(...res.list) : options2.push(...res);
212
+ }
213
+ } finally {
214
+ props2.loading = false;
215
+ }
216
+ }
217
+ function onChange(val2) {
218
+ const { fieldMap = {} } = props2;
219
+ const item2 = val2 && options2.find((option) => val2 === option[value2]);
220
+ const keys = Object.keys(fieldMap);
221
+ if (keys.length) {
222
+ const values = Object.values(fieldMap);
223
+ keys.forEach((key, idx) => {
224
+ row2[key] = val2 ? item2[values[idx]] : "";
225
+ });
226
+ }
227
+ (events == null ? void 0 : events.change) && events.change(params2, val2, item2, column2.field);
228
+ }
229
+ function onClear() {
230
+ (events == null ? void 0 : events.onClear) && events.onClear({ row: row2, field: column2.field });
231
+ }
232
+ function onFocus() {
233
+ !options2.length && remoteMethod("");
234
+ }
235
+ return [
236
+ /* @__PURE__ */ React.createElement("el-select", {
237
+ "v-model": row2[column2.field],
238
+ ...props2,
239
+ filterable: true,
240
+ remote: true,
241
+ clearable: true,
242
+ size: "small",
243
+ placeholder: "\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",
244
+ style: "width: 100%",
245
+ "remote-method": remoteMethod,
246
+ loading,
247
+ onFocus: () => onFocus(),
248
+ onChange: (v) => onChange(v),
249
+ onClear: () => onClear()
250
+ }, options2.map((item2) => {
251
+ return /* @__PURE__ */ React.createElement("el-option", {
252
+ key: item2[value2],
253
+ label: item2[label2],
254
+ value: item2[value2]
255
+ }, /* @__PURE__ */ React.createElement("span", {
256
+ style: "float: left"
257
+ }, item2[extLabel2] ? `${item2[value2]}-${item2[extLabel2]}` : item2[value2]), value2 !== label2 && !item2[extLabel2] ? /* @__PURE__ */ React.createElement("span", {
258
+ class: "su-coSelect-option"
259
+ }, item2[label2]) : null);
260
+ }))
261
+ ];
262
+ },
263
+ renderCell(renderOpts, params) {
264
+ const { row, column } = params;
265
+ const { props } = renderOpts;
266
+ const { textValue, multiple } = props;
267
+ let val = row[column.field];
268
+ if (textValue) {
269
+ val = eval(`row.${textValue}`) || row[column.field];
270
+ }
271
+ if (val && multiple && isArray(val)) {
272
+ val = val && val.join(",");
273
+ }
274
+ return [/* @__PURE__ */ React.createElement("span", null, val)];
275
+ }
276
+ });
277
+ VXETable.renderer.add("#select", {
278
+ renderEdit(renderOpts2, params2) {
279
+ const { row: row2, column: column2 } = params2;
280
+ const { options: options2, props: props2, optionProps: optionProps2 = {}, events } = renderOpts2;
281
+ const { label: label2 = "label", value: value2 = "value", extLabel: extLabel2 } = optionProps2;
282
+ if (props2.multiple && row2[column2.field]) {
283
+ !isArray(row2[column2.field]) && row2[column2.field].split(",").forEach((ff) => {
284
+ const isExit = options2.some((s) => s[label2] === ff);
285
+ !isExit && options2.push({ [value2]: ff, [label2]: ff });
286
+ });
287
+ }
288
+ function onChange(val2) {
289
+ const item2 = val2 && options2.find((option) => val2 === option[value2]);
290
+ (events == null ? void 0 : events.change) && events.change(params2, val2, item2, column2.field);
291
+ }
292
+ function onClear() {
293
+ (events == null ? void 0 : events.onClear) && events.onClear({ row: row2, field: column2.field });
294
+ }
295
+ return [
296
+ /* @__PURE__ */ React.createElement("el-select", {
297
+ "v-model": row2[column2.field],
298
+ filterable: true,
299
+ clearable: true,
300
+ ...props2,
301
+ size: "small",
302
+ style: "width: 100%",
303
+ onChange: (v) => onChange(v),
304
+ onClear: () => onClear()
305
+ }, options2.map((item2) => {
306
+ return /* @__PURE__ */ React.createElement("el-option", {
307
+ key: item2[value2],
308
+ label: item2[extLabel2] ? item2[value2] : item2[label2],
309
+ value: item2[value2]
310
+ }, /* @__PURE__ */ React.createElement("span", {
311
+ style: "float: left"
312
+ }, extLabel2 && item2[extLabel2] ? `${item2[value2]}-${item2[extLabel2]}` : item2[value2]), value2 !== label2 && !item2[extLabel2] ? /* @__PURE__ */ React.createElement("span", {
313
+ class: "su-coSelect-option"
314
+ }, item2[label2]) : null);
315
+ }))
316
+ ];
317
+ },
318
+ renderCell(renderOpts, params) {
319
+ const { row, column } = params;
320
+ const { props, options, optionProps } = renderOpts;
321
+ const { label = "label", value = "value", extLabel } = optionProps;
322
+ const { textValue } = props;
323
+ let val = row[column.field];
324
+ const item = options.find((opt) => opt[value] === val);
325
+ if (textValue) {
326
+ val = eval(`row.${textValue}`) || row[column.field];
327
+ }
328
+ if (item) {
329
+ val = extLabel ? item[value] : item[label];
330
+ }
331
+ if (val && (props == null ? void 0 : props.multiple) && isArray(val)) {
332
+ val = val && val.join(",");
333
+ }
334
+ return [/* @__PURE__ */ React.createElement("span", null, val)];
335
+ }
336
+ });
337
+ VXETable.renderer.add("#select", {
338
+ renderItemContent(renderOpts2, params2) {
339
+ const { data, property } = params2;
340
+ const { options: options2, props: props2, optionProps: optionProps2 = {}, events } = renderOpts2;
341
+ const { label: label2 = "label", value: value2 = "value" } = optionProps2;
342
+ const { defaultValues } = props2;
343
+ if (defaultValues) {
344
+ data[property] = defaultValues;
345
+ }
346
+ function onChange(val2) {
347
+ const { fieldMap = {} } = props2;
348
+ const item2 = options2.find((option) => val2 === option[value2]);
349
+ const keys = Object.keys(fieldMap);
350
+ if (keys.length) {
351
+ const values = Object.values(fieldMap);
352
+ keys.forEach((key, idx) => {
353
+ data[key] = val2 ? item2[values[idx]] : "";
354
+ });
355
+ }
356
+ const parm = { item: item2, row: data, property };
357
+ (events == null ? void 0 : events.change) && events.change(parm);
358
+ }
359
+ function onClear() {
360
+ (events == null ? void 0 : events.onClear) && events.onClear({ data, field: property });
361
+ }
362
+ return [
363
+ /* @__PURE__ */ React.createElement("el-select", {
364
+ "v-model": data[property],
365
+ ...props2,
366
+ filterable: true,
367
+ clearable: true,
368
+ size: "small",
369
+ style: "width: 100%",
370
+ onChange: (v) => onChange(v),
371
+ onClear: () => onClear()
372
+ }, options2.map((item2) => {
373
+ return /* @__PURE__ */ React.createElement("el-option", {
374
+ key: item2[value2],
375
+ label: item2[label2],
376
+ value: item2[value2]
377
+ }, /* @__PURE__ */ React.createElement("span", {
378
+ style: "float: left"
379
+ }, item2[label2]), /* @__PURE__ */ React.createElement("span", {
380
+ class: "su-coSelect-option"
381
+ }, item2[value2]));
382
+ }))
383
+ ];
384
+ }
385
+ });
386
+ VXETable.renderer.add("#tag", {
387
+ renderDefault(renderOpts2, params2) {
388
+ const { row: row2, column: column2 } = params2;
389
+ const {
390
+ props: { code, tagMap }
391
+ } = renderOpts2;
392
+ function getTagType() {
393
+ return row2[column2.field] ? tagMap[row2[column2.field]] : "";
394
+ }
395
+ return [
396
+ row2[column2.field] ? /* @__PURE__ */ React.createElement("el-tag", {
397
+ type: getTagType()
398
+ }, getValue(code, row2[column2.field])) : null
399
+ ];
400
+ }
401
+ });
402
+ const dictStr = sessionStorage.getItem("kLov");
403
+ const dataDict = dictStr && toStringJSON(dictStr);
404
+ function getValue(code, value2) {
405
+ var _a, _b, _c;
406
+ if (!value2 || !code)
407
+ return value2;
408
+ return (_c = (_b = (_a = dataDict[code]) == null ? void 0 : _a.children) == null ? void 0 : _b.find((item2) => item2.dictCode === value2)) == null ? void 0 : _c.dictName;
409
+ }
410
+ //# sourceMappingURL=su-utils.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"su-utils.es.js","sources":["../src/lib/render.tsx"],"sourcesContent":["/*\r\n * @Author: wei.li\r\n * @Date: 2021-12-01 09:18:50\r\n * @LastEditors: wei.li\r\n * @LastEditTime: 2022-06-30 10:08:46\r\n * @Description: file content\r\n */\r\n\r\nimport { useI18n } from 'vue-i18n';\r\nimport { inject } from 'vue';\r\n// import serviceApi from '/@/api';\r\n// import { useSystemStoreHook } from '/@/store/modules/system';\r\nimport { isArray, toStringJSON } from 'xe-utils';\r\nimport { VXETable, FormItemRenderOptions, FormItemContentRenderParams, VxeColumnPropTypes } from 'vxe-table';\r\n\r\n// const systemStoreHook = useSystemStoreHook();\r\n\r\nconst serviceApi: Function = inject('serviceApi')\r\n\r\n// form render\r\nVXETable.renderer.add('#SuSelect', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false } = props;\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, { [fetchField]: query });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n res && options.push(...res.list);\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n data[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(val, item, data, property);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n events?.clear && events.clear({ data, property });\r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={data[property]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n placeholder=\"请录入关键字搜索\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n }\r\n});\r\n// 时间范围\r\nVXETable.renderer.add('#SuDateRange', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { props } = renderOpts;\r\n const { t } = useI18n();\r\n return [\r\n <el-date-picker\r\n v-model={data[property]}\r\n type={props?.type || 'daterange'}\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n range-separator={t('message.to')}\r\n start-placeholder={t('message.startDate')}\r\n end-placeholder={t('message.endDate')}\r\n />\r\n ];\r\n }\r\n});\r\n// table Col\r\nVXETable.renderer.add('#SuColSelect', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false, multiple, defaultValue } = props;\r\n if (defaultValue) {\r\n const keys = Object.keys(defaultValue);\r\n keys.forEach(key => {\r\n row[key] = row[key] || defaultValue[key];\r\n });\r\n }\r\n if (multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {\r\n [fetchField || label]: query\r\n });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n if (res) {\r\n res.list ? options.push(...res.list) : options.push(...res);\r\n }\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = val && options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n row[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n placeholder=\"请录入关键字搜索\"\r\n style=\"width: 100%\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props } = renderOpts;\r\n const { textValue, multiple } = props;\r\n let val = row[column.field];\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (val && multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\nVXETable.renderer.add('#SuSelect', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false, multiple, defaultValue } = props;\r\n if (defaultValue) {\r\n const keys = Object.keys(defaultValue);\r\n keys.forEach(key => {\r\n row[key] = row[key] || defaultValue[key];\r\n });\r\n }\r\n if (multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {\r\n [fetchField || label]: query\r\n });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n if (res) {\r\n res.list ? options.push(...res.list) : options.push(...res);\r\n }\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = val && options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n row[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n \r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n placeholder=\"请录入关键字搜索\"\r\n style=\"width: 100%\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props } = renderOpts;\r\n const { textValue, multiple } = props;\r\n let val = row[column.field];\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (val && multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\n\r\nVXETable.renderer.add('#select', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n if (props.multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n\r\n function onChange(val) {\r\n const item = val && options.find(option => val === option[value]);\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n filterable\r\n clearable\r\n {...props}\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option\r\n key={item[value]}\r\n label={item[extLabel] ? item[value] : item[label]}\r\n value={item[value]}\r\n >\r\n <span style=\"float: left\">\r\n {extLabel && item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props, options, optionProps } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { textValue } = props;\r\n let val = row[column.field];\r\n const item = options.find(opt => opt[value] === val);\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (item) {\r\n val = extLabel ? item[value] : item[label];\r\n }\r\n if (val && props?.multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\n\r\nVXETable.renderer.add('#select', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value' } = optionProps;\r\n // 默认值\r\n const { defaultValues } = props;\r\n if (defaultValues) {\r\n data[property] = defaultValues;\r\n }\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n data[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n const parm = { item, row: data, property };\r\n events?.change && events.change(parm);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n events?.onClear && events.onClear({ data, field: property });\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={data[property]}\r\n {...props}\r\n filterable\r\n clearable\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">{item[label]}</span>\r\n <span class=\"su-coSelect-option\">{item[value]}</span>\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n }\r\n});\r\n// 创建一个简单的超链接渲染\r\nVXETable.renderer.add('#tag', {\r\n // 默认显示模板\r\n renderDefault(renderOpts, params) {\r\n const { row, column } = params;\r\n const {\r\n props: { code, tagMap }\r\n } = renderOpts;\r\n function getTagType() {\r\n return row[column.field] ? tagMap[row[column.field]] : '';\r\n }\r\n return [\r\n row[column.field] ? <el-tag type={getTagType()}>{getValue(code, row[column.field])}</el-tag> : null\r\n ];\r\n }\r\n});\r\n\r\nconst dictStr = sessionStorage.getItem('kLov')\r\nconst dataDict = dictStr && toStringJSON(dictStr)\r\n\r\nfunction getValue(code, value) {\r\n if (!value || !code) return value;\r\n return dataDict[code]?.children?.find(item => item.dictCode === value)?.dictName;\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ (function(i,p){typeof exports=="object"&&typeof module!="undefined"?p(require("vue-i18n"),require("vue"),require("xe-utils"),require("vxe-table")):typeof define=="function"&&define.amd?define(["vue-i18n","vue","xe-utils","vxe-table"],p):(i=typeof globalThis!="undefined"?globalThis:i||self,p(i.vueI18n,i.Vue,i.xeUtils,i.vxeTable))})(this,function(vueI18n,vue,xeUtils,vxeTable){"use strict";const serviceApi=vue.inject("serviceApi");vxeTable.VXETable.renderer.add("#SuSelect",{renderItemContent(i,p){const{data:l,property:n}=p,{options:a,props:s,optionProps:v={},events:t}=i,{label:c="label",value:r="value",extLabel:m}=v,{code:x,fetchField:y,extParam:o={},loading:g=!1}=s;async function b(d){const E=Object.assign({},{pageSize:20,pageNum:1},o,{[y]:d});let e;try{a.length=0,s.loading=!0,e=await serviceApi(x,E),e&&a.push(...e.list)}finally{s.loading=!1}}function h(d){const{fieldMap:E={}}=s,e=a.find(u=>d===u[r]),f=Object.keys(E);if(f.length){const u=Object.values(E);f.forEach((V,R)=>{l[V]=d?e[u[R]]:""})}t!=null&&t.change&&t.change(d,e,l,n)}function C(){t!=null&&t.clear&&t.clear({data:l,property:n})}function w(){!a.length&&b("")}return[React.createElement("el-select",{"v-model":l[n],...s,filterable:!0,remote:!0,clearable:!0,size:"small",style:"width: 100%",placeholder:"\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22","remote-method":b,loading:g,onFocus:()=>w(),onChange:d=>h(d),onClear:()=>C()},a.map(d=>React.createElement("el-option",{key:d[r],label:d[c],value:d[r]},React.createElement("span",{style:"float: left"},d[m]?`${d[r]}-${d[m]}`:d[r]),r!==c&&!d[m]?React.createElement("span",{class:"su-coSelect-option"},d[c]):null)))]}}),vxeTable.VXETable.renderer.add("#SuDateRange",{renderItemContent(i,p){const{data:l,property:n}=p,{props:a}=i,{t:s}=vueI18n.useI18n();return[React.createElement("el-date-picker",{"v-model":l[n],type:(a==null?void 0:a.type)||"daterange",size:"small",style:"width: 100%","range-separator":s("message.to"),"start-placeholder":s("message.startDate"),"end-placeholder":s("message.endDate")})]}}),vxeTable.VXETable.renderer.add("#SuColSelect",{renderEdit(i,p){const{row:l,column:n}=p,{options:a,props:s,optionProps:v={},events:t}=i,{label:c="label",value:r="value",extLabel:m}=v,{code:x,fetchField:y,extParam:o={},loading:g=!1,multiple:b,defaultValue:h}=s;h&&Object.keys(h).forEach(f=>{l[f]=l[f]||h[f]}),b&&l[n.field]&&!xeUtils.isArray(l[n.field])&&l[n.field].split(",").forEach(e=>{!a.some(u=>u[c]===e)&&a.push({[r]:e,[c]:e})});async function C(e){const f=Object.assign({},{pageSize:20,pageNum:1},o,{[y||c]:e});let u;try{a.length=0,s.loading=!0,u=await serviceApi(x,f),u&&(u.list?a.push(...u.list):a.push(...u))}finally{s.loading=!1}}function w(e){const{fieldMap:f={}}=s,u=e&&a.find(R=>e===R[r]),V=Object.keys(f);if(V.length){const R=Object.values(f);V.forEach((S,O)=>{l[S]=e?u[R[O]]:""})}t!=null&&t.change&&t.change(p,e,u,n.field)}function d(){t!=null&&t.onClear&&t.onClear({row:l,field:n.field})}function E(){!a.length&&C("")}return[React.createElement("el-select",{"v-model":l[n.field],...s,filterable:!0,remote:!0,clearable:!0,size:"small",placeholder:"\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",style:"width: 100%","remote-method":C,loading:g,onFocus:()=>E(),onChange:e=>w(e),onClear:()=>d()},a.map(e=>React.createElement("el-option",{key:e[r],label:e[c],value:e[r]},React.createElement("span",{style:"float: left"},e[m]?`${e[r]}-${e[m]}`:e[r]),r!==c&&!e[m]?React.createElement("span",{class:"su-coSelect-option"},e[c]):null)))]},renderCell(renderOpts,params){const{row,column}=params,{props}=renderOpts,{textValue,multiple}=props;let val=row[column.field];return textValue&&(val=eval(`row.${textValue}`)||row[column.field]),val&&multiple&&xeUtils.isArray(val)&&(val=val&&val.join(",")),[React.createElement("span",null,val)]}}),vxeTable.VXETable.renderer.add("#SuSelect",{renderEdit(i,p){const{row:l,column:n}=p,{options:a,props:s,optionProps:v={},events:t}=i,{label:c="label",value:r="value",extLabel:m}=v,{code:x,fetchField:y,extParam:o={},loading:g=!1,multiple:b,defaultValue:h}=s;h&&Object.keys(h).forEach(f=>{l[f]=l[f]||h[f]}),b&&l[n.field]&&!xeUtils.isArray(l[n.field])&&l[n.field].split(",").forEach(e=>{!a.some(u=>u[c]===e)&&a.push({[r]:e,[c]:e})});async function C(e){const f=Object.assign({},{pageSize:20,pageNum:1},o,{[y||c]:e});let u;try{a.length=0,s.loading=!0,u=await serviceApi(x,f),u&&(u.list?a.push(...u.list):a.push(...u))}finally{s.loading=!1}}function w(e){const{fieldMap:f={}}=s,u=e&&a.find(R=>e===R[r]),V=Object.keys(f);if(V.length){const R=Object.values(f);V.forEach((S,O)=>{l[S]=e?u[R[O]]:""})}t!=null&&t.change&&t.change(p,e,u,n.field)}function d(){t!=null&&t.onClear&&t.onClear({row:l,field:n.field})}function E(){!a.length&&C("")}return[React.createElement("el-select",{"v-model":l[n.field],...s,filterable:!0,remote:!0,clearable:!0,size:"small",placeholder:"\u8BF7\u5F55\u5165\u5173\u952E\u5B57\u641C\u7D22",style:"width: 100%","remote-method":C,loading:g,onFocus:()=>E(),onChange:e=>w(e),onClear:()=>d()},a.map(e=>React.createElement("el-option",{key:e[r],label:e[c],value:e[r]},React.createElement("span",{style:"float: left"},e[m]?`${e[r]}-${e[m]}`:e[r]),r!==c&&!e[m]?React.createElement("span",{class:"su-coSelect-option"},e[c]):null)))]},renderCell(renderOpts,params){const{row,column}=params,{props}=renderOpts,{textValue,multiple}=props;let val=row[column.field];return textValue&&(val=eval(`row.${textValue}`)||row[column.field]),val&&multiple&&xeUtils.isArray(val)&&(val=val&&val.join(",")),[React.createElement("span",null,val)]}}),vxeTable.VXETable.renderer.add("#select",{renderEdit(i,p){const{row:l,column:n}=p,{options:a,props:s,optionProps:v={},events:t}=i,{label:c="label",value:r="value",extLabel:m}=v;s.multiple&&l[n.field]&&!xeUtils.isArray(l[n.field])&&l[n.field].split(",").forEach(o=>{!a.some(b=>b[c]===o)&&a.push({[r]:o,[c]:o})});function x(o){const g=o&&a.find(b=>o===b[r]);t!=null&&t.change&&t.change(p,o,g,n.field)}function y(){t!=null&&t.onClear&&t.onClear({row:l,field:n.field})}return[React.createElement("el-select",{"v-model":l[n.field],filterable:!0,clearable:!0,...s,size:"small",style:"width: 100%",onChange:o=>x(o),onClear:()=>y()},a.map(o=>React.createElement("el-option",{key:o[r],label:o[m]?o[r]:o[c],value:o[r]},React.createElement("span",{style:"float: left"},m&&o[m]?`${o[r]}-${o[m]}`:o[r]),r!==c&&!o[m]?React.createElement("span",{class:"su-coSelect-option"},o[c]):null)))]},renderCell(renderOpts,params){const{row,column}=params,{props,options,optionProps}=renderOpts,{label="label",value="value",extLabel}=optionProps,{textValue}=props;let val=row[column.field];const item=options.find(i=>i[value]===val);return textValue&&(val=eval(`row.${textValue}`)||row[column.field]),item&&(val=extLabel?item[value]:item[label]),val&&(props==null?void 0:props.multiple)&&xeUtils.isArray(val)&&(val=val&&val.join(",")),[React.createElement("span",null,val)]}}),vxeTable.VXETable.renderer.add("#select",{renderItemContent(i,p){const{data:l,property:n}=p,{options:a,props:s,optionProps:v={},events:t}=i,{label:c="label",value:r="value"}=v,{defaultValues:m}=s;m&&(l[n]=m);function x(o){const{fieldMap:g={}}=s,b=a.find(w=>o===w[r]),h=Object.keys(g);if(h.length){const w=Object.values(g);h.forEach((d,E)=>{l[d]=o?b[w[E]]:""})}const C={item:b,row:l,property:n};t!=null&&t.change&&t.change(C)}function y(){t!=null&&t.onClear&&t.onClear({data:l,field:n})}return[React.createElement("el-select",{"v-model":l[n],...s,filterable:!0,clearable:!0,size:"small",style:"width: 100%",onChange:o=>x(o),onClear:()=>y()},a.map(o=>React.createElement("el-option",{key:o[r],label:o[c],value:o[r]},React.createElement("span",{style:"float: left"},o[c]),React.createElement("span",{class:"su-coSelect-option"},o[r]))))]}}),vxeTable.VXETable.renderer.add("#tag",{renderDefault(i,p){const{row:l,column:n}=p,{props:{code:a,tagMap:s}}=i;function v(){return l[n.field]?s[l[n.field]]:""}return[l[n.field]?React.createElement("el-tag",{type:v()},getValue(a,l[n.field])):null]}});const dictStr=sessionStorage.getItem("kLov"),dataDict=dictStr&&xeUtils.toStringJSON(dictStr);function getValue(i,p){var l,n,a;return!p||!i?p:(a=(n=(l=dataDict[i])==null?void 0:l.children)==null?void 0:n.find(s=>s.dictCode===p))==null?void 0:a.dictName}});
2
+ //# sourceMappingURL=su-utils.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"su-utils.umd.js","sources":["../src/lib/render.tsx"],"sourcesContent":["/*\r\n * @Author: wei.li\r\n * @Date: 2021-12-01 09:18:50\r\n * @LastEditors: wei.li\r\n * @LastEditTime: 2022-06-30 10:08:46\r\n * @Description: file content\r\n */\r\n\r\nimport { useI18n } from 'vue-i18n';\r\nimport { inject } from 'vue';\r\n// import serviceApi from '/@/api';\r\n// import { useSystemStoreHook } from '/@/store/modules/system';\r\nimport { isArray, toStringJSON } from 'xe-utils';\r\nimport { VXETable, FormItemRenderOptions, FormItemContentRenderParams, VxeColumnPropTypes } from 'vxe-table';\r\n\r\n// const systemStoreHook = useSystemStoreHook();\r\n\r\nconst serviceApi: Function = inject('serviceApi')\r\n\r\n// form render\r\nVXETable.renderer.add('#SuSelect', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false } = props;\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, { [fetchField]: query });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n res && options.push(...res.list);\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n data[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(val, item, data, property);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n events?.clear && events.clear({ data, property });\r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={data[property]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n placeholder=\"请录入关键字搜索\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n }\r\n});\r\n// 时间范围\r\nVXETable.renderer.add('#SuDateRange', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { props } = renderOpts;\r\n const { t } = useI18n();\r\n return [\r\n <el-date-picker\r\n v-model={data[property]}\r\n type={props?.type || 'daterange'}\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n range-separator={t('message.to')}\r\n start-placeholder={t('message.startDate')}\r\n end-placeholder={t('message.endDate')}\r\n />\r\n ];\r\n }\r\n});\r\n// table Col\r\nVXETable.renderer.add('#SuColSelect', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false, multiple, defaultValue } = props;\r\n if (defaultValue) {\r\n const keys = Object.keys(defaultValue);\r\n keys.forEach(key => {\r\n row[key] = row[key] || defaultValue[key];\r\n });\r\n }\r\n if (multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {\r\n [fetchField || label]: query\r\n });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n if (res) {\r\n res.list ? options.push(...res.list) : options.push(...res);\r\n }\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = val && options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n row[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n placeholder=\"请录入关键字搜索\"\r\n style=\"width: 100%\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props } = renderOpts;\r\n const { textValue, multiple } = props;\r\n let val = row[column.field];\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (val && multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\nVXETable.renderer.add('#SuSelect', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { code, fetchField, extParam = {}, loading = false, multiple, defaultValue } = props;\r\n if (defaultValue) {\r\n const keys = Object.keys(defaultValue);\r\n keys.forEach(key => {\r\n row[key] = row[key] || defaultValue[key];\r\n });\r\n }\r\n if (multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n /**\r\n * @description: 远程搜索对应的函数\r\n * @param {*} val 录入的参数\r\n */\r\n async function remoteMethod(query) {\r\n const param = Object.assign({}, { pageSize: 20, pageNum: 1 }, extParam, {\r\n [fetchField || label]: query\r\n });\r\n let res;\r\n try {\r\n options.length = 0;\r\n props.loading = true;\r\n res = await serviceApi(code, param);\r\n if (res) {\r\n res.list ? options.push(...res.list) : options.push(...res);\r\n }\r\n } finally {\r\n props.loading = false;\r\n }\r\n }\r\n\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = val && options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n row[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n \r\n }\r\n\r\n function onFocus() {\r\n !options.length && remoteMethod('');\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n {...props}\r\n filterable\r\n remote\r\n clearable\r\n size=\"small\"\r\n placeholder=\"请录入关键字搜索\"\r\n style=\"width: 100%\"\r\n remote-method={remoteMethod}\r\n loading={loading}\r\n onFocus={() => onFocus()}\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">\r\n {item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props } = renderOpts;\r\n const { textValue, multiple } = props;\r\n let val = row[column.field];\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (val && multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\n\r\nVXETable.renderer.add('#select', {\r\n renderEdit(renderOpts: VxeColumnPropTypes.EditRender, params) {\r\n const { row, column } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n if (props.multiple && row[column.field]) {\r\n !isArray(row[column.field]) &&\r\n row[column.field].split(',').forEach(ff => {\r\n const isExit = options.some(s => s[label] === ff);\r\n !isExit && options.push({ [value]: ff, [label]: ff });\r\n });\r\n }\r\n\r\n function onChange(val) {\r\n const item = val && options.find(option => val === option[value]);\r\n events?.change && events.change(params, val, item, column.field);\r\n }\r\n\r\n function onClear() {\r\n // @ts-ignore\r\n events?.onClear && events.onClear({ row, field: column.field });\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={row[column.field]}\r\n filterable\r\n clearable\r\n {...props}\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option\r\n key={item[value]}\r\n label={item[extLabel] ? item[value] : item[label]}\r\n value={item[value]}\r\n >\r\n <span style=\"float: left\">\r\n {extLabel && item[extLabel] ? `${item[value]}-${item[extLabel]}` : item[value]}\r\n </span>\r\n {value !== label && !item[extLabel] ? (\r\n <span class=\"su-coSelect-option\">{item[label]}</span>\r\n ) : null}\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n },\r\n // 可编辑显示模板\r\n renderCell(renderOpts, params) {\r\n const { row, column } = params;\r\n const { props, options, optionProps } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value', extLabel } = optionProps;\r\n const { textValue } = props;\r\n let val = row[column.field];\r\n const item = options.find(opt => opt[value] === val);\r\n if (textValue) {\r\n val = eval(`row.${textValue}`) || row[column.field];\r\n }\r\n if (item) {\r\n val = extLabel ? item[value] : item[label];\r\n }\r\n if (val && props?.multiple && isArray(val)) {\r\n val = val && val.join(',');\r\n }\r\n return [<span>{val}</span>];\r\n }\r\n});\r\n\r\nVXETable.renderer.add('#select', {\r\n renderItemContent(renderOpts: FormItemRenderOptions, params: FormItemContentRenderParams) {\r\n const { data, property } = params;\r\n const { options, props, optionProps = {}, events } = renderOpts;\r\n // @ts-ignore\r\n const { label = 'label', value = 'value' } = optionProps;\r\n // 默认值\r\n const { defaultValues } = props;\r\n if (defaultValues) {\r\n data[property] = defaultValues;\r\n }\r\n /**\r\n * @description: 选中值发生变化时触发\r\n * @param {*} val 目前的选中值\r\n */\r\n function onChange(val) {\r\n const { fieldMap = {} } = props;\r\n const item = options.find(option => val === option[value]);\r\n const keys = Object.keys(fieldMap);\r\n if (keys.length) {\r\n const values: string[] = Object.values(fieldMap);\r\n keys.forEach((key, idx) => {\r\n data[key] = val ? item[values[idx]] : '';\r\n });\r\n }\r\n const parm = { item, row: data, property };\r\n events?.change && events.change(parm);\r\n }\r\n\r\n /**\r\n * @description: 可清空的单选模式下用户点击清空按钮时触发\r\n */\r\n function onClear() {\r\n events?.onClear && events.onClear({ data, field: property });\r\n }\r\n\r\n return [\r\n <el-select\r\n v-model={data[property]}\r\n {...props}\r\n filterable\r\n clearable\r\n size=\"small\"\r\n style=\"width: 100%\"\r\n onChange={v => onChange(v)}\r\n onClear={() => onClear()}\r\n >\r\n {options.map(item => {\r\n return (\r\n <el-option key={item[value]} label={item[label]} value={item[value]}>\r\n <span style=\"float: left\">{item[label]}</span>\r\n <span class=\"su-coSelect-option\">{item[value]}</span>\r\n </el-option>\r\n );\r\n })}\r\n </el-select>\r\n ];\r\n }\r\n});\r\n// 创建一个简单的超链接渲染\r\nVXETable.renderer.add('#tag', {\r\n // 默认显示模板\r\n renderDefault(renderOpts, params) {\r\n const { row, column } = params;\r\n const {\r\n props: { code, tagMap }\r\n } = renderOpts;\r\n function getTagType() {\r\n return row[column.field] ? tagMap[row[column.field]] : '';\r\n }\r\n return [\r\n row[column.field] ? <el-tag type={getTagType()}>{getValue(code, row[column.field])}</el-tag> : null\r\n ];\r\n }\r\n});\r\n\r\nconst dictStr = sessionStorage.getItem('kLov')\r\nconst dataDict = dictStr && toStringJSON(dictStr)\r\n\r\nfunction getValue(code, value) {\r\n if (!value || !code) return value;\r\n return dataDict[code]?.children?.find(item => item.dictCode === value)?.dictName;\r\n}\r\n"],"names":["inject","VXETable","useI18n","isArray","toStringJSON"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@utogether/utils",
3
+ "private": false,
4
+ "version": "1.0.0",
5
+ "files": ["dist"],
6
+ "main": "./dist/su-utils.umd.js",
7
+ "module": "./dist/su-utils.es.js",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/su-utils.es.js",
11
+ "require": "./dist/su-utils.umd.js"
12
+ }
13
+ },
14
+ "license": "MIT",
15
+ "auther": "levi7754@163.com",
16
+ "scripts": {
17
+ "dev": "vite",
18
+ "build": "vite build",
19
+ "preview": "vite preview"
20
+ },
21
+ "dependencies": {
22
+ "vue": "^3.2.25",
23
+ "vue-i18n": "^9.1.10",
24
+ "vxe-table": "^4.2.3",
25
+ "xe-utils": "^3.5.4"
26
+ },
27
+ "devDependencies": {
28
+ "@vitejs/plugin-vue": "^2.3.3",
29
+ "vite": "^2.9.9"
30
+ }
31
+ }