Merge branch 'dev' of gitee.com:yudaocode/yudao-ui-admin-vue3 into dev

Signed-off-by: puhui999 <puhui999@163.com>
This commit is contained in:
puhui999 2023-03-30 15:45:30 +00:00 committed by Gitee
commit 60daa54d3b
3 changed files with 230 additions and 232 deletions

View File

@ -52,13 +52,16 @@ declare module '@vue/runtime-core' {
ElForm: typeof import('element-plus/es')['ElForm'] ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon'] ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage']
ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElLink: typeof import('element-plus/es')['ElLink'] ElLink: typeof import('element-plus/es')['ElLink']
ElOption: typeof import('element-plus/es')['ElOption'] ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination'] ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover'] ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow'] ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
@ -69,6 +72,9 @@ declare module '@vue/runtime-core' {
ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs'] ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
ElTimeline: typeof import('element-plus/es')['ElTimeline']
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
ElUpload: typeof import('element-plus/es')['ElUpload'] ElUpload: typeof import('element-plus/es')['ElUpload']

View File

@ -69,7 +69,6 @@ import * as TenantPackageApi from '@/api/system/tenantPackage'
import * as MenuApi from '@/api/system/menu' import * as MenuApi from '@/api/system/menu'
import { ElTree } from 'element-plus' import { ElTree } from 'element-plus'
import { handleTree } from '@/utils/tree' import { handleTree } from '@/utils/tree'
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
@ -92,7 +91,7 @@ const formRules = reactive({
const formRef = ref() // Ref const formRef = ref() // Ref
const menuOptions = ref<any[]>([]) // const menuOptions = ref<any[]>([]) //
const menuExpand = ref(false) // / const menuExpand = ref(false) // /
const treeRef = ref<InstanceType<typeof ElTree>>() // Ref const treeRef = ref<InstanceType<typeof ElTree>>() // Ref
const treeNodeAll = ref(false) // / const treeNodeAll = ref(false) // /
/** 打开弹窗 */ /** 打开弹窗 */
@ -133,8 +132,8 @@ const submitForm = async () => {
try { try {
const data = formData.value as unknown as TenantPackageApi.TenantPackageVO const data = formData.value as unknown as TenantPackageApi.TenantPackageVO
data.menuIds = [ data.menuIds = [
...(treeRef.value!.getCheckedKeys(false) as unknown as Array<number>), // ...(treeRef.value.getCheckedKeys(false) as unknown as Array<number>), //
...(treeRef.value!.getHalfCheckedKeys() as unknown as Array<number>) // ...(treeRef.value.getHalfCheckedKeys() as unknown as Array<number>) //
] ]
if (formType.value === 'create') { if (formType.value === 'create') {
await TenantPackageApi.createTenantPackage(data) await TenantPackageApi.createTenantPackage(data)
@ -168,17 +167,19 @@ const resetForm = () => {
formRef.value?.resetFields() formRef.value?.resetFields()
} }
// / /** 全选/全不选 */
const handleCheckedTreeNodeAll = () => { const handleCheckedTreeNodeAll = () => {
treeRef.value!.setCheckedNodes(treeNodeAll.value ? menuOptions.value : []) treeRef.value.setCheckedNodes(treeNodeAll.value ? menuOptions.value : [])
} }
// /TODO:for /** 展开/折叠全部 */
const handleCheckedTreeExpand = () => { const handleCheckedTreeExpand = () => {
const nodes = treeRef.value?.store.nodesMap const nodes = treeRef.value?.store.nodesMap
for (let node in nodes) { for (let node in nodes) {
if (nodes[node].expanded === menuExpand.value) continue if (nodes[node].expanded === menuExpand.value) {
nodes[node].expanded = !nodes[node].expanded continue
}
nodes[node].expanded = menuExpand.value
} }
} }
</script> </script>

View File

@ -1,14 +1,15 @@
<template> <template>
<div class="app-container">
<content-wrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-row :gutter="20"> <el-row :gutter="20">
<!--部门数据--> <!--部门数据-->
<el-col :span="4" :xs="24"> <el-col :span="4" :xs="24">
<content-wrap class="h-1/1">
<UserDeptTree @node-click="handleDeptNodeClick" /> <UserDeptTree @node-click="handleDeptNodeClick" />
</content-wrap>
</el-col> </el-col>
<!--用户数据--> <!--用户数据-->
<el-col :span="20" :xs="24"> <el-col :span="20" :xs="24">
<content-wrap>
<el-form <el-form
:model="queryParams" :model="queryParams"
ref="queryFormRef" ref="queryFormRef"
@ -43,9 +44,9 @@
> >
<el-option <el-option
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)" v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value as number" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value as number" :value="dict.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -61,44 +62,32 @@
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery" <el-button type="primary" @click="handleQuery"><Icon icon="ep:search" />搜索</el-button>
><Icon icon="ep:search" />搜索</el-button
>
<el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button> <el-button @click="resetQuery"><Icon icon="ep:refresh" />重置</el-button>
</el-form-item> <el-button type="primary" plain @click="handleAdd" v-hasPermi="['system:user:create']">
</el-form> <Icon icon="ep:plus" /> 新增
</el-button>
<el-row :gutter="10" class="mb-8px">
<el-col :span="1.5">
<el-button
type="primary"
plain
size="small"
@click="handleAdd"
v-hasPermi="['system:user:create']"
><Icon icon="ep:plus" />新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button <el-button
type="info" type="info"
size="small" size="small"
@click="handleImport" @click="handleImport"
v-hasPermi="['system:user:import']" v-hasPermi="['system:user:import']"
><Icon icon="ep:upload" />导入</el-button
> >
</el-col> <Icon icon="ep:upload" /> 导入
<el-col :span="1.5"> </el-button>
<el-button <el-button
type="warning" type="warning"
size="small" size="small"
@click="handleExport" @click="handleExport"
:loading="exportLoading" :loading="exportLoading"
v-hasPermi="['system:user:export']" v-hasPermi="['system:user:export']"
><Icon icon="ep:download" />导出</el-button
> >
</el-col> <Icon icon="ep:download" />导出
</el-row> </el-button>
</el-form-item>
</el-form>
</content-wrap>
<content-wrap>
<el-table v-loading="loading" :data="userList"> <el-table v-loading="loading" :data="userList">
<el-table-column <el-table-column
label="用户编号" label="用户编号"
@ -216,16 +205,16 @@
v-model:limit="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
</content-wrap>
</el-col> </el-col>
</el-row> </el-row>
</content-wrap>
<!-- 添加或修改用户对话框 --> <!-- 添加或修改用户对话框 -->
<UserForm ref="userFormRef" @success="getList" /> <UserForm ref="userFormRef" @success="getList" />
<!-- 用户导入对话框 --> <!-- 用户导入对话框 -->
<UserImportForm ref="userImportFormRef" @success="getList" /> <UserImportForm ref="userImportFormRef" @success="getList" />
<!-- 分配角色 --> <!-- 分配角色 -->
<UserAssignRoleForm ref="userAssignRoleFormRef" @success="getList" /> <UserAssignRoleForm ref="userAssignRoleFormRef" @success="getList" />
</div>
</template> </template>
<script setup lang="ts" name="User"> <script setup lang="ts" name="User">
@ -280,7 +269,8 @@ const columns = ref([
{ key: 5, label: `状态`, visible: true }, { key: 5, label: `状态`, visible: true },
{ key: 6, label: `创建时间`, visible: true } { key: 6, label: `创建时间`, visible: true }
]) ])
/* 查询列表 */
/** 查询列表 */
const getList = () => { const getList = () => {
loading.value = true loading.value = true
getUserPageApi(queryParams).then((response) => { getUserPageApi(queryParams).then((response) => {
@ -289,6 +279,7 @@ const getList = () => {
loading.value = false loading.value = false
}) })
} }
/** 搜索按钮操作 */ /** 搜索按钮操作 */
const handleQuery = () => { const handleQuery = () => {
queryParams.pageNo = 1 queryParams.pageNo = 1