@since2006/pages 2025.8.3 → 2025.8.5

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 CHANGED
@@ -1,21 +1,24 @@
1
- import * as t from "./src/index.js";
2
- import { StatusIndex as a } from "./src/app/system/index.js";
1
+ import * as o from "./src/index.js";
2
+ import { StatusIndex as n } from "./src/app/system/index.js";
3
3
  import { ModuleIndex as f } from "./src/app/module/index.js";
4
4
  import { ScheduleIndex as p } from "./src/app/schedule/index.js";
5
5
  import { AttachmentIndex as l } from "./src/app/attachment/index.js";
6
6
  import { MetadataIndex as I } from "./src/app/metadata/index.js";
7
- import { LogIndex as i } from "./src/app/log/index.js";
7
+ import { LogIndex as u } from "./src/app/log/index.js";
8
+ import { DictIndex as D, DictPanel as M } from "./src/app/dict/index.js";
8
9
  const r = {
9
10
  install: (e) => {
10
- Object.values(t).forEach((o) => e.use(o));
11
+ Object.values(o).forEach((t) => e.use(t));
11
12
  }
12
13
  };
13
14
  export {
14
15
  l as AttachmentIndex,
15
- i as LogIndex,
16
+ D as DictIndex,
17
+ M as DictPanel,
18
+ u as LogIndex,
16
19
  I as MetadataIndex,
17
20
  f as ModuleIndex,
18
21
  p as ScheduleIndex,
19
- a as StatusIndex,
22
+ n as StatusIndex,
20
23
  r as default
21
24
  };
@@ -0,0 +1,159 @@
1
+ import { defineComponent as B, ref as m, watch as I, resolveComponent as r, openBlock as R, createBlock as E, withCtx as t, createVNode as l, createTextVNode as b } from "vue";
2
+ import { getDictionary as F, addDictionary as L, updateDictionary as N } from "./api.js";
3
+ const O = /* @__PURE__ */ B({
4
+ __name: "DictEdit",
5
+ props: {
6
+ open: {
7
+ type: Boolean,
8
+ default: !1
9
+ },
10
+ mode: {
11
+ type: String,
12
+ default: "add"
13
+ },
14
+ dictId: {
15
+ type: String,
16
+ default: null
17
+ }
18
+ },
19
+ emits: ["success", "cancel"],
20
+ setup(p, { emit: k }) {
21
+ const o = p, i = k, c = m(), u = m(!1), v = m(), _ = {
22
+ name: "",
23
+ keyword: "",
24
+ enableCache: !1,
25
+ remark: ""
26
+ }, e = m({ ..._ }), C = {
27
+ name: [{ required: !0, message: "请输入字典名称" }],
28
+ keyword: [{ required: !0, message: "请填写字典标识" }],
29
+ enableCache: [{ required: !0, message: "请选择是否缓存" }]
30
+ }, w = () => {
31
+ e.value = { ..._ };
32
+ };
33
+ I(
34
+ () => o.open,
35
+ (d) => {
36
+ d && (w(), o.mode === "add" ? g() : h(o.dictId));
37
+ }
38
+ );
39
+ const g = () => {
40
+ c.value = "添加字典";
41
+ }, h = (d) => {
42
+ c.value = "编辑字典", u.value = !0, F(d).then((a) => {
43
+ e.value = a.result, e.value.enableCache = e.value.enableCache + "";
44
+ }).finally(() => u.value = !1);
45
+ }, x = () => {
46
+ v.value.validateFields().then(() => {
47
+ if (u.value = !0, o.mode === "add")
48
+ L({ ...e.value }).then(() => {
49
+ i("success", o.mode);
50
+ }).finally(() => u.value = !1);
51
+ else {
52
+ const d = { ...e.value, id: o.dictId };
53
+ N(d).then(() => {
54
+ i("success", o.mode);
55
+ }).finally(() => u.value = !1);
56
+ }
57
+ });
58
+ }, S = () => {
59
+ i("cancel");
60
+ };
61
+ return (d, a) => {
62
+ const f = r("a-input"), s = r("a-form-item"), y = r("a-select-option"), D = r("a-select"), U = r("a-form"), q = r("a-modal");
63
+ return R(), E(q, {
64
+ open: p.open,
65
+ title: c.value,
66
+ width: 800,
67
+ confirmLoading: u.value,
68
+ "mask-closable": !1,
69
+ onOk: x,
70
+ onCancel: S
71
+ }, {
72
+ default: t(() => [
73
+ l(U, {
74
+ ref_key: "formRef",
75
+ ref: v,
76
+ model: e.value,
77
+ rules: C,
78
+ "label-col": { span: 5 },
79
+ "wrapper-col": { span: 12 }
80
+ }, {
81
+ default: t(() => [
82
+ l(s, {
83
+ label: "字典名称",
84
+ name: "name"
85
+ }, {
86
+ default: t(() => [
87
+ l(f, {
88
+ value: e.value.name,
89
+ "onUpdate:value": a[0] || (a[0] = (n) => e.value.name = n),
90
+ placeholder: "字典名称"
91
+ }, null, 8, ["value"])
92
+ ]),
93
+ _: 1
94
+ }),
95
+ l(s, {
96
+ label: "字典标识",
97
+ name: "keyword"
98
+ }, {
99
+ default: t(() => [
100
+ l(f, {
101
+ value: e.value.keyword,
102
+ "onUpdate:value": a[1] || (a[1] = (n) => e.value.keyword = n),
103
+ placeholder: "字典标识"
104
+ }, null, 8, ["value"])
105
+ ]),
106
+ _: 1
107
+ }),
108
+ l(s, {
109
+ label: "是否缓存",
110
+ name: "enableCache"
111
+ }, {
112
+ default: t(() => [
113
+ l(D, {
114
+ value: e.value.enableCache,
115
+ "onUpdate:value": a[2] || (a[2] = (n) => e.value.enableCache = n),
116
+ style: { width: "170px" },
117
+ allowClear: ""
118
+ }, {
119
+ default: t(() => [
120
+ l(y, { value: "1" }, {
121
+ default: t(() => a[4] || (a[4] = [
122
+ b("是")
123
+ ])),
124
+ _: 1
125
+ }),
126
+ l(y, { value: "0" }, {
127
+ default: t(() => a[5] || (a[5] = [
128
+ b("否")
129
+ ])),
130
+ _: 1
131
+ })
132
+ ]),
133
+ _: 1
134
+ }, 8, ["value"])
135
+ ]),
136
+ _: 1
137
+ }),
138
+ l(s, { label: "描述" }, {
139
+ default: t(() => [
140
+ l(f, {
141
+ value: e.value.remark,
142
+ "onUpdate:value": a[3] || (a[3] = (n) => e.value.remark = n),
143
+ placeholder: "字典描述"
144
+ }, null, 8, ["value"])
145
+ ]),
146
+ _: 1
147
+ })
148
+ ]),
149
+ _: 1
150
+ }, 8, ["model"])
151
+ ]),
152
+ _: 1
153
+ }, 8, ["open", "title", "confirmLoading"]);
154
+ };
155
+ }
156
+ });
157
+ export {
158
+ O as default
159
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./DictEdit.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,7 @@
1
+ import o from "./DictIndex.vue2.js";
2
+ import "./DictIndex.vue3.js";
3
+ import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-d4a2e224"]]);
5
+ export {
6
+ m as default
7
+ };
@@ -0,0 +1,202 @@
1
+ import { defineComponent as H, ref as I, reactive as h, resolveComponent as a, openBlock as p, createElementBlock as f, createElementVNode as _, createVNode as t, withCtx as o, createTextVNode as l, unref as i, toDisplayString as w, createCommentVNode as y, Fragment as U } from "vue";
2
+ import G from "./DictEdit.vue.js";
3
+ import { queryDictionaries as J, refreshDictionaries as K, removeDictionary as L } from "./api.js";
4
+ import { HddTwoTone as M, PlusOutlined as Q, SyncOutlined as W } from "@ant-design/icons-vue";
5
+ import { message as C } from "ant-design-vue";
6
+ import { useRouter as X } from "vue-router";
7
+ import { FxCardTable as Y, ClickCopy as Z } from "@since2006/components";
8
+ const ee = { class: "ant-pro-table" }, te = { class: "ant-pro-table-search" }, oe = ["onClick"], ne = { key: 2 }, ae = ["onClick"], pe = /* @__PURE__ */ H({
9
+ __name: "DictIndex",
10
+ setup(re) {
11
+ const s = I(), q = [
12
+ {
13
+ title: "字典名称",
14
+ dataIndex: "name",
15
+ scopedSlots: { customRender: "name" }
16
+ },
17
+ {
18
+ title: "字典标识",
19
+ dataIndex: "keyword"
20
+ },
21
+ {
22
+ title: "备注",
23
+ dataIndex: "remark"
24
+ },
25
+ {
26
+ title: "操作",
27
+ width: "150px",
28
+ dataIndex: "action"
29
+ }
30
+ ], u = h({
31
+ query: void 0
32
+ }), k = () => {
33
+ s.value.refresh();
34
+ }, D = () => {
35
+ u.query = void 0, s.value.refresh();
36
+ }, R = X(), v = I(!1), n = h({
37
+ open: !1,
38
+ mode: "add",
39
+ dictId: ""
40
+ }), S = () => {
41
+ n.open = !0, n.mode = "add", n.dictId = "";
42
+ }, E = () => {
43
+ v.value = !0, K().then(() => {
44
+ v.value = !1, C.success("刷新字典成功");
45
+ });
46
+ }, V = (r) => {
47
+ R.push({ path: "/dict/panel", query: { id: r.id } });
48
+ }, $ = (r) => {
49
+ n.open = !0, n.mode = "edit", n.dictId = r.id;
50
+ }, N = (r) => {
51
+ L(r.id).then(() => {
52
+ C.success("删除字典成功"), s.value.refresh();
53
+ });
54
+ }, T = (r) => {
55
+ let e;
56
+ r === "add" ? e = "添加字典成功" : e = "编辑字典成功", n.open = !1, C.success(e), s.value.refresh();
57
+ };
58
+ return (r, e) => {
59
+ const P = a("a-input"), B = a("a-form-item"), x = a("a-col"), m = a("a-button"), F = a("a-row"), O = a("a-form"), j = a("a-button-group"), z = a("a-divider"), A = a("a-popconfirm");
60
+ return p(), f("div", null, [
61
+ _("div", ee, [
62
+ _("div", te, [
63
+ t(O, { layout: "horizontal" }, {
64
+ default: o(() => [
65
+ t(F, {
66
+ gutter: 16,
67
+ type: "flex",
68
+ justify: "start"
69
+ }, {
70
+ default: o(() => [
71
+ t(x, {
72
+ xs: 24,
73
+ sm: 24,
74
+ md: 12,
75
+ lg: 7
76
+ }, {
77
+ default: o(() => [
78
+ t(B, { label: "搜索" }, {
79
+ default: o(() => [
80
+ t(P, {
81
+ value: u.query,
82
+ "onUpdate:value": e[0] || (e[0] = (d) => u.query = d),
83
+ placeholder: "字典名称、字典标识",
84
+ onPressEnter: k
85
+ }, null, 8, ["value"])
86
+ ]),
87
+ _: 1
88
+ })
89
+ ]),
90
+ _: 1
91
+ }),
92
+ t(x, null, {
93
+ default: o(() => [
94
+ t(m, {
95
+ onClick: k,
96
+ type: "primary"
97
+ }, {
98
+ default: o(() => e[2] || (e[2] = [
99
+ l("搜索")
100
+ ])),
101
+ _: 1
102
+ }),
103
+ t(m, {
104
+ onClick: D,
105
+ style: { "margin-left": "16px" }
106
+ }, {
107
+ default: o(() => e[3] || (e[3] = [
108
+ l("重置")
109
+ ])),
110
+ _: 1
111
+ })
112
+ ]),
113
+ _: 1
114
+ })
115
+ ]),
116
+ _: 1
117
+ })
118
+ ]),
119
+ _: 1
120
+ })
121
+ ]),
122
+ t(i(Y), {
123
+ columns: q,
124
+ "load-data": i(J),
125
+ params: u,
126
+ ref_key: "tableRef",
127
+ ref: s
128
+ }, {
129
+ title: o(() => [
130
+ t(i(M)),
131
+ e[4] || (e[4] = l(" 数据字典 "))
132
+ ]),
133
+ toolbar: o(() => [
134
+ t(j, null, {
135
+ default: o(() => [
136
+ t(m, {
137
+ type: "primary",
138
+ onClick: S
139
+ }, {
140
+ default: o(() => [
141
+ t(i(Q)),
142
+ e[5] || (e[5] = l(" 添加字典 "))
143
+ ]),
144
+ _: 1
145
+ }),
146
+ t(m, {
147
+ onClick: E,
148
+ loading: v.value
149
+ }, {
150
+ default: o(() => [
151
+ t(i(W)),
152
+ e[6] || (e[6] = l(" 刷新字典 "))
153
+ ]),
154
+ _: 1
155
+ }, 8, ["loading"])
156
+ ]),
157
+ _: 1
158
+ })
159
+ ]),
160
+ bodyCell: o(({ column: d, record: c, text: b }) => [
161
+ d.dataIndex === "name" ? (p(), f("a", {
162
+ key: 0,
163
+ onClick: (g) => V(c)
164
+ }, w(c.name), 9, oe)) : y("", !0),
165
+ d.dataIndex === "keyword" ? (p(), f(U, { key: 1 }, [
166
+ l(w(b) + " ", 1),
167
+ t(i(Z), { value: b }, null, 8, ["value"])
168
+ ], 64)) : y("", !0),
169
+ d.dataIndex === "action" ? (p(), f("span", ne, [
170
+ _("a", {
171
+ onClick: (g) => $(c)
172
+ }, "编辑", 8, ae),
173
+ t(z, { type: "vertical" }),
174
+ t(A, {
175
+ title: "是否确认删除?",
176
+ onConfirm: (g) => N(c)
177
+ }, {
178
+ default: o(() => e[7] || (e[7] = [
179
+ _("a", { href: "#" }, "删除", -1)
180
+ ])),
181
+ _: 2
182
+ }, 1032, ["onConfirm"])
183
+ ])) : y("", !0)
184
+ ]),
185
+ _: 1
186
+ }, 8, ["load-data", "params"])
187
+ ]),
188
+ t(G, {
189
+ ref: "dictEdit",
190
+ open: n.open,
191
+ mode: n.mode,
192
+ "dict-id": n.dictId,
193
+ onCancel: e[1] || (e[1] = (d) => n.open = !1),
194
+ onSuccess: T
195
+ }, null, 8, ["open", "mode", "dict-id"])
196
+ ]);
197
+ };
198
+ }
199
+ });
200
+ export {
201
+ pe as default
202
+ };
@@ -0,0 +1,7 @@
1
+ import t from "./DictItemEdit.vue2.js";
2
+ /* empty css */
3
+ import o from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const i = /* @__PURE__ */ o(t, [["__scopeId", "data-v-112d54e0"]]);
5
+ export {
6
+ i as default
7
+ };
@@ -0,0 +1,180 @@
1
+ import { defineComponent as B, ref as m, watch as R, resolveComponent as r, openBlock as g, createBlock as h, withCtx as d, createVNode as a, createTextVNode as V, toDisplayString as F, createCommentVNode as L } from "vue";
2
+ import { getDictItem as p, addDictItem as A, updateDictItem as M } from "./api.js";
3
+ import { message as O } from "ant-design-vue";
4
+ const G = /* @__PURE__ */ B({
5
+ __name: "DictItemEdit",
6
+ props: {
7
+ open: {
8
+ type: Boolean,
9
+ default: !1
10
+ },
11
+ mode: {
12
+ type: String,
13
+ default: "add"
14
+ },
15
+ dictId: {
16
+ type: String,
17
+ default: null
18
+ },
19
+ itemId: {
20
+ type: String,
21
+ default: null
22
+ }
23
+ },
24
+ emits: ["success", "cancel"],
25
+ setup(f, { emit: b }) {
26
+ const i = m(""), c = m(!1), o = m(null), _ = m(), n = f, I = b, k = {
27
+ id: null,
28
+ name: null,
29
+ value: null,
30
+ seqNo: null,
31
+ state: !0,
32
+ remark: null
33
+ }, e = m({ ...k }), q = {
34
+ name: [{ required: !0, message: "请填写字典项名称" }],
35
+ value: [{ required: !0, message: "请填写字典项取值" }],
36
+ seqNo: [{ required: !0, message: "请填写数字类型顺序号" }],
37
+ state: [{ required: !0, message: "请选择字典项状态" }]
38
+ }, y = () => {
39
+ e.value = { ...k };
40
+ };
41
+ R(
42
+ () => n.open,
43
+ (t) => {
44
+ t && (y(), n.mode === "add" ? N() : S());
45
+ }
46
+ );
47
+ const N = () => {
48
+ i.value = "添加字典项", n.itemId !== null ? p(n.itemId).then((t) => {
49
+ o.value = t.result;
50
+ }) : o.value = null;
51
+ }, S = () => {
52
+ i.value = "修改字典项", e.value.id = n.itemId, p(n.itemId).then((t) => {
53
+ e.value = t.result, e.value.state = t.result.state === "E", e.value.parentId != null ? p(e.value.parentId).then((l) => {
54
+ o.value = l.result;
55
+ }) : o.value = null;
56
+ });
57
+ }, w = () => {
58
+ _.value.validateFields().then(() => {
59
+ const t = { ...e.value, dictId: n.dictId };
60
+ o.value !== null && (t.parentId = o.value.id), t.state = t.state ? "E" : "D";
61
+ let l = null;
62
+ if (n.mode === "add")
63
+ l = A;
64
+ else if (n.mode === "edit")
65
+ l = M;
66
+ else
67
+ return !1;
68
+ c.value = !0, l(t).then((s) => {
69
+ O.success("操作成功"), I("success", s.result.parentId);
70
+ }).finally(() => c.value = !1);
71
+ });
72
+ }, D = () => {
73
+ I("cancel");
74
+ };
75
+ return (t, l) => {
76
+ const s = r("a-form-item"), v = r("a-input"), C = r("a-input-number"), U = r("a-switch"), x = r("a-form"), E = r("a-modal");
77
+ return g(), h(E, {
78
+ open: f.open,
79
+ title: i.value,
80
+ width: 800,
81
+ confirmLoading: c.value,
82
+ "mask-closable": !1,
83
+ onOk: w,
84
+ onCancel: D
85
+ }, {
86
+ default: d(() => [
87
+ a(x, {
88
+ ref_key: "formRef",
89
+ ref: _,
90
+ model: e.value,
91
+ rules: q,
92
+ "label-col": { span: 5 },
93
+ "wrapper-col": { span: 12 }
94
+ }, {
95
+ default: d(() => [
96
+ o.value ? (g(), h(s, {
97
+ key: 0,
98
+ label: "所属上级",
99
+ class: "notice"
100
+ }, {
101
+ default: d(() => [
102
+ V(F(o.value.name), 1)
103
+ ]),
104
+ _: 1
105
+ })) : L("", !0),
106
+ a(s, {
107
+ label: "字典项名称",
108
+ name: "name"
109
+ }, {
110
+ default: d(() => [
111
+ a(v, {
112
+ value: e.value.name,
113
+ "onUpdate:value": l[0] || (l[0] = (u) => e.value.name = u),
114
+ placeholder: "字典项名称"
115
+ }, null, 8, ["value"])
116
+ ]),
117
+ _: 1
118
+ }),
119
+ a(s, {
120
+ label: "字典项取值",
121
+ name: "value"
122
+ }, {
123
+ default: d(() => [
124
+ a(v, {
125
+ value: e.value.value,
126
+ "onUpdate:value": l[1] || (l[1] = (u) => e.value.value = u),
127
+ placeholder: "字典项取值"
128
+ }, null, 8, ["value"])
129
+ ]),
130
+ _: 1
131
+ }),
132
+ a(s, {
133
+ label: "顺序号",
134
+ name: "seqNo"
135
+ }, {
136
+ default: d(() => [
137
+ a(C, {
138
+ value: e.value.seqNo,
139
+ "onUpdate:value": l[2] || (l[2] = (u) => e.value.seqNo = u),
140
+ placeholder: "顺序号"
141
+ }, null, 8, ["value"])
142
+ ]),
143
+ _: 1
144
+ }),
145
+ a(s, {
146
+ label: "状态",
147
+ name: "state"
148
+ }, {
149
+ default: d(() => [
150
+ a(U, {
151
+ checked: e.value.state,
152
+ "onUpdate:checked": l[3] || (l[3] = (u) => e.value.state = u),
153
+ "checked-children": "启用",
154
+ "un-checked-children": "禁用"
155
+ }, null, 8, ["checked"])
156
+ ]),
157
+ _: 1
158
+ }),
159
+ a(s, { label: "描述" }, {
160
+ default: d(() => [
161
+ a(v, {
162
+ value: e.value.remark,
163
+ "onUpdate:value": l[4] || (l[4] = (u) => e.value.remark = u),
164
+ placeholder: "字典描述"
165
+ }, null, 8, ["value"])
166
+ ]),
167
+ _: 1
168
+ })
169
+ ]),
170
+ _: 1
171
+ }, 8, ["model"])
172
+ ]),
173
+ _: 1
174
+ }, 8, ["open", "title", "confirmLoading"]);
175
+ };
176
+ }
177
+ });
178
+ export {
179
+ G as default
180
+ };
@@ -0,0 +1,7 @@
1
+ import o from "./DictPanel.vue2.js";
2
+ /* empty css */
3
+ import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-279477c8"]]);
5
+ export {
6
+ e as default
7
+ };
@@ -0,0 +1,271 @@
1
+ import { defineComponent as W, ref as c, onBeforeMount as X, resolveComponent as d, openBlock as D, createBlock as g, withCtx as a, createVNode as o, createTextVNode as s, toDisplayString as m, createElementVNode as b, h as C, unref as x, createCommentVNode as E } from "vue";
2
+ import Y from "./DictItemEdit.vue.js";
3
+ import { getDictionary as Z, getAdminDictItems as V, getDictItem as ee, deleteDictItem as te } from "./api.js";
4
+ import { useRoute as le } from "vue-router";
5
+ import { message as ae } from "ant-design-vue";
6
+ import { PlusCircleOutlined as oe, EditOutlined as ne, DeleteOutlined as ue } from "@ant-design/icons-vue";
7
+ const se = { class: "table-operator" }, de = { class: "dict-content" }, re = { class: "tree-container" }, ke = /* @__PURE__ */ W({
8
+ __name: "DictPanel",
9
+ setup(ce) {
10
+ const B = le(), p = c(), y = c({}), M = c(!1), r = c(null), u = c({}), i = c([]), h = c([]), _ = c([]), v = c({
11
+ open: !1,
12
+ mode: "add",
13
+ dictId: "",
14
+ itemId: ""
15
+ }), O = (e) => {
16
+ i.value = e;
17
+ }, P = (e) => (r.value = e, e.dataRef.children ? new Promise((t) => {
18
+ t("");
19
+ }) : T(e.dataRef.key)), z = () => {
20
+ Z(p.value).then((e) => {
21
+ y.value = e.result;
22
+ });
23
+ }, T = async (e) => V(p.value, e).then((t) => {
24
+ r.value == null ? _.value = I(t.result) : (r.value.dataRef.children = I(t.result), _.value = [..._.value]);
25
+ }), A = (e, t) => {
26
+ const l = t.node.dataRef, n = i.value.includes(l.key);
27
+ l.isLeaf || (t.selected ? n || i.value.push(l.key) : n && (i.value = i.value.filter((f) => f !== l.key))), e.length === 0 ? (console.log("清空选中"), r.value = null) : r.value = t.node, w(l.key);
28
+ }, w = (e) => {
29
+ M.value = !0, ee(e).then((t) => {
30
+ u.value = K(t.result);
31
+ });
32
+ }, $ = () => {
33
+ v.value = {
34
+ open: !0,
35
+ mode: "add",
36
+ dictId: p.value,
37
+ itemId: r.value !== null ? u.value.key : null
38
+ };
39
+ }, j = () => {
40
+ v.value = {
41
+ open: !0,
42
+ mode: "edit",
43
+ dictId: p.value,
44
+ itemId: u.value.key
45
+ };
46
+ }, F = (e) => {
47
+ v.value.open = !1, L(e), u.value.key ? w(u.value.key) : u.value = {};
48
+ }, G = () => {
49
+ te(u.value.key).then((e) => {
50
+ ae.success("删除字典项成功"), L(e.result.parentId), r.value = null, u.value = {};
51
+ });
52
+ }, I = (e) => e.map((t) => K(t)), K = (e) => ({
53
+ key: e.id,
54
+ title: e.name,
55
+ isLeaf: !e.hasChildren,
56
+ value: e.value,
57
+ seqNo: e.seqNo,
58
+ state: e.state,
59
+ remark: e.remark
60
+ }), L = (e) => {
61
+ V(p.value, e).then((t) => {
62
+ e ? N(_.value, e, I(t.result)) : _.value = I(t.result);
63
+ });
64
+ }, N = (e, t, l) => {
65
+ e.forEach((n) => {
66
+ if (n.key === t) {
67
+ n.isLeaf = l.length === 0;
68
+ const f = R([n], 0);
69
+ h.value = h.value.filter((k) => !f.includes(k)), i.value = i.value.filter((k) => !f.includes(k)), n.children = l;
70
+ } else
71
+ n.children && N(n.children, t, l);
72
+ });
73
+ }, R = (e, t) => {
74
+ let l = [];
75
+ return e.forEach((n) => {
76
+ t > 0 && l.push(n.key), n.children && (l = l.concat(R(n.children, ++t)));
77
+ }), l;
78
+ };
79
+ return X(() => {
80
+ p.value = B.query.id, z(), T("");
81
+ }), (e, t) => {
82
+ const l = d("a-descriptions-item"), n = d("a-descriptions"), f = d("a-button"), k = d("a-popconfirm"), H = d("a-space"), J = d("a-tree"), S = d("a-col"), q = d("a-tag"), Q = d("a-row"), U = d("a-card");
83
+ return D(), g(U, { class: "dict-card" }, {
84
+ default: a(() => [
85
+ o(n, {
86
+ column: 2,
87
+ size: "small"
88
+ }, {
89
+ default: a(() => [
90
+ o(l, { label: "字典名称" }, {
91
+ default: a(() => [
92
+ s(m(y.value.name), 1)
93
+ ]),
94
+ _: 1
95
+ }),
96
+ o(l, { label: "字典标识" }, {
97
+ default: a(() => [
98
+ s(m(y.value.keyword), 1)
99
+ ]),
100
+ _: 1
101
+ }),
102
+ o(l, { label: "是否缓存" }, {
103
+ default: a(() => [
104
+ s(m(y.value.enableCache === 1 ? "是" : "否"), 1)
105
+ ]),
106
+ _: 1
107
+ }),
108
+ o(l, { label: "描述" }, {
109
+ default: a(() => [
110
+ s(m(y.value.remark), 1)
111
+ ]),
112
+ _: 1
113
+ })
114
+ ]),
115
+ _: 1
116
+ }),
117
+ b("div", se, [
118
+ o(H, { wrap: "" }, {
119
+ default: a(() => [
120
+ o(f, {
121
+ type: "primary",
122
+ icon: C(x(oe)),
123
+ onClick: $
124
+ }, {
125
+ default: a(() => t[1] || (t[1] = [
126
+ s("添加字典项")
127
+ ])),
128
+ _: 1
129
+ }, 8, ["icon"]),
130
+ r.value ? (D(), g(f, {
131
+ key: 0,
132
+ icon: C(x(ne)),
133
+ onClick: j
134
+ }, {
135
+ default: a(() => t[2] || (t[2] = [
136
+ s(" 修改字典项 ")
137
+ ])),
138
+ _: 1
139
+ }, 8, ["icon"])) : E("", !0),
140
+ o(k, {
141
+ title: "是否确认删除?",
142
+ onConfirm: G
143
+ }, {
144
+ default: a(() => [
145
+ r.value ? (D(), g(f, {
146
+ key: 0,
147
+ danger: "",
148
+ icon: C(x(ue))
149
+ }, {
150
+ default: a(() => t[3] || (t[3] = [
151
+ s(" 删除字典项 ")
152
+ ])),
153
+ _: 1
154
+ }, 8, ["icon"])) : E("", !0)
155
+ ]),
156
+ _: 1
157
+ })
158
+ ]),
159
+ _: 1
160
+ })
161
+ ]),
162
+ b("div", de, [
163
+ o(Q, {
164
+ gutter: 24,
165
+ class: "dict-row"
166
+ }, {
167
+ default: a(() => [
168
+ o(S, {
169
+ span: 7,
170
+ class: "dict-left"
171
+ }, {
172
+ default: a(() => [
173
+ t[4] || (t[4] = b("div", null, "字典项:", -1)),
174
+ b("div", re, [
175
+ o(J, {
176
+ showLine: "",
177
+ expandedKeys: i.value,
178
+ loadedKeys: h.value,
179
+ treeData: _.value,
180
+ onExpand: O,
181
+ loadData: P,
182
+ onSelect: A
183
+ }, null, 8, ["expandedKeys", "loadedKeys", "treeData"])
184
+ ])
185
+ ]),
186
+ _: 1
187
+ }),
188
+ o(S, {
189
+ span: 17,
190
+ class: "dict-right"
191
+ }, {
192
+ default: a(() => [
193
+ o(n, {
194
+ column: 1,
195
+ bordered: "",
196
+ size: "small"
197
+ }, {
198
+ default: a(() => [
199
+ o(l, { label: "字典名称" }, {
200
+ default: a(() => [
201
+ s(m(u.value.title), 1)
202
+ ]),
203
+ _: 1
204
+ }),
205
+ o(l, { label: "字典取值" }, {
206
+ default: a(() => [
207
+ s(m(u.value.value), 1)
208
+ ]),
209
+ _: 1
210
+ }),
211
+ o(l, { label: "排序号" }, {
212
+ default: a(() => [
213
+ s(m(u.value.seqNo), 1)
214
+ ]),
215
+ _: 1
216
+ }),
217
+ o(l, { label: "状态" }, {
218
+ default: a(() => [
219
+ u.value.state === "E" ? (D(), g(q, {
220
+ key: 0,
221
+ color: "green"
222
+ }, {
223
+ default: a(() => t[5] || (t[5] = [
224
+ s("启用")
225
+ ])),
226
+ _: 1
227
+ })) : u.value.state === "D" ? (D(), g(q, {
228
+ key: 1,
229
+ color: "red"
230
+ }, {
231
+ default: a(() => t[6] || (t[6] = [
232
+ s("禁用")
233
+ ])),
234
+ _: 1
235
+ })) : E("", !0)
236
+ ]),
237
+ _: 1
238
+ }),
239
+ o(l, { label: "描述" }, {
240
+ default: a(() => [
241
+ s(m(u.value.remark), 1)
242
+ ]),
243
+ _: 1
244
+ })
245
+ ]),
246
+ _: 1
247
+ })
248
+ ]),
249
+ _: 1
250
+ })
251
+ ]),
252
+ _: 1
253
+ })
254
+ ]),
255
+ o(Y, {
256
+ open: v.value.open,
257
+ "dict-id": v.value.dictId,
258
+ "item-id": v.value.itemId,
259
+ mode: v.value.mode,
260
+ onSuccess: F,
261
+ onCancel: t[0] || (t[0] = (ie) => v.value.open = !1)
262
+ }, null, 8, ["open", "dict-id", "item-id", "mode"])
263
+ ]),
264
+ _: 1
265
+ });
266
+ };
267
+ }
268
+ });
269
+ export {
270
+ ke as default
271
+ };
@@ -0,0 +1,47 @@
1
+ import { http as i } from "@since2006/utils";
2
+ function n(t) {
3
+ return i.get("/api/1/dict/query_dictionaries", { params: t });
4
+ }
5
+ function c() {
6
+ return i.postForm("/api/1/dict/refresh_dictionaries");
7
+ }
8
+ function o(t) {
9
+ return i.postForm("/api/1/dict/remove_dictionary", { id: t });
10
+ }
11
+ function a(t) {
12
+ return i.postForm("/api/1/dict/add_dictionary", t);
13
+ }
14
+ function d(t) {
15
+ return i.get("/api/1/dict/get_dictionary", { params: { id: t } });
16
+ }
17
+ function p(t) {
18
+ return i.postForm("/api/1/dict/update_dictionary", t);
19
+ }
20
+ function u(t, e) {
21
+ return i.get("/api/1/dict/admin/get_dict_items", { params: { dictId: t, id: e } });
22
+ }
23
+ function m(t) {
24
+ return i.get("/api/1/dict/get_dict_item", { params: { id: t } });
25
+ }
26
+ function s(t) {
27
+ return i.postForm("/api/1/dict/add_dict_item", t);
28
+ }
29
+ function _(t) {
30
+ return i.postForm("/api/1/dict/update_dict_item", t);
31
+ }
32
+ function f(t) {
33
+ return i.postForm("/api/1/dict/admin/delete_dict_item", { id: t });
34
+ }
35
+ export {
36
+ s as addDictItem,
37
+ a as addDictionary,
38
+ f as deleteDictItem,
39
+ u as getAdminDictItems,
40
+ m as getDictItem,
41
+ d as getDictionary,
42
+ n as queryDictionaries,
43
+ c as refreshDictionaries,
44
+ o as removeDictionary,
45
+ _ as updateDictItem,
46
+ p as updateDictionary
47
+ };
@@ -0,0 +1,9 @@
1
+ import o from "./DictIndex.vue.js";
2
+ import e from "./DictPanel.vue.js";
3
+ import { withInstall as t } from "@since2006/utils";
4
+ const c = t(o), m = t(e);
5
+ export {
6
+ c as DictIndex,
7
+ m as DictPanel,
8
+ c as default
9
+ };
@@ -1,14 +1,17 @@
1
1
  import { StatusIndex as t } from "./app/system/index.js";
2
2
  import { ModuleIndex as x } from "./app/module/index.js";
3
- import { ScheduleIndex as m } from "./app/schedule/index.js";
3
+ import { ScheduleIndex as n } from "./app/schedule/index.js";
4
4
  import { AttachmentIndex as f } from "./app/attachment/index.js";
5
5
  import { MetadataIndex as I } from "./app/metadata/index.js";
6
- import { LogIndex as u } from "./app/log/index.js";
6
+ import { LogIndex as c } from "./app/log/index.js";
7
+ import { DictIndex as u, DictPanel as h } from "./app/dict/index.js";
7
8
  export {
8
9
  f as AttachmentIndex,
9
- u as LogIndex,
10
+ u as DictIndex,
11
+ h as DictPanel,
12
+ c as LogIndex,
10
13
  I as MetadataIndex,
11
14
  x as ModuleIndex,
12
- m as ScheduleIndex,
15
+ n as ScheduleIndex,
13
16
  t as StatusIndex
14
17
  };
package/dist/es/style.css CHANGED
@@ -1 +1 @@
1
- .large-text[data-v-92532804]{font-size:16px}.float-right[data-v-92532804]{float:right}.margin-block[data-v-92532804]{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}[data-v-ae963ea6] .ant-pro-table-list-toolbar-container{padding-left:6px}.cron-detail[data-v-f256dc3c]{border:1px dashed #a6a6a6;padding:6px;line-height:1.5;margin:4px 0}.cron-detail .ant-input-number[data-v-f256dc3c]{width:70px}.cron-detail .ant-input[data-v-f256dc3c]{width:280px}.cron-detail[data-v-50931e68]{border:1px dashed #a6a6a6;padding:6px;line-height:1.5;margin:4px 0}.cron-detail .ant-input-number[data-v-50931e68]{width:70px}.cron-detail .ant-input[data-v-50931e68]{width:280px}[data-v-de0bbc9f] .ant-descriptions-item-label,[data-v-cec99bb6] .ant-descriptions-item-label{width:140px}.ua-icon[data-v-8b2a1553]{width:1.2em;height:1.2em;vertical-align:-.15em;fill:currentColor;overflow:hidden}
1
+ .large-text[data-v-92532804]{font-size:16px}.float-right[data-v-92532804]{float:right}.margin-block[data-v-92532804]{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}[data-v-ae963ea6] .ant-pro-table-list-toolbar-container{padding-left:6px}.cron-detail[data-v-f256dc3c]{border:1px dashed #a6a6a6;padding:6px;line-height:1.5;margin:4px 0}.cron-detail .ant-input-number[data-v-f256dc3c]{width:70px}.cron-detail .ant-input[data-v-f256dc3c]{width:280px}.cron-detail[data-v-50931e68]{border:1px dashed #a6a6a6;padding:6px;line-height:1.5;margin:4px 0}.cron-detail .ant-input-number[data-v-50931e68]{width:70px}.cron-detail .ant-input[data-v-50931e68]{width:280px}[data-v-de0bbc9f] .ant-descriptions-item-label,[data-v-cec99bb6] .ant-descriptions-item-label{width:140px}.ua-icon[data-v-8b2a1553]{width:1.2em;height:1.2em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.notice[data-v-112d54e0]{color:#ff4d4f;font-size:18px}.table-operator[data-v-279477c8]{margin:10px 14px 20px 0}[data-v-279477c8] .ant-descriptions-item-label{width:140px}.tree-container[data-v-279477c8] .ant-tree{max-height:540px;overflow:auto}
package/dist/lib/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./src/index.js"),d=require("./src/app/system/index.js"),u=require("./src/app/module/index.js"),i=require("./src/app/schedule/index.js"),r=require("./src/app/attachment/index.js"),x=require("./src/app/metadata/index.js"),o=require("./src/app/log/index.js"),a={install:e=>{Object.values(t).forEach(n=>e.use(n))}};exports.StatusIndex=d.StatusIndex;exports.ModuleIndex=u.ModuleIndex;exports.ScheduleIndex=i.ScheduleIndex;exports.AttachmentIndex=r.AttachmentIndex;exports.MetadataIndex=x.MetadataIndex;exports.LogIndex=o.LogIndex;exports.default=a;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("./src/index.js"),i=require("./src/app/system/index.js"),u=require("./src/app/module/index.js"),x=require("./src/app/schedule/index.js"),r=require("./src/app/attachment/index.js"),c=require("./src/app/metadata/index.js"),a=require("./src/app/log/index.js"),e=require("./src/app/dict/index.js"),o={install:n=>{Object.values(d).forEach(t=>n.use(t))}};exports.StatusIndex=i.StatusIndex;exports.ModuleIndex=u.ModuleIndex;exports.ScheduleIndex=x.ScheduleIndex;exports.AttachmentIndex=r.AttachmentIndex;exports.MetadataIndex=c.MetadataIndex;exports.LogIndex=a.LogIndex;exports.DictIndex=e.DictIndex;exports.DictPanel=e.DictPanel;exports.default=o;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),c=require("./api.js"),g=e.defineComponent({__name:"DictEdit",props:{open:{type:Boolean,default:!1},mode:{type:String,default:"add"},dictId:{type:String,default:null}},emits:["success","cancel"],setup(m,{emit:C}){const l=m,d=C,s=e.ref(),n=e.ref(!1),v=e.ref(),f={name:"",keyword:"",enableCache:!1,remark:""},a=e.ref({...f}),_={name:[{required:!0,message:"请输入字典名称"}],keyword:[{required:!0,message:"请填写字典标识"}],enableCache:[{required:!0,message:"请选择是否缓存"}]},w=()=>{a.value={...f}};e.watch(()=>l.open,r=>{r&&(w(),l.mode==="add"?y():b(l.dictId))});const y=()=>{s.value="添加字典"},b=r=>{s.value="编辑字典",n.value=!0,c.getDictionary(r).then(t=>{a.value=t.result,a.value.enableCache=a.value.enableCache+""}).finally(()=>n.value=!1)},h=()=>{v.value.validateFields().then(()=>{if(n.value=!0,l.mode==="add")c.addDictionary({...a.value}).then(()=>{d("success",l.mode)}).finally(()=>n.value=!1);else{const r={...a.value,id:l.dictId};c.updateDictionary(r).then(()=>{d("success",l.mode)}).finally(()=>n.value=!1)}})},k=()=>{d("cancel")};return(r,t)=>{const i=e.resolveComponent("a-input"),u=e.resolveComponent("a-form-item"),p=e.resolveComponent("a-select-option"),x=e.resolveComponent("a-select"),N=e.resolveComponent("a-form"),V=e.resolveComponent("a-modal");return e.openBlock(),e.createBlock(V,{open:m.open,title:s.value,width:800,confirmLoading:n.value,"mask-closable":!1,onOk:h,onCancel:k},{default:e.withCtx(()=>[e.createVNode(N,{ref_key:"formRef",ref:v,model:a.value,rules:_,"label-col":{span:5},"wrapper-col":{span:12}},{default:e.withCtx(()=>[e.createVNode(u,{label:"字典名称",name:"name"},{default:e.withCtx(()=>[e.createVNode(i,{value:a.value.name,"onUpdate:value":t[0]||(t[0]=o=>a.value.name=o),placeholder:"字典名称"},null,8,["value"])]),_:1}),e.createVNode(u,{label:"字典标识",name:"keyword"},{default:e.withCtx(()=>[e.createVNode(i,{value:a.value.keyword,"onUpdate:value":t[1]||(t[1]=o=>a.value.keyword=o),placeholder:"字典标识"},null,8,["value"])]),_:1}),e.createVNode(u,{label:"是否缓存",name:"enableCache"},{default:e.withCtx(()=>[e.createVNode(x,{value:a.value.enableCache,"onUpdate:value":t[2]||(t[2]=o=>a.value.enableCache=o),style:{width:"170px"},allowClear:""},{default:e.withCtx(()=>[e.createVNode(p,{value:"1"},{default:e.withCtx(()=>t[4]||(t[4]=[e.createTextVNode("是")])),_:1}),e.createVNode(p,{value:"0"},{default:e.withCtx(()=>t[5]||(t[5]=[e.createTextVNode("否")])),_:1})]),_:1},8,["value"])]),_:1}),e.createVNode(u,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(i,{value:a.value.remark,"onUpdate:value":t[3]||(t[3]=o=>a.value.remark=o),placeholder:"字典描述"},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","title","confirmLoading"])}}});exports.default=g;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./DictEdit.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("./DictIndex.vue2.js");require("./DictIndex.vue3.js");const t=require("../../../_virtual/_plugin-vue_export-helper.js"),u=t.default(e.default,[["__scopeId","data-v-d4a2e224"]]);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("./DictEdit.vue.js"),c=require("./api.js"),u=require("@ant-design/icons-vue"),m=require("ant-design-vue"),P=require("vue-router"),C=require("@since2006/components"),$={class:"ant-pro-table"},O={class:"ant-pro-table-search"},j=["onClick"],F={key:2},M=["onClick"],z=e.defineComponent({__name:"DictIndex",setup(A){const r=e.ref(),V=[{title:"字典名称",dataIndex:"name",scopedSlots:{customRender:"name"}},{title:"字典标识",dataIndex:"keyword"},{title:"备注",dataIndex:"remark"},{title:"操作",width:"150px",dataIndex:"action"}],d=e.reactive({query:void 0}),p=()=>{r.value.refresh()},x=()=>{d.query=void 0,r.value.refresh()},N=P.useRouter(),i=e.ref(!1),o=e.reactive({open:!1,mode:"add",dictId:""}),y=()=>{o.open=!0,o.mode="add",o.dictId=""},k=()=>{i.value=!0,c.refreshDictionaries().then(()=>{i.value=!1,m.message.success("刷新字典成功")})},h=n=>{N.push({path:"/dict/panel",query:{id:n.id}})},w=n=>{o.open=!0,o.mode="edit",o.dictId=n.id},g=n=>{c.removeDictionary(n.id).then(()=>{m.message.success("删除字典成功"),r.value.refresh()})},b=n=>{let t;n==="add"?t="添加字典成功":t="编辑字典成功",o.open=!1,m.message.success(t),r.value.refresh()};return(n,t)=>{const q=e.resolveComponent("a-input"),E=e.resolveComponent("a-form-item"),f=e.resolveComponent("a-col"),l=e.resolveComponent("a-button"),I=e.resolveComponent("a-row"),D=e.resolveComponent("a-form"),T=e.resolveComponent("a-button-group"),S=e.resolveComponent("a-divider"),B=e.resolveComponent("a-popconfirm");return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",$,[e.createElementVNode("div",O,[e.createVNode(D,{layout:"horizontal"},{default:e.withCtx(()=>[e.createVNode(I,{gutter:16,type:"flex",justify:"start"},{default:e.withCtx(()=>[e.createVNode(f,{xs:24,sm:24,md:12,lg:7},{default:e.withCtx(()=>[e.createVNode(E,{label:"搜索"},{default:e.withCtx(()=>[e.createVNode(q,{value:d.query,"onUpdate:value":t[0]||(t[0]=a=>d.query=a),placeholder:"字典名称、字典标识",onPressEnter:p},null,8,["value"])]),_:1})]),_:1}),e.createVNode(f,null,{default:e.withCtx(()=>[e.createVNode(l,{onClick:p,type:"primary"},{default:e.withCtx(()=>t[2]||(t[2]=[e.createTextVNode("搜索")])),_:1}),e.createVNode(l,{onClick:x,style:{"margin-left":"16px"}},{default:e.withCtx(()=>t[3]||(t[3]=[e.createTextVNode("重置")])),_:1})]),_:1})]),_:1})]),_:1})]),e.createVNode(e.unref(C.FxCardTable),{columns:V,"load-data":e.unref(c.queryDictionaries),params:d,ref_key:"tableRef",ref:r},{title:e.withCtx(()=>[e.createVNode(e.unref(u.HddTwoTone)),t[4]||(t[4]=e.createTextVNode(" 数据字典 "))]),toolbar:e.withCtx(()=>[e.createVNode(T,null,{default:e.withCtx(()=>[e.createVNode(l,{type:"primary",onClick:y},{default:e.withCtx(()=>[e.createVNode(e.unref(u.PlusOutlined)),t[5]||(t[5]=e.createTextVNode(" 添加字典 "))]),_:1}),e.createVNode(l,{onClick:k,loading:i.value},{default:e.withCtx(()=>[e.createVNode(e.unref(u.SyncOutlined)),t[6]||(t[6]=e.createTextVNode(" 刷新字典 "))]),_:1},8,["loading"])]),_:1})]),bodyCell:e.withCtx(({column:a,record:s,text:_})=>[a.dataIndex==="name"?(e.openBlock(),e.createElementBlock("a",{key:0,onClick:v=>h(s)},e.toDisplayString(s.name),9,j)):e.createCommentVNode("",!0),a.dataIndex==="keyword"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(_)+" ",1),e.createVNode(e.unref(C.ClickCopy),{value:_},null,8,["value"])],64)):e.createCommentVNode("",!0),a.dataIndex==="action"?(e.openBlock(),e.createElementBlock("span",F,[e.createElementVNode("a",{onClick:v=>w(s)},"编辑",8,M),e.createVNode(S,{type:"vertical"}),e.createVNode(B,{title:"是否确认删除?",onConfirm:v=>g(s)},{default:e.withCtx(()=>t[7]||(t[7]=[e.createElementVNode("a",{href:"#"},"删除",-1)])),_:2},1032,["onConfirm"])])):e.createCommentVNode("",!0)]),_:1},8,["load-data","params"])]),e.createVNode(R.default,{ref:"dictEdit",open:o.open,mode:o.mode,"dict-id":o.dictId,onCancel:t[1]||(t[1]=a=>o.open=!1),onSuccess:b},null,8,["open","mode","dict-id"])])}}});exports.default=z;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./DictItemEdit.vue2.js");;/* empty css */const t=require("../../../_virtual/_plugin-vue_export-helper.js"),u=t.default(e.default,[["__scopeId","data-v-112d54e0"]]);exports.default=u;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("./api.js"),x=require("ant-design-vue"),y=e.defineComponent({__name:"DictItemEdit",props:{open:{type:Boolean,default:!1},mode:{type:String,default:"add"},dictId:{type:String,default:null},itemId:{type:String,default:null}},emits:["success","cancel"],setup(m,{emit:_}){const d=e.ref(""),i=e.ref(!1),u=e.ref(null),v=e.ref(),n=m,p=_,f={id:null,name:null,value:null,seqNo:null,state:!0,remark:null},t=e.ref({...f}),h={name:[{required:!0,message:"请填写字典项名称"}],value:[{required:!0,message:"请填写字典项取值"}],seqNo:[{required:!0,message:"请填写数字类型顺序号"}],state:[{required:!0,message:"请选择字典项状态"}]},g=()=>{t.value={...f}};e.watch(()=>n.open,a=>{a&&(g(),n.mode==="add"?I():N())});const I=()=>{d.value="添加字典项",n.itemId!==null?s.getDictItem(n.itemId).then(a=>{u.value=a.result}):u.value=null},N=()=>{d.value="修改字典项",t.value.id=n.itemId,s.getDictItem(n.itemId).then(a=>{t.value=a.result,t.value.state=a.result.state==="E",t.value.parentId!=null?s.getDictItem(t.value.parentId).then(l=>{u.value=l.result}):u.value=null})},C=()=>{v.value.validateFields().then(()=>{const a={...t.value,dictId:n.dictId};u.value!==null&&(a.parentId=u.value.id),a.state=a.state?"E":"D";let l=null;if(n.mode==="add")l=s.addDictItem;else if(n.mode==="edit")l=s.updateDictItem;else return!1;i.value=!0,l(a).then(r=>{x.message.success("操作成功"),p("success",r.result.parentId)}).finally(()=>i.value=!1)})},k=()=>{p("cancel")};return(a,l)=>{const r=e.resolveComponent("a-form-item"),c=e.resolveComponent("a-input"),V=e.resolveComponent("a-input-number"),q=e.resolveComponent("a-switch"),w=e.resolveComponent("a-form"),b=e.resolveComponent("a-modal");return e.openBlock(),e.createBlock(b,{open:m.open,title:d.value,width:800,confirmLoading:i.value,"mask-closable":!1,onOk:C,onCancel:k},{default:e.withCtx(()=>[e.createVNode(w,{ref_key:"formRef",ref:v,model:t.value,rules:h,"label-col":{span:5},"wrapper-col":{span:12}},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createBlock(r,{key:0,label:"所属上级",class:"notice"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value.name),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(r,{label:"字典项名称",name:"name"},{default:e.withCtx(()=>[e.createVNode(c,{value:t.value.name,"onUpdate:value":l[0]||(l[0]=o=>t.value.name=o),placeholder:"字典项名称"},null,8,["value"])]),_:1}),e.createVNode(r,{label:"字典项取值",name:"value"},{default:e.withCtx(()=>[e.createVNode(c,{value:t.value.value,"onUpdate:value":l[1]||(l[1]=o=>t.value.value=o),placeholder:"字典项取值"},null,8,["value"])]),_:1}),e.createVNode(r,{label:"顺序号",name:"seqNo"},{default:e.withCtx(()=>[e.createVNode(V,{value:t.value.seqNo,"onUpdate:value":l[2]||(l[2]=o=>t.value.seqNo=o),placeholder:"顺序号"},null,8,["value"])]),_:1}),e.createVNode(r,{label:"状态",name:"state"},{default:e.withCtx(()=>[e.createVNode(q,{checked:t.value.state,"onUpdate:checked":l[3]||(l[3]=o=>t.value.state=o),"checked-children":"启用","un-checked-children":"禁用"},null,8,["checked"])]),_:1}),e.createVNode(r,{label:"描述"},{default:e.withCtx(()=>[e.createVNode(c,{value:t.value.remark,"onUpdate:value":l[4]||(l[4]=o=>t.value.remark=o),placeholder:"字典描述"},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","title","confirmLoading"])}}});exports.default=y;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./DictPanel.vue2.js");;/* empty css */const t=require("../../../_virtual/_plugin-vue_export-helper.js"),u=t.default(e.default,[["__scopeId","data-v-279477c8"]]);exports.default=u;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),A=require("./DictItemEdit.vue.js"),f=require("./api.js"),z=require("vue-router"),j=require("ant-design-vue"),C=require("@ant-design/icons-vue"),$={class:"table-operator"},F={class:"dict-content"},G={class:"tree-container"},H=e.defineComponent({__name:"DictPanel",setup(J){const D=z.useRoute(),u=e.ref(),v=e.ref({}),T=e.ref(!1),r=e.ref(null),n=e.ref({}),d=e.ref([]),_=e.ref([]),i=e.ref([]),c=e.ref({open:!1,mode:"add",dictId:"",itemId:""}),I=t=>{d.value=t},b=t=>(r.value=t,t.dataRef.children?new Promise(o=>{o("")}):x(t.dataRef.key)),S=()=>{f.getDictionary(u.value).then(t=>{v.value=t.result})},x=async t=>f.getAdminDictItems(u.value,t).then(o=>{r.value==null?i.value=m(o.result):(r.value.dataRef.children=m(o.result),i.value=[...i.value])}),E=(t,o)=>{const a=o.node.dataRef,l=d.value.includes(a.key);a.isLeaf||(o.selected?l||d.value.push(a.key):l&&(d.value=d.value.filter(s=>s!==a.key))),t.length===0?(console.log("清空选中"),r.value=null):r.value=o.node,N(a.key)},N=t=>{T.value=!0,f.getDictItem(t).then(o=>{n.value=y(o.result)})},B=()=>{c.value={open:!0,mode:"add",dictId:u.value,itemId:r.value!==null?n.value.key:null}},q=()=>{c.value={open:!0,mode:"edit",dictId:u.value,itemId:n.value.key}},K=t=>{c.value.open=!1,V(t),n.value.key?N(n.value.key):n.value={}},L=()=>{f.deleteDictItem(n.value.key).then(t=>{j.message.success("删除字典项成功"),V(t.result.parentId),r.value=null,n.value={}})},m=t=>t.map(o=>y(o)),y=t=>({key:t.id,title:t.name,isLeaf:!t.hasChildren,value:t.value,seqNo:t.seqNo,state:t.state,remark:t.remark}),V=t=>{f.getAdminDictItems(u.value,t).then(o=>{t?h(i.value,t,m(o.result)):i.value=m(o.result)})},h=(t,o,a)=>{t.forEach(l=>{if(l.key===o){l.isLeaf=a.length===0;const s=k([l],0);_.value=_.value.filter(p=>!s.includes(p)),d.value=d.value.filter(p=>!s.includes(p)),l.children=a}else l.children&&h(l.children,o,a)})},k=(t,o)=>{let a=[];return t.forEach(l=>{o>0&&a.push(l.key),l.children&&(a=a.concat(k(l.children,++o)))}),a};return e.onBeforeMount(()=>{u.value=D.query.id,S(),x("")}),(t,o)=>{const a=e.resolveComponent("a-descriptions-item"),l=e.resolveComponent("a-descriptions"),s=e.resolveComponent("a-button"),p=e.resolveComponent("a-popconfirm"),R=e.resolveComponent("a-space"),M=e.resolveComponent("a-tree"),w=e.resolveComponent("a-col"),g=e.resolveComponent("a-tag"),O=e.resolveComponent("a-row"),P=e.resolveComponent("a-card");return e.openBlock(),e.createBlock(P,{class:"dict-card"},{default:e.withCtx(()=>[e.createVNode(l,{column:2,size:"small"},{default:e.withCtx(()=>[e.createVNode(a,{label:"字典名称"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.value.name),1)]),_:1}),e.createVNode(a,{label:"字典标识"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.value.keyword),1)]),_:1}),e.createVNode(a,{label:"是否缓存"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.value.enableCache===1?"是":"否"),1)]),_:1}),e.createVNode(a,{label:"描述"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.value.remark),1)]),_:1})]),_:1}),e.createElementVNode("div",$,[e.createVNode(R,{wrap:""},{default:e.withCtx(()=>[e.createVNode(s,{type:"primary",icon:e.h(e.unref(C.PlusCircleOutlined)),onClick:B},{default:e.withCtx(()=>o[1]||(o[1]=[e.createTextVNode("添加字典项")])),_:1},8,["icon"]),r.value?(e.openBlock(),e.createBlock(s,{key:0,icon:e.h(e.unref(C.EditOutlined)),onClick:q},{default:e.withCtx(()=>o[2]||(o[2]=[e.createTextVNode(" 修改字典项 ")])),_:1},8,["icon"])):e.createCommentVNode("",!0),e.createVNode(p,{title:"是否确认删除?",onConfirm:L},{default:e.withCtx(()=>[r.value?(e.openBlock(),e.createBlock(s,{key:0,danger:"",icon:e.h(e.unref(C.DeleteOutlined))},{default:e.withCtx(()=>o[3]||(o[3]=[e.createTextVNode(" 删除字典项 ")])),_:1},8,["icon"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),e.createElementVNode("div",F,[e.createVNode(O,{gutter:24,class:"dict-row"},{default:e.withCtx(()=>[e.createVNode(w,{span:7,class:"dict-left"},{default:e.withCtx(()=>[o[4]||(o[4]=e.createElementVNode("div",null,"字典项:",-1)),e.createElementVNode("div",G,[e.createVNode(M,{showLine:"",expandedKeys:d.value,loadedKeys:_.value,treeData:i.value,onExpand:I,loadData:b,onSelect:E},null,8,["expandedKeys","loadedKeys","treeData"])])]),_:1}),e.createVNode(w,{span:17,class:"dict-right"},{default:e.withCtx(()=>[e.createVNode(l,{column:1,bordered:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(a,{label:"字典名称"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.title),1)]),_:1}),e.createVNode(a,{label:"字典取值"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.value),1)]),_:1}),e.createVNode(a,{label:"排序号"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.seqNo),1)]),_:1}),e.createVNode(a,{label:"状态"},{default:e.withCtx(()=>[n.value.state==="E"?(e.openBlock(),e.createBlock(g,{key:0,color:"green"},{default:e.withCtx(()=>o[5]||(o[5]=[e.createTextVNode("启用")])),_:1})):n.value.state==="D"?(e.openBlock(),e.createBlock(g,{key:1,color:"red"},{default:e.withCtx(()=>o[6]||(o[6]=[e.createTextVNode("禁用")])),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(a,{label:"描述"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.remark),1)]),_:1})]),_:1})]),_:1})]),_:1})]),e.createVNode(A.default,{open:c.value.open,"dict-id":c.value.dictId,"item-id":c.value.itemId,mode:c.value.mode,onSuccess:K,onCancel:o[0]||(o[0]=Q=>c.value.open=!1)},null,8,["open","dict-id","item-id","mode"])]),_:1})}}});exports.default=H;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@since2006/utils");function r(t){return i.http.get("/api/1/dict/query_dictionaries",{params:t})}function c(){return i.http.postForm("/api/1/dict/refresh_dictionaries")}function n(t){return i.http.postForm("/api/1/dict/remove_dictionary",{id:t})}function a(t){return i.http.postForm("/api/1/dict/add_dictionary",t)}function o(t){return i.http.get("/api/1/dict/get_dictionary",{params:{id:t}})}function d(t){return i.http.postForm("/api/1/dict/update_dictionary",t)}function p(t,e){return i.http.get("/api/1/dict/admin/get_dict_items",{params:{dictId:t,id:e}})}function u(t){return i.http.get("/api/1/dict/get_dict_item",{params:{id:t}})}function m(t){return i.http.postForm("/api/1/dict/add_dict_item",t)}function s(t){return i.http.postForm("/api/1/dict/update_dict_item",t)}function D(t){return i.http.postForm("/api/1/dict/admin/delete_dict_item",{id:t})}exports.addDictItem=m;exports.addDictionary=a;exports.deleteDictItem=D;exports.getAdminDictItems=p;exports.getDictItem=u;exports.getDictionary=o;exports.queryDictionaries=r;exports.refreshDictionaries=c;exports.removeDictionary=n;exports.updateDictItem=s;exports.updateDictionary=d;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./DictIndex.vue.js"),l=require("./DictPanel.vue.js"),e=require("@since2006/utils"),t=e.withInstall(i.default),n=e.withInstall(l.default);exports.DictIndex=t;exports.DictPanel=n;exports.default=t;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./app/system/index.js"),n=require("./app/module/index.js"),d=require("./app/schedule/index.js"),t=require("./app/attachment/index.js"),x=require("./app/metadata/index.js"),r=require("./app/log/index.js");exports.StatusIndex=e.StatusIndex;exports.ModuleIndex=n.ModuleIndex;exports.ScheduleIndex=d.ScheduleIndex;exports.AttachmentIndex=t.AttachmentIndex;exports.MetadataIndex=x.MetadataIndex;exports.LogIndex=r.LogIndex;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./app/system/index.js"),t=require("./app/module/index.js"),d=require("./app/schedule/index.js"),i=require("./app/attachment/index.js"),x=require("./app/metadata/index.js"),r=require("./app/log/index.js"),e=require("./app/dict/index.js");exports.StatusIndex=n.StatusIndex;exports.ModuleIndex=t.ModuleIndex;exports.ScheduleIndex=d.ScheduleIndex;exports.AttachmentIndex=i.AttachmentIndex;exports.MetadataIndex=x.MetadataIndex;exports.LogIndex=r.LogIndex;exports.DictIndex=e.DictIndex;exports.DictPanel=e.DictPanel;
@@ -1 +1 @@
1
- .large-text[data-v-92532804]{font-size:16px}.float-right[data-v-92532804]{float:right}.margin-block[data-v-92532804]{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}[data-v-ae963ea6] .ant-pro-table-list-toolbar-container{padding-left:6px}.cron-detail[data-v-f256dc3c]{border:1px dashed #a6a6a6;padding:6px;line-height:1.5;margin:4px 0}.cron-detail .ant-input-number[data-v-f256dc3c]{width:70px}.cron-detail .ant-input[data-v-f256dc3c]{width:280px}.cron-detail[data-v-50931e68]{border:1px dashed #a6a6a6;padding:6px;line-height:1.5;margin:4px 0}.cron-detail .ant-input-number[data-v-50931e68]{width:70px}.cron-detail .ant-input[data-v-50931e68]{width:280px}[data-v-de0bbc9f] .ant-descriptions-item-label,[data-v-cec99bb6] .ant-descriptions-item-label{width:140px}.ua-icon[data-v-8b2a1553]{width:1.2em;height:1.2em;vertical-align:-.15em;fill:currentColor;overflow:hidden}
1
+ .large-text[data-v-92532804]{font-size:16px}.float-right[data-v-92532804]{float:right}.margin-block[data-v-92532804]{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}[data-v-ae963ea6] .ant-pro-table-list-toolbar-container{padding-left:6px}.cron-detail[data-v-f256dc3c]{border:1px dashed #a6a6a6;padding:6px;line-height:1.5;margin:4px 0}.cron-detail .ant-input-number[data-v-f256dc3c]{width:70px}.cron-detail .ant-input[data-v-f256dc3c]{width:280px}.cron-detail[data-v-50931e68]{border:1px dashed #a6a6a6;padding:6px;line-height:1.5;margin:4px 0}.cron-detail .ant-input-number[data-v-50931e68]{width:70px}.cron-detail .ant-input[data-v-50931e68]{width:280px}[data-v-de0bbc9f] .ant-descriptions-item-label,[data-v-cec99bb6] .ant-descriptions-item-label{width:140px}.ua-icon[data-v-8b2a1553]{width:1.2em;height:1.2em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.notice[data-v-112d54e0]{color:#ff4d4f;font-size:18px}.table-operator[data-v-279477c8]{margin:10px 14px 20px 0}[data-v-279477c8] .ant-descriptions-item-label{width:140px}.tree-container[data-v-279477c8] .ant-tree{max-height:540px;overflow:auto}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@since2006/pages",
3
3
  "private": false,
4
- "version": "2025.8.3",
4
+ "version": "2025.8.5",
5
5
  "description": "基于 Ant Design Vue 的页面库",
6
6
  "type": "module",
7
7
  "main": "dist/lib/index.js",