Files
django-vue3-admin/web/src/stores/dictionary.ts

53 lines
1.4 KiB
TypeScript

import { defineStore } from 'pinia';
import { DictionaryStates } from './interface';
import { request } from '../utils/service';
export const urlPrefix = '/api/init/dictionary/'
export const BUTTON_VALUE_TO_COLOR_MAPPING: any = {
1: 'success',
true: 'success',
0: 'danger',
false: 'danger',
Search: 'warning', // 查询
Update: 'primary', // 编辑
Create: 'success', // 新增
Retrieve: 'info', // 单例
Delete: 'danger' // 删除
}
export function getButtonSettings(objectSettings: any) {
return objectSettings.map((item: any) => ({
label: item.label,
value: item.value,
color: item.color || BUTTON_VALUE_TO_COLOR_MAPPING[item.value]
}))
}
/**
* 字典管理数据
* @methods getSystemDictionarys 获取系统字典数据
*/
export const DictionaryStore = defineStore('Dictionary', {
state: (): DictionaryStates => ({
data: {}
}),
actions: {
async getSystemDictionarys() {
request({
url: '/api/init/dictionary/?dictionary_key=all',
method: 'get',
}).then((ret: {
data: []
}) => {
// 转换数据格式并保存到pinia
let dataList = ret.data
dataList.forEach((item: any) => {
let childrens = item.children
this.data[item.value] = childrens
})
})
},
},
});