Merge branch 'main' of https://git.jsspisoft.com/ry-das
This commit is contained in:
commit
900f5e5163
@ -92,6 +92,8 @@ public class SysEnumServiceImpl implements SysEnumService {
|
||||
PageQuery pageQuery = new PageQuery();
|
||||
pageQuery.setPageNum(sysEnumValuesDto.getPageNum());
|
||||
pageQuery.setPageSize(sysEnumValuesDto.getPageSize());
|
||||
//只返回有效的数据
|
||||
sysEnumValuesDto.setIsActive(1);
|
||||
IPage<SysEnumValuesVo> iPage =
|
||||
sysEnumValuesMapper.queryEnumValuesList(pageQuery.build(), sysEnumValuesDto);
|
||||
return PageDataInfo.build(iPage.getRecords(), iPage.getTotal());
|
||||
|
45
ui/dasadmin/src/api/backend/Enumeration/request.ts
Normal file
45
ui/dasadmin/src/api/backend/Enumeration/request.ts
Normal file
@ -0,0 +1,45 @@
|
||||
import createAxios from '/@/utils/axios'
|
||||
// 枚举类型新增
|
||||
export function enumTypeAdd(params: object = {}) {
|
||||
return createAxios({
|
||||
url: '/api/enum/addEnumTypes',
|
||||
method: 'POST',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
//表格查询
|
||||
export function enumListQuery(params: object = {}) {
|
||||
return createAxios({
|
||||
url: '/api/enum/queryEnumValuesList',
|
||||
method: 'POST',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
//左侧树查询
|
||||
export function enumTreeQuery(params: object = {}) {
|
||||
return createAxios({
|
||||
url: '/api/enum/queryEnumTypesList',
|
||||
method: 'POST',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
// 枚举值新增
|
||||
export function enumValueAdd(params: object = {}) {
|
||||
return createAxios({
|
||||
url: '/api/enum/addEnumValues',
|
||||
method: 'POST',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 枚举值新增
|
||||
export function enumValueDelete(params: object = {}) {
|
||||
return createAxios({
|
||||
url: '/api/enum/deleteEnumValues',
|
||||
method: 'POST',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
544
ui/dasadmin/src/views/backend/auth/Enumeration/index.vue
Normal file
544
ui/dasadmin/src/views/backend/auth/Enumeration/index.vue
Normal file
@ -0,0 +1,544 @@
|
||||
<template>
|
||||
<div class="Enumeration">
|
||||
<el-container class="containerPart">
|
||||
<el-aside class="defaultAside">
|
||||
<el-main class="treeMain">
|
||||
<!-- <div class="demo-collapse">
|
||||
<el-collapse accordion>
|
||||
<el-collapse-item name="1">
|
||||
<template #title>
|
||||
枚举类型配置<el-icon class="header-icon">
|
||||
<info-filled />
|
||||
</el-icon>
|
||||
</template>
|
||||
<ul>
|
||||
<li v-for="(item, index) in TypeData" :key="index" @click="clickType(item)">
|
||||
{{ item.enumName }}
|
||||
</li>
|
||||
</ul>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</div>-->
|
||||
<label class="treeTitle">枚举类型配置</label>
|
||||
<el-tree
|
||||
style="max-width: 600px;margin-top: 2.2%"
|
||||
ref="TypeTree"
|
||||
:data="TypeData"
|
||||
:props="defaultProps"
|
||||
node-key="id"
|
||||
@node-click="handleNodeClick"
|
||||
/>
|
||||
</el-main>
|
||||
</el-aside>
|
||||
<el-container class="defaultMainContainer">
|
||||
<el-header class="defaultHeader">
|
||||
<div class="searchPart">
|
||||
<el-input v-model="queryName" class="searchInput" placeholder="按名称查询枚举名"></el-input>
|
||||
<el-button @click="clickQuery" type="primary" :icon="Search" class="defaultBtn">查询</el-button>
|
||||
</div>
|
||||
<div class="btnPart">
|
||||
<el-button type="primary" :icon="Plus" class="defaultBtn" @click="fromAddType">新增枚举类型</el-button>
|
||||
<el-button type="primary" :icon="Plus" class="defaultBtn" @click="fromAddValue">新增枚举值</el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="mainPart">
|
||||
<el-table :data="tableData" class="tablePart">
|
||||
<!-- <el-table-column type="selection" width="55" />-->
|
||||
<el-table-column prop="description" label="枚举描述" />
|
||||
<el-table-column prop="value" label="枚举值" />
|
||||
<el-table-column label="操作">
|
||||
<template #default="scope">
|
||||
<span style="color: #0064aa; cursor: pointer" @click="enumValueEdit(scope)">查看</span>
|
||||
|
|
||||
<span style="color: #0064aa; cursor: pointer" @click="fromDelete(scope)">删除</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="mainFooter" style="display: flex; justify-content: right">
|
||||
<el-pagination
|
||||
v-model:current-page="currentPage"
|
||||
v-model:page-size="currentPageSize"
|
||||
:total="pageTotal"
|
||||
:page-sizes="pagePagination"
|
||||
background
|
||||
:pager-count="7"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
layout="prev, pager, next, jumper,sizes,total"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
|
||||
<!--新增枚举类型-->
|
||||
<el-dialog v-model="visibleTypeAdd" title="新增枚举类型" width="500" :before-close="handleClose">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:inline="true"
|
||||
:model="formInlineAdd"
|
||||
:rules="rules"
|
||||
style="padding: 24px 40px; font-size: 14px; line-height: 1.5; word-wrap: break-word; font-size: 20px"
|
||||
>
|
||||
<el-form-item label="名称:" prop="name">
|
||||
<el-input v-model="formInlineAdd.name" placeholder="" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 描述:">
|
||||
<el-input v-model="formInlineAdd.description" placeholder="" clearable />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="visibleTypeAdd = false"> 取消 </el-button>
|
||||
<el-button type="primary" @click="onSubmitType">提交</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!--新增枚举值-->
|
||||
<el-dialog v-model="visibleValueAdd" title="新增枚举值" width="500" :before-close="handleClosevalue">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:inline="true"
|
||||
:model="formInlineValue"
|
||||
:rules="rules1"
|
||||
style="padding: 24px 40px; font-size: 14px; line-height: 1.5; word-wrap: break-word; font-size: 20px"
|
||||
>
|
||||
<el-form-item label="枚举值:" prop="value">
|
||||
<el-input v-model="formInlineValue.value" placeholder="" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 描述:" prop="enumDesc">
|
||||
<el-input v-model="formInlineValue.description" placeholder="" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 排序:">
|
||||
<el-input-number :min="0" v-model="formInlineValue.orderNumber" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 是否有效:">
|
||||
<el-switch v-model="formInlineValue.isActive" />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="visibleValueAdd = false"> 取消 </el-button>
|
||||
<el-button type="primary" @click="onSubmitvalue">提交</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 删除确认弹框 -->
|
||||
<el-dialog v-model="dialogVisibleDelete" title="操作提示" width="500" :before-close="handleCloseDelete">
|
||||
<span>确定是否删除?</span>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="dialogVisibleDelete = false">取消</el-button>
|
||||
<el-button type="primary" @click="dialogVisibleDelete1"> 确定 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!--查看枚举值-->
|
||||
<el-dialog v-model="visibleValueEdit" title="查看枚举值" width="500" :before-close="handleClosevalue">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:inline="true"
|
||||
:model="fromUpDate"
|
||||
:rules="rules1"
|
||||
style="padding: 24px 40px; font-size: 14px; line-height: 1.5; word-wrap: break-word; font-size: 20px"
|
||||
>
|
||||
<el-form-item label="枚举值:" prop="value">
|
||||
<el-input v-model="fromUpDate.value" placeholder="" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 描述:" prop="enumDesc">
|
||||
<el-input v-model="fromUpDate.description" placeholder="" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 排序:">
|
||||
<el-input-number :min="0" v-model="fromUpDate.orderNumber" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item label=" 是否有效:">
|
||||
<el-switch v-model="fromUpDate.isActive" />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="visibleValueEdit = false"> 取消 </el-button>
|
||||
<!-- <el-button type="primary" @click="onSubmitvalue">提交</el-button>-->
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</el-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {nextTick, onMounted, reactive, ref} from 'vue'
|
||||
import { Search, Plus } from '@element-plus/icons-vue'
|
||||
import { ElMessage, ElMessageBox, FormRules } from 'element-plus'
|
||||
import {
|
||||
enumListQuery,
|
||||
enumTreeQuery,
|
||||
enumTypeAdd,
|
||||
enumValueAdd,
|
||||
enumValueDelete
|
||||
} from "/@/api/backend/Enumeration/request";
|
||||
import {equipQuery, menuDelete} from "/@/api/backend";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
interface Tree {
|
||||
enumId: number,
|
||||
enumName: string,
|
||||
enumDesc: string,
|
||||
}
|
||||
|
||||
|
||||
const defaultProps = {
|
||||
label: 'description',
|
||||
}
|
||||
|
||||
const tableData = ref()
|
||||
const TypeData=ref()
|
||||
const TypeTree = ref()
|
||||
const formRef = ref()
|
||||
const enumTypeId=ref()
|
||||
|
||||
|
||||
// 搜索查询
|
||||
const queryName = ref('')
|
||||
const queryListData = reactive({
|
||||
pageSize: 20,
|
||||
pageNum: 1,
|
||||
description: '',
|
||||
enumTypeId: '',
|
||||
})
|
||||
const clickQuery = () => {
|
||||
queryListData.description = queryName.value
|
||||
queryenumValueMethod(queryListData)
|
||||
}
|
||||
|
||||
const enumTreeTypeList = () => {
|
||||
enumTreeQuery().then((res) => {
|
||||
if (res.code == 200) {
|
||||
TypeData.value = res.data
|
||||
nextTick(() => {
|
||||
enumTypeId.value=res.data[0]?.id
|
||||
TypeTree.value?.setCurrentKey(res.data[0]?.id!, false)
|
||||
queryListData.description =queryName.value
|
||||
queryListData.enumTypeId = res.data[0].id
|
||||
queryListData.pageNum=currentPage.value,
|
||||
queryListData.pageSize=currentPageSize.value
|
||||
queryenumValueMethod(queryListData)
|
||||
|
||||
})
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.msg,
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
const queryParameter = ref()
|
||||
const handleNodeClick = (data: any) => {
|
||||
queryParameter.value = data
|
||||
enumTypeId.value=data.id
|
||||
queryListData.enumTypeId=data.id,
|
||||
queryListData.description=queryName.value,
|
||||
queryListData.pageNum=currentPage.value,
|
||||
queryListData.pageSize=currentPageSize.value
|
||||
console.log(queryListData)
|
||||
queryenumValueMethod(queryListData)
|
||||
}
|
||||
|
||||
const currentPage = ref(1)
|
||||
const currentPageSize = ref(20)
|
||||
const pageTotal = ref(0)
|
||||
const pagePagination = ref([10, 20, 30])
|
||||
const handleSizeChange = (val: number) => {
|
||||
queryListData.pageSize = val
|
||||
queryenumValueMethod(queryListData)
|
||||
}
|
||||
const handleCurrentChange = (val: number) => {
|
||||
queryListData.pageNum = val
|
||||
queryenumValueMethod(queryListData)
|
||||
}
|
||||
//新增枚举类型
|
||||
interface RuleForm {
|
||||
name: string | undefined
|
||||
description: string | undefined
|
||||
}
|
||||
const rules = reactive<FormRules<RuleForm>>({
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: '名称不能为空',
|
||||
trigger: 'blur',
|
||||
}]
|
||||
|
||||
})
|
||||
const visibleTypeAdd = ref(false)
|
||||
const formInlineAdd = reactive<RuleForm>({
|
||||
name: '',
|
||||
description: ''
|
||||
})
|
||||
const fromAddType = () => {
|
||||
visibleTypeAdd.value = true
|
||||
formInlineAdd.name = ''
|
||||
formInlineAdd.description =''
|
||||
}
|
||||
const handleClose = (done: () => void) => {
|
||||
visibleTypeAdd.value = false
|
||||
}
|
||||
|
||||
|
||||
const onSubmitType = () => {
|
||||
formRef.value.validate((valid: any) => {
|
||||
if (valid) {
|
||||
enumTypeAdd(formInlineAdd).then((res: any) => {
|
||||
if (res.code == 200) {
|
||||
enumTreeTypeList()
|
||||
ElMessage({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
})
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.msg,
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
visibleTypeAdd.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
//新增枚举值
|
||||
interface RuleForm1 {
|
||||
enumTypeId: number | string
|
||||
value: string
|
||||
description: string| undefined
|
||||
orderNumber: number
|
||||
isActive: number
|
||||
}
|
||||
const rules1 = reactive<FormRules<RuleForm1>>({
|
||||
value: [
|
||||
{
|
||||
required: true,
|
||||
message: '值不能为空',
|
||||
trigger: 'blur',
|
||||
}]
|
||||
|
||||
})
|
||||
const visibleValueAdd= ref(false)
|
||||
const formInlineValue = reactive<RuleForm1>({
|
||||
enumTypeId: enumTypeId.value,
|
||||
value: ' ',
|
||||
description: ' ',
|
||||
orderNumber: 0,
|
||||
isActive:0
|
||||
})
|
||||
const fromAddValue = () => {
|
||||
visibleValueAdd.value= true
|
||||
formInlineValue.enumTypeId =enumTypeId.value
|
||||
formInlineValue.value = ''
|
||||
formInlineValue.description = ''
|
||||
formInlineValue.orderNumber =0
|
||||
formInlineValue.isActive =0
|
||||
}
|
||||
const handleClosevalue = (done: () => void) => {
|
||||
visibleValueAdd.value = false
|
||||
}
|
||||
|
||||
|
||||
const queryenumValueMethod = (data: any) => {
|
||||
enumListQuery(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
tableData.value = res.data.rows
|
||||
pageTotal.value = res.data.total
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.msg,
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const onSubmitvalue = () => {
|
||||
formRef.value.validate((valid: any) => {
|
||||
if (valid) {
|
||||
debugger
|
||||
if(formInlineValue.isActive==true){
|
||||
formInlineValue.isActive=1
|
||||
}else{
|
||||
formInlineValue.isActive=0
|
||||
}
|
||||
|
||||
console.log(formInlineValue)
|
||||
enumValueAdd(formInlineValue).then((res: any) => {
|
||||
debugger
|
||||
if (res.code == 200) {
|
||||
/* TypeTree.value?.setCurrentKey(res.data[0]?.id!, false)*/
|
||||
queryListData.description =queryName.value
|
||||
queryListData.enumTypeId = enumTypeId.value
|
||||
queryListData.pageNum=currentPage.value,
|
||||
queryListData.pageSize=currentPageSize.value
|
||||
queryenumValueMethod(queryListData)
|
||||
ElMessage({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
})
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.msg,
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
visibleValueAdd.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 删除
|
||||
const fromDeleteData = reactive({
|
||||
id: '',
|
||||
})
|
||||
interface fromDelete {
|
||||
row?: any[]
|
||||
}
|
||||
const fromDelete = (data: any) => {
|
||||
debugger
|
||||
dialogVisibleDelete.value = true
|
||||
fromDeleteData.id = data.row.id
|
||||
}
|
||||
|
||||
// 删除提示弹框
|
||||
const dialogVisibleDelete = ref(false)
|
||||
|
||||
const handleCloseDelete = (done: () => void) => {
|
||||
dialogVisibleDelete.value = false
|
||||
}
|
||||
const dialogVisibleDelete1 = (done: () => void) => {
|
||||
dialogVisibleDelete.value = false
|
||||
enumValueDelete(fromDeleteData).then((res) => {
|
||||
if (res.code == 200) {
|
||||
setTimeout(() => {
|
||||
ElMessage({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
})
|
||||
}, 1000)
|
||||
const queryData2 = {
|
||||
description: queryName.value,
|
||||
enumTypeId: enumTypeId.value,
|
||||
pageNum: currentPage.value,
|
||||
pageSize: currentPageSize.value,
|
||||
}
|
||||
queryenumValueMethod(queryData2)
|
||||
} else {
|
||||
ElMessage.error({
|
||||
message: res.msg,
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
// 菜单修改
|
||||
const fromUpDate = reactive({
|
||||
id: '',
|
||||
enumTypeId: '',
|
||||
value:'',
|
||||
description : '',
|
||||
orderNumber: 0,
|
||||
isActive: false
|
||||
})
|
||||
const visibleValueEdit = ref(false)
|
||||
const enumValueEdit = (data: any) => {
|
||||
visibleValueEdit.value = true
|
||||
fromUpDate.id = data.row.id
|
||||
fromUpDate.enumTypeId = data.row.enumTypeId
|
||||
fromUpDate.value = data.row.value
|
||||
fromUpDate.description = data.row.description
|
||||
fromUpDate.orderNumber = data.row.orderNumber
|
||||
if(data.row.isActive==1){
|
||||
fromUpDate.isActive = true
|
||||
}else{
|
||||
fromUpDate.isActive = false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
enumTreeTypeList()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
$defaultHeaderHeight: 60px;
|
||||
@mixin searchInput($value) {
|
||||
margin-right: $value;
|
||||
width: 220px;
|
||||
height: 40px;
|
||||
}
|
||||
$paginationHeight: 32px;
|
||||
|
||||
.Enumeration{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.containerPart{
|
||||
height: 100%;
|
||||
.defaultAside{
|
||||
width: 260px;
|
||||
height: 100%;
|
||||
border-right: 1px solid #eaebed;
|
||||
.treeMain{
|
||||
.treeTitle{
|
||||
height:40px;
|
||||
background: #d0e5f2;
|
||||
line-height: 40px;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
border-radius: 4px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.defaultMainContainer{
|
||||
height: 100%;
|
||||
.defaultHeader{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: $defaultHeaderHeight;
|
||||
.searchPart {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.defaultBtn {
|
||||
height: 40px;
|
||||
}
|
||||
.searchInput {
|
||||
@include searchInput(10px);
|
||||
}
|
||||
}
|
||||
.tablePart {
|
||||
height: calc(100% - $paginationHeight);
|
||||
}
|
||||
}
|
||||
.el-form--inline .el-form-item{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue
Block a user