You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ocr-web/src/store/modules/dictonary.ts

300 lines
8.2 KiB

import { defineStore } from 'pinia'
import { store } from '@/store'
import { getBackList, getBusinessList, getIzShowList, getIztaskstatusList, getPictureTypeList, getRegionList, getRejectList, getRelationTypeList, getTFList, getizstatusList, getizApprovalStatusList } from '@/api/dictionary'
export interface DictionaryState {
regionList: any
pictureTypeList: any
personList: any
planList: any
tfList: any
izShowList: any
izProjectList: any
iztaskrromList: any
iztaskstatusList: any
izvisitproList: any
izfirmList: any
izproductnameList: any
izCustomtypeList: any
izcustomnameList: any
izcustomlevelList: any
izprojecttypeList: any
izvisitcityList: any
rejectList: any
backList: any
relationTypeList: any
izstatusList: any
izApprovalStatusList: any
}
export const useDictionaryStore = defineStore({
id: 'app-dictionary',
state: (): DictionaryState => ({
tfList: null,
regionList: null,
pictureTypeList: null,
personList: null,
planList: null,
izShowList: null,
izProjectList: null,
iztaskrromList: null,
iztaskstatusList: null,
izvisitproList: null,
izfirmList: null,
izproductnameList: null,
izcustomnameList: null,
izCustomtypeList: null,
izcustomlevelList: null,
izprojecttypeList: null,
izvisitcityList: null,
rejectList: null,
backList: null,
relationTypeList: null,
izstatusList: null,
izApprovalStatusList: null,
}),
getters: {
getRegionList: (state) => {
return state.regionList
},
getizpicturetype: (state) => {
return state.pictureTypeList
},
getizplan: (state) => {
return state.planList
},
getizupuser: (state) => {
return state.personList
},
getizshow: (state) => {
return state.izShowList
},
getizproject: (state) => {
return state.izProjectList
},
getiztaskrrom: (state) => {
return state.iztaskrromList
},
getiztaskstatus: (state) => {
return state.iztaskstatusList
},
getizvisitpro: (state) => {
return state.izvisitproList
},
getizfirm: (state) => {
return state.izfirmList
},
getizproductname: (state) => {
return state.izproductnameList
},
getizcustomname: (state) => {
return state.izcustomnameList
},
getizcustomtype: (state) => {
return state.izCustomtypeList
},
getizcustomlevel: (state) => {
return state.izcustomlevelList
},
getizprojecttype: (state) => {
return state.izprojecttypeList
},
getizstatus: (state) => {
return state.izstatusList
},
getizApprovalStatus: (state) => {
return state.izApprovalStatusList
}
},
actions: {
initData(){
this.fetchRegionList();
this.fetchPictureTypeList();
this.fetchPersionList();
this.fetchPlanList();
this.fetchTFList();
this.fetchIzShowList();
this.fetchIzProjectList();
this.fetchIztaskrromList();
this.fetchIztaskstatusList();
this.fetchIzvisitproList();
this.fetchIzfirmList();
this.fetchIzproductnameList();
this.fetchizcustomnameList();
this.fetchIzCustomtypeList();
this.fetchIzcustomlevelList();
this.fetchizizprojecttypeList();
this.fetchizvisitcityList();
this.fetchRejectList();
this.fetchBackList();
this.fetchRelationTypeList();
this.fetchizstatusListt();
this.fetchizApprovalStatusList();
},
settfList(config) {
this.tfList = config
},
// 获取地区列表
async fetchRegionList() {
const list = await getRegionList()
this.regionList = generateOptions(list, 'id', 'cityname')
return this.regionList
},
// 获取图片类型列表
async fetchPictureTypeList() {
const list = await getPictureTypeList()
this.pictureTypeList = generateOptions2(list, 'id', 'typename')
return this.pictureTypeList
},
// 获取提报人列表
async fetchPersionList() {
const list = await getBusinessList('person')
this.personList = list
return this.personList
},
// 获取计划列表
async fetchPlanList() {
const list = await getBusinessList('plan')
this.planList = list
return this.planList
},
// 获取图片真假原因
async fetchTFList() {
const list = await getTFList()
this.tfList = generateOptions2(list)
return this.tfList
},
// 分类列表
async fetchIzShowList() {
const list = await getIzShowList()
this.izShowList = generateOptions2(list, 'id', 'classname')
return this.izShowList
},
// 所属项目
async fetchIzProjectList() {
const list = await getBusinessList('project')
this.izProjectList = list
return this.izProjectList
},
// 任务来源
async fetchIztaskrromList() {
const list = await getBusinessList('iztaskrrom')
this.iztaskrromList = list
return this.iztaskrromList
},
// 任务状态
async fetchIztaskstatusList() {
const list = await getBusinessList('iztaskstatus')
this.iztaskstatusList = list
return this.iztaskstatusList
},
// 地区(省信息)
async fetchIzvisitproList() {
const list = await getBusinessList('izvisitpro')
this.izvisitproList = list
return this.izvisitproList
},
// 厂商
async fetchIzfirmList() {
const list = await getBusinessList('izfirm')
this.izfirmList = list
return this.izfirmList
},
// 产品名称
async fetchIzproductnameList() {
const list = await getBusinessList('izproductname')
this.izproductnameList = list
return this.izproductnameList
},
// 客户名称
async fetchizcustomnameList() {
const list = await getBusinessList('izcustomname')
this.izcustomnameList = list
return this.izcustomnameList
},
// 客户类型
async fetchIzCustomtypeList() {
const list = await getBusinessList('izcustomtype')
this.izCustomtypeList = list
return this.izCustomtypeList
},
// 客户级别
async fetchIzcustomlevelList() {
const list = await getBusinessList('izcustomlevel')
this.izcustomlevelList = list
return this.izcustomlevelList
},
// 项目类别
async fetchizizprojecttypeList() {
const list = await getBusinessList('izprojecttype')
this.izprojecttypeList = list
return this.izprojecttypeList
},
// 发布地区
async fetchizvisitcityList() {
const list = await getBusinessList('izvisitcity')
this.izvisitcityList = list
return this.izvisitcityList
},
// 拒绝原因
async fetchRejectList() {
const list = await getRejectList()
this.rejectList = generateOptions(list)
return this.rejectList
},
// 退回方式
async fetchBackList() {
const list = await getBackList()
this.backList = generateOptions2(list)
return this.backList
},
// 退回方式
async fetchRelationTypeList() {
const list = await getRelationTypeList()
this.relationTypeList = generateOptions2(list, 'content', 'name')
return this.relationTypeList
},
// 审核状态
async fetchizstatusListt() {
const list = await getizstatusList()
this.izstatusList = generateOptions2(list, 'codeno', 'name')
return this.izstatusList
},
// 审核状态(任务审核模块)
async fetchizApprovalStatusList() {
const list = await getizApprovalStatusList()
this.izApprovalStatusList = generateOptions2(list, 'codeno', 'name')
return this.izApprovalStatusList
},
},
})
// Need to be used outside the setup
export function useDictionary() {
return useDictionaryStore(store)
}
// label和value都是name,不用id
function generateOptions(list: any[], valueKey: string = 'id', labelKey: string = 'name') {
const items = list || []
return items.map((item) => {
return {
label: item[labelKey] || 'todo',
value: item[labelKey] || 'todo',
}
})
}
// label是name,value是id
function generateOptions2(list: any[], valueKey: string = 'id', labelKey: string = 'name') {
const items = list || []
return items.map((item) => {
return {
label: item[labelKey] || 'todo',
value: item[valueKey] || 'todo',
}
})
}