yh-pub 2.0.1 → 2.0.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/{AdminLogin-BoxKRRwd.js → AdminLogin-W5d0M-rz.js} +5 -8
- package/{AdminLogin-BoxKRRwd.js.map → AdminLogin-W5d0M-rz.js.map} +1 -1
- package/{Dict.vue_vue_type_script_setup_true_lang-A8BZwEiK.js → Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js} +9 -10
- package/{Dict.vue_vue_type_script_setup_true_lang-A8BZwEiK.js.map → Dict.vue_vue_type_script_setup_true_lang-CcfyhJln.js.map} +1 -1
- package/{Error-BCu4KHfU.js → Error-BZ9xAkuT.js} +2 -2
- package/{Error-BCu4KHfU.js.map → Error-BZ9xAkuT.js.map} +1 -1
- package/{Error401-C5kTyMSM.js → Error401-DrA7Y9h3.js} +2 -2
- package/{Error401-C5kTyMSM.js.map → Error401-DrA7Y9h3.js.map} +1 -1
- package/{Error404-P3qKjHk6.js → Error404-C5K4o1R3.js} +2 -2
- package/{Error404-P3qKjHk6.js.map → Error404-C5K4o1R3.js.map} +1 -1
- package/{Error500-NVnuOBIQ.js → Error500-D9nu1xhW.js} +2 -2
- package/{Error500-NVnuOBIQ.js.map → Error500-D9nu1xhW.js.map} +1 -1
- package/{HomeIndex-C806Fp-9.js → HomeIndex-DnGu5xD0.js} +2 -2
- package/{HomeIndex-C806Fp-9.js.map → HomeIndex-DnGu5xD0.js.map} +1 -1
- package/{IconExplorer-CBg1lvD0.js → IconExplorer-IvNeUIhq.js} +2 -2
- package/{IconExplorer-CBg1lvD0.js.map → IconExplorer-IvNeUIhq.js.map} +1 -1
- package/Index-BMd4lEnI.js +5 -0
- package/Index-BMd4lEnI.js.map +1 -0
- package/{MainLogin-wW7bSk0F.js → MainLogin-CgJLift-.js} +5 -7
- package/{MainLogin-wW7bSk0F.js.map → MainLogin-CgJLift-.js.map} +1 -1
- package/{MenuManage-CIxqmusr.js → MenuManage-BJkQPgpt.js} +29 -30
- package/{MenuManage-CIxqmusr.js.map → MenuManage-BJkQPgpt.js.map} +1 -1
- package/{OrgManage-BcTWbnyc.js → OrgManage-jLpAnwf4.js} +17 -17
- package/{OrgManage-BcTWbnyc.js.map → OrgManage-jLpAnwf4.js.map} +1 -1
- package/{RoleManage-Bw83c_7q.js → RoleManage-D2RwwJoM.js} +43 -43
- package/{RoleManage-Bw83c_7q.js.map → RoleManage-D2RwwJoM.js.map} +1 -1
- package/{SysConfig-L0A1eY-O.js → SysConfig-CYcl0wCh.js} +11 -11
- package/{SysConfig-L0A1eY-O.js.map → SysConfig-CYcl0wCh.js.map} +1 -1
- package/{TenantList-B5imzQc5.js → TenantList-CNVwmoEt.js} +70 -73
- package/{TenantList-B5imzQc5.js.map → TenantList-CNVwmoEt.js.map} +1 -1
- package/{index-BP41Ph8K.js → index-C75ufNln.js} +11828 -17269
- package/index-C75ufNln.js.map +1 -0
- package/index.d.ts +4 -4
- package/index.es.js +21 -21
- package/package.json +12 -13
- package/Index-AjfvK7Ss.js +0 -5
- package/Index-AjfvK7Ss.js.map +0 -1
- package/index-BP41Ph8K.js.map +0 -1
- package/index-CJ0So9-k.js +0 -7
- package/index-CJ0So9-k.js.map +0 -1
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { defineComponent as Q, ref as _, reactive as E, watch as ae, resolveComponent as
|
|
2
|
-
import { ElMessage as z, ElMessageBox as
|
|
3
|
-
import { s as le,
|
|
4
|
-
import "
|
|
5
|
-
import "qs";
|
|
6
|
-
import "lodash-es";
|
|
7
|
-
import { d as xe } from "./index-CJ0So9-k.js";
|
|
1
|
+
import { defineComponent as Q, ref as _, reactive as E, watch as ae, resolveComponent as f, openBlock as U, createBlock as G, withCtx as l, createVNode as t, createTextVNode as T, resolveDirective as ce, createElementVNode as q, withDirectives as fe, createElementBlock as J, Fragment as K, renderList as ee, toDisplayString as te, createCommentVNode as pe, onMounted as me, normalizeProps as ge, guardReactiveProps as _e } from "vue";
|
|
2
|
+
import { ElMessage as z, ElMessageBox as he } from "element-plus";
|
|
3
|
+
import { s as le, f as ve, h as Ie, j as ke, k as ye, l as Ce, m as be, n as Ve, _ as De, o as we, p as Me } from "./index-C75ufNln.js";
|
|
4
|
+
import { deepClone as xe } from "yh-client";
|
|
8
5
|
const Te = /* @__PURE__ */ Q({
|
|
9
6
|
__name: "TenantForm",
|
|
10
7
|
props: {
|
|
@@ -12,7 +9,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
12
9
|
},
|
|
13
10
|
emits: ["getinfo"],
|
|
14
11
|
setup(j, { emit: P }) {
|
|
15
|
-
const B = j,
|
|
12
|
+
const B = j, h = P, m = _(!1), I = _(), D = _("add"), d = E({}), O = {
|
|
16
13
|
code: [{ required: !0, message: "必须输入该项", trigger: "blur" }],
|
|
17
14
|
name: [{ required: !0, message: "必须输入该项", trigger: "blur" }],
|
|
18
15
|
orgValue: [{ required: !0, message: "必须输入该项", trigger: "blur" }],
|
|
@@ -28,29 +25,29 @@ const Te = /* @__PURE__ */ Q({
|
|
|
28
25
|
}, b = async () => {
|
|
29
26
|
if (I.value)
|
|
30
27
|
try {
|
|
31
|
-
await I.value.validate(), D.value === "add" ?
|
|
32
|
-
i.data.data && (z.success("保存成功!"),
|
|
28
|
+
await I.value.validate(), D.value === "add" ? ve(d).then((i) => {
|
|
29
|
+
i.data.data && (z.success("保存成功!"), m.value = !1, h("getinfo"));
|
|
33
30
|
}) : D.value === "edit" && Ie(d).then((i) => {
|
|
34
|
-
i.data.data && (z.success("保存成功!"),
|
|
31
|
+
i.data.data && (z.success("保存成功!"), m.value = !1, h("getinfo"));
|
|
35
32
|
});
|
|
36
33
|
} catch {
|
|
37
34
|
}
|
|
38
35
|
}, y = () => {
|
|
39
|
-
|
|
36
|
+
m.value = !1;
|
|
40
37
|
};
|
|
41
38
|
return ae(
|
|
42
39
|
() => B.actionData,
|
|
43
40
|
(i) => {
|
|
44
41
|
D.value = i.type, i.type === "add" ? (Object.keys(d).forEach((e) => {
|
|
45
42
|
delete d[e];
|
|
46
|
-
}),
|
|
43
|
+
}), m.value = !0) : i.type === "edit" ? (C(i.id), m.value = !0) : m.value = !1;
|
|
47
44
|
},
|
|
48
45
|
{ deep: !0 }
|
|
49
46
|
), (i, e) => {
|
|
50
|
-
const c =
|
|
47
|
+
const c = f("el-input"), g = f("el-form-item"), k = f("el-col"), v = f("el-row"), S = f("el-form"), R = f("el-button"), W = f("el-dialog");
|
|
51
48
|
return U(), G(W, {
|
|
52
|
-
modelValue:
|
|
53
|
-
"onUpdate:modelValue": e[10] || (e[10] = (s) =>
|
|
49
|
+
modelValue: m.value,
|
|
50
|
+
"onUpdate:modelValue": e[10] || (e[10] = (s) => m.value = s),
|
|
54
51
|
width: "800px",
|
|
55
52
|
title: "租户信息"
|
|
56
53
|
}, {
|
|
@@ -82,7 +79,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
82
79
|
"label-width": "140px"
|
|
83
80
|
}, {
|
|
84
81
|
default: l(() => [
|
|
85
|
-
t(
|
|
82
|
+
t(v, null, {
|
|
86
83
|
default: l(() => [
|
|
87
84
|
t(k, { span: 12 }, {
|
|
88
85
|
default: l(() => [
|
|
@@ -106,7 +103,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
106
103
|
]),
|
|
107
104
|
_: 1
|
|
108
105
|
}),
|
|
109
|
-
t(
|
|
106
|
+
t(v, null, {
|
|
110
107
|
default: l(() => [
|
|
111
108
|
t(k, { span: 12 }, {
|
|
112
109
|
default: l(() => [
|
|
@@ -145,7 +142,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
145
142
|
]),
|
|
146
143
|
_: 1
|
|
147
144
|
}),
|
|
148
|
-
t(
|
|
145
|
+
t(v, null, {
|
|
149
146
|
default: l(() => [
|
|
150
147
|
t(k, { span: 12 }, {
|
|
151
148
|
default: l(() => [
|
|
@@ -184,7 +181,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
184
181
|
]),
|
|
185
182
|
_: 1
|
|
186
183
|
}),
|
|
187
|
-
t(
|
|
184
|
+
t(v, null, {
|
|
188
185
|
default: l(() => [
|
|
189
186
|
t(k, { span: 12 }, {
|
|
190
187
|
default: l(() => [
|
|
@@ -224,7 +221,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
224
221
|
]),
|
|
225
222
|
_: 1
|
|
226
223
|
}),
|
|
227
|
-
t(
|
|
224
|
+
t(v, null, {
|
|
228
225
|
default: l(() => [
|
|
229
226
|
t(k, { span: 24 }, {
|
|
230
227
|
default: l(() => [
|
|
@@ -260,7 +257,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
260
257
|
},
|
|
261
258
|
emits: ["getinfo"],
|
|
262
259
|
setup(j, { emit: P }) {
|
|
263
|
-
const B = j,
|
|
260
|
+
const B = j, h = P, m = E({}), I = _(!1), D = _([]), d = _({}), O = _({}), C = _([]), b = _(""), y = _({}), i = _([]), e = _([]), c = _([]), g = _(!0), k = _(""), v = _(!1), S = _(), R = () => {
|
|
264
261
|
y.value = {}, d.value = {}, O.value = {}, C.value = [], D.value = [];
|
|
265
262
|
}, W = () => {
|
|
266
263
|
I.value = !0;
|
|
@@ -268,11 +265,11 @@ const Te = /* @__PURE__ */ Q({
|
|
|
268
265
|
Object.keys(y.value).forEach((r) => {
|
|
269
266
|
n["W_" + r] = y.value[r];
|
|
270
267
|
}), ke({
|
|
271
|
-
roleId:
|
|
268
|
+
roleId: m.adRoleId,
|
|
272
269
|
ids: o,
|
|
273
270
|
btns: JSON.stringify(n),
|
|
274
|
-
adClientId:
|
|
275
|
-
adOrgId:
|
|
271
|
+
adClientId: m.adClientId,
|
|
272
|
+
adOrgId: m.adOrgId
|
|
276
273
|
}).then((r) => {
|
|
277
274
|
I.value = !1;
|
|
278
275
|
const a = r.data;
|
|
@@ -288,7 +285,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
288
285
|
}
|
|
289
286
|
});
|
|
290
287
|
}, A = () => {
|
|
291
|
-
R(),
|
|
288
|
+
R(), v.value = !1, h("getinfo");
|
|
292
289
|
}, ne = async (o) => {
|
|
293
290
|
const n = {
|
|
294
291
|
adClientId: o
|
|
@@ -333,15 +330,15 @@ const Te = /* @__PURE__ */ Q({
|
|
|
333
330
|
const a = r.data, { result: u, data: V } = a;
|
|
334
331
|
if (u && V) {
|
|
335
332
|
const w = [], N = {};
|
|
336
|
-
V.forEach((
|
|
337
|
-
|
|
338
|
-
}), w.forEach((
|
|
339
|
-
|
|
340
|
-
const
|
|
333
|
+
V.forEach((p) => {
|
|
334
|
+
p.TYPE === "QY" ? (w.push(p), N[p.ID] = []) : N[p.PARENT_ID] && N[p.PARENT_ID].push(p);
|
|
335
|
+
}), w.forEach((p) => {
|
|
336
|
+
p.childs = N[p.ID];
|
|
337
|
+
const L = y.value[b.value] || [];
|
|
341
338
|
let $ = 0;
|
|
342
|
-
N[
|
|
343
|
-
|
|
344
|
-
}), $ === N[
|
|
339
|
+
N[p.ID].forEach((F) => {
|
|
340
|
+
L.includes(F.ID) && $++;
|
|
341
|
+
}), $ === N[p.ID].length ? (p.checkAll = !0, p.indeterminate = !1) : $ > 0 ? (p.checkAll = !1, p.indeterminate = !0) : (p.checkAll = !1, p.indeterminate = !1), p.checkChilds = L;
|
|
345
342
|
}), C.value = w, D.value = y.value[b.value] || [];
|
|
346
343
|
}
|
|
347
344
|
});
|
|
@@ -376,29 +373,29 @@ const Te = /* @__PURE__ */ Q({
|
|
|
376
373
|
async (o) => {
|
|
377
374
|
k.value = o.id;
|
|
378
375
|
const n = await ne(o.id);
|
|
379
|
-
Object.assign(
|
|
380
|
-
const r = await oe(
|
|
381
|
-
de(r),
|
|
376
|
+
Object.assign(m, n), s(m.adRoleId);
|
|
377
|
+
const r = await oe(m.adRoleId);
|
|
378
|
+
de(r), v.value = !0;
|
|
382
379
|
},
|
|
383
380
|
{ deep: !0 }
|
|
384
381
|
), (o, n) => {
|
|
385
|
-
const r =
|
|
382
|
+
const r = f("el-tree"), a = f("el-card"), u = f("el-col"), V = f("el-checkbox"), w = f("el-checkbox-group"), N = f("el-empty"), p = f("el-button"), L = f("el-row"), $ = f("el-drawer"), F = ce("loading");
|
|
386
383
|
return U(), G($, {
|
|
387
384
|
title: "分配权限",
|
|
388
|
-
modelValue:
|
|
389
|
-
"onUpdate:modelValue": n[0] || (n[0] = (M) =>
|
|
385
|
+
modelValue: v.value,
|
|
386
|
+
"onUpdate:modelValue": n[0] || (n[0] = (M) => v.value = M),
|
|
390
387
|
width: 800,
|
|
391
388
|
onClose: A
|
|
392
389
|
}, {
|
|
393
390
|
default: l(() => [
|
|
394
|
-
t(
|
|
391
|
+
t(L, null, {
|
|
395
392
|
default: l(() => [
|
|
396
393
|
t(u, { span: 12 }, {
|
|
397
394
|
default: l(() => [
|
|
398
395
|
t(a, { title: "菜单权限" }, {
|
|
399
396
|
default: l(() => [
|
|
400
|
-
|
|
401
|
-
|
|
397
|
+
q("div", Ne, [
|
|
398
|
+
fe(t(r, {
|
|
402
399
|
ref_key: "treeRef",
|
|
403
400
|
ref: S,
|
|
404
401
|
data: c.value,
|
|
@@ -422,13 +419,13 @@ const Te = /* @__PURE__ */ Q({
|
|
|
422
419
|
default: l(() => [
|
|
423
420
|
t(a, { title: "按钮权限" }, {
|
|
424
421
|
default: l(() => [
|
|
425
|
-
|
|
422
|
+
q("div", Ue, [
|
|
426
423
|
(U(!0), J(K, null, ee(C.value, (M, Y) => (U(), G(a, {
|
|
427
424
|
key: Y,
|
|
428
425
|
style: { "margin-top": "5px" }
|
|
429
426
|
}, {
|
|
430
427
|
header: l(() => [
|
|
431
|
-
|
|
428
|
+
q("span", Pe, te(M.NAME), 1),
|
|
432
429
|
t(V, {
|
|
433
430
|
modelValue: M.checkAll,
|
|
434
431
|
"onUpdate:modelValue": (x) => M.checkAll = x,
|
|
@@ -465,9 +462,9 @@ const Te = /* @__PURE__ */ Q({
|
|
|
465
462
|
C.value.length === 0 ? (U(), G(N, {
|
|
466
463
|
key: 0,
|
|
467
464
|
description: "暂无权限按钮"
|
|
468
|
-
})) :
|
|
469
|
-
|
|
470
|
-
t(
|
|
465
|
+
})) : pe("", !0),
|
|
466
|
+
q("div", Ee, [
|
|
467
|
+
t(p, {
|
|
471
468
|
type: "primary",
|
|
472
469
|
loading: I.value,
|
|
473
470
|
onClick: W
|
|
@@ -477,7 +474,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
477
474
|
])]),
|
|
478
475
|
_: 1
|
|
479
476
|
}, 8, ["loading"]),
|
|
480
|
-
t(
|
|
477
|
+
t(p, { onClick: A }, {
|
|
481
478
|
default: l(() => [...n[3] || (n[3] = [
|
|
482
479
|
T("取消", -1)
|
|
483
480
|
])]),
|
|
@@ -499,14 +496,14 @@ const Te = /* @__PURE__ */ Q({
|
|
|
499
496
|
}, 8, ["modelValue"]);
|
|
500
497
|
};
|
|
501
498
|
}
|
|
502
|
-
}), Re = /* @__PURE__ */ De(Be, [["__scopeId", "data-v-0e19626e"]]),
|
|
499
|
+
}), Re = /* @__PURE__ */ De(Be, [["__scopeId", "data-v-0e19626e"]]), We = /* @__PURE__ */ Q({
|
|
503
500
|
__name: "TenantList",
|
|
504
501
|
setup(j) {
|
|
505
|
-
const P = E({}), B = E({}),
|
|
502
|
+
const P = E({}), B = E({}), h = E({
|
|
506
503
|
total: 0,
|
|
507
504
|
currentPage: 1,
|
|
508
505
|
pageSize: 10
|
|
509
|
-
}),
|
|
506
|
+
}), m = E({
|
|
510
507
|
loading: !1,
|
|
511
508
|
border: !1,
|
|
512
509
|
showOverflow: !0,
|
|
@@ -519,17 +516,17 @@ const Te = /* @__PURE__ */ Q({
|
|
|
519
516
|
],
|
|
520
517
|
data: []
|
|
521
518
|
}), I = E({}), D = ({ currentPage: i, pageSize: e }) => {
|
|
522
|
-
|
|
519
|
+
h.currentPage = i, h.pageSize = e, d();
|
|
523
520
|
}, d = () => {
|
|
524
521
|
const i = {
|
|
525
|
-
page:
|
|
526
|
-
size:
|
|
522
|
+
page: h.currentPage,
|
|
523
|
+
size: h.pageSize,
|
|
527
524
|
name: I.name,
|
|
528
525
|
code: I.code
|
|
529
526
|
};
|
|
530
|
-
|
|
527
|
+
m.loading = !0, we(i).then((e) => {
|
|
531
528
|
const c = e.data;
|
|
532
|
-
c.data.records && (
|
|
529
|
+
c.data.records && (m.data = c.data.records, h.total = c.data.total, h.currentPage = c.data.current), m.loading = !1;
|
|
533
530
|
});
|
|
534
531
|
}, O = () => {
|
|
535
532
|
Object.assign(P, { type: "add" });
|
|
@@ -538,7 +535,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
538
535
|
}, b = (i) => {
|
|
539
536
|
Object.assign(B, { id: i.adClientId });
|
|
540
537
|
}, y = (i) => {
|
|
541
|
-
|
|
538
|
+
he.confirm("这将删除租户以及租户下所有数据!是否删除?", "请确认", {
|
|
542
539
|
confirmButtonText: "确定",
|
|
543
540
|
cancelButtonText: "取消",
|
|
544
541
|
type: "warning"
|
|
@@ -553,10 +550,10 @@ const Te = /* @__PURE__ */ Q({
|
|
|
553
550
|
}).catch(() => {
|
|
554
551
|
});
|
|
555
552
|
};
|
|
556
|
-
return
|
|
553
|
+
return me(() => {
|
|
557
554
|
d();
|
|
558
555
|
}), (i, e) => {
|
|
559
|
-
const c =
|
|
556
|
+
const c = f("el-input"), g = f("el-form-item"), k = f("YhIcon"), v = f("el-button"), S = f("el-form"), R = f("vxe-pager"), W = f("vxe-grid");
|
|
560
557
|
return U(), J(K, null, [
|
|
561
558
|
t(S, {
|
|
562
559
|
model: I,
|
|
@@ -584,7 +581,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
584
581
|
}),
|
|
585
582
|
t(g, null, {
|
|
586
583
|
default: l(() => [
|
|
587
|
-
t(
|
|
584
|
+
t(v, {
|
|
588
585
|
type: "primary",
|
|
589
586
|
onClick: e[2] || (e[2] = (s) => d())
|
|
590
587
|
}, {
|
|
@@ -601,7 +598,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
601
598
|
}),
|
|
602
599
|
t(g, null, {
|
|
603
600
|
default: l(() => [
|
|
604
|
-
t(
|
|
601
|
+
t(v, {
|
|
605
602
|
type: "primary",
|
|
606
603
|
onClick: e[3] || (e[3] = (s) => O())
|
|
607
604
|
}, {
|
|
@@ -620,9 +617,9 @@ const Te = /* @__PURE__ */ Q({
|
|
|
620
617
|
]),
|
|
621
618
|
_: 1
|
|
622
619
|
}, 8, ["model"]),
|
|
623
|
-
t(W, ge(_e(
|
|
620
|
+
t(W, ge(_e(m)), {
|
|
624
621
|
action: l(({ row: s }) => [
|
|
625
|
-
t(
|
|
622
|
+
t(v, {
|
|
626
623
|
type: "primary",
|
|
627
624
|
size: "small",
|
|
628
625
|
style: { "margin-right": "5px" },
|
|
@@ -633,7 +630,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
633
630
|
]),
|
|
634
631
|
_: 1
|
|
635
632
|
}, 8, ["onClick"]),
|
|
636
|
-
t(
|
|
633
|
+
t(v, {
|
|
637
634
|
type: "primary",
|
|
638
635
|
size: "small",
|
|
639
636
|
style: { "margin-right": "5px" },
|
|
@@ -644,7 +641,7 @@ const Te = /* @__PURE__ */ Q({
|
|
|
644
641
|
])]),
|
|
645
642
|
_: 1
|
|
646
643
|
}, 8, ["onClick"]),
|
|
647
|
-
t(
|
|
644
|
+
t(v, {
|
|
648
645
|
type: "danger",
|
|
649
646
|
size: "small",
|
|
650
647
|
style: { "margin-right": "5px" },
|
|
@@ -668,11 +665,11 @@ const Te = /* @__PURE__ */ Q({
|
|
|
668
665
|
"FullJump",
|
|
669
666
|
"Total"
|
|
670
667
|
],
|
|
671
|
-
"current-page":
|
|
672
|
-
"onUpdate:currentPage": e[4] || (e[4] = (s) =>
|
|
673
|
-
"page-size":
|
|
674
|
-
"onUpdate:pageSize": e[5] || (e[5] = (s) =>
|
|
675
|
-
total:
|
|
668
|
+
"current-page": h.currentPage,
|
|
669
|
+
"onUpdate:currentPage": e[4] || (e[4] = (s) => h.currentPage = s),
|
|
670
|
+
"page-size": h.pageSize,
|
|
671
|
+
"onUpdate:pageSize": e[5] || (e[5] = (s) => h.pageSize = s),
|
|
672
|
+
total: h.total,
|
|
676
673
|
onPageChange: D
|
|
677
674
|
}, null, 8, ["current-page", "page-size", "total"])
|
|
678
675
|
]),
|
|
@@ -691,6 +688,6 @@ const Te = /* @__PURE__ */ Q({
|
|
|
691
688
|
}
|
|
692
689
|
});
|
|
693
690
|
export {
|
|
694
|
-
|
|
691
|
+
We as default
|
|
695
692
|
};
|
|
696
|
-
//# sourceMappingURL=TenantList-
|
|
693
|
+
//# sourceMappingURL=TenantList-CNVwmoEt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantList-B5imzQc5.js","sources":["../components/business/admin/tenant/TenantForm.vue","../components/business/admin/tenant/TenantRoleManage.vue","../components/business/admin/tenant/TenantList.vue"],"sourcesContent":["<template>\n <el-dialog v-model=\"visible\" width=\"800px\" title=\"租户信息\">\n <el-form ref=\"formRef\" :rules=\"rules\" :model=\"form\" label-width=\"140px\">\n <el-row>\n <el-col :span=\"12\">\n <el-form-item prop=\"adClientId\" label=\"客户端ID\">\n <el-input v-model=\"form.adClientId\" disabled placeholder=\"自动生成\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"12\">\n <el-form-item prop=\"code\" label=\"客户端编码\">\n <el-input v-model=\"form.code\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item prop=\"name\" label=\"客户端名称\">\n <el-input v-model=\"form.name\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"12\">\n <el-form-item prop=\"orgValue\" label=\"组织机构编码\">\n <el-input v-model=\"form.orgValue\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item prop=\"orgName\" label=\"组织机构名称\">\n <el-input v-model=\"form.orgName\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"12\">\n <el-form-item prop=\"userName\" label=\"用户名称\">\n <el-input v-model=\"form.userName\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item prop=\"userUserName\" label=\"登录账户名称\">\n <el-input v-model=\"form.userUserName\" :disabled=\"type === 'add' ? false : true\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"24\">\n <el-form-item label=\"客户端备注\">\n <el-input v-model=\"form.description\" type=\"textarea\" :rows=\"3\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <template #footer>\n <el-button type=\"primary\" @click=\"ok()\">保存</el-button>\n <el-button @click=\"cancel()\">取消</el-button>\n </template>\n </el-dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, reactive, watch } from 'vue';\nimport { ElMessage } from 'element-plus';\nimport type { FormInstance, FormRules } from 'element-plus';\nimport { saTenantInsert, saTenantGetById, saTenantUpdate } from '../../../../api/tenantApi';\nimport type { TenantInfo, FormActionData } from './types';\n\ninterface Props {\n actionData: FormActionData;\n}\nconst props = defineProps<Props>();\nconst emit = defineEmits<{\n getinfo: [];\n}>();\n\nconst visible = ref(false);\nconst formRef = ref<FormInstance>();\nconst type = ref<'add' | 'edit'>('add');\nconst form = reactive<Partial<TenantInfo>>({});\n\nconst rules: FormRules<TenantInfo> = {\n code: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n name: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n orgValue: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n orgName: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n userName: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n userUserName: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n};\n\nconst getById = (id: string) => {\n const param = {\n adClientId: id,\n };\n saTenantGetById(param).then((res) => {\n if ((res.data as any).data) {\n Object.assign(form, (res.data as any).data);\n }\n });\n};\n\nconst ok = async () => {\n if (!formRef.value) return;\n try {\n await formRef.value.validate();\n if (type.value === 'add') {\n saTenantInsert(form).then((res) => {\n if ((res.data as any).data) {\n ElMessage.success('保存成功!');\n visible.value = false;\n emit('getinfo');\n }\n });\n } else if (type.value === 'edit') {\n saTenantUpdate(form).then((res) => {\n if ((res.data as any).data) {\n ElMessage.success('保存成功!');\n visible.value = false;\n emit('getinfo');\n }\n });\n }\n } catch {\n // 验证失败\n }\n};\n\nconst cancel = () => {\n visible.value = false;\n};\n\nwatch(\n () => props.actionData,\n (val) => {\n type.value = val.type;\n if (val.type === 'add') {\n Object.keys(form).forEach((key) => {\n delete form[key as keyof TenantInfo];\n });\n visible.value = true;\n } else if (val.type === 'edit') {\n getById(val.id!);\n visible.value = true;\n } else {\n visible.value = false;\n }\n },\n { deep: true }\n);\n</script>\n","<template>\n <el-drawer title=\"分配权限\" v-model=\"visible\" :width=\"800\" @close=\"cancel\">\n <el-row>\n <el-col :span=\"12\">\n <el-card title=\"菜单权限\">\n <div class=\"drawer-content\">\n <el-tree\n ref=\"treeRef\"\n :data=\"permData\"\n :props=\"{ label: 'title', children: 'children' }\"\n show-checkbox\n node-key=\"key\"\n default-expand-parent\n v-loading=\"treeLoading\"\n @current-change=\"selectTree\"\n @check-change=\"checkedMenuTree\"></el-tree>\n </div>\n </el-card>\n </el-col>\n <el-col :span=\"12\">\n <el-card title=\"按钮权限\">\n <div class=\"drawer-content\">\n <el-card v-for=\"(item, key) in curWindowBtnList\" :key=\"key\" style=\"margin-top: 5px\">\n <template #header>\n <span style=\"margin-left: 10px\">{{ item.NAME }}</span>\n <el-checkbox\n v-model=\"item.checkAll\"\n :indeterminate=\"item.indeterminate\"\n @change=\"handleCheckAll($event, item, key)\">\n 全选\n </el-checkbox>\n </template>\n <el-checkbox-group\n :model-value=\"item.checkChilds\"\n @update:model-value=\"(val) => checkAllGroupChange(val, key)\">\n <el-checkbox v-for=\"child in item.childs\" :key=\"child.ID\" :label=\"child.ID\">\n {{ child.NAME }}\n </el-checkbox>\n </el-checkbox-group>\n </el-card>\n <el-empty v-if=\"curWindowBtnList.length === 0\" description=\"暂无权限按钮\"></el-empty>\n <div class=\"drawer-footer br\">\n <el-button type=\"primary\" :loading=\"submitPermLoading\" @click=\"submitPermEdit\">\n 提交\n </el-button>\n <el-button @click=\"cancel\">取消</el-button>\n </div>\n </div>\n </el-card>\n </el-col>\n </el-row>\n </el-drawer>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, reactive, watch, nextTick } from 'vue';\nimport { ElMessage } from 'element-plus';\nimport { deepClone } from 'yh-client';\nimport {\n saTenantGetById,\n saTenantGetMenuList,\n saTenantGetMenuWindowButton,\n saTenantGetRoleMenus,\n saTenantGetRoleWindowButton,\n saTenantSetMenus,\n} from '../../../../api/tenantApi';\nimport type { MenuTreeNode, WindowButton, ButtonPermissionMap, AuthActionData } from './types';\n\ninterface Props {\n actionData: AuthActionData;\n}\nconst props = defineProps<Props>();\nconst emit = defineEmits<{\n getinfo: [];\n}>();\n\nconst tenantInfo = reactive<Record<string, any>>({});\nconst submitPermLoading = ref(false);\nconst saveWinBtnList = ref<string[]>([]);\nconst unCheckedMenuTreeData = ref<Record<string, string>>({});\nconst roleMenuData = ref<Record<string, any>>({});\nconst curWindowBtnList = ref<WindowButton[]>([]);\nconst curSelectedMenuId = ref('');\nconst roleSavedBtnPermMap = ref<ButtonPermissionMap>({});\nconst checkedMenuKeys = ref<string[]>([]);\nconst expandedMenuKeys = ref<string[]>([]);\nconst permData = ref<MenuTreeNode[]>([]);\nconst treeLoading = ref(true);\nconst id = ref('');\nconst visible = ref(false);\nconst treeRef = ref();\n\nconst resetBtnPerData = () => {\n roleSavedBtnPermMap.value = {};\n unCheckedMenuTreeData.value = {};\n roleMenuData.value = {};\n curWindowBtnList.value = [];\n saveWinBtnList.value = [];\n};\n\nconst submitPermEdit = () => {\n submitPermLoading.value = true;\n const permMenuIds = checkedMenuKeys.value.join(',');\n const permMenuBtnIds: Record<string, string[]> = {};\n Object.keys(roleSavedBtnPermMap.value).forEach((key) => {\n permMenuBtnIds['W_' + key] = roleSavedBtnPermMap.value[key];\n });\n saTenantSetMenus({\n roleId: tenantInfo.adRoleId,\n ids: permMenuIds,\n btns: JSON.stringify(permMenuBtnIds),\n adClientId: tenantInfo.adClientId,\n adOrgId: tenantInfo.adOrgId,\n }).then((res) => {\n submitPermLoading.value = false;\n const data = res.data as any;\n if (data.result) {\n ElMessage.success('操作成功');\n cancel();\n } else {\n ElMessage.error(data.msg);\n }\n });\n};\n\nconst getRoleWindowButton = (roleId: string) => {\n saTenantGetRoleWindowButton({ adRoleId: roleId }).then((res) => {\n if ((res.data as any).data) {\n const data = (res.data as any).data;\n const roleBtnPermMap: ButtonPermissionMap = {};\n data.forEach((e: any) => {\n if (!roleBtnPermMap[e.sysWindowId]) {\n roleBtnPermMap[e.sysWindowId] = [];\n }\n roleBtnPermMap[e.sysWindowId].push(e.sysWindowButtonId);\n });\n roleSavedBtnPermMap.value = roleBtnPermMap;\n }\n });\n};\n\nconst cancel = () => {\n resetBtnPerData();\n visible.value = false;\n emit('getinfo');\n};\n\nconst getById = async (idVal: string) => {\n const param = {\n adClientId: idVal,\n };\n let data: any;\n await saTenantGetById(param).then((res) => {\n if ((res.data as any).data) {\n data = (res.data as any).data;\n }\n });\n return data;\n};\n\nconst getRoleMenus = async (roleId: string) => {\n const roleMenuDataTemp: Record<string, any> = {};\n expandedMenuKeys.value = [];\n checkedMenuKeys.value = [];\n\n await saTenantGetRoleMenus({ adRoleId: roleId }).then((res) => {\n const data = res.data as any;\n if (data.result) {\n data.data.forEach((e: any) => {\n if (e.MENU_TYPE !== 'GROUP') {\n roleMenuDataTemp[e.AD_MENU_ID] = e;\n checkedMenuKeys.value.push(e.AD_MENU_ID);\n } else {\n expandedMenuKeys.value.push(e.AD_MENU_ID);\n }\n });\n }\n });\n return roleMenuDataTemp;\n};\n\nconst initMenu = (roleMenuDataTemp: Record<string, any>) => {\n saTenantGetMenuList({}).then((res) => {\n const resData = res.data as any;\n if (resData.data) {\n const newTreeData: MenuTreeNode[] = [];\n const data = resData.data;\n data.forEach((e: any) => {\n newTreeData.push(parseTreeData(e, 0));\n });\n calNewTreeData(newTreeData, roleMenuDataTemp);\n permData.value = newTreeData;\n treeLoading.value = false;\n }\n });\n};\n\nconst calNewTreeData = (newTreeData: MenuTreeNode[], roleMenuDataTemp: Record<string, any>): number => {\n let checkedCount = 0;\n newTreeData.forEach((e) => {\n e.expand = true;\n\n if (roleMenuDataTemp[e.adMenuId]) {\n e.checked = true;\n checkedCount++;\n }\n\n if (e.children && e.children.length > 0) {\n const sonCheckedCount = calNewTreeData(e.children, roleMenuDataTemp);\n if (sonCheckedCount === e.children.length) {\n e.checked = true;\n e.selectable = true;\n e.indeterminate = false;\n } else if (sonCheckedCount > 0 && sonCheckedCount < e.children.length) {\n e.indeterminate = true;\n e.checked = false;\n e.selectable = true;\n } else {\n e.checked = false;\n e.indeterminate = false;\n }\n }\n });\n return checkedCount;\n};\n\nconst selectTree = (data: MenuTreeNode | null, node: any) => {\n if (data) {\n curSelectedMenuId.value = data.sysWindowId || '';\n if (!curSelectedMenuId.value) {\n curWindowBtnList.value = [];\n saveWinBtnList.value = roleSavedBtnPermMap.value[curSelectedMenuId.value] || [];\n return;\n }\n\n saTenantGetMenuWindowButton({ sysWindowId: curSelectedMenuId.value }).then((res) => {\n const resData = res.data as any;\n const { result, data: resDataInner } = resData;\n if (result && resDataInner) {\n const roleBtnData: WindowButton[] = [];\n const tempQyBtnData: Record<string, any[]> = {};\n\n resDataInner.forEach((tData: any) => {\n if (tData.TYPE === 'QY') {\n roleBtnData.push(tData);\n tempQyBtnData[tData.ID] = [];\n } else {\n if (tempQyBtnData[tData.PARENT_ID]) {\n tempQyBtnData[tData.PARENT_ID].push(tData);\n }\n }\n });\n\n roleBtnData.forEach((item) => {\n item.childs = tempQyBtnData[item.ID];\n const checkChilds = roleSavedBtnPermMap.value[curSelectedMenuId.value] || [];\n let tcount = 0;\n tempQyBtnData[item.ID].forEach((es: any) => {\n if (checkChilds.includes(es.ID)) {\n tcount++;\n }\n });\n if (tcount === tempQyBtnData[item.ID].length) {\n item.checkAll = true;\n item.indeterminate = false;\n } else if (tcount > 0) {\n item.checkAll = false;\n item.indeterminate = true;\n } else {\n item.checkAll = false;\n item.indeterminate = false;\n }\n item.checkChilds = checkChilds;\n });\n\n curWindowBtnList.value = roleBtnData;\n saveWinBtnList.value = roleSavedBtnPermMap.value[curSelectedMenuId.value] || [];\n }\n });\n }\n};\n\nconst checkedMenuTree = (data: MenuTreeNode, checked: boolean) => {\n if (data.menuType !== 'GROUP') {\n if (!checked) {\n if (!unCheckedMenuTreeData.value[data.adMenuId]) {\n unCheckedMenuTreeData.value[data.adMenuId] = '1';\n }\n } else {\n delete unCheckedMenuTreeData.value[data.adMenuId];\n }\n } else {\n getTreeCheckedDataLoop(data, !checked);\n }\n};\n\nconst getTreeCheckedDataLoop = (cv: MenuTreeNode, delFlag: boolean) => {\n if (delFlag) {\n if (!unCheckedMenuTreeData.value[cv.adMenuId]) {\n unCheckedMenuTreeData.value[cv.adMenuId] = '1';\n }\n if (cv.children && cv.children.length > 0) {\n cv.children.forEach((ss) => {\n getTreeCheckedDataLoop(ss, delFlag);\n });\n }\n } else {\n delete unCheckedMenuTreeData.value[cv.adMenuId];\n }\n};\n\nconst handleCheckAll = (checked: boolean, item: WindowButton, key: number) => {\n let checkChilds: string[] = [];\n if (!item.indeterminate) {\n item.checkAll = false;\n item.indeterminate = false;\n item.checkChilds = checkChilds;\n } else {\n checkChilds = item.childs.map((child) => child.ID);\n item.checkAll = true;\n item.indeterminate = false;\n item.checkChilds = checkChilds;\n }\n\n roleSavedBtnPermMap.value[curSelectedMenuId.value] = checkChilds;\n curWindowBtnList.value[key] = item;\n};\n\nconst checkAllGroupChange = (event: string[], key: number) => {\n const list = deepClone(curWindowBtnList.value);\n const currentItem = list[key];\n if (event.length > 0) {\n let containFlag = 0;\n let okCount = 0;\n for (let i = 0; i < currentItem.childs.length; i++) {\n if (event.includes(currentItem.childs[i].ID)) {\n okCount++;\n }\n }\n if (okCount === currentItem.childs.length) {\n containFlag = 2;\n } else {\n containFlag = 1;\n }\n if (containFlag === 1) {\n currentItem.checkAll = false;\n currentItem.indeterminate = okCount === 0 ? false : true;\n } else if (containFlag === 2) {\n currentItem.checkAll = true;\n currentItem.indeterminate = false;\n }\n } else {\n currentItem.checkAll = false;\n currentItem.indeterminate = false;\n }\n currentItem.checkChilds = event;\n curWindowBtnList.value[key] = currentItem;\n roleSavedBtnPermMap.value[curSelectedMenuId.value] = event;\n};\n\nconst parseTreeData = (curLevelData: any, curLevel: number): MenuTreeNode => {\n const newLevelData: any = { data: curLevelData };\n newLevelData.key = curLevelData.adMenuId;\n newLevelData.title = curLevelData.name;\n\n if (curLevelData._childs && curLevelData._childs.length > 0) {\n curLevelData._childs.forEach((sonTreeData: any) => {\n if (!newLevelData.children) {\n newLevelData.children = [];\n }\n newLevelData.children.push(parseTreeData(sonTreeData, curLevel + 1));\n });\n newLevelData.isLeaf = false;\n } else {\n newLevelData.isLeaf = true;\n }\n delete curLevelData._childs;\n return newLevelData;\n};\n\nwatch(\n () => props.actionData,\n async (val) => {\n id.value = val.id;\n const dataTemp = await getById(val.id);\n Object.assign(tenantInfo, dataTemp);\n getRoleWindowButton(tenantInfo.adRoleId);\n const roleMenuDataTemp = await getRoleMenus(tenantInfo.adRoleId);\n initMenu(roleMenuDataTemp);\n visible.value = true;\n },\n { deep: true }\n);\n</script>\n\n<style scoped>\n.drawer-footer {\n z-index: 10;\n width: 100%;\n position: absolute;\n bottom: 0;\n left: 0;\n border-top: 1px solid #e8e8e8;\n padding: 10px 16px;\n text-align: left;\n background: #fff;\n}\n\n.drawer-content {\n height: calc(100vh - 51px - 32px - 32px - 51px - 2px);\n overflow: auto;\n}\n</style>\n","<template>\n <el-form\n :model=\"searchForm\"\n class=\"ant-advanced-search-form\"\n inline>\n <el-form-item label=\"客户端编码\">\n <el-input v-model=\"searchForm.code\" />\n </el-form-item>\n <el-form-item label=\"客户端名称\">\n <el-input v-model=\"searchForm.name\" />\n </el-form-item>\n <el-form-item>\n <el-button\n type=\"primary\"\n @click=\"query()\">\n <YhIcon\n slot=\"icon\"\n name=\"search2\"></YhIcon>\n </el-button>\n </el-form-item>\n <el-form-item>\n <el-button\n type=\"primary\"\n @click=\"add()\">\n <YhIcon\n slot=\"icon\"\n name=\"plus\"></YhIcon>\n 初始化租户\n </el-button>\n </el-form-item>\n </el-form>\n <vxe-grid v-bind=\"pageListOptions\">\n <template #action=\"{row}\">\n <el-button\n type=\"primary\"\n size=\"small\"\n style=\"margin-right: 5px\"\n @click=\"edit(row)\">\n <YhIcon name=\"edit\"></YhIcon>\n </el-button>\n <el-button\n type=\"primary\"\n size=\"small\"\n style=\"margin-right: 5px\"\n @click=\"authorization(row)\">\n 授权\n </el-button>\n <el-button\n type=\"danger\"\n size=\"small\"\n style=\"margin-right: 5px\"\n @click=\"remove(row)\">\n 删除\n </el-button>\n </template>\n <template #pager>\n <vxe-pager\n :layouts=\"[\n 'Sizes',\n 'PrevJump',\n 'PrevPage',\n 'Number',\n 'NextPage',\n 'NextJump',\n 'FullJump',\n 'Total',\n ]\"\n v-model:current-page=\"tablePage.currentPage\"\n v-model:page-size=\"tablePage.pageSize\"\n :total=\"tablePage.total\"\n @page-change=\"handlePageChange\"></vxe-pager>\n </template>\n </vxe-grid>\n <TenantForm\n :actionData=\"toFormData\"\n @getinfo=\"query()\"></TenantForm>\n <TenantRoleManage\n :actionData=\"toRoleData\"\n @getinfo=\"query()\"></TenantRoleManage>\n</template>\n\n<script setup lang=\"ts\">\n import {reactive, onMounted} from 'vue';\n import {ElMessage, ElMessageBox} from 'element-plus';\n import type {VxeGridProps} from 'vxe-table';\n import TenantForm from './TenantForm.vue';\n import TenantRoleManage from './TenantRoleManage.vue';\n import {saTenantDelete, saTenantListPage} from '../../../../api/tenantApi';\n import type {TenantInfo, SearchForm, TablePage, FormActionData, AuthActionData} from './types';\n\n // 响应式数据\n const toFormData = reactive<FormActionData>({} as FormActionData);\n const toRoleData = reactive<AuthActionData>({} as AuthActionData);\n const tablePage = reactive<TablePage>({\n total: 0,\n currentPage: 1,\n pageSize: 10,\n });\n const pageListOptions = reactive<VxeGridProps>({\n loading: false,\n border: false,\n showOverflow: true,\n align: 'center',\n columns: [\n {field: 'adClientId', title: '租户ID', fixed: 'left', width: 200},\n {field: 'code', title: '客户端编码'},\n {field: 'name', title: '客户端名称'},\n {field: 'action', title: '操作', fixed: 'right', width: 300, slots: {default: 'action'}},\n ],\n data: [],\n });\n const searchForm = reactive<SearchForm>({});\n\n // 方法\n const handlePageChange = ({currentPage, pageSize}: {currentPage: number; pageSize: number}) => {\n tablePage.currentPage = currentPage;\n tablePage.pageSize = pageSize;\n query();\n };\n\n const query = () => {\n const param = {\n page: tablePage.currentPage,\n size: tablePage.pageSize,\n name: searchForm.name,\n code: searchForm.code,\n };\n pageListOptions.loading = true;\n saTenantListPage(param).then((res) => {\n const resData = res.data as any;\n if (resData.data.records) {\n pageListOptions.data = resData.data.records;\n tablePage.total = resData.data.total;\n tablePage.currentPage = resData.data.current;\n }\n pageListOptions.loading = false;\n });\n };\n\n const add = () => {\n Object.assign(toFormData, {type: 'add'} as FormActionData);\n };\n\n const edit = (row: TenantInfo) => {\n Object.assign(toFormData, {type: 'edit', id: row.adClientId});\n };\n\n const authorization = (row: TenantInfo) => {\n Object.assign(toRoleData, {id: row.adClientId});\n };\n\n const remove = (row: TenantInfo) => {\n ElMessageBox.confirm('这将删除租户以及租户下所有数据!是否删除?', '请确认', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning',\n })\n .then(() => {\n const param = {\n adClientId: row.adClientId,\n };\n saTenantDelete(param).then((res) => {\n const resData = res.data as any;\n if (resData.result) {\n ElMessage.success(resData.msg);\n query();\n } else {\n ElMessage.error(resData.msg);\n }\n });\n })\n .catch(() => {});\n };\n\n // 生命周期\n onMounted(() => {\n query();\n });\n</script>\n"],"names":["props","__props","emit","__emit","visible","ref","formRef","type","form","reactive","rules","getById","id","saTenantGetById","res","ok","saTenantInsert","ElMessage","saTenantUpdate","cancel","watch","val","key","_createBlock","_component_el_dialog","$event","_createVNode","_component_el_button","_cache","_component_el_form","_component_el_row","_component_el_col","_component_el_form_item","_component_el_input","tenantInfo","submitPermLoading","saveWinBtnList","unCheckedMenuTreeData","roleMenuData","curWindowBtnList","curSelectedMenuId","roleSavedBtnPermMap","checkedMenuKeys","expandedMenuKeys","permData","treeLoading","treeRef","resetBtnPerData","submitPermEdit","permMenuIds","permMenuBtnIds","saTenantSetMenus","data","getRoleWindowButton","roleId","saTenantGetRoleWindowButton","roleBtnPermMap","e","idVal","param","getRoleMenus","roleMenuDataTemp","saTenantGetRoleMenus","initMenu","saTenantGetMenuList","resData","newTreeData","parseTreeData","calNewTreeData","checkedCount","sonCheckedCount","selectTree","node","saTenantGetMenuWindowButton","result","resDataInner","roleBtnData","tempQyBtnData","tData","item","checkChilds","tcount","es","checkedMenuTree","checked","getTreeCheckedDataLoop","cv","delFlag","ss","handleCheckAll","child","checkAllGroupChange","event","currentItem","deepClone","containFlag","okCount","i","curLevelData","curLevel","newLevelData","sonTreeData","dataTemp","_component_el_drawer","_component_el_card","_createElementVNode","_hoisted_1","_component_el_tree","_hoisted_2","_openBlock","_createElementBlock","_Fragment","_renderList","_hoisted_3","_toDisplayString","_component_el_checkbox","_component_el_checkbox_group","_createTextVNode","_component_el_empty","_hoisted_4","toFormData","toRoleData","tablePage","pageListOptions","searchForm","handlePageChange","currentPage","pageSize","query","saTenantListPage","add","edit","row","authorization","remove","ElMessageBox","saTenantDelete","onMounted","_component_YhIcon","_component_vxe_grid","_withCtx","_component_vxe_pager","TenantForm","TenantRoleManage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TenantList-CNVwmoEt.js","sources":["../components/business/admin/tenant/TenantForm.vue","../components/business/admin/tenant/TenantRoleManage.vue","../components/business/admin/tenant/TenantList.vue"],"sourcesContent":["<template>\n <el-dialog v-model=\"visible\" width=\"800px\" title=\"租户信息\">\n <el-form ref=\"formRef\" :rules=\"rules\" :model=\"form\" label-width=\"140px\">\n <el-row>\n <el-col :span=\"12\">\n <el-form-item prop=\"adClientId\" label=\"客户端ID\">\n <el-input v-model=\"form.adClientId\" disabled placeholder=\"自动生成\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"12\">\n <el-form-item prop=\"code\" label=\"客户端编码\">\n <el-input v-model=\"form.code\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item prop=\"name\" label=\"客户端名称\">\n <el-input v-model=\"form.name\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"12\">\n <el-form-item prop=\"orgValue\" label=\"组织机构编码\">\n <el-input v-model=\"form.orgValue\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item prop=\"orgName\" label=\"组织机构名称\">\n <el-input v-model=\"form.orgName\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"12\">\n <el-form-item prop=\"userName\" label=\"用户名称\">\n <el-input v-model=\"form.userName\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item prop=\"userUserName\" label=\"登录账户名称\">\n <el-input v-model=\"form.userUserName\" :disabled=\"type === 'add' ? false : true\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"24\">\n <el-form-item label=\"客户端备注\">\n <el-input v-model=\"form.description\" type=\"textarea\" :rows=\"3\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <template #footer>\n <el-button type=\"primary\" @click=\"ok()\">保存</el-button>\n <el-button @click=\"cancel()\">取消</el-button>\n </template>\n </el-dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, reactive, watch } from 'vue';\nimport { ElMessage } from 'element-plus';\nimport type { FormInstance, FormRules } from 'element-plus';\nimport { saTenantInsert, saTenantGetById, saTenantUpdate } from '../../../../api/tenantApi';\nimport type { TenantInfo, FormActionData } from './types';\n\ninterface Props {\n actionData: FormActionData;\n}\nconst props = defineProps<Props>();\nconst emit = defineEmits<{\n getinfo: [];\n}>();\n\nconst visible = ref(false);\nconst formRef = ref<FormInstance>();\nconst type = ref<'add' | 'edit'>('add');\nconst form = reactive<Partial<TenantInfo>>({});\n\nconst rules: FormRules<TenantInfo> = {\n code: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n name: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n orgValue: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n orgName: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n userName: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n userUserName: [{ required: true, message: '必须输入该项', trigger: 'blur' }],\n};\n\nconst getById = (id: string) => {\n const param = {\n adClientId: id,\n };\n saTenantGetById(param).then((res) => {\n if ((res.data as any).data) {\n Object.assign(form, (res.data as any).data);\n }\n });\n};\n\nconst ok = async () => {\n if (!formRef.value) return;\n try {\n await formRef.value.validate();\n if (type.value === 'add') {\n saTenantInsert(form).then((res) => {\n if ((res.data as any).data) {\n ElMessage.success('保存成功!');\n visible.value = false;\n emit('getinfo');\n }\n });\n } else if (type.value === 'edit') {\n saTenantUpdate(form).then((res) => {\n if ((res.data as any).data) {\n ElMessage.success('保存成功!');\n visible.value = false;\n emit('getinfo');\n }\n });\n }\n } catch {\n // 验证失败\n }\n};\n\nconst cancel = () => {\n visible.value = false;\n};\n\nwatch(\n () => props.actionData,\n (val) => {\n type.value = val.type;\n if (val.type === 'add') {\n Object.keys(form).forEach((key) => {\n delete form[key as keyof TenantInfo];\n });\n visible.value = true;\n } else if (val.type === 'edit') {\n getById(val.id!);\n visible.value = true;\n } else {\n visible.value = false;\n }\n },\n { deep: true }\n);\n</script>\n","<template>\n <el-drawer title=\"分配权限\" v-model=\"visible\" :width=\"800\" @close=\"cancel\">\n <el-row>\n <el-col :span=\"12\">\n <el-card title=\"菜单权限\">\n <div class=\"drawer-content\">\n <el-tree\n ref=\"treeRef\"\n :data=\"permData\"\n :props=\"{ label: 'title', children: 'children' }\"\n show-checkbox\n node-key=\"key\"\n default-expand-parent\n v-loading=\"treeLoading\"\n @current-change=\"selectTree\"\n @check-change=\"checkedMenuTree\"></el-tree>\n </div>\n </el-card>\n </el-col>\n <el-col :span=\"12\">\n <el-card title=\"按钮权限\">\n <div class=\"drawer-content\">\n <el-card v-for=\"(item, key) in curWindowBtnList\" :key=\"key\" style=\"margin-top: 5px\">\n <template #header>\n <span style=\"margin-left: 10px\">{{ item.NAME }}</span>\n <el-checkbox\n v-model=\"item.checkAll\"\n :indeterminate=\"item.indeterminate\"\n @change=\"handleCheckAll($event, item, key)\">\n 全选\n </el-checkbox>\n </template>\n <el-checkbox-group\n :model-value=\"item.checkChilds\"\n @update:model-value=\"(val) => checkAllGroupChange(val, key)\">\n <el-checkbox v-for=\"child in item.childs\" :key=\"child.ID\" :label=\"child.ID\">\n {{ child.NAME }}\n </el-checkbox>\n </el-checkbox-group>\n </el-card>\n <el-empty v-if=\"curWindowBtnList.length === 0\" description=\"暂无权限按钮\"></el-empty>\n <div class=\"drawer-footer br\">\n <el-button type=\"primary\" :loading=\"submitPermLoading\" @click=\"submitPermEdit\">\n 提交\n </el-button>\n <el-button @click=\"cancel\">取消</el-button>\n </div>\n </div>\n </el-card>\n </el-col>\n </el-row>\n </el-drawer>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, reactive, watch, nextTick } from 'vue';\nimport { ElMessage } from 'element-plus';\nimport { deepClone } from 'yh-client';\nimport {\n saTenantGetById,\n saTenantGetMenuList,\n saTenantGetMenuWindowButton,\n saTenantGetRoleMenus,\n saTenantGetRoleWindowButton,\n saTenantSetMenus,\n} from '../../../../api/tenantApi';\nimport type { MenuTreeNode, WindowButton, ButtonPermissionMap, AuthActionData } from './types';\n\ninterface Props {\n actionData: AuthActionData;\n}\nconst props = defineProps<Props>();\nconst emit = defineEmits<{\n getinfo: [];\n}>();\n\nconst tenantInfo = reactive<Record<string, any>>({});\nconst submitPermLoading = ref(false);\nconst saveWinBtnList = ref<string[]>([]);\nconst unCheckedMenuTreeData = ref<Record<string, string>>({});\nconst roleMenuData = ref<Record<string, any>>({});\nconst curWindowBtnList = ref<WindowButton[]>([]);\nconst curSelectedMenuId = ref('');\nconst roleSavedBtnPermMap = ref<ButtonPermissionMap>({});\nconst checkedMenuKeys = ref<string[]>([]);\nconst expandedMenuKeys = ref<string[]>([]);\nconst permData = ref<MenuTreeNode[]>([]);\nconst treeLoading = ref(true);\nconst id = ref('');\nconst visible = ref(false);\nconst treeRef = ref();\n\nconst resetBtnPerData = () => {\n roleSavedBtnPermMap.value = {};\n unCheckedMenuTreeData.value = {};\n roleMenuData.value = {};\n curWindowBtnList.value = [];\n saveWinBtnList.value = [];\n};\n\nconst submitPermEdit = () => {\n submitPermLoading.value = true;\n const permMenuIds = checkedMenuKeys.value.join(',');\n const permMenuBtnIds: Record<string, string[]> = {};\n Object.keys(roleSavedBtnPermMap.value).forEach((key) => {\n permMenuBtnIds['W_' + key] = roleSavedBtnPermMap.value[key];\n });\n saTenantSetMenus({\n roleId: tenantInfo.adRoleId,\n ids: permMenuIds,\n btns: JSON.stringify(permMenuBtnIds),\n adClientId: tenantInfo.adClientId,\n adOrgId: tenantInfo.adOrgId,\n }).then((res) => {\n submitPermLoading.value = false;\n const data = res.data as any;\n if (data.result) {\n ElMessage.success('操作成功');\n cancel();\n } else {\n ElMessage.error(data.msg);\n }\n });\n};\n\nconst getRoleWindowButton = (roleId: string) => {\n saTenantGetRoleWindowButton({ adRoleId: roleId }).then((res) => {\n if ((res.data as any).data) {\n const data = (res.data as any).data;\n const roleBtnPermMap: ButtonPermissionMap = {};\n data.forEach((e: any) => {\n if (!roleBtnPermMap[e.sysWindowId]) {\n roleBtnPermMap[e.sysWindowId] = [];\n }\n roleBtnPermMap[e.sysWindowId].push(e.sysWindowButtonId);\n });\n roleSavedBtnPermMap.value = roleBtnPermMap;\n }\n });\n};\n\nconst cancel = () => {\n resetBtnPerData();\n visible.value = false;\n emit('getinfo');\n};\n\nconst getById = async (idVal: string) => {\n const param = {\n adClientId: idVal,\n };\n let data: any;\n await saTenantGetById(param).then((res) => {\n if ((res.data as any).data) {\n data = (res.data as any).data;\n }\n });\n return data;\n};\n\nconst getRoleMenus = async (roleId: string) => {\n const roleMenuDataTemp: Record<string, any> = {};\n expandedMenuKeys.value = [];\n checkedMenuKeys.value = [];\n\n await saTenantGetRoleMenus({ adRoleId: roleId }).then((res) => {\n const data = res.data as any;\n if (data.result) {\n data.data.forEach((e: any) => {\n if (e.MENU_TYPE !== 'GROUP') {\n roleMenuDataTemp[e.AD_MENU_ID] = e;\n checkedMenuKeys.value.push(e.AD_MENU_ID);\n } else {\n expandedMenuKeys.value.push(e.AD_MENU_ID);\n }\n });\n }\n });\n return roleMenuDataTemp;\n};\n\nconst initMenu = (roleMenuDataTemp: Record<string, any>) => {\n saTenantGetMenuList({}).then((res) => {\n const resData = res.data as any;\n if (resData.data) {\n const newTreeData: MenuTreeNode[] = [];\n const data = resData.data;\n data.forEach((e: any) => {\n newTreeData.push(parseTreeData(e, 0));\n });\n calNewTreeData(newTreeData, roleMenuDataTemp);\n permData.value = newTreeData;\n treeLoading.value = false;\n }\n });\n};\n\nconst calNewTreeData = (newTreeData: MenuTreeNode[], roleMenuDataTemp: Record<string, any>): number => {\n let checkedCount = 0;\n newTreeData.forEach((e) => {\n e.expand = true;\n\n if (roleMenuDataTemp[e.adMenuId]) {\n e.checked = true;\n checkedCount++;\n }\n\n if (e.children && e.children.length > 0) {\n const sonCheckedCount = calNewTreeData(e.children, roleMenuDataTemp);\n if (sonCheckedCount === e.children.length) {\n e.checked = true;\n e.selectable = true;\n e.indeterminate = false;\n } else if (sonCheckedCount > 0 && sonCheckedCount < e.children.length) {\n e.indeterminate = true;\n e.checked = false;\n e.selectable = true;\n } else {\n e.checked = false;\n e.indeterminate = false;\n }\n }\n });\n return checkedCount;\n};\n\nconst selectTree = (data: MenuTreeNode | null, node: any) => {\n if (data) {\n curSelectedMenuId.value = data.sysWindowId || '';\n if (!curSelectedMenuId.value) {\n curWindowBtnList.value = [];\n saveWinBtnList.value = roleSavedBtnPermMap.value[curSelectedMenuId.value] || [];\n return;\n }\n\n saTenantGetMenuWindowButton({ sysWindowId: curSelectedMenuId.value }).then((res) => {\n const resData = res.data as any;\n const { result, data: resDataInner } = resData;\n if (result && resDataInner) {\n const roleBtnData: WindowButton[] = [];\n const tempQyBtnData: Record<string, any[]> = {};\n\n resDataInner.forEach((tData: any) => {\n if (tData.TYPE === 'QY') {\n roleBtnData.push(tData);\n tempQyBtnData[tData.ID] = [];\n } else {\n if (tempQyBtnData[tData.PARENT_ID]) {\n tempQyBtnData[tData.PARENT_ID].push(tData);\n }\n }\n });\n\n roleBtnData.forEach((item) => {\n item.childs = tempQyBtnData[item.ID];\n const checkChilds = roleSavedBtnPermMap.value[curSelectedMenuId.value] || [];\n let tcount = 0;\n tempQyBtnData[item.ID].forEach((es: any) => {\n if (checkChilds.includes(es.ID)) {\n tcount++;\n }\n });\n if (tcount === tempQyBtnData[item.ID].length) {\n item.checkAll = true;\n item.indeterminate = false;\n } else if (tcount > 0) {\n item.checkAll = false;\n item.indeterminate = true;\n } else {\n item.checkAll = false;\n item.indeterminate = false;\n }\n item.checkChilds = checkChilds;\n });\n\n curWindowBtnList.value = roleBtnData;\n saveWinBtnList.value = roleSavedBtnPermMap.value[curSelectedMenuId.value] || [];\n }\n });\n }\n};\n\nconst checkedMenuTree = (data: MenuTreeNode, checked: boolean) => {\n if (data.menuType !== 'GROUP') {\n if (!checked) {\n if (!unCheckedMenuTreeData.value[data.adMenuId]) {\n unCheckedMenuTreeData.value[data.adMenuId] = '1';\n }\n } else {\n delete unCheckedMenuTreeData.value[data.adMenuId];\n }\n } else {\n getTreeCheckedDataLoop(data, !checked);\n }\n};\n\nconst getTreeCheckedDataLoop = (cv: MenuTreeNode, delFlag: boolean) => {\n if (delFlag) {\n if (!unCheckedMenuTreeData.value[cv.adMenuId]) {\n unCheckedMenuTreeData.value[cv.adMenuId] = '1';\n }\n if (cv.children && cv.children.length > 0) {\n cv.children.forEach((ss) => {\n getTreeCheckedDataLoop(ss, delFlag);\n });\n }\n } else {\n delete unCheckedMenuTreeData.value[cv.adMenuId];\n }\n};\n\nconst handleCheckAll = (checked: boolean, item: WindowButton, key: number) => {\n let checkChilds: string[] = [];\n if (!item.indeterminate) {\n item.checkAll = false;\n item.indeterminate = false;\n item.checkChilds = checkChilds;\n } else {\n checkChilds = item.childs.map((child) => child.ID);\n item.checkAll = true;\n item.indeterminate = false;\n item.checkChilds = checkChilds;\n }\n\n roleSavedBtnPermMap.value[curSelectedMenuId.value] = checkChilds;\n curWindowBtnList.value[key] = item;\n};\n\nconst checkAllGroupChange = (event: string[], key: number) => {\n const list = deepClone(curWindowBtnList.value);\n const currentItem = list[key];\n if (event.length > 0) {\n let containFlag = 0;\n let okCount = 0;\n for (let i = 0; i < currentItem.childs.length; i++) {\n if (event.includes(currentItem.childs[i].ID)) {\n okCount++;\n }\n }\n if (okCount === currentItem.childs.length) {\n containFlag = 2;\n } else {\n containFlag = 1;\n }\n if (containFlag === 1) {\n currentItem.checkAll = false;\n currentItem.indeterminate = okCount === 0 ? false : true;\n } else if (containFlag === 2) {\n currentItem.checkAll = true;\n currentItem.indeterminate = false;\n }\n } else {\n currentItem.checkAll = false;\n currentItem.indeterminate = false;\n }\n currentItem.checkChilds = event;\n curWindowBtnList.value[key] = currentItem;\n roleSavedBtnPermMap.value[curSelectedMenuId.value] = event;\n};\n\nconst parseTreeData = (curLevelData: any, curLevel: number): MenuTreeNode => {\n const newLevelData: any = { data: curLevelData };\n newLevelData.key = curLevelData.adMenuId;\n newLevelData.title = curLevelData.name;\n\n if (curLevelData._childs && curLevelData._childs.length > 0) {\n curLevelData._childs.forEach((sonTreeData: any) => {\n if (!newLevelData.children) {\n newLevelData.children = [];\n }\n newLevelData.children.push(parseTreeData(sonTreeData, curLevel + 1));\n });\n newLevelData.isLeaf = false;\n } else {\n newLevelData.isLeaf = true;\n }\n delete curLevelData._childs;\n return newLevelData;\n};\n\nwatch(\n () => props.actionData,\n async (val) => {\n id.value = val.id;\n const dataTemp = await getById(val.id);\n Object.assign(tenantInfo, dataTemp);\n getRoleWindowButton(tenantInfo.adRoleId);\n const roleMenuDataTemp = await getRoleMenus(tenantInfo.adRoleId);\n initMenu(roleMenuDataTemp);\n visible.value = true;\n },\n { deep: true }\n);\n</script>\n\n<style scoped>\n.drawer-footer {\n z-index: 10;\n width: 100%;\n position: absolute;\n bottom: 0;\n left: 0;\n border-top: 1px solid #e8e8e8;\n padding: 10px 16px;\n text-align: left;\n background: #fff;\n}\n\n.drawer-content {\n height: calc(100vh - 51px - 32px - 32px - 51px - 2px);\n overflow: auto;\n}\n</style>\n","<template>\n <el-form\n :model=\"searchForm\"\n class=\"ant-advanced-search-form\"\n inline>\n <el-form-item label=\"客户端编码\">\n <el-input v-model=\"searchForm.code\" />\n </el-form-item>\n <el-form-item label=\"客户端名称\">\n <el-input v-model=\"searchForm.name\" />\n </el-form-item>\n <el-form-item>\n <el-button\n type=\"primary\"\n @click=\"query()\">\n <YhIcon\n slot=\"icon\"\n name=\"search2\"></YhIcon>\n </el-button>\n </el-form-item>\n <el-form-item>\n <el-button\n type=\"primary\"\n @click=\"add()\">\n <YhIcon\n slot=\"icon\"\n name=\"plus\"></YhIcon>\n 初始化租户\n </el-button>\n </el-form-item>\n </el-form>\n <vxe-grid v-bind=\"pageListOptions\">\n <template #action=\"{row}\">\n <el-button\n type=\"primary\"\n size=\"small\"\n style=\"margin-right: 5px\"\n @click=\"edit(row)\">\n <YhIcon name=\"edit\"></YhIcon>\n </el-button>\n <el-button\n type=\"primary\"\n size=\"small\"\n style=\"margin-right: 5px\"\n @click=\"authorization(row)\">\n 授权\n </el-button>\n <el-button\n type=\"danger\"\n size=\"small\"\n style=\"margin-right: 5px\"\n @click=\"remove(row)\">\n 删除\n </el-button>\n </template>\n <template #pager>\n <vxe-pager\n :layouts=\"[\n 'Sizes',\n 'PrevJump',\n 'PrevPage',\n 'Number',\n 'NextPage',\n 'NextJump',\n 'FullJump',\n 'Total',\n ]\"\n v-model:current-page=\"tablePage.currentPage\"\n v-model:page-size=\"tablePage.pageSize\"\n :total=\"tablePage.total\"\n @page-change=\"handlePageChange\"></vxe-pager>\n </template>\n </vxe-grid>\n <TenantForm\n :actionData=\"toFormData\"\n @getinfo=\"query()\"></TenantForm>\n <TenantRoleManage\n :actionData=\"toRoleData\"\n @getinfo=\"query()\"></TenantRoleManage>\n</template>\n\n<script setup lang=\"ts\">\n import {reactive, onMounted} from 'vue';\n import {ElMessage, ElMessageBox} from 'element-plus';\n import type {VxeGridProps} from 'vxe-table';\n import TenantForm from './TenantForm.vue';\n import TenantRoleManage from './TenantRoleManage.vue';\n import {saTenantDelete, saTenantListPage} from '../../../../api/tenantApi';\n import type {TenantInfo, SearchForm, TablePage, FormActionData, AuthActionData} from './types';\n\n // 响应式数据\n const toFormData = reactive<FormActionData>({} as FormActionData);\n const toRoleData = reactive<AuthActionData>({} as AuthActionData);\n const tablePage = reactive<TablePage>({\n total: 0,\n currentPage: 1,\n pageSize: 10,\n });\n const pageListOptions = reactive<VxeGridProps>({\n loading: false,\n border: false,\n showOverflow: true,\n align: 'center',\n columns: [\n {field: 'adClientId', title: '租户ID', fixed: 'left', width: 200},\n {field: 'code', title: '客户端编码'},\n {field: 'name', title: '客户端名称'},\n {field: 'action', title: '操作', fixed: 'right', width: 300, slots: {default: 'action'}},\n ],\n data: [],\n });\n const searchForm = reactive<SearchForm>({});\n\n // 方法\n const handlePageChange = ({currentPage, pageSize}: {currentPage: number; pageSize: number}) => {\n tablePage.currentPage = currentPage;\n tablePage.pageSize = pageSize;\n query();\n };\n\n const query = () => {\n const param = {\n page: tablePage.currentPage,\n size: tablePage.pageSize,\n name: searchForm.name,\n code: searchForm.code,\n };\n pageListOptions.loading = true;\n saTenantListPage(param).then((res) => {\n const resData = res.data as any;\n if (resData.data.records) {\n pageListOptions.data = resData.data.records;\n tablePage.total = resData.data.total;\n tablePage.currentPage = resData.data.current;\n }\n pageListOptions.loading = false;\n });\n };\n\n const add = () => {\n Object.assign(toFormData, {type: 'add'} as FormActionData);\n };\n\n const edit = (row: TenantInfo) => {\n Object.assign(toFormData, {type: 'edit', id: row.adClientId});\n };\n\n const authorization = (row: TenantInfo) => {\n Object.assign(toRoleData, {id: row.adClientId});\n };\n\n const remove = (row: TenantInfo) => {\n ElMessageBox.confirm('这将删除租户以及租户下所有数据!是否删除?', '请确认', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning',\n })\n .then(() => {\n const param = {\n adClientId: row.adClientId,\n };\n saTenantDelete(param).then((res) => {\n const resData = res.data as any;\n if (resData.result) {\n ElMessage.success(resData.msg);\n query();\n } else {\n ElMessage.error(resData.msg);\n }\n });\n })\n .catch(() => {});\n };\n\n // 生命周期\n onMounted(() => {\n query();\n });\n</script>\n"],"names":["props","__props","emit","__emit","visible","ref","formRef","type","form","reactive","rules","getById","id","saTenantGetById","res","ok","saTenantInsert","ElMessage","saTenantUpdate","cancel","watch","val","key","_createBlock","_component_el_dialog","$event","_createVNode","_component_el_button","_cache","_component_el_form","_component_el_row","_component_el_col","_component_el_form_item","_component_el_input","tenantInfo","submitPermLoading","saveWinBtnList","unCheckedMenuTreeData","roleMenuData","curWindowBtnList","curSelectedMenuId","roleSavedBtnPermMap","checkedMenuKeys","expandedMenuKeys","permData","treeLoading","treeRef","resetBtnPerData","submitPermEdit","permMenuIds","permMenuBtnIds","saTenantSetMenus","data","getRoleWindowButton","roleId","saTenantGetRoleWindowButton","roleBtnPermMap","e","idVal","param","getRoleMenus","roleMenuDataTemp","saTenantGetRoleMenus","initMenu","saTenantGetMenuList","resData","newTreeData","parseTreeData","calNewTreeData","checkedCount","sonCheckedCount","selectTree","node","saTenantGetMenuWindowButton","result","resDataInner","roleBtnData","tempQyBtnData","tData","item","checkChilds","tcount","es","checkedMenuTree","checked","getTreeCheckedDataLoop","cv","delFlag","ss","handleCheckAll","child","checkAllGroupChange","event","currentItem","deepClone","containFlag","okCount","i","curLevelData","curLevel","newLevelData","sonTreeData","dataTemp","_component_el_drawer","_component_el_card","_createElementVNode","_hoisted_1","_component_el_tree","_hoisted_2","_openBlock","_createElementBlock","_Fragment","_renderList","_hoisted_3","_toDisplayString","_component_el_checkbox","_component_el_checkbox_group","_createTextVNode","_component_el_empty","_hoisted_4","toFormData","toRoleData","tablePage","pageListOptions","searchForm","handlePageChange","currentPage","pageSize","query","saTenantListPage","add","edit","row","authorization","remove","ElMessageBox","saTenantDelete","onMounted","_component_YhIcon","_component_vxe_grid","_withCtx","_component_vxe_pager","TenantForm","TenantRoleManage"],"mappings":"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"}
|