ll-plus 2.7.4 → 2.7.5
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/es/components/input/index.d.ts +17 -9
- package/es/components/input/src/input.vue.d.ts +17 -9
- package/es/packages/components/api-component/src/components/json-xml-table-row.vue2.mjs +1 -0
- package/es/packages/components/api-component/src/components/json-xml-table-row.vue2.mjs.map +1 -1
- package/es/packages/components/input/src/input.vue2.mjs +37 -38
- package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
- package/es/utils/props/runtime.d.ts +2 -2
- package/index.full.js +19239 -19240
- package/index.full.min.js +43 -43
- package/index.full.min.js.map +1 -1
- package/index.full.min.mjs +45 -45
- package/index.full.min.mjs.map +1 -1
- package/index.full.mjs +19239 -19240
- package/lib/components/input/index.d.ts +17 -9
- package/lib/components/input/src/input.vue.d.ts +17 -9
- package/lib/packages/components/api-component/src/components/json-xml-table-row.vue2.js +1 -0
- package/lib/packages/components/api-component/src/components/json-xml-table-row.vue2.js.map +1 -1
- package/lib/packages/components/input/src/input.vue2.js +36 -37
- package/lib/packages/components/input/src/input.vue2.js.map +1 -1
- package/lib/utils/props/runtime.d.ts +2 -2
- package/package.json +1 -1
- package/theme-chalk/css/api-component.css +1 -1
- package/theme-chalk/css/index.css +2 -2
- package/theme-chalk/css/input.css +1 -1
- package/types/packages/components/input/index.d.ts +17 -9
- package/types/packages/components/input/src/input.vue.d.ts +17 -9
- package/types/packages/utils/props/runtime.d.ts +2 -2
|
@@ -42,12 +42,15 @@ export declare const LlInput: import("ll-plus/es/utils").SFCWithInstall<import("
|
|
|
42
42
|
readonly suffixIcon?: string | undefined;
|
|
43
43
|
readonly prefixIcon?: string | undefined;
|
|
44
44
|
readonly showPassword?: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
|
|
45
|
+
readonly "onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
45
46
|
} & {}>;
|
|
47
|
+
emit: (event: "update:value", ...args: any[]) => void;
|
|
46
48
|
innerValue: import("vue").Ref<string | number | undefined>;
|
|
47
49
|
inputRef: import("vue").Ref<any>;
|
|
48
|
-
|
|
50
|
+
isMouseOver: import("vue").Ref<boolean>;
|
|
51
|
+
hasValue: import("vue").ComputedRef<boolean>;
|
|
49
52
|
handleMouseOver: () => void;
|
|
50
|
-
handleMouseOut: (
|
|
53
|
+
handleMouseOut: () => void;
|
|
51
54
|
componentType: ({
|
|
52
55
|
new (...args: any[]): import("@vue/runtime-core").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<Omit<{
|
|
53
56
|
id: StringConstructor;
|
|
@@ -1310,14 +1313,17 @@ export declare const LlInput: import("ll-plus/es/utils").SFCWithInstall<import("
|
|
|
1310
1313
|
visibilityToggle: boolean;
|
|
1311
1314
|
}, {}>;
|
|
1312
1315
|
computedAttrs: import("vue").ComputedRef<{
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1316
|
+
props: import("@vue/shared").LooseRequired<{
|
|
1317
|
+
readonly allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
1318
|
+
readonly value?: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>;
|
|
1319
|
+
readonly suffixIcon?: string | undefined;
|
|
1320
|
+
readonly prefixIcon?: string | undefined;
|
|
1321
|
+
readonly showPassword?: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
|
|
1322
|
+
readonly "onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
1323
|
+
} & {}>;
|
|
1318
1324
|
}>;
|
|
1319
1325
|
focus: () => void;
|
|
1320
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin,
|
|
1326
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
1321
1327
|
readonly value: {
|
|
1322
1328
|
readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>>;
|
|
1323
1329
|
readonly required: false;
|
|
@@ -1343,7 +1349,9 @@ export declare const LlInput: import("ll-plus/es/utils").SFCWithInstall<import("
|
|
|
1343
1349
|
__epPropKey: true;
|
|
1344
1350
|
};
|
|
1345
1351
|
readonly allowClear: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
1346
|
-
}
|
|
1352
|
+
}>> & {
|
|
1353
|
+
"onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
1354
|
+
}, {
|
|
1347
1355
|
readonly allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
1348
1356
|
}, {}>>;
|
|
1349
1357
|
export default LlInput;
|
|
@@ -41,12 +41,15 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
41
41
|
readonly suffixIcon?: string | undefined;
|
|
42
42
|
readonly prefixIcon?: string | undefined;
|
|
43
43
|
readonly showPassword?: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
|
|
44
|
+
readonly "onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
44
45
|
} & {}>;
|
|
46
|
+
emit: (event: "update:value", ...args: any[]) => void;
|
|
45
47
|
innerValue: import("vue").Ref<string | number | undefined>;
|
|
46
48
|
inputRef: import("vue").Ref<any>;
|
|
47
|
-
|
|
49
|
+
isMouseOver: import("vue").Ref<boolean>;
|
|
50
|
+
hasValue: import("vue").ComputedRef<boolean>;
|
|
48
51
|
handleMouseOver: () => void;
|
|
49
|
-
handleMouseOut: (
|
|
52
|
+
handleMouseOut: () => void;
|
|
50
53
|
componentType: ({
|
|
51
54
|
new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<Omit<{
|
|
52
55
|
id: StringConstructor;
|
|
@@ -1309,14 +1312,17 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1309
1312
|
visibilityToggle: boolean;
|
|
1310
1313
|
}, {}>;
|
|
1311
1314
|
computedAttrs: import("vue").ComputedRef<{
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1315
|
+
props: import("@vue/shared").LooseRequired<{
|
|
1316
|
+
readonly allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
1317
|
+
readonly value?: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>;
|
|
1318
|
+
readonly suffixIcon?: string | undefined;
|
|
1319
|
+
readonly prefixIcon?: string | undefined;
|
|
1320
|
+
readonly showPassword?: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
|
|
1321
|
+
readonly "onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
1322
|
+
} & {}>;
|
|
1317
1323
|
}>;
|
|
1318
1324
|
focus: () => void;
|
|
1319
|
-
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin,
|
|
1325
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
1320
1326
|
readonly value: {
|
|
1321
1327
|
readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>>;
|
|
1322
1328
|
readonly required: false;
|
|
@@ -1342,7 +1348,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1342
1348
|
__epPropKey: true;
|
|
1343
1349
|
};
|
|
1344
1350
|
readonly allowClear: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
1345
|
-
}
|
|
1351
|
+
}>> & {
|
|
1352
|
+
"onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
1353
|
+
}, {
|
|
1346
1354
|
readonly allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
1347
1355
|
}, {}>;
|
|
1348
1356
|
export default _default;
|
|
@@ -219,6 +219,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
219
219
|
"onUpdate:value": _cache[1] || (_cache[1] = ($event) => innerData.value.name = $event),
|
|
220
220
|
disabled: unref(disabled),
|
|
221
221
|
placeholder: "\u6DFB\u52A0\u5B57\u6BB5\u540D",
|
|
222
|
+
style: { "width": "100%" },
|
|
222
223
|
bordered: false
|
|
223
224
|
}, null, 8, ["value", "disabled"])) : createCommentVNode("v-if", true)
|
|
224
225
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-xml-table-row.vue2.mjs","sources":["../../../../../../../packages/components/api-component/src/components/json-xml-table-row.vue"],"sourcesContent":["<template>\n <a-row :gutter=\"20\" :class=\"bem.e('table-row')\">\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\">\n <ll-button\n v-if=\"innerData.type === 'object' || innerData.type === 'array'\"\n type=\"link\"\n style=\"width: 10px\"\n :disabled=\"disabled\"\n @click=\"expanded = !expanded\"\n >\n <ll-icon\n v-if=\"!expanded\"\n style=\"font-size: 14px\"\n icon-name=\"icon-list-expand\"\n />\n <ll-icon\n v-else\n style=\"font-size: 14px\"\n icon-name=\"icon-list-retract\"\n />\n </ll-button>\n </div>\n\n <div v-if=\"!props.parentData\" :class=\"bem.m('table-row-tag')\">根节点</div>\n <template v-else>\n <div\n v-if=\"props.parentData.type === 'array'\"\n :class=\"bem.m('table-row-tag')\"\n >\n ITEMS\n </div>\n <ll-input\n v-if=\"props.parentData.type === 'object'\"\n v-model:value=\"innerData.name\"\n :disabled=\"disabled\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n ></ll-input>\n </template>\n </a-col>\n <a-col :span=\"3\" :class=\"bem.e('table-col')\">\n <ll-select\n v-model:value=\"innerData.type\"\n :options=\"jsonXmlTypeOptions\"\n :disabled=\"disabled\"\n style=\"width: 100%\"\n @change=\"handleChange\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.mock\"\n placeholder=\"Mock\"\n :disabled=\"innerData.type === 'object' || disabled\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <ll-input\n v-model:value=\"innerData.chineseName\"\n :disabled=\"disabled\"\n placeholder=\"中文名\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.description\"\n :disabled=\"disabled\"\n placeholder=\"说明\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"2\">\n <div :class=\"bem.e('table-operation')\">\n <ll-tooltip\n v-if=\"\n (props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type !== 'object') ||\n (!props.parentData && innerData.type === 'object')\n \"\n :tip=\"\n getTip(parentData, innerData) === 'child'\n ? '添加子节点'\n : '添加相邻节点'\n \"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n @click=\"\n handleAdd(\n getTip(parentData, innerData),\n props.parentData,\n innerData\n )\n \"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-tooltip>\n\n <ll-dropdown\n :dropdown-items=\"customOverlay(props.parentData, innerData)\"\n placement=\"bottomRight\"\n @claim-selected=\"handleClaimSelected\"\n >\n <ll-button\n v-if=\"\n props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type === 'object'\n \"\n :class=\"bem.m('table-icon')\"\n :disabled=\"disabled\"\n type=\"link\"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-dropdown>\n\n <a-popconfirm\n v-if=\"props.parentData && props.parentData.type !== 'array'\"\n title=\"你确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.e('popconfirm')\"\n :disabled=\"disabled\"\n @confirm=\"handleConfirm(props.parentData, innerData)\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n >\n <ll-icon icon-name=\"icon-remove\" />\n </ll-button>\n </a-popconfirm>\n </div>\n </a-col>\n </a-row>\n\n <template v-if=\"expanded\">\n <a-row\n v-if=\"\n innerData.type === 'object' &&\n innerData.children &&\n innerData.children.length === 0\n \"\n :gutter=\"20\"\n :class=\"bem.e('table-row')\"\n >\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\" />\n <ll-input\n v-model:value=\"addValue\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n />\n </a-col>\n </a-row>\n\n <template v-if=\"innerData.children && innerData.children.length > 0\">\n <template v-for=\"(child, index) in innerData.children\" :key=\"index\">\n <table-row\n :parent-data=\"innerData\"\n :list=\"innerData.children\"\n :data=\"child\"\n :layer=\"props.layer + 1\"\n :tree-key=\"props.treeKey + '-' + (index + 1)\"\n @change=\"handleRowChange\"\n />\n </template>\n </template>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport {\n jsonXmlTypeOptions,\n jsonXmlTableRowProps,\n jsonXmlTableRowEmits\n} from '../config'\n\nimport TableRow from './json-xml-table-row.vue'\n\nimport ClickInput from './click-input.vue'\n\ndefineOptions({ name: 'LlJsonXmlTableRow' })\n\nconst bem = createNamespace('json-xml')\n\nconst props = defineProps(jsonXmlTableRowProps)\n\nconst emits = defineEmits(jsonXmlTableRowEmits)\n\nconst disabled = inject('disabled') as boolean\n\nconst innerData = ref(props.data)\n\nconst parentData = ref(props.parentData)\n\nconst expanded = ref(true)\n\nconst addValue = ref('')\n\nconst customOverlay = (parentData, innerData) => [\n {\n label: '添加子节点',\n type: 'child',\n parentData,\n innerData\n },\n {\n label: '添加相邻节点',\n type: 'next',\n parentData,\n innerData\n }\n]\n\nconst getTip = (parentData, innerData) => {\n if (\n !parentData ||\n (parentData.type === 'array' && innerData.type === 'object')\n ) {\n return 'child'\n }\n if (parentData.type === 'object' && innerData.type !== 'object') {\n return 'next'\n }\n}\n\nconst handleChange = () => {\n if (innerData.value.type === 'object' || innerData.value.type === 'array') {\n innerData.value.children = []\n if (innerData.value.type === 'array') {\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: 'ITEMS',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n }\n } else {\n delete innerData.value.children\n }\n}\n\nconst handleConfirm = (parentData, innerData) => {\n const findIndex = parentData.children.findIndex(\n item => item.key === innerData.key\n )\n parentData.children.splice(findIndex, 1)\n}\n\nconst handleInput = () => {\n innerData.value.children = []\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: addValue.value,\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n addValue.value = ''\n}\n\nconst handleAdd = (type, parentData, innerData) => {\n if (type === 'next') {\n parentData.children.push({\n key: `${parentData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n } else {\n innerData.children.push({\n key: props.treeKey + `${innerData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n }\n}\nconst handleClaimSelected = item => {\n const { type, parentData, innerData } = item\n handleAdd(type, parentData, innerData)\n}\n\nconst handleRowChange = child => {\n if (innerData.value.children) {\n const index = innerData.value.children.findIndex(\n item => item.key === child.key\n )\n innerData.value.children[index] = child\n }\n}\nwatch(\n innerData,\n () => {\n emits('change', innerData.value)\n },\n {\n deep: true\n }\n)\n</script>\n"],"names":["parentData","innerData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"json-xml-table-row.vue2.mjs","sources":["../../../../../../../packages/components/api-component/src/components/json-xml-table-row.vue"],"sourcesContent":["<template>\n <a-row :gutter=\"20\" :class=\"bem.e('table-row')\">\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\">\n <ll-button\n v-if=\"innerData.type === 'object' || innerData.type === 'array'\"\n type=\"link\"\n style=\"width: 10px\"\n :disabled=\"disabled\"\n @click=\"expanded = !expanded\"\n >\n <ll-icon\n v-if=\"!expanded\"\n style=\"font-size: 14px\"\n icon-name=\"icon-list-expand\"\n />\n <ll-icon\n v-else\n style=\"font-size: 14px\"\n icon-name=\"icon-list-retract\"\n />\n </ll-button>\n </div>\n\n <div v-if=\"!props.parentData\" :class=\"bem.m('table-row-tag')\">根节点</div>\n <template v-else>\n <div\n v-if=\"props.parentData.type === 'array'\"\n :class=\"bem.m('table-row-tag')\"\n >\n ITEMS\n </div>\n <ll-input\n v-if=\"props.parentData.type === 'object'\"\n v-model:value=\"innerData.name\"\n :disabled=\"disabled\"\n placeholder=\"添加字段名\"\n style=\"width: 100%\"\n :bordered=\"false\"\n ></ll-input>\n </template>\n </a-col>\n <a-col :span=\"3\" :class=\"bem.e('table-col')\">\n <ll-select\n v-model:value=\"innerData.type\"\n :options=\"jsonXmlTypeOptions\"\n :disabled=\"disabled\"\n style=\"width: 100%\"\n @change=\"handleChange\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.mock\"\n placeholder=\"Mock\"\n :disabled=\"innerData.type === 'object' || disabled\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <ll-input\n v-model:value=\"innerData.chineseName\"\n :disabled=\"disabled\"\n placeholder=\"中文名\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.description\"\n :disabled=\"disabled\"\n placeholder=\"说明\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"2\">\n <div :class=\"bem.e('table-operation')\">\n <ll-tooltip\n v-if=\"\n (props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type !== 'object') ||\n (!props.parentData && innerData.type === 'object')\n \"\n :tip=\"\n getTip(parentData, innerData) === 'child'\n ? '添加子节点'\n : '添加相邻节点'\n \"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n @click=\"\n handleAdd(\n getTip(parentData, innerData),\n props.parentData,\n innerData\n )\n \"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-tooltip>\n\n <ll-dropdown\n :dropdown-items=\"customOverlay(props.parentData, innerData)\"\n placement=\"bottomRight\"\n @claim-selected=\"handleClaimSelected\"\n >\n <ll-button\n v-if=\"\n props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type === 'object'\n \"\n :class=\"bem.m('table-icon')\"\n :disabled=\"disabled\"\n type=\"link\"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-dropdown>\n\n <a-popconfirm\n v-if=\"props.parentData && props.parentData.type !== 'array'\"\n title=\"你确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.e('popconfirm')\"\n :disabled=\"disabled\"\n @confirm=\"handleConfirm(props.parentData, innerData)\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n >\n <ll-icon icon-name=\"icon-remove\" />\n </ll-button>\n </a-popconfirm>\n </div>\n </a-col>\n </a-row>\n\n <template v-if=\"expanded\">\n <a-row\n v-if=\"\n innerData.type === 'object' &&\n innerData.children &&\n innerData.children.length === 0\n \"\n :gutter=\"20\"\n :class=\"bem.e('table-row')\"\n >\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\" />\n <ll-input\n v-model:value=\"addValue\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n />\n </a-col>\n </a-row>\n\n <template v-if=\"innerData.children && innerData.children.length > 0\">\n <template v-for=\"(child, index) in innerData.children\" :key=\"index\">\n <table-row\n :parent-data=\"innerData\"\n :list=\"innerData.children\"\n :data=\"child\"\n :layer=\"props.layer + 1\"\n :tree-key=\"props.treeKey + '-' + (index + 1)\"\n @change=\"handleRowChange\"\n />\n </template>\n </template>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport {\n jsonXmlTypeOptions,\n jsonXmlTableRowProps,\n jsonXmlTableRowEmits\n} from '../config'\n\nimport TableRow from './json-xml-table-row.vue'\n\nimport ClickInput from './click-input.vue'\n\ndefineOptions({ name: 'LlJsonXmlTableRow' })\n\nconst bem = createNamespace('json-xml')\n\nconst props = defineProps(jsonXmlTableRowProps)\n\nconst emits = defineEmits(jsonXmlTableRowEmits)\n\nconst disabled = inject('disabled') as boolean\n\nconst innerData = ref(props.data)\n\nconst parentData = ref(props.parentData)\n\nconst expanded = ref(true)\n\nconst addValue = ref('')\n\nconst customOverlay = (parentData, innerData) => [\n {\n label: '添加子节点',\n type: 'child',\n parentData,\n innerData\n },\n {\n label: '添加相邻节点',\n type: 'next',\n parentData,\n innerData\n }\n]\n\nconst getTip = (parentData, innerData) => {\n if (\n !parentData ||\n (parentData.type === 'array' && innerData.type === 'object')\n ) {\n return 'child'\n }\n if (parentData.type === 'object' && innerData.type !== 'object') {\n return 'next'\n }\n}\n\nconst handleChange = () => {\n if (innerData.value.type === 'object' || innerData.value.type === 'array') {\n innerData.value.children = []\n if (innerData.value.type === 'array') {\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: 'ITEMS',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n }\n } else {\n delete innerData.value.children\n }\n}\n\nconst handleConfirm = (parentData, innerData) => {\n const findIndex = parentData.children.findIndex(\n item => item.key === innerData.key\n )\n parentData.children.splice(findIndex, 1)\n}\n\nconst handleInput = () => {\n innerData.value.children = []\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: addValue.value,\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n addValue.value = ''\n}\n\nconst handleAdd = (type, parentData, innerData) => {\n if (type === 'next') {\n parentData.children.push({\n key: `${parentData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n } else {\n innerData.children.push({\n key: props.treeKey + `${innerData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n }\n}\nconst handleClaimSelected = item => {\n const { type, parentData, innerData } = item\n handleAdd(type, parentData, innerData)\n}\n\nconst handleRowChange = child => {\n if (innerData.value.children) {\n const index = innerData.value.children.findIndex(\n item => item.key === child.key\n )\n innerData.value.children[index] = child\n }\n}\nwatch(\n innerData,\n () => {\n emits('change', innerData.value)\n },\n {\n deep: true\n }\n)\n</script>\n"],"names":["parentData","innerData"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { defineComponent, ref,
|
|
1
|
+
import { defineComponent, ref, computed, watch, useAttrs, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createBlock, resolveDynamicComponent, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, createVNode } from 'vue';
|
|
2
2
|
import { Input } from 'ant-design-vue';
|
|
3
3
|
import '../../../utils/index.mjs';
|
|
4
4
|
import { inputProps } from './input.mjs';
|
|
5
|
+
import { omit } from 'lodash';
|
|
5
6
|
import { createNamespace } from '../../../utils/create-namespace.mjs';
|
|
6
7
|
|
|
7
8
|
"use strict";
|
|
@@ -9,56 +10,49 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
9
10
|
...{ name: "LlInput" },
|
|
10
11
|
__name: "input",
|
|
11
12
|
props: inputProps,
|
|
12
|
-
|
|
13
|
+
emits: ["update:value"],
|
|
14
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
13
15
|
const bem = createNamespace("input");
|
|
14
16
|
const props = __props;
|
|
17
|
+
const emit = __emit;
|
|
15
18
|
const innerValue = ref("");
|
|
16
19
|
const inputRef = ref();
|
|
17
|
-
const
|
|
20
|
+
const isMouseOver = ref(false);
|
|
21
|
+
const hasValue = computed(() => innerValue.value !== "");
|
|
18
22
|
const handleMouseOver = () => {
|
|
19
|
-
|
|
20
|
-
allowClear.value = true;
|
|
21
|
-
}
|
|
23
|
+
isMouseOver.value = true;
|
|
22
24
|
};
|
|
23
|
-
const handleMouseOut = (
|
|
24
|
-
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (e.relatedTarget && (e.relatedTarget.classList.contains("ant-input-clear-icon") || e.relatedTarget.closest(".ant-input-clear-icon"))) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
allowClear.value = false;
|
|
25
|
+
const handleMouseOut = () => {
|
|
26
|
+
isMouseOver.value = false;
|
|
31
27
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
watch(
|
|
29
|
+
() => props.value,
|
|
30
|
+
(newValue) => {
|
|
31
|
+
innerValue.value = newValue;
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
immediate: true
|
|
35
35
|
}
|
|
36
|
-
|
|
36
|
+
);
|
|
37
|
+
watch(
|
|
38
|
+
innerValue,
|
|
39
|
+
(newValue) => {
|
|
40
|
+
console.log(newValue);
|
|
41
|
+
emit("update:value", newValue);
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
immediate: true
|
|
45
|
+
}
|
|
46
|
+
);
|
|
37
47
|
const componentType = props.showPassword ? Input.Password : Input;
|
|
38
48
|
const computedAttrs = computed(() => {
|
|
39
|
-
const attrs = { ...useAttrs(),
|
|
49
|
+
const attrs = { ...omit(useAttrs(), ["class", "style"]), props };
|
|
50
|
+
console.log(attrs);
|
|
40
51
|
return attrs;
|
|
41
52
|
});
|
|
42
53
|
const focus = () => {
|
|
43
54
|
inputRef.value.focus();
|
|
44
55
|
};
|
|
45
|
-
onMounted(() => {
|
|
46
|
-
if (props.allowClear) {
|
|
47
|
-
const clearIcon = inputRef.value?.$el.querySelector(".ant-input-clear-icon");
|
|
48
|
-
if (clearIcon) {
|
|
49
|
-
clearIcon.addEventListener("mouseover", (e) => {
|
|
50
|
-
e.stopPropagation();
|
|
51
|
-
allowClear.value = true;
|
|
52
|
-
});
|
|
53
|
-
clearIcon.addEventListener("mouseout", (e) => {
|
|
54
|
-
if (e.relatedTarget && inputRef.value.$el.contains(e.relatedTarget)) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
allowClear.value = false;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
56
|
__expose({ focus });
|
|
63
57
|
return (_ctx, _cache) => {
|
|
64
58
|
const _component_ll_icon = resolveComponent("ll-icon");
|
|
@@ -74,7 +68,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
74
68
|
ref_key: "inputRef",
|
|
75
69
|
ref: inputRef
|
|
76
70
|
}, computedAttrs.value, {
|
|
77
|
-
|
|
71
|
+
value: innerValue.value,
|
|
72
|
+
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
|
|
73
|
+
"allow-clear": props.allowClear,
|
|
74
|
+
class: {
|
|
75
|
+
"show-clear-icon": props.allowClear && hasValue.value && isMouseOver.value
|
|
76
|
+
}
|
|
78
77
|
}), createSlots({
|
|
79
78
|
_: 2
|
|
80
79
|
/* DYNAMIC */
|
|
@@ -107,7 +106,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
107
106
|
]),
|
|
108
107
|
key: "1"
|
|
109
108
|
} : void 0
|
|
110
|
-
]), 1040, ["allow-clear"]))
|
|
109
|
+
]), 1040, ["value", "allow-clear", "class"]))
|
|
111
110
|
],
|
|
112
111
|
34
|
|
113
112
|
/* CLASS, NEED_HYDRATION */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.vue2.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\" @mouseover=\"handleMouseOver\" @mouseout=\"handleMouseOut\">\n <component\n :is=\"componentType\"\n ref=\"inputRef\"\n v-bind=\"computedAttrs\"\n :allow-clear=\"props.allowClear
|
|
1
|
+
{"version":3,"file":"input.vue2.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\" @mouseover=\"handleMouseOver\" @mouseout=\"handleMouseOut\">\n <component\n :is=\"componentType\"\n ref=\"inputRef\"\n v-bind=\"computedAttrs\"\n v-model:value=\"innerValue\"\n :allow-clear=\"props.allowClear\"\n :class=\"{\n 'show-clear-icon': props.allowClear && hasValue && isMouseOver\n }\"\n >\n <template v-for=\"item in Object.keys($slots)\" :key=\"item\" #[item]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n </template>\n <template v-if=\"prefixIcon\" #prefix>\n <ll-icon :icon-name=\"prefixIcon\" class=\"prefix-icon\" />\n </template>\n <template v-if=\"suffixIcon\" #suffix>\n <ll-icon :icon-name=\"suffixIcon\" class=\"suffix-icon\" />\n </template>\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watch } from 'vue'\nimport { Input } from 'ant-design-vue'\nimport { createNamespace } from '@ll-plus/utils'\nimport { InputValue, inputProps } from './input'\nimport { omit } from 'lodash'\n\ndefineOptions({ name: 'LlInput' })\n\nconst bem = createNamespace('input')\n\nconst props = defineProps(inputProps)\n\nconst emit = defineEmits(['update:value'])\n\nconst innerValue = ref<InputValue>('')\n\nconst inputRef = ref()\n\nconst isMouseOver = ref(false)\n\n// 判断当前输入框是否有值\nconst hasValue = computed(() => innerValue.value !== '')\n\n// 鼠标移入事件\nconst handleMouseOver = () => {\n isMouseOver.value = true\n}\n\n// 鼠标移出事件\nconst handleMouseOut = () => {\n isMouseOver.value = false\n}\n\n// 监听props.value的变化\nwatch(\n () => props.value,\n newValue => {\n innerValue.value = newValue\n },\n {\n immediate: true\n }\n)\n\n// 监听innerValue的变化,触发update:value事件\nwatch(\n innerValue,\n newValue => {\n console.log(newValue)\n emit('update:value', newValue)\n },\n {\n immediate: true\n }\n)\n\n// 根据showPassword属性决定组件类型\nconst componentType = props.showPassword ? Input.Password : Input\n\n// 计算属性,合并attrs和props\nconst computedAttrs = computed(() => {\n const attrs = { ...omit(useAttrs(), ['class', 'style']), props }\n console.log(attrs)\n return attrs\n})\n\n// 聚焦输入框\nconst focus = () => {\n inputRef.value.focus()\n}\n\n// 公开focus方法\ndefineExpose({ focus })\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkCA,IAAM,MAAA,GAAA,GAAM,gBAAgB,OAAO,CAAA,CAAA;AAEnC,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,MAAA,UAAA,GAAa,IAAgB,EAAE,CAAA,CAAA;AAErC,IAAA,MAAM,WAAW,GAAI,EAAA,CAAA;AAErB,IAAM,MAAA,WAAA,GAAc,IAAI,KAAK,CAAA,CAAA;AAG7B,IAAA,MAAM,QAAW,GAAA,QAAA,CAAS,MAAM,UAAA,CAAW,UAAU,EAAE,CAAA,CAAA;AAGvD,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,WAAA,CAAY,KAAQ,GAAA,IAAA,CAAA;AAAA,KACtB,CAAA;AAGA,IAAA,MAAM,iBAAiB,MAAM;AAC3B,MAAA,WAAA,CAAY,KAAQ,GAAA,KAAA,CAAA;AAAA,KACtB,CAAA;AAGA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,CAAY,QAAA,KAAA;AACV,QAAA,UAAA,CAAW,KAAQ,GAAA,QAAA,CAAA;AAAA,OACrB;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAGA,IAAA,KAAA;AAAA,MACE,UAAA;AAAA,MACA,CAAY,QAAA,KAAA;AACV,QAAA,OAAA,CAAQ,IAAI,QAAQ,CAAA,CAAA;AACpB,QAAA,IAAA,CAAK,gBAAgB,QAAQ,CAAA,CAAA;AAAA,OAC/B;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAGA,IAAA,MAAM,aAAgB,GAAA,KAAA,CAAM,YAAe,GAAA,KAAA,CAAM,QAAW,GAAA,KAAA,CAAA;AAG5D,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAM,MAAA,KAAA,GAAQ,EAAE,GAAG,IAAK,CAAA,QAAA,EAAY,EAAA,CAAC,OAAS,EAAA,OAAO,CAAC,CAAA,EAAG,KAAM,EAAA,CAAA;AAC/D,MAAA,OAAA,CAAQ,IAAI,KAAK,CAAA,CAAA;AACjB,MAAO,OAAA,KAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAGD,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,QAAA,CAAS,MAAM,KAAM,EAAA,CAAA;AAAA,KACvB,CAAA;AAGA,IAAa,QAAA,CAAA,EAAE,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -27,6 +27,6 @@ export declare const buildProp: <Type = never, Value = never, Validator = never,
|
|
|
27
27
|
export type TestProps = Record<string, {
|
|
28
28
|
[epPropKey]: true;
|
|
29
29
|
} | NativePropType | EpPropInput<any, any, any, any, any>>;
|
|
30
|
-
export declare const buildProps: <Props extends Record<string, {
|
|
30
|
+
export declare const buildProps: <Props extends Record<string, NativePropType | EpPropInput<any, any, any, any, any> | {
|
|
31
31
|
__epPropKey: true;
|
|
32
|
-
}
|
|
32
|
+
}>>(props: Props) => { [K in keyof Props]: IfEpProp<Props[K], Props[K], IfNativePropType<Props[K], Props[K], EpPropConvert<Props[K]>>>; };
|