@jeecg/online 3.6.2-beta → 3.7.1-RC
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/AiModal-6de335e3.mjs +84 -0
- package/AuthButtonConfig-89763932.mjs +154 -0
- package/{AuthButtonTree-3aa0ed49.mjs → AuthButtonTree-2d87d0b3.mjs} +6 -5
- package/AuthDataConfig-5c3a8e6b.mjs +238 -0
- package/{AuthDataTree-94e026e3.mjs → AuthDataTree-dd7a1240.mjs} +6 -6
- package/AuthFieldConfig-9f6fa06c.mjs +245 -0
- package/{AuthFieldTree-69864163.mjs → AuthFieldTree-e326fc38.mjs} +2 -2
- package/AuthManagerDrawer-76f15e8d.mjs +119 -0
- package/AuthSetterModal-f5d2e87f.mjs +274 -0
- package/{CgformCopyList-14b76108.mjs → CgformCopyList-365b3e8f.mjs} +49 -46
- package/CgformModal-21c5c387.mjs +671 -0
- package/{CgreportModal.vue_vue_type_script_setup_true_lang-c89d9222.mjs → CgreportModal-edefa8e3.mjs} +153 -129
- package/CheckDictTable-1bc8322d.mjs +229 -0
- package/{CodeFileListModal-a6d3290d.mjs → CodeFileListModal-24601898.mjs} +5 -4
- package/CodeFileViewModal-2fe911f4.mjs +253 -0
- package/CodeGeneratorModal-f09fe903.mjs +282 -0
- package/CustomButtonList-f07bc695.mjs +397 -0
- package/{DBAttributeTable-370de07b.mjs → DBAttributeTable-285d40db.mjs} +118 -89
- package/DbToOnlineModal-5dcb67c3.mjs +169 -0
- package/DetailForm-deecbf3d.mjs +486 -0
- package/{EnhanceJavaModal-f63aa2d3.mjs → EnhanceJavaModal-45c66cd5.mjs} +3 -3
- package/{EnhanceJsHistory-352b46b1.mjs → EnhanceJsHistory-fab3102e.mjs} +2 -2
- package/EnhanceJsModal-175357a1.mjs +548 -0
- package/{EnhanceSqlModal-5e4ae84f.mjs → EnhanceSqlModal-7ea1b300.mjs} +3 -3
- package/ExtendConfigModal-a89ae052.mjs +117 -0
- package/FieldExtendJsonModal-32135634.mjs +277 -0
- package/{FileSelectModal-9a02560b.mjs → FileSelectModal-1643c8b9.mjs} +1 -1
- package/{ForeignKeyTable-6a843c4b.mjs → ForeignKeyTable-7f7e28a7.mjs} +3 -3
- package/{IndexTable-f8af9d44.mjs → IndexTable-cdcc2b48.mjs} +28 -20
- package/{JModalTip-33c7dc44.mjs → JModalTip-b055ab60.mjs} +1 -1
- package/JOnlineSearchSelect-22aae934.mjs +128 -0
- package/{LeftDepart-fa85523d.mjs → LeftDepart-d5615ed9.mjs} +1 -1
- package/{LeftRole-8b8dfe21.mjs → LeftRole-2ed8a2bf.mjs} +1 -1
- package/{LeftUser-dc24ef2f.mjs → LeftUser-22baa378.mjs} +3 -3
- package/LinkTableConfigModal-9242d750.mjs +240 -0
- package/{LinkTableFieldConfigModal-787bc55c.mjs → LinkTableFieldConfigModal-24adc50c.mjs} +41 -41
- package/{LinkTableListPiece-8499a318.mjs → LinkTableListPiece-f3a8e0d7.mjs} +1 -1
- package/{ModalFormDemo-977a49eb.mjs → ModalFormDemo-711418db.mjs} +1 -1
- package/OnlCgformErpList-58acdfa0.mjs +470 -0
- package/OnlCgformErpSubTable-9b1e1938.mjs +426 -0
- package/OnlCgformInnerSubTable-6c23781f.mjs +265 -0
- package/OnlCgformInnerTableList-4b5e14ed.mjs +458 -0
- package/OnlCgformTabList-019ad753.mjs +408 -0
- package/OnlineAutoList-48589d09.mjs +493 -0
- package/OnlineAutoModal-c2928847.mjs +239 -0
- package/{OnlineAutoTreeList-89265688.mjs → OnlineAutoTreeList-3baa1d00.mjs} +207 -204
- package/{OnlineCustomModal-518ad33c.mjs → OnlineCustomModal-9e17b6ce.mjs} +16 -12
- package/{OnlineDetailModal-9675390d.mjs → OnlineDetailModal-d5895734.mjs} +74 -64
- package/OnlineForm-9f1153ba.mjs +985 -0
- package/OnlineForm.vue_vue_type_style_index_0_scoped_4657b304_lang-4ed993c7.mjs +1 -0
- package/OnlineFormDetail-022ca117.mjs +342 -0
- package/OnlineFormUrlAdd-9715d70a.mjs +115 -0
- package/OnlineFormUrlDetail-8f864b1a.mjs +119 -0
- package/OnlineFormUrlEdit-ac985b36.mjs +113 -0
- package/OnlineFormUrlSuccess-3dfc54ab.mjs +59 -0
- package/OnlineQueryForm-eedb9a60.mjs +466 -0
- package/{OnlineSearchFormItem-0cc85a8a.mjs → OnlineSearchFormItem-6c557343.mjs} +2 -2
- package/{OnlineSelectCascade-4265c95d.mjs → OnlineSelectCascade-05c40fef.mjs} +1 -1
- package/{OnlineSubFormDetail-f0d2c016.mjs → OnlineSubFormDetail-58e896ce.mjs} +30 -28
- package/OnlineTabAutoModal-47b18ad6.mjs +306 -0
- package/{OnlineTabDetailModal-7356d3a8.mjs → OnlineTabDetailModal-82de1465.mjs} +22 -20
- package/OnlineTabForm-27655c83.mjs +817 -0
- package/OnlineTabFormDetail-8d0c40c0.mjs +327 -0
- package/PageAttributeTable-25e3b7da.mjs +466 -0
- package/{ProcessOnlineForm-67558898.mjs → ProcessOnlineForm-148632fe.mjs} +66 -56
- package/QueryTable-f7bfca7f.mjs +147 -0
- package/SetSwitchOptions-b2af757f.mjs +62 -0
- package/SuperQuery-a8592995.mjs +967 -0
- package/auth.api-ea1d33d4.mjs +41 -0
- package/auth.data-511e5197.mjs +217 -0
- package/{cgform.data-cbdd88c3.mjs → cgform.data-475d4984.mjs} +5 -1
- package/constant-fa63bd66.mjs +10 -0
- package/{enhance.data-efc7e155.mjs → enhance.data-a67572e1.mjs} +11 -10
- package/index-1d1a6e56.mjs +57 -0
- package/{index-b7a05eef.mjs → index-30e0e923.mjs} +396 -362
- package/{index-49508cad.mjs → index-f30613d1.mjs} +29 -27
- package/main.index.js +1 -1
- package/package.json +1 -1
- package/style.css +1 -1
- package/useCgformList-f41d4dc1.mjs +426 -0
- package/useExtendComponent-dcae5c78.mjs +4399 -0
- package/useFormUrl-2ee1a82d.mjs +24 -0
- package/useListButton-bfac4ecf.mjs +697 -0
- package/{useSchemas-0433a403.mjs → useSchemas-a9c75b0f.mjs} +191 -101
- package/useTableSync-d7e9f18d.mjs +89 -0
- package/AuthButtonConfig-244ec09f.mjs +0 -125
- package/AuthDataConfig-83891eea.mjs +0 -212
- package/AuthFieldConfig-6b21915c.mjs +0 -139
- package/AuthManagerDrawer-300dd4e4.mjs +0 -114
- package/AuthSetterModal-a414fb35.mjs +0 -267
- package/CgformModal-eccfc38e.mjs +0 -611
- package/CgreportModal-2065f5a9.mjs +0 -13
- package/CheckDictTable-134cbb83.mjs +0 -211
- package/CodeFileViewModal-373e8058.mjs +0 -244
- package/CodeGeneratorModal-f08a89cd.mjs +0 -233
- package/CustomButtonList-02e3d897.mjs +0 -363
- package/DbToOnlineModal-9f13956f.mjs +0 -160
- package/DetailForm-424638eb.mjs +0 -462
- package/EnhanceJsModal-05c73a59.mjs +0 -311
- package/ExtendConfigModal-1dde390a.mjs +0 -111
- package/FieldExtendJsonModal-a70a9ccd.mjs +0 -219
- package/JOnlineSearchSelect-c287af12.mjs +0 -95
- package/LinkTableConfigModal-d4fbdef2.mjs +0 -230
- package/OnlCgformErpList-db45e22b.mjs +0 -454
- package/OnlCgformErpSubTable-54b50eec.mjs +0 -403
- package/OnlCgformInnerSubTable-fbca73e0.mjs +0 -253
- package/OnlCgformInnerTableList-782eaf04.mjs +0 -444
- package/OnlCgformTabList-a9e1e36a.mjs +0 -395
- package/OnlineAutoList-0583a910.mjs +0 -479
- package/OnlineAutoModal-510991eb.mjs +0 -207
- package/OnlineForm-1fa2d893.mjs +0 -750
- package/OnlineFormDetail-0e7294ca.mjs +0 -297
- package/OnlineQueryForm-1bfc8320.mjs +0 -386
- package/OnlineTabAutoModal-6f636ee2.mjs +0 -254
- package/OnlineTabForm-512d3951.mjs +0 -766
- package/OnlineTabFormDetail-5a70219d.mjs +0 -324
- package/PageAttributeTable-965dc58e.mjs +0 -404
- package/QueryTable-eb9a5b21.mjs +0 -115
- package/SuperQuery-5d1ca957.mjs +0 -843
- package/auth.api-d3a6c4b3.mjs +0 -39
- package/auth.data-8be5c9e3.mjs +0 -141
- package/constant-754f1a9d.mjs +0 -9
- package/index-0e3ab3af.mjs +0 -56
- package/useCgformList-423282b7.mjs +0 -400
- package/useExtendComponent-325fe3f1.mjs +0 -3926
- package/useListButton-cdbab702.mjs +0 -676
- package/useTableSync-774c3774.mjs +0 -87
|
@@ -0,0 +1,671 @@
|
|
|
1
|
+
var ze = Object.defineProperty, Xe = Object.defineProperties;
|
|
2
|
+
var We = Object.getOwnPropertyDescriptors;
|
|
3
|
+
var re = Object.getOwnPropertySymbols;
|
|
4
|
+
var Ze = Object.prototype.hasOwnProperty, ea = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var ue = (a, n, c) => n in a ? ze(a, n, { enumerable: !0, configurable: !0, writable: !0, value: c }) : a[n] = c, O = (a, n) => {
|
|
6
|
+
for (var c in n || (n = {}))
|
|
7
|
+
Ze.call(n, c) && ue(a, c, n[c]);
|
|
8
|
+
if (re)
|
|
9
|
+
for (var c of re(n))
|
|
10
|
+
ea.call(n, c) && ue(a, c, n[c]);
|
|
11
|
+
return a;
|
|
12
|
+
}, de = (a, n) => Xe(a, We(n));
|
|
13
|
+
var D = (a, n, c) => new Promise((E, h) => {
|
|
14
|
+
var p = (T) => {
|
|
15
|
+
try {
|
|
16
|
+
F(c.next(T));
|
|
17
|
+
} catch (g) {
|
|
18
|
+
h(g);
|
|
19
|
+
}
|
|
20
|
+
}, _ = (T) => {
|
|
21
|
+
try {
|
|
22
|
+
F(c.throw(T));
|
|
23
|
+
} catch (g) {
|
|
24
|
+
h(g);
|
|
25
|
+
}
|
|
26
|
+
}, F = (T) => T.done ? E(T.value) : Promise.resolve(T.value).then(p, _);
|
|
27
|
+
F((c = c.apply(a, n)).next());
|
|
28
|
+
});
|
|
29
|
+
import { defineComponent as aa, ref as y, computed as ce, provide as be, reactive as ta, nextTick as Z, toRaw as la, resolveComponent as m, openBlock as S, createBlock as ee, mergeProps as na, withCtx as b, createElementVNode as P, createVNode as u, createTextVNode as w, createElementBlock as ae, Fragment as oa, renderList as ia, toDisplayString as sa, createCommentVNode as te } from "vue";
|
|
30
|
+
import { Icon as ra } from "/@/components/Icon";
|
|
31
|
+
import { BasicModal as ua, useModalInner as da, useModal as ca } from "/@/components/Modal";
|
|
32
|
+
import { BasicForm as ba, useForm as fa } from "/@/components/Form/index";
|
|
33
|
+
import { useMessage as ma } from "/@/hooks/web/useMessage";
|
|
34
|
+
import { u as ga } from "./useSchemas-a9c75b0f.mjs";
|
|
35
|
+
import pa from "./DBAttributeTable-285d40db.mjs";
|
|
36
|
+
import Ta from "./PageAttributeTable-25e3b7da.mjs";
|
|
37
|
+
import ya from "./CheckDictTable-1bc8322d.mjs";
|
|
38
|
+
import va from "./ForeignKeyTable-7f7e28a7.mjs";
|
|
39
|
+
import ha from "./IndexTable-cdcc2b48.mjs";
|
|
40
|
+
import Fa from "./QueryTable-f7bfca7f.mjs";
|
|
41
|
+
import Ca from "./ExtendConfigModal-a89ae052.mjs";
|
|
42
|
+
import { u as Da, E as _a, a as wa, V as M } from "./cgform.data-475d4984.mjs";
|
|
43
|
+
import { defHttp as v } from "/@/utils/http/axios";
|
|
44
|
+
import { simpleDebounce as Ba } from "/@/utils/common/compUtils";
|
|
45
|
+
import { u as ka } from "./useOnlineTest-e4bd8be3.mjs";
|
|
46
|
+
import { buildUUID as Ia } from "/@/utils/uuid";
|
|
47
|
+
import { sleep as V } from "/@/utils";
|
|
48
|
+
import { g as Ra } from "./useExtendComponent-dcae5c78.mjs";
|
|
49
|
+
import { _ as Sa } from "./index-1d1a6e56.mjs";
|
|
50
|
+
const rt = (a) => v.get({ url: "/online/cgform/head/list", params: a }), ut = (a) => fe(a, 0), dt = (a) => v.delete(
|
|
51
|
+
{ url: "/online/cgform/head/removeRecord", params: { id: a } },
|
|
52
|
+
{ joinParamsToUrl: !0 }
|
|
53
|
+
), ct = (a) => fe(a, 1), bt = (a) => v.delete(
|
|
54
|
+
{ url: "/online/cgform/head/delete", params: { id: a } },
|
|
55
|
+
{ joinParamsToUrl: !0 }
|
|
56
|
+
);
|
|
57
|
+
function fe(a, n) {
|
|
58
|
+
return v.delete(
|
|
59
|
+
{
|
|
60
|
+
url: "/online/cgform/head/deleteBatch",
|
|
61
|
+
params: {
|
|
62
|
+
ids: a.join(","),
|
|
63
|
+
flag: n
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{ joinParamsToUrl: !0 }
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
const ft = (a, n) => v.post({ url: `/online/cgform/api/doDbSynch/${a}/${n}`, timeout: 12e3, timeoutErrorMessage: "同步数据库超时,已自动刷新" }), mt = (a) => v.post({ url: `/online/cgform/head/copyOnline?code=${a}` }), gt = (a, n, c) => v.get({ url: `/online/cgform/head/copyOnlineTable/${a}`, params: O({ tableName: n }, c) }), q = {
|
|
70
|
+
// 查询表字段 e3e3NcxzbUiGa53YYVXxWc8ADo5ISgQGx/gaZwERF91oAryDlivjqBv3wqRArgChupi+Y/Gg/swwGEyL0PuVFg==
|
|
71
|
+
doQueryField: (a, n) => v.get({ url: "/online/cgform/field/listByHeadId", params: O({ headId: a }, n) }),
|
|
72
|
+
// 查询表index配置
|
|
73
|
+
doQueryIndexes: (a, n) => v.get({ url: "/online/cgform/index/listByHeadId", params: O({ headId: a }, n) }),
|
|
74
|
+
// 新增或修改
|
|
75
|
+
doSaveOrUpdate: (a, n) => n ? v.put({ url: "/online/cgform/api/editAll", params: a }) : v.post({ url: "/online/cgform/api/addAll", params: a }),
|
|
76
|
+
//只是修改表配置不改字段
|
|
77
|
+
editHead: (a) => v.put({ url: "/online/cgform/head/edit", params: a })
|
|
78
|
+
}, Ea = aa({
|
|
79
|
+
name: "CgformModal",
|
|
80
|
+
components: {
|
|
81
|
+
BasicModal: ua,
|
|
82
|
+
BasicForm: ba,
|
|
83
|
+
DBAttributeTable: pa,
|
|
84
|
+
PageAttributeTable: Ta,
|
|
85
|
+
CheckDictTable: ya,
|
|
86
|
+
ForeignKeyTable: va,
|
|
87
|
+
IndexTable: ha,
|
|
88
|
+
QueryTable: Fa,
|
|
89
|
+
ExtendConfigModal: Ca,
|
|
90
|
+
Icon: ra
|
|
91
|
+
},
|
|
92
|
+
emits: ["success", "register"],
|
|
93
|
+
props: {
|
|
94
|
+
actionButton: {
|
|
95
|
+
type: Boolean,
|
|
96
|
+
default: !0,
|
|
97
|
+
required: !1
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
setup(a, { emit: n }) {
|
|
101
|
+
const { createMessage: c } = ma(), E = y(), h = y(!1);
|
|
102
|
+
let p = {};
|
|
103
|
+
const _ = ce(() => h.value ? "编辑" : "新增"), F = y(!0), T = y(!1), g = y("dbTable"), A = y(!0), d = {
|
|
104
|
+
dbTable: y(),
|
|
105
|
+
pageTable: y(),
|
|
106
|
+
checkTable: y(),
|
|
107
|
+
fkTable: y(),
|
|
108
|
+
idxTable: y(),
|
|
109
|
+
queryTable: y()
|
|
110
|
+
}, J = ce(() => {
|
|
111
|
+
var e, t;
|
|
112
|
+
return (t = (e = E.value) == null ? void 0 : e.fullScreenRef) != null ? t : !1;
|
|
113
|
+
});
|
|
114
|
+
be("tables", d), be("fullScreenRef", J);
|
|
115
|
+
const N = { value: {} }, B = y(""), { formSchemas: K } = ga(a, N, {
|
|
116
|
+
onTableTypeChange: Be,
|
|
117
|
+
onIsTreeChange: ke,
|
|
118
|
+
ifShowOfSubTableStr: () => ne
|
|
119
|
+
}), [H, I] = fa({
|
|
120
|
+
schemas: K,
|
|
121
|
+
showActionButtonGroup: !1,
|
|
122
|
+
labelAlign: "right"
|
|
123
|
+
}), { resetFields: j, setFieldsValue: L, validate: G } = I, [Y, { closeModal: z }] = da((e) => {
|
|
124
|
+
var t;
|
|
125
|
+
h.value = (t = e == null ? void 0 : e.isUpdate) != null ? t : !1, h.value ? oe(e == null ? void 0 : e.record) : he();
|
|
126
|
+
}), $ = y("");
|
|
127
|
+
let s = ta({});
|
|
128
|
+
const X = Ba(() => Ie(), 150);
|
|
129
|
+
let le = [], ne = !1, x = !1, k = [];
|
|
130
|
+
const { aiTestMode: me, aiTestTable: ge, aiTableList: pe, initVirtualData: Te, tableJsonGetHelper: ye, refreshCacheTableName: ve } = ka();
|
|
131
|
+
function he() {
|
|
132
|
+
oe({});
|
|
133
|
+
}
|
|
134
|
+
function oe(e) {
|
|
135
|
+
return D(this, null, function* () {
|
|
136
|
+
var t;
|
|
137
|
+
if (F.value = !1, g.value = "dbTable", yield j(), p = Object.assign({}, e), _e(p), B.value = "", ye(p), De(p), L(p), $.value = p.tableName, V(1, () => A.value = !1), h.value)
|
|
138
|
+
(t = d.dbTable.value) == null || t.setDataSource([]), yield Fe(p.id), yield Ce(p.id), Ra(d.pageTable).then(() => {
|
|
139
|
+
d.pageTable.value.changePageType(p.tableType == 3);
|
|
140
|
+
});
|
|
141
|
+
else {
|
|
142
|
+
let { initialData: l, tempIds: o } = Da();
|
|
143
|
+
yield ie(l, !0), le = o;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
function Fe(e) {
|
|
148
|
+
return D(this, null, function* () {
|
|
149
|
+
T.value = !0;
|
|
150
|
+
try {
|
|
151
|
+
let t = yield q.doQueryField(e);
|
|
152
|
+
T.value = !1, yield ie(t);
|
|
153
|
+
} finally {
|
|
154
|
+
T.value = !1;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
function Ce(e) {
|
|
159
|
+
return D(this, null, function* () {
|
|
160
|
+
let t = yield q.doQueryIndexes(e);
|
|
161
|
+
d.idxTable.value.setDataSource(t);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
function De(e) {
|
|
165
|
+
let t = {};
|
|
166
|
+
if (e.extConfigJson)
|
|
167
|
+
try {
|
|
168
|
+
t = JSON.parse(e.extConfigJson);
|
|
169
|
+
} catch (l) {
|
|
170
|
+
}
|
|
171
|
+
s = Object.assign({}, _a, t, {
|
|
172
|
+
isDesForm: e.isDesForm || "N",
|
|
173
|
+
desFormCode: e.desFormCode || ""
|
|
174
|
+
}), N.value = s;
|
|
175
|
+
}
|
|
176
|
+
function _e(e) {
|
|
177
|
+
x = e.isTree == "Y", ne = e.tableType === 2;
|
|
178
|
+
}
|
|
179
|
+
function ie(e, t) {
|
|
180
|
+
return D(this, null, function* () {
|
|
181
|
+
const { dbTable: l, pageTable: o, checkTable: r, fkTable: i, queryTable: f } = d;
|
|
182
|
+
l.value || (yield Z(), yield V(1)), l.value.setDataSource(e, t), setTimeout(() => {
|
|
183
|
+
o.value.setDataSource(e, t), r.value.setDataSource(e, t), i.value.setDataSource(e, t), f.value.setDataSource(e, t);
|
|
184
|
+
}, 10);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function we(e) {
|
|
188
|
+
if (["pageTable", "checkTable", "fkTable", "idxTable", "queryTable"].indexOf(e) !== -1) {
|
|
189
|
+
const t = d.dbTable, l = d[e];
|
|
190
|
+
t.value.tableRef.resetScrollTop(), l.value.syncTable(t);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
function Be(e) {
|
|
194
|
+
e === 1 && L({ themeTemplate: "normal" }), d.pageTable.value.changePageType(e == 3);
|
|
195
|
+
}
|
|
196
|
+
function ke(e) {
|
|
197
|
+
e === "Y" ? Le() : $e();
|
|
198
|
+
}
|
|
199
|
+
function W() {
|
|
200
|
+
X();
|
|
201
|
+
}
|
|
202
|
+
function Ie() {
|
|
203
|
+
return D(this, null, function* () {
|
|
204
|
+
let { dbTable: e, pageTable: t, checkTable: l, fkTable: o, queryTable: r } = d;
|
|
205
|
+
yield t.value.syncTable(e), yield l.value.syncTable(e), yield o.value.syncTable(e), yield r.value.syncTable(e);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
function Re() {
|
|
209
|
+
W();
|
|
210
|
+
}
|
|
211
|
+
function Se() {
|
|
212
|
+
W();
|
|
213
|
+
}
|
|
214
|
+
function Ee(e) {
|
|
215
|
+
let { oldIndex: t, newIndex: l } = e;
|
|
216
|
+
Ne(t, l);
|
|
217
|
+
}
|
|
218
|
+
function Ae(e) {
|
|
219
|
+
return D(this, null, function* () {
|
|
220
|
+
let { insertIndex: t, row: l } = e, { pageTable: o, checkTable: r, fkTable: i, queryTable: f } = d;
|
|
221
|
+
o.value.tableRef.insertRows(l, t), r.value.tableRef.insertRows(l, t), i.value.tableRef.insertRows(l, t), f.value.tableRef.insertRows(l, t);
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
function Ne(e, t) {
|
|
225
|
+
let { pageTable: l, checkTable: o, fkTable: r, queryTable: i } = d;
|
|
226
|
+
l.value.tableRef.rowResort(e, t), o.value.tableRef.rowResort(e, t), r.value.tableRef.rowResort(e, t), i.value.tableRef.rowResort(e, t);
|
|
227
|
+
}
|
|
228
|
+
function Oe(e) {
|
|
229
|
+
d.pageTable.value.syncFieldShowType(e.row);
|
|
230
|
+
}
|
|
231
|
+
function Pe(e) {
|
|
232
|
+
d.pageTable.value.syncIsQuery(e.row);
|
|
233
|
+
}
|
|
234
|
+
function Me(e) {
|
|
235
|
+
d.checkTable.value.syncFieldMustInput(e.row);
|
|
236
|
+
}
|
|
237
|
+
function je(e) {
|
|
238
|
+
d.pageTable.value.enableQuery(e);
|
|
239
|
+
}
|
|
240
|
+
function Le() {
|
|
241
|
+
if (!x) {
|
|
242
|
+
let { dbTable: e, pageTable: t, checkTable: l } = d, o = wa();
|
|
243
|
+
o = o.filter((r) => !e.value.tableRef.getTableData().map((f) => f.dbFieldName).includes(r.dbFieldName)), k = [], o.forEach((r) => {
|
|
244
|
+
let i = Ia() + "__tempId";
|
|
245
|
+
k.push(i), r.id = i;
|
|
246
|
+
}), e.value.tableRef.addRows(o, { setActive: !1 }), t.value.tableRef.addRows(o, { setActive: !1 }), l.value.tableRef.addRows(o, { setActive: !1 }), Z(() => W()), x = !0;
|
|
247
|
+
}
|
|
248
|
+
Z(() => {
|
|
249
|
+
I.setFieldsValue({
|
|
250
|
+
treeIdField: "has_child",
|
|
251
|
+
treeParentIdField: "pid"
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
function $e() {
|
|
256
|
+
if (k && k.length > 0) {
|
|
257
|
+
let { dbTable: e } = d;
|
|
258
|
+
e.value.tableDeleteLines(k), k = [], x = !1;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
function xe() {
|
|
262
|
+
let e = {};
|
|
263
|
+
return new Promise((t, l) => {
|
|
264
|
+
G().then(
|
|
265
|
+
(o) => t({ values: o }),
|
|
266
|
+
() => l(M)
|
|
267
|
+
);
|
|
268
|
+
}).then((t) => (Object.assign(e, t), Qe())).then((t) => {
|
|
269
|
+
Object.assign(e, t);
|
|
270
|
+
let l = Ue(e);
|
|
271
|
+
return Ve(l);
|
|
272
|
+
}).catch((t) => (t === M || (t == null ? void 0 : t.code) === M ? c.warning("校验未通过") : t != null && t.msg && c.warning(t.msg), Promise.reject(null)));
|
|
273
|
+
}
|
|
274
|
+
function Qe() {
|
|
275
|
+
return new Promise((e, t) => D(this, null, function* () {
|
|
276
|
+
let l = Object.keys(d), o = {};
|
|
277
|
+
for (let r = 0; r < l.length; r++) {
|
|
278
|
+
let i = l[r], f = d[i];
|
|
279
|
+
try {
|
|
280
|
+
o[i] = yield f.value.validateData(i);
|
|
281
|
+
} catch (C) {
|
|
282
|
+
C.code === M && (g.value = C.activeKey), t(C);
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
e(o);
|
|
287
|
+
}));
|
|
288
|
+
}
|
|
289
|
+
function Ue(e) {
|
|
290
|
+
let t = {
|
|
291
|
+
head: {},
|
|
292
|
+
fields: [],
|
|
293
|
+
indexs: [],
|
|
294
|
+
deleteFieldIds: [],
|
|
295
|
+
deleteIndexIds: []
|
|
296
|
+
};
|
|
297
|
+
return t.head = Object.assign(p, e.values), t.head.isDesForm = s.isDesForm, t.head.desFormCode = s.desFormCode, delete s.isDesForm, delete s.desFormCode, t.head.extConfigJson = JSON.stringify(s), e.dbTable.tableData.forEach((l, o) => {
|
|
298
|
+
let r = l.id, i = Object.assign({}, l), f = e.pageTable.tableData[o];
|
|
299
|
+
i = Object.assign(f, i);
|
|
300
|
+
let C = e.checkTable.tableData[o];
|
|
301
|
+
i = Object.assign(C, i);
|
|
302
|
+
let Q = e.fkTable.tableData[o];
|
|
303
|
+
i = Object.assign(Q, i);
|
|
304
|
+
let U = e.queryTable.tableData[o];
|
|
305
|
+
i = Object.assign(U, i), r == null || r === "" ? delete i.id : i.id = r, [].concat(le, k).includes(i.id) && delete i.id, t.fields.push(i);
|
|
306
|
+
}), t.deleteFieldIds = e.dbTable.deleteIds, t.indexs = e.idxTable.tableData, t.deleteIndexIds = e.idxTable.deleteIds, t;
|
|
307
|
+
}
|
|
308
|
+
function Ve(e) {
|
|
309
|
+
return new Promise((t, l) => {
|
|
310
|
+
let o = e.fields, r = !0;
|
|
311
|
+
if (o && o.length > 0) {
|
|
312
|
+
let i = 0;
|
|
313
|
+
for (let f = 0; f < o.length; f++)
|
|
314
|
+
if ((o[f].mainField || o[f].mainTable) && (i += 1), i > 1) {
|
|
315
|
+
r = !1;
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
r ? t(e) : l({
|
|
320
|
+
code: -1,
|
|
321
|
+
msg: "外键只允许配置一个!",
|
|
322
|
+
error: M
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
function qe() {
|
|
327
|
+
F.value = !0, xe().then(
|
|
328
|
+
(e) => D(this, null, function* () {
|
|
329
|
+
var t;
|
|
330
|
+
if (e.fields && e.fields.length > 0)
|
|
331
|
+
for (let l of e.fields)
|
|
332
|
+
l.dbFieldName = l.dbFieldName.toLowerCase().trim();
|
|
333
|
+
(t = e.head) != null && t.tableName && (e.head.tableName = e.head.tableName.toLowerCase().trim()), yield q.doSaveOrUpdate(e, h.value), ve($.value, e.head.tableName), n("success"), V(1, () => se());
|
|
334
|
+
}),
|
|
335
|
+
(e) => {
|
|
336
|
+
}
|
|
337
|
+
).finally(() => {
|
|
338
|
+
F.value = !1;
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
const [Je, Ke] = ca();
|
|
342
|
+
function He(e) {
|
|
343
|
+
return D(this, null, function* () {
|
|
344
|
+
if (N.value = e, e.joinQuery == 0 && I.validateFields(["themeTemplate"]), s = e, h.value == !0) {
|
|
345
|
+
let t = la(s);
|
|
346
|
+
const l = {
|
|
347
|
+
id: p.id,
|
|
348
|
+
extConfigJson: JSON.stringify(t)
|
|
349
|
+
};
|
|
350
|
+
yield q.editHead(l), n("success");
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
function Ge() {
|
|
355
|
+
Ke.openModal(!0, {
|
|
356
|
+
extConfigJson: s
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
function se() {
|
|
360
|
+
A.value = !0, V(1, () => z());
|
|
361
|
+
}
|
|
362
|
+
const Ye = () => {
|
|
363
|
+
const e = B.value.trim();
|
|
364
|
+
if (e.length) {
|
|
365
|
+
const l = d[g.value].value.tableRef.getXTable(), o = l.getTableData().fullData, r = o.findIndex((f) => e === f.dbFieldName || e === f.dbFieldTxt);
|
|
366
|
+
let i = -1;
|
|
367
|
+
if (r == -1 ? i = o.findIndex((C) => C.dbFieldName.includes(B.value) || C.dbFieldTxt.includes(B.value)) : i = r, i != -1) {
|
|
368
|
+
const f = o[i];
|
|
369
|
+
l.scrollToRow(f).then(() => {
|
|
370
|
+
const { refTableBody: C } = l.getRefMaps(), Q = C.value, U = Q ? Q.$el : null;
|
|
371
|
+
if (U) {
|
|
372
|
+
const R = U.querySelector(`[rowid="${l.getRowid(f)}"]`);
|
|
373
|
+
R && (R.classList.add("customHighlight"), setTimeout(() => {
|
|
374
|
+
R == null || R.classList.remove("customHighlight");
|
|
375
|
+
}, 1e3));
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
} else
|
|
379
|
+
c.warning("没搜到相关字段名称或字段备注~");
|
|
380
|
+
} else
|
|
381
|
+
c.warning("请输入字段名称或字段备注~");
|
|
382
|
+
};
|
|
383
|
+
return de(O({}, d), {
|
|
384
|
+
modalRef: E,
|
|
385
|
+
title: _,
|
|
386
|
+
confirmLoading: F,
|
|
387
|
+
tableLoading: T,
|
|
388
|
+
activeKey: g,
|
|
389
|
+
onCancel: se,
|
|
390
|
+
extConfigJson: s,
|
|
391
|
+
formAction: I,
|
|
392
|
+
hideTabs: A,
|
|
393
|
+
onSubmit: qe,
|
|
394
|
+
onTabsChange: we,
|
|
395
|
+
onTableAdded: Re,
|
|
396
|
+
onTableRemoved: Se,
|
|
397
|
+
onTableDragged: Ee,
|
|
398
|
+
onTableInserted: Ae,
|
|
399
|
+
onTableSyncDbType: Oe,
|
|
400
|
+
onTableQuery: je,
|
|
401
|
+
onOpenExtConfig: Ge,
|
|
402
|
+
onExtConfigOk: He,
|
|
403
|
+
registerForm: H,
|
|
404
|
+
registerModal: Y,
|
|
405
|
+
registerExtendConfigModal: Je,
|
|
406
|
+
// hook OnlineTest
|
|
407
|
+
aiTestMode: me,
|
|
408
|
+
aiTestTable: ge,
|
|
409
|
+
aiTableList: pe,
|
|
410
|
+
initVirtualData: Te,
|
|
411
|
+
onTableSyncDbIsPersist: Pe,
|
|
412
|
+
onTableSyncDbIsNull: Me,
|
|
413
|
+
isUpdate: h,
|
|
414
|
+
positioning: B,
|
|
415
|
+
handlePositioning: Ye
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
});
|
|
419
|
+
const Aa = { style: { flex: "1", "text-align": "right" } }, Na = { class: "footer-area" }, Oa = { class: "rightArea" }, Pa = { class: "leftArea" }, Ma = { key: 0 }, ja = {
|
|
420
|
+
key: 1,
|
|
421
|
+
class: "positioning-area"
|
|
422
|
+
};
|
|
423
|
+
function La(a, n, c, E, h, p) {
|
|
424
|
+
const _ = m("a-button"), F = m("BasicForm"), T = m("DBAttributeTable"), g = m("a-tab-pane"), A = m("PageAttributeTable"), d = m("CheckDictTable"), J = m("ForeignKeyTable"), N = m("IndexTable"), B = m("Icon"), K = m("a-tooltip"), H = m("QueryTable"), I = m("a-tabs"), j = m("a-spin"), L = m("a-select-option"), G = m("a-select"), Y = m("a-input"), z = m("ExtendConfigModal"), $ = m("BasicModal");
|
|
425
|
+
return S(), ee($, na({
|
|
426
|
+
ref: "modalRef",
|
|
427
|
+
title: a.title,
|
|
428
|
+
width: 1200,
|
|
429
|
+
maskClosable: !1,
|
|
430
|
+
defaultFullscreen: !0,
|
|
431
|
+
confirmLoading: a.confirmLoading
|
|
432
|
+
}, a.$attrs, {
|
|
433
|
+
onCancel: a.onCancel,
|
|
434
|
+
onRegister: a.registerModal
|
|
435
|
+
}), {
|
|
436
|
+
footer: b(() => [
|
|
437
|
+
P("div", Na, [
|
|
438
|
+
P("div", Oa, [
|
|
439
|
+
u(_, { onClick: a.onCancel }, {
|
|
440
|
+
default: b(() => [
|
|
441
|
+
w("关闭")
|
|
442
|
+
]),
|
|
443
|
+
_: 1
|
|
444
|
+
}, 8, ["onClick"]),
|
|
445
|
+
u(_, {
|
|
446
|
+
type: "primary",
|
|
447
|
+
loading: a.confirmLoading,
|
|
448
|
+
preIcon: "ant-design:save",
|
|
449
|
+
onClick: a.onSubmit
|
|
450
|
+
}, {
|
|
451
|
+
default: b(() => [
|
|
452
|
+
w("保存")
|
|
453
|
+
]),
|
|
454
|
+
_: 1
|
|
455
|
+
}, 8, ["loading", "onClick"])
|
|
456
|
+
]),
|
|
457
|
+
P("div", Pa, [
|
|
458
|
+
a.aiTestMode && !a.isUpdate ? (S(), ae("div", Ma, [
|
|
459
|
+
u(G, {
|
|
460
|
+
value: a.aiTestTable,
|
|
461
|
+
"onUpdate:value": n[1] || (n[1] = (s) => a.aiTestTable = s),
|
|
462
|
+
placeholder: "请选择测试的数据模型",
|
|
463
|
+
getPopupContainer: (s) => s == null ? void 0 : s.parentElement,
|
|
464
|
+
style: { width: "300px", margin: "0 10px 0 0", "text-align": "left" }
|
|
465
|
+
}, {
|
|
466
|
+
default: b(() => [
|
|
467
|
+
(S(!0), ae(oa, null, ia(a.aiTableList, (s, X) => (S(), ee(L, {
|
|
468
|
+
key: X,
|
|
469
|
+
value: s.name
|
|
470
|
+
}, {
|
|
471
|
+
default: b(() => [
|
|
472
|
+
w(sa(s.title + "(" + s.name + ")"), 1)
|
|
473
|
+
]),
|
|
474
|
+
_: 2
|
|
475
|
+
}, 1032, ["value"]))), 128))
|
|
476
|
+
]),
|
|
477
|
+
_: 1
|
|
478
|
+
}, 8, ["value", "getPopupContainer"]),
|
|
479
|
+
u(_, {
|
|
480
|
+
type: "primary",
|
|
481
|
+
ghost: "",
|
|
482
|
+
onClick: a.initVirtualData
|
|
483
|
+
}, {
|
|
484
|
+
default: b(() => [
|
|
485
|
+
w("生成数据>>")
|
|
486
|
+
]),
|
|
487
|
+
_: 1
|
|
488
|
+
}, 8, ["onClick"])
|
|
489
|
+
])) : te("", !0),
|
|
490
|
+
a.isUpdate ? (S(), ae("div", ja, [
|
|
491
|
+
u(Y, {
|
|
492
|
+
value: a.positioning,
|
|
493
|
+
"onUpdate:value": n[2] || (n[2] = (s) => a.positioning = s),
|
|
494
|
+
placeholder: "请输入字段名称或字段备注",
|
|
495
|
+
allowClear: "",
|
|
496
|
+
onPressEnter: a.handlePositioning
|
|
497
|
+
}, null, 8, ["value", "onPressEnter"]),
|
|
498
|
+
u(_, {
|
|
499
|
+
type: "primary",
|
|
500
|
+
ghost: "",
|
|
501
|
+
onClick: a.handlePositioning
|
|
502
|
+
}, {
|
|
503
|
+
default: b(() => [
|
|
504
|
+
w("定位")
|
|
505
|
+
]),
|
|
506
|
+
_: 1
|
|
507
|
+
}, 8, ["onClick"])
|
|
508
|
+
])) : te("", !0)
|
|
509
|
+
])
|
|
510
|
+
])
|
|
511
|
+
]),
|
|
512
|
+
default: b(() => [
|
|
513
|
+
u(j, {
|
|
514
|
+
wrapperClassName: "p-2",
|
|
515
|
+
spinning: a.confirmLoading
|
|
516
|
+
}, {
|
|
517
|
+
default: b(() => [
|
|
518
|
+
u(F, { onRegister: a.registerForm }, {
|
|
519
|
+
extConfigButton: b(() => [
|
|
520
|
+
P("div", Aa, [
|
|
521
|
+
u(_, {
|
|
522
|
+
preIcon: "ant-design:setting",
|
|
523
|
+
onClick: a.onOpenExtConfig
|
|
524
|
+
}, {
|
|
525
|
+
default: b(() => [
|
|
526
|
+
w("扩展配置")
|
|
527
|
+
]),
|
|
528
|
+
_: 1
|
|
529
|
+
}, 8, ["onClick"])
|
|
530
|
+
])
|
|
531
|
+
]),
|
|
532
|
+
_: 1
|
|
533
|
+
}, 8, ["onRegister"]),
|
|
534
|
+
u(j, {
|
|
535
|
+
spinning: a.tableLoading || a.hideTabs
|
|
536
|
+
}, {
|
|
537
|
+
default: b(() => [
|
|
538
|
+
a.hideTabs ? te("", !0) : (S(), ee(I, {
|
|
539
|
+
key: 0,
|
|
540
|
+
activeKey: a.activeKey,
|
|
541
|
+
"onUpdate:activeKey": n[0] || (n[0] = (s) => a.activeKey = s),
|
|
542
|
+
animated: "",
|
|
543
|
+
onChange: a.onTabsChange
|
|
544
|
+
}, {
|
|
545
|
+
default: b(() => [
|
|
546
|
+
u(g, {
|
|
547
|
+
tab: "数据库属性",
|
|
548
|
+
key: "dbTable",
|
|
549
|
+
forceRender: ""
|
|
550
|
+
}, {
|
|
551
|
+
default: b(() => [
|
|
552
|
+
u(T, {
|
|
553
|
+
ref: "dbTable",
|
|
554
|
+
actionButton: a.actionButton,
|
|
555
|
+
onAdded: a.onTableAdded,
|
|
556
|
+
onRemoved: a.onTableRemoved,
|
|
557
|
+
onDragged: a.onTableDragged,
|
|
558
|
+
onInserted: a.onTableInserted,
|
|
559
|
+
onSyncDbType: a.onTableSyncDbType,
|
|
560
|
+
onSyncDbIsPersist: a.onTableSyncDbIsPersist,
|
|
561
|
+
onSyncDbIsNull: a.onTableSyncDbIsNull
|
|
562
|
+
}, null, 8, ["actionButton", "onAdded", "onRemoved", "onDragged", "onInserted", "onSyncDbType", "onSyncDbIsPersist", "onSyncDbIsNull"])
|
|
563
|
+
]),
|
|
564
|
+
_: 1
|
|
565
|
+
}),
|
|
566
|
+
u(g, {
|
|
567
|
+
tab: "页面属性",
|
|
568
|
+
key: "pageTable",
|
|
569
|
+
forceRender: ""
|
|
570
|
+
}, {
|
|
571
|
+
default: b(() => [
|
|
572
|
+
u(A, { ref: "pageTable" }, null, 512)
|
|
573
|
+
]),
|
|
574
|
+
_: 1
|
|
575
|
+
}),
|
|
576
|
+
u(g, {
|
|
577
|
+
tab: "校验字段",
|
|
578
|
+
key: "checkTable",
|
|
579
|
+
forceRender: ""
|
|
580
|
+
}, {
|
|
581
|
+
default: b(() => [
|
|
582
|
+
u(d, { ref: "checkTable" }, null, 512)
|
|
583
|
+
]),
|
|
584
|
+
_: 1
|
|
585
|
+
}),
|
|
586
|
+
u(g, {
|
|
587
|
+
tab: "外键",
|
|
588
|
+
key: "fkTable",
|
|
589
|
+
forceRender: ""
|
|
590
|
+
}, {
|
|
591
|
+
default: b(() => [
|
|
592
|
+
u(J, {
|
|
593
|
+
ref: "fkTable",
|
|
594
|
+
actionButton: a.actionButton
|
|
595
|
+
}, null, 8, ["actionButton"])
|
|
596
|
+
]),
|
|
597
|
+
_: 1
|
|
598
|
+
}),
|
|
599
|
+
u(g, {
|
|
600
|
+
tab: "索引",
|
|
601
|
+
key: "idxTable",
|
|
602
|
+
forceRender: ""
|
|
603
|
+
}, {
|
|
604
|
+
default: b(() => [
|
|
605
|
+
u(N, {
|
|
606
|
+
ref: "idxTable",
|
|
607
|
+
actionButton: a.actionButton
|
|
608
|
+
}, null, 8, ["actionButton"])
|
|
609
|
+
]),
|
|
610
|
+
_: 1
|
|
611
|
+
}),
|
|
612
|
+
u(g, {
|
|
613
|
+
key: "queryTable",
|
|
614
|
+
forceRender: ""
|
|
615
|
+
}, {
|
|
616
|
+
tab: b(() => [
|
|
617
|
+
P("span", null, [
|
|
618
|
+
w(" 个性查询配置 "),
|
|
619
|
+
u(K, null, {
|
|
620
|
+
title: b(() => [
|
|
621
|
+
w("允许自定义,查询表单字段控件类型!")
|
|
622
|
+
]),
|
|
623
|
+
default: b(() => [
|
|
624
|
+
u(B, { icon: "bx:help-circle" })
|
|
625
|
+
]),
|
|
626
|
+
_: 1
|
|
627
|
+
})
|
|
628
|
+
])
|
|
629
|
+
]),
|
|
630
|
+
default: b(() => [
|
|
631
|
+
u(H, {
|
|
632
|
+
ref: "queryTable",
|
|
633
|
+
onQuery: a.onTableQuery
|
|
634
|
+
}, null, 8, ["onQuery"])
|
|
635
|
+
]),
|
|
636
|
+
_: 1
|
|
637
|
+
})
|
|
638
|
+
]),
|
|
639
|
+
_: 1
|
|
640
|
+
}, 8, ["activeKey", "onChange"]))
|
|
641
|
+
]),
|
|
642
|
+
_: 1
|
|
643
|
+
}, 8, ["spinning"])
|
|
644
|
+
]),
|
|
645
|
+
_: 1
|
|
646
|
+
}, 8, ["spinning"]),
|
|
647
|
+
u(z, {
|
|
648
|
+
onRegister: a.registerExtendConfigModal,
|
|
649
|
+
parentForm: a.formAction,
|
|
650
|
+
onOk: a.onExtConfigOk
|
|
651
|
+
}, null, 8, ["onRegister", "parentForm", "onOk"])
|
|
652
|
+
]),
|
|
653
|
+
_: 1
|
|
654
|
+
}, 16, ["title", "confirmLoading", "onCancel", "onRegister"]);
|
|
655
|
+
}
|
|
656
|
+
const $a = /* @__PURE__ */ Sa(Ea, [["render", La], ["__scopeId", "data-v-39524268"]]), pt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
657
|
+
__proto__: null,
|
|
658
|
+
default: $a
|
|
659
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
660
|
+
export {
|
|
661
|
+
$a as C,
|
|
662
|
+
bt as a,
|
|
663
|
+
dt as b,
|
|
664
|
+
ut as c,
|
|
665
|
+
mt as d,
|
|
666
|
+
ct as e,
|
|
667
|
+
ft as f,
|
|
668
|
+
gt as g,
|
|
669
|
+
pt as h,
|
|
670
|
+
rt as l
|
|
671
|
+
};
|