222
schangxiang@126.com
2025-04-30 9bec4dcae002f36aa23231da11cb03a156b40110
PipeLineLems/web/src/libs/Base/Base.ts
@@ -1,26 +1,30 @@
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))
    }
  }
@@ -28,7 +32,7 @@
   * 全局状态
   */
  //@ts-ignore
  static globalState: Record<string, any> = globalState
  static globalState = globalState
  /**
   * 请求request,request.get request.post...
   */
@@ -68,6 +72,48 @@
    }
  }
  /**
   * 获取用户设置
   */
  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
@@ -102,16 +148,17 @@
    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, '变量查询接口报错,暂停请求')
    // }
  }
  /**
   * 清理全局参数
@@ -154,7 +201,7 @@
   * @param key key
   * @returns any
   */
  getState(key: string | any) {
  getState(key: string | symbol) {
    return Base.globalState[key]
  }
  /**
@@ -163,7 +210,7 @@
   * @param value value
   * @returns void
   */
  setState(key: string | any, value: any) {
  setState(key: string | symbol, value: any) {
    return (Base.globalState[key] = ref(value))
  }
@@ -187,5 +234,7 @@
    return sdk.userInfo || {}
  }
  static userInfo = sdk.userInfo || {}
  // useVModels
}