@yimou6/common-ui 1.6.1 → 1.6.2
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.
- package/cdn/index.cdn.js +8 -8
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +11 -11
- package/cdn/index.cdn.mjs.map +1 -1
- package/cdn/index.css +1 -1
- package/es/components/live-player/index.d.ts +15 -3
- package/es/components/live-player/src/live-player.d.ts +5 -0
- package/es/components/live-player/src/live-player.mjs +13 -1
- package/es/components/live-player/src/live-player.mjs.map +1 -1
- package/es/components/live-player/src/live-player.vue.d.ts +15 -3
- package/es/components/live-player/src/live-player.vue2.mjs +32 -85
- package/es/components/live-player/src/live-player.vue2.mjs.map +1 -1
- package/es/components/live-player/src/xgPlayer.vue.d.ts +29 -0
- package/es/components/live-player/src/xgPlayer.vue.mjs +6 -0
- package/es/components/live-player/src/xgPlayer.vue.mjs.map +1 -0
- package/es/components/live-player/src/xgPlayer.vue2.mjs +108 -0
- package/es/components/live-player/src/xgPlayer.vue2.mjs.map +1 -0
- package/es/components/live-player/src/ysPlayer.vue.d.ts +73 -0
- package/es/components/live-player/src/ysPlayer.vue.mjs +6 -0
- package/es/components/live-player/src/ysPlayer.vue.mjs.map +1 -0
- package/es/components/live-player/src/ysPlayer.vue2.mjs +172 -0
- package/es/components/live-player/src/ysPlayer.vue2.mjs.map +1 -0
- package/es/components/tenant-enterprise/index.d.ts +13 -0
- package/es/components/tenant-enterprise/src/tenant-enterprise.d.ts +4 -0
- package/es/components/tenant-enterprise/src/tenant-enterprise.mjs +4 -0
- package/es/components/tenant-enterprise/src/tenant-enterprise.mjs.map +1 -1
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue.d.ts +13 -0
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs +2 -2
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs.map +1 -1
- package/lib/components/live-player/index.d.ts +15 -3
- package/lib/components/live-player/src/live-player.d.ts +5 -0
- package/lib/components/live-player/src/live-player.js +13 -0
- package/lib/components/live-player/src/live-player.js.map +1 -1
- package/lib/components/live-player/src/live-player.vue.d.ts +15 -3
- package/lib/components/live-player/src/live-player.vue2.js +30 -83
- package/lib/components/live-player/src/live-player.vue2.js.map +1 -1
- package/lib/components/live-player/src/xgPlayer.vue.d.ts +29 -0
- package/lib/components/live-player/src/xgPlayer.vue.js +10 -0
- package/lib/components/live-player/src/xgPlayer.vue.js.map +1 -0
- package/lib/components/live-player/src/xgPlayer.vue2.js +112 -0
- package/lib/components/live-player/src/xgPlayer.vue2.js.map +1 -0
- package/lib/components/live-player/src/ysPlayer.vue.d.ts +73 -0
- package/lib/components/live-player/src/ysPlayer.vue.js +10 -0
- package/lib/components/live-player/src/ysPlayer.vue.js.map +1 -0
- package/lib/components/live-player/src/ysPlayer.vue2.js +176 -0
- package/lib/components/live-player/src/ysPlayer.vue2.js.map +1 -0
- package/lib/components/tenant-enterprise/index.d.ts +13 -0
- package/lib/components/tenant-enterprise/src/tenant-enterprise.d.ts +4 -0
- package/lib/components/tenant-enterprise/src/tenant-enterprise.js +4 -0
- package/lib/components/tenant-enterprise/src/tenant-enterprise.js.map +1 -1
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue.d.ts +13 -0
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js +2 -2
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js.map +1 -1
- package/package.json +5 -2
- package/theme-default/i-live-player.css +1 -1
- package/theme-default/index.css +1 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
url: {
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
required: false;
|
|
5
|
+
};
|
|
6
|
+
deviceSerial: {
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
required: false;
|
|
9
|
+
};
|
|
10
|
+
channel: {
|
|
11
|
+
type: NumberConstructor;
|
|
12
|
+
required: false;
|
|
13
|
+
};
|
|
14
|
+
quality: {
|
|
15
|
+
type: StringConstructor;
|
|
16
|
+
required: false;
|
|
17
|
+
};
|
|
18
|
+
accessToken: {
|
|
19
|
+
type: StringConstructor;
|
|
20
|
+
required: true;
|
|
21
|
+
};
|
|
22
|
+
debug: {
|
|
23
|
+
type: BooleanConstructor;
|
|
24
|
+
required: false;
|
|
25
|
+
};
|
|
26
|
+
}>, {
|
|
27
|
+
props: any;
|
|
28
|
+
PLAYER_TEMPLATE: string;
|
|
29
|
+
id: string;
|
|
30
|
+
playerInstance: any;
|
|
31
|
+
errorMsg: string;
|
|
32
|
+
ysRef: import("vue").ShallowRef<any, any>;
|
|
33
|
+
width: import("vue").Ref<number, number>;
|
|
34
|
+
height: import("vue").Ref<number, number>;
|
|
35
|
+
ratio: number;
|
|
36
|
+
debounce: (func: Function, wait: number) => (this: any, ...args: any[]) => void;
|
|
37
|
+
debouncedResize: (this: any, ...args: any[]) => void;
|
|
38
|
+
play: (options?: Record<string, any>) => void;
|
|
39
|
+
destroy: () => void;
|
|
40
|
+
resize: () => void;
|
|
41
|
+
createPlayer: (options?: Record<string, any>) => void;
|
|
42
|
+
formatterUrl: () => string;
|
|
43
|
+
removePlayerDom: () => void;
|
|
44
|
+
createPlayerDom: () => void;
|
|
45
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
46
|
+
url: {
|
|
47
|
+
type: StringConstructor;
|
|
48
|
+
required: false;
|
|
49
|
+
};
|
|
50
|
+
deviceSerial: {
|
|
51
|
+
type: StringConstructor;
|
|
52
|
+
required: false;
|
|
53
|
+
};
|
|
54
|
+
channel: {
|
|
55
|
+
type: NumberConstructor;
|
|
56
|
+
required: false;
|
|
57
|
+
};
|
|
58
|
+
quality: {
|
|
59
|
+
type: StringConstructor;
|
|
60
|
+
required: false;
|
|
61
|
+
};
|
|
62
|
+
accessToken: {
|
|
63
|
+
type: StringConstructor;
|
|
64
|
+
required: true;
|
|
65
|
+
};
|
|
66
|
+
debug: {
|
|
67
|
+
type: BooleanConstructor;
|
|
68
|
+
required: false;
|
|
69
|
+
};
|
|
70
|
+
}>> & Readonly<{}>, {
|
|
71
|
+
debug: boolean;
|
|
72
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
73
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var ysPlayer_vue_vue_type_script_setup_true_lang = require('./ysPlayer.vue2.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.default = ysPlayer_vue_vue_type_script_setup_true_lang.default;
|
|
10
|
+
//# sourceMappingURL=ysPlayer.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ysPlayer.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
var core = require('@vueuse/core');
|
|
7
|
+
var EZUIKit = require('ezuikit-js');
|
|
8
|
+
var livePlayer = require('./live-player.js');
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
|
+
const _hoisted_1 = {
|
|
13
|
+
key: 0,
|
|
14
|
+
class: "i-player__error"
|
|
15
|
+
};
|
|
16
|
+
const PLAYER_TEMPLATE = "5f295a9341a74d439b5d69374c90d501";
|
|
17
|
+
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
18
|
+
...{
|
|
19
|
+
name: "YsPlayer"
|
|
20
|
+
},
|
|
21
|
+
__name: "ysPlayer",
|
|
22
|
+
props: {
|
|
23
|
+
url: {},
|
|
24
|
+
deviceSerial: {},
|
|
25
|
+
channel: {},
|
|
26
|
+
quality: {},
|
|
27
|
+
accessToken: {},
|
|
28
|
+
debug: { type: Boolean }
|
|
29
|
+
},
|
|
30
|
+
setup(__props, { expose: __expose }) {
|
|
31
|
+
const props = __props;
|
|
32
|
+
const id = livePlayer.uuid();
|
|
33
|
+
let playerInstance = null;
|
|
34
|
+
let errorMsg = "";
|
|
35
|
+
const ysRef = vue.shallowRef();
|
|
36
|
+
const { width, height } = core.useElementSize(ysRef);
|
|
37
|
+
let ratio = 16 / 9;
|
|
38
|
+
vue.onMounted(() => play());
|
|
39
|
+
__expose({ play, destroy, resize });
|
|
40
|
+
function debounce(func, wait) {
|
|
41
|
+
let timeout = null;
|
|
42
|
+
return function(...args) {
|
|
43
|
+
if (timeout) clearTimeout(timeout);
|
|
44
|
+
timeout = setTimeout(() => func.apply(this, args), wait);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
__name(debounce, "debounce");
|
|
48
|
+
const debouncedResize = debounce(resize, 300);
|
|
49
|
+
vue.watch(
|
|
50
|
+
() => [width.value, height.value, ratio],
|
|
51
|
+
() => debouncedResize()
|
|
52
|
+
);
|
|
53
|
+
function play(options) {
|
|
54
|
+
props.debug && console.log("play", options);
|
|
55
|
+
if (!props.accessToken) {
|
|
56
|
+
errorMsg = `params 'accessToken' is not fount`;
|
|
57
|
+
} else {
|
|
58
|
+
const url = formatterUrl();
|
|
59
|
+
if (url) {
|
|
60
|
+
createPlayerDom();
|
|
61
|
+
vue.nextTick(() => createPlayer(options));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
__name(play, "play");
|
|
66
|
+
function destroy() {
|
|
67
|
+
if (playerInstance) {
|
|
68
|
+
playerInstance.destroy();
|
|
69
|
+
playerInstance = null;
|
|
70
|
+
removePlayerDom();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
__name(destroy, "destroy");
|
|
74
|
+
function resize() {
|
|
75
|
+
if (width.value > 0 && height.value > 0) {
|
|
76
|
+
let calculatedWidth = width.value;
|
|
77
|
+
let calculatedHeight = calculatedWidth / ratio;
|
|
78
|
+
if (calculatedHeight > height.value) {
|
|
79
|
+
calculatedHeight = height.value;
|
|
80
|
+
calculatedWidth = calculatedHeight * ratio;
|
|
81
|
+
}
|
|
82
|
+
playerInstance == null ? void 0 : playerInstance.resize(calculatedWidth, calculatedHeight);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
__name(resize, "resize");
|
|
86
|
+
function createPlayer(options) {
|
|
87
|
+
playerInstance = new EZUIKit.EZUIKitPlayer({
|
|
88
|
+
id,
|
|
89
|
+
url: formatterUrl(),
|
|
90
|
+
accessToken: props.accessToken,
|
|
91
|
+
template: PLAYER_TEMPLATE,
|
|
92
|
+
width: width.value,
|
|
93
|
+
height: height.value,
|
|
94
|
+
audio: 1,
|
|
95
|
+
// @ts-ignore
|
|
96
|
+
loggerOptions: {
|
|
97
|
+
name: "YSPLAYER",
|
|
98
|
+
level: "ERROR",
|
|
99
|
+
showTime: true
|
|
100
|
+
},
|
|
101
|
+
...options
|
|
102
|
+
});
|
|
103
|
+
playerInstance.eventEmitter.on("destroy", (args) => {
|
|
104
|
+
props.debug && console.log("destroy", args);
|
|
105
|
+
});
|
|
106
|
+
playerInstance.eventEmitter.on("init", (args) => {
|
|
107
|
+
props.debug && console.log("init", args);
|
|
108
|
+
});
|
|
109
|
+
playerInstance.eventEmitter.on("play", (args) => {
|
|
110
|
+
props.debug && console.log("play", args);
|
|
111
|
+
});
|
|
112
|
+
playerInstance.eventEmitter.on("videoInfo", (args) => {
|
|
113
|
+
const { width: w, height: h } = args;
|
|
114
|
+
if (w && h) {
|
|
115
|
+
ratio = w / h;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
__name(createPlayer, "createPlayer");
|
|
120
|
+
function formatterUrl() {
|
|
121
|
+
if (props.url) {
|
|
122
|
+
return props.url;
|
|
123
|
+
} else {
|
|
124
|
+
if (props.deviceSerial && props.channel) {
|
|
125
|
+
const quality = props.quality === "" || props.quality === "hd" ? "hd." : "";
|
|
126
|
+
return `ezopen://open.ys7.com/${props.deviceSerial}/${props.channel}.${quality}live`;
|
|
127
|
+
} else {
|
|
128
|
+
errorMsg = `params 'deviceSerial' or 'channel' is not fount`;
|
|
129
|
+
return "";
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
__name(formatterUrl, "formatterUrl");
|
|
134
|
+
function removePlayerDom() {
|
|
135
|
+
const dom = document.getElementById(id);
|
|
136
|
+
dom && dom.remove();
|
|
137
|
+
}
|
|
138
|
+
__name(removePlayerDom, "removePlayerDom");
|
|
139
|
+
function createPlayerDom() {
|
|
140
|
+
var _a;
|
|
141
|
+
if (!errorMsg) {
|
|
142
|
+
removePlayerDom();
|
|
143
|
+
const dom = document.createElement("div");
|
|
144
|
+
dom.id = id;
|
|
145
|
+
dom.style.width = "100%";
|
|
146
|
+
dom.style.height = "100%";
|
|
147
|
+
(_a = ysRef.value) == null ? void 0 : _a.appendChild(dom);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
__name(createPlayerDom, "createPlayerDom");
|
|
151
|
+
return (_ctx, _cache) => {
|
|
152
|
+
return vue.openBlock(), vue.createElementBlock(
|
|
153
|
+
"div",
|
|
154
|
+
{
|
|
155
|
+
ref_key: "ysRef",
|
|
156
|
+
ref: ysRef,
|
|
157
|
+
class: "i-player-bg i-player-container"
|
|
158
|
+
},
|
|
159
|
+
[
|
|
160
|
+
vue.unref(errorMsg) ? (vue.openBlock(), vue.createElementBlock(
|
|
161
|
+
"div",
|
|
162
|
+
_hoisted_1,
|
|
163
|
+
vue.toDisplayString(vue.unref(errorMsg)),
|
|
164
|
+
1
|
|
165
|
+
/* TEXT */
|
|
166
|
+
)) : vue.createCommentVNode("v-if", true)
|
|
167
|
+
],
|
|
168
|
+
512
|
|
169
|
+
/* NEED_PATCH */
|
|
170
|
+
);
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
exports.default = _sfc_main;
|
|
176
|
+
//# sourceMappingURL=ysPlayer.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ysPlayer.vue2.js","sources":["../../../../../../../packages/components/live-player/src/ysPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { useElementSize } from '@vueuse/core';\n import EZUIKit from 'ezuikit-js';\n import { nextTick, onMounted, shallowRef, watch } from 'vue';\n import { uuid } from './live-player';\n // 萤石云播放器\n defineOptions({\n name: 'YsPlayer',\n });\n\n // 传值方式\n // 1、传url、accessToken\n // 2、传deviceSerial、channel、accessToken\n const props = defineProps<{\n // 播放地址\n // 高清:ezopen://open.ys7.com/${设备序列号}/${通道号}.hd.live\n // 流畅:ezopen://open.ys7.com/${设备序列号}/${通道号}.live\n url?: string;\n // 设备序列号\n deviceSerial?: string;\n // 通道号\n channel?: number;\n // 清晰度,默认为空,也表示高清\n // hd:高清;sd:流畅\n quality?: 'hd' | 'sd' | '';\n accessToken: string;\n debug?: boolean;\n }>();\n\n // 播放器模板ID\n // 可在萤石云控制台查看、修改、获取\n // 位置:云直播-轻应用-特致珈默认模板\n const PLAYER_TEMPLATE = '5f295a9341a74d439b5d69374c90d501';\n const id = uuid();\n let playerInstance: any = null;\n let errorMsg = '';\n const ysRef = shallowRef();\n const { width, height } = useElementSize(ysRef);\n let ratio = 16 / 9;\n\n onMounted(() => play());\n\n defineExpose({ play, destroy, resize });\n\n // 防抖函数\n function debounce(func: Function, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n return function (this: any, ...args: any[]) {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), wait);\n };\n }\n\n // 加上防抖的 resize 函数\n const debouncedResize = debounce(resize, 300);\n\n watch(\n () => [width.value, height.value, ratio],\n () => debouncedResize(),\n );\n\n function play(options?: Record<string, any>) {\n props.debug && console.log('play', options);\n if (!props.accessToken) {\n errorMsg = `params 'accessToken' is not fount`;\n } else {\n const url = formatterUrl();\n if (url) {\n createPlayerDom();\n nextTick(() => createPlayer(options));\n }\n }\n }\n function destroy() {\n if (playerInstance) {\n playerInstance.destroy();\n playerInstance = null;\n removePlayerDom();\n }\n }\n function resize() {\n // 根据播放器宽高比,设置播放器高度\n if (width.value > 0 && height.value > 0) {\n let calculatedWidth = width.value;\n let calculatedHeight = calculatedWidth / ratio;\n if (calculatedHeight > height.value) {\n calculatedHeight = height.value;\n calculatedWidth = calculatedHeight * ratio;\n }\n playerInstance?.resize(calculatedWidth, calculatedHeight);\n }\n }\n\n /**\n * 创建萤石云播放器实例,播放萤石云直播流\n */\n function createPlayer(options?: Record<string, any>) {\n playerInstance = new EZUIKit.EZUIKitPlayer({\n id,\n url: formatterUrl(),\n accessToken: props.accessToken,\n template: PLAYER_TEMPLATE,\n width: width.value,\n height: height.value,\n audio: 1,\n // @ts-ignore\n loggerOptions: {\n name: 'YSPLAYER',\n level: 'ERROR',\n showTime: true,\n },\n ...options,\n });\n\n playerInstance.eventEmitter.on('destroy', (args: any) => {\n props.debug && console.log('destroy', args);\n });\n playerInstance.eventEmitter.on('init', (args: any) => {\n props.debug && console.log('init', args);\n });\n playerInstance.eventEmitter.on('play', (args: any) => {\n props.debug && console.log('play', args);\n });\n playerInstance.eventEmitter.on('videoInfo', (args: any) => {\n const { width: w, height: h } = args;\n // 计算播放器宽高比\n if (w && h) {\n ratio = w / h;\n }\n });\n }\n\n function formatterUrl(): string {\n if (props.url) {\n return props.url;\n } else {\n if (props.deviceSerial && props.channel) {\n const quality = props.quality === '' || props.quality === 'hd' ? 'hd.' : '';\n return `ezopen://open.ys7.com/${props.deviceSerial}/${props.channel}.${quality}live`;\n } else {\n errorMsg = `params 'deviceSerial' or 'channel' is not fount`;\n return '';\n }\n }\n }\n\n // 移除播放器DOM\n function removePlayerDom() {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n // 创建播放器DOM\n function createPlayerDom() {\n if (!errorMsg) {\n removePlayerDom();\n const dom = document.createElement('div');\n dom.id = id;\n dom.style.width = '100%';\n dom.style.height = '100%';\n ysRef.value?.appendChild(dom);\n }\n }\n</script>\n\n<template>\n <div ref=\"ysRef\" class=\"i-player-bg i-player-container\">\n <div v-if=\"errorMsg\" class=\"i-player__error\">{{ errorMsg }}</div>\n </div>\n</template>\n"],"names":["uuid","shallowRef","useElementSize","onMounted","watch","nextTick"],"mappings":"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"}
|
|
@@ -16,6 +16,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
|
|
|
16
16
|
type: BooleanConstructor;
|
|
17
17
|
default: boolean;
|
|
18
18
|
};
|
|
19
|
+
popperClass: {
|
|
20
|
+
type: StringConstructor;
|
|
21
|
+
default: string;
|
|
22
|
+
};
|
|
19
23
|
action: ObjectConstructor;
|
|
20
24
|
}>, {
|
|
21
25
|
props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -35,6 +39,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
|
|
|
35
39
|
type: BooleanConstructor;
|
|
36
40
|
default: boolean;
|
|
37
41
|
};
|
|
42
|
+
popperClass: {
|
|
43
|
+
type: StringConstructor;
|
|
44
|
+
default: string;
|
|
45
|
+
};
|
|
38
46
|
action: ObjectConstructor;
|
|
39
47
|
}>> & Readonly<{
|
|
40
48
|
onChange?: ((value: import("./src/tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
|
|
@@ -1332,6 +1340,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
|
|
|
1332
1340
|
type: BooleanConstructor;
|
|
1333
1341
|
default: boolean;
|
|
1334
1342
|
};
|
|
1343
|
+
popperClass: {
|
|
1344
|
+
type: StringConstructor;
|
|
1345
|
+
default: string;
|
|
1346
|
+
};
|
|
1335
1347
|
action: ObjectConstructor;
|
|
1336
1348
|
}>> & Readonly<{
|
|
1337
1349
|
onChange?: ((value: import("./src/tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
|
|
@@ -1339,6 +1351,7 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
|
|
|
1339
1351
|
label: string;
|
|
1340
1352
|
data: any[];
|
|
1341
1353
|
multiple: boolean;
|
|
1354
|
+
popperClass: string;
|
|
1342
1355
|
showLabel: boolean;
|
|
1343
1356
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
|
|
1344
1357
|
export default ITenantEnterprise;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-enterprise.js","sources":["../../../../../../../packages/components/tenant-enterprise/src/tenant-enterprise.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from 'vue';\nimport type TenantEnterprise from './tenant-enterprise.vue';\n\nexport const TenantEnterpriseProps = {\n label: {\n type: String,\n default: '当前单位',\n },\n showLabel: {\n type: Boolean,\n default: true,\n },\n data: {\n type: Array as PropType<any[]>,\n default: () => [],\n },\n multiple: {\n type: Boolean,\n default: true,\n },\n /**\n * pinia window.microApp.getData()\n */\n action: Object,\n};\n\nexport interface TenantEnterpriseItem {\n name: string;\n enterpriseId: number | string;\n tenantId: number | string;\n}\nexport interface TenantEnterpriseChangeValueType {\n arr: TenantEnterpriseItem[];\n obj: TenantEnterpriseItem;\n}\n\nexport const TenantEnterpriseEmits = {\n change: (value: TenantEnterpriseChangeValueType) => value,\n};\n\nexport type TenantEnterprisePropsType = ExtractPropTypes<typeof TenantEnterpriseProps>;\nexport type TenantEnterpriseInstance = InstanceType<typeof TenantEnterprise>;\n"],"names":[],"mappings":";;;;AAGO,MAAM,qBAAwB,GAAA;AAAA,EACnC,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,kBAAe,MAAA,CAAA,MAAA,EAAN,EAAA,SAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AACV;AAYO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAA,kBAAS,MAAA,CAAA,CAAA,KAAA,KAA2C,KAA5C,EAAA,QAAA;AACV;;;;;"}
|
|
1
|
+
{"version":3,"file":"tenant-enterprise.js","sources":["../../../../../../../packages/components/tenant-enterprise/src/tenant-enterprise.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from 'vue';\nimport type TenantEnterprise from './tenant-enterprise.vue';\n\nexport const TenantEnterpriseProps = {\n label: {\n type: String,\n default: '当前单位',\n },\n showLabel: {\n type: Boolean,\n default: true,\n },\n data: {\n type: Array as PropType<any[]>,\n default: () => [],\n },\n multiple: {\n type: Boolean,\n default: true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n /**\n * pinia window.microApp.getData()\n */\n action: Object,\n};\n\nexport interface TenantEnterpriseItem {\n name: string;\n enterpriseId: number | string;\n tenantId: number | string;\n}\nexport interface TenantEnterpriseChangeValueType {\n arr: TenantEnterpriseItem[];\n obj: TenantEnterpriseItem;\n}\n\nexport const TenantEnterpriseEmits = {\n change: (value: TenantEnterpriseChangeValueType) => value,\n};\n\nexport type TenantEnterprisePropsType = ExtractPropTypes<typeof TenantEnterpriseProps>;\nexport type TenantEnterpriseInstance = InstanceType<typeof TenantEnterprise>;\n"],"names":[],"mappings":";;;;AAGO,MAAM,qBAAwB,GAAA;AAAA,EACnC,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,kBAAe,MAAA,CAAA,MAAA,EAAN,EAAA,SAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AACV;AAYO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAA,kBAAS,MAAA,CAAA,CAAA,KAAA,KAA2C,KAA5C,EAAA,QAAA;AACV;;;;;"}
|
|
@@ -15,6 +15,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
15
15
|
type: BooleanConstructor;
|
|
16
16
|
default: boolean;
|
|
17
17
|
};
|
|
18
|
+
popperClass: {
|
|
19
|
+
type: StringConstructor;
|
|
20
|
+
default: string;
|
|
21
|
+
};
|
|
18
22
|
action: ObjectConstructor;
|
|
19
23
|
}>, {
|
|
20
24
|
props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -34,6 +38,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
34
38
|
type: BooleanConstructor;
|
|
35
39
|
default: boolean;
|
|
36
40
|
};
|
|
41
|
+
popperClass: {
|
|
42
|
+
type: StringConstructor;
|
|
43
|
+
default: string;
|
|
44
|
+
};
|
|
37
45
|
action: ObjectConstructor;
|
|
38
46
|
}>> & Readonly<{
|
|
39
47
|
onChange?: ((value: import("./tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
|
|
@@ -1331,6 +1339,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1331
1339
|
type: BooleanConstructor;
|
|
1332
1340
|
default: boolean;
|
|
1333
1341
|
};
|
|
1342
|
+
popperClass: {
|
|
1343
|
+
type: StringConstructor;
|
|
1344
|
+
default: string;
|
|
1345
|
+
};
|
|
1334
1346
|
action: ObjectConstructor;
|
|
1335
1347
|
}>> & Readonly<{
|
|
1336
1348
|
onChange?: ((value: import("./tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
|
|
@@ -1338,6 +1350,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1338
1350
|
label: string;
|
|
1339
1351
|
data: any[];
|
|
1340
1352
|
multiple: boolean;
|
|
1353
|
+
popperClass: string;
|
|
1341
1354
|
showLabel: boolean;
|
|
1342
1355
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
1343
1356
|
export default _default;
|
|
@@ -360,7 +360,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
360
360
|
clearable: false,
|
|
361
361
|
style: { "width": "240px" },
|
|
362
362
|
placement: "bottom-end",
|
|
363
|
-
"popper-class":
|
|
363
|
+
"popper-class": `tenant-enterprise-popper ${_ctx.popperClass}`,
|
|
364
364
|
onVisibleChange: handleVisibleChange
|
|
365
365
|
}, {
|
|
366
366
|
empty: vue.withCtx(() => [
|
|
@@ -432,7 +432,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
432
432
|
]),
|
|
433
433
|
_: 1
|
|
434
434
|
/* STABLE */
|
|
435
|
-
}, 8, ["modelValue", "multiple"])
|
|
435
|
+
}, 8, ["modelValue", "multiple", "popper-class"])
|
|
436
436
|
],
|
|
437
437
|
512
|
|
438
438
|
/* NEED_PATCH */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-enterprise.vue2.js","sources":["../../../../../../../packages/components/tenant-enterprise/src/tenant-enterprise.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { ElInput, ElSelect, ElTreeV2 } from 'element-plus';\n import { inject, nextTick, onMounted, ref, shallowRef, useId, watch } from 'vue';\n import { SERVER_CONFIG, SITE_UNIT_STORE, USER_INFO } from '../../../utils';\n import { TenantEnterpriseEmits, TenantEnterpriseProps } from './tenant-enterprise';\n import TreeLine from './tree-line';\n\n defineOptions({\n name: 'ITenantEnterprise',\n });\n\n const props = defineProps(TenantEnterpriseProps);\n const emits = defineEmits(TenantEnterpriseEmits);\n\n const simpleModeBaseInfo = ref<any>({});\n const systemConfig = props?.action?.serverConfig || inject(SERVER_CONFIG);\n const isSimple = systemConfig?.menuMode === 'simple';\n const tenantStore = props?.action?.tenantStore || inject(SITE_UNIT_STORE);\n const userStore = props?.action?.user || inject(USER_INFO);\n\n const CHILDREN_KEY = 'enterpriseTreeVoList';\n const NODE_KEY = 'id';\n\n const modelValue = ref();\n const loading = ref(false);\n const treeRef = shallowRef();\n const treeContainerId = useId();\n const selectRef = shallowRef();\n const searchValue = ref('');\n const treeData = ref<any[]>([]);\n // 默认选中\n // 1、选中用户当前单位站点及其子节点;\n // 2、simple模式下,默认选中接收到的单位站点(大屏那边目前都是单选)\n const defaultCheck = ref<Record<string, any>>({\n enterpriseId: null,\n tenantId: null,\n name: null,\n });\n let cacheChangeKeys: any[] = [];\n\n onMounted(async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n });\n\n watch(\n () => tenantStore?.currentTenantId,\n async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n },\n );\n\n window.microApp?.addDataListener((val: any) => {\n // 只在 simple 模式下运行\n // simple 模式下不显示单位选择框,所以无需更新视图,只需要触发emits.change,让组件调用者知道单位发生了变更即可。\n if (isSimple && val) {\n const obj = {\n name: val.enterpriseName,\n enterpriseId: val.enterpriseId,\n tenantId: val.tenantId,\n };\n emits('change', {\n arr: [obj],\n obj,\n });\n }\n }, true);\n\n /**\n * 获取租户下的所有单位树\n */\n async function GetTenantEnterpriseTree(): Promise<any[]> {\n return (await tenantStore?.getEnterprise()) || [];\n }\n\n /**\n * 设置默认选中\n */\n async function setDefaultCheck() {\n await clearChecked();\n\n // 当前用户站点是否在当前站点树中\n // 在:默认选中当前\n defaultCheck.value.enterpriseId = simpleModeBaseInfo?.value?.enterpriseId ?? userStore?.userInfo.tenantEnterpriseId;\n defaultCheck.value.tenantId = simpleModeBaseInfo?.value?.tenantId ?? userStore?.userInfo.tenantId;\n defaultCheck.value.name = simpleModeBaseInfo?.value?.enterpriseName ?? userStore?.userInfo.enterpriseName;\n // 不在:选中第一项\n if (String(tenantStore?.getCurrentTenantId) !== String(userStore?.userInfo.tenantId)) {\n if (treeData.value.length > 0) {\n console.log('非当前用户所在站点');\n defaultCheck.value.name = treeData.value[0].enterpriseName;\n defaultCheck.value.tenantId = treeData.value[0].tenantId;\n defaultCheck.value.enterpriseId = treeData.value[0].id;\n }\n }\n\n // 选中的单位节点\n const current = findEnterprise(defaultCheck.value.enterpriseId, treeData.value);\n if (current) {\n treeRef.value?.setCheckedKeys([current.id], true);\n await handleCheckChange();\n handleVisibleChange(false);\n } else {\n console.error('未找到单位!', defaultCheck.value.enterpriseId);\n }\n }\n\n /**\n * 清空所有选中\n */\n async function clearChecked() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n if (checkedList.length > 0) {\n treeRef.value?.setCheckedKeys(checkedList, false);\n }\n }\n\n /**\n * 根据单位ID在tree中查找单位\n */\n function findEnterprise(enterpriseId: number, tree: any[]): any {\n let enterprise = null;\n for (let i = 0; i < tree.length; i++) {\n if (tree[i].id === enterpriseId) {\n enterprise = tree[i];\n break;\n }\n if (tree[i][CHILDREN_KEY] && tree[i][CHILDREN_KEY].length) {\n enterprise = findEnterprise(enterpriseId, tree[i][CHILDREN_KEY]);\n if (enterprise) {\n break;\n }\n }\n }\n return enterprise;\n }\n /**\n * 节点选中状态变化\n */\n async function handleCheckChange() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedNodes(false) || [];\n const val = checkedList.map((item: any) => item.enterpriseName || item.tenantName);\n modelValue.value = props.multiple ? val : val[0];\n if (!props.multiple) {\n // 单选时,选中之后就隐藏下拉框\n selectRef.value.blur();\n }\n }\n\n /**\n * el-select 面板 显示、隐藏\n */\n function handleVisibleChange(visible: boolean) {\n if (!visible) {\n const diff = diffChecked();\n if (!diff) {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n if (checkedList.length === 0) {\n setDefaultCheck();\n } else {\n const arrObj: Record<string, any[]> = {\n name: [],\n enterpriseId: [],\n tenantId: [],\n };\n const arr = checkedList.map((item: any) => {\n arrObj.name.push(item.enterpriseName || item.tenantName);\n arrObj.enterpriseId.push(item.id);\n if (!arrObj.tenantId.includes(item.tenantId)) {\n arrObj.tenantId.push(item.tenantId);\n }\n return {\n name: item.enterpriseName || item.tenantName,\n enterpriseId: item.id,\n tenantId: item.tenantId || item.id,\n };\n });\n emits('change', {\n arr,\n obj: {\n name: arrObj.name.join(','),\n enterpriseId: arrObj.enterpriseId.join(','),\n tenantId: arrObj.tenantId.join(','),\n },\n });\n }\n }\n } else {\n // 重置过滤\n searchValue.value = '';\n handleSearch();\n }\n }\n\n /**\n * 比较选中节点是否发生变化\n */\n function diffChecked() {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n const checkedKeys = checkedList.map((item: any) => item[NODE_KEY]).filter(Boolean);\n // 比较 checkedKeys 和 cacheChangeKeys\n const diff = diffArr(checkedKeys, cacheChangeKeys);\n cacheChangeKeys = checkedKeys;\n return diff;\n }\n\n /**\n * 比较两个数组是否相等\n * 数组下标不影响结果,即 [1,2] 等于 [2,1] 返回true\n */\n function diffArr(arr1: number[], arr2: number[]): boolean {\n if (arr1.length !== arr2.length) {\n return false;\n }\n const sortedArr1 = [...arr1].sort();\n const sortedArr2 = [...arr2].sort();\n for (let i = 0; i < sortedArr1.length; i++) {\n if (sortedArr1[i] !== sortedArr2[i]) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * 触发过滤\n */\n function handleSearch() {\n treeRef.value?.filter(searchValue.value);\n if (!searchValue.value) {\n // 如果过滤为空,则展开默认选中的节点\n setDefaultExpanded();\n }\n // 实现搜索高亮\n highlightNodes(treeData.value, searchValue.value);\n }\n\n /**\n * 高亮节点标签\n * @param nodes - 节点数组\n * @param query - 搜索关键词\n */\n function highlightNodes(nodes: any[], query: string) {\n nodes.forEach((node: any) => {\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length > 0) {\n highlightNodes(node[CHILDREN_KEY], query);\n }\n if (query && (node.enterpriseName || node.tenantName)) {\n const label = node.enterpriseName || node.tenantName;\n const regex = new RegExp(`(${query})`, 'gi');\n node.label = label.replace(regex, '<span class=\"highlight\">$1</span>');\n } else {\n // 如果没有搜索关键词,则恢复节点标签\n node.label = node.enterpriseName || node.tenantName;\n }\n });\n }\n\n /**\n * 点击checkbox选择框\n */\n const handleCheck = async (data: any) => {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n const isChecked = checkedList.includes(data[NODE_KEY]);\n if (props.multiple) {\n // 多选\n recursionSetChecked(data, isChecked);\n } else {\n // 单选\n // 取消其他选中\n checkedList.forEach((item: any) => {\n if (item !== data[NODE_KEY]) {\n treeRef.value?.setChecked(item, false);\n }\n });\n }\n };\n\n /**\n * 递归设置选中/取消选中\n * @param data\n * @param isChecked\n */\n function recursionSetChecked(data: any, isChecked: boolean) {\n if (data[CHILDREN_KEY] && data[CHILDREN_KEY].length > 0) {\n // 选中/取消子节点\n data[CHILDREN_KEY].forEach((item: any) => {\n treeRef.value?.setChecked(item[NODE_KEY], isChecked);\n recursionSetChecked(item, isChecked);\n });\n }\n }\n\n /**\n * 点击树节点\n */\n const handleNodeClick = async (data: any) => {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n if (props.multiple) {\n const isChecked = checkedList.includes(data[NODE_KEY]);\n treeRef.value?.setChecked(data[NODE_KEY], !isChecked);\n } else {\n // 单选\n treeRef.value?.setChecked(data[NODE_KEY], true);\n // 取消其他选中\n checkedList.forEach((item: any) => {\n if (item !== data[NODE_KEY]) {\n treeRef.value?.setChecked(item, false);\n }\n });\n }\n await handleCheckChange();\n };\n\n /**\n * 节点过滤\n */\n const filterMethod = (query: string, node: any) => {\n const label = node?.enterpriseName || node?.tenantName;\n return new RegExp(query, 'i').test(label);\n };\n\n /**\n * 根据当前选中节点,设置展开的节点\n */\n function setDefaultExpanded() {\n const checkedKeys = treeRef.value?.getCheckedKeys() || [];\n if (checkedKeys.length === 0) return;\n // 1、调用 findParentEnterprise 查找父节点数组\n // 2、过滤掉无效数组,最上层的节点找不到父节点会返回null\n // 3、展开二维数组\n // 4、得到 单位ID 数组\n const expandedKeys = checkedKeys\n .map((item: any) => {\n return findParentEnterprise(item, treeData.value);\n })\n .filter(Boolean)\n .flat()\n .map((item: any) => item[NODE_KEY]);\n treeRef.value?.setExpandedKeys([...checkedKeys, ...expandedKeys]);\n\n if (treeRef.value && treeRef.value?.scrollTo) {\n const top = getNodeTop(checkedKeys[0]);\n treeRef.value.scrollTo(top);\n }\n }\n\n /**\n * 根据单位ID在tree中查找父级单位\n * @param enterpriseId - 要查找的单位ID\n * @param tree - 当前树数据\n * @returns {Array|null} - 返回从根到子的父级单位数组,未找到则返回 null\n */\n function findParentEnterprise(enterpriseId: number, tree: any[]): any[] | null {\n const traverse = (node: any, path: any[], targetId: number): any[] | null => {\n // 如果当前节点是目标节点,则返回当前路径(不包含自己)\n if (node.id === targetId) {\n return path.length > 0 ? [...path] : null;\n }\n\n // 如果有子节点,继续递归查找\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length > 0) {\n for (let i = 0; i < node[CHILDREN_KEY].length; i++) {\n const result = traverse(node[CHILDREN_KEY][i], [...path, node], targetId);\n if (result) {\n return result;\n }\n }\n }\n\n return null;\n };\n\n // 遍历整个树,尝试在每个顶级节点下查找\n for (let i = 0; i < tree.length; i++) {\n const result = traverse(tree[i], [], enterpriseId);\n if (result) {\n return result;\n }\n }\n\n return null;\n }\n\n /**\n * 根据选中的key值,获取到节点离顶端的距离\n * @param key\n */\n function getNodeTop(key: number | string) {\n // 节点高度\n const LINE_HEIGHT = 32;\n const node = treeRef.value?.getNode(key);\n const level = node.level;\n let top = 0;\n let _node = node;\n for (let i = 1; i < level; i++) {\n const children = _node?.parent?.children || [];\n const index = children.findIndex((item: any) => item.key === _node.key);\n top += index * LINE_HEIGHT;\n _node = _node.parent;\n }\n return top;\n }\n // todo element-plus 需升级为 2.9.0+\n // @ts-ignore\n const nodeClass = (data: any, node: any) => {\n if (node.children && node.children?.length > 0) {\n return '';\n }\n return 'tenant-e-empty-node';\n };\n</script>\n\n<template>\n <div v-show=\"!isSimple\" class=\"t-tenant-enterprise\">\n <label v-if=\"showLabel\" class=\"t-tenant-enterprise__label\">{{ label }}</label>\n <ElSelect\n ref=\"selectRef\"\n v-model=\"modelValue\"\n :multiple=\"multiple\"\n collapse-tags\n :clearable=\"false\"\n style=\"width: 240px\"\n placement=\"bottom-end\"\n popper-class=\"tenant-enterprise-popper\"\n @visible-change=\"handleVisibleChange\"\n >\n <template #empty>\n <div class=\"t-tenant-enterprise__search\">\n <ElInput\n v-model=\"searchValue\"\n placeholder=\"输入关键词,按Enter键搜索...\"\n clearable\n maxlength=\"30\"\n @change=\"handleSearch\"\n />\n </div>\n <div :id=\"treeContainerId\" v-loading=\"loading\" class=\"p-2\">\n <ElTreeV2\n ref=\"treeRef\"\n :height=\"300\"\n class=\"tenant-enterprise-tree\"\n :class=\"{\n 'tenant-enterprise-tree__only': !multiple,\n }\"\n :data=\"treeData\"\n :props=\"{\n children: CHILDREN_KEY,\n class: nodeClass,\n }\"\n highlight-current\n :expand-on-click-node=\"false\"\n check-on-click-node\n :default-expanded-keys=\"[]\"\n show-checkbox\n check-strictly\n :default-checked-keys=\"[]\"\n :filter-method=\"filterMethod\"\n :indent=\"30\"\n :item-size=\"32\"\n :node-key=\"NODE_KEY\"\n @check=\"handleCheck\"\n @check-change=\"handleCheckChange\"\n >\n <template #default=\"{ node }\">\n <TreeLine :node=\"node\" show-label-line @click.stop=\"handleNodeClick(node.data)\">\n <template #node-label>\n <span\n :title=\"node.data?.enterpriseName || node?.data.tenantName\"\n v-html=\"node.data?.label || node.data?.enterpriseName || node?.data.tenantName\"\n />\n </template>\n </TreeLine>\n </template>\n </ElTreeV2>\n </div>\n </template>\n </ElSelect>\n </div>\n</template>\n"],"names":["ref","inject","SERVER_CONFIG","SITE_UNIT_STORE","USER_INFO","shallowRef","useId","onMounted","watch","_b","_a","_d","_c","nextTick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tenant-enterprise.vue2.js","sources":["../../../../../../../packages/components/tenant-enterprise/src/tenant-enterprise.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { ElInput, ElSelect, ElTreeV2 } from 'element-plus';\n import { inject, nextTick, onMounted, ref, shallowRef, useId, watch } from 'vue';\n import { SERVER_CONFIG, SITE_UNIT_STORE, USER_INFO } from '../../../utils';\n import { TenantEnterpriseEmits, TenantEnterpriseProps } from './tenant-enterprise';\n import TreeLine from './tree-line';\n\n defineOptions({\n name: 'ITenantEnterprise',\n });\n\n const props = defineProps(TenantEnterpriseProps);\n const emits = defineEmits(TenantEnterpriseEmits);\n\n const simpleModeBaseInfo = ref<any>({});\n const systemConfig = props?.action?.serverConfig || inject(SERVER_CONFIG);\n const isSimple = systemConfig?.menuMode === 'simple';\n const tenantStore = props?.action?.tenantStore || inject(SITE_UNIT_STORE);\n const userStore = props?.action?.user || inject(USER_INFO);\n\n const CHILDREN_KEY = 'enterpriseTreeVoList';\n const NODE_KEY = 'id';\n\n const modelValue = ref();\n const loading = ref(false);\n const treeRef = shallowRef();\n const treeContainerId = useId();\n const selectRef = shallowRef();\n const searchValue = ref('');\n const treeData = ref<any[]>([]);\n // 默认选中\n // 1、选中用户当前单位站点及其子节点;\n // 2、simple模式下,默认选中接收到的单位站点(大屏那边目前都是单选)\n const defaultCheck = ref<Record<string, any>>({\n enterpriseId: null,\n tenantId: null,\n name: null,\n });\n let cacheChangeKeys: any[] = [];\n\n onMounted(async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n });\n\n watch(\n () => tenantStore?.currentTenantId,\n async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n },\n );\n\n window.microApp?.addDataListener((val: any) => {\n // 只在 simple 模式下运行\n // simple 模式下不显示单位选择框,所以无需更新视图,只需要触发emits.change,让组件调用者知道单位发生了变更即可。\n if (isSimple && val) {\n const obj = {\n name: val.enterpriseName,\n enterpriseId: val.enterpriseId,\n tenantId: val.tenantId,\n };\n emits('change', {\n arr: [obj],\n obj,\n });\n }\n }, true);\n\n /**\n * 获取租户下的所有单位树\n */\n async function GetTenantEnterpriseTree(): Promise<any[]> {\n return (await tenantStore?.getEnterprise()) || [];\n }\n\n /**\n * 设置默认选中\n */\n async function setDefaultCheck() {\n await clearChecked();\n\n // 当前用户站点是否在当前站点树中\n // 在:默认选中当前\n defaultCheck.value.enterpriseId = simpleModeBaseInfo?.value?.enterpriseId ?? userStore?.userInfo.tenantEnterpriseId;\n defaultCheck.value.tenantId = simpleModeBaseInfo?.value?.tenantId ?? userStore?.userInfo.tenantId;\n defaultCheck.value.name = simpleModeBaseInfo?.value?.enterpriseName ?? userStore?.userInfo.enterpriseName;\n // 不在:选中第一项\n if (String(tenantStore?.getCurrentTenantId) !== String(userStore?.userInfo.tenantId)) {\n if (treeData.value.length > 0) {\n console.log('非当前用户所在站点');\n defaultCheck.value.name = treeData.value[0].enterpriseName;\n defaultCheck.value.tenantId = treeData.value[0].tenantId;\n defaultCheck.value.enterpriseId = treeData.value[0].id;\n }\n }\n\n // 选中的单位节点\n const current = findEnterprise(defaultCheck.value.enterpriseId, treeData.value);\n if (current) {\n treeRef.value?.setCheckedKeys([current.id], true);\n await handleCheckChange();\n handleVisibleChange(false);\n } else {\n console.error('未找到单位!', defaultCheck.value.enterpriseId);\n }\n }\n\n /**\n * 清空所有选中\n */\n async function clearChecked() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n if (checkedList.length > 0) {\n treeRef.value?.setCheckedKeys(checkedList, false);\n }\n }\n\n /**\n * 根据单位ID在tree中查找单位\n */\n function findEnterprise(enterpriseId: number, tree: any[]): any {\n let enterprise = null;\n for (let i = 0; i < tree.length; i++) {\n if (tree[i].id === enterpriseId) {\n enterprise = tree[i];\n break;\n }\n if (tree[i][CHILDREN_KEY] && tree[i][CHILDREN_KEY].length) {\n enterprise = findEnterprise(enterpriseId, tree[i][CHILDREN_KEY]);\n if (enterprise) {\n break;\n }\n }\n }\n return enterprise;\n }\n /**\n * 节点选中状态变化\n */\n async function handleCheckChange() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedNodes(false) || [];\n const val = checkedList.map((item: any) => item.enterpriseName || item.tenantName);\n modelValue.value = props.multiple ? val : val[0];\n if (!props.multiple) {\n // 单选时,选中之后就隐藏下拉框\n selectRef.value.blur();\n }\n }\n\n /**\n * el-select 面板 显示、隐藏\n */\n function handleVisibleChange(visible: boolean) {\n if (!visible) {\n const diff = diffChecked();\n if (!diff) {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n if (checkedList.length === 0) {\n setDefaultCheck();\n } else {\n const arrObj: Record<string, any[]> = {\n name: [],\n enterpriseId: [],\n tenantId: [],\n };\n const arr = checkedList.map((item: any) => {\n arrObj.name.push(item.enterpriseName || item.tenantName);\n arrObj.enterpriseId.push(item.id);\n if (!arrObj.tenantId.includes(item.tenantId)) {\n arrObj.tenantId.push(item.tenantId);\n }\n return {\n name: item.enterpriseName || item.tenantName,\n enterpriseId: item.id,\n tenantId: item.tenantId || item.id,\n };\n });\n emits('change', {\n arr,\n obj: {\n name: arrObj.name.join(','),\n enterpriseId: arrObj.enterpriseId.join(','),\n tenantId: arrObj.tenantId.join(','),\n },\n });\n }\n }\n } else {\n // 重置过滤\n searchValue.value = '';\n handleSearch();\n }\n }\n\n /**\n * 比较选中节点是否发生变化\n */\n function diffChecked() {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n const checkedKeys = checkedList.map((item: any) => item[NODE_KEY]).filter(Boolean);\n // 比较 checkedKeys 和 cacheChangeKeys\n const diff = diffArr(checkedKeys, cacheChangeKeys);\n cacheChangeKeys = checkedKeys;\n return diff;\n }\n\n /**\n * 比较两个数组是否相等\n * 数组下标不影响结果,即 [1,2] 等于 [2,1] 返回true\n */\n function diffArr(arr1: number[], arr2: number[]): boolean {\n if (arr1.length !== arr2.length) {\n return false;\n }\n const sortedArr1 = [...arr1].sort();\n const sortedArr2 = [...arr2].sort();\n for (let i = 0; i < sortedArr1.length; i++) {\n if (sortedArr1[i] !== sortedArr2[i]) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * 触发过滤\n */\n function handleSearch() {\n treeRef.value?.filter(searchValue.value);\n if (!searchValue.value) {\n // 如果过滤为空,则展开默认选中的节点\n setDefaultExpanded();\n }\n // 实现搜索高亮\n highlightNodes(treeData.value, searchValue.value);\n }\n\n /**\n * 高亮节点标签\n * @param nodes - 节点数组\n * @param query - 搜索关键词\n */\n function highlightNodes(nodes: any[], query: string) {\n nodes.forEach((node: any) => {\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length > 0) {\n highlightNodes(node[CHILDREN_KEY], query);\n }\n if (query && (node.enterpriseName || node.tenantName)) {\n const label = node.enterpriseName || node.tenantName;\n const regex = new RegExp(`(${query})`, 'gi');\n node.label = label.replace(regex, '<span class=\"highlight\">$1</span>');\n } else {\n // 如果没有搜索关键词,则恢复节点标签\n node.label = node.enterpriseName || node.tenantName;\n }\n });\n }\n\n /**\n * 点击checkbox选择框\n */\n const handleCheck = async (data: any) => {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n const isChecked = checkedList.includes(data[NODE_KEY]);\n if (props.multiple) {\n // 多选\n recursionSetChecked(data, isChecked);\n } else {\n // 单选\n // 取消其他选中\n checkedList.forEach((item: any) => {\n if (item !== data[NODE_KEY]) {\n treeRef.value?.setChecked(item, false);\n }\n });\n }\n };\n\n /**\n * 递归设置选中/取消选中\n * @param data\n * @param isChecked\n */\n function recursionSetChecked(data: any, isChecked: boolean) {\n if (data[CHILDREN_KEY] && data[CHILDREN_KEY].length > 0) {\n // 选中/取消子节点\n data[CHILDREN_KEY].forEach((item: any) => {\n treeRef.value?.setChecked(item[NODE_KEY], isChecked);\n recursionSetChecked(item, isChecked);\n });\n }\n }\n\n /**\n * 点击树节点\n */\n const handleNodeClick = async (data: any) => {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n if (props.multiple) {\n const isChecked = checkedList.includes(data[NODE_KEY]);\n treeRef.value?.setChecked(data[NODE_KEY], !isChecked);\n } else {\n // 单选\n treeRef.value?.setChecked(data[NODE_KEY], true);\n // 取消其他选中\n checkedList.forEach((item: any) => {\n if (item !== data[NODE_KEY]) {\n treeRef.value?.setChecked(item, false);\n }\n });\n }\n await handleCheckChange();\n };\n\n /**\n * 节点过滤\n */\n const filterMethod = (query: string, node: any) => {\n const label = node?.enterpriseName || node?.tenantName;\n return new RegExp(query, 'i').test(label);\n };\n\n /**\n * 根据当前选中节点,设置展开的节点\n */\n function setDefaultExpanded() {\n const checkedKeys = treeRef.value?.getCheckedKeys() || [];\n if (checkedKeys.length === 0) return;\n // 1、调用 findParentEnterprise 查找父节点数组\n // 2、过滤掉无效数组,最上层的节点找不到父节点会返回null\n // 3、展开二维数组\n // 4、得到 单位ID 数组\n const expandedKeys = checkedKeys\n .map((item: any) => {\n return findParentEnterprise(item, treeData.value);\n })\n .filter(Boolean)\n .flat()\n .map((item: any) => item[NODE_KEY]);\n treeRef.value?.setExpandedKeys([...checkedKeys, ...expandedKeys]);\n\n if (treeRef.value && treeRef.value?.scrollTo) {\n const top = getNodeTop(checkedKeys[0]);\n treeRef.value.scrollTo(top);\n }\n }\n\n /**\n * 根据单位ID在tree中查找父级单位\n * @param enterpriseId - 要查找的单位ID\n * @param tree - 当前树数据\n * @returns {Array|null} - 返回从根到子的父级单位数组,未找到则返回 null\n */\n function findParentEnterprise(enterpriseId: number, tree: any[]): any[] | null {\n const traverse = (node: any, path: any[], targetId: number): any[] | null => {\n // 如果当前节点是目标节点,则返回当前路径(不包含自己)\n if (node.id === targetId) {\n return path.length > 0 ? [...path] : null;\n }\n\n // 如果有子节点,继续递归查找\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length > 0) {\n for (let i = 0; i < node[CHILDREN_KEY].length; i++) {\n const result = traverse(node[CHILDREN_KEY][i], [...path, node], targetId);\n if (result) {\n return result;\n }\n }\n }\n\n return null;\n };\n\n // 遍历整个树,尝试在每个顶级节点下查找\n for (let i = 0; i < tree.length; i++) {\n const result = traverse(tree[i], [], enterpriseId);\n if (result) {\n return result;\n }\n }\n\n return null;\n }\n\n /**\n * 根据选中的key值,获取到节点离顶端的距离\n * @param key\n */\n function getNodeTop(key: number | string) {\n // 节点高度\n const LINE_HEIGHT = 32;\n const node = treeRef.value?.getNode(key);\n const level = node.level;\n let top = 0;\n let _node = node;\n for (let i = 1; i < level; i++) {\n const children = _node?.parent?.children || [];\n const index = children.findIndex((item: any) => item.key === _node.key);\n top += index * LINE_HEIGHT;\n _node = _node.parent;\n }\n return top;\n }\n // todo element-plus 需升级为 2.9.0+\n // @ts-ignore\n const nodeClass = (data: any, node: any) => {\n if (node.children && node.children?.length > 0) {\n return '';\n }\n return 'tenant-e-empty-node';\n };\n</script>\n\n<template>\n <div v-show=\"!isSimple\" class=\"t-tenant-enterprise\">\n <label v-if=\"showLabel\" class=\"t-tenant-enterprise__label\">{{ label }}</label>\n <ElSelect\n ref=\"selectRef\"\n v-model=\"modelValue\"\n :multiple=\"multiple\"\n collapse-tags\n :clearable=\"false\"\n style=\"width: 240px\"\n placement=\"bottom-end\"\n :popper-class=\"`tenant-enterprise-popper ${popperClass}`\"\n @visible-change=\"handleVisibleChange\"\n >\n <template #empty>\n <div class=\"t-tenant-enterprise__search\">\n <ElInput\n v-model=\"searchValue\"\n placeholder=\"输入关键词,按Enter键搜索...\"\n clearable\n maxlength=\"30\"\n @change=\"handleSearch\"\n />\n </div>\n <div :id=\"treeContainerId\" v-loading=\"loading\" class=\"p-2\">\n <ElTreeV2\n ref=\"treeRef\"\n :height=\"300\"\n class=\"tenant-enterprise-tree\"\n :class=\"{\n 'tenant-enterprise-tree__only': !multiple,\n }\"\n :data=\"treeData\"\n :props=\"{\n children: CHILDREN_KEY,\n class: nodeClass,\n }\"\n highlight-current\n :expand-on-click-node=\"false\"\n check-on-click-node\n :default-expanded-keys=\"[]\"\n show-checkbox\n check-strictly\n :default-checked-keys=\"[]\"\n :filter-method=\"filterMethod\"\n :indent=\"30\"\n :item-size=\"32\"\n :node-key=\"NODE_KEY\"\n @check=\"handleCheck\"\n @check-change=\"handleCheckChange\"\n >\n <template #default=\"{ node }\">\n <TreeLine :node=\"node\" show-label-line @click.stop=\"handleNodeClick(node.data)\">\n <template #node-label>\n <span\n :title=\"node.data?.enterpriseName || node?.data.tenantName\"\n v-html=\"node.data?.label || node.data?.enterpriseName || node?.data.tenantName\"\n />\n </template>\n </TreeLine>\n </template>\n </ElTreeV2>\n </div>\n </template>\n </ElSelect>\n </div>\n</template>\n"],"names":["ref","inject","SERVER_CONFIG","SITE_UNIT_STORE","USER_INFO","shallowRef","useId","onMounted","watch","_b","_a","_d","_c","nextTick"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yimou6/common-ui",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"description": "Vue3 Component Library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "yimou6",
|
|
@@ -72,13 +72,16 @@
|
|
|
72
72
|
"vue": "^3.4.0",
|
|
73
73
|
"xgplayer": "^3.0.21",
|
|
74
74
|
"xgplayer-flv": "^3.0.21",
|
|
75
|
-
"xgplayer-hls": "^3.0.21"
|
|
75
|
+
"xgplayer-hls": "^3.0.21",
|
|
76
|
+
"ezuikit-js": "^8.1.10"
|
|
76
77
|
},
|
|
77
78
|
"dependencies": {
|
|
79
|
+
"@types/ezuikit-js": "^8.0.0",
|
|
78
80
|
"@types/lodash": "^4.14.191",
|
|
79
81
|
"@vueuse/core": "^9.12.0",
|
|
80
82
|
"axios": "1.8.2",
|
|
81
83
|
"element-plus": "2.9.9",
|
|
84
|
+
"ezuikit-js": "^8.1.10",
|
|
82
85
|
"lodash": "^4.17.21"
|
|
83
86
|
},
|
|
84
87
|
"devDependencies": {
|