diff --git a/src/api/v1/power.ts b/src/api/v1/power.ts new file mode 100644 index 0000000..c9dfd91 --- /dev/null +++ b/src/api/v1/power.ts @@ -0,0 +1,30 @@ +import { http } from '@/api/service/request'; +import type { BaseResult, ResultTable } from '@/api/service/types'; + +/** + * 权限---获取权限列表 + */ +export const fetchGetPowerList = (data: any) => { + return http.request>('get', `power/getPowerList/${data.currentPage}/${data.pageSize}`, { params: data }); +}; + +/** + * 权限---添加权限 + */ +export const fetchAddPower = (data: any) => { + return http.request>('post', 'power/addPower', { data }); +}; + +/** + * 权限---更新权限 + */ +export const fetchUpdatePower = (data: any) => { + return http.request>('put', 'power/updatePower', { data }); +}; + +/** + * 权限---删除权限 + */ +export const fetchDeletePower = (data: any) => { + return http.request>('delete', 'power/deletePower', { data }); +}; diff --git a/src/layout/components/lay-footer/index.vue b/src/layout/components/lay-footer/index.vue index 7763134..877e323 100644 --- a/src/layout/components/lay-footer/index.vue +++ b/src/layout/components/lay-footer/index.vue @@ -1,31 +1,23 @@ diff --git a/src/layout/components/lay-navbar/index.vue b/src/layout/components/lay-navbar/index.vue index 760a010..8b2761c 100644 --- a/src/layout/components/lay-navbar/index.vue +++ b/src/layout/components/lay-navbar/index.vue @@ -1,191 +1,150 @@ diff --git a/src/layout/components/lay-sidebar/components/SidebarFullScreen.vue b/src/layout/components/lay-sidebar/components/SidebarFullScreen.vue index 4d38bd0..ee21128 100644 --- a/src/layout/components/lay-sidebar/components/SidebarFullScreen.vue +++ b/src/layout/components/lay-sidebar/components/SidebarFullScreen.vue @@ -1,30 +1,25 @@ - diff --git a/src/store/system/power.ts b/src/store/system/power.ts new file mode 100644 index 0000000..dd6bb59 --- /dev/null +++ b/src/store/system/power.ts @@ -0,0 +1,81 @@ +import { defineStore } from 'pinia'; +import { fetchAddPower, fetchDeletePower, fetchGetPowerList, fetchUpdatePower } from '@/api/v1/power'; +import { pageSizes } from '@/enums/baseConstant'; +import { storeMessage } from '@/utils/message'; +import { storePagination } from '@/store/useStorePagination'; + +/** + * 权限 Store + */ +export const usePowerStore = defineStore('powerStore', { + state() { + return { + // 权限列表 + datalist: [], + // 查询表单 + form: { + // 父级id + parentId: undefined, + // 权限编码 + powerCode: undefined, + // 权限名称 + powerName: undefined, + // 请求路径 + requestUrl: undefined, + }, + // 分页查询结果 + pagination: { + currentPage: 1, + pageSize: 150, + total: 100, + pageSizes, + }, + // 加载 + loading: false, + }; + }, + getters: {}, + actions: { + /** + * * 获取权限 + */ + async getPowerList() { + // 整理请求参数 + const data = { ...this.pagination, ...this.form }; + delete data.pageSizes; + delete data.total; + delete data.background; + + // 获取权限列表 + const result = await fetchGetPowerList(data); + + // 公共页面函数hook + const pagination = storePagination.bind(this); + return pagination(result); + }, + + /** + * * 添加权限 + */ + async addPower(data: any) { + const result = await fetchAddPower(data); + return storeMessage(result); + }, + + /** + * * 修改权限 + */ + async updatePower(data: any) { + const result = await fetchUpdatePower(data); + return storeMessage(result); + }, + + /** + * * 删除权限 + */ + async deletePower(data: any) { + const result = await fetchDeletePower(data); + return storeMessage(result); + }, + }, +}); diff --git a/src/views/i18n/i18n-setting/utils/columns.tsx b/src/views/i18n/i18n-setting/utils/columns.tsx index 7c6ea02..91e9ac1 100644 --- a/src/views/i18n/i18n-setting/utils/columns.tsx +++ b/src/views/i18n/i18n-setting/utils/columns.tsx @@ -12,8 +12,8 @@ export const columns: TableColumnList = [ { label: $t('i18n.typeName'), prop: 'typeName' }, { label: $t('table.updateTime'), prop: 'updateTime', sortable: true }, { label: $t('table.createTime'), prop: 'createTime', sortable: true }, - { label: $t('table.createUser'), prop: 'createUser', slot: 'createUser' }, - { label: $t('table.updateUser'), prop: 'updateUser', slot: 'updateUser' }, + { label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', width: 90 }, + { label: $t('table.updateUser'), prop: 'updateUser', slot: 'updateUser', width: 90 }, { label: $t('table.operation'), fixed: 'right', width: 210, slot: 'operation' }, ]; diff --git a/src/views/i18n/i18n-setting/utils/hooks.tsx b/src/views/i18n/i18n-setting/utils/hooks.tsx index bed17a2..cc114c1 100644 --- a/src/views/i18n/i18n-setting/utils/hooks.tsx +++ b/src/views/i18n/i18n-setting/utils/hooks.tsx @@ -1,7 +1,6 @@ import { h, ref } from 'vue'; import { userI18nStore } from '@/store/i18n/i18n'; import { addDialog, closeDialog } from '@/components/BaseDialog/index'; -import { deviceDetection } from '@pureadmin/utils'; import I18nDialog from '@/views/i18n/i18n-setting/i18n-dialog.vue'; import type { FormProps } from '@/views/i18n/i18n-setting/utils/types'; import { $t } from '@/plugins/i18n'; @@ -30,7 +29,6 @@ export const onAdd = () => { width: '30%', props: { formInline: { keyName: '', translation: '', typeName: '' } }, draggable: true, - fullscreen: deviceDetection(), fullscreenIcon: true, closeOnClickModal: false, contentRenderer: () => h(I18nDialog, { ref: formRef }), @@ -90,7 +88,6 @@ export const onUpdate = (row: any) => { width: '30%', props: { formInline: { keyName: row.keyName, translation: row.translation, typeName: row.typeName } }, draggable: true, - fullscreen: deviceDetection(), fullscreenIcon: true, closeOnClickModal: false, contentRenderer: () => h(I18nDialog, { ref: formRef }), diff --git a/src/views/i18n/i18n-type-setting/utils/columns.tsx b/src/views/i18n/i18n-type-setting/utils/columns.tsx index 0d04623..46611e8 100644 --- a/src/views/i18n/i18n-type-setting/utils/columns.tsx +++ b/src/views/i18n/i18n-type-setting/utils/columns.tsx @@ -10,8 +10,8 @@ export const columns: TableColumnList = [ { label: $t('isDefault'), prop: 'isDefault', slot: 'isDefault' }, { label: $t('table.updateTime'), prop: 'updateTime' }, { label: $t('table.createTime'), prop: 'createTime' }, - { label: $t('table.createUser'), prop: 'createUser', slot: 'createUser' }, - { label: $t('table.updateUser'), prop: 'updateUser', slot: 'updateUser' }, + { label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', width: 90 }, + { label: $t('table.updateUser'), prop: 'updateUser', slot: 'updateUser', width: 90 }, { label: $t('table.operation'), fixed: 'right', width: 210, slot: 'operation' }, ]; diff --git a/src/views/i18n/i18n-type-setting/utils/hooks.tsx b/src/views/i18n/i18n-type-setting/utils/hooks.tsx index 640fed7..96435d9 100644 --- a/src/views/i18n/i18n-type-setting/utils/hooks.tsx +++ b/src/views/i18n/i18n-type-setting/utils/hooks.tsx @@ -1,4 +1,3 @@ -import { deviceDetection } from '@pureadmin/utils'; import { addDialog } from '@/components/BaseDialog/index'; import AddI18nType from '@/views/i18n/i18n-type-setting/i18n-type-dialog.vue'; import { userI18nTypeStore } from '@/store/i18n/i18nType'; @@ -29,7 +28,6 @@ export function onAdd() { formInline: { typeName: '', summary: '', isDefault: false }, }, draggable: true, - fullscreen: deviceDetection(), fullscreenIcon: true, closeOnClickModal: false, contentRenderer: () => h(AddI18nType, { ref: formRef }), @@ -57,7 +55,6 @@ export function onUpdate(row: any) { width: '30%', props: { formInline: { typeName: row.typeName, summary: row.summary, isDefault: row.isDefault } }, draggable: true, - fullscreen: deviceDetection(), fullscreenIcon: true, closeOnClickModal: false, contentRenderer: () => h(AddI18nType, { ref: formRef }), diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index ae83565..f4589a6 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -12,6 +12,7 @@ import PureTable from '@pureadmin/table'; import { columns } from '@/views/system/menu/utils/columns'; import { userRouterStore } from '@/store/system/router'; import { useRenderIcon } from '@/components/CommonIcon/src/hooks'; +import { selectUserinfo } from '@/components/Table/Userinfo/columns'; const formRef = ref(); const tableRef = ref(); @@ -97,6 +98,14 @@ onMounted(() => { /> + + + +