ll-plus 2.3.2 → 2.3.3
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/key-value/index.d.ts +14316 -2
- package/es/components/key-value/src/components/key-value-item.vue.d.ts +4544 -0
- package/es/components/key-value/src/components/key-value-item.vue2.mjs +25 -21
- package/es/components/key-value/src/components/key-value-item.vue2.mjs.map +1 -1
- package/es/components/key-value/src/config/key-value-item.d.ts +24 -0
- package/es/components/key-value/src/config/key-value-item.mjs +12 -0
- package/es/components/key-value/src/config/key-value-item.mjs.map +1 -1
- package/es/components/key-value/src/config/key-value.d.ts +1 -0
- package/es/components/key-value/src/config/key-value.mjs +4 -0
- package/es/components/key-value/src/config/key-value.mjs.map +1 -1
- package/es/components/key-value/src/key-value.vue.d.ts +14316 -2
- package/es/components/key-value/src/key-value.vue2.mjs +15 -2
- package/es/components/key-value/src/key-value.vue2.mjs.map +1 -1
- package/es/components/table/src/components/main-table.vue2.mjs +11 -1
- package/es/components/table/src/components/main-table.vue2.mjs.map +1 -1
- package/es/components/table/src/table.vue2.mjs +3 -0
- package/es/components/table/src/table.vue2.mjs.map +1 -1
- package/index.full.js +69 -23
- package/index.full.min.js +14 -14
- package/index.full.min.js.map +1 -1
- package/index.full.min.mjs +16 -16
- package/index.full.min.mjs.map +1 -1
- package/index.full.mjs +69 -23
- package/lib/components/key-value/index.d.ts +14316 -2
- package/lib/components/key-value/src/components/key-value-item.vue.d.ts +4544 -0
- package/lib/components/key-value/src/components/key-value-item.vue2.js +24 -20
- package/lib/components/key-value/src/components/key-value-item.vue2.js.map +1 -1
- package/lib/components/key-value/src/config/key-value-item.d.ts +24 -0
- package/lib/components/key-value/src/config/key-value-item.js +12 -0
- package/lib/components/key-value/src/config/key-value-item.js.map +1 -1
- package/lib/components/key-value/src/config/key-value.d.ts +1 -0
- package/lib/components/key-value/src/config/key-value.js +4 -0
- package/lib/components/key-value/src/config/key-value.js.map +1 -1
- package/lib/components/key-value/src/key-value.vue.d.ts +14316 -2
- package/lib/components/key-value/src/key-value.vue2.js +15 -2
- package/lib/components/key-value/src/key-value.vue2.js.map +1 -1
- package/lib/components/table/src/components/main-table.vue2.js +11 -1
- package/lib/components/table/src/components/main-table.vue2.js.map +1 -1
- package/lib/components/table/src/table.vue2.js +3 -0
- package/lib/components/table/src/table.vue2.js.map +1 -1
- package/package.json +1 -1
- package/types/packages/components/key-value/index.d.ts +14316 -2
- package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +4544 -0
- package/types/packages/components/key-value/src/config/key-value-item.d.ts +24 -0
- package/types/packages/components/key-value/src/config/key-value.d.ts +1 -0
- package/types/packages/components/key-value/src/key-value.vue.d.ts +14316 -2
|
@@ -12,7 +12,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
12
12
|
__name: "key-value",
|
|
13
13
|
props: keyValueProps,
|
|
14
14
|
emits: keyValueEmits,
|
|
15
|
-
setup(__props, { emit: __emit }) {
|
|
15
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
16
16
|
const props = __props;
|
|
17
17
|
const emits = __emit;
|
|
18
18
|
const bem = createNamespace("key-value");
|
|
@@ -26,7 +26,16 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
26
26
|
});
|
|
27
27
|
return obj;
|
|
28
28
|
});
|
|
29
|
-
const
|
|
29
|
+
const validate = async () => {
|
|
30
|
+
return Promise.all(keyValueItems.value.map((e) => e.validate()));
|
|
31
|
+
};
|
|
32
|
+
const resetFields = async () => {
|
|
33
|
+
return Promise.all(keyValueItems.value.map((e) => e.resetFields()));
|
|
34
|
+
};
|
|
35
|
+
const handleAddItem = async () => {
|
|
36
|
+
const valid = await validate();
|
|
37
|
+
if (props.validate && !valid)
|
|
38
|
+
return false;
|
|
30
39
|
innerValue.value.push(getKeyValueItem());
|
|
31
40
|
emits("add", {
|
|
32
41
|
index: innerValue.value.length - 1,
|
|
@@ -59,6 +68,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
59
68
|
deep: true
|
|
60
69
|
}
|
|
61
70
|
);
|
|
71
|
+
__expose({
|
|
72
|
+
validate,
|
|
73
|
+
resetFields
|
|
74
|
+
});
|
|
62
75
|
return (_ctx, _cache) => {
|
|
63
76
|
const _component_ll_icon = resolveComponent("ll-icon");
|
|
64
77
|
const _component_ll_button = resolveComponent("ll-button");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-value.vue2.mjs","sources":["../../../../../packages/components/key-value/src/key-value.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <div :class=\"bem.e('list')\">\n <key-value-item\n v-for=\"(_item, idx) in innerValue\"\n :key=\"_item\"\n :ref=\"el => (keyValueItems[idx] = el)\"\n v-model:value=\"innerValue[idx]\"\n :idx=\"idx\"\n :key-label=\"props.keyLabel\"\n :value-label=\"props.valueLabel\"\n :key-value-type-dict=\"keyValueTypeDict\"\n :show-delete=\"innerValue.length > 1\"\n :key-value-type=\"props.keyValueType\"\n :key-type=\"props.keyType\"\n :key-types=\"props.keyTypes\"\n :value-type=\"props.valueType\"\n :disabled=\"props.disabled\"\n :disabled-value=\"props.disabledValue\"\n :disabled-key=\"props.disabledKey\"\n :disabled-delete=\"props.disabledDelete\"\n @delete=\"handleDelete(idx)\"\n @change=\"handleChange\"\n >\n <template\n v-for=\"item in Object.keys($slots)\"\n :key=\"item\"\n #[item]=\"data\"\n >\n <slot :name=\"item\" v-bind=\"data || {}\" :index=\"idx\"></slot>\n </template>\n </key-value-item>\n </div>\n\n <ll-button\n :class=\"bem.e('add')\"\n :loading=\"loading\"\n :disabled=\"props.disabled || props.disabledAdd\"\n @click=\"handleAddItem\"\n >\n <div :class=\"bem.e('plus')\">\n <ll-icon\n v-if=\"!loading\"\n icon-name=\"icon-add\"\n :class=\"bem.e('icon-add')\"\n />\n {{ props.addText }}\n </div>\n </ll-button>\n </a-spin>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch } from 'vue'\nimport { Form } from 'ant-design-vue'\nimport { createNamespace } from '@ll-plus/utils'\nimport {\n keyValueProps,\n keyValueEmits,\n getKeyValueItem,\n type KeyValueItem\n} from './config'\nimport keyValueItem from './components/key-value-item.vue'\n\ndefineOptions({ name: 'LlKeyValue' })\n\nconst props = defineProps(keyValueProps)\nconst emits = defineEmits(keyValueEmits)\nconst bem = createNamespace('key-value')\nconst formItemContext = Form.useInjectFormItemContext()\n\nconst innerValue = ref<KeyValueItem[]>([])\n\nconst keyValueItems = ref<
|
|
1
|
+
{"version":3,"file":"key-value.vue2.mjs","sources":["../../../../../packages/components/key-value/src/key-value.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <div :class=\"bem.e('list')\">\n <key-value-item\n v-for=\"(_item, idx) in innerValue\"\n :key=\"_item\"\n :ref=\"el => (keyValueItems[idx] = el)\"\n v-model:value=\"innerValue[idx]\"\n :idx=\"idx\"\n :key-label=\"props.keyLabel\"\n :value-label=\"props.valueLabel\"\n :key-value-type-dict=\"keyValueTypeDict\"\n :show-delete=\"innerValue.length > 1\"\n :key-value-type=\"props.keyValueType\"\n :key-type=\"props.keyType\"\n :key-types=\"props.keyTypes\"\n :value-type=\"props.valueType\"\n :disabled=\"props.disabled\"\n :disabled-value=\"props.disabledValue\"\n :disabled-key=\"props.disabledKey\"\n :disabled-delete=\"props.disabledDelete\"\n @delete=\"handleDelete(idx)\"\n @change=\"handleChange\"\n >\n <template\n v-for=\"item in Object.keys($slots)\"\n :key=\"item\"\n #[item]=\"data\"\n >\n <slot :name=\"item\" v-bind=\"data || {}\" :index=\"idx\"></slot>\n </template>\n </key-value-item>\n </div>\n\n <ll-button\n :class=\"bem.e('add')\"\n :loading=\"loading\"\n :disabled=\"props.disabled || props.disabledAdd\"\n @click=\"handleAddItem\"\n >\n <div :class=\"bem.e('plus')\">\n <ll-icon\n v-if=\"!loading\"\n icon-name=\"icon-add\"\n :class=\"bem.e('icon-add')\"\n />\n {{ props.addText }}\n </div>\n </ll-button>\n </a-spin>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch } from 'vue'\nimport { Form } from 'ant-design-vue'\nimport { createNamespace } from '@ll-plus/utils'\nimport {\n keyValueProps,\n keyValueEmits,\n getKeyValueItem,\n type KeyValueItem\n} from './config'\nimport keyValueItem from './components/key-value-item.vue'\n\ndefineOptions({ name: 'LlKeyValue' })\n\nconst props = defineProps(keyValueProps)\nconst emits = defineEmits(keyValueEmits)\nconst bem = createNamespace('key-value')\nconst formItemContext = Form.useInjectFormItemContext()\n\nconst innerValue = ref<KeyValueItem[]>([])\n\nconst keyValueItems = ref<InstanceType<typeof keyValueItem>[]>([])\n\nconst keyValueTypeDict = computed(() => {\n const obj = {}\n props.keyTypes.map(e => {\n obj[e.value] = e.option\n })\n return obj\n})\n\nconst validate = async () => {\n return Promise.all(keyValueItems.value.map(e => e.validate()))\n}\n\nconst resetFields = async () => {\n return Promise.all(keyValueItems.value.map(e => e.resetFields()))\n}\n\nconst handleAddItem = async () => {\n const valid = await validate()\n if (props.validate && !valid) return false\n innerValue.value.push(getKeyValueItem())\n emits('add', {\n index: innerValue.value.length - 1,\n item: innerValue.value[innerValue.value.length - 1],\n value: innerValue.value\n })\n handleChange()\n}\n\nconst handleDelete = (idx: number) => {\n innerValue.value.splice(idx, 1)\n emits('delete', idx)\n handleChange()\n}\n\nconst handleChange = () => {\n try {\n formItemContext.onFieldChange()\n emits('change', innerValue.value)\n emits('update:value', innerValue.value)\n } catch (error) {\n console.error(error)\n }\n}\n\nwatch(\n () => props.value,\n n => {\n innerValue.value = n && n.length > 0 ? n : [{ key: null, value: null }]\n },\n {\n immediate: true,\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -397,7 +397,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
397
397
|
createVNode(_component_a_checkbox, {
|
|
398
398
|
checked: element.isCheck,
|
|
399
399
|
onChange: (e) => {
|
|
400
|
-
handleColumnItemChange(
|
|
400
|
+
handleColumnItemChange(
|
|
401
|
+
e.target?.checked,
|
|
402
|
+
element
|
|
403
|
+
);
|
|
401
404
|
}
|
|
402
405
|
}, {
|
|
403
406
|
default: withCtx(() => [
|
|
@@ -556,6 +559,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
556
559
|
renderSlot(_ctx.$slots, "expandedRow", normalizeProps(guardReactiveProps(slots)))
|
|
557
560
|
]),
|
|
558
561
|
key: "0"
|
|
562
|
+
} : void 0,
|
|
563
|
+
_ctx.$slots.customFilterDropdown ? {
|
|
564
|
+
name: "customFilterDropdown",
|
|
565
|
+
fn: withCtx((slots) => [
|
|
566
|
+
renderSlot(_ctx.$slots, "customFilterDropdown", normalizeProps(guardReactiveProps(slots)))
|
|
567
|
+
]),
|
|
568
|
+
key: "1"
|
|
559
569
|
} : void 0
|
|
560
570
|
]), 1040, ["class", "columns", "data-source", "expanded-row-keys", "custom-row", "scroll", "onChange", "onExpandedRowsChange"]);
|
|
561
571
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-table.vue2.mjs","sources":["../../../../../../packages/components/table/src/components/main-table.vue"],"sourcesContent":["<template>\n <a-table\n :class=\"`${bem.e('main-content')}`\"\n row-key=\"id\"\n v-bind=\"attrs\"\n :columns=\"newColumns\"\n :data-source=\"newDataSource\"\n :expanded-row-keys=\"newExpandedRowKeys\"\n :custom-row=\"props.showDrag ? dragCustomRow : (customRowProps as any)\"\n :pagination=\"false\"\n show-header\n :scroll=\"{\n scrollToFirstRowOnChange: true,\n x: props?.scroll?.x ? props?.scroll?.x : 'max-content',\n y: props?.scroll?.y ? props?.scroll?.y : '100%'\n }\"\n @expand=\"handleExpand\"\n @resize-column=\"handleResizeColumn\"\n @change=\"props.change\"\n @expanded-rows-change=\"props.expandedRowsChange\"\n >\n <!-- 1.表头插槽 -->\n <template #headerCell=\"slots\">\n <template v-if=\"slots.column.key === 'operate' && showSetting\">\n <div :class=\"`${bem.e('operate')}`\">\n <span>{{ slots.column.title }}</span>\n <a-popover\n trigger=\"click\"\n placement=\"bottomRight\"\n :overlay-inner-style=\"{\n padding: '0'\n }\"\n >\n <template #content>\n <div :class=\"`${bem.e('setting-popover')}`\">\n <!-- 头部 -->\n <div :class=\"`${bem.e('setting-popover-header')}`\">\n <a-checkbox\n :indeterminate=\"isIndeterminate\"\n :checked=\"isAllCheck\"\n @change=\"handleAllColumnChange\"\n >\n 列展示\n </a-checkbox>\n <span\n :class=\"`${bem.e('setting-reset-btn')}`\"\n @click=\"handleClickResetBtn\"\n >\n 重置\n </span>\n </div>\n <!-- 内容 -->\n <div :class=\"`${bem.e('setting-popover-content')}`\">\n <div>\n <draggable\n :list=\"settingColumns\"\n item-key=\"key\"\n :group=\"{ name: 'g1' }\"\n @change=\"dragChange\"\n >\n <template #item=\"{ element }\">\n <div :class=\"`${bem.e('setting-popover-menu')}`\">\n <!-- 拖拽 -->\n <div\n :class=\"`flex items-center ${bem.e(\n 'setting-popover-menu-left'\n )}`\"\n >\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n :style=\"{\n marginright: '5px'\n }\"\n >\n <ll-icon\n icon-name=\"icon-move\"\n class-name=\"icon\"\n />\n </a-button>\n <a-checkbox\n :checked=\"element.isCheck\"\n @change=\"\n (e: any) =>\n {\n handleColumnItemChange(e.target?.checked!, element)\n }\n \"\n >\n {{ element.title }}\n </a-checkbox>\n </div>\n <div\n :class=\"`flex items-center ${bem.e(\n 'setting-popover-menu-right'\n )}`\"\n >\n <!-- 左移 -->\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n @click=\"handleColumnMove(element, 'left')\"\n >\n <ll-icon\n icon-name=\"icon-zuoyi\"\n :class-name=\"`icon ${\n element.fixed === 'left'\n ? bem.e('setting-popover-menu-fixed-icon')\n : ''\n }`\"\n />\n </a-button>\n <a-divider type=\"vertical\" />\n <!-- 右移 -->\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n @click=\"handleColumnMove(element, 'right')\"\n >\n <ll-icon\n icon-name=\"icon-youyi\"\n :class-name=\"`icon ${\n element.fixed === 'right'\n ? bem.e('setting-popover-menu-fixed-icon')\n : ''\n }`\"\n />\n </a-button>\n </div>\n </div>\n </template>\n </draggable>\n </div>\n </div>\n </div>\n </template>\n <a-button type=\"text\" :class=\"`${bem.e('setting-icon')}`\">\n <ll-icon icon-name=\"icon-set-line\" />\n </a-button>\n </a-popover>\n </div>\n </template>\n <template v-else-if=\"has(slots.column, 'RC_TABLE_INTERNAL_COL_DEFINE')\">\n <slot name=\"expandedTitle\"></slot>\n </template>\n <template v-else>{{ slots.column.title }}</template>\n <!-- 额外header单元格的插槽内容 -->\n <slot name=\"tableHeaderCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- 2.表格内容插槽 -->\n <template #bodyCell=\"slots\">\n <!-- 添加序列列 -->\n <template v-if=\"slots.column.key === '#' && showIndexColumn\">\n {{ slots.index + 1 }}\n </template>\n <!-- 添加操作列 -->\n <template v-else-if=\"slots.column.key === 'operate'\">\n <slot name=\"tableOperate\" v-bind=\"slots\"></slot>\n </template>\n <!-- 额外Body单元格的插槽内容 -->\n <slot name=\"tableBodyCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- 3.空状态自定义插槽 -->\n <template #emptyText>\n <slot name=\"emptyText\">\n <ll-empty>\n <template #content>暂无数据</template>\n </ll-empty>\n </slot>\n </template>\n <!-- 4.表格自定义展开内容插槽 -->\n <template v-if=\"$slots.expandedRow\" #expandedRowRender=\"slots\">\n <slot name=\"expandedRow\" v-bind=\"slots\"> </slot>\n </template>\n </a-table>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, watch, computed, useAttrs } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport draggable from 'vuedraggable'\n\nimport { has } from 'lodash-es'\n\nimport { mainTableProps, mainTableEmits } from '../config'\n\n// 1.defineOptions\ndefineOptions({\n name: 'MainTable'\n})\n\n// 2.props/emits\nconst props = defineProps(mainTableProps)\nconst emits = defineEmits(mainTableEmits)\n\n// 3.hooks\nconst attrs = useAttrs()\n\n// 3.ref/let/const\nconst newColumns: any = ref([]) // 显示在表格的columns\nconst settingColumns: any = ref([])\nconst newDataSource: any = ref([])\nconst newExpandedRowKeys: any = ref([]) //展开的id数组\nlet preIndex = -1 // 源目标数据序号\nlet nextIndex = -1 // 目标数据序号\nconst bem = createNamespace('table')\n\n// 往表格列中添加序号和操作\nconst handleAddSerialNumberAndOperateToColumns = () => {\n if (props.showIndexColumn) {\n newColumns.value.unshift({\n title: '#',\n dataIndex: '#',\n key: '#',\n width: 50,\n fixed: 'left',\n class: 'table-serial-number-cell'\n })\n }\n if (props.showOperate) {\n newColumns.value.push({\n title: '操作',\n dataIndex: '',\n key: 'operate',\n width: 120,\n fixed: 'right',\n class: 'table-serial-operate-cell'\n })\n }\n}\n// 处理表格列的左、右固定排序(letf放最左边,没有定位放中间,右边放right定位)\nconst handleColumnsSortByFixed = (list: any, isDrag?: boolean) => {\n const newList = list\n const leftFixedColumns: any = [],\n normalFixedColumns: any = [],\n rightFixedColumns: any = []\n newList.forEach((item: any) => {\n const fixed = item.fixed\n if (fixed === 'left') {\n leftFixedColumns.push(item)\n } else if (fixed === 'right') {\n rightFixedColumns.push(item)\n } else {\n normalFixedColumns.push(item)\n }\n })\n leftFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n normalFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n rightFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n newColumns.value = [\n ...leftFixedColumns,\n ...normalFixedColumns,\n ...rightFixedColumns\n ]\n if (isDrag) {\n handleAddSerialNumberAndOperateToColumns()\n }\n}\n\n// 4.watch\nwatch(\n () => props.dataSource,\n (newValue: any) => {\n newDataSource.value = [...newValue]\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 从本地存储中获取columns/没有则用用户传的\nwatch(\n () => [\n props.columns,\n props.settingKey,\n props.showIndexColumn,\n props.showOperate\n ],\n (arr: any) => {\n const [newValue, key] = arr\n let newcolumns = []\n // 有key\n if (key && localStorage.getItem(key)) {\n const localStorageColumns = localStorage.getItem(key)\n if (localStorageColumns) {\n newcolumns = JSON.parse(localStorageColumns)\n }\n } else {\n // 没key\n newcolumns = newValue.map((item: any, index: number) => ({\n ...item,\n isCheck: true,\n columnSortIndex:\n item.columnSortIndex === 0 || item.columnSortIndex\n ? item.columnSortIndex\n : index\n }))\n }\n // 1.过滤掉没有选中的\n newColumns.value = [...newcolumns].filter((item: any) => item.isCheck)\n // 2.如果有设置序列和操作,则添加\n handleAddSerialNumberAndOperateToColumns()\n // 3.根据定位来排序\n handleColumnsSortByFixed(newColumns.value)\n settingColumns.value = [...newcolumns]\n },\n {\n deep: true,\n immediate: true\n }\n)\nwatch(\n () => props.expandedRowKeys,\n (newValue: any) => {\n if (Array.isArray(newValue)) {\n newExpandedRowKeys.value = [...newValue]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 5.methods\n//重新定义树状展开关闭功能\nconst handleExpand = (expanded: boolean, record: any) => {\n if (expanded) {\n newExpandedRowKeys.value.push(record.id)\n } else {\n const index = newExpandedRowKeys.value.findIndex(\n (e: any) => e === record.id\n )\n newExpandedRowKeys.value.splice(index, 1)\n }\n props.expand && props.expand(expanded, record)\n}\n// 列拖拽\nconst handleResizeColumn = (w: any, col: any) => {\n col.width = w\n props.resizeColumn && props.resizeColumn(w, col)\n}\n// 拖动排序\nconst dragCustomRow = (_: any, index: number) => {\n const normalConfig = {\n props: {\n // draggable: 'true'\n },\n draggable: true,\n style: {\n cursor: 'pointer'\n },\n // 鼠标移入\n onMouseenter: (event: Event) => {\n const target = event.target as HTMLElement\n target.draggable = true // 让你要拖动的行可以拖动,默认不可以\n },\n // 开始拖拽\n onDragstart: (event: Event) => {\n event.stopPropagation()\n preIndex = index\n },\n // 拖动元素经过的元素\n onDragover: (event: Event) => {\n event.preventDefault()\n },\n // 鼠标松开\n onDrop: (event: Event) => {\n let sortSource: any[] = []\n event.stopPropagation()\n // 得到目标数据序号\n nextIndex = index\n const dataSource = newDataSource.value\n // 排序后两个sort互换\n const preItem = { ...dataSource[preIndex] }\n const nextItem = { ...dataSource[nextIndex] }\n const preSort = preItem.sort\n const nextSort = nextItem.sort\n preItem.sort = nextSort\n nextItem.sort = preSort\n\n dataSource[preIndex] = nextItem\n dataSource[nextIndex] = preItem\n sortSource = [...dataSource]\n emits('handleChangeDataSource', sortSource)\n props.dragChange && props.dragChange(sortSource)\n }\n }\n const extraConfig = props.customRowProps\n ? { ...props.customRowProps(_, index) }\n : {}\n return { ...normalConfig, ...extraConfig }\n}\n// 是否全选\nconst isAllCheck = computed(() => {\n return settingColumns.value.every((item: any) => item.isCheck)\n})\n// 是否全选\nconst isIndeterminate = computed(() => {\n const getIsChecks = settingColumns.value.filter((item: any) => item.isCheck)\n return getIsChecks.length === 0\n ? false\n : settingColumns.value.length > getIsChecks.length\n})\n// 单个checkbox的change\nconst handleChangeColumns = () => {\n const isCheckSettingColumns = settingColumns.value.filter(\n (item: any, index: number) => {\n item.columnSortIndex = index\n return item.isCheck\n }\n )\n handleColumnsSortByFixed(isCheckSettingColumns, true)\n}\n\nconst handleColumnItemChange = (value: boolean, item: any) => {\n const findSettingIndex = settingColumns.value.findIndex(\n (citem: any) => item.key === citem.key\n )\n\n if (findSettingIndex > -1) {\n settingColumns.value[findSettingIndex].isCheck = value\n handleChangeColumns()\n handleClickSubmitBtn()\n }\n}\n// 全选change\nconst handleAllColumnChange = (e: any) => {\n const checked = e.target.checked\n settingColumns.value.forEach((item: any) => (item.isCheck = checked))\n if (checked) {\n newColumns.value = [...props.columns]\n } else {\n newColumns.value = []\n }\n handleAddSerialNumberAndOperateToColumns()\n handleClickSubmitBtn()\n}\n// 拖拽change\nconst dragChange = () => {\n handleChangeColumns()\n handleClickSubmitBtn()\n}\n// 点击重置按钮\nconst handleClickResetBtn = () => {\n const newcolumns = props.columns.map((item: any, index: number) => ({\n ...item,\n isCheck: true,\n columnSortIndex: index\n }))\n newColumns.value = [...newcolumns]\n handleAddSerialNumberAndOperateToColumns()\n settingColumns.value = [...newcolumns]\n handleClickSubmitBtn()\n}\n// 点击保存按钮\nconst handleClickSubmitBtn = () => {\n if (props.settingKey) {\n localStorage.setItem(props.settingKey, JSON.stringify(settingColumns.value))\n }\n}\n// 处理column左固定和右固定\nconst handleColumnMove = (element: any, way: string) => {\n const fixed = element.fixed\n if (fixed === way) {\n element.fixed = false\n } else {\n element.fixed = way\n }\n handleColumnsSortByFixed(newColumns.value)\n handleClickSubmitBtn()\n}\n</script>\n../config/table\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main-table.vue2.mjs","sources":["../../../../../../packages/components/table/src/components/main-table.vue"],"sourcesContent":["<template>\n <a-table\n :class=\"`${bem.e('main-content')}`\"\n row-key=\"id\"\n v-bind=\"attrs\"\n :columns=\"newColumns\"\n :data-source=\"newDataSource\"\n :expanded-row-keys=\"newExpandedRowKeys\"\n :custom-row=\"props.showDrag ? dragCustomRow : (customRowProps as any)\"\n :pagination=\"false\"\n show-header\n :scroll=\"{\n scrollToFirstRowOnChange: true,\n x: props?.scroll?.x ? props?.scroll?.x : 'max-content',\n y: props?.scroll?.y ? props?.scroll?.y : '100%'\n }\"\n @expand=\"handleExpand\"\n @resize-column=\"handleResizeColumn\"\n @change=\"props.change\"\n @expanded-rows-change=\"props.expandedRowsChange\"\n >\n <!-- 1.表头插槽 -->\n <template #headerCell=\"slots\">\n <template v-if=\"slots.column.key === 'operate' && showSetting\">\n <div :class=\"`${bem.e('operate')}`\">\n <span>{{ slots.column.title }}</span>\n <a-popover\n trigger=\"click\"\n placement=\"bottomRight\"\n :overlay-inner-style=\"{\n padding: '0'\n }\"\n >\n <template #content>\n <div :class=\"`${bem.e('setting-popover')}`\">\n <!-- 头部 -->\n <div :class=\"`${bem.e('setting-popover-header')}`\">\n <a-checkbox\n :indeterminate=\"isIndeterminate\"\n :checked=\"isAllCheck\"\n @change=\"handleAllColumnChange\"\n >\n 列展示\n </a-checkbox>\n <span\n :class=\"`${bem.e('setting-reset-btn')}`\"\n @click=\"handleClickResetBtn\"\n >\n 重置\n </span>\n </div>\n <!-- 内容 -->\n <div :class=\"`${bem.e('setting-popover-content')}`\">\n <div>\n <draggable\n :list=\"settingColumns\"\n item-key=\"key\"\n :group=\"{ name: 'g1' }\"\n @change=\"dragChange\"\n >\n <template #item=\"{ element }\">\n <div :class=\"`${bem.e('setting-popover-menu')}`\">\n <!-- 拖拽 -->\n <div\n :class=\"`flex items-center ${bem.e(\n 'setting-popover-menu-left'\n )}`\"\n >\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n :style=\"{\n marginright: '5px'\n }\"\n >\n <ll-icon\n icon-name=\"icon-move\"\n class-name=\"icon\"\n />\n </a-button>\n <a-checkbox\n :checked=\"element.isCheck\"\n @change=\"\n (e: any) => {\n handleColumnItemChange(\n e.target?.checked!,\n element\n )\n }\n \"\n >\n {{ element.title }}\n </a-checkbox>\n </div>\n <div\n :class=\"`flex items-center ${bem.e(\n 'setting-popover-menu-right'\n )}`\"\n >\n <!-- 左移 -->\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n @click=\"handleColumnMove(element, 'left')\"\n >\n <ll-icon\n icon-name=\"icon-zuoyi\"\n :class-name=\"`icon ${\n element.fixed === 'left'\n ? bem.e('setting-popover-menu-fixed-icon')\n : ''\n }`\"\n />\n </a-button>\n <a-divider type=\"vertical\" />\n <!-- 右移 -->\n <a-button\n type=\"text\"\n :class=\"`${bem.e('setting-popover-menu-icon')}`\"\n @click=\"handleColumnMove(element, 'right')\"\n >\n <ll-icon\n icon-name=\"icon-youyi\"\n :class-name=\"`icon ${\n element.fixed === 'right'\n ? bem.e('setting-popover-menu-fixed-icon')\n : ''\n }`\"\n />\n </a-button>\n </div>\n </div>\n </template>\n </draggable>\n </div>\n </div>\n </div>\n </template>\n <a-button type=\"text\" :class=\"`${bem.e('setting-icon')}`\">\n <ll-icon icon-name=\"icon-set-line\" />\n </a-button>\n </a-popover>\n </div>\n </template>\n <template v-else-if=\"has(slots.column, 'RC_TABLE_INTERNAL_COL_DEFINE')\">\n <slot name=\"expandedTitle\"></slot>\n </template>\n <template v-else>{{ slots.column.title }}</template>\n <!-- 额外header单元格的插槽内容 -->\n <slot name=\"tableHeaderCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- 2.表格内容插槽 -->\n <template #bodyCell=\"slots\">\n <!-- 添加序列列 -->\n <template v-if=\"slots.column.key === '#' && showIndexColumn\">\n {{ slots.index + 1 }}\n </template>\n <!-- 添加操作列 -->\n <template v-else-if=\"slots.column.key === 'operate'\">\n <slot name=\"tableOperate\" v-bind=\"slots\"></slot>\n </template>\n <!-- 额外Body单元格的插槽内容 -->\n <slot name=\"tableBodyCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- 3.空状态自定义插槽 -->\n <template #emptyText>\n <slot name=\"emptyText\">\n <ll-empty>\n <template #content>暂无数据</template>\n </ll-empty>\n </slot>\n </template>\n <!-- 4.表格自定义展开内容插槽 -->\n <template v-if=\"$slots.expandedRow\" #expandedRowRender=\"slots\">\n <slot name=\"expandedRow\" v-bind=\"slots\"> </slot>\n </template>\n <!-- 5.表格自定义列筛选 -->\n <template v-if=\"$slots.customFilterDropdown\" #customFilterDropdown=\"slots\">\n <slot name=\"customFilterDropdown\" v-bind=\"slots\"> </slot>\n </template>\n </a-table>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, watch, computed, useAttrs } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport draggable from 'vuedraggable'\n\nimport { has } from 'lodash-es'\n\nimport { mainTableProps, mainTableEmits } from '../config'\n\n// 1.defineOptions\ndefineOptions({\n name: 'MainTable'\n})\n\n// 2.props/emits\nconst props = defineProps(mainTableProps)\nconst emits = defineEmits(mainTableEmits)\n\n// 3.hooks\nconst attrs = useAttrs()\n\n// 3.ref/let/const\nconst newColumns: any = ref([]) // 显示在表格的columns\nconst settingColumns: any = ref([])\nconst newDataSource: any = ref([])\nconst newExpandedRowKeys: any = ref([]) //展开的id数组\nlet preIndex = -1 // 源目标数据序号\nlet nextIndex = -1 // 目标数据序号\nconst bem = createNamespace('table')\n\n// 往表格列中添加序号和操作\nconst handleAddSerialNumberAndOperateToColumns = () => {\n if (props.showIndexColumn) {\n newColumns.value.unshift({\n title: '#',\n dataIndex: '#',\n key: '#',\n width: 50,\n fixed: 'left',\n class: 'table-serial-number-cell'\n })\n }\n if (props.showOperate) {\n newColumns.value.push({\n title: '操作',\n dataIndex: '',\n key: 'operate',\n width: 120,\n fixed: 'right',\n class: 'table-serial-operate-cell'\n })\n }\n}\n// 处理表格列的左、右固定排序(letf放最左边,没有定位放中间,右边放right定位)\nconst handleColumnsSortByFixed = (list: any, isDrag?: boolean) => {\n const newList = list\n const leftFixedColumns: any = [],\n normalFixedColumns: any = [],\n rightFixedColumns: any = []\n newList.forEach((item: any) => {\n const fixed = item.fixed\n if (fixed === 'left') {\n leftFixedColumns.push(item)\n } else if (fixed === 'right') {\n rightFixedColumns.push(item)\n } else {\n normalFixedColumns.push(item)\n }\n })\n leftFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n normalFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n rightFixedColumns.sort(\n (a: any, b: any) => a.columnSortIndex - b.columnSortIndex\n )\n newColumns.value = [\n ...leftFixedColumns,\n ...normalFixedColumns,\n ...rightFixedColumns\n ]\n if (isDrag) {\n handleAddSerialNumberAndOperateToColumns()\n }\n}\n\n// 4.watch\nwatch(\n () => props.dataSource,\n (newValue: any) => {\n newDataSource.value = [...newValue]\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 从本地存储中获取columns/没有则用用户传的\nwatch(\n () => [\n props.columns,\n props.settingKey,\n props.showIndexColumn,\n props.showOperate\n ],\n (arr: any) => {\n const [newValue, key] = arr\n let newcolumns = []\n // 有key\n if (key && localStorage.getItem(key)) {\n const localStorageColumns = localStorage.getItem(key)\n if (localStorageColumns) {\n newcolumns = JSON.parse(localStorageColumns)\n }\n } else {\n // 没key\n newcolumns = newValue.map((item: any, index: number) => ({\n ...item,\n isCheck: true,\n columnSortIndex:\n item.columnSortIndex === 0 || item.columnSortIndex\n ? item.columnSortIndex\n : index\n }))\n }\n // 1.过滤掉没有选中的\n newColumns.value = [...newcolumns].filter((item: any) => item.isCheck)\n // 2.如果有设置序列和操作,则添加\n handleAddSerialNumberAndOperateToColumns()\n // 3.根据定位来排序\n handleColumnsSortByFixed(newColumns.value)\n settingColumns.value = [...newcolumns]\n },\n {\n deep: true,\n immediate: true\n }\n)\nwatch(\n () => props.expandedRowKeys,\n (newValue: any) => {\n if (Array.isArray(newValue)) {\n newExpandedRowKeys.value = [...newValue]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 5.methods\n//重新定义树状展开关闭功能\nconst handleExpand = (expanded: boolean, record: any) => {\n if (expanded) {\n newExpandedRowKeys.value.push(record.id)\n } else {\n const index = newExpandedRowKeys.value.findIndex(\n (e: any) => e === record.id\n )\n newExpandedRowKeys.value.splice(index, 1)\n }\n props.expand && props.expand(expanded, record)\n}\n// 列拖拽\nconst handleResizeColumn = (w: any, col: any) => {\n col.width = w\n props.resizeColumn && props.resizeColumn(w, col)\n}\n// 拖动排序\nconst dragCustomRow = (_: any, index: number) => {\n const normalConfig = {\n props: {\n // draggable: 'true'\n },\n draggable: true,\n style: {\n cursor: 'pointer'\n },\n // 鼠标移入\n onMouseenter: (event: Event) => {\n const target = event.target as HTMLElement\n target.draggable = true // 让你要拖动的行可以拖动,默认不可以\n },\n // 开始拖拽\n onDragstart: (event: Event) => {\n event.stopPropagation()\n preIndex = index\n },\n // 拖动元素经过的元素\n onDragover: (event: Event) => {\n event.preventDefault()\n },\n // 鼠标松开\n onDrop: (event: Event) => {\n let sortSource: any[] = []\n event.stopPropagation()\n // 得到目标数据序号\n nextIndex = index\n const dataSource = newDataSource.value\n // 排序后两个sort互换\n const preItem = { ...dataSource[preIndex] }\n const nextItem = { ...dataSource[nextIndex] }\n const preSort = preItem.sort\n const nextSort = nextItem.sort\n preItem.sort = nextSort\n nextItem.sort = preSort\n\n dataSource[preIndex] = nextItem\n dataSource[nextIndex] = preItem\n sortSource = [...dataSource]\n emits('handleChangeDataSource', sortSource)\n props.dragChange && props.dragChange(sortSource)\n }\n }\n const extraConfig = props.customRowProps\n ? { ...props.customRowProps(_, index) }\n : {}\n return { ...normalConfig, ...extraConfig }\n}\n// 是否全选\nconst isAllCheck = computed(() => {\n return settingColumns.value.every((item: any) => item.isCheck)\n})\n// 是否全选\nconst isIndeterminate = computed(() => {\n const getIsChecks = settingColumns.value.filter((item: any) => item.isCheck)\n return getIsChecks.length === 0\n ? false\n : settingColumns.value.length > getIsChecks.length\n})\n// 单个checkbox的change\nconst handleChangeColumns = () => {\n const isCheckSettingColumns = settingColumns.value.filter(\n (item: any, index: number) => {\n item.columnSortIndex = index\n return item.isCheck\n }\n )\n handleColumnsSortByFixed(isCheckSettingColumns, true)\n}\n\nconst handleColumnItemChange = (value: boolean, item: any) => {\n const findSettingIndex = settingColumns.value.findIndex(\n (citem: any) => item.key === citem.key\n )\n\n if (findSettingIndex > -1) {\n settingColumns.value[findSettingIndex].isCheck = value\n handleChangeColumns()\n handleClickSubmitBtn()\n }\n}\n// 全选change\nconst handleAllColumnChange = (e: any) => {\n const checked = e.target.checked\n settingColumns.value.forEach((item: any) => (item.isCheck = checked))\n if (checked) {\n newColumns.value = [...props.columns]\n } else {\n newColumns.value = []\n }\n handleAddSerialNumberAndOperateToColumns()\n handleClickSubmitBtn()\n}\n// 拖拽change\nconst dragChange = () => {\n handleChangeColumns()\n handleClickSubmitBtn()\n}\n// 点击重置按钮\nconst handleClickResetBtn = () => {\n const newcolumns = props.columns.map((item: any, index: number) => ({\n ...item,\n isCheck: true,\n columnSortIndex: index\n }))\n newColumns.value = [...newcolumns]\n handleAddSerialNumberAndOperateToColumns()\n settingColumns.value = [...newcolumns]\n handleClickSubmitBtn()\n}\n// 点击保存按钮\nconst handleClickSubmitBtn = () => {\n if (props.settingKey) {\n localStorage.setItem(props.settingKey, JSON.stringify(settingColumns.value))\n }\n}\n// 处理column左固定和右固定\nconst handleColumnMove = (element: any, way: string) => {\n const fixed = element.fixed\n if (fixed === way) {\n element.fixed = false\n } else {\n element.fixed = way\n }\n handleColumnsSortByFixed(newColumns.value)\n handleClickSubmitBtn()\n}\n</script>\n../config/table\n"],"names":[],"mappings":"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"}
|
|
@@ -111,6 +111,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
111
111
|
emptyText: withCtx(() => [
|
|
112
112
|
renderSlot(_ctx.$slots, "emptyText")
|
|
113
113
|
]),
|
|
114
|
+
customFilterDropdown: withCtx(() => [
|
|
115
|
+
renderSlot(_ctx.$slots, "customFilterDropdown")
|
|
116
|
+
]),
|
|
114
117
|
_: 2
|
|
115
118
|
/* DYNAMIC */
|
|
116
119
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.vue2.mjs","sources":["../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <a-spin :spinning=\"props.loading\" wrapper-class-name=\"ll-table-spin-wrapper\">\n <div :class=\"bem.b()\">\n <!-- 头部seach -->\n <header-search\n v-bind=\"headerSearchProps\"\n @change=\"handleSwitchMenuChange\"\n >\n <!-- header-slot -->\n <template #header>\n <slot name=\"header\" />\n </template>\n <slot name=\"header\"></slot>\n <!-- left-slot -->\n <template #headerLeft>\n <slot name=\"headerLeft\"></slot>\n </template>\n <!-- middle-slot -->\n <template #headerMiddle>\n <slot name=\"headerMiddle\"></slot>\n </template>\n <!-- right-slot -->\n <template #headerRight>\n <slot name=\"headerRight\"></slot>\n </template>\n </header-search>\n <!-- slot-content table和card默认table -->\n <div\n :class=\"[\n bem.m('fixed-height'),\n !newNaTableptions.dataSource!.length ? bem.m('empty') : ''\n ]\"\n >\n <slot :name=\"contentType\">\n <main-table\n v-bind=\"newNaTableptions\"\n @handle-change-data-source=\"handleChangeDataSource\"\n >\n <!-- tableHeaderCell-slot -->\n <template #tableHeaderCell=\"slots\">\n <slot name=\"tableHeaderCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- tableBodyCell-slot -->\n <template #tableBodyCell=\"slots\">\n <slot name=\"tableBodyCell\" v-bind=\"slots\"></slot>\n </template>\n <!--tableOperate-slot -->\n <template #tableOperate=\"slots\">\n <slot name=\"tableOperate\" v-bind=\"slots\"></slot>\n </template>\n <!-- tableRowExpand-slot -->\n <template v-if=\"$slots.expandedRow\" #expandedRow=\"slots\">\n <slot name=\"expandedRow\" v-bind=\"slots\"></slot>\n </template>\n <!-- expandColumnTitle-slot -->\n <template #expandedTitle>\n <slot name=\"expandedTitle\"> </slot>\n </template>\n <!-- empty-slot -->\n <template #emptyText>\n <slot name=\"emptyText\"></slot>\n </template>\n </main-table>\n </slot>\n </div>\n <!-- 底部分页 -->\n <template\n v-if=\"\n newNaTableptions.dataSource!.length &&\n !newNaTableptions.hiddenPagination\n \"\n >\n <pagination v-bind=\"paginationProps\" />\n </template>\n </div>\n </a-spin>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, watch, provide } from 'vue'\n\nimport { ImenuSwitchType } from './config'\nimport { createNamespace } from '@ll-plus/utils'\n\nimport HeaderSearch from './components/header-search.vue'\nimport MainTable from './components/main-table.vue'\nimport Pagination from './components/pagination.vue'\n\nimport { tableProps } from './config'\n\n// 1.defineOptions\ndefineOptions({ name: 'LlTable' })\n\n// 2.props\nconst props = defineProps(tableProps)\n// 3.ref\n// 表格数据\nconst originDataSource = ref()\nconst newNaTableptions = ref<any>({\n dataSource: [],\n columns: []\n})\n// 菜单切换/内容插槽\nconst contentType = ref(ImenuSwitchType.TABLE) // 菜单切换\nconst bem = createNamespace('table')\n\n// 4.methods\n// 拖拽完成后获取拖拽后的数据\nconst handleChangeDataSource = (dataSource: any[]) => {\n newNaTableptions.value.dataSource = dataSource\n}\n// 切换菜单内容\nconst handleSwitchMenuChange = (v: ImenuSwitchType) => {\n contentType.value = v\n}\n\n// 5.watch\nwatch(\n () => props.tableProps,\n (newValue: any) => {\n if (newValue) {\n newNaTableptions.value = { ...newValue }\n originDataSource.value = [...newValue.dataSource]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 6.其他\nprovide('contentType', contentType)\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"table.vue2.mjs","sources":["../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <a-spin :spinning=\"props.loading\" wrapper-class-name=\"ll-table-spin-wrapper\">\n <div :class=\"bem.b()\">\n <!-- 头部seach -->\n <header-search\n v-bind=\"headerSearchProps\"\n @change=\"handleSwitchMenuChange\"\n >\n <!-- header-slot -->\n <template #header>\n <slot name=\"header\" />\n </template>\n <slot name=\"header\"></slot>\n <!-- left-slot -->\n <template #headerLeft>\n <slot name=\"headerLeft\"></slot>\n </template>\n <!-- middle-slot -->\n <template #headerMiddle>\n <slot name=\"headerMiddle\"></slot>\n </template>\n <!-- right-slot -->\n <template #headerRight>\n <slot name=\"headerRight\"></slot>\n </template>\n </header-search>\n <!-- slot-content table和card默认table -->\n <div\n :class=\"[\n bem.m('fixed-height'),\n !newNaTableptions.dataSource!.length ? bem.m('empty') : ''\n ]\"\n >\n <slot :name=\"contentType\">\n <main-table\n v-bind=\"newNaTableptions\"\n @handle-change-data-source=\"handleChangeDataSource\"\n >\n <!-- tableHeaderCell-slot -->\n <template #tableHeaderCell=\"slots\">\n <slot name=\"tableHeaderCell\" v-bind=\"slots\"></slot>\n </template>\n <!-- tableBodyCell-slot -->\n <template #tableBodyCell=\"slots\">\n <slot name=\"tableBodyCell\" v-bind=\"slots\"></slot>\n </template>\n <!--tableOperate-slot -->\n <template #tableOperate=\"slots\">\n <slot name=\"tableOperate\" v-bind=\"slots\"></slot>\n </template>\n <!-- tableRowExpand-slot -->\n <template v-if=\"$slots.expandedRow\" #expandedRow=\"slots\">\n <slot name=\"expandedRow\" v-bind=\"slots\"></slot>\n </template>\n <!-- expandColumnTitle-slot -->\n <template #expandedTitle>\n <slot name=\"expandedTitle\"> </slot>\n </template>\n <!-- empty-slot -->\n <template #emptyText>\n <slot name=\"emptyText\"></slot>\n </template>\n <!-- customFilterDropdown-slot -->\n <template #customFilterDropdown>\n <slot name=\"customFilterDropdown\"></slot>\n </template>\n </main-table>\n </slot>\n </div>\n <!-- 底部分页 -->\n <template\n v-if=\"\n newNaTableptions.dataSource!.length &&\n !newNaTableptions.hiddenPagination\n \"\n >\n <pagination v-bind=\"paginationProps\" />\n </template>\n </div>\n </a-spin>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, watch, provide } from 'vue'\n\nimport { ImenuSwitchType } from './config'\nimport { createNamespace } from '@ll-plus/utils'\n\nimport HeaderSearch from './components/header-search.vue'\nimport MainTable from './components/main-table.vue'\nimport Pagination from './components/pagination.vue'\n\nimport { tableProps } from './config'\n\n// 1.defineOptions\ndefineOptions({ name: 'LlTable' })\n\n// 2.props\nconst props = defineProps(tableProps)\n// 3.ref\n// 表格数据\nconst originDataSource = ref()\nconst newNaTableptions = ref<any>({\n dataSource: [],\n columns: []\n})\n// 菜单切换/内容插槽\nconst contentType = ref(ImenuSwitchType.TABLE) // 菜单切换\nconst bem = createNamespace('table')\n\n// 4.methods\n// 拖拽完成后获取拖拽后的数据\nconst handleChangeDataSource = (dataSource: any[]) => {\n newNaTableptions.value.dataSource = dataSource\n}\n// 切换菜单内容\nconst handleSwitchMenuChange = (v: ImenuSwitchType) => {\n contentType.value = v\n}\n\n// 5.watch\nwatch(\n () => props.tableProps,\n (newValue: any) => {\n if (newValue) {\n newNaTableptions.value = { ...newValue }\n originDataSource.value = [...newValue.dataSource]\n }\n },\n {\n deep: true,\n immediate: true\n }\n)\n// 6.其他\nprovide('contentType', contentType)\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAiGA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAGd,IAAA,MAAM,mBAAmB,GAAI,EAAA,CAAA;AAC7B,IAAA,MAAM,mBAAmB,GAAS,CAAA;AAAA,MAChC,YAAY,EAAC;AAAA,MACb,SAAS,EAAC;AAAA,KACX,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAc,GAAI,CAAA,eAAA,CAAgB,KAAK,CAAA,CAAA;AAC7C,IAAM,MAAA,GAAA,GAAM,gBAAgB,OAAO,CAAA,CAAA;AAInC,IAAM,MAAA,sBAAA,GAAyB,CAAC,UAAsB,KAAA;AACpD,MAAA,gBAAA,CAAiB,MAAM,UAAa,GAAA,UAAA,CAAA;AAAA,KACtC,CAAA;AAEA,IAAM,MAAA,sBAAA,GAAyB,CAAC,CAAuB,KAAA;AACrD,MAAA,WAAA,CAAY,KAAQ,GAAA,CAAA,CAAA;AAAA,KACtB,CAAA;AAGA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAC,QAAkB,KAAA;AACjB,QAAA,IAAI,QAAU,EAAA;AACZ,UAAiB,gBAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,QAAS,EAAA,CAAA;AACvC,UAAA,gBAAA,CAAiB,KAAQ,GAAA,CAAC,GAAG,QAAA,CAAS,UAAU,CAAA,CAAA;AAAA,SAClD;AAAA,OACF;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,QACN,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAEA,IAAA,OAAA,CAAQ,eAAe,WAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/index.full.js
CHANGED
|
@@ -58249,6 +58249,10 @@
|
|
|
58249
58249
|
disabledAdd: {
|
|
58250
58250
|
type: Boolean,
|
|
58251
58251
|
default: false
|
|
58252
|
+
},
|
|
58253
|
+
validate: {
|
|
58254
|
+
type: Boolean,
|
|
58255
|
+
default: false
|
|
58252
58256
|
}
|
|
58253
58257
|
});
|
|
58254
58258
|
const keyValueEmits = {
|
|
@@ -58296,6 +58300,18 @@
|
|
|
58296
58300
|
disabledDelete: {
|
|
58297
58301
|
type: definePropType(Array)
|
|
58298
58302
|
},
|
|
58303
|
+
keyValueType: {
|
|
58304
|
+
type: definePropType(String)
|
|
58305
|
+
},
|
|
58306
|
+
keyType: {
|
|
58307
|
+
type: definePropType(Object)
|
|
58308
|
+
},
|
|
58309
|
+
keyTypes: {
|
|
58310
|
+
type: definePropType(Array)
|
|
58311
|
+
},
|
|
58312
|
+
valueType: {
|
|
58313
|
+
type: definePropType(Object)
|
|
58314
|
+
},
|
|
58299
58315
|
value: {
|
|
58300
58316
|
type: definePropType(Object),
|
|
58301
58317
|
default: () => ({
|
|
@@ -58329,26 +58345,19 @@
|
|
|
58329
58345
|
__name: "key-value-item",
|
|
58330
58346
|
props: keyValueItemProps,
|
|
58331
58347
|
emits: keyValueItemEmits,
|
|
58332
|
-
setup(__props, { emit: __emit }) {
|
|
58348
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
58333
58349
|
const props = __props;
|
|
58334
58350
|
const emits = __emit;
|
|
58335
58351
|
const attrs = require$$0.useAttrs();
|
|
58336
58352
|
const bem = createNamespace("key-value");
|
|
58337
58353
|
const innerValue = require$$0.ref(props.value);
|
|
58354
|
+
const form = require$$0.ref();
|
|
58338
58355
|
const getKeyType = require$$0.computed(() => {
|
|
58339
|
-
const option =
|
|
58340
|
-
type: "input",
|
|
58341
|
-
placeholder: "\u8BF7\u8F93\u5165",
|
|
58342
|
-
rule: typeRules || []
|
|
58343
|
-
};
|
|
58356
|
+
const option = props.keyType;
|
|
58344
58357
|
return option;
|
|
58345
58358
|
});
|
|
58346
58359
|
const getValueType = require$$0.computed(() => {
|
|
58347
|
-
let option =
|
|
58348
|
-
type: "input",
|
|
58349
|
-
placeholder: "\u8BF7\u8F93\u5165",
|
|
58350
|
-
rule: []
|
|
58351
|
-
};
|
|
58360
|
+
let option = props.valueType;
|
|
58352
58361
|
if (innerValue.value["key"] && !isEmpty(props.keyValueTypeDict)) {
|
|
58353
58362
|
option = props.keyValueTypeDict[innerValue.value["key"]];
|
|
58354
58363
|
}
|
|
@@ -58367,7 +58376,13 @@
|
|
|
58367
58376
|
emits("delete");
|
|
58368
58377
|
};
|
|
58369
58378
|
const handleChange = () => {
|
|
58370
|
-
innerValue.value["value"] =
|
|
58379
|
+
innerValue.value["value"] = null;
|
|
58380
|
+
};
|
|
58381
|
+
const validate = async () => {
|
|
58382
|
+
return await form.value?.validate();
|
|
58383
|
+
};
|
|
58384
|
+
const resetFields = async () => {
|
|
58385
|
+
return await form.value?.resetFields();
|
|
58371
58386
|
};
|
|
58372
58387
|
require$$0.watch(
|
|
58373
58388
|
innerValue,
|
|
@@ -58385,6 +58400,10 @@
|
|
|
58385
58400
|
deep: true
|
|
58386
58401
|
}
|
|
58387
58402
|
);
|
|
58403
|
+
__expose({
|
|
58404
|
+
validate,
|
|
58405
|
+
resetFields
|
|
58406
|
+
});
|
|
58388
58407
|
return (_ctx, _cache) => {
|
|
58389
58408
|
const _component_ll_select = require$$0.resolveComponent("ll-select");
|
|
58390
58409
|
const _component_ll_form_item = require$$0.resolveComponent("ll-form-item");
|
|
@@ -58393,7 +58412,8 @@
|
|
|
58393
58412
|
const _component_a_popconfirm = require$$0.resolveComponent("a-popconfirm");
|
|
58394
58413
|
const _component_ll_form = require$$0.resolveComponent("ll-form");
|
|
58395
58414
|
return require$$0.openBlock(), require$$0.createBlock(_component_ll_form, {
|
|
58396
|
-
|
|
58415
|
+
ref_key: "form",
|
|
58416
|
+
ref: form,
|
|
58397
58417
|
"form-columns": require$$0.unref(formColumns),
|
|
58398
58418
|
"form-data": props.value,
|
|
58399
58419
|
"form-options": require$$0.unref(formOptions)
|
|
@@ -58406,7 +58426,7 @@
|
|
|
58406
58426
|
class: require$$0.normalizeClass(require$$0.unref(bem).e("item"))
|
|
58407
58427
|
},
|
|
58408
58428
|
[
|
|
58409
|
-
|
|
58429
|
+
props.keyValueType !== "single" ? (require$$0.openBlock(), require$$0.createElementBlock(
|
|
58410
58430
|
"div",
|
|
58411
58431
|
{
|
|
58412
58432
|
key: 0,
|
|
@@ -58418,16 +58438,16 @@
|
|
|
58418
58438
|
"label-col": {
|
|
58419
58439
|
span: 24
|
|
58420
58440
|
},
|
|
58421
|
-
rules:
|
|
58441
|
+
rules: getValueType.value.rules || [],
|
|
58422
58442
|
name: "key"
|
|
58423
58443
|
}, {
|
|
58424
58444
|
default: require$$0.withCtx(() => [
|
|
58425
58445
|
require$$0.renderSlot(_ctx.$slots, "key", {}, () => [
|
|
58426
|
-
!require$$0.unref(isEmpty)(
|
|
58446
|
+
!require$$0.unref(isEmpty)(props.keyTypes) ? (require$$0.openBlock(), require$$0.createBlock(_component_ll_select, {
|
|
58427
58447
|
key: 0,
|
|
58428
58448
|
value: innerValue.value["key"],
|
|
58429
58449
|
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value["key"] = $event),
|
|
58430
|
-
options:
|
|
58450
|
+
options: props.keyTypes,
|
|
58431
58451
|
disabled: getKeyDisabled.value,
|
|
58432
58452
|
placeholder: "\u8BF7\u9009\u62E9",
|
|
58433
58453
|
"allow-clear": "",
|
|
@@ -58461,7 +58481,7 @@
|
|
|
58461
58481
|
2
|
|
58462
58482
|
/* CLASS */
|
|
58463
58483
|
)) : require$$0.createCommentVNode("v-if", true),
|
|
58464
|
-
|
|
58484
|
+
props.keyValueType !== "single" ? (require$$0.openBlock(), require$$0.createElementBlock(
|
|
58465
58485
|
"div",
|
|
58466
58486
|
{
|
|
58467
58487
|
key: 1,
|
|
@@ -58489,7 +58509,7 @@
|
|
|
58489
58509
|
"label-col": {
|
|
58490
58510
|
span: 24
|
|
58491
58511
|
},
|
|
58492
|
-
|
|
58512
|
+
rules: getValueType.value.rules || [],
|
|
58493
58513
|
name: "value"
|
|
58494
58514
|
}, {
|
|
58495
58515
|
default: require$$0.withCtx(() => [
|
|
@@ -58516,7 +58536,7 @@
|
|
|
58516
58536
|
]),
|
|
58517
58537
|
_: 3
|
|
58518
58538
|
/* FORWARDED */
|
|
58519
|
-
}, 8, ["label", "
|
|
58539
|
+
}, 8, ["label", "rules"])
|
|
58520
58540
|
],
|
|
58521
58541
|
2
|
|
58522
58542
|
/* CLASS */
|
|
@@ -58584,7 +58604,7 @@
|
|
|
58584
58604
|
__name: "key-value",
|
|
58585
58605
|
props: keyValueProps,
|
|
58586
58606
|
emits: keyValueEmits,
|
|
58587
|
-
setup(__props, { emit: __emit }) {
|
|
58607
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
58588
58608
|
const props = __props;
|
|
58589
58609
|
const emits = __emit;
|
|
58590
58610
|
const bem = createNamespace("key-value");
|
|
@@ -58598,7 +58618,16 @@
|
|
|
58598
58618
|
});
|
|
58599
58619
|
return obj;
|
|
58600
58620
|
});
|
|
58601
|
-
const
|
|
58621
|
+
const validate = async () => {
|
|
58622
|
+
return Promise.all(keyValueItems.value.map((e) => e.validate()));
|
|
58623
|
+
};
|
|
58624
|
+
const resetFields = async () => {
|
|
58625
|
+
return Promise.all(keyValueItems.value.map((e) => e.resetFields()));
|
|
58626
|
+
};
|
|
58627
|
+
const handleAddItem = async () => {
|
|
58628
|
+
const valid = await validate();
|
|
58629
|
+
if (props.validate && !valid)
|
|
58630
|
+
return false;
|
|
58602
58631
|
innerValue.value.push(getKeyValueItem());
|
|
58603
58632
|
emits("add", {
|
|
58604
58633
|
index: innerValue.value.length - 1,
|
|
@@ -58631,6 +58660,10 @@
|
|
|
58631
58660
|
deep: true
|
|
58632
58661
|
}
|
|
58633
58662
|
);
|
|
58663
|
+
__expose({
|
|
58664
|
+
validate,
|
|
58665
|
+
resetFields
|
|
58666
|
+
});
|
|
58634
58667
|
return (_ctx, _cache) => {
|
|
58635
58668
|
const _component_ll_icon = require$$0.resolveComponent("ll-icon");
|
|
58636
58669
|
const _component_ll_button = require$$0.resolveComponent("ll-button");
|
|
@@ -69103,7 +69136,10 @@
|
|
|
69103
69136
|
require$$0.createVNode(_component_a_checkbox, {
|
|
69104
69137
|
checked: element.isCheck,
|
|
69105
69138
|
onChange: (e) => {
|
|
69106
|
-
handleColumnItemChange(
|
|
69139
|
+
handleColumnItemChange(
|
|
69140
|
+
e.target?.checked,
|
|
69141
|
+
element
|
|
69142
|
+
);
|
|
69107
69143
|
}
|
|
69108
69144
|
}, {
|
|
69109
69145
|
default: require$$0.withCtx(() => [
|
|
@@ -69262,6 +69298,13 @@
|
|
|
69262
69298
|
require$$0.renderSlot(_ctx.$slots, "expandedRow", require$$0.normalizeProps(require$$0.guardReactiveProps(slots)))
|
|
69263
69299
|
]),
|
|
69264
69300
|
key: "0"
|
|
69301
|
+
} : void 0,
|
|
69302
|
+
_ctx.$slots.customFilterDropdown ? {
|
|
69303
|
+
name: "customFilterDropdown",
|
|
69304
|
+
fn: require$$0.withCtx((slots) => [
|
|
69305
|
+
require$$0.renderSlot(_ctx.$slots, "customFilterDropdown", require$$0.normalizeProps(require$$0.guardReactiveProps(slots)))
|
|
69306
|
+
]),
|
|
69307
|
+
key: "1"
|
|
69265
69308
|
} : void 0
|
|
69266
69309
|
]), 1040, ["class", "columns", "data-source", "expanded-row-keys", "custom-row", "scroll", "onChange", "onExpandedRowsChange"]);
|
|
69267
69310
|
};
|
|
@@ -69401,6 +69444,9 @@
|
|
|
69401
69444
|
emptyText: require$$0.withCtx(() => [
|
|
69402
69445
|
require$$0.renderSlot(_ctx.$slots, "emptyText")
|
|
69403
69446
|
]),
|
|
69447
|
+
customFilterDropdown: require$$0.withCtx(() => [
|
|
69448
|
+
require$$0.renderSlot(_ctx.$slots, "customFilterDropdown")
|
|
69449
|
+
]),
|
|
69404
69450
|
_: 2
|
|
69405
69451
|
/* DYNAMIC */
|
|
69406
69452
|
}, [
|