@gct-paas/design-mobile 0.1.4-dev.18 → 0.1.4-dev.19

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 (31) hide show
  1. package/dist/index.min.css +2 -0
  2. package/dist/loader.esm.min.js +1 -1
  3. package/es/_virtual/_plugin-vue_export-helper.mjs +8 -0
  4. package/es/components/form-component/FieldCheckbox.d.ts +36 -0
  5. package/es/components/form-component/FieldCheckbox.mjs +73 -0
  6. package/es/components/form-component/FieldRadio.d.ts +36 -0
  7. package/es/components/form-component/FieldRadio.mjs +72 -0
  8. package/es/components/form-component/FieldSelect.d.ts +102 -0
  9. package/es/components/form-component/FieldSelect.mjs +177 -0
  10. package/es/components/form-component/index.d.ts +6 -0
  11. package/es/components/form-component/index.mjs +5 -0
  12. package/es/components/form-component/optionList.vue.d.ts +30 -0
  13. package/es/components/form-component/optionList.vue.mjs +7 -0
  14. package/es/components/form-component/optionList.vue_vue_type_script_setup_true_lang.mjs +270 -0
  15. package/es/components/form-component/optionList.vue_vue_type_style_index_0_scoped_5dd8d3a8_lang.css +76 -0
  16. package/es/components/form-component/tag-label.vue.d.ts +26 -0
  17. package/es/components/form-component/tag-label.vue.mjs +7 -0
  18. package/es/components/form-component/tag-label.vue_vue_type_script_setup_true_lang.mjs +120 -0
  19. package/es/components/form-component/tag-label.vue_vue_type_style_index_0_scoped_8718d4a9_lang.css +18 -0
  20. package/es/components/form-component/tag-span.vue.d.ts +21 -0
  21. package/es/components/form-component/tag-span.vue.mjs +7 -0
  22. package/es/components/form-component/tag-span.vue_vue_type_script_setup_true_lang.mjs +25 -0
  23. package/es/components/form-component/tag-span.vue_vue_type_style_index_0_scoped_1f0f2305_lang.css +31 -0
  24. package/es/components/form-component/typing.d.ts +12 -0
  25. package/es/components/form-component/typing.mjs +8 -0
  26. package/es/components/index.d.ts +1 -0
  27. package/es/components/index.mjs +6 -0
  28. package/es/index.d.ts +1 -0
  29. package/es/index.mjs +7 -1
  30. package/es/types/index.d.ts +2 -0
  31. package/package.json +7 -5
@@ -0,0 +1,177 @@
1
+ import tag_label_default from "./tag-label.vue.mjs";
2
+ import { SelectType } from "./typing.mjs";
3
+ import optionList_default from "./optionList.vue.mjs";
4
+ import { Fragment, computed, createVNode, defineComponent, inject } from "vue";
5
+ import { Cell, Picker, Popup } from "vant";
6
+ import { EntityModelTypeEnum, FIELD_TYPE } from "@gct-paas/core";
7
+ //#region src/components/form-component/FieldSelect.tsx
8
+ var FieldSelect_default = /* @__PURE__ */ defineComponent({
9
+ name: "FieldSelect",
10
+ props: {
11
+ design: Boolean,
12
+ disabled: Boolean,
13
+ readonly: Boolean,
14
+ showPop: Boolean,
15
+ fieldType: {
16
+ type: String,
17
+ required: true
18
+ },
19
+ type: {
20
+ type: Object,
21
+ required: true
22
+ },
23
+ tagStyle: {
24
+ type: Object,
25
+ required: true
26
+ },
27
+ isLinkageMode: { type: Boolean },
28
+ options: Array,
29
+ value: [
30
+ String,
31
+ Number,
32
+ Boolean,
33
+ Array
34
+ ],
35
+ multiple: {
36
+ type: Boolean,
37
+ default: false
38
+ },
39
+ placeholder: {
40
+ type: String,
41
+ default: "请选择"
42
+ },
43
+ refModelType: {
44
+ type: String,
45
+ default: ""
46
+ },
47
+ useSwitchComp: {
48
+ type: Boolean,
49
+ default: false
50
+ },
51
+ maxTagTextLength: {
52
+ type: Number,
53
+ default: 12
54
+ }
55
+ },
56
+ setup(props, { emit }) {
57
+ const layout = inject("form-layout", {});
58
+ const options = computed(() => {
59
+ return (props.options ?? []).map((item) => {
60
+ return { ...item };
61
+ });
62
+ });
63
+ function getLabels(item) {
64
+ const arr = item._item?.full_path_.split("/") || [];
65
+ return (props.options ?? []).filter((i) => arr.includes(i.value)).map((val) => val.label).join("/");
66
+ }
67
+ const selectInfo = computed(() => {
68
+ return options.value?.filter((item) => {
69
+ if (props.multiple) return props.value?.includes(item.value);
70
+ return props.value === item.value;
71
+ }) ?? [];
72
+ });
73
+ const slots = { value: () => {
74
+ if (props.value?.length || ["boolean", "enum"].includes(props.fieldType) && !(props.value === void 0 || props.value === "")) {
75
+ const iconExts = {};
76
+ const avatarProps = {};
77
+ const labelArr = [];
78
+ selectInfo.value.forEach((e) => {
79
+ const label = handleLabel(e.label);
80
+ const { icon, iconColor, textColor } = e._item || {};
81
+ iconExts[label] = {
82
+ icon,
83
+ iconColor,
84
+ textColor
85
+ };
86
+ if (props.fieldType === FIELD_TYPE.USER_MULTI || props.fieldType === FIELD_TYPE.USER) avatarProps[label] = { avatar: e._item?.avatar };
87
+ labelArr.push(props.refModelType === EntityModelTypeEnum.TREE && !props.isLinkageMode ? getLabels(e) : label);
88
+ });
89
+ return createVNode(tag_label_default, {
90
+ "class": "mr-4px",
91
+ "tagWidgetStyle": props.tagStyle,
92
+ "type": props.fieldType,
93
+ "label": labelArr,
94
+ "disabled": props.disabled,
95
+ "iconExtraProps": iconExts,
96
+ "avatarProps": avatarProps
97
+ }, null);
98
+ } else return createVNode(tag_label_default, {
99
+ "type": props.fieldType,
100
+ "disabled": props.disabled,
101
+ "label": !props.readonly ? props.placeholder : "",
102
+ "style": {
103
+ color: "var(--van-gray-5)",
104
+ paddingRight: layout?.value?.inputBg ? "12px" : "",
105
+ fontSize: "14px"
106
+ }
107
+ }, null);
108
+ } };
109
+ const pickerSlots = { option: (option) => {
110
+ return createVNode(tag_label_default, {
111
+ "tagWidgetStyle": props.tagStyle,
112
+ "type": props.fieldType,
113
+ "label": option.label,
114
+ "disabled": props.disabled,
115
+ "showTagStyle": false
116
+ }, null);
117
+ } };
118
+ const onConfirm = ({ selectedOptions }) => {
119
+ emit("confirm", selectedOptions[0].value);
120
+ emit("update:value", selectedOptions[0].value);
121
+ emit("update:showPop", false);
122
+ };
123
+ const onCancel = () => {
124
+ emit("update:showPop", false);
125
+ };
126
+ const onChecked = (value) => {
127
+ emit("update:value", value.value);
128
+ emit("checked", value.value);
129
+ emit("update:showPop", false);
130
+ };
131
+ const handleLabel = (label) => {
132
+ if (props.readonly) return label;
133
+ if (label.length > props.maxTagTextLength) return label.slice(0, props.maxTagTextLength) + "...";
134
+ return label;
135
+ };
136
+ return () => {
137
+ if (props.design) return createVNode(Cell, {
138
+ "is-link": !props.readonly,
139
+ "border": false,
140
+ "style": { padding: 0 }
141
+ }, slots);
142
+ return createVNode(Fragment, null, [createVNode(Cell, {
143
+ "class": "app-tag-cell-box",
144
+ "is-link": !props.readonly,
145
+ "border": false,
146
+ "style": {
147
+ padding: 0,
148
+ background: "transparent"
149
+ }
150
+ }, slots), createVNode(Popup, {
151
+ "show": props.showPop,
152
+ "onUpdate:show": ($event) => props.showPop = $event,
153
+ "position": "bottom",
154
+ "round": true,
155
+ "teleport": "body",
156
+ "onClickOverlay": onCancel,
157
+ "style": props.useSwitchComp ? { height: "60%" } : {}
158
+ }, { default: () => [props.useSwitchComp ? props.showPop ? createVNode(optionList_default, {
159
+ "type": SelectType.SINGLE,
160
+ "options": props.options || [],
161
+ "activeKey": props.value ?? "",
162
+ "title": "请选择",
163
+ "onChecked": onChecked
164
+ }, null) : null : createVNode(Picker, {
165
+ "columns": props.options || [],
166
+ "columnsFieldNames": {
167
+ text: "label",
168
+ value: "value"
169
+ },
170
+ "onConfirm": onConfirm,
171
+ "onCancel": onCancel
172
+ }, pickerSlots)] })]);
173
+ };
174
+ }
175
+ });
176
+ //#endregion
177
+ export { FieldSelect_default as default };
@@ -0,0 +1,6 @@
1
+ import { default as FieldSelect } from './FieldSelect';
2
+ import { default as FieldRadio } from './FieldRadio';
3
+ import { default as FieldCheckbox } from './FieldCheckbox';
4
+ import { default as TagLabel } from './tag-label.vue';
5
+ export { FieldSelect, FieldRadio, FieldCheckbox, TagLabel as Taglabel };
6
+ export * from './typing';
@@ -0,0 +1,5 @@
1
+ import "./tag-label.vue.mjs";
2
+ import "./typing.mjs";
3
+ import "./FieldSelect.mjs";
4
+ import "./FieldRadio.mjs";
5
+ import "./FieldCheckbox.mjs";
@@ -0,0 +1,30 @@
1
+ import { SelectType, optionType } from './typing.ts';
2
+ type __VLS_Props = {
3
+ api?: Fn;
4
+ options: optionType[];
5
+ activeKey: string | number | boolean | string[];
6
+ title: string;
7
+ type: SelectType;
8
+ showSearch?: boolean;
9
+ lazy?: boolean;
10
+ selectedOptions?: optionType[];
11
+ remote?: boolean;
12
+ iconNode?: boolean;
13
+ onloadMore?: Fn;
14
+ scan?: boolean;
15
+ optionLabelProp?: string;
16
+ customSearch?: Fn;
17
+ filterFn?: Fn;
18
+ ignoreCase?: number;
19
+ maxTagTextLength?: number;
20
+ };
21
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
22
+ checked: (...args: any[]) => void;
23
+ handleSearch: (...args: any[]) => void;
24
+ "update:activeKey": (...args: any[]) => void;
25
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
26
+ onChecked?: ((...args: any[]) => any) | undefined;
27
+ onHandleSearch?: ((...args: any[]) => any) | undefined;
28
+ "onUpdate:activeKey"?: ((...args: any[]) => any) | undefined;
29
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export-helper.mjs";
2
+ import optionList_vue_vue_type_script_setup_true_lang_default from "./optionList.vue_vue_type_script_setup_true_lang.mjs";
3
+ import './optionList.vue_vue_type_style_index_0_scoped_5dd8d3a8_lang.css';/* empty css */
4
+ //#region src/components/form-component/optionList.vue
5
+ var optionList_default = /* @__PURE__ */ _plugin_vue_export_helper_default(optionList_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-5dd8d3a8"]]);
6
+ //#endregion
7
+ export { optionList_default as default };
@@ -0,0 +1,270 @@
1
+ import { SelectType } from "./typing.mjs";
2
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, ref, renderList, resolveComponent, toDisplayString, unref, vShow, watch, withCtx, withDirectives } from "vue";
3
+ import { cloneDeep, debounce } from "lodash-es";
4
+ //#region src/components/form-component/optionList.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = { class: "pt50px flex flex-col h-full" };
6
+ var _hoisted_2 = { class: "text-left text-16px font-bold p12px absolute title" };
7
+ var _hoisted_3 = { class: "flex flex-items-center" };
8
+ var _hoisted_4 = {
9
+ key: 0,
10
+ class: "px2 color-[#dddddd]",
11
+ style: { "font-style": "normal" }
12
+ };
13
+ var _hoisted_5 = { class: "overflow-y-auto flex-1 mx-14px" };
14
+ var _hoisted_6 = ["innerHTML"];
15
+ var _hoisted_7 = { class: "ks-row-middle" };
16
+ var _hoisted_8 = { class: "w-full p-12px mt-4px shadow-top" };
17
+ var _hoisted_9 = { class: "pr-8px text-sm mr-8px border-r" };
18
+ var _hoisted_10 = { style: { "color": "var(--van-primary-color)" } };
19
+ var optionList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
20
+ __name: "optionList",
21
+ props: {
22
+ api: {},
23
+ options: {},
24
+ activeKey: { type: [
25
+ String,
26
+ Number,
27
+ Boolean,
28
+ Array
29
+ ] },
30
+ title: {},
31
+ type: {},
32
+ showSearch: { type: Boolean },
33
+ lazy: { type: Boolean },
34
+ selectedOptions: {},
35
+ remote: { type: Boolean },
36
+ iconNode: { type: Boolean },
37
+ onloadMore: {},
38
+ scan: { type: Boolean },
39
+ optionLabelProp: {},
40
+ customSearch: {},
41
+ filterFn: {},
42
+ ignoreCase: {},
43
+ maxTagTextLength: {}
44
+ },
45
+ emits: [
46
+ "checked",
47
+ "handleSearch",
48
+ "update:activeKey"
49
+ ],
50
+ setup(__props, { emit: __emit }) {
51
+ const props = __props;
52
+ const emit = __emit;
53
+ const searchValue = ref("");
54
+ const orgOptions = ref([]);
55
+ const isSearch = ref(false);
56
+ const isExpand = ref(false);
57
+ const loading = ref(false);
58
+ const finished = ref(!props.lazy);
59
+ const allOpts = ref(cloneDeep(props.options));
60
+ const customOptions = ref([]);
61
+ const optionList = computed(() => {
62
+ return isSearch.value ? orgOptions.value : props.options;
63
+ });
64
+ const computedOptions = computed(() => {
65
+ return customOptions.value.length ? customOptions.value : optionList.value;
66
+ });
67
+ const selectedItems = computed(() => {
68
+ if (props.selectedOptions?.length) props.selectedOptions.forEach((e) => {
69
+ if (!allOpts.value.some((f) => f.value === e.value)) allOpts.value.push(e);
70
+ });
71
+ return selectedKeys.value.map((e) => {
72
+ return allOpts.value.find((f) => f.value === e);
73
+ });
74
+ });
75
+ const selectedKeys = computed({
76
+ get() {
77
+ if (props.activeKey && typeof props.activeKey === "string") return props.activeKey.split(",");
78
+ else return props.activeKey || [];
79
+ },
80
+ set(val) {
81
+ emit("update:activeKey", val);
82
+ }
83
+ });
84
+ watch(() => props.options, () => {
85
+ if (props.remote && props.options.length) setSearchOpts(searchValue.value);
86
+ else isSearch.value = false;
87
+ }, { deep: true });
88
+ const iconNodeHtml = { render: ({ $attrs }) => {
89
+ if ($attrs.labelName) {
90
+ const { iconColor, icon } = $attrs.item || {};
91
+ if (!{
92
+ iconColor,
93
+ icon
94
+ }?.icon) return;
95
+ }
96
+ } };
97
+ function setMulVal() {
98
+ emit("checked", selectedItems.value);
99
+ }
100
+ const pageNo = ref(1);
101
+ /**防抖处理搜索 */
102
+ const onSearch = debounce(async (val) => {
103
+ val = val && val.trim();
104
+ if (props.remote) if (val || val == "") {
105
+ pageNo.value = 2;
106
+ await requestFunc({
107
+ keyword: val.trim(),
108
+ pageNo: 1
109
+ });
110
+ } else {
111
+ orgOptions.value = [];
112
+ isSearch.value = true;
113
+ return;
114
+ }
115
+ else {
116
+ if (val == "") {
117
+ isSearch.value = false;
118
+ return;
119
+ }
120
+ setSearchOpts(val);
121
+ }
122
+ }, 300);
123
+ const setSearchOpts = (val) => {
124
+ isSearch.value = true;
125
+ const options = props.options.filter((item) => {
126
+ if (props.filterFn) return props.filterFn(val);
127
+ if (props.ignoreCase) return item.label?.toLowerCase().indexOf(val.toLowerCase()) !== -1;
128
+ return item.label?.indexOf(val) !== -1;
129
+ });
130
+ orgOptions.value = JSON.parse(JSON.stringify(options));
131
+ orgOptions.value.forEach((i) => {
132
+ i.label = ((i.label?.split(new RegExp(`(${val})`, "gi")))?.map((part, index) => part.toLowerCase() === val.toLowerCase() ? `<span key=${index} style='color: var(--van-primary-color);'>${part}</span>` : part))?.join("");
133
+ });
134
+ };
135
+ const toggle = () => {
136
+ isExpand.value = !isExpand.value;
137
+ };
138
+ const onLoad = async () => {
139
+ if (props.lazy) requestFunc({
140
+ keyword: searchValue.value,
141
+ pageNo: pageNo.value += 1
142
+ });
143
+ };
144
+ const originSearchKey = ref();
145
+ async function requestFunc({ keyword, pageNo = 1 }) {
146
+ const requestApi = props.onloadMore && typeof props.onloadMore === "function" && pageNo > 1 ? props.onloadMore : props.api;
147
+ loading.value = true;
148
+ if (props.customSearch) {
149
+ if (originSearchKey.value !== keyword) customOptions.value = [];
150
+ originSearchKey.value = keyword;
151
+ const res = await props.customSearch({
152
+ keyword,
153
+ pageNo
154
+ });
155
+ allOpts.value = res.allOpts;
156
+ customOptions.value = customOptions.value.concat(res.data);
157
+ finished.value = res.finished;
158
+ } else {
159
+ const res = requestApi && await requestApi({
160
+ keyword,
161
+ pageNo
162
+ });
163
+ props.options.forEach((e) => {
164
+ if (!allOpts.value.find((f) => f.value === e.value)) allOpts.value.push(e);
165
+ });
166
+ finished.value = res === false ? false : true;
167
+ }
168
+ loading.value = false;
169
+ }
170
+ const handleLabel = (label) => {
171
+ if (props.maxTagTextLength && label.length > props.maxTagTextLength) return label.slice(0, props.maxTagTextLength) + "...";
172
+ return label;
173
+ };
174
+ return (_ctx, _cache) => {
175
+ const _component_van_icon = resolveComponent("van-icon");
176
+ const _component_van_search = resolveComponent("van-search");
177
+ const _component_van_cell = resolveComponent("van-cell");
178
+ const _component_van_list = resolveComponent("van-list");
179
+ const _component_van_tag = resolveComponent("van-tag");
180
+ const _component_van_button = resolveComponent("van-button");
181
+ return openBlock(), createElementBlock("div", _hoisted_1, [
182
+ createElementVNode("div", _hoisted_2, toDisplayString(__props.title), 1),
183
+ __props.showSearch ? (openBlock(), createBlock(_component_van_search, {
184
+ key: 0,
185
+ modelValue: searchValue.value,
186
+ "onUpdate:modelValue": [_cache[0] || (_cache[0] = ($event) => searchValue.value = $event), unref(onSearch)],
187
+ class: normalizeClass(["border-b", { "border-all": searchValue.value }]),
188
+ placeholder: "请输入",
189
+ onClear: _cache[1] || (_cache[1] = ($event) => unref(onSearch)(""))
190
+ }, {
191
+ "left-icon": withCtx(() => [..._cache[2] || (_cache[2] = [])]),
192
+ "right-icon": withCtx(() => [createElementVNode("div", _hoisted_3, [
193
+ createVNode(_component_van_icon, { name: "search" }),
194
+ __props.scan ? (openBlock(), createElementBlock("i", _hoisted_4, "|")) : createCommentVNode("", true),
195
+ __props.scan ? (openBlock(), createBlock(_component_van_icon, {
196
+ key: 1,
197
+ name: "scan",
198
+ color: "var(--van-primary-color)"
199
+ })) : createCommentVNode("", true)
200
+ ])]),
201
+ _: 1
202
+ }, 8, [
203
+ "modelValue",
204
+ "class",
205
+ "onUpdate:modelValue"
206
+ ])) : createCommentVNode("", true),
207
+ createElementVNode("div", _hoisted_5, [createVNode(_component_van_list, {
208
+ loading: loading.value,
209
+ finished: finished.value,
210
+ "finished-text": "",
211
+ onLoad
212
+ }, {
213
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(computedOptions.value, (i, index) => {
214
+ return openBlock(), createBlock(_component_van_cell, {
215
+ key: index,
216
+ border: false,
217
+ class: normalizeClass(["mt-8px", { "is-active": selectedKeys.value[0] === i.value || selectedItems.value.map((item) => item?.value).includes(i.value) }])
218
+ }, {
219
+ title: withCtx(() => [__props.iconNode && i._item["icon"] ? (openBlock(), createBlock(iconNodeHtml, {
220
+ key: 0,
221
+ "label-name": i.label,
222
+ item: i._item
223
+ }, null, 8, ["label-name", "item"])) : createCommentVNode("", true), createElementVNode("span", {
224
+ class: "text-color",
225
+ style: normalizeStyle({ "--text-color": i._item?.["textColor"] }),
226
+ innerHTML: i[__props.optionLabelProp] || i.label
227
+ }, null, 12, _hoisted_6)]),
228
+ "right-icon": withCtx(() => [createElementVNode("div", _hoisted_7, [selectedItems.value.map((item) => item?.value).includes(i.value) ? (openBlock(), createBlock(_component_van_icon, {
229
+ key: 0,
230
+ name: "success",
231
+ class: "text-18px primary-color"
232
+ })) : createCommentVNode("", true)])]),
233
+ _: 2
234
+ }, 1032, ["class"]);
235
+ }), 128))]),
236
+ _: 1
237
+ }, 8, ["loading", "finished"])]),
238
+ withDirectives(createElementVNode("div", _hoisted_8, [selectedItems.value.length ? (openBlock(), createElementBlock("div", {
239
+ key: 0,
240
+ class: normalizeClass(["mb-12px w-full flex-1 overflow-y-auto", { "toggle-box": isExpand.value }])
241
+ }, [createElementVNode("span", _hoisted_9, [_cache[3] || (_cache[3] = createTextVNode(" 已选 ", -1)), createElementVNode("span", _hoisted_10, [createTextVNode(toDisplayString(selectedItems.value.length) + " ", 1), createVNode(_component_van_icon, {
242
+ name: isExpand.value ? "arrow-up" : "arrow-down",
243
+ onClick: toggle
244
+ }, null, 8, ["name"])])]), (openBlock(true), createElementBlock(Fragment, null, renderList(selectedItems.value, (item, index) => {
245
+ return openBlock(), createBlock(_component_van_tag, {
246
+ key: item?.label + "_" + index,
247
+ class: "mx-2px px-2px tag-wrap",
248
+ size: "medium",
249
+ round: "",
250
+ color: "color-mix(in oklch, var(--van-primary-color), transparent 92%)",
251
+ "text-color": "var(--van-primary-color)",
252
+ closeable: ""
253
+ }, {
254
+ default: withCtx(() => [createTextVNode(toDisplayString(handleLabel(item?.label)), 1)]),
255
+ _: 2
256
+ }, 1024);
257
+ }), 128))], 2)) : createCommentVNode("", true), createVNode(_component_van_button, {
258
+ class: "w-full px-4px",
259
+ type: "primary",
260
+ onClick: setMulVal
261
+ }, {
262
+ default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("完成", -1)])]),
263
+ _: 1
264
+ })], 512), [[vShow, __props.type === unref(SelectType).MULTIPLE]])
265
+ ]);
266
+ };
267
+ }
268
+ });
269
+ //#endregion
270
+ export { optionList_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,76 @@
1
+ .title[data-v-5dd8d3a8] {
2
+ z-index: 1;
3
+ top: 0;
4
+ width: 100%;
5
+ }
6
+ .title[data-v-5dd8d3a8]::after {
7
+ content: ' ';
8
+ position: absolute;
9
+ right: 0;
10
+ bottom: 0;
11
+ left: 0;
12
+ box-sizing: border-box;
13
+ border-bottom: 1px solid var(--van-cell-border-color);
14
+ pointer-events: none;
15
+ }
16
+ .shadow-top[data-v-5dd8d3a8] {
17
+ box-shadow: 0 -1px 4px 0 rgba(0, 0, 0, 0.12);
18
+ }
19
+ .is-active[data-v-5dd8d3a8] {
20
+ background: rgba(from var(--van-primary-color) r g b / 5%) !important;
21
+ }
22
+ .is-active .text-color[data-v-5dd8d3a8] {
23
+ max-width: 100%;
24
+ overflow: hidden;
25
+ color: var(--van-primary-color);
26
+ text-overflow: ellipsis;
27
+ }
28
+ .border-r[data-v-5dd8d3a8] {
29
+ border-right: 1px solid var(--van-cell-border-color);
30
+ }
31
+ .border-b[data-v-5dd8d3a8] {
32
+ position: relative;
33
+ }
34
+ .border-b[data-v-5dd8d3a8]::after {
35
+ content: ' ';
36
+ position: absolute;
37
+ right: 0;
38
+ bottom: 0;
39
+ left: 0;
40
+ box-sizing: border-box;
41
+ pointer-events: none;
42
+ }
43
+ [data-v-5dd8d3a8] .van-list .van-cell {
44
+ padding: 6px 14px;
45
+ border-radius: 4px;
46
+ }
47
+ [data-v-5dd8d3a8] .van-list .van-cell::after {
48
+ right: 0;
49
+ left: 0;
50
+ }
51
+ [data-v-5dd8d3a8] .van-search {
52
+ padding: 14px 14px 0;
53
+ }
54
+ [data-v-5dd8d3a8] .van-search .van-search__content {
55
+ border: 1px solid #e5e5e5;
56
+ border-radius: 6px;
57
+ background: inherit;
58
+ }
59
+ .tag-wrap[data-v-5dd8d3a8] {
60
+ max-width: calc(100% - 4px);
61
+ }
62
+ .tag-wrap span[data-v-5dd8d3a8] {
63
+ overflow: hidden;
64
+ text-overflow: ellipsis;
65
+ white-space: nowrap;
66
+ }
67
+ .text-color[data-v-5dd8d3a8] {
68
+ color: var(--text-color);
69
+ }
70
+ .toggle-box[data-v-5dd8d3a8] {
71
+ height: 60px;
72
+ overflow: hidden;
73
+ }
74
+ [data-v-5dd8d3a8] .van-tag--round {
75
+ border-radius: 4px;
76
+ }
@@ -0,0 +1,26 @@
1
+ import { FIELD_TYPE } from '@gct-paas/core';
2
+ export interface Props {
3
+ tagWidgetStyle?: IObject;
4
+ type?: FIELD_TYPE | undefined;
5
+ disabled?: boolean;
6
+ label?: string | (string | number)[];
7
+ isDesign?: boolean;
8
+ /** 外部控制是否显示标签样式 */
9
+ showTagStyle?: boolean;
10
+ iconExtraProps?: Record<string, {
11
+ icon: string;
12
+ iconColor: string;
13
+ textColor: string;
14
+ }>;
15
+ avatarProps?: Record<string, {
16
+ avatar: string;
17
+ }>;
18
+ }
19
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
20
+ "on-close": (...args: any[]) => void;
21
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
22
+ "onOn-close"?: ((...args: any[]) => any) | undefined;
23
+ }>, {
24
+ showTagStyle: boolean;
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
26
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export-helper.mjs";
2
+ import tag_label_vue_vue_type_script_setup_true_lang_default from "./tag-label.vue_vue_type_script_setup_true_lang.mjs";
3
+ import './tag-label.vue_vue_type_style_index_0_scoped_8718d4a9_lang.css';/* empty css */
4
+ //#region src/components/form-component/tag-label.vue
5
+ var tag_label_default = /* @__PURE__ */ _plugin_vue_export_helper_default(tag_label_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8718d4a9"]]);
6
+ //#endregion
7
+ export { tag_label_default as default };