import { getAllSelectList } from "~/service/business/codeTable";
const store = {
	state: {
		dbCodeParams: {},
		timer: null
	},
	mutations: {
		updateDbCodeParams(state, parsms) {
			state.dbCodeParams = parsms
		},
		updateTimer(state, parsms) {
			state.timer = parsms
		}
	},
	actions: {
		getDbCodeData({ commit, state }, payload) {
			let dbCodeParams = state.dbCodeParams
			let args = payload.args
			let curDbCodeStr = `${args.codeType}_${args.uil}_${args.sort}`
			if (!dbCodeParams[curDbCodeStr]) {
				dbCodeParams[curDbCodeStr] = args
			}
			clearTimeout(state.timer)
			commit('updateTimer', null)
			state.timer = setTimeout(() => {
				getAllSelectList(dbCodeParams).then(res => {
					if (res.respCode == SUCCESS) {
						commit('updateDbCodeParams', {})
						let keyList = Object.keys(res.data)
						keyList.map((item) => {
							let curList = res.data[item].map((cod) => {
								return {
									value: cod.codeValue,
              		label: cod.codeName
								}
							})
							let localNewData = ''
							if (payload.isCache) {
								let dataOld = localStorage.getItem("localCodes") ? JSON.parse(localStorage.getItem("localCodes")) : {};
								localNewData = JSON.stringify({
									...dataOld,
									[item]: curList
								});
								localStorage.setItem("localCodes", localNewData);
							} else {
								let dataOld = localStorage.getItem("localCodes") ? JSON.parse(localStorage.getItem("localCodes")) : {};
								localNewData = JSON.stringify({
									...dataOld,
									[item]: null
								});
							}
							localStorage.setItem("localCodes", localNewData);
						})
					}
				})
			}, 1000)
		}
	}
}
export default store;