mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-10-09 01:50:23 +08:00
优化接口层级及权限
This commit is contained in:
@@ -26,8 +26,8 @@
|
|||||||
</span>
|
</span>
|
||||||
<el-dropdown
|
<el-dropdown
|
||||||
v-perms="[
|
v-perms="[
|
||||||
'common:album:cateRename',
|
'admin:common:album:cateRename',
|
||||||
'common:album:cateDel'
|
'admin:common:album:cateDel'
|
||||||
]"
|
]"
|
||||||
v-if="data.id > 0"
|
v-if="data.id > 0"
|
||||||
:hide-on-click="false"
|
:hide-on-click="false"
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<popover-input
|
<popover-input
|
||||||
v-perms="['common:album:cateRename']"
|
v-perms="['admin:common:album:cateRename']"
|
||||||
@confirm="handleEditCate($event, data.id)"
|
@confirm="handleEditCate($event, data.id)"
|
||||||
size="default"
|
size="default"
|
||||||
:value="data.name"
|
:value="data.name"
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</popover-input>
|
</popover-input>
|
||||||
<div
|
<div
|
||||||
v-perms="['common:album:cateDel']"
|
v-perms="['admin:common:album:cateDel']"
|
||||||
@click="handleDeleteCate(data.id)"
|
@click="handleDeleteCate(data.id)"
|
||||||
>
|
>
|
||||||
<el-dropdown-item>删除分组</el-dropdown-item>
|
<el-dropdown-item>删除分组</el-dropdown-item>
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
|
|
||||||
<div class="flex justify-center p-2 border-t border-br">
|
<div class="flex justify-center p-2 border-t border-br">
|
||||||
<popover-input
|
<popover-input
|
||||||
v-perms="['common:album:cateAdd']"
|
v-perms="['admin:common:album:cateAdd']"
|
||||||
@confirm="handleAddCate"
|
@confirm="handleAddCate"
|
||||||
size="default"
|
size="default"
|
||||||
width="400px"
|
width="400px"
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
<div class="flex-1 flex">
|
<div class="flex-1 flex">
|
||||||
<upload
|
<upload
|
||||||
v-if="type == 'image'"
|
v-if="type == 'image'"
|
||||||
v-perms="['common:upload:image']"
|
v-perms="['admin:common:upload:image']"
|
||||||
class="mr-3"
|
class="mr-3"
|
||||||
:data="{ cid: cateId }"
|
:data="{ cid: cateId }"
|
||||||
:type="type"
|
:type="type"
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
</upload>
|
</upload>
|
||||||
<upload
|
<upload
|
||||||
v-if="type == 'video'"
|
v-if="type == 'video'"
|
||||||
v-perms="['common:upload:video']"
|
v-perms="['admin:common:upload:video']"
|
||||||
class="mr-3"
|
class="mr-3"
|
||||||
:data="{ cid: cateId }"
|
:data="{ cid: cateId }"
|
||||||
:type="type"
|
:type="type"
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
<el-button type="primary">本地上传</el-button>
|
<el-button type="primary">本地上传</el-button>
|
||||||
</upload>
|
</upload>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['common:album:albumDel']"
|
v-perms="['admin:common:album:albumDel']"
|
||||||
v-if="mode == 'page'"
|
v-if="mode == 'page'"
|
||||||
:disabled="!select.length"
|
:disabled="!select.length"
|
||||||
@click.stop="batchFileDelete()"
|
@click.stop="batchFileDelete()"
|
||||||
@@ -116,7 +116,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<popup
|
<popup
|
||||||
v-perms="['common:album:albumMove']"
|
v-perms="['admin:common:album:albumMove']"
|
||||||
v-if="mode == 'page'"
|
v-if="mode == 'page'"
|
||||||
class="ml-3"
|
class="ml-3"
|
||||||
@confirm="batchFileMove"
|
@confirm="batchFileMove"
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
<overflow-tooltip class="mt-1" :content="item.name" />
|
<overflow-tooltip class="mt-1" :content="item.name" />
|
||||||
<div class="operation-btns flex items-center">
|
<div class="operation-btns flex items-center">
|
||||||
<popover-input
|
<popover-input
|
||||||
v-perms="['common:album:albumRename']"
|
v-perms="['admin:common:album:albumRename']"
|
||||||
@confirm="handleFileRename($event, item.id)"
|
@confirm="handleFileRename($event, item.id)"
|
||||||
size="default"
|
size="default"
|
||||||
:value="item.name"
|
:value="item.name"
|
||||||
@@ -264,7 +264,7 @@
|
|||||||
<el-table-column prop="createTime" label="上传时间" min-width="100" />
|
<el-table-column prop="createTime" label="上传时间" min-width="100" />
|
||||||
<el-table-column label="操作" width="150" fixed="right">
|
<el-table-column label="操作" width="150" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div class="inline-block" v-perms="['common:album:albumRename']">
|
<div class="inline-block" v-perms="['admin:common:album:albumRename']">
|
||||||
<popover-input
|
<popover-input
|
||||||
@confirm="handleFileRename($event, row.id)"
|
@confirm="handleFileRename($event, row.id)"
|
||||||
size="default"
|
size="default"
|
||||||
@@ -282,7 +282,7 @@
|
|||||||
查看
|
查看
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="inline-block" v-perms="['common:album:albumDel']">
|
<div class="inline-block" v-perms="['admin:common:album:albumDel']">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@@ -316,14 +316,14 @@
|
|||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
</span>
|
</span>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['common:album:albumDel']"
|
v-perms="['admin:common:album:albumDel']"
|
||||||
:disabled="!select.length"
|
:disabled="!select.length"
|
||||||
@click="batchFileDelete()"
|
@click="batchFileDelete()"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
<popup
|
<popup
|
||||||
v-perms="['common:album:albumMove']"
|
v-perms="['admin:common:album:albumMove']"
|
||||||
class="ml-3 inline"
|
class="ml-3 inline"
|
||||||
@confirm="batchFileMove"
|
@confirm="batchFileMove"
|
||||||
:disabled="!select.length"
|
:disabled="!select.length"
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* perm 操作权限处理
|
* perm 操作权限处理
|
||||||
* 指令用法:
|
* 指令用法:
|
||||||
* <el-button v-perms="['auth.menu/edit']">编辑</el-button>
|
* <el-button v-perms="['admin:auth.menu/edit']">编辑</el-button>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* perm 操作权限处理
|
* perm 操作权限处理
|
||||||
* 指令用法:
|
* 指令用法:
|
||||||
* <el-button v-perms="['auth.menu/edit']">编辑</el-button>
|
* <el-button v-perms="['admin:auth.menu/edit']">编辑</el-button>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import useUserStore from '@/stores/modules/user'
|
import useUserStore from '@/stores/modules/user'
|
||||||
|
@@ -35,7 +35,7 @@ export function createRouteRecord(route: any, firstRoute: boolean): RouteRecordR
|
|||||||
hidden: !route.isShow,
|
hidden: !route.isShow,
|
||||||
keepAlive: !!route.isCache,
|
keepAlive: !!route.isCache,
|
||||||
title: route.menuName,
|
title: route.menuName,
|
||||||
perms: route.perms,
|
perms: route.perms, //逗号分隔的字符串
|
||||||
query: route.params,
|
query: route.params,
|
||||||
icon: route.menuIcon,
|
icon: route.menuIcon,
|
||||||
type: route.menuType,
|
type: route.menuType,
|
||||||
@@ -86,11 +86,11 @@ export function findFirstValidRoute(routes: RouteRecordRaw[]): string | undefine
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//通过权限字符查询路由路径
|
// //通过权限字符查询路由路径
|
||||||
export function getRoutePath(perms: string) {
|
// export function getRoutePath(perms: string) {
|
||||||
const routerObj = useRouter() || router
|
// const routerObj = useRouter() || router
|
||||||
return routerObj.getRoutes().find((item) => item.meta?.perms == perms)?.path || ''
|
// return routerObj.getRoutes().find((item) => item.meta?.perms.split(',').includes(perms))?.path || ''
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 重置路由
|
// 重置路由
|
||||||
export function resetRouter() {
|
export function resetRouter() {
|
||||||
|
@@ -68,7 +68,15 @@ const useUserStore = defineStore({
|
|||||||
getUserInfo()
|
getUserInfo()
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
this.userInfo = data.user
|
this.userInfo = data.user
|
||||||
this.perms = data.permissions
|
const permissions = []
|
||||||
|
data.permissions.forEach((item: any) => {
|
||||||
|
if (item) {
|
||||||
|
item.split(',').forEach((item: any) => {
|
||||||
|
permissions.push(item)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.perms = permissions
|
||||||
resolve(data)
|
resolve(data)
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button
|
||||||
class="mb-4"
|
class="mb-4"
|
||||||
v-perms="['article:cate:add']"
|
v-perms="['admin:article:cate:add']"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleAdd()"
|
@click="handleAdd()"
|
||||||
>
|
>
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<el-table-column label="状态" min-width="120">
|
<el-table-column label="状态" min-width="120">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-perms="['article:cate:change']"
|
v-perms="['admin:article:cate:change']"
|
||||||
v-model="row.isShow"
|
v-model="row.isShow"
|
||||||
:active-value="1"
|
:active-value="1"
|
||||||
:inactive-value="0"
|
:inactive-value="0"
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['article:cate:edit']"
|
v-perms="['admin:article:cate:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['article:cate:del']"
|
v-perms="['admin:article:cate:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -35,21 +35,6 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
|
||||||
<router-link
|
|
||||||
v-perms="['article:add', 'article:add/edit']"
|
|
||||||
:to="{
|
|
||||||
path: getRoutePath('article:add/edit')
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<el-button type="primary" class="mb-4">
|
|
||||||
<template #icon>
|
|
||||||
<icon name="el-icon-Plus" />
|
|
||||||
</template>
|
|
||||||
发布文章
|
|
||||||
</el-button>
|
|
||||||
</router-link>
|
|
||||||
</div>
|
|
||||||
<el-table size="large" v-loading="pager.loading" :data="pager.lists">
|
<el-table size="large" v-loading="pager.loading" :data="pager.lists">
|
||||||
<el-table-column label="ID" prop="id" min-width="80" />
|
<el-table-column label="ID" prop="id" min-width="80" />
|
||||||
<el-table-column label="封面" min-width="100">
|
<el-table-column label="封面" min-width="100">
|
||||||
@@ -77,7 +62,7 @@
|
|||||||
<el-table-column label="状态" min-width="100">
|
<el-table-column label="状态" min-width="100">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-perms="['article:cate:change']"
|
v-perms="['admin:article:cate:change']"
|
||||||
v-model="row.isShow"
|
v-model="row.isShow"
|
||||||
:active-value="1"
|
:active-value="1"
|
||||||
:inactive-value="0"
|
:inactive-value="0"
|
||||||
@@ -90,23 +75,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['article:edit', 'article:add/edit']"
|
v-perms="['admin:article:del']"
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
>
|
|
||||||
<router-link
|
|
||||||
:to="{
|
|
||||||
path: getRoutePath('article:add/edit'),
|
|
||||||
query: {
|
|
||||||
id: row.id
|
|
||||||
}
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
编辑
|
|
||||||
</router-link>
|
|
||||||
</el-button>
|
|
||||||
<el-button
|
|
||||||
v-perms="['article:del']"
|
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
@@ -126,7 +95,7 @@
|
|||||||
import { articleLists, articleDelete, articleStatus, articleCateAll } from '@/api/article'
|
import { articleLists, articleDelete, articleStatus, articleCateAll } from '@/api/article'
|
||||||
import { useDictOptions } from '@/hooks/useDictOptions'
|
import { useDictOptions } from '@/hooks/useDictOptions'
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { getRoutePath } from '@/router'
|
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
title: '',
|
title: '',
|
||||||
|
@@ -16,19 +16,18 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['article_collect:add']" type="primary" @click="handleAdd()">
|
<el-button
|
||||||
|
v-perms="['admin:article_collect:add']"
|
||||||
|
type="primary"
|
||||||
|
@click="handleAdd()"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table class="mt-4" size="large" v-loading="pager.loading" :data="pager.lists">
|
||||||
class="mt-4"
|
|
||||||
size="large"
|
|
||||||
v-loading="pager.loading"
|
|
||||||
:data="pager.lists"
|
|
||||||
>
|
|
||||||
<el-table-column label="用户ID" prop="userId" min-width="100" />
|
<el-table-column label="用户ID" prop="userId" min-width="100" />
|
||||||
<el-table-column label="文章ID" prop="articleId" min-width="100" />
|
<el-table-column label="文章ID" prop="articleId" min-width="100" />
|
||||||
<el-table-column label="创建时间" prop="createTime" min-width="100" />
|
<el-table-column label="创建时间" prop="createTime" min-width="100" />
|
||||||
@@ -36,7 +35,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['article_collect:edit']"
|
v-perms="['admin:article_collect:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -44,7 +43,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['article_collect:del']"
|
v-perms="['admin:article_collect:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
@@ -58,12 +57,7 @@
|
|||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<edit-popup
|
<edit-popup v-if="showEdit" ref="editRef" @success="getLists" @close="showEdit = false" />
|
||||||
v-if="showEdit"
|
|
||||||
ref="editRef"
|
|
||||||
@success="getLists"
|
|
||||||
@close="showEdit = false"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup name="article_collect">
|
<script lang="ts" setup name="article_collect">
|
||||||
@@ -75,7 +69,7 @@ const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
|||||||
const showEdit = ref(false)
|
const showEdit = ref(false)
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
userId: '',
|
userId: '',
|
||||||
articleId: '',
|
articleId: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
const { pager, getLists, resetPage, resetParams } = usePaging({
|
const { pager, getLists, resetPage, resetParams } = usePaging({
|
||||||
@@ -83,7 +77,6 @@ const { pager, getLists, resetPage, resetParams } = usePaging({
|
|||||||
params: queryParams
|
params: queryParams
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
const handleAdd = async () => {
|
const handleAdd = async () => {
|
||||||
showEdit.value = true
|
showEdit.value = true
|
||||||
await nextTick()
|
await nextTick()
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<footer-btns v-perms="['channel:h5:save']">
|
<footer-btns v-perms="['admin:channel:h5:save']">
|
||||||
<el-button type="primary" @click="handelSave">保存</el-button>
|
<el-button type="primary" @click="handelSave">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -135,7 +135,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-form>
|
</el-form>
|
||||||
<footer-btns v-perms="['channel:mp:save']">
|
<footer-btns v-perms="['admin:channel:mp:save']">
|
||||||
<el-button type="primary" @click="handelSave">保存</el-button>
|
<el-button type="primary" @click="handelSave">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-form>
|
</el-form>
|
||||||
<footer-btns v-perms="['channel:wx:save']">
|
<footer-btns v-perms="['admin:channel:wx:save']">
|
||||||
<el-button type="primary" @click="handelSave">保存</el-button>
|
<el-button type="primary" @click="handelSave">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -151,7 +151,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-form>
|
</el-form>
|
||||||
<footer-btns v-perms="['channel:h5:save']">
|
<footer-btns v-perms="['admin:channel:h5:save']">
|
||||||
<el-button type="primary" @click="handelSave">保存</el-button>
|
<el-button type="primary" @click="handelSave">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -29,10 +29,14 @@ getOaMenuFunc()
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<footer-btns>
|
<footer-btns>
|
||||||
<el-button type="primary" @click="handleSave" v-perms="['channel:oaMenu:save']">
|
<el-button type="primary" @click="handleSave" v-perms="['admin:channel:oaMenu:save']">
|
||||||
保存
|
保存
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" @click="handlePublish" v-perms="['channel:oaMenu:publish']">
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click="handlePublish"
|
||||||
|
v-perms="['admin:channel:oaMenu:publish']"
|
||||||
|
>
|
||||||
发布
|
发布
|
||||||
</el-button>
|
</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyDefault:add']"
|
v-perms="['admin:channel:oaReplyDefault:add']"
|
||||||
class="mb-4"
|
class="mb-4"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleAdd()"
|
@click="handleAdd()"
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<el-table-column label="状态" min-width="120">
|
<el-table-column label="状态" min-width="120">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-perms="['channel:oaReplyDefault:status']"
|
v-perms="['admin:channel:oaReplyDefault:status']"
|
||||||
v-model="row.status"
|
v-model="row.status"
|
||||||
:active-value="1"
|
:active-value="1"
|
||||||
:inactive-value="0"
|
:inactive-value="0"
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyDefault:edit']"
|
v-perms="['admin:channel:oaReplyDefault:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyDefault:del']"
|
v-perms="['admin:channel:oaReplyDefault:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyFollow:add']"
|
v-perms="['admin:channel:oaReplyFollow:add']"
|
||||||
class="mb-4"
|
class="mb-4"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleAdd()"
|
@click="handleAdd()"
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<el-table-column label="状态" min-width="120">
|
<el-table-column label="状态" min-width="120">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-perms="['channel:oaReplyFollow:status']"
|
v-perms="['admin:channel:oaReplyFollow:status']"
|
||||||
v-model="row.status"
|
v-model="row.status"
|
||||||
:active-value="1"
|
:active-value="1"
|
||||||
:inactive-value="0"
|
:inactive-value="0"
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyFollow:edit']"
|
v-perms="['admin:channel:oaReplyFollow:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyFollow:del']"
|
v-perms="['admin:channel:oaReplyFollow:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyKeyword:add']"
|
v-perms="['admin:channel:oaReplyKeyword:add']"
|
||||||
class="mb-4"
|
class="mb-4"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleAdd()"
|
@click="handleAdd()"
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<el-table-column label="状态" min-width="120">
|
<el-table-column label="状态" min-width="120">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-perms="['channel:oaReplyKeyword:status']"
|
v-perms="['admin:channel:oaReplyKeyword:status']"
|
||||||
v-model="row.status"
|
v-model="row.status"
|
||||||
:active-value="1"
|
:active-value="1"
|
||||||
:inactive-value="0"
|
:inactive-value="0"
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyKeyword:edit']"
|
v-perms="['admin:channel:oaReplyKeyword:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['channel:oaReplyKeyword:del']"
|
v-perms="['admin:channel:oaReplyKeyword:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
:limit="32"
|
:limit="32"
|
||||||
@confirm="handleEdit($event, 'username')"
|
@confirm="handleEdit($event, 'username')"
|
||||||
>
|
>
|
||||||
<el-button type="primary" link v-perms="['user:edit']">
|
<el-button type="primary" link v-perms="['admin:user:edit']">
|
||||||
<icon name="el-icon-EditPen" />
|
<icon name="el-icon-EditPen" />
|
||||||
</el-button>
|
</el-button>
|
||||||
</popover-input>
|
</popover-input>
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
:limit="32"
|
:limit="32"
|
||||||
@confirm="handleEdit($event, 'realName')"
|
@confirm="handleEdit($event, 'realName')"
|
||||||
>
|
>
|
||||||
<el-button type="primary" link v-perms="['user:edit']">
|
<el-button type="primary" link v-perms="['admin:user:edit']">
|
||||||
<icon name="el-icon-EditPen" />
|
<icon name="el-icon-EditPen" />
|
||||||
</el-button>
|
</el-button>
|
||||||
</popover-input>
|
</popover-input>
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
]"
|
]"
|
||||||
@confirm="handleEdit($event, 'sex')"
|
@confirm="handleEdit($event, 'sex')"
|
||||||
>
|
>
|
||||||
<el-button type="primary" link v-perms="['user:edit']">
|
<el-button type="primary" link v-perms="['admin:user:edit']">
|
||||||
<icon name="el-icon-EditPen" />
|
<icon name="el-icon-EditPen" />
|
||||||
</el-button>
|
</el-button>
|
||||||
</popover-input>
|
</popover-input>
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
type="number"
|
type="number"
|
||||||
@confirm="handleEdit($event, 'mobile')"
|
@confirm="handleEdit($event, 'mobile')"
|
||||||
>
|
>
|
||||||
<el-button type="primary" link v-perms="['user:edit']">
|
<el-button type="primary" link v-perms="['admin:user:edit']">
|
||||||
<icon name="el-icon-EditPen" />
|
<icon name="el-icon-EditPen" />
|
||||||
</el-button>
|
</el-button>
|
||||||
</popover-input>
|
</popover-input>
|
||||||
|
@@ -47,22 +47,6 @@
|
|||||||
<el-table-column label="性别" prop="sex" min-width="100" />
|
<el-table-column label="性别" prop="sex" min-width="100" />
|
||||||
<el-table-column label="注册来源" prop="channel" min-width="100" />
|
<el-table-column label="注册来源" prop="channel" min-width="100" />
|
||||||
<el-table-column label="注册时间" prop="createTime" min-width="120" />
|
<el-table-column label="注册时间" prop="createTime" min-width="120" />
|
||||||
<el-table-column label="操作" width="120" fixed="right">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-button v-perms="['user:detail']" type="primary" link>
|
|
||||||
<router-link
|
|
||||||
:to="{
|
|
||||||
path: getRoutePath('user:detail'),
|
|
||||||
query: {
|
|
||||||
id: row.id
|
|
||||||
}
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
详情
|
|
||||||
</router-link>
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
</el-table>
|
||||||
<div class="flex justify-end mt-4">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
@@ -72,7 +56,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup name="consumerLists">
|
<script lang="ts" setup name="consumerLists">
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { getRoutePath } from '@/router'
|
|
||||||
import { getUserList } from '@/api/consumer'
|
import { getUserList } from '@/api/consumer'
|
||||||
import { ClientMap } from '@/enums/appEnums'
|
import { ClientMap } from '@/enums/appEnums'
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<attr-setting class="flex-1" :widget="getSelectWidget" />
|
<attr-setting class="flex-1" :widget="getSelectWidget" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<footer-btns class="mt-4" :fixed="false" v-perms="['decorate:pages:save']">
|
<footer-btns class="mt-4" :fixed="false" v-perms="['admin:decorate:pages:save']">
|
||||||
<el-button type="primary" @click="setData">保存</el-button>
|
<el-button type="primary" @click="setData">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -127,7 +127,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<footer-btns class="mt-4" :fixed="false" v-perms="['decorate:tabbar:save']">
|
<footer-btns class="mt-4" :fixed="false" v-perms="['admin:decorate:tabbar:save']">
|
||||||
<el-button type="primary" @click="setData">保存</el-button>
|
<el-button type="primary" @click="setData">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
<el-card class="!border-none mt-4" shadow="never" v-loading="pager.loading">
|
<el-card class="!border-none mt-4" shadow="never" v-loading="pager.loading">
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<data-table
|
<data-table
|
||||||
v-perms="['gen:importTable']"
|
v-perms="['admin:gen:importTable']"
|
||||||
class="inline-block mr-[10px]"
|
class="inline-block mr-[10px]"
|
||||||
@success="getLists"
|
@success="getLists"
|
||||||
>
|
>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</data-table>
|
</data-table>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['gen:delTable']"
|
v-perms="['admin:gen:delTable']"
|
||||||
:disabled="!selectData.length"
|
:disabled="!selectData.length"
|
||||||
@click="handleDelete()"
|
@click="handleDelete()"
|
||||||
type="danger"
|
type="danger"
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['gen:genCode', 'gen:downloadCode']"
|
v-perms="['admin:gen:genCode', 'admin:gen:downloadCode']"
|
||||||
:disabled="!selectData.length"
|
:disabled="!selectData.length"
|
||||||
@click="handleGenerate(selectData)"
|
@click="handleGenerate(selectData)"
|
||||||
>
|
>
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['gen:previewCode']"
|
v-perms="['admin:gen:previewCode']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handlePreview(row.id)"
|
@click="handlePreview(row.id)"
|
||||||
@@ -80,10 +80,10 @@
|
|||||||
预览
|
预览
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button type="primary" link v-perms="['gen:editTable']">
|
<el-button type="primary" link v-perms="['admin:gen:editTable']">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
path: getRoutePath('gen:editTable'),
|
path: '/dev_tools/dev_tools/code/edit',
|
||||||
query: {
|
query: {
|
||||||
id: row.id
|
id: row.id
|
||||||
}
|
}
|
||||||
@@ -96,10 +96,10 @@
|
|||||||
class="ml-2"
|
class="ml-2"
|
||||||
@command="handleCommand($event, row)"
|
@command="handleCommand($event, row)"
|
||||||
v-perms="[
|
v-perms="[
|
||||||
'gen:genCode',
|
'admin:gen:genCode',
|
||||||
'gen:downloadCode',
|
'admin:gen:downloadCode',
|
||||||
'gen:syncTable',
|
'admin:gen:syncTable',
|
||||||
'gen:delTable'
|
'admin:gen:delTable'
|
||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
<el-button type="primary" link>
|
<el-button type="primary" link>
|
||||||
@@ -109,21 +109,26 @@
|
|||||||
|
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<div v-perms="['gen:genCode', 'gen:downloadCode']">
|
<div
|
||||||
|
v-perms="[
|
||||||
|
'admin:gen:genCode',
|
||||||
|
'admin:gen:downloadCode'
|
||||||
|
]"
|
||||||
|
>
|
||||||
<el-dropdown-item command="generate">
|
<el-dropdown-item command="generate">
|
||||||
<el-button type="primary" link>
|
<el-button type="primary" link>
|
||||||
生成代码
|
生成代码
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</div>
|
</div>
|
||||||
<div v-perms="['gen:syncTable']">
|
<div v-perms="['admin:gen:syncTable']">
|
||||||
<el-dropdown-item command="sync">
|
<el-dropdown-item command="sync">
|
||||||
<el-button type="primary" link>
|
<el-button type="primary" link>
|
||||||
同步
|
同步
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</div>
|
</div>
|
||||||
<div v-perms="['gen:delTable']">
|
<div v-perms="['admin:gen:delTable']">
|
||||||
<el-dropdown-item command="delete">
|
<el-dropdown-item command="delete">
|
||||||
<el-button type="danger" link> 删除 </el-button>
|
<el-button type="danger" link> 删除 </el-button>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
@@ -161,7 +166,6 @@ import DataTable from '../components/data-table.vue'
|
|||||||
import CodePreview from '../components/code-preview.vue'
|
import CodePreview from '../components/code-preview.vue'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import { streamFileDownload } from '@/utils/file'
|
import { streamFileDownload } from '@/utils/file'
|
||||||
import { getRoutePath } from '@/router'
|
|
||||||
|
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
tableName: '',
|
tableName: '',
|
||||||
|
@@ -67,7 +67,7 @@
|
|||||||
<el-table-column label="操作" width="180" fixed="right">
|
<el-table-column label="操作" width="180" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['flow_apply:edit']"
|
v-perms="['admin:flow:flow_apply:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="OpenViewForm(row)"
|
@click="OpenViewForm(row)"
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['flow_apply:del']"
|
v-perms="['admin:flow:flow_apply:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -47,7 +47,11 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['flow_apply:add']" type="primary" @click="handleAdd()">
|
<el-button
|
||||||
|
v-perms="['admin:flow:flow_apply:add']"
|
||||||
|
type="primary"
|
||||||
|
@click="handleAdd()"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -75,7 +79,7 @@
|
|||||||
<el-table-column label="操作" width="180" fixed="right">
|
<el-table-column label="操作" width="180" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['flow_apply:edit']"
|
v-perms="['admin:flow:flow_apply:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="OpenViewForm(row)"
|
@click="OpenViewForm(row)"
|
||||||
@@ -84,7 +88,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="row.status == 1 && row.formValue"
|
v-if="row.status == 1 && row.formValue"
|
||||||
v-perms="['flow_apply:edit']"
|
v-perms="['admin:flow:flow_apply:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="OpenApplySubmit(row)"
|
@click="OpenApplySubmit(row)"
|
||||||
@@ -93,7 +97,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
v-perms="['flow_apply:edit']"
|
v-perms="['admin:flow:flow_apply:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -101,7 +105,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button> -->
|
</el-button> -->
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['flow_apply:del']"
|
v-perms="['admin:flow:flow_apply:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
v-perms="['flow_history:edit']"
|
v-perms="['admin:flow_history:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleOpen(row)"
|
@click="handleOpen(row)"
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
审批
|
审批
|
||||||
</el-button> -->
|
</el-button> -->
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['flow_apply:edit']"
|
v-perms="['admin:flow:flow_apply:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="OpenViewForm(row)"
|
@click="OpenViewForm(row)"
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
{{ row.passStatus == 1 ? '审批' : '预览' }}
|
{{ row.passStatus == 1 ? '审批' : '预览' }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
v-perms="['flow_apply:edit']"
|
v-perms="['admin:flow:flow_apply:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="OpenApplySubmit(row)"
|
@click="OpenApplySubmit(row)"
|
||||||
|
@@ -33,23 +33,18 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
v-perms="['flow_history:edit']"
|
v-perms="['admin:flow_history:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleOpen(row)"
|
@click="handleOpen(row)"
|
||||||
>
|
>
|
||||||
审批
|
审批
|
||||||
</el-button> -->
|
</el-button> -->
|
||||||
<el-button
|
<el-button type="primary" link @click="OpenViewForm(row)">
|
||||||
v-perms="['flow_apply:edit']"
|
|
||||||
type="primary"
|
|
||||||
link
|
|
||||||
@click="OpenViewForm(row)"
|
|
||||||
>
|
|
||||||
{{ row.passStatus == 1 ? '审批' : '预览' }}
|
{{ row.passStatus == 1 ? '审批' : '预览' }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
v-perms="['flow_apply:edit']"
|
v-perms="['admin:flow:flow_apply:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="OpenApplySubmit(row)"
|
@click="OpenApplySubmit(row)"
|
||||||
|
@@ -19,7 +19,11 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['flow_template:add']" type="primary" @click="handleAdd()">
|
<el-button
|
||||||
|
v-perms="['admin:flow_template:add']"
|
||||||
|
type="primary"
|
||||||
|
@click="handleAdd()"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -39,7 +43,7 @@
|
|||||||
<el-table-column label="操作" fixed="right">
|
<el-table-column label="操作" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['flow_template:edit']"
|
v-perms="['admin:flow_template:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleConfig(row)"
|
@click="handleConfig(row)"
|
||||||
@@ -47,7 +51,7 @@
|
|||||||
配置
|
配置
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
v-perms="['flow_template:edit']"
|
v-perms="['admin:flow_template:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -55,7 +59,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button> -->
|
</el-button> -->
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['flow_template:del']"
|
v-perms="['admin:flow_template:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -27,30 +27,16 @@
|
|||||||
<el-tag type="danger" v-else>关闭</el-tag>
|
<el-tag type="danger" v-else>关闭</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" min-width="80" fixed="right">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-button v-perms="['setting:notice:detail']" type="primary" link>
|
|
||||||
<router-link
|
|
||||||
:to="{
|
|
||||||
path: getRoutePath('setting:notice:detail'),
|
|
||||||
query: {
|
|
||||||
id: row.id
|
|
||||||
}
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
设置
|
|
||||||
</router-link>
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup name="notice">
|
<script lang="ts" setup>
|
||||||
import { noticeLists } from '@/api/message'
|
import { noticeLists } from '@/api/message'
|
||||||
import { getRoutePath } from '@/router'
|
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
name: 'notice'
|
||||||
|
})
|
||||||
enum NoticeEnums {
|
enum NoticeEnums {
|
||||||
USER = 1,
|
USER = 1,
|
||||||
PLATFORM = 2
|
PLATFORM = 2
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
<el-table-column label="操作" min-width="120" fixed="right">
|
<el-table-column label="操作" min-width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['setting:storage:edit']"
|
v-perms="['admin:setting:storage:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleSet(row.alias)"
|
@click="handleSet(row.alias)"
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['system:dept:add']" type="primary" @click="handleAdd()">
|
<el-button v-perms="['admin:system:dept:add']" type="primary" @click="handleAdd()">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
<el-table-column label="操作" width="160" fixed="right">
|
<el-table-column label="操作" width="160" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:dept:add']"
|
v-perms="['admin:system:dept:add']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleAdd(row.id)"
|
@click="handleAdd(row.id)"
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:dept:edit']"
|
v-perms="['admin:system:dept:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="row.pid !== 0"
|
v-if="row.pid !== 0"
|
||||||
v-perms="['system:dept:del']"
|
v-perms="['admin:system:dept:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['system:post:add']" type="primary" @click="handleAdd()">
|
<el-button v-perms="['admin:system:post:add']" type="primary" @click="handleAdd()">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:post:edit']"
|
v-perms="['admin:system:post:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:post:del']"
|
v-perms="['admin:system:post:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card v-loading="pager.loading" class="mt-4 !border-none" shadow="never">
|
<el-card v-loading="pager.loading" class="mt-4 !border-none" shadow="never">
|
||||||
<el-button v-perms="['system:admin:add']" type="primary" @click="handleAdd">
|
<el-button v-perms="['admin:system:admin:add']" type="primary" @click="handleAdd">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
<el-table-column label="状态" min-width="100">
|
<el-table-column label="状态" min-width="100">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-perms="['system:admin:disable']"
|
v-perms="['admin:system:admin:disable']"
|
||||||
v-if="row.id != 1"
|
v-if="row.id != 1"
|
||||||
:model-value="row.isDisable"
|
:model-value="row.isDisable"
|
||||||
:active-value="0"
|
:active-value="0"
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:admin:edit']"
|
v-perms="['admin:system:admin:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="row.id != 1"
|
v-if="row.id != 1"
|
||||||
v-perms="['system:admin:del']"
|
v-perms="['admin:system:admin:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -91,26 +91,31 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="formData.menuType != MenuEnum.CATALOGUE"
|
v-if="formData.menuType != MenuEnum.CATALOGUE"
|
||||||
label="权限字符"
|
label="接口权限"
|
||||||
prop="perms"
|
prop="perms"
|
||||||
>
|
>
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<el-input v-model="formData.perms" placeholder="请输入权限字符" clearable />
|
<!-- {{ formData.permsArr }} -->
|
||||||
|
<!-- <el-input v-model="formData.perms" placeholder="请输入接口权限" clearable /> -->
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.perms"
|
v-model="formData.permsArr"
|
||||||
placeholder="请选择权限字符"
|
clearable
|
||||||
|
multiple
|
||||||
|
filterable
|
||||||
|
placeholder="请选择接口权限"
|
||||||
:style="{ width: '100%' }"
|
:style="{ width: '100%' }"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(item, index) in permissionOptions"
|
v-for="(item, index) in permissionOptions"
|
||||||
:key="index"
|
:key="index"
|
||||||
:label="item"
|
:label="item.label"
|
||||||
:value="item"
|
:value="item.value"
|
||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<div class="form-tips">
|
<div class="form-tips">
|
||||||
将作为server端API验权使用,请求路径`api/system/admin/list`权限为`system:admin:list`,请谨慎修改
|
<!-- 将作为server端API验权使用,请求路径`api/admin/system/admin/list`权限为`admin:system:admin:list` -->
|
||||||
|
可以多个,但建议一个接口一个按钮
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -232,6 +237,7 @@ const formData = reactive({
|
|||||||
paths: '',
|
paths: '',
|
||||||
//权限链接
|
//权限链接
|
||||||
perms: '',
|
perms: '',
|
||||||
|
permsArr: [],
|
||||||
//前端组件
|
//前端组件
|
||||||
component: '',
|
component: '',
|
||||||
//选中路径
|
//选中路径
|
||||||
@@ -288,12 +294,30 @@ const getMenu = async () => {
|
|||||||
}
|
}
|
||||||
function getApiListFn() {
|
function getApiListFn() {
|
||||||
getApiList().then((res: any) => {
|
getApiList().then((res: any) => {
|
||||||
permissionOptions.value = res
|
const arr = []
|
||||||
|
res.forEach((item: string) => {
|
||||||
|
if (item.indexOf('/api/admin/') == 0) {
|
||||||
|
const per = item.replace(/\/api\//, '').replace(/\//g, ':')
|
||||||
|
arr.push({
|
||||||
|
value: per,
|
||||||
|
label: item
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// console.log(pathsToTree(arr))
|
||||||
|
permissionOptions.value = arr.sort()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
await formRef.value?.validate()
|
await formRef.value?.validate()
|
||||||
mode.value == 'edit' ? await menuEdit(formData) : await menuAdd(formData)
|
const data = { ...formData }
|
||||||
|
if (data.permsArr) {
|
||||||
|
data.perms = data.permsArr.join(',')
|
||||||
|
} else {
|
||||||
|
data.perms = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
mode.value == 'edit' ? await menuEdit(data) : await menuAdd(data)
|
||||||
popupRef.value?.close()
|
popupRef.value?.close()
|
||||||
feedback.msgSuccess('操作成功')
|
feedback.msgSuccess('操作成功')
|
||||||
emit('success')
|
emit('success')
|
||||||
@@ -308,7 +332,11 @@ const setFormData = (data: Record<any, any>) => {
|
|||||||
for (const key in formData) {
|
for (const key in formData) {
|
||||||
if (data[key] != null && data[key] != undefined) {
|
if (data[key] != null && data[key] != undefined) {
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
formData[key] = data[key]
|
if (key == 'perms') {
|
||||||
|
formData['permsArr'] = data[key].split(',')
|
||||||
|
} else {
|
||||||
|
formData[key] = data[key]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
<div class="menu-lists">
|
<div class="menu-lists">
|
||||||
<el-card class="!border-none" shadow="never">
|
<el-card class="!border-none" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['system:menu:add']" type="primary" @click="handleAdd()">
|
<el-button v-perms="['admin:system:menu:add']" type="primary" @click="handleAdd()">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -39,19 +39,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column label="权限标识" prop="perms" min-width="180" />
|
||||||
label="权限标识"
|
|
||||||
prop="perms"
|
|
||||||
min-width="150"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/>
|
|
||||||
<el-table-column label="状态" prop="isDisable" min-width="100">
|
<el-table-column label="状态" prop="isDisable" min-width="100">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-tag v-if="row.isDisable == 0">正常</el-tag>
|
<el-tag v-if="row.isDisable == 0">正常</el-tag>
|
||||||
<el-tag v-else type="danger">停用</el-tag>
|
<el-tag v-else type="danger">停用</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="排序" prop="menuSort" min-width="100" />
|
<el-table-column label="排序" prop="menuSort" min-width="60" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="更新时间"
|
label="更新时间"
|
||||||
prop="updateTime"
|
prop="updateTime"
|
||||||
@@ -60,7 +55,7 @@
|
|||||||
<el-table-column label="操作" width="160" fixed="right">
|
<el-table-column label="操作" width="160" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:menu:add']"
|
v-perms="['admin:system:menu:add']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleAdd(row.id)"
|
@click="handleAdd(row.id)"
|
||||||
@@ -68,7 +63,7 @@
|
|||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:menu:edit']"
|
v-perms="['admin:system:menu:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -76,7 +71,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:menu:del']"
|
v-perms="['admin:system:menu:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
<div class="role-lists">
|
<div class="role-lists">
|
||||||
<el-card class="!border-none" shadow="never">
|
<el-card class="!border-none" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['system:role:add']" type="primary" @click="handleAdd">
|
<el-button v-perms="['admin:system:role:add']" type="primary" @click="handleAdd">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<el-table-column label="操作" width="190" fixed="right">
|
<el-table-column label="操作" width="190" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:role:edit']"
|
v-perms="['admin:system:role:edit']"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:role:edit']"
|
v-perms="['admin:system:role:edit']"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleAuth(row)"
|
@click="handleAuth(row)"
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
权限设置
|
权限设置
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['system:role:del']"
|
v-perms="['admin:system:role:del']"
|
||||||
link
|
link
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="handleDelete(row.id)"
|
@click="handleDelete(row.id)"
|
||||||
|
@@ -36,14 +36,18 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['setting:dict:data:add']" type="primary" @click="handleAdd">
|
<el-button
|
||||||
|
v-perms="['admin:setting:dict:data:add']"
|
||||||
|
type="primary"
|
||||||
|
@click="handleAdd"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
添加数据
|
添加数据
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['setting:dict:data:del']"
|
v-perms="['admin:setting:dict:data:del']"
|
||||||
:disabled="!selectData.length"
|
:disabled="!selectData.length"
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="handleDelete(selectData)"
|
@click="handleDelete(selectData)"
|
||||||
@@ -86,7 +90,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['setting:dict:data:edit']"
|
v-perms="['admin:setting:dict:data:edit']"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -94,7 +98,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['setting:dict:data:del']"
|
v-perms="['admin:setting:dict:data:del']"
|
||||||
link
|
link
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="handleDelete([row.id])"
|
@click="handleDelete([row.id])"
|
||||||
|
@@ -33,14 +33,18 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['setting:dict:type:add']" type="primary" @click="handleAdd">
|
<el-button
|
||||||
|
v-perms="['admin:setting:dict:type:add']"
|
||||||
|
type="primary"
|
||||||
|
@click="handleAdd"
|
||||||
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['setting:dict:type:list']"
|
v-perms="['admin:setting:dict:type:list']"
|
||||||
:disabled="!selectData.length"
|
:disabled="!selectData.length"
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="handleDelete(selectData)"
|
@click="handleDelete(selectData)"
|
||||||
@@ -77,17 +81,21 @@
|
|||||||
<el-table-column label="操作" width="190" fixed="right">
|
<el-table-column label="操作" width="190" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['setting:dict:type:edit']"
|
v-perms="['admin:setting:dict:type:edit']"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-perms="['setting:dict:data:list']" type="primary" link>
|
<el-button
|
||||||
|
v-perms="['admin:setting:dict:data:list']"
|
||||||
|
type="primary"
|
||||||
|
link
|
||||||
|
>
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
path: getRoutePath('setting:dict:data:list'),
|
path: '/dev_tools/dict/data',
|
||||||
query: {
|
query: {
|
||||||
type: row.dictType
|
type: row.dictType
|
||||||
}
|
}
|
||||||
@@ -97,7 +105,7 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['setting:dict:type:del']"
|
v-perms="['admin:setting:dict:type:del']"
|
||||||
link
|
link
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="handleDelete([row.id])"
|
@click="handleDelete([row.id])"
|
||||||
@@ -120,7 +128,6 @@
|
|||||||
<script lang="ts" setup name="dictType">
|
<script lang="ts" setup name="dictType">
|
||||||
import { dictTypeDelete, dictTypeLists } from '@/api/setting/dict'
|
import { dictTypeDelete, dictTypeLists } from '@/api/setting/dict'
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { getRoutePath } from '@/router'
|
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
import EditPopup from './edit.vue'
|
import EditPopup from './edit.vue'
|
||||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||||
|
@@ -44,7 +44,7 @@
|
|||||||
<el-table-column label="操作" min-width="80" fixed="right">
|
<el-table-column label="操作" min-width="80" fixed="right">
|
||||||
<template #default="{ $index }">
|
<template #default="{ $index }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['setting:storage:edit']"
|
v-perms="['admin:setting:storage:edit']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDel($index)"
|
@click="handleDel($index)"
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<footer-btns v-perms="['setting:search:save']">
|
<footer-btns v-perms="['admin:setting:search:save']">
|
||||||
<el-button type="primary" @click="handleSave">保存</el-button>
|
<el-button type="primary" @click="handleSave">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,27 +1,39 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="storage">
|
<div class="storage">
|
||||||
<el-card class="!border-none" shadow="never">
|
<el-card class="!border-none" shadow="never">
|
||||||
<el-alert type="warning" title="温馨提示:1.切换存储方式后,需要将资源文件传输至新的存储端;2.请勿随意切换存储方式,可能导致图片无法查看" :closable="false" show-icon></el-alert>
|
<el-alert
|
||||||
</el-card>
|
type="warning"
|
||||||
<el-card class="!border-none mt-4" shadow="never" v-loading="state.loading">
|
title="温馨提示:1.切换存储方式后,需要将资源文件传输至新的存储端;2.请勿随意切换存储方式,可能导致图片无法查看"
|
||||||
<el-table size="large" :data="state.lists">
|
:closable="false"
|
||||||
<el-table-column label="储存方式" prop="alias" min-width="120" />
|
show-icon
|
||||||
<el-table-column label="储存位置" prop="describe" min-width="160" />
|
></el-alert>
|
||||||
<el-table-column label="状态" min-width="80">
|
</el-card>
|
||||||
<template #default="{ row }">
|
<el-card class="!border-none mt-4" shadow="never" v-loading="state.loading">
|
||||||
<el-tag v-if="row.status == 1">开启</el-tag>
|
<el-table size="large" :data="state.lists">
|
||||||
<el-tag type="danger" v-else>关闭</el-tag>
|
<el-table-column label="储存方式" prop="alias" min-width="120" />
|
||||||
</template>
|
<el-table-column label="储存位置" prop="describe" min-width="160" />
|
||||||
</el-table-column>
|
<el-table-column label="状态" min-width="80">
|
||||||
<el-table-column label="操作" min-width="80" fixed="right">
|
<template #default="{ row }">
|
||||||
<template #default="{ row }">
|
<el-tag v-if="row.status == 1">开启</el-tag>
|
||||||
<el-button v-perms="['setting:storage:edit']" type="primary" link @click="handleSet(row.alias)"> 设置 </el-button>
|
<el-tag type="danger" v-else>关闭</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
<el-table-column label="操作" min-width="80" fixed="right">
|
||||||
</el-card>
|
<template #default="{ row }">
|
||||||
<edit-popup ref="editRef" @success="getLists" />
|
<el-button
|
||||||
</div>
|
v-perms="['admin:setting:storage:edit']"
|
||||||
|
type="primary"
|
||||||
|
link
|
||||||
|
@click="handleSet(row.alias)"
|
||||||
|
>
|
||||||
|
设置
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
<edit-popup ref="editRef" @success="getLists" />
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup name="storage">
|
<script lang="ts" setup name="storage">
|
||||||
import { storageLists } from '@/api/setting/storage'
|
import { storageLists } from '@/api/setting/storage'
|
||||||
@@ -30,23 +42,23 @@ const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
|||||||
|
|
||||||
// 列表数据
|
// 列表数据
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
loading: false,
|
loading: false,
|
||||||
lists: []
|
lists: []
|
||||||
})
|
})
|
||||||
|
|
||||||
// 获取存储引擎列表数据
|
// 获取存储引擎列表数据
|
||||||
const getLists = async () => {
|
const getLists = async () => {
|
||||||
try {
|
try {
|
||||||
state.loading = true
|
state.loading = true
|
||||||
state.lists = await storageLists()
|
state.lists = await storageLists()
|
||||||
state.loading = false
|
state.loading = false
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
state.loading = false
|
state.loading = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleSet = (alias: string) => {
|
const handleSet = (alias: string) => {
|
||||||
editRef.value?.open(alias)
|
editRef.value?.open(alias)
|
||||||
}
|
}
|
||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
|
@@ -92,7 +92,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<footer-btns v-perms="['setting:login:save']">
|
<footer-btns v-perms="['admin:setting:login:save']">
|
||||||
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -19,7 +19,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<footer-btns v-perms="['setting:user:save']">
|
<footer-btns v-perms="['admin:setting:user:save']">
|
||||||
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -44,7 +44,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<footer-btns v-perms="['setting:copyright:save']">
|
<footer-btns v-perms="['admin:setting:copyright:save']">
|
||||||
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -53,7 +53,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-form>
|
</el-form>
|
||||||
<footer-btns v-perms="['setting:website:save']">
|
<footer-btns v-perms="['admin:setting:website:save']">
|
||||||
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
<editor class="mb-10" v-model="formData.privacy.content" height="500"></editor>
|
<editor class="mb-10" v-model="formData.privacy.content" height="500"></editor>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
<footer-btns v-perms="['setting:protocol:save']">
|
<footer-btns v-perms="['admin:setting:protocol:save']">
|
||||||
<el-button type="primary" @click="handelSave">保存</el-button>
|
<el-button type="primary" @click="handelSave">保存</el-button>
|
||||||
</footer-btns>
|
</footer-btns>
|
||||||
</template>
|
</template>
|
||||||
|
27
server/README.md
Normal file
27
server/README.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
### 接口路径说明
|
||||||
|
|
||||||
|
所有接口`api/`开头,方便反向代理
|
||||||
|
|
||||||
|
后台接口`api/admin`开头,后台权限及菜单设计以这个为主
|
||||||
|
|
||||||
|
前台接口`api/*`开头,无权限设计,需要自己实现
|
||||||
|
|
||||||
|
### 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
├── server
|
||||||
|
│ ├── admin // 后台,可以参照添加web,app等模块
|
||||||
|
│ │ ├──** //模块
|
||||||
|
│ │ ├──────/*_ctl.go // 模块控制器
|
||||||
|
│ │ ├──────/*_schema.go // 模块schema
|
||||||
|
│ │ ├──────/*_service.go // 模块服务
|
||||||
|
│ ├── config // 配置
|
||||||
|
│ ├── middleware // 中间件
|
||||||
|
│ ├── model // 数据库模型
|
||||||
|
│ ├── util // 工具包
|
||||||
|
│ ├── routers // 路由`api`,
|
||||||
|
│ ├── resources // 验证码依赖文件,待调整
|
||||||
|
│ ├── static // 静态文件,访问路由`/api/static/*`
|
||||||
|
│ ├── main.go // 入口
|
||||||
|
│ ├── .env // 配置文件,注意不提交git
|
||||||
|
```
|
@@ -46,7 +46,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none" shadow="never">
|
<el-card class="!border-none" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['{{{ .ModuleName }}}:add']" type="primary" @click="handleAdd()">
|
<el-button v-perms="['admin:{{{ .ModuleName }}}:add']" type="primary" @click="handleAdd()">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -92,7 +92,7 @@
|
|||||||
<el-table-column label="操作" width="160" fixed="right">
|
<el-table-column label="操作" width="160" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['{{{ .ModuleName }}}:add']"
|
v-perms="['admin:{{{ .ModuleName }}}:add']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleAdd(row.{{{ .Table.TreePrimary }}})"
|
@click="handleAdd(row.{{{ .Table.TreePrimary }}})"
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['{{{ .ModuleName }}}:edit']"
|
v-perms="['admin:{{{ .ModuleName }}}:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['{{{ .ModuleName }}}:del']"
|
v-perms="['admin:{{{ .ModuleName }}}:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.{{{ .PrimaryKey }}})"
|
@click="handleDelete(row.{{{ .PrimaryKey }}})"
|
||||||
|
@@ -45,7 +45,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="!border-none mt-4" shadow="never">
|
<el-card class="!border-none mt-4" shadow="never">
|
||||||
<div>
|
<div>
|
||||||
<el-button v-perms="['{{{ .ModuleName }}}:add']" type="primary" @click="handleAdd()">
|
<el-button v-perms="['admin:{{{ .ModuleName }}}:add']" type="primary" @click="handleAdd()">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<icon name="el-icon-Plus" />
|
<icon name="el-icon-Plus" />
|
||||||
</template>
|
</template>
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
<el-table-column label="操作" width="120" fixed="right">
|
<el-table-column label="操作" width="120" fixed="right">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['{{{ .ModuleName }}}:edit']"
|
v-perms="['admin:{{{ .ModuleName }}}:edit']"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
@click="handleEdit(row)"
|
@click="handleEdit(row)"
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-perms="['{{{ .ModuleName }}}:del']"
|
v-perms="['admin:{{{ .ModuleName }}}:del']"
|
||||||
type="danger"
|
type="danger"
|
||||||
link
|
link
|
||||||
@click="handleDelete(row.{{{ .PrimaryKey }}})"
|
@click="handleDelete(row.{{{ .PrimaryKey }}})"
|
||||||
|
@@ -14,7 +14,7 @@ type SystemAuthMenuAddReq struct {
|
|||||||
MenuName string `form:"menuName" binding:"required,min=1,max=30"` // 菜单名称
|
MenuName string `form:"menuName" binding:"required,min=1,max=30"` // 菜单名称
|
||||||
MenuIcon string `form:"menuIcon" binding:"max=100"` // 菜单图标
|
MenuIcon string `form:"menuIcon" binding:"max=100"` // 菜单图标
|
||||||
MenuSort int `form:"menuSort" binding:"gte=0"` // 菜单排序
|
MenuSort int `form:"menuSort" binding:"gte=0"` // 菜单排序
|
||||||
Perms string `form:"perms" binding:"max=100"` // 权限标识
|
Perms string `form:"perms" binding:"max=10000"` // 权限标识
|
||||||
Paths string `form:"paths" binding:"max=200"` // 路由地址
|
Paths string `form:"paths" binding:"max=200"` // 路由地址
|
||||||
Component string `form:"component" binding:"max=200"` // 前端组件
|
Component string `form:"component" binding:"max=200"` // 前端组件
|
||||||
Selected string `form:"selected" binding:"max=200"` // 选中路径
|
Selected string `form:"selected" binding:"max=200"` // 选中路径
|
||||||
@@ -32,7 +32,7 @@ type SystemAuthMenuEditReq struct {
|
|||||||
MenuName string `form:"menuName" binding:"required,min=1,max=30"` // 菜单名称
|
MenuName string `form:"menuName" binding:"required,min=1,max=30"` // 菜单名称
|
||||||
MenuIcon string `form:"menuIcon" binding:"max=100"` // 菜单图标
|
MenuIcon string `form:"menuIcon" binding:"max=100"` // 菜单图标
|
||||||
MenuSort int `form:"menuSort" binding:"gte=0"` // 菜单排序
|
MenuSort int `form:"menuSort" binding:"gte=0"` // 菜单排序
|
||||||
Perms string `form:"perms" binding:"max=100"` // 权限标识
|
Perms string `form:"perms" binding:"max=10000"` // 权限标识
|
||||||
Paths string `form:"paths" binding:"max=200"` // 路由地址
|
Paths string `form:"paths" binding:"max=200"` // 路由地址
|
||||||
Component string `form:"component" binding:"max=200"` // 前端组件
|
Component string `form:"component" binding:"max=200"` // 前端组件
|
||||||
Selected string `form:"selected" binding:"max=200"` // 选中路径
|
Selected string `form:"selected" binding:"max=200"` // 选中路径
|
||||||
|
Reference in New Issue
Block a user