ecinc-cloud-mappaio 9.7.33 → 9.7.34

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.
@@ -8756,7 +8756,7 @@ src.install = function (Vue) {
8756
8756
 
8757
8757
  /***/ }),
8758
8758
 
8759
- /***/ 2214:
8759
+ /***/ 5475:
8760
8760
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8761
8761
 
8762
8762
  "use strict";
@@ -14830,8 +14830,8 @@ var WfTaskNode_component = (0,componentNormalizer/* default */.A)(
14830
14830
  )
14831
14831
 
14832
14832
  /* harmony default export */ var WfTaskNode = (WfTaskNode_component.exports);
14833
- ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=template&id=574b941f&scoped=true
14834
- var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_render = function render() {
14833
+ ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=template&id=28732777&scoped=true
14834
+ var VoiceInputDialogvue_type_template_id_28732777_scoped_true_render = function render() {
14835
14835
  var _vm = this,
14836
14836
  _c = _vm._self._c;
14837
14837
  return _c('van-popup', {
@@ -14958,7 +14958,7 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_render = function
14958
14958
  }
14959
14959
  }, [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceFillOpinion', '填入意见')))])], 1)]);
14960
14960
  };
14961
- var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns = [];
14961
+ var VoiceInputDialogvue_type_template_id_28732777_scoped_true_staticRenderFns = [];
14962
14962
 
14963
14963
  ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=script&lang=js
14964
14964
  /* harmony default export */ var VoiceInputDialogvue_type_script_lang_js = ({
@@ -14994,7 +14994,8 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
14994
14994
  // 波形分析节点
14995
14995
  visualStream: null,
14996
14996
  // 浏览器模式下专供波形绘制的音频流
14997
- waveRafId: null
14997
+ waveRafId: null,
14998
+ recognizeStartAt: 0 // 识别启动时间戳,用于判断秒退(识别服务不可用)
14998
14999
  };
14999
15000
  },
15000
15001
  computed: {
@@ -15070,6 +15071,11 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15070
15071
  this.status = 'error';
15071
15072
  this.errorText = this.$tx('ecmapp.wflowform.voiceNoPermission', '请在浏览器设置中允许使用麦克风后重试。');
15072
15073
  },
15074
+ // 手机浏览器/WebView常见:暴露了SpeechRecognition但识别服务不可达(如Google语音服务)
15075
+ showServiceUnavailableError: function showServiceUnavailableError() {
15076
+ this.status = 'error';
15077
+ this.errorText = this.$tx('ecmapp.wflowform.voiceServiceUnavailable', '当前浏览器无法连接语音识别服务。');
15078
+ },
15073
15079
  toggleRecord: function toggleRecord() {
15074
15080
  if (this.status === 'processing') return;
15075
15081
  if (this.status === 'recording') {
@@ -15143,6 +15149,8 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15143
15149
  _this3.stopWaveform();
15144
15150
  if (event.error === 'not-allowed' || event.error === 'service-not-allowed') {
15145
15151
  _this3.showPermissionError();
15152
+ } else if (event.error === 'network') {
15153
+ _this3.showServiceUnavailableError();
15146
15154
  } else if (event.error === 'no-speech') {
15147
15155
  _this3.status = 'error';
15148
15156
  _this3.errorText = _this3.$tx('ecmapp.wflowform.voiceNoSpeech', '未检测到语音,请重试。');
@@ -15157,10 +15165,18 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15157
15165
  _this3.recognition = null;
15158
15166
  if (_this3.status === 'recording') {
15159
15167
  _this3.resultText = _this3.finalText;
15160
- _this3.status = _this3.resultText.trim() !== '' ? 'done' : 'idle';
15168
+ if (_this3.resultText.trim() !== '') {
15169
+ _this3.status = 'done';
15170
+ } else if (Date.now() - _this3.recognizeStartAt < 1500) {
15171
+ // 启动后秒退且无任何结果,判定为识别服务不可用
15172
+ _this3.showServiceUnavailableError();
15173
+ } else {
15174
+ _this3.status = 'idle';
15175
+ }
15161
15176
  }
15162
15177
  };
15163
15178
  this.recognition = recognition;
15179
+ this.recognizeStartAt = Date.now();
15164
15180
  recognition.start();
15165
15181
  },
15166
15182
  // 后端模式:录音→上传→转文字
@@ -15345,9 +15361,9 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15345
15361
  });
15346
15362
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=script&lang=js
15347
15363
  /* harmony default export */ var src_VoiceInputDialogvue_type_script_lang_js = (VoiceInputDialogvue_type_script_lang_js);
15348
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=574b941f&prod&scoped=true&lang=scss
15349
- var VoiceInputDialogvue_type_style_index_0_id_574b941f_prod_scoped_true_lang_scss = __webpack_require__(7798);
15350
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=574b941f&prod&scoped=true&lang=scss
15364
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=28732777&prod&scoped=true&lang=scss
15365
+ var VoiceInputDialogvue_type_style_index_0_id_28732777_prod_scoped_true_lang_scss = __webpack_require__(3727);
15366
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=28732777&prod&scoped=true&lang=scss
15351
15367
 
15352
15368
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue
15353
15369
 
@@ -15360,11 +15376,11 @@ var VoiceInputDialogvue_type_style_index_0_id_574b941f_prod_scoped_true_lang_scs
15360
15376
 
15361
15377
  var VoiceInputDialog_component = (0,componentNormalizer/* default */.A)(
15362
15378
  src_VoiceInputDialogvue_type_script_lang_js,
15363
- VoiceInputDialogvue_type_template_id_574b941f_scoped_true_render,
15364
- VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns,
15379
+ VoiceInputDialogvue_type_template_id_28732777_scoped_true_render,
15380
+ VoiceInputDialogvue_type_template_id_28732777_scoped_true_staticRenderFns,
15365
15381
  false,
15366
15382
  null,
15367
- "574b941f",
15383
+ "28732777",
15368
15384
  null
15369
15385
 
15370
15386
  )
@@ -22876,7 +22892,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".submit-handle-container .idea-button-
22876
22892
 
22877
22893
  /***/ }),
22878
22894
 
22879
- /***/ 7456:
22895
+ /***/ 2737:
22880
22896
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22881
22897
 
22882
22898
  "use strict";
@@ -22890,7 +22906,7 @@ __webpack_require__.r(__webpack_exports__);
22890
22906
 
22891
22907
  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()));
22892
22908
  // Module
22893
- ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-popup[data-v-574b941f]{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.voice-input-popup .voice-popup-header[data-v-574b941f]{position:relative;height:48px;line-height:48px;text-align:center}.voice-input-popup .voice-popup-header .voice-popup-title[data-v-574b941f]{font-size:16px;font-weight:600;color:#323233}.voice-input-popup .voice-popup-header .voice-popup-close[data-v-574b941f]{position:absolute;right:16px;top:16px;font-size:16px;color:#c8c9cc}.voice-input-popup .voice-popup-body[data-v-574b941f]{padding:8px 16px 0;text-align:center}.voice-input-popup .voice-popup-body .voice-mic-btn[data-v-574b941f]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:64px;height:64px;border-radius:50%;background-color:#1989fa;color:#fff}.voice-input-popup .voice-popup-body .voice-mic-btn .voice-mic-icon[data-v-574b941f]{width:28px;height:28px}.voice-input-popup .voice-popup-body .voice-mic-btn.recording[data-v-574b941f]{background-color:#ee0a24;-webkit-animation:voice-breathe-574b941f 1.5s ease-out infinite;animation:voice-breathe-574b941f 1.5s ease-out infinite}.voice-input-popup .voice-popup-body .voice-status-text[data-v-574b941f]{margin-top:12px;font-size:13px;color:#646566}.voice-input-popup .voice-popup-body .voice-status-text.is-error[data-v-574b941f]{color:#ee0a24}.voice-input-popup .voice-popup-body .voice-wave-canvas[data-v-574b941f]{display:block;width:200px;height:32px;margin:8px auto 0}.voice-input-popup .voice-popup-body .voice-timer[data-v-574b941f]{margin-top:4px;font-size:13px;color:#969799}.voice-input-popup .voice-popup-body .voice-result-field[data-v-574b941f]{margin-top:12px;background-color:#f7f8fa;border-radius:8px}.voice-input-popup .voice-popup-footer[data-v-574b941f]{padding:12px 16px;text-align:right}.voice-input-popup .voice-popup-footer .van-button[data-v-574b941f]{margin-left:8px;min-width:80px}@-webkit-keyframes voice-breathe-574b941f{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}@keyframes voice-breathe-574b941f{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}", ""]);
22909
+ ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-popup[data-v-28732777]{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.voice-input-popup .voice-popup-header[data-v-28732777]{position:relative;height:48px;line-height:48px;text-align:center}.voice-input-popup .voice-popup-header .voice-popup-title[data-v-28732777]{font-size:16px;font-weight:600;color:#323233}.voice-input-popup .voice-popup-header .voice-popup-close[data-v-28732777]{position:absolute;right:16px;top:16px;font-size:16px;color:#c8c9cc}.voice-input-popup .voice-popup-body[data-v-28732777]{padding:8px 16px 0;text-align:center}.voice-input-popup .voice-popup-body .voice-mic-btn[data-v-28732777]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:64px;height:64px;border-radius:50%;background-color:#1989fa;color:#fff}.voice-input-popup .voice-popup-body .voice-mic-btn .voice-mic-icon[data-v-28732777]{width:28px;height:28px}.voice-input-popup .voice-popup-body .voice-mic-btn.recording[data-v-28732777]{background-color:#ee0a24;-webkit-animation:voice-breathe-28732777 1.5s ease-out infinite;animation:voice-breathe-28732777 1.5s ease-out infinite}.voice-input-popup .voice-popup-body .voice-status-text[data-v-28732777]{margin-top:12px;font-size:13px;color:#646566}.voice-input-popup .voice-popup-body .voice-status-text.is-error[data-v-28732777]{color:#ee0a24}.voice-input-popup .voice-popup-body .voice-wave-canvas[data-v-28732777]{display:block;width:200px;height:32px;margin:8px auto 0}.voice-input-popup .voice-popup-body .voice-timer[data-v-28732777]{margin-top:4px;font-size:13px;color:#969799}.voice-input-popup .voice-popup-body .voice-result-field[data-v-28732777]{margin-top:12px;background-color:#f7f8fa;border-radius:8px}.voice-input-popup .voice-popup-footer[data-v-28732777]{padding:12px 16px;text-align:right}.voice-input-popup .voice-popup-footer .van-button[data-v-28732777]{margin-left:8px;min-width:80px}@-webkit-keyframes voice-breathe-28732777{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}@keyframes voice-breathe-28732777{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}", ""]);
22894
22910
  // Exports
22895
22911
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
22896
22912
 
@@ -50538,19 +50554,19 @@ var update = add("54a54a44", content, true, {"sourceMap":false,"shadowMode":fals
50538
50554
 
50539
50555
  /***/ }),
50540
50556
 
50541
- /***/ 7798:
50557
+ /***/ 3727:
50542
50558
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
50543
50559
 
50544
50560
  // style-loader: Adds some css to the DOM by adding a <style> tag
50545
50561
 
50546
50562
  // load the styles
50547
- var content = __webpack_require__(7456);
50563
+ var content = __webpack_require__(2737);
50548
50564
  if(content.__esModule) content = content.default;
50549
50565
  if(typeof content === 'string') content = [[module.id, content, '']];
50550
50566
  if(content.locals) module.exports = content.locals;
50551
50567
  // add the styles to the DOM
50552
50568
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
50553
- var update = add("f83d333a", content, true, {"sourceMap":false,"shadowMode":false});
50569
+ var update = add("b716a02c", content, true, {"sourceMap":false,"shadowMode":false});
50554
50570
 
50555
50571
  /***/ }),
50556
50572
 
@@ -72929,39 +72945,39 @@ var asyncComponents = [
72929
72945
  }],
72930
72946
  // ========== ecmapp/Wflowform 工作流表单子组件 → chunk: m-wflow-form ==========
72931
72947
  ['Attachment', function () {
72932
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72948
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72933
72949
  return m.Attachment;
72934
72950
  });
72935
72951
  }], ['BodyFile', function () {
72936
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72952
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72937
72953
  return m.BodyFile;
72938
72954
  });
72939
72955
  }], ['HandleIdea', function () {
72940
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72956
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72941
72957
  return m.HandleIdea;
72942
72958
  });
72943
72959
  }], ['SelectOuterDeputy', function () {
72944
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72960
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72945
72961
  return m.SelectOuterDeputy;
72946
72962
  });
72947
72963
  }], ['SubmitHandle', function () {
72948
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72964
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72949
72965
  return m.SubmitHandle;
72950
72966
  });
72951
72967
  }], ['SubmitDialog', function () {
72952
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72968
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72953
72969
  return m.SubmitDialog;
72954
72970
  });
72955
72971
  }], ['ShortcutProcessing', function () {
72956
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72972
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72957
72973
  return m.ShortcutProcessing;
72958
72974
  });
72959
72975
  }], ['WfNodelogList', function () {
72960
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72976
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72961
72977
  return m.WfNodelogList;
72962
72978
  });
72963
72979
  }], ['WriteToReadIdea', function () {
72964
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214)).then(function (m) {
72980
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475)).then(function (m) {
72965
72981
  return m.WriteToReadIdea;
72966
72982
  });
72967
72983
  }]];
@@ -73014,7 +73030,7 @@ var WfengineModule = function WfengineModule() {
73014
73030
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8838));
73015
73031
  };
73016
73032
  var WflowformModule = function WflowformModule() {
73017
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2214));
73033
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5475));
73018
73034
  };
73019
73035
 
73020
73036
  // ---------- 重型功能(PDF/富文本,仅特定页面使用) ----------
@@ -8766,7 +8766,7 @@ src.install = function (Vue) {
8766
8766
 
8767
8767
  /***/ }),
8768
8768
 
8769
- /***/ 4558:
8769
+ /***/ 8866:
8770
8770
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8771
8771
 
8772
8772
  "use strict";
@@ -14840,8 +14840,8 @@ var WfTaskNode_component = (0,componentNormalizer/* default */.A)(
14840
14840
  )
14841
14841
 
14842
14842
  /* harmony default export */ var WfTaskNode = (WfTaskNode_component.exports);
14843
- ;// 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/VoiceInputDialog.vue?vue&type=template&id=574b941f&scoped=true
14844
- var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_render = function render() {
14843
+ ;// 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/VoiceInputDialog.vue?vue&type=template&id=28732777&scoped=true
14844
+ var VoiceInputDialogvue_type_template_id_28732777_scoped_true_render = function render() {
14845
14845
  var _vm = this,
14846
14846
  _c = _vm._self._c;
14847
14847
  return _c('van-popup', {
@@ -14968,7 +14968,7 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_render = function
14968
14968
  }
14969
14969
  }, [_vm._v(_vm._s(_vm.$tx('ecmapp.wflowform.voiceFillOpinion', '填入意见')))])], 1)]);
14970
14970
  };
14971
- var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns = [];
14971
+ var VoiceInputDialogvue_type_template_id_28732777_scoped_true_staticRenderFns = [];
14972
14972
 
14973
14973
  ;// 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/Wflowform/src/VoiceInputDialog.vue?vue&type=script&lang=js
14974
14974
  /* harmony default export */ var VoiceInputDialogvue_type_script_lang_js = ({
@@ -15004,7 +15004,8 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15004
15004
  // 波形分析节点
15005
15005
  visualStream: null,
15006
15006
  // 浏览器模式下专供波形绘制的音频流
15007
- waveRafId: null
15007
+ waveRafId: null,
15008
+ recognizeStartAt: 0 // 识别启动时间戳,用于判断秒退(识别服务不可用)
15008
15009
  };
15009
15010
  },
15010
15011
  computed: {
@@ -15080,6 +15081,11 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15080
15081
  this.status = 'error';
15081
15082
  this.errorText = this.$tx('ecmapp.wflowform.voiceNoPermission', '请在浏览器设置中允许使用麦克风后重试。');
15082
15083
  },
15084
+ // 手机浏览器/WebView常见:暴露了SpeechRecognition但识别服务不可达(如Google语音服务)
15085
+ showServiceUnavailableError: function showServiceUnavailableError() {
15086
+ this.status = 'error';
15087
+ this.errorText = this.$tx('ecmapp.wflowform.voiceServiceUnavailable', '当前浏览器无法连接语音识别服务。');
15088
+ },
15083
15089
  toggleRecord: function toggleRecord() {
15084
15090
  if (this.status === 'processing') return;
15085
15091
  if (this.status === 'recording') {
@@ -15153,6 +15159,8 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15153
15159
  _this3.stopWaveform();
15154
15160
  if (event.error === 'not-allowed' || event.error === 'service-not-allowed') {
15155
15161
  _this3.showPermissionError();
15162
+ } else if (event.error === 'network') {
15163
+ _this3.showServiceUnavailableError();
15156
15164
  } else if (event.error === 'no-speech') {
15157
15165
  _this3.status = 'error';
15158
15166
  _this3.errorText = _this3.$tx('ecmapp.wflowform.voiceNoSpeech', '未检测到语音,请重试。');
@@ -15167,10 +15175,18 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15167
15175
  _this3.recognition = null;
15168
15176
  if (_this3.status === 'recording') {
15169
15177
  _this3.resultText = _this3.finalText;
15170
- _this3.status = _this3.resultText.trim() !== '' ? 'done' : 'idle';
15178
+ if (_this3.resultText.trim() !== '') {
15179
+ _this3.status = 'done';
15180
+ } else if (Date.now() - _this3.recognizeStartAt < 1500) {
15181
+ // 启动后秒退且无任何结果,判定为识别服务不可用
15182
+ _this3.showServiceUnavailableError();
15183
+ } else {
15184
+ _this3.status = 'idle';
15185
+ }
15171
15186
  }
15172
15187
  };
15173
15188
  this.recognition = recognition;
15189
+ this.recognizeStartAt = Date.now();
15174
15190
  recognition.start();
15175
15191
  },
15176
15192
  // 后端模式:录音→上传→转文字
@@ -15355,9 +15371,9 @@ var VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns =
15355
15371
  });
15356
15372
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=script&lang=js
15357
15373
  /* harmony default export */ var src_VoiceInputDialogvue_type_script_lang_js = (VoiceInputDialogvue_type_script_lang_js);
15358
- // 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/VoiceInputDialog.vue?vue&type=style&index=0&id=574b941f&prod&scoped=true&lang=scss
15359
- var VoiceInputDialogvue_type_style_index_0_id_574b941f_prod_scoped_true_lang_scss = __webpack_require__(273);
15360
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=574b941f&prod&scoped=true&lang=scss
15374
+ // 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/VoiceInputDialog.vue?vue&type=style&index=0&id=28732777&prod&scoped=true&lang=scss
15375
+ var VoiceInputDialogvue_type_style_index_0_id_28732777_prod_scoped_true_lang_scss = __webpack_require__(80);
15376
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue?vue&type=style&index=0&id=28732777&prod&scoped=true&lang=scss
15361
15377
 
15362
15378
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/VoiceInputDialog.vue
15363
15379
 
@@ -15370,11 +15386,11 @@ var VoiceInputDialogvue_type_style_index_0_id_574b941f_prod_scoped_true_lang_scs
15370
15386
 
15371
15387
  var VoiceInputDialog_component = (0,componentNormalizer/* default */.A)(
15372
15388
  src_VoiceInputDialogvue_type_script_lang_js,
15373
- VoiceInputDialogvue_type_template_id_574b941f_scoped_true_render,
15374
- VoiceInputDialogvue_type_template_id_574b941f_scoped_true_staticRenderFns,
15389
+ VoiceInputDialogvue_type_template_id_28732777_scoped_true_render,
15390
+ VoiceInputDialogvue_type_template_id_28732777_scoped_true_staticRenderFns,
15375
15391
  false,
15376
15392
  null,
15377
- "574b941f",
15393
+ "28732777",
15378
15394
  null
15379
15395
 
15380
15396
  )
@@ -22886,7 +22902,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".submit-handle-container .idea-button-
22886
22902
 
22887
22903
  /***/ }),
22888
22904
 
22889
- /***/ 1914:
22905
+ /***/ 3355:
22890
22906
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
22891
22907
 
22892
22908
  "use strict";
@@ -22900,7 +22916,7 @@ __webpack_require__.r(__webpack_exports__);
22900
22916
 
22901
22917
  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()));
22902
22918
  // Module
22903
- ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-popup[data-v-574b941f]{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.voice-input-popup .voice-popup-header[data-v-574b941f]{position:relative;height:48px;line-height:48px;text-align:center}.voice-input-popup .voice-popup-header .voice-popup-title[data-v-574b941f]{font-size:16px;font-weight:600;color:#323233}.voice-input-popup .voice-popup-header .voice-popup-close[data-v-574b941f]{position:absolute;right:16px;top:16px;font-size:16px;color:#c8c9cc}.voice-input-popup .voice-popup-body[data-v-574b941f]{padding:8px 16px 0;text-align:center}.voice-input-popup .voice-popup-body .voice-mic-btn[data-v-574b941f]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:64px;height:64px;border-radius:50%;background-color:#1989fa;color:#fff}.voice-input-popup .voice-popup-body .voice-mic-btn .voice-mic-icon[data-v-574b941f]{width:28px;height:28px}.voice-input-popup .voice-popup-body .voice-mic-btn.recording[data-v-574b941f]{background-color:#ee0a24;-webkit-animation:voice-breathe-574b941f 1.5s ease-out infinite;animation:voice-breathe-574b941f 1.5s ease-out infinite}.voice-input-popup .voice-popup-body .voice-status-text[data-v-574b941f]{margin-top:12px;font-size:13px;color:#646566}.voice-input-popup .voice-popup-body .voice-status-text.is-error[data-v-574b941f]{color:#ee0a24}.voice-input-popup .voice-popup-body .voice-wave-canvas[data-v-574b941f]{display:block;width:200px;height:32px;margin:8px auto 0}.voice-input-popup .voice-popup-body .voice-timer[data-v-574b941f]{margin-top:4px;font-size:13px;color:#969799}.voice-input-popup .voice-popup-body .voice-result-field[data-v-574b941f]{margin-top:12px;background-color:#f7f8fa;border-radius:8px}.voice-input-popup .voice-popup-footer[data-v-574b941f]{padding:12px 16px;text-align:right}.voice-input-popup .voice-popup-footer .van-button[data-v-574b941f]{margin-left:8px;min-width:80px}@-webkit-keyframes voice-breathe-574b941f{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}@keyframes voice-breathe-574b941f{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}", ""]);
22919
+ ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-popup[data-v-28732777]{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.voice-input-popup .voice-popup-header[data-v-28732777]{position:relative;height:48px;line-height:48px;text-align:center}.voice-input-popup .voice-popup-header .voice-popup-title[data-v-28732777]{font-size:16px;font-weight:600;color:#323233}.voice-input-popup .voice-popup-header .voice-popup-close[data-v-28732777]{position:absolute;right:16px;top:16px;font-size:16px;color:#c8c9cc}.voice-input-popup .voice-popup-body[data-v-28732777]{padding:8px 16px 0;text-align:center}.voice-input-popup .voice-popup-body .voice-mic-btn[data-v-28732777]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:64px;height:64px;border-radius:50%;background-color:#1989fa;color:#fff}.voice-input-popup .voice-popup-body .voice-mic-btn .voice-mic-icon[data-v-28732777]{width:28px;height:28px}.voice-input-popup .voice-popup-body .voice-mic-btn.recording[data-v-28732777]{background-color:#ee0a24;-webkit-animation:voice-breathe-28732777 1.5s ease-out infinite;animation:voice-breathe-28732777 1.5s ease-out infinite}.voice-input-popup .voice-popup-body .voice-status-text[data-v-28732777]{margin-top:12px;font-size:13px;color:#646566}.voice-input-popup .voice-popup-body .voice-status-text.is-error[data-v-28732777]{color:#ee0a24}.voice-input-popup .voice-popup-body .voice-wave-canvas[data-v-28732777]{display:block;width:200px;height:32px;margin:8px auto 0}.voice-input-popup .voice-popup-body .voice-timer[data-v-28732777]{margin-top:4px;font-size:13px;color:#969799}.voice-input-popup .voice-popup-body .voice-result-field[data-v-28732777]{margin-top:12px;background-color:#f7f8fa;border-radius:8px}.voice-input-popup .voice-popup-footer[data-v-28732777]{padding:12px 16px;text-align:right}.voice-input-popup .voice-popup-footer .van-button[data-v-28732777]{margin-left:8px;min-width:80px}@-webkit-keyframes voice-breathe-28732777{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}@keyframes voice-breathe-28732777{0%{-webkit-box-shadow:0 0 0 0 rgba(238,10,36,.5);box-shadow:0 0 0 0 rgba(238,10,36,.5)}to{-webkit-box-shadow:0 0 0 16px rgba(238,10,36,0);box-shadow:0 0 0 16px rgba(238,10,36,0)}}", ""]);
22904
22920
  // Exports
22905
22921
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
22906
22922
 
@@ -50548,19 +50564,19 @@ var update = add("4f4e2226", content, true, {"sourceMap":false,"shadowMode":fals
50548
50564
 
50549
50565
  /***/ }),
50550
50566
 
50551
- /***/ 273:
50567
+ /***/ 80:
50552
50568
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
50553
50569
 
50554
50570
  // style-loader: Adds some css to the DOM by adding a <style> tag
50555
50571
 
50556
50572
  // load the styles
50557
- var content = __webpack_require__(1914);
50573
+ var content = __webpack_require__(3355);
50558
50574
  if(content.__esModule) content = content.default;
50559
50575
  if(typeof content === 'string') content = [[module.id, content, '']];
50560
50576
  if(content.locals) module.exports = content.locals;
50561
50577
  // add the styles to the DOM
50562
50578
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
50563
- var update = add("97a58776", content, true, {"sourceMap":false,"shadowMode":false});
50579
+ var update = add("567ef468", content, true, {"sourceMap":false,"shadowMode":false});
50564
50580
 
50565
50581
  /***/ }),
50566
50582
 
@@ -72939,39 +72955,39 @@ var asyncComponents = [
72939
72955
  }],
72940
72956
  // ========== ecmapp/Wflowform 工作流表单子组件 → chunk: m-wflow-form ==========
72941
72957
  ['Attachment', function () {
72942
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72958
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72943
72959
  return m.Attachment;
72944
72960
  });
72945
72961
  }], ['BodyFile', function () {
72946
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72962
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72947
72963
  return m.BodyFile;
72948
72964
  });
72949
72965
  }], ['HandleIdea', function () {
72950
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72966
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72951
72967
  return m.HandleIdea;
72952
72968
  });
72953
72969
  }], ['SelectOuterDeputy', function () {
72954
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72970
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72955
72971
  return m.SelectOuterDeputy;
72956
72972
  });
72957
72973
  }], ['SubmitHandle', function () {
72958
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72974
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72959
72975
  return m.SubmitHandle;
72960
72976
  });
72961
72977
  }], ['SubmitDialog', function () {
72962
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72978
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72963
72979
  return m.SubmitDialog;
72964
72980
  });
72965
72981
  }], ['ShortcutProcessing', function () {
72966
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72982
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72967
72983
  return m.ShortcutProcessing;
72968
72984
  });
72969
72985
  }], ['WfNodelogList', function () {
72970
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72986
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72971
72987
  return m.WfNodelogList;
72972
72988
  });
72973
72989
  }], ['WriteToReadIdea', function () {
72974
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558)).then(function (m) {
72990
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866)).then(function (m) {
72975
72991
  return m.WriteToReadIdea;
72976
72992
  });
72977
72993
  }]];
@@ -73024,7 +73040,7 @@ var WfengineModule = function WfengineModule() {
73024
73040
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 6322));
73025
73041
  };
73026
73042
  var WflowformModule = function WflowformModule() {
73027
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 4558));
73043
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8866));
73028
73044
  };
73029
73045
 
73030
73046
  // ---------- 重型功能(PDF/富文本,仅特定页面使用) ----------