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.
@@ -9003,7 +9003,7 @@ var PdfViewer = showViewer;
9003
9003
 
9004
9004
  /***/ }),
9005
9005
 
9006
- /***/ 8071:
9006
+ /***/ 5778:
9007
9007
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9008
9008
 
9009
9009
  "use strict";
@@ -9015,7 +9015,7 @@ __webpack_require__.d(__webpack_exports__, {
9015
9015
  "default": function() { return /* binding */ RichtextEditor; }
9016
9016
  });
9017
9017
 
9018
- ;// 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=2d23655c&scoped=true
9018
+ ;// 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=4bda8a18&scoped=true
9019
9019
  var render = function render() {
9020
9020
  var _vm = this,
9021
9021
  _c = _vm._self._c;
@@ -9027,7 +9027,7 @@ var render = function render() {
9027
9027
  "id": "richtext"
9028
9028
  }
9029
9029
  }), _vm.voiceInputEnabled ? _c('div', {
9030
- staticClass: "voice-input-entry",
9030
+ staticClass: "voice-input-btn",
9031
9031
  style: _vm.voiceBtnStyle,
9032
9032
  on: {
9033
9033
  "touchstart": function touchstart($event) {
@@ -9044,7 +9044,7 @@ var render = function render() {
9044
9044
  }
9045
9045
  }
9046
9046
  }, [_c('svg', {
9047
- staticClass: "voice-input-entry-icon",
9047
+ staticClass: "voice-input-icon",
9048
9048
  attrs: {
9049
9049
  "viewBox": "0 0 1024 1024",
9050
9050
  "fill": "currentColor",
@@ -9058,7 +9058,7 @@ var render = function render() {
9058
9058
  attrs: {
9059
9059
  "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"
9060
9060
  }
9061
- })]), _c('span', [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceInput', '语音输入')))])]) : _vm._e(), _c('VoiceInputDialog', {
9061
+ })])]) : _vm._e(), _c('VoiceInputDialog', {
9062
9062
  attrs: {
9063
9063
  "visible": _vm.voiceDialogVisible
9064
9064
  },
@@ -9115,15 +9115,17 @@ var staticRenderFns = [];
9115
9115
  editor: null,
9116
9116
  voiceDialogVisible: false,
9117
9117
  editorReadonly: false,
9118
+ voiceEnvSupported: false,
9119
+ // 当前环境是否支持语音输入
9118
9120
  voiceBtnX: null,
9119
9121
  voiceBtnY: null,
9120
9122
  voiceBtnMoved: false
9121
9123
  };
9122
9124
  },
9123
9125
  computed: {
9124
- // 语音输入按钮显示条件:voiceInput属性为true且编辑器可编辑
9126
+ // 语音输入按钮显示条件:voiceInput属性为true、编辑器可编辑且当前环境支持语音输入
9125
9127
  voiceInputEnabled: function voiceInputEnabled() {
9126
- return this.voiceInput && !this.editorReadonly;
9128
+ return this.voiceInput && !this.editorReadonly && this.voiceEnvSupported;
9127
9129
  },
9128
9130
  // 按钮定位样式:未拖拽时CSS默认贴在正文输入框右下角,拖拽后按记录坐标fixed定位
9129
9131
  voiceBtnStyle: function voiceBtnStyle() {
@@ -9285,6 +9287,7 @@ var staticRenderFns = [];
9285
9287
  this.editor.disable();
9286
9288
  this.editorReadonly = true;
9287
9289
  }
9290
+ this.initVoiceInputEnabled();
9288
9291
  // 初始将语音按钮定位到正文输入框右下角;若此时布局未完成则延时重试
9289
9292
  this.$nextTick(function () {
9290
9293
  _this.placeVoiceBtnDefault();
@@ -9304,12 +9307,32 @@ var staticRenderFns = [];
9304
9307
  this.voiceBtnMoved = false;
9305
9308
  },
9306
9309
  openVoiceDialog: function openVoiceDialog() {
9307
- this.voiceDialogVisible = true;
9310
+ var _this2 = this;
9311
+ if (window.isSecureContext) {
9312
+ this.voiceDialogVisible = true;
9313
+ } else if (window.mappType === 'ecinc') {
9314
+ window.voiceInputCallback = function (text) {
9315
+ return _this2.onVoiceConfirm(text);
9316
+ };
9317
+ this.$wv.streamRecordRecognize('voiceInputCallback');
9318
+ }
9319
+ },
9320
+ // 检测语音输入按钮可用性:未配置window.voiceToWord时需https/localhost安全上下文且浏览器支持Web Speech API,否则不显示按钮
9321
+ // 后端转写时window.voiceToWord配置为'/voice/recognize/toText',由网关路由到eccloud-clientms
9322
+ initVoiceInputEnabled: function initVoiceInputEnabled() {
9323
+ var voiceToWord = window.voiceToWord;
9324
+ if (voiceToWord && typeof voiceToWord === 'string' && voiceToWord !== 'browser') {
9325
+ // 后端接口转文字:需getUserMedia录音(同样仅安全上下文下可用)
9326
+ this.voiceEnvSupported = !!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) || window.mappType === 'ecinc';
9327
+ } else {
9328
+ // 浏览器直转文字:需安全上下文且支持SpeechRecognition
9329
+ this.voiceEnvSupported = window.isSecureContext === true && ('webkitSpeechRecognition' in window || 'SpeechRecognition' in window);
9330
+ }
9308
9331
  },
9309
9332
  // 计算正文输入框右下角的默认位置(fixed视口坐标)
9310
9333
  placeVoiceBtnDefault: function placeVoiceBtnDefault() {
9311
9334
  if (this.voiceBtnMoved || !this.$el) return;
9312
- var btn = this.$el.querySelector('.voice-input-entry');
9335
+ var btn = this.$el.querySelector('.voice-input-btn');
9313
9336
  if (!btn) return;
9314
9337
  var rect = this.$el.getBoundingClientRect();
9315
9338
  // 容器或按钮尚未完成布局(尺寸为0)时跳过,避免算出负坐标导致按钮飘到屏外,保持CSS默认位置
@@ -9359,6 +9382,7 @@ var staticRenderFns = [];
9359
9382
  },
9360
9383
  // 语音识别完成回调:识别文本追加到编辑器现有内容末尾
9361
9384
  onVoiceConfirm: function onVoiceConfirm(text) {
9385
+ if (!text) return;
9362
9386
  var currentHtml = this.editor.txt.html();
9363
9387
  var newHtml = currentHtml ? currentHtml + text : text;
9364
9388
  this.editor.txt.html(newHtml);
@@ -9406,9 +9430,9 @@ var staticRenderFns = [];
9406
9430
  });
9407
9431
  ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=script&lang=js
9408
9432
  /* harmony default export */ var RichtextEditor_srcvue_type_script_lang_js = (srcvue_type_script_lang_js);
9409
- // 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=2d23655c&prod&scoped=true&lang=scss
9410
- var srcvue_type_style_index_0_id_2d23655c_prod_scoped_true_lang_scss = __webpack_require__(9839);
9411
- ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=style&index=0&id=2d23655c&prod&scoped=true&lang=scss
9433
+ // 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=4bda8a18&prod&scoped=true&lang=scss
9434
+ var srcvue_type_style_index_0_id_4bda8a18_prod_scoped_true_lang_scss = __webpack_require__(7640);
9435
+ ;// CONCATENATED MODULE: ./packages/ecmapp/RichtextEditor/src/index.vue?vue&type=style&index=0&id=4bda8a18&prod&scoped=true&lang=scss
9412
9436
 
9413
9437
  // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
9414
9438
  var componentNormalizer = __webpack_require__(1656);
@@ -9427,7 +9451,7 @@ var component = (0,componentNormalizer/* default */.A)(
9427
9451
  staticRenderFns,
9428
9452
  false,
9429
9453
  null,
9430
- "2d23655c",
9454
+ "4bda8a18",
9431
9455
  null
9432
9456
 
9433
9457
  )
@@ -9444,7 +9468,7 @@ src.install = function (Vue) {
9444
9468
 
9445
9469
  /***/ }),
9446
9470
 
9447
- /***/ 3022:
9471
+ /***/ 2480:
9448
9472
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9449
9473
 
9450
9474
  "use strict";
@@ -13464,8 +13488,8 @@ var SelectOuterDeputy_component = (0,componentNormalizer/* default */.A)(
13464
13488
  )
13465
13489
 
13466
13490
  /* harmony default export */ var SelectOuterDeputy = (SelectOuterDeputy_component.exports);
13467
- ;// 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=5dd520b7&scoped=true
13468
- var SubmitHandlevue_type_template_id_5dd520b7_scoped_true_render = function render() {
13491
+ ;// 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=2270b394&scoped=true
13492
+ var SubmitHandlevue_type_template_id_2270b394_scoped_true_render = function render() {
13469
13493
  var _vm = this,
13470
13494
  _c = _vm._self._c;
13471
13495
  return _vm.initiated ? _c('div', {
@@ -14250,7 +14274,7 @@ var SubmitHandlevue_type_template_id_5dd520b7_scoped_true_render = function rend
14250
14274
  }
14251
14275
  })], 2) : _vm._e();
14252
14276
  };
14253
- var SubmitHandlevue_type_template_id_5dd520b7_scoped_true_staticRenderFns = [];
14277
+ var SubmitHandlevue_type_template_id_2270b394_scoped_true_staticRenderFns = [];
14254
14278
 
14255
14279
  ;// 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=96b6ee30&scoped=true
14256
14280
  var WfTaskNodevue_type_template_id_96b6ee30_scoped_true_render = function render() {
@@ -16442,7 +16466,6 @@ var VoiceInputDialog_component = (0,componentNormalizer/* default */.A)(
16442
16466
  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); }
16443
16467
  var voiceInputVm = null;
16444
16468
  window.voiceInputCallback = function (text) {
16445
- alert('语音输入:' + text);
16446
16469
  if (voiceInputVm && voiceInputVm.submitHandle) {
16447
16470
  voiceInputVm.$set(voiceInputVm.submitHandle, 'curUserIdea', text);
16448
16471
  voiceInputVm.$forceUpdate();
@@ -17474,9 +17497,9 @@ var moment = __webpack_require__(5093);
17474
17497
  });
17475
17498
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=script&lang=js
17476
17499
  /* harmony default export */ var src_SubmitHandlevue_type_script_lang_js = (SubmitHandlevue_type_script_lang_js);
17477
- // 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=5dd520b7&prod&scoped=true&lang=scss
17478
- var SubmitHandlevue_type_style_index_0_id_5dd520b7_prod_scoped_true_lang_scss = __webpack_require__(1165);
17479
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=style&index=0&id=5dd520b7&prod&scoped=true&lang=scss
17500
+ // 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=2270b394&prod&scoped=true&lang=scss
17501
+ var SubmitHandlevue_type_style_index_0_id_2270b394_prod_scoped_true_lang_scss = __webpack_require__(2535);
17502
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue?vue&type=style&index=0&id=2270b394&prod&scoped=true&lang=scss
17480
17503
 
17481
17504
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/SubmitHandle.vue
17482
17505
 
@@ -17489,11 +17512,11 @@ var SubmitHandlevue_type_style_index_0_id_5dd520b7_prod_scoped_true_lang_scss =
17489
17512
 
17490
17513
  var SubmitHandle_component = (0,componentNormalizer/* default */.A)(
17491
17514
  src_SubmitHandlevue_type_script_lang_js,
17492
- SubmitHandlevue_type_template_id_5dd520b7_scoped_true_render,
17493
- SubmitHandlevue_type_template_id_5dd520b7_scoped_true_staticRenderFns,
17515
+ SubmitHandlevue_type_template_id_2270b394_scoped_true_render,
17516
+ SubmitHandlevue_type_template_id_2270b394_scoped_true_staticRenderFns,
17494
17517
  false,
17495
17518
  null,
17496
- "5dd520b7",
17519
+ "2270b394",
17497
17520
  null
17498
17521
 
17499
17522
  )
@@ -23525,7 +23548,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".van-switch-field[data-v-61ed46da]{pos
23525
23548
 
23526
23549
  /***/ }),
23527
23550
 
23528
- /***/ 5441:
23551
+ /***/ 282:
23529
23552
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
23530
23553
 
23531
23554
  "use strict";
@@ -23539,7 +23562,7 @@ __webpack_require__.r(__webpack_exports__);
23539
23562
 
23540
23563
  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()));
23541
23564
  // Module
23542
- ___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}", ""]);
23565
+ ___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}", ""]);
23543
23566
  // Exports
23544
23567
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
23545
23568
 
@@ -23867,7 +23890,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-02d89fca] .van-nav-bar__title{
23867
23890
 
23868
23891
  /***/ }),
23869
23892
 
23870
- /***/ 7617:
23893
+ /***/ 5762:
23871
23894
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
23872
23895
 
23873
23896
  "use strict";
@@ -23881,7 +23904,7 @@ __webpack_require__.r(__webpack_exports__);
23881
23904
 
23882
23905
  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()));
23883
23906
  // Module
23884
- ___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}", ""]);
23907
+ ___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}", ""]);
23885
23908
  // Exports
23886
23909
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
23887
23910
 
@@ -24182,7 +24205,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".submit-dialog-container[data-v-9c230b
24182
24205
 
24183
24206
  /***/ }),
24184
24207
 
24185
- /***/ 1555:
24208
+ /***/ 4925:
24186
24209
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
24187
24210
 
24188
24211
  "use strict";
@@ -24201,7 +24224,7 @@ var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require
24201
24224
  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()));
24202
24225
  var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);
24203
24226
  // Module
24204
- ___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%}", ""]);
24227
+ ___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%}", ""]);
24205
24228
  // Exports
24206
24229
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
24207
24230
 
@@ -51395,19 +51418,19 @@ var update = add("49a7cd0a", content, true, {"sourceMap":false,"shadowMode":fals
51395
51418
 
51396
51419
  /***/ }),
51397
51420
 
51398
- /***/ 8619:
51421
+ /***/ 1356:
51399
51422
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51400
51423
 
51401
51424
  // style-loader: Adds some css to the DOM by adding a <style> tag
51402
51425
 
51403
51426
  // load the styles
51404
- var content = __webpack_require__(5441);
51427
+ var content = __webpack_require__(282);
51405
51428
  if(content.__esModule) content = content.default;
51406
51429
  if(typeof content === 'string') content = [[module.id, content, '']];
51407
51430
  if(content.locals) module.exports = content.locals;
51408
51431
  // add the styles to the DOM
51409
51432
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51410
- var update = add("44739768", content, true, {"sourceMap":false,"shadowMode":false});
51433
+ var update = add("cbbfec3e", content, true, {"sourceMap":false,"shadowMode":false});
51411
51434
 
51412
51435
  /***/ }),
51413
51436
 
@@ -51651,19 +51674,19 @@ var update = add("1d9a7e4b", content, true, {"sourceMap":false,"shadowMode":fals
51651
51674
 
51652
51675
  /***/ }),
51653
51676
 
51654
- /***/ 9839:
51677
+ /***/ 7640:
51655
51678
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51656
51679
 
51657
51680
  // style-loader: Adds some css to the DOM by adding a <style> tag
51658
51681
 
51659
51682
  // load the styles
51660
- var content = __webpack_require__(7617);
51683
+ var content = __webpack_require__(5762);
51661
51684
  if(content.__esModule) content = content.default;
51662
51685
  if(typeof content === 'string') content = [[module.id, content, '']];
51663
51686
  if(content.locals) module.exports = content.locals;
51664
51687
  // add the styles to the DOM
51665
51688
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51666
- var update = add("eb4323c4", content, true, {"sourceMap":false,"shadowMode":false});
51689
+ var update = add("147bab99", content, true, {"sourceMap":false,"shadowMode":false});
51667
51690
 
51668
51691
  /***/ }),
51669
51692
 
@@ -51891,19 +51914,19 @@ var update = add("780551c7", content, true, {"sourceMap":false,"shadowMode":fals
51891
51914
 
51892
51915
  /***/ }),
51893
51916
 
51894
- /***/ 1165:
51917
+ /***/ 2535:
51895
51918
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51896
51919
 
51897
51920
  // style-loader: Adds some css to the DOM by adding a <style> tag
51898
51921
 
51899
51922
  // load the styles
51900
- var content = __webpack_require__(1555);
51923
+ var content = __webpack_require__(4925);
51901
51924
  if(content.__esModule) content = content.default;
51902
51925
  if(typeof content === 'string') content = [[module.id, content, '']];
51903
51926
  if(content.locals) module.exports = content.locals;
51904
51927
  // add the styles to the DOM
51905
51928
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51906
- var update = add("a1ffaed4", content, true, {"sourceMap":false,"shadowMode":false});
51929
+ var update = add("7715e9e8", content, true, {"sourceMap":false,"shadowMode":false});
51907
51930
 
51908
51931
  /***/ }),
51909
51932
 
@@ -72250,8 +72273,8 @@ var SwitchField_component = (0,componentNormalizer/* default */.A)(
72250
72273
  )
72251
72274
 
72252
72275
  /* harmony default export */ var SwitchField = (SwitchField_component.exports);
72253
- ;// 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
72254
- var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function render() {
72276
+ ;// 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=6b11ef8a&scoped=true
72277
+ var TextareaFieldvue_type_template_id_6b11ef8a_scoped_true_render = function render() {
72255
72278
  var _vm = this,
72256
72279
  _c = _vm._self._c;
72257
72280
  return _vm.isShowField ? _c('div', {
@@ -72261,7 +72284,10 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72261
72284
  value: _vm.model,
72262
72285
  expression: "model"
72263
72286
  }],
72264
- staticClass: "van-textarea-field"
72287
+ staticClass: "van-textarea-field",
72288
+ class: {
72289
+ 'has-voice-btn': _vm.voiceInputEnabled
72290
+ }
72265
72291
  }, [_c('validation-provider', [_c('van-field', {
72266
72292
  staticClass: "van-cell-field-title",
72267
72293
  class: 'field-' + _vm.model,
@@ -72345,7 +72371,7 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72345
72371
  }
72346
72372
  }
72347
72373
  }, [_vm._v(_vm._s(_vm.textName))])]) : _vm._e(), _vm.voiceInputEnabled ? _c('div', {
72348
- staticClass: "voice-input-entry",
72374
+ staticClass: "voice-input-btn",
72349
72375
  on: {
72350
72376
  "click": function click($event) {
72351
72377
  $event.stopPropagation();
@@ -72353,7 +72379,7 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72353
72379
  }
72354
72380
  }
72355
72381
  }, [_c('svg', {
72356
- staticClass: "voice-input-entry-icon",
72382
+ staticClass: "voice-input-icon",
72357
72383
  attrs: {
72358
72384
  "viewBox": "0 0 1024 1024",
72359
72385
  "fill": "currentColor",
@@ -72367,7 +72393,7 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72367
72393
  attrs: {
72368
72394
  "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"
72369
72395
  }
72370
- })]), _c('span', [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceInput', '语音输入')))])]) : _vm._e(), _c('VoiceInputDialog', {
72396
+ })])]) : _vm._e(), _c('VoiceInputDialog', {
72371
72397
  attrs: {
72372
72398
  "visible": _vm.voiceDialogVisible
72373
72399
  },
@@ -72379,7 +72405,7 @@ var TextareaFieldvue_type_template_id_27eb631a_scoped_true_render = function ren
72379
72405
  }
72380
72406
  })], 1) : _vm._e();
72381
72407
  };
72382
- var TextareaFieldvue_type_template_id_27eb631a_scoped_true_staticRenderFns = [];
72408
+ var TextareaFieldvue_type_template_id_6b11ef8a_scoped_true_staticRenderFns = [];
72383
72409
 
72384
72410
  ;// 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
72385
72411
  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); }
@@ -72461,13 +72487,14 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
72461
72487
  updateField: false,
72462
72488
  inputValue: '',
72463
72489
  nodeFieldReadOnly: false,
72464
- voiceDialogVisible: false
72490
+ voiceDialogVisible: false,
72491
+ voiceEnvSupported: false // 当前环境是否支持语音输入
72465
72492
  };
72466
72493
  },
72467
72494
  computed: TextareaFieldvue_type_script_lang_js_objectSpread(TextareaFieldvue_type_script_lang_js_objectSpread({}, (0,vuex_esm/* mapGetters */.L8)(['loginUser'])), {}, {
72468
- // 语音输入按钮显示条件:voice-input属性为true、字段可编辑且非元素级只读
72495
+ // 语音输入按钮显示条件:voice-input属性为true、字段可编辑、非元素级只读且当前环境支持语音输入
72469
72496
  voiceInputEnabled: function voiceInputEnabled() {
72470
- return this.voiceInput && !this.readonly && !this.nodeFieldReadOnly && this.elementReadonly !== 1;
72497
+ return this.voiceInput && !this.readonly && !this.nodeFieldReadOnly && this.elementReadonly !== 1 && this.voiceEnvSupported;
72471
72498
  },
72472
72499
  optionGenerateUrl: function optionGenerateUrl() {
72473
72500
  var _this2 = this;
@@ -72530,6 +72557,7 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
72530
72557
  }
72531
72558
  }
72532
72559
  this.nodeFieldReadOnly = this.readonly;
72560
+ this.initVoiceInputEnabled();
72533
72561
  },
72534
72562
  beforeDestroy: function beforeDestroy() {
72535
72563
  this.fieldDom.removeEventListener('change', this.initVerify);
@@ -72782,12 +72810,33 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
72782
72810
  _this6.updateField = false;
72783
72811
  });
72784
72812
  },
72785
- // 打开语音输入弹窗
72813
+ // 检测语音输入按钮可用性:未配置window.voiceToWord时需https/localhost安全上下文且浏览器支持Web Speech API,否则不显示按钮
72814
+ // 后端转写时window.voiceToWord配置为'/voice/recognize/toText',由网关路由到eccloud-clientms
72815
+ initVoiceInputEnabled: function initVoiceInputEnabled() {
72816
+ var voiceToWord = window.voiceToWord;
72817
+ if (voiceToWord && typeof voiceToWord === 'string' && voiceToWord !== 'browser') {
72818
+ // 后端接口转文字:需getUserMedia录音(同样仅安全上下文下可用)
72819
+ this.voiceEnvSupported = !!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) || window.mappType === 'ecinc';
72820
+ } else {
72821
+ // 浏览器直转文字:需安全上下文且支持SpeechRecognition
72822
+ this.voiceEnvSupported = window.isSecureContext === true && ('webkitSpeechRecognition' in window || 'SpeechRecognition' in window);
72823
+ }
72824
+ },
72825
+ // 打开语音输入弹窗:安全上下文下打开弹窗,易臣客户端WebView下走原生录音识别,识别结果经window.voiceInputCallback回写
72786
72826
  openVoiceDialog: function openVoiceDialog() {
72787
- this.voiceDialogVisible = true;
72827
+ var _this7 = this;
72828
+ if (window.isSecureContext) {
72829
+ this.voiceDialogVisible = true;
72830
+ } else if (window.mappType === 'ecinc') {
72831
+ window.voiceInputCallback = function (text) {
72832
+ return _this7.onVoiceConfirm(text);
72833
+ };
72834
+ this.$wv.streamRecordRecognize('voiceInputCallback');
72835
+ }
72788
72836
  },
72789
72837
  // 语音识别完成回调:识别文本追加到现有内容末尾,同步更新字段值
72790
72838
  onVoiceConfirm: function onVoiceConfirm(text) {
72839
+ if (!text) return;
72791
72840
  this.inputValue = this.inputValue ? this.inputValue + text : text;
72792
72841
  this.setFieldValue(this.inputValue);
72793
72842
  },
@@ -72818,9 +72867,9 @@ function TextareaFieldvue_type_script_lang_js_toPrimitive(t, r) { if ("object" !
72818
72867
  });
72819
72868
  ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=script&lang=js
72820
72869
  /* harmony default export */ var FormField_TextareaFieldvue_type_script_lang_js = (TextareaFieldvue_type_script_lang_js);
72821
- // 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
72822
- var TextareaFieldvue_type_style_index_0_id_27eb631a_prod_scoped_true_lang_scss = __webpack_require__(8619);
72823
- ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=style&index=0&id=27eb631a&prod&scoped=true&lang=scss
72870
+ // 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=6b11ef8a&prod&scoped=true&lang=scss
72871
+ var TextareaFieldvue_type_style_index_0_id_6b11ef8a_prod_scoped_true_lang_scss = __webpack_require__(1356);
72872
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue?vue&type=style&index=0&id=6b11ef8a&prod&scoped=true&lang=scss
72824
72873
 
72825
72874
  ;// CONCATENATED MODULE: ./packages/ecmapp/Basicform/src/FormField/TextareaField.vue
72826
72875
 
@@ -72833,11 +72882,11 @@ var TextareaFieldvue_type_style_index_0_id_27eb631a_prod_scoped_true_lang_scss =
72833
72882
 
72834
72883
  var TextareaField_component = (0,componentNormalizer/* default */.A)(
72835
72884
  FormField_TextareaFieldvue_type_script_lang_js,
72836
- TextareaFieldvue_type_template_id_27eb631a_scoped_true_render,
72837
- TextareaFieldvue_type_template_id_27eb631a_scoped_true_staticRenderFns,
72885
+ TextareaFieldvue_type_template_id_6b11ef8a_scoped_true_render,
72886
+ TextareaFieldvue_type_template_id_6b11ef8a_scoped_true_staticRenderFns,
72838
72887
  false,
72839
72888
  null,
72840
- "27eb631a",
72889
+ "6b11ef8a",
72841
72890
  null
72842
72891
 
72843
72892
  )
@@ -76137,7 +76186,7 @@ var mappaio_components = [app, auth, eventBus, user, Building, Basicform, Basicf
76137
76186
  var asyncComponents = [
76138
76187
  // ========== ecmapp 业务功能 ==========
76139
76188
  ['RichtextEditor', function () {
76140
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8071));
76189
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5778));
76141
76190
  }], ['PdfTools', function () {
76142
76191
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2283)).then(function (m) {
76143
76192
  return m.PdfTools;
@@ -76149,43 +76198,43 @@ var asyncComponents = [
76149
76198
  }],
76150
76199
  // ========== ecmapp/Wflowform 工作流表单子组件 → chunk: m-wflow-form ==========
76151
76200
  ['Attachment', function () {
76152
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76201
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76153
76202
  return m.Attachment;
76154
76203
  });
76155
76204
  }], ['BodyFile', function () {
76156
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76205
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76157
76206
  return m.BodyFile;
76158
76207
  });
76159
76208
  }], ['HandleIdea', function () {
76160
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76209
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76161
76210
  return m.HandleIdea;
76162
76211
  });
76163
76212
  }], ['SelectOuterDeputy', function () {
76164
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76213
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76165
76214
  return m.SelectOuterDeputy;
76166
76215
  });
76167
76216
  }], ['SubmitHandle', function () {
76168
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76217
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76169
76218
  return m.SubmitHandle;
76170
76219
  });
76171
76220
  }], ['SubmitDialog', function () {
76172
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76221
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76173
76222
  return m.SubmitDialog;
76174
76223
  });
76175
76224
  }], ['ShortcutProcessing', function () {
76176
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76225
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76177
76226
  return m.ShortcutProcessing;
76178
76227
  });
76179
76228
  }], ['WfNodelogList', function () {
76180
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76229
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76181
76230
  return m.WfNodelogList;
76182
76231
  });
76183
76232
  }], ['WriteToReadIdea', function () {
76184
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76233
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76185
76234
  return m.WriteToReadIdea;
76186
76235
  });
76187
76236
  }], ['VoiceInputDialog', function () {
76188
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022)).then(function (m) {
76237
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76189
76238
  return m.VoiceInputDialog;
76190
76239
  });
76191
76240
  }]];
@@ -76243,7 +76292,7 @@ var WfengineModule = function WfengineModule() {
76243
76292
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8838));
76244
76293
  };
76245
76294
  var WflowformModule = function WflowformModule() {
76246
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 3022));
76295
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480));
76247
76296
  };
76248
76297
 
76249
76298
  // ---------- 重型功能(PDF/富文本,仅特定页面使用) ----------
@@ -76258,7 +76307,7 @@ var PdfViewerModule = function PdfViewerModule() {
76258
76307
  });
76259
76308
  };
76260
76309
  var RichtextEditorModule = function RichtextEditorModule() {
76261
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8071));
76310
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5778));
76262
76311
  };
76263
76312
  ;// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
76264
76313