@yimou6/common-ui 1.13.27 → 1.13.28

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.
@@ -16,9 +16,12 @@ function getSecretKey() {
16
16
  return "";
17
17
  }
18
18
  __name(getSecretKey, "getSecretKey");
19
- const ACCESS_KEY = getAccessKey();
20
- const SECRET_KEY = getSecretKey();
21
- function sign(headers, params, sk = SECRET_KEY) {
19
+ function sign(headers, params, sk = getSecretKey()) {
20
+ if (!sk) {
21
+ console.warn(
22
+ "[tzj-player] \u7B7E\u540D\u5BC6\u94A5 YZYSK \u4E3A\u7A7A\uFF0C\u7B7E\u540D\u7ED3\u679C\u5C06\u4E0D\u88AB\u670D\u52A1\u7AEF\u8BA4\u53EF\uFF0C\u8BF7\u786E\u8BA4\u5DF2\u5199\u5165 localStorage"
23
+ );
24
+ }
22
25
  const obj = Object.assign({}, headers, params);
23
26
  const keys = Object.keys(obj).sort();
24
27
  let str = "";
@@ -39,10 +42,10 @@ async function GetYunZhiYanDeviceChannel(deviceId) {
39
42
  const headers = {
40
43
  algorithm: "HmacSHA256",
41
44
  requestTime: Date.now(),
42
- accessKey: ACCESS_KEY
45
+ accessKey: getAccessKey()
43
46
  };
44
47
  const params = { deviceId };
45
- headers.sign = sign(headers, params, SECRET_KEY);
48
+ headers.sign = sign(headers, params);
46
49
  const controller = new AbortController();
47
50
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
48
51
  const response = await fetch("/vsuap-platform-api/v1/device/queryChannel", {
@@ -93,10 +96,10 @@ async function GetYunZhiYanDeviceVideoUrl(deviceId, channelCodeId) {
93
96
  const headers = {
94
97
  algorithm: "HmacSHA256",
95
98
  requestTime: Date.now(),
96
- accessKey: ACCESS_KEY
99
+ accessKey: getAccessKey()
97
100
  };
98
101
  const params = { deviceId, channelCodeId };
99
- headers.sign = sign(headers, params, SECRET_KEY);
102
+ headers.sign = sign(headers, params);
100
103
  const controller = new AbortController();
101
104
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
102
105
  const response = await fetch("/vsuap-platform-api/v1/device/playOn", {
@@ -147,10 +150,10 @@ async function GetYunZhiYanOpenVoiceIntercom(deviceId) {
147
150
  const headers = {
148
151
  algorithm: "HmacSHA256",
149
152
  requestTime: Date.now(),
150
- accessKey: ACCESS_KEY
153
+ accessKey: getAccessKey()
151
154
  };
152
155
  const params = { deviceId, deviceType: "1", enableAudioSign: "1" };
153
- headers.sign = sign(headers, params, SECRET_KEY);
156
+ headers.sign = sign(headers, params);
154
157
  const controller = new AbortController();
155
158
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
156
159
  const response = await fetch("/vsuap-platform-api/v1/device/broadcastOn", {
@@ -201,10 +204,10 @@ async function GetYunZhiYanUserPlaySecretKey(taskId) {
201
204
  const headers = {
202
205
  algorithm: "HmacSHA256",
203
206
  requestTime: Date.now(),
204
- accessKey: ACCESS_KEY
207
+ accessKey: getAccessKey()
205
208
  };
206
209
  const params = {};
207
- headers.sign = sign(headers, params, SECRET_KEY);
210
+ headers.sign = sign(headers, params);
208
211
  const controller = new AbortController();
209
212
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
210
213
  const response = await fetch(
@@ -259,10 +262,10 @@ async function GetYunZhiYanCloseVoiceIntercom(deviceId, taskId) {
259
262
  const headers = {
260
263
  algorithm: "HmacSHA256",
261
264
  requestTime: Date.now(),
262
- accessKey: ACCESS_KEY
265
+ accessKey: getAccessKey()
263
266
  };
264
267
  const params = { deviceId, taskId };
265
- headers.sign = sign(headers, params, SECRET_KEY);
268
+ headers.sign = sign(headers, params);
266
269
  const controller = new AbortController();
267
270
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
268
271
  const response = await fetch("/vsuap-platform-api/v1/device/broadcastOff", {
@@ -308,10 +311,10 @@ async function GetYunZhiYanDeviceRecordList(deviceId, channelCodeId, startTime,
308
311
  const headers = {
309
312
  algorithm: "HmacSHA256",
310
313
  requestTime: Date.now(),
311
- accessKey: ACCESS_KEY
314
+ accessKey: getAccessKey()
312
315
  };
313
316
  const params = { deviceId, channelCodeId, startTime, endTime };
314
- headers.sign = sign(headers, params, SECRET_KEY);
317
+ headers.sign = sign(headers, params);
315
318
  const controller = new AbortController();
316
319
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
317
320
  const response = await fetch("/vsuap-platform-api/v1/device/recordList", {
@@ -1 +1 @@
1
- {"version":3,"file":"yunzhiyan.mjs","sources":["../../../../../../../packages/components/tzj-player/src/yunzhiyan.ts"],"sourcesContent":["import CryptoJS from \"crypto-js\";\n\n/**\n * 获取访问密钥,支持 SSR 环境\n */\nfunction getAccessKey(): string {\n if (typeof localStorage !== \"undefined\") {\n return localStorage.getItem(\"YZYAK\") || \"\";\n }\n return \"\";\n}\n\n/**\n * 获取签名密钥,支持 SSR 环境\n */\nfunction getSecretKey(): string {\n if (typeof localStorage !== \"undefined\") {\n return localStorage.getItem(\"YZYSK\") || \"\";\n }\n return \"\";\n}\n\nconst ACCESS_KEY = getAccessKey();\nconst SECRET_KEY = getSecretKey();\n\n/**\n * 签名函数\n * @param headers 请求头参数\n * @param params 请求参数\n * @param sk 签名密钥\n * @returns string 签名结果\n */\nexport function sign(\n headers: Record<string, string | number>,\n params: Record<string, any>,\n sk: string = SECRET_KEY,\n): string {\n const obj = Object.assign({}, headers, params);\n const keys = Object.keys(obj).sort();\n let str = \"\";\n // 拼接字符串\n keys.forEach((key, index) => {\n str += `${key}=\"${obj[key]}\"`;\n if (index !== keys.length - 1) {\n str += \"&\";\n }\n });\n console.log(\"未加签的字符串\", str);\n // 加密\n const hash = CryptoJS.HmacSHA256(str, sk);\n console.log(\"加签后的字符串\", hash.toString(CryptoJS.enc.Hex));\n return hash.toString(CryptoJS.enc.Hex);\n}\n/**\n * 获取云智眼设备通道ID\n * @param deviceId 设备ID\n * @returns Promise<string | false> 成功返回通道ID,失败返回false\n */\nexport async function GetYunZhiYanDeviceChannel(\n deviceId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/queryChannel\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (\n code === 200 &&\n Array.isArray(data) &&\n data.length > 0 &&\n data[0].channelCodeId\n ) {\n return data[0].channelCodeId || \"\";\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanDeviceChannel\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanDeviceChannel\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanDeviceChannel\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanDeviceChannel\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取云智眼设备视频播放地址\n * @param deviceId 设备ID\n * @param channelCodeId 通道ID\n * @returns Promise<string | false> 成功返回视频播放地址,失败返回false\n */\nexport async function GetYunZhiYanDeviceVideoUrl(\n deviceId: string,\n channelCodeId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId, channelCodeId };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/playOn\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n return data?.flv || \"\";\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanDeviceVideoUrl\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanDeviceVideoUrl\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanDeviceVideoUrl\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanDeviceVideoUrl\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取语音对讲地址信息\n */\n/**\n * 获取语音对讲地址信息\n * @param deviceId 设备ID\n * @returns Promise<any | false> 成功返回对讲信息,失败返回false\n */\nexport async function GetYunZhiYanOpenVoiceIntercom(\n deviceId: string,\n): Promise<any | false> {\n try {\n const headers: Record<string, any> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId, deviceType: \"1\", enableAudioSign: \"1\" };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/broadcastOn\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n return data;\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanOpenVoiceIntercom\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanOpenVoiceIntercom\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanOpenVoiceIntercom\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanOpenVoiceIntercom\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取语音对讲地址\n * @param taskId 任务ID\n * @returns Promise<string | false> 成功返回加密后的密钥,失败返回false\n */\nexport async function GetYunZhiYanUserPlaySecretKey(\n taskId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = {};\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\n \"/vsuap-platform-api/v1/user/queryPlaySecretKey\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n },\n );\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n const playSecretKey = data.playSecretKey;\n return CryptoJS.MD5(taskId + playSecretKey).toString();\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanUserPlaySecretKey\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanUserPlaySecretKey\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanUserPlaySecretKey\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanUserPlaySecretKey\", error);\n }\n return false;\n }\n}\n\n/**\n * 关闭语音对讲\n * @param deviceId 设备ID\n * @param taskId 任务ID\n * @returns Promise<any | false> 成功返回响应数据,失败返回false\n */\nexport async function GetYunZhiYanCloseVoiceIntercom(\n deviceId: string,\n taskId: string,\n): Promise<any | false> {\n try {\n const headers: Record<string, any> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId, taskId };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/broadcastOff\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n return res;\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanCloseVoiceIntercom\");\n } else if (error.name === \"TypeError\") {\n console.error(\n \"网络错误: GetYunZhiYanCloseVoiceIntercom\",\n error.message,\n );\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanCloseVoiceIntercom\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanCloseVoiceIntercom\", error);\n }\n return false;\n }\n}\n\n/**\n * 查询设备云端录像信息\n * @param deviceId 设备ID\n * @param channelCodeId 通道编码 ID\n * @param startTime 范围查询的开始时间, 13 位时间戳\n * @param endTime 范围查询的结束时间, 13 位时间戳(开始时间与结束时间最大间隔 7 天)\n * @returns Promise<string | false> 成功返回通道ID,失败返回false\n */\nexport async function GetYunZhiYanDeviceRecordList(\n deviceId: string,\n channelCodeId: string | number,\n startTime: string | number,\n endTime: string | number,\n): Promise<any[]> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId, channelCodeId, startTime, endTime };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/recordList\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200 && Array.isArray(data)) {\n return data || [];\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return [];\n }\n } catch (error) {\n return [];\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yunzhiyan.mjs","sources":["../../../../../../../packages/components/tzj-player/src/yunzhiyan.ts"],"sourcesContent":["import CryptoJS from \"crypto-js\";\n\n/**\n * 获取访问密钥,支持 SSR 环境\n */\nfunction getAccessKey(): string {\n if (typeof localStorage !== \"undefined\") {\n return localStorage.getItem(\"YZYAK\") || \"\";\n }\n return \"\";\n}\n\n/**\n * 获取签名密钥,支持 SSR 环境\n */\nfunction getSecretKey(): string {\n if (typeof localStorage !== \"undefined\") {\n return localStorage.getItem(\"YZYSK\") || \"\";\n }\n return \"\";\n}\n\n/**\n * 签名函数\n * @param headers 请求头参数\n * @param params 请求参数\n * @param sk 签名密钥\n * @returns string 签名结果\n */\nexport function sign(\n headers: Record<string, string | number>,\n params: Record<string, any>,\n sk: string = getSecretKey(),\n): string {\n if (!sk) {\n console.warn(\n \"[tzj-player] 签名密钥 YZYSK 为空,签名结果将不被服务端认可,请确认已写入 localStorage\",\n );\n }\n const obj = Object.assign({}, headers, params);\n const keys = Object.keys(obj).sort();\n let str = \"\";\n // 拼接字符串\n keys.forEach((key, index) => {\n str += `${key}=\"${obj[key]}\"`;\n if (index !== keys.length - 1) {\n str += \"&\";\n }\n });\n console.log(\"未加签的字符串\", str);\n // 加密\n const hash = CryptoJS.HmacSHA256(str, sk);\n console.log(\"加签后的字符串\", hash.toString(CryptoJS.enc.Hex));\n return hash.toString(CryptoJS.enc.Hex);\n}\n/**\n * 获取云智眼设备通道ID\n * @param deviceId 设备ID\n * @returns Promise<string | false> 成功返回通道ID,失败返回false\n */\nexport async function GetYunZhiYanDeviceChannel(\n deviceId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/queryChannel\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (\n code === 200 &&\n Array.isArray(data) &&\n data.length > 0 &&\n data[0].channelCodeId\n ) {\n return data[0].channelCodeId || \"\";\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanDeviceChannel\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanDeviceChannel\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanDeviceChannel\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanDeviceChannel\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取云智眼设备视频播放地址\n * @param deviceId 设备ID\n * @param channelCodeId 通道ID\n * @returns Promise<string | false> 成功返回视频播放地址,失败返回false\n */\nexport async function GetYunZhiYanDeviceVideoUrl(\n deviceId: string,\n channelCodeId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId, channelCodeId };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/playOn\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n return data?.flv || \"\";\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanDeviceVideoUrl\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanDeviceVideoUrl\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanDeviceVideoUrl\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanDeviceVideoUrl\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取语音对讲地址信息\n */\n/**\n * 获取语音对讲地址信息\n * @param deviceId 设备ID\n * @returns Promise<any | false> 成功返回对讲信息,失败返回false\n */\nexport async function GetYunZhiYanOpenVoiceIntercom(\n deviceId: string,\n): Promise<any | false> {\n try {\n const headers: Record<string, any> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId, deviceType: \"1\", enableAudioSign: \"1\" };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/broadcastOn\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n return data;\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanOpenVoiceIntercom\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanOpenVoiceIntercom\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanOpenVoiceIntercom\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanOpenVoiceIntercom\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取语音对讲地址\n * @param taskId 任务ID\n * @returns Promise<string | false> 成功返回加密后的密钥,失败返回false\n */\nexport async function GetYunZhiYanUserPlaySecretKey(\n taskId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = {};\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\n \"/vsuap-platform-api/v1/user/queryPlaySecretKey\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n },\n );\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n const playSecretKey = data.playSecretKey;\n return CryptoJS.MD5(taskId + playSecretKey).toString();\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanUserPlaySecretKey\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanUserPlaySecretKey\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanUserPlaySecretKey\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanUserPlaySecretKey\", error);\n }\n return false;\n }\n}\n\n/**\n * 关闭语音对讲\n * @param deviceId 设备ID\n * @param taskId 任务ID\n * @returns Promise<any | false> 成功返回响应数据,失败返回false\n */\nexport async function GetYunZhiYanCloseVoiceIntercom(\n deviceId: string,\n taskId: string,\n): Promise<any | false> {\n try {\n const headers: Record<string, any> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId, taskId };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/broadcastOff\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n return res;\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanCloseVoiceIntercom\");\n } else if (error.name === \"TypeError\") {\n console.error(\n \"网络错误: GetYunZhiYanCloseVoiceIntercom\",\n error.message,\n );\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanCloseVoiceIntercom\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanCloseVoiceIntercom\", error);\n }\n return false;\n }\n}\n\n/**\n * 查询设备云端录像信息\n * @param deviceId 设备ID\n * @param channelCodeId 通道编码 ID\n * @param startTime 范围查询的开始时间, 13 位时间戳\n * @param endTime 范围查询的结束时间, 13 位时间戳(开始时间与结束时间最大间隔 7 天)\n * @returns Promise<string | false> 成功返回通道ID,失败返回false\n */\nexport async function GetYunZhiYanDeviceRecordList(\n deviceId: string,\n channelCodeId: string | number,\n startTime: string | number,\n endTime: string | number,\n): Promise<any[]> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId, channelCodeId, startTime, endTime };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/recordList\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200 && Array.isArray(data)) {\n return data || [];\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return [];\n }\n } catch (error) {\n return [];\n }\n}\n"],"names":[],"mappings":"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"}
@@ -18,9 +18,12 @@ function getSecretKey() {
18
18
  return "";
19
19
  }
20
20
  __name(getSecretKey, "getSecretKey");
21
- const ACCESS_KEY = getAccessKey();
22
- const SECRET_KEY = getSecretKey();
23
- function sign(headers, params, sk = SECRET_KEY) {
21
+ function sign(headers, params, sk = getSecretKey()) {
22
+ if (!sk) {
23
+ console.warn(
24
+ "[tzj-player] \u7B7E\u540D\u5BC6\u94A5 YZYSK \u4E3A\u7A7A\uFF0C\u7B7E\u540D\u7ED3\u679C\u5C06\u4E0D\u88AB\u670D\u52A1\u7AEF\u8BA4\u53EF\uFF0C\u8BF7\u786E\u8BA4\u5DF2\u5199\u5165 localStorage"
25
+ );
26
+ }
24
27
  const obj = Object.assign({}, headers, params);
25
28
  const keys = Object.keys(obj).sort();
26
29
  let str = "";
@@ -41,10 +44,10 @@ async function GetYunZhiYanDeviceChannel(deviceId) {
41
44
  const headers = {
42
45
  algorithm: "HmacSHA256",
43
46
  requestTime: Date.now(),
44
- accessKey: ACCESS_KEY
47
+ accessKey: getAccessKey()
45
48
  };
46
49
  const params = { deviceId };
47
- headers.sign = sign(headers, params, SECRET_KEY);
50
+ headers.sign = sign(headers, params);
48
51
  const controller = new AbortController();
49
52
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
50
53
  const response = await fetch("/vsuap-platform-api/v1/device/queryChannel", {
@@ -95,10 +98,10 @@ async function GetYunZhiYanDeviceVideoUrl(deviceId, channelCodeId) {
95
98
  const headers = {
96
99
  algorithm: "HmacSHA256",
97
100
  requestTime: Date.now(),
98
- accessKey: ACCESS_KEY
101
+ accessKey: getAccessKey()
99
102
  };
100
103
  const params = { deviceId, channelCodeId };
101
- headers.sign = sign(headers, params, SECRET_KEY);
104
+ headers.sign = sign(headers, params);
102
105
  const controller = new AbortController();
103
106
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
104
107
  const response = await fetch("/vsuap-platform-api/v1/device/playOn", {
@@ -149,10 +152,10 @@ async function GetYunZhiYanOpenVoiceIntercom(deviceId) {
149
152
  const headers = {
150
153
  algorithm: "HmacSHA256",
151
154
  requestTime: Date.now(),
152
- accessKey: ACCESS_KEY
155
+ accessKey: getAccessKey()
153
156
  };
154
157
  const params = { deviceId, deviceType: "1", enableAudioSign: "1" };
155
- headers.sign = sign(headers, params, SECRET_KEY);
158
+ headers.sign = sign(headers, params);
156
159
  const controller = new AbortController();
157
160
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
158
161
  const response = await fetch("/vsuap-platform-api/v1/device/broadcastOn", {
@@ -203,10 +206,10 @@ async function GetYunZhiYanUserPlaySecretKey(taskId) {
203
206
  const headers = {
204
207
  algorithm: "HmacSHA256",
205
208
  requestTime: Date.now(),
206
- accessKey: ACCESS_KEY
209
+ accessKey: getAccessKey()
207
210
  };
208
211
  const params = {};
209
- headers.sign = sign(headers, params, SECRET_KEY);
212
+ headers.sign = sign(headers, params);
210
213
  const controller = new AbortController();
211
214
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
212
215
  const response = await fetch(
@@ -261,10 +264,10 @@ async function GetYunZhiYanCloseVoiceIntercom(deviceId, taskId) {
261
264
  const headers = {
262
265
  algorithm: "HmacSHA256",
263
266
  requestTime: Date.now(),
264
- accessKey: ACCESS_KEY
267
+ accessKey: getAccessKey()
265
268
  };
266
269
  const params = { deviceId, taskId };
267
- headers.sign = sign(headers, params, SECRET_KEY);
270
+ headers.sign = sign(headers, params);
268
271
  const controller = new AbortController();
269
272
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
270
273
  const response = await fetch("/vsuap-platform-api/v1/device/broadcastOff", {
@@ -310,10 +313,10 @@ async function GetYunZhiYanDeviceRecordList(deviceId, channelCodeId, startTime,
310
313
  const headers = {
311
314
  algorithm: "HmacSHA256",
312
315
  requestTime: Date.now(),
313
- accessKey: ACCESS_KEY
316
+ accessKey: getAccessKey()
314
317
  };
315
318
  const params = { deviceId, channelCodeId, startTime, endTime };
316
- headers.sign = sign(headers, params, SECRET_KEY);
319
+ headers.sign = sign(headers, params);
317
320
  const controller = new AbortController();
318
321
  const timeoutId = setTimeout(() => controller.abort(), 1e4);
319
322
  const response = await fetch("/vsuap-platform-api/v1/device/recordList", {
@@ -1 +1 @@
1
- {"version":3,"file":"yunzhiyan.js","sources":["../../../../../../../packages/components/tzj-player/src/yunzhiyan.ts"],"sourcesContent":["import CryptoJS from \"crypto-js\";\n\n/**\n * 获取访问密钥,支持 SSR 环境\n */\nfunction getAccessKey(): string {\n if (typeof localStorage !== \"undefined\") {\n return localStorage.getItem(\"YZYAK\") || \"\";\n }\n return \"\";\n}\n\n/**\n * 获取签名密钥,支持 SSR 环境\n */\nfunction getSecretKey(): string {\n if (typeof localStorage !== \"undefined\") {\n return localStorage.getItem(\"YZYSK\") || \"\";\n }\n return \"\";\n}\n\nconst ACCESS_KEY = getAccessKey();\nconst SECRET_KEY = getSecretKey();\n\n/**\n * 签名函数\n * @param headers 请求头参数\n * @param params 请求参数\n * @param sk 签名密钥\n * @returns string 签名结果\n */\nexport function sign(\n headers: Record<string, string | number>,\n params: Record<string, any>,\n sk: string = SECRET_KEY,\n): string {\n const obj = Object.assign({}, headers, params);\n const keys = Object.keys(obj).sort();\n let str = \"\";\n // 拼接字符串\n keys.forEach((key, index) => {\n str += `${key}=\"${obj[key]}\"`;\n if (index !== keys.length - 1) {\n str += \"&\";\n }\n });\n console.log(\"未加签的字符串\", str);\n // 加密\n const hash = CryptoJS.HmacSHA256(str, sk);\n console.log(\"加签后的字符串\", hash.toString(CryptoJS.enc.Hex));\n return hash.toString(CryptoJS.enc.Hex);\n}\n/**\n * 获取云智眼设备通道ID\n * @param deviceId 设备ID\n * @returns Promise<string | false> 成功返回通道ID,失败返回false\n */\nexport async function GetYunZhiYanDeviceChannel(\n deviceId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/queryChannel\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (\n code === 200 &&\n Array.isArray(data) &&\n data.length > 0 &&\n data[0].channelCodeId\n ) {\n return data[0].channelCodeId || \"\";\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanDeviceChannel\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanDeviceChannel\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanDeviceChannel\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanDeviceChannel\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取云智眼设备视频播放地址\n * @param deviceId 设备ID\n * @param channelCodeId 通道ID\n * @returns Promise<string | false> 成功返回视频播放地址,失败返回false\n */\nexport async function GetYunZhiYanDeviceVideoUrl(\n deviceId: string,\n channelCodeId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId, channelCodeId };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/playOn\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n return data?.flv || \"\";\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanDeviceVideoUrl\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanDeviceVideoUrl\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanDeviceVideoUrl\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanDeviceVideoUrl\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取语音对讲地址信息\n */\n/**\n * 获取语音对讲地址信息\n * @param deviceId 设备ID\n * @returns Promise<any | false> 成功返回对讲信息,失败返回false\n */\nexport async function GetYunZhiYanOpenVoiceIntercom(\n deviceId: string,\n): Promise<any | false> {\n try {\n const headers: Record<string, any> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId, deviceType: \"1\", enableAudioSign: \"1\" };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/broadcastOn\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n return data;\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanOpenVoiceIntercom\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanOpenVoiceIntercom\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanOpenVoiceIntercom\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanOpenVoiceIntercom\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取语音对讲地址\n * @param taskId 任务ID\n * @returns Promise<string | false> 成功返回加密后的密钥,失败返回false\n */\nexport async function GetYunZhiYanUserPlaySecretKey(\n taskId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = {};\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\n \"/vsuap-platform-api/v1/user/queryPlaySecretKey\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n },\n );\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n const playSecretKey = data.playSecretKey;\n return CryptoJS.MD5(taskId + playSecretKey).toString();\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanUserPlaySecretKey\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanUserPlaySecretKey\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanUserPlaySecretKey\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanUserPlaySecretKey\", error);\n }\n return false;\n }\n}\n\n/**\n * 关闭语音对讲\n * @param deviceId 设备ID\n * @param taskId 任务ID\n * @returns Promise<any | false> 成功返回响应数据,失败返回false\n */\nexport async function GetYunZhiYanCloseVoiceIntercom(\n deviceId: string,\n taskId: string,\n): Promise<any | false> {\n try {\n const headers: Record<string, any> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId, taskId };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/broadcastOff\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n return res;\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanCloseVoiceIntercom\");\n } else if (error.name === \"TypeError\") {\n console.error(\n \"网络错误: GetYunZhiYanCloseVoiceIntercom\",\n error.message,\n );\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanCloseVoiceIntercom\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanCloseVoiceIntercom\", error);\n }\n return false;\n }\n}\n\n/**\n * 查询设备云端录像信息\n * @param deviceId 设备ID\n * @param channelCodeId 通道编码 ID\n * @param startTime 范围查询的开始时间, 13 位时间戳\n * @param endTime 范围查询的结束时间, 13 位时间戳(开始时间与结束时间最大间隔 7 天)\n * @returns Promise<string | false> 成功返回通道ID,失败返回false\n */\nexport async function GetYunZhiYanDeviceRecordList(\n deviceId: string,\n channelCodeId: string | number,\n startTime: string | number,\n endTime: string | number,\n): Promise<any[]> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: ACCESS_KEY,\n };\n const params = { deviceId, channelCodeId, startTime, endTime };\n headers.sign = sign(headers, params, SECRET_KEY);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/recordList\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200 && Array.isArray(data)) {\n return data || [];\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return [];\n }\n } catch (error) {\n return [];\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yunzhiyan.js","sources":["../../../../../../../packages/components/tzj-player/src/yunzhiyan.ts"],"sourcesContent":["import CryptoJS from \"crypto-js\";\n\n/**\n * 获取访问密钥,支持 SSR 环境\n */\nfunction getAccessKey(): string {\n if (typeof localStorage !== \"undefined\") {\n return localStorage.getItem(\"YZYAK\") || \"\";\n }\n return \"\";\n}\n\n/**\n * 获取签名密钥,支持 SSR 环境\n */\nfunction getSecretKey(): string {\n if (typeof localStorage !== \"undefined\") {\n return localStorage.getItem(\"YZYSK\") || \"\";\n }\n return \"\";\n}\n\n/**\n * 签名函数\n * @param headers 请求头参数\n * @param params 请求参数\n * @param sk 签名密钥\n * @returns string 签名结果\n */\nexport function sign(\n headers: Record<string, string | number>,\n params: Record<string, any>,\n sk: string = getSecretKey(),\n): string {\n if (!sk) {\n console.warn(\n \"[tzj-player] 签名密钥 YZYSK 为空,签名结果将不被服务端认可,请确认已写入 localStorage\",\n );\n }\n const obj = Object.assign({}, headers, params);\n const keys = Object.keys(obj).sort();\n let str = \"\";\n // 拼接字符串\n keys.forEach((key, index) => {\n str += `${key}=\"${obj[key]}\"`;\n if (index !== keys.length - 1) {\n str += \"&\";\n }\n });\n console.log(\"未加签的字符串\", str);\n // 加密\n const hash = CryptoJS.HmacSHA256(str, sk);\n console.log(\"加签后的字符串\", hash.toString(CryptoJS.enc.Hex));\n return hash.toString(CryptoJS.enc.Hex);\n}\n/**\n * 获取云智眼设备通道ID\n * @param deviceId 设备ID\n * @returns Promise<string | false> 成功返回通道ID,失败返回false\n */\nexport async function GetYunZhiYanDeviceChannel(\n deviceId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/queryChannel\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (\n code === 200 &&\n Array.isArray(data) &&\n data.length > 0 &&\n data[0].channelCodeId\n ) {\n return data[0].channelCodeId || \"\";\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanDeviceChannel\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanDeviceChannel\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanDeviceChannel\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanDeviceChannel\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取云智眼设备视频播放地址\n * @param deviceId 设备ID\n * @param channelCodeId 通道ID\n * @returns Promise<string | false> 成功返回视频播放地址,失败返回false\n */\nexport async function GetYunZhiYanDeviceVideoUrl(\n deviceId: string,\n channelCodeId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId, channelCodeId };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/playOn\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n return data?.flv || \"\";\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanDeviceVideoUrl\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanDeviceVideoUrl\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanDeviceVideoUrl\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanDeviceVideoUrl\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取语音对讲地址信息\n */\n/**\n * 获取语音对讲地址信息\n * @param deviceId 设备ID\n * @returns Promise<any | false> 成功返回对讲信息,失败返回false\n */\nexport async function GetYunZhiYanOpenVoiceIntercom(\n deviceId: string,\n): Promise<any | false> {\n try {\n const headers: Record<string, any> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId, deviceType: \"1\", enableAudioSign: \"1\" };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/broadcastOn\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n return data;\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanOpenVoiceIntercom\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanOpenVoiceIntercom\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanOpenVoiceIntercom\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanOpenVoiceIntercom\", error);\n }\n return false;\n }\n}\n\n/**\n * 获取语音对讲地址\n * @param taskId 任务ID\n * @returns Promise<string | false> 成功返回加密后的密钥,失败返回false\n */\nexport async function GetYunZhiYanUserPlaySecretKey(\n taskId: string,\n): Promise<string | false> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = {};\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\n \"/vsuap-platform-api/v1/user/queryPlaySecretKey\",\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n },\n );\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200) {\n const playSecretKey = data.playSecretKey;\n return CryptoJS.MD5(taskId + playSecretKey).toString();\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return false;\n }\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanUserPlaySecretKey\");\n } else if (error.name === \"TypeError\") {\n console.error(\"网络错误: GetYunZhiYanUserPlaySecretKey\", error.message);\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanUserPlaySecretKey\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanUserPlaySecretKey\", error);\n }\n return false;\n }\n}\n\n/**\n * 关闭语音对讲\n * @param deviceId 设备ID\n * @param taskId 任务ID\n * @returns Promise<any | false> 成功返回响应数据,失败返回false\n */\nexport async function GetYunZhiYanCloseVoiceIntercom(\n deviceId: string,\n taskId: string,\n): Promise<any | false> {\n try {\n const headers: Record<string, any> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId, taskId };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/broadcastOff\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n console.error(`HTTP错误: ${response.status} ${response.statusText}`);\n return false;\n }\n\n const res = await response.json();\n return res;\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"AbortError\") {\n console.error(\"请求超时: GetYunZhiYanCloseVoiceIntercom\");\n } else if (error.name === \"TypeError\") {\n console.error(\n \"网络错误: GetYunZhiYanCloseVoiceIntercom\",\n error.message,\n );\n } else {\n console.error(\n \"JSON解析错误或其他错误: GetYunZhiYanCloseVoiceIntercom\",\n error.message,\n );\n }\n } else {\n console.error(\"未知错误: GetYunZhiYanCloseVoiceIntercom\", error);\n }\n return false;\n }\n}\n\n/**\n * 查询设备云端录像信息\n * @param deviceId 设备ID\n * @param channelCodeId 通道编码 ID\n * @param startTime 范围查询的开始时间, 13 位时间戳\n * @param endTime 范围查询的结束时间, 13 位时间戳(开始时间与结束时间最大间隔 7 天)\n * @returns Promise<string | false> 成功返回通道ID,失败返回false\n */\nexport async function GetYunZhiYanDeviceRecordList(\n deviceId: string,\n channelCodeId: string | number,\n startTime: string | number,\n endTime: string | number,\n): Promise<any[]> {\n try {\n const headers: Record<string, string | number> = {\n algorithm: \"HmacSHA256\",\n requestTime: Date.now(),\n accessKey: getAccessKey(),\n };\n const params = { deviceId, channelCodeId, startTime, endTime };\n headers.sign = sign(headers, params);\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时\n\n const response = await fetch(\"/vsuap-platform-api/v1/device/recordList\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(params),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n const res = await response.json();\n const { code, data } = res;\n\n if (code === 200 && Array.isArray(data)) {\n return data || [];\n } else {\n console.error(\n `业务错误: code=${code}, message=${res.message || \"未知错误\"}`,\n );\n return [];\n }\n } catch (error) {\n return [];\n }\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yimou6/common-ui",
3
- "version": "1.13.27",
3
+ "version": "1.13.28",
4
4
  "description": "Vue3 Component Library",
5
5
  "author": "yimou6",
6
6
  "license": "MIT",