diff --git a/src/components/custom/dept-tree.vue b/src/components/custom/dept-tree.vue
index 279e01ff..25ef2e89 100644
--- a/src/components/custom/dept-tree.vue
+++ b/src/components/custom/dept-tree.vue
@@ -1,5 +1,5 @@
@@ -177,10 +171,9 @@ async function handleExport() {
:loading="loading"
:show-add="hasAuth('system:notice:add')"
:show-delete="hasAuth('system:notice:remove')"
- :show-export="hasAuth('system:notice:export')"
+ :show-export="false"
@add="handleAdd"
@delete="handleBatchDelete"
- @export="handleExport"
@refresh="getData"
/>
diff --git a/src/views/system/tenant-package/modules/tenant-package-operate-drawer.vue b/src/views/system/tenant-package/modules/tenant-package-operate-drawer.vue
index 4cdf5432..5d911b8b 100644
--- a/src/views/system/tenant-package/modules/tenant-package-operate-drawer.vue
+++ b/src/views/system/tenant-package/modules/tenant-package-operate-drawer.vue
@@ -56,14 +56,15 @@ function createDefaultModel(): Model {
packageName: '',
menuIds: [],
remark: '',
- menuCheckStrictly: null
+ menuCheckStrictly: true
};
}
-type RuleKey = Extract;
+type RuleKey = Extract;
const rules: Record = {
- packageId: createRequiredRule('租户套餐id不能为空')
+ packageId: createRequiredRule('租户套餐id不能为空'),
+ packageName: createRequiredRule('租户套餐名称不能为空')
};
async function handleUpdateModelWhenEdit() {
@@ -78,7 +79,7 @@ async function handleUpdateModelWhenEdit() {
if (props.operateType === 'edit' && props.rowData) {
startMenuLoading();
- Object.assign(model, props.rowData);
+ Object.assign(model, { ...props.rowData, menuIds: [] });
const { data, error } = await fetchGetTenantPackageMenuTreeSelect(model.packageId!);
if (error) return;
model.menuIds = data.checkedKeys;
@@ -94,15 +95,14 @@ function closeDrawer() {
async function handleSubmit() {
await validate();
+ const { packageId, packageName, menuIds, remark, menuCheckStrictly } = model;
// request
if (props.operateType === 'add') {
- const { packageName, menuIds, remark, menuCheckStrictly } = model;
const { error } = await fetchCreateTenantPackage({ packageName, menuIds, remark, menuCheckStrictly });
if (error) return;
}
if (props.operateType === 'edit') {
- const { packageId, packageName, menuIds, remark, menuCheckStrictly } = model;
const { error } = await fetchUpdateTenantPackage({
packageId,
packageName,
@@ -144,7 +144,7 @@ watch(visible, () => {
/>
-
+
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 835f885e..33465c0a 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -7,6 +7,7 @@ import { useAppStore } from '@/store/modules/app';
import { useTable, useTableOperate } from '@/hooks/common/table';
import { useDict } from '@/hooks/business/dict';
import { useAuth } from '@/hooks/business/auth';
+import { useDownload } from '@/hooks/business/download';
import ButtonIcon from '@/components/custom/button-icon.vue';
import { $t } from '@/locales';
import StatusSwitch from '@/components/custom/status-switch.vue';
@@ -22,6 +23,7 @@ useDict('sys_user_sex');
const { hasAuth } = useAuth();
const appStore = useAppStore();
+const { download } = useDownload();
const { bool: importVisible, setTrue: openImportModal } = useBoolean();
@@ -236,6 +238,10 @@ async function handleStatusChange(
getData();
}
}
+
+function handleExport() {
+ download('/system/user/export', searchParams, `用户列表_${new Date().getTime()}.xlsx`);
+}
@@ -283,6 +289,7 @@ async function handleStatusChange(
:show-export="hasAuth('system:user:export')"
@add="handleAdd"
@delete="handleBatchDelete"
+ @export="handleExport"
@refresh="getData"
>