From 3500a34fc17827eef64ca0b7e4b2a3121b24ab5b Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周二, 29 4月 2025 17:33:29 +0800
Subject: [PATCH] 去掉生成的代码
---
HIAWms/web/src/libs/Base/Base.ts | 191 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 191 insertions(+), 0 deletions(-)
diff --git a/HIAWms/web/src/libs/Base/Base.ts b/HIAWms/web/src/libs/Base/Base.ts
new file mode 100644
index 0000000..b3329ef
--- /dev/null
+++ b/HIAWms/web/src/libs/Base/Base.ts
@@ -0,0 +1,191 @@
+import sdk from 'sdk'
+import { ref, reactive, Ref, computed, onMounted, nextTick } from 'vue'
+import { Create } from '@/libs/Create/Create'
+import { globalState } from '../Store/Store'
+const { request } = sdk.utils
+// @ts-ignore
+import compose from 'koa-compose'
+
+let composeMiddleArray: any = []
+
+let flag = 0
+
+export class Base<
+ T extends {
+ [key: string]: any
+ } = {}
+> {
+ // 鐘舵��
+ [key: string]: any
+ constructor(initState?: T) {
+ if (initState) {
+ this.initState(initState)
+ // this.getVariable()
+ this.onMounted && onMounted(this.onMounted.bind(this))
+ }
+ }
+ /**
+ * 鍏ㄥ眬鐘舵��
+ */
+ //@ts-ignore
+ static globalState: Record<string, any> = globalState
+ /**
+ * 璇锋眰request锛宺equest.get request.post...
+ */
+ static request = request
+
+ /**
+ * 鍙橀噺key
+ */
+ static MAP_KEY = 'varMap'
+
+ /**
+ * 缂撳瓨鏃堕棿KEY
+ */
+ static CACHE_KEY = 'cacheKey'
+
+ /**
+ * 缂撳瓨鏃堕暱锛岀洰鍓�5鍒嗛挓
+ */
+ static CACHE_TIME = 5 * 60 * 1000
+
+ /**
+ * 绯荤粺閰嶇疆
+ */
+ baseSystemConfig = ref({})
+
+ /**
+ * 鍒ゆ柇鏄惁涓哄璞�
+ * @param str
+ * @returns
+ */
+ isStringAnObject(str: string) {
+ try {
+ const obj = JSON.parse(str)
+ return typeof obj === 'object' && obj !== null
+ } catch (e) {
+ return false
+ }
+ }
+ /**
+ * 鏍规嵁name鑾峰彇鍙橀噺ID
+ * @param name
+ * @returns
+ */
+ static getVariableIdByName(name: string) {
+ const map = globalState[Base.MAP_KEY]
+ return map.get(name) || ''
+ }
+
+ /**
+ * 灏嗗彉閲忚浆鎹㈡垚Map
+ * @param args 鏁扮粍
+ * @returns
+ */
+ private transformArrayToMap(args: any[]) {
+ const map = new Map()
+ args.forEach((item) => {
+ map.set(item.name, item.id)
+ })
+ return map
+ }
+
+ /**
+ * 鏌ヨ鍙橀噺锛�5鍒嗛挓缂撳瓨
+ * @param next
+ * @returns
+ */
+ private async queryVariable(next: () => void) {
+ const size = this.getState(Base.MAP_KEY)?.size
+ const t = this.getState(Base.CACHE_KEY) || Date.now()
+ flag++
+ 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, '鍙橀噺鏌ヨ鎺ュ彛鎶ラ敊锛屾殏鍋滆姹�')
+ }
+ }
+ /**
+ * 娓呯悊鍏ㄥ眬鍙傛暟
+ */
+ private clear() {
+ if (flag === composeMiddleArray.length) {
+ composeMiddleArray = []
+ flag = 0
+ }
+ }
+
+ /**
+ * 鑾峰彇鍙橀噺鎸夐槦鍒楁墽琛�
+ */
+ private async getVariable() {
+ composeMiddleArray.push((context: any, next: () => void) =>
+ this.queryVariable(next)
+ )
+
+ nextTick(() => {
+ if (!flag) {
+ const fn = compose(composeMiddleArray)
+ fn()
+ }
+ })
+ }
+
+ private initState(state = {}) {
+ const entry = Object.entries(state)
+ if (Array.isArray(entry)) {
+ entry.forEach(([key, value]) => {
+ this[key] = ref(value)
+ })
+ }
+ }
+
+ // 鐘舵��
+ /**
+ * 鑾峰彇鐘舵�佸��
+ * @param key key
+ * @returns any
+ */
+ getState(key: string | any) {
+ return Base.globalState[key]
+ }
+ /**
+ * 淇敼鐘舵��
+ * @param key key
+ * @param value value
+ * @returns void
+ */
+ setState(key: string | any, value: any) {
+ return (Base.globalState[key] = ref(value))
+ }
+
+ removeState(key: string) {
+ if (!key) return
+ return delete Base.globalState[key]
+ }
+
+ /**
+ * 鍒濆鍖栧璞�
+ * @param data
+ * @returns
+ */
+ createObject(data: string | number | any[][] | any) {
+ return new Create(data)
+ }
+ /**
+ * 鑾峰彇鐢ㄦ埛淇℃伅
+ */
+ get userInfo() {
+ return sdk.userInfo || {}
+ }
+
+ // useVModels
+}
--
Gitblit v1.9.3