ecinc-cloud-mappaio 9.7.36 → 9.7.38

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.
@@ -84,6 +84,15 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
84
84
  }));
85
85
 
86
86
 
87
+ /***/ }),
88
+
89
+ /***/ 7499:
90
+ /***/ (function(module) {
91
+
92
+ "use strict";
93
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=["attrs","props","domProps"],toArrayMerge=["class","style","directives"],functionalMerge=["on","nativeOn"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=[].concat(d,e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=[].concat(g,h)}else c[b][f]=a[b][f];}else if("hook"===b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;
94
+
95
+
87
96
  /***/ }),
88
97
 
89
98
  /***/ 1656:
@@ -1397,7 +1406,7 @@ var actions = {
1397
1406
 
1398
1407
  /***/ }),
1399
1408
 
1400
- /***/ 6914:
1409
+ /***/ 249:
1401
1410
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1402
1411
 
1403
1412
  "use strict";
@@ -2303,8 +2312,8 @@ var SysSetupvue_type_template_id_2497073a_scoped_true_render = function render()
2303
2312
  };
2304
2313
  var SysSetupvue_type_template_id_2497073a_scoped_true_staticRenderFns = [];
2305
2314
 
2306
- ;// 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/Module/src/MenuItemForm.vue?vue&type=template&id=76a1a43d&scoped=true
2307
- var MenuItemFormvue_type_template_id_76a1a43d_scoped_true_render = function render() {
2315
+ ;// 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/Module/src/MenuItemForm.vue?vue&type=template&id=3ebd0a76&scoped=true
2316
+ var MenuItemFormvue_type_template_id_3ebd0a76_scoped_true_render = function render() {
2308
2317
  var _vm = this,
2309
2318
  _c = _vm._self._c;
2310
2319
  return _c('el-form', {
@@ -2697,7 +2706,7 @@ var MenuItemFormvue_type_template_id_76a1a43d_scoped_true_render = function rend
2697
2706
  attrs: {
2698
2707
  "dataType": _vm.$tx('ecwplat.menuForm.allFile', '全部')
2699
2708
  }
2700
- }, [_vm._v(_vm._s(this.$tx('ecwplat.menuForm.allFile', '全部')) + "列表URL")])]), _c('td', {
2709
+ }, [_vm._v(_vm._s(_vm.$tx('ecwplat.menuForm.allFile', '全部')) + "列表URL")])]), _c('td', {
2701
2710
  staticClass: "el-table__cell tdcont tdw83",
2702
2711
  attrs: {
2703
2712
  "colspan": "3"
@@ -3800,7 +3809,7 @@ var MenuItemFormvue_type_template_id_76a1a43d_scoped_true_render = function rend
3800
3809
  }
3801
3810
  }, [_c('Icons')], 1) : _vm._e()], 1);
3802
3811
  };
3803
- var MenuItemFormvue_type_template_id_76a1a43d_scoped_true_staticRenderFns = [];
3812
+ var MenuItemFormvue_type_template_id_3ebd0a76_scoped_true_staticRenderFns = [];
3804
3813
 
3805
3814
  ;// 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/Module/src/MenuItemForm.vue?vue&type=script&lang=js
3806
3815
  /* harmony default export */ var MenuItemFormvue_type_script_lang_js = ({
@@ -4185,7 +4194,7 @@ var MenuItemFormvue_type_template_id_76a1a43d_scoped_true_staticRenderFns = [];
4185
4194
  if (formUrl.indexOf('/dcontent/') !== -1) {
4186
4195
  formUrl = formUrl.split('/dcontent/')[1];
4187
4196
  } else if (formUrl.indexOf('@/wapp/') !== -1) {
4188
- formUrl = formUrl.split('@/wapp/')[1].replace('/\//', '.');
4197
+ formUrl = formUrl.split('@/wapp/')[1].replace('///', '.');
4189
4198
  }
4190
4199
  this.$set(this.vo, 'href', formUrl.split('.')[1]);
4191
4200
  this.$set(this.vo, 'wfEngineUrl', formUrl.split('.')[0] + '/' + formUrl.split('.')[1]);
@@ -4242,9 +4251,9 @@ var MenuItemFormvue_type_template_id_76a1a43d_scoped_true_staticRenderFns = [];
4242
4251
  });
4243
4252
  ;// CONCATENATED MODULE: ./packages/ecwplat/Module/src/MenuItemForm.vue?vue&type=script&lang=js
4244
4253
  /* harmony default export */ var src_MenuItemFormvue_type_script_lang_js = (MenuItemFormvue_type_script_lang_js);
4245
- // 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/Module/src/MenuItemForm.vue?vue&type=style&index=0&id=76a1a43d&prod&scoped=true&lang=scss
4246
- var MenuItemFormvue_type_style_index_0_id_76a1a43d_prod_scoped_true_lang_scss = __webpack_require__(1908);
4247
- ;// CONCATENATED MODULE: ./packages/ecwplat/Module/src/MenuItemForm.vue?vue&type=style&index=0&id=76a1a43d&prod&scoped=true&lang=scss
4254
+ // 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/Module/src/MenuItemForm.vue?vue&type=style&index=0&id=3ebd0a76&prod&scoped=true&lang=scss
4255
+ var MenuItemFormvue_type_style_index_0_id_3ebd0a76_prod_scoped_true_lang_scss = __webpack_require__(3381);
4256
+ ;// CONCATENATED MODULE: ./packages/ecwplat/Module/src/MenuItemForm.vue?vue&type=style&index=0&id=3ebd0a76&prod&scoped=true&lang=scss
4248
4257
 
4249
4258
  ;// CONCATENATED MODULE: ./packages/ecwplat/Module/src/MenuItemForm.vue
4250
4259
 
@@ -4257,11 +4266,11 @@ var MenuItemFormvue_type_style_index_0_id_76a1a43d_prod_scoped_true_lang_scss =
4257
4266
 
4258
4267
  var MenuItemForm_component = (0,componentNormalizer/* default */.A)(
4259
4268
  src_MenuItemFormvue_type_script_lang_js,
4260
- MenuItemFormvue_type_template_id_76a1a43d_scoped_true_render,
4261
- MenuItemFormvue_type_template_id_76a1a43d_scoped_true_staticRenderFns,
4269
+ MenuItemFormvue_type_template_id_3ebd0a76_scoped_true_render,
4270
+ MenuItemFormvue_type_template_id_3ebd0a76_scoped_true_staticRenderFns,
4262
4271
  false,
4263
4272
  null,
4264
- "76a1a43d",
4273
+ "3ebd0a76",
4265
4274
  null
4266
4275
 
4267
4276
  )
@@ -8469,7 +8478,7 @@ var PdfViewer = showViewer;
8469
8478
 
8470
8479
  /***/ }),
8471
8480
 
8472
- /***/ 9733:
8481
+ /***/ 7669:
8473
8482
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8474
8483
 
8475
8484
  "use strict";
@@ -8481,7 +8490,7 @@ __webpack_require__.d(__webpack_exports__, {
8481
8490
  "default": function() { return /* binding */ RichtextEditor; }
8482
8491
  });
8483
8492
 
8484
- ;// 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/ecmapp/RichtextEditor/src/index.vue?vue&type=template&id=1c8100d7&scoped=true
8493
+ ;// 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/ecmapp/RichtextEditor/src/index.vue?vue&type=template&id=1847d5d1&scoped=true
8485
8494
  var render = function render() {
8486
8495
  var _vm = this,
8487
8496
  _c = _vm._self._c;
@@ -8492,7 +8501,49 @@ var render = function render() {
8492
8501
  attrs: {
8493
8502
  "id": "richtext"
8494
8503
  }
8495
- })]);
8504
+ }), _vm.voiceInputEnabled ? _c('div', {
8505
+ staticClass: "voice-input-entry",
8506
+ style: _vm.voiceBtnStyle,
8507
+ on: {
8508
+ "touchstart": function touchstart($event) {
8509
+ $event.preventDefault();
8510
+ return _vm.onDragStart.apply(null, arguments);
8511
+ },
8512
+ "mousedown": function mousedown($event) {
8513
+ $event.preventDefault();
8514
+ return _vm.onDragStart.apply(null, arguments);
8515
+ },
8516
+ "click": function click($event) {
8517
+ $event.stopPropagation();
8518
+ return _vm.onVoiceBtnClick.apply(null, arguments);
8519
+ }
8520
+ }
8521
+ }, [_c('svg', {
8522
+ staticClass: "voice-input-entry-icon",
8523
+ attrs: {
8524
+ "viewBox": "0 0 1024 1024",
8525
+ "fill": "currentColor",
8526
+ "aria-hidden": "true"
8527
+ }
8528
+ }, [_c('path', {
8529
+ attrs: {
8530
+ "d": "M512 640c88.4 0 160-71.6 160-160V224c0-88.4-71.6-160-160-160S352 135.6 352 224v256c0 88.4 71.6 160 160 160z"
8531
+ }
8532
+ }), _c('path', {
8533
+ attrs: {
8534
+ "d": "M768 480c0 141.4-114.6 256-256 256S256 621.4 256 480h-64c0 163.9 123.3 299 288 318.4V896H352v64h320v-64H544v-97.6C708.7 779 832 643.9 832 480h-64z"
8535
+ }
8536
+ })]), _c('span', [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceInput', '语音输入')))])]) : _vm._e(), _c('VoiceInputDialog', {
8537
+ attrs: {
8538
+ "visible": _vm.voiceDialogVisible
8539
+ },
8540
+ on: {
8541
+ "update:visible": function updateVisible($event) {
8542
+ _vm.voiceDialogVisible = $event;
8543
+ },
8544
+ "confirm": _vm.onVoiceConfirm
8545
+ }
8546
+ })], 1);
8496
8547
  };
8497
8548
  var staticRenderFns = [];
8498
8549
 
@@ -8528,14 +8579,38 @@ var staticRenderFns = [];
8528
8579
  placeholder: {
8529
8580
  type: String,
8530
8581
  default: ''
8582
+ },
8583
+ voiceInput: {
8584
+ type: Boolean,
8585
+ default: false
8531
8586
  }
8532
8587
  },
8533
8588
  data: function data() {
8534
8589
  return {
8535
- editor: null
8590
+ editor: null,
8591
+ voiceDialogVisible: false,
8592
+ editorReadonly: false,
8593
+ voiceBtnX: null,
8594
+ voiceBtnY: null,
8595
+ voiceBtnMoved: false
8536
8596
  };
8537
8597
  },
8538
- computed: {},
8598
+ computed: {
8599
+ // 语音输入按钮显示条件:voiceInput属性为true且编辑器可编辑
8600
+ voiceInputEnabled: function voiceInputEnabled() {
8601
+ return this.voiceInput && !this.editorReadonly;
8602
+ },
8603
+ // 按钮定位样式:未拖拽时CSS默认贴在正文输入框右下角,拖拽后按记录坐标fixed定位
8604
+ voiceBtnStyle: function voiceBtnStyle() {
8605
+ if (this.voiceBtnX === null) return {};
8606
+ return {
8607
+ left: this.voiceBtnX + 'px',
8608
+ top: this.voiceBtnY + 'px',
8609
+ right: 'auto',
8610
+ bottom: 'auto'
8611
+ };
8612
+ }
8613
+ },
8539
8614
  watch: {
8540
8615
  value: function value() {
8541
8616
  // 监听prop的变化,更新ckeditor中的值
@@ -8547,8 +8622,18 @@ var staticRenderFns = [];
8547
8622
  created: function created() {},
8548
8623
  beforeDestroy: function beforeDestroy() {
8549
8624
  this.editor.destroy();
8625
+ window.removeEventListener('resize', this.placeVoiceBtnDefault);
8626
+ window.removeEventListener('scroll', this.placeVoiceBtnDefault, true);
8627
+ document.removeEventListener('touchmove', this.onDragMove);
8628
+ document.removeEventListener('touchend', this.onDragEnd);
8629
+ document.removeEventListener('mousemove', this.onDragMove);
8630
+ document.removeEventListener('mouseup', this.onDragEnd);
8550
8631
  },
8551
8632
  mounted: function mounted() {
8633
+ var _this = this;
8634
+ // 未拖拽时保持按钮跟随正文输入框右下角(窗口缩放/滚动时重新计算)
8635
+ window.addEventListener('resize', this.placeVoiceBtnDefault);
8636
+ window.addEventListener('scroll', this.placeVoiceBtnDefault, true);
8552
8637
  this.placeholder = this.$tx('ecmapp.common.enterMainText', '请输入正文');
8553
8638
  var $scope = this;
8554
8639
  var WangEditor = window.wangEditor;
@@ -8673,9 +8758,80 @@ var staticRenderFns = [];
8673
8758
  if (formCanEdit === 0 || formCanEdit === '0') {
8674
8759
  this.editor.config.placeholder = '';
8675
8760
  this.editor.disable();
8761
+ this.editorReadonly = true;
8676
8762
  }
8763
+ // 初始将语音按钮定位到正文输入框右下角
8764
+ this.$nextTick(function () {
8765
+ _this.placeVoiceBtnDefault();
8766
+ });
8677
8767
  },
8678
8768
  methods: {
8769
+ // 打开语音输入弹窗(桌面鼠标点击触发;触屏的click被touchstart.preventDefault阻止,在onDragEnd中处理)
8770
+ onVoiceBtnClick: function onVoiceBtnClick() {
8771
+ if (!this.voiceBtnMoved) {
8772
+ this.openVoiceDialog();
8773
+ }
8774
+ this.voiceBtnMoved = false;
8775
+ },
8776
+ openVoiceDialog: function openVoiceDialog() {
8777
+ this.voiceDialogVisible = true;
8778
+ },
8779
+ // 计算正文输入框右下角的默认位置(fixed视口坐标)
8780
+ placeVoiceBtnDefault: function placeVoiceBtnDefault() {
8781
+ if (this.voiceBtnMoved || !this.$el) return;
8782
+ var btn = this.$el.querySelector('.voice-input-entry');
8783
+ if (!btn) return;
8784
+ var rect = this.$el.getBoundingClientRect();
8785
+ this.voiceBtnX = rect.right - btn.offsetWidth - 16;
8786
+ this.voiceBtnY = rect.bottom - btn.offsetHeight - 16;
8787
+ },
8788
+ // 拖拽开始:记录起始坐标,绑定document级move/end事件
8789
+ onDragStart: function onDragStart(evt) {
8790
+ var point = evt.touches ? evt.touches[0] : evt;
8791
+ this._dragIsTouch = !!evt.touches;
8792
+ this._dragStartX = point.clientX;
8793
+ this._dragStartY = point.clientY;
8794
+ this.voiceBtnMoved = false;
8795
+ if (this.voiceBtnX === null) this.placeVoiceBtnDefault();
8796
+ this._dragBtnStartLeft = this.voiceBtnX;
8797
+ this._dragBtnStartTop = this.voiceBtnY;
8798
+ document.addEventListener('touchmove', this.onDragMove, {
8799
+ passive: false
8800
+ });
8801
+ document.addEventListener('touchend', this.onDragEnd);
8802
+ document.addEventListener('mousemove', this.onDragMove);
8803
+ document.addEventListener('mouseup', this.onDragEnd);
8804
+ },
8805
+ // 拖拽移动:实时更新按钮位置,位移超过5px视为拖拽(屏蔽click)
8806
+ onDragMove: function onDragMove(evt) {
8807
+ var point = evt.touches ? evt.touches[0] : evt;
8808
+ var dx = point.clientX - this._dragStartX;
8809
+ var dy = point.clientY - this._dragStartY;
8810
+ if (Math.abs(dx) > 5 || Math.abs(dy) > 5) {
8811
+ this.voiceBtnMoved = true;
8812
+ evt.preventDefault();
8813
+ }
8814
+ this.voiceBtnX = this._dragBtnStartLeft + dx;
8815
+ this.voiceBtnY = this._dragBtnStartTop + dy;
8816
+ },
8817
+ // 拖拽结束:移除document级事件;触屏无click事件,未拖动时在此打开弹窗
8818
+ onDragEnd: function onDragEnd() {
8819
+ document.removeEventListener('touchmove', this.onDragMove);
8820
+ document.removeEventListener('touchend', this.onDragEnd);
8821
+ document.removeEventListener('mousemove', this.onDragMove);
8822
+ document.removeEventListener('mouseup', this.onDragEnd);
8823
+ if (this._dragIsTouch && !this.voiceBtnMoved) {
8824
+ this.openVoiceDialog();
8825
+ }
8826
+ this.voiceBtnMoved = false;
8827
+ },
8828
+ // 语音识别完成回调:识别文本追加到编辑器现有内容末尾
8829
+ onVoiceConfirm: function onVoiceConfirm(text) {
8830
+ var currentHtml = this.editor.txt.html();
8831
+ var newHtml = currentHtml ? currentHtml + text : text;
8832
+ this.editor.txt.html(newHtml);
8833
+ this.$emit('input', newHtml);
8834
+ },
8679
8835
  // 键击事件
8680
8836
  keydownEvents: function keydownEvents(evt) {
8681
8837
  if (this.startupMode !== 'source') {
@@ -8718,9 +8874,9 @@ var staticRenderFns = [];
8718
8874
  });
8719
8875
  ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=script&lang=js
8720
8876
  /* harmony default export */ var RichtextEditor_srcvue_type_script_lang_js = (srcvue_type_script_lang_js);
8721
- // 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/ecmapp/RichtextEditor/src/index.vue?vue&type=style&index=0&id=1c8100d7&prod&scoped=true&lang=scss
8722
- var srcvue_type_style_index_0_id_1c8100d7_prod_scoped_true_lang_scss = __webpack_require__(5813);
8723
- ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=style&index=0&id=1c8100d7&prod&scoped=true&lang=scss
8877
+ // 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/ecmapp/RichtextEditor/src/index.vue?vue&type=style&index=0&id=1847d5d1&prod&scoped=true&lang=scss
8878
+ var srcvue_type_style_index_0_id_1847d5d1_prod_scoped_true_lang_scss = __webpack_require__(7131);
8879
+ ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=style&index=0&id=1847d5d1&prod&scoped=true&lang=scss
8724
8880
 
8725
8881
  // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
8726
8882
  var componentNormalizer = __webpack_require__(1656);
@@ -8739,7 +8895,7 @@ var component = (0,componentNormalizer/* default */.A)(
8739
8895
  staticRenderFns,
8740
8896
  false,
8741
8897
  null,
8742
- "1c8100d7",
8898
+ "1847d5d1",
8743
8899
  null
8744
8900
 
8745
8901
  )
@@ -8756,7 +8912,7 @@ src.install = function (Vue) {
8756
8912
 
8757
8913
  /***/ }),
8758
8914
 
8759
- /***/ 431:
8915
+ /***/ 280:
8760
8916
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8761
8917
 
8762
8918
  "use strict";
@@ -8772,6 +8928,7 @@ __webpack_require__.d(__webpack_exports__, {
8772
8928
  ShortcutProcessing: function() { return /* binding */ Wflowform_ShortcutProcessing; },
8773
8929
  SubmitDialog: function() { return /* binding */ Wflowform_SubmitDialog; },
8774
8930
  SubmitHandle: function() { return /* binding */ Wflowform_SubmitHandle; },
8931
+ VoiceInputDialog: function() { return /* binding */ Wflowform_VoiceInputDialog; },
8775
8932
  WfNodelogList: function() { return /* binding */ Wflowform_WfNodelogList; },
8776
8933
  WriteToReadIdea: function() { return /* binding */ Wflowform_WriteToReadIdea; }
8777
8934
  });
@@ -12715,8 +12872,8 @@ var SelectOuterDeputy_component = (0,componentNormalizer/* default */.A)(
12715
12872
  )
12716
12873
 
12717
12874
  /* harmony default export */ var SelectOuterDeputy = (SelectOuterDeputy_component.exports);
12718
- ;// 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/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=template&id=20bc806c&scoped=true
12719
- var SubmitHandlevue_type_template_id_20bc806c_scoped_true_render = function render() {
12875
+ ;// 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/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=template&id=6bdfbd40&scoped=true
12876
+ var SubmitHandlevue_type_template_id_6bdfbd40_scoped_true_render = function render() {
12720
12877
  var _vm = this,
12721
12878
  _c = _vm._self._c;
12722
12879
  return _vm.initiated ? _c('div', {
@@ -13501,7 +13658,7 @@ var SubmitHandlevue_type_template_id_20bc806c_scoped_true_render = function rend
13501
13658
  }
13502
13659
  })], 2) : _vm._e();
13503
13660
  };
13504
- var SubmitHandlevue_type_template_id_20bc806c_scoped_true_staticRenderFns = [];
13661
+ var SubmitHandlevue_type_template_id_6bdfbd40_scoped_true_staticRenderFns = [];
13505
13662
 
13506
13663
  ;// 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/ecmapp/Wflowform/src/WfTaskNode.vue?vue&type=template&id=d1ae2f20&scoped=true
13507
13664
  var WfTaskNodevue_type_template_id_d1ae2f20_scoped_true_render = function render() {
@@ -14830,12 +14987,12 @@ var WfTaskNode_component = (0,componentNormalizer/* default */.A)(
14830
14987
  )
14831
14988
 
14832
14989
  /* harmony default export */ var WfTaskNode = (WfTaskNode_component.exports);
14833
- ;// 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/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=template&id=5924c680&scoped=true
14834
- var VoiceInputDialogvue_type_template_id_5924c680_scoped_true_render = function render() {
14990
+ ;// 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/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=template&id=813d3ba6&scoped=true
14991
+ var VoiceInputDialogvue_type_template_id_813d3ba6_scoped_true_render = function render() {
14835
14992
  var _vm = this,
14836
14993
  _c = _vm._self._c;
14837
14994
  return _c('van-popup', {
14838
- staticClass: "voice-input-popup",
14995
+ class: ['voice-input-popup', 'skin-' + _vm.currentSkin],
14839
14996
  attrs: {
14840
14997
  "round": "",
14841
14998
  "position": "bottom",
@@ -14868,6 +15025,17 @@ var VoiceInputDialogvue_type_template_id_5924c680_scoped_true_render = function
14868
15025
  })], 1), _c('div', {
14869
15026
  staticClass: "voice-popup-body"
14870
15027
  }, [_c('div', {
15028
+ staticClass: "voice-mic-wrap",
15029
+ class: {
15030
+ recording: _vm.status === 'recording'
15031
+ }
15032
+ }, [_c('span', {
15033
+ staticClass: "tech-ripple tech-ripple-1"
15034
+ }), _c('span', {
15035
+ staticClass: "tech-ripple tech-ripple-2"
15036
+ }), _c('span', {
15037
+ staticClass: "tech-ripple tech-ripple-3"
15038
+ }), _c('div', {
14871
15039
  staticClass: "voice-mic-btn",
14872
15040
  class: {
14873
15041
  recording: _vm.status === 'recording'
@@ -14895,7 +15063,7 @@ var VoiceInputDialogvue_type_template_id_5924c680_scoped_true_render = function
14895
15063
  attrs: {
14896
15064
  "d": "M768 480c0 141.4-114.6 256-256 256S256 621.4 256 480h-64c0 163.9 123.3 299 288 318.4V896H352v64h320v-64H544v-97.6C708.7 779 832 643.9 832 480h-64z"
14897
15065
  }
14898
- })])], 1), _c('div', {
15066
+ })])], 1)]), _c('div', {
14899
15067
  staticClass: "voice-status-text",
14900
15068
  class: {
14901
15069
  'is-error': _vm.status === 'error'
@@ -14956,34 +15124,48 @@ var VoiceInputDialogvue_type_template_id_5924c680_scoped_true_render = function
14956
15124
  on: {
14957
15125
  "click": _vm.confirmVoiceText
14958
15126
  }
14959
- }, [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceFillOpinion', '填入意见')))])], 1)]);
15127
+ }, [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceConfirmInput', '确认输入')))])], 1)]);
14960
15128
  };
14961
- var VoiceInputDialogvue_type_template_id_5924c680_scoped_true_staticRenderFns = [];
15129
+ var VoiceInputDialogvue_type_template_id_813d3ba6_scoped_true_staticRenderFns = [];
14962
15130
 
14963
15131
  ;// 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/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=script&lang=js
14964
- // 静音自动结束:频谱均值(0-255)超过阈值视为有人声;
14965
- // 前导静音(全程未开口)与尾部静音(说完后沉默)分别计时,审批意见多为短句,尾部可更早收尾
15132
+ // 人声判定阈值:AnalyserNode频谱均值(getByteFrequencyData,取值范围0-255)超过该值视为有人声;
15133
+ // 值越小越灵敏(环境噪声易误触发),越大越迟钝(轻声说话可能漏检),10为安静室内环境的经验值
14966
15134
  var VOICE_AVG_THRESHOLD = 10;
15135
+ // 前导静音容忍时长(毫秒):录音开始后一直未检测到人声,超过该时长自动结束并丢弃录音,
15136
+ // 避免用户点了麦克风却没说话导致录音一直挂着;10秒足够用户反应和开口
14967
15137
  var LEADING_SILENCE_MS = 10000;
14968
- var TRAILING_SILENCE_MS = 5000;
15138
+ // 尾部静音容忍时长(毫秒):已检测到人声后连续沉默超过该时长自动结束录音,
15139
+ // 审批意见多为短句,说完后无需等太久即可收尾;该值应大于句中自然停顿(约1-2秒)
15140
+ var TRAILING_SILENCE_MS = 3000;
14969
15141
  /* harmony default export */ var VoiceInputDialogvue_type_script_lang_js = ({
14970
15142
  name: 'VoiceInputDialog',
14971
15143
  props: {
14972
15144
  visible: {
14973
15145
  type: Boolean,
14974
15146
  default: false
15147
+ },
15148
+ // 界面皮肤:basic-基本版 tech-科技版,仅影响视觉样式,识别功能完全一致
15149
+ skin: {
15150
+ type: String,
15151
+ default: 'basic',
15152
+ validator: function validator(val) {
15153
+ return ['basic', 'tech'].indexOf(val) > -1;
15154
+ }
14975
15155
  }
14976
15156
  },
14977
15157
  data: function data() {
14978
15158
  return {
14979
15159
  i18npkg: 'ecmapp',
14980
15160
  moduleCode: 'wflowform',
15161
+ currentSkin: this.skin,
15162
+ // 当前皮肤(basic/tech),初始取自skin属性,头部按钮可切换
14981
15163
  status: 'idle',
14982
15164
  // idle:待录音 recording:录音中 processing:识别中(仅后端模式) done:识别完成 error:出错
14983
15165
  errorText: '',
14984
15166
  resultText: '',
14985
15167
  finalText: '',
14986
- // 浏览器模式已确认的识别文本
15168
+ // 已确认的识别文本(浏览器模式的final结果、流式模式已分段终稿)
14987
15169
  seconds: 0,
14988
15170
  timer: null,
14989
15171
  recognition: null,
@@ -14993,6 +15175,18 @@ var TRAILING_SILENCE_MS = 5000;
14993
15175
  stream: null,
14994
15176
  // 麦克风音频流
14995
15177
  audioChunks: [],
15178
+ ws: null,
15179
+ // 流式识别WebSocket连接
15180
+ wsProcessor: null,
15181
+ // 流式识别PCM采集节点
15182
+ wsSource: null,
15183
+ // 流式识别音频源节点
15184
+ streamActive: false,
15185
+ // 流式识别链路是否正常(异常时降级为整段上传)
15186
+ streamWaitingDone: false,
15187
+ // 已发stop,等待服务端最终结果
15188
+ streamDoneTimer: null,
15189
+ // 等待最终结果的超时兜底定时器
14996
15190
  lastVoiceAt: 0,
14997
15191
  // 最近一次检测到人声的时间戳,用于静音自动结束
14998
15192
  hasVoice: false,
@@ -15025,6 +15219,12 @@ var TRAILING_SILENCE_MS = 5000;
15025
15219
  var voiceToWord = window.voiceToWord;
15026
15220
  return voiceToWord && typeof voiceToWord === 'string' && voiceToWord !== 'browser' ? voiceToWord : '';
15027
15221
  },
15222
+ // window.voiceToWordStream为非空字符串时启用流式识别(WebSocket边说边出字),
15223
+ // 值为网关内路径如'/voice/recognize/stream',未配置则维持录完整段上传识别
15224
+ streamPath: function streamPath() {
15225
+ var streamPath = window.voiceToWordStream;
15226
+ return this.backendUrl && streamPath && typeof streamPath === 'string' ? streamPath : '';
15227
+ },
15028
15228
  statusText: function statusText() {
15029
15229
  switch (this.status) {
15030
15230
  case 'recording':
@@ -15051,6 +15251,9 @@ var TRAILING_SILENCE_MS = 5000;
15051
15251
  this.resetState();
15052
15252
  this.preRequestPermission();
15053
15253
  }
15254
+ },
15255
+ skin: function skin(val) {
15256
+ this.currentSkin = val;
15054
15257
  }
15055
15258
  },
15056
15259
  beforeDestroy: function beforeDestroy() {
@@ -15231,6 +15434,9 @@ var TRAILING_SILENCE_MS = 5000;
15231
15434
  }).then(function (stream) {
15232
15435
  _this4.stream = stream;
15233
15436
  _this4.audioChunks = [];
15437
+ // 立即置为录音中:MediaRecorder.onstart是异步事件,而WebSocket经本地代理握手可能先于它完成,
15438
+ // 若等onstart才置status,onopen会因status仍为idle而误关连接(code=1000)
15439
+ _this4.status = 'recording';
15234
15440
  var mimeType = window.MediaRecorder && MediaRecorder.isTypeSupported('audio/webm;codecs=opus') ? 'audio/webm;codecs=opus' : '';
15235
15441
  var mediaRecorder = mimeType ? new MediaRecorder(stream, {
15236
15442
  mimeType: mimeType
@@ -15241,7 +15447,6 @@ var TRAILING_SILENCE_MS = 5000;
15241
15447
  }
15242
15448
  };
15243
15449
  mediaRecorder.onstart = function () {
15244
- _this4.status = 'recording';
15245
15450
  _this4.startTimer();
15246
15451
  // canvas由v-show控制,需等DOM更新可见后再取尺寸绘制波形,否则画布为0×0
15247
15452
  _this4.$nextTick(function () {
@@ -15253,6 +15458,8 @@ var TRAILING_SILENCE_MS = 5000;
15253
15458
  };
15254
15459
  mediaRecorder.onstop = function () {
15255
15460
  _this4.stopTimer();
15461
+ // 先断开PCM推送再关波形(stopWaveform会关闭AudioContext)
15462
+ _this4.stopPcmCapture();
15256
15463
  _this4.stopWaveform();
15257
15464
  _this4.releaseStream();
15258
15465
  _this4.mediaRecorder = null;
@@ -15260,13 +15467,22 @@ var TRAILING_SILENCE_MS = 5000;
15260
15467
  // 全程静音自动结束:丢弃录音,提示已在checkSilenceTimeout中给出
15261
15468
  _this4.discardRecording = false;
15262
15469
  _this4.audioChunks = [];
15470
+ _this4.closeStream();
15471
+ } else if (_this4.visible && _this4.streamActive && _this4.ws && _this4.ws.readyState === WebSocket.OPEN) {
15472
+ // 流式链路全程正常:通知服务端冲刷解码器收尾,不再整段上传
15473
+ _this4.finishStream();
15263
15474
  } else if (_this4.visible && _this4.audioChunks.length > 0) {
15264
- // 弹窗已关闭(取消录音)则不再上传
15475
+ // 弹窗已关闭(取消录音)则不再上传;流式失败时降级为整段上传
15476
+ _this4.closeStream();
15265
15477
  _this4.uploadVoice();
15266
15478
  }
15267
15479
  };
15268
15480
  _this4.mediaRecorder = mediaRecorder;
15269
15481
  mediaRecorder.start();
15482
+ // 流式识别:录音同时经 WebSocket 推送PCM,边说边出字;失败自动降级为整段上传
15483
+ if (_this4.streamPath) {
15484
+ _this4.startStream(stream);
15485
+ }
15270
15486
  }).catch(function () {
15271
15487
  _this4.showPermissionError();
15272
15488
  });
@@ -15304,6 +15520,179 @@ var TRAILING_SILENCE_MS = 5000;
15304
15520
  _this5.errorText = _this5.$tx('ecmapp.wflowform.voiceRecognizeFail', '语音识别失败,请重试。');
15305
15521
  });
15306
15522
  },
15523
+ // 由axios的baseURL(/apigw)拼出流式识别WebSocket地址
15524
+ buildStreamWsUrl: function buildStreamWsUrl() {
15525
+ var base = this.$http && this.$http.defaults && this.$http.defaults.baseURL || '';
15526
+ if (!/^https?:/i.test(base)) {
15527
+ base = location.origin + (base && base.charAt(0) !== '/' ? '/' : '') + base;
15528
+ }
15529
+ return base.replace(/^https:/, 'wss:').replace(/^http:/, 'ws:') + this.streamPath;
15530
+ },
15531
+ // 建立流式识别WebSocket,成功后边录边传PCM;任何失败都静默回落到整段上传
15532
+ startStream: function startStream(stream) {
15533
+ var _this6 = this;
15534
+ var wsUrl = this.buildStreamWsUrl();
15535
+ console.log('[VoiceStream] 连接:', wsUrl);
15536
+ var ws;
15537
+ try {
15538
+ ws = new WebSocket(wsUrl);
15539
+ } catch (e) {
15540
+ console.warn('[VoiceStream] 创建WebSocket失败,降级为整段上传:', e);
15541
+ return;
15542
+ }
15543
+ ws.binaryType = 'arraybuffer';
15544
+ this.ws = ws;
15545
+ ws.onopen = function () {
15546
+ if (_this6.ws !== ws) return;
15547
+ if (_this6.status !== 'recording') {
15548
+ try {
15549
+ ws.close();
15550
+ } catch (e) {
15551
+ // 已关闭时close抛错可忽略
15552
+ }
15553
+ return;
15554
+ }
15555
+ console.log('[VoiceStream] 握手成功,开始推送PCM');
15556
+ _this6.streamActive = true;
15557
+ _this6.startPcmCapture(stream);
15558
+ };
15559
+ ws.onmessage = function (event) {
15560
+ return _this6.onStreamMessage(event);
15561
+ };
15562
+ ws.onerror = function (event) {
15563
+ console.warn('[VoiceStream] 连接错误,将降级为整段上传', event);
15564
+ };
15565
+ ws.onclose = function (event) {
15566
+ console.log('[VoiceStream] 连接关闭 code=' + event.code + (event.reason ? ' reason=' + event.reason : ''));
15567
+ if (_this6.ws !== ws) return;
15568
+ _this6.ws = null;
15569
+ if (_this6.streamWaitingDone) {
15570
+ // 等待最终结果期间服务端关闭,视为收尾完成
15571
+ _this6.onStreamDone();
15572
+ } else if (_this6.status === 'recording') {
15573
+ // 录音途中异常断开,标记降级,onstop时走整段上传
15574
+ _this6.streamActive = false;
15575
+ _this6.stopPcmCapture();
15576
+ }
15577
+ };
15578
+ },
15579
+ onStreamMessage: function onStreamMessage(event) {
15580
+ var msg;
15581
+ try {
15582
+ msg = JSON.parse(event.data);
15583
+ } catch (e) {
15584
+ return;
15585
+ }
15586
+ if (msg.error) {
15587
+ // 服务端明确报错(如流式未启用),降级到整段上传
15588
+ console.warn('[VoiceStream] 服务端报错,降级为整段上传:', msg.error);
15589
+ this.streamActive = false;
15590
+ this.stopPcmCapture();
15591
+ return;
15592
+ }
15593
+ if (msg.isFinal) {
15594
+ // 一段话说完(端点检测分段),固化进finalText
15595
+ if (msg.text) {
15596
+ this.finalText += msg.text;
15597
+ }
15598
+ this.resultText = this.finalText;
15599
+ } else {
15600
+ this.resultText = this.finalText + (msg.text || '');
15601
+ }
15602
+ if (msg.done) {
15603
+ this.onStreamDone();
15604
+ }
15605
+ },
15606
+ // 用ScriptProcessorNode抓PCM实时发送(AudioWorklet在旧WebView兼容性差)
15607
+ startPcmCapture: function startPcmCapture(stream) {
15608
+ var _this7 = this;
15609
+ var audioContext = this.audioContext;
15610
+ if (!audioContext || audioContext.state === 'closed') return;
15611
+ var source = audioContext.createMediaStreamSource(stream);
15612
+ var processor = audioContext.createScriptProcessor(4096, 1, 1);
15613
+ processor.onaudioprocess = function (event) {
15614
+ if (!_this7.streamActive || !_this7.ws || _this7.ws.readyState !== WebSocket.OPEN) return;
15615
+ var input = event.inputBuffer.getChannelData(0);
15616
+ _this7.ws.send(_this7.downsampleToInt16(input, event.inputBuffer.sampleRate));
15617
+ };
15618
+ source.connect(processor);
15619
+ // 必须接入输出图才会触发onaudioprocess,无output通道不会回放
15620
+ processor.connect(audioContext.destination);
15621
+ this.wsSource = source;
15622
+ this.wsProcessor = processor;
15623
+ },
15624
+ // 线性插值降采样到16kHz并转Int16小端,兼容44.1k/48k采集
15625
+ downsampleToInt16: function downsampleToInt16(input, sourceRate) {
15626
+ var ratio = sourceRate / 16000;
15627
+ var length = Math.floor(input.length / ratio);
15628
+ var result = new Int16Array(length);
15629
+ for (var i = 0; i < length; i++) {
15630
+ var pos = i * ratio;
15631
+ var left = Math.floor(pos);
15632
+ var right = Math.min(left + 1, input.length - 1);
15633
+ var sample = input[left] + (input[right] - input[left]) * (pos - left);
15634
+ var clamped = Math.max(-1, Math.min(1, sample));
15635
+ result[i] = clamped < 0 ? clamped * 0x8000 : clamped * 0x7fff;
15636
+ }
15637
+ return result.buffer;
15638
+ },
15639
+ stopPcmCapture: function stopPcmCapture() {
15640
+ if (this.wsProcessor) {
15641
+ this.wsProcessor.disconnect();
15642
+ this.wsProcessor.onaudioprocess = null;
15643
+ this.wsProcessor = null;
15644
+ }
15645
+ if (this.wsSource) {
15646
+ this.wsSource.disconnect();
15647
+ this.wsSource = null;
15648
+ }
15649
+ },
15650
+ // 录音结束:通知服务端冲刷解码器,等最终结果(超时兜底直接用现有文字)
15651
+ finishStream: function finishStream() {
15652
+ var _this8 = this;
15653
+ this.status = 'processing';
15654
+ this.streamWaitingDone = true;
15655
+ this.streamDoneTimer = setTimeout(function () {
15656
+ return _this8.onStreamDone();
15657
+ }, 4000);
15658
+ try {
15659
+ this.ws.send('stop');
15660
+ } catch (e) {
15661
+ this.onStreamDone();
15662
+ }
15663
+ },
15664
+ // 流式收尾(幂等):resultText已含最新partial,超时兜底也不丢字
15665
+ onStreamDone: function onStreamDone() {
15666
+ if (!this.streamWaitingDone) return;
15667
+ this.streamWaitingDone = false;
15668
+ this.closeStream();
15669
+ this.audioChunks = [];
15670
+ if (this.resultText.trim() !== '') {
15671
+ this.status = 'done';
15672
+ } else {
15673
+ this.status = 'error';
15674
+ this.errorText = this.$tx('ecmapp.wflowform.voiceNoSpeech', '未检测到语音,请重试。');
15675
+ }
15676
+ },
15677
+ closeStream: function closeStream() {
15678
+ this.stopPcmCapture();
15679
+ if (this.streamDoneTimer) {
15680
+ clearTimeout(this.streamDoneTimer);
15681
+ this.streamDoneTimer = null;
15682
+ }
15683
+ if (this.ws) {
15684
+ var ws = this.ws;
15685
+ this.ws = null;
15686
+ ws.onclose = null;
15687
+ try {
15688
+ ws.close();
15689
+ } catch (e) {
15690
+ // 已关闭时close抛错可忽略
15691
+ }
15692
+ }
15693
+ this.streamActive = false;
15694
+ this.streamWaitingDone = false;
15695
+ },
15307
15696
  releaseStream: function releaseStream() {
15308
15697
  if (this.stream) {
15309
15698
  this.stream.getTracks().forEach(function (track) {
@@ -15314,25 +15703,25 @@ var TRAILING_SILENCE_MS = 5000;
15314
15703
  },
15315
15704
  // 浏览器模式下SpeechRecognition不暴露音频流,单独取一路流用于波形绘制
15316
15705
  startVisualStream: function startVisualStream() {
15317
- var _this6 = this;
15706
+ var _this9 = this;
15318
15707
  if (!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia)) return;
15319
15708
  navigator.mediaDevices.getUserMedia({
15320
15709
  audio: true
15321
15710
  }).then(function (stream) {
15322
15711
  // 取流回来时录音可能已结束
15323
- if (_this6.status !== 'recording') {
15712
+ if (_this9.status !== 'recording') {
15324
15713
  stream.getTracks().forEach(function (track) {
15325
15714
  return track.stop();
15326
15715
  });
15327
15716
  return;
15328
15717
  }
15329
- _this6.visualStream = stream;
15330
- _this6.startWaveform(stream);
15718
+ _this9.visualStream = stream;
15719
+ _this9.startWaveform(stream);
15331
15720
  }).catch(function () {});
15332
15721
  },
15333
15722
  // 用AnalyserNode实时绘制录音波形柱状图,复用startRecord手势内创建的AudioContext
15334
15723
  startWaveform: function startWaveform(stream) {
15335
- var _this7 = this;
15724
+ var _this10 = this;
15336
15725
  var canvas = this.$refs.waveCanvas;
15337
15726
  var audioContext = this.audioContext;
15338
15727
  if (!audioContext || audioContext.state === 'closed' || !canvas) return;
@@ -15356,20 +15745,28 @@ var TRAILING_SILENCE_MS = 5000;
15356
15745
  var barWidth = (canvas.width - gap * (barCount - 1)) / barCount;
15357
15746
  var centerY = canvas.height / 2;
15358
15747
  var draw = function draw() {
15359
- if (!_this7.analyser) return;
15360
- _this7.waveRafId = requestAnimationFrame(draw);
15361
- _this7.analyser.getByteFrequencyData(dataArray);
15748
+ if (!_this10.analyser) return;
15749
+ _this10.waveRafId = requestAnimationFrame(draw);
15750
+ _this10.analyser.getByteFrequencyData(dataArray);
15362
15751
  // 顺带做人声检测,供静音自动结束判定
15363
15752
  var sum = 0;
15364
15753
  for (var i = 0; i < dataArray.length; i++) {
15365
15754
  sum += dataArray[i];
15366
15755
  }
15367
15756
  if (sum / dataArray.length > VOICE_AVG_THRESHOLD) {
15368
- _this7.lastVoiceAt = Date.now();
15369
- _this7.hasVoice = true;
15757
+ _this10.lastVoiceAt = Date.now();
15758
+ _this10.hasVoice = true;
15370
15759
  }
15371
15760
  ctx.clearRect(0, 0, canvas.width, canvas.height);
15372
- ctx.fillStyle = '#1989fa';
15761
+ // 波形颜色随皮肤切换:科技版霓虹青带辉光,基本版保持品牌蓝
15762
+ if (_this10.currentSkin === 'tech') {
15763
+ ctx.fillStyle = '#00e5ff';
15764
+ ctx.shadowColor = 'rgba(0, 229, 255, 0.8)';
15765
+ ctx.shadowBlur = 8 * dpr;
15766
+ } else {
15767
+ ctx.fillStyle = '#1989fa';
15768
+ ctx.shadowBlur = 0;
15769
+ }
15373
15770
  for (var _i = 0; _i < barCount; _i++) {
15374
15771
  var value = dataArray[Math.floor(_i * dataArray.length / barCount)] / 255;
15375
15772
  var barHeight = Math.max(2 * dpr, value * canvas.height);
@@ -15399,6 +15796,7 @@ var TRAILING_SILENCE_MS = 5000;
15399
15796
  // 关闭/取消时释放麦克风等资源
15400
15797
  releaseResources: function releaseResources() {
15401
15798
  this.stopTimer();
15799
+ this.closeStream();
15402
15800
  this.stopWaveform();
15403
15801
  if (this.recognition) {
15404
15802
  this.recognition.abort();
@@ -15423,9 +15821,9 @@ var TRAILING_SILENCE_MS = 5000;
15423
15821
  });
15424
15822
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=script&lang=js
15425
15823
  /* harmony default export */ var src_VoiceInputDialogvue_type_script_lang_js = (VoiceInputDialogvue_type_script_lang_js);
15426
- // 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/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=5924c680&prod&scoped=true&lang=scss
15427
- var VoiceInputDialogvue_type_style_index_0_id_5924c680_prod_scoped_true_lang_scss = __webpack_require__(2883);
15428
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=5924c680&prod&scoped=true&lang=scss
15824
+ // 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/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=813d3ba6&prod&scoped=true&lang=scss
15825
+ var VoiceInputDialogvue_type_style_index_0_id_813d3ba6_prod_scoped_true_lang_scss = __webpack_require__(7316);
15826
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=813d3ba6&prod&scoped=true&lang=scss
15429
15827
 
15430
15828
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue
15431
15829
 
@@ -15438,11 +15836,11 @@ var VoiceInputDialogvue_type_style_index_0_id_5924c680_prod_scoped_true_lang_scs
15438
15836
 
15439
15837
  var VoiceInputDialog_component = (0,componentNormalizer/* default */.A)(
15440
15838
  src_VoiceInputDialogvue_type_script_lang_js,
15441
- VoiceInputDialogvue_type_template_id_5924c680_scoped_true_render,
15442
- VoiceInputDialogvue_type_template_id_5924c680_scoped_true_staticRenderFns,
15839
+ VoiceInputDialogvue_type_template_id_813d3ba6_scoped_true_render,
15840
+ VoiceInputDialogvue_type_template_id_813d3ba6_scoped_true_staticRenderFns,
15443
15841
  false,
15444
15842
  null,
15445
- "5924c680",
15843
+ "813d3ba6",
15446
15844
  null
15447
15845
 
15448
15846
  )
@@ -16470,9 +16868,9 @@ var moment = __webpack_require__(5093);
16470
16868
  });
16471
16869
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=script&lang=js
16472
16870
  /* harmony default export */ var src_SubmitHandlevue_type_script_lang_js = (SubmitHandlevue_type_script_lang_js);
16473
- // 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/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=style&index=0&id=20bc806c&prod&scoped=true&lang=scss
16474
- var SubmitHandlevue_type_style_index_0_id_20bc806c_prod_scoped_true_lang_scss = __webpack_require__(1300);
16475
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=style&index=0&id=20bc806c&prod&scoped=true&lang=scss
16871
+ // 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/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=style&index=0&id=6bdfbd40&prod&scoped=true&lang=scss
16872
+ var SubmitHandlevue_type_style_index_0_id_6bdfbd40_prod_scoped_true_lang_scss = __webpack_require__(5294);
16873
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=style&index=0&id=6bdfbd40&prod&scoped=true&lang=scss
16476
16874
 
16477
16875
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue
16478
16876
 
@@ -16485,11 +16883,11 @@ var SubmitHandlevue_type_style_index_0_id_20bc806c_prod_scoped_true_lang_scss =
16485
16883
 
16486
16884
  var SubmitHandle_component = (0,componentNormalizer/* default */.A)(
16487
16885
  src_SubmitHandlevue_type_script_lang_js,
16488
- SubmitHandlevue_type_template_id_20bc806c_scoped_true_render,
16489
- SubmitHandlevue_type_template_id_20bc806c_scoped_true_staticRenderFns,
16886
+ SubmitHandlevue_type_template_id_6bdfbd40_scoped_true_render,
16887
+ SubmitHandlevue_type_template_id_6bdfbd40_scoped_true_staticRenderFns,
16490
16888
  false,
16491
16889
  null,
16492
- "20bc806c",
16890
+ "6bdfbd40",
16493
16891
  null
16494
16892
 
16495
16893
  )
@@ -19144,6 +19542,7 @@ var ShortcutProcessing_component = (0,componentNormalizer/* default */.A)(
19144
19542
 
19145
19543
 
19146
19544
 
19545
+
19147
19546
  // 为组件添加 install 方法,用于按需引入
19148
19547
  Attachment.install = function (Vue) {
19149
19548
  Vue.component(Attachment.name, Attachment);
@@ -19172,6 +19571,9 @@ WriteToReadIdea.install = function (Vue) {
19172
19571
  ShortcutProcessing.install = function (Vue) {
19173
19572
  Vue.component(ShortcutProcessing.name, ShortcutProcessing);
19174
19573
  };
19574
+ VoiceInputDialog.install = function (Vue) {
19575
+ Vue.component(VoiceInputDialog.name, VoiceInputDialog);
19576
+ };
19175
19577
  var Wflowform_Attachment = Attachment;
19176
19578
  var Wflowform_BodyFile = BodyFile;
19177
19579
  var Wflowform_HandleIdea = HandleIdea;
@@ -19181,6 +19583,7 @@ var Wflowform_SubmitDialog = SubmitDialog;
19181
19583
  var Wflowform_WfNodelogList = WfNodelogList;
19182
19584
  var Wflowform_WriteToReadIdea = WriteToReadIdea;
19183
19585
  var Wflowform_ShortcutProcessing = ShortcutProcessing;
19586
+ var Wflowform_VoiceInputDialog = VoiceInputDialog;
19184
19587
 
19185
19588
  /***/ }),
19186
19589
 
@@ -22293,7 +22696,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".van-switch-field[data-v-61ed46da]{pos
22293
22696
 
22294
22697
  /***/ }),
22295
22698
 
22296
- /***/ 2171:
22699
+ /***/ 5441:
22297
22700
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22298
22701
 
22299
22702
  "use strict";
@@ -22307,7 +22710,7 @@ __webpack_require__.r(__webpack_exports__);
22307
22710
 
22308
22711
  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()));
22309
22712
  // Module
22310
- ___CSS_LOADER_EXPORT___.push([module.id, ".van-textarea-field[data-v-7743d246]{position:relative}.van-textarea-field[data-v-7743d246] .van-field__label{width:90%!important}.van-textarea-field[data-v-7743d246]:after{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:\" \";pointer-events:none;right:0;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.richtext-content[data-v-7743d246]{width:100%;white-space:pre-wrap}.richtext-content[data-v-7743d246] img{-o-object-fit:contain;object-fit:contain;max-width:100%!important;height:auto!important}.richtext-content-hidden[data-v-7743d246]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.van-textarea-field[data-v-7743d246] .field-flSubject .richtext-content,.van-textarea-field[data-v-7743d246] .field-flSubject textarea.van-field__control{font-size:16px;font-weight:700}", ""]);
22713
+ ___CSS_LOADER_EXPORT___.push([module.id, ".van-textarea-field[data-v-27eb631a]{position:relative}.van-textarea-field[data-v-27eb631a] .van-field__label{width:90%!important}.van-textarea-field[data-v-27eb631a]:after{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:\" \";pointer-events:none;right:0;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.richtext-content[data-v-27eb631a]{width:100%;white-space:pre-wrap}.richtext-content[data-v-27eb631a] img{-o-object-fit:contain;object-fit:contain;max-width:100%!important;height:auto!important}.richtext-content-hidden[data-v-27eb631a]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.voice-input-entry[data-v-27eb631a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:6px 16px 10px;color:#1989fa;font-size:14px}.voice-input-entry .voice-input-entry-icon[data-v-27eb631a]{width:16px;height:16px;margin-right:4px}.voice-input-entry[data-v-27eb631a]:active{opacity:.7}.van-textarea-field[data-v-27eb631a] .field-flSubject .richtext-content,.van-textarea-field[data-v-27eb631a] .field-flSubject textarea.van-field__control{font-size:16px;font-weight:700}", ""]);
22311
22714
  // Exports
22312
22715
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
22313
22716
 
@@ -22635,7 +23038,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-02d89fca] .van-nav-bar__title{
22635
23038
 
22636
23039
  /***/ }),
22637
23040
 
22638
- /***/ 2659:
23041
+ /***/ 6149:
22639
23042
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22640
23043
 
22641
23044
  "use strict";
@@ -22649,7 +23052,7 @@ __webpack_require__.r(__webpack_exports__);
22649
23052
 
22650
23053
  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()));
22651
23054
  // Module
22652
- ___CSS_LOADER_EXPORT___.push([module.id, "#richtext[data-v-1c8100d7]{overflow-x:hidden;background:#fff;overflow-wrap:break-word;word-break:break-word}#richtext[data-v-1c8100d7] .w-e-toolbar{-ms-flex-wrap:wrap;flex-wrap:wrap;border:0!important;border-bottom:1px solid #eee!important}#richtext[data-v-1c8100d7] .w-e-toolbar .w-e-menu i{color:#333}#richtext[data-v-1c8100d7] .w-e-toolbar .w-e-droplist ul.w-e-list{max-height:150px;overflow-y:auto}#richtext[data-v-1c8100d7] .w-e-text-container{border:0!important;margin:5px}#richtext[data-v-1c8100d7] .w-e-text-container .w-e-text{padding:0;font-size:14px}#richtext[data-v-1c8100d7] .w-e-text-container .placeholder{left:0;top:0}", ""]);
23055
+ ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-entry[data-v-1847d5d1]{position:fixed;right:16px;bottom:76px;z-index:99;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:36px;padding:0 14px;border-radius:18px;background:#fff;color:#323233;font-size:13px;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.15);box-shadow:0 2px 8px rgba(0,0,0,.15);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.voice-input-entry .voice-input-entry-icon[data-v-1847d5d1]{width:16px;height:16px;margin-right:4px}.voice-input-entry[data-v-1847d5d1]:active{opacity:.8}#richtext[data-v-1847d5d1]{overflow-x:hidden;background:#fff;overflow-wrap:break-word;word-break:break-word}#richtext[data-v-1847d5d1] .w-e-toolbar{-ms-flex-wrap:wrap;flex-wrap:wrap;border:0!important;border-bottom:1px solid #eee!important}#richtext[data-v-1847d5d1] .w-e-toolbar .w-e-menu i{color:#333}#richtext[data-v-1847d5d1] .w-e-toolbar .w-e-droplist ul.w-e-list{max-height:150px;overflow-y:auto}#richtext[data-v-1847d5d1] .w-e-text-container{border:0!important;margin:5px}#richtext[data-v-1847d5d1] .w-e-text-container .w-e-text{padding:0;font-size:14px}#richtext[data-v-1847d5d1] .w-e-text-container .placeholder{left:0;top:0}", ""]);
22653
23056
  // Exports
22654
23057
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
22655
23058
 
@@ -22929,7 +23332,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".submit-dialog-container[data-v-9c230b
22929
23332
 
22930
23333
  /***/ }),
22931
23334
 
22932
- /***/ 106:
23335
+ /***/ 8632:
22933
23336
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22934
23337
 
22935
23338
  "use strict";
@@ -22948,14 +23351,14 @@ var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require
22948
23351
  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()));
22949
23352
  var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);
22950
23353
  // Module
22951
- ___CSS_LOADER_EXPORT___.push([module.id, ".submit-handle-container .idea-button-container .van-cell__value[data-v-20bc806c]{text-align:right}.submit-handle-container .idea-button-container .van-cell__value .van-button[data-v-20bc806c]{margin-right:0;margin-left:5px}.submit-handle-container .curIdea-filed[data-v-20bc806c] .van-cell__title,.submit-handle-container .curIdea-filed[data-v-20bc806c]:after{display:none}.submit-handle-container .idea-input-wrap[data-v-20bc806c]{position:relative}.submit-handle-container .idea-input-wrap[data-v-20bc806c] .curIdea-filed textarea{padding-right:30px}.submit-handle-container .idea-input-wrap .voice-input-btn[data-v-20bc806c]{position:absolute;right:12px;bottom:8px;z-index:2;width:28px;height:28px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;background-color:#f2f3f5;color:#646566}.submit-handle-container .idea-input-wrap .voice-input-btn .voice-input-icon[data-v-20bc806c]{width:16px;height:16px}.submit-handle-container .idea-input-wrap .voice-input-btn[data-v-20bc806c]:active{background-color:#ebedf0;color:#1989fa}.submit-handle-container .clearfix[data-v-20bc806c]:after{content:\".\";display:block;height:0;clear:both;visibility:hidden}.submit-handle-container[data-v-20bc806c] .van-radio-group .van-cell__title{font-weight:400!important}.submit-handle-container .van-wflow-operate-detail-cell[data-v-20bc806c]:after{border-top-width:0}.submit-handle-container .van-wflow-operate-detail-cell-path[data-v-20bc806c]:after{border-width:1px;-webkit-transform:scale(.5);transform:scale(.5)}.submit-handle-container[data-v-20bc806c] .tnLimit-container .van-field{width:50px;display:inline-block;padding:0}.submit-handle-container[data-v-20bc806c] .tnLimit-container .van-field .van-field__body input{text-align:center}.submit-handle-container[data-v-20bc806c] .tnLimit-container .van-field__body:after{color:#323233;content:attr(value-suffix);word-break:keep-all}.submit-handle-container .delete-icon[data-v-20bc806c]{display:-webkit-box;display:-ms-flexbox;display:flex;float:right}.submit-handle-container .delete-icon .van-icon[data-v-20bc806c]{line-height:24px;margin-left:5px;font-size:16px}.selectBox_title[data-v-20bc806c]{height:45px;line-height:45px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:14px}.selectBox_content[data-v-20bc806c],.selectBox_title[data-v-20bc806c]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 15px}.selectBox_content[data-v-20bc806c]{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap}.selectBox_content .selectBox_content_son[data-v-20bc806c]{border:1px solid #f1f1f1}.selectBox_content .selectBox_content_son[data-v-20bc806c],.selectBox_content .selectBox_content_son_change[data-v-20bc806c]{padding:4px;background:#f8fafb;font-size:14px;margin-bottom:10px!important;text-align:center;height:22px;line-height:22px;width:calc(25% - 17.5px);margin-right:10px}.selectBox_content .selectBox_content_son_change[data-v-20bc806c]{border:1px solid #3f88f1;background-image:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");background-repeat:no-repeat;background-size:15px 15px;background-position:100% 100%;color:#3f88f1}.selectBox_content_sonall[data-v-20bc806c]{white-space:nowrap;overflow:hidden;overflow-x:scroll;-webkit-overflow-scrolling:touch}.selectBox_content_sonall[data-v-20bc806c]:nth-child(4n){margin-right:0}.selectBox_content_sonall[data-v-20bc806c]::-webkit-scrollbar{display:none}.viewAllComments[data-v-20bc806c]{height:45px;line-height:45px;text-align:center;color:#b7b7b7;font-size:12px;background:#fff;display:block;width:100%}", ""]);
23354
+ ___CSS_LOADER_EXPORT___.push([module.id, ".submit-handle-container .idea-button-container .van-cell__value[data-v-6bdfbd40]{text-align:right}.submit-handle-container .idea-button-container .van-cell__value .van-button[data-v-6bdfbd40]{margin-right:0;margin-left:5px}.submit-handle-container .curIdea-filed[data-v-6bdfbd40] .van-cell__title,.submit-handle-container .curIdea-filed[data-v-6bdfbd40]:after{display:none}.submit-handle-container .idea-input-wrap[data-v-6bdfbd40]{position:relative}.submit-handle-container .idea-input-wrap[data-v-6bdfbd40] .curIdea-filed textarea{padding-right:30px}.submit-handle-container .idea-input-wrap .voice-input-btn[data-v-6bdfbd40]{position:absolute;right:12px;bottom:8px;z-index:2;width:28px;height:28px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;background-color:#f2f3f5;color:#646566}.submit-handle-container .idea-input-wrap .voice-input-btn .voice-input-icon[data-v-6bdfbd40]{width:16px;height:16px}.submit-handle-container .idea-input-wrap .voice-input-btn[data-v-6bdfbd40]:active{background-color:#ebedf0;color:#1989fa}.submit-handle-container .clearfix[data-v-6bdfbd40]:after{content:\".\";display:block;height:0;clear:both;visibility:hidden}.submit-handle-container[data-v-6bdfbd40] .van-radio-group .van-cell__title{font-weight:400!important}.submit-handle-container .van-wflow-operate-detail-cell[data-v-6bdfbd40]:after{border-top-width:0}.submit-handle-container .van-wflow-operate-detail-cell-path[data-v-6bdfbd40]:after{border-width:1px;-webkit-transform:scale(.5);transform:scale(.5)}.submit-handle-container[data-v-6bdfbd40] .tnLimit-container .van-field{width:50px;display:inline-block;padding:0}.submit-handle-container[data-v-6bdfbd40] .tnLimit-container .van-field .van-field__body input{text-align:center}.submit-handle-container[data-v-6bdfbd40] .tnLimit-container .van-field__body:after{color:#323233;content:attr(value-suffix);word-break:keep-all}.submit-handle-container .delete-icon[data-v-6bdfbd40]{display:-webkit-box;display:-ms-flexbox;display:flex;float:right}.submit-handle-container .delete-icon .van-icon[data-v-6bdfbd40]{line-height:24px;margin-left:5px;font-size:16px}.selectBox_title[data-v-6bdfbd40]{height:45px;line-height:45px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:14px}.selectBox_content[data-v-6bdfbd40],.selectBox_title[data-v-6bdfbd40]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 15px}.selectBox_content[data-v-6bdfbd40]{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap}.selectBox_content .selectBox_content_son[data-v-6bdfbd40]{border:1px solid #f1f1f1}.selectBox_content .selectBox_content_son[data-v-6bdfbd40],.selectBox_content .selectBox_content_son_change[data-v-6bdfbd40]{padding:4px;background:#f8fafb;font-size:14px;margin-bottom:10px!important;text-align:center;height:22px;line-height:22px;width:calc(25% - 17.5px);margin-right:10px}.selectBox_content .selectBox_content_son_change[data-v-6bdfbd40]{border:1px solid #3f88f1;background-image:url(" + ___CSS_LOADER_URL_REPLACEMENT_0___ + ");background-repeat:no-repeat;background-size:15px 15px;background-position:100% 100%;color:#3f88f1}.selectBox_content_sonall[data-v-6bdfbd40]{white-space:nowrap;overflow:hidden;overflow-x:scroll;-webkit-overflow-scrolling:touch}.selectBox_content_sonall[data-v-6bdfbd40]:nth-child(4n){margin-right:0}.selectBox_content_sonall[data-v-6bdfbd40]::-webkit-scrollbar{display:none}.viewAllComments[data-v-6bdfbd40]{height:45px;line-height:45px;text-align:center;color:#b7b7b7;font-size:12px;background:#fff;display:block;width:100%}", ""]);
22952
23355
  // Exports
22953
23356
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
22954
23357
 
22955
23358
 
22956
23359
  /***/ }),
22957
23360
 
22958
- /***/ 2053:
23361
+ /***/ 8162:
22959
23362
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22960
23363
 
22961
23364
  "use strict";
@@ -22969,7 +23372,7 @@ __webpack_require__.r(__webpack_exports__);
22969
23372
 
22970
23373
  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()));
22971
23374
  // Module
22972
- ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-popup[data-v-5924c680]{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.voice-input-popup .voice-popup-header[data-v-5924c680]{position:relative;height:48px;line-height:48px;text-align:center}.voice-input-popup .voice-popup-header .voice-popup-title[data-v-5924c680]{font-size:16px;font-weight:600;color:#323233}.voice-input-popup .voice-popup-header .voice-popup-close[data-v-5924c680]{position:absolute;right:16px;top:16px;font-size:16px;color:#c8c9cc}.voice-input-popup .voice-popup-body[data-v-5924c680]{padding:8px 16px 0;text-align:center}.voice-input-popup .voice-popup-body .voice-mic-btn[data-v-5924c680]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:64px;height:64px;border-radius:50%;background-color:#1989fa;color:#fff}.voice-input-popup .voice-popup-body .voice-mic-btn .voice-mic-icon[data-v-5924c680]{width:28px;height:28px}.voice-input-popup .voice-popup-body .voice-mic-btn.recording[data-v-5924c680]{background-color:#ee0a24;-webkit-animation:voice-breathe-5924c680 1.5s ease-out infinite;animation:voice-breathe-5924c680 1.5s ease-out infinite}.voice-input-popup .voice-popup-body .voice-mic-btn[data-v-5924c680] .van-loading{padding-top:0}.voice-input-popup .voice-popup-body .voice-status-text[data-v-5924c680]{margin-top:12px;font-size:13px;color:#646566}.voice-input-popup .voice-popup-body .voice-status-text.is-error[data-v-5924c680]{color:#ee0a24}.voice-input-popup .voice-popup-body .voice-wave-canvas[data-v-5924c680]{display:block;width:200px;height:32px;margin:8px auto 0}.voice-input-popup .voice-popup-body .voice-timer[data-v-5924c680]{margin-top:4px;font-size:13px;color:#969799}.voice-input-popup .voice-popup-body .voice-result-field[data-v-5924c680]{margin-top:12px;background-color:#f7f8fa;border-radius:8px}.voice-input-popup .voice-popup-footer[data-v-5924c680]{padding:12px 16px;text-align:right}.voice-input-popup .voice-popup-footer .van-button[data-v-5924c680]{margin-left:8px;min-width:80px}@-webkit-keyframes voice-breathe-5924c680{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}@keyframes voice-breathe-5924c680{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}", ""]);
23375
+ ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-popup[data-v-813d3ba6]{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.voice-input-popup .voice-popup-header[data-v-813d3ba6]{position:relative;height:48px;line-height:48px;text-align:center}.voice-input-popup .voice-popup-header .voice-popup-title[data-v-813d3ba6]{font-size:16px;font-weight:600;color:#323233}.voice-input-popup .voice-popup-header .voice-popup-close[data-v-813d3ba6]{position:absolute;right:16px;top:16px;font-size:16px;color:#c8c9cc}.voice-input-popup .voice-popup-body[data-v-813d3ba6]{padding:8px 16px 0;text-align:center}.voice-input-popup .voice-popup-body .voice-mic-btn[data-v-813d3ba6]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:64px;height:64px;border-radius:50%;background-color:#1989fa;color:#fff}.voice-input-popup .voice-popup-body .voice-mic-btn .voice-mic-icon[data-v-813d3ba6]{width:28px;height:28px}.voice-input-popup .voice-popup-body .voice-mic-btn.recording[data-v-813d3ba6]{background-color:#ee0a24;-webkit-animation:voice-breathe-813d3ba6 1.5s ease-out infinite;animation:voice-breathe-813d3ba6 1.5s ease-out infinite}.voice-input-popup .voice-popup-body .voice-mic-btn[data-v-813d3ba6] .van-loading{padding-top:0}.voice-input-popup .voice-popup-body .voice-status-text[data-v-813d3ba6]{margin-top:12px;font-size:13px;color:#646566}.voice-input-popup .voice-popup-body .voice-status-text.is-error[data-v-813d3ba6]{color:#ee0a24}.voice-input-popup .voice-popup-body .voice-wave-canvas[data-v-813d3ba6]{display:block;width:200px;height:32px;margin:8px auto 0}.voice-input-popup .voice-popup-body .voice-timer[data-v-813d3ba6]{margin-top:4px;font-size:13px;color:#969799}.voice-input-popup .voice-popup-body .voice-result-field[data-v-813d3ba6]{margin-top:12px;background-color:#f7f8fa;border-radius:8px}.voice-input-popup .voice-popup-footer[data-v-813d3ba6]{padding:12px 16px;text-align:right}.voice-input-popup .voice-popup-footer .van-button[data-v-813d3ba6]{margin-left:8px;min-width:80px}.voice-mic-wrap[data-v-813d3ba6]{position:relative;display:inline-block;width:64px;height:64px}.voice-mic-wrap .tech-ripple[data-v-813d3ba6]{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;border:1px solid rgba(0,229,255,.6);opacity:0;pointer-events:none}.voice-input-popup.skin-tech[data-v-813d3ba6]{background-image:linear-gradient(rgba(0,229,255,.045) 1px,transparent 0),linear-gradient(90deg,rgba(0,229,255,.045) 1px,transparent 0),radial-gradient(circle at 18% 0,rgba(0,229,255,.12),transparent 42%),radial-gradient(circle at 85% 100%,rgba(0,110,255,.12),transparent 45%),linear-gradient(160deg,#060d21,#0a1a3f 55%,#071026);background-size:24px 24px,24px 24px,100% 100%,100% 100%,100% 100%}.voice-input-popup.skin-tech .voice-popup-header[data-v-813d3ba6]{border-bottom:1px solid rgba(0,229,255,.15)}.voice-input-popup.skin-tech .voice-popup-header .voice-popup-title[data-v-813d3ba6]{color:#d8f4ff;letter-spacing:3px;text-shadow:0 0 10px rgba(0,229,255,.75)}.voice-input-popup.skin-tech .voice-popup-header .voice-popup-close[data-v-813d3ba6]{color:rgba(0,229,255,.6)}.voice-input-popup.skin-tech .voice-popup-body .voice-mic-btn[data-v-813d3ba6]{background:radial-gradient(circle at 30% 25%,#1a4a8a,#0a2547 72%);border:1.5px solid rgba(0,229,255,.7);color:#00e5ff;-webkit-box-shadow:0 0 20px rgba(0,229,255,.4),inset 0 0 15px rgba(0,229,255,.15);box-shadow:0 0 20px rgba(0,229,255,.4),inset 0 0 15px rgba(0,229,255,.15)}.voice-input-popup.skin-tech .voice-popup-body .voice-mic-btn.recording[data-v-813d3ba6]{background:radial-gradient(circle at 30% 25%,#8a1a3f,#470a20 72%);border-color:rgba(255,45,105,.85);color:#ff5c8a;-webkit-animation:tech-breathe-813d3ba6 1.5s ease-out infinite;animation:tech-breathe-813d3ba6 1.5s ease-out infinite}.voice-input-popup.skin-tech .voice-popup-body .voice-status-text[data-v-813d3ba6]{color:#8fd8ff;text-shadow:0 0 6px rgba(0,229,255,.3)}.voice-input-popup.skin-tech .voice-popup-body .voice-status-text.is-error[data-v-813d3ba6]{color:#ff5c8a;text-shadow:0 0 6px rgba(255,45,105,.3)}.voice-input-popup.skin-tech .voice-popup-body .voice-timer[data-v-813d3ba6]{color:#00e5ff;font-family:Courier New,Courier,monospace;letter-spacing:2px;text-shadow:0 0 8px rgba(0,229,255,.7)}.voice-input-popup.skin-tech .voice-popup-body .voice-result-field[data-v-813d3ba6]{background:rgba(6,25,55,.6);border:1px solid rgba(0,229,255,.35);-webkit-box-shadow:inset 0 0 12px rgba(0,229,255,.1);box-shadow:inset 0 0 12px rgba(0,229,255,.1)}.voice-input-popup.skin-tech .voice-popup-body .voice-result-field[data-v-813d3ba6] .van-field__control{color:#d8f4ff;caret-color:#00e5ff}.voice-input-popup.skin-tech .voice-popup-body .voice-result-field[data-v-813d3ba6] .van-field__control::-webkit-input-placeholder{color:rgba(143,216,255,.4)}.voice-input-popup.skin-tech .voice-popup-body .voice-result-field[data-v-813d3ba6] .van-field__control::-moz-placeholder{color:rgba(143,216,255,.4)}.voice-input-popup.skin-tech .voice-popup-body .voice-result-field[data-v-813d3ba6] .van-field__control::-ms-input-placeholder{color:rgba(143,216,255,.4)}.voice-input-popup.skin-tech .voice-popup-body .voice-result-field[data-v-813d3ba6] .van-field__control::placeholder{color:rgba(143,216,255,.4)}.voice-input-popup.skin-tech .voice-popup-footer .van-button--default[data-v-813d3ba6]{background:transparent;color:#8fd8ff}.voice-input-popup.skin-tech .voice-popup-footer .van-button--default[data-v-813d3ba6]:after{border-color:rgba(0,229,255,.4)}.voice-input-popup.skin-tech .voice-popup-footer .van-button--info[data-v-813d3ba6]{background:-webkit-gradient(linear,left top,right top,from(#00b8d4),to(#00e5ff));background:linear-gradient(90deg,#00b8d4,#00e5ff);color:#04122b;-webkit-box-shadow:0 0 12px rgba(0,229,255,.45);box-shadow:0 0 12px rgba(0,229,255,.45)}.voice-input-popup.skin-tech .voice-popup-footer .van-button--info[data-v-813d3ba6]:after{border-width:0}.voice-input-popup.skin-tech .voice-popup-footer .van-button--info.van-button--disabled[data-v-813d3ba6]{opacity:.45}.voice-input-popup.skin-tech .voice-mic-wrap.recording .tech-ripple[data-v-813d3ba6]{border-color:rgba(255,45,105,.7);-webkit-animation:tech-ripple-813d3ba6 2s ease-out infinite;animation:tech-ripple-813d3ba6 2s ease-out infinite}.voice-input-popup.skin-tech .voice-mic-wrap.recording .tech-ripple-2[data-v-813d3ba6]{-webkit-animation-delay:.6s;animation-delay:.6s}.voice-input-popup.skin-tech .voice-mic-wrap.recording .tech-ripple-3[data-v-813d3ba6]{-webkit-animation-delay:1.2s;animation-delay:1.2s}@-webkit-keyframes tech-ripple-813d3ba6{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.7}to{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}@keyframes tech-ripple-813d3ba6{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.7}to{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}@-webkit-keyframes tech-breathe-813d3ba6{0%{-webkit-box-shadow:0 0 24px rgba(255,45,105,.55),inset 0 0 15px rgba(255,45,105,.2),0 0 0 0 rgba(255,45,105,.45);box-shadow:0 0 24px rgba(255,45,105,.55),inset 0 0 15px rgba(255,45,105,.2),0 0 0 0 rgba(255,45,105,.45)}to{-webkit-box-shadow:0 0 24px rgba(255,45,105,.55),inset 0 0 15px rgba(255,45,105,.2),0 0 0 18px rgba(255,45,105,0);box-shadow:0 0 24px rgba(255,45,105,.55),inset 0 0 15px rgba(255,45,105,.2),0 0 0 18px rgba(255,45,105,0)}}@keyframes tech-breathe-813d3ba6{0%{-webkit-box-shadow:0 0 24px rgba(255,45,105,.55),inset 0 0 15px rgba(255,45,105,.2),0 0 0 0 rgba(255,45,105,.45);box-shadow:0 0 24px rgba(255,45,105,.55),inset 0 0 15px rgba(255,45,105,.2),0 0 0 0 rgba(255,45,105,.45)}to{-webkit-box-shadow:0 0 24px rgba(255,45,105,.55),inset 0 0 15px rgba(255,45,105,.2),0 0 0 18px rgba(255,45,105,0);box-shadow:0 0 24px rgba(255,45,105,.55),inset 0 0 15px rgba(255,45,105,.2),0 0 0 18px rgba(255,45,105,0)}}@-webkit-keyframes voice-breathe-813d3ba6{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}@keyframes voice-breathe-813d3ba6{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}", ""]);
22973
23376
  // Exports
22974
23377
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
22975
23378
 
@@ -23039,7 +23442,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".loading[data-v-69610664]{margin-top:1
23039
23442
 
23040
23443
  /***/ }),
23041
23444
 
23042
- /***/ 4602:
23445
+ /***/ 7687:
23043
23446
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
23044
23447
 
23045
23448
  "use strict";
@@ -23053,7 +23456,7 @@ __webpack_require__.r(__webpack_exports__);
23053
23456
 
23054
23457
  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()));
23055
23458
  // Module
23056
- ___CSS_LOADER_EXPORT___.push([module.id, ".icon-dialog[data-v-76a1a43d] .el-dialog__body{height:650px;overflow-y:auto;padding:0 0 20px 0}.icon-dialog[data-v-76a1a43d] .el-dialog__body .el-tabs--top{margin-top:0}", ""]);
23459
+ ___CSS_LOADER_EXPORT___.push([module.id, ".icon-dialog[data-v-3ebd0a76] .el-dialog__body{height:650px;overflow-y:auto;padding:0 0 20px 0}.icon-dialog[data-v-3ebd0a76] .el-dialog__body .el-tabs--top{margin-top:0}", ""]);
23057
23460
  // Exports
23058
23461
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
23059
23462
 
@@ -50121,19 +50524,19 @@ var update = add("49a7cd0a", content, true, {"sourceMap":false,"shadowMode":fals
50121
50524
 
50122
50525
  /***/ }),
50123
50526
 
50124
- /***/ 1197:
50527
+ /***/ 8619:
50125
50528
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
50126
50529
 
50127
50530
  // style-loader: Adds some css to the DOM by adding a <style> tag
50128
50531
 
50129
50532
  // load the styles
50130
- var content = __webpack_require__(2171);
50533
+ var content = __webpack_require__(5441);
50131
50534
  if(content.__esModule) content = content.default;
50132
50535
  if(typeof content === 'string') content = [[module.id, content, '']];
50133
50536
  if(content.locals) module.exports = content.locals;
50134
50537
  // add the styles to the DOM
50135
50538
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
50136
- var update = add("72cd3eb0", content, true, {"sourceMap":false,"shadowMode":false});
50539
+ var update = add("44739768", content, true, {"sourceMap":false,"shadowMode":false});
50137
50540
 
50138
50541
  /***/ }),
50139
50542
 
@@ -50377,19 +50780,19 @@ var update = add("1d9a7e4b", content, true, {"sourceMap":false,"shadowMode":fals
50377
50780
 
50378
50781
  /***/ }),
50379
50782
 
50380
- /***/ 5813:
50783
+ /***/ 7131:
50381
50784
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
50382
50785
 
50383
50786
  // style-loader: Adds some css to the DOM by adding a <style> tag
50384
50787
 
50385
50788
  // load the styles
50386
- var content = __webpack_require__(2659);
50789
+ var content = __webpack_require__(6149);
50387
50790
  if(content.__esModule) content = content.default;
50388
50791
  if(typeof content === 'string') content = [[module.id, content, '']];
50389
50792
  if(content.locals) module.exports = content.locals;
50390
50793
  // add the styles to the DOM
50391
50794
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
50392
- var update = add("10123288", content, true, {"sourceMap":false,"shadowMode":false});
50795
+ var update = add("d8c5dc34", content, true, {"sourceMap":false,"shadowMode":false});
50393
50796
 
50394
50797
  /***/ }),
50395
50798
 
@@ -50601,35 +51004,35 @@ var update = add("780551c7", content, true, {"sourceMap":false,"shadowMode":fals
50601
51004
 
50602
51005
  /***/ }),
50603
51006
 
50604
- /***/ 1300:
51007
+ /***/ 5294:
50605
51008
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
50606
51009
 
50607
51010
  // style-loader: Adds some css to the DOM by adding a <style> tag
50608
51011
 
50609
51012
  // load the styles
50610
- var content = __webpack_require__(106);
51013
+ var content = __webpack_require__(8632);
50611
51014
  if(content.__esModule) content = content.default;
50612
51015
  if(typeof content === 'string') content = [[module.id, content, '']];
50613
51016
  if(content.locals) module.exports = content.locals;
50614
51017
  // add the styles to the DOM
50615
51018
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
50616
- var update = add("57dd6872", content, true, {"sourceMap":false,"shadowMode":false});
51019
+ var update = add("6665940f", content, true, {"sourceMap":false,"shadowMode":false});
50617
51020
 
50618
51021
  /***/ }),
50619
51022
 
50620
- /***/ 2883:
51023
+ /***/ 7316:
50621
51024
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
50622
51025
 
50623
51026
  // style-loader: Adds some css to the DOM by adding a <style> tag
50624
51027
 
50625
51028
  // load the styles
50626
- var content = __webpack_require__(2053);
51029
+ var content = __webpack_require__(8162);
50627
51030
  if(content.__esModule) content = content.default;
50628
51031
  if(typeof content === 'string') content = [[module.id, content, '']];
50629
51032
  if(content.locals) module.exports = content.locals;
50630
51033
  // add the styles to the DOM
50631
51034
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
50632
- var update = add("470e1098", content, true, {"sourceMap":false,"shadowMode":false});
51035
+ var update = add("d301d61e", content, true, {"sourceMap":false,"shadowMode":false});
50633
51036
 
50634
51037
  /***/ }),
50635
51038
 
@@ -50681,19 +51084,19 @@ var update = add("e368663c", content, true, {"sourceMap":false,"shadowMode":fals
50681
51084
 
50682
51085
  /***/ }),
50683
51086
 
50684
- /***/ 1908:
51087
+ /***/ 3381:
50685
51088
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
50686
51089
 
50687
51090
  // style-loader: Adds some css to the DOM by adding a <style> tag
50688
51091
 
50689
51092
  // load the styles
50690
- var content = __webpack_require__(4602);
51093
+ var content = __webpack_require__(7687);
50691
51094
  if(content.__esModule) content = content.default;
50692
51095
  if(typeof content === 'string') content = [[module.id, content, '']];
50693
51096
  if(content.locals) module.exports = content.locals;
50694
51097
  // add the styles to the DOM
50695
51098
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
50696
- var update = add("bfc5a162", content, true, {"sourceMap":false,"shadowMode":false});
51099
+ var update = add("b1008540", content, true, {"sourceMap":false,"shadowMode":false});
50697
51100
 
50698
51101
  /***/ }),
50699
51102
 
@@ -52262,7 +52665,7 @@ webpackContext.id = 2397;
52262
52665
 
52263
52666
  var map = {
52264
52667
  "./app.js": 3299,
52265
- "./route.js": 6914,
52668
+ "./route.js": 249,
52266
52669
  "./settings.js": 8183,
52267
52670
  "./tagsView.js": 314
52268
52671
  };
@@ -56566,7 +56969,7 @@ service.interceptors.response.use(function (response) {
56566
56969
  errmsg = error.response.data.message;
56567
56970
  }
56568
56971
  if (window.vType === 'wapp') {
56569
- var ignoreUrls = ['login', 'getUserRolePermissions', 'getUiStyleConfig', 'queryUiFontSize', 'homepage/allm'];
56972
+ var ignoreUrls = ['login', 'getUserRolePermissions', 'getUiStyleConfig', 'queryUiFontSize', 'homepage/allm', 'getLastMsgCount'];
56570
56973
  if (!ignoreUrls.some(function (u) {
56571
56974
  return error.config.url.toLowerCase().indexOf(u.toLocaleLowerCase()) !== -1;
56572
56975
  })) {
@@ -70922,8 +71325,8 @@ var SwitchField_component = (0,componentNormalizer/* default */.A)(
70922
71325
  )
70923
71326
 
70924
71327
  /* harmony default export */ var SwitchField = (SwitchField_component.exports);
70925
- ;// 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/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=template&id=7743d246&scoped=true
70926
- var TextareaFieldvue_type_template_id_7743d246_scoped_true_render = function render() {
71328
+ ;// 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/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=template&id=27eb631a&scoped=true
71329
+ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function render() {
70927
71330
  var _vm = this,
70928
71331
  _c = _vm._self._c;
70929
71332
  return _vm.isShowField ? _c('div', {
@@ -71016,9 +71419,42 @@ var TextareaFieldvue_type_template_id_7743d246_scoped_true_render = function ren
71016
71419
  return _vm.showTextContent(_vm.showType);
71017
71420
  }
71018
71421
  }
71019
- }, [_vm._v(_vm._s(_vm.textName))])]) : _vm._e()], 1) : _vm._e();
71422
+ }, [_vm._v(_vm._s(_vm.textName))])]) : _vm._e(), _vm.voiceInputEnabled ? _c('div', {
71423
+ staticClass: "voice-input-entry",
71424
+ on: {
71425
+ "click": function click($event) {
71426
+ $event.stopPropagation();
71427
+ return _vm.openVoiceDialog.apply(null, arguments);
71428
+ }
71429
+ }
71430
+ }, [_c('svg', {
71431
+ staticClass: "voice-input-entry-icon",
71432
+ attrs: {
71433
+ "viewBox": "0 0 1024 1024",
71434
+ "fill": "currentColor",
71435
+ "aria-hidden": "true"
71436
+ }
71437
+ }, [_c('path', {
71438
+ attrs: {
71439
+ "d": "M512 640c88.4 0 160-71.6 160-160V224c0-88.4-71.6-160-160-160S352 135.6 352 224v256c0 88.4 71.6 160 160 160z"
71440
+ }
71441
+ }), _c('path', {
71442
+ attrs: {
71443
+ "d": "M768 480c0 141.4-114.6 256-256 256S256 621.4 256 480h-64c0 163.9 123.3 299 288 318.4V896H352v64h320v-64H544v-97.6C708.7 779 832 643.9 832 480h-64z"
71444
+ }
71445
+ })]), _c('span', [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceInput', '语音输入')))])]) : _vm._e(), _c('VoiceInputDialog', {
71446
+ attrs: {
71447
+ "visible": _vm.voiceDialogVisible
71448
+ },
71449
+ on: {
71450
+ "update:visible": function updateVisible($event) {
71451
+ _vm.voiceDialogVisible = $event;
71452
+ },
71453
+ "confirm": _vm.onVoiceConfirm
71454
+ }
71455
+ })], 1) : _vm._e();
71020
71456
  };
71021
- var TextareaFieldvue_type_template_id_7743d246_scoped_true_staticRenderFns = [];
71457
+ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_staticRenderFns = [];
71022
71458
 
71023
71459
  ;// 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/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=script&lang=js
71024
71460
  function TextareaFieldvue_type_script_lang_js_typeof(o) { "@babel/helpers - typeof"; return TextareaFieldvue_type_script_lang_js_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TextareaFieldvue_type_script_lang_js_typeof(o); }
@@ -71083,6 +71519,10 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
71083
71519
  autosize: {
71084
71520
  type: Boolean,
71085
71521
  default: true
71522
+ },
71523
+ voiceInput: {
71524
+ type: Boolean,
71525
+ default: false
71086
71526
  }
71087
71527
  },
71088
71528
  data: function data() {
@@ -71095,10 +71535,15 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
71095
71535
  maxLength: null,
71096
71536
  updateField: false,
71097
71537
  inputValue: '',
71098
- nodeFieldReadOnly: false
71538
+ nodeFieldReadOnly: false,
71539
+ voiceDialogVisible: false
71099
71540
  };
71100
71541
  },
71101
71542
  computed: TextareaFieldvue_type_script_lang_js_objectSpread(TextareaFieldvue_type_script_lang_js_objectSpread({}, (0,vuex_esm/* mapGetters */.L8)(['loginUser'])), {}, {
71543
+ // 语音输入按钮显示条件:voice-input属性为true、字段可编辑且非元素级只读
71544
+ voiceInputEnabled: function voiceInputEnabled() {
71545
+ return this.voiceInput && !this.readonly && !this.nodeFieldReadOnly && this.elementReadonly !== 1;
71546
+ },
71102
71547
  optionGenerateUrl: function optionGenerateUrl() {
71103
71548
  var _this2 = this;
71104
71549
  var url = this.field.optionGenerateUrl;
@@ -71412,6 +71857,15 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
71412
71857
  _this6.updateField = false;
71413
71858
  });
71414
71859
  },
71860
+ // 打开语音输入弹窗
71861
+ openVoiceDialog: function openVoiceDialog() {
71862
+ this.voiceDialogVisible = true;
71863
+ },
71864
+ // 语音识别完成回调:识别文本追加到现有内容末尾,同步更新字段值
71865
+ onVoiceConfirm: function onVoiceConfirm(text) {
71866
+ this.inputValue = this.inputValue ? this.inputValue + text : text;
71867
+ this.setFieldValue(this.inputValue);
71868
+ },
71415
71869
  getFieldValue: function getFieldValue() {
71416
71870
  if (this.model.split('.').length > 1) {
71417
71871
  if (TextareaFieldvue_type_script_lang_js_typeof(this.vo[this.model.split('.')[0]]) === 'object' && this.vo[this.model.split('.')[0]] != null) {
@@ -71439,9 +71893,9 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
71439
71893
  });
71440
71894
  ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=script&lang=js
71441
71895
  /* harmony default export */ var FormField_TextareaFieldvue_type_script_lang_js = (TextareaFieldvue_type_script_lang_js);
71442
- // 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/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=style&index=0&id=7743d246&prod&scoped=true&lang=scss
71443
- var TextareaFieldvue_type_style_index_0_id_7743d246_prod_scoped_true_lang_scss = __webpack_require__(1197);
71444
- ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=style&index=0&id=7743d246&prod&scoped=true&lang=scss
71896
+ // 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/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=style&index=0&id=27eb631a&prod&scoped=true&lang=scss
71897
+ var TextareaFieldvue_type_style_index_0_id_27eb631a_prod_scoped_true_lang_scss = __webpack_require__(8619);
71898
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=style&index=0&id=27eb631a&prod&scoped=true&lang=scss
71445
71899
 
71446
71900
  ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue
71447
71901
 
@@ -71454,11 +71908,11 @@ var TextareaFieldvue_type_style_index_0_id_7743d246_prod_scoped_true_lang_scss =
71454
71908
 
71455
71909
  var TextareaField_component = (0,componentNormalizer/* default */.A)(
71456
71910
  FormField_TextareaFieldvue_type_script_lang_js,
71457
- TextareaFieldvue_type_template_id_7743d246_scoped_true_render,
71458
- TextareaFieldvue_type_template_id_7743d246_scoped_true_staticRenderFns,
71911
+ TextareaFieldvue_type_template_id_27eb631a_scoped_true_render,
71912
+ TextareaFieldvue_type_template_id_27eb631a_scoped_true_staticRenderFns,
71459
71913
  false,
71460
71914
  null,
71461
- "7743d246",
71915
+ "27eb631a",
71462
71916
  null
71463
71917
 
71464
71918
  )
@@ -72948,6 +73402,1766 @@ permission.install = permission_install;
72948
73402
 
72949
73403
 
72950
73404
  external_commonjs_vue_commonjs2_vue_root_Vue_default().use(Directive_permission);
73405
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
73406
+ function _extends() {
73407
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
73408
+ for (var e = 1; e < arguments.length; e++) {
73409
+ var t = arguments[e];
73410
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
73411
+ }
73412
+ return n;
73413
+ }, _extends.apply(null, arguments);
73414
+ }
73415
+
73416
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/create/bem.js
73417
+ /**
73418
+ * bem helper
73419
+ * b() // 'button'
73420
+ * b('text') // 'button__text'
73421
+ * b({ disabled }) // 'button button--disabled'
73422
+ * b('text', { disabled }) // 'button__text button__text--disabled'
73423
+ * b(['disabled', 'primary']) // 'button button--disabled button--primary'
73424
+ */
73425
+ function gen(name, mods) {
73426
+ if (!mods) {
73427
+ return '';
73428
+ }
73429
+
73430
+ if (typeof mods === 'string') {
73431
+ return " " + name + "--" + mods;
73432
+ }
73433
+
73434
+ if (Array.isArray(mods)) {
73435
+ return mods.reduce(function (ret, item) {
73436
+ return ret + gen(name, item);
73437
+ }, '');
73438
+ }
73439
+
73440
+ return Object.keys(mods).reduce(function (ret, key) {
73441
+ return ret + (mods[key] ? gen(name, key) : '');
73442
+ }, '');
73443
+ }
73444
+
73445
+ function createBEM(name) {
73446
+ return function (el, mods) {
73447
+ if (el && typeof el !== 'string') {
73448
+ mods = el;
73449
+ el = '';
73450
+ }
73451
+
73452
+ el = el ? name + "__" + el : name;
73453
+ return "" + el + gen(el, mods);
73454
+ };
73455
+ }
73456
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/index.js
73457
+
73458
+
73459
+
73460
+ var utils_inBrowser = typeof window !== 'undefined';
73461
+ var isServer = (external_commonjs_vue_commonjs2_vue_root_Vue_default()).prototype.$isServer; // eslint-disable-next-line @typescript-eslint/no-empty-function
73462
+
73463
+ function utils_noop() {}
73464
+ function isDef(val) {
73465
+ return val !== undefined && val !== null;
73466
+ }
73467
+ function utils_isFunction(val) {
73468
+ return typeof val === 'function';
73469
+ }
73470
+ function utils_isObject(val) {
73471
+ return val !== null && typeof val === 'object';
73472
+ }
73473
+ function isPromise(val) {
73474
+ return utils_isObject(val) && utils_isFunction(val.then) && utils_isFunction(val.catch);
73475
+ }
73476
+ function get(object, path) {
73477
+ var keys = path.split('.');
73478
+ var result = object;
73479
+ keys.forEach(function (key) {
73480
+ var _result$key;
73481
+
73482
+ result = utils_isObject(result) ? (_result$key = result[key]) != null ? _result$key : '' : '';
73483
+ });
73484
+ return result;
73485
+ }
73486
+ /**
73487
+ * Checks if `value` is an empty object, collection, map, or set.
73488
+ *
73489
+ * Objects are considered empty if they have no own enumerable string keyed
73490
+ * properties.
73491
+ *
73492
+ * Array-like values such as `arguments` objects, arrays, buffers, strings, or
73493
+ * jQuery-like collections are considered empty if they have a `length` of `0`.
73494
+ * Similarly, maps and sets are considered empty if they have a `size` of `0`.
73495
+ *
73496
+ * @function isEmpty
73497
+ * @param {*} value The value to check.
73498
+ * @returns {boolean} Returns `true` if `value` is empty, else `false`.
73499
+ * @example
73500
+ *
73501
+ * _.isEmpty(null);
73502
+ * // => true
73503
+ *
73504
+ * _.isEmpty(true);
73505
+ * // => true
73506
+ *
73507
+ * _.isEmpty(1);
73508
+ * // => true
73509
+ *
73510
+ * _.isEmpty([1, 2, 3]);
73511
+ * // => false
73512
+ *
73513
+ * _.isEmpty({ 'a': 1 });
73514
+ * // => false
73515
+ */
73516
+
73517
+ function isEmpty(value) {
73518
+ if (value == null) {
73519
+ return true;
73520
+ }
73521
+
73522
+ if (typeof value !== 'object') {
73523
+ return true;
73524
+ }
73525
+
73526
+ return Object.keys(value).length === 0;
73527
+ }
73528
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/format/string.js
73529
+ var camelizeRE = /-(\w)/g;
73530
+ function camelize(str) {
73531
+ return str.replace(camelizeRE, function (_, c) {
73532
+ return c.toUpperCase();
73533
+ });
73534
+ }
73535
+ function padZero(num, targetLength) {
73536
+ if (targetLength === void 0) {
73537
+ targetLength = 2;
73538
+ }
73539
+
73540
+ var str = num + '';
73541
+
73542
+ while (str.length < targetLength) {
73543
+ str = '0' + str;
73544
+ }
73545
+
73546
+ return str;
73547
+ }
73548
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/mixins/slots.js
73549
+ /**
73550
+ * Use scopedSlots in Vue 2.6+
73551
+ * downgrade to slots in lower version
73552
+ */
73553
+ var SlotsMixin = {
73554
+ methods: {
73555
+ slots: function slots(name, props) {
73556
+ if (name === void 0) {
73557
+ name = 'default';
73558
+ }
73559
+
73560
+ var $slots = this.$slots,
73561
+ $scopedSlots = this.$scopedSlots;
73562
+ var scopedSlot = $scopedSlots[name];
73563
+
73564
+ if (scopedSlot) {
73565
+ return scopedSlot(props);
73566
+ }
73567
+
73568
+ return $slots[name];
73569
+ }
73570
+ }
73571
+ };
73572
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/create/component.js
73573
+ /**
73574
+ * Create a basic component with common options
73575
+ */
73576
+
73577
+
73578
+
73579
+
73580
+
73581
+
73582
+ function component_install(Vue) {
73583
+ var name = this.name;
73584
+ Vue.component(name, this);
73585
+ Vue.component(camelize("-" + name), this);
73586
+ } // unify slots & scopedSlots
73587
+
73588
+
73589
+ function unifySlots(context) {
73590
+ // use data.scopedSlots in lower Vue version
73591
+ var scopedSlots = context.scopedSlots || context.data.scopedSlots || {};
73592
+ var slots = context.slots();
73593
+ Object.keys(slots).forEach(function (key) {
73594
+ if (!scopedSlots[key]) {
73595
+ scopedSlots[key] = function () {
73596
+ return slots[key];
73597
+ };
73598
+ }
73599
+ });
73600
+ return scopedSlots;
73601
+ } // should be removed after Vue 3
73602
+
73603
+ function transformFunctionComponent(pure) {
73604
+ return {
73605
+ functional: true,
73606
+ props: pure.props,
73607
+ model: pure.model,
73608
+ render: function render(h, context) {
73609
+ return pure(h, context.props, unifySlots(context), context);
73610
+ }
73611
+ };
73612
+ }
73613
+
73614
+ function createComponent(name) {
73615
+ return function (sfc) {
73616
+ if (utils_isFunction(sfc)) {
73617
+ sfc = transformFunctionComponent(sfc);
73618
+ }
73619
+
73620
+ if (!sfc.functional) {
73621
+ sfc.mixins = sfc.mixins || [];
73622
+ sfc.mixins.push(SlotsMixin);
73623
+ }
73624
+
73625
+ sfc.name = name;
73626
+ sfc.install = component_install;
73627
+ return sfc;
73628
+ };
73629
+ }
73630
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/deep-assign.js
73631
+
73632
+ var deep_assign_hasOwnProperty = Object.prototype.hasOwnProperty;
73633
+
73634
+ function assignKey(to, from, key) {
73635
+ var val = from[key];
73636
+
73637
+ if (!isDef(val)) {
73638
+ return;
73639
+ }
73640
+
73641
+ if (!deep_assign_hasOwnProperty.call(to, key) || !utils_isObject(val)) {
73642
+ to[key] = val;
73643
+ } else {
73644
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
73645
+ to[key] = deepAssign(Object(to[key]), from[key]);
73646
+ }
73647
+ }
73648
+
73649
+ function deepAssign(to, from) {
73650
+ Object.keys(from).forEach(function (key) {
73651
+ assignKey(to, from, key);
73652
+ });
73653
+ return to;
73654
+ }
73655
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/locale/lang/zh-CN.js
73656
+ /* harmony default export */ var zh_CN = ({
73657
+ name: '姓名',
73658
+ tel: '电话',
73659
+ save: '保存',
73660
+ confirm: '确认',
73661
+ cancel: '取消',
73662
+ delete: '删除',
73663
+ complete: '完成',
73664
+ loading: '加载中...',
73665
+ telEmpty: '请填写电话',
73666
+ nameEmpty: '请填写姓名',
73667
+ nameInvalid: '请输入正确的姓名',
73668
+ confirmDelete: '确定要删除吗',
73669
+ telInvalid: '请输入正确的手机号',
73670
+ vanCalendar: {
73671
+ end: '结束',
73672
+ start: '开始',
73673
+ title: '日期选择',
73674
+ confirm: '确定',
73675
+ startEnd: '开始/结束',
73676
+ weekdays: ['日', '一', '二', '三', '四', '五', '六'],
73677
+ monthTitle: function monthTitle(year, month) {
73678
+ return year + "\u5E74" + month + "\u6708";
73679
+ },
73680
+ rangePrompt: function rangePrompt(maxRange) {
73681
+ return "\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 " + maxRange + " \u5929";
73682
+ }
73683
+ },
73684
+ vanCascader: {
73685
+ select: '请选择'
73686
+ },
73687
+ vanContactCard: {
73688
+ addText: '添加联系人'
73689
+ },
73690
+ vanContactList: {
73691
+ addText: '新建联系人'
73692
+ },
73693
+ vanPagination: {
73694
+ prev: '上一页',
73695
+ next: '下一页'
73696
+ },
73697
+ vanPullRefresh: {
73698
+ pulling: '下拉即可刷新...',
73699
+ loosing: '释放即可刷新...'
73700
+ },
73701
+ vanSubmitBar: {
73702
+ label: '合计:'
73703
+ },
73704
+ vanCoupon: {
73705
+ unlimited: '无使用门槛',
73706
+ discount: function discount(_discount) {
73707
+ return _discount + "\u6298";
73708
+ },
73709
+ condition: function condition(_condition) {
73710
+ return "\u6EE1" + _condition + "\u5143\u53EF\u7528";
73711
+ }
73712
+ },
73713
+ vanCouponCell: {
73714
+ title: '优惠券',
73715
+ tips: '暂无可用',
73716
+ count: function count(_count) {
73717
+ return _count + "\u5F20\u53EF\u7528";
73718
+ }
73719
+ },
73720
+ vanCouponList: {
73721
+ empty: '暂无优惠券',
73722
+ exchange: '兑换',
73723
+ close: '不使用优惠券',
73724
+ enable: '可用',
73725
+ disabled: '不可用',
73726
+ placeholder: '请输入优惠码'
73727
+ },
73728
+ vanAddressEdit: {
73729
+ area: '地区',
73730
+ postal: '邮政编码',
73731
+ areaEmpty: '请选择地区',
73732
+ addressEmpty: '请填写详细地址',
73733
+ postalEmpty: '邮政编码格式不正确',
73734
+ defaultAddress: '设为默认收货地址',
73735
+ telPlaceholder: '收货人手机号',
73736
+ namePlaceholder: '收货人姓名',
73737
+ areaPlaceholder: '选择省 / 市 / 区'
73738
+ },
73739
+ vanAddressEditDetail: {
73740
+ label: '详细地址',
73741
+ placeholder: '街道门牌、楼层房间号等信息'
73742
+ },
73743
+ vanAddressList: {
73744
+ add: '新增地址'
73745
+ }
73746
+ });
73747
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/locale/index.js
73748
+
73749
+
73750
+
73751
+ var proto = (external_commonjs_vue_commonjs2_vue_root_Vue_default()).prototype;
73752
+ var defineReactive = (external_commonjs_vue_commonjs2_vue_root_Vue_default()).util.defineReactive;
73753
+ defineReactive(proto, '$vantLang', 'zh-CN');
73754
+ defineReactive(proto, '$vantMessages', {
73755
+ 'zh-CN': zh_CN
73756
+ });
73757
+ /* harmony default export */ var locale = ({
73758
+ messages: function messages() {
73759
+ return proto.$vantMessages[proto.$vantLang];
73760
+ },
73761
+ use: function use(lang, messages) {
73762
+ var _this$add;
73763
+
73764
+ proto.$vantLang = lang;
73765
+ this.add((_this$add = {}, _this$add[lang] = messages, _this$add));
73766
+ },
73767
+ add: function add(messages) {
73768
+ if (messages === void 0) {
73769
+ messages = {};
73770
+ }
73771
+
73772
+ deepAssign(proto.$vantMessages, messages);
73773
+ }
73774
+ });
73775
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/create/i18n.js
73776
+
73777
+
73778
+
73779
+ function createI18N(name) {
73780
+ var prefix = camelize(name) + '.';
73781
+ return function (path) {
73782
+ var messages = locale.messages();
73783
+ var message = get(messages, prefix + path) || get(messages, path);
73784
+
73785
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
73786
+ args[_key - 1] = arguments[_key];
73787
+ }
73788
+
73789
+ return utils_isFunction(message) ? message.apply(void 0, args) : message;
73790
+ };
73791
+ }
73792
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/create/index.js
73793
+
73794
+
73795
+
73796
+ function createNamespace(name) {
73797
+ name = 'van-' + name;
73798
+ return [createComponent(name), createBEM(name), createI18N(name)];
73799
+ }
73800
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/toast/lock-click.js
73801
+ var lockCount = 0;
73802
+ function lockClick(lock) {
73803
+ if (lock) {
73804
+ if (!lockCount) {
73805
+ document.body.classList.add('van-toast--unclickable');
73806
+ }
73807
+
73808
+ lockCount++;
73809
+ } else {
73810
+ lockCount--;
73811
+
73812
+ if (!lockCount) {
73813
+ document.body.classList.remove('van-toast--unclickable');
73814
+ }
73815
+ }
73816
+ }
73817
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/mixins/popup/context.js
73818
+ var context = {
73819
+ zIndex: 2000,
73820
+ lockCount: 0,
73821
+ stack: [],
73822
+ find: function find(vm) {
73823
+ return this.stack.filter(function (item) {
73824
+ return item.vm === vm;
73825
+ })[0];
73826
+ },
73827
+ remove: function remove(vm) {
73828
+ var item = this.find(vm);
73829
+ if (!item) return;
73830
+ item.vm = null;
73831
+ item.overlay = null;
73832
+ var index = this.stack.indexOf(item);
73833
+ this.stack.splice(index, 1);
73834
+ }
73835
+ };
73836
+ // EXTERNAL MODULE: ./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js
73837
+ var helper = __webpack_require__(7499);
73838
+ var helper_default = /*#__PURE__*/__webpack_require__.n(helper);
73839
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/functional.js
73840
+
73841
+
73842
+ var inheritKey = ['ref', 'key', 'style', 'class', 'attrs', 'refInFor', 'nativeOn', 'directives', 'staticClass', 'staticStyle'];
73843
+ var mapInheritKey = {
73844
+ nativeOn: 'on'
73845
+ }; // inherit partial context, map nativeOn to on
73846
+
73847
+ function inherit(context, inheritListeners) {
73848
+ var result = inheritKey.reduce(function (obj, key) {
73849
+ if (context.data[key]) {
73850
+ obj[mapInheritKey[key] || key] = context.data[key];
73851
+ }
73852
+
73853
+ return obj;
73854
+ }, {});
73855
+
73856
+ if (inheritListeners) {
73857
+ result.on = result.on || {};
73858
+
73859
+ _extends(result.on, context.data.on);
73860
+ }
73861
+
73862
+ return result;
73863
+ } // emit event
73864
+
73865
+ function emit(context, eventName) {
73866
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
73867
+ args[_key - 2] = arguments[_key];
73868
+ }
73869
+
73870
+ var listeners = context.listeners[eventName];
73871
+
73872
+ if (listeners) {
73873
+ if (Array.isArray(listeners)) {
73874
+ listeners.forEach(function (listener) {
73875
+ listener.apply(void 0, args);
73876
+ });
73877
+ } else {
73878
+ listeners.apply(void 0, args);
73879
+ }
73880
+ }
73881
+ } // mount functional component
73882
+
73883
+ function mount(Component, data) {
73884
+ var instance = new (external_commonjs_vue_commonjs2_vue_root_Vue_default())({
73885
+ el: document.createElement('div'),
73886
+ props: Component.props,
73887
+ render: function render(h) {
73888
+ return h(Component, _extends({
73889
+ props: this.$props
73890
+ }, data));
73891
+ }
73892
+ });
73893
+ document.body.appendChild(instance.$el);
73894
+ return instance;
73895
+ }
73896
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/dom/event.js
73897
+
73898
+ // eslint-disable-next-line import/no-mutable-exports
73899
+ var supportsPassive = false;
73900
+
73901
+ if (!isServer) {
73902
+ try {
73903
+ var opts = {};
73904
+ Object.defineProperty(opts, 'passive', {
73905
+ // eslint-disable-next-line getter-return
73906
+ get: function get() {
73907
+ /* istanbul ignore next */
73908
+ supportsPassive = true;
73909
+ }
73910
+ });
73911
+ window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty
73912
+ } catch (e) {}
73913
+ }
73914
+
73915
+ function on(target, event, handler, passive) {
73916
+ if (passive === void 0) {
73917
+ passive = false;
73918
+ }
73919
+
73920
+ if (!isServer) {
73921
+ target.addEventListener(event, handler, supportsPassive ? {
73922
+ capture: false,
73923
+ passive: passive
73924
+ } : false);
73925
+ }
73926
+ }
73927
+ function off(target, event, handler) {
73928
+ if (!isServer) {
73929
+ target.removeEventListener(event, handler);
73930
+ }
73931
+ }
73932
+ function stopPropagation(event) {
73933
+ event.stopPropagation();
73934
+ }
73935
+ function preventDefault(event, isStopPropagation) {
73936
+ /* istanbul ignore else */
73937
+ if (typeof event.cancelable !== 'boolean' || event.cancelable) {
73938
+ event.preventDefault();
73939
+ }
73940
+
73941
+ if (isStopPropagation) {
73942
+ stopPropagation(event);
73943
+ }
73944
+ }
73945
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/overlay/index.js
73946
+
73947
+
73948
+ // Utils
73949
+
73950
+
73951
+ // Types
73952
+
73953
+ var _createNamespace = createNamespace('overlay'),
73954
+ overlay_createComponent = _createNamespace[0],
73955
+ bem = _createNamespace[1];
73956
+
73957
+ function preventTouchMove(event) {
73958
+ preventDefault(event, true);
73959
+ }
73960
+
73961
+ function Overlay(h, props, slots, ctx) {
73962
+ var style = _extends({
73963
+ zIndex: props.zIndex
73964
+ }, props.customStyle);
73965
+
73966
+ if (isDef(props.duration)) {
73967
+ style.animationDuration = props.duration + "s";
73968
+ }
73969
+
73970
+ return h("transition", {
73971
+ "attrs": {
73972
+ "name": "van-fade"
73973
+ }
73974
+ }, [h("div", helper_default()([{
73975
+ "directives": [{
73976
+ name: "show",
73977
+ value: props.show
73978
+ }],
73979
+ "style": style,
73980
+ "class": [bem(), props.className],
73981
+ "on": {
73982
+ "touchmove": props.lockScroll ? preventTouchMove : utils_noop
73983
+ }
73984
+ }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()])]);
73985
+ }
73986
+
73987
+ Overlay.props = {
73988
+ show: Boolean,
73989
+ zIndex: [Number, String],
73990
+ duration: [Number, String],
73991
+ className: null,
73992
+ customStyle: Object,
73993
+ lockScroll: {
73994
+ type: Boolean,
73995
+ default: true
73996
+ }
73997
+ };
73998
+ /* harmony default export */ var overlay = (overlay_createComponent(Overlay));
73999
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/dom/node.js
74000
+ function removeNode(el) {
74001
+ var parent = el.parentNode;
74002
+
74003
+ if (parent) {
74004
+ parent.removeChild(el);
74005
+ }
74006
+ }
74007
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/mixins/popup/overlay.js
74008
+
74009
+
74010
+
74011
+
74012
+
74013
+ var defaultConfig = {
74014
+ className: '',
74015
+ customStyle: {}
74016
+ };
74017
+
74018
+ function mountOverlay(vm) {
74019
+ return mount(overlay, {
74020
+ on: {
74021
+ // close popup when overlay clicked & closeOnClickOverlay is true
74022
+ click: function click() {
74023
+ vm.$emit('click-overlay');
74024
+
74025
+ if (vm.closeOnClickOverlay) {
74026
+ if (vm.onClickOverlay) {
74027
+ vm.onClickOverlay();
74028
+ } else {
74029
+ vm.close();
74030
+ }
74031
+ }
74032
+ }
74033
+ }
74034
+ });
74035
+ }
74036
+
74037
+ function updateOverlay(vm) {
74038
+ var item = context.find(vm);
74039
+
74040
+ if (item) {
74041
+ var el = vm.$el;
74042
+ var config = item.config,
74043
+ overlay = item.overlay;
74044
+
74045
+ if (el && el.parentNode) {
74046
+ el.parentNode.insertBefore(overlay.$el, el);
74047
+ }
74048
+
74049
+ _extends(overlay, defaultConfig, config, {
74050
+ show: true
74051
+ });
74052
+ }
74053
+ }
74054
+ function openOverlay(vm, config) {
74055
+ var item = context.find(vm);
74056
+
74057
+ if (item) {
74058
+ item.config = config;
74059
+ } else {
74060
+ var overlay = mountOverlay(vm);
74061
+ context.stack.push({
74062
+ vm: vm,
74063
+ config: config,
74064
+ overlay: overlay
74065
+ });
74066
+ }
74067
+
74068
+ updateOverlay(vm);
74069
+ }
74070
+ function closeOverlay(vm) {
74071
+ var item = context.find(vm);
74072
+
74073
+ if (item) {
74074
+ item.overlay.show = false;
74075
+ }
74076
+ }
74077
+ function removeOverlay(vm) {
74078
+ var item = context.find(vm);
74079
+
74080
+ if (item) {
74081
+ removeNode(item.overlay.$el);
74082
+ context.remove(vm);
74083
+ }
74084
+ }
74085
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/dom/scroll.js
74086
+ function isWindow(val) {
74087
+ return val === window;
74088
+ } // get nearest scroll element
74089
+ // https://github.com/vant-ui/vant/issues/3823
74090
+
74091
+
74092
+ var overflowScrollReg = /scroll|auto|overlay/i;
74093
+ function getScroller(el, root) {
74094
+ if (root === void 0) {
74095
+ root = window;
74096
+ }
74097
+
74098
+ var node = el;
74099
+
74100
+ while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== root) {
74101
+ var _window$getComputedSt = window.getComputedStyle(node),
74102
+ overflowY = _window$getComputedSt.overflowY;
74103
+
74104
+ if (overflowScrollReg.test(overflowY)) {
74105
+ return node;
74106
+ }
74107
+
74108
+ node = node.parentNode;
74109
+ }
74110
+
74111
+ return root;
74112
+ }
74113
+ function getScrollTop(el) {
74114
+ var top = 'scrollTop' in el ? el.scrollTop : el.pageYOffset; // iOS scroll bounce cause minus scrollTop
74115
+
74116
+ return Math.max(top, 0);
74117
+ }
74118
+ function setScrollTop(el, value) {
74119
+ if ('scrollTop' in el) {
74120
+ el.scrollTop = value;
74121
+ } else {
74122
+ el.scrollTo(el.scrollX, value);
74123
+ }
74124
+ }
74125
+ function getRootScrollTop() {
74126
+ return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
74127
+ }
74128
+ function setRootScrollTop(value) {
74129
+ setScrollTop(window, value);
74130
+ setScrollTop(document.body, value);
74131
+ } // get distance from element top to page top or scroller top
74132
+
74133
+ function getElementTop(el, scroller) {
74134
+ if (isWindow(el)) {
74135
+ return 0;
74136
+ }
74137
+
74138
+ var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();
74139
+ return el.getBoundingClientRect().top + scrollTop;
74140
+ }
74141
+ function getVisibleHeight(el) {
74142
+ if (isWindow(el)) {
74143
+ return el.innerHeight;
74144
+ }
74145
+
74146
+ return el.getBoundingClientRect().height;
74147
+ }
74148
+ function getVisibleTop(el) {
74149
+ if (isWindow(el)) {
74150
+ return 0;
74151
+ }
74152
+
74153
+ return el.getBoundingClientRect().top;
74154
+ }
74155
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/mixins/touch.js
74156
+
74157
+
74158
+ function getDirection(x, y) {
74159
+ if (x > y) {
74160
+ return 'horizontal';
74161
+ }
74162
+
74163
+ if (y > x) {
74164
+ return 'vertical';
74165
+ }
74166
+
74167
+ return '';
74168
+ }
74169
+
74170
+ var TouchMixin = {
74171
+ data: function data() {
74172
+ return {
74173
+ direction: ''
74174
+ };
74175
+ },
74176
+ methods: {
74177
+ touchStart: function touchStart(event) {
74178
+ this.resetTouchStatus();
74179
+ this.startX = event.touches[0].clientX;
74180
+ this.startY = event.touches[0].clientY;
74181
+ },
74182
+ touchMove: function touchMove(event) {
74183
+ var touch = event.touches[0]; // safari back will set clientX to negative number
74184
+
74185
+ this.deltaX = touch.clientX < 0 ? 0 : touch.clientX - this.startX;
74186
+ this.deltaY = touch.clientY - this.startY;
74187
+ this.offsetX = Math.abs(this.deltaX);
74188
+ this.offsetY = Math.abs(this.deltaY); // lock direction when distance is greater than a certain value
74189
+
74190
+ var LOCK_DIRECTION_DISTANCE = 10;
74191
+
74192
+ if (!this.direction || this.offsetX < LOCK_DIRECTION_DISTANCE && this.offsetY < LOCK_DIRECTION_DISTANCE) {
74193
+ this.direction = getDirection(this.offsetX, this.offsetY);
74194
+ }
74195
+ },
74196
+ resetTouchStatus: function resetTouchStatus() {
74197
+ this.direction = '';
74198
+ this.deltaX = 0;
74199
+ this.deltaY = 0;
74200
+ this.offsetX = 0;
74201
+ this.offsetY = 0;
74202
+ },
74203
+ // avoid Vue 2.6 event bubble issues by manually binding events
74204
+ // https://github.com/vant-ui/vant/issues/3015
74205
+ bindTouchEvent: function bindTouchEvent(el) {
74206
+ var onTouchStart = this.onTouchStart,
74207
+ onTouchMove = this.onTouchMove,
74208
+ onTouchEnd = this.onTouchEnd;
74209
+ on(el, 'touchstart', onTouchStart);
74210
+ on(el, 'touchmove', onTouchMove);
74211
+
74212
+ if (onTouchEnd) {
74213
+ on(el, 'touchend', onTouchEnd);
74214
+ on(el, 'touchcancel', onTouchEnd);
74215
+ }
74216
+ }
74217
+ }
74218
+ };
74219
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/mixins/portal.js
74220
+ function getElement(selector) {
74221
+ if (typeof selector === 'string') {
74222
+ return document.querySelector(selector);
74223
+ }
74224
+
74225
+ return selector();
74226
+ }
74227
+
74228
+ function PortalMixin(_temp) {
74229
+ var _ref = _temp === void 0 ? {} : _temp,
74230
+ ref = _ref.ref,
74231
+ afterPortal = _ref.afterPortal;
74232
+
74233
+ return {
74234
+ props: {
74235
+ getContainer: [String, Function]
74236
+ },
74237
+ watch: {
74238
+ getContainer: 'portal'
74239
+ },
74240
+ mounted: function mounted() {
74241
+ if (this.getContainer) {
74242
+ this.portal();
74243
+ }
74244
+ },
74245
+ methods: {
74246
+ portal: function portal() {
74247
+ var getContainer = this.getContainer;
74248
+ var el = ref ? this.$refs[ref] : this.$el;
74249
+ var container;
74250
+
74251
+ if (getContainer) {
74252
+ container = getElement(getContainer);
74253
+ } else if (this.$parent) {
74254
+ container = this.$parent.$el;
74255
+ }
74256
+
74257
+ if (container && container !== el.parentNode) {
74258
+ container.appendChild(el);
74259
+ }
74260
+
74261
+ if (afterPortal) {
74262
+ afterPortal.call(this);
74263
+ }
74264
+ }
74265
+ }
74266
+ };
74267
+ }
74268
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/mixins/bind-event.js
74269
+ /**
74270
+ * Bind event when mounted or activated
74271
+ */
74272
+
74273
+ var uid = 0;
74274
+ function BindEventMixin(handler) {
74275
+ var key = "binded_" + uid++;
74276
+
74277
+ function bind() {
74278
+ if (!this[key]) {
74279
+ handler.call(this, on, true);
74280
+ this[key] = true;
74281
+ }
74282
+ }
74283
+
74284
+ function unbind() {
74285
+ if (this[key]) {
74286
+ handler.call(this, off, false);
74287
+ this[key] = false;
74288
+ }
74289
+ }
74290
+
74291
+ return {
74292
+ mounted: bind,
74293
+ activated: bind,
74294
+ deactivated: unbind,
74295
+ beforeDestroy: unbind
74296
+ };
74297
+ }
74298
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/mixins/close-on-popstate.js
74299
+
74300
+
74301
+ var CloseOnPopstateMixin = {
74302
+ mixins: [BindEventMixin(function (bind, isBind) {
74303
+ this.handlePopstate(isBind && this.closeOnPopstate);
74304
+ })],
74305
+ props: {
74306
+ closeOnPopstate: Boolean
74307
+ },
74308
+ data: function data() {
74309
+ return {
74310
+ bindStatus: false
74311
+ };
74312
+ },
74313
+ watch: {
74314
+ closeOnPopstate: function closeOnPopstate(val) {
74315
+ this.handlePopstate(val);
74316
+ }
74317
+ },
74318
+ methods: {
74319
+ onPopstate: function onPopstate() {
74320
+ this.close();
74321
+ this.shouldReopen = false;
74322
+ },
74323
+ handlePopstate: function handlePopstate(bind) {
74324
+ /* istanbul ignore if */
74325
+ if (this.$isServer) {
74326
+ return;
74327
+ }
74328
+
74329
+ if (this.bindStatus !== bind) {
74330
+ this.bindStatus = bind;
74331
+ var action = bind ? on : off;
74332
+ action(window, 'popstate', this.onPopstate);
74333
+ }
74334
+ }
74335
+ }
74336
+ };
74337
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/mixins/popup/index.js
74338
+ // Context
74339
+
74340
+ // Utils
74341
+
74342
+
74343
+
74344
+ // Mixins
74345
+
74346
+
74347
+
74348
+
74349
+ var popupMixinProps = {
74350
+ // Initial rendering animation
74351
+ transitionAppear: Boolean,
74352
+ // whether to show popup
74353
+ value: Boolean,
74354
+ // whether to show overlay
74355
+ overlay: Boolean,
74356
+ // overlay custom style
74357
+ overlayStyle: Object,
74358
+ // overlay custom class name
74359
+ overlayClass: String,
74360
+ // whether to close popup when overlay is clicked
74361
+ closeOnClickOverlay: Boolean,
74362
+ // z-index
74363
+ zIndex: [Number, String],
74364
+ // prevent body scroll
74365
+ lockScroll: {
74366
+ type: Boolean,
74367
+ default: true
74368
+ },
74369
+ // whether to lazy render
74370
+ lazyRender: {
74371
+ type: Boolean,
74372
+ default: true
74373
+ }
74374
+ };
74375
+ function PopupMixin(options) {
74376
+ if (options === void 0) {
74377
+ options = {};
74378
+ }
74379
+
74380
+ return {
74381
+ mixins: [TouchMixin, CloseOnPopstateMixin, PortalMixin({
74382
+ afterPortal: function afterPortal() {
74383
+ if (this.overlay) {
74384
+ updateOverlay();
74385
+ }
74386
+ }
74387
+ })],
74388
+ provide: function provide() {
74389
+ return {
74390
+ vanPopup: this
74391
+ };
74392
+ },
74393
+ props: popupMixinProps,
74394
+ data: function data() {
74395
+ this.onReopenCallback = [];
74396
+ return {
74397
+ inited: this.value
74398
+ };
74399
+ },
74400
+ computed: {
74401
+ shouldRender: function shouldRender() {
74402
+ return this.inited || !this.lazyRender;
74403
+ }
74404
+ },
74405
+ watch: {
74406
+ value: function value(val) {
74407
+ var type = val ? 'open' : 'close';
74408
+ this.inited = this.inited || this.value;
74409
+ this[type]();
74410
+
74411
+ if (!options.skipToggleEvent) {
74412
+ this.$emit(type);
74413
+ }
74414
+ },
74415
+ overlay: 'renderOverlay'
74416
+ },
74417
+ mounted: function mounted() {
74418
+ if (this.value) {
74419
+ this.open();
74420
+ }
74421
+ },
74422
+
74423
+ /* istanbul ignore next */
74424
+ activated: function activated() {
74425
+ if (this.shouldReopen) {
74426
+ this.$emit('input', true);
74427
+ this.shouldReopen = false;
74428
+ }
74429
+ },
74430
+ beforeDestroy: function beforeDestroy() {
74431
+ removeOverlay(this);
74432
+
74433
+ if (this.opened) {
74434
+ this.removeLock();
74435
+ }
74436
+
74437
+ if (this.getContainer) {
74438
+ removeNode(this.$el);
74439
+ }
74440
+ },
74441
+
74442
+ /* istanbul ignore next */
74443
+ deactivated: function deactivated() {
74444
+ if (this.value) {
74445
+ this.close();
74446
+ this.shouldReopen = true;
74447
+ }
74448
+ },
74449
+ methods: {
74450
+ open: function open() {
74451
+ /* istanbul ignore next */
74452
+ if (this.$isServer || this.opened) {
74453
+ return;
74454
+ } // cover default zIndex
74455
+
74456
+
74457
+ if (this.zIndex !== undefined) {
74458
+ context.zIndex = this.zIndex;
74459
+ }
74460
+
74461
+ this.opened = true;
74462
+ this.renderOverlay();
74463
+ this.addLock();
74464
+ this.onReopenCallback.forEach(function (callback) {
74465
+ callback();
74466
+ });
74467
+ },
74468
+ addLock: function addLock() {
74469
+ if (this.lockScroll) {
74470
+ on(document, 'touchstart', this.touchStart);
74471
+ on(document, 'touchmove', this.onTouchMove);
74472
+
74473
+ if (!context.lockCount) {
74474
+ document.body.classList.add('van-overflow-hidden');
74475
+ }
74476
+
74477
+ context.lockCount++;
74478
+ }
74479
+ },
74480
+ removeLock: function removeLock() {
74481
+ if (this.lockScroll && context.lockCount) {
74482
+ context.lockCount--;
74483
+ off(document, 'touchstart', this.touchStart);
74484
+ off(document, 'touchmove', this.onTouchMove);
74485
+
74486
+ if (!context.lockCount) {
74487
+ document.body.classList.remove('van-overflow-hidden');
74488
+ }
74489
+ }
74490
+ },
74491
+ close: function close() {
74492
+ if (!this.opened) {
74493
+ return;
74494
+ }
74495
+
74496
+ closeOverlay(this);
74497
+ this.opened = false;
74498
+ this.removeLock();
74499
+ this.$emit('input', false);
74500
+ },
74501
+ onTouchMove: function onTouchMove(event) {
74502
+ this.touchMove(event);
74503
+ var direction = this.deltaY > 0 ? '10' : '01';
74504
+ var el = getScroller(event.target, this.$el);
74505
+ var scrollHeight = el.scrollHeight,
74506
+ offsetHeight = el.offsetHeight,
74507
+ scrollTop = el.scrollTop;
74508
+ var status = '11';
74509
+ /* istanbul ignore next */
74510
+
74511
+ if (scrollTop === 0) {
74512
+ status = offsetHeight >= scrollHeight ? '00' : '01';
74513
+ } else if (scrollTop + offsetHeight >= scrollHeight) {
74514
+ status = '10';
74515
+ }
74516
+ /* istanbul ignore next */
74517
+
74518
+
74519
+ if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {
74520
+ preventDefault(event, true);
74521
+ }
74522
+ },
74523
+ renderOverlay: function renderOverlay() {
74524
+ var _this = this;
74525
+
74526
+ if (this.$isServer || !this.value) {
74527
+ return;
74528
+ }
74529
+
74530
+ this.$nextTick(function () {
74531
+ _this.updateZIndex(_this.overlay ? 1 : 0);
74532
+
74533
+ if (_this.overlay) {
74534
+ openOverlay(_this, {
74535
+ zIndex: context.zIndex++,
74536
+ duration: _this.duration,
74537
+ className: _this.overlayClass,
74538
+ customStyle: _this.overlayStyle
74539
+ });
74540
+ } else {
74541
+ closeOverlay(_this);
74542
+ }
74543
+ });
74544
+ },
74545
+ updateZIndex: function updateZIndex(value) {
74546
+ if (value === void 0) {
74547
+ value = 0;
74548
+ }
74549
+
74550
+ this.$el.style.zIndex = ++context.zIndex + value;
74551
+ },
74552
+ onReopen: function onReopen(callback) {
74553
+ this.onReopenCallback.push(callback);
74554
+ }
74555
+ }
74556
+ };
74557
+ }
74558
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/validate/number.js
74559
+ function isNumeric(val) {
74560
+ return /^\d+(\.\d+)?$/.test(val);
74561
+ }
74562
+ function number_isNaN(val) {
74563
+ if (Number.isNaN) {
74564
+ return Number.isNaN(val);
74565
+ } // eslint-disable-next-line no-self-compare
74566
+
74567
+
74568
+ return val !== val;
74569
+ }
74570
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/utils/format/unit.js
74571
+
74572
+
74573
+ function addUnit(value) {
74574
+ if (!isDef(value)) {
74575
+ return undefined;
74576
+ }
74577
+
74578
+ value = String(value);
74579
+ return isNumeric(value) ? value + "px" : value;
74580
+ } // cache
74581
+
74582
+ var rootFontSize;
74583
+
74584
+ function getRootFontSize() {
74585
+ if (!rootFontSize) {
74586
+ var doc = document.documentElement;
74587
+ var fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;
74588
+ rootFontSize = parseFloat(fontSize);
74589
+ }
74590
+
74591
+ return rootFontSize;
74592
+ }
74593
+
74594
+ function convertRem(value) {
74595
+ value = value.replace(/rem/g, '');
74596
+ return +value * getRootFontSize();
74597
+ }
74598
+
74599
+ function convertVw(value) {
74600
+ value = value.replace(/vw/g, '');
74601
+ return +value * window.innerWidth / 100;
74602
+ }
74603
+
74604
+ function convertVh(value) {
74605
+ value = value.replace(/vh/g, '');
74606
+ return +value * window.innerHeight / 100;
74607
+ }
74608
+
74609
+ function unitToPx(value) {
74610
+ if (typeof value === 'number') {
74611
+ return value;
74612
+ }
74613
+
74614
+ if (inBrowser) {
74615
+ if (value.indexOf('rem') !== -1) {
74616
+ return convertRem(value);
74617
+ }
74618
+
74619
+ if (value.indexOf('vw') !== -1) {
74620
+ return convertVw(value);
74621
+ }
74622
+
74623
+ if (value.indexOf('vh') !== -1) {
74624
+ return convertVh(value);
74625
+ }
74626
+ }
74627
+
74628
+ return parseFloat(value);
74629
+ }
74630
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/info/index.js
74631
+
74632
+ // Utils
74633
+
74634
+ // Types
74635
+
74636
+ var info_createNamespace = createNamespace('info'),
74637
+ info_createComponent = info_createNamespace[0],
74638
+ info_bem = info_createNamespace[1];
74639
+
74640
+ function Info(h, props, slots, ctx) {
74641
+ var dot = props.dot,
74642
+ info = props.info;
74643
+ var showInfo = isDef(info) && info !== '';
74644
+
74645
+ if (!dot && !showInfo) {
74646
+ return;
74647
+ }
74648
+
74649
+ return h("div", helper_default()([{
74650
+ "class": info_bem({
74651
+ dot: dot
74652
+ })
74653
+ }, inherit(ctx, true)]), [dot ? '' : props.info]);
74654
+ }
74655
+
74656
+ Info.props = {
74657
+ dot: Boolean,
74658
+ info: [Number, String]
74659
+ };
74660
+ /* harmony default export */ var info = (info_createComponent(Info));
74661
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/icon/index.js
74662
+
74663
+ // Utils
74664
+
74665
+ // Components
74666
+
74667
+ // Types
74668
+
74669
+ var icon_createNamespace = createNamespace('icon'),
74670
+ icon_createComponent = icon_createNamespace[0],
74671
+ icon_bem = icon_createNamespace[1];
74672
+
74673
+ function isImage(name) {
74674
+ return name ? name.indexOf('/') !== -1 : false;
74675
+ } // compatible with legacy usage, should be removed in next major version
74676
+
74677
+
74678
+ var LEGACY_MAP = {
74679
+ medel: 'medal',
74680
+ 'medel-o': 'medal-o',
74681
+ 'calender-o': 'calendar-o'
74682
+ };
74683
+
74684
+ function correctName(name) {
74685
+ return name && LEGACY_MAP[name] || name;
74686
+ }
74687
+
74688
+ function Icon(h, props, slots, ctx) {
74689
+ var _props$badge;
74690
+
74691
+ var name = correctName(props.name);
74692
+ var imageIcon = isImage(name);
74693
+
74694
+ if (false) {}
74695
+
74696
+ return h(props.tag, helper_default()([{
74697
+ "class": [props.classPrefix, imageIcon ? '' : props.classPrefix + "-" + name],
74698
+ "style": {
74699
+ color: props.color,
74700
+ fontSize: addUnit(props.size)
74701
+ }
74702
+ }, inherit(ctx, true)]), [slots.default && slots.default(), imageIcon && h("img", {
74703
+ "class": icon_bem('image'),
74704
+ "attrs": {
74705
+ "src": name
74706
+ }
74707
+ }), h(info, {
74708
+ "attrs": {
74709
+ "dot": props.dot,
74710
+ "info": (_props$badge = props.badge) != null ? _props$badge : props.info
74711
+ }
74712
+ })]);
74713
+ }
74714
+
74715
+ Icon.props = {
74716
+ dot: Boolean,
74717
+ name: String,
74718
+ size: [Number, String],
74719
+ // @deprecated
74720
+ // should be removed in next major version
74721
+ info: [Number, String],
74722
+ badge: [Number, String],
74723
+ color: String,
74724
+ tag: {
74725
+ type: String,
74726
+ default: 'i'
74727
+ },
74728
+ classPrefix: {
74729
+ type: String,
74730
+ default: icon_bem()
74731
+ }
74732
+ };
74733
+ /* harmony default export */ var es_icon = (icon_createComponent(Icon));
74734
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/loading/index.js
74735
+
74736
+ // Utils
74737
+
74738
+ // Types
74739
+
74740
+ var loading_createNamespace = createNamespace('loading'),
74741
+ loading_createComponent = loading_createNamespace[0],
74742
+ loading_bem = loading_createNamespace[1];
74743
+
74744
+ function LoadingIcon(h, props) {
74745
+ if (props.type === 'spinner') {
74746
+ var Spin = [];
74747
+
74748
+ for (var i = 0; i < 12; i++) {
74749
+ Spin.push(h("i"));
74750
+ }
74751
+
74752
+ return Spin;
74753
+ }
74754
+
74755
+ return h("svg", {
74756
+ "class": loading_bem('circular'),
74757
+ "attrs": {
74758
+ "viewBox": "25 25 50 50"
74759
+ }
74760
+ }, [h("circle", {
74761
+ "attrs": {
74762
+ "cx": "50",
74763
+ "cy": "50",
74764
+ "r": "20",
74765
+ "fill": "none"
74766
+ }
74767
+ })]);
74768
+ }
74769
+
74770
+ function LoadingText(h, props, slots) {
74771
+ if (slots.default) {
74772
+ var _props$textColor;
74773
+
74774
+ var style = {
74775
+ fontSize: addUnit(props.textSize),
74776
+ color: (_props$textColor = props.textColor) != null ? _props$textColor : props.color
74777
+ };
74778
+ return h("span", {
74779
+ "class": loading_bem('text'),
74780
+ "style": style
74781
+ }, [slots.default()]);
74782
+ }
74783
+ }
74784
+
74785
+ function Loading(h, props, slots, ctx) {
74786
+ var color = props.color,
74787
+ size = props.size,
74788
+ type = props.type;
74789
+ var style = {
74790
+ color: color
74791
+ };
74792
+
74793
+ if (size) {
74794
+ var iconSize = addUnit(size);
74795
+ style.width = iconSize;
74796
+ style.height = iconSize;
74797
+ }
74798
+
74799
+ return h("div", helper_default()([{
74800
+ "class": loading_bem([type, {
74801
+ vertical: props.vertical
74802
+ }])
74803
+ }, inherit(ctx, true)]), [h("span", {
74804
+ "class": loading_bem('spinner', type),
74805
+ "style": style
74806
+ }, [LoadingIcon(h, props)]), LoadingText(h, props, slots)]);
74807
+ }
74808
+
74809
+ Loading.props = {
74810
+ color: String,
74811
+ size: [Number, String],
74812
+ vertical: Boolean,
74813
+ textSize: [Number, String],
74814
+ textColor: String,
74815
+ type: {
74816
+ type: String,
74817
+ default: 'circular'
74818
+ }
74819
+ };
74820
+ /* harmony default export */ var loading = (loading_createComponent(Loading));
74821
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/toast/Toast.js
74822
+ // Utils
74823
+
74824
+ // Mixins
74825
+
74826
+ // Components
74827
+
74828
+
74829
+
74830
+
74831
+ var Toast_createNamespace = createNamespace('toast'),
74832
+ Toast_createComponent = Toast_createNamespace[0],
74833
+ Toast_bem = Toast_createNamespace[1];
74834
+
74835
+ /* harmony default export */ var Toast = (Toast_createComponent({
74836
+ mixins: [PopupMixin()],
74837
+ props: {
74838
+ icon: String,
74839
+ className: null,
74840
+ iconPrefix: String,
74841
+ loadingType: String,
74842
+ forbidClick: Boolean,
74843
+ closeOnClick: Boolean,
74844
+ message: [Number, String],
74845
+ type: {
74846
+ type: String,
74847
+ default: 'text'
74848
+ },
74849
+ position: {
74850
+ type: String,
74851
+ default: 'middle'
74852
+ },
74853
+ transition: {
74854
+ type: String,
74855
+ default: 'van-fade'
74856
+ },
74857
+ lockScroll: {
74858
+ type: Boolean,
74859
+ default: false
74860
+ }
74861
+ },
74862
+ data: function data() {
74863
+ return {
74864
+ clickable: false
74865
+ };
74866
+ },
74867
+ mounted: function mounted() {
74868
+ this.toggleClickable();
74869
+ },
74870
+ destroyed: function destroyed() {
74871
+ this.toggleClickable();
74872
+ },
74873
+ watch: {
74874
+ value: 'toggleClickable',
74875
+ forbidClick: 'toggleClickable'
74876
+ },
74877
+ methods: {
74878
+ onClick: function onClick() {
74879
+ if (this.closeOnClick) {
74880
+ this.close();
74881
+ }
74882
+ },
74883
+ toggleClickable: function toggleClickable() {
74884
+ var clickable = this.value && this.forbidClick;
74885
+
74886
+ if (this.clickable !== clickable) {
74887
+ this.clickable = clickable;
74888
+ lockClick(clickable);
74889
+ }
74890
+ },
74891
+
74892
+ /* istanbul ignore next */
74893
+ onAfterEnter: function onAfterEnter() {
74894
+ this.$emit('opened');
74895
+
74896
+ if (this.onOpened) {
74897
+ this.onOpened();
74898
+ }
74899
+ },
74900
+ onAfterLeave: function onAfterLeave() {
74901
+ this.$emit('closed');
74902
+ },
74903
+ genIcon: function genIcon() {
74904
+ var h = this.$createElement;
74905
+ var icon = this.icon,
74906
+ type = this.type,
74907
+ iconPrefix = this.iconPrefix,
74908
+ loadingType = this.loadingType;
74909
+ var hasIcon = icon || type === 'success' || type === 'fail';
74910
+
74911
+ if (hasIcon) {
74912
+ return h(es_icon, {
74913
+ "class": Toast_bem('icon'),
74914
+ "attrs": {
74915
+ "classPrefix": iconPrefix,
74916
+ "name": icon || type
74917
+ }
74918
+ });
74919
+ }
74920
+
74921
+ if (type === 'loading') {
74922
+ return h(loading, {
74923
+ "class": Toast_bem('loading'),
74924
+ "attrs": {
74925
+ "type": loadingType
74926
+ }
74927
+ });
74928
+ }
74929
+ },
74930
+ genMessage: function genMessage() {
74931
+ var h = this.$createElement;
74932
+ var type = this.type,
74933
+ message = this.message;
74934
+
74935
+ if (!isDef(message) || message === '') {
74936
+ return;
74937
+ }
74938
+
74939
+ if (type === 'html') {
74940
+ return h("div", {
74941
+ "class": Toast_bem('text'),
74942
+ "domProps": {
74943
+ "innerHTML": message
74944
+ }
74945
+ });
74946
+ }
74947
+
74948
+ return h("div", {
74949
+ "class": Toast_bem('text')
74950
+ }, [message]);
74951
+ }
74952
+ },
74953
+ render: function render() {
74954
+ var _ref;
74955
+
74956
+ var h = arguments[0];
74957
+ return h("transition", {
74958
+ "attrs": {
74959
+ "name": this.transition
74960
+ },
74961
+ "on": {
74962
+ "afterEnter": this.onAfterEnter,
74963
+ "afterLeave": this.onAfterLeave
74964
+ }
74965
+ }, [h("div", {
74966
+ "directives": [{
74967
+ name: "show",
74968
+ value: this.value
74969
+ }],
74970
+ "class": [Toast_bem([this.position, (_ref = {}, _ref[this.type] = !this.icon, _ref)]), this.className],
74971
+ "on": {
74972
+ "click": this.onClick
74973
+ }
74974
+ }, [this.genIcon(), this.genMessage()])]);
74975
+ }
74976
+ }));
74977
+ ;// CONCATENATED MODULE: ./node_modules/vant/es/toast/index.js
74978
+
74979
+
74980
+
74981
+
74982
+
74983
+ var defaultOptions = {
74984
+ icon: '',
74985
+ type: 'text',
74986
+ // @deprecated
74987
+ mask: false,
74988
+ value: true,
74989
+ message: '',
74990
+ className: '',
74991
+ overlay: false,
74992
+ onClose: null,
74993
+ onOpened: null,
74994
+ duration: 2000,
74995
+ iconPrefix: undefined,
74996
+ position: 'middle',
74997
+ transition: 'van-fade',
74998
+ forbidClick: false,
74999
+ loadingType: undefined,
75000
+ getContainer: 'body',
75001
+ overlayStyle: null,
75002
+ closeOnClick: false,
75003
+ closeOnClickOverlay: false
75004
+ }; // default options of specific type
75005
+
75006
+ var defaultOptionsMap = {};
75007
+ var queue = [];
75008
+ var multiple = false;
75009
+
75010
+ var currentOptions = _extends({}, defaultOptions);
75011
+
75012
+ function parseOptions(message) {
75013
+ if (utils_isObject(message)) {
75014
+ return message;
75015
+ }
75016
+
75017
+ return {
75018
+ message: message
75019
+ };
75020
+ }
75021
+
75022
+ function isInDocument(element) {
75023
+ return document.body.contains(element);
75024
+ }
75025
+
75026
+ function toast_createInstance() {
75027
+ /* istanbul ignore if */
75028
+ if (isServer) {
75029
+ return {};
75030
+ }
75031
+
75032
+ queue = queue.filter(function (item) {
75033
+ return !item.$el.parentNode || isInDocument(item.$el);
75034
+ });
75035
+
75036
+ if (!queue.length || multiple) {
75037
+ var toast = new (external_commonjs_vue_commonjs2_vue_root_Vue_default().extend(Toast))({
75038
+ el: document.createElement('div')
75039
+ });
75040
+ toast.$on('input', function (value) {
75041
+ toast.value = value;
75042
+ });
75043
+ queue.push(toast);
75044
+ }
75045
+
75046
+ return queue[queue.length - 1];
75047
+ } // transform toast options to popup props
75048
+
75049
+
75050
+ function transformOptions(options) {
75051
+ return _extends({}, options, {
75052
+ overlay: options.mask || options.overlay,
75053
+ mask: undefined,
75054
+ duration: undefined
75055
+ });
75056
+ }
75057
+
75058
+ function toast_Toast(options) {
75059
+ if (options === void 0) {
75060
+ options = {};
75061
+ }
75062
+
75063
+ var toast = toast_createInstance(); // should add z-index if previous toast has not disappeared
75064
+
75065
+ if (toast.value) {
75066
+ toast.updateZIndex();
75067
+ }
75068
+
75069
+ options = parseOptions(options);
75070
+ options = _extends({}, currentOptions, defaultOptionsMap[options.type || currentOptions.type], options);
75071
+
75072
+ if (false) {}
75073
+
75074
+ options.clear = function () {
75075
+ toast.value = false;
75076
+
75077
+ if (options.onClose) {
75078
+ options.onClose();
75079
+ options.onClose = null;
75080
+ }
75081
+
75082
+ if (multiple && !isServer) {
75083
+ toast.$on('closed', function () {
75084
+ clearTimeout(toast.timer);
75085
+ queue = queue.filter(function (item) {
75086
+ return item !== toast;
75087
+ });
75088
+ removeNode(toast.$el);
75089
+ toast.$destroy();
75090
+ });
75091
+ }
75092
+ };
75093
+
75094
+ _extends(toast, transformOptions(options));
75095
+
75096
+ clearTimeout(toast.timer);
75097
+
75098
+ if (options.duration > 0) {
75099
+ toast.timer = setTimeout(function () {
75100
+ toast.clear();
75101
+ }, options.duration);
75102
+ }
75103
+
75104
+ return toast;
75105
+ }
75106
+
75107
+ var createMethod = function createMethod(type) {
75108
+ return function (options) {
75109
+ return toast_Toast(_extends({
75110
+ type: type
75111
+ }, parseOptions(options)));
75112
+ };
75113
+ };
75114
+
75115
+ ['loading', 'success', 'fail'].forEach(function (method) {
75116
+ toast_Toast[method] = createMethod(method);
75117
+ });
75118
+
75119
+ toast_Toast.clear = function (all) {
75120
+ if (queue.length) {
75121
+ if (all) {
75122
+ queue.forEach(function (toast) {
75123
+ toast.clear();
75124
+ });
75125
+ queue = [];
75126
+ } else if (!multiple) {
75127
+ queue[0].clear();
75128
+ } else {
75129
+ queue.shift().clear();
75130
+ }
75131
+ }
75132
+ };
75133
+
75134
+ toast_Toast.setDefaultOptions = function (type, options) {
75135
+ if (typeof type === 'string') {
75136
+ defaultOptionsMap[type] = options;
75137
+ } else {
75138
+ _extends(currentOptions, type);
75139
+ }
75140
+ };
75141
+
75142
+ toast_Toast.resetDefaultOptions = function (type) {
75143
+ if (typeof type === 'string') {
75144
+ defaultOptionsMap[type] = null;
75145
+ } else {
75146
+ currentOptions = _extends({}, defaultOptions);
75147
+ defaultOptionsMap = {};
75148
+ }
75149
+ };
75150
+
75151
+ toast_Toast.allowMultiple = function (value) {
75152
+ if (value === void 0) {
75153
+ value = true;
75154
+ }
75155
+
75156
+ multiple = value;
75157
+ };
75158
+
75159
+ toast_Toast.install = function () {
75160
+ external_commonjs_vue_commonjs2_vue_root_Vue_default().use(Toast);
75161
+ };
75162
+
75163
+ (external_commonjs_vue_commonjs2_vue_root_Vue_default()).prototype.$toast = toast_Toast;
75164
+ /* harmony default export */ var toast = (toast_Toast);
72951
75165
  ;// CONCATENATED MODULE: ./packages/npmaio/mappaio/index.js
72952
75166
  function mappaio_typeof(o) { "@babel/helpers - typeof"; return mappaio_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, mappaio_typeof(o); }
72953
75167
  function mappaio_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -72990,13 +75204,14 @@ function mappaio_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
72990
75204
 
72991
75205
 
72992
75206
 
75207
+
72993
75208
  var mappaio_components = [app, auth, eventBus, user, Building, Basicform, Basicform_DatetimeField, Basicform_FileField, Basicform_InputField, Basicform_SelectField, Basicform_SwitchField, Basicform_TextareaField, Basicform_IdeaField, DatetimeRange, DataTable, InnerTable, FooterButtonGroup, FloatButtonGroup, NativeWebView, SelectDialog, WfStatus, PopupDialog];
72994
75209
 
72995
75210
  // ---------- 重型组件异步全局注册清单(chunk 级按需加载) ----------
72996
75211
  var asyncComponents = [
72997
75212
  // ========== ecmapp 业务功能 ==========
72998
75213
  ['RichtextEditor', function () {
72999
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9733));
75214
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 7669));
73000
75215
  }], ['PdfTools', function () {
73001
75216
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2283)).then(function (m) {
73002
75217
  return m.PdfTools;
@@ -73008,39 +75223,39 @@ var asyncComponents = [
73008
75223
  }],
73009
75224
  // ========== ecmapp/Wflowform 工作流表单子组件 → chunk: m-wflow-form ==========
73010
75225
  ['Attachment', function () {
73011
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75226
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73012
75227
  return m.Attachment;
73013
75228
  });
73014
75229
  }], ['BodyFile', function () {
73015
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75230
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73016
75231
  return m.BodyFile;
73017
75232
  });
73018
75233
  }], ['HandleIdea', function () {
73019
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75234
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73020
75235
  return m.HandleIdea;
73021
75236
  });
73022
75237
  }], ['SelectOuterDeputy', function () {
73023
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75238
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73024
75239
  return m.SelectOuterDeputy;
73025
75240
  });
73026
75241
  }], ['SubmitHandle', function () {
73027
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75242
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73028
75243
  return m.SubmitHandle;
73029
75244
  });
73030
75245
  }], ['SubmitDialog', function () {
73031
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75246
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73032
75247
  return m.SubmitDialog;
73033
75248
  });
73034
75249
  }], ['ShortcutProcessing', function () {
73035
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75250
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73036
75251
  return m.ShortcutProcessing;
73037
75252
  });
73038
75253
  }], ['WfNodelogList', function () {
73039
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75254
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73040
75255
  return m.WfNodelogList;
73041
75256
  });
73042
75257
  }], ['WriteToReadIdea', function () {
73043
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431)).then(function (m) {
75258
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280)).then(function (m) {
73044
75259
  return m.WriteToReadIdea;
73045
75260
  });
73046
75261
  }]];
@@ -73050,6 +75265,11 @@ var mappaio_install = function install(Vue) {
73050
75265
  if (install.installed) return;
73051
75266
  install.installed = true;
73052
75267
 
75268
+ // vant Toast 默认 z-index 为 2000,会低于 PopupDialog(van-popup) 自增的弹层层级,全局提高,避免弹层内提示被遮挡
75269
+ toast.setDefaultOptions({
75270
+ zIndex: 9999
75271
+ });
75272
+
73053
75273
  // 1. 同步注册核心组件
73054
75274
  mappaio_components.map(function (component) {
73055
75275
  Vue.use(component);
@@ -73093,7 +75313,7 @@ var WfengineModule = function WfengineModule() {
73093
75313
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8838));
73094
75314
  };
73095
75315
  var WflowformModule = function WflowformModule() {
73096
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 431));
75316
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 280));
73097
75317
  };
73098
75318
 
73099
75319
  // ---------- 重型功能(PDF/富文本,仅特定页面使用) ----------
@@ -73108,7 +75328,7 @@ var PdfViewerModule = function PdfViewerModule() {
73108
75328
  });
73109
75329
  };
73110
75330
  var RichtextEditorModule = function RichtextEditorModule() {
73111
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9733));
75331
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 7669));
73112
75332
  };
73113
75333
  ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
73114
75334