qidian-vue-ui 1.2.76 → 1.2.78
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/dist/components/crud/table/index.css +9 -9
- package/dist/components/crud/table/index.vue.mjs +1 -1
- package/dist/components/crud/table/index.vue2.mjs +4 -2
- package/dist/components/crud/table/index.vue2.mjs.map +1 -1
- package/dist/components/crud/tabs-table/index.vue.d.ts +1 -0
- package/dist/components/dict/tag/index.css +1 -1
- package/dist/components/dict/tag/index.vue.d.ts +8 -7
- package/dist/components/dict/tag/index.vue.mjs +1 -1
- package/dist/components/dict/tag/index.vue2.mjs +10 -3
- package/dist/components/dict/tag/index.vue2.mjs.map +1 -1
- package/dist/components/dict/tag/props.d.ts +1 -1
- package/dist/components/dict/tag/props.mjs +1 -1
- package/dist/components/dict/tag/props.mjs.map +1 -1
- package/dist/components/service/table/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
.qd-crud-table[data-v-
|
|
1
|
+
.qd-crud-table[data-v-81243ac2] {
|
|
2
2
|
width: 100%;
|
|
3
3
|
height: 100%;
|
|
4
4
|
display: flex;
|
|
5
5
|
flex-direction: column;
|
|
6
6
|
}
|
|
7
|
-
.qd-crud-table > .qd-crud-search:not(.qd-crud-search--hide) + .qd-crud-table__body[data-v-
|
|
7
|
+
.qd-crud-table > .qd-crud-search:not(.qd-crud-search--hide) + .qd-crud-table__body[data-v-81243ac2] {
|
|
8
8
|
margin-top: var(--td-comp-margin-l);
|
|
9
9
|
}
|
|
10
|
-
.qd-crud-table__body[data-v-
|
|
10
|
+
.qd-crud-table__body[data-v-81243ac2] {
|
|
11
11
|
flex: auto;
|
|
12
12
|
}
|
|
13
|
-
.qd-crud-table__body[data-v-
|
|
13
|
+
.qd-crud-table__body[data-v-81243ac2] > .t-card__body {
|
|
14
14
|
height: 100%;
|
|
15
15
|
min-height: 443px;
|
|
16
16
|
display: flex;
|
|
17
17
|
flex-direction: column;
|
|
18
18
|
}
|
|
19
|
-
.qd-crud-table__body[data-v-
|
|
19
|
+
.qd-crud-table__body[data-v-81243ac2] > .t-card__body > .qd-service-table {
|
|
20
20
|
flex: 1 1 0;
|
|
21
21
|
overflow: hidden;
|
|
22
22
|
}
|
|
23
|
-
.qd-crud-table__body[data-v-
|
|
23
|
+
.qd-crud-table__body[data-v-81243ac2] > .t-card__body > .qd-service-table .t-table__pagination {
|
|
24
24
|
padding-bottom: 0;
|
|
25
25
|
}
|
|
26
|
-
.qd-crud-table__toolbar[data-v-
|
|
26
|
+
.qd-crud-table__toolbar[data-v-81243ac2] {
|
|
27
27
|
display: flex;
|
|
28
28
|
justify-content: space-between;
|
|
29
29
|
}
|
|
30
|
-
.qd-crud-table__toolbar:has(.t-space-item) + .qd-service-table[data-v-
|
|
30
|
+
.qd-crud-table__toolbar:has(.t-space-item) + .qd-service-table[data-v-81243ac2] {
|
|
31
31
|
margin-top: var(--td-comp-margin-l);
|
|
32
32
|
}
|
|
33
|
-
.qd-crud-table__toolbar-separator[data-v-
|
|
33
|
+
.qd-crud-table__toolbar-separator[data-v-81243ac2] {
|
|
34
34
|
display: inline-block;
|
|
35
35
|
padding-left: var(--td-comp-paddingLR-s);
|
|
36
36
|
}
|
|
@@ -2,7 +2,7 @@ import './index.css'
|
|
|
2
2
|
import _sfc_main from "./index.vue2.mjs";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
-
const QdCrudTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const QdCrudTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-81243ac2"]]);
|
|
6
6
|
export {
|
|
7
7
|
QdCrudTable as default
|
|
8
8
|
};
|
|
@@ -740,7 +740,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
740
740
|
}
|
|
741
741
|
const childrenKey = reProps.value.serviceTableOptions.tree?.childrenKey || qdServiceTableTreeConfig.childrenKey;
|
|
742
742
|
let delHasChild = false;
|
|
743
|
-
|
|
743
|
+
const treeOpts = reProps.value.serviceTableOptions.tree;
|
|
744
|
+
const checkChildren = treeOpts?.delCheckChildren ?? !treeOpts?.lazyLoad;
|
|
745
|
+
if (checkChildren && !row) {
|
|
744
746
|
const rowKey = reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey;
|
|
745
747
|
delHasChild = selectedRowKeys.value.some((item) => {
|
|
746
748
|
let find;
|
|
@@ -754,7 +756,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
754
756
|
if (children === true) return true;
|
|
755
757
|
return children.some((child) => !selectedRowKeys.value.includes(get(child, rowKey)));
|
|
756
758
|
});
|
|
757
|
-
} else if (!isEmpty(row[childrenKey])) {
|
|
759
|
+
} else if (checkChildren && !isEmpty(row?.[childrenKey])) {
|
|
758
760
|
delHasChild = true;
|
|
759
761
|
}
|
|
760
762
|
if (delHasChild) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.mjs","sources":["../../../../src/components/crud/table/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-crud-table\">\n <slot name=\"header\">\n <qd-crud-search\n v-if=\"reProps.searchOptions?.items?.length\"\n v-show=\"searchVisible\"\n ref=\"search\"\n v-model:data=\"searchData\"\n :class=\"[!searchVisible ? 'qd-crud-search--hide' : '']\"\n v-bind=\"reProps.searchOptions\"\n @submit=\"triggerSearch\"\n @search=\"handleSearch\"\n @reset=\"handleResetSearch\"\n >\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-search>\n </slot>\n\n <qd-card class=\"qd-crud-table__body\">\n <div class=\"qd-crud-table__toolbar\">\n <t-space align=\"center\" :size=\"0\">\n <slot name=\"actions\">\n <template v-for=\"(item, index) in reProps.actions\" :key=\"item.uid || index\">\n <span\n v-if=\"getActionSeparator(item, { index })\"\n class=\"qd-crud-table__toolbar-separator\"\n ></span>\n\n <qd-config-renderer\n v-hasPermi=\"item.permi\"\n fn-inject-ctx\n :context=\"getConfigRendererCtx(item)\"\n :config=\"{\n is: TButton,\n ...item,\n form: undefined,\n onClick: buildActionOnClick(item),\n disabled: buildActionDisabled(item)\n }\"\n @if-render-change=\"(ifRender) => setActionIfRender(ifRender, item, { index })\"\n />\n </template>\n </slot>\n </t-space>\n\n <t-space align=\"center\" :size=\"0\">\n <slot name=\"tools\">\n <!-- 用户通过 props 配置的工具 -->\n <template v-for=\"(item, index) in reProps.tools\" :key=\"index\">\n <span\n v-if=\"getActionSeparator(item, { index, mapKey: 'tool' })\"\n class=\"qd-crud-table__toolbar-separator\"\n ></span>\n\n <t-tooltip :content=\"item.content\" :disabled=\"!item.content\">\n <qd-config-renderer\n v-hasPermi=\"item.permi\"\n fn-inject-ctx\n :context=\"getConfigRendererCtx(item)\"\n :config=\"{\n is: TButton,\n ...item,\n content: '',\n variant: 'text',\n shape: 'square',\n onClick: buildActionOnClick(item as QdCrudTableAction<D>),\n disabled: buildActionDisabled(item as QdCrudTableAction<D>)\n }\"\n @if-render-change=\"\n (ifRender) => setActionIfRender(ifRender, item, { index, mapKey: 'tool' })\n \"\n />\n </t-tooltip>\n </template>\n\n <!-- 展开/收起搜索 -->\n <template v-if=\"!reProps.hideSearchVisible && reProps.searchOptions?.items?.length\">\n <span class=\"qd-crud-table__toolbar-separator\"></span>\n <t-tooltip :content=\"searchVisible ? t('hideSearchText') : t('showSearchText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"toggleSearchVisible\">\n <template #icon><search-icon /></template>\n </t-button>\n </t-tooltip>\n </template>\n\n <!-- 刷新列表 -->\n <template v-if=\"!reProps.hideRefresh\">\n <span class=\"qd-crud-table__toolbar-separator\"></span>\n <t-tooltip :content=\"t('refreshText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"handleRefresh\">\n <template #icon><refresh-icon /></template>\n </t-button>\n </t-tooltip>\n </template>\n\n <!-- 展开/收起树 -->\n <template\n v-if=\"!reProps.hideTreeExpand && !isEmpty(reProps.serviceTableOptions.tree) && !reProps.serviceTableOptions.tree!.lazyLoad\"\n >\n <span class=\"qd-crud-table__toolbar-separator\"></span>\n <t-tooltip :content=\"treeIsExpand ? t('collapseTreeText') : t('expandTreeText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"toggleTreeExpandAll\">\n <template #icon>\n <unfold-less-icon v-if=\"treeIsExpand\" />\n <unfold-more-icon v-else />\n </template>\n </t-button>\n </t-tooltip>\n </template>\n\n <!-- 列配置 -->\n <template\n v-if=\"\n reProps.serviceTableOptions.columnController?.hideTriggerButton !== true &&\n !reProps.hideColumnController\n \"\n >\n <span class=\"qd-crud-table__toolbar-separator\"></span>\n <t-tooltip :content=\"t('columnControllerText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"openColumnController\">\n <template #icon><setting-icon /></template>\n </t-button>\n </t-tooltip>\n </template>\n </slot>\n </t-space>\n </div>\n\n <qd-service-table\n ref=\"table\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"activeRowKeys\"\n v-model:expanded-row-keys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n :columns=\"showColumns\"\n v-bind=\"reProps.serviceTableOptions\"\n >\n <template #operation=\"slotProps\">\n <slot name=\"table-operation\" v-bind=\"slotProps\">\n <t-space v-if=\"reProps.rowActions?.length\" align=\"center\" :size=\"0\" @click.stop>\n <template v-for=\"(item, index) in reProps.rowActions\">\n <t-divider\n v-if=\"\n getActionSeparator(item, {\n colIndex: slotProps.colIndex,\n rowIndex: slotProps.rowIndex,\n index\n })\n \"\n :key=\"`${slotProps.colIndex}.${slotProps.rowIndex}.${index}.divider`\"\n layout=\"vertical\"\n />\n\n <qd-config-renderer\n v-if=\"true\"\n :key=\"`${slotProps.colIndex}.${slotProps.rowIndex}.${index}.renderer`\"\n v-hasPermi=\"item.permi\"\n fn-inject-ctx\n :context=\"getConfigRendererCtx(item, slotProps)\"\n :config=\"{ is: TLink, ...item, onClick: buildActionOnClick(item, slotProps) }\"\n @if-render-change=\"\n (ifRender) =>\n setActionIfRender(ifRender, item, {\n colIndex: slotProps.colIndex,\n rowIndex: slotProps.rowIndex,\n index\n })\n \"\n />\n </template>\n </t-space>\n </slot>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-service-table>\n </qd-card>\n\n <qd-config-renderer\n v-for=\"(dialogForm, uid) in dialogFormMap\"\n :key=\"uid\"\n :config=\"{\n is: QdDialogForm,\n ...dialogForm.form,\n vModelVisible: 'self.visible',\n vModelData: 'self.data',\n crudMode: dialogForm.crudMode\n }\"\n :context=\"getConfigRendererCtx(dialogForm)\"\n />\n\n <qd-columns-controller\n v-model:visible=\"columnControllerVisible\"\n v-model:columns=\"mergeColumns\"\n :default-columns=\"reProps.columns\"\n />\n </div>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import { useLocalStorage, useVModels } from '@vueuse/core'\n import { cloneDeep, get, merge } from 'lodash-es'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import {\n createExposeProxy,\n easyCopy,\n extractSlotsWithPrefix,\n generateRandomString,\n isEmpty,\n MD5,\n suspectedWrapperPromise,\n to\n } from 'qidian-shared'\n import {\n AddIcon,\n DeleteIcon,\n RefreshIcon,\n SearchIcon,\n SettingIcon,\n UnfoldLessIcon,\n UnfoldMoreIcon\n } from 'tdesign-icons-vue-next'\n import type {\n EnhancedTableInstanceFunctions,\n PrimaryTableCellParams,\n TableRowData,\n TableRowValue\n } from 'tdesign-vue-next'\n import {\n Button as TButton,\n Divider as TDivider,\n Link as TLink,\n Space as TSpace,\n Tooltip as TTooltip\n } from 'tdesign-vue-next'\n import type { ShallowRef } from 'vue'\n import {\n computed,\n nextTick,\n onMounted,\n reactive,\n ref,\n shallowRef,\n toRef,\n triggerRef,\n useTemplateRef\n } from 'vue'\n\n import { hasPermiDirective } from '../../../directive'\n import { useModal } from '../../../hooks'\n import { auth } from '../../../utils'\n import { QdCard } from '../../card'\n import { QdColumnsController } from '../../columns-controller'\n import { useConfig } from '../../config-provider/useConfig'\n import { QdConfigRenderer } from '../../config-renderer'\n import { QdDialogForm } from '../../dialog'\n import type { QdFormSubmitContext } from '../../form'\n import type { QdServiceTableInstanceFunctions, QdServiceTableProps } from '../../service'\n import { QdServiceTable } from '../../service'\n import { qdServiceTableTreeConfig } from '../../service/table/props'\n import { QdCrudSearch } from '../search'\n import type { QdCrudTableCacheCol } from './columnsCache'\n import { getColumnsStorageKey, mergeColumnsWithCache } from './columnsCache'\n import { qdCrudTableProps } from './props'\n import type {\n QdCrudTableAction,\n QdCrudTableDeleteAction,\n QdCrudTableInstanceFunctions,\n QdCrudTableProps,\n QdCrudTableRowAction,\n QdCrudTableTool,\n QdCrudTableWrapper,\n TableDialogServiceRes\n } from './types'\n\n defineOptions({\n name: 'QdCrudTable'\n })\n\n const vHasPermi = hasPermiDirective\n\n type Props = QdCrudTableProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdCrudTableProps)\n const emit = defineEmits<{\n 'update:searchData': [Props['searchData']]\n\n 'update:data': [Props['data']]\n 'update:selectedRowKeys': [Props['selectedRowKeys']]\n 'update:activeRowKeys': [Props['activeRowKeys']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n searchData,\n\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, { passive: true })\n\n const { t } = useConfig('crud')\n const { msgError, msgSuccess, alertWarning, confirm } = useModal()\n\n const treeIsExpand = computed(() => !!expandedTreeNodes.value?.length)\n\n const dialogFormMap = reactive<\n Record<\n string,\n Pick<QdCrudTableWrapper, 'crudMode'> & {\n visible: boolean\n data?: object\n form: ShallowRef<NonNullable<QdCrudTableWrapper['form']>>\n }\n >\n >({})\n\n const ifRenderMap = reactive<Record<string, boolean | undefined>>({})\n\n const tableRef = useTemplateRef<QdServiceTableInstanceFunctions<D, R, P, TP, Pag>>('table')\n\n const reProps = computed(() => {\n const {\n data,\n searchData: inSearchData,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n transformParams,\n\n tableMinHeight,\n\n search,\n form,\n detail,\n\n add,\n actions,\n\n edit,\n view,\n del,\n rowActions,\n tools,\n\n hideSearchVisible,\n hideRefresh,\n hideTreeExpand,\n hideColumnController,\n\n title,\n columns,\n selectType,\n ...serviceTableOptions\n } = props\n\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const merged = { ...params, ...searchData.value } as ServiceMaybePageParams<Pag>\n if (transformParams) return transformParams(merged)\n return merged\n }\n\n const reAdd = mergeAction(\n { crudMode: 'add', permiID: 'add', content: t('addText'), icon: () => <AddIcon /> },\n add,\n form\n )\n const reActions = [reAdd, ...buildActions(actions, form)].filter(\n Boolean\n ) as QdCrudTableAction<D>[]\n\n const reEdit = mergeAction(\n {\n crudMode: 'edit',\n permiID: 'edit',\n content: t('editText'),\n theme: 'primary',\n hover: 'color'\n },\n edit,\n form\n )\n const reView = mergeAction(\n {\n crudMode: 'view',\n permiID: 'query',\n content: t('viewText'),\n theme: 'primary',\n hover: 'color'\n },\n view,\n form\n )\n const reDel = mergeAction(\n {\n crudMode: 'del',\n permiID: 'remove',\n content: t('deleteText'),\n theme: 'danger',\n hover: 'color',\n selectType: 'multiple'\n },\n del,\n form\n )\n const reRowActions = [reEdit, reView, ...buildActions(rowActions, form), reDel].filter(\n Boolean\n ) as QdCrudTableRowAction<D>[]\n\n let reSelectType = selectType\n const isBatchDel = reDel?.selectType === 'multiple'\n if ((!reSelectType && isBatchDel) || reActions.find((item) => item.selectType === 'multiple')) {\n reSelectType = 'multiple'\n }\n if (isBatchDel) {\n const batchDel = mergeAction(\n {\n crudMode: 'del',\n permiID: 'remove',\n content: t('batchDeleteText'),\n theme: 'danger',\n variant: 'outline',\n selectType: 'multiple',\n icon: () => <DeleteIcon />\n },\n del,\n form\n )\n\n reActions.splice(reAdd ? 1 : 0, 0, batchDel as QdCrudTableAction<D>)\n }\n\n const reColumns = columns || []\n const operationLength = reRowActions.length\n if (operationLength) {\n const operationIdx = reColumns.findIndex((item) => item.colKey === 'operation')\n const defaultOperation: (typeof reColumns)[number] = {\n title: t('operationText'),\n colKey: 'operation',\n align: 'center',\n fixed: 'right',\n width: 28 * operationLength + 25 * operationLength - 1 + 32\n }\n\n if (operationIdx > -1) {\n reColumns[operationIdx] = {\n ...defaultOperation,\n ...reColumns[operationIdx]\n }\n } else {\n reColumns.push(defaultOperation)\n }\n }\n\n const reTools = tools?.map((item) => {\n item.permi = buildActionPermi(item)\n return item\n })\n\n let reTableMinHeight = 'auto'\n if (tableMinHeight !== false) {\n if (typeof tableMinHeight === 'number') {\n reTableMinHeight = `${tableMinHeight}px`\n } else {\n reTableMinHeight = typeof tableMinHeight === 'string' ? tableMinHeight : '443px'\n }\n }\n\n return {\n title,\n tableMinHeight: reTableMinHeight,\n hideSearchVisible,\n hideRefresh,\n hideTreeExpand,\n hideColumnController,\n columns: reColumns,\n\n searchOptions: {\n ...search,\n btnDisabled: search?.btnDisabled ?? tableRef.value?.loading\n },\n serviceTableOptions: {\n ...serviceTableOptions,\n selectType: reSelectType,\n transformParams: mergedTransformParams\n } as Omit<QdServiceTableProps<D, R, P, TP, Pag>, 'columns'>,\n\n formOptions: form,\n detailOptions: detail,\n actions: reActions,\n rowActions: reRowActions,\n tools: reTools,\n\n models: {\n data,\n searchData: inSearchData,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n const finalCacheColumnsKey = computed(() => {\n const { cacheColumnsKey, permiPrefix, columns } = props\n let key = ''\n\n if (cacheColumnsKey) {\n key = cacheColumnsKey\n } else {\n key = MD5(permiPrefix ? `${permiPrefix}:${JSON.stringify(columns)}` : JSON.stringify(columns))\n }\n\n return getColumnsStorageKey(key)\n })\n\n const cachedColumns = useLocalStorage<QdCrudTableCacheCol[]>(finalCacheColumnsKey, [])\n\n const mergeColumns = computed({\n get: () => {\n const original = reProps.value.columns\n if (!cachedColumns.value) return original\n return mergeColumnsWithCache(original, cachedColumns.value)\n },\n set: (val: QdCrudTableCacheCol[]) => {\n cachedColumns.value = val\n }\n })\n\n const showColumns = computed(() => mergeColumns.value?.filter((item) => !item.hidden))\n\n const searchVisible = ref(true)\n const searchRef = useTemplateRef('search')\n let searchMode: 'refresh' | 'changeCurrent' = 'refresh'\n\n function handleSearch() {\n searchMode = 'changeCurrent'\n }\n\n async function handleResetSearch() {\n searchMode = 'changeCurrent'\n searchRef.value?.reset()\n await nextTick()\n searchRef.value?.submit()\n }\n\n function triggerSearch({ validateResult }: QdFormSubmitContext<typeof searchData.value>) {\n if (validateResult !== true) return\n\n switch (searchMode) {\n case 'changeCurrent':\n tableRef.value?.changeCurrent(1)\n break\n default:\n tableRef.value?.refresh()\n break\n }\n }\n\n function handleRefresh() {\n searchMode = 'refresh'\n const searchRefV = searchRef.value\n if (searchRefV) {\n searchRefV.submit()\n return\n }\n\n tableRef.value?.refresh()\n }\n\n function toggleSearchVisible() {\n searchVisible.value = !searchVisible.value\n }\n\n function toggleTreeExpandAll() {\n if (treeIsExpand.value) (tableRef.value as any)?.foldAll()\n else (tableRef.value as any)?.expandAll()\n }\n\n function openColumnController() {\n columnControllerVisible.value = true\n }\n\n function buildActions<T extends QdCrudTableAction<D> | QdCrudTableRowAction<D>>(\n actions?: T[],\n crudForm?: QdCrudTableWrapper['form']\n ) {\n if (!actions) return []\n\n return actions.map(\n (item) =>\n mergeAction(\n {\n variant: 'outline',\n theme: 'primary',\n hover: 'color'\n } as unknown as T,\n item,\n crudForm\n )!\n )\n }\n\n function mergeAction<\n T extends QdCrudTableAction<D> | QdCrudTableRowAction<D> | QdCrudTableDeleteAction<D>\n >(\n defaultOptions: Partial<T>,\n currentOptions?: boolean | T,\n crudForm?: QdCrudTableWrapper['form']\n ) {\n if (currentOptions === false) return\n\n const mergeOptions = merge({}, defaultOptions, currentOptions)\n if (mergeOptions.crudMode !== 'view' && !currentOptions) return\n\n mergeOptions.permi = buildActionPermi(mergeOptions as QdCrudTableAction<D>)\n if (mergeOptions.crudMode !== 'del') {\n const form = buildActionForm(mergeOptions as QdCrudTableAction, crudForm)\n if (!form && !mergeOptions.onClick) return\n ;(mergeOptions as QdCrudTableAction | QdCrudTableRowAction).form = form\n }\n\n return mergeOptions as T\n }\n\n function getConfigRendererCtx<T = unknown, O = object>(self: T, other?: O) {\n return {\n tableData: data.value,\n searchData: searchData.value,\n selectedRowKeys: selectedRowKeys.value,\n activeRowKeys: activeRowKeys.value,\n self,\n ...other\n }\n }\n\n function actionIsCRU(crudMode: QdCrudTableAction['crudMode']) {\n return crudMode && ['add', 'edit', 'view'].includes(crudMode)\n }\n\n function buildActionPermi(action: QdCrudTableAction<D> | QdCrudTableTool<D>) {\n if (action.permi) return action.permi\n if (!props.permiPrefix || !action.permiID) return []\n return [`${props.permiPrefix}:${action.permiID}`]\n }\n\n function buildActionForm(action: QdCrudTableAction, crudForm?: QdCrudTableWrapper['form']) {\n const IsCRU = actionIsCRU(action.crudMode)\n if (!action.form && IsCRU) {\n action.form = cloneDeep(crudForm)\n }\n\n const { form } = action\n if (form) {\n if (action.crudMode === 'view') form.readonly = true\n\n if (!form.onSubmit && IsCRU) {\n form.onSubmit = async (context: QdFormSubmitContext) => {\n const { uid, service, transformParams, transformRes, crudMode } = action\n if (context.validateResult !== true || !service || !uid || !dialogFormMap[uid]) {\n return false\n }\n\n let currentParams = easyCopy(context.formData)\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(currentParams))\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res: TableDialogServiceRes | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as TableDialogServiceRes\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message) msgError(message)\n return false\n }\n\n msgSuccess(message || t('operationSuccessText'))\n\n if (crudMode === 'add') {\n tableRef.value?.changeCurrent(1)\n } else {\n tableRef.value?.refresh()\n }\n }\n }\n\n const { title } = props\n form.wrapper = merge(\n {},\n {\n header: `${action.content}${title || ''}`\n },\n form.wrapper\n )\n }\n\n return action.form\n }\n\n function buildActionOnClick(\n action: QdCrudTableAction<D> | QdCrudTableRowAction<D>,\n originalParams?: PrimaryTableCellParams<D>\n ) {\n if (action.onClick) return action.onClick\n\n if (action.crudMode === 'del') {\n // 删除/批量删除\n const onClick = async () => {\n const { service, transformParams, transformRes } = action\n const row = originalParams?.row\n\n if (\n !service ||\n (!row && action.selectType !== 'multiple') ||\n (!row && !selectedRowKeys.value.length && action.selectType === 'multiple')\n ) {\n return\n }\n\n const childrenKey =\n reProps.value.serviceTableOptions.tree?.childrenKey ||\n qdServiceTableTreeConfig.childrenKey\n let delHasChild = false\n\n if (!row) {\n const rowKey = reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey\n\n delHasChild = selectedRowKeys.value.some((item: TableRowValue) => {\n let find: D | undefined\n const getData = tableRef.value?.getData\n if (getData) {\n find = props.tree\n ? ((getData(item) as ReturnType<EnhancedTableInstanceFunctions['getData']>)\n .row as D)\n : (getData(item) as D)\n } else find = data.value.find((it: D) => get(it, rowKey) === item)\n if (!find) return false\n\n const children = get(find, childrenKey)\n if (isEmpty(children)) return false\n if (children === true) return true\n return children.some((child: D) => !selectedRowKeys.value.includes(get(child, rowKey)))\n })\n } else if (!isEmpty(row[childrenKey])) {\n delHasChild = true\n }\n\n if (delHasChild) {\n alertWarning(t('deleteHasChildrenText'))\n return\n }\n\n confirm(\n { body: t('deleteWrapperBodyText'), ...(action as QdCrudTableDeleteAction).wrapper },\n async () => {\n const params = row || selectedRowKeys.value\n let currentParams = row\n ? params[reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey]\n : selectedRowKeys.value\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(\n transformParams(easyCopy(params))\n )\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res: TableDialogServiceRes | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as TableDialogServiceRes\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message) msgError(message)\n return false\n }\n\n msgSuccess(message || t('deleteSuccessText'))\n if (!row) selectedRowKeys.value = []\n tableRef.value?.refresh()\n return true\n }\n )\n }\n\n return onClick\n }\n\n if (isEmpty(action.form) || !actionIsCRU(action.crudMode)) return\n\n // 新增/编辑/查看\n const onClick = async () => {\n if (!action.uid) action.uid = generateRandomString(16)\n\n const uid = action.uid!\n if (!dialogFormMap[uid]) {\n dialogFormMap[uid] = {\n visible: false,\n data: {},\n crudMode: action.crudMode,\n form: shallowRef(action.form!)\n }\n }\n const form = toRef(dialogFormMap[uid], 'form')\n\n await nextTick()\n if (!dialogFormMap[uid].data) dialogFormMap[uid].data = {}\n dialogFormMap[uid].visible = true\n\n if (!action.crudMode || !['edit', 'view'].includes(action.crudMode) || !originalParams) {\n return\n }\n\n form.value.loading = true\n triggerRef(form)\n const [err, res] = await to(getDetail(action as QdCrudTableRowAction<D>, originalParams.row))\n form.value.loading = false\n triggerRef(form)\n if (err) {\n Object.assign(dialogFormMap[uid].data, originalParams.row)\n return\n }\n\n Object.assign(dialogFormMap[uid].data, res)\n }\n\n return onClick\n }\n\n function buildActionDisabled(action: QdCrudTableAction<D>) {\n if (action.disabled) return action.disabled\n\n switch (action.selectType) {\n case 'single':\n return selectedRowKeys.value.length !== 1\n case 'multiple':\n return selectedRowKeys.value.length === 0\n default:\n return false\n }\n }\n\n async function getDetail(\n action: QdCrudTableRowAction<D>,\n params: NonNullable<Props['data']>[number]\n ) {\n const { detailOptions } = reProps.value\n const { service, transformParams, transformRes } = { ...detailOptions, ...action.detail }\n\n if (!service && !transformRes) return easyCopy(params)\n\n if (!service) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes!(easyCopy(params)))\n if (trErr) throw trErr\n return trRes\n }\n\n let currentParams = params[reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey]\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(easyCopy(params)))\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes\n }\n\n return res\n }\n\n function setActionIfRender(\n compIfRender: boolean,\n action: QdCrudTableAction<D> | QdCrudTableRowAction<D> | QdCrudTableTool<D>,\n cellIndex: Partial<Pick<PrimaryTableCellParams<D>, 'colIndex' | 'rowIndex'>> & {\n index: number\n mapKey?: string\n }\n ) {\n const ifRender = compIfRender && auth.hasPermiOr(action.permi, false)\n const { colIndex, rowIndex, index, mapKey } = cellIndex\n\n if (isEmpty(colIndex) && isEmpty(rowIndex)) {\n ifRenderMap[`${mapKey || 'action'}.${index}`] = ifRender\n return\n }\n\n ifRenderMap[`${colIndex}.${rowIndex}.${index}`] = ifRender\n }\n\n function getActionSeparator(\n action: QdCrudTableAction<D> | QdCrudTableRowAction<D> | QdCrudTableTool<D>,\n cellIndex: Partial<Pick<PrimaryTableCellParams<D>, 'colIndex' | 'rowIndex'>> & {\n index: number\n mapKey?: string\n }\n ) {\n const { index, colIndex, rowIndex, mapKey } = cellIndex\n if (index <= 0) return false\n\n if (isEmpty(colIndex) && isEmpty(rowIndex)) {\n if (ifRenderMap[`${mapKey || 'action'}.${index}`] === false) return false\n for (let i = index - 1; i >= 0; i--) {\n const previousIfRender = ifRenderMap[`${mapKey || 'action'}.${i}`]\n if (previousIfRender !== false) return true\n }\n return false\n }\n\n if (ifRenderMap[`${colIndex}.${rowIndex}.${index}`] === false) return false\n for (let i = index - 1; i >= 0; i--) {\n const previousIfRender = ifRenderMap[`${colIndex}.${rowIndex}.${i}`]\n if (previousIfRender !== false) return true\n }\n return false\n }\n\n defineExpose(\n createExposeProxy({}, tableRef) as QdCrudTableInstanceFunctions<\n D,\n R,\n P,\n TP,\n Pag,\n typeof props.tree extends object ? true : false\n >\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-table {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n & > .qd-crud-search:not(.qd-crud-search--hide) + &__body {\n margin-top: var(--td-comp-margin-l);\n }\n\n &__body {\n flex: auto;\n\n & > :deep(.t-card__body) {\n height: 100%;\n min-height: 443px;\n display: flex;\n flex-direction: column;\n\n & > .qd-service-table {\n flex: 1 1 0;\n overflow: hidden;\n\n .t-table__pagination {\n padding-bottom: 0;\n }\n }\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n\n &:has(.t-space-item) + .qd-service-table {\n margin-top: var(--td-comp-margin-l);\n }\n\n &-separator {\n display: inline-block;\n padding-left: var(--td-comp-paddingLR-s);\n }\n }\n }\n</style>\n"],"names":["vHasPermi","hasPermiDirective","props","__props","emit","__emit","searchData","data","selectedRowKeys","activeRowKeys","columnControllerVisible","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","msgError","msgSuccess","alertWarning","confirm","useModal","treeIsExpand","computed","value","length","dialogFormMap","reactive","ifRenderMap","tableRef","useTemplateRef","reProps","inSearchData","transformParams","tableMinHeight","search","form","detail","add","actions","edit","view","del","rowActions","tools","hideSearchVisible","hideRefresh","hideTreeExpand","hideColumnController","title","columns","selectType","serviceTableOptions","mergedTransformParams","params","merged","reAdd","mergeAction","crudMode","permiID","content","icon","_createVNode2","AddIcon","reActions","buildActions","filter","Boolean","reEdit","theme","hover","reView","reDel","reRowActions","reSelectType","isBatchDel","find","item","batchDel","variant","DeleteIcon","splice","reColumns","operationLength","operationIdx","findIndex","colKey","defaultOperation","align","fixed","width","push","reTools","map","permi","buildActionPermi","reTableMinHeight","searchOptions","btnDisabled","loading","formOptions","detailOptions","models","finalCacheColumnsKey","cacheColumnsKey","permiPrefix","key","MD5","JSON","stringify","getColumnsStorageKey","cachedColumns","useLocalStorage","mergeColumns","get","original","mergeColumnsWithCache","set","val","showColumns","hidden","searchVisible","ref","searchRef","searchMode","handleSearch","handleResetSearch","reset","nextTick","submit","triggerSearch","validateResult","changeCurrent","refresh","handleRefresh","searchRefV","toggleSearchVisible","toggleTreeExpandAll","foldAll","expandAll","openColumnController","crudForm","defaultOptions","currentOptions","mergeOptions","merge","buildActionForm","onClick","getConfigRendererCtx","self","other","tableData","actionIsCRU","includes","action","IsCRU","cloneDeep","readonly","onSubmit","context","uid","service","transformRes","currentParams","easyCopy","formData","tpErr","tpRes","suspectedWrapperPromise","serviceErr","serviceRes","res","trErr","trRes","success","message","wrapper","header","buildActionOnClick","originalParams","row","childrenKey","tree","qdServiceTableTreeConfig","delHasChild","rowKey","qdCrudTableProps","some","getData","it","children","isEmpty","child","body","generateRandomString","visible","shallowRef","toRef","triggerRef","err","to","getDetail","Object","assign","buildActionDisabled","disabled","setActionIfRender","compIfRender","cellIndex","ifRender","auth","colIndex","rowIndex","index","mapKey","getActionSeparator","i","previousIfRender","__expose","createExposeProxy","_openBlock","_createElementBlock","_hoisted_1","_renderSlot","_ctx","items","_withDirectives","_createBlock","_unref","_mergeProps","$event","class","onSearch","onReset","extractSlotsWithPrefix","$slots","name","filterName","fn","_withCtx","slotProps","originalName","undefined","_createVNode","QdCard","_createElementVNode","_hoisted_2","TSpace","size","_Fragment","_hoisted_3","QdConfigRenderer","config","TButton","onIfRenderChange","_hoisted_4","TTooltip","shape","SearchIcon","RefreshIcon","lazyLoad","UnfoldLessIcon","UnfoldMoreIcon","columnController","hideTriggerButton","SettingIcon","_createSlots","operation","_normalizeProps","_guardReactiveProps","TDivider","layout","is","_renderList","dialogForm","QdDialogForm","QdColumnsController"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../../src/components/crud/table/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-crud-table\">\n <slot name=\"header\">\n <qd-crud-search\n v-if=\"reProps.searchOptions?.items?.length\"\n v-show=\"searchVisible\"\n ref=\"search\"\n v-model:data=\"searchData\"\n :class=\"[!searchVisible ? 'qd-crud-search--hide' : '']\"\n v-bind=\"reProps.searchOptions\"\n @submit=\"triggerSearch\"\n @search=\"handleSearch\"\n @reset=\"handleResetSearch\"\n >\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-search>\n </slot>\n\n <qd-card class=\"qd-crud-table__body\">\n <div class=\"qd-crud-table__toolbar\">\n <t-space align=\"center\" :size=\"0\">\n <slot name=\"actions\">\n <template v-for=\"(item, index) in reProps.actions\" :key=\"item.uid || index\">\n <span\n v-if=\"getActionSeparator(item, { index })\"\n class=\"qd-crud-table__toolbar-separator\"\n ></span>\n\n <qd-config-renderer\n v-hasPermi=\"item.permi\"\n fn-inject-ctx\n :context=\"getConfigRendererCtx(item)\"\n :config=\"{\n is: TButton,\n ...item,\n form: undefined,\n onClick: buildActionOnClick(item),\n disabled: buildActionDisabled(item)\n }\"\n @if-render-change=\"(ifRender) => setActionIfRender(ifRender, item, { index })\"\n />\n </template>\n </slot>\n </t-space>\n\n <t-space align=\"center\" :size=\"0\">\n <slot name=\"tools\">\n <!-- 用户通过 props 配置的工具 -->\n <template v-for=\"(item, index) in reProps.tools\" :key=\"index\">\n <span\n v-if=\"getActionSeparator(item, { index, mapKey: 'tool' })\"\n class=\"qd-crud-table__toolbar-separator\"\n ></span>\n\n <t-tooltip :content=\"item.content\" :disabled=\"!item.content\">\n <qd-config-renderer\n v-hasPermi=\"item.permi\"\n fn-inject-ctx\n :context=\"getConfigRendererCtx(item)\"\n :config=\"{\n is: TButton,\n ...item,\n content: '',\n variant: 'text',\n shape: 'square',\n onClick: buildActionOnClick(item as QdCrudTableAction<D>),\n disabled: buildActionDisabled(item as QdCrudTableAction<D>)\n }\"\n @if-render-change=\"\n (ifRender) => setActionIfRender(ifRender, item, { index, mapKey: 'tool' })\n \"\n />\n </t-tooltip>\n </template>\n\n <!-- 展开/收起搜索 -->\n <template v-if=\"!reProps.hideSearchVisible && reProps.searchOptions?.items?.length\">\n <span class=\"qd-crud-table__toolbar-separator\"></span>\n <t-tooltip :content=\"searchVisible ? t('hideSearchText') : t('showSearchText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"toggleSearchVisible\">\n <template #icon><search-icon /></template>\n </t-button>\n </t-tooltip>\n </template>\n\n <!-- 刷新列表 -->\n <template v-if=\"!reProps.hideRefresh\">\n <span class=\"qd-crud-table__toolbar-separator\"></span>\n <t-tooltip :content=\"t('refreshText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"handleRefresh\">\n <template #icon><refresh-icon /></template>\n </t-button>\n </t-tooltip>\n </template>\n\n <!-- 展开/收起树 -->\n <template\n v-if=\"!reProps.hideTreeExpand && !isEmpty(reProps.serviceTableOptions.tree) && !reProps.serviceTableOptions.tree!.lazyLoad\"\n >\n <span class=\"qd-crud-table__toolbar-separator\"></span>\n <t-tooltip :content=\"treeIsExpand ? t('collapseTreeText') : t('expandTreeText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"toggleTreeExpandAll\">\n <template #icon>\n <unfold-less-icon v-if=\"treeIsExpand\" />\n <unfold-more-icon v-else />\n </template>\n </t-button>\n </t-tooltip>\n </template>\n\n <!-- 列配置 -->\n <template\n v-if=\"\n reProps.serviceTableOptions.columnController?.hideTriggerButton !== true &&\n !reProps.hideColumnController\n \"\n >\n <span class=\"qd-crud-table__toolbar-separator\"></span>\n <t-tooltip :content=\"t('columnControllerText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"openColumnController\">\n <template #icon><setting-icon /></template>\n </t-button>\n </t-tooltip>\n </template>\n </slot>\n </t-space>\n </div>\n\n <qd-service-table\n ref=\"table\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"activeRowKeys\"\n v-model:expanded-row-keys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n :columns=\"showColumns\"\n v-bind=\"reProps.serviceTableOptions\"\n >\n <template #operation=\"slotProps\">\n <slot name=\"table-operation\" v-bind=\"slotProps\">\n <t-space v-if=\"reProps.rowActions?.length\" align=\"center\" :size=\"0\" @click.stop>\n <template v-for=\"(item, index) in reProps.rowActions\">\n <t-divider\n v-if=\"\n getActionSeparator(item, {\n colIndex: slotProps.colIndex,\n rowIndex: slotProps.rowIndex,\n index\n })\n \"\n :key=\"`${slotProps.colIndex}.${slotProps.rowIndex}.${index}.divider`\"\n layout=\"vertical\"\n />\n\n <qd-config-renderer\n v-if=\"true\"\n :key=\"`${slotProps.colIndex}.${slotProps.rowIndex}.${index}.renderer`\"\n v-hasPermi=\"item.permi\"\n fn-inject-ctx\n :context=\"getConfigRendererCtx(item, slotProps)\"\n :config=\"{ is: TLink, ...item, onClick: buildActionOnClick(item, slotProps) }\"\n @if-render-change=\"\n (ifRender) =>\n setActionIfRender(ifRender, item, {\n colIndex: slotProps.colIndex,\n rowIndex: slotProps.rowIndex,\n index\n })\n \"\n />\n </template>\n </t-space>\n </slot>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-service-table>\n </qd-card>\n\n <qd-config-renderer\n v-for=\"(dialogForm, uid) in dialogFormMap\"\n :key=\"uid\"\n :config=\"{\n is: QdDialogForm,\n ...dialogForm.form,\n vModelVisible: 'self.visible',\n vModelData: 'self.data',\n crudMode: dialogForm.crudMode\n }\"\n :context=\"getConfigRendererCtx(dialogForm)\"\n />\n\n <qd-columns-controller\n v-model:visible=\"columnControllerVisible\"\n v-model:columns=\"mergeColumns\"\n :default-columns=\"reProps.columns\"\n />\n </div>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import { useLocalStorage, useVModels } from '@vueuse/core'\n import { cloneDeep, get, merge } from 'lodash-es'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import {\n createExposeProxy,\n easyCopy,\n extractSlotsWithPrefix,\n generateRandomString,\n isEmpty,\n MD5,\n suspectedWrapperPromise,\n to\n } from 'qidian-shared'\n import {\n AddIcon,\n DeleteIcon,\n RefreshIcon,\n SearchIcon,\n SettingIcon,\n UnfoldLessIcon,\n UnfoldMoreIcon\n } from 'tdesign-icons-vue-next'\n import type {\n EnhancedTableInstanceFunctions,\n PrimaryTableCellParams,\n TableRowData,\n TableRowValue\n } from 'tdesign-vue-next'\n import {\n Button as TButton,\n Divider as TDivider,\n Link as TLink,\n Space as TSpace,\n Tooltip as TTooltip\n } from 'tdesign-vue-next'\n import type { ShallowRef } from 'vue'\n import {\n computed,\n nextTick,\n onMounted,\n reactive,\n ref,\n shallowRef,\n toRef,\n triggerRef,\n useTemplateRef\n } from 'vue'\n\n import { hasPermiDirective } from '../../../directive'\n import { useModal } from '../../../hooks'\n import { auth } from '../../../utils'\n import { QdCard } from '../../card'\n import { QdColumnsController } from '../../columns-controller'\n import { useConfig } from '../../config-provider/useConfig'\n import { QdConfigRenderer } from '../../config-renderer'\n import { QdDialogForm } from '../../dialog'\n import type { QdFormSubmitContext } from '../../form'\n import type { QdServiceTableInstanceFunctions, QdServiceTableProps } from '../../service'\n import { QdServiceTable } from '../../service'\n import { qdServiceTableTreeConfig } from '../../service/table/props'\n import { QdCrudSearch } from '../search'\n import type { QdCrudTableCacheCol } from './columnsCache'\n import { getColumnsStorageKey, mergeColumnsWithCache } from './columnsCache'\n import { qdCrudTableProps } from './props'\n import type {\n QdCrudTableAction,\n QdCrudTableDeleteAction,\n QdCrudTableInstanceFunctions,\n QdCrudTableProps,\n QdCrudTableRowAction,\n QdCrudTableTool,\n QdCrudTableWrapper,\n TableDialogServiceRes\n } from './types'\n\n defineOptions({\n name: 'QdCrudTable'\n })\n\n const vHasPermi = hasPermiDirective\n\n type Props = QdCrudTableProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdCrudTableProps)\n const emit = defineEmits<{\n 'update:searchData': [Props['searchData']]\n\n 'update:data': [Props['data']]\n 'update:selectedRowKeys': [Props['selectedRowKeys']]\n 'update:activeRowKeys': [Props['activeRowKeys']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n searchData,\n\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, { passive: true })\n\n const { t } = useConfig('crud')\n const { msgError, msgSuccess, alertWarning, confirm } = useModal()\n\n const treeIsExpand = computed(() => !!expandedTreeNodes.value?.length)\n\n const dialogFormMap = reactive<\n Record<\n string,\n Pick<QdCrudTableWrapper, 'crudMode'> & {\n visible: boolean\n data?: object\n form: ShallowRef<NonNullable<QdCrudTableWrapper['form']>>\n }\n >\n >({})\n\n const ifRenderMap = reactive<Record<string, boolean | undefined>>({})\n\n const tableRef = useTemplateRef<QdServiceTableInstanceFunctions<D, R, P, TP, Pag>>('table')\n\n const reProps = computed(() => {\n const {\n data,\n searchData: inSearchData,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n transformParams,\n\n tableMinHeight,\n\n search,\n form,\n detail,\n\n add,\n actions,\n\n edit,\n view,\n del,\n rowActions,\n tools,\n\n hideSearchVisible,\n hideRefresh,\n hideTreeExpand,\n hideColumnController,\n\n title,\n columns,\n selectType,\n ...serviceTableOptions\n } = props\n\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const merged = { ...params, ...searchData.value } as ServiceMaybePageParams<Pag>\n if (transformParams) return transformParams(merged)\n return merged\n }\n\n const reAdd = mergeAction(\n { crudMode: 'add', permiID: 'add', content: t('addText'), icon: () => <AddIcon /> },\n add,\n form\n )\n const reActions = [reAdd, ...buildActions(actions, form)].filter(\n Boolean\n ) as QdCrudTableAction<D>[]\n\n const reEdit = mergeAction(\n {\n crudMode: 'edit',\n permiID: 'edit',\n content: t('editText'),\n theme: 'primary',\n hover: 'color'\n },\n edit,\n form\n )\n const reView = mergeAction(\n {\n crudMode: 'view',\n permiID: 'query',\n content: t('viewText'),\n theme: 'primary',\n hover: 'color'\n },\n view,\n form\n )\n const reDel = mergeAction(\n {\n crudMode: 'del',\n permiID: 'remove',\n content: t('deleteText'),\n theme: 'danger',\n hover: 'color',\n selectType: 'multiple'\n },\n del,\n form\n )\n const reRowActions = [reEdit, reView, ...buildActions(rowActions, form), reDel].filter(\n Boolean\n ) as QdCrudTableRowAction<D>[]\n\n let reSelectType = selectType\n const isBatchDel = reDel?.selectType === 'multiple'\n if ((!reSelectType && isBatchDel) || reActions.find((item) => item.selectType === 'multiple')) {\n reSelectType = 'multiple'\n }\n if (isBatchDel) {\n const batchDel = mergeAction(\n {\n crudMode: 'del',\n permiID: 'remove',\n content: t('batchDeleteText'),\n theme: 'danger',\n variant: 'outline',\n selectType: 'multiple',\n icon: () => <DeleteIcon />\n },\n del,\n form\n )\n\n reActions.splice(reAdd ? 1 : 0, 0, batchDel as QdCrudTableAction<D>)\n }\n\n const reColumns = columns || []\n const operationLength = reRowActions.length\n if (operationLength) {\n const operationIdx = reColumns.findIndex((item) => item.colKey === 'operation')\n const defaultOperation: (typeof reColumns)[number] = {\n title: t('operationText'),\n colKey: 'operation',\n align: 'center',\n fixed: 'right',\n width: 28 * operationLength + 25 * operationLength - 1 + 32\n }\n\n if (operationIdx > -1) {\n reColumns[operationIdx] = {\n ...defaultOperation,\n ...reColumns[operationIdx]\n }\n } else {\n reColumns.push(defaultOperation)\n }\n }\n\n const reTools = tools?.map((item) => {\n item.permi = buildActionPermi(item)\n return item\n })\n\n let reTableMinHeight = 'auto'\n if (tableMinHeight !== false) {\n if (typeof tableMinHeight === 'number') {\n reTableMinHeight = `${tableMinHeight}px`\n } else {\n reTableMinHeight = typeof tableMinHeight === 'string' ? tableMinHeight : '443px'\n }\n }\n\n return {\n title,\n tableMinHeight: reTableMinHeight,\n hideSearchVisible,\n hideRefresh,\n hideTreeExpand,\n hideColumnController,\n columns: reColumns,\n\n searchOptions: {\n ...search,\n btnDisabled: search?.btnDisabled ?? tableRef.value?.loading\n },\n serviceTableOptions: {\n ...serviceTableOptions,\n selectType: reSelectType,\n transformParams: mergedTransformParams\n } as Omit<QdServiceTableProps<D, R, P, TP, Pag>, 'columns'>,\n\n formOptions: form,\n detailOptions: detail,\n actions: reActions,\n rowActions: reRowActions,\n tools: reTools,\n\n models: {\n data,\n searchData: inSearchData,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n const finalCacheColumnsKey = computed(() => {\n const { cacheColumnsKey, permiPrefix, columns } = props\n let key = ''\n\n if (cacheColumnsKey) {\n key = cacheColumnsKey\n } else {\n key = MD5(permiPrefix ? `${permiPrefix}:${JSON.stringify(columns)}` : JSON.stringify(columns))\n }\n\n return getColumnsStorageKey(key)\n })\n\n const cachedColumns = useLocalStorage<QdCrudTableCacheCol[]>(finalCacheColumnsKey, [])\n\n const mergeColumns = computed({\n get: () => {\n const original = reProps.value.columns\n if (!cachedColumns.value) return original\n return mergeColumnsWithCache(original, cachedColumns.value)\n },\n set: (val: QdCrudTableCacheCol[]) => {\n cachedColumns.value = val\n }\n })\n\n const showColumns = computed(() => mergeColumns.value?.filter((item) => !item.hidden))\n\n const searchVisible = ref(true)\n const searchRef = useTemplateRef('search')\n let searchMode: 'refresh' | 'changeCurrent' = 'refresh'\n\n function handleSearch() {\n searchMode = 'changeCurrent'\n }\n\n async function handleResetSearch() {\n searchMode = 'changeCurrent'\n searchRef.value?.reset()\n await nextTick()\n searchRef.value?.submit()\n }\n\n function triggerSearch({ validateResult }: QdFormSubmitContext<typeof searchData.value>) {\n if (validateResult !== true) return\n\n switch (searchMode) {\n case 'changeCurrent':\n tableRef.value?.changeCurrent(1)\n break\n default:\n tableRef.value?.refresh()\n break\n }\n }\n\n function handleRefresh() {\n searchMode = 'refresh'\n const searchRefV = searchRef.value\n if (searchRefV) {\n searchRefV.submit()\n return\n }\n\n tableRef.value?.refresh()\n }\n\n function toggleSearchVisible() {\n searchVisible.value = !searchVisible.value\n }\n\n function toggleTreeExpandAll() {\n if (treeIsExpand.value) (tableRef.value as any)?.foldAll()\n else (tableRef.value as any)?.expandAll()\n }\n\n function openColumnController() {\n columnControllerVisible.value = true\n }\n\n function buildActions<T extends QdCrudTableAction<D> | QdCrudTableRowAction<D>>(\n actions?: T[],\n crudForm?: QdCrudTableWrapper['form']\n ) {\n if (!actions) return []\n\n return actions.map(\n (item) =>\n mergeAction(\n {\n variant: 'outline',\n theme: 'primary',\n hover: 'color'\n } as unknown as T,\n item,\n crudForm\n )!\n )\n }\n\n function mergeAction<\n T extends QdCrudTableAction<D> | QdCrudTableRowAction<D> | QdCrudTableDeleteAction<D>\n >(\n defaultOptions: Partial<T>,\n currentOptions?: boolean | T,\n crudForm?: QdCrudTableWrapper['form']\n ) {\n if (currentOptions === false) return\n\n const mergeOptions = merge({}, defaultOptions, currentOptions)\n if (mergeOptions.crudMode !== 'view' && !currentOptions) return\n\n mergeOptions.permi = buildActionPermi(mergeOptions as QdCrudTableAction<D>)\n if (mergeOptions.crudMode !== 'del') {\n const form = buildActionForm(mergeOptions as QdCrudTableAction, crudForm)\n if (!form && !mergeOptions.onClick) return\n ;(mergeOptions as QdCrudTableAction | QdCrudTableRowAction).form = form\n }\n\n return mergeOptions as T\n }\n\n function getConfigRendererCtx<T = unknown, O = object>(self: T, other?: O) {\n return {\n tableData: data.value,\n searchData: searchData.value,\n selectedRowKeys: selectedRowKeys.value,\n activeRowKeys: activeRowKeys.value,\n self,\n ...other\n }\n }\n\n function actionIsCRU(crudMode: QdCrudTableAction['crudMode']) {\n return crudMode && ['add', 'edit', 'view'].includes(crudMode)\n }\n\n function buildActionPermi(action: QdCrudTableAction<D> | QdCrudTableTool<D>) {\n if (action.permi) return action.permi\n if (!props.permiPrefix || !action.permiID) return []\n return [`${props.permiPrefix}:${action.permiID}`]\n }\n\n function buildActionForm(action: QdCrudTableAction, crudForm?: QdCrudTableWrapper['form']) {\n const IsCRU = actionIsCRU(action.crudMode)\n if (!action.form && IsCRU) {\n action.form = cloneDeep(crudForm)\n }\n\n const { form } = action\n if (form) {\n if (action.crudMode === 'view') form.readonly = true\n\n if (!form.onSubmit && IsCRU) {\n form.onSubmit = async (context: QdFormSubmitContext) => {\n const { uid, service, transformParams, transformRes, crudMode } = action\n if (context.validateResult !== true || !service || !uid || !dialogFormMap[uid]) {\n return false\n }\n\n let currentParams = easyCopy(context.formData)\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(currentParams))\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res: TableDialogServiceRes | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as TableDialogServiceRes\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message) msgError(message)\n return false\n }\n\n msgSuccess(message || t('operationSuccessText'))\n\n if (crudMode === 'add') {\n tableRef.value?.changeCurrent(1)\n } else {\n tableRef.value?.refresh()\n }\n }\n }\n\n const { title } = props\n form.wrapper = merge(\n {},\n {\n header: `${action.content}${title || ''}`\n },\n form.wrapper\n )\n }\n\n return action.form\n }\n\n function buildActionOnClick(\n action: QdCrudTableAction<D> | QdCrudTableRowAction<D>,\n originalParams?: PrimaryTableCellParams<D>\n ) {\n if (action.onClick) return action.onClick\n\n if (action.crudMode === 'del') {\n // 删除/批量删除\n const onClick = async () => {\n const { service, transformParams, transformRes } = action\n const row = originalParams?.row\n\n if (\n !service ||\n (!row && action.selectType !== 'multiple') ||\n (!row && !selectedRowKeys.value.length && action.selectType === 'multiple')\n ) {\n return\n }\n\n const childrenKey =\n reProps.value.serviceTableOptions.tree?.childrenKey ||\n qdServiceTableTreeConfig.childrenKey\n let delHasChild = false\n const treeOpts = reProps.value.serviceTableOptions.tree\n const checkChildren = treeOpts?.delCheckChildren ?? !treeOpts?.lazyLoad\n\n if (checkChildren && !row) {\n const rowKey = reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey\n\n delHasChild = selectedRowKeys.value.some((item: TableRowValue) => {\n let find: D | undefined\n const getData = tableRef.value?.getData\n if (getData) {\n find = props.tree\n ? ((getData(item) as ReturnType<EnhancedTableInstanceFunctions['getData']>)\n .row as D)\n : (getData(item) as D)\n } else find = data.value.find((it: D) => get(it, rowKey) === item)\n if (!find) return false\n\n const children = get(find, childrenKey)\n if (isEmpty(children)) return false\n if (children === true) return true\n return children.some((child: D) => !selectedRowKeys.value.includes(get(child, rowKey)))\n })\n } else if (checkChildren && !isEmpty(row?.[childrenKey])) {\n delHasChild = true\n }\n\n if (delHasChild) {\n alertWarning(t('deleteHasChildrenText'))\n return\n }\n\n confirm(\n { body: t('deleteWrapperBodyText'), ...(action as QdCrudTableDeleteAction).wrapper },\n async () => {\n const params = row || selectedRowKeys.value\n let currentParams = row\n ? params[reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey]\n : selectedRowKeys.value\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(\n transformParams(easyCopy(params))\n )\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res: TableDialogServiceRes | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as TableDialogServiceRes\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message) msgError(message)\n return false\n }\n\n msgSuccess(message || t('deleteSuccessText'))\n if (!row) selectedRowKeys.value = []\n tableRef.value?.refresh()\n return true\n }\n )\n }\n\n return onClick\n }\n\n if (isEmpty(action.form) || !actionIsCRU(action.crudMode)) return\n\n // 新增/编辑/查看\n const onClick = async () => {\n if (!action.uid) action.uid = generateRandomString(16)\n\n const uid = action.uid!\n if (!dialogFormMap[uid]) {\n dialogFormMap[uid] = {\n visible: false,\n data: {},\n crudMode: action.crudMode,\n form: shallowRef(action.form!)\n }\n }\n const form = toRef(dialogFormMap[uid], 'form')\n\n await nextTick()\n if (!dialogFormMap[uid].data) dialogFormMap[uid].data = {}\n dialogFormMap[uid].visible = true\n\n if (!action.crudMode || !['edit', 'view'].includes(action.crudMode) || !originalParams) {\n return\n }\n\n form.value.loading = true\n triggerRef(form)\n const [err, res] = await to(getDetail(action as QdCrudTableRowAction<D>, originalParams.row))\n form.value.loading = false\n triggerRef(form)\n if (err) {\n Object.assign(dialogFormMap[uid].data, originalParams.row)\n return\n }\n\n Object.assign(dialogFormMap[uid].data, res)\n }\n\n return onClick\n }\n\n function buildActionDisabled(action: QdCrudTableAction<D>) {\n if (action.disabled) return action.disabled\n\n switch (action.selectType) {\n case 'single':\n return selectedRowKeys.value.length !== 1\n case 'multiple':\n return selectedRowKeys.value.length === 0\n default:\n return false\n }\n }\n\n async function getDetail(\n action: QdCrudTableRowAction<D>,\n params: NonNullable<Props['data']>[number]\n ) {\n const { detailOptions } = reProps.value\n const { service, transformParams, transformRes } = { ...detailOptions, ...action.detail }\n\n if (!service && !transformRes) return easyCopy(params)\n\n if (!service) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes!(easyCopy(params)))\n if (trErr) throw trErr\n return trRes\n }\n\n let currentParams = params[reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey]\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(easyCopy(params)))\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes\n }\n\n return res\n }\n\n function setActionIfRender(\n compIfRender: boolean,\n action: QdCrudTableAction<D> | QdCrudTableRowAction<D> | QdCrudTableTool<D>,\n cellIndex: Partial<Pick<PrimaryTableCellParams<D>, 'colIndex' | 'rowIndex'>> & {\n index: number\n mapKey?: string\n }\n ) {\n const ifRender = compIfRender && auth.hasPermiOr(action.permi, false)\n const { colIndex, rowIndex, index, mapKey } = cellIndex\n\n if (isEmpty(colIndex) && isEmpty(rowIndex)) {\n ifRenderMap[`${mapKey || 'action'}.${index}`] = ifRender\n return\n }\n\n ifRenderMap[`${colIndex}.${rowIndex}.${index}`] = ifRender\n }\n\n function getActionSeparator(\n action: QdCrudTableAction<D> | QdCrudTableRowAction<D> | QdCrudTableTool<D>,\n cellIndex: Partial<Pick<PrimaryTableCellParams<D>, 'colIndex' | 'rowIndex'>> & {\n index: number\n mapKey?: string\n }\n ) {\n const { index, colIndex, rowIndex, mapKey } = cellIndex\n if (index <= 0) return false\n\n if (isEmpty(colIndex) && isEmpty(rowIndex)) {\n if (ifRenderMap[`${mapKey || 'action'}.${index}`] === false) return false\n for (let i = index - 1; i >= 0; i--) {\n const previousIfRender = ifRenderMap[`${mapKey || 'action'}.${i}`]\n if (previousIfRender !== false) return true\n }\n return false\n }\n\n if (ifRenderMap[`${colIndex}.${rowIndex}.${index}`] === false) return false\n for (let i = index - 1; i >= 0; i--) {\n const previousIfRender = ifRenderMap[`${colIndex}.${rowIndex}.${i}`]\n if (previousIfRender !== false) return true\n }\n return false\n }\n\n defineExpose(\n createExposeProxy({}, tableRef) as QdCrudTableInstanceFunctions<\n D,\n R,\n P,\n TP,\n Pag,\n typeof props.tree extends object ? true : false\n >\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-table {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n & > .qd-crud-search:not(.qd-crud-search--hide) + &__body {\n margin-top: var(--td-comp-margin-l);\n }\n\n &__body {\n flex: auto;\n\n & > :deep(.t-card__body) {\n height: 100%;\n min-height: 443px;\n display: flex;\n flex-direction: column;\n\n & > .qd-service-table {\n flex: 1 1 0;\n overflow: hidden;\n\n .t-table__pagination {\n padding-bottom: 0;\n }\n }\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n\n &:has(.t-space-item) + .qd-service-table {\n margin-top: var(--td-comp-margin-l);\n }\n\n &-separator {\n display: inline-block;\n padding-left: var(--td-comp-paddingLR-s);\n }\n }\n }\n</style>\n"],"names":["vHasPermi","hasPermiDirective","props","__props","emit","__emit","searchData","data","selectedRowKeys","activeRowKeys","columnControllerVisible","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","msgError","msgSuccess","alertWarning","confirm","useModal","treeIsExpand","computed","value","length","dialogFormMap","reactive","ifRenderMap","tableRef","useTemplateRef","reProps","inSearchData","transformParams","tableMinHeight","search","form","detail","add","actions","edit","view","del","rowActions","tools","hideSearchVisible","hideRefresh","hideTreeExpand","hideColumnController","title","columns","selectType","serviceTableOptions","mergedTransformParams","params","merged","reAdd","mergeAction","crudMode","permiID","content","icon","_createVNode2","AddIcon","reActions","buildActions","filter","Boolean","reEdit","theme","hover","reView","reDel","reRowActions","reSelectType","isBatchDel","find","item","batchDel","variant","DeleteIcon","splice","reColumns","operationLength","operationIdx","findIndex","colKey","defaultOperation","align","fixed","width","push","reTools","map","permi","buildActionPermi","reTableMinHeight","searchOptions","btnDisabled","loading","formOptions","detailOptions","models","finalCacheColumnsKey","cacheColumnsKey","permiPrefix","key","MD5","JSON","stringify","getColumnsStorageKey","cachedColumns","useLocalStorage","mergeColumns","get","original","mergeColumnsWithCache","set","val","showColumns","hidden","searchVisible","ref","searchRef","searchMode","handleSearch","handleResetSearch","reset","nextTick","submit","triggerSearch","validateResult","changeCurrent","refresh","handleRefresh","searchRefV","toggleSearchVisible","toggleTreeExpandAll","foldAll","expandAll","openColumnController","crudForm","defaultOptions","currentOptions","mergeOptions","merge","buildActionForm","onClick","getConfigRendererCtx","self","other","tableData","actionIsCRU","includes","action","IsCRU","cloneDeep","readonly","onSubmit","context","uid","service","transformRes","currentParams","easyCopy","formData","tpErr","tpRes","suspectedWrapperPromise","serviceErr","serviceRes","res","trErr","trRes","success","message","wrapper","header","buildActionOnClick","originalParams","row","childrenKey","tree","qdServiceTableTreeConfig","delHasChild","treeOpts","checkChildren","delCheckChildren","lazyLoad","rowKey","qdCrudTableProps","some","getData","it","children","isEmpty","child","body","generateRandomString","visible","shallowRef","toRef","triggerRef","err","to","getDetail","Object","assign","buildActionDisabled","disabled","setActionIfRender","compIfRender","cellIndex","ifRender","auth","colIndex","rowIndex","index","mapKey","getActionSeparator","i","previousIfRender","__expose","createExposeProxy","_openBlock","_createElementBlock","_hoisted_1","_renderSlot","_ctx","items","_withDirectives","_createBlock","_unref","_mergeProps","$event","class","onSearch","onReset","extractSlotsWithPrefix","$slots","name","filterName","fn","_withCtx","slotProps","originalName","undefined","_createVNode","QdCard","_createElementVNode","_hoisted_2","TSpace","size","_Fragment","_hoisted_3","QdConfigRenderer","config","TButton","onIfRenderChange","_hoisted_4","TTooltip","shape","SearchIcon","RefreshIcon","UnfoldLessIcon","UnfoldMoreIcon","columnController","hideTriggerButton","SettingIcon","_createSlots","operation","_normalizeProps","_guardReactiveProps","TDivider","layout","is","_renderList","dialogForm","QdDialogForm","QdColumnsController"],"mappings":"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"}
|
|
@@ -47,6 +47,7 @@ declare const _default: <D extends TableRowData = TableRowData, R = unknown, P =
|
|
|
47
47
|
transformParams?: ((options: import("tdesign-vue-next").TableTreeNodeExpandOptions<D>) => TP | Promise<TP>) | undefined;
|
|
48
48
|
transformRes?: ((res: R, options: import("tdesign-vue-next").TableTreeNodeExpandOptions<D>) => import("qidian-shared").ServicePageRes<D> | Promise<import("qidian-shared").ServicePageRes<D>>) | undefined;
|
|
49
49
|
maxLevel?: number;
|
|
50
|
+
delCheckChildren?: boolean;
|
|
50
51
|
}) | undefined;
|
|
51
52
|
loading?: (boolean | import("tdesign-vue-next").TNode) | undefined;
|
|
52
53
|
expandIcon?: boolean | ((h: typeof import("vue").h, props: import("tdesign-vue-next").ExpandArrowRenderParams<D>) => import("tdesign-vue-next").TNodeReturnValue) | undefined;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import type { QdDictItem } from '../../../hooks';
|
|
1
2
|
import type { QdDictTagProps } from './types';
|
|
2
3
|
declare var __VLS_1: {}, __VLS_3: {
|
|
3
|
-
item:
|
|
4
|
+
item: QdDictItem;
|
|
4
5
|
}, __VLS_5: {
|
|
5
|
-
item:
|
|
6
|
+
item: QdDictItem;
|
|
6
7
|
}, __VLS_7: {
|
|
7
|
-
item:
|
|
8
|
+
item: QdDictItem;
|
|
8
9
|
}, __VLS_13: {
|
|
9
|
-
item:
|
|
10
|
+
item: QdDictItem;
|
|
10
11
|
}, __VLS_15: {
|
|
11
|
-
item:
|
|
12
|
+
item: QdDictItem;
|
|
12
13
|
}, __VLS_17: {
|
|
13
|
-
item:
|
|
14
|
+
item: QdDictItem;
|
|
14
15
|
}, __VLS_19: {};
|
|
15
16
|
type __VLS_Slots = {} & {
|
|
16
17
|
empty?: (props: typeof __VLS_1) => any;
|
|
@@ -31,7 +32,7 @@ type __VLS_Slots = {} & {
|
|
|
31
32
|
};
|
|
32
33
|
declare const __VLS_component: import("vue").DefineComponent<QdDictTagProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<QdDictTagProps> & Readonly<{}>, {
|
|
33
34
|
emptyText: string;
|
|
34
|
-
options:
|
|
35
|
+
options: QdDictItem[];
|
|
35
36
|
separator: string;
|
|
36
37
|
strict: boolean;
|
|
37
38
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -2,7 +2,7 @@ import './index.css'
|
|
|
2
2
|
import _sfc_main from "./index.vue2.mjs";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
-
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b88cab23"]]);
|
|
6
6
|
export {
|
|
7
7
|
index as default
|
|
8
8
|
};
|
|
@@ -51,13 +51,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
53
|
const empty = computed(() => reValue.value.length === 0);
|
|
54
|
+
function isTextItem(item) {
|
|
55
|
+
return (!reProps.value.theme || reProps.value.theme === "text") && !props.variant && (item.theme === "text" || !item.theme);
|
|
56
|
+
}
|
|
57
|
+
function getSeparator(item) {
|
|
58
|
+
if (props.separator !== void 0) return props.separator;
|
|
59
|
+
return isTextItem(item) ? qdDictConvStrSeparator : "";
|
|
60
|
+
}
|
|
54
61
|
return (_ctx, _cache) => {
|
|
55
62
|
return withDirectives((openBlock(), createElementBlock("div", _hoisted_1, [
|
|
56
63
|
empty.value ? renderSlot(_ctx.$slots, "empty", { key: 0 }, () => [
|
|
57
64
|
createElementVNode("span", null, toDisplayString(__props.emptyText), 1)
|
|
58
65
|
], true) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(matchOptions.value, (item, index) => {
|
|
59
66
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
60
|
-
(
|
|
67
|
+
isTextItem(item) ? (openBlock(), createElementBlock("span", {
|
|
61
68
|
key: item.value,
|
|
62
69
|
class: normalizeClass(item.class)
|
|
63
70
|
}, [
|
|
@@ -84,8 +91,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
84
91
|
]),
|
|
85
92
|
_: 2
|
|
86
93
|
}, 1032, ["index", "size", "shape", "theme", "variant", "class"])),
|
|
87
|
-
(_ctx.$slots.separator ||
|
|
88
|
-
createTextVNode(toDisplayString(
|
|
94
|
+
(_ctx.$slots.separator || getSeparator(item)) && matchOptions.value.length - 1 !== index ? renderSlot(_ctx.$slots, "separator", { key: 2 }, () => [
|
|
95
|
+
createTextVNode(toDisplayString(getSeparator(item)), 1)
|
|
89
96
|
], true) : createCommentVNode("", true)
|
|
90
97
|
], 64);
|
|
91
98
|
}), 256))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.mjs","sources":["../../../../src/components/dict/tag/index.vue"],"sourcesContent":["<template>\n <div v-loading=\"{ loading: dictLoading, size: 'small' }\" class=\"qd-dict-tag\">\n <slot v-if=\"empty\" name=\"empty\">\n <span>{{ emptyText }}</span>\n </slot>\n\n <template v-else>\n <template v-for=\"(item, index) in matchOptions\">\n <span
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../../src/components/dict/tag/index.vue"],"sourcesContent":["<template>\n <div v-loading=\"{ loading: dictLoading, size: 'small' }\" class=\"qd-dict-tag\">\n <slot v-if=\"empty\" name=\"empty\">\n <span>{{ emptyText }}</span>\n </slot>\n\n <template v-else>\n <template v-for=\"(item, index) in matchOptions\">\n <span v-if=\"isTextItem(item)\" :key=\"item.value\" :class=\"item.class\">\n <slot name=\"prefix\" :item=\"item\" />\n <slot :item=\"item\">{{ item.label }}</slot>\n <slot name=\"suffix\" :item=\"item\" />\n </span>\n\n <t-tag\n v-else\n :key=\"item.value + ''\"\n :index=\"index\"\n :size=\"reProps.size\"\n :shape=\"reProps.shape\"\n :theme=\"(reProps.theme || item.theme || 'default') as TdTagProps['theme']\"\n :variant=\"reProps.variant || item.variant || 'light'\"\n :class=\"item.class\"\n >\n <slot name=\"prefix\" :item=\"item\" />\n <slot :item=\"item\">{{ item.label }}</slot>\n <slot name=\"suffix\" :item=\"item\" />\n </t-tag>\n\n <template\n v-if=\"($slots.separator || getSeparator(item)) && matchOptions.length - 1 !== index\"\n >\n <slot name=\"separator\">{{ getSeparator(item) }}</slot>\n </template>\n </template>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { isNumber } from 'lodash-es'\n import { isEmpty } from 'qidian-shared'\n import type { TdTagProps } from 'tdesign-vue-next'\n import { LoadingDirective, Tag as TTag } from 'tdesign-vue-next'\n import { computed, toRef } from 'vue'\n\n import type { QdDictItem } from '../../../hooks'\n import { useDictDynamic } from '../../../hooks'\n import { qdDictConvStrSeparator, qdDictTagProps } from './props'\n import type { QdDictTagProps } from './types'\n\n defineOptions({\n name: 'QdDictTag'\n })\n\n const props = withDefaults(defineProps<QdDictTagProps>(), qdDictTagProps)\n\n const vLoading = LoadingDirective\n\n const dictType = toRef(props, 'dictType')\n\n const reProps = computed(() => {\n const { options, ...otherOptions } = props\n\n return {\n ...otherOptions,\n options: options || dictOptions.value || []\n }\n })\n\n const { options: dictOptions, loading: dictLoading } = useDictDynamic(dictType)\n\n const reValue = computed(() => {\n const { value, strict } = reProps.value\n\n if (isEmpty(value)) return []\n if (Array.isArray(value)) return value.map((item) => (strict ? item : item.toString()))\n if (isNumber(value)) {\n return strict ? [value] : [value.toString()]\n }\n return String(value).split(qdDictConvStrSeparator)\n })\n\n const matchOptions = computed(() => {\n const { options, strict } = reProps.value\n\n return options.filter((option) => {\n return reValue.value.includes(strict ? option.value : option.value.toString())\n })\n })\n\n const empty = computed(() => reValue.value.length === 0)\n\n function isTextItem(item: QdDictItem) {\n return (\n (!reProps.value.theme || reProps.value.theme === 'text') &&\n !props.variant &&\n (item.theme === 'text' || !item.theme)\n )\n }\n\n function getSeparator(item: QdDictItem) {\n if (props.separator !== undefined) return props.separator\n return isTextItem(item) ? qdDictConvStrSeparator : ''\n }\n</script>\n\n<style lang=\"less\" scoped>\n .qd-dict-tag {\n display: inline-flex;\n align-items: center;\n flex-wrap: wrap;\n }\n</style>\n"],"names":["_withDirectives","_openBlock","_createElementBlock","_renderSlot","_createElementVNode","_Fragment","_renderList","_normalizeClass","_createTextVNode","_toDisplayString","_createBlock","_unref","TTag","$slots"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAuDE,UAAM,QAAQ;AAEd,UAAM,WAAW;AAEjB,UAAM,WAAW,MAAM,OAAO,UAAU;AAExC,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,SAAS,GAAG,aAAA,IAAiB;AAErC,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,WAAW,YAAY,SAAS,CAAA;AAAA,MAAC;AAAA,IAE9C,CAAC;AAED,UAAM,EAAE,SAAS,aAAa,SAAS,YAAA,IAAgB,eAAe,QAAQ;AAE9E,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,OAAO,OAAA,IAAW,QAAQ;AAElC,UAAI,QAAQ,KAAK,EAAG,QAAO,CAAA;AAC3B,UAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,IAAI,CAAC,SAAU,SAAS,OAAO,KAAK,UAAW;AACtF,UAAI,SAAS,KAAK,GAAG;AACnB,eAAO,SAAS,CAAC,KAAK,IAAI,CAAC,MAAM,UAAU;AAAA,MAC7C;AACA,aAAO,OAAO,KAAK,EAAE,MAAM,sBAAsB;AAAA,IACnD,CAAC;AAED,UAAM,eAAe,SAAS,MAAM;AAClC,YAAM,EAAE,SAAS,OAAA,IAAW,QAAQ;AAEpC,aAAO,QAAQ,OAAO,CAAC,WAAW;AAChC,eAAO,QAAQ,MAAM,SAAS,SAAS,OAAO,QAAQ,OAAO,MAAM,UAAU;AAAA,MAC/E,CAAC;AAAA,IACH,CAAC;AAED,UAAM,QAAQ,SAAS,MAAM,QAAQ,MAAM,WAAW,CAAC;AAEvD,aAAS,WAAW,MAAkB;AACpC,cACG,CAAC,QAAQ,MAAM,SAAS,QAAQ,MAAM,UAAU,WACjD,CAAC,MAAM,YACN,KAAK,UAAU,UAAU,CAAC,KAAK;AAAA,IAEpC;AAEA,aAAS,aAAa,MAAkB;AACtC,UAAI,MAAM,cAAc,OAAW,QAAO,MAAM;AAChD,aAAO,WAAW,IAAI,IAAI,yBAAyB;AAAA,IACrD;;AAvGA,aAAAA,gBAAAC,UAAA,GAAAC,mBAmCM,OAnCN,YAmCM;AAAA,QAlCQ,MAAA,QAAZC,WAEO,kCAFP,MAEO;AAAA,UADLC,mBAA4B,8BAAnB,QAAA,SAAS,GAAA,CAAA;AAAA,QAAA,YAIlBH,UAAA,IAAA,GAAAC,mBA2BWG,UAAA,EAAA,KAAA,KAAAC,WA3BuB,aAAA,OAAY,CAA5B,MAAM,UAAK;;YACf,WAAW,IAAI,kBAA3BJ,mBAIO,QAAA;AAAA,cAJwB,KAAK,KAAK;AAAA,cAAQ,OAAKK,eAAE,KAAK,KAAK;AAAA,YAAA;cAChEJ,WAAmC,KAAA,QAAA,UAAA,EAAd,KAAA,GAAU,QAAA,IAAA;AAAA,cAC/BA,WAA0C,KAAA,QAAA,WAAA,EAAnC,KAAA,GAAP,MAA0C;AAAA,gBAApBK,gBAAAC,gBAAA,KAAK,KAAK,GAAA,CAAA;AAAA,cAAA;cAChCN,WAAmC,KAAA,QAAA,UAAA,EAAd,KAAA,GAAU,QAAA,IAAA;AAAA,YAAA,uBAGjCO,YAaQC,MAAAC,GAAA,GAAA;AAAA,cAXL,KAAK,KAAK,QAAK;AAAA,cACf;AAAA,cACA,MAAM,QAAA,MAAQ;AAAA,cACd,OAAO,QAAA,MAAQ;AAAA,cACf,OAAQ,QAAA,MAAQ,SAAS,KAAK,SAAK;AAAA,cACnC,SAAS,QAAA,MAAQ,WAAW,KAAK,WAAO;AAAA,cACxC,OAAKL,eAAE,KAAK,KAAK;AAAA,YAAA;+BAElB,MAAmC;AAAA,gBAAnCJ,WAAmC,KAAA,QAAA,UAAA,EAAd,KAAA,GAAU,QAAA,IAAA;AAAA,gBAC/BA,WAA0C,KAAA,QAAA,WAAA,EAAnC,KAAA,GAAP,MAA0C;AAAA,kBAApBK,gBAAAC,gBAAA,KAAK,KAAK,GAAA,CAAA;AAAA,gBAAA;gBAChCN,WAAmC,KAAA,QAAA,UAAA,EAAd,KAAA,GAAU,QAAA,IAAA;AAAA,cAAA;;;aAIxBU,KAAAA,OAAO,aAAa,aAAa,IAAI,MAAM,aAAA,MAAa,SAAM,MAAS,QAE9EV,WAAsD,sCAAtD,MAAsD;AAAA,cAA5BK,gBAAAC,gBAAA,aAAa,IAAI,CAAA,GAAA,CAAA;AAAA,YAAA;;;;qCA/BxBE,MAAA,WAAA,GAAW,MAAA,QAAA,CAAA;AAAA,MAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.mjs","sources":["../../../../src/components/dict/tag/props.ts"],"sourcesContent":["export const qdDictConvStrSeparator = ','\n\nexport const qdDictTagProps = {\n options: undefined,\n strict: false,\n separator:
|
|
1
|
+
{"version":3,"file":"props.mjs","sources":["../../../../src/components/dict/tag/props.ts"],"sourcesContent":["export const qdDictConvStrSeparator = ','\n\nexport const qdDictTagProps = {\n options: undefined,\n strict: false,\n separator: undefined,\n emptyText: ''\n} as const\n"],"names":[],"mappings":"AAAO,MAAM,yBAAyB;AAE/B,MAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAW;AACb;"}
|
|
@@ -9,6 +9,7 @@ export interface QdServiceTableProps<D extends TableRowData = TableRowData, R =
|
|
|
9
9
|
transformParams?: (options: TableTreeNodeExpandOptions<D>) => TP | Promise<TP>;
|
|
10
10
|
transformRes?: (res: R, options: TableTreeNodeExpandOptions<D>) => ServicePageRes<D> | Promise<ServicePageRes<D>>;
|
|
11
11
|
maxLevel?: number;
|
|
12
|
+
delCheckChildren?: boolean;
|
|
12
13
|
};
|
|
13
14
|
loadingWithData?: boolean;
|
|
14
15
|
}
|