mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-06 00:18:51 +08:00
feat: 优化 PureTableBar
组件,添加列展示功能
This commit is contained in:
parent
42f5a36145
commit
723cb46eaf
2
.github/workflows/gitee.yml
vendored
2
.github/workflows/gitee.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Deploy 🔧
|
- name: Deploy 🔧
|
||||||
run: |
|
run: |
|
||||||
pnpm install
|
pnpm install --no-frozen-lockfile
|
||||||
sed -i "s#VITE_PUBLIC_PATH = /#VITE_PUBLIC_PATH = /vue-pure-admin/#g" $(pwd)/.env.production
|
sed -i "s#VITE_PUBLIC_PATH = /#VITE_PUBLIC_PATH = /vue-pure-admin/#g" $(pwd)/.env.production
|
||||||
pnpm build
|
pnpm build
|
||||||
cd dist
|
cd dist
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
"@logicflow/core": "^1.2.5",
|
"@logicflow/core": "^1.2.5",
|
||||||
"@logicflow/extension": "^1.2.5",
|
"@logicflow/extension": "^1.2.5",
|
||||||
"@pureadmin/descriptions": "^1.1.1",
|
"@pureadmin/descriptions": "^1.1.1",
|
||||||
"@pureadmin/table": "^2.0.0",
|
"@pureadmin/table": "^2.1.0",
|
||||||
"@pureadmin/utils": "^1.8.9",
|
"@pureadmin/utils": "^1.8.9",
|
||||||
"@vueuse/core": "^10.1.2",
|
"@vueuse/core": "^10.1.2",
|
||||||
"@vueuse/motion": "2.0.0-beta.12",
|
"@vueuse/motion": "2.0.0-beta.12",
|
||||||
@ -57,12 +57,12 @@
|
|||||||
"mockjs": "^1.1.0",
|
"mockjs": "^1.1.0",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"path": "^0.12.7",
|
"path": "^0.12.7",
|
||||||
"pinia": "^2.0.35",
|
"pinia": "^2.0.36",
|
||||||
"qrcode": "^1.5.3",
|
"qrcode": "^1.5.3",
|
||||||
"qs": "^6.11.1",
|
"qs": "^6.11.1",
|
||||||
"responsive-storage": "^2.2.0",
|
"responsive-storage": "^2.2.0",
|
||||||
"sortablejs": "^1.15.0",
|
"sortablejs": "^1.15.0",
|
||||||
"swiper": "^9.2.4",
|
"swiper": "^9.3.0",
|
||||||
"typeit": "^8.7.1",
|
"typeit": "^8.7.1",
|
||||||
"v-contextmenu": "3.0.0",
|
"v-contextmenu": "3.0.0",
|
||||||
"vue": "^3.2.47",
|
"vue": "^3.2.47",
|
||||||
|
24
pnpm-lock.yaml
generated
24
pnpm-lock.yaml
generated
@ -12,7 +12,7 @@ specifiers:
|
|||||||
"@logicflow/core": ^1.2.5
|
"@logicflow/core": ^1.2.5
|
||||||
"@logicflow/extension": ^1.2.5
|
"@logicflow/extension": ^1.2.5
|
||||||
"@pureadmin/descriptions": ^1.1.1
|
"@pureadmin/descriptions": ^1.1.1
|
||||||
"@pureadmin/table": ^2.0.0
|
"@pureadmin/table": ^2.1.0
|
||||||
"@pureadmin/theme": ^3.0.0
|
"@pureadmin/theme": ^3.0.0
|
||||||
"@pureadmin/utils": ^1.8.9
|
"@pureadmin/utils": ^1.8.9
|
||||||
"@types/element-resize-detector": 1.1.3
|
"@types/element-resize-detector": 1.1.3
|
||||||
@ -60,7 +60,7 @@ specifiers:
|
|||||||
nprogress: ^0.2.0
|
nprogress: ^0.2.0
|
||||||
path: ^0.12.7
|
path: ^0.12.7
|
||||||
picocolors: ^1.0.0
|
picocolors: ^1.0.0
|
||||||
pinia: ^2.0.35
|
pinia: ^2.0.36
|
||||||
postcss: ^8.4.23
|
postcss: ^8.4.23
|
||||||
postcss-html: ^1.5.0
|
postcss-html: ^1.5.0
|
||||||
postcss-import: ^15.1.0
|
postcss-import: ^15.1.0
|
||||||
@ -87,7 +87,7 @@ specifiers:
|
|||||||
stylelint-prettier: ^3.0.0
|
stylelint-prettier: ^3.0.0
|
||||||
stylelint-scss: ^5.0.0
|
stylelint-scss: ^5.0.0
|
||||||
svgo: ^3.0.2
|
svgo: ^3.0.2
|
||||||
swiper: ^9.2.4
|
swiper: ^9.3.0
|
||||||
tailwindcss: ^3.3.2
|
tailwindcss: ^3.3.2
|
||||||
terser: ^5.17.1
|
terser: ^5.17.1
|
||||||
typeit: ^8.7.1
|
typeit: ^8.7.1
|
||||||
@ -120,7 +120,7 @@ dependencies:
|
|||||||
"@logicflow/core": 1.2.5
|
"@logicflow/core": 1.2.5
|
||||||
"@logicflow/extension": 1.2.5
|
"@logicflow/extension": 1.2.5
|
||||||
"@pureadmin/descriptions": 1.1.1_element-plus@2.3.4
|
"@pureadmin/descriptions": 1.1.1_element-plus@2.3.4
|
||||||
"@pureadmin/table": 2.0.0_element-plus@2.3.4
|
"@pureadmin/table": 2.1.0_element-plus@2.3.4
|
||||||
"@pureadmin/utils": 1.8.9_echarts@5.4.2+vue@3.2.47
|
"@pureadmin/utils": 1.8.9_echarts@5.4.2+vue@3.2.47
|
||||||
"@vueuse/core": 10.1.2_vue@3.2.47
|
"@vueuse/core": 10.1.2_vue@3.2.47
|
||||||
"@vueuse/motion": 2.0.0-beta.12_vue@3.2.47
|
"@vueuse/motion": 2.0.0-beta.12_vue@3.2.47
|
||||||
@ -143,12 +143,12 @@ dependencies:
|
|||||||
mockjs: 1.1.0
|
mockjs: 1.1.0
|
||||||
nprogress: 0.2.0
|
nprogress: 0.2.0
|
||||||
path: 0.12.7
|
path: 0.12.7
|
||||||
pinia: 2.0.35_dtjfskxukdxv24psui2m5c75zy
|
pinia: 2.0.36_dtjfskxukdxv24psui2m5c75zy
|
||||||
qrcode: 1.5.3
|
qrcode: 1.5.3
|
||||||
qs: 6.11.1
|
qs: 6.11.1
|
||||||
responsive-storage: 2.2.0
|
responsive-storage: 2.2.0
|
||||||
sortablejs: 1.15.0
|
sortablejs: 1.15.0
|
||||||
swiper: 9.2.4
|
swiper: 9.3.0
|
||||||
typeit: 8.7.1
|
typeit: 8.7.1
|
||||||
v-contextmenu: 3.0.0_vue@3.2.47
|
v-contextmenu: 3.0.0_vue@3.2.47
|
||||||
vue: 3.2.47
|
vue: 3.2.47
|
||||||
@ -2495,10 +2495,10 @@ packages:
|
|||||||
vue: 3.2.47
|
vue: 3.2.47
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@pureadmin/table/2.0.0_element-plus@2.3.4:
|
/@pureadmin/table/2.1.0_element-plus@2.3.4:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-B5+vniSskCOjXLbQA+quPtySoOdwrhQOV93ruSwaUUZvRXxbfro1C3tAhUk/xYSeg8CbGrjoKdXYtN+yGjn6YA==
|
integrity: sha512-svPWYqT/7XScfaM/LFYd1bXIq/kMbOeRQ/5pi79XvxtO4CyA9Y6uiFxQzW1m8rwPDGc2wfs5DiiayyS53Bdv9A==
|
||||||
}
|
}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
element-plus: ^2.0.0
|
element-plus: ^2.0.0
|
||||||
@ -9464,10 +9464,10 @@ packages:
|
|||||||
engines: { node: ">=0.10.0" }
|
engines: { node: ">=0.10.0" }
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/pinia/2.0.35_dtjfskxukdxv24psui2m5c75zy:
|
/pinia/2.0.36_dtjfskxukdxv24psui2m5c75zy:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-P1IKKQWhxGXiiZ3atOaNI75bYlFUbRxtJdhPLX059Z7+b9Z04rnTZdSY8Aph1LA+/4QEMAYHsTQ638Wfe+6K5g==
|
integrity: sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==
|
||||||
}
|
}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
"@vue/composition-api": ^1.4.0
|
"@vue/composition-api": ^1.4.0
|
||||||
@ -11763,10 +11763,10 @@ packages:
|
|||||||
picocolors: 1.0.0
|
picocolors: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/swiper/9.2.4:
|
/swiper/9.3.0:
|
||||||
resolution:
|
resolution:
|
||||||
{
|
{
|
||||||
integrity: sha512-L7y3K/iiMXNYQ94FbfcJn7jex4QPnS4+voXGupTdC+UHW4XrR40QDdm4c9hXJ+Br0Il7PP0vP1W3goM9/Ly6Sg==
|
integrity: sha512-iELlQVvWLdyfUjQSfhg8UTKBvgfm3uCfv3wJ3f9wbSWP6spzoOTLcob87A8ywPS2FRc552JmrnyL5+LYfN8j9Q==
|
||||||
}
|
}
|
||||||
engines: { node: ">= 4.7.0" }
|
engines: { node: ">= 4.7.0" }
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { delay } from "@pureadmin/utils";
|
|
||||||
import { useEpThemeStoreHook } from "@/store/modules/epTheme";
|
import { useEpThemeStoreHook } from "@/store/modules/epTheme";
|
||||||
|
import { delay, getKeyList, cloneDeep } from "@pureadmin/utils";
|
||||||
import { defineComponent, ref, computed, type PropType } from "vue";
|
import { defineComponent, ref, computed, type PropType } from "vue";
|
||||||
import ExpandIcon from "./svg/expand.svg?component";
|
import ExpandIcon from "./svg/expand.svg?component";
|
||||||
import RefreshIcon from "./svg/refresh.svg?component";
|
import RefreshIcon from "./svg/refresh.svg?component";
|
||||||
@ -15,6 +15,11 @@ const props = {
|
|||||||
/** 对于树形表格,如果想启用展开和折叠功能,传入当前表格的ref即可 */
|
/** 对于树形表格,如果想启用展开和折叠功能,传入当前表格的ref即可 */
|
||||||
tableRef: {
|
tableRef: {
|
||||||
type: Object as PropType<any>
|
type: Object as PropType<any>
|
||||||
|
},
|
||||||
|
/** 需要展示的列 */
|
||||||
|
columns: {
|
||||||
|
type: Array as PropType<TableColumnList>,
|
||||||
|
default: () => []
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -24,10 +29,14 @@ export default defineComponent({
|
|||||||
emits: ["refresh"],
|
emits: ["refresh"],
|
||||||
setup(props, { emit, slots, attrs }) {
|
setup(props, { emit, slots, attrs }) {
|
||||||
const buttonRef = ref();
|
const buttonRef = ref();
|
||||||
const checkList = ref([]);
|
|
||||||
const size = ref("default");
|
const size = ref("default");
|
||||||
const isExpandAll = ref(true);
|
const isExpandAll = ref(true);
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
const checkAll = ref(true);
|
||||||
|
const isIndeterminate = ref(false);
|
||||||
|
let checkColumnList = getKeyList(cloneDeep(props?.columns), "label");
|
||||||
|
const checkedColumns = ref(checkColumnList);
|
||||||
|
const dynamicColumns = ref(cloneDeep(props?.columns));
|
||||||
|
|
||||||
const getDropdownItemStyle = computed(() => {
|
const getDropdownItemStyle = computed(() => {
|
||||||
return s => {
|
return s => {
|
||||||
@ -50,6 +59,19 @@ export default defineComponent({
|
|||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const topClass = computed(() => {
|
||||||
|
return [
|
||||||
|
"flex",
|
||||||
|
"justify-between",
|
||||||
|
"pt-[3px]",
|
||||||
|
"px-[11px]",
|
||||||
|
"border-b-[1px]",
|
||||||
|
"border-solid",
|
||||||
|
"border-[#dcdfe6]",
|
||||||
|
"dark:border-[#303030]"
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
function onReFresh() {
|
function onReFresh() {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
emit("refresh");
|
emit("refresh");
|
||||||
@ -70,6 +92,33 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleCheckAllChange(val: boolean) {
|
||||||
|
checkedColumns.value = val ? checkColumnList : [];
|
||||||
|
isIndeterminate.value = false;
|
||||||
|
dynamicColumns.value.map(column =>
|
||||||
|
val ? (column.hide = false) : (column.hide = true)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleCheckedColumnsChange(value: string[]) {
|
||||||
|
const checkedCount = value.length;
|
||||||
|
checkAll.value = checkedCount === checkColumnList.length;
|
||||||
|
isIndeterminate.value =
|
||||||
|
checkedCount > 0 && checkedCount < checkColumnList.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleCheckColumnListChange(val: boolean, index: number) {
|
||||||
|
dynamicColumns.value[index].hide = !val;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onReset() {
|
||||||
|
checkAll.value = true;
|
||||||
|
isIndeterminate.value = false;
|
||||||
|
checkColumnList = getKeyList(cloneDeep(props?.columns), "label");
|
||||||
|
checkedColumns.value = checkColumnList;
|
||||||
|
dynamicColumns.value = cloneDeep(props?.columns);
|
||||||
|
}
|
||||||
|
|
||||||
const dropdown = {
|
const dropdown = {
|
||||||
dropdown: () => (
|
dropdown: () => (
|
||||||
<el-dropdown-menu class="translation">
|
<el-dropdown-menu class="translation">
|
||||||
@ -150,11 +199,56 @@ export default defineComponent({
|
|||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-divider direction="vertical" />
|
<el-divider direction="vertical" />
|
||||||
|
|
||||||
<el-popover v-slots={reference} width="200" trigger="click">
|
<el-popover
|
||||||
<el-checkbox-group v-model={checkList.value}>
|
v-slots={reference}
|
||||||
<el-checkbox label="序号列" />
|
popper-style={{ padding: 0 }}
|
||||||
<el-checkbox label="勾选列" />
|
width="160"
|
||||||
</el-checkbox-group>
|
trigger="click"
|
||||||
|
>
|
||||||
|
<div class={[topClass.value]}>
|
||||||
|
<el-checkbox
|
||||||
|
class="!-mr-1"
|
||||||
|
label="列展示"
|
||||||
|
v-model={checkAll.value}
|
||||||
|
indeterminate={isIndeterminate.value}
|
||||||
|
onChange={value => handleCheckAllChange(value)}
|
||||||
|
/>
|
||||||
|
<el-button type="primary" link onClick={() => onReset()}>
|
||||||
|
重置
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pt-[6px] pl-[11px]">
|
||||||
|
<el-checkbox-group
|
||||||
|
v-model={checkedColumns.value}
|
||||||
|
onChange={value => handleCheckedColumnsChange(value)}
|
||||||
|
>
|
||||||
|
<el-space
|
||||||
|
direction="vertical"
|
||||||
|
alignment="flex-start"
|
||||||
|
size={0}
|
||||||
|
>
|
||||||
|
{checkColumnList.map((item, index) => {
|
||||||
|
return (
|
||||||
|
<el-checkbox
|
||||||
|
key={item}
|
||||||
|
label={item}
|
||||||
|
onChange={value =>
|
||||||
|
handleCheckColumnListChange(value, index)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
title={item}
|
||||||
|
class="inline-block w-[120px] truncate hover:text-text_color_primary"
|
||||||
|
>
|
||||||
|
{item}
|
||||||
|
</span>
|
||||||
|
</el-checkbox>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</el-space>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</div>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -177,7 +271,10 @@ export default defineComponent({
|
|||||||
content="列设置"
|
content="列设置"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{slots.default({ size: size.value, checkList: checkList.value })}
|
{slots.default({
|
||||||
|
size: size.value,
|
||||||
|
dynamicColumns: dynamicColumns.value
|
||||||
|
})}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
@ -54,7 +54,7 @@ const {
|
|||||||
row-key="id"
|
row-key="id"
|
||||||
alignWhole="center"
|
alignWhole="center"
|
||||||
showOverflowTooltip
|
showOverflowTooltip
|
||||||
:size="tableSize"
|
:size="tableSize as any"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:loading-config="loadingConfig"
|
:loading-config="loadingConfig"
|
||||||
:height="tableSize === 'small' ? 352 : 440"
|
:height="tableSize === 'small' ? 352 : 440"
|
||||||
|
@ -12,17 +12,10 @@ export function useDept() {
|
|||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
|
|
||||||
const columns: TableColumnList = [
|
const columns: TableColumnList = [
|
||||||
{
|
|
||||||
type: "selection",
|
|
||||||
width: 55,
|
|
||||||
align: "left",
|
|
||||||
hide: ({ checkList }) => !checkList.includes("勾选列")
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "序号",
|
label: "序号",
|
||||||
type: "index",
|
type: "index",
|
||||||
minWidth: 70,
|
minWidth: 70
|
||||||
hide: ({ checkList }) => !checkList.includes("序号列")
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "部门名称",
|
label: "部门名称",
|
||||||
|
@ -73,6 +73,7 @@ const {
|
|||||||
|
|
||||||
<PureTableBar
|
<PureTableBar
|
||||||
title="部门列表"
|
title="部门列表"
|
||||||
|
:columns="columns"
|
||||||
:tableRef="tableRef?.getTableRef()"
|
:tableRef="tableRef?.getTableRef()"
|
||||||
@refresh="onSearch"
|
@refresh="onSearch"
|
||||||
>
|
>
|
||||||
@ -81,7 +82,7 @@ const {
|
|||||||
新增部门
|
新增部门
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot="{ size, checkList }">
|
<template v-slot="{ size, dynamicColumns }">
|
||||||
<pure-table
|
<pure-table
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
border
|
border
|
||||||
@ -93,8 +94,7 @@ const {
|
|||||||
:loading="loading"
|
:loading="loading"
|
||||||
:size="size"
|
:size="size"
|
||||||
:data="dataList"
|
:data="dataList"
|
||||||
:columns="columns"
|
:columns="dynamicColumns"
|
||||||
:checkList="checkList"
|
|
||||||
:header-cell-style="{
|
:header-cell-style="{
|
||||||
background: 'var(--el-table-row-hover-bg-color)',
|
background: 'var(--el-table-row-hover-bg-color)',
|
||||||
color: 'var(--el-text-color-primary)'
|
color: 'var(--el-text-color-primary)'
|
||||||
|
@ -22,16 +22,15 @@ export function useRole() {
|
|||||||
});
|
});
|
||||||
const columns: TableColumnList = [
|
const columns: TableColumnList = [
|
||||||
{
|
{
|
||||||
|
label: "勾选列", // 如果需要表格多选,此处label必须设置
|
||||||
type: "selection",
|
type: "selection",
|
||||||
width: 55,
|
width: 55,
|
||||||
align: "left",
|
align: "left"
|
||||||
hide: ({ checkList }) => !checkList.includes("勾选列")
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "序号",
|
label: "序号",
|
||||||
type: "index",
|
type: "index",
|
||||||
width: 70,
|
width: 70
|
||||||
hide: ({ checkList }) => !checkList.includes("序号列")
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "角色编号",
|
label: "角色编号",
|
||||||
|
@ -85,13 +85,13 @@ const {
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<PureTableBar title="角色列表" @refresh="onSearch">
|
<PureTableBar title="角色列表" :columns="columns" @refresh="onSearch">
|
||||||
<template #buttons>
|
<template #buttons>
|
||||||
<el-button type="primary" :icon="useRenderIcon(AddFill)">
|
<el-button type="primary" :icon="useRenderIcon(AddFill)">
|
||||||
新增角色
|
新增角色
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot="{ size, checkList }">
|
<template v-slot="{ size, dynamicColumns }">
|
||||||
<pure-table
|
<pure-table
|
||||||
border
|
border
|
||||||
align-whole="center"
|
align-whole="center"
|
||||||
@ -100,8 +100,7 @@ const {
|
|||||||
:loading="loading"
|
:loading="loading"
|
||||||
:size="size"
|
:size="size"
|
||||||
:data="dataList"
|
:data="dataList"
|
||||||
:columns="columns"
|
:columns="dynamicColumns"
|
||||||
:checkList="checkList"
|
|
||||||
:pagination="pagination"
|
:pagination="pagination"
|
||||||
:paginationSmall="size === 'small' ? true : false"
|
:paginationSmall="size === 'small' ? true : false"
|
||||||
:header-cell-style="{
|
:header-cell-style="{
|
||||||
|
@ -21,17 +21,10 @@ export function useUser() {
|
|||||||
background: true
|
background: true
|
||||||
});
|
});
|
||||||
const columns: TableColumnList = [
|
const columns: TableColumnList = [
|
||||||
{
|
|
||||||
type: "selection",
|
|
||||||
width: 55,
|
|
||||||
align: "left",
|
|
||||||
hide: ({ checkList }) => !checkList.includes("勾选列")
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "序号",
|
label: "序号",
|
||||||
type: "index",
|
type: "index",
|
||||||
width: 70,
|
width: 70
|
||||||
hide: ({ checkList }) => !checkList.includes("序号列")
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "用户编号",
|
label: "用户编号",
|
||||||
|
@ -88,13 +88,13 @@ const {
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<PureTableBar title="用户管理" @refresh="onSearch">
|
<PureTableBar title="用户管理" :columns="columns" @refresh="onSearch">
|
||||||
<template #buttons>
|
<template #buttons>
|
||||||
<el-button type="primary" :icon="useRenderIcon(AddFill)">
|
<el-button type="primary" :icon="useRenderIcon(AddFill)">
|
||||||
新增用户
|
新增用户
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot="{ size, checkList }">
|
<template v-slot="{ size, dynamicColumns }">
|
||||||
<pure-table
|
<pure-table
|
||||||
border
|
border
|
||||||
align-whole="center"
|
align-whole="center"
|
||||||
@ -102,8 +102,7 @@ const {
|
|||||||
:loading="loading"
|
:loading="loading"
|
||||||
:size="size"
|
:size="size"
|
||||||
:data="dataList"
|
:data="dataList"
|
||||||
:columns="columns"
|
:columns="dynamicColumns"
|
||||||
:checkList="checkList"
|
|
||||||
:pagination="pagination"
|
:pagination="pagination"
|
||||||
:paginationSmall="size === 'small' ? true : false"
|
:paginationSmall="size === 'small' ? true : false"
|
||||||
:header-cell-style="{
|
:header-cell-style="{
|
||||||
|
@ -10,10 +10,8 @@ module.exports = {
|
|||||||
colors: {
|
colors: {
|
||||||
bg_color: "var(--el-bg-color)",
|
bg_color: "var(--el-bg-color)",
|
||||||
primary: "var(--el-color-primary)",
|
primary: "var(--el-color-primary)",
|
||||||
primary_light_9: "var(--el-color-primary-light-9)",
|
|
||||||
text_color_primary: "var(--el-text-color-primary)",
|
text_color_primary: "var(--el-text-color-primary)",
|
||||||
text_color_regular: "var(--el-text-color-regular)",
|
text_color_regular: "var(--el-text-color-regular)"
|
||||||
text_color_disabled: "var(--el-text-color-disabled)"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user