| | |
| | | import sdk from 'sdk' |
| | | import { ref, reactive, Ref, computed, onMounted, nextTick } from 'vue' |
| | | import { Create } from '@/libs/Create/Create' |
| | | import { globalState } from '../Store/Store' |
| | | import { globalState } from '../Store/globalState' |
| | | const { request } = sdk.utils |
| | | // @ts-ignore |
| | | import compose from 'koa-compose' |
| | | import { ConfigureCodeMap, SwappedConfigureCodeMap } from '@/libs/system-enum' |
| | | import { getSettings } from '@/api/common-enum' |
| | | interface SettingType { |
| | | settings: { |
| | | name: string |
| | | value: string |
| | | }[] |
| | | } |
| | | |
| | | let composeMiddleArray: any = [] |
| | | |
| | | let flag = 0 |
| | | |
| | | export class Base< |
| | | T extends { |
| | | [key: string]: any |
| | | } = {} |
| | | > { |
| | | export class Base<T extends {} = {}> { |
| | | // 状态 |
| | | [key: string]: any |
| | | constructor(initState?: T) { |
| | | if (initState) { |
| | | this.initState(initState) |
| | | // this.getVariable() |
| | | this.getVariable() |
| | | this.onMounted && onMounted(this.onMounted.bind(this)) |
| | | } |
| | | } |
| | |
| | | * 全局状态 |
| | | */ |
| | | //@ts-ignore |
| | | static globalState: Record<string, any> = globalState |
| | | static globalState = globalState |
| | | /** |
| | | * 请求request,request.get request.post... |
| | | */ |
| | |
| | | } |
| | | } |
| | | /** |
| | | * 获取用户设置 |
| | | */ |
| | | async getFormDataBySettings() { |
| | | const { settings }: SettingType = (await getSettings()) || { |
| | | settings: [], |
| | | } |
| | | const formData: Record<string, any> = {} |
| | | settings.forEach((item: any) => { |
| | | const key = SwappedConfigureCodeMap[item.name] |
| | | if (key) { |
| | | if (typeof item.name === ConfigureCodeMap.ProductionLineSegment) { |
| | | try { |
| | | item.value = JSON.parse(item.value) |
| | | formData[key] = item.value |
| | | } catch (error) { |
| | | item.value = [] |
| | | } |
| | | } else { |
| | | try { |
| | | if (this.isStringAnObject(item.value)) { |
| | | formData[key] = JSON.parse(item.value) |
| | | } else { |
| | | formData[key] = item.value |
| | | } |
| | | } catch (error) { |
| | | formData[key] = [] |
| | | console.error(error) |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | console.log(settings, formData, 'settings') |
| | | return formData |
| | | } |
| | | |
| | | /** |
| | | * 初始化系统配置 |
| | | */ |
| | | private async initSystemConfig() { |
| | | this.baseSystemConfig.value = await this.getFormDataBySettings() |
| | | } |
| | | /** |
| | | * 根据name获取变量ID |
| | | * @param name |
| | | * @returns |
| | |
| | | this.clear() |
| | | // 缓存一分钟,如果下次重新请求,则更新 |
| | | if (size > 0 && Date.now() - t < Base.CACHE_TIME) return next && next() |
| | | try { |
| | | const vars = await request.get('/api/v1/variable/query') |
| | | const varMap = this.transformArrayToMap(vars.result) |
| | | this.setState(Base.CACHE_KEY, Date.now()) |
| | | this.setState(Base.MAP_KEY, varMap) |
| | | next && next() |
| | | } catch (error) { |
| | | // next() |
| | | console.error(error, '变量查询接口报错,暂停请求') |
| | | } |
| | | // 去除获取变量 |
| | | // try { |
| | | // const vars = await request.get('/api/v1/variable/query') |
| | | // const varMap = this.transformArrayToMap(vars.result) |
| | | // this.setState(Base.CACHE_KEY, Date.now()) |
| | | // this.setState(Base.MAP_KEY, varMap) |
| | | // next && next() |
| | | // } catch (error) { |
| | | // // next() |
| | | // console.error(error, '变量查询接口报错,暂停请求') |
| | | // } |
| | | } |
| | | /** |
| | | * 清理全局参数 |
| | |
| | | * @param key key |
| | | * @returns any |
| | | */ |
| | | getState(key: string | any) { |
| | | getState(key: string | symbol) { |
| | | return Base.globalState[key] |
| | | } |
| | | /** |
| | |
| | | * @param value value |
| | | * @returns void |
| | | */ |
| | | setState(key: string | any, value: any) { |
| | | setState(key: string | symbol, value: any) { |
| | | return (Base.globalState[key] = ref(value)) |
| | | } |
| | | |
| | |
| | | return sdk.userInfo || {} |
| | | } |
| | | |
| | | static userInfo = sdk.userInfo || {} |
| | | |
| | | // useVModels |
| | | } |