From edafd3d4761f406aec8347b7aedbb7e58b4bfde8 Mon Sep 17 00:00:00 2001 From: ltx <19304474232@163.com> Date: Mon, 16 Mar 2026 03:08:12 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E6=9D=83=E9=99=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86&bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/match/role.js | 16 ++ src/router/route.ts | 4 +- src/stores/themeConfig.ts | 2 +- src/theme/element.scss | 6 +- src/theme/waves.scss | 2 +- src/utils/theme.ts | 6 +- src/views/match/book/index.vue | 2 +- src/views/match/coupon/index.vue | 49 ++++-- src/views/permission/role/dialog.vue | 221 ++++++++++++++++++++++++++ src/views/permission/role/index.vue | 228 +++++++-------------------- src/views/permission/role1/index.vue | 200 +++++++++++++++++++++++ 11 files changed, 545 insertions(+), 191 deletions(-) create mode 100644 src/views/permission/role/dialog.vue create mode 100644 src/views/permission/role1/index.vue diff --git a/src/api/match/role.js b/src/api/match/role.js index 651bd09..9d2e021 100644 --- a/src/api/match/role.js +++ b/src/api/match/role.js @@ -102,4 +102,20 @@ export const sysroleDeleteDelete = (data) => { */ export const sysroleSelectGet = () => { return http.get('/sysrole/select'); +}; + + +// ==================== 菜单管理 ==================== + +/** + * 获取菜单下拉树数据 + * @description 用于权限分配时的菜单树形选择器 + * @returns {Promise>} 返回树形结构的菜单数据 + */ +export const sysmenuTreeselectGet = () => { + return http.get('/sysmenu/treeselect'); }; \ No newline at end of file diff --git a/src/router/route.ts b/src/router/route.ts index 5b8c86e..53878e8 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -42,7 +42,7 @@ export const dynamicRoutes: Array = [ path: '/', name: '/', component: () => import('/@/layout/index.vue'), - redirect: '/home', + redirect: '/personal', meta: { isKeepAlive: true, }, @@ -174,7 +174,7 @@ export const dynamicRoutes: Array = [ isLink: '', isHide: false, isKeepAlive: true, - isAffix: true, + isAffix: false, isIframe: false, roles: ['admin', 'common'], icon: 'iconfont icon-shouye', diff --git a/src/stores/themeConfig.ts b/src/stores/themeConfig.ts index b5ae766..ecd9083 100644 --- a/src/stores/themeConfig.ts +++ b/src/stores/themeConfig.ts @@ -36,7 +36,7 @@ export const useThemeConfig = defineStore('themeConfig', { * 菜单设置 */ // 默认菜单导航背景颜色 - menuBar: '#000', + menuBar: '#000000', // 默认菜单导航字体颜色 menuBarColor: '#eaeaea', // 默认菜单高亮背景色 diff --git a/src/theme/element.scss b/src/theme/element.scss index 66c5391..03baa2a 100644 --- a/src/theme/element.scss +++ b/src/theme/element.scss @@ -267,18 +267,18 @@ // background: var(--el-color-primary); } .el-dialog__footer { - border-top: 1px solid var(--el-color-info-light-7); + // border-top: 1px solid var(--el-color-info-light-7); padding-bottom: 10px; } .el-dialog__headerbtn{ height: 32px; font-weight: 900; .el-dialog__close{ - color: #000; + color: #000000; } } .el-dialog__headerbtn:hover .el-dialog__close{ - color: var(--el-color-danger) !important; + // color: var(--el-color-danger) !important; } /* Card 卡片 diff --git a/src/theme/waves.scss b/src/theme/waves.scss index 23add2c..12ef8f4 100644 --- a/src/theme/waves.scss +++ b/src/theme/waves.scss @@ -73,7 +73,7 @@ .waves-circle { -webkit-transform: translateZ(0); transform: translateZ(0); - -webkit-mask-image: -webkit-radial-gradient(circle, #fff 100%, #000 100%); + -webkit-mask-image: -webkit-radial-gradient(circle, #fff 100%, #000000 100%); } .waves-input-wrapper { border-radius: 0.2em; diff --git a/src/utils/theme.ts b/src/utils/theme.ts index 398053a..45d0847 100644 --- a/src/utils/theme.ts +++ b/src/utils/theme.ts @@ -36,7 +36,8 @@ export function useChangeColor() { const getDarkColor = (color: string, level: number): string => { let reg = /^\#?[0-9A-Fa-f]{6}$/; if (!reg.test(color)) { - ElMessage.warning('输入错误的hex颜色值'); + console.log(color); + // ElMessage.warning('输入错误的hex颜色值'); return ''; } let rgb = useChangeColor().hexToRgb(color); @@ -47,7 +48,8 @@ export function useChangeColor() { const getLightColor = (color: string, level: number): string => { let reg = /^\#?[0-9A-Fa-f]{6}$/; if (!reg.test(color)) { - ElMessage.warning('输入错误的hex颜色值'); + console.log(color); + // ElMessage.warning('输入错误的hex颜色值'); return ''; } let rgb = useChangeColor().hexToRgb(color); diff --git a/src/views/match/book/index.vue b/src/views/match/book/index.vue index 8c15262..bc3fc61 100644 --- a/src/views/match/book/index.vue +++ b/src/views/match/book/index.vue @@ -127,7 +127,7 @@ const isShowDialog = ref(false); const dialogTitle = ref('新增'); const onOpenMenu = (row) => { - dialogTitle.value = row.id ? '编辑' : '新增'; + dialogTitle.value = row ? '编辑' : '新增'; if (row) { formData.value = row; } else { diff --git a/src/views/match/coupon/index.vue b/src/views/match/coupon/index.vue index 4d64312..9218739 100644 --- a/src/views/match/coupon/index.vue +++ b/src/views/match/coupon/index.vue @@ -1,6 +1,7 @@ - 生成兑换码 + 生成兑换码 + @@ -91,6 +94,21 @@ + + +
+ {{ sdkCode }} + 复制 +
+ +
@@ -100,7 +118,7 @@ import { ElMessage, ElForm } from 'element-plus'; import SysMenuApi from '/@/api/SysMenuApi'; import { auths } from '/@/utils/authFunction'; import ProTable from '/@/components/ProTable/index.vue'; -import { couponPage, couponAdd, couponEdit, couponDelete, couponEventlistGet } from '/@/api/match/coupon'; +import { couponPage, couponAdd, couponEdit, couponDelete, couponEventlistGet, couponGeneratecodePost } from '/@/api/match/coupon'; // 定义表单引用类型 const formRef = ref(); const eventList = ref([]); @@ -114,6 +132,15 @@ const formData = ref({ totalQuantity: '', time: '', }) +const sdkDialog = ref(false) +const sdkCode = ref('') +const copyText = () => { + navigator.clipboard.writeText(sdkCode.value).then(() => { + ElMessage.success('兑换码已复制到剪贴板'); + }).catch(err => { + ElMessage.error('复制失败,请重试'); + }); +}; const initParam = ref(true) const formRules = ref({ name: [ @@ -171,7 +198,7 @@ const onOpenMenu = async (row) => { if (row) { // const { data } = await couponEdit(row.id); formData.value = row; - formData.value.time = [row.startTime.slice(0,10) , row.endTime.slice(0,10)]; + formData.value.time = [row.startTime.slice(0, 10), row.endTime.slice(0, 10)]; } else { formData.value = { @@ -187,10 +214,14 @@ const onOpenMenu = async (row) => { } isShowDialog.value = true; }; - +const getSdk = async (id) => { + const { data } = await couponGeneratecodePost(id); + sdkCode.value = data; + sdkDialog.value = true; +}; //删除菜单 const onDeleteMenu = async (id) => { - const { succeeded, errors } = await couponDelete([ id ]); + const { succeeded, errors } = await couponDelete([id]); if (succeeded) { initParam.value = !initParam.value; ElMessage.success('删除成功'); @@ -233,9 +264,7 @@ const onCancel = () => { }; diff --git a/src/views/permission/role/index.vue b/src/views/permission/role/index.vue index ed4bf6b..ccab96c 100644 --- a/src/views/permission/role/index.vue +++ b/src/views/permission/role/index.vue @@ -1,200 +1,86 @@