53 lines
1.4 KiB
TypeScript
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
|
|
})
|
|
})
|
|
},
|
|
},
|
|
});
|