2023-08-06 16:50:17 +08:00
|
|
|
|
import request from '../api'
|
2023-08-08 11:08:09 +08:00
|
|
|
|
import store from '../store'
|
|
|
|
|
|
import { Message } from 'element-ui'
|
2023-08-06 16:50:17 +08:00
|
|
|
|
|
|
|
|
|
|
const dict = {
|
|
|
|
|
|
url: "/dictionary/queryValsByCodeList",
|
|
|
|
|
|
loading: [],
|
|
|
|
|
|
resolves: [],
|
|
|
|
|
|
getStorage() {
|
|
|
|
|
|
const dicts = JSON.parse(localStorage.getItem('dicts') || null)
|
|
|
|
|
|
return dicts?.data || dicts || [];
|
|
|
|
|
|
},
|
|
|
|
|
|
setUrl(v) {
|
|
|
|
|
|
this.url = v
|
|
|
|
|
|
},
|
|
|
|
|
|
getData(codeList) {
|
|
|
|
|
|
codeList = [codeList].flat().filter(Boolean).toString()
|
|
|
|
|
|
return request.post(this.url, null, {
|
|
|
|
|
|
withoutToken: true, params: {codeList}
|
|
|
|
|
|
}).then(res => res?.data && this.setStorage(res.data))
|
|
|
|
|
|
},
|
|
|
|
|
|
load(...code) {
|
|
|
|
|
|
return new Promise(resolve => {
|
|
|
|
|
|
this.resolves.push(resolve)
|
|
|
|
|
|
if (this.loading.length == 2) {
|
|
|
|
|
|
const [timer, codes] = this.loading;
|
|
|
|
|
|
clearTimeout(timer)
|
|
|
|
|
|
code = Array.from(new Set([codes, code].flat()))
|
|
|
|
|
|
}
|
|
|
|
|
|
const timer = setTimeout(() => {
|
|
|
|
|
|
this.getData(code).then(() => Promise.all(this.resolves.map(e => e())).then(() => this.resolves = []))
|
|
|
|
|
|
}, 500)
|
|
|
|
|
|
this.loading = [timer, code]
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
setStorage(data) {
|
|
|
|
|
|
let ds = this.getStorage()
|
|
|
|
|
|
data.map(p => {
|
|
|
|
|
|
if (ds.some(d => d.key == p.key)) {
|
|
|
|
|
|
const index = ds.findIndex(d => d.key == p.key)
|
|
|
|
|
|
ds.splice(index, 1, p)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
ds.push(p)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
localStorage.setItem("dicts", JSON.stringify([ds].flat()))
|
|
|
|
|
|
},
|
|
|
|
|
|
getDict(key) {
|
|
|
|
|
|
let dict = this.getStorage().find(e => e.key == key)
|
|
|
|
|
|
!dict && console.warn("字典%s缺少加载...", key)
|
|
|
|
|
|
return dict ? dict.values : []
|
|
|
|
|
|
},
|
|
|
|
|
|
getValue(key, label) {
|
|
|
|
|
|
let dict = this.getDict(key)
|
|
|
|
|
|
if (dict) {
|
|
|
|
|
|
let item = dict.find(v => v.dictName == label)
|
|
|
|
|
|
return item ? item.dictValue : label
|
|
|
|
|
|
} else return label
|
|
|
|
|
|
},
|
|
|
|
|
|
getLabel(key, value) {
|
|
|
|
|
|
let dict = this.getDict(key)
|
|
|
|
|
|
if (dict) {
|
|
|
|
|
|
let item = dict.find(v => v.dictValue == value)
|
|
|
|
|
|
return item ? item.dictName : value
|
|
|
|
|
|
} else return value
|
|
|
|
|
|
},
|
|
|
|
|
|
getColor(key, value) {
|
|
|
|
|
|
let dict = this.getDict(key)
|
|
|
|
|
|
if (dict) {
|
|
|
|
|
|
let item = dict.find(v => v.dictValue == value)
|
|
|
|
|
|
return item ? item.dictColor : value
|
|
|
|
|
|
} else return value
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const dateUtil = {
|
|
|
|
|
|
timestampToTime(timestamp) {
|
|
|
|
|
|
// 时间戳为10位需*1000,时间戳为13位不需乘1000
|
|
|
|
|
|
let date = new Date(timestamp);
|
|
|
|
|
|
let Y = date.getFullYear() + "-";
|
|
|
|
|
|
let M =
|
|
|
|
|
|
(date.getMonth() + 1 < 10
|
|
|
|
|
|
? "0" + (date.getMonth() + 1)
|
|
|
|
|
|
: date.getMonth() + 1) + "-";
|
|
|
|
|
|
let D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
|
|
|
|
|
|
let h = date.getHours() + ":";
|
|
|
|
|
|
let m = date.getMinutes() + ":";
|
|
|
|
|
|
let s = date.getSeconds();
|
|
|
|
|
|
return Y + M + D + h + m + s;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-08-08 11:08:09 +08:00
|
|
|
|
const userCheck = () => {
|
|
|
|
|
|
store.dispatch('getUserInfo').then(res => {
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
|
if (res.data.flag != 1) {
|
|
|
|
|
|
Message.error('您的账号未激活或已失效,请激活后使用')
|
|
|
|
|
|
this.$store.commit('setActiveDlgShow', true)
|
|
|
|
|
|
reject('您的账号未激活或已失效,请激活后使用')
|
|
|
|
|
|
return false
|
|
|
|
|
|
}
|
|
|
|
|
|
if (res.data.type != 4 && this.$store.state.mallId != this.$store.state.userInfo.mallId) {
|
|
|
|
|
|
Message.error('您当前登录的TEMU账号与会员绑定账号不一致')
|
|
|
|
|
|
reject('您当前登录的TEMU账号与会员绑定账号不一致')
|
|
|
|
|
|
return false
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resolve(res.data)
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-08-06 16:50:17 +08:00
|
|
|
|
export default {
|
|
|
|
|
|
dict,
|
|
|
|
|
|
dateUtil,
|
2023-08-08 11:08:09 +08:00
|
|
|
|
userCheck
|
2023-08-06 16:50:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|