ecinc-cloud-wappaio 9.7.107 → 9.7.109

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.
@@ -55948,7 +55948,7 @@ var install = function install(Vue) {
55948
55948
 
55949
55949
  /***/ }),
55950
55950
 
55951
- /***/ 34719:
55951
+ /***/ 71634:
55952
55952
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
55953
55953
 
55954
55954
  "use strict";
@@ -55960,13 +55960,13 @@ __webpack_require__.d(__webpack_exports__, {
55960
55960
  DataDictForm: function() { return /* binding */ DataDictForm; }
55961
55961
  });
55962
55962
 
55963
- ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplat/DataDict/src/form.vue?vue&type=template&id=75222ba9
55963
+ ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplat/DataDict/src/form.vue?vue&type=template&id=6c8198bc&scoped=true
55964
55964
  var render = function render() {
55965
55965
  var _vm = this,
55966
55966
  _c = _vm._self._c;
55967
55967
  return _c('div', {
55968
55968
  attrs: {
55969
- "id": "dcontent_data-dict"
55969
+ "id": "dcontent_09339ee4749f44b092e460b48462046b"
55970
55970
  }
55971
55971
  }, [_c('el-form', {
55972
55972
  attrs: {
@@ -56016,16 +56016,16 @@ var render = function render() {
56016
56016
  ref: 'field-paramDesc',
56017
56017
  attrs: {
56018
56018
  "field": {
56019
- 'textFormatter': 'textfield',
56020
- 'elementType': 'input',
56021
- 'propName': 'paramDesc',
56022
- 'model': 'vo.paramDesc',
56023
- 'emptyMessage': '请输入字典说明',
56024
- 'isRequired': 1,
56025
- 'elementCanEdit': '{${canEdit}}',
56026
- 'elementReadonly': 0,
56027
- 'valueMaxLength': '500',
56028
- 'propComment': '字典说明'
56019
+ textFormatter: 'textfield',
56020
+ elementType: 'input',
56021
+ propName: 'paramDesc',
56022
+ model: 'vo.paramDesc',
56023
+ emptyMessage: '请输入字典说明',
56024
+ isRequired: 1,
56025
+ elementCanEdit: '{${canEdit}}',
56026
+ elementReadonly: 0,
56027
+ valueMaxLength: '500',
56028
+ propComment: '字典说明'
56029
56029
  },
56030
56030
  "vo": _vm.vo,
56031
56031
  "can-edit": _vm.canEdit
@@ -56055,16 +56055,16 @@ var render = function render() {
56055
56055
  ref: 'field-paramName',
56056
56056
  attrs: {
56057
56057
  "field": {
56058
- 'textFormatter': 'textfield',
56059
- 'elementType': 'input',
56060
- 'propName': 'paramName',
56061
- 'model': 'vo.paramNameInput',
56062
- 'emptyMessage': '请输入字典编码',
56063
- 'isRequired': 1,
56064
- 'elementCanEdit': '{${canEdit}}',
56065
- 'elementReadonly': 0,
56066
- 'valueMaxLength': '500',
56067
- 'propComment': '字典编码'
56058
+ textFormatter: 'textfield',
56059
+ elementType: 'input',
56060
+ propName: 'paramName',
56061
+ model: 'vo.paramNameInput',
56062
+ emptyMessage: '请输入字典编码',
56063
+ isRequired: 1,
56064
+ elementCanEdit: '{${canEdit}}',
56065
+ elementReadonly: 0,
56066
+ valueMaxLength: '500',
56067
+ propComment: '字典编码'
56068
56068
  },
56069
56069
  "vo": _vm.vo,
56070
56070
  "can-edit": _vm.canEdit
@@ -56075,7 +56075,7 @@ var render = function render() {
56075
56075
  staticStyle: {
56076
56076
  "text-align": "right"
56077
56077
  }
56078
- }, [_vm._v(" 列表选项配置")]), _c('td', {
56078
+ }, [_vm._v("列表选项配置")]), _c('td', {
56079
56079
  staticClass: "el-table__cell tdcont tdw83",
56080
56080
  staticStyle: {
56081
56081
  "padding": "0 !important"
@@ -56098,41 +56098,69 @@ var render = function render() {
56098
56098
  staticClass: "el-table__cell tdlbl",
56099
56099
  staticStyle: {
56100
56100
  "text-align": "center",
56101
- "width": "41%",
56101
+ "width": "40%",
56102
56102
  "color": "black",
56103
56103
  "font-weight": "600",
56104
56104
  "background-color": "#f5f7fa"
56105
56105
  }
56106
- }, [_vm._v(" 选项值")]), _c('td', {
56106
+ }, [_vm._v("选项值")]), _c('td', {
56107
56107
  staticClass: "el-table__cell tdlbl",
56108
56108
  staticStyle: {
56109
56109
  "text-align": "center",
56110
- "width": "41%",
56110
+ "width": "40%",
56111
56111
  "color": "black",
56112
56112
  "font-weight": "600",
56113
56113
  "background-color": "#f5f7fa"
56114
56114
  }
56115
- }, [_vm._v(" 显示文本")]), _c('td', {
56115
+ }, [_vm._v("显示文本")]), _c('td', {
56116
56116
  staticClass: "el-table__cell tdlbl",
56117
56117
  staticStyle: {
56118
56118
  "text-align": "center",
56119
- "width": "18%",
56119
+ "width": "20%",
56120
56120
  "color": "black",
56121
56121
  "font-weight": "600",
56122
56122
  "border-right": "none",
56123
56123
  "background-color": "#f5f7fa"
56124
56124
  }
56125
- }, [_vm._v(" 操作")])])]), _c('tbody', {
56125
+ }, [_vm._v("操作")])])]), _c('tbody', {
56126
56126
  ref: "optionTbody"
56127
- }, _vm._l(_vm.optionList, function (opt, idx) {
56127
+ }, _vm._l(_vm.displayRows, function (row) {
56128
56128
  return _c('tr', {
56129
- key: opt._dragKey
56129
+ key: row.opt._dragKey
56130
56130
  }, [_c('td', {
56131
56131
  staticStyle: {
56132
- "text-align": "center",
56132
+ "text-align": "left",
56133
56133
  "padding": "4px 8px"
56134
56134
  }
56135
- }, [_c('el-input', {
56135
+ }, [_c('div', {
56136
+ staticStyle: {
56137
+ "display": "flex",
56138
+ "align-items": "center"
56139
+ },
56140
+ style: {
56141
+ paddingLeft: row.depth * 20 + 'px'
56142
+ }
56143
+ }, [_c('span', {
56144
+ staticStyle: {
56145
+ "flex": "0 0 18px",
56146
+ "display": "inline-flex",
56147
+ "align-items": "center",
56148
+ "justify-content": "center"
56149
+ }
56150
+ }, [_vm.hasChildren(row.opt) ? _c('i', {
56151
+ staticClass: "el-icon-caret-right expand-toggle",
56152
+ class: {
56153
+ 'is-expanded': row.opt._expanded !== false
56154
+ },
56155
+ attrs: {
56156
+ "title": "展开/收起"
56157
+ },
56158
+ on: {
56159
+ "click": function click($event) {
56160
+ return _vm.toggleExpand(row.opt);
56161
+ }
56162
+ }
56163
+ }) : _vm._e()]), _c('el-input', {
56136
56164
  attrs: {
56137
56165
  "placeholder": "选项值",
56138
56166
  "disabled": !_vm.canEdit
@@ -56141,13 +56169,13 @@ var render = function render() {
56141
56169
  "input": _vm.syncOptionsToParamValue
56142
56170
  },
56143
56171
  model: {
56144
- value: opt.value,
56172
+ value: row.opt.value,
56145
56173
  callback: function callback($$v) {
56146
- _vm.$set(opt, "value", $$v);
56174
+ _vm.$set(row.opt, "value", $$v);
56147
56175
  },
56148
- expression: "opt.value"
56176
+ expression: "row.opt.value"
56149
56177
  }
56150
- })], 1), _c('td', {
56178
+ })], 1)]), _c('td', {
56151
56179
  staticStyle: {
56152
56180
  "text-align": "center",
56153
56181
  "padding": "4px 8px"
@@ -56161,11 +56189,11 @@ var render = function render() {
56161
56189
  "input": _vm.syncOptionsToParamValue
56162
56190
  },
56163
56191
  model: {
56164
- value: opt.text,
56192
+ value: row.opt.text,
56165
56193
  callback: function callback($$v) {
56166
- _vm.$set(opt, "text", $$v);
56194
+ _vm.$set(row.opt, "text", $$v);
56167
56195
  },
56168
- expression: "opt.text"
56196
+ expression: "row.opt.text"
56169
56197
  }
56170
56198
  })], 1), _c('td', {
56171
56199
  staticStyle: {
@@ -56173,54 +56201,99 @@ var render = function render() {
56173
56201
  "padding": "4px 8px",
56174
56202
  "white-space": "nowrap"
56175
56203
  }
56176
- }, [_vm.canEdit ? _c('i', {
56177
- staticClass: "option-drag-handle el-icon-rank",
56178
- staticStyle: {
56179
- "cursor": "move",
56180
- "color": "#909399",
56181
- "margin-right": "8px",
56182
- "font-size": "16px",
56183
- "vertical-align": "middle"
56184
- },
56204
+ }, [_vm.canEdit ? _c('el-button', {
56205
+ staticClass: "option-drag-handle",
56185
56206
  attrs: {
56186
- "title": "拖拽排序"
56207
+ "size": "mini",
56208
+ "type": "text",
56209
+ "icon": "el-icon-rank",
56210
+ "title": "拖动排序(仅限同级)"
56187
56211
  }
56188
- }) : _vm._e(), _c('el-button', {
56212
+ }, [_vm._v("排序")]) : _vm._e(), _c('el-button', {
56189
56213
  attrs: {
56190
- "type": "danger",
56191
- "plain": "",
56192
- "size": "small",
56214
+ "size": "mini",
56215
+ "type": "text",
56216
+ "icon": "el-icon-plus",
56217
+ "disabled": !_vm.canEdit,
56218
+ "title": "在该选项下新增一个下级选项"
56219
+ },
56220
+ on: {
56221
+ "click": function click($event) {
56222
+ return _vm.addChild(row.opt);
56223
+ }
56224
+ }
56225
+ }, [_vm._v("新增下级")]), _c('el-button', {
56226
+ attrs: {
56227
+ "size": "mini",
56228
+ "type": "text",
56193
56229
  "icon": "el-icon-delete",
56194
56230
  "disabled": !_vm.canEdit
56195
56231
  },
56196
56232
  on: {
56197
56233
  "click": function click($event) {
56198
- return _vm.removeOption(idx);
56234
+ return _vm.removeOption(row.opt);
56199
56235
  }
56200
56236
  }
56201
56237
  }, [_vm._v("删除")])], 1)]);
56202
56238
  }), 0)]), _c('div', {
56203
56239
  staticStyle: {
56204
- "padding": "8px"
56240
+ "padding": "8px",
56241
+ "text-align": "center"
56205
56242
  }
56206
56243
  }, [_c('el-button', {
56207
56244
  attrs: {
56208
- "type": "primary",
56209
- "plain": "",
56210
56245
  "size": "small",
56246
+ "plain": "",
56211
56247
  "icon": "el-icon-plus",
56212
56248
  "disabled": !_vm.canEdit
56213
56249
  },
56214
56250
  on: {
56215
56251
  "click": _vm.addOption
56216
56252
  }
56217
- }, [_vm._v("添加选项")])], 1)])]), false ? 0 : _vm._e()])])])])])], 1);
56253
+ }, [_vm._v("添加选项")])], 1)])]), _c('tr', [_c('td', {
56254
+ staticClass: "el-table__cell tdlbl tdw17",
56255
+ staticStyle: {
56256
+ "text-align": "right"
56257
+ }
56258
+ }, [_vm._v("级联配置")]), _c('td', {
56259
+ staticClass: "el-table__cell tdcont tdw83",
56260
+ staticStyle: {
56261
+ "padding": "8px 8px 8px 12px"
56262
+ },
56263
+ attrs: {
56264
+ "colspan": "5"
56265
+ }
56266
+ }, [_c('el-input', {
56267
+ staticStyle: {
56268
+ "width": "100%"
56269
+ },
56270
+ attrs: {
56271
+ "placeholder": "如 city,district,逗号分隔,从第二级开始填(第一级为字典编码对应字段),留空不启用",
56272
+ "disabled": !_vm.canEdit,
56273
+ "clearable": ""
56274
+ },
56275
+ on: {
56276
+ "input": _vm.syncOptionsToParamValue
56277
+ },
56278
+ model: {
56279
+ value: _vm.chainFieldsInput,
56280
+ callback: function callback($$v) {
56281
+ _vm.chainFieldsInput = $$v;
56282
+ },
56283
+ expression: "chainFieldsInput"
56284
+ }
56285
+ }), _c('div', {
56286
+ staticStyle: {
56287
+ "color": "#909399",
56288
+ "font-size": "12px",
56289
+ "margin-top": "4px"
56290
+ }
56291
+ }, [_vm._v("通过\"新增下级\"逐级构建层级树;填写后按字段名逐级注入选项(链式级联),留空则子级按 children 存储")])], 1)]), false ? 0 : _vm._e()])])])])])], 1);
56218
56292
  };
56219
56293
  var staticRenderFns = [];
56220
56294
 
56221
56295
  ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplat/DataDict/src/form.vue?vue&type=script&lang=js
56222
56296
  /* harmony default export */ var formvue_type_script_lang_js = ({
56223
- name: 'DataDictForm',
56224
56297
  props: {
56225
56298
  vo: {
56226
56299
  type: Object,
@@ -56242,26 +56315,30 @@ var staticRenderFns = [];
56242
56315
  data: function data() {
56243
56316
  return {
56244
56317
  loginUser: this.$store.getters.loginUser,
56245
- // 每行带稳定 _dragKey,供 v-for :key Sortable 配合
56318
+ // 每行带稳定 _dragKey,供 v-for :key 使用;_expanded 为树形展开状态(默认收起,回显时仅显示顶级)
56246
56319
  optionList: [{
56247
56320
  value: '',
56248
56321
  text: '',
56249
- _dragKey: 'opt_init_0'
56322
+ parent: '',
56323
+ _dragKey: 'opt_init_0',
56324
+ _expanded: false
56250
56325
  }],
56251
56326
  syncing: false,
56252
56327
  // Sortable 实例,销毁时释放
56253
56328
  sortableInst: null,
56254
- // 生成唯一拖拽 key 的序号
56329
+ // 生成唯一 key 的序号
56255
56330
  dragKeySeq: 1,
56256
56331
  // 字典编码前缀(来自路由 meta.params 的 paramType=xxx),用于 paramName 前缀拼接
56257
- paramPrefix: ''
56332
+ paramPrefix: '',
56333
+ // 链式级联:字段列表输入值(逗号分隔,如 province,city,district)
56334
+ chainFieldsInput: ''
56258
56335
  };
56259
56336
  },
56260
56337
  created: function created() {
56261
56338
  if (this.$parent.$vnode.context.activeTabIndex) {
56262
56339
  this.activeTabName = this.$parent.$vnode.context.activeTabIndex;
56263
56340
  }
56264
- this.$set(this.$vnode.context, "wfAttach", false);
56341
+ this.$set(this.$vnode.context, 'wfAttach', false);
56265
56342
  // 提取路由 meta.params 中 paramType= 后面的前缀(如 rsgl.options),供 paramName 前缀拼接使用
56266
56343
  this.paramPrefix = this.extractParamPrefix();
56267
56344
  },
@@ -56284,7 +56361,7 @@ var staticRenderFns = [];
56284
56361
  }
56285
56362
  // 解析选项配置到选项列表(兜底,防止 watch immediate 时序遗漏)
56286
56363
  this.parseParamValueToOptions();
56287
- // 等 DOM 按最新 optionList 渲染完成后再挂载 Sortable
56364
+ // 等 DOM 按最新 displayRows 渲染完成后再挂载 Sortable
56288
56365
  var self = this;
56289
56366
  this.$nextTick(function () {
56290
56367
  self.initSortable();
@@ -56306,12 +56383,80 @@ var staticRenderFns = [];
56306
56383
  this.parseParamValueToOptions();
56307
56384
  },
56308
56385
  immediate: true
56309
- },
56310
- // canEdit 变化时同步 Sortable 的 disabled 状态(平台权限数字型)
56311
- canEdit: function canEdit(val) {
56312
- if (this.sortableInst) {
56313
- this.sortableInst.option('disabled', !val);
56386
+ }
56387
+ },
56388
+ computed: {
56389
+ /**
56390
+ * 树形展示行:按父子关系深度优先展开,子级缩进(depth 为层级深度)
56391
+ * 父子挂接优先用行对象引用 _parentRef(新增下级时建立,父行选项值未填写/后续修改均不断链),
56392
+ * 回显数据按 parent 值匹配后固化为引用;父行被删后引用失联的子级归入顶级(与后端层级切分容错一致)
56393
+ * 行收起(_expanded === false)时不渲染其后代;无法入树(环等)的行追加到末尾,避免丢失
56394
+ * @returns {Array} 展示行数组 [{opt: 选项行对象, depth: 层级深度}]
56395
+ */
56396
+ displayRows: function displayRows() {
56397
+ var rows = [];
56398
+ var list = this.optionList;
56399
+ // value → 行对象 索引;_children 每次重算重建(非响应辅助字段,不参与依赖收集)
56400
+ var valueIndex = {};
56401
+ list.forEach(function (opt) {
56402
+ opt._children = [];
56403
+ var v = opt.value != null ? String(opt.value).trim() : '';
56404
+ if (v) {
56405
+ valueIndex[v] = opt;
56406
+ }
56407
+ });
56408
+ // 确定每行父行对象并挂接子级:_parentRef 优先(引用失联时回退按 parent 值匹配并重新固化)
56409
+ var topLevels = [];
56410
+ list.forEach(function (opt) {
56411
+ var parentObj = null;
56412
+ if (opt._parentRef && list.indexOf(opt._parentRef) !== -1) {
56413
+ parentObj = opt._parentRef;
56414
+ } else {
56415
+ var p = opt.parent != null ? String(opt.parent).trim() : '';
56416
+ parentObj = p && valueIndex[p] && valueIndex[p] !== opt ? valueIndex[p] : null;
56417
+ opt._parentRef = parentObj;
56418
+ }
56419
+ if (parentObj) {
56420
+ parentObj._children.push(opt);
56421
+ } else {
56422
+ topLevels.push(opt);
56423
+ }
56424
+ });
56425
+ // 深度优先展开;已访问集合防环;hidden 表示该行因祖先收起而不渲染(仍标记已访问,
56426
+ // 避免被末尾兜底逻辑当作未入树行强制追加显示)
56427
+ var visited = {};
56428
+ function walk(opt, depth, hidden) {
56429
+ if (visited[opt._dragKey]) {
56430
+ return;
56431
+ }
56432
+ visited[opt._dragKey] = true;
56433
+ if (!hidden) {
56434
+ rows.push({
56435
+ opt: opt,
56436
+ depth: depth
56437
+ });
56438
+ }
56439
+ var childrenHidden = hidden || opt._expanded === false;
56440
+ for (var i = 0; i < opt._children.length; i++) {
56441
+ walk(opt._children[i], depth + 1, childrenHidden);
56442
+ }
56443
+ }
56444
+ topLevels.forEach(function (opt) {
56445
+ walk(opt, 0, false);
56446
+ });
56447
+ // 兜底:环状引用等原因未入树的行按顶级追加,避免丢失(收起隐藏的行已 visited,不会重复追加)
56448
+ if (rows.length < list.length) {
56449
+ list.forEach(function (opt) {
56450
+ if (!visited[opt._dragKey]) {
56451
+ visited[opt._dragKey] = true;
56452
+ rows.push({
56453
+ opt: opt,
56454
+ depth: 0
56455
+ });
56456
+ }
56457
+ });
56314
56458
  }
56459
+ return rows;
56315
56460
  }
56316
56461
  },
56317
56462
  methods: {
@@ -56345,7 +56490,7 @@ var staticRenderFns = [];
56345
56490
  this.vo.paramName = inputVal;
56346
56491
  return;
56347
56492
  }
56348
- if (inputVal.indexOf(prefix) === 0) {
56493
+ if (inputVal.indexOf(prefix) === 0 || inputVal.indexOf('.options') !== -1) {
56349
56494
  this.vo.paramName = inputVal;
56350
56495
  } else {
56351
56496
  this.vo.paramName = prefix + '.' + inputVal;
@@ -56353,7 +56498,7 @@ var staticRenderFns = [];
56353
56498
  },
56354
56499
  /**
56355
56500
  * 生成选项行稳定唯一 key
56356
- * @returns {string} 拖拽用 key
56501
+ * @returns {string} 行唯一 key
56357
56502
  */
56358
56503
  nextDragKey: function nextDragKey() {
56359
56504
  this.dragKeySeq += 1;
@@ -56373,9 +56518,8 @@ var staticRenderFns = [];
56373
56518
  }
56374
56519
  },
56375
56520
  /**
56376
- * 初始化拖拽排序
56521
+ * 初始化拖拽排序(仅限同级内排序,校验见 handleDragEnd)
56377
56522
  * 使用 window.Sortable(vue.config.js 已 external 为全局,public 已引入 Sortable.min.js)
56378
- * onEnd 里同步 optionList,保证 Vue 数据与 DOM 顺序一致
56379
56523
  */
56380
56524
  initSortable: function initSortable() {
56381
56525
  var self = this;
@@ -56399,88 +56543,357 @@ var staticRenderFns = [];
56399
56543
  // canEdit 为数字型权限,0 禁用,非 0 可拖
56400
56544
  disabled: !this.canEdit,
56401
56545
  onEnd: function onEnd(evt) {
56402
- if (evt.oldIndex === evt.newIndex) return;
56403
- // Sortable 已移动 DOM,同步到数据数组,Vue 按 _dragKey 复用节点
56404
- var moved = self.optionList.splice(evt.oldIndex, 1)[0];
56405
- self.optionList.splice(evt.newIndex, 0, moved);
56406
- self.syncOptionsToParamValue();
56546
+ self.handleDragEnd(evt);
56407
56547
  }
56408
56548
  });
56409
56549
  },
56410
- // 解析 vo.paramValue 为 optionList;为空/解析失败/空数组时默认一条空选项
56550
+ /**
56551
+ * 拖拽落点处理:仅允许同一父级下的同级排序(下级不允许拖到上级或其它层级),违规回滚 DOM 并提示
56552
+ * <p>
56553
+ * 落点判定:取落点行(拖到最后时取尾行),沿其父链向上找与拖动行同父级的行 S——
56554
+ * 找不到(跨级)或遇到拖动行自身(拖进自己子树)则回滚;
56555
+ * 找到后按 S 在同级中的位置计算新顺序(落点在同级行上按拖动方向取其前/后,落点在某同级后代上取该同级之后),
56556
+ * 重排同级顺序后按树形深度优先重建 optionList。
56557
+ * </p>
56558
+ * @param {Object} evt Sortable onEnd 事件(含 oldIndex/newIndex/item/from)
56559
+ */
56560
+ handleDragEnd: function handleDragEnd(evt) {
56561
+ var oldIndex = evt.oldIndex;
56562
+ var newIndex = evt.newIndex;
56563
+ // 原地拖动(含被阻止的拖动)无变化
56564
+ if (oldIndex === newIndex) {
56565
+ return;
56566
+ }
56567
+ var rows = this.displayRows;
56568
+ var dragRow = rows[oldIndex];
56569
+ if (!dragRow) {
56570
+ this.rollbackDragDom(evt);
56571
+ return;
56572
+ }
56573
+ var dragOpt = dragRow.opt;
56574
+ var dragParent = dragOpt._parentRef || null;
56575
+ // 参照行:落点行(拖到列表末尾时取尾行)
56576
+ var refRow = newIndex < rows.length ? rows[newIndex] : rows[rows.length - 1];
56577
+ if (!refRow) {
56578
+ this.rollbackDragDom(evt);
56579
+ return;
56580
+ }
56581
+ // 沿参照行父链向上找同级行 S;insertAfter 标记参照行是某同级 S 的后代(落点应取 S 之后)
56582
+ var s = refRow.opt;
56583
+ var insertAfter = false;
56584
+ var found = false;
56585
+ var guard = 0;
56586
+ while (s && guard < 10000) {
56587
+ guard++;
56588
+ if (s === dragOpt) {
56589
+ // 落点在拖动行自己的子树内,视为无效
56590
+ break;
56591
+ }
56592
+ if ((s._parentRef || null) === dragParent) {
56593
+ found = true;
56594
+ break;
56595
+ }
56596
+ s = s._parentRef;
56597
+ insertAfter = true;
56598
+ }
56599
+ if (!found) {
56600
+ this.rollbackDragDom(evt);
56601
+ this.$message.warning('仅允许同级内拖动排序,不能拖到上级或其它层级');
56602
+ return;
56603
+ }
56604
+ // 同级顺序列表:父级的 _children(displayRows 构建的同级顺序)或顶级行列表
56605
+ var siblings;
56606
+ if (dragParent) {
56607
+ siblings = dragParent._children || [];
56608
+ } else {
56609
+ siblings = [];
56610
+ rows.forEach(function (r) {
56611
+ if (r.depth === 0) {
56612
+ siblings.push(r.opt);
56613
+ }
56614
+ });
56615
+ }
56616
+ var sibIdx = siblings.indexOf(s);
56617
+ var oldPos = siblings.indexOf(dragOpt);
56618
+ if (sibIdx === -1 || oldPos === -1) {
56619
+ this.rollbackDragDom(evt);
56620
+ return;
56621
+ }
56622
+ // 计算新位置:参照行是同级时按拖动方向取其前/后(向下拖=其后),是某同级的后代时取该同级之后
56623
+ var newPos;
56624
+ if (insertAfter) {
56625
+ newPos = sibIdx + 1;
56626
+ } else {
56627
+ newPos = oldIndex < newIndex ? sibIdx + 1 : sibIdx;
56628
+ }
56629
+ // 同级重排(newPos 为含拖动行语义的位置,移除后需校正)
56630
+ siblings.splice(oldPos, 1);
56631
+ if (oldPos < newPos) {
56632
+ newPos -= 1;
56633
+ }
56634
+ siblings.splice(newPos, 0, dragOpt);
56635
+ // 按树形深度优先重建 optionList(平铺顺序=树形顺序,收起的子树顺序同步更新)
56636
+ var newList = [];
56637
+ var inTree = {};
56638
+ function collect(opt) {
56639
+ if (inTree[opt._dragKey]) {
56640
+ return;
56641
+ }
56642
+ inTree[opt._dragKey] = true;
56643
+ newList.push(opt);
56644
+ var children = opt._children || [];
56645
+ for (var i = 0; i < children.length; i++) {
56646
+ collect(children[i]);
56647
+ }
56648
+ }
56649
+ if (dragParent) {
56650
+ // 从根级开始收集:按顶级行列表深度优先(拖动行的父级所在树的根)
56651
+ var topLevelOpts = [];
56652
+ rows.forEach(function (r) {
56653
+ if (r.depth === 0) {
56654
+ topLevelOpts.push(r.opt);
56655
+ }
56656
+ });
56657
+ topLevelOpts.forEach(collect);
56658
+ } else {
56659
+ siblings.forEach(collect);
56660
+ }
56661
+ // 兜底:未入树(环等)的行按原顺序追加,避免丢失
56662
+ if (newList.length < this.optionList.length) {
56663
+ this.optionList.forEach(function (opt) {
56664
+ if (!inTree[opt._dragKey]) {
56665
+ newList.push(opt);
56666
+ }
56667
+ });
56668
+ }
56669
+ this.optionList = newList;
56670
+ this.syncOptionsToParamValue();
56671
+ },
56672
+ /**
56673
+ * 回滚拖动产生的 DOM 位移(校验失败时数据未变,需手动把行放回原位置)
56674
+ * @param {Object} evt Sortable onEnd 事件
56675
+ */
56676
+ rollbackDragDom: function rollbackDragDom(evt) {
56677
+ var tbody = evt.from;
56678
+ if (!tbody || !evt.item) {
56679
+ return;
56680
+ }
56681
+ var children = tbody.children;
56682
+ if (children[evt.oldIndex]) {
56683
+ // 行已从原位置移走,原位置现为原下一个兄弟,插到它前面即回原位
56684
+ tbody.insertBefore(evt.item, children[evt.oldIndex]);
56685
+ } else {
56686
+ tbody.appendChild(evt.item);
56687
+ }
56688
+ },
56689
+ // 解析 vo.paramValue 为 optionList(平铺行);为空/解析失败/空数组时默认一条空选项
56690
+ // 支持嵌套存储格式:子级统一嵌在父选项的 children 键内;
56691
+ // 父选项带 subFiled(下一级字段名)为链式级联,无 subFiled 为单字段级联;
56692
+ // 解析时展平为平铺行并挂接父子引用;链式字段名(第二级起)从各级 subFiled 收集
56411
56693
  parseParamValueToOptions: function parseParamValueToOptions() {
56412
56694
  var val = this.vo.paramValue;
56413
56695
  var list = [];
56414
56696
  var self = this;
56697
+ var parsed = null;
56698
+ // 各级 subFiled 收集的链式字段名(第二级起,深度优先顺序)
56699
+ var chainFieldKeys = [];
56700
+ function isArray(obj) {
56701
+ return Object.prototype.toString.call(obj) === '[object Array]';
56702
+ }
56415
56703
  if (val && typeof val === 'string' && val.trim().charAt(0) === '[') {
56416
56704
  try {
56417
- // 兼容单引号JS对象字面量(如 [{ value: 'A型', text: 'A型' }])与标准JSON双引号格式
56418
- var parsed = new Function('return ' + val)();
56419
- if (parsed && Array.isArray(parsed)) {
56420
- list = parsed.map(function (item) {
56421
- return {
56422
- value: item && item.value != null ? String(item.value) : '',
56423
- text: item && item.text != null ? String(item.text) : '',
56424
- // 解析时补上稳定 key,避免 v-for 用 index 导致拖拽回弹
56425
- _dragKey: self.nextDragKey()
56426
- };
56427
- });
56428
- }
56705
+ // 兼容单引号JS对象字面量与标准JSON双引号格式
56706
+ parsed = new Function('return ' + val)();
56429
56707
  } catch (e) {
56430
56708
  // 解析失败(用户手动编辑未完成或格式错误),保留原状不覆盖 optionList
56431
56709
  }
56432
56710
  }
56711
+ if (parsed && isArray(parsed)) {
56712
+ // 递归展平:子级集合取 children 键;父选项的 subFiled 声明子级对应字段(链式级联)
56713
+ ;
56714
+ (function flatten(arr, parentRow) {
56715
+ arr.forEach(function (item) {
56716
+ var row = {
56717
+ value: item && item.value != null ? String(item.value) : '',
56718
+ text: item && item.text != null ? String(item.text) : '',
56719
+ parent: parentRow && parentRow.value != null ? String(parentRow.value) : '',
56720
+ _dragKey: self.nextDragKey(),
56721
+ _expanded: false
56722
+ };
56723
+ // 行对象入 optionList 前挂接父行引用(父行选项值未填写/后续修改均不断链)
56724
+ row._parentRef = parentRow || null;
56725
+ list.push(row);
56726
+ if (item && isArray(item.children)) {
56727
+ var subFiled = item.subFiled != null ? String(item.subFiled).trim() : '';
56728
+ if (subFiled && chainFieldKeys.indexOf(subFiled) === -1) {
56729
+ chainFieldKeys.push(subFiled);
56730
+ }
56731
+ flatten(item.children, row);
56732
+ }
56733
+ });
56734
+ })(parsed, null);
56735
+ }
56736
+ // 链式字段列表回显:从各级 subFiled 收集的第二级起字段名(第一级为字典编码对应字段,无需填写)
56737
+ this.chainFieldsInput = chainFieldKeys.join(',');
56433
56738
  if (list.length === 0) {
56434
56739
  list = [{
56435
56740
  value: '',
56436
56741
  text: '',
56437
- _dragKey: this.nextDragKey()
56742
+ parent: '',
56743
+ _dragKey: this.nextDragKey(),
56744
+ _expanded: false
56438
56745
  }];
56439
56746
  }
56440
56747
  this.optionList = list;
56441
56748
  },
56442
- // 将 optionList 序列化为 JSON 字符串写入 vo.paramValue(过滤 value 与 text 均为空的行)
56749
+ // 将 optionList 构树序列化为 JSON 字符串写入 vo.paramValue
56750
+ // 序列化规则(子级统一嵌在父选项的 children 键,便于解析直接用):
56751
+ // 级联字段列表有值(链式级联)→ 带子级的选项同时写 subFiled=下一级字段名(级联字段列表第 depth 项);
56752
+ // 无级联字段(单字段级联)→ 仅 children;
56753
+ // 空行(选项值与显示文本均空)及其子树不落库
56443
56754
  syncOptionsToParamValue: function syncOptionsToParamValue() {
56444
56755
  this.syncing = true;
56445
- // 序列化时去掉内部 _dragKey,不落库
56446
- var filtered = this.optionList.filter(function (opt) {
56756
+ var list = this.optionList;
56757
+ // 构树(与 displayRows 相同的父子判定):_parentRef 优先,parent 值匹配兜底并重新固化引用
56758
+ var valueIndex = {};
56759
+ list.forEach(function (opt) {
56760
+ opt._children = [];
56761
+ var v = opt.value != null ? String(opt.value).trim() : '';
56762
+ if (v) {
56763
+ valueIndex[v] = opt;
56764
+ }
56765
+ });
56766
+ var topLevels = [];
56767
+ list.forEach(function (opt) {
56768
+ var parentObj = null;
56769
+ if (opt._parentRef && list.indexOf(opt._parentRef) !== -1) {
56770
+ parentObj = opt._parentRef;
56771
+ } else {
56772
+ var p = opt.parent != null ? String(opt.parent).trim() : '';
56773
+ parentObj = p && valueIndex[p] && valueIndex[p] !== opt ? valueIndex[p] : null;
56774
+ opt._parentRef = parentObj;
56775
+ }
56776
+ if (parentObj) {
56777
+ parentObj._children.push(opt);
56778
+ } else {
56779
+ topLevels.push(opt);
56780
+ }
56781
+ // 回写 parent(取父行最新选项值,保持数据一致)
56782
+ opt.parent = parentObj ? parentObj.value != null ? String(parentObj.value).trim() : '' : '';
56783
+ });
56784
+ // 级联字段列表:逗号分隔,过滤空段(从第二级开始的字段名;第一级默认为字典编码对应字段,无需填写)
56785
+ var chainFields = (this.chainFieldsInput || '').split(',').map(function (s) {
56786
+ return s.trim();
56787
+ }).filter(function (s) {
56788
+ return s !== '';
56789
+ });
56790
+ // 递归构建嵌套 JSON:depth 行的子级集合键取级联字段列表中第 depth 项(第二级起),
56791
+ // 超出列表长度或未配置时用 children
56792
+ function buildOpt(opt, depth) {
56447
56793
  var v = opt.value != null ? String(opt.value).trim() : '';
56448
56794
  var t = opt.text != null ? String(opt.text).trim() : '';
56449
- return v !== '' || t !== '';
56450
- }).map(function (opt) {
56451
- return {
56795
+ // 空行及其子树不落库
56796
+ if (v === '' && t === '') {
56797
+ return null;
56798
+ }
56799
+ var json = {
56452
56800
  value: opt.value != null ? String(opt.value) : '',
56453
56801
  text: opt.text != null ? String(opt.text) : ''
56454
56802
  };
56455
- });
56456
- this.vo.paramValue = JSON.stringify(filtered);
56803
+ var childJson = [];
56804
+ if (opt._children) {
56805
+ for (var i = 0; i < opt._children.length; i++) {
56806
+ var child = buildOpt(opt._children[i], depth + 1);
56807
+ if (child) {
56808
+ childJson.push(child);
56809
+ }
56810
+ }
56811
+ }
56812
+ if (childJson.length > 0) {
56813
+ json.children = childJson;
56814
+ // 链式级联:声明下一级字段名(级联字段列表第 depth 项,第二级起)
56815
+ if (depth < chainFields.length) {
56816
+ json.subFiled = chainFields[depth];
56817
+ }
56818
+ }
56819
+ return json;
56820
+ }
56821
+ var result = [];
56822
+ for (var i = 0; i < topLevels.length; i++) {
56823
+ var json = buildOpt(topLevels[i], 0);
56824
+ if (json) {
56825
+ result.push(json);
56826
+ }
56827
+ }
56828
+ this.vo.paramValue = JSON.stringify(result);
56457
56829
  var self = this;
56458
56830
  this.$nextTick(function () {
56459
56831
  self.syncing = false;
56460
56832
  });
56461
56833
  },
56462
56834
  /**
56463
- * 新增一行选项
56835
+ * 新增一行顶级选项
56464
56836
  */
56465
56837
  addOption: function addOption() {
56466
56838
  this.optionList.push({
56467
56839
  value: '',
56468
56840
  text: '',
56469
- _dragKey: this.nextDragKey()
56841
+ parent: '',
56842
+ _dragKey: this.nextDragKey(),
56843
+ _expanded: false
56470
56844
  });
56471
56845
  },
56472
56846
  /**
56473
- * 删除指定行选项
56474
- * @param {number} idx 行下标
56847
+ * 在指定选项下新增一个下级选项
56848
+ * 通过行对象引用 _parentRef 挂接父子(父行选项值未填写也可先建结构),
56849
+ * 序列化时动态取父行最新选项值写入 parent;新增后自动展开父行以便看到新子行
56850
+ * @param {Object} parentOpt 父选项行对象
56851
+ */
56852
+ addChild: function addChild(parentOpt) {
56853
+ var child = {
56854
+ value: '',
56855
+ text: '',
56856
+ parent: '',
56857
+ _dragKey: this.nextDragKey(),
56858
+ _expanded: false
56859
+ };
56860
+ child._parentRef = parentOpt;
56861
+ this.optionList.push(child);
56862
+ // 展开父行(父行处于收起状态时新子行不可见)
56863
+ this.$set(parentOpt, '_expanded', true);
56864
+ this.syncOptionsToParamValue();
56865
+ },
56866
+ /**
56867
+ * 判断选项行是否有下级(依据 displayRows 挂接的 _children)
56868
+ * @param {Object} opt 选项行对象
56869
+ * @returns {boolean} 有下级返回 true
56475
56870
  */
56476
- removeOption: function removeOption(idx) {
56871
+ hasChildren: function hasChildren(opt) {
56872
+ return !!(opt._children && opt._children.length > 0);
56873
+ },
56874
+ /**
56875
+ * 切换选项行的展开/收起状态(收起时不渲染其后代)
56876
+ * @param {Object} opt 选项行对象
56877
+ */
56878
+ toggleExpand: function toggleExpand(opt) {
56879
+ this.$set(opt, '_expanded', opt._expanded === false);
56880
+ },
56881
+ /**
56882
+ * 删除指定选项行(按对象定位;其后代因引用失联自动归入顶级展示)
56883
+ * @param {Object} opt 选项行对象
56884
+ */
56885
+ removeOption: function removeOption(opt) {
56886
+ var idx = this.optionList.indexOf(opt);
56887
+ if (idx === -1) return;
56477
56888
  this.optionList.splice(idx, 1);
56478
56889
  // 删光后保留一行空选项,便于继续录入
56479
56890
  if (this.optionList.length === 0) {
56480
56891
  this.optionList.push({
56481
56892
  value: '',
56482
56893
  text: '',
56483
- _dragKey: this.nextDragKey()
56894
+ parent: '',
56895
+ _dragKey: this.nextDragKey(),
56896
+ _expanded: false
56484
56897
  });
56485
56898
  }
56486
56899
  this.syncOptionsToParamValue();
@@ -56489,9 +56902,9 @@ var staticRenderFns = [];
56489
56902
  });
56490
56903
  ;// CONCATENATED MODULE: ./packages/ecwplat/DataDict/src/form.vue?vue&type=script&lang=js
56491
56904
  /* harmony default export */ var src_formvue_type_script_lang_js = (formvue_type_script_lang_js);
56492
- // 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/vue-loader-v15/lib/loaders/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/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplat/DataDict/src/form.vue?vue&type=style&index=0&id=75222ba9&prod&lang=css
56493
- var formvue_type_style_index_0_id_75222ba9_prod_lang_css = __webpack_require__(58936);
56494
- ;// CONCATENATED MODULE: ./packages/ecwplat/DataDict/src/form.vue?vue&type=style&index=0&id=75222ba9&prod&lang=css
56905
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwplat/DataDict/src/form.vue?vue&type=style&index=0&id=6c8198bc&prod&scoped=true&lang=scss
56906
+ var formvue_type_style_index_0_id_6c8198bc_prod_scoped_true_lang_scss = __webpack_require__(69291);
56907
+ ;// CONCATENATED MODULE: ./packages/ecwplat/DataDict/src/form.vue?vue&type=style&index=0&id=6c8198bc&prod&scoped=true&lang=scss
56495
56908
 
56496
56909
  // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
56497
56910
  var componentNormalizer = __webpack_require__(81656);
@@ -56510,7 +56923,7 @@ var component = (0,componentNormalizer/* default */.A)(
56510
56923
  staticRenderFns,
56511
56924
  false,
56512
56925
  null,
56513
- null,
56926
+ "6c8198bc",
56514
56927
  null
56515
56928
 
56516
56929
  )
@@ -171169,27 +171582,6 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".svg-icon[data-v-5d08e6e2]{width:1em;h
171169
171582
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
171170
171583
 
171171
171584
 
171172
- /***/ }),
171173
-
171174
- /***/ 55119:
171175
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
171176
-
171177
- "use strict";
171178
- __webpack_require__.r(__webpack_exports__);
171179
- /* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31601);
171180
- /* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
171181
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76314);
171182
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
171183
- // Imports
171184
-
171185
-
171186
- 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()));
171187
- // Module
171188
- ___CSS_LOADER_EXPORT___.push([module.id, ".option-config-table{border-collapse:collapse}.option-config-table td{border:1px solid #ebeef5}.option-config-table .option-header td{background-color:#f5f7fa!important}.option-config-table .sortable-ghost{opacity:.5;background:#f0f9ff}.option-config-table .sortable-fallback{opacity:.9;background:#fff;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.12);box-shadow:0 2px 8px rgba(0,0,0,.12)}", ""]);
171189
- // Exports
171190
- /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
171191
-
171192
-
171193
171585
  /***/ }),
171194
171586
 
171195
171587
  /***/ 8943:
@@ -171318,7 +171710,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".CodeMirror-hints,.CodeMirror-lint-too
171318
171710
 
171319
171711
  /***/ }),
171320
171712
 
171321
- /***/ 24239:
171713
+ /***/ 50138:
171322
171714
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
171323
171715
 
171324
171716
  "use strict";
@@ -171339,7 +171731,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".form_item .el-date-editor .el-input__
171339
171731
 
171340
171732
  /***/ }),
171341
171733
 
171342
- /***/ 39119:
171734
+ /***/ 12570:
171343
171735
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
171344
171736
 
171345
171737
  "use strict";
@@ -171353,7 +171745,7 @@ __webpack_require__.r(__webpack_exports__);
171353
171745
 
171354
171746
  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()));
171355
171747
  // Module
171356
- ___CSS_LOADER_EXPORT___.push([module.id, "span[data-v-4e8271fe]{white-space:pre-wrap}[data-v-4e8271fe] .el-upload--text{width:100%}[data-v-4e8271fe] .el-divider--horizontal{margin:10px 0}.form_item .el-link[data-v-4e8271fe]{margin-left:6px}.form_item[data-v-4e8271fe] .el-radio__label{display:inline-block;padding:3px 5px}", ""]);
171748
+ ___CSS_LOADER_EXPORT___.push([module.id, "span[data-v-324e710e]{white-space:pre-wrap}[data-v-324e710e] .el-upload--text{width:100%}[data-v-324e710e] .el-divider--horizontal{margin:10px 0}.form_item .el-link[data-v-324e710e]{margin-left:6px}.form_item[data-v-324e710e] .el-radio__label{display:inline-block;padding:3px 5px}", ""]);
171357
171749
  // Exports
171358
171750
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
171359
171751
 
@@ -172492,6 +172884,27 @@ ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-9cb5d68a] .el-dialog__body{min
172492
172884
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
172493
172885
 
172494
172886
 
172887
+ /***/ }),
172888
+
172889
+ /***/ 87817:
172890
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
172891
+
172892
+ "use strict";
172893
+ __webpack_require__.r(__webpack_exports__);
172894
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31601);
172895
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
172896
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76314);
172897
+ /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
172898
+ // Imports
172899
+
172900
+
172901
+ 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()));
172902
+ // Module
172903
+ ___CSS_LOADER_EXPORT___.push([module.id, ".option-config-table[data-v-6c8198bc]{border-collapse:collapse}.option-config-table td[data-v-6c8198bc]{border:1px solid #ebeef5}.option-config-table .option-header td[data-v-6c8198bc]{background-color:#f5f7fa!important}.option-config-table .expand-toggle[data-v-6c8198bc]{cursor:pointer;color:#909399;font-size:14px;-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.option-config-table .expand-toggle.is-expanded[data-v-6c8198bc]{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.option-config-table .sortable-ghost[data-v-6c8198bc]{opacity:.5;background:#f0f9ff}.option-config-table .sortable-fallback[data-v-6c8198bc]{opacity:.9;background:#fff;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.12);box-shadow:0 2px 8px rgba(0,0,0,.12)}[data-v-6c8198bc] .el-button--mini{margin-right:0!important}[data-v-6c8198bc] .el-button+.el-button{margin-left:2px!important}", ""]);
172904
+ // Exports
172905
+ /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
172906
+
172907
+
172495
172908
  /***/ }),
172496
172909
 
172497
172910
  /***/ 317:
@@ -257936,22 +258349,6 @@ var update = add("2de18074", content, true, {"sourceMap":false,"shadowMode":fals
257936
258349
 
257937
258350
  /***/ }),
257938
258351
 
257939
- /***/ 58936:
257940
- /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
257941
-
257942
- // style-loader: Adds some css to the DOM by adding a <style> tag
257943
-
257944
- // load the styles
257945
- var content = __webpack_require__(55119);
257946
- if(content.__esModule) content = content.default;
257947
- if(typeof content === 'string') content = [[module.id, content, '']];
257948
- if(content.locals) module.exports = content.locals;
257949
- // add the styles to the DOM
257950
- var add = (__webpack_require__(99548)/* ["default"] */ .A)
257951
- var update = add("24175b53", content, true, {"sourceMap":false,"shadowMode":false});
257952
-
257953
- /***/ }),
257954
-
257955
258352
  /***/ 98760:
257956
258353
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
257957
258354
 
@@ -258048,35 +258445,35 @@ var update = add("f9ee0d56", content, true, {"sourceMap":false,"shadowMode":fals
258048
258445
 
258049
258446
  /***/ }),
258050
258447
 
258051
- /***/ 4885:
258448
+ /***/ 10392:
258052
258449
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
258053
258450
 
258054
258451
  // style-loader: Adds some css to the DOM by adding a <style> tag
258055
258452
 
258056
258453
  // load the styles
258057
- var content = __webpack_require__(24239);
258454
+ var content = __webpack_require__(50138);
258058
258455
  if(content.__esModule) content = content.default;
258059
258456
  if(typeof content === 'string') content = [[module.id, content, '']];
258060
258457
  if(content.locals) module.exports = content.locals;
258061
258458
  // add the styles to the DOM
258062
258459
  var add = (__webpack_require__(99548)/* ["default"] */ .A)
258063
- var update = add("281973c6", content, true, {"sourceMap":false,"shadowMode":false});
258460
+ var update = add("1ca98e10", content, true, {"sourceMap":false,"shadowMode":false});
258064
258461
 
258065
258462
  /***/ }),
258066
258463
 
258067
- /***/ 72569:
258464
+ /***/ 28452:
258068
258465
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
258069
258466
 
258070
258467
  // style-loader: Adds some css to the DOM by adding a <style> tag
258071
258468
 
258072
258469
  // load the styles
258073
- var content = __webpack_require__(39119);
258470
+ var content = __webpack_require__(12570);
258074
258471
  if(content.__esModule) content = content.default;
258075
258472
  if(typeof content === 'string') content = [[module.id, content, '']];
258076
258473
  if(content.locals) module.exports = content.locals;
258077
258474
  // add the styles to the DOM
258078
258475
  var add = (__webpack_require__(99548)/* ["default"] */ .A)
258079
- var update = add("59ef4469", content, true, {"sourceMap":false,"shadowMode":false});
258476
+ var update = add("6b62c6c4", content, true, {"sourceMap":false,"shadowMode":false});
258080
258477
 
258081
258478
  /***/ }),
258082
258479
 
@@ -258944,6 +259341,22 @@ var update = add("843ecf6e", content, true, {"sourceMap":false,"shadowMode":fals
258944
259341
 
258945
259342
  /***/ }),
258946
259343
 
259344
+ /***/ 69291:
259345
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
259346
+
259347
+ // style-loader: Adds some css to the DOM by adding a <style> tag
259348
+
259349
+ // load the styles
259350
+ var content = __webpack_require__(87817);
259351
+ if(content.__esModule) content = content.default;
259352
+ if(typeof content === 'string') content = [[module.id, content, '']];
259353
+ if(content.locals) module.exports = content.locals;
259354
+ // add the styles to the DOM
259355
+ var add = (__webpack_require__(99548)/* ["default"] */ .A)
259356
+ var update = add("3a04fba4", content, true, {"sourceMap":false,"shadowMode":false});
259357
+
259358
+ /***/ }),
259359
+
258947
259360
  /***/ 97071:
258948
259361
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
258949
259362
 
@@ -269231,8 +269644,8 @@ var DynamicFormvue_type_template_id_2bb3f766_render = function render() {
269231
269644
  };
269232
269645
  var DynamicFormvue_type_template_id_2bb3f766_staticRenderFns = [];
269233
269646
 
269234
- ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=template&id=4e8271fe&scoped=true
269235
- var FormItemvue_type_template_id_4e8271fe_scoped_true_render = function render() {
269647
+ ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=template&id=324e710e&scoped=true
269648
+ var FormItemvue_type_template_id_324e710e_scoped_true_render = function render() {
269236
269649
  var _vm = this,
269237
269650
  _c = _vm._self._c;
269238
269651
  return _vm.formItem.propName ? _c('div', {
@@ -269878,7 +270291,7 @@ var FormItemvue_type_template_id_4e8271fe_scoped_true_render = function render()
269878
270291
  }], null, false, 2443300086)
269879
270292
  })], 1) : _vm._e();
269880
270293
  };
269881
- var FormItemvue_type_template_id_4e8271fe_scoped_true_staticRenderFns = [];
270294
+ var FormItemvue_type_template_id_324e710e_scoped_true_staticRenderFns = [];
269882
270295
 
269883
270296
  ;// CONCATENATED MODULE: ./src/global/filters/index.js
269884
270297
 
@@ -270271,11 +270684,25 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
270271
270684
  this.initFormItem();
270272
270685
  }
270273
270686
  this.$bus.on('autoSetFieldValue', this.autoSetFieldValue);
270687
+ this.$bus.on('setSubFiledOptions', this.setSubFiledOptions);
270274
270688
  },
270275
270689
  beforeDestroy: function beforeDestroy() {
270276
270690
  this.$bus.off('autoSetFieldValue', this.autoSetFieldValue);
270691
+ this.$bus.off('setSubFiledOptions', this.setSubFiledOptions);
270277
270692
  },
270278
270693
  methods: {
270694
+ setSubFiledOptions: function setSubFiledOptions(subFiled, options) {
270695
+ if (subFiled === this.formItem.propName) {
270696
+ this.formItem.value = '';
270697
+ this.valueChange('');
270698
+ this.field.formatterMap = options;
270699
+ this.formItem.formatterMap = options;
270700
+ // 级联字段禁用 remote 模式,确保 options 为空时 el-select 显示“无数据”
270701
+ // 同时清 field 和 formItem,防止 vo watcher 触发 formatElementValue(field) 后从 field 恢复原值
270702
+ this.field.remoteMethod = null;
270703
+ this.formItem.remoteMethod = null;
270704
+ }
270705
+ },
270279
270706
  // 阿拉伯数字转换成大写汉字
270280
270707
  numberParseChina: function numberParseChina(money) {
270281
270708
  // 汉字的数字
@@ -270389,6 +270816,20 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
270389
270816
  this.formItem.remoteMethod = null;
270390
270817
  }
270391
270818
  }
270819
+ if (this.formItem.formatterMap) {
270820
+ setTimeout(function () {
270821
+ _this5.formItem.formatterMap.forEach(function (item) {
270822
+ if (item.subFiled && item.children) {
270823
+ _this5.$bus.emit('setSubFiledOptions', item.subFiled, []);
270824
+ }
270825
+ });
270826
+ _this5.formItem.formatterMap.forEach(function (item) {
270827
+ if (item.subFiled && item.children && item.value == _this5.formItem.value) {
270828
+ _this5.$bus.emit('setSubFiledOptions', item.subFiled, item.children);
270829
+ }
270830
+ });
270831
+ }, 100);
270832
+ }
270392
270833
  }
270393
270834
  if (this.formItem.elementType === 'file' && this.vo[this.formItem.nameField]) {
270394
270835
  var attachHtml = '';
@@ -270970,6 +271411,7 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
270970
271411
  }
270971
271412
  },
270972
271413
  valueChange: function valueChange(val) {
271414
+ var _this8 = this;
270973
271415
  if (this.formItem.isNumber) {
270974
271416
  val = val.trim();
270975
271417
  }
@@ -270978,6 +271420,19 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
270978
271420
  val = parseInt(val);
270979
271421
  }
270980
271422
  }
271423
+ if (this.formItem.formatterMap && (this.formItem.elementType === 'select' || this.formItem.elementType === 'selectMulti')) {
271424
+ this.formItem.formatterMap.forEach(function (item) {
271425
+ if (item.subFiled && item.children) {
271426
+ if (item.value == val) {
271427
+ _this8.$bus.emit('setSubFiledOptions', item.subFiled, item.children);
271428
+ _this8.$vnode.context.$set(_this8.$vnode.context.vo.passenger, item.subFiled, item.children);
271429
+ } else {
271430
+ _this8.$bus.emit('setSubFiledOptions', item.subFiled, []);
271431
+ _this8.$vnode.context.$set(_this8.$vnode.context.vo.passenger, item.subFiled, []);
271432
+ }
271433
+ }
271434
+ });
271435
+ }
270981
271436
  if (this.formItem.elementType === 'checkbox') {
270982
271437
  for (var i = 0; i < val.length; i++) {
270983
271438
  if (val[i] === '') val.splice(i--, 1);
@@ -271162,7 +271617,7 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
271162
271617
  });
271163
271618
  },
271164
271619
  removeFormfile: function removeFormfile(id) {
271165
- var _this8 = this;
271620
+ var _this9 = this;
271166
271621
  this.$confirm(this.$tx('ecwapp.Basicform.deleteUploadedFile', '您是否确认删除已上传的文件?'), this.$tx('common.confirmOperate', '确认操作'), {
271167
271622
  type: 'warning'
271168
271623
  }).then( /*#__PURE__*/FormItemvue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/FormItemvue_type_script_lang_js_regeneratorRuntime().mark(function _callee() {
@@ -271170,12 +271625,12 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
271170
271625
  return FormItemvue_type_script_lang_js_regeneratorRuntime().wrap(function _callee$(_context) {
271171
271626
  while (1) switch (_context.prev = _context.next) {
271172
271627
  case 0:
271173
- document.querySelector('.removeBodyfileIcon_' + id).innerHTML = _this8.$tx('ecwapp.Common.deleting', ' 正在删除...');
271174
- wfAttachUrl = _this8.formItem.downloadUrl.replace('/downloadById', '').replace('/download', '') + '/deleteAttach';
271175
- if (_this8.$vnode.context.$vnode.context.wfAttachUrl) {
271176
- wfAttachUrl = _this8.$vnode.context.$vnode.context.wfAttachUrl + '/delete';
271628
+ document.querySelector('.removeBodyfileIcon_' + id).innerHTML = _this9.$tx('ecwapp.Common.deleting', ' 正在删除...');
271629
+ wfAttachUrl = _this9.formItem.downloadUrl.replace('/downloadById', '').replace('/download', '') + '/deleteAttach';
271630
+ if (_this9.$vnode.context.$vnode.context.wfAttachUrl) {
271631
+ wfAttachUrl = _this9.$vnode.context.$vnode.context.wfAttachUrl + '/delete';
271177
271632
  }
271178
- _this8.$http({
271633
+ _this9.$http({
271179
271634
  method: 'DELETE',
271180
271635
  contentType: 'application/x-www-form-urlencoded',
271181
271636
  params: {
@@ -271184,17 +271639,17 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
271184
271639
  url: wfAttachUrl
271185
271640
  }).then(function (res) {
271186
271641
  if (res.code === 'success') {
271187
- if (_this8.$vnode.context.$vnode.context.attachments) {
271188
- for (var i = 0; i < _this8.$vnode.context.$vnode.context.attachments.length; i++) {
271189
- if (_this8.$vnode.context.$vnode.context.attachments[i].id === id) {
271190
- _this8.$vnode.context.$vnode.context.attachments.splice(i--, 1);
271642
+ if (_this9.$vnode.context.$vnode.context.attachments) {
271643
+ for (var i = 0; i < _this9.$vnode.context.$vnode.context.attachments.length; i++) {
271644
+ if (_this9.$vnode.context.$vnode.context.attachments[i].id === id) {
271645
+ _this9.$vnode.context.$vnode.context.attachments.splice(i--, 1);
271191
271646
  }
271192
271647
  }
271193
271648
  }
271194
- delete _this8.formItem.attachHtml;
271195
- _this8.$forceUpdate();
271649
+ delete _this9.formItem.attachHtml;
271650
+ _this9.$forceUpdate();
271196
271651
  } else {
271197
- _this8.$alert(res.message, _this8.$tx('common.operationTip', '操作提示'), {
271652
+ _this9.$alert(res.message, _this9.$tx('common.operationTip', '操作提示'), {
271198
271653
  type: 'error'
271199
271654
  });
271200
271655
  }
@@ -271211,7 +271666,7 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
271211
271666
  window.open(downloadUrl, '_blank');
271212
271667
  },
271213
271668
  openListitemDialog: function openListitemDialog() {
271214
- var _this9 = this;
271669
+ var _this10 = this;
271215
271670
  var reqParam = {
271216
271671
  method: this.formItem.optionGenerateMethod,
271217
271672
  params: {
@@ -271230,43 +271685,43 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
271230
271685
  if (res.code === 'success') {
271231
271686
  var options = null;
271232
271687
  var _func2 = 'onOptionsGenerateCompleted';
271233
- if (_this9.$vnode.context[_func2] !== undefined) {
271234
- options = _this9.$vnode.context[_func2](res.body.listdata, {
271235
- name: _this9.formItem.propName
271688
+ if (_this10.$vnode.context[_func2] !== undefined) {
271689
+ options = _this10.$vnode.context[_func2](res.body.listdata, {
271690
+ name: _this10.formItem.propName
271236
271691
  });
271237
271692
  }
271238
- _this9.$bus.emit('openListitemDialog', _this9.formItem.dialogTitle || _this9.formItem.propComment, options || res.body.listdata, function (rst) {
271693
+ _this10.$bus.emit('openListitemDialog', _this10.formItem.dialogTitle || _this10.formItem.propComment, options || res.body.listdata, function (rst) {
271239
271694
  if (rst.code === 'success') {
271240
271695
  var _func3 = 'onSelectListitemCompleted';
271241
- if (_this9.$vnode.context[_func3] !== undefined) {
271242
- _this9.$vnode.context[_func3](rst.value, {
271243
- name: _this9.formItem.propName
271696
+ if (_this10.$vnode.context[_func3] !== undefined) {
271697
+ _this10.$vnode.context[_func3](rst.value, {
271698
+ name: _this10.formItem.propName
271244
271699
  });
271245
271700
  } else {
271246
- if (FormItemvue_type_script_lang_js_typeof(_this9.selected) === 'object') {
271247
- _this9.formItem.value = rst.value.join(',');
271701
+ if (FormItemvue_type_script_lang_js_typeof(_this10.selected) === 'object') {
271702
+ _this10.formItem.value = rst.value.join(',');
271248
271703
  } else {
271249
- _this9.formItem.value = rst.value;
271704
+ _this10.formItem.value = rst.value;
271250
271705
  }
271251
- _this9.$set(_this9.vo, _this9.formItem.propName, _this9.formItem.value);
271706
+ _this10.$set(_this10.vo, _this10.formItem.propName, _this10.formItem.value);
271252
271707
  }
271253
271708
  }
271254
- }, _this9.formItem.value, _this9.formItem.propComment, null, _this9.formItem.dialogMultiple);
271709
+ }, _this10.formItem.value, _this10.formItem.propComment, null, _this10.formItem.dialogMultiple);
271255
271710
  } else {
271256
- _this9.$alert(res.message, _this9.$tx('common.operationTip', '操作提示'), {
271711
+ _this10.$alert(res.message, _this10.$tx('common.operationTip', '操作提示'), {
271257
271712
  type: 'error'
271258
271713
  });
271259
271714
  }
271260
271715
  });
271261
271716
  },
271262
271717
  decryptData: function decryptData(model) {
271263
- var _this10 = this;
271718
+ var _this11 = this;
271264
271719
  this.$app.decryptData(this.vo[model]).then(function (res) {
271265
271720
  if (res.code === 'success') {
271266
- _this10.$set(_this10.vo, model, res.body.data);
271267
- _this10.encrypted = false;
271721
+ _this11.$set(_this11.vo, model, res.body.data);
271722
+ _this11.encrypted = false;
271268
271723
  } else {
271269
- _this10.$alert(res.message, {
271724
+ _this11.$alert(res.message, {
271270
271725
  type: 'error'
271271
271726
  });
271272
271727
  }
@@ -271277,15 +271732,15 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
271277
271732
  this.onFileItemClick(this.formItem);
271278
271733
  },
271279
271734
  autoSetFieldValue: function autoSetFieldValue() {
271280
- var _this11 = this;
271735
+ var _this12 = this;
271281
271736
  this.vo.passenger.saveNoValidation = true;
271282
271737
  if (this.formItem.isRequired === 1 && this.vo[this.formItem.propName] === null) {
271283
271738
  if (this.formItem.propType === 'String') {
271284
271739
  this.vo[this.formItem.propName] = '';
271285
271740
  } else if (this.formItem.elementType === 'radio' || this.formItem.elementType === 'select' || this.formItem.elementType === 'checkbox') {
271286
271741
  this.formItem.formatterMap.forEach(function (item) {
271287
- if (_this11.vo[_this11.formItem.propName] === null) {
271288
- _this11.vo[_this11.formItem.propName] = item.value;
271742
+ if (_this12.vo[_this12.formItem.propName] === null) {
271743
+ _this12.vo[_this12.formItem.propName] = item.value;
271289
271744
  }
271290
271745
  });
271291
271746
  }
@@ -271295,13 +271750,13 @@ var FormItemvue_type_script_lang_js_moment = __webpack_require__(95093);
271295
271750
  });
271296
271751
  ;// CONCATENATED MODULE: ./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=script&lang=js
271297
271752
  /* harmony default export */ var src_FormItemvue_type_script_lang_js = (FormItemvue_type_script_lang_js);
271298
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=style&index=0&id=4e8271fe&prod&lang=scss
271299
- var FormItemvue_type_style_index_0_id_4e8271fe_prod_lang_scss = __webpack_require__(4885);
271300
- ;// CONCATENATED MODULE: ./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=style&index=0&id=4e8271fe&prod&lang=scss
271753
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=style&index=0&id=324e710e&prod&lang=scss
271754
+ var FormItemvue_type_style_index_0_id_324e710e_prod_lang_scss = __webpack_require__(10392);
271755
+ ;// CONCATENATED MODULE: ./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=style&index=0&id=324e710e&prod&lang=scss
271301
271756
 
271302
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=style&index=1&id=4e8271fe&prod&lang=scss&scoped=true
271303
- var FormItemvue_type_style_index_1_id_4e8271fe_prod_lang_scss_scoped_true = __webpack_require__(72569);
271304
- ;// CONCATENATED MODULE: ./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=style&index=1&id=4e8271fe&prod&lang=scss&scoped=true
271757
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=style&index=1&id=324e710e&prod&lang=scss&scoped=true
271758
+ var FormItemvue_type_style_index_1_id_324e710e_prod_lang_scss_scoped_true = __webpack_require__(28452);
271759
+ ;// CONCATENATED MODULE: ./packages/ecwapp/Basicform/src/FormItem.vue?vue&type=style&index=1&id=324e710e&prod&lang=scss&scoped=true
271305
271760
 
271306
271761
  ;// CONCATENATED MODULE: ./packages/ecwapp/Basicform/src/FormItem.vue
271307
271762
 
@@ -271315,11 +271770,11 @@ var FormItemvue_type_style_index_1_id_4e8271fe_prod_lang_scss_scoped_true = __we
271315
271770
 
271316
271771
  var FormItem_component = (0,componentNormalizer/* default */.A)(
271317
271772
  src_FormItemvue_type_script_lang_js,
271318
- FormItemvue_type_template_id_4e8271fe_scoped_true_render,
271319
- FormItemvue_type_template_id_4e8271fe_scoped_true_staticRenderFns,
271773
+ FormItemvue_type_template_id_324e710e_scoped_true_render,
271774
+ FormItemvue_type_template_id_324e710e_scoped_true_staticRenderFns,
271320
271775
  false,
271321
271776
  null,
271322
- "4e8271fe",
271777
+ "324e710e",
271323
271778
  null
271324
271779
 
271325
271780
  )
@@ -283226,7 +283681,7 @@ var asyncComponents = [
283226
283681
  return m.EditorConfig;
283227
283682
  });
283228
283683
  }], ['DataDictForm', function () {
283229
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 34719)).then(function (m) {
283684
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 71634)).then(function (m) {
283230
283685
  return m.DataDictForm;
283231
283686
  });
283232
283687
  }],