mirror of
https://github.com/yangzongzhuan/RuoYi-App.git
synced 2025-09-27 22:52:40 +00:00
新增字典通用获取方法useDict
This commit is contained in:
52
api/system/dict/data.js
Normal file
52
api/system/dict/data.js
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询字典数据列表
|
||||||
|
export function listData(query) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/data/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询字典数据详细
|
||||||
|
export function getData(dictCode) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/data/' + dictCode,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据字典类型查询字典数据信息
|
||||||
|
export function getDicts(dictType) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/data/type/' + dictType,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增字典数据
|
||||||
|
export function addData(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/data',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改字典数据
|
||||||
|
export function updateData(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/data',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除字典数据
|
||||||
|
export function delData(dictCode) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/data/' + dictCode,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
60
api/system/dict/type.js
Normal file
60
api/system/dict/type.js
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询字典类型列表
|
||||||
|
export function listType(query) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/type/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询字典类型详细
|
||||||
|
export function getType(dictId) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/type/' + dictId,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增字典类型
|
||||||
|
export function addType(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/type',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改字典类型
|
||||||
|
export function updateType(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/type',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除字典类型
|
||||||
|
export function delType(dictId) {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/type/' + dictId,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 刷新字典缓存
|
||||||
|
export function refreshCache() {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/type/refreshCache',
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取字典选择框列表
|
||||||
|
export function optionselect() {
|
||||||
|
return request({
|
||||||
|
url: '/system/dict/type/optionselect',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
2
main.js
2
main.js
@@ -3,10 +3,12 @@ import App from './App'
|
|||||||
import store from './store' // store
|
import store from './store' // store
|
||||||
import { install } from './plugins' // plugins
|
import { install } from './plugins' // plugins
|
||||||
import './permission' // permission
|
import './permission' // permission
|
||||||
|
import { useDict } from '@/utils/dict'
|
||||||
|
|
||||||
export function createApp() {
|
export function createApp() {
|
||||||
const app = createSSRApp(App)
|
const app = createSSRApp(App)
|
||||||
app.use(store)
|
app.use(store)
|
||||||
|
app.config.globalProperties.useDict = useDict
|
||||||
install(app)
|
install(app)
|
||||||
return {
|
return {
|
||||||
app
|
app
|
||||||
|
56
store/modules/dict.js
Normal file
56
store/modules/dict.js
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import { defineStore } from "pinia"
|
||||||
|
|
||||||
|
const useDictStore = defineStore("dict", {
|
||||||
|
state: () => ({
|
||||||
|
dict: new Array(),
|
||||||
|
}),
|
||||||
|
actions: {
|
||||||
|
// 获取字典
|
||||||
|
getDict(_key) {
|
||||||
|
if (_key == null && _key == "") {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
for (let i = 0; i < this.dict.length; i++) {
|
||||||
|
if (this.dict[i].key == _key) {
|
||||||
|
return this.dict[i].value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 设置字典
|
||||||
|
setDict(_key, value) {
|
||||||
|
if (_key !== null && _key !== "") {
|
||||||
|
this.dict.push({
|
||||||
|
key: _key,
|
||||||
|
value: value,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 删除字典
|
||||||
|
removeDict(_key) {
|
||||||
|
var bln = false;
|
||||||
|
try {
|
||||||
|
for (let i = 0; i < this.dict.length; i++) {
|
||||||
|
if (this.dict[i].key == _key) {
|
||||||
|
this.dict.splice(i, 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
bln = false;
|
||||||
|
}
|
||||||
|
return bln;
|
||||||
|
},
|
||||||
|
// 清空字典
|
||||||
|
cleanDict() {
|
||||||
|
this.dict = new Array();
|
||||||
|
},
|
||||||
|
// 初始字典
|
||||||
|
initDict() {},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export default useDictStore
|
26
utils/dict.js
Normal file
26
utils/dict.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import useDictStore from "@/store/modules/dict";
|
||||||
|
import { getDicts } from "@/api/system/dict/data";
|
||||||
|
import { ref, toRefs } from "vue";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取字典数据
|
||||||
|
*/
|
||||||
|
export function useDict(...args) {
|
||||||
|
const res = ref({});
|
||||||
|
return (() => {
|
||||||
|
args.forEach((dictType, index) => {
|
||||||
|
res.value[dictType] = [];
|
||||||
|
const dicts = useDictStore().getDict(dictType);
|
||||||
|
if (dicts) {
|
||||||
|
alert(1)
|
||||||
|
res.value[dictType] = dicts;
|
||||||
|
} else {
|
||||||
|
getDicts(dictType).then((resp) => {
|
||||||
|
res.value[dictType] = resp.data.map((p) => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass }));
|
||||||
|
useDictStore().setDict(dictType, res.value[dictType]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return toRefs(res.value);
|
||||||
|
})()
|
||||||
|
}
|
Reference in New Issue
Block a user