@since2006/pages 2025.8.0 → 2025.8.1
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/dist/es/index.js +10 -8
- package/dist/es/src/app/module/ModuleAdd.vue.js +7 -0
- package/dist/es/src/app/module/ModuleAdd.vue2.js +280 -0
- package/dist/es/src/app/module/ModuleDetail.vue.js +133 -0
- package/dist/es/src/app/module/ModuleDetail.vue2.js +4 -0
- package/dist/es/src/app/module/ModuleEdit.vue.js +7 -0
- package/dist/es/src/app/module/ModuleEdit.vue2.js +283 -0
- package/dist/es/src/app/module/ModuleIndex.vue.js +218 -0
- package/dist/es/src/app/module/ModuleIndex.vue2.js +4 -0
- package/dist/es/src/app/module/api.js +14 -0
- package/dist/es/src/app/module/icon/IconSelectorModal.vue.js +7 -0
- package/dist/es/src/app/module/icon/IconSelectorModal.vue2.js +39 -0
- package/dist/es/src/app/module/index.js +9 -0
- package/dist/es/src/app/module/utils.js +11 -0
- package/dist/es/src/index.js +4 -2
- package/dist/es/style.css +1 -1
- package/dist/lib/index.js +1 -1
- package/dist/lib/src/app/module/ModuleAdd.vue.js +1 -0
- package/dist/lib/src/app/module/ModuleAdd.vue2.js +1 -0
- package/dist/lib/src/app/module/ModuleDetail.vue.js +1 -0
- package/dist/lib/src/app/module/ModuleDetail.vue2.js +1 -0
- package/dist/lib/src/app/module/ModuleEdit.vue.js +1 -0
- package/dist/lib/src/app/module/ModuleEdit.vue2.js +1 -0
- package/dist/lib/src/app/module/ModuleIndex.vue.js +1 -0
- package/dist/lib/src/app/module/ModuleIndex.vue2.js +1 -0
- package/dist/lib/src/app/module/api.js +1 -0
- package/dist/lib/src/app/module/icon/IconSelectorModal.vue.js +1 -0
- package/dist/lib/src/app/module/icon/IconSelectorModal.vue2.js +1 -0
- package/dist/lib/src/app/module/index.js +1 -0
- package/dist/lib/src/app/module/utils.js +1 -0
- package/dist/lib/src/index.js +1 -1
- package/dist/lib/style.css +1 -1
- package/package.json +2 -1
package/dist/es/index.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { StatusIndex as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import * as e from "./src/index.js";
|
|
2
|
+
import { StatusIndex as d } from "./src/app/system/index.js";
|
|
3
|
+
import { ModuleIndex as a } from "./src/app/module/index.js";
|
|
4
|
+
const r = {
|
|
5
|
+
install: (o) => {
|
|
6
|
+
for (let t in e)
|
|
7
|
+
o.use(e[t]);
|
|
7
8
|
}
|
|
8
9
|
};
|
|
9
10
|
export {
|
|
10
|
-
a as
|
|
11
|
-
|
|
11
|
+
a as ModuleIndex,
|
|
12
|
+
d as StatusIndex,
|
|
13
|
+
r as default
|
|
12
14
|
};
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { defineComponent as G, ref as d, reactive as H, watch as J, resolveComponent as u, openBlock as U, createBlock as N, withCtx as a, createVNode as t, resolveDynamicComponent as K, unref as q, createTextVNode as y } from "vue";
|
|
2
|
+
import Q from "./icon/IconSelectorModal.vue.js";
|
|
3
|
+
import { message as W } from "ant-design-vue";
|
|
4
|
+
import { SearchOutlined as X } from "@ant-design/icons-vue";
|
|
5
|
+
import { getModules as Y, getDocs as Z, createModule as ee } from "./api.js";
|
|
6
|
+
import { PermPanel as te } from "@since2006/components";
|
|
7
|
+
const se = /* @__PURE__ */ G({
|
|
8
|
+
__name: "ModuleAdd",
|
|
9
|
+
props: {
|
|
10
|
+
open: {
|
|
11
|
+
type: Boolean,
|
|
12
|
+
default: !1
|
|
13
|
+
},
|
|
14
|
+
parentId: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: null
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
emits: ["update:open", "success", "cancel"],
|
|
20
|
+
setup(_, { emit: h }) {
|
|
21
|
+
const m = _, b = d(), p = d([]), f = d(!1), g = d([]), I = d([]), i = d({
|
|
22
|
+
icon: !1
|
|
23
|
+
}), w = {
|
|
24
|
+
id: "",
|
|
25
|
+
cateId: "",
|
|
26
|
+
parentId: "",
|
|
27
|
+
name: "",
|
|
28
|
+
icon: "",
|
|
29
|
+
path: "",
|
|
30
|
+
component: "",
|
|
31
|
+
seqNo: "",
|
|
32
|
+
remark: "",
|
|
33
|
+
state: "0",
|
|
34
|
+
target: !1,
|
|
35
|
+
permissionSummary: ""
|
|
36
|
+
}, l = H({ ...w }), x = {
|
|
37
|
+
name: [{ required: !0, message: "请填写模块名称" }],
|
|
38
|
+
seqNo: [{ required: !0, type: "number", message: "请填写数字类型顺序号" }]
|
|
39
|
+
}, v = h;
|
|
40
|
+
J(
|
|
41
|
+
() => m.open,
|
|
42
|
+
(n) => {
|
|
43
|
+
n && (D(), O());
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
const D = () => {
|
|
47
|
+
Object.assign(l, w), p.value = [];
|
|
48
|
+
}, L = (n, e) => e.componentOptions.children[0].text.toLowerCase().indexOf(n.toLowerCase()) >= 0, O = () => {
|
|
49
|
+
Y().then((n) => {
|
|
50
|
+
const e = [];
|
|
51
|
+
k(e, n.result, []), g.value = e, m.parentId && (l.parentId = m.parentId);
|
|
52
|
+
}), Z().then((n) => {
|
|
53
|
+
I.value = M(n.result);
|
|
54
|
+
});
|
|
55
|
+
}, V = () => {
|
|
56
|
+
i.value.icon = !0;
|
|
57
|
+
}, A = (n) => {
|
|
58
|
+
i.value.icon = !1, l.icon = n;
|
|
59
|
+
}, B = () => {
|
|
60
|
+
b.value.validateFields().then(() => {
|
|
61
|
+
f.value = !0;
|
|
62
|
+
const n = {
|
|
63
|
+
...l,
|
|
64
|
+
target: l.target ? 1 : 0,
|
|
65
|
+
permIds: p.value,
|
|
66
|
+
seqNo: parseInt(l.seqNo)
|
|
67
|
+
};
|
|
68
|
+
ee(n).then((e) => {
|
|
69
|
+
W.success("添加模块成功"), v("update:open", !1), v("success", e.result.parentId);
|
|
70
|
+
});
|
|
71
|
+
}).finally((n) => {
|
|
72
|
+
f.value = !1;
|
|
73
|
+
});
|
|
74
|
+
}, F = () => {
|
|
75
|
+
v("update:open", !1);
|
|
76
|
+
}, k = (n, e, c) => {
|
|
77
|
+
e && e.forEach((r) => {
|
|
78
|
+
if (!c.includes(r.id)) {
|
|
79
|
+
const s = { value: r.id, title: r.name, children: [] };
|
|
80
|
+
k(s.children, r.children, c), n.push(s);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}, M = (n) => n.map((e) => ({
|
|
84
|
+
value: e.id,
|
|
85
|
+
label: e.name
|
|
86
|
+
}));
|
|
87
|
+
return (n, e) => {
|
|
88
|
+
const c = u("a-tree-select"), r = u("a-form-item"), s = u("a-input"), R = u("a-select"), E = u("a-input-number"), S = u("a-radio"), P = u("a-radio-group"), T = u("a-switch"), C = u("a-col"), j = u("a-row"), $ = u("a-form"), z = u("a-modal");
|
|
89
|
+
return U(), N(z, {
|
|
90
|
+
title: "添加系统模块",
|
|
91
|
+
width: 800,
|
|
92
|
+
visible: _.open,
|
|
93
|
+
"mask-closable": !1,
|
|
94
|
+
"confirm-loading": f.value,
|
|
95
|
+
"destroy-on-close": "",
|
|
96
|
+
onOk: B,
|
|
97
|
+
onCancel: F
|
|
98
|
+
}, {
|
|
99
|
+
default: a(() => [
|
|
100
|
+
t($, {
|
|
101
|
+
ref_key: "formRef",
|
|
102
|
+
ref: b,
|
|
103
|
+
model: l,
|
|
104
|
+
rules: x,
|
|
105
|
+
"label-col": { span: 5 },
|
|
106
|
+
"wrapper-col": { span: 15 }
|
|
107
|
+
}, {
|
|
108
|
+
default: a(() => [
|
|
109
|
+
t(j, null, {
|
|
110
|
+
default: a(() => [
|
|
111
|
+
t(C, { span: 15 }, {
|
|
112
|
+
default: a(() => [
|
|
113
|
+
t(r, { label: "上级模块" }, {
|
|
114
|
+
default: a(() => [
|
|
115
|
+
t(c, {
|
|
116
|
+
value: l.parentId,
|
|
117
|
+
"onUpdate:value": e[0] || (e[0] = (o) => l.parentId = o),
|
|
118
|
+
treeData: g.value,
|
|
119
|
+
treeDefaultExpandAll: "",
|
|
120
|
+
allowClear: ""
|
|
121
|
+
}, null, 8, ["value", "treeData"])
|
|
122
|
+
]),
|
|
123
|
+
_: 1
|
|
124
|
+
}),
|
|
125
|
+
t(r, {
|
|
126
|
+
label: "模块名称",
|
|
127
|
+
name: "name"
|
|
128
|
+
}, {
|
|
129
|
+
default: a(() => [
|
|
130
|
+
t(s, {
|
|
131
|
+
value: l.name,
|
|
132
|
+
"onUpdate:value": e[1] || (e[1] = (o) => l.name = o),
|
|
133
|
+
placeholder: "模块名称"
|
|
134
|
+
}, null, 8, ["value"])
|
|
135
|
+
]),
|
|
136
|
+
_: 1
|
|
137
|
+
}),
|
|
138
|
+
t(r, { label: "文档类别" }, {
|
|
139
|
+
default: a(() => [
|
|
140
|
+
t(R, {
|
|
141
|
+
value: l.cateId,
|
|
142
|
+
"onUpdate:value": e[2] || (e[2] = (o) => l.cateId = o),
|
|
143
|
+
"show-search": "",
|
|
144
|
+
"option-filter-prop": "children",
|
|
145
|
+
"filter-option": L,
|
|
146
|
+
options: I.value,
|
|
147
|
+
allowClear: ""
|
|
148
|
+
}, null, 8, ["value", "options"])
|
|
149
|
+
]),
|
|
150
|
+
_: 1
|
|
151
|
+
}),
|
|
152
|
+
t(r, { label: "模块图标" }, {
|
|
153
|
+
default: a(() => [
|
|
154
|
+
t(s, {
|
|
155
|
+
value: l.icon,
|
|
156
|
+
"onUpdate:value": e[3] || (e[3] = (o) => l.icon = o),
|
|
157
|
+
placeholder: "点击右侧按钮选择图标"
|
|
158
|
+
}, {
|
|
159
|
+
prefix: a(() => [
|
|
160
|
+
(U(), N(K(l.icon), { style: { color: "#108b16" } }))
|
|
161
|
+
]),
|
|
162
|
+
addonAfter: a(() => [
|
|
163
|
+
t(q(X), { onClick: V })
|
|
164
|
+
]),
|
|
165
|
+
_: 1
|
|
166
|
+
}, 8, ["value"])
|
|
167
|
+
]),
|
|
168
|
+
_: 1
|
|
169
|
+
}),
|
|
170
|
+
t(r, {
|
|
171
|
+
label: "顺序号",
|
|
172
|
+
name: "seqNo"
|
|
173
|
+
}, {
|
|
174
|
+
default: a(() => [
|
|
175
|
+
t(E, {
|
|
176
|
+
value: l.seqNo,
|
|
177
|
+
"onUpdate:value": e[4] || (e[4] = (o) => l.seqNo = o),
|
|
178
|
+
placeholder: "顺序号"
|
|
179
|
+
}, null, 8, ["value"])
|
|
180
|
+
]),
|
|
181
|
+
_: 1
|
|
182
|
+
}),
|
|
183
|
+
t(r, { label: "访问路径" }, {
|
|
184
|
+
default: a(() => [
|
|
185
|
+
t(s, {
|
|
186
|
+
value: l.path,
|
|
187
|
+
"onUpdate:value": e[5] || (e[5] = (o) => l.path = o),
|
|
188
|
+
placeholder: "访问路径"
|
|
189
|
+
}, null, 8, ["value"])
|
|
190
|
+
]),
|
|
191
|
+
_: 1
|
|
192
|
+
}),
|
|
193
|
+
t(r, { label: "模板文件" }, {
|
|
194
|
+
default: a(() => [
|
|
195
|
+
t(s, {
|
|
196
|
+
value: l.component,
|
|
197
|
+
"onUpdate:value": e[6] || (e[6] = (o) => l.component = o),
|
|
198
|
+
placeholder: "@/epp/module/viewName"
|
|
199
|
+
}, null, 8, ["value"])
|
|
200
|
+
]),
|
|
201
|
+
_: 1
|
|
202
|
+
}),
|
|
203
|
+
t(r, { label: "是否显示" }, {
|
|
204
|
+
default: a(() => [
|
|
205
|
+
t(P, {
|
|
206
|
+
value: l.state,
|
|
207
|
+
"onUpdate:value": e[7] || (e[7] = (o) => l.state = o)
|
|
208
|
+
}, {
|
|
209
|
+
default: a(() => [
|
|
210
|
+
t(S, { value: "1" }, {
|
|
211
|
+
default: a(() => e[12] || (e[12] = [
|
|
212
|
+
y("显示")
|
|
213
|
+
])),
|
|
214
|
+
_: 1
|
|
215
|
+
}),
|
|
216
|
+
t(S, { value: "0" }, {
|
|
217
|
+
default: a(() => e[13] || (e[13] = [
|
|
218
|
+
y("隐藏")
|
|
219
|
+
])),
|
|
220
|
+
_: 1
|
|
221
|
+
})
|
|
222
|
+
]),
|
|
223
|
+
_: 1
|
|
224
|
+
}, 8, ["value"])
|
|
225
|
+
]),
|
|
226
|
+
_: 1
|
|
227
|
+
}),
|
|
228
|
+
t(r, { label: "打开方式" }, {
|
|
229
|
+
default: a(() => [
|
|
230
|
+
t(T, {
|
|
231
|
+
checked: l.target,
|
|
232
|
+
"onUpdate:checked": e[8] || (e[8] = (o) => l.target = o),
|
|
233
|
+
"checked-children": "新开窗口",
|
|
234
|
+
"un-checked-children": "内部窗口"
|
|
235
|
+
}, null, 8, ["checked"])
|
|
236
|
+
]),
|
|
237
|
+
_: 1
|
|
238
|
+
}),
|
|
239
|
+
t(r, { label: "描述" }, {
|
|
240
|
+
default: a(() => [
|
|
241
|
+
t(s, {
|
|
242
|
+
value: l.remark,
|
|
243
|
+
"onUpdate:value": e[9] || (e[9] = (o) => l.remark = o),
|
|
244
|
+
placeholder: "描述"
|
|
245
|
+
}, null, 8, ["value"])
|
|
246
|
+
]),
|
|
247
|
+
_: 1
|
|
248
|
+
})
|
|
249
|
+
]),
|
|
250
|
+
_: 1
|
|
251
|
+
}),
|
|
252
|
+
t(C, { span: 9 }, {
|
|
253
|
+
default: a(() => [
|
|
254
|
+
t(q(te), {
|
|
255
|
+
modelValue: p.value,
|
|
256
|
+
"onUpdate:modelValue": e[10] || (e[10] = (o) => p.value = o)
|
|
257
|
+
}, null, 8, ["modelValue"])
|
|
258
|
+
]),
|
|
259
|
+
_: 1
|
|
260
|
+
})
|
|
261
|
+
]),
|
|
262
|
+
_: 1
|
|
263
|
+
})
|
|
264
|
+
]),
|
|
265
|
+
_: 1
|
|
266
|
+
}, 8, ["model"]),
|
|
267
|
+
t(Q, {
|
|
268
|
+
visible: i.value.icon,
|
|
269
|
+
onSuccess: A,
|
|
270
|
+
onCancel: e[11] || (e[11] = (o) => i.value.icon = !1)
|
|
271
|
+
}, null, 8, ["visible"])
|
|
272
|
+
]),
|
|
273
|
+
_: 1
|
|
274
|
+
}, 8, ["visible", "confirm-loading"]);
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
export {
|
|
279
|
+
se as default
|
|
280
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { defineComponent as _, resolveComponent as s, openBlock as a, createBlock as d, withCtx as l, createVNode as n, createTextVNode as o, toDisplayString as m, resolveDynamicComponent as C, createCommentVNode as r, createElementVNode as c, unref as f, createElementBlock as y, Fragment as k } from "vue";
|
|
2
|
+
import { ClickCopy as b } from "@since2006/components";
|
|
3
|
+
const v = { style: { color: "#a6a6a6", "margin-left": "4px" } }, D = /* @__PURE__ */ _({
|
|
4
|
+
__name: "ModuleDetail",
|
|
5
|
+
props: {
|
|
6
|
+
module: {}
|
|
7
|
+
},
|
|
8
|
+
setup(N) {
|
|
9
|
+
return (e, u) => {
|
|
10
|
+
const t = s("a-descriptions-item"), p = s("a-tag"), g = s("a-descriptions");
|
|
11
|
+
return a(), d(g, {
|
|
12
|
+
bordered: "",
|
|
13
|
+
column: 1,
|
|
14
|
+
labelStyle: { width: "140px", textAlign: "center" }
|
|
15
|
+
}, {
|
|
16
|
+
default: l(() => [
|
|
17
|
+
n(t, { label: "模块名称" }, {
|
|
18
|
+
default: l(() => [
|
|
19
|
+
o(m(e.module.name), 1)
|
|
20
|
+
]),
|
|
21
|
+
_: 1
|
|
22
|
+
}),
|
|
23
|
+
n(t, { label: "文档类别" }, {
|
|
24
|
+
default: l(() => {
|
|
25
|
+
var i;
|
|
26
|
+
return [
|
|
27
|
+
o(m((i = e.module.cate) == null ? void 0 : i.name), 1)
|
|
28
|
+
];
|
|
29
|
+
}),
|
|
30
|
+
_: 1
|
|
31
|
+
}),
|
|
32
|
+
n(t, { label: "模块图标" }, {
|
|
33
|
+
default: l(() => [
|
|
34
|
+
e.module.icon ? (a(), d(C(e.module.icon), {
|
|
35
|
+
key: 0,
|
|
36
|
+
style: { "font-size": "16px" }
|
|
37
|
+
})) : r("", !0),
|
|
38
|
+
c("span", v, m(e.module.icon), 1)
|
|
39
|
+
]),
|
|
40
|
+
_: 1
|
|
41
|
+
}),
|
|
42
|
+
n(t, { label: "访问路径" }, {
|
|
43
|
+
default: l(() => [
|
|
44
|
+
o(m(e.module.path) + " ", 1),
|
|
45
|
+
e.module.path ? (a(), d(f(b), {
|
|
46
|
+
key: 0,
|
|
47
|
+
value: e.module.path
|
|
48
|
+
}, null, 8, ["value"])) : r("", !0)
|
|
49
|
+
]),
|
|
50
|
+
_: 1
|
|
51
|
+
}),
|
|
52
|
+
n(t, { label: "模板文件" }, {
|
|
53
|
+
default: l(() => [
|
|
54
|
+
o(m(e.module.component) + " ", 1),
|
|
55
|
+
e.module.component ? (a(), d(f(b), {
|
|
56
|
+
key: 0,
|
|
57
|
+
value: e.module.component
|
|
58
|
+
}, null, 8, ["value"])) : r("", !0)
|
|
59
|
+
]),
|
|
60
|
+
_: 1
|
|
61
|
+
}),
|
|
62
|
+
n(t, { label: "打开方式" }, {
|
|
63
|
+
default: l(() => [
|
|
64
|
+
e.module.target != null ? (a(), y(k, { key: 0 }, [
|
|
65
|
+
e.module.target === 1 ? (a(), d(p, {
|
|
66
|
+
key: 0,
|
|
67
|
+
color: "red"
|
|
68
|
+
}, {
|
|
69
|
+
default: l(() => u[0] || (u[0] = [
|
|
70
|
+
o("新开窗口")
|
|
71
|
+
])),
|
|
72
|
+
_: 1
|
|
73
|
+
})) : (a(), d(p, { key: 1 }, {
|
|
74
|
+
default: l(() => u[1] || (u[1] = [
|
|
75
|
+
o("默认")
|
|
76
|
+
])),
|
|
77
|
+
_: 1
|
|
78
|
+
}))
|
|
79
|
+
], 64)) : r("", !0)
|
|
80
|
+
]),
|
|
81
|
+
_: 1
|
|
82
|
+
}),
|
|
83
|
+
n(t, { label: "排序" }, {
|
|
84
|
+
default: l(() => [
|
|
85
|
+
o(m(e.module.seqNo), 1)
|
|
86
|
+
]),
|
|
87
|
+
_: 1
|
|
88
|
+
}),
|
|
89
|
+
n(t, { label: "是否显示" }, {
|
|
90
|
+
default: l(() => [
|
|
91
|
+
e.module.state ? (a(), y(k, { key: 0 }, [
|
|
92
|
+
e.module.state === "1" ? (a(), d(p, {
|
|
93
|
+
key: 0,
|
|
94
|
+
color: "green"
|
|
95
|
+
}, {
|
|
96
|
+
default: l(() => u[2] || (u[2] = [
|
|
97
|
+
o("显示")
|
|
98
|
+
])),
|
|
99
|
+
_: 1
|
|
100
|
+
})) : (a(), d(p, {
|
|
101
|
+
key: 1,
|
|
102
|
+
color: "red"
|
|
103
|
+
}, {
|
|
104
|
+
default: l(() => u[3] || (u[3] = [
|
|
105
|
+
o("隐藏")
|
|
106
|
+
])),
|
|
107
|
+
_: 1
|
|
108
|
+
}))
|
|
109
|
+
], 64)) : r("", !0)
|
|
110
|
+
]),
|
|
111
|
+
_: 1
|
|
112
|
+
}),
|
|
113
|
+
n(t, { label: "访问权限" }, {
|
|
114
|
+
default: l(() => [
|
|
115
|
+
o(m(e.module.permsSummary), 1)
|
|
116
|
+
]),
|
|
117
|
+
_: 1
|
|
118
|
+
}),
|
|
119
|
+
n(t, { label: "描述" }, {
|
|
120
|
+
default: l(() => [
|
|
121
|
+
o(m(e.module.remark), 1)
|
|
122
|
+
]),
|
|
123
|
+
_: 1
|
|
124
|
+
})
|
|
125
|
+
]),
|
|
126
|
+
_: 1
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
export {
|
|
132
|
+
D as default
|
|
133
|
+
};
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { defineComponent as G, ref as i, reactive as H, watch as J, resolveComponent as r, openBlock as U, createBlock as q, withCtx as n, createVNode as t, resolveDynamicComponent as K, unref as N, createTextVNode as h } from "vue";
|
|
2
|
+
import Q from "./icon/IconSelectorModal.vue.js";
|
|
3
|
+
import { message as W } from "ant-design-vue";
|
|
4
|
+
import { SearchOutlined as X } from "@ant-design/icons-vue";
|
|
5
|
+
import { getModule as Y, getModules as Z, getDocs as ee, updateModule as te } from "./api.js";
|
|
6
|
+
import { PermPanel as le } from "@since2006/components";
|
|
7
|
+
const de = /* @__PURE__ */ G({
|
|
8
|
+
__name: "ModuleEdit",
|
|
9
|
+
props: {
|
|
10
|
+
open: {
|
|
11
|
+
type: Boolean,
|
|
12
|
+
default: !1
|
|
13
|
+
},
|
|
14
|
+
moduleId: {
|
|
15
|
+
type: String,
|
|
16
|
+
required: !0
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
emits: ["update:open", "success", "cancel"],
|
|
20
|
+
setup(_, { emit: y }) {
|
|
21
|
+
const m = _, b = i(), f = i(!1), g = i([]), I = i([]), p = i([]), c = i({
|
|
22
|
+
icon: !1
|
|
23
|
+
}), w = {
|
|
24
|
+
id: "",
|
|
25
|
+
cateId: "",
|
|
26
|
+
parentId: "",
|
|
27
|
+
name: "",
|
|
28
|
+
icon: "",
|
|
29
|
+
path: "",
|
|
30
|
+
component: "",
|
|
31
|
+
seqNo: "",
|
|
32
|
+
remark: "",
|
|
33
|
+
state: "0",
|
|
34
|
+
target: !1,
|
|
35
|
+
permissionSummary: ""
|
|
36
|
+
}, l = H({ ...w }), x = {
|
|
37
|
+
name: [{ required: !0, message: "请填写模块名称" }],
|
|
38
|
+
seqNo: [{ required: !0, type: "number", message: "请填写数字类型顺序号" }]
|
|
39
|
+
}, v = y;
|
|
40
|
+
J(
|
|
41
|
+
() => m.open,
|
|
42
|
+
(a) => {
|
|
43
|
+
a && (D(), L());
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
const D = () => {
|
|
47
|
+
Object.assign(l, w), p.value = [];
|
|
48
|
+
}, O = (a, e) => e.componentOptions.children[0].text.toLowerCase().indexOf(a.toLowerCase()) >= 0, L = () => {
|
|
49
|
+
Y(m.moduleId).then((a) => {
|
|
50
|
+
const e = a.result;
|
|
51
|
+
e.target = e.target === 1, Object.assign(l, a.result), p.value = [...a.result.permissions.map((d) => d.id)];
|
|
52
|
+
}), Z().then((a) => {
|
|
53
|
+
const e = [];
|
|
54
|
+
k(e, a.result, [m.moduleId]), g.value = e;
|
|
55
|
+
}), ee().then((a) => {
|
|
56
|
+
I.value = F(a.result);
|
|
57
|
+
});
|
|
58
|
+
}, V = () => {
|
|
59
|
+
c.value.icon = !0;
|
|
60
|
+
}, E = (a) => {
|
|
61
|
+
c.value.icon = !1, l.icon = a;
|
|
62
|
+
}, M = () => {
|
|
63
|
+
b.value.validateFields().then(() => {
|
|
64
|
+
f.value = !0;
|
|
65
|
+
const a = {
|
|
66
|
+
...l,
|
|
67
|
+
target: l.target ? 1 : 0,
|
|
68
|
+
permIds: p.value,
|
|
69
|
+
seqNo: parseInt(l.seqNo)
|
|
70
|
+
};
|
|
71
|
+
te(a).then((e) => {
|
|
72
|
+
e.code === 200 && (W.success("编辑模块成功"), v("update:open", !1), v("success", e.result.id, e.result.parentId, e.result.srcParentId));
|
|
73
|
+
});
|
|
74
|
+
}).finally(() => {
|
|
75
|
+
f.value = !1;
|
|
76
|
+
});
|
|
77
|
+
}, B = () => {
|
|
78
|
+
v("update:open", !1);
|
|
79
|
+
}, F = (a) => a.map((e) => ({
|
|
80
|
+
value: e.id,
|
|
81
|
+
label: e.name
|
|
82
|
+
})), k = (a, e, d) => {
|
|
83
|
+
e && e.forEach((u) => {
|
|
84
|
+
if (!d.includes(u.id)) {
|
|
85
|
+
const s = { value: u.id, title: u.name, children: [] };
|
|
86
|
+
k(s.children, u.children, d), a.push(s);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
return (a, e) => {
|
|
91
|
+
const d = r("a-tree-select"), u = r("a-form-item"), s = r("a-input"), P = r("a-select"), R = r("a-input-number"), S = r("a-radio"), j = r("a-radio-group"), A = r("a-switch"), C = r("a-col"), T = r("a-row"), $ = r("a-form"), z = r("a-modal");
|
|
92
|
+
return U(), q(z, {
|
|
93
|
+
title: "编辑系统模块",
|
|
94
|
+
width: 800,
|
|
95
|
+
visible: _.open,
|
|
96
|
+
"mask-closable": !1,
|
|
97
|
+
"confirm-loading": f.value,
|
|
98
|
+
"destroy-on-close": "",
|
|
99
|
+
onOk: M,
|
|
100
|
+
onCancel: B
|
|
101
|
+
}, {
|
|
102
|
+
default: n(() => [
|
|
103
|
+
t($, {
|
|
104
|
+
ref_key: "formRef",
|
|
105
|
+
ref: b,
|
|
106
|
+
model: l,
|
|
107
|
+
rules: x,
|
|
108
|
+
"label-col": { span: 5 },
|
|
109
|
+
"wrapper-col": { span: 15 }
|
|
110
|
+
}, {
|
|
111
|
+
default: n(() => [
|
|
112
|
+
t(T, null, {
|
|
113
|
+
default: n(() => [
|
|
114
|
+
t(C, { span: 15 }, {
|
|
115
|
+
default: n(() => [
|
|
116
|
+
t(u, { label: "上级模块" }, {
|
|
117
|
+
default: n(() => [
|
|
118
|
+
t(d, {
|
|
119
|
+
value: l.parentId,
|
|
120
|
+
"onUpdate:value": e[0] || (e[0] = (o) => l.parentId = o),
|
|
121
|
+
treeData: g.value,
|
|
122
|
+
treeDefaultExpandAll: "",
|
|
123
|
+
allowClear: ""
|
|
124
|
+
}, null, 8, ["value", "treeData"])
|
|
125
|
+
]),
|
|
126
|
+
_: 1
|
|
127
|
+
}),
|
|
128
|
+
t(u, {
|
|
129
|
+
label: "模块名称",
|
|
130
|
+
name: "name"
|
|
131
|
+
}, {
|
|
132
|
+
default: n(() => [
|
|
133
|
+
t(s, {
|
|
134
|
+
value: l.name,
|
|
135
|
+
"onUpdate:value": e[1] || (e[1] = (o) => l.name = o),
|
|
136
|
+
placeholder: "模块名称"
|
|
137
|
+
}, null, 8, ["value"])
|
|
138
|
+
]),
|
|
139
|
+
_: 1
|
|
140
|
+
}),
|
|
141
|
+
t(u, { label: "文档类别" }, {
|
|
142
|
+
default: n(() => [
|
|
143
|
+
t(P, {
|
|
144
|
+
value: l.cateId,
|
|
145
|
+
"onUpdate:value": e[2] || (e[2] = (o) => l.cateId = o),
|
|
146
|
+
"show-search": "",
|
|
147
|
+
"option-filter-prop": "children",
|
|
148
|
+
"filter-option": O,
|
|
149
|
+
options: I.value,
|
|
150
|
+
allowClear: ""
|
|
151
|
+
}, null, 8, ["value", "options"])
|
|
152
|
+
]),
|
|
153
|
+
_: 1
|
|
154
|
+
}),
|
|
155
|
+
t(u, { label: "模块图标" }, {
|
|
156
|
+
default: n(() => [
|
|
157
|
+
t(s, {
|
|
158
|
+
value: l.icon,
|
|
159
|
+
"onUpdate:value": e[3] || (e[3] = (o) => l.icon = o),
|
|
160
|
+
placeholder: "点击右侧按钮选择图标"
|
|
161
|
+
}, {
|
|
162
|
+
prefix: n(() => [
|
|
163
|
+
(U(), q(K(l.icon), { style: { color: "#108b16" } }))
|
|
164
|
+
]),
|
|
165
|
+
addonAfter: n(() => [
|
|
166
|
+
t(N(X), { onClick: V })
|
|
167
|
+
]),
|
|
168
|
+
_: 1
|
|
169
|
+
}, 8, ["value"])
|
|
170
|
+
]),
|
|
171
|
+
_: 1
|
|
172
|
+
}),
|
|
173
|
+
t(u, {
|
|
174
|
+
label: "顺序号",
|
|
175
|
+
name: "seqNo"
|
|
176
|
+
}, {
|
|
177
|
+
default: n(() => [
|
|
178
|
+
t(R, {
|
|
179
|
+
value: l.seqNo,
|
|
180
|
+
"onUpdate:value": e[4] || (e[4] = (o) => l.seqNo = o),
|
|
181
|
+
placeholder: "顺序号"
|
|
182
|
+
}, null, 8, ["value"])
|
|
183
|
+
]),
|
|
184
|
+
_: 1
|
|
185
|
+
}),
|
|
186
|
+
t(u, { label: "访问路径" }, {
|
|
187
|
+
default: n(() => [
|
|
188
|
+
t(s, {
|
|
189
|
+
value: l.path,
|
|
190
|
+
"onUpdate:value": e[5] || (e[5] = (o) => l.path = o),
|
|
191
|
+
placeholder: "访问路径"
|
|
192
|
+
}, null, 8, ["value"])
|
|
193
|
+
]),
|
|
194
|
+
_: 1
|
|
195
|
+
}),
|
|
196
|
+
t(u, { label: "模板文件" }, {
|
|
197
|
+
default: n(() => [
|
|
198
|
+
t(s, {
|
|
199
|
+
value: l.component,
|
|
200
|
+
"onUpdate:value": e[6] || (e[6] = (o) => l.component = o),
|
|
201
|
+
placeholder: "@/epp/module/viewName"
|
|
202
|
+
}, null, 8, ["value"])
|
|
203
|
+
]),
|
|
204
|
+
_: 1
|
|
205
|
+
}),
|
|
206
|
+
t(u, { label: "是否显示" }, {
|
|
207
|
+
default: n(() => [
|
|
208
|
+
t(j, {
|
|
209
|
+
value: l.state,
|
|
210
|
+
"onUpdate:value": e[7] || (e[7] = (o) => l.state = o)
|
|
211
|
+
}, {
|
|
212
|
+
default: n(() => [
|
|
213
|
+
t(S, { value: "1" }, {
|
|
214
|
+
default: n(() => e[12] || (e[12] = [
|
|
215
|
+
h("显示")
|
|
216
|
+
])),
|
|
217
|
+
_: 1
|
|
218
|
+
}),
|
|
219
|
+
t(S, { value: "0" }, {
|
|
220
|
+
default: n(() => e[13] || (e[13] = [
|
|
221
|
+
h("隐藏")
|
|
222
|
+
])),
|
|
223
|
+
_: 1
|
|
224
|
+
})
|
|
225
|
+
]),
|
|
226
|
+
_: 1
|
|
227
|
+
}, 8, ["value"])
|
|
228
|
+
]),
|
|
229
|
+
_: 1
|
|
230
|
+
}),
|
|
231
|
+
t(u, { label: "打开方式" }, {
|
|
232
|
+
default: n(() => [
|
|
233
|
+
t(A, {
|
|
234
|
+
checked: l.target,
|
|
235
|
+
"onUpdate:checked": e[8] || (e[8] = (o) => l.target = o),
|
|
236
|
+
"checked-children": "新开窗口",
|
|
237
|
+
"un-checked-children": "内部窗口"
|
|
238
|
+
}, null, 8, ["checked"])
|
|
239
|
+
]),
|
|
240
|
+
_: 1
|
|
241
|
+
}),
|
|
242
|
+
t(u, { label: "描述" }, {
|
|
243
|
+
default: n(() => [
|
|
244
|
+
t(s, {
|
|
245
|
+
value: l.remark,
|
|
246
|
+
"onUpdate:value": e[9] || (e[9] = (o) => l.remark = o),
|
|
247
|
+
placeholder: "描述"
|
|
248
|
+
}, null, 8, ["value"])
|
|
249
|
+
]),
|
|
250
|
+
_: 1
|
|
251
|
+
})
|
|
252
|
+
]),
|
|
253
|
+
_: 1
|
|
254
|
+
}),
|
|
255
|
+
t(C, { span: 9 }, {
|
|
256
|
+
default: n(() => [
|
|
257
|
+
t(N(le), {
|
|
258
|
+
modelValue: p.value,
|
|
259
|
+
"onUpdate:modelValue": e[10] || (e[10] = (o) => p.value = o)
|
|
260
|
+
}, null, 8, ["modelValue"])
|
|
261
|
+
]),
|
|
262
|
+
_: 1
|
|
263
|
+
})
|
|
264
|
+
]),
|
|
265
|
+
_: 1
|
|
266
|
+
})
|
|
267
|
+
]),
|
|
268
|
+
_: 1
|
|
269
|
+
}, 8, ["model"]),
|
|
270
|
+
t(Q, {
|
|
271
|
+
visible: c.value.icon,
|
|
272
|
+
onSuccess: E,
|
|
273
|
+
onCancel: e[11] || (e[11] = (o) => c.value.icon = !1)
|
|
274
|
+
}, null, 8, ["visible"])
|
|
275
|
+
]),
|
|
276
|
+
_: 1
|
|
277
|
+
}, 8, ["visible", "confirm-loading"]);
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
export {
|
|
282
|
+
de as default
|
|
283
|
+
};
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { defineComponent as J, ref as f, reactive as T, resolveComponent as d, openBlock as w, createElementBlock as Q, createVNode as n, withCtx as a, createElementVNode as v, unref as y, createTextVNode as g, withDirectives as x, vShow as A, createBlock as W, resolveDynamicComponent as X } from "vue";
|
|
2
|
+
import { message as Y } from "ant-design-vue";
|
|
3
|
+
import { getModulesNoCache as C, getModule as Z, deleteModule as ee } from "./api.js";
|
|
4
|
+
import { mapTreeData as k } from "./utils.js";
|
|
5
|
+
import { PlusOutlined as K, EditOutlined as oe, DeleteOutlined as te } from "@ant-design/icons-vue";
|
|
6
|
+
import ne from "./ModuleDetail.vue.js";
|
|
7
|
+
import le from "./ModuleAdd.vue.js";
|
|
8
|
+
import ae from "./ModuleEdit.vue.js";
|
|
9
|
+
const de = { class: "ant-pro-table-list-toolbar" }, se = { class: "ant-pro-table-list-toolbar-container" }, ue = { class: "ant-pro-table-list-toolbar-right" }, ge = /* @__PURE__ */ J({
|
|
10
|
+
__name: "ModuleIndex",
|
|
11
|
+
setup(re) {
|
|
12
|
+
const L = f(), s = f([]), b = f([]), r = f([]), u = T({
|
|
13
|
+
id: "",
|
|
14
|
+
cateId: "",
|
|
15
|
+
parentId: "",
|
|
16
|
+
icon: "",
|
|
17
|
+
component: "",
|
|
18
|
+
path: "",
|
|
19
|
+
seqNo: "",
|
|
20
|
+
remark: "",
|
|
21
|
+
permsSummary: ""
|
|
22
|
+
}), E = f(!0), i = T({
|
|
23
|
+
openAdd: !1,
|
|
24
|
+
openEdit: !1
|
|
25
|
+
}), M = f(!1), O = () => {
|
|
26
|
+
C().then((o) => {
|
|
27
|
+
r.value = k(o.result), h(r.value[0].key);
|
|
28
|
+
});
|
|
29
|
+
}, N = (o) => {
|
|
30
|
+
s.value = o;
|
|
31
|
+
}, B = (o) => new Promise((e) => {
|
|
32
|
+
if (o.dataRef.children) {
|
|
33
|
+
e("当前节点没有子模块");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
C(o.dataRef.key).then((t) => {
|
|
37
|
+
o.dataRef.children = k(t.result), r.value = [...r.value], e("获取模块数据成功");
|
|
38
|
+
});
|
|
39
|
+
}), V = (o, e) => {
|
|
40
|
+
const t = e.node.dataRef, l = s.value.includes(t.key);
|
|
41
|
+
if (t.isLeaf || (e.selected ? l || s.value.push(t.key) : l && (s.value = s.value.filter((c) => c !== t.key))), o.length === 0)
|
|
42
|
+
return;
|
|
43
|
+
const p = o[0];
|
|
44
|
+
h(p);
|
|
45
|
+
}, h = (o) => {
|
|
46
|
+
E.value = !0, Z(o).then((e) => {
|
|
47
|
+
Object.assign(u, e.result), E.value = !1;
|
|
48
|
+
}).catch((e) => {
|
|
49
|
+
console.log(e);
|
|
50
|
+
});
|
|
51
|
+
}, U = () => {
|
|
52
|
+
M.value = !0, i.openAdd = !0;
|
|
53
|
+
}, j = () => {
|
|
54
|
+
M.value = !1, i.openAdd = !0;
|
|
55
|
+
}, q = (o) => {
|
|
56
|
+
m(o);
|
|
57
|
+
}, P = () => {
|
|
58
|
+
i.openEdit = !0;
|
|
59
|
+
}, $ = (o, e, t) => {
|
|
60
|
+
h(o), e === t || m(t), m(e);
|
|
61
|
+
}, z = () => {
|
|
62
|
+
ee(u.id).then((o) => {
|
|
63
|
+
Y.success("删除成功"), m(o.result.parentId);
|
|
64
|
+
});
|
|
65
|
+
}, m = (o) => {
|
|
66
|
+
C(o).then((e) => {
|
|
67
|
+
o ? D(r.value, o, k(e.result)) : r.value = k(e.result);
|
|
68
|
+
});
|
|
69
|
+
}, D = (o, e, t) => {
|
|
70
|
+
o.forEach((l) => {
|
|
71
|
+
if (l.key === e) {
|
|
72
|
+
l.isLeaf = t.length === 0;
|
|
73
|
+
const p = S([l], 0);
|
|
74
|
+
b.value = b.value.filter((c) => !p.includes(c)), s.value = s.value.filter((c) => !p.includes(c)), l.children = t;
|
|
75
|
+
} else
|
|
76
|
+
l.children && D(l.children, e, t);
|
|
77
|
+
});
|
|
78
|
+
}, S = (o, e) => {
|
|
79
|
+
let t = [];
|
|
80
|
+
return o.forEach((l) => {
|
|
81
|
+
e > 0 && t.push(l.key), l.children && (t = t.concat(S(l.children, ++e)));
|
|
82
|
+
}), t;
|
|
83
|
+
};
|
|
84
|
+
return O(), (o, e) => {
|
|
85
|
+
const t = d("a-button"), l = d("a-popconfirm"), p = d("a-button-group"), c = d("a-space"), F = d("a-tree"), R = d("a-col"), G = d("a-skeleton"), H = d("a-row"), I = d("a-card");
|
|
86
|
+
return w(), Q("div", null, [
|
|
87
|
+
n(I, {
|
|
88
|
+
"body-style": { padding: "0 20px 20px 10px" },
|
|
89
|
+
ref_key: "fusRef",
|
|
90
|
+
ref: L
|
|
91
|
+
}, {
|
|
92
|
+
default: a(() => [
|
|
93
|
+
v("div", de, [
|
|
94
|
+
v("div", se, [
|
|
95
|
+
e[6] || (e[6] = v("div", { class: "ant-pro-table-list-toolbar-left" }, [
|
|
96
|
+
v("div", { class: "ant-pro-table-list-toolbar-title" }, "模块配置")
|
|
97
|
+
], -1)),
|
|
98
|
+
v("div", ue, [
|
|
99
|
+
n(c, { align: "center" }, {
|
|
100
|
+
default: a(() => [
|
|
101
|
+
n(p, null, {
|
|
102
|
+
default: a(() => [
|
|
103
|
+
n(t, { onClick: U }, {
|
|
104
|
+
default: a(() => [
|
|
105
|
+
n(y(K)),
|
|
106
|
+
e[2] || (e[2] = g(" 添加根模块 "))
|
|
107
|
+
]),
|
|
108
|
+
_: 1
|
|
109
|
+
}),
|
|
110
|
+
x(n(t, { onClick: j }, {
|
|
111
|
+
default: a(() => [
|
|
112
|
+
n(y(K)),
|
|
113
|
+
e[3] || (e[3] = g(" 添加子模块 "))
|
|
114
|
+
]),
|
|
115
|
+
_: 1
|
|
116
|
+
}, 512), [
|
|
117
|
+
[A, u.id]
|
|
118
|
+
]),
|
|
119
|
+
x(n(t, { onClick: P }, {
|
|
120
|
+
default: a(() => [
|
|
121
|
+
n(y(oe)),
|
|
122
|
+
e[4] || (e[4] = g(" 修改模块 "))
|
|
123
|
+
]),
|
|
124
|
+
_: 1
|
|
125
|
+
}, 512), [
|
|
126
|
+
[A, u.id]
|
|
127
|
+
]),
|
|
128
|
+
n(l, {
|
|
129
|
+
title: "是否确认删除模块?",
|
|
130
|
+
onConfirm: z
|
|
131
|
+
}, {
|
|
132
|
+
default: a(() => [
|
|
133
|
+
x(n(t, { danger: "" }, {
|
|
134
|
+
default: a(() => [
|
|
135
|
+
n(y(te)),
|
|
136
|
+
e[5] || (e[5] = g(" 删除模块 "))
|
|
137
|
+
]),
|
|
138
|
+
_: 1
|
|
139
|
+
}, 512), [
|
|
140
|
+
[A, u.id]
|
|
141
|
+
])
|
|
142
|
+
]),
|
|
143
|
+
_: 1
|
|
144
|
+
})
|
|
145
|
+
]),
|
|
146
|
+
_: 1
|
|
147
|
+
})
|
|
148
|
+
]),
|
|
149
|
+
_: 1
|
|
150
|
+
})
|
|
151
|
+
])
|
|
152
|
+
])
|
|
153
|
+
]),
|
|
154
|
+
n(H, null, {
|
|
155
|
+
default: a(() => [
|
|
156
|
+
n(R, {
|
|
157
|
+
sm: 5,
|
|
158
|
+
md: 4
|
|
159
|
+
}, {
|
|
160
|
+
default: a(() => [
|
|
161
|
+
n(F, {
|
|
162
|
+
showIcon: !0,
|
|
163
|
+
expandedKeys: s.value,
|
|
164
|
+
loadedKeys: b.value,
|
|
165
|
+
treeData: r.value,
|
|
166
|
+
onExpand: N,
|
|
167
|
+
loadData: B,
|
|
168
|
+
onSelect: V
|
|
169
|
+
}, {
|
|
170
|
+
icon: a((_) => [
|
|
171
|
+
(w(), W(X(_.iconName)))
|
|
172
|
+
]),
|
|
173
|
+
_: 1
|
|
174
|
+
}, 8, ["expandedKeys", "loadedKeys", "treeData"])
|
|
175
|
+
]),
|
|
176
|
+
_: 1
|
|
177
|
+
}),
|
|
178
|
+
n(R, {
|
|
179
|
+
sm: 19,
|
|
180
|
+
md: 20
|
|
181
|
+
}, {
|
|
182
|
+
default: a(() => [
|
|
183
|
+
n(G, { loading: E.value }, {
|
|
184
|
+
default: a(() => [
|
|
185
|
+
n(ne, { module: u }, null, 8, ["module"])
|
|
186
|
+
]),
|
|
187
|
+
_: 1
|
|
188
|
+
}, 8, ["loading"])
|
|
189
|
+
]),
|
|
190
|
+
_: 1
|
|
191
|
+
})
|
|
192
|
+
]),
|
|
193
|
+
_: 1
|
|
194
|
+
})
|
|
195
|
+
]),
|
|
196
|
+
_: 1
|
|
197
|
+
}, 512),
|
|
198
|
+
n(le, {
|
|
199
|
+
ref: "moduleAdd",
|
|
200
|
+
open: i.openAdd,
|
|
201
|
+
"onUpdate:open": e[0] || (e[0] = (_) => i.openAdd = _),
|
|
202
|
+
"parent-id": M.value ? null : u.id,
|
|
203
|
+
onSuccess: q
|
|
204
|
+
}, null, 8, ["open", "parent-id"]),
|
|
205
|
+
n(ae, {
|
|
206
|
+
ref: "moduleEdit",
|
|
207
|
+
open: i.openEdit,
|
|
208
|
+
"onUpdate:open": e[1] || (e[1] = (_) => i.openEdit = _),
|
|
209
|
+
"module-id": u.id,
|
|
210
|
+
onSuccess: $
|
|
211
|
+
}, null, 8, ["open", "module-id"])
|
|
212
|
+
]);
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
export {
|
|
217
|
+
ge as default
|
|
218
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { http as t } from "@since2006/utils";
|
|
2
|
+
const l = () => t.get("/api/1/workflow/cate/get_doc_list.json"), d = (e) => t.post("/api/v2/module/create_module", e), r = (e) => t.get("/api/v2/module/get_module", { params: { id: e } }), s = () => t.get("/api/v2/module/get_cache_modules"), a = (e = null) => {
|
|
3
|
+
const o = {};
|
|
4
|
+
return e && (o.parentId = e), t.get("/api/1/module/get_modules_nocache.json", { params: o });
|
|
5
|
+
}, n = (e) => t.post("/api/v2/module/delete_module", { id: e }), c = (e) => t.post("/api/v2/module/update_module", e);
|
|
6
|
+
export {
|
|
7
|
+
d as createModule,
|
|
8
|
+
n as deleteModule,
|
|
9
|
+
l as getDocs,
|
|
10
|
+
r as getModule,
|
|
11
|
+
s as getModules,
|
|
12
|
+
a as getModulesNoCache,
|
|
13
|
+
c as updateModule
|
|
14
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { defineComponent as i, ref as r, resolveComponent as m, openBlock as f, createBlock as p, withCtx as u, createVNode as d, unref as _ } from "vue";
|
|
2
|
+
import { IconSelect as v } from "@since2006/components";
|
|
3
|
+
const x = /* @__PURE__ */ i({
|
|
4
|
+
__name: "IconSelectorModal",
|
|
5
|
+
props: {
|
|
6
|
+
visible: {
|
|
7
|
+
default: !1
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
emits: ["success", "cancel"],
|
|
11
|
+
setup(c, { emit: n }) {
|
|
12
|
+
const t = r(""), o = n, s = (e) => {
|
|
13
|
+
t.value = e, o("success", e);
|
|
14
|
+
}, l = () => {
|
|
15
|
+
o("cancel");
|
|
16
|
+
};
|
|
17
|
+
return (e, h) => {
|
|
18
|
+
const a = m("a-modal");
|
|
19
|
+
return f(), p(a, {
|
|
20
|
+
visible: c.visible,
|
|
21
|
+
width: 900,
|
|
22
|
+
footer: null,
|
|
23
|
+
onCancel: l
|
|
24
|
+
}, {
|
|
25
|
+
default: u(() => [
|
|
26
|
+
d(_(v), {
|
|
27
|
+
"class-name": "icon-selector",
|
|
28
|
+
"icon-font-size": "24px",
|
|
29
|
+
onChange: s
|
|
30
|
+
})
|
|
31
|
+
]),
|
|
32
|
+
_: 1
|
|
33
|
+
}, 8, ["visible"]);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
export {
|
|
38
|
+
x as default
|
|
39
|
+
};
|
package/dist/es/src/index.js
CHANGED
package/dist/es/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.large-text[data-v-1f96ab02]{font-size:16px}.float-right[data-v-1f96ab02]{float:right}.margin-block[data-v-1f96ab02]{margin-top:14px}
|
|
1
|
+
.large-text[data-v-1f96ab02]{font-size:16px}.float-right[data-v-1f96ab02]{float:right}.margin-block[data-v-1f96ab02]{margin-top:14px}.icon-selector deep(ul) li.active[data-v-33554e43],.icon-selector deep(ul) li[data-v-33554e43]:hover{border-radius:2px;border-color:#4a4a48;background-color:#4a4a48;color:#fff;transition:all .3s;box-shadow:none}.icon-selector deep(ul) i[data-v-33554e43]{font-size:1.5rem;border:1px solid #f1f1f1;padding:.02rem;margin:.03rem;cursor:pointer}.ant-form[data-v-cd92ee31]{padding-top:20px}.permission-tree[data-v-cd92ee31],.permission-tree[data-v-266daf0e]{overflow-y:auto;overflow-x:hidden;margin-top:10px}
|
package/dist/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./src/index.js"),u=require("./src/app/system/index.js"),i={install:t=>{for(let n in e)t.use(e[n])}};exports.StatusIndex=u.StatusIndex;exports.default=i;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./src/index.js"),u=require("./src/app/system/index.js"),d=require("./src/app/module/index.js"),i={install:t=>{for(let n in e)t.use(e[n])}};exports.StatusIndex=u.StatusIndex;exports.ModuleIndex=d.ModuleIndex;exports.default=i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./ModuleAdd.vue2.js");;/* empty css */const u=require("../../../_virtual/_plugin-vue_export-helper.js"),t=u.default(e.default,[["__scopeId","data-v-cd92ee31"]]);exports.default=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),P=require("./icon/IconSelectorModal.vue.js"),R=require("ant-design-vue"),j=require("@ant-design/icons-vue"),m=require("./api.js"),E=require("@since2006/components"),$=e.defineComponent({__name:"ModuleAdd",props:{open:{type:Boolean,default:!1},parentId:{type:String,default:null}},emits:["update:open","success","cancel"],setup(v,{emit:x}){const c=v,f=e.ref(),s=e.ref([]),i=e.ref(!1),C=e.ref([]),N=e.ref([]),u=e.ref({icon:!1}),_={id:"",cateId:"",parentId:"",name:"",icon:"",path:"",component:"",seqNo:"",remark:"",state:"0",target:!1,permissionSummary:""},o=e.reactive({..._}),b={name:[{required:!0,message:"请填写模块名称"}],seqNo:[{required:!0,type:"number",message:"请填写数字类型顺序号"}]},p=x;e.watch(()=>c.open,l=>{l&&(g(),q())});const g=()=>{Object.assign(o,_),s.value=[]},k=(l,t)=>t.componentOptions.children[0].text.toLowerCase().indexOf(l.toLowerCase())>=0,q=()=>{m.getModules().then(l=>{const t=[];V(t,l.result,[]),C.value=t,c.parentId&&(o.parentId=c.parentId)}),m.getDocs().then(l=>{N.value=D(l.result)})},I=()=>{u.value.icon=!0},S=l=>{u.value.icon=!1,o.icon=l},U=()=>{f.value.validateFields().then(()=>{i.value=!0;const l={...o,target:o.target?1:0,permIds:s.value,seqNo:parseInt(o.seqNo)};m.createModule(l).then(t=>{R.message.success("添加模块成功"),p("update:open",!1),p("success",t.result.parentId)})}).finally(l=>{i.value=!1})},y=()=>{p("update:open",!1)},V=(l,t,d)=>{t&&t.forEach(n=>{if(!d.includes(n.id)){const r={value:n.id,title:n.name,children:[]};V(r.children,n.children,d),l.push(r)}})},D=l=>l.map(t=>({value:t.id,label:t.name}));return(l,t)=>{const d=e.resolveComponent("a-tree-select"),n=e.resolveComponent("a-form-item"),r=e.resolveComponent("a-input"),O=e.resolveComponent("a-select"),L=e.resolveComponent("a-input-number"),w=e.resolveComponent("a-radio"),M=e.resolveComponent("a-radio-group"),B=e.resolveComponent("a-switch"),h=e.resolveComponent("a-col"),A=e.resolveComponent("a-row"),T=e.resolveComponent("a-form"),F=e.resolveComponent("a-modal");return e.openBlock(),e.createBlock(F,{title:"添加系统模块",width:800,visible:v.open,"mask-closable":!1,"confirm-loading":i.value,"destroy-on-close":"",onOk:U,onCancel:y},{default:e.withCtx(()=>[e.createVNode(T,{ref_key:"formRef",ref:f,model:o,rules:b,"label-col":{span:5},"wrapper-col":{span:15}},{default:e.withCtx(()=>[e.createVNode(A,null,{default:e.withCtx(()=>[e.createVNode(h,{span:15},{default:e.withCtx(()=>[e.createVNode(n,{label:"上级模块"},{default:e.withCtx(()=>[e.createVNode(d,{value:o.parentId,"onUpdate:value":t[0]||(t[0]=a=>o.parentId=a),treeData:C.value,treeDefaultExpandAll:"",allowClear:""},null,8,["value","treeData"])]),_:1}),e.createVNode(n,{label:"模块名称",name:"name"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.name,"onUpdate:value":t[1]||(t[1]=a=>o.name=a),placeholder:"模块名称"},null,8,["value"])]),_:1}),e.createVNode(n,{label:"文档类别"},{default:e.withCtx(()=>[e.createVNode(O,{value:o.cateId,"onUpdate:value":t[2]||(t[2]=a=>o.cateId=a),"show-search":"","option-filter-prop":"children","filter-option":k,options:N.value,allowClear:""},null,8,["value","options"])]),_:1}),e.createVNode(n,{label:"模块图标"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.icon,"onUpdate:value":t[3]||(t[3]=a=>o.icon=a),placeholder:"点击右侧按钮选择图标"},{prefix:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.icon),{style:{color:"#108b16"}}))]),addonAfter:e.withCtx(()=>[e.createVNode(e.unref(j.SearchOutlined),{onClick:I})]),_:1},8,["value"])]),_:1}),e.createVNode(n,{label:"顺序号",name:"seqNo"},{default:e.withCtx(()=>[e.createVNode(L,{value:o.seqNo,"onUpdate:value":t[4]||(t[4]=a=>o.seqNo=a),placeholder:"顺序号"},null,8,["value"])]),_:1}),e.createVNode(n,{label:"访问路径"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.path,"onUpdate:value":t[5]||(t[5]=a=>o.path=a),placeholder:"访问路径"},null,8,["value"])]),_:1}),e.createVNode(n,{label:"模板文件"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.component,"onUpdate:value":t[6]||(t[6]=a=>o.component=a),placeholder:"@/epp/module/viewName"},null,8,["value"])]),_:1}),e.createVNode(n,{label:"是否显示"},{default:e.withCtx(()=>[e.createVNode(M,{value:o.state,"onUpdate:value":t[7]||(t[7]=a=>o.state=a)},{default:e.withCtx(()=>[e.createVNode(w,{value:"1"},{default:e.withCtx(()=>t[12]||(t[12]=[e.createTextVNode("显示")])),_:1}),e.createVNode(w,{value:"0"},{default:e.withCtx(()=>t[13]||(t[13]=[e.createTextVNode("隐藏")])),_:1})]),_:1},8,["value"])]),_:1}),e.createVNode(n,{label:"打开方式"},{default:e.withCtx(()=>[e.createVNode(B,{checked:o.target,"onUpdate:checked":t[8]||(t[8]=a=>o.target=a),"checked-children":"新开窗口","un-checked-children":"内部窗口"},null,8,["checked"])]),_:1}),e.createVNode(n,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.remark,"onUpdate:value":t[9]||(t[9]=a=>o.remark=a),placeholder:"描述"},null,8,["value"])]),_:1})]),_:1}),e.createVNode(h,{span:9},{default:e.withCtx(()=>[e.createVNode(e.unref(E.PermPanel),{modelValue:s.value,"onUpdate:modelValue":t[10]||(t[10]=a=>s.value=a)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["model"]),e.createVNode(P.default,{visible:u.value.icon,onSuccess:S,onCancel:t[11]||(t[11]=a=>u.value.icon=!1)},null,8,["visible"])]),_:1},8,["visible","confirm-loading"])}}});exports.default=$;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=require("@since2006/components"),u={style:{color:"#a6a6a6","margin-left":"4px"}},i=e.defineComponent({__name:"ModuleDetail",props:{module:{}},setup(c){return(t,l)=>{const o=e.resolveComponent("a-descriptions-item"),a=e.resolveComponent("a-tag"),d=e.resolveComponent("a-descriptions");return e.openBlock(),e.createBlock(d,{bordered:"",column:1,labelStyle:{width:"140px",textAlign:"center"}},{default:e.withCtx(()=>[e.createVNode(o,{label:"模块名称"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.module.name),1)]),_:1}),e.createVNode(o,{label:"文档类别"},{default:e.withCtx(()=>{var r;return[e.createTextVNode(e.toDisplayString((r=t.module.cate)==null?void 0:r.name),1)]}),_:1}),e.createVNode(o,{label:"模块图标"},{default:e.withCtx(()=>[t.module.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.module.icon),{key:0,style:{"font-size":"16px"}})):e.createCommentVNode("",!0),e.createElementVNode("span",u,e.toDisplayString(t.module.icon),1)]),_:1}),e.createVNode(o,{label:"访问路径"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.module.path)+" ",1),t.module.path?(e.openBlock(),e.createBlock(e.unref(n.ClickCopy),{key:0,value:t.module.path},null,8,["value"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(o,{label:"模板文件"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.module.component)+" ",1),t.module.component?(e.openBlock(),e.createBlock(e.unref(n.ClickCopy),{key:0,value:t.module.component},null,8,["value"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(o,{label:"打开方式"},{default:e.withCtx(()=>[t.module.target!=null?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.module.target===1?(e.openBlock(),e.createBlock(a,{key:0,color:"red"},{default:e.withCtx(()=>l[0]||(l[0]=[e.createTextVNode("新开窗口")])),_:1})):(e.openBlock(),e.createBlock(a,{key:1},{default:e.withCtx(()=>l[1]||(l[1]=[e.createTextVNode("默认")])),_:1}))],64)):e.createCommentVNode("",!0)]),_:1}),e.createVNode(o,{label:"排序"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.module.seqNo),1)]),_:1}),e.createVNode(o,{label:"是否显示"},{default:e.withCtx(()=>[t.module.state?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.module.state==="1"?(e.openBlock(),e.createBlock(a,{key:0,color:"green"},{default:e.withCtx(()=>l[2]||(l[2]=[e.createTextVNode("显示")])),_:1})):(e.openBlock(),e.createBlock(a,{key:1,color:"red"},{default:e.withCtx(()=>l[3]||(l[3]=[e.createTextVNode("隐藏")])),_:1}))],64)):e.createCommentVNode("",!0)]),_:1}),e.createVNode(o,{label:"访问权限"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.module.permsSummary),1)]),_:1}),e.createVNode(o,{label:"描述"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.module.remark),1)]),_:1})]),_:1})}}});exports.default=i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./ModuleDetail.vue.js");exports.default=e.default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./ModuleEdit.vue2.js");;/* empty css */const t=require("../../../_virtual/_plugin-vue_export-helper.js"),u=t.default(e.default,[["__scopeId","data-v-266daf0e"]]);exports.default=u;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),j=require("./icon/IconSelectorModal.vue.js"),F=require("ant-design-vue"),R=require("@ant-design/icons-vue"),c=require("./api.js"),A=require("@since2006/components"),$=e.defineComponent({__name:"ModuleEdit",props:{open:{type:Boolean,default:!1},moduleId:{type:String,required:!0}},emits:["update:open","success","cancel"],setup(v,{emit:b}){const i=v,f=e.ref(),p=e.ref(!1),C=e.ref([]),N=e.ref([]),s=e.ref([]),d=e.ref({icon:!1}),_={id:"",cateId:"",parentId:"",name:"",icon:"",path:"",component:"",seqNo:"",remark:"",state:"0",target:!1,permissionSummary:""},o=e.reactive({..._}),x={name:[{required:!0,message:"请填写模块名称"}],seqNo:[{required:!0,type:"number",message:"请填写数字类型顺序号"}]},m=b;e.watch(()=>i.open,l=>{l&&(g(),k())});const g=()=>{Object.assign(o,_),s.value=[]},q=(l,t)=>t.componentOptions.children[0].text.toLowerCase().indexOf(l.toLowerCase())>=0,k=()=>{c.getModule(i.moduleId).then(l=>{const t=l.result;t.target=t.target===1,Object.assign(o,l.result),s.value=[...l.result.permissions.map(u=>u.id)]}),c.getModules().then(l=>{const t=[];V(t,l.result,[i.moduleId]),C.value=t}),c.getDocs().then(l=>{N.value=D(l.result)})},I=()=>{d.value.icon=!0},S=l=>{d.value.icon=!1,o.icon=l},U=()=>{f.value.validateFields().then(()=>{p.value=!0;const l={...o,target:o.target?1:0,permIds:s.value,seqNo:parseInt(o.seqNo)};c.updateModule(l).then(t=>{t.code===200&&(F.message.success("编辑模块成功"),m("update:open",!1),m("success",t.result.id,t.result.parentId,t.result.srcParentId))})}).finally(()=>{p.value=!1})},y=()=>{m("update:open",!1)},D=l=>l.map(t=>({value:t.id,label:t.name})),V=(l,t,u)=>{t&&t.forEach(n=>{if(!u.includes(n.id)){const r={value:n.id,title:n.name,children:[]};V(r.children,n.children,u),l.push(r)}})};return(l,t)=>{const u=e.resolveComponent("a-tree-select"),n=e.resolveComponent("a-form-item"),r=e.resolveComponent("a-input"),O=e.resolveComponent("a-select"),M=e.resolveComponent("a-input-number"),w=e.resolveComponent("a-radio"),L=e.resolveComponent("a-radio-group"),B=e.resolveComponent("a-switch"),h=e.resolveComponent("a-col"),E=e.resolveComponent("a-row"),P=e.resolveComponent("a-form"),T=e.resolveComponent("a-modal");return e.openBlock(),e.createBlock(T,{title:"编辑系统模块",width:800,visible:v.open,"mask-closable":!1,"confirm-loading":p.value,"destroy-on-close":"",onOk:U,onCancel:y},{default:e.withCtx(()=>[e.createVNode(P,{ref_key:"formRef",ref:f,model:o,rules:x,"label-col":{span:5},"wrapper-col":{span:15}},{default:e.withCtx(()=>[e.createVNode(E,null,{default:e.withCtx(()=>[e.createVNode(h,{span:15},{default:e.withCtx(()=>[e.createVNode(n,{label:"上级模块"},{default:e.withCtx(()=>[e.createVNode(u,{value:o.parentId,"onUpdate:value":t[0]||(t[0]=a=>o.parentId=a),treeData:C.value,treeDefaultExpandAll:"",allowClear:""},null,8,["value","treeData"])]),_:1}),e.createVNode(n,{label:"模块名称",name:"name"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.name,"onUpdate:value":t[1]||(t[1]=a=>o.name=a),placeholder:"模块名称"},null,8,["value"])]),_:1}),e.createVNode(n,{label:"文档类别"},{default:e.withCtx(()=>[e.createVNode(O,{value:o.cateId,"onUpdate:value":t[2]||(t[2]=a=>o.cateId=a),"show-search":"","option-filter-prop":"children","filter-option":q,options:N.value,allowClear:""},null,8,["value","options"])]),_:1}),e.createVNode(n,{label:"模块图标"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.icon,"onUpdate:value":t[3]||(t[3]=a=>o.icon=a),placeholder:"点击右侧按钮选择图标"},{prefix:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.icon),{style:{color:"#108b16"}}))]),addonAfter:e.withCtx(()=>[e.createVNode(e.unref(R.SearchOutlined),{onClick:I})]),_:1},8,["value"])]),_:1}),e.createVNode(n,{label:"顺序号",name:"seqNo"},{default:e.withCtx(()=>[e.createVNode(M,{value:o.seqNo,"onUpdate:value":t[4]||(t[4]=a=>o.seqNo=a),placeholder:"顺序号"},null,8,["value"])]),_:1}),e.createVNode(n,{label:"访问路径"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.path,"onUpdate:value":t[5]||(t[5]=a=>o.path=a),placeholder:"访问路径"},null,8,["value"])]),_:1}),e.createVNode(n,{label:"模板文件"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.component,"onUpdate:value":t[6]||(t[6]=a=>o.component=a),placeholder:"@/epp/module/viewName"},null,8,["value"])]),_:1}),e.createVNode(n,{label:"是否显示"},{default:e.withCtx(()=>[e.createVNode(L,{value:o.state,"onUpdate:value":t[7]||(t[7]=a=>o.state=a)},{default:e.withCtx(()=>[e.createVNode(w,{value:"1"},{default:e.withCtx(()=>t[12]||(t[12]=[e.createTextVNode("显示")])),_:1}),e.createVNode(w,{value:"0"},{default:e.withCtx(()=>t[13]||(t[13]=[e.createTextVNode("隐藏")])),_:1})]),_:1},8,["value"])]),_:1}),e.createVNode(n,{label:"打开方式"},{default:e.withCtx(()=>[e.createVNode(B,{checked:o.target,"onUpdate:checked":t[8]||(t[8]=a=>o.target=a),"checked-children":"新开窗口","un-checked-children":"内部窗口"},null,8,["checked"])]),_:1}),e.createVNode(n,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(r,{value:o.remark,"onUpdate:value":t[9]||(t[9]=a=>o.remark=a),placeholder:"描述"},null,8,["value"])]),_:1})]),_:1}),e.createVNode(h,{span:9},{default:e.withCtx(()=>[e.createVNode(e.unref(A.PermPanel),{modelValue:s.value,"onUpdate:modelValue":t[10]||(t[10]=a=>s.value=a)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["model"]),e.createVNode(j.default,{visible:d.value.icon,onSuccess:S,onCancel:t[11]||(t[11]=a=>d.value.icon=!1)},null,8,["visible"])]),_:1},8,["visible","confirm-loading"])}}});exports.default=$;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),B=require("ant-design-vue"),f=require("./api.js"),m=require("./utils.js"),v=require("@ant-design/icons-vue"),P=require("./ModuleDetail.vue.js"),j=require("./ModuleAdd.vue.js"),U=require("./ModuleEdit.vue.js"),z={class:"ant-pro-table-list-toolbar"},F={class:"ant-pro-table-list-toolbar-container"},G={class:"ant-pro-table-list-toolbar-right"},H=e.defineComponent({__name:"ModuleIndex",setup(I){const w=e.ref(),a=e.ref([]),_=e.ref([]),r=e.ref([]),d=e.reactive({id:"",cateId:"",parentId:"",icon:"",component:"",path:"",seqNo:"",remark:"",permsSummary:""}),h=e.ref(!0),s=e.reactive({openAdd:!1,openEdit:!1}),C=e.ref(!1),y=()=>{f.getModulesNoCache().then(o=>{r.value=m.mapTreeData(o.result),N(r.value[0].key)})},M=o=>{a.value=o},E=o=>new Promise(t=>{if(o.dataRef.children){t("当前节点没有子模块");return}f.getModulesNoCache(o.dataRef.key).then(n=>{o.dataRef.children=m.mapTreeData(n.result),r.value=[...r.value],t("获取模块数据成功")})}),k=(o,t)=>{const n=t.node.dataRef,l=a.value.includes(n.key);if(n.isLeaf||(t.selected?l||a.value.push(n.key):l&&(a.value=a.value.filter(u=>u!==n.key))),o.length===0)return;const c=o[0];N(c)},N=o=>{h.value=!0,f.getModule(o).then(t=>{Object.assign(d,t.result),h.value=!1}).catch(t=>{console.log(t)})},b=()=>{C.value=!0,s.openAdd=!0},D=()=>{C.value=!1,s.openAdd=!0},T=o=>{i(o)},S=()=>{s.openEdit=!0},A=(o,t,n)=>{N(o),t===n||i(n),i(t)},q=()=>{f.deleteModule(d.id).then(o=>{B.message.success("删除成功"),i(o.result.parentId)})},i=o=>{f.getModulesNoCache(o).then(t=>{o?V(r.value,o,m.mapTreeData(t.result)):r.value=m.mapTreeData(t.result)})},V=(o,t,n)=>{o.forEach(l=>{if(l.key===t){l.isLeaf=n.length===0;const c=x([l],0);_.value=_.value.filter(u=>!c.includes(u)),a.value=a.value.filter(u=>!c.includes(u)),l.children=n}else l.children&&V(l.children,t,n)})},x=(o,t)=>{let n=[];return o.forEach(l=>{t>0&&n.push(l.key),l.children&&(n=n.concat(x(l.children,++t)))}),n};return y(),(o,t)=>{const n=e.resolveComponent("a-button"),l=e.resolveComponent("a-popconfirm"),c=e.resolveComponent("a-button-group"),u=e.resolveComponent("a-space"),R=e.resolveComponent("a-tree"),g=e.resolveComponent("a-col"),K=e.resolveComponent("a-skeleton"),O=e.resolveComponent("a-row"),L=e.resolveComponent("a-card");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(L,{"body-style":{padding:"0 20px 20px 10px"},ref_key:"fusRef",ref:w},{default:e.withCtx(()=>[e.createElementVNode("div",z,[e.createElementVNode("div",F,[t[6]||(t[6]=e.createElementVNode("div",{class:"ant-pro-table-list-toolbar-left"},[e.createElementVNode("div",{class:"ant-pro-table-list-toolbar-title"},"模块配置")],-1)),e.createElementVNode("div",G,[e.createVNode(u,{align:"center"},{default:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(n,{onClick:b},{default:e.withCtx(()=>[e.createVNode(e.unref(v.PlusOutlined)),t[2]||(t[2]=e.createTextVNode(" 添加根模块 "))]),_:1}),e.withDirectives(e.createVNode(n,{onClick:D},{default:e.withCtx(()=>[e.createVNode(e.unref(v.PlusOutlined)),t[3]||(t[3]=e.createTextVNode(" 添加子模块 "))]),_:1},512),[[e.vShow,d.id]]),e.withDirectives(e.createVNode(n,{onClick:S},{default:e.withCtx(()=>[e.createVNode(e.unref(v.EditOutlined)),t[4]||(t[4]=e.createTextVNode(" 修改模块 "))]),_:1},512),[[e.vShow,d.id]]),e.createVNode(l,{title:"是否确认删除模块?",onConfirm:q},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(n,{danger:""},{default:e.withCtx(()=>[e.createVNode(e.unref(v.DeleteOutlined)),t[5]||(t[5]=e.createTextVNode(" 删除模块 "))]),_:1},512),[[e.vShow,d.id]])]),_:1})]),_:1})]),_:1})])])]),e.createVNode(O,null,{default:e.withCtx(()=>[e.createVNode(g,{sm:5,md:4},{default:e.withCtx(()=>[e.createVNode(R,{showIcon:!0,expandedKeys:a.value,loadedKeys:_.value,treeData:r.value,onExpand:M,loadData:E,onSelect:k},{icon:e.withCtx(p=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.iconName)))]),_:1},8,["expandedKeys","loadedKeys","treeData"])]),_:1}),e.createVNode(g,{sm:19,md:20},{default:e.withCtx(()=>[e.createVNode(K,{loading:h.value},{default:e.withCtx(()=>[e.createVNode(P.default,{module:d},null,8,["module"])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},512),e.createVNode(j.default,{ref:"moduleAdd",open:s.openAdd,"onUpdate:open":t[0]||(t[0]=p=>s.openAdd=p),"parent-id":C.value?null:d.id,onSuccess:T},null,8,["open","parent-id"]),e.createVNode(U.default,{ref:"moduleEdit",open:s.openEdit,"onUpdate:open":t[1]||(t[1]=p=>s.openEdit=p),"module-id":d.id,onSuccess:A},null,8,["open","module-id"])])}}});exports.default=H;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./ModuleIndex.vue.js");exports.default=e.default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@since2006/utils"),u=()=>t.http.get("/api/1/workflow/cate/get_doc_list.json"),l=e=>t.http.post("/api/v2/module/create_module",e),d=e=>t.http.get("/api/v2/module/get_module",{params:{id:e}}),s=()=>t.http.get("/api/v2/module/get_cache_modules"),r=(e=null)=>{const o={};return e&&(o.parentId=e),t.http.get("/api/1/module/get_modules_nocache.json",{params:o})},a=e=>t.http.post("/api/v2/module/delete_module",{id:e}),c=e=>t.http.post("/api/v2/module/update_module",e);exports.createModule=l;exports.deleteModule=a;exports.getDocs=u;exports.getModule=d;exports.getModules=s;exports.getModulesNoCache=r;exports.updateModule=c;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./IconSelectorModal.vue2.js");;/* empty css */const t=require("../../../../_virtual/_plugin-vue_export-helper.js"),u=t.default(e.default,[["__scopeId","data-v-33554e43"]]);exports.default=u;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r=require("@since2006/components"),u=e.defineComponent({__name:"IconSelectorModal",props:{visible:{default:!1}},emits:["success","cancel"],setup(n,{emit:t}){const s=e.ref(""),c=t,l=o=>{s.value=o,c("success",o)},a=()=>{c("cancel")};return(o,d)=>{const i=e.resolveComponent("a-modal");return e.openBlock(),e.createBlock(i,{visible:n.visible,width:900,footer:null,onCancel:a},{default:e.withCtx(()=>[e.createVNode(e.unref(r.IconSelect),{"class-name":"icon-selector","icon-font-size":"24px",onChange:l})]),_:1},8,["visible"])}}});exports.default=u;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("./ModuleIndex.vue.js"),s=e=>(e.install=n=>{const u=e.name||e.__name;n.component(u,e)},e),t=s(l.default);exports.ModuleIndex=t;exports.default=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=a=>a?a.map(e=>({key:e.id,title:e.name,isLeaf:!e.hasChildren,iconName:e.icon,type:e.type,seqNo:e.seqNo})):[];exports.mapTreeData=r;
|
package/dist/lib/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./app/system/index.js");exports.StatusIndex=e.StatusIndex;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./app/system/index.js"),t=require("./app/module/index.js");exports.StatusIndex=e.StatusIndex;exports.ModuleIndex=t.ModuleIndex;
|
package/dist/lib/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.large-text[data-v-1f96ab02]{font-size:16px}.float-right[data-v-1f96ab02]{float:right}.margin-block[data-v-1f96ab02]{margin-top:14px}
|
|
1
|
+
.large-text[data-v-1f96ab02]{font-size:16px}.float-right[data-v-1f96ab02]{float:right}.margin-block[data-v-1f96ab02]{margin-top:14px}.icon-selector deep(ul) li.active[data-v-33554e43],.icon-selector deep(ul) li[data-v-33554e43]:hover{border-radius:2px;border-color:#4a4a48;background-color:#4a4a48;color:#fff;transition:all .3s;box-shadow:none}.icon-selector deep(ul) i[data-v-33554e43]{font-size:1.5rem;border:1px solid #f1f1f1;padding:.02rem;margin:.03rem;cursor:pointer}.ant-form[data-v-cd92ee31]{padding-top:20px}.permission-tree[data-v-cd92ee31],.permission-tree[data-v-266daf0e]{overflow-y:auto;overflow-x:hidden;margin-top:10px}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@since2006/pages",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2025.8.
|
|
4
|
+
"version": "2025.8.1",
|
|
5
5
|
"description": "基于 Ant Design Vue 的页面库",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/lib/index.js",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
29
|
"devDependencies": {
|
|
30
|
+
"@since2006/components": "workspace:^",
|
|
30
31
|
"@since2006/utils": "workspace:^",
|
|
31
32
|
"vite-plugin-vue-setup-extend": "^0.4.0"
|
|
32
33
|
}
|