@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/OnlineForm.js
ADDED
|
@@ -0,0 +1,809 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
var __async = (__this, __arguments, generator) => {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
var fulfilled = (value) => {
|
|
20
|
+
try {
|
|
21
|
+
step(generator.next(value));
|
|
22
|
+
} catch (e) {
|
|
23
|
+
reject(e);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var rejected = (value) => {
|
|
27
|
+
try {
|
|
28
|
+
step(generator.throw(value));
|
|
29
|
+
} catch (e) {
|
|
30
|
+
reject(e);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
34
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
import { useMessage } from "/@/hooks/web/useMessage";
|
|
38
|
+
import { reactive, ref, computed, resolveComponent, openBlock, createElementBlock, createVNode, createBlock, withCtx, Fragment, renderList, normalizeStyle, createCommentVNode, renderSlot, unref, nextTick, toRaw } from "vue";
|
|
39
|
+
import { BasicForm, useForm } from "/@/components/Form/index";
|
|
40
|
+
import { V as VALIDATE_FAILED, S as SUBMIT_FLOW_KEY, a as SUBMIT_FLOW_ID } from "./FormSchemaFactory.js";
|
|
41
|
+
import { defHttp } from "/@/utils/http/axios";
|
|
42
|
+
import { u as useOnlineFormContext, a as useFormItems, l as loadFormFieldsDefVal, g as getRefPromise } from "./useAutoForm.js";
|
|
43
|
+
import { Loading } from "/@/components/Loading";
|
|
44
|
+
import OnlineSubForm from "./OnlineSubForm.js";
|
|
45
|
+
import { _ as _export_sfc } from "./index.js";
|
|
46
|
+
import { p as pick } from "./pick.js";
|
|
47
|
+
function useEnhance(onlineTableContext, isList = true) {
|
|
48
|
+
let EnhanceJS = reactive({});
|
|
49
|
+
const getAction = (url, params) => {
|
|
50
|
+
return defHttp.get({ url, params }, { isTransformResponse: false });
|
|
51
|
+
};
|
|
52
|
+
const postAction = (url, params) => {
|
|
53
|
+
return defHttp.post({ url, params }, { isTransformResponse: false });
|
|
54
|
+
};
|
|
55
|
+
const putAction = (url, params) => {
|
|
56
|
+
return defHttp.put({ url, params }, { isTransformResponse: false });
|
|
57
|
+
};
|
|
58
|
+
const deleteAction = (url, params) => {
|
|
59
|
+
return defHttp.delete({ url, params }, { isTransformResponse: false });
|
|
60
|
+
};
|
|
61
|
+
if (isList === true) {
|
|
62
|
+
onlineTableContext["_getAction"] = getAction;
|
|
63
|
+
onlineTableContext["_postAction"] = postAction;
|
|
64
|
+
onlineTableContext["_putAction"] = putAction;
|
|
65
|
+
onlineTableContext["_deleteAction"] = deleteAction;
|
|
66
|
+
} else {
|
|
67
|
+
onlineTableContext.addObject2Context("_getAction", getAction);
|
|
68
|
+
onlineTableContext.addObject2Context("_postAction", postAction);
|
|
69
|
+
onlineTableContext.addObject2Context("_putAction", putAction);
|
|
70
|
+
onlineTableContext.addObject2Context("_deleteAction", deleteAction);
|
|
71
|
+
}
|
|
72
|
+
function initCgEnhanceJs(str) {
|
|
73
|
+
if (str) {
|
|
74
|
+
let Obj = eval("(" + str + ")");
|
|
75
|
+
return new Obj(getAction, postAction, deleteAction);
|
|
76
|
+
} else {
|
|
77
|
+
return {};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function triggerJsFun(that, buttonCode) {
|
|
81
|
+
if (EnhanceJS && EnhanceJS[buttonCode]) {
|
|
82
|
+
EnhanceJS[buttonCode](that);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function customBeforeSubmit(that, formData) {
|
|
86
|
+
if (EnhanceJS && EnhanceJS["beforeSubmit"]) {
|
|
87
|
+
return EnhanceJS["beforeSubmit"](that, formData);
|
|
88
|
+
} else {
|
|
89
|
+
return Promise.resolve();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function beforeDelete(that, record) {
|
|
93
|
+
if (EnhanceJS && EnhanceJS["beforeDelete"]) {
|
|
94
|
+
return EnhanceJS["beforeDelete"](that, record);
|
|
95
|
+
} else {
|
|
96
|
+
return Promise.resolve();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (isList === true) {
|
|
100
|
+
if (onlineTableContext) {
|
|
101
|
+
onlineTableContext["beforeDelete"] = (record) => {
|
|
102
|
+
const onlEnhanceJS = onlineTableContext["EnhanceJS"];
|
|
103
|
+
if (onlEnhanceJS && onlEnhanceJS["beforeDelete"]) {
|
|
104
|
+
return onlEnhanceJS["beforeDelete"](onlineTableContext, record);
|
|
105
|
+
} else {
|
|
106
|
+
return Promise.resolve();
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
onlineTableContext["beforeEdit"] = (record) => {
|
|
110
|
+
const onlEnhanceJS = onlineTableContext["EnhanceJS"];
|
|
111
|
+
if (onlEnhanceJS && onlEnhanceJS["beforeEdit"]) {
|
|
112
|
+
return onlEnhanceJS["beforeEdit"](onlineTableContext, record);
|
|
113
|
+
} else {
|
|
114
|
+
return Promise.resolve();
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
EnhanceJS,
|
|
121
|
+
initCgEnhanceJs,
|
|
122
|
+
customBeforeSubmit,
|
|
123
|
+
beforeDelete,
|
|
124
|
+
triggerJsFun
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
const urlObject = {
|
|
128
|
+
optPre: "/online/cgform/api/form/",
|
|
129
|
+
urlButtonAction: "/online/cgform/api/doButton"
|
|
130
|
+
};
|
|
131
|
+
const _sfc_main = {
|
|
132
|
+
name: "OnlineForm",
|
|
133
|
+
components: {
|
|
134
|
+
BasicForm,
|
|
135
|
+
Loading,
|
|
136
|
+
OnlineSubForm
|
|
137
|
+
},
|
|
138
|
+
props: {
|
|
139
|
+
id: {
|
|
140
|
+
type: String,
|
|
141
|
+
default: ""
|
|
142
|
+
},
|
|
143
|
+
formTemplate: {
|
|
144
|
+
type: Number,
|
|
145
|
+
default: 1
|
|
146
|
+
},
|
|
147
|
+
disabled: {
|
|
148
|
+
type: Boolean,
|
|
149
|
+
default: false
|
|
150
|
+
},
|
|
151
|
+
isTree: {
|
|
152
|
+
type: Boolean,
|
|
153
|
+
default: false
|
|
154
|
+
},
|
|
155
|
+
pidField: {
|
|
156
|
+
type: String,
|
|
157
|
+
default: ""
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
emits: ["success", "rendered"],
|
|
161
|
+
setup(props, { emit }) {
|
|
162
|
+
console.log("onlineForm-setup\u300B\u300B");
|
|
163
|
+
const { createMessage: $message } = useMessage();
|
|
164
|
+
const onlineFormRef = ref(null);
|
|
165
|
+
const single = ref(true);
|
|
166
|
+
const loading = ref(false);
|
|
167
|
+
const tableType = ref(1);
|
|
168
|
+
const customEditSubmitUrl = ref("");
|
|
169
|
+
const submitFlowFlag = ref(false);
|
|
170
|
+
const isUpdate = ref(false);
|
|
171
|
+
const onlineExtConfigJson = reactive({
|
|
172
|
+
reportPrintShow: 0,
|
|
173
|
+
reportPrintUrl: "",
|
|
174
|
+
joinQuery: 0,
|
|
175
|
+
modelFullscreen: 0,
|
|
176
|
+
modalMinWidth: ""
|
|
177
|
+
});
|
|
178
|
+
const { onlineFormContext, resetContext } = useOnlineFormContext();
|
|
179
|
+
const {
|
|
180
|
+
formSchemas,
|
|
181
|
+
defaultValueFields,
|
|
182
|
+
changeDataIfArray2String,
|
|
183
|
+
tableName,
|
|
184
|
+
dbData,
|
|
185
|
+
checkOnlyFieldValue,
|
|
186
|
+
hasSubTable,
|
|
187
|
+
subTabInfo,
|
|
188
|
+
refMap,
|
|
189
|
+
subDataSource,
|
|
190
|
+
baseColProps,
|
|
191
|
+
createFormSchemas,
|
|
192
|
+
linkDownList,
|
|
193
|
+
fieldDisplayStatus
|
|
194
|
+
} = useFormItems(props, onlineFormRef);
|
|
195
|
+
let { EnhanceJS: EnhanceJS2, initCgEnhanceJs: initCgEnhanceJs2 } = useEnhance(onlineFormContext, false);
|
|
196
|
+
const [registerForm, { setProps, validate, resetFields, setFieldsValue, updateSchema, getFieldsValue, scrollToField }] = useForm({
|
|
197
|
+
schemas: formSchemas,
|
|
198
|
+
showActionButtonGroup: false,
|
|
199
|
+
baseColProps
|
|
200
|
+
});
|
|
201
|
+
const onlineFormDisabled = ref(false);
|
|
202
|
+
function handleFormDisabled() {
|
|
203
|
+
let flag = props.disabled;
|
|
204
|
+
onlineFormDisabled.value = flag;
|
|
205
|
+
setProps({ disabled: flag });
|
|
206
|
+
}
|
|
207
|
+
function show(status, record, param) {
|
|
208
|
+
return __async(this, null, function* () {
|
|
209
|
+
console.log("\u65B0\u589E\u7F16\u8F91\u8FDB\u5165\u8868\u5355\u300B\u300Bform", record);
|
|
210
|
+
yield updatePidFieldDict();
|
|
211
|
+
customEditSubmitUrl.value = "";
|
|
212
|
+
yield resetFields();
|
|
213
|
+
dbData.value = "";
|
|
214
|
+
let flag = unref(status);
|
|
215
|
+
isUpdate.value = flag;
|
|
216
|
+
if (flag) {
|
|
217
|
+
yield edit(record);
|
|
218
|
+
} else {
|
|
219
|
+
editSubVxeTableData();
|
|
220
|
+
}
|
|
221
|
+
nextTick(() => {
|
|
222
|
+
if (!flag && param) {
|
|
223
|
+
setFieldsValue(param);
|
|
224
|
+
}
|
|
225
|
+
handleDefaultValue();
|
|
226
|
+
handleCgButtonClick("js", "loaded");
|
|
227
|
+
handleFormDisabled();
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
function updatePidFieldDict() {
|
|
232
|
+
return __async(this, null, function* () {
|
|
233
|
+
if (props.isTree === true) {
|
|
234
|
+
let pidFieldName = props.pidField;
|
|
235
|
+
let arr = formSchemas.value;
|
|
236
|
+
if (arr && arr.length > 0) {
|
|
237
|
+
let temp = arr.filter((item) => item.field === pidFieldName);
|
|
238
|
+
if (temp.length > 0) {
|
|
239
|
+
yield updateSchema({
|
|
240
|
+
field: pidFieldName,
|
|
241
|
+
componentProps: {
|
|
242
|
+
reload: new Date().getTime()
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
} else {
|
|
247
|
+
console.log("\u6CA1\u6709\u62FF\u5230\u8868\u5355\u914D\u7F6E\u4FE1\u606F\uFF0C\u53EF\u80FD\u662F\u7B2C\u4E00\u6B21\u6253\u5F00\u65B0\u589E\u9875\u9762");
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
function handleDefaultValue() {
|
|
253
|
+
if (unref(isUpdate) === false) {
|
|
254
|
+
let fieldProperties = toRaw(defaultValueFields[tableName.value]);
|
|
255
|
+
loadFormFieldsDefVal(fieldProperties, (values) => {
|
|
256
|
+
setFieldsValue(values);
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
function handleSubTableDefaultValue(sub, $event) {
|
|
261
|
+
let subFieldProperties = toRaw(defaultValueFields[sub.key]);
|
|
262
|
+
loadFormFieldsDefVal(subFieldProperties, (values) => {
|
|
263
|
+
const { row, target } = $event;
|
|
264
|
+
let v = [{ rowKey: row.id, values: __spreadValues({}, values) }];
|
|
265
|
+
target.ctx.setValues(v);
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
function edit(record) {
|
|
269
|
+
return __async(this, null, function* () {
|
|
270
|
+
let formData = yield getFormData(record.id);
|
|
271
|
+
dbData.value = Object.assign({}, record);
|
|
272
|
+
let arr = realFormFieldNames.value;
|
|
273
|
+
yield setFieldsValue(pick(formData, ...arr));
|
|
274
|
+
editSubVxeTableData(formData);
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
function editSubVxeTableData(record) {
|
|
278
|
+
if (!record) {
|
|
279
|
+
record = {};
|
|
280
|
+
}
|
|
281
|
+
let keys = Object.keys(subDataSource.value);
|
|
282
|
+
if (keys && keys.length > 0) {
|
|
283
|
+
let obj = {};
|
|
284
|
+
for (let key of keys) {
|
|
285
|
+
obj[key] = record[key] || [];
|
|
286
|
+
}
|
|
287
|
+
subDataSource.value = obj;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
let realFormFieldNames = computed(() => {
|
|
291
|
+
let arr = formSchemas.value;
|
|
292
|
+
let names = [];
|
|
293
|
+
for (let a of arr) {
|
|
294
|
+
names.push(a.field);
|
|
295
|
+
}
|
|
296
|
+
return names;
|
|
297
|
+
});
|
|
298
|
+
function getFormData(dataId) {
|
|
299
|
+
let url = `${urlObject.optPre}${props.id}/${dataId}`;
|
|
300
|
+
return new Promise((resolve, reject) => {
|
|
301
|
+
defHttp.get({ url }, { isTransformResponse: false }).then((res) => {
|
|
302
|
+
if (res.success) {
|
|
303
|
+
resolve(res.result);
|
|
304
|
+
} else {
|
|
305
|
+
reject();
|
|
306
|
+
$message.warning(res.message);
|
|
307
|
+
}
|
|
308
|
+
}).catch(() => {
|
|
309
|
+
reject();
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
function createRootProperties(data) {
|
|
314
|
+
return __async(this, null, function* () {
|
|
315
|
+
tableType.value = data.head.tableType;
|
|
316
|
+
tableName.value = data.head.tableName;
|
|
317
|
+
single.value = data.head.tableType == 1;
|
|
318
|
+
handleExtConfigJson(data.head.extConfigJson);
|
|
319
|
+
createFormSchemas(data.schema.properties, data.schema.required, checkOnlyFieldValue);
|
|
320
|
+
EnhanceJS2 = initCgEnhanceJs2(data.enhanceJs);
|
|
321
|
+
emit("rendered", onlineExtConfigJson);
|
|
322
|
+
let formRefObject = yield getRefPromise(onlineFormRef);
|
|
323
|
+
formRefObject.$formValueChange = (field, value) => {
|
|
324
|
+
onValuesChange(field, value);
|
|
325
|
+
};
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
function handleExtConfigJson(jsonStr) {
|
|
329
|
+
let extConfigJson = { "reportPrintShow": 0, "reportPrintUrl": "", "joinQuery": 0, "modelFullscreen": 1, "modalMinWidth": "" };
|
|
330
|
+
if (jsonStr) {
|
|
331
|
+
extConfigJson = JSON.parse(jsonStr);
|
|
332
|
+
}
|
|
333
|
+
Object.keys(extConfigJson).map((k) => {
|
|
334
|
+
onlineExtConfigJson[k] = extConfigJson[k];
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
function handleSubmit() {
|
|
338
|
+
if (single.value === true) {
|
|
339
|
+
handleSingleSubmit();
|
|
340
|
+
} else {
|
|
341
|
+
handleOne2ManySubmit();
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
function handleOne2ManySubmit() {
|
|
345
|
+
validateAll().then((formData) => {
|
|
346
|
+
handleApplyRequest(formData);
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
function validateAll() {
|
|
350
|
+
let temp = {};
|
|
351
|
+
return new Promise((resolve, reject) => {
|
|
352
|
+
validate().then((values) => resolve(values), ({ errorFields }) => {
|
|
353
|
+
if (errorFields && errorFields.length > 0) {
|
|
354
|
+
scrollToField(errorFields[0][0]);
|
|
355
|
+
}
|
|
356
|
+
reject(VALIDATE_FAILED);
|
|
357
|
+
});
|
|
358
|
+
}).then((result) => {
|
|
359
|
+
Object.assign(temp, changeDataIfArray2String(result));
|
|
360
|
+
return validateSubTableFields();
|
|
361
|
+
}).then((allTableData) => {
|
|
362
|
+
Object.assign(temp, allTableData);
|
|
363
|
+
return Promise.resolve(temp);
|
|
364
|
+
}).catch((e) => {
|
|
365
|
+
if (e === VALIDATE_FAILED || (e == null ? void 0 : e.code) === VALIDATE_FAILED) {
|
|
366
|
+
$message.warning("\u6821\u9A8C\u672A\u901A\u8FC7");
|
|
367
|
+
if (e.key) {
|
|
368
|
+
changeTab(e.key);
|
|
369
|
+
}
|
|
370
|
+
} else {
|
|
371
|
+
console.error(e);
|
|
372
|
+
}
|
|
373
|
+
return Promise.reject(null);
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
function changeTab(key) {
|
|
377
|
+
let arr = subTabInfo.value;
|
|
378
|
+
for (let i = 0; i < arr.length; i++) {
|
|
379
|
+
if (key == arr[i].key) {
|
|
380
|
+
subActiveKey.value = i + "";
|
|
381
|
+
break;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
function validateSubTableFields() {
|
|
386
|
+
return new Promise((resolve, reject) => __async(this, null, function* () {
|
|
387
|
+
let subData = {};
|
|
388
|
+
try {
|
|
389
|
+
let arr = subTabInfo.value;
|
|
390
|
+
for (let i = 0; i < arr.length; i++) {
|
|
391
|
+
let key = arr[i].key;
|
|
392
|
+
let instance = refMap[key].value;
|
|
393
|
+
if (instance instanceof Array) {
|
|
394
|
+
instance = instance[0];
|
|
395
|
+
}
|
|
396
|
+
if (arr[i].relationType == 1) {
|
|
397
|
+
try {
|
|
398
|
+
let subFormData = yield instance.getAll();
|
|
399
|
+
subData[key] = [];
|
|
400
|
+
subData[key].push(subFormData);
|
|
401
|
+
} catch (e) {
|
|
402
|
+
throw { code: VALIDATE_FAILED, key };
|
|
403
|
+
}
|
|
404
|
+
} else {
|
|
405
|
+
let errMap = yield instance.fullValidateTable();
|
|
406
|
+
if (errMap) {
|
|
407
|
+
throw { code: VALIDATE_FAILED, key };
|
|
408
|
+
}
|
|
409
|
+
subData[key] = instance.getTableData();
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
} catch (e) {
|
|
413
|
+
reject(e);
|
|
414
|
+
}
|
|
415
|
+
resolve(subData);
|
|
416
|
+
}));
|
|
417
|
+
}
|
|
418
|
+
function handleSingleSubmit() {
|
|
419
|
+
return __async(this, null, function* () {
|
|
420
|
+
try {
|
|
421
|
+
let values = yield validate();
|
|
422
|
+
values = Object.assign({}, dbData.value, values);
|
|
423
|
+
values = changeDataIfArray2String(values);
|
|
424
|
+
loading.value = true;
|
|
425
|
+
handleApplyRequest(values);
|
|
426
|
+
} finally {
|
|
427
|
+
loading.value = false;
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
function handleApplyRequest(formData) {
|
|
432
|
+
customBeforeSubmit2(context, formData).then(() => {
|
|
433
|
+
doApplyRequest(formData);
|
|
434
|
+
}).catch((msg) => {
|
|
435
|
+
$message.warning(msg);
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
function doApplyRequest(formData) {
|
|
439
|
+
Object.keys(formData).map((key) => {
|
|
440
|
+
if (Array.isArray(formData[key])) {
|
|
441
|
+
if (formData[key].length == 0) {
|
|
442
|
+
formData[key] = "";
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
console.log("\u63D0\u4EA4\u8868\u5355\u6570\u636E\u300B\u300B\u300Bform:", formData);
|
|
447
|
+
let customUrl = customEditSubmitUrl.value;
|
|
448
|
+
let url = `${urlObject.optPre}${props.id}?tabletype=${tableType.value}`;
|
|
449
|
+
if (customUrl) {
|
|
450
|
+
url = `${customUrl}?tabletype=${tableType.value}`;
|
|
451
|
+
}
|
|
452
|
+
if (submitFlowFlag.value === true) {
|
|
453
|
+
formData[SUBMIT_FLOW_KEY] = 1;
|
|
454
|
+
}
|
|
455
|
+
let method = isUpdate.value === true ? "put" : "post";
|
|
456
|
+
defHttp.request({ url, method, params: formData }, { isTransformResponse: false }).then((res) => {
|
|
457
|
+
if (res.success) {
|
|
458
|
+
if (res.result) {
|
|
459
|
+
formData[SUBMIT_FLOW_ID] = res.result;
|
|
460
|
+
}
|
|
461
|
+
emit("success", formData);
|
|
462
|
+
$message.success(res.message);
|
|
463
|
+
} else {
|
|
464
|
+
$message.warning(res.message);
|
|
465
|
+
}
|
|
466
|
+
}).finally(() => {
|
|
467
|
+
loading.value = false;
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
function triggleChangeValues(values, id, target) {
|
|
471
|
+
if (id && target) {
|
|
472
|
+
if (target.setValues) {
|
|
473
|
+
target.setValues(values);
|
|
474
|
+
} else {
|
|
475
|
+
target.ctx.setValues([{
|
|
476
|
+
rowKey: id,
|
|
477
|
+
values
|
|
478
|
+
}]);
|
|
479
|
+
}
|
|
480
|
+
} else {
|
|
481
|
+
setFieldsValue(values);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
function triggleChangeValue(field, value) {
|
|
485
|
+
let obj = {};
|
|
486
|
+
obj[field] = value;
|
|
487
|
+
setFieldsValue(obj);
|
|
488
|
+
}
|
|
489
|
+
const subActiveKey = ref("0");
|
|
490
|
+
const subFormHeight = ref(300);
|
|
491
|
+
const subTableHeight = ref(340);
|
|
492
|
+
function getSubTableForeignKeyValue(key) {
|
|
493
|
+
if (isUpdate.value === true) {
|
|
494
|
+
let formData = dbData.value;
|
|
495
|
+
return getValueIgnoreCase(formData, key);
|
|
496
|
+
}
|
|
497
|
+
return "";
|
|
498
|
+
}
|
|
499
|
+
function getValueIgnoreCase(data, key) {
|
|
500
|
+
if (data) {
|
|
501
|
+
let temp = data[key];
|
|
502
|
+
if (!temp && temp !== 0) {
|
|
503
|
+
temp = data[key.toLowerCase()];
|
|
504
|
+
if (!temp && temp !== 0) {
|
|
505
|
+
temp = data[key.toUpperCase()];
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
return temp;
|
|
509
|
+
}
|
|
510
|
+
return "";
|
|
511
|
+
}
|
|
512
|
+
function handleSubFormChange(valueObj, tableKey) {
|
|
513
|
+
if (EnhanceJS2 && EnhanceJS2[tableKey + "_onlChange"]) {
|
|
514
|
+
let tableChangeObj = EnhanceJS2[tableKey + "_onlChange"]();
|
|
515
|
+
let columnKey = Object.keys(valueObj)[0];
|
|
516
|
+
if (tableChangeObj[columnKey]) {
|
|
517
|
+
let subRef = refMap[tableKey].value;
|
|
518
|
+
if (subRef instanceof Array) {
|
|
519
|
+
subRef = subRef[0];
|
|
520
|
+
}
|
|
521
|
+
let formEvent = subRef.getFormEvent();
|
|
522
|
+
let event = __spreadValues({
|
|
523
|
+
column: { key: columnKey },
|
|
524
|
+
value: valueObj[columnKey]
|
|
525
|
+
}, formEvent);
|
|
526
|
+
tableChangeObj[columnKey].call(onlineFormContext, onlineFormContext, event);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
function handleValueChange(event, tableKey) {
|
|
531
|
+
if (EnhanceJS2 && EnhanceJS2[tableKey + "_onlChange"]) {
|
|
532
|
+
let tableChangeObj = EnhanceJS2[tableKey + "_onlChange"](onlineFormContext);
|
|
533
|
+
if (tableChangeObj[event.column.key]) {
|
|
534
|
+
tableChangeObj[event.column.key].call(onlineFormContext, onlineFormContext, event);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
function handleAdded(event) {
|
|
539
|
+
event.target.emit("executeFillRule", event);
|
|
540
|
+
}
|
|
541
|
+
function getSubTableAuthPre(table) {
|
|
542
|
+
return "online_" + table + ":";
|
|
543
|
+
}
|
|
544
|
+
function onValuesChange(columnKey, value) {
|
|
545
|
+
return __async(this, null, function* () {
|
|
546
|
+
if (!EnhanceJS2 || !EnhanceJS2["onlChange"]) {
|
|
547
|
+
return false;
|
|
548
|
+
}
|
|
549
|
+
if (!columnKey) {
|
|
550
|
+
return false;
|
|
551
|
+
}
|
|
552
|
+
let tableChangeObj = EnhanceJS2["onlChange"]();
|
|
553
|
+
if (tableChangeObj[columnKey]) {
|
|
554
|
+
let formData = yield getFieldsValue();
|
|
555
|
+
let event = {
|
|
556
|
+
row: formData,
|
|
557
|
+
column: { key: columnKey },
|
|
558
|
+
value
|
|
559
|
+
};
|
|
560
|
+
tableChangeObj[columnKey].call(onlineFormContext, onlineFormContext, event);
|
|
561
|
+
}
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
function handleCgButtonClick(optType, buttonCode) {
|
|
565
|
+
if (optType == "js") {
|
|
566
|
+
if (EnhanceJS2 && EnhanceJS2[buttonCode]) {
|
|
567
|
+
EnhanceJS2[buttonCode].call(onlineFormContext, onlineFormContext);
|
|
568
|
+
}
|
|
569
|
+
} else if (optType == "action") {
|
|
570
|
+
let formData = dbData.value;
|
|
571
|
+
let params = {
|
|
572
|
+
formId: props.id,
|
|
573
|
+
buttonCode,
|
|
574
|
+
dataId: formData.id,
|
|
575
|
+
uiFormData: Object.assign({}, formData)
|
|
576
|
+
};
|
|
577
|
+
defHttp.post({
|
|
578
|
+
url: `${urlObject.urlButtonAction}`,
|
|
579
|
+
params
|
|
580
|
+
}, { isTransformResponse: false }).then((res) => {
|
|
581
|
+
if (res.success) {
|
|
582
|
+
$message.success("\u5904\u7406\u5B8C\u6210!");
|
|
583
|
+
} else {
|
|
584
|
+
$message.warning("\u5904\u7406\u5931\u8D25!");
|
|
585
|
+
}
|
|
586
|
+
});
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
function clearSubRows(tbname) {
|
|
590
|
+
let instance = refMap[tbname].value;
|
|
591
|
+
let rows = [...instance.getNewDataWithId(), ...subDataSource.value[tbname]];
|
|
592
|
+
if (!rows || rows.length == 0) {
|
|
593
|
+
return false;
|
|
594
|
+
}
|
|
595
|
+
let ids = [];
|
|
596
|
+
for (let i of rows) {
|
|
597
|
+
ids.push(i.id);
|
|
598
|
+
}
|
|
599
|
+
instance.removeRowsById(ids);
|
|
600
|
+
}
|
|
601
|
+
function addSubRows(tbname, rows) {
|
|
602
|
+
if (!rows) {
|
|
603
|
+
return false;
|
|
604
|
+
}
|
|
605
|
+
let instance = refMap[tbname].value;
|
|
606
|
+
if (typeof rows == "object") {
|
|
607
|
+
instance.addRows(rows, true);
|
|
608
|
+
} else {
|
|
609
|
+
this.$message.error("\u6DFB\u52A0\u5B50\u8868\u6570\u636E,\u53C2\u6570\u4E0D\u8BC6\u522B!");
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
function clearThenAddRows(tbname, rows) {
|
|
613
|
+
clearSubRows(tbname);
|
|
614
|
+
addSubRows(tbname, rows);
|
|
615
|
+
}
|
|
616
|
+
function changeOptions(field, options) {
|
|
617
|
+
if (!options && options.length <= 0) {
|
|
618
|
+
options = [];
|
|
619
|
+
}
|
|
620
|
+
options.map((item) => {
|
|
621
|
+
if (!item.hasOwnProperty("label")) {
|
|
622
|
+
item["label"] = item.text;
|
|
623
|
+
}
|
|
624
|
+
});
|
|
625
|
+
updateSchema({
|
|
626
|
+
field,
|
|
627
|
+
componentProps: {
|
|
628
|
+
options
|
|
629
|
+
}
|
|
630
|
+
});
|
|
631
|
+
}
|
|
632
|
+
function customBeforeSubmit2(that, formData) {
|
|
633
|
+
if (EnhanceJS2 && EnhanceJS2["beforeSubmit"]) {
|
|
634
|
+
return EnhanceJS2["beforeSubmit"](that, formData);
|
|
635
|
+
} else {
|
|
636
|
+
return Promise.resolve();
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
function handleCustomFormSh(show2, hide) {
|
|
640
|
+
let plain = toRaw(fieldDisplayStatus);
|
|
641
|
+
if (show2 && show2.length > 0) {
|
|
642
|
+
Object.keys(plain).map((k) => {
|
|
643
|
+
if (!k.endsWith("_load") && show2.indexOf(k) < 0) {
|
|
644
|
+
fieldDisplayStatus[k] = false;
|
|
645
|
+
}
|
|
646
|
+
});
|
|
647
|
+
} else if (hide && hide.length > 0) {
|
|
648
|
+
Object.keys(plain).map((k) => {
|
|
649
|
+
if (hide.indexOf(k) >= 0) {
|
|
650
|
+
fieldDisplayStatus[k] = false;
|
|
651
|
+
}
|
|
652
|
+
});
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
function handleCustomFormEdit(record, editSubmitUrl) {
|
|
656
|
+
return __async(this, null, function* () {
|
|
657
|
+
console.log("\u81EA\u5B9A\u4E49\u5F39\u7A97\u6253\u5F00online\u8868\u5355\u300B\u300Bform", record);
|
|
658
|
+
customEditSubmitUrl.value = editSubmitUrl;
|
|
659
|
+
yield resetFields();
|
|
660
|
+
dbData.value = "";
|
|
661
|
+
isUpdate.value = true;
|
|
662
|
+
yield edit(record);
|
|
663
|
+
yield nextTick(() => {
|
|
664
|
+
handleCgButtonClick("js", "loaded");
|
|
665
|
+
});
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
function getSubTableInstance(tableName2) {
|
|
669
|
+
let instance = refMap[tableName2].value;
|
|
670
|
+
if (instance instanceof Array) {
|
|
671
|
+
instance = instance[0];
|
|
672
|
+
}
|
|
673
|
+
return instance;
|
|
674
|
+
}
|
|
675
|
+
let context = {
|
|
676
|
+
tableName,
|
|
677
|
+
loading,
|
|
678
|
+
subActiveKey,
|
|
679
|
+
onlineFormRef,
|
|
680
|
+
getFieldsValue,
|
|
681
|
+
setFieldsValue,
|
|
682
|
+
submitFlowFlag,
|
|
683
|
+
subFormHeight,
|
|
684
|
+
subTableHeight,
|
|
685
|
+
refMap,
|
|
686
|
+
triggleChangeValues,
|
|
687
|
+
triggleChangeValue,
|
|
688
|
+
sh: fieldDisplayStatus,
|
|
689
|
+
clearSubRows,
|
|
690
|
+
addSubRows,
|
|
691
|
+
clearThenAddRows,
|
|
692
|
+
changeOptions,
|
|
693
|
+
isUpdate,
|
|
694
|
+
getSubTableInstance
|
|
695
|
+
};
|
|
696
|
+
resetContext(context);
|
|
697
|
+
return {
|
|
698
|
+
tableName,
|
|
699
|
+
onlineFormRef,
|
|
700
|
+
registerForm,
|
|
701
|
+
loading,
|
|
702
|
+
subActiveKey,
|
|
703
|
+
hasSubTable,
|
|
704
|
+
subTabInfo,
|
|
705
|
+
refMap,
|
|
706
|
+
subFormHeight,
|
|
707
|
+
getSubTableForeignKeyValue,
|
|
708
|
+
isUpdate,
|
|
709
|
+
handleSubFormChange,
|
|
710
|
+
subTableHeight,
|
|
711
|
+
onlineFormDisabled,
|
|
712
|
+
subDataSource,
|
|
713
|
+
getSubTableAuthPre,
|
|
714
|
+
handleAdded,
|
|
715
|
+
handleSubTableDefaultValue,
|
|
716
|
+
handleValueChange,
|
|
717
|
+
show,
|
|
718
|
+
createRootProperties,
|
|
719
|
+
handleSubmit,
|
|
720
|
+
sh: fieldDisplayStatus,
|
|
721
|
+
handleCgButtonClick,
|
|
722
|
+
handleCustomFormSh,
|
|
723
|
+
handleCustomFormEdit
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
};
|
|
727
|
+
const _hoisted_1 = ["id"];
|
|
728
|
+
const _hoisted_2 = { key: 1 };
|
|
729
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
730
|
+
const _component_BasicForm = resolveComponent("BasicForm");
|
|
731
|
+
const _component_online_sub_form = resolveComponent("online-sub-form");
|
|
732
|
+
const _component_JVxeTable = resolveComponent("JVxeTable");
|
|
733
|
+
const _component_a_tab_pane = resolveComponent("a-tab-pane");
|
|
734
|
+
const _component_a_tabs = resolveComponent("a-tabs");
|
|
735
|
+
const _component_Loading = resolveComponent("Loading");
|
|
736
|
+
return openBlock(), createElementBlock("div", {
|
|
737
|
+
id: $setup.tableName + "_form"
|
|
738
|
+
}, [
|
|
739
|
+
createVNode(_component_BasicForm, {
|
|
740
|
+
ref: "onlineFormRef",
|
|
741
|
+
onRegister: $setup.registerForm
|
|
742
|
+
}, null, 8, ["onRegister"]),
|
|
743
|
+
$setup.hasSubTable ? (openBlock(), createBlock(_component_a_tabs, {
|
|
744
|
+
key: 0,
|
|
745
|
+
activeKey: $setup.subActiveKey,
|
|
746
|
+
"onUpdate:activeKey": _cache[0] || (_cache[0] = ($event) => $setup.subActiveKey = $event)
|
|
747
|
+
}, {
|
|
748
|
+
default: withCtx(() => [
|
|
749
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList($setup.subTabInfo, (sub, index) => {
|
|
750
|
+
return openBlock(), createBlock(_component_a_tab_pane, {
|
|
751
|
+
tab: sub.describe,
|
|
752
|
+
key: index + "",
|
|
753
|
+
forceRender: true
|
|
754
|
+
}, {
|
|
755
|
+
default: withCtx(() => [
|
|
756
|
+
sub.relationType == 1 ? (openBlock(), createElementBlock("div", {
|
|
757
|
+
key: 0,
|
|
758
|
+
style: normalizeStyle({ "overflow-y": "auto", "overflow-x": "hidden", "max-height": $setup.subFormHeight + "px" })
|
|
759
|
+
}, [
|
|
760
|
+
createVNode(_component_online_sub_form, {
|
|
761
|
+
ref_for: true,
|
|
762
|
+
ref: $setup.refMap[sub.key],
|
|
763
|
+
table: sub.key,
|
|
764
|
+
disabled: $setup.onlineFormDisabled,
|
|
765
|
+
"form-template": $props.formTemplate,
|
|
766
|
+
"main-id": $setup.getSubTableForeignKeyValue(sub.foreignKey),
|
|
767
|
+
properties: sub.properties,
|
|
768
|
+
"required-fields": sub.requiredFields,
|
|
769
|
+
"is-update": $setup.isUpdate,
|
|
770
|
+
onFormChange: (arg) => $setup.handleSubFormChange(arg, sub.key)
|
|
771
|
+
}, null, 8, ["table", "disabled", "form-template", "main-id", "properties", "required-fields", "is-update", "onFormChange"])
|
|
772
|
+
], 4)) : (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
773
|
+
createVNode(_component_JVxeTable, {
|
|
774
|
+
ref_for: true,
|
|
775
|
+
ref: $setup.refMap[sub.key],
|
|
776
|
+
toolbar: "",
|
|
777
|
+
"keep-source": "",
|
|
778
|
+
"row-number": "",
|
|
779
|
+
"row-selection": "",
|
|
780
|
+
height: $setup.subTableHeight,
|
|
781
|
+
disabled: $setup.onlineFormDisabled,
|
|
782
|
+
columns: sub.columns,
|
|
783
|
+
dataSource: $setup.subDataSource[sub.key],
|
|
784
|
+
onValueChange: (event) => $setup.handleValueChange(event, sub.key),
|
|
785
|
+
authPre: $setup.getSubTableAuthPre(sub.key),
|
|
786
|
+
onAdded: $setup.handleAdded,
|
|
787
|
+
onExecuteFillRule: ($event) => $setup.handleSubTableDefaultValue(sub, $event)
|
|
788
|
+
}, null, 8, ["height", "disabled", "columns", "dataSource", "onValueChange", "authPre", "onAdded", "onExecuteFillRule"])
|
|
789
|
+
]))
|
|
790
|
+
]),
|
|
791
|
+
_: 2
|
|
792
|
+
}, 1032, ["tab"]);
|
|
793
|
+
}), 128))
|
|
794
|
+
]),
|
|
795
|
+
_: 1
|
|
796
|
+
}, 8, ["activeKey"])) : createCommentVNode("", true),
|
|
797
|
+
createVNode(_component_Loading, {
|
|
798
|
+
loading: $setup.loading,
|
|
799
|
+
absolute: false
|
|
800
|
+
}, null, 8, ["loading"]),
|
|
801
|
+
renderSlot(_ctx.$slots, "bottom")
|
|
802
|
+
], 8, _hoisted_1);
|
|
803
|
+
}
|
|
804
|
+
var OnlineForm = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
805
|
+
var OnlineForm$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
806
|
+
__proto__: null,
|
|
807
|
+
"default": OnlineForm
|
|
808
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
809
|
+
export { OnlineForm as O, OnlineForm$1 as a, useEnhance as u };
|