@jeecg/online 1.0.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/AuthButtonConfig.js +140 -0
- package/AuthButtonTree.js +183 -0
- package/AuthDataConfig.js +243 -0
- package/AuthDataTree.js +160 -0
- package/AuthFieldConfig.js +167 -0
- package/AuthFieldTree.js +273 -0
- package/AuthManagerDrawer.js +125 -0
- package/AuthSetterModal.js +317 -0
- package/CgformCopyList.js +253 -0
- package/CgformModal.js +748 -0
- package/CgreportModal.js +673 -0
- package/ChartAutoRender.js +69 -0
- package/ChartDoubleRender.js +154 -0
- package/ChartSingleRender.js +132 -0
- package/ChartTabsRender.js +218 -0
- package/CheckDictTable.js +121 -0
- package/CodeGeneratorModal.js +293 -0
- package/CustomButtonList.js +413 -0
- package/DBAttributeTable.js +278 -0
- package/DbToOnlineModal.js +190 -0
- package/EnhanceJavaModal.js +304 -0
- package/EnhanceJsHistory.js +231 -0
- package/EnhanceJsModal.js +293 -0
- package/EnhanceSqlModal.js +305 -0
- package/ErrorTip.js +21 -0
- package/ExtendConfigModal.js +142 -0
- package/FieldTable.js +185 -0
- package/FileSelectModal.js +102 -0
- package/ForeignKeyTable.js +78 -0
- package/FormSchemaFactory.js +938 -0
- package/GraphreportAutoChart.js +352 -0
- package/GraphreportList.js +239 -0
- package/GraphreportModal.js +559 -0
- package/IndexTable.js +96 -0
- package/JOnlineSearchSelect.js +107 -0
- package/LICENSE +7 -0
- package/LeftDepart.js +96 -0
- package/LeftRole.js +95 -0
- package/LeftUser.js +114 -0
- package/ModalFormDemo.js +84 -0
- package/OnlineAutoList.js +410 -0
- package/OnlineAutoModal.js +265 -0
- package/OnlineAutoTreeList.js +513 -0
- package/OnlineCustomModal.js +269 -0
- package/OnlineForm.js +809 -0
- package/OnlineQueryForm.js +442 -0
- package/OnlineSearchFormItem.js +428 -0
- package/OnlineSelectCascade.js +217 -0
- package/OnlineSubForm.js +200 -0
- package/OnlineSuperQuery.js +912 -0
- package/OnlineSuperQueryValComponent.js +8 -0
- package/OnlineSuperQueryValComponent.vue_vue_type_script_lang.js +172 -0
- package/PageAttributeTable.js +242 -0
- package/ParamsTable.js +71 -0
- package/ProcessOnlineForm.js +183 -0
- package/QueryTable.js +128 -0
- package/README.md +23 -0
- package/_arrayPush.js +276 -0
- package/auth.api.js +43 -0
- package/auth.data.js +144 -0
- package/cgform.data.js +235 -0
- package/cloneDeep.js +475 -0
- package/enhance.api.js +120 -0
- package/enhance.data.js +196 -0
- package/graphreport.api.js +23 -0
- package/index.js +64 -0
- package/index2.js +336 -0
- package/index3.js +799 -0
- package/isArray.js +47 -0
- package/main.index.js +6 -0
- package/package.json +6 -0
- package/pick.js +238 -0
- package/style.css +1 -0
- package/toString.js +31 -0
- package/useAutoForm.js +4274 -0
- package/useCgformList.js +353 -0
- package/useChartRender.js +405 -0
- package/useMessageOnline.js +71 -0
- package/useOnlineTest.js +26866 -0
- package/useSchemas.js +505 -0
- package/useTableColumns.js +1154 -0
- package/useTableSync.js +105 -0
package/CgformModal.js
ADDED
|
@@ -0,0 +1,748 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __async = (__this, __arguments, generator) => {
|
|
21
|
+
return new Promise((resolve, reject) => {
|
|
22
|
+
var fulfilled = (value) => {
|
|
23
|
+
try {
|
|
24
|
+
step(generator.next(value));
|
|
25
|
+
} catch (e) {
|
|
26
|
+
reject(e);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var rejected = (value) => {
|
|
30
|
+
try {
|
|
31
|
+
step(generator.throw(value));
|
|
32
|
+
} catch (e) {
|
|
33
|
+
reject(e);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
import { defineComponent, ref, computed, provide, reactive, nextTick, resolveComponent, openBlock, createBlock, mergeProps, withCtx, createVNode, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString, createCommentVNode, createElementVNode } from "vue";
|
|
41
|
+
import { BasicModal, useModalInner, useModal } from "/@/components/Modal";
|
|
42
|
+
import { BasicForm, useForm } from "/@/components/Form/index";
|
|
43
|
+
import { useMessage } from "/@/hooks/web/useMessage";
|
|
44
|
+
import { u as useFormSchemas } from "./useSchemas.js";
|
|
45
|
+
import DBAttributeTable from "./DBAttributeTable.js";
|
|
46
|
+
import PageAttributeTable from "./PageAttributeTable.js";
|
|
47
|
+
import CheckDictTable from "./CheckDictTable.js";
|
|
48
|
+
import ForeignKeyTable from "./ForeignKeyTable.js";
|
|
49
|
+
import IndexTable from "./IndexTable.js";
|
|
50
|
+
import QueryTable from "./QueryTable.js";
|
|
51
|
+
import ExtendConfigModal from "./ExtendConfigModal.js";
|
|
52
|
+
import { u as useInitialData, E as ExtConfigDefaultJson, V as VALIDATE_FAILED, a as useTreeNeedFields } from "./cgform.data.js";
|
|
53
|
+
import { defHttp } from "/@/utils/http/axios";
|
|
54
|
+
import { simpleDebounce } from "/@/utils/common/compUtils";
|
|
55
|
+
import { u as useOnlineTest } from "./useOnlineTest.js";
|
|
56
|
+
import { buildUUID } from "/@/utils/uuid";
|
|
57
|
+
import { sleep } from "/@/utils";
|
|
58
|
+
import { g as getRefPromise } from "./useAutoForm.js";
|
|
59
|
+
import { _ as _export_sfc } from "./index.js";
|
|
60
|
+
const list = (params) => defHttp.get({ url: "/online/cgform/head/list", params });
|
|
61
|
+
const doBatchRemove = (idList) => doRemove(idList, 0);
|
|
62
|
+
const doBatchDelete = (idList) => doRemove(idList, 1);
|
|
63
|
+
function doRemove(idList, flag) {
|
|
64
|
+
return defHttp.delete({
|
|
65
|
+
url: "/online/cgform/head/deleteBatch",
|
|
66
|
+
params: {
|
|
67
|
+
ids: idList.join(","),
|
|
68
|
+
flag
|
|
69
|
+
}
|
|
70
|
+
}, { joinParamsToUrl: true });
|
|
71
|
+
}
|
|
72
|
+
const doDatabaseSync = (id, method) => defHttp.post({ url: `${"/online/cgform/api/doDbSynch"}/${id}/${method}`, timeout: 12e3, timeoutErrorMessage: "\u540C\u6B65\u6570\u636E\u5E93\u8D85\u65F6\uFF0C\u5DF2\u81EA\u52A8\u5237\u65B0" });
|
|
73
|
+
const doCopyOnlineView = (id) => defHttp.post({ url: `${"/online/cgform/head/copyOnline"}?code=${id}` });
|
|
74
|
+
const doCopyTable = (id, tableName, params) => defHttp.get({ url: `${"/online/cgform/head/copyOnlineTable"}/${id}`, params: __spreadValues({ tableName }, params) });
|
|
75
|
+
const formApi = {
|
|
76
|
+
doQueryField: (headId, params) => defHttp.get({ url: "/online/cgform/field/listByHeadId", params: __spreadValues({ headId }, params) }),
|
|
77
|
+
doQueryIndexes: (headId, params) => defHttp.get({ url: "/online/cgform/index/listByHeadId", params: __spreadValues({ headId }, params) }),
|
|
78
|
+
doSaveOrUpdate: (params, isUpdate) => {
|
|
79
|
+
if (isUpdate) {
|
|
80
|
+
return defHttp.put({ url: "/online/cgform/api/editAll", params });
|
|
81
|
+
} else {
|
|
82
|
+
return defHttp.post({ url: "/online/cgform/api/addAll", params });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const _sfc_main = defineComponent({
|
|
87
|
+
name: "CgformModal",
|
|
88
|
+
components: {
|
|
89
|
+
BasicModal,
|
|
90
|
+
BasicForm,
|
|
91
|
+
DBAttributeTable,
|
|
92
|
+
PageAttributeTable,
|
|
93
|
+
CheckDictTable,
|
|
94
|
+
ForeignKeyTable,
|
|
95
|
+
IndexTable,
|
|
96
|
+
QueryTable,
|
|
97
|
+
ExtendConfigModal
|
|
98
|
+
},
|
|
99
|
+
emits: ["success", "register"],
|
|
100
|
+
props: {
|
|
101
|
+
actionButton: {
|
|
102
|
+
type: Boolean,
|
|
103
|
+
default: true,
|
|
104
|
+
required: false
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
setup(props, { emit }) {
|
|
108
|
+
const { createMessage: $message } = useMessage();
|
|
109
|
+
const modalRef = ref();
|
|
110
|
+
const isUpdate = ref(false);
|
|
111
|
+
let model = {};
|
|
112
|
+
const title = computed(() => isUpdate.value ? "\u7F16\u8F91" : "\u65B0\u589E");
|
|
113
|
+
const confirmLoading = ref(true);
|
|
114
|
+
const tableLoading = ref(false);
|
|
115
|
+
const activeKey = ref("dbTable");
|
|
116
|
+
const hideTabs = ref(true);
|
|
117
|
+
const tables = {
|
|
118
|
+
dbTable: ref(),
|
|
119
|
+
pageTable: ref(),
|
|
120
|
+
checkTable: ref(),
|
|
121
|
+
fkTable: ref(),
|
|
122
|
+
idxTable: ref(),
|
|
123
|
+
queryTable: ref()
|
|
124
|
+
};
|
|
125
|
+
const fullScreenRef = computed(() => {
|
|
126
|
+
var _a, _b;
|
|
127
|
+
return (_b = (_a = modalRef.value) == null ? void 0 : _a.fullScreenRef) != null ? _b : false;
|
|
128
|
+
});
|
|
129
|
+
provide("tables", tables);
|
|
130
|
+
provide("fullScreenRef", fullScreenRef);
|
|
131
|
+
const { formSchemas } = useFormSchemas(props, {
|
|
132
|
+
onTableTypeChange,
|
|
133
|
+
onIsTreeChange,
|
|
134
|
+
ifShowOfSubTableStr: () => showSubTableStr
|
|
135
|
+
});
|
|
136
|
+
const [registerForm, formAction] = useForm({
|
|
137
|
+
schemas: formSchemas,
|
|
138
|
+
showActionButtonGroup: false,
|
|
139
|
+
labelAlign: "right"
|
|
140
|
+
});
|
|
141
|
+
const { resetFields, setFieldsValue, validate } = formAction;
|
|
142
|
+
const [registerModal, { closeModal }] = useModalInner((data) => {
|
|
143
|
+
var _a;
|
|
144
|
+
isUpdate.value = (_a = data == null ? void 0 : data.isUpdate) != null ? _a : false;
|
|
145
|
+
if (isUpdate.value) {
|
|
146
|
+
edit(data == null ? void 0 : data.record);
|
|
147
|
+
} else {
|
|
148
|
+
add();
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
const oldTableName = ref("");
|
|
152
|
+
let extConfigJson = reactive({});
|
|
153
|
+
const syncAllTableNowDebounce = simpleDebounce(() => syncAllTableNowPromise(), 150);
|
|
154
|
+
let fieldTempIds = [];
|
|
155
|
+
let showSubTableStr = false;
|
|
156
|
+
let treeFieldAdded = false;
|
|
157
|
+
let treeFieldIds = [];
|
|
158
|
+
const {
|
|
159
|
+
aiTestMode,
|
|
160
|
+
aiTestTable,
|
|
161
|
+
aiTableList,
|
|
162
|
+
initVirtualData,
|
|
163
|
+
tableJsonGetHelper,
|
|
164
|
+
refreshCacheTableName
|
|
165
|
+
} = useOnlineTest({
|
|
166
|
+
oldTableName,
|
|
167
|
+
tables
|
|
168
|
+
}, {
|
|
169
|
+
initialAllShowItem,
|
|
170
|
+
setAllTableData
|
|
171
|
+
}, formAction);
|
|
172
|
+
function add() {
|
|
173
|
+
edit({});
|
|
174
|
+
}
|
|
175
|
+
function edit(record) {
|
|
176
|
+
return __async(this, null, function* () {
|
|
177
|
+
var _a;
|
|
178
|
+
confirmLoading.value = false;
|
|
179
|
+
activeKey.value = "dbTable";
|
|
180
|
+
yield resetFields();
|
|
181
|
+
model = Object.assign({}, record);
|
|
182
|
+
initialAllShowItem(model);
|
|
183
|
+
tableJsonGetHelper(model);
|
|
184
|
+
initialExtConfigJson(model);
|
|
185
|
+
setFieldsValue(model);
|
|
186
|
+
oldTableName.value = model.tableName;
|
|
187
|
+
sleep(1, () => hideTabs.value = false);
|
|
188
|
+
if (isUpdate.value) {
|
|
189
|
+
(_a = tables.dbTable.value) == null ? void 0 : _a.setDataSource([]);
|
|
190
|
+
yield loadFields(model.id);
|
|
191
|
+
yield loadIndexes(model.id);
|
|
192
|
+
getRefPromise(tables.pageTable).then(() => {
|
|
193
|
+
tables.pageTable.value.changePageType(model.tableType == 3);
|
|
194
|
+
});
|
|
195
|
+
} else {
|
|
196
|
+
let { initialData, tempIds } = useInitialData();
|
|
197
|
+
yield setAllTableData(initialData, true);
|
|
198
|
+
fieldTempIds = tempIds;
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
function loadFields(headId) {
|
|
203
|
+
return __async(this, null, function* () {
|
|
204
|
+
tableLoading.value = true;
|
|
205
|
+
try {
|
|
206
|
+
let fields = yield formApi.doQueryField(headId);
|
|
207
|
+
tableLoading.value = false;
|
|
208
|
+
yield setAllTableData(fields);
|
|
209
|
+
} finally {
|
|
210
|
+
tableLoading.value = false;
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
function loadIndexes(headId) {
|
|
215
|
+
return __async(this, null, function* () {
|
|
216
|
+
let indexes = yield formApi.doQueryIndexes(headId);
|
|
217
|
+
tables.idxTable.value.setDataSource(indexes);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
function initialExtConfigJson(record) {
|
|
221
|
+
let parseJSON = {};
|
|
222
|
+
if (record.extConfigJson) {
|
|
223
|
+
try {
|
|
224
|
+
parseJSON = JSON.parse(record.extConfigJson);
|
|
225
|
+
} catch (e) {
|
|
226
|
+
console.error("online\u6269\u5C55JSON\u8F6C\u6362\u5931\u8D25\uFF1A", e);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
extConfigJson = Object.assign({}, ExtConfigDefaultJson, parseJSON, {
|
|
230
|
+
isDesForm: record.isDesForm || "N",
|
|
231
|
+
desFormCode: record.desFormCode || ""
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function initialAllShowItem(model2) {
|
|
235
|
+
treeFieldAdded = model2.isTree == "Y";
|
|
236
|
+
showSubTableStr = model2.tableType === 2;
|
|
237
|
+
}
|
|
238
|
+
function setAllTableData(data, insert) {
|
|
239
|
+
return __async(this, null, function* () {
|
|
240
|
+
const { dbTable, pageTable, checkTable, fkTable, queryTable } = tables;
|
|
241
|
+
if (!dbTable.value) {
|
|
242
|
+
yield nextTick();
|
|
243
|
+
yield sleep(1);
|
|
244
|
+
}
|
|
245
|
+
dbTable.value.setDataSource(data, insert);
|
|
246
|
+
setTimeout(() => {
|
|
247
|
+
pageTable.value.setDataSource(data, insert);
|
|
248
|
+
checkTable.value.setDataSource(data, insert);
|
|
249
|
+
fkTable.value.setDataSource(data, insert);
|
|
250
|
+
queryTable.value.setDataSource(data, insert);
|
|
251
|
+
}, 10);
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
function onTabsChange(activeKey2) {
|
|
255
|
+
if (["pageTable", "checkTable", "fkTable", "idxTable", "queryTable"].indexOf(activeKey2) !== -1) {
|
|
256
|
+
const dbTable = tables.dbTable;
|
|
257
|
+
const table = tables[activeKey2];
|
|
258
|
+
dbTable.value.tableRef.resetScrollTop();
|
|
259
|
+
table.value.syncTable(dbTable);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
function onTableTypeChange(value) {
|
|
263
|
+
if (value === 1) {
|
|
264
|
+
setFieldsValue({ themeTemplate: "normal" });
|
|
265
|
+
}
|
|
266
|
+
tables.pageTable.value.changePageType(value == 3);
|
|
267
|
+
}
|
|
268
|
+
function onIsTreeChange(value) {
|
|
269
|
+
value === "Y" ? addTreeNeedField() : deleteTreeNeedField();
|
|
270
|
+
}
|
|
271
|
+
function syncAllTableNow() {
|
|
272
|
+
syncAllTableNowDebounce();
|
|
273
|
+
}
|
|
274
|
+
function syncAllTableNowPromise() {
|
|
275
|
+
return __async(this, null, function* () {
|
|
276
|
+
let { dbTable, pageTable, checkTable, fkTable, queryTable } = tables;
|
|
277
|
+
yield pageTable.value.syncTable(dbTable);
|
|
278
|
+
yield checkTable.value.syncTable(dbTable);
|
|
279
|
+
yield fkTable.value.syncTable(dbTable);
|
|
280
|
+
yield queryTable.value.syncTable(dbTable);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
function onTableAdded() {
|
|
284
|
+
syncAllTableNow();
|
|
285
|
+
}
|
|
286
|
+
function onTableRemoved() {
|
|
287
|
+
syncAllTableNow();
|
|
288
|
+
}
|
|
289
|
+
function onTableDragged(event) {
|
|
290
|
+
let { oldIndex, newIndex } = event;
|
|
291
|
+
syncAllOrderNumNow(oldIndex, newIndex);
|
|
292
|
+
}
|
|
293
|
+
function onTableInserted(event) {
|
|
294
|
+
return __async(this, null, function* () {
|
|
295
|
+
let { insertIndex, row } = event;
|
|
296
|
+
let { pageTable, checkTable, fkTable, queryTable } = tables;
|
|
297
|
+
pageTable.value.tableRef.insertRows(row, insertIndex);
|
|
298
|
+
checkTable.value.tableRef.insertRows(row, insertIndex);
|
|
299
|
+
fkTable.value.tableRef.insertRows(row, insertIndex);
|
|
300
|
+
queryTable.value.tableRef.insertRows(row, insertIndex);
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
function syncAllOrderNumNow(oldIndex, newIndex) {
|
|
304
|
+
let { pageTable, checkTable, fkTable, queryTable } = tables;
|
|
305
|
+
pageTable.value.tableRef.rowResort(oldIndex, newIndex);
|
|
306
|
+
checkTable.value.tableRef.rowResort(oldIndex, newIndex);
|
|
307
|
+
fkTable.value.tableRef.rowResort(oldIndex, newIndex);
|
|
308
|
+
queryTable.value.tableRef.rowResort(oldIndex, newIndex);
|
|
309
|
+
}
|
|
310
|
+
function onTableSyncDbType(event) {
|
|
311
|
+
tables.pageTable.value.syncFieldShowType(event.row);
|
|
312
|
+
}
|
|
313
|
+
function onTableQuery(id) {
|
|
314
|
+
tables.pageTable.value.enableQuery(id);
|
|
315
|
+
}
|
|
316
|
+
function addTreeNeedField() {
|
|
317
|
+
if (!treeFieldAdded) {
|
|
318
|
+
let { dbTable, pageTable, checkTable } = tables;
|
|
319
|
+
let treeFields = useTreeNeedFields();
|
|
320
|
+
treeFields = treeFields.filter((item) => {
|
|
321
|
+
let nameList = dbTable.value.tableRef.getTableData().map((o) => o.dbFieldName);
|
|
322
|
+
return !nameList.includes(item.dbFieldName);
|
|
323
|
+
});
|
|
324
|
+
treeFieldIds = [];
|
|
325
|
+
treeFields.forEach((newData) => {
|
|
326
|
+
let uuidTemp = buildUUID() + "__tempId";
|
|
327
|
+
treeFieldIds.push(uuidTemp);
|
|
328
|
+
newData.id = uuidTemp;
|
|
329
|
+
});
|
|
330
|
+
dbTable.value.tableRef.addRows(treeFields, { setActive: false });
|
|
331
|
+
pageTable.value.tableRef.addRows(treeFields, { setActive: false });
|
|
332
|
+
checkTable.value.tableRef.addRows(treeFields, { setActive: false });
|
|
333
|
+
nextTick(() => syncAllTableNow());
|
|
334
|
+
treeFieldAdded = true;
|
|
335
|
+
}
|
|
336
|
+
nextTick(() => {
|
|
337
|
+
formAction.setFieldsValue({
|
|
338
|
+
treeIdField: "has_child",
|
|
339
|
+
treeParentIdField: "pid"
|
|
340
|
+
});
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
function deleteTreeNeedField() {
|
|
344
|
+
if (treeFieldIds && treeFieldIds.length > 0) {
|
|
345
|
+
let { dbTable } = tables;
|
|
346
|
+
dbTable.value.tableDeleteLines(treeFieldIds);
|
|
347
|
+
treeFieldIds = [];
|
|
348
|
+
treeFieldAdded = false;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
function validateAll() {
|
|
352
|
+
let options = {};
|
|
353
|
+
return new Promise((resolve, reject) => {
|
|
354
|
+
validate().then((values) => resolve({ values }), () => reject(VALIDATE_FAILED));
|
|
355
|
+
}).then((result) => {
|
|
356
|
+
Object.assign(options, result);
|
|
357
|
+
return validateTableFields();
|
|
358
|
+
}).then((allTableData) => {
|
|
359
|
+
Object.assign(options, allTableData);
|
|
360
|
+
let formData = classifyIntoFormData(options);
|
|
361
|
+
return validateForeignKey(formData);
|
|
362
|
+
}).catch((e) => {
|
|
363
|
+
if (e === VALIDATE_FAILED || (e == null ? void 0 : e.code) === VALIDATE_FAILED) {
|
|
364
|
+
$message.warning("\u6821\u9A8C\u672A\u901A\u8FC7");
|
|
365
|
+
} else {
|
|
366
|
+
console.error(e);
|
|
367
|
+
}
|
|
368
|
+
return Promise.reject(null);
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
function validateTableFields() {
|
|
372
|
+
return new Promise((resolve, reject) => __async(this, null, function* () {
|
|
373
|
+
let tableKeys = Object.keys(tables);
|
|
374
|
+
let allTableData = {};
|
|
375
|
+
for (let i = 0; i < tableKeys.length; i++) {
|
|
376
|
+
let key = tableKeys[i];
|
|
377
|
+
let table = tables[key];
|
|
378
|
+
try {
|
|
379
|
+
allTableData[key] = yield table.value.validateData(key);
|
|
380
|
+
} catch (e) {
|
|
381
|
+
if (e.code === VALIDATE_FAILED) {
|
|
382
|
+
activeKey.value = e.activeKey;
|
|
383
|
+
} else {
|
|
384
|
+
console.error(e);
|
|
385
|
+
}
|
|
386
|
+
reject(e);
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
resolve(allTableData);
|
|
391
|
+
}));
|
|
392
|
+
}
|
|
393
|
+
function classifyIntoFormData(options) {
|
|
394
|
+
let formData = {
|
|
395
|
+
head: {},
|
|
396
|
+
fields: [],
|
|
397
|
+
indexs: [],
|
|
398
|
+
deleteFieldIds: [],
|
|
399
|
+
deleteIndexIds: []
|
|
400
|
+
};
|
|
401
|
+
formData.head = Object.assign(model, options.values);
|
|
402
|
+
formData.head.isDesForm = extConfigJson.isDesForm;
|
|
403
|
+
formData.head.desFormCode = extConfigJson.desFormCode;
|
|
404
|
+
delete extConfigJson.isDesForm;
|
|
405
|
+
delete extConfigJson.desFormCode;
|
|
406
|
+
formData.head.extConfigJson = JSON.stringify(extConfigJson);
|
|
407
|
+
options.dbTable.tableData.forEach((item, index) => {
|
|
408
|
+
let rowId = item.id;
|
|
409
|
+
let fields = Object.assign({}, item);
|
|
410
|
+
let pageTable = options.pageTable.tableData[index];
|
|
411
|
+
fields = Object.assign(pageTable, fields);
|
|
412
|
+
let checkTable = options.checkTable.tableData[index];
|
|
413
|
+
fields = Object.assign(checkTable, fields);
|
|
414
|
+
let fkTable = options.fkTable.tableData[index];
|
|
415
|
+
fields = Object.assign(fkTable, fields);
|
|
416
|
+
let queryTable = options.queryTable.tableData[index];
|
|
417
|
+
fields = Object.assign(queryTable, fields);
|
|
418
|
+
if (rowId == null || rowId === "") {
|
|
419
|
+
delete fields.id;
|
|
420
|
+
} else {
|
|
421
|
+
fields.id = rowId;
|
|
422
|
+
}
|
|
423
|
+
let tempIds = [].concat(fieldTempIds, treeFieldIds);
|
|
424
|
+
if (tempIds.includes(fields.id)) {
|
|
425
|
+
delete fields.id;
|
|
426
|
+
}
|
|
427
|
+
formData.fields.push(fields);
|
|
428
|
+
});
|
|
429
|
+
formData.deleteFieldIds = options.dbTable.deleteIds;
|
|
430
|
+
formData.indexs = options.idxTable.tableData;
|
|
431
|
+
formData.deleteIndexIds = options.idxTable.deleteIds;
|
|
432
|
+
return formData;
|
|
433
|
+
}
|
|
434
|
+
function validateForeignKey(formData) {
|
|
435
|
+
return new Promise((resolve, reject) => {
|
|
436
|
+
let fields = formData.fields;
|
|
437
|
+
let saved = true;
|
|
438
|
+
if (fields && fields.length > 0) {
|
|
439
|
+
let hasForeignKey = 0;
|
|
440
|
+
for (let i = 0; i < fields.length; i++) {
|
|
441
|
+
if (fields[i].mainField || fields[i].mainTable) {
|
|
442
|
+
hasForeignKey += 1;
|
|
443
|
+
}
|
|
444
|
+
if (hasForeignKey > 1) {
|
|
445
|
+
saved = false;
|
|
446
|
+
break;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
if (saved) {
|
|
451
|
+
resolve(formData);
|
|
452
|
+
} else {
|
|
453
|
+
reject({
|
|
454
|
+
code: -1,
|
|
455
|
+
msg: "\u5916\u952E\u53EA\u5141\u8BB8\u914D\u7F6E\u4E00\u4E2A!",
|
|
456
|
+
error: VALIDATE_FAILED
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
function onSubmit() {
|
|
462
|
+
confirmLoading.value = true;
|
|
463
|
+
validateAll().then((formData) => __async(this, null, function* () {
|
|
464
|
+
var _a;
|
|
465
|
+
if (formData.fields && formData.fields.length > 0) {
|
|
466
|
+
for (let field of formData.fields) {
|
|
467
|
+
field.dbFieldName = field.dbFieldName.toLowerCase().trim();
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
if ((_a = formData.head) == null ? void 0 : _a.tableName) {
|
|
471
|
+
formData.head.tableName = formData.head.tableName.toLowerCase().trim();
|
|
472
|
+
}
|
|
473
|
+
yield formApi.doSaveOrUpdate(formData, isUpdate.value);
|
|
474
|
+
refreshCacheTableName(oldTableName.value, formData.head["tableName"]);
|
|
475
|
+
emit("success");
|
|
476
|
+
sleep(1, () => onCancel());
|
|
477
|
+
}), (e) => {
|
|
478
|
+
console.error(e);
|
|
479
|
+
}).finally(() => {
|
|
480
|
+
confirmLoading.value = false;
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
const [registerExtendConfigModal, extendConfigModal] = useModal();
|
|
484
|
+
function onExtConfigOk(values) {
|
|
485
|
+
extConfigJson = values;
|
|
486
|
+
}
|
|
487
|
+
function onOpenExtConfig() {
|
|
488
|
+
extendConfigModal.openModal(true, {
|
|
489
|
+
extConfigJson
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
function onCancel() {
|
|
493
|
+
hideTabs.value = true;
|
|
494
|
+
sleep(1, () => closeModal());
|
|
495
|
+
}
|
|
496
|
+
return __spreadProps(__spreadValues({}, tables), {
|
|
497
|
+
modalRef,
|
|
498
|
+
title,
|
|
499
|
+
confirmLoading,
|
|
500
|
+
tableLoading,
|
|
501
|
+
activeKey,
|
|
502
|
+
onCancel,
|
|
503
|
+
extConfigJson,
|
|
504
|
+
formAction,
|
|
505
|
+
hideTabs,
|
|
506
|
+
onSubmit,
|
|
507
|
+
onTabsChange,
|
|
508
|
+
onTableAdded,
|
|
509
|
+
onTableRemoved,
|
|
510
|
+
onTableDragged,
|
|
511
|
+
onTableInserted,
|
|
512
|
+
onTableSyncDbType,
|
|
513
|
+
onTableQuery,
|
|
514
|
+
onOpenExtConfig,
|
|
515
|
+
onExtConfigOk,
|
|
516
|
+
registerForm,
|
|
517
|
+
registerModal,
|
|
518
|
+
registerExtendConfigModal,
|
|
519
|
+
aiTestMode,
|
|
520
|
+
aiTestTable,
|
|
521
|
+
aiTableList,
|
|
522
|
+
initVirtualData
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
});
|
|
526
|
+
const _hoisted_1 = { style: { "flex": "1", "text-align": "right" } };
|
|
527
|
+
const _hoisted_2 = /* @__PURE__ */ createTextVNode("\u6269\u5C55\u914D\u7F6E");
|
|
528
|
+
const _hoisted_3 = /* @__PURE__ */ createTextVNode("\u5173\u95ED");
|
|
529
|
+
const _hoisted_4 = /* @__PURE__ */ createTextVNode("\u4FDD\u5B58");
|
|
530
|
+
const _hoisted_5 = {
|
|
531
|
+
key: 0,
|
|
532
|
+
style: { "display": "inline-block", "text-align": "left", "position": "absolute", "left": "0" }
|
|
533
|
+
};
|
|
534
|
+
const _hoisted_6 = /* @__PURE__ */ createTextVNode("\u751F\u6210\u6570\u636E>>");
|
|
535
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
536
|
+
const _component_a_button = resolveComponent("a-button");
|
|
537
|
+
const _component_BasicForm = resolveComponent("BasicForm");
|
|
538
|
+
const _component_DBAttributeTable = resolveComponent("DBAttributeTable");
|
|
539
|
+
const _component_a_tab_pane = resolveComponent("a-tab-pane");
|
|
540
|
+
const _component_PageAttributeTable = resolveComponent("PageAttributeTable");
|
|
541
|
+
const _component_CheckDictTable = resolveComponent("CheckDictTable");
|
|
542
|
+
const _component_ForeignKeyTable = resolveComponent("ForeignKeyTable");
|
|
543
|
+
const _component_IndexTable = resolveComponent("IndexTable");
|
|
544
|
+
const _component_QueryTable = resolveComponent("QueryTable");
|
|
545
|
+
const _component_a_tabs = resolveComponent("a-tabs");
|
|
546
|
+
const _component_a_spin = resolveComponent("a-spin");
|
|
547
|
+
const _component_a_select_option = resolveComponent("a-select-option");
|
|
548
|
+
const _component_a_select = resolveComponent("a-select");
|
|
549
|
+
const _component_ExtendConfigModal = resolveComponent("ExtendConfigModal");
|
|
550
|
+
const _component_BasicModal = resolveComponent("BasicModal");
|
|
551
|
+
return openBlock(), createBlock(_component_BasicModal, mergeProps({
|
|
552
|
+
ref: "modalRef",
|
|
553
|
+
title: _ctx.title,
|
|
554
|
+
width: 1200,
|
|
555
|
+
maskClosable: false,
|
|
556
|
+
defaultFullscreen: true,
|
|
557
|
+
confirmLoading: _ctx.confirmLoading
|
|
558
|
+
}, _ctx.$attrs, {
|
|
559
|
+
onCancel: _ctx.onCancel,
|
|
560
|
+
onRegister: _ctx.registerModal
|
|
561
|
+
}), {
|
|
562
|
+
footer: withCtx(() => [
|
|
563
|
+
createVNode(_component_a_button, { onClick: _ctx.onCancel }, {
|
|
564
|
+
default: withCtx(() => [
|
|
565
|
+
_hoisted_3
|
|
566
|
+
]),
|
|
567
|
+
_: 1
|
|
568
|
+
}, 8, ["onClick"]),
|
|
569
|
+
createVNode(_component_a_button, {
|
|
570
|
+
type: "primary",
|
|
571
|
+
loading: _ctx.confirmLoading,
|
|
572
|
+
preIcon: "ant-design:save",
|
|
573
|
+
onClick: _ctx.onSubmit
|
|
574
|
+
}, {
|
|
575
|
+
default: withCtx(() => [
|
|
576
|
+
_hoisted_4
|
|
577
|
+
]),
|
|
578
|
+
_: 1
|
|
579
|
+
}, 8, ["loading", "onClick"]),
|
|
580
|
+
_ctx.aiTestMode ? (openBlock(), createElementBlock("div", _hoisted_5, [
|
|
581
|
+
createVNode(_component_a_select, {
|
|
582
|
+
value: _ctx.aiTestTable,
|
|
583
|
+
"onUpdate:value": _cache[1] || (_cache[1] = ($event) => _ctx.aiTestTable = $event),
|
|
584
|
+
placeholder: "\u8BF7\u9009\u62E9\u6D4B\u8BD5\u7684\u8868\u7C7B\u578B",
|
|
585
|
+
getPopupContainer: (n) => n.parentElement,
|
|
586
|
+
style: { "width": "250px", "margin": "0 10px 0 20px" }
|
|
587
|
+
}, {
|
|
588
|
+
default: withCtx(() => [
|
|
589
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.aiTableList, (item, index) => {
|
|
590
|
+
return openBlock(), createBlock(_component_a_select_option, {
|
|
591
|
+
key: index,
|
|
592
|
+
value: item.name
|
|
593
|
+
}, {
|
|
594
|
+
default: withCtx(() => [
|
|
595
|
+
createTextVNode(toDisplayString(item.title + "\uFF08" + item.name + "\uFF09"), 1)
|
|
596
|
+
]),
|
|
597
|
+
_: 2
|
|
598
|
+
}, 1032, ["value"]);
|
|
599
|
+
}), 128))
|
|
600
|
+
]),
|
|
601
|
+
_: 1
|
|
602
|
+
}, 8, ["value", "getPopupContainer"]),
|
|
603
|
+
createVNode(_component_a_button, {
|
|
604
|
+
type: "primary",
|
|
605
|
+
ghost: "",
|
|
606
|
+
onClick: _ctx.initVirtualData
|
|
607
|
+
}, {
|
|
608
|
+
default: withCtx(() => [
|
|
609
|
+
_hoisted_6
|
|
610
|
+
]),
|
|
611
|
+
_: 1
|
|
612
|
+
}, 8, ["onClick"])
|
|
613
|
+
])) : createCommentVNode("", true)
|
|
614
|
+
]),
|
|
615
|
+
default: withCtx(() => [
|
|
616
|
+
createVNode(_component_a_spin, {
|
|
617
|
+
wrapperClassName: "p-2",
|
|
618
|
+
spinning: _ctx.confirmLoading
|
|
619
|
+
}, {
|
|
620
|
+
default: withCtx(() => [
|
|
621
|
+
createVNode(_component_BasicForm, { onRegister: _ctx.registerForm }, {
|
|
622
|
+
extConfigButton: withCtx(() => [
|
|
623
|
+
createElementVNode("div", _hoisted_1, [
|
|
624
|
+
createVNode(_component_a_button, {
|
|
625
|
+
preIcon: "ant-design:setting",
|
|
626
|
+
onClick: _ctx.onOpenExtConfig
|
|
627
|
+
}, {
|
|
628
|
+
default: withCtx(() => [
|
|
629
|
+
_hoisted_2
|
|
630
|
+
]),
|
|
631
|
+
_: 1
|
|
632
|
+
}, 8, ["onClick"])
|
|
633
|
+
])
|
|
634
|
+
]),
|
|
635
|
+
_: 1
|
|
636
|
+
}, 8, ["onRegister"]),
|
|
637
|
+
createVNode(_component_a_spin, {
|
|
638
|
+
spinning: _ctx.tableLoading || _ctx.hideTabs
|
|
639
|
+
}, {
|
|
640
|
+
default: withCtx(() => [
|
|
641
|
+
!_ctx.hideTabs ? (openBlock(), createBlock(_component_a_tabs, {
|
|
642
|
+
key: 0,
|
|
643
|
+
activeKey: _ctx.activeKey,
|
|
644
|
+
"onUpdate:activeKey": _cache[0] || (_cache[0] = ($event) => _ctx.activeKey = $event),
|
|
645
|
+
onChange: _ctx.onTabsChange
|
|
646
|
+
}, {
|
|
647
|
+
default: withCtx(() => [
|
|
648
|
+
createVNode(_component_a_tab_pane, {
|
|
649
|
+
tab: "\u6570\u636E\u5E93\u5C5E\u6027",
|
|
650
|
+
key: "dbTable",
|
|
651
|
+
forceRender: ""
|
|
652
|
+
}, {
|
|
653
|
+
default: withCtx(() => [
|
|
654
|
+
createVNode(_component_DBAttributeTable, {
|
|
655
|
+
ref: "dbTable",
|
|
656
|
+
actionButton: _ctx.actionButton,
|
|
657
|
+
onAdded: _ctx.onTableAdded,
|
|
658
|
+
onRemoved: _ctx.onTableRemoved,
|
|
659
|
+
onDragged: _ctx.onTableDragged,
|
|
660
|
+
onInserted: _ctx.onTableInserted,
|
|
661
|
+
onSyncDbType: _ctx.onTableSyncDbType
|
|
662
|
+
}, null, 8, ["actionButton", "onAdded", "onRemoved", "onDragged", "onInserted", "onSyncDbType"])
|
|
663
|
+
]),
|
|
664
|
+
_: 1
|
|
665
|
+
}),
|
|
666
|
+
createVNode(_component_a_tab_pane, {
|
|
667
|
+
tab: "\u9875\u9762\u5C5E\u6027",
|
|
668
|
+
key: "pageTable",
|
|
669
|
+
forceRender: ""
|
|
670
|
+
}, {
|
|
671
|
+
default: withCtx(() => [
|
|
672
|
+
createVNode(_component_PageAttributeTable, { ref: "pageTable" }, null, 512)
|
|
673
|
+
]),
|
|
674
|
+
_: 1
|
|
675
|
+
}),
|
|
676
|
+
createVNode(_component_a_tab_pane, {
|
|
677
|
+
tab: "\u6821\u9A8C\u5B57\u6BB5",
|
|
678
|
+
key: "checkTable",
|
|
679
|
+
forceRender: ""
|
|
680
|
+
}, {
|
|
681
|
+
default: withCtx(() => [
|
|
682
|
+
createVNode(_component_CheckDictTable, { ref: "checkTable" }, null, 512)
|
|
683
|
+
]),
|
|
684
|
+
_: 1
|
|
685
|
+
}),
|
|
686
|
+
createVNode(_component_a_tab_pane, {
|
|
687
|
+
tab: "\u5916\u952E",
|
|
688
|
+
key: "fkTable",
|
|
689
|
+
forceRender: ""
|
|
690
|
+
}, {
|
|
691
|
+
default: withCtx(() => [
|
|
692
|
+
createVNode(_component_ForeignKeyTable, {
|
|
693
|
+
ref: "fkTable",
|
|
694
|
+
actionButton: _ctx.actionButton
|
|
695
|
+
}, null, 8, ["actionButton"])
|
|
696
|
+
]),
|
|
697
|
+
_: 1
|
|
698
|
+
}),
|
|
699
|
+
createVNode(_component_a_tab_pane, {
|
|
700
|
+
tab: "\u7D22\u5F15",
|
|
701
|
+
key: "idxTable",
|
|
702
|
+
forceRender: ""
|
|
703
|
+
}, {
|
|
704
|
+
default: withCtx(() => [
|
|
705
|
+
createVNode(_component_IndexTable, {
|
|
706
|
+
ref: "idxTable",
|
|
707
|
+
actionButton: _ctx.actionButton
|
|
708
|
+
}, null, 8, ["actionButton"])
|
|
709
|
+
]),
|
|
710
|
+
_: 1
|
|
711
|
+
}),
|
|
712
|
+
createVNode(_component_a_tab_pane, {
|
|
713
|
+
tab: "\u67E5\u8BE2\u914D\u7F6E",
|
|
714
|
+
key: "queryTable",
|
|
715
|
+
forceRender: ""
|
|
716
|
+
}, {
|
|
717
|
+
default: withCtx(() => [
|
|
718
|
+
createVNode(_component_QueryTable, {
|
|
719
|
+
ref: "queryTable",
|
|
720
|
+
onQuery: _ctx.onTableQuery
|
|
721
|
+
}, null, 8, ["onQuery"])
|
|
722
|
+
]),
|
|
723
|
+
_: 1
|
|
724
|
+
})
|
|
725
|
+
]),
|
|
726
|
+
_: 1
|
|
727
|
+
}, 8, ["activeKey", "onChange"])) : createCommentVNode("", true)
|
|
728
|
+
]),
|
|
729
|
+
_: 1
|
|
730
|
+
}, 8, ["spinning"])
|
|
731
|
+
]),
|
|
732
|
+
_: 1
|
|
733
|
+
}, 8, ["spinning"]),
|
|
734
|
+
createVNode(_component_ExtendConfigModal, {
|
|
735
|
+
onRegister: _ctx.registerExtendConfigModal,
|
|
736
|
+
parentForm: _ctx.formAction,
|
|
737
|
+
onOk: _ctx.onExtConfigOk
|
|
738
|
+
}, null, 8, ["onRegister", "parentForm", "onOk"])
|
|
739
|
+
]),
|
|
740
|
+
_: 1
|
|
741
|
+
}, 16, ["title", "confirmLoading", "onCancel", "onRegister"]);
|
|
742
|
+
}
|
|
743
|
+
var CgformModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
744
|
+
var CgformModal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
745
|
+
__proto__: null,
|
|
746
|
+
"default": CgformModal
|
|
747
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
748
|
+
export { CgformModal as C, doBatchRemove as a, doBatchDelete as b, doDatabaseSync as c, doCopyOnlineView as d, doCopyTable as e, CgformModal$1 as f, list as l };
|