From ef31c9c82b52f10cd7f98427367e13b3237848de Mon Sep 17 00:00:00 2001
From: gaoluyang <gaoluyang@rengu.cc>
Date: 星期三, 12 二月 2025 10:17:52 +0800
Subject: [PATCH] 数据字典页面迁移
---
src/api/system/dict/type.js | 17 +-
src/views/system/dict/index.vue | 287 +++++++++++++++++------------------------------
2 files changed, 116 insertions(+), 188 deletions(-)
diff --git a/src/api/system/dict/type.js b/src/api/system/dict/type.js
index a7a6e01..481d76e 100644
--- a/src/api/system/dict/type.js
+++ b/src/api/system/dict/type.js
@@ -3,7 +3,7 @@
// 鏌ヨ瀛楀吀绫诲瀷鍒楄〃
export function listType(query) {
return request({
- url: '/system/dict/type/list',
+ url: '/enum/selectEnumList',
method: 'get',
params: query
})
@@ -20,7 +20,7 @@
// 鏂板瀛楀吀绫诲瀷
export function addType(data) {
return request({
- url: '/system/dict/type',
+ url: '/enum/addEnum',
method: 'post',
data: data
})
@@ -29,17 +29,18 @@
// 淇敼瀛楀吀绫诲瀷
export function updateType(data) {
return request({
- url: '/system/dict/type',
- method: 'put',
+ url: '/enum/upEnum',
+ method: 'post',
data: data
})
}
// 鍒犻櫎瀛楀吀绫诲瀷
-export function delType(dictId) {
+export function delType(data) {
return request({
- url: '/system/dict/type/' + dictId,
- method: 'delete'
+ url: '/enum/delEnum',
+ method: 'post',
+ data: data
})
}
@@ -57,4 +58,4 @@
url: '/system/dict/type/optionselect',
method: 'get'
})
-}
\ No newline at end of file
+}
diff --git a/src/views/system/dict/index.vue b/src/views/system/dict/index.vue
index 6ca5457..75a0081 100644
--- a/src/views/system/dict/index.vue
+++ b/src/views/system/dict/index.vue
@@ -1,58 +1,33 @@
<template>
<div class="app-container">
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
- <el-form-item label="瀛楀吀鍚嶇О" prop="dictName">
- <el-input
- v-model="queryParams.dictName"
- placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�"
- clearable
- style="width: 240px"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- <el-form-item label="瀛楀吀绫诲瀷" prop="dictType">
- <el-input
- v-model="queryParams.dictType"
- placeholder="璇疯緭鍏ュ瓧鍏哥被鍨�"
- clearable
- style="width: 240px"
- @keyup.enter.native="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select
- v-model="queryParams.status"
- placeholder="瀛楀吀鐘舵��"
- clearable
- style="width: 240px"
- >
- <el-option
- v-for="dict in dict.type.sys_normal_disable"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿">
- <el-date-picker
- v-model="dateRange"
- style="width: 240px"
- value-format="yyyy-MM-dd"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- ></el-date-picker>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
-
- <el-row :gutter="10" class="mb8">
- <el-col :span="1.5">
+ <div class="search_form">
+ <div>
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+ <el-form-item label="鍒嗙被" prop="category">
+ <el-input
+ v-model="queryParams.category"
+ placeholder="璇疯緭鍏ュ垎绫�"
+ clearable
+ style="width: 240px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="label">
+ <el-input
+ v-model="queryParams.label"
+ placeholder="璇疯緭鍏ユ爣棰�"
+ clearable
+ style="width: 240px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div style="margin-top: 3px">
<el-button
type="primary"
plain
@@ -61,75 +36,21 @@
@click="handleAdd"
v-hasPermi="['system:dict:add']"
>鏂板</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="success"
- plain
- icon="el-icon-edit"
- size="mini"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['system:dict:edit']"
- >淇敼</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="danger"
- plain
- icon="el-icon-delete"
- size="mini"
- :disabled="multiple"
- @click="handleDelete"
- v-hasPermi="['system:dict:remove']"
- >鍒犻櫎</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="warning"
- plain
- icon="el-icon-download"
- size="mini"
- @click="handleExport"
- v-hasPermi="['system:dict:export']"
- >瀵煎嚭</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="danger"
- plain
- icon="el-icon-refresh"
- size="mini"
- @click="handleRefreshCache"
- v-hasPermi="['system:dict:remove']"
- >鍒锋柊缂撳瓨</el-button>
- </el-col>
- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
- </el-row>
+ </div>
+ </div>
- <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55" align="center" />
- <el-table-column label="瀛楀吀缂栧彿" align="center" prop="dictId" />
- <el-table-column label="瀛楀吀鍚嶇О" align="center" prop="dictName" :show-overflow-tooltip="true" />
- <el-table-column label="瀛楀吀绫诲瀷" align="center" :show-overflow-tooltip="true">
- <template slot-scope="scope">
- <router-link :to="'/system/dict-data/index/' + scope.row.dictId" class="link-type">
- <span>{{ scope.row.dictType }}</span>
- </router-link>
- </template>
- </el-table-column>
- <el-table-column label="鐘舵��" align="center" prop="status">
- <template slot-scope="scope">
- <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
- </template>
- </el-table-column>
- <el-table-column label="澶囨敞" align="center" prop="remark" :show-overflow-tooltip="true" />
- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180">
- <template slot-scope="scope">
- <span>{{ parseTime(scope.row.createTime) }}</span>
- </template>
- </el-table-column>
- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <el-table v-loading="loading" :data="typeList">
+ <el-table-column label="搴忓彿" align="center" prop="dictId" width="60px"/>
+ <el-table-column label="鍒嗙被" align="center" prop="category" />
+ <el-table-column label="鏍囬" align="center" prop="label" > </el-table-column>
+ <el-table-column label="鍙傛暟" align="center" prop="value"></el-table-column>
+ <el-table-column label="浼樺厛绾�" align="center" prop="orderNum" />
+ <el-table-column label="绫诲瀷" align="center" prop="type"></el-table-column>
+ <el-table-column label="鍒涘缓鐢ㄦ埛" align="center" prop="createUserName" show-overflow-tooltip></el-table-column>
+ <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" show-overflow-tooltip></el-table-column>
+ <el-table-column label="鏇存柊鐢ㄦ埛" align="center" prop="updateUserName"></el-table-column>
+ <el-table-column label="鏇存柊鏃堕棿" align="center" prop="updateTime" show-overflow-tooltip></el-table-column>
+ <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="100px">
<template slot-scope="scope">
<el-button
size="mini"
@@ -148,35 +69,33 @@
</template>
</el-table-column>
</el-table>
-
<pagination
v-show="total>0"
:total="total"
- :page.sync="queryParams.pageNum"
- :limit.sync="queryParams.pageSize"
+ :page.sync="page.current"
+ :limit.sync="page.size"
@pagination="getList"
/>
<!-- 娣诲姞鎴栦慨鏀瑰弬鏁伴厤缃璇濇 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
- <el-form-item label="瀛楀吀鍚嶇О" prop="dictName">
- <el-input v-model="form.dictName" placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" />
+ <el-form-item label="鍒嗙被" prop="category">
+ <el-input v-model="form.category" placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" />
</el-form-item>
- <el-form-item label="瀛楀吀绫诲瀷" prop="dictType">
- <el-input v-model="form.dictType" placeholder="璇疯緭鍏ュ瓧鍏哥被鍨�" />
+ <el-form-item label="鏍囬" prop="label">
+ <el-input v-model="form.label" placeholder="璇疯緭鍏ュ瓧鍏哥被鍨�" />
</el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-radio-group v-model="form.status">
- <el-radio
- v-for="dict in dict.type.sys_normal_disable"
- :key="dict.value"
- :label="dict.value"
- >{{dict.label}}</el-radio>
- </el-radio-group>
+ <el-form-item label="鍙傛暟" prop="value">
+ <el-input v-model="form.value" placeholder="璇疯緭鍏ュ瓧鍏哥被鍨�" />
</el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+ <el-form-item label="浼樺厛绾�" prop="orderNum">
+ <el-input v-model="form.orderNum" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+ </el-form-item>
+ <el-form-item label="绫诲瀷" prop="type">
+ <el-select clearable v-model="form.type" placeholder="璇烽�夋嫨绫诲瀷" style="width:100%">
+ <el-option v-for="item in enumByCategoryOptions" :key="item.value" :value="item.value" :label="item.label"></el-option>
+ </el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -188,7 +107,13 @@
</template>
<script>
-import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
+import {
+ listType,
+ getType,
+ delType,
+ addType,
+ updateType,
+} from "@/api/system/dict/type";
export default {
name: "Dict",
@@ -213,27 +138,40 @@
title: "",
// 鏄惁鏄剧ず寮瑰嚭灞�
open: false,
- // 鏃ユ湡鑼冨洿
- dateRange: [],
// 鏌ヨ鍙傛暟
queryParams: {
- pageNum: 1,
- pageSize: 10,
- dictName: undefined,
- dictType: undefined,
- status: undefined
+ category: undefined,
+ label: undefined,
+ orderBy: {
+ field: 'category,order_num,id',
+ order: 'asc'
+ }
+ },
+ page: {
+ current: 1,
+ size: 20,
},
// 琛ㄥ崟鍙傛暟
form: {},
// 琛ㄥ崟鏍¢獙
rules: {
- dictName: [
- { required: true, message: "瀛楀吀鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ category: [
+ { required: true, message: "璇峰~鍐欏垎绫�", trigger: "blur" }
],
- dictType: [
- { required: true, message: "瀛楀吀绫诲瀷涓嶈兘涓虹┖", trigger: "blur" }
+ label: [
+ { required: true, message: "璇峰~鍐欐爣棰�", trigger: "blur" }
+ ],
+ value: [
+ { required: true, message: "璇峰~鍐欏弬鏁�", trigger: "blur" }
]
- }
+ },
+ enumByCategoryOptions: [
+ {value:'', label:'榛樿'},
+ {value:'success', label:'鎴愬姛'},
+ {value:'info', label:'淇℃伅'},
+ {value:'warning', label:'璀﹀憡'},
+ {value:'danger', label:'閿欒'},
+ ]
};
},
created() {
@@ -243,12 +181,14 @@
/** 鏌ヨ瀛楀吀绫诲瀷鍒楄〃 */
getList() {
this.loading = true;
- listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+ listType(this.pages, this.queryParams).then(response => {
this.typeList = response.rows;
this.total = response.total;
this.loading = false;
}
- );
+ ).catch(error => {
+ this.loading = false;
+ })
},
// 鍙栨秷鎸夐挳
cancel() {
@@ -259,21 +199,21 @@
reset() {
this.form = {
dictId: undefined,
- dictName: undefined,
- dictType: undefined,
- status: "0",
- remark: undefined
+ category: undefined,
+ label: undefined,
+ value: undefined,
+ orderNum: undefined,
+ type: undefined,
};
this.resetForm("form");
},
/** 鎼滅储鎸夐挳鎿嶄綔 */
handleQuery() {
- this.queryParams.pageNum = 1;
+ this.page.current = 1;
this.getList();
},
/** 閲嶇疆鎸夐挳鎿嶄綔 */
resetQuery() {
- this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
@@ -282,12 +222,6 @@
this.reset();
this.open = true;
this.title = "娣诲姞瀛楀吀绫诲瀷";
- },
- // 澶氶�夋閫変腑鏁版嵁
- handleSelectionChange(selection) {
- this.ids = selection.map(item => item.dictId)
- this.single = selection.length!=1
- this.multiple = !selection.length
},
/** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
@@ -323,25 +257,18 @@
handleDelete(row) {
const dictIds = row.dictId || this.ids;
this.$modal.confirm('鏄惁纭鍒犻櫎瀛楀吀缂栧彿涓�"' + dictIds + '"鐨勬暟鎹」锛�').then(function() {
- return delType(dictIds);
+ return delType({id: dictIds});
}).then(() => {
this.getList();
this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
}).catch(() => {});
},
- /** 瀵煎嚭鎸夐挳鎿嶄綔 */
- handleExport() {
- this.download('system/dict/type/export', {
- ...this.queryParams
- }, `type_${new Date().getTime()}.xlsx`)
- },
- /** 鍒锋柊缂撳瓨鎸夐挳鎿嶄綔 */
- handleRefreshCache() {
- refreshCache().then(() => {
- this.$modal.msgSuccess("鍒锋柊鎴愬姛");
- this.$store.dispatch('dict/cleanDict');
- });
- }
}
};
-</script>
\ No newline at end of file
+</script>
+<style scoped lang="scss">
+.search_form {
+ display: flex;
+ justify-content: space-between;
+}
+</style>
--
Gitblit v1.9.3