@tuoyuan/module-page-select 1.1.0 → 1.1.2

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.
@@ -1,7 +1,7 @@
1
1
  /******/ (function() { // webpackBootstrap
2
2
  /******/ var __webpack_modules__ = ({
3
3
 
4
- /***/ 2189:
4
+ /***/ 6447:
5
5
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
6
6
 
7
7
  "use strict";
@@ -15,7 +15,7 @@ __webpack_require__.r(__webpack_exports__);
15
15
 
16
16
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
17
17
  // Module
18
- ___CSS_LOADER_EXPORT___.push([module.id, ".module-page-select[data-v-65efbb12]{width:100%}.selection-preview[data-v-65efbb12]{margin-top:8px;padding:8px 12px;background:#f0f9ff;border:1px solid #91d5ff;border-radius:4px;font-size:13px}.preview-label[data-v-65efbb12]{color:#666;font-size:12px;margin-bottom:4px}.preview-value[data-v-65efbb12]{color:#1890ff;font-weight:500}.config-form[data-v-65efbb12]{margin-top:16px}", ""]);
18
+ ___CSS_LOADER_EXPORT___.push([module.id, ".module-page-select[data-v-3fb01432]{width:100%}.selection-preview[data-v-3fb01432]{margin-top:8px;padding:8px 12px;background:#f0f9ff;border:1px solid #91d5ff;border-radius:4px;font-size:13px}.preview-label[data-v-3fb01432]{color:#666;font-size:12px;margin-bottom:4px}.preview-value[data-v-3fb01432]{color:#1890ff;font-weight:500}.config-form[data-v-3fb01432]{margin-top:16px}.array-editor[data-v-3fb01432]{display:flex;flex-direction:column;gap:8px}.array-item[data-v-3fb01432]{display:flex;align-items:center;gap:8px;padding:8px;background:#f5f5f5;border-radius:4px}.array-item-fields[data-v-3fb01432]{display:flex;flex:1;gap:8px}", ""]);
19
19
  // Exports
20
20
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
21
21
 
@@ -148,19 +148,19 @@ exports.A = (sfc, props) => {
148
148
 
149
149
  /***/ }),
150
150
 
151
- /***/ 6344:
151
+ /***/ 1890:
152
152
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
153
153
 
154
154
  // style-loader: Adds some css to the DOM by adding a <style> tag
155
155
 
156
156
  // load the styles
157
- var content = __webpack_require__(2189);
157
+ var content = __webpack_require__(6447);
158
158
  if(content.__esModule) content = content.default;
159
159
  if(typeof content === 'string') content = [[module.id, content, '']];
160
160
  if(content.locals) module.exports = content.locals;
161
161
  // add the styles to the DOM
162
162
  var add = (__webpack_require__(8459)/* ["default"] */ .A)
163
- var update = add("103ad866", content, true, {"sourceMap":false,"shadowMode":false});
163
+ var update = add("2523c5f8", content, true, {"sourceMap":false,"shadowMode":false});
164
164
 
165
165
  /***/ }),
166
166
 
@@ -3279,277 +3279,6 @@ $({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEar
3279
3279
  });
3280
3280
 
3281
3281
 
3282
- /***/ }),
3283
-
3284
- /***/ 9112:
3285
- /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3286
-
3287
- "use strict";
3288
-
3289
- var $ = __webpack_require__(6518);
3290
- var DESCRIPTORS = __webpack_require__(3724);
3291
- var globalThis = __webpack_require__(4576);
3292
- var getBuiltIn = __webpack_require__(7751);
3293
- var uncurryThis = __webpack_require__(9504);
3294
- var call = __webpack_require__(9565);
3295
- var isCallable = __webpack_require__(4901);
3296
- var isObject = __webpack_require__(34);
3297
- var isArray = __webpack_require__(4376);
3298
- var hasOwn = __webpack_require__(9297);
3299
- var toString = __webpack_require__(655);
3300
- var lengthOfArrayLike = __webpack_require__(6198);
3301
- var createProperty = __webpack_require__(4659);
3302
- var fails = __webpack_require__(9039);
3303
- var parseJSONString = __webpack_require__(8235);
3304
- var NATIVE_SYMBOL = __webpack_require__(4495);
3305
-
3306
- var JSON = globalThis.JSON;
3307
- var Number = globalThis.Number;
3308
- var SyntaxError = globalThis.SyntaxError;
3309
- var nativeParse = JSON && JSON.parse;
3310
- var enumerableOwnProperties = getBuiltIn('Object', 'keys');
3311
- // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
3312
- var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
3313
- var at = uncurryThis(''.charAt);
3314
- var slice = uncurryThis(''.slice);
3315
- var exec = uncurryThis(/./.exec);
3316
- var push = uncurryThis([].push);
3317
-
3318
- var IS_DIGIT = /^\d$/;
3319
- var IS_NON_ZERO_DIGIT = /^[1-9]$/;
3320
- var IS_NUMBER_START = /^[\d-]$/;
3321
- var IS_WHITESPACE = /^[\t\n\r ]$/;
3322
-
3323
- var PRIMITIVE = 0;
3324
- var OBJECT = 1;
3325
-
3326
- var $parse = function (source, reviver) {
3327
- source = toString(source);
3328
- var context = new Context(source, 0, '');
3329
- var root = context.parse();
3330
- var value = root.value;
3331
- var endIndex = context.skip(IS_WHITESPACE, root.end);
3332
- if (endIndex < source.length) {
3333
- throw new SyntaxError('Unexpected extra character: "' + at(source, endIndex) + '" after the parsed data at: ' + endIndex);
3334
- }
3335
- return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;
3336
- };
3337
-
3338
- var internalize = function (holder, name, reviver, node) {
3339
- var val = holder[name];
3340
- var unmodified = node && val === node.value;
3341
- var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};
3342
- var elementRecordsLen, keys, len, i, P;
3343
- if (isObject(val)) {
3344
- var nodeIsArray = isArray(val);
3345
- var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};
3346
- if (nodeIsArray) {
3347
- elementRecordsLen = nodes.length;
3348
- len = lengthOfArrayLike(val);
3349
- for (i = 0; i < len; i++) {
3350
- internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));
3351
- }
3352
- } else {
3353
- keys = enumerableOwnProperties(val);
3354
- len = lengthOfArrayLike(keys);
3355
- for (i = 0; i < len; i++) {
3356
- P = keys[i];
3357
- internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));
3358
- }
3359
- }
3360
- }
3361
- return call(reviver, holder, name, val, context);
3362
- };
3363
-
3364
- var internalizeProperty = function (object, key, value) {
3365
- if (DESCRIPTORS) {
3366
- var descriptor = getOwnPropertyDescriptor(object, key);
3367
- if (descriptor && !descriptor.configurable) return;
3368
- }
3369
- if (value === undefined) delete object[key];
3370
- else createProperty(object, key, value);
3371
- };
3372
-
3373
- var Node = function (value, end, source, nodes) {
3374
- this.value = value;
3375
- this.end = end;
3376
- this.source = source;
3377
- this.nodes = nodes;
3378
- };
3379
-
3380
- var Context = function (source, index) {
3381
- this.source = source;
3382
- this.index = index;
3383
- };
3384
-
3385
- // https://www.json.org/json-en.html
3386
- Context.prototype = {
3387
- fork: function (nextIndex) {
3388
- return new Context(this.source, nextIndex);
3389
- },
3390
- parse: function () {
3391
- var source = this.source;
3392
- var i = this.skip(IS_WHITESPACE, this.index);
3393
- var fork = this.fork(i);
3394
- var chr = at(source, i);
3395
- if (exec(IS_NUMBER_START, chr)) return fork.number();
3396
- switch (chr) {
3397
- case '{':
3398
- return fork.object();
3399
- case '[':
3400
- return fork.array();
3401
- case '"':
3402
- return fork.string();
3403
- case 't':
3404
- return fork.keyword(true);
3405
- case 'f':
3406
- return fork.keyword(false);
3407
- case 'n':
3408
- return fork.keyword(null);
3409
- } throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
3410
- },
3411
- node: function (type, value, start, end, nodes) {
3412
- return new Node(value, end, type ? null : slice(this.source, start, end), nodes);
3413
- },
3414
- object: function () {
3415
- var source = this.source;
3416
- var i = this.index + 1;
3417
- var expectKeypair = false;
3418
- var object = {};
3419
- var nodes = {};
3420
- var closed = false;
3421
- while (i < source.length) {
3422
- i = this.until(['"', '}'], i);
3423
- if (at(source, i) === '}' && !expectKeypair) {
3424
- i++;
3425
- closed = true;
3426
- break;
3427
- }
3428
- // Parsing the key
3429
- var result = this.fork(i).string();
3430
- var key = result.value;
3431
- i = result.end;
3432
- i = this.until([':'], i) + 1;
3433
- // Parsing value
3434
- i = this.skip(IS_WHITESPACE, i);
3435
- result = this.fork(i).parse();
3436
- createProperty(nodes, key, result);
3437
- createProperty(object, key, result.value);
3438
- i = this.until([',', '}'], result.end);
3439
- var chr = at(source, i);
3440
- if (chr === ',') {
3441
- expectKeypair = true;
3442
- i++;
3443
- } else if (chr === '}') {
3444
- i++;
3445
- closed = true;
3446
- break;
3447
- }
3448
- }
3449
- if (!closed) throw new SyntaxError('Unterminated object at: ' + i);
3450
- return this.node(OBJECT, object, this.index, i, nodes);
3451
- },
3452
- array: function () {
3453
- var source = this.source;
3454
- var i = this.index + 1;
3455
- var expectElement = false;
3456
- var array = [];
3457
- var nodes = [];
3458
- var closed = false;
3459
- while (i < source.length) {
3460
- i = this.skip(IS_WHITESPACE, i);
3461
- if (at(source, i) === ']' && !expectElement) {
3462
- i++;
3463
- closed = true;
3464
- break;
3465
- }
3466
- var result = this.fork(i).parse();
3467
- push(nodes, result);
3468
- push(array, result.value);
3469
- i = this.until([',', ']'], result.end);
3470
- if (at(source, i) === ',') {
3471
- expectElement = true;
3472
- i++;
3473
- } else if (at(source, i) === ']') {
3474
- i++;
3475
- closed = true;
3476
- break;
3477
- }
3478
- }
3479
- if (!closed) throw new SyntaxError('Unterminated array at: ' + i);
3480
- return this.node(OBJECT, array, this.index, i, nodes);
3481
- },
3482
- string: function () {
3483
- var index = this.index;
3484
- var parsed = parseJSONString(this.source, this.index + 1);
3485
- return this.node(PRIMITIVE, parsed.value, index, parsed.end);
3486
- },
3487
- number: function () {
3488
- var source = this.source;
3489
- var startIndex = this.index;
3490
- var i = startIndex;
3491
- if (at(source, i) === '-') i++;
3492
- if (at(source, i) === '0') i++;
3493
- else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);
3494
- else throw new SyntaxError('Failed to parse number at: ' + i);
3495
- if (at(source, i) === '.') {
3496
- var fractionStartIndex = i + 1;
3497
- i = this.skip(IS_DIGIT, fractionStartIndex);
3498
- if (fractionStartIndex === i) throw new SyntaxError("Failed to parse number's fraction at: " + i);
3499
- }
3500
- if (at(source, i) === 'e' || at(source, i) === 'E') {
3501
- i++;
3502
- if (at(source, i) === '+' || at(source, i) === '-') i++;
3503
- var exponentStartIndex = i;
3504
- i = this.skip(IS_DIGIT, i);
3505
- if (exponentStartIndex === i) throw new SyntaxError("Failed to parse number's exponent value at: " + i);
3506
- }
3507
- return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);
3508
- },
3509
- keyword: function (value) {
3510
- var keyword = '' + value;
3511
- var index = this.index;
3512
- var endIndex = index + keyword.length;
3513
- if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);
3514
- return this.node(PRIMITIVE, value, index, endIndex);
3515
- },
3516
- skip: function (regex, i) {
3517
- var source = this.source;
3518
- for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;
3519
- return i;
3520
- },
3521
- until: function (array, i) {
3522
- i = this.skip(IS_WHITESPACE, i);
3523
- var chr = at(this.source, i);
3524
- for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;
3525
- throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
3526
- }
3527
- };
3528
-
3529
- var NO_SOURCE_SUPPORT = fails(function () {
3530
- var unsafeInt = '9007199254740993';
3531
- var source;
3532
- nativeParse(unsafeInt, function (key, value, context) {
3533
- source = context.source;
3534
- });
3535
- return source !== unsafeInt;
3536
- });
3537
-
3538
- var PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {
3539
- // Safari 9 bug
3540
- return 1 / nativeParse('-0 \t') !== -Infinity;
3541
- });
3542
-
3543
- // `JSON.parse` method
3544
- // https://tc39.es/ecma262/#sec-json.parse
3545
- // https://github.com/tc39/proposal-json-parse-with-source
3546
- $({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {
3547
- parse: function parse(text, reviver) {
3548
- return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);
3549
- }
3550
- });
3551
-
3552
-
3553
3282
  /***/ }),
3554
3283
 
3555
3284
  /***/ 3110:
@@ -3812,7 +3541,7 @@ if (typeof window !== 'undefined') {
3812
3541
 
3813
3542
  ;// external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
3814
3543
  var external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject = require("vue");
3815
- ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ModulePageSelect.vue?vue&type=template&id=65efbb12&scoped=true
3544
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ModulePageSelect.vue?vue&type=template&id=3fb01432&scoped=true
3816
3545
 
3817
3546
  const _hoisted_1 = {
3818
3547
  class: "module-page-select"
@@ -3824,6 +3553,13 @@ const _hoisted_2 = {
3824
3553
  const _hoisted_3 = {
3825
3554
  class: "preview-value"
3826
3555
  };
3556
+ const _hoisted_4 = {
3557
+ key: 4,
3558
+ class: "array-editor"
3559
+ };
3560
+ const _hoisted_5 = {
3561
+ class: "array-item-fields"
3562
+ };
3827
3563
  function render(_ctx, _cache, $props, $setup, $data, $options) {
3828
3564
  const _component_a_option = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("a-option");
3829
3565
  const _component_a_select = (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.resolveComponent)("a-select");
@@ -3943,7 +3679,39 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
3943
3679
  }, 1032, ["value", "label"]);
3944
3680
  }), 128))]),
3945
3681
  _: 2
3946
- }, 1032, ["model-value", "onUpdate:modelValue"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]),
3682
+ }, 1032, ["model-value", "onUpdate:modelValue"])) : field.type === 'array' ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", _hoisted_4, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderList)($options.getNestedValue(key, field), (item, index) => {
3683
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)("div", {
3684
+ key: index,
3685
+ class: "array-item"
3686
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementVNode)("div", _hoisted_5, [((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(true), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createElementBlock)(external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.Fragment, null, (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.renderList)(field.itemFields, (subField, subKey) => {
3687
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_a_input, {
3688
+ key: subKey,
3689
+ "model-value": item[subKey],
3690
+ placeholder: subField.title || subKey,
3691
+ "onUpdate:modelValue": val => $options.updateArrayItem(key, field, index, subKey, val),
3692
+ style: {
3693
+ "flex": "1",
3694
+ "margin-right": "8px"
3695
+ }
3696
+ }, null, 8, ["model-value", "placeholder", "onUpdate:modelValue"]);
3697
+ }), 128))]), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_a_button, {
3698
+ type: "text",
3699
+ status: "danger",
3700
+ size: "small",
3701
+ onClick: $event => $options.removeArrayItem(key, field, index)
3702
+ }, {
3703
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [...(_cache[4] || (_cache[4] = [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)(" 删除 ", -1)]))]),
3704
+ _: 1
3705
+ }, 8, ["onClick"])]);
3706
+ }), 128)), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createVNode)(_component_a_button, {
3707
+ type: "dashed",
3708
+ long: "",
3709
+ size: "small",
3710
+ onClick: $event => $options.addArrayItem(key, field)
3711
+ }, {
3712
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)(" + 新增 ", -1)]))]),
3713
+ _: 1
3714
+ }, 8, ["onClick"])])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]),
3947
3715
  _: 2
3948
3716
  }, 1032, ["label", "field"]);
3949
3717
  }), 128))], 64)) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true), $data.showConfirmButton ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_a_button, {
@@ -3957,14 +3725,16 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
3957
3725
  "margin-top": "16px"
3958
3726
  }
3959
3727
  }, {
3960
- default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [...(_cache[4] || (_cache[4] = [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)(" 确认选择 ", -1)]))]),
3728
+ default: (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createTextVNode)(" 确认选择 ", -1)]))]),
3961
3729
  _: 1
3962
3730
  }, 8, ["onClick", "disabled"])) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]),
3963
3731
  _: 1
3964
3732
  })]);
3965
3733
  }
3966
- ;// ./src/components/ModulePageSelect.vue?vue&type=template&id=65efbb12&scoped=true
3734
+ ;// ./src/components/ModulePageSelect.vue?vue&type=template&id=3fb01432&scoped=true
3967
3735
 
3736
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
3737
+ var es_array_push = __webpack_require__(4114);
3968
3738
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
3969
3739
  var es_iterator_constructor = __webpack_require__(8111);
3970
3740
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js
@@ -3975,8 +3745,6 @@ var es_iterator_for_each = __webpack_require__(7588);
3975
3745
  var es_iterator_map = __webpack_require__(1701);
3976
3746
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js
3977
3747
  var es_iterator_some = __webpack_require__(3579);
3978
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.parse.js
3979
- var es_json_parse = __webpack_require__(9112);
3980
3748
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.stringify.js
3981
3749
  var es_json_stringify = __webpack_require__(3110);
3982
3750
  ;// external {"commonjs":"@tuoyuan/gateway-request-lib","commonjs2":"@tuoyuan/gateway-request-lib","root":"GatewayRequestLib"}
@@ -4370,9 +4138,9 @@ var gateway_request_lib_root_GatewayRequestLib_namespaceObject = require("@tuoyu
4370
4138
  return this.formData[field.parentKey]?.[field.subKey] ?? '';
4371
4139
  }
4372
4140
  const value = this.formData[key];
4373
- // 如果是数组类型,转换为 JSON 字符串显示
4374
- if (field.type === 'textarea' && Array.isArray(value)) {
4375
- return JSON.stringify(value, null, 2);
4141
+ // 如果是数组类型,确保返回数组
4142
+ if (field.type === 'array') {
4143
+ return Array.isArray(value) ? value : [];
4376
4144
  }
4377
4145
  return value ?? '';
4378
4146
  },
@@ -4384,17 +4152,31 @@ var gateway_request_lib_root_GatewayRequestLib_namespaceObject = require("@tuoyu
4384
4152
  }
4385
4153
  this.formData[field.parentKey][field.subKey] = value;
4386
4154
  } else {
4387
- // 如果是数组类型的字段,尝试解析 JSON
4388
- if (field.type === 'textarea' && typeof value === 'string') {
4389
- try {
4390
- this.formData[key] = JSON.parse(value);
4391
- } catch (e) {
4392
- // 解析失败,保存原始字符串
4393
- this.formData[key] = value;
4394
- }
4395
- } else {
4396
- this.formData[key] = value;
4397
- }
4155
+ this.formData[key] = value;
4156
+ }
4157
+ },
4158
+ // 添加数组项
4159
+ addArrayItem(key, field) {
4160
+ if (!this.formData[key]) {
4161
+ this.formData[key] = [];
4162
+ }
4163
+ const newItem = {};
4164
+ // 初始化新项的字段
4165
+ Object.keys(field.itemFields || {}).forEach(subKey => {
4166
+ newItem[subKey] = '';
4167
+ });
4168
+ this.formData[key].push(newItem);
4169
+ },
4170
+ // 删除数组项
4171
+ removeArrayItem(key, field, index) {
4172
+ if (this.formData[key] && Array.isArray(this.formData[key])) {
4173
+ this.formData[key].splice(index, 1);
4174
+ }
4175
+ },
4176
+ // 更新数组项的字段
4177
+ updateArrayItem(key, field, index, subKey, value) {
4178
+ if (this.formData[key] && this.formData[key][index]) {
4179
+ this.formData[key][index][subKey] = value;
4398
4180
  }
4399
4181
  },
4400
4182
  // 解析配置 schema(基于 JSON Schema)- 支持嵌套的 object 和 array 类型
@@ -4404,23 +4186,24 @@ var gateway_request_lib_root_GatewayRequestLib_namespaceObject = require("@tuoyu
4404
4186
  Object.keys(schema.properties).forEach(key => {
4405
4187
  const prop = schema.properties[key];
4406
4188
 
4407
- // 如果是数组类型,使用 textarea 让用户输入 JSON
4189
+ // 如果是数组类型,提取 items properties 作为子字段
4408
4190
  if (prop.type === 'array') {
4409
- let placeholder = prop.description || '请输入JSON格式的数组';
4410
- // 如果数组的 items 有定义,提供示例
4191
+ const itemFields = {};
4411
4192
  if (prop.items && prop.items.type === 'object' && prop.items.properties) {
4412
- const example = {};
4413
4193
  Object.keys(prop.items.properties).forEach(itemKey => {
4414
4194
  const itemProp = prop.items.properties[itemKey];
4415
- example[itemKey] = itemProp.title || itemKey;
4195
+ itemFields[itemKey] = {
4196
+ title: itemProp.title || itemKey,
4197
+ type: itemProp.type || 'string'
4198
+ };
4416
4199
  });
4417
- placeholder = `${prop.description || ''}\n示例格式:\n${JSON.stringify([example], null, 2)}`;
4418
4200
  }
4419
4201
  fields[key] = {
4420
4202
  label: prop.title || key,
4421
- type: 'textarea',
4422
- placeholder: placeholder,
4423
- default: prop.default || []
4203
+ type: 'array',
4204
+ placeholder: prop.description || '',
4205
+ default: prop.default || [],
4206
+ itemFields: itemFields
4424
4207
  };
4425
4208
  }
4426
4209
  // 如果是嵌套的 object 类型,递归解析其子字段
@@ -4529,9 +4312,9 @@ var gateway_request_lib_root_GatewayRequestLib_namespaceObject = require("@tuoyu
4529
4312
  });
4530
4313
  ;// ./src/components/ModulePageSelect.vue?vue&type=script&lang=js
4531
4314
 
4532
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ModulePageSelect.vue?vue&type=style&index=0&id=65efbb12&scoped=true&lang=css
4533
- var ModulePageSelectvue_type_style_index_0_id_65efbb12_scoped_true_lang_css = __webpack_require__(6344);
4534
- ;// ./src/components/ModulePageSelect.vue?vue&type=style&index=0&id=65efbb12&scoped=true&lang=css
4315
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/ModulePageSelect.vue?vue&type=style&index=0&id=3fb01432&scoped=true&lang=css
4316
+ var ModulePageSelectvue_type_style_index_0_id_3fb01432_scoped_true_lang_css = __webpack_require__(1890);
4317
+ ;// ./src/components/ModulePageSelect.vue?vue&type=style&index=0&id=3fb01432&scoped=true&lang=css
4535
4318
 
4536
4319
  // EXTERNAL MODULE: ./node_modules/vue-loader/dist/exportHelper.js
4537
4320
  var exportHelper = __webpack_require__(1241);
@@ -4543,7 +4326,7 @@ var exportHelper = __webpack_require__(1241);
4543
4326
  ;
4544
4327
 
4545
4328
 
4546
- const __exports__ = /*#__PURE__*/(0,exportHelper/* default */.A)(ModulePageSelectvue_type_script_lang_js, [['render',render],['__scopeId',"data-v-65efbb12"]])
4329
+ const __exports__ = /*#__PURE__*/(0,exportHelper/* default */.A)(ModulePageSelectvue_type_script_lang_js, [['render',render],['__scopeId',"data-v-3fb01432"]])
4547
4330
 
4548
4331
  /* harmony default export */ var ModulePageSelect = (__exports__);
4549
4332
  ;// ./src/index.js