yxuse 3.0.49 → 3.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +29 -14
  2. package/lib/index.cjs2.js +1 -1
  3. package/lib/index.cjs5.js +2 -2
  4. package/lib/index.cjs5.js.gz +0 -0
  5. package/lib/index.cjs5.js.map +1 -1
  6. package/lib/index.cjs6.js +3 -3
  7. package/lib/index.cjs6.js.gz +0 -0
  8. package/lib/index.cjs6.js.map +1 -1
  9. package/lib/index.es2.js +2 -1
  10. package/lib/index.es2.js.map +1 -1
  11. package/lib/index.es5.js +14 -2
  12. package/lib/index.es5.js.gz +0 -0
  13. package/lib/index.es5.js.map +1 -1
  14. package/lib/index.es6.js +177 -96
  15. package/lib/index.es6.js.gz +0 -0
  16. package/lib/index.es6.js.map +1 -1
  17. package/lib/mqtt.min.cjs.js +1 -1
  18. package/lib/mqtt.min.cjs.js.gz +0 -0
  19. package/lib/mqtt.min.cjs.js.map +1 -1
  20. package/lib/mqtt.min.es.js +12 -1
  21. package/lib/mqtt.min.es.js.gz +0 -0
  22. package/lib/mqtt.min.es.js.map +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.css.gz +0 -0
  25. package/lib/theme.cjs.js +1 -1
  26. package/lib/theme.es.js +1 -1
  27. package/lib/translate.cjs.js +1 -1
  28. package/lib/translate.es.js +1 -1
  29. package/lib/utils.cjs.js +1 -1
  30. package/lib/utils.es.js +2 -1
  31. package/package.json +3 -3
  32. package/types/bc/index.d.ts +7 -0
  33. package/types/components/LogoTitle/index.vue.d.ts +9 -0
  34. package/types/components/YxDialog/index.vue.d.ts +1 -1
  35. package/types/components/YxDrawer/index.vue.d.ts +1 -1
  36. package/types/components/YxForm/index.vue.d.ts +2 -0
  37. package/types/components/YxForm/type.d.ts +2 -2
  38. package/types/components/YxTable/type.d.ts +1 -1
  39. package/types/components/YxUpload/index.vue.d.ts +4 -1
  40. package/types/utils/common/index.d.ts +8 -0
package/lib/index.es2.js CHANGED
@@ -36,7 +36,7 @@ var __async = (__this, __arguments, generator) => {
36
36
  });
37
37
  };
38
38
  import { g as getToken, s as showFullScreenLoading, h as hideFullScreenLoading, c as checkStatus, a as http } from "./index.es12.js";
39
- import { m as mqtt_minExports, a as areColorsSimilar, c as copyText, e as enumToArray, g as getCownDownTime, b as getSelectOptions, i as isColorEqual, d as isDarkColor, n as notifyMessageToSystems, r as receiveMessage, y as yxMessage, f as yxSubscribe } from "./mqtt.min.es.js";
39
+ import { m as mqtt_minExports, a as areColorsSimilar, c as copyText, e as enumToArray, g as getCownDownTime, b as getSelectOptions, i as isColorEqual, d as isDarkColor, n as notifyMessageToSystems, r as receiveMessage, u as useConfirm, y as yxMessage, f as yxSubscribe } from "./mqtt.min.es.js";
40
40
  import "element-plus";
41
41
  function buildQuery(params) {
42
42
  if (!params) return "";
@@ -335,6 +335,7 @@ const utils2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
335
335
  isDarkColor,
336
336
  notifyMessageToSystems,
337
337
  receiveMessage,
338
+ useConfirm,
338
339
  yxFecth,
339
340
  yxMessage,
340
341
  yxSubscribe
@@ -1 +1 @@
1
- {"version":3,"file":"index.es2.js","sources":["../packages/utils/fecth/index.ts","../packages/utils/mqtt/index.ts","../packages/utils/socket/index.ts"],"sourcesContent":["import { ElMessage } from \"element-plus\";\nimport type { HttpMethod, RequestConfig } from \"./interface\";\nimport { auth } from \"@packages/api\";\nimport { checkStatus, showFullScreenLoading, hideFullScreenLoading } from \"../http/config\";\nfunction buildQuery(params?: Record<string, any>): string {\n\tif (!params) return \"\";\n\tconst query = new URLSearchParams();\n\tObject.entries(params).forEach(([key, value]) => {\n\t\tif (value !== undefined && value !== null) {\n\t\t\tquery.append(key, String(value));\n\t\t}\n\t});\n\treturn `?${query.toString()}`;\n}\n\nasync function baseRequest<T = any>(url: string, method: HttpMethod, data?: any, config: RequestConfig = {}): Promise<T> {\n\tconst { headers = {}, responseType = \"json\", signal, noAuth = false } = config;\n\tconst fullUrl = method === \"GET\" ? `${url}${buildQuery(data)}` : `${url}`;\n\tconst token = auth.getToken();\n\tif (!config.noLoading) {\n\t\tshowFullScreenLoading();\n\t}\n\tconst res = await fetch(fullUrl, {\n\t\tmethod,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t...(token && !noAuth ? { token: token } : \"\"),\n\t\t\t...headers\n\t\t},\n\t\tbody: method !== \"GET\" && data ? JSON.stringify(data) : undefined,\n\t\tsignal\n\t});\n\thideFullScreenLoading();\n\t// 统一错误处理\n\tif (!res.ok) {\n\t\tlet errorMessage = \"\";\n\t\ttry {\n\t\t\tconst errorData = await res.json();\n\t\t\tif (errorData?.resultMsg) {\n\t\t\t\terrorMessage = errorData.resultMsg;\n\t\t\t}\n\t\t} catch (_) {}\n\t\tcheckStatus(res.status, errorMessage);\n\t\tthrow new Error(errorMessage);\n\t}\n\n\tswitch (responseType) {\n\t\tcase \"text\":\n\t\t\treturn res.text() as Promise<T>;\n\t\tcase \"blob\":\n\t\t\treturn res.blob() as Promise<T>;\n\t\tdefault:\n\t\t\treturn res.json() as Promise<T>;\n\t}\n}\n\nexport const yxFecth = {\n\tget: <T = any>(url: string, params?: Record<string, any>, config?: RequestConfig) => baseRequest<T>(url, \"GET\", params, config),\n\n\tpost: <T = any>(url: string, data?: any, config?: RequestConfig) => baseRequest<T>(url, \"POST\", data, config),\n\n\tput: <T = any>(url: string, data?: any, config?: RequestConfig) => baseRequest<T>(url, \"PUT\", data, config),\n\n\tdelete: <T = any>(url: string, data?: any, config?: RequestConfig) => baseRequest<T>(url, \"DELETE\", data, config)\n};\n","/*\n * @Author: WangXin\n * @Date: 2023-06-28 10:33:54\n * @LastEditors: WangXin\n * @LastEditTime: 2025-04-25 18:35:47\n * @FilePath: /yxuse/packages/utils/mqtt/index.ts\n * @Description:\n *\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\n */\nimport * as mqtt from \"mqtt/dist/mqtt.min\";\nimport type { ClientOptions, CusOptions } from \"./interface\";\nconst clientOptions: ClientOptions = {\n\tmqttVersion: 5,\n\tclean: true, // true: 清除会话, false: 保留会话\n\tconnectTimeout: 4000, // 超时时间\n\tkeepAlive: 60, // 认证信息\n\tclientId: \"mqttjs_\" + Date.now(),\n\t// username: \"xxxx\",\n\t// password: \"xxxx\",\n\tqos: 1\n};\nconst subscribeMap = new Map();\nclass MQ {\n\tclient: any;\n\tconstructor(url: string, options: CusOptions) {\n\t\tthis.client = null;\n\t\tthis.subscribe = this.subscribe;\n\t\tthis.unsubscribe = this.unsubscribe;\n\t\tthis.publish = this.publish;\n\t\tthis.destroyed = this.destroyed;\n\t\tthis.createClient(url, { ...clientOptions, ...options });\n\t}\n\tcreateClient(url: string, options: CusOptions) {\n\t\tthis.client = mqtt.connect(url, options);\n\t\tthis.client.on(\"connect\", this.onConnect);\n\t\tthis.client.on(\"reconnect\", this.onReconnect);\n\t\tthis.client.on(\"error\", this.onError);\n\t\tthis.client.on(\"message\", this.onMessage);\n\t}\n\tpublish(topic: string, message: any) {\n\t\tthis.client.publish(topic, message, { qos: clientOptions.qos }, (e: any) => {\n\t\t\tif (e) {\n\t\t\t\tconsole.log(`客户端: ${clientOptions.clientId}, 发送主题为: ${topic} 的消息, 发送失败: `, e);\n\t\t\t}\n\t\t});\n\t}\n\tsubscribe(topic, callback) {\n\t\tthis.client.subscribe(topic, error => {\n\t\t\tif (!error) {\n\t\t\t\tsubscribeMap.set(topic, callback);\n\t\t\t\tconsole.log(`客户端: ${clientOptions.clientId},主题:${topic}, 订阅成功`);\n\t\t\t} else {\n\t\t\t\tthrow new Error(error);\n\t\t\t}\n\t\t});\n\t}\n\tunsubscribe(topic) {\n\t\tthis.client.unsubscribe(topic, {}, error => {\n\t\t\tif (error) {\n\t\t\t\tconsole.log(`客户端: ${clientOptions.clientId}, 取消订阅主题: ${topic}失败: `, error);\n\t\t\t} else {\n\t\t\t\tconsole.log(`客户端: ${clientOptions.clientId}, 取消订阅主题: ${topic}成功`);\n\t\t\t}\n\t\t});\n\t}\n\tonConnect(e) {\n\t\tconsole.log(`客户端: ${clientOptions.clientId}, 连接emqx服务器成功:`, e);\n\t}\n\tonReconnect(error) {\n\t\tconsole.log(`客户端: ${clientOptions.clientId}, 正在重连:`, error);\n\t}\n\tonError(error) {\n\t\tconsole.log(`客户端: ${clientOptions.clientId}, 连接失败:`, error);\n\t}\n\tonMessage(topic, message) {\n\t\tconst data = message.toString();\n\t\tsubscribeMap.get(topic)(JSON.parse(data));\n\t}\n\tdestroyed() {\n\t\tif (this.client.end) this.client.end();\n\t\tconsole.log(`客户端: ${clientOptions.clientId}, 关闭连接`);\n\t}\n}\nexport default MQ;\n","import type { SocketParams, HeartMessage } from \"./interface\";\nexport default class Ws {\n\turl: string;\n\tprotocols: any;\n\twebSocketState: boolean;\n\tisCustomClose: boolean;\n\treconnectTime: number;\n\theartBeatTime: number;\n\twaitBeatTime: number;\n\tcallback: Function;\n\tHEART_KEY?: string;\n\tHEART_VALUE?: string | number;\n\tws: WebSocket | null;\n\tisReconnectionLoading: boolean;\n\ttimeId: any;\n\teventCenter: any;\n\terrorStack: any;\n\theartMessage?: HeartMessage;\n\tmsgDataPreHandler?: Function;\n\tconstructor(options: SocketParams, protocols?: string) {\n\t\tthis.url = options.url;\n\t\tthis.protocols = protocols;\n\t\tthis.webSocketState = false;\n\t\tthis.isCustomClose = true;\n\t\tthis.reconnectTime = options.reconnectTime; //断线重连时间间隔\n\t\tthis.heartBeatTime = options.heartBeatTime; //心跳间隔时间\n\t\tthis.waitBeatTime = options.waitBeatTime; //心跳等待时间\n\t\tthis.callback = options.callback;\n\t\tif (options.msgDataPreHandler) {\n\t\t\tthis.msgDataPreHandler = options.msgDataPreHandler;\n\t\t}\n\t\tthis.onmessage = this.onmessage;\n\t\tthis.heartMessage = options.heartMessage;\n\t\tthis.HEART_KEY = options.HEART_KEY; //心跳响应key\n\t\tthis.HEART_VALUE = options.HEART_VALUE; //心跳响应value\n\t\tthis.ws = null;\n\t\tthis.isReconnectionLoading = false;\n\t\tthis.createWs();\n\t}\n\n\tcreateWs() {\n\t\tif (\"WebSocket\" in window) {\n\t\t\t// 实例化\n\t\t\tthis.ws = null;\n\t\t\tthis.ws = new WebSocket(this.url, this.protocols);\n\t\t\t// 监听事件\n\t\t\tthis.onopen();\n\t\t\tthis.onerror();\n\t\t\tthis.onclose();\n\t\t\tthis.onmessage();\n\t\t} else {\n\t\t\tconsole.warn(\"你的浏览器不支持 WebSocket\");\n\t\t}\n\t}\n\n\t// 监听成功\n\tonopen() {\n\t\tthis.ws.onopen = () => {\n\t\t\tconsole.info(\"socket已连接成功\");\n\t\t\tthis.webSocketState = true;\n\t\t\tthis.startHeartBeat(this.heartBeatTime);\n\t\t};\n\t}\n\tstartHeartBeat(time: any) {\n\t\tsetTimeout(() => {\n\t\t\tthis.heartMessage && (this.heartMessage.data = new Date().getTime() + \"\");\n\t\t\tthis.send(this.heartMessage ? this.heartMessage : this.HEART_KEY);\n\t\t\tthis.waitingServer();\n\t\t}, time);\n\t}\n\t//延时等待服务端响应,通过webSocketState判断是否连线成功\n\twaitingServer() {\n\t\tthis.webSocketState = false;\n\t\tsetTimeout(() => {\n\t\t\tif (this.webSocketState) {\n\t\t\t\tthis.startHeartBeat(this.heartBeatTime);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconsole.warn(\"warning\", \"心跳无响应,已断线\");\n\t\t\ttry {\n\t\t\t\tthis.close();\n\t\t\t\tif (this.ws) {\n\t\t\t\t\tthis.start();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.info(\"连接已关闭,无需关闭\");\n\t\t\t}\n\t\t}, this.waitBeatTime);\n\t}\n\t// 监听错误\n\tonerror() {\n\t\tif (!this.ws) return;\n\t\tthis.ws.onerror = err => {\n\t\t\tconsole.log(err);\n\n\t\t\tthis.isCustomClose = false;\n\t\t\tthis.isReconnectionLoading = false;\n\t\t};\n\t}\n\n\t// 监听关闭\n\tonclose() {\n\t\tif (!this.ws) return;\n\t\tthis.ws.onclose = () => {\n\t\t\tconsole.info(\"success\", \"socket关闭成功\");\n\t\t\t// 用户手动关闭的不重连\n\t\t\tif (this.isCustomClose) return;\n\t\t\tif (this.ws) {\n\t\t\t\tconsole.log(\"重连\");\n\n\t\t\t\tthis.reconnection();\n\t\t\t\tthis.isReconnectionLoading = false;\n\t\t\t}\n\t\t};\n\t}\n\n\t// 接收 WebSocket 消息,增加二进制数据支持\n\tasync onmessage() {\n\t\tif (!this.ws) return;\n\t\tthis.ws.onmessage = async event => {\n\t\t\ttry {\n\t\t\t\tlet rawData = event.data;\n\t\t\t\tif (this.msgDataPreHandler) {\n\t\t\t\t\tawait this.msgDataPreHandler(rawData);\n\t\t\t\t}\n\t\t\t\t// 处理心跳消息\n\t\t\t\tif (rawData === this.HEART_VALUE) {\n\t\t\t\t\tthis.webSocketState = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// 解析 JSON 数据\n\t\t\t\tconst data = JSON.parse(rawData);\n\t\t\t\tthis.callback(data);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t\tthis.callback(event.data);\n\t\t\t}\n\t\t};\n\t}\n\n\t// 重连\n\treconnection() {\n\t\t// 防止重复\n\t\tif (this.isReconnectionLoading) return;\n\t\tthis.isReconnectionLoading = true;\n\t\tclearTimeout(this.timeId);\n\t\tthis.timeId = null;\n\t\tthis.timeId = setTimeout(() => {\n\t\t\tthis.createWs();\n\t\t}, this.reconnectTime);\n\t}\n\n\t// 发送消息\n\tsend(message: any) {\n\t\tif (this.webSocketState && this.ws) {\n\t\t\tthis.ws.send(message);\n\t\t}\n\t}\n\n\t// 手动关闭\n\tclose() {\n\t\tthis.isCustomClose = true;\n\t\tthis.isReconnectionLoading = false;\n\t\t// if (this.ws.readyState === WebSocket.OPEN) this.ws?.close();\n\t\tif (this.ws && this.ws.close) this.ws?.close();\n\t}\n\n\t// 手动开启\n\tstart() {\n\t\tthis.isCustomClose = false;\n\t\tthis.reconnection();\n\t}\n\n\t// 订阅\n\tsubscribe(eventName: string, cb: Function) {\n\t\tthis.eventCenter.on(eventName, cb);\n\t}\n\n\t// 取消订阅\n\tunsubscribe(eventName: string, cb: Function) {\n\t\tthis.eventCenter.off(eventName, cb);\n\t}\n\n\t// 销毁\n\tdestroy() {\n\t\tclearTimeout(this.timeId);\n\t\tthis.close();\n\t\tthis.ws = null;\n\t\tthis.errorStack = null;\n\t\tthis.eventCenter = null;\n\t\t// this.isCustomClose = true;\n\t\tthis.webSocketState = false;\n\t}\n}\n"],"names":["auth.getToken","mqtt.connect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAS,WAAW,QAAsC;AACrD,MAAA,CAAC,OAAe,QAAA;AACd,QAAA,QAAQ,IAAI,gBAAgB;AAC3B,SAAA,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC5C,QAAA,UAAU,UAAa,UAAU,MAAM;AAC1C,YAAM,OAAO,KAAK,OAAO,KAAK,CAAC;AAAA,IAAA;AAAA,EAChC,CACA;AACM,SAAA,IAAI,MAAM,SAAU,CAAA;AAC5B;AAEA,SAAe,YAAqB,IAAa,IAAoB,IAAoD;AAAA,6CAArF,KAAa,QAAoB,MAAY,SAAwB,CAAA,GAAgB;AAClH,UAAA,EAAE,UAAU,CAAA,GAAI,eAAe,QAAQ,QAAQ,SAAS,MAAA,IAAU;AAClE,UAAA,UAAU,WAAW,QAAQ,GAAG,GAAG,GAAG,WAAW,IAAI,CAAC,KAAK,GAAG,GAAG;AACjE,UAAA,QAAQA,SAAc;AACxB,QAAA,CAAC,OAAO,WAAW;AACA,4BAAA;AAAA,IAAA;AAEjB,UAAA,MAAM,MAAM,MAAM,SAAS;AAAA,MAChC;AAAA,MACA,SAAS;AAAA,QACR,gBAAgB;AAAA,SACZ,SAAS,CAAC,SAAS,EAAE,MAAiB,IAAA,KACvC;AAAA,MAEJ,MAAM,WAAW,SAAS,OAAO,KAAK,UAAU,IAAI,IAAI;AAAA,MACxD;AAAA,IAAA,CACA;AACqB,0BAAA;AAElB,QAAA,CAAC,IAAI,IAAI;AACZ,UAAI,eAAe;AACf,UAAA;AACG,cAAA,YAAY,MAAM,IAAI,KAAK;AACjC,YAAI,uCAAW,WAAW;AACzB,yBAAe,UAAU;AAAA,QAAA;AAAA,eAElB,GAAG;AAAA,MAAA;AACA,kBAAA,IAAI,QAAQ,YAAY;AAC9B,YAAA,IAAI,MAAM,YAAY;AAAA,IAAA;AAG7B,YAAQ,cAAc;AAAA,MACrB,KAAK;AACJ,eAAO,IAAI,KAAK;AAAA,MACjB,KAAK;AACJ,eAAO,IAAI,KAAK;AAAA,MACjB;AACC,eAAO,IAAI,KAAK;AAAA,IAAA;AAAA,EAEnB;AAAA;AAEO,MAAM,UAAU;AAAA,EACtB,KAAK,CAAU,KAAa,QAA8B,WAA2B,YAAe,KAAK,OAAO,QAAQ,MAAM;AAAA,EAE9H,MAAM,CAAU,KAAa,MAAY,WAA2B,YAAe,KAAK,QAAQ,MAAM,MAAM;AAAA,EAE5G,KAAK,CAAU,KAAa,MAAY,WAA2B,YAAe,KAAK,OAAO,MAAM,MAAM;AAAA,EAE1G,QAAQ,CAAU,KAAa,MAAY,WAA2B,YAAe,KAAK,UAAU,MAAM,MAAM;AACjH;ACpDA,MAAM,gBAA+B;AAAA,EACpC,aAAa;AAAA,EACb,OAAO;AAAA;AAAA,EACP,gBAAgB;AAAA;AAAA,EAChB,WAAW;AAAA;AAAA,EACX,UAAU,YAAY,KAAK,IAAI;AAAA;AAAA;AAAA,EAG/B,KAAK;AACN;AACA,MAAM,mCAAmB,IAAI;AAC7B,MAAM,GAAG;AAAA,EAER,YAAY,KAAa,SAAqB;AAD9C;AAEC,SAAK,SAAS;AACd,SAAK,YAAY,KAAK;AACtB,SAAK,cAAc,KAAK;AACxB,SAAK,UAAU,KAAK;AACpB,SAAK,YAAY,KAAK;AACtB,SAAK,aAAa,KAAK,kCAAK,gBAAkB,QAAS;AAAA,EAAA;AAAA,EAExD,aAAa,KAAa,SAAqB;AAC9C,SAAK,SAASC,wBAAa,KAAK,OAAO;AACvC,SAAK,OAAO,GAAG,WAAW,KAAK,SAAS;AACxC,SAAK,OAAO,GAAG,aAAa,KAAK,WAAW;AAC5C,SAAK,OAAO,GAAG,SAAS,KAAK,OAAO;AACpC,SAAK,OAAO,GAAG,WAAW,KAAK,SAAS;AAAA,EAAA;AAAA,EAEzC,QAAQ,OAAe,SAAc;AAC/B,SAAA,OAAO,QAAQ,OAAO,SAAS,EAAE,KAAK,cAAc,OAAO,CAAC,MAAW;AAAA,IAG3E,CACA;AAAA,EAAA;AAAA,EAEF,UAAU,OAAO,UAAU;AACrB,SAAA,OAAO,UAAU,OAAO,CAAS,UAAA;AACrC,UAAI,CAAC,OAAO;AACE,qBAAA,IAAI,OAAO,QAAQ;AAAA,MAAA,OAE1B;AACA,cAAA,IAAI,MAAM,KAAK;AAAA,MAAA;AAAA,IACtB,CACA;AAAA,EAAA;AAAA,EAEF,YAAY,OAAO;AAClB,SAAK,OAAO,YAAY,OAAO,IAAI,CAAS,UAAA;AAAA,IAK3C,CACA;AAAA,EAAA;AAAA,EAEF,UAAU,GAAG;AAAA,EAAA;AAAA,EAGb,YAAY,OAAO;AAAA,EAAA;AAAA,EAGnB,QAAQ,OAAO;AAAA,EAAA;AAAA,EAGf,UAAU,OAAO,SAAS;AACnB,UAAA,OAAO,QAAQ,SAAS;AAC9B,iBAAa,IAAI,KAAK,EAAE,KAAK,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAEzC,YAAY;AACX,QAAI,KAAK,OAAO,IAAK,MAAK,OAAO,IAAI;AAAA,EAAA;AAGvC;AClFA,MAAqB,GAAG;AAAA,EAkBvB,YAAY,SAAuB,WAAoB;AAjBvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEC,SAAK,MAAM,QAAQ;AACnB,SAAK,YAAY;AACjB,SAAK,iBAAiB;AACtB,SAAK,gBAAgB;AACrB,SAAK,gBAAgB,QAAQ;AAC7B,SAAK,gBAAgB,QAAQ;AAC7B,SAAK,eAAe,QAAQ;AAC5B,SAAK,WAAW,QAAQ;AACxB,QAAI,QAAQ,mBAAmB;AAC9B,WAAK,oBAAoB,QAAQ;AAAA,IAAA;AAElC,SAAK,YAAY,KAAK;AACtB,SAAK,eAAe,QAAQ;AAC5B,SAAK,YAAY,QAAQ;AACzB,SAAK,cAAc,QAAQ;AAC3B,SAAK,KAAK;AACV,SAAK,wBAAwB;AAC7B,SAAK,SAAS;AAAA,EAAA;AAAA,EAGf,WAAW;AACV,QAAI,eAAe,QAAQ;AAE1B,WAAK,KAAK;AACV,WAAK,KAAK,IAAI,UAAU,KAAK,KAAK,KAAK,SAAS;AAEhD,WAAK,OAAO;AACZ,WAAK,QAAQ;AACb,WAAK,QAAQ;AACb,WAAK,UAAU;AAAA,IAAA;AAAA,EAGhB;AAAA;AAAA,EAID,SAAS;AACH,SAAA,GAAG,SAAS,MAAM;AAEtB,WAAK,iBAAiB;AACjB,WAAA,eAAe,KAAK,aAAa;AAAA,IACvC;AAAA,EAAA;AAAA,EAED,eAAe,MAAW;AACzB,eAAW,MAAM;AACX,WAAA,iBAAiB,KAAK,aAAa,4BAAW,KAAK,GAAE,QAAY,IAAA;AACtE,WAAK,KAAK,KAAK,eAAe,KAAK,eAAe,KAAK,SAAS;AAChE,WAAK,cAAc;AAAA,OACjB,IAAI;AAAA,EAAA;AAAA;AAAA,EAGR,gBAAgB;AACf,SAAK,iBAAiB;AACtB,eAAW,MAAM;AAChB,UAAI,KAAK,gBAAgB;AACnB,aAAA,eAAe,KAAK,aAAa;AACtC;AAAA,MAAA;AAGG,UAAA;AACH,aAAK,MAAM;AACX,YAAI,KAAK,IAAI;AACZ,eAAK,MAAM;AAAA,QAAA;AAAA,eAEJ,GAAG;AAAA,MAAA;AAAA,IAEZ,GACE,KAAK,YAAY;AAAA,EAAA;AAAA;AAAA,EAGrB,UAAU;AACL,QAAA,CAAC,KAAK,GAAI;AACT,SAAA,GAAG,UAAU,CAAO,QAAA;AAGxB,WAAK,gBAAgB;AACrB,WAAK,wBAAwB;AAAA,IAC9B;AAAA,EAAA;AAAA;AAAA,EAID,UAAU;AACL,QAAA,CAAC,KAAK,GAAI;AACT,SAAA,GAAG,UAAU,MAAM;AAGvB,UAAI,KAAK,cAAe;AACxB,UAAI,KAAK,IAAI;AAGZ,aAAK,aAAa;AAClB,aAAK,wBAAwB;AAAA,MAAA;AAAA,IAE/B;AAAA,EAAA;AAAA;AAAA,EAIK,YAAY;AAAA;AACb,UAAA,CAAC,KAAK,GAAI;AACT,WAAA,GAAG,YAAY,CAAM,UAAS;AAC9B,YAAA;AACH,cAAI,UAAU,MAAM;AACpB,cAAI,KAAK,mBAAmB;AACrB,kBAAA,KAAK,kBAAkB,OAAO;AAAA,UAAA;AAGjC,cAAA,YAAY,KAAK,aAAa;AACjC,iBAAK,iBAAiB;AACtB;AAAA,UAAA;AAGK,gBAAA,OAAO,KAAK,MAAM,OAAO;AAC/B,eAAK,SAAS,IAAI;AAAA,iBACV,OAAO;AAEV,eAAA,SAAS,MAAM,IAAI;AAAA,QAAA;AAAA,MAE1B;AAAA,IAAA;AAAA;AAAA;AAAA,EAID,eAAe;AAEd,QAAI,KAAK,sBAAuB;AAChC,SAAK,wBAAwB;AAC7B,iBAAa,KAAK,MAAM;AACxB,SAAK,SAAS;AACT,SAAA,SAAS,WAAW,MAAM;AAC9B,WAAK,SAAS;AAAA,IAAA,GACZ,KAAK,aAAa;AAAA,EAAA;AAAA;AAAA,EAItB,KAAK,SAAc;AACd,QAAA,KAAK,kBAAkB,KAAK,IAAI;AAC9B,WAAA,GAAG,KAAK,OAAO;AAAA,IAAA;AAAA,EACrB;AAAA;AAAA,EAID,QAAQ;;AACP,SAAK,gBAAgB;AACrB,SAAK,wBAAwB;AAE7B,QAAI,KAAK,MAAM,KAAK,GAAG,MAAO,YAAK,OAAL,mBAAS;AAAA,EAAM;AAAA;AAAA,EAI9C,QAAQ;AACP,SAAK,gBAAgB;AACrB,SAAK,aAAa;AAAA,EAAA;AAAA;AAAA,EAInB,UAAU,WAAmB,IAAc;AACrC,SAAA,YAAY,GAAG,WAAW,EAAE;AAAA,EAAA;AAAA;AAAA,EAIlC,YAAY,WAAmB,IAAc;AACvC,SAAA,YAAY,IAAI,WAAW,EAAE;AAAA,EAAA;AAAA;AAAA,EAInC,UAAU;AACT,iBAAa,KAAK,MAAM;AACxB,SAAK,MAAM;AACX,SAAK,KAAK;AACV,SAAK,aAAa;AAClB,SAAK,cAAc;AAEnB,SAAK,iBAAiB;AAAA,EAAA;AAExB;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.es2.js","sources":["../packages/utils/fecth/index.ts","../packages/utils/mqtt/index.ts","../packages/utils/socket/index.ts"],"sourcesContent":["import { ElMessage } from \"element-plus\";\nimport type { HttpMethod, RequestConfig } from \"./interface\";\nimport { auth } from \"@packages/api\";\nimport { checkStatus, showFullScreenLoading, hideFullScreenLoading } from \"../http/config\";\nfunction buildQuery(params?: Record<string, any>): string {\n\tif (!params) return \"\";\n\tconst query = new URLSearchParams();\n\tObject.entries(params).forEach(([key, value]) => {\n\t\tif (value !== undefined && value !== null) {\n\t\t\tquery.append(key, String(value));\n\t\t}\n\t});\n\treturn `?${query.toString()}`;\n}\n\nasync function baseRequest<T = any>(url: string, method: HttpMethod, data?: any, config: RequestConfig = {}): Promise<T> {\n\tconst { headers = {}, responseType = \"json\", signal, noAuth = false } = config;\n\tconst fullUrl = method === \"GET\" ? `${url}${buildQuery(data)}` : `${url}`;\n\tconst token = auth.getToken();\n\tif (!config.noLoading) {\n\t\tshowFullScreenLoading();\n\t}\n\tconst res = await fetch(fullUrl, {\n\t\tmethod,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t...(token && !noAuth ? { token: token } : \"\"),\n\t\t\t...headers\n\t\t},\n\t\tbody: method !== \"GET\" && data ? JSON.stringify(data) : undefined,\n\t\tsignal\n\t});\n\thideFullScreenLoading();\n\t// 统一错误处理\n\tif (!res.ok) {\n\t\tlet errorMessage = \"\";\n\t\ttry {\n\t\t\tconst errorData = await res.json();\n\t\t\tif (errorData?.resultMsg) {\n\t\t\t\terrorMessage = errorData.resultMsg;\n\t\t\t}\n\t\t} catch (_) {}\n\t\tcheckStatus(res.status, errorMessage);\n\t\tthrow new Error(errorMessage);\n\t}\n\n\tswitch (responseType) {\n\t\tcase \"text\":\n\t\t\treturn res.text() as Promise<T>;\n\t\tcase \"blob\":\n\t\t\treturn res.blob() as Promise<T>;\n\t\tdefault:\n\t\t\treturn res.json() as Promise<T>;\n\t}\n}\n\nexport const yxFecth = {\n\tget: <T = any>(url: string, params?: Record<string, any>, config?: RequestConfig) => baseRequest<T>(url, \"GET\", params, config),\n\n\tpost: <T = any>(url: string, data?: any, config?: RequestConfig) => baseRequest<T>(url, \"POST\", data, config),\n\n\tput: <T = any>(url: string, data?: any, config?: RequestConfig) => baseRequest<T>(url, \"PUT\", data, config),\n\n\tdelete: <T = any>(url: string, data?: any, config?: RequestConfig) => baseRequest<T>(url, \"DELETE\", data, config)\n};\n","/*\n * @Author: WangXin\n * @Date: 2023-06-28 10:33:54\n * @LastEditors: WangXin\n * @LastEditTime: 2025-04-25 18:35:47\n * @FilePath: /yxuse/packages/utils/mqtt/index.ts\n * @Description:\n *\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\n */\nimport * as mqtt from \"mqtt/dist/mqtt.min\";\nimport type { ClientOptions, CusOptions } from \"./interface\";\nconst clientOptions: ClientOptions = {\n\tmqttVersion: 5,\n\tclean: true, // true: 清除会话, false: 保留会话\n\tconnectTimeout: 4000, // 超时时间\n\tkeepAlive: 60, // 认证信息\n\tclientId: \"mqttjs_\" + Date.now(),\n\t// username: \"xxxx\",\n\t// password: \"xxxx\",\n\tqos: 1\n};\nconst subscribeMap = new Map();\nclass MQ {\n\tclient: any;\n\tconstructor(url: string, options: CusOptions) {\n\t\tthis.client = null;\n\t\tthis.subscribe = this.subscribe;\n\t\tthis.unsubscribe = this.unsubscribe;\n\t\tthis.publish = this.publish;\n\t\tthis.destroyed = this.destroyed;\n\t\tthis.createClient(url, { ...clientOptions, ...options });\n\t}\n\tcreateClient(url: string, options: CusOptions) {\n\t\tthis.client = mqtt.connect(url, options);\n\t\tthis.client.on(\"connect\", this.onConnect);\n\t\tthis.client.on(\"reconnect\", this.onReconnect);\n\t\tthis.client.on(\"error\", this.onError);\n\t\tthis.client.on(\"message\", this.onMessage);\n\t}\n\tpublish(topic: string, message: any) {\n\t\tthis.client.publish(topic, message, { qos: clientOptions.qos }, (e: any) => {\n\t\t\tif (e) {\n\t\t\t\tconsole.log(`客户端: ${clientOptions.clientId}, 发送主题为: ${topic} 的消息, 发送失败: `, e);\n\t\t\t}\n\t\t});\n\t}\n\tsubscribe(topic, callback) {\n\t\tthis.client.subscribe(topic, error => {\n\t\t\tif (!error) {\n\t\t\t\tsubscribeMap.set(topic, callback);\n\t\t\t\tconsole.log(`客户端: ${clientOptions.clientId},主题:${topic}, 订阅成功`);\n\t\t\t} else {\n\t\t\t\tthrow new Error(error);\n\t\t\t}\n\t\t});\n\t}\n\tunsubscribe(topic) {\n\t\tthis.client.unsubscribe(topic, {}, error => {\n\t\t\tif (error) {\n\t\t\t\tconsole.log(`客户端: ${clientOptions.clientId}, 取消订阅主题: ${topic}失败: `, error);\n\t\t\t} else {\n\t\t\t\tconsole.log(`客户端: ${clientOptions.clientId}, 取消订阅主题: ${topic}成功`);\n\t\t\t}\n\t\t});\n\t}\n\tonConnect(e) {\n\t\tconsole.log(`客户端: ${clientOptions.clientId}, 连接emqx服务器成功:`, e);\n\t}\n\tonReconnect(error) {\n\t\tconsole.log(`客户端: ${clientOptions.clientId}, 正在重连:`, error);\n\t}\n\tonError(error) {\n\t\tconsole.log(`客户端: ${clientOptions.clientId}, 连接失败:`, error);\n\t}\n\tonMessage(topic, message) {\n\t\tconst data = message.toString();\n\t\tsubscribeMap.get(topic)(JSON.parse(data));\n\t}\n\tdestroyed() {\n\t\tif (this.client.end) this.client.end();\n\t\tconsole.log(`客户端: ${clientOptions.clientId}, 关闭连接`);\n\t}\n}\nexport default MQ;\n","import type { SocketParams, HeartMessage } from \"./interface\";\nexport default class Ws {\n\turl: string;\n\tprotocols: any;\n\twebSocketState: boolean;\n\tisCustomClose: boolean;\n\treconnectTime: number;\n\theartBeatTime: number;\n\twaitBeatTime: number;\n\tcallback: Function;\n\tHEART_KEY?: string;\n\tHEART_VALUE?: string | number;\n\tws: WebSocket | null;\n\tisReconnectionLoading: boolean;\n\ttimeId: any;\n\teventCenter: any;\n\terrorStack: any;\n\theartMessage?: HeartMessage;\n\tmsgDataPreHandler?: Function;\n\tconstructor(options: SocketParams, protocols?: string) {\n\t\tthis.url = options.url;\n\t\tthis.protocols = protocols;\n\t\tthis.webSocketState = false;\n\t\tthis.isCustomClose = true;\n\t\tthis.reconnectTime = options.reconnectTime; //断线重连时间间隔\n\t\tthis.heartBeatTime = options.heartBeatTime; //心跳间隔时间\n\t\tthis.waitBeatTime = options.waitBeatTime; //心跳等待时间\n\t\tthis.callback = options.callback;\n\t\tif (options.msgDataPreHandler) {\n\t\t\tthis.msgDataPreHandler = options.msgDataPreHandler;\n\t\t}\n\t\tthis.onmessage = this.onmessage;\n\t\tthis.heartMessage = options.heartMessage;\n\t\tthis.HEART_KEY = options.HEART_KEY; //心跳响应key\n\t\tthis.HEART_VALUE = options.HEART_VALUE; //心跳响应value\n\t\tthis.ws = null;\n\t\tthis.isReconnectionLoading = false;\n\t\tthis.createWs();\n\t}\n\n\tcreateWs() {\n\t\tif (\"WebSocket\" in window) {\n\t\t\t// 实例化\n\t\t\tthis.ws = null;\n\t\t\tthis.ws = new WebSocket(this.url, this.protocols);\n\t\t\t// 监听事件\n\t\t\tthis.onopen();\n\t\t\tthis.onerror();\n\t\t\tthis.onclose();\n\t\t\tthis.onmessage();\n\t\t} else {\n\t\t\tconsole.warn(\"你的浏览器不支持 WebSocket\");\n\t\t}\n\t}\n\n\t// 监听成功\n\tonopen() {\n\t\tthis.ws.onopen = () => {\n\t\t\tconsole.info(\"socket已连接成功\");\n\t\t\tthis.webSocketState = true;\n\t\t\tthis.startHeartBeat(this.heartBeatTime);\n\t\t};\n\t}\n\tstartHeartBeat(time: any) {\n\t\tsetTimeout(() => {\n\t\t\tthis.heartMessage && (this.heartMessage.data = new Date().getTime() + \"\");\n\t\t\tthis.send(this.heartMessage ? this.heartMessage : this.HEART_KEY);\n\t\t\tthis.waitingServer();\n\t\t}, time);\n\t}\n\t//延时等待服务端响应,通过webSocketState判断是否连线成功\n\twaitingServer() {\n\t\tthis.webSocketState = false;\n\t\tsetTimeout(() => {\n\t\t\tif (this.webSocketState) {\n\t\t\t\tthis.startHeartBeat(this.heartBeatTime);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconsole.warn(\"warning\", \"心跳无响应,已断线\");\n\t\t\ttry {\n\t\t\t\tthis.close();\n\t\t\t\tif (this.ws) {\n\t\t\t\t\tthis.start();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.info(\"连接已关闭,无需关闭\");\n\t\t\t}\n\t\t}, this.waitBeatTime);\n\t}\n\t// 监听错误\n\tonerror() {\n\t\tif (!this.ws) return;\n\t\tthis.ws.onerror = err => {\n\t\t\tconsole.log(err);\n\n\t\t\tthis.isCustomClose = false;\n\t\t\tthis.isReconnectionLoading = false;\n\t\t};\n\t}\n\n\t// 监听关闭\n\tonclose() {\n\t\tif (!this.ws) return;\n\t\tthis.ws.onclose = () => {\n\t\t\tconsole.info(\"success\", \"socket关闭成功\");\n\t\t\t// 用户手动关闭的不重连\n\t\t\tif (this.isCustomClose) return;\n\t\t\tif (this.ws) {\n\t\t\t\tconsole.log(\"重连\");\n\n\t\t\t\tthis.reconnection();\n\t\t\t\tthis.isReconnectionLoading = false;\n\t\t\t}\n\t\t};\n\t}\n\n\t// 接收 WebSocket 消息,增加二进制数据支持\n\tasync onmessage() {\n\t\tif (!this.ws) return;\n\t\tthis.ws.onmessage = async event => {\n\t\t\ttry {\n\t\t\t\tlet rawData = event.data;\n\t\t\t\tif (this.msgDataPreHandler) {\n\t\t\t\t\tawait this.msgDataPreHandler(rawData);\n\t\t\t\t}\n\t\t\t\t// 处理心跳消息\n\t\t\t\tif (rawData === this.HEART_VALUE) {\n\t\t\t\t\tthis.webSocketState = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// 解析 JSON 数据\n\t\t\t\tconst data = JSON.parse(rawData);\n\t\t\t\tthis.callback(data);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t\tthis.callback(event.data);\n\t\t\t}\n\t\t};\n\t}\n\n\t// 重连\n\treconnection() {\n\t\t// 防止重复\n\t\tif (this.isReconnectionLoading) return;\n\t\tthis.isReconnectionLoading = true;\n\t\tclearTimeout(this.timeId);\n\t\tthis.timeId = null;\n\t\tthis.timeId = setTimeout(() => {\n\t\t\tthis.createWs();\n\t\t}, this.reconnectTime);\n\t}\n\n\t// 发送消息\n\tsend(message: any) {\n\t\tif (this.webSocketState && this.ws) {\n\t\t\tthis.ws.send(message);\n\t\t}\n\t}\n\n\t// 手动关闭\n\tclose() {\n\t\tthis.isCustomClose = true;\n\t\tthis.isReconnectionLoading = false;\n\t\t// if (this.ws.readyState === WebSocket.OPEN) this.ws?.close();\n\t\tif (this.ws && this.ws.close) this.ws?.close();\n\t}\n\n\t// 手动开启\n\tstart() {\n\t\tthis.isCustomClose = false;\n\t\tthis.reconnection();\n\t}\n\n\t// 订阅\n\tsubscribe(eventName: string, cb: Function) {\n\t\tthis.eventCenter.on(eventName, cb);\n\t}\n\n\t// 取消订阅\n\tunsubscribe(eventName: string, cb: Function) {\n\t\tthis.eventCenter.off(eventName, cb);\n\t}\n\n\t// 销毁\n\tdestroy() {\n\t\tclearTimeout(this.timeId);\n\t\tthis.close();\n\t\tthis.ws = null;\n\t\tthis.errorStack = null;\n\t\tthis.eventCenter = null;\n\t\t// this.isCustomClose = true;\n\t\tthis.webSocketState = false;\n\t}\n}\n"],"names":["auth.getToken","mqtt.connect"],"mappings":"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"}
package/lib/index.es5.js CHANGED
@@ -46,8 +46,8 @@ import { g as getCommentUntreatedCount, b as getUserThemeList } from "./index.es
46
46
  import { createElementBlock, openBlock, createStaticVNode, createElementVNode, withDirectives, toDisplayString, vShow, resolveComponent, createBlock, Transition, withCtx, normalizeClass, createCommentVNode, normalizeStyle, Fragment, renderList, resolveDynamicComponent, useCssVars, createVNode, version as version$1, createApp } from "vue";
47
47
  import { c as commonjsGlobal, g as getAugmentedNamespace, a as getDefaultExportFromCjs } from "./dayjs.min.es.js";
48
48
  import { h as commonjsRequire, f as yxSubscribe, i as isColorEqual } from "./mqtt.min.es.js";
49
- import { e as changeSystemConfig, f as getSystemConfig, a as http, B as BC_LANG_NAME, i as BC_THEME_NAME, k as setSystemConfig } from "./index.es12.js";
50
49
  import "element-plus";
50
+ import { e as changeSystemConfig, f as getSystemConfig, a as http, B as BC_LANG_NAME, i as BC_THEME_NAME, k as setSystemConfig } from "./index.es12.js";
51
51
  import "./index.es7.js";
52
52
  import "./index.es11.js";
53
53
  const YX_TITLE = "@font-face {font-family: 'YX-TITLE';font-size: 16px; src: url('https://yx-picture.obs.cn-north-4.myhuaweicloud.com/ttc/bucket/1699612675710_ALIBABAPUHUITI-2-105-HEAVY.TTF') format('woff'), url('https://yx-picture.obs.cn-north-4.myhuaweicloud.com/ttc/bucket/1699612675710_ALIBABAPUHUITI-2-105-HEAVY.TTF') format('woff2'); font-style: normal;font-display: swap;}";
@@ -25507,15 +25507,27 @@ class BC {
25507
25507
  constructor(channelName) {
25508
25508
  __publicField(this, "onmessage");
25509
25509
  __publicField(this, "postMessage");
25510
+ BC.init();
25510
25511
  const broadcastChannel = new BroadcastChannel(channelName);
25511
25512
  this.onmessage = (event) => event;
25512
25513
  broadcastChannel.onmessage = (event) => {
25513
- this.onmessage(event);
25514
+ const { type } = event.data;
25515
+ if (type === "router") {
25516
+ if (window.pageActive) return this.onmessage(event);
25517
+ } else {
25518
+ this.onmessage(event);
25519
+ }
25514
25520
  };
25515
25521
  this.postMessage = (message) => {
25516
25522
  return broadcastChannel.postMessage(message);
25517
25523
  };
25518
25524
  }
25525
+ static init() {
25526
+ window.pageActive = document.visibilityState === "visible";
25527
+ document.addEventListener("visibilitychange", () => {
25528
+ window.pageActive = document.visibilityState === "visible";
25529
+ });
25530
+ }
25519
25531
  }
25520
25532
  const BC$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
25521
25533
  __proto__: null,
Binary file