ecinc-cloud-mappaio 9.7.61 → 9.7.64

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.
@@ -9013,7 +9013,7 @@ var PdfViewer = showViewer;
9013
9013
 
9014
9014
  /***/ }),
9015
9015
 
9016
- /***/ 9323:
9016
+ /***/ 8953:
9017
9017
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9018
9018
 
9019
9019
  "use strict";
@@ -9025,7 +9025,7 @@ __webpack_require__.d(__webpack_exports__, {
9025
9025
  "default": function() { return /* binding */ RichtextEditor; }
9026
9026
  });
9027
9027
 
9028
- ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=2d23655c&scoped=true
9028
+ ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=4bda8a18&scoped=true
9029
9029
  var render = function render() {
9030
9030
  var _vm = this,
9031
9031
  _c = _vm._self._c;
@@ -9037,7 +9037,7 @@ var render = function render() {
9037
9037
  "id": "richtext"
9038
9038
  }
9039
9039
  }), _vm.voiceInputEnabled ? _c('div', {
9040
- staticClass: "voice-input-entry",
9040
+ staticClass: "voice-input-btn",
9041
9041
  style: _vm.voiceBtnStyle,
9042
9042
  on: {
9043
9043
  "touchstart": function touchstart($event) {
@@ -9054,7 +9054,7 @@ var render = function render() {
9054
9054
  }
9055
9055
  }
9056
9056
  }, [_c('svg', {
9057
- staticClass: "voice-input-entry-icon",
9057
+ staticClass: "voice-input-icon",
9058
9058
  attrs: {
9059
9059
  "viewBox": "0 0 1024 1024",
9060
9060
  "fill": "currentColor",
@@ -9068,7 +9068,7 @@ var render = function render() {
9068
9068
  attrs: {
9069
9069
  "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"
9070
9070
  }
9071
- })]), _c('span', [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceInput', '语音输入')))])]) : _vm._e(), _c('VoiceInputDialog', {
9071
+ })])]) : _vm._e(), _c('VoiceInputDialog', {
9072
9072
  attrs: {
9073
9073
  "visible": _vm.voiceDialogVisible
9074
9074
  },
@@ -9125,15 +9125,17 @@ var staticRenderFns = [];
9125
9125
  editor: null,
9126
9126
  voiceDialogVisible: false,
9127
9127
  editorReadonly: false,
9128
+ voiceEnvSupported: false,
9129
+ // 当前环境是否支持语音输入
9128
9130
  voiceBtnX: null,
9129
9131
  voiceBtnY: null,
9130
9132
  voiceBtnMoved: false
9131
9133
  };
9132
9134
  },
9133
9135
  computed: {
9134
- // 语音输入按钮显示条件:voiceInput属性为true且编辑器可编辑
9136
+ // 语音输入按钮显示条件:voiceInput属性为true、编辑器可编辑且当前环境支持语音输入
9135
9137
  voiceInputEnabled: function voiceInputEnabled() {
9136
- return this.voiceInput && !this.editorReadonly;
9138
+ return this.voiceInput && !this.editorReadonly && this.voiceEnvSupported;
9137
9139
  },
9138
9140
  // 按钮定位样式:未拖拽时CSS默认贴在正文输入框右下角,拖拽后按记录坐标fixed定位
9139
9141
  voiceBtnStyle: function voiceBtnStyle() {
@@ -9295,6 +9297,7 @@ var staticRenderFns = [];
9295
9297
  this.editor.disable();
9296
9298
  this.editorReadonly = true;
9297
9299
  }
9300
+ this.initVoiceInputEnabled();
9298
9301
  // 初始将语音按钮定位到正文输入框右下角;若此时布局未完成则延时重试
9299
9302
  this.$nextTick(function () {
9300
9303
  _this.placeVoiceBtnDefault();
@@ -9314,12 +9317,32 @@ var staticRenderFns = [];
9314
9317
  this.voiceBtnMoved = false;
9315
9318
  },
9316
9319
  openVoiceDialog: function openVoiceDialog() {
9317
- this.voiceDialogVisible = true;
9320
+ var _this2 = this;
9321
+ if (window.isSecureContext) {
9322
+ this.voiceDialogVisible = true;
9323
+ } else if (window.mappType === 'ecinc') {
9324
+ window.voiceInputCallback = function (text) {
9325
+ return _this2.onVoiceConfirm(text);
9326
+ };
9327
+ this.$wv.streamRecordRecognize('voiceInputCallback');
9328
+ }
9329
+ },
9330
+ // 检测语音输入按钮可用性:未配置window.voiceToWord时需https/localhost安全上下文且浏览器支持Web Speech API,否则不显示按钮
9331
+ // 后端转写时window.voiceToWord配置为'/voice/recognize/toText',由网关路由到eccloud-clientms
9332
+ initVoiceInputEnabled: function initVoiceInputEnabled() {
9333
+ var voiceToWord = window.voiceToWord;
9334
+ if (voiceToWord && typeof voiceToWord === 'string' && voiceToWord !== 'browser') {
9335
+ // 后端接口转文字:需getUserMedia录音(同样仅安全上下文下可用)
9336
+ this.voiceEnvSupported = !!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) || window.mappType === 'ecinc';
9337
+ } else {
9338
+ // 浏览器直转文字:需安全上下文且支持SpeechRecognition
9339
+ this.voiceEnvSupported = window.isSecureContext === true && ('webkitSpeechRecognition' in window || 'SpeechRecognition' in window);
9340
+ }
9318
9341
  },
9319
9342
  // 计算正文输入框右下角的默认位置(fixed视口坐标)
9320
9343
  placeVoiceBtnDefault: function placeVoiceBtnDefault() {
9321
9344
  if (this.voiceBtnMoved || !this.$el) return;
9322
- var btn = this.$el.querySelector('.voice-input-entry');
9345
+ var btn = this.$el.querySelector('.voice-input-btn');
9323
9346
  if (!btn) return;
9324
9347
  var rect = this.$el.getBoundingClientRect();
9325
9348
  // 容器或按钮尚未完成布局(尺寸为0)时跳过,避免算出负坐标导致按钮飘到屏外,保持CSS默认位置
@@ -9369,6 +9392,7 @@ var staticRenderFns = [];
9369
9392
  },
9370
9393
  // 语音识别完成回调:识别文本追加到编辑器现有内容末尾
9371
9394
  onVoiceConfirm: function onVoiceConfirm(text) {
9395
+ if (!text) return;
9372
9396
  var currentHtml = this.editor.txt.html();
9373
9397
  var newHtml = currentHtml ? currentHtml + text : text;
9374
9398
  this.editor.txt.html(newHtml);
@@ -9416,9 +9440,9 @@ var staticRenderFns = [];
9416
9440
  });
9417
9441
  ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=script&lang=js
9418
9442
  /* harmony default export */ var RichtextEditor_srcvue_type_script_lang_js = (srcvue_type_script_lang_js);
9419
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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=2d23655c&prod&scoped=true&lang=scss
9420
- var srcvue_type_style_index_0_id_2d23655c_prod_scoped_true_lang_scss = __webpack_require__(2488);
9421
- ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=style&index=0&id=2d23655c&prod&scoped=true&lang=scss
9443
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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=4bda8a18&prod&scoped=true&lang=scss
9444
+ var srcvue_type_style_index_0_id_4bda8a18_prod_scoped_true_lang_scss = __webpack_require__(1035);
9445
+ ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=style&index=0&id=4bda8a18&prod&scoped=true&lang=scss
9422
9446
 
9423
9447
  // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
9424
9448
  var componentNormalizer = __webpack_require__(1656);
@@ -9437,7 +9461,7 @@ var component = (0,componentNormalizer/* default */.A)(
9437
9461
  staticRenderFns,
9438
9462
  false,
9439
9463
  null,
9440
- "2d23655c",
9464
+ "4bda8a18",
9441
9465
  null
9442
9466
 
9443
9467
  )
@@ -9454,7 +9478,7 @@ src.install = function (Vue) {
9454
9478
 
9455
9479
  /***/ }),
9456
9480
 
9457
- /***/ 9784:
9481
+ /***/ 5471:
9458
9482
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9459
9483
 
9460
9484
  "use strict";
@@ -13474,8 +13498,8 @@ var SelectOuterDeputy_component = (0,componentNormalizer/* default */.A)(
13474
13498
  )
13475
13499
 
13476
13500
  /* harmony default export */ var SelectOuterDeputy = (SelectOuterDeputy_component.exports);
13477
- ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=5dd520b7&scoped=true
13478
- var SubmitHandlevue_type_template_id_5dd520b7_scoped_true_render = function render() {
13501
+ ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=2270b394&scoped=true
13502
+ var SubmitHandlevue_type_template_id_2270b394_scoped_true_render = function render() {
13479
13503
  var _vm = this,
13480
13504
  _c = _vm._self._c;
13481
13505
  return _vm.initiated ? _c('div', {
@@ -14260,7 +14284,7 @@ var SubmitHandlevue_type_template_id_5dd520b7_scoped_true_render = function rend
14260
14284
  }
14261
14285
  })], 2) : _vm._e();
14262
14286
  };
14263
- var SubmitHandlevue_type_template_id_5dd520b7_scoped_true_staticRenderFns = [];
14287
+ var SubmitHandlevue_type_template_id_2270b394_scoped_true_staticRenderFns = [];
14264
14288
 
14265
14289
  ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=96b6ee30&scoped=true
14266
14290
  var WfTaskNodevue_type_template_id_96b6ee30_scoped_true_render = function render() {
@@ -16452,7 +16476,6 @@ var VoiceInputDialog_component = (0,componentNormalizer/* default */.A)(
16452
16476
  function SubmitHandlevue_type_script_lang_js_typeof(o) { "@babel/helpers - typeof"; return SubmitHandlevue_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; }, SubmitHandlevue_type_script_lang_js_typeof(o); }
16453
16477
  var voiceInputVm = null;
16454
16478
  window.voiceInputCallback = function (text) {
16455
- alert('语音输入:' + text);
16456
16479
  if (voiceInputVm && voiceInputVm.submitHandle) {
16457
16480
  voiceInputVm.$set(voiceInputVm.submitHandle, 'curUserIdea', text);
16458
16481
  voiceInputVm.$forceUpdate();
@@ -17484,9 +17507,9 @@ var moment = __webpack_require__(5093);
17484
17507
  });
17485
17508
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=script&lang=js
17486
17509
  /* harmony default export */ var src_SubmitHandlevue_type_script_lang_js = (SubmitHandlevue_type_script_lang_js);
17487
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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=5dd520b7&prod&scoped=true&lang=scss
17488
- var SubmitHandlevue_type_style_index_0_id_5dd520b7_prod_scoped_true_lang_scss = __webpack_require__(8986);
17489
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=style&index=0&id=5dd520b7&prod&scoped=true&lang=scss
17510
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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=2270b394&prod&scoped=true&lang=scss
17511
+ var SubmitHandlevue_type_style_index_0_id_2270b394_prod_scoped_true_lang_scss = __webpack_require__(3564);
17512
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=style&index=0&id=2270b394&prod&scoped=true&lang=scss
17490
17513
 
17491
17514
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue
17492
17515
 
@@ -17499,11 +17522,11 @@ var SubmitHandlevue_type_style_index_0_id_5dd520b7_prod_scoped_true_lang_scss =
17499
17522
 
17500
17523
  var SubmitHandle_component = (0,componentNormalizer/* default */.A)(
17501
17524
  src_SubmitHandlevue_type_script_lang_js,
17502
- SubmitHandlevue_type_template_id_5dd520b7_scoped_true_render,
17503
- SubmitHandlevue_type_template_id_5dd520b7_scoped_true_staticRenderFns,
17525
+ SubmitHandlevue_type_template_id_2270b394_scoped_true_render,
17526
+ SubmitHandlevue_type_template_id_2270b394_scoped_true_staticRenderFns,
17504
17527
  false,
17505
17528
  null,
17506
- "5dd520b7",
17529
+ "2270b394",
17507
17530
  null
17508
17531
 
17509
17532
  )
@@ -23535,7 +23558,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".van-switch-field[data-v-61ed46da]{pos
23535
23558
 
23536
23559
  /***/ }),
23537
23560
 
23538
- /***/ 7855:
23561
+ /***/ 7616:
23539
23562
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
23540
23563
 
23541
23564
  "use strict";
@@ -23549,7 +23572,7 @@ __webpack_require__.r(__webpack_exports__);
23549
23572
 
23550
23573
  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()));
23551
23574
  // Module
23552
- ___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}", ""]);
23575
+ ___CSS_LOADER_EXPORT___.push([module.id, ".van-textarea-field[data-v-6b11ef8a]{position:relative}.van-textarea-field[data-v-6b11ef8a] .van-field__label{width:90%!important}.van-textarea-field[data-v-6b11ef8a]: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-6b11ef8a]{width:100%;white-space:pre-wrap}.richtext-content[data-v-6b11ef8a] img{-o-object-fit:contain;object-fit:contain;max-width:100%!important;height:auto!important}.richtext-content-hidden[data-v-6b11ef8a]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.voice-input-btn[data-v-6b11ef8a]{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}.voice-input-btn .voice-input-icon[data-v-6b11ef8a]{width:16px;height:16px}.voice-input-btn[data-v-6b11ef8a]:active{background-color:#ebedf0;color:#1989fa}.has-voice-btn[data-v-6b11ef8a] textarea.van-field__control{padding-right:30px}.van-textarea-field[data-v-6b11ef8a] .field-flSubject .richtext-content,.van-textarea-field[data-v-6b11ef8a] .field-flSubject textarea.van-field__control{font-size:16px;font-weight:700}", ""]);
23553
23576
  // Exports
23554
23577
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
23555
23578
 
@@ -23877,7 +23900,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-02d89fca] .van-nav-bar__title{
23877
23900
 
23878
23901
  /***/ }),
23879
23902
 
23880
- /***/ 7291:
23903
+ /***/ 9268:
23881
23904
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
23882
23905
 
23883
23906
  "use strict";
@@ -23891,7 +23914,7 @@ __webpack_require__.r(__webpack_exports__);
23891
23914
 
23892
23915
  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()));
23893
23916
  // Module
23894
- ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-entry[data-v-2d23655c]{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-2d23655c]{width:16px;height:16px;margin-right:4px}.voice-input-entry[data-v-2d23655c]:active{opacity:.8}#richtext[data-v-2d23655c]{overflow-x:hidden;background:#fff;overflow-wrap:break-word;word-break:break-word}#richtext[data-v-2d23655c] .w-e-toolbar{-ms-flex-wrap:wrap;flex-wrap:wrap;border:0!important;border-bottom:1px solid #eee!important}#richtext[data-v-2d23655c] .w-e-toolbar .w-e-menu i{color:#333}#richtext[data-v-2d23655c] .w-e-toolbar .w-e-droplist ul.w-e-list{max-height:150px;overflow-y:auto}#richtext[data-v-2d23655c] .w-e-text-container{border:0!important;margin:5px}#richtext[data-v-2d23655c] .w-e-text-container .w-e-text{padding:0;font-size:14px}#richtext[data-v-2d23655c] .w-e-text-container .placeholder{left:0;top:0}", ""]);
23917
+ ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-btn[data-v-4bda8a18]{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;width:28px;height:28px;border-radius:50%;background-color:#f2f3f5;color:#646566;-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-btn .voice-input-icon[data-v-4bda8a18]{width:16px;height:16px}.voice-input-btn[data-v-4bda8a18]:active{background-color:#ebedf0;color:#1989fa}#richtext[data-v-4bda8a18]{overflow-x:hidden;background:#fff;overflow-wrap:break-word;word-break:break-word}#richtext[data-v-4bda8a18] .w-e-toolbar{-ms-flex-wrap:wrap;flex-wrap:wrap;border:0!important;border-bottom:1px solid #eee!important}#richtext[data-v-4bda8a18] .w-e-toolbar .w-e-menu i{color:#333}#richtext[data-v-4bda8a18] .w-e-toolbar .w-e-droplist ul.w-e-list{max-height:150px;overflow-y:auto}#richtext[data-v-4bda8a18] .w-e-text-container{border:0!important;margin:5px}#richtext[data-v-4bda8a18] .w-e-text-container .w-e-text{padding:0;font-size:14px}#richtext[data-v-4bda8a18] .w-e-text-container .placeholder{left:0;top:0}", ""]);
23895
23918
  // Exports
23896
23919
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
23897
23920
 
@@ -24192,7 +24215,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".submit-dialog-container[data-v-9c230b
24192
24215
 
24193
24216
  /***/ }),
24194
24217
 
24195
- /***/ 278:
24218
+ /***/ 4859:
24196
24219
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
24197
24220
 
24198
24221
  "use strict";
@@ -24211,7 +24234,7 @@ var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require
24211
24234
  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()));
24212
24235
  var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);
24213
24236
  // Module
24214
- ___CSS_LOADER_EXPORT___.push([module.id, ".submit-handle-container .idea-button-container .van-cell__value[data-v-5dd520b7]{text-align:right}.submit-handle-container .idea-button-container .van-cell__value .van-button[data-v-5dd520b7]{margin-right:0;margin-left:5px}.submit-handle-container .curIdea-filed[data-v-5dd520b7] .van-cell__title,.submit-handle-container .curIdea-filed[data-v-5dd520b7]:after{display:none}.submit-handle-container .idea-input-wrap[data-v-5dd520b7]{position:relative}.submit-handle-container .idea-input-wrap[data-v-5dd520b7] .curIdea-filed textarea{padding-right:30px}.submit-handle-container .idea-input-wrap .voice-input-btn[data-v-5dd520b7]{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-5dd520b7]{width:16px;height:16px}.submit-handle-container .idea-input-wrap .voice-input-btn[data-v-5dd520b7]:active{background-color:#ebedf0;color:#1989fa}.submit-handle-container .clearfix[data-v-5dd520b7]:after{content:\".\";display:block;height:0;clear:both;visibility:hidden}.submit-handle-container[data-v-5dd520b7] .van-radio-group .van-cell__title{font-weight:400!important}.submit-handle-container .van-wflow-operate-detail-cell[data-v-5dd520b7]:after{border-top-width:0}.submit-handle-container .van-wflow-operate-detail-cell-path[data-v-5dd520b7]:after{border-width:1px;-webkit-transform:scale(.5);transform:scale(.5)}.submit-handle-container[data-v-5dd520b7] .tnLimit-container .van-field{width:50px;display:inline-block;padding:0}.submit-handle-container[data-v-5dd520b7] .tnLimit-container .van-field .van-field__body input{text-align:center}.submit-handle-container[data-v-5dd520b7] .tnLimit-container .van-field__body:after{color:#323233;content:attr(value-suffix);word-break:keep-all}.submit-handle-container .delete-icon[data-v-5dd520b7]{display:-webkit-box;display:-ms-flexbox;display:flex;float:right}.submit-handle-container .delete-icon .van-icon[data-v-5dd520b7]{line-height:24px;margin-left:5px;font-size:16px}.selectBox_title[data-v-5dd520b7]{height:45px;line-height:45px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:14px}.selectBox_content[data-v-5dd520b7],.selectBox_title[data-v-5dd520b7]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 15px}.selectBox_content[data-v-5dd520b7]{-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-5dd520b7]{border:1px solid #f1f1f1}.selectBox_content .selectBox_content_son[data-v-5dd520b7],.selectBox_content .selectBox_content_son_change[data-v-5dd520b7]{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-5dd520b7]{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-5dd520b7]{white-space:nowrap;overflow:hidden;overflow-x:scroll;-webkit-overflow-scrolling:touch}.selectBox_content_sonall[data-v-5dd520b7]:nth-child(4n){margin-right:0}.selectBox_content_sonall[data-v-5dd520b7]::-webkit-scrollbar{display:none}.viewAllComments[data-v-5dd520b7]{height:45px;line-height:45px;text-align:center;color:#b7b7b7;font-size:12px;background:#fff;display:block;width:100%}", ""]);
24237
+ ___CSS_LOADER_EXPORT___.push([module.id, ".submit-handle-container .idea-button-container .van-cell__value[data-v-2270b394]{text-align:right}.submit-handle-container .idea-button-container .van-cell__value .van-button[data-v-2270b394]{margin-right:0;margin-left:5px}.submit-handle-container .curIdea-filed[data-v-2270b394] .van-cell__title,.submit-handle-container .curIdea-filed[data-v-2270b394]:after{display:none}.submit-handle-container .idea-input-wrap[data-v-2270b394]{position:relative}.submit-handle-container .idea-input-wrap[data-v-2270b394] .curIdea-filed textarea{padding-right:30px}.submit-handle-container .idea-input-wrap .voice-input-btn[data-v-2270b394]{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-2270b394]{width:16px;height:16px}.submit-handle-container .idea-input-wrap .voice-input-btn[data-v-2270b394]:active{background-color:#ebedf0;color:#1989fa}.submit-handle-container .clearfix[data-v-2270b394]:after{content:\".\";display:block;height:0;clear:both;visibility:hidden}.submit-handle-container[data-v-2270b394] .van-radio-group .van-cell__title{font-weight:400!important}.submit-handle-container .van-wflow-operate-detail-cell[data-v-2270b394]:after{border-top-width:0}.submit-handle-container .van-wflow-operate-detail-cell-path[data-v-2270b394]:after{border-width:1px;-webkit-transform:scale(.5);transform:scale(.5)}.submit-handle-container[data-v-2270b394] .tnLimit-container .van-field{width:50px;display:inline-block;padding:0}.submit-handle-container[data-v-2270b394] .tnLimit-container .van-field .van-field__body input{text-align:center}.submit-handle-container[data-v-2270b394] .tnLimit-container .van-field__body:after{color:#323233;content:attr(value-suffix);word-break:keep-all}.submit-handle-container .delete-icon[data-v-2270b394]{display:-webkit-box;display:-ms-flexbox;display:flex;float:right}.submit-handle-container .delete-icon .van-icon[data-v-2270b394]{line-height:24px;margin-left:5px;font-size:16px}.selectBox_title[data-v-2270b394]{height:45px;line-height:45px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:14px}.selectBox_content[data-v-2270b394],.selectBox_title[data-v-2270b394]{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 15px}.selectBox_content[data-v-2270b394]{-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-2270b394]{border:1px solid #f1f1f1}.selectBox_content .selectBox_content_son[data-v-2270b394],.selectBox_content .selectBox_content_son_change[data-v-2270b394]{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-2270b394]{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-2270b394]{white-space:nowrap;overflow:hidden;overflow-x:scroll;-webkit-overflow-scrolling:touch}.selectBox_content_sonall[data-v-2270b394]:nth-child(4n){margin-right:0}.selectBox_content_sonall[data-v-2270b394]::-webkit-scrollbar{display:none}.viewAllComments[data-v-2270b394]{height:45px;line-height:45px;text-align:center;color:#b7b7b7;font-size:12px;background:#fff;display:block;width:100%}", ""]);
24215
24238
  // Exports
24216
24239
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
24217
24240
 
@@ -51405,19 +51428,19 @@ var update = add("72d06f4a", content, true, {"sourceMap":false,"shadowMode":fals
51405
51428
 
51406
51429
  /***/ }),
51407
51430
 
51408
- /***/ 6150:
51431
+ /***/ 4889:
51409
51432
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51410
51433
 
51411
51434
  // style-loader: Adds some css to the DOM by adding a <style> tag
51412
51435
 
51413
51436
  // load the styles
51414
- var content = __webpack_require__(7855);
51437
+ var content = __webpack_require__(7616);
51415
51438
  if(content.__esModule) content = content.default;
51416
51439
  if(typeof content === 'string') content = [[module.id, content, '']];
51417
51440
  if(content.locals) module.exports = content.locals;
51418
51441
  // add the styles to the DOM
51419
51442
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51420
- var update = add("effdccb0", content, true, {"sourceMap":false,"shadowMode":false});
51443
+ var update = add("44a4e7be", content, true, {"sourceMap":false,"shadowMode":false});
51421
51444
 
51422
51445
  /***/ }),
51423
51446
 
@@ -51661,19 +51684,19 @@ var update = add("17ee992d", content, true, {"sourceMap":false,"shadowMode":fals
51661
51684
 
51662
51685
  /***/ }),
51663
51686
 
51664
- /***/ 2488:
51687
+ /***/ 1035:
51665
51688
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51666
51689
 
51667
51690
  // style-loader: Adds some css to the DOM by adding a <style> tag
51668
51691
 
51669
51692
  // load the styles
51670
- var content = __webpack_require__(7291);
51693
+ var content = __webpack_require__(9268);
51671
51694
  if(content.__esModule) content = content.default;
51672
51695
  if(typeof content === 'string') content = [[module.id, content, '']];
51673
51696
  if(content.locals) module.exports = content.locals;
51674
51697
  // add the styles to the DOM
51675
51698
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51676
- var update = add("e87a6008", content, true, {"sourceMap":false,"shadowMode":false});
51699
+ var update = add("15e00d77", content, true, {"sourceMap":false,"shadowMode":false});
51677
51700
 
51678
51701
  /***/ }),
51679
51702
 
@@ -51901,19 +51924,19 @@ var update = add("72ae29a9", content, true, {"sourceMap":false,"shadowMode":fals
51901
51924
 
51902
51925
  /***/ }),
51903
51926
 
51904
- /***/ 8986:
51927
+ /***/ 3564:
51905
51928
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51906
51929
 
51907
51930
  // style-loader: Adds some css to the DOM by adding a <style> tag
51908
51931
 
51909
51932
  // load the styles
51910
- var content = __webpack_require__(278);
51933
+ var content = __webpack_require__(4859);
51911
51934
  if(content.__esModule) content = content.default;
51912
51935
  if(typeof content === 'string') content = [[module.id, content, '']];
51913
51936
  if(content.locals) module.exports = content.locals;
51914
51937
  // add the styles to the DOM
51915
51938
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51916
- var update = add("acadff10", content, true, {"sourceMap":false,"shadowMode":false});
51939
+ var update = add("71bec1ca", content, true, {"sourceMap":false,"shadowMode":false});
51917
51940
 
51918
51941
  /***/ }),
51919
51942
 
@@ -72268,8 +72291,8 @@ var SwitchField_component = (0,componentNormalizer/* default */.A)(
72268
72291
  )
72269
72292
 
72270
72293
  /* harmony default export */ var SwitchField = (SwitchField_component.exports);
72271
- ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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
72272
- var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function render() {
72294
+ ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=6b11ef8a&scoped=true
72295
+ var TextareaFieldvue_type_template_id_6b11ef8a_scoped_true_render = function render() {
72273
72296
  var _vm = this,
72274
72297
  _c = _vm._self._c;
72275
72298
  return _vm.isShowField ? _c('div', {
@@ -72279,7 +72302,10 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72279
72302
  value: _vm.model,
72280
72303
  expression: "model"
72281
72304
  }],
72282
- staticClass: "van-textarea-field"
72305
+ staticClass: "van-textarea-field",
72306
+ class: {
72307
+ 'has-voice-btn': _vm.voiceInputEnabled
72308
+ }
72283
72309
  }, [_c('validation-provider', [_c('van-field', {
72284
72310
  staticClass: "van-cell-field-title",
72285
72311
  class: 'field-' + _vm.model,
@@ -72363,7 +72389,7 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72363
72389
  }
72364
72390
  }
72365
72391
  }, [_vm._v(_vm._s(_vm.textName))])]) : _vm._e(), _vm.voiceInputEnabled ? _c('div', {
72366
- staticClass: "voice-input-entry",
72392
+ staticClass: "voice-input-btn",
72367
72393
  on: {
72368
72394
  "click": function click($event) {
72369
72395
  $event.stopPropagation();
@@ -72371,7 +72397,7 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72371
72397
  }
72372
72398
  }
72373
72399
  }, [_c('svg', {
72374
- staticClass: "voice-input-entry-icon",
72400
+ staticClass: "voice-input-icon",
72375
72401
  attrs: {
72376
72402
  "viewBox": "0 0 1024 1024",
72377
72403
  "fill": "currentColor",
@@ -72385,7 +72411,7 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72385
72411
  attrs: {
72386
72412
  "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"
72387
72413
  }
72388
- })]), _c('span', [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceInput', '语音输入')))])]) : _vm._e(), _c('VoiceInputDialog', {
72414
+ })])]) : _vm._e(), _c('VoiceInputDialog', {
72389
72415
  attrs: {
72390
72416
  "visible": _vm.voiceDialogVisible
72391
72417
  },
@@ -72397,7 +72423,7 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72397
72423
  }
72398
72424
  })], 1) : _vm._e();
72399
72425
  };
72400
- var TextareaFieldvue_type_template_id_27eb631a_scoped_true_staticRenderFns = [];
72426
+ var TextareaFieldvue_type_template_id_6b11ef8a_scoped_true_staticRenderFns = [];
72401
72427
 
72402
72428
  ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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
72403
72429
  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); }
@@ -72479,13 +72505,14 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
72479
72505
  updateField: false,
72480
72506
  inputValue: '',
72481
72507
  nodeFieldReadOnly: false,
72482
- voiceDialogVisible: false
72508
+ voiceDialogVisible: false,
72509
+ voiceEnvSupported: false // 当前环境是否支持语音输入
72483
72510
  };
72484
72511
  },
72485
72512
  computed: TextareaFieldvue_type_script_lang_js_objectSpread(TextareaFieldvue_type_script_lang_js_objectSpread({}, (0,vuex_esm/* mapGetters */.L8)(['loginUser'])), {}, {
72486
- // 语音输入按钮显示条件:voice-input属性为true、字段可编辑且非元素级只读
72513
+ // 语音输入按钮显示条件:voice-input属性为true、字段可编辑、非元素级只读且当前环境支持语音输入
72487
72514
  voiceInputEnabled: function voiceInputEnabled() {
72488
- return this.voiceInput && !this.readonly && !this.nodeFieldReadOnly && this.elementReadonly !== 1;
72515
+ return this.voiceInput && !this.readonly && !this.nodeFieldReadOnly && this.elementReadonly !== 1 && this.voiceEnvSupported;
72489
72516
  },
72490
72517
  optionGenerateUrl: function optionGenerateUrl() {
72491
72518
  var _this2 = this;
@@ -72548,6 +72575,7 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
72548
72575
  }
72549
72576
  }
72550
72577
  this.nodeFieldReadOnly = this.readonly;
72578
+ this.initVoiceInputEnabled();
72551
72579
  },
72552
72580
  beforeDestroy: function beforeDestroy() {
72553
72581
  this.fieldDom.removeEventListener('change', this.initVerify);
@@ -72800,12 +72828,33 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
72800
72828
  _this6.updateField = false;
72801
72829
  });
72802
72830
  },
72803
- // 打开语音输入弹窗
72831
+ // 检测语音输入按钮可用性:未配置window.voiceToWord时需https/localhost安全上下文且浏览器支持Web Speech API,否则不显示按钮
72832
+ // 后端转写时window.voiceToWord配置为'/voice/recognize/toText',由网关路由到eccloud-clientms
72833
+ initVoiceInputEnabled: function initVoiceInputEnabled() {
72834
+ var voiceToWord = window.voiceToWord;
72835
+ if (voiceToWord && typeof voiceToWord === 'string' && voiceToWord !== 'browser') {
72836
+ // 后端接口转文字:需getUserMedia录音(同样仅安全上下文下可用)
72837
+ this.voiceEnvSupported = !!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) || window.mappType === 'ecinc';
72838
+ } else {
72839
+ // 浏览器直转文字:需安全上下文且支持SpeechRecognition
72840
+ this.voiceEnvSupported = window.isSecureContext === true && ('webkitSpeechRecognition' in window || 'SpeechRecognition' in window);
72841
+ }
72842
+ },
72843
+ // 打开语音输入弹窗:安全上下文下打开弹窗,易臣客户端WebView下走原生录音识别,识别结果经window.voiceInputCallback回写
72804
72844
  openVoiceDialog: function openVoiceDialog() {
72805
- this.voiceDialogVisible = true;
72845
+ var _this7 = this;
72846
+ if (window.isSecureContext) {
72847
+ this.voiceDialogVisible = true;
72848
+ } else if (window.mappType === 'ecinc') {
72849
+ window.voiceInputCallback = function (text) {
72850
+ return _this7.onVoiceConfirm(text);
72851
+ };
72852
+ this.$wv.streamRecordRecognize('voiceInputCallback');
72853
+ }
72806
72854
  },
72807
72855
  // 语音识别完成回调:识别文本追加到现有内容末尾,同步更新字段值
72808
72856
  onVoiceConfirm: function onVoiceConfirm(text) {
72857
+ if (!text) return;
72809
72858
  this.inputValue = this.inputValue ? this.inputValue + text : text;
72810
72859
  this.setFieldValue(this.inputValue);
72811
72860
  },
@@ -72836,9 +72885,9 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
72836
72885
  });
72837
72886
  ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=script&lang=js
72838
72887
  /* harmony default export */ var FormField_TextareaFieldvue_type_script_lang_js = (TextareaFieldvue_type_script_lang_js);
72839
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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
72840
- var TextareaFieldvue_type_style_index_0_id_27eb631a_prod_scoped_true_lang_scss = __webpack_require__(6150);
72841
- ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=style&index=0&id=27eb631a&prod&scoped=true&lang=scss
72888
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-65.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-65.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-65.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-65.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=6b11ef8a&prod&scoped=true&lang=scss
72889
+ var TextareaFieldvue_type_style_index_0_id_6b11ef8a_prod_scoped_true_lang_scss = __webpack_require__(4889);
72890
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=style&index=0&id=6b11ef8a&prod&scoped=true&lang=scss
72842
72891
 
72843
72892
  ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue
72844
72893
 
@@ -72851,11 +72900,11 @@ var TextareaFieldvue_type_style_index_0_id_27eb631a_prod_scoped_true_lang_scss =
72851
72900
 
72852
72901
  var TextareaField_component = (0,componentNormalizer/* default */.A)(
72853
72902
  FormField_TextareaFieldvue_type_script_lang_js,
72854
- TextareaFieldvue_type_template_id_27eb631a_scoped_true_render,
72855
- TextareaFieldvue_type_template_id_27eb631a_scoped_true_staticRenderFns,
72903
+ TextareaFieldvue_type_template_id_6b11ef8a_scoped_true_render,
72904
+ TextareaFieldvue_type_template_id_6b11ef8a_scoped_true_staticRenderFns,
72856
72905
  false,
72857
72906
  null,
72858
- "27eb631a",
72907
+ "6b11ef8a",
72859
72908
  null
72860
72909
 
72861
72910
  )
@@ -76155,7 +76204,7 @@ var mappaio_components = [app, auth, eventBus, user, Building, Basicform, Basicf
76155
76204
  var asyncComponents = [
76156
76205
  // ========== ecmapp 业务功能 ==========
76157
76206
  ['RichtextEditor', function () {
76158
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9323));
76207
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8953));
76159
76208
  }], ['PdfTools', function () {
76160
76209
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 7526)).then(function (m) {
76161
76210
  return m.PdfTools;
@@ -76167,43 +76216,43 @@ var asyncComponents = [
76167
76216
  }],
76168
76217
  // ========== ecmapp/Wflowform 工作流表单子组件 → chunk: m-wflow-form ==========
76169
76218
  ['Attachment', function () {
76170
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76219
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76171
76220
  return m.Attachment;
76172
76221
  });
76173
76222
  }], ['BodyFile', function () {
76174
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76223
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76175
76224
  return m.BodyFile;
76176
76225
  });
76177
76226
  }], ['HandleIdea', function () {
76178
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76227
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76179
76228
  return m.HandleIdea;
76180
76229
  });
76181
76230
  }], ['SelectOuterDeputy', function () {
76182
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76231
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76183
76232
  return m.SelectOuterDeputy;
76184
76233
  });
76185
76234
  }], ['SubmitHandle', function () {
76186
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76235
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76187
76236
  return m.SubmitHandle;
76188
76237
  });
76189
76238
  }], ['SubmitDialog', function () {
76190
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76239
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76191
76240
  return m.SubmitDialog;
76192
76241
  });
76193
76242
  }], ['ShortcutProcessing', function () {
76194
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76243
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76195
76244
  return m.ShortcutProcessing;
76196
76245
  });
76197
76246
  }], ['WfNodelogList', function () {
76198
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76247
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76199
76248
  return m.WfNodelogList;
76200
76249
  });
76201
76250
  }], ['WriteToReadIdea', function () {
76202
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76251
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76203
76252
  return m.WriteToReadIdea;
76204
76253
  });
76205
76254
  }], ['VoiceInputDialog', function () {
76206
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784)).then(function (m) {
76255
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471)).then(function (m) {
76207
76256
  return m.VoiceInputDialog;
76208
76257
  });
76209
76258
  }]];
@@ -76261,7 +76310,7 @@ var WfengineModule = function WfengineModule() {
76261
76310
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 6322));
76262
76311
  };
76263
76312
  var WflowformModule = function WflowformModule() {
76264
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9784));
76313
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5471));
76265
76314
  };
76266
76315
 
76267
76316
  // ---------- 重型功能(PDF/富文本,仅特定页面使用) ----------
@@ -76276,7 +76325,7 @@ var PdfViewerModule = function PdfViewerModule() {
76276
76325
  });
76277
76326
  };
76278
76327
  var RichtextEditorModule = function RichtextEditorModule() {
76279
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9323));
76328
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8953));
76280
76329
  };
76281
76330
  ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
76282
76331