@yimou6/common-ui 1.11.8 → 1.11.10

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.
@@ -29,6 +29,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
29
29
  type: BooleanConstructor;
30
30
  default: boolean;
31
31
  };
32
+ defaultEnterpriseId: {
33
+ type: import("vue").PropType<number | string>;
34
+ default: number;
35
+ };
32
36
  }>, {
33
37
  props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
34
38
  label: {
@@ -60,6 +64,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
60
64
  type: BooleanConstructor;
61
65
  default: boolean;
62
66
  };
67
+ defaultEnterpriseId: {
68
+ type: import("vue").PropType<number | string>;
69
+ default: number;
70
+ };
63
71
  }>> & Readonly<{
64
72
  onChange?: ((value: import("./src/tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
65
73
  }> & {}>;
@@ -1374,6 +1382,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
1374
1382
  type: BooleanConstructor;
1375
1383
  default: boolean;
1376
1384
  };
1385
+ defaultEnterpriseId: {
1386
+ type: import("vue").PropType<number | string>;
1387
+ default: number;
1388
+ };
1377
1389
  }>> & Readonly<{
1378
1390
  onChange?: ((value: import("./src/tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
1379
1391
  }>, {
@@ -1384,5 +1396,6 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
1384
1396
  showLabel: boolean;
1385
1397
  defaultMode: "default" | "all-child";
1386
1398
  isOnDuty: boolean;
1399
+ defaultEnterpriseId: string | number;
1387
1400
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
1388
1401
  export default ITenantEnterprise;
@@ -30,6 +30,10 @@ export declare const TenantEnterpriseProps: {
30
30
  type: BooleanConstructor;
31
31
  default: boolean;
32
32
  };
33
+ defaultEnterpriseId: {
34
+ type: PropType<number | string>;
35
+ default: number;
36
+ };
33
37
  };
34
38
  export interface TenantEnterpriseItem {
35
39
  name: string;
@@ -35,6 +35,10 @@ const TenantEnterpriseProps = {
35
35
  isOnDuty: {
36
36
  type: Boolean,
37
37
  default: false
38
+ },
39
+ defaultEnterpriseId: {
40
+ type: Number,
41
+ default: 0
38
42
  }
39
43
  };
40
44
  const TenantEnterpriseEmits = {
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-enterprise.mjs","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 // default 默认选中当前单位\n // all-child 默认选中当前单位及子单位\n defaultMode: {\n type: String as PropType<\"default\" | \"all-child\">,\n default: \"default\",\n },\n /**\n * pinia window.microApp.getData()\n */\n action: Object,\n isOnDuty: {\n type: Boolean,\n default: false,\n },\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<\n typeof TenantEnterpriseProps\n>;\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,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA,MAAA;AAAA,EACR,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA;AAEb;AAYO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAA,kBAAS,MAAA,CAAA,CAAA,KAAA,KAA2C,KAA5C,EAAA,QAAA;AACV;;;;"}
1
+ {"version":3,"file":"tenant-enterprise.mjs","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 // default 默认选中当前单位\n // all-child 默认选中当前单位及子单位\n defaultMode: {\n type: String as PropType<\"default\" | \"all-child\">,\n default: \"default\",\n },\n /**\n * pinia window.microApp.getData()\n */\n action: Object,\n isOnDuty: {\n type: Boolean,\n default: false,\n },\n defaultEnterpriseId: {\n type: Number as PropType<number | string>,\n default: 0,\n },\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<\n typeof TenantEnterpriseProps\n>;\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,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA,MAAA;AAAA,EACR,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,mBAAqB,EAAA;AAAA,IACnB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA;AAEb;AAYO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAA,kBAAS,MAAA,CAAA,CAAA,KAAA,KAA2C,KAA5C,EAAA,QAAA;AACV;;;;"}
@@ -28,6 +28,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
28
28
  type: BooleanConstructor;
29
29
  default: boolean;
30
30
  };
31
+ defaultEnterpriseId: {
32
+ type: import("vue").PropType<number | string>;
33
+ default: number;
34
+ };
31
35
  }>, {
32
36
  props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
33
37
  label: {
@@ -59,6 +63,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
59
63
  type: BooleanConstructor;
60
64
  default: boolean;
61
65
  };
66
+ defaultEnterpriseId: {
67
+ type: import("vue").PropType<number | string>;
68
+ default: number;
69
+ };
62
70
  }>> & Readonly<{
63
71
  onChange?: ((value: import("./tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
64
72
  }> & {}>;
@@ -1373,6 +1381,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1373
1381
  type: BooleanConstructor;
1374
1382
  default: boolean;
1375
1383
  };
1384
+ defaultEnterpriseId: {
1385
+ type: import("vue").PropType<number | string>;
1386
+ default: number;
1387
+ };
1376
1388
  }>> & Readonly<{
1377
1389
  onChange?: ((value: import("./tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
1378
1390
  }>, {
@@ -1383,5 +1395,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1383
1395
  showLabel: boolean;
1384
1396
  defaultMode: "default" | "all-child";
1385
1397
  isOnDuty: boolean;
1398
+ defaultEnterpriseId: string | number;
1386
1399
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1387
1400
  export default _default;
@@ -72,14 +72,14 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
72
72
  }, true);
73
73
  async function GetTenantEnterpriseTree() {
74
74
  if (props.isOnDuty) {
75
- return await (tenantStore == null ? void 0 : tenantStore.getTenantListByEnterpriseId()) || [];
75
+ return (tenantStore == null ? void 0 : tenantStore.onDutyEnterpriseList) || [];
76
76
  } else {
77
77
  return await (tenantStore == null ? void 0 : tenantStore.getEnterprise()) || [];
78
78
  }
79
79
  }
80
80
  __name(GetTenantEnterpriseTree, "GetTenantEnterpriseTree");
81
81
  async function setDefaultCheck() {
82
- var _a2, _b2, _c2, _d2, _e, _f, _g, _h, _i, _j, _k;
82
+ var _a2, _b2, _c2, _d2, _e, _f, _g, _h, _i, _j, _k, _l;
83
83
  await clearChecked();
84
84
  defaultCheck.value.enterpriseId = (_b2 = (_a2 = simpleModeBaseInfo == null ? void 0 : simpleModeBaseInfo.value) == null ? void 0 : _a2.enterpriseId) != null ? _b2 : userStore == null ? void 0 : userStore.userInfo.tenantEnterpriseId;
85
85
  defaultCheck.value.tenantId = (_d2 = (_c2 = simpleModeBaseInfo == null ? void 0 : simpleModeBaseInfo.value) == null ? void 0 : _c2.tenantId) != null ? _d2 : userStore == null ? void 0 : userStore.userInfo.tenantId;
@@ -108,18 +108,29 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
108
108
  }
109
109
  if (props.isOnDuty) {
110
110
  const treeNodes = collectTreeNodes(treeData.value);
111
- console.log("\u{1F680} ~ setDefaultCheck ~ treeNodes:", treeNodes);
112
111
  if (props.multiple) {
113
- defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;
114
- defaultCheck.value.name = (_h = treeNodes == null ? void 0 : treeNodes.names) == null ? void 0 : _h.toString();
115
- defaultCheck.value.enterpriseId = (_i = treeNodes == null ? void 0 : treeNodes.ids) == null ? void 0 : _i.toString();
116
- (_j = treeRef.value) == null ? void 0 : _j.setCheckedKeys(treeNodes == null ? void 0 : treeNodes.ids, true);
112
+ if (props.defaultEnterpriseId) {
113
+ defaultCheck.value.tenantId = null;
114
+ defaultCheck.value.name = null;
115
+ defaultCheck.value.enterpriseId = props.defaultEnterpriseId;
116
+ (_h = treeRef.value) == null ? void 0 : _h.setCheckedKeys([props.defaultEnterpriseId], true);
117
+ } else {
118
+ defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;
119
+ defaultCheck.value.name = (_i = treeNodes == null ? void 0 : treeNodes.names) == null ? void 0 : _i.toString();
120
+ defaultCheck.value.enterpriseId = (_j = treeNodes == null ? void 0 : treeNodes.ids) == null ? void 0 : _j.toString();
121
+ (_k = treeRef.value) == null ? void 0 : _k.setCheckedKeys(treeNodes == null ? void 0 : treeNodes.ids, true);
122
+ }
117
123
  } else {
118
- const firstNode = treeData.value[0];
124
+ let firstNode = treeData.value[0];
125
+ if (props.defaultEnterpriseId) {
126
+ firstNode = {
127
+ id: props.defaultEnterpriseId
128
+ };
129
+ }
119
130
  defaultCheck.value.name = (firstNode == null ? void 0 : firstNode.enterpriseName) || "";
120
131
  defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;
121
132
  defaultCheck.value.enterpriseId = (firstNode == null ? void 0 : firstNode.id) || null;
122
- (_k = treeRef.value) == null ? void 0 : _k.setCheckedKeys([firstNode == null ? void 0 : firstNode.id].filter(Boolean), true);
133
+ (_l = treeRef.value) == null ? void 0 : _l.setCheckedKeys([firstNode == null ? void 0 : firstNode.id].filter(Boolean), true);
123
134
  }
124
135
  await handleCheckChange();
125
136
  handleVisibleChange(false);
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-enterprise.vue2.mjs","sources":["../../../../../../../packages/components/tenant-enterprise/src/tenant-enterprise.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ElInput, ElSelect, ElTreeV2 } from \"element-plus\";\nimport {\n inject,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n useId,\n watch,\n} from \"vue\";\nimport { SERVER_CONFIG, SITE_UNIT_STORE, USER_INFO } from \"../../../utils\";\nimport {\n TenantEnterpriseEmits,\n TenantEnterpriseProps,\n} from \"./tenant-enterprise\";\nimport TreeLine from \"./tree-line\";\n\ndefineOptions({\n name: \"ITenantEnterprise\",\n});\n\nconst props = defineProps(TenantEnterpriseProps);\nconst emits = defineEmits(TenantEnterpriseEmits);\n\nconst simpleModeBaseInfo = ref<any>({});\nconst systemConfig = props?.action?.serverConfig || inject(SERVER_CONFIG);\nconst isSimple = systemConfig?.menuMode === \"simple\";\nconst tenantStore = props?.action?.tenantStore || inject(SITE_UNIT_STORE);\nconst userStore = props?.action?.user || inject(USER_INFO);\n\nconst CHILDREN_KEY = \"enterpriseTreeVoList\";\nconst NODE_KEY = \"id\";\n\nconst modelValue = ref();\nconst loading = ref(false);\nconst treeRef = shallowRef();\nconst treeContainerId = useId();\nconst selectRef = shallowRef();\nconst searchValue = ref(\"\");\nconst treeData = ref<any[]>([]);\n// 默认选中\n// 1、选中用户当前单位站点及其子节点;\n// 2、simple模式下,默认选中接收到的单位站点(大屏那边目前都是单选)\nconst defaultCheck = ref<Record<string, any>>({\n enterpriseId: null,\n tenantId: null,\n name: null,\n});\nlet cacheChangeKeys: any[] = [];\n\nonMounted(async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n});\n\nwatch(\n () => tenantStore?.currentTenantId,\n async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n },\n);\n\nwindow.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 */\nasync function GetTenantEnterpriseTree(): Promise<any[]> {\n if (props.isOnDuty) {\n return (await tenantStore?.getTenantListByEnterpriseId()) || [];\n } else {\n return (await tenantStore?.getEnterprise()) || [];\n }\n}\n\n/**\n * 设置默认选中\n */\nasync function setDefaultCheck() {\n await clearChecked();\n // 当前用户站点是否在当前站点树中\n // 在:默认选中当前\n defaultCheck.value.enterpriseId =\n simpleModeBaseInfo?.value?.enterpriseId ??\n userStore?.userInfo.tenantEnterpriseId;\n defaultCheck.value.tenantId =\n simpleModeBaseInfo?.value?.tenantId ?? userStore?.userInfo.tenantId;\n defaultCheck.value.name =\n simpleModeBaseInfo?.value?.enterpriseName ??\n userStore?.userInfo.enterpriseName;\n // 不在:选中第一项\n if (\n String(tenantStore?.getCurrentTenantId) !==\n String(userStore?.userInfo.tenantId)\n ) {\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(\n defaultCheck.value.enterpriseId,\n treeData.value,\n );\n if (current) {\n treeRef.value?.setCheckedKeys([current.id], true);\n if (props.defaultMode === \"all-child\") {\n recursionSetChecked(current, true);\n }\n await handleCheckChange();\n handleVisibleChange(false);\n } else {\n console.error(\"未找到单位!\", defaultCheck.value.enterpriseId);\n }\n if (props.isOnDuty) {\n const treeNodes = collectTreeNodes(treeData.value);\n console.log(\"🚀 ~ setDefaultCheck ~ treeNodes:\", treeNodes);\n if (props.multiple) {\n defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;\n defaultCheck.value.name = treeNodes?.names?.toString();\n defaultCheck.value.enterpriseId = treeNodes?.ids?.toString();\n treeRef.value?.setCheckedKeys(treeNodes?.ids, true);\n } else {\n const firstNode = treeData.value[0];\n defaultCheck.value.name = firstNode?.enterpriseName || \"\";\n defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;\n defaultCheck.value.enterpriseId = firstNode?.id || null;\n treeRef.value?.setCheckedKeys([firstNode?.id].filter(Boolean), true);\n }\n\n await handleCheckChange();\n handleVisibleChange(false);\n }\n}\n\n/**\n * 清空所有选中\n */\nasync 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 */\nfunction 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 * 树形遍历获取第一个tenantId\n */\nfunction getFirstTenantId(tree: any[]): number | null {\n for (let i = 0; i < tree.length; i++) {\n if (tree[i].tenantId) {\n return tree[i].tenantId;\n }\n if (tree[i][CHILDREN_KEY] && tree[i][CHILDREN_KEY].length) {\n const tenantId = getFirstTenantId(tree[i][CHILDREN_KEY]);\n if (tenantId) {\n return tenantId;\n }\n }\n }\n return null;\n}\n\n/**\n * 树形遍历收集所有节点的名称和ID\n */\nfunction collectTreeNodes(tree: any[]): { names: string[]; ids: number[] } {\n const result: { names: string[]; ids: number[] } = { names: [], ids: [] };\n\n function traverse(nodes: any[]) {\n for (const node of nodes) {\n if (node.enterpriseName) {\n result.names.push(node.enterpriseName);\n }\n if (node.id) {\n result.ids.push(node.id);\n }\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length) {\n traverse(node[CHILDREN_KEY]);\n }\n }\n }\n\n traverse(tree);\n return result;\n}\n/**\n * 节点选中状态变化\n */\nasync function handleCheckChange() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedNodes(false) || [];\n const val = checkedList.map(\n (item: any) => item.enterpriseName || item.tenantName,\n );\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 */\nfunction 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 */\nfunction diffChecked() {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n const checkedKeys = checkedList\n .map((item: any) => item[NODE_KEY])\n .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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nconst 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 */\nfunction 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 */\nconst 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 */\nconst 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 */\nfunction 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 */\nfunction 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(\n node[CHILDREN_KEY][i],\n [...path, node],\n targetId,\n );\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 */\nfunction 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\nconst 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\">{{\n label\n }}</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\n :node=\"node\"\n show-label-line\n @click.stop=\"handleNodeClick(node.data)\"\n >\n <template #node-label>\n <span\n :title=\"node.data?.enterpriseName || node?.data.tenantName\"\n v-html=\"\n node.data?.label ||\n node.data?.enterpriseName ||\n node?.data.tenantName\n \"\n />\n </template>\n </TreeLine>\n </template>\n </ElTreeV2>\n </div>\n </template>\n </ElSelect>\n </div>\n</template>\n"],"names":["_b","_a","_d","_c","_withDirectives","_openBlock","_createElementBlock","showLabel","_toDisplayString","label","_createVNode","_unref","multiple","popperClass","_createElementVNode","_withCtx","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"tenant-enterprise.vue2.mjs","sources":["../../../../../../../packages/components/tenant-enterprise/src/tenant-enterprise.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ElInput, ElSelect, ElTreeV2 } from \"element-plus\";\nimport {\n inject,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n useId,\n watch,\n} from \"vue\";\nimport { SERVER_CONFIG, SITE_UNIT_STORE, USER_INFO } from \"../../../utils\";\nimport {\n TenantEnterpriseEmits,\n TenantEnterpriseProps,\n} from \"./tenant-enterprise\";\nimport TreeLine from \"./tree-line\";\n\ndefineOptions({\n name: \"ITenantEnterprise\",\n});\n\nconst props = defineProps(TenantEnterpriseProps);\nconst emits = defineEmits(TenantEnterpriseEmits);\n\nconst simpleModeBaseInfo = ref<any>({});\nconst systemConfig = props?.action?.serverConfig || inject(SERVER_CONFIG);\nconst isSimple = systemConfig?.menuMode === \"simple\";\nconst tenantStore = props?.action?.tenantStore || inject(SITE_UNIT_STORE);\nconst userStore = props?.action?.user || inject(USER_INFO);\n\nconst CHILDREN_KEY = \"enterpriseTreeVoList\";\nconst NODE_KEY = \"id\";\n\nconst modelValue = ref();\nconst loading = ref(false);\nconst treeRef = shallowRef();\nconst treeContainerId = useId();\nconst selectRef = shallowRef();\nconst searchValue = ref(\"\");\nconst treeData = ref<any[]>([]);\n// 默认选中\n// 1、选中用户当前单位站点及其子节点;\n// 2、simple模式下,默认选中接收到的单位站点(大屏那边目前都是单选)\nconst defaultCheck = ref<Record<string, any>>({\n enterpriseId: null,\n tenantId: null,\n name: null,\n});\nlet cacheChangeKeys: any[] = [];\n\nonMounted(async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n});\n\nwatch(\n () => tenantStore?.currentTenantId,\n async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n },\n);\n\nwindow.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 */\nasync function GetTenantEnterpriseTree(): Promise<any[]> {\n if (props.isOnDuty) {\n // return [\n // {\n // id: 23,\n // enterpriseName: \"特致珈\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: null,\n // sort: null,\n // parentId: 0,\n // tenantId: 32,\n // condition: null,\n // latLud: null,\n // enterpriseTreeVoList: [\n // {\n // id: 3377298,\n // enterpriseName: \"特致珈子单位\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: \"\",\n // sort: null,\n // parentId: 23,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: \"113.015141,28.23635\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 3152351,\n // enterpriseName: \"数据中台流程测试单位\",\n // enterpriseNameShort: \"string\",\n // enterpriseLogoImage: null,\n // sort: 0,\n // parentId: 23,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: null,\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 3171158,\n // enterpriseName: \"函谷关\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: \"\",\n // sort: null,\n // parentId: 23,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: \"110.928567,34.636828\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 3168952,\n // enterpriseName: \"雁门关\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: \"\",\n // sort: null,\n // parentId: 23,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: \"112.91643,28.23202\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 3153517,\n // enterpriseName: \"批量导入单位测试单位\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: null,\n // sort: null,\n // parentId: 23,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: \"100,60\",\n // enterpriseTreeVoList: [\n // {\n // id: 3168546,\n // enterpriseName: \"批量导入单位测试单位06\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: null,\n // sort: null,\n // parentId: 3153517,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: \"112.931795,28.233940\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 3168521,\n // enterpriseName: \"批量导入单位测试单位04\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: null,\n // sort: null,\n // parentId: 3153517,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: \"112.931796,28.233940\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 3168496,\n // enterpriseName: \"批量导入单位测试单位03\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: null,\n // sort: null,\n // parentId: 3153517,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: \"112.931797,28.233940\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // ],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 24703,\n // enterpriseName: \"测试单位4\",\n // enterpriseNameShort: \"\",\n // enterpriseLogoImage: \"\",\n // sort: null,\n // parentId: 23,\n // tenantId: 32,\n // condition: \"0\",\n // latLud: \"106.633906,28.583602\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 4171794,\n // enterpriseName: \"重庆万州久久养老院\",\n // enterpriseNameShort: \"\",\n // enterpriseLogoImage: \"\",\n // sort: null,\n // parentId: 23,\n // tenantId: 32,\n // condition: \"1\",\n // latLud: \"108.38312,30.806462\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // ],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 92218,\n // enterpriseName: \"北京总部\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: null,\n // sort: null,\n // parentId: 346801,\n // tenantId: 92216,\n // condition: null,\n // latLud: null,\n // enterpriseTreeVoList: [\n // {\n // id: 92221,\n // enterpriseName: \"华天总店\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: null,\n // sort: null,\n // parentId: 92218,\n // tenantId: 92216,\n // condition: \"0\",\n // latLud: \"112.998684,28.191206\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 92220,\n // enterpriseName: \"北京潇湘华天\",\n // enterpriseNameShort: \"单位简称\",\n // enterpriseLogoImage: \"\",\n // sort: null,\n // parentId: 92218,\n // tenantId: 92216,\n // condition: \"0\",\n // latLud: \"112.986417,28.19887\",\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // ],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // {\n // id: 4147992,\n // enterpriseName: \"雅居乐花园\",\n // enterpriseNameShort: null,\n // enterpriseLogoImage: null,\n // sort: null,\n // parentId: 4147971,\n // tenantId: 4147420,\n // condition: null,\n // latLud: null,\n // enterpriseTreeVoList: [],\n // fileNum: 0,\n // auth: false,\n // imgUrl: null,\n // dutyName: null,\n // dutyPhone: null,\n // enterpriseStr: null,\n // tenantTreeVoList: null,\n // deptList: null,\n // type: null,\n // },\n // ];\n return tenantStore?.onDutyEnterpriseList || [];\n } else {\n return (await tenantStore?.getEnterprise()) || [];\n }\n}\n\n/**\n * 设置默认选中\n */\nasync function setDefaultCheck() {\n await clearChecked();\n // 当前用户站点是否在当前站点树中\n // 在:默认选中当前\n defaultCheck.value.enterpriseId =\n simpleModeBaseInfo?.value?.enterpriseId ??\n userStore?.userInfo.tenantEnterpriseId;\n defaultCheck.value.tenantId =\n simpleModeBaseInfo?.value?.tenantId ?? userStore?.userInfo.tenantId;\n defaultCheck.value.name =\n simpleModeBaseInfo?.value?.enterpriseName ??\n userStore?.userInfo.enterpriseName;\n // 不在:选中第一项\n if (\n String(tenantStore?.getCurrentTenantId) !==\n String(userStore?.userInfo.tenantId)\n ) {\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(\n defaultCheck.value.enterpriseId,\n treeData.value,\n );\n if (current) {\n treeRef.value?.setCheckedKeys([current.id], true);\n if (props.defaultMode === \"all-child\") {\n recursionSetChecked(current, true);\n }\n await handleCheckChange();\n handleVisibleChange(false);\n } else {\n console.error(\"未找到单位!\", defaultCheck.value.enterpriseId);\n }\n if (props.isOnDuty) {\n const treeNodes = collectTreeNodes(treeData.value);\n if (props.multiple) {\n if (props.defaultEnterpriseId) {\n defaultCheck.value.tenantId = null;\n defaultCheck.value.name = null;\n defaultCheck.value.enterpriseId = props.defaultEnterpriseId;\n treeRef.value?.setCheckedKeys([props.defaultEnterpriseId], true);\n } else {\n defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;\n defaultCheck.value.name = treeNodes?.names?.toString();\n defaultCheck.value.enterpriseId = treeNodes?.ids?.toString();\n treeRef.value?.setCheckedKeys(treeNodes?.ids, true);\n }\n } else {\n let firstNode = treeData.value[0];\n\n if (props.defaultEnterpriseId) {\n firstNode = {\n id: props.defaultEnterpriseId,\n };\n }\n defaultCheck.value.name = firstNode?.enterpriseName || \"\";\n defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;\n defaultCheck.value.enterpriseId = firstNode?.id || null;\n treeRef.value?.setCheckedKeys([firstNode?.id].filter(Boolean), true);\n }\n\n await handleCheckChange();\n handleVisibleChange(false);\n }\n}\n\n/**\n * 清空所有选中\n */\nasync 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 */\nfunction 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 * 树形遍历获取第一个tenantId\n */\nfunction getFirstTenantId(tree: any[]): number | null {\n for (let i = 0; i < tree.length; i++) {\n if (tree[i].tenantId) {\n return tree[i].tenantId;\n }\n if (tree[i][CHILDREN_KEY] && tree[i][CHILDREN_KEY].length) {\n const tenantId = getFirstTenantId(tree[i][CHILDREN_KEY]);\n if (tenantId) {\n return tenantId;\n }\n }\n }\n return null;\n}\n\n/**\n * 树形遍历收集所有节点的名称和ID\n */\nfunction collectTreeNodes(tree: any[]): { names: string[]; ids: number[] } {\n const result: { names: string[]; ids: number[] } = { names: [], ids: [] };\n\n function traverse(nodes: any[]) {\n for (const node of nodes) {\n if (node.enterpriseName) {\n result.names.push(node.enterpriseName);\n }\n if (node.id) {\n result.ids.push(node.id);\n }\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length) {\n traverse(node[CHILDREN_KEY]);\n }\n }\n }\n\n traverse(tree);\n return result;\n}\n/**\n * 节点选中状态变化\n */\nasync function handleCheckChange() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedNodes(false) || [];\n const val = checkedList.map(\n (item: any) => item.enterpriseName || item.tenantName,\n );\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 */\nfunction 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 */\nfunction diffChecked() {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n const checkedKeys = checkedList\n .map((item: any) => item[NODE_KEY])\n .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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nconst 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 */\nfunction 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 */\nconst 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 */\nconst 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 */\nfunction 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 */\nfunction 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(\n node[CHILDREN_KEY][i],\n [...path, node],\n targetId,\n );\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 */\nfunction 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\nconst 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\">{{\n label\n }}</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\n :node=\"node\"\n show-label-line\n @click.stop=\"handleNodeClick(node.data)\"\n >\n <template #node-label>\n <span\n :title=\"node.data?.enterpriseName || node?.data.tenantName\"\n v-html=\"\n node.data?.label ||\n node.data?.enterpriseName ||\n node?.data.tenantName\n \"\n />\n </template>\n </TreeLine>\n </template>\n </ElTreeV2>\n </div>\n </template>\n </ElSelect>\n </div>\n</template>\n"],"names":["_b","_a","_d","_c","_withDirectives","_openBlock","_createElementBlock","showLabel","_toDisplayString","label","_createVNode","_unref","multiple","popperClass","_createElementVNode","_withCtx","_withModifiers"],"mappings":"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"}
@@ -29,6 +29,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
29
29
  type: BooleanConstructor;
30
30
  default: boolean;
31
31
  };
32
+ defaultEnterpriseId: {
33
+ type: import("vue").PropType<number | string>;
34
+ default: number;
35
+ };
32
36
  }>, {
33
37
  props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
34
38
  label: {
@@ -60,6 +64,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
60
64
  type: BooleanConstructor;
61
65
  default: boolean;
62
66
  };
67
+ defaultEnterpriseId: {
68
+ type: import("vue").PropType<number | string>;
69
+ default: number;
70
+ };
63
71
  }>> & Readonly<{
64
72
  onChange?: ((value: import("./src/tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
65
73
  }> & {}>;
@@ -1374,6 +1382,10 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
1374
1382
  type: BooleanConstructor;
1375
1383
  default: boolean;
1376
1384
  };
1385
+ defaultEnterpriseId: {
1386
+ type: import("vue").PropType<number | string>;
1387
+ default: number;
1388
+ };
1377
1389
  }>> & Readonly<{
1378
1390
  onChange?: ((value: import("./src/tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
1379
1391
  }>, {
@@ -1384,5 +1396,6 @@ export declare const ITenantEnterprise: import("../../types").SFCWithInstall<imp
1384
1396
  showLabel: boolean;
1385
1397
  defaultMode: "default" | "all-child";
1386
1398
  isOnDuty: boolean;
1399
+ defaultEnterpriseId: string | number;
1387
1400
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
1388
1401
  export default ITenantEnterprise;
@@ -30,6 +30,10 @@ export declare const TenantEnterpriseProps: {
30
30
  type: BooleanConstructor;
31
31
  default: boolean;
32
32
  };
33
+ defaultEnterpriseId: {
34
+ type: PropType<number | string>;
35
+ default: number;
36
+ };
33
37
  };
34
38
  export interface TenantEnterpriseItem {
35
39
  name: string;
@@ -37,6 +37,10 @@ const TenantEnterpriseProps = {
37
37
  isOnDuty: {
38
38
  type: Boolean,
39
39
  default: false
40
+ },
41
+ defaultEnterpriseId: {
42
+ type: Number,
43
+ default: 0
40
44
  }
41
45
  };
42
46
  const TenantEnterpriseEmits = {
@@ -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 popperClass: {\n type: String,\n default: \"\",\n },\n // 默认选中模式\n // default 默认选中当前单位\n // all-child 默认选中当前单位及子单位\n defaultMode: {\n type: String as PropType<\"default\" | \"all-child\">,\n default: \"default\",\n },\n /**\n * pinia window.microApp.getData()\n */\n action: Object,\n isOnDuty: {\n type: Boolean,\n default: false,\n },\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<\n typeof TenantEnterpriseProps\n>;\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,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA,MAAA;AAAA,EACR,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA;AAEb;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 // default 默认选中当前单位\n // all-child 默认选中当前单位及子单位\n defaultMode: {\n type: String as PropType<\"default\" | \"all-child\">,\n default: \"default\",\n },\n /**\n * pinia window.microApp.getData()\n */\n action: Object,\n isOnDuty: {\n type: Boolean,\n default: false,\n },\n defaultEnterpriseId: {\n type: Number as PropType<number | string>,\n default: 0,\n },\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<\n typeof TenantEnterpriseProps\n>;\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,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA,MAAA;AAAA,EACR,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,GACX;AAAA,EACA,mBAAqB,EAAA;AAAA,IACnB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA;AAAA;AAEb;AAYO,MAAM,qBAAwB,GAAA;AAAA,EACnC,MAAA,kBAAS,MAAA,CAAA,CAAA,KAAA,KAA2C,KAA5C,EAAA,QAAA;AACV;;;;;"}
@@ -28,6 +28,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
28
28
  type: BooleanConstructor;
29
29
  default: boolean;
30
30
  };
31
+ defaultEnterpriseId: {
32
+ type: import("vue").PropType<number | string>;
33
+ default: number;
34
+ };
31
35
  }>, {
32
36
  props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
33
37
  label: {
@@ -59,6 +63,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
59
63
  type: BooleanConstructor;
60
64
  default: boolean;
61
65
  };
66
+ defaultEnterpriseId: {
67
+ type: import("vue").PropType<number | string>;
68
+ default: number;
69
+ };
62
70
  }>> & Readonly<{
63
71
  onChange?: ((value: import("./tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
64
72
  }> & {}>;
@@ -1373,6 +1381,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1373
1381
  type: BooleanConstructor;
1374
1382
  default: boolean;
1375
1383
  };
1384
+ defaultEnterpriseId: {
1385
+ type: import("vue").PropType<number | string>;
1386
+ default: number;
1387
+ };
1376
1388
  }>> & Readonly<{
1377
1389
  onChange?: ((value: import("./tenant-enterprise").TenantEnterpriseChangeValueType) => any) | undefined;
1378
1390
  }>, {
@@ -1383,5 +1395,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1383
1395
  showLabel: boolean;
1384
1396
  defaultMode: "default" | "all-child";
1385
1397
  isOnDuty: boolean;
1398
+ defaultEnterpriseId: string | number;
1386
1399
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1387
1400
  export default _default;
@@ -76,14 +76,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
76
76
  }, true);
77
77
  async function GetTenantEnterpriseTree() {
78
78
  if (props.isOnDuty) {
79
- return await (tenantStore == null ? void 0 : tenantStore.getTenantListByEnterpriseId()) || [];
79
+ return (tenantStore == null ? void 0 : tenantStore.onDutyEnterpriseList) || [];
80
80
  } else {
81
81
  return await (tenantStore == null ? void 0 : tenantStore.getEnterprise()) || [];
82
82
  }
83
83
  }
84
84
  __name(GetTenantEnterpriseTree, "GetTenantEnterpriseTree");
85
85
  async function setDefaultCheck() {
86
- var _a2, _b2, _c2, _d2, _e, _f, _g, _h, _i, _j, _k;
86
+ var _a2, _b2, _c2, _d2, _e, _f, _g, _h, _i, _j, _k, _l;
87
87
  await clearChecked();
88
88
  defaultCheck.value.enterpriseId = (_b2 = (_a2 = simpleModeBaseInfo == null ? void 0 : simpleModeBaseInfo.value) == null ? void 0 : _a2.enterpriseId) != null ? _b2 : userStore == null ? void 0 : userStore.userInfo.tenantEnterpriseId;
89
89
  defaultCheck.value.tenantId = (_d2 = (_c2 = simpleModeBaseInfo == null ? void 0 : simpleModeBaseInfo.value) == null ? void 0 : _c2.tenantId) != null ? _d2 : userStore == null ? void 0 : userStore.userInfo.tenantId;
@@ -112,18 +112,29 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
112
112
  }
113
113
  if (props.isOnDuty) {
114
114
  const treeNodes = collectTreeNodes(treeData.value);
115
- console.log("\u{1F680} ~ setDefaultCheck ~ treeNodes:", treeNodes);
116
115
  if (props.multiple) {
117
- defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;
118
- defaultCheck.value.name = (_h = treeNodes == null ? void 0 : treeNodes.names) == null ? void 0 : _h.toString();
119
- defaultCheck.value.enterpriseId = (_i = treeNodes == null ? void 0 : treeNodes.ids) == null ? void 0 : _i.toString();
120
- (_j = treeRef.value) == null ? void 0 : _j.setCheckedKeys(treeNodes == null ? void 0 : treeNodes.ids, true);
116
+ if (props.defaultEnterpriseId) {
117
+ defaultCheck.value.tenantId = null;
118
+ defaultCheck.value.name = null;
119
+ defaultCheck.value.enterpriseId = props.defaultEnterpriseId;
120
+ (_h = treeRef.value) == null ? void 0 : _h.setCheckedKeys([props.defaultEnterpriseId], true);
121
+ } else {
122
+ defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;
123
+ defaultCheck.value.name = (_i = treeNodes == null ? void 0 : treeNodes.names) == null ? void 0 : _i.toString();
124
+ defaultCheck.value.enterpriseId = (_j = treeNodes == null ? void 0 : treeNodes.ids) == null ? void 0 : _j.toString();
125
+ (_k = treeRef.value) == null ? void 0 : _k.setCheckedKeys(treeNodes == null ? void 0 : treeNodes.ids, true);
126
+ }
121
127
  } else {
122
- const firstNode = treeData.value[0];
128
+ let firstNode = treeData.value[0];
129
+ if (props.defaultEnterpriseId) {
130
+ firstNode = {
131
+ id: props.defaultEnterpriseId
132
+ };
133
+ }
123
134
  defaultCheck.value.name = (firstNode == null ? void 0 : firstNode.enterpriseName) || "";
124
135
  defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;
125
136
  defaultCheck.value.enterpriseId = (firstNode == null ? void 0 : firstNode.id) || null;
126
- (_k = treeRef.value) == null ? void 0 : _k.setCheckedKeys([firstNode == null ? void 0 : firstNode.id].filter(Boolean), true);
137
+ (_l = treeRef.value) == null ? void 0 : _l.setCheckedKeys([firstNode == null ? void 0 : firstNode.id].filter(Boolean), true);
127
138
  }
128
139
  await handleCheckChange();
129
140
  handleVisibleChange(false);