完成积分模块

This commit is contained in:
gyq
2025-12-11 09:15:30 +08:00
parent 5b2d2ab8c3
commit b860fa0009
19 changed files with 1813 additions and 309 deletions

View File

@@ -3,12 +3,7 @@
<div class="search-bar">
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="关键字" prop="title">
<el-input
v-model="queryParams.title"
placeholder="菜单名称"
clearable
@keyup.enter="handleQuery"
/>
<el-input v-model="queryParams.title" placeholder="菜单名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="search" @click="handleQuery">搜索</el-button>
@@ -19,27 +14,15 @@
<el-card shadow="never">
<div class="mb-10px">
<el-button
v-hasPerm="['sys:menu:add']"
type="success"
icon="plus"
@click="handleOpenDialog('0')"
>
<el-button v-hasPerm="['sys:menu:add']" type="success" icon="plus" @click="handleOpenDialog('0')">
新增
</el-button>
</div>
<el-table
v-loading="loading"
:data="menuTableData"
highlight-current-row
row-key="menuId"
:tree-props="{
children: 'children',
hasChildren: 'hasChildren',
}"
@row-click="handleRowClick"
>
<el-table v-loading="loading" :data="menuTableData" highlight-current-row row-key="menuId" :tree-props="{
children: 'children',
hasChildren: 'hasChildren',
}" @row-click="handleRowClick">
<el-table-column label="菜单名称" min-width="140">
<template #default="scope">
{{ scope.row.title }}
@@ -60,20 +43,14 @@
</el-table-column>
<el-table-column label="类型" align="center" width="80">
<template #default="scope">
<el-tag
v-if="scope.row.type === MenuTypeEnum.MENU && scope.row.path.startsWith('/')"
type="warning"
>
<el-tag v-if="scope.row.type === MenuTypeEnum.MENU && scope.row.path.startsWith('/')" type="warning">
目录
</el-tag>
<el-tag
v-if="scope.row.type === MenuTypeEnum.MENU && !scope.row.path.startsWith('/')"
type="success"
>
<el-tag v-if="scope.row.type === MenuTypeEnum.MENU && !scope.row.path.startsWith('/')" type="success">
菜单
</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.BUTTON" type="danger">按钮</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.EXTLINK" type="info">外链</el-tag>
<el-tag v-if="scope.row.type === MenuTypeEnum.EXTLINK" type="info">接口</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" align="left" width="150" prop="menuSort" />
@@ -101,36 +78,17 @@
</el-table-column>
<el-table-column fixed="right" align="center" label="操作" width="220">
<template #default="scope">
<el-button
v-if="scope.row.type == 0"
v-hasPerm="['sys:menu:add']"
type="primary"
link
size="small"
icon="plus"
@click.stop="handleOpenDialog(scope.row.menuId)"
>
<el-button v-if="scope.row.type == 0" v-hasPerm="['sys:menu:add']" type="primary" link size="small"
icon="plus" @click.stop="handleOpenDialog(scope.row.menuId)">
新增
</el-button>
<el-button
v-hasPerm="['sys:menu:edit']"
type="primary"
link
size="small"
icon="edit"
@click.stop="handleOpenDialog(undefined, scope.row.menuId)"
>
<el-button v-hasPerm="['sys:menu:edit']" type="primary" link size="small" icon="edit"
@click.stop="handleOpenDialog(undefined, scope.row.menuId)">
编辑
</el-button>
<el-button
v-hasPerm="['sys:menu:delete']"
type="danger"
link
size="small"
icon="delete"
@click.stop="handleDelete(scope.row.menuId)"
>
<el-button v-hasPerm="['sys:menu:delete']" type="danger" link size="small" icon="delete"
@click.stop="handleDelete(scope.row.menuId)">
删除
</el-button>
</template>
@@ -141,14 +99,8 @@
<el-drawer v-model="dialog.visible" :title="dialog.title" size="50%" @close="handleCloseDialog">
<el-form ref="editRequestRef" :model="formData" :rules="rules" label-width="100px">
<el-form-item label="父级菜单" prop="pid">
<el-tree-select
v-model="formData.pid"
placeholder="选择上级菜单"
:data="menuOptions"
filterable
check-strictly
:render-after-expand="false"
/>
<el-tree-select v-model="formData.pid" placeholder="选择上级菜单" :data="menuOptions" filterable check-strictly
:render-after-expand="false" />
</el-form-item>
<el-form-item label="菜单名称" prop="title">
@@ -162,14 +114,9 @@
<el-radio :value="2">接口</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否外链" >
<el-switch
v-model="formData.iFrame"
:active-value="1"
:inactive-value="0"
active-text=""
inactive-text=""
/>
<el-form-item label="是否外链">
<el-switch v-model="formData.iFrame" :active-value="1" :inactive-value="0" active-text="是"
inactive-text="" />
</el-form-item>
<el-form-item v-if="formData.type == MenuTypeEnum.MENU" prop="name">
@@ -204,11 +151,7 @@
</el-tooltip>
</div>
</template>
<el-input
v-if="formData.type == MenuTypeEnum.MENU"
v-model="formData.path"
placeholder="system"
/>
<el-input v-if="formData.type == MenuTypeEnum.MENU" v-model="formData.path" placeholder="system" />
<el-input v-else v-model="formData.path" placeholder="user" />
</el-form-item>
@@ -240,10 +183,7 @@
<el-input v-model="formData.miniComponent" placeholder="小程序组件名称" />
</el-form-item>
<el-form-item label="小程序图标">
<single-image-upload
style="width: 100px; height: 100px"
v-model="formData.miniIcon"
></single-image-upload>
<single-image-upload style="width: 100px; height: 100px" v-model="formData.miniIcon"></single-image-upload>
</el-form-item>
<el-form-item label="接口路径" prop="miniPage">
<div class="w-full">
@@ -253,11 +193,7 @@
<div class="u-flex u-m-t-10" v-for="(item, index) in formData.apiInfo" :key="index">
<el-form-item label="请求方式" label-position="left">
<el-select v-model="item.method" style="width: 100px">
<el-option
v-for="(item, index) in apiMethodOptions"
:key="index"
:value="item.value"
>
<el-option v-for="(item, index) in apiMethodOptions" :key="index" :value="item.value">
{{ item.label }}
</el-option>
</el-select>
@@ -265,12 +201,7 @@
<el-form-item label="接口地址" style="flex: 1">
<el-input v-model="item.url" placeholder="支持通配符*和?" />
</el-form-item>
<el-icon
style="margin-left: 10px"
size="20"
color="#F56c6c"
@click="formData.apiInfo.splice(index, 1)"
>
<el-icon style="margin-left: 10px" size="20" color="#F56c6c" @click="formData.apiInfo.splice(index, 1)">
<RemoveFilled />
</el-icon>
</div>
@@ -291,20 +222,11 @@
</el-form-item>
<el-form-item label="排序" prop="menuSort">
<el-input-number
v-model="formData.menuSort"
style="width: 100px"
controls-position="right"
:min="0"
/>
<el-input-number v-model="formData.menuSort" style="width: 100px" controls-position="right" :min="0" />
</el-form-item>
<!-- 权限标识 -->
<el-form-item
v-if="formData.type == MenuTypeEnum.BUTTON"
label="权限标识"
prop="permission"
>
<el-form-item v-if="formData.type == MenuTypeEnum.BUTTON" label="权限标识" prop="permission">
<el-input v-model="formData.permission" placeholder="sys:user:add" />
</el-form-item>