ecinc-cloud-mappaio 9.7.67 → 9.7.69

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.
@@ -9468,7 +9468,7 @@ src.install = function (Vue) {
9468
9468
 
9469
9469
  /***/ }),
9470
9470
 
9471
- /***/ 2480:
9471
+ /***/ 620:
9472
9472
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9473
9473
 
9474
9474
  "use strict";
@@ -12646,8 +12646,8 @@ var BodyFile_component = (0,componentNormalizer/* default */.A)(
12646
12646
  )
12647
12647
 
12648
12648
  /* harmony default export */ var BodyFile = (BodyFile_component.exports);
12649
- ;// 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/HandleIdea.vue?vue&type=template&id=d4a12f7a&scoped=true
12650
- var HandleIdeavue_type_template_id_d4a12f7a_scoped_true_render = function render() {
12649
+ ;// 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/HandleIdea.vue?vue&type=template&id=5ed9d962&scoped=true
12650
+ var HandleIdeavue_type_template_id_5ed9d962_scoped_true_render = function render() {
12651
12651
  var _vm = this,
12652
12652
  _c = _vm._self._c;
12653
12653
  return _c('div', [_vm.showIdea > 0 && _vm.shouldShow ? _c('div', {
@@ -12916,6 +12916,17 @@ var HandleIdeavue_type_template_id_d4a12f7a_scoped_true_render = function render
12916
12916
  on: {
12917
12917
  "click": _vm.startChat
12918
12918
  }
12919
+ }), _c('van-button', {
12920
+ directives: [{
12921
+ name: "show",
12922
+ rawName: "v-show",
12923
+ value: false,
12924
+ expression: "false"
12925
+ }],
12926
+ staticClass: "phoneCallBtn",
12927
+ on: {
12928
+ "click": _vm.onPhoneCallBtnClick
12929
+ }
12919
12930
  }), _c('van-button', {
12920
12931
  directives: [{
12921
12932
  name: "show",
@@ -12927,15 +12938,34 @@ var HandleIdeavue_type_template_id_d4a12f7a_scoped_true_render = function render
12927
12938
  on: {
12928
12939
  "click": _vm.todownload
12929
12940
  }
12941
+ }), _c('van-action-sheet', {
12942
+ attrs: {
12943
+ "actions": _vm.phoneActions,
12944
+ "cancel-text": "取消"
12945
+ },
12946
+ on: {
12947
+ "select": _vm.onPhoneActionSelect
12948
+ },
12949
+ model: {
12950
+ value: _vm.showPhoneActionSheet,
12951
+ callback: function callback($$v) {
12952
+ _vm.showPhoneActionSheet = $$v;
12953
+ },
12954
+ expression: "showPhoneActionSheet"
12955
+ }
12930
12956
  })], 1);
12931
12957
  };
12932
- var HandleIdeavue_type_template_id_d4a12f7a_scoped_true_staticRenderFns = [];
12958
+ var HandleIdeavue_type_template_id_5ed9d962_scoped_true_staticRenderFns = [];
12933
12959
 
12934
12960
  ;// 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/HandleIdea.vue?vue&type=script&lang=js
12935
12961
  window.startChat = function (staffId) {
12936
12962
  document.querySelector('.startChatBtn').staffId = staffId;
12937
12963
  document.querySelector('.startChatBtn').click();
12938
12964
  };
12965
+ window.showPhoneAction = function (staffId) {
12966
+ document.querySelector('.phoneCallBtn').staffId = staffId;
12967
+ document.querySelector('.phoneCallBtn').click();
12968
+ };
12939
12969
  window.todownload = function (val) {
12940
12970
  console.log(val);
12941
12971
  document.querySelector('.donext-attachBtn').downUrl = val.split(',')[0];
@@ -13005,11 +13035,19 @@ window.todownload = function (val) {
13005
13035
  collapseNames: [],
13006
13036
  viewCommentsNum: null,
13007
13037
  handleArr: [],
13008
- anywhereChat: window.anywhereChat || false,
13009
- // 是否允许发起聊天
13038
+ anywhereChat: this.$settings && this.$settings.anywhereChat || false,
13039
+ // 是否允许发起聊天(settings.js配置)
13040
+ anywherePhone: this.$settings && this.$settings.anywherePhone || false,
13041
+ // 是否允许拨打电话(settings.js配置)
13010
13042
  loginUser: this.$store.getters.loginUser,
13011
13043
  wfInstance: {},
13012
- embeddedShown: false // 意见栏是否已全部在业务表单内通过 idea-field 渲染
13044
+ embeddedShown: false,
13045
+ // 意见栏是否已全部在业务表单内通过 idea-field 渲染
13046
+ showPhoneActionSheet: false,
13047
+ curPhoneNum: '',
13048
+ ideaStaffMobileMap: {},
13049
+ // 意见签名人staffId → 手机号
13050
+ phoneQueriedStaffIds: [] // 已查询过手机号的签名人staffId,避免 updated 反复触发重复请求
13013
13051
  };
13014
13052
  },
13015
13053
  computed: {
@@ -13024,6 +13062,13 @@ window.todownload = function (val) {
13024
13062
  shouldShow: function shouldShow() {
13025
13063
  if (!this.checkEmbeddedShow) return true;
13026
13064
  return !this.embeddedShown && this.visibleIdeaList.length > 0;
13065
+ },
13066
+ phoneActions: function phoneActions() {
13067
+ return [{
13068
+ name: this.$tx('ecmapp.common.makeCall', '拨打电话')
13069
+ }, {
13070
+ name: this.$tx('ecmapp.common.sendMessage', '发送短信')
13071
+ }];
13027
13072
  }
13028
13073
  },
13029
13074
  watch: {
@@ -13104,37 +13149,13 @@ window.todownload = function (val) {
13104
13149
  }
13105
13150
  },
13106
13151
  updated: function updated() {
13107
- var _this4 = this;
13108
- var ideaDivs = document.querySelectorAll('.ideaDiv');
13109
- ideaDivs.forEach(function (ideaDiv) {
13110
- if (ideaDivs && _this4.anywhereChat) {
13111
- if (ideaDiv.innerText !== _this4.$tx('ecmapp.common.nothing', '无') && ideaDiv.innerText !== '' && ideaDiv.innerText !== _this4.$tx('ecmapp.common.nothing', '无') && ideaDiv.attributes['staffId']) {
13112
- var staffId = ideaDiv.attributes['staffId'].nodeValue;
13113
- if (staffId) {
13114
- var self = false;
13115
- _this4.loginUser.staffList.forEach(function (staff) {
13116
- if (staffId === staff.id) {
13117
- self = true;
13118
- }
13119
- });
13120
- if (!self) {
13121
- ideaDiv.innerHTML += '<a href="javascript:" onclick="startChat(\'' + staffId + '\')"><i data-v-5c359387="" class="idea-start-chat van-icon van-icon-chat-o"></i></a>';
13122
- }
13123
- }
13124
- }
13125
- }
13126
- var ps = ideaDiv.querySelectorAll('p');
13127
- if (ps.length > 1) {
13128
- var span = ps[ps.length - 1].querySelector('span');
13129
- span.style = 'width:20px';
13130
- }
13131
- });
13152
+ this.adjustIdeaDivs();
13132
13153
  },
13133
13154
  beforeDestroy: function beforeDestroy() {},
13134
13155
  mounted: function mounted() {
13135
- var _this5 = this;
13156
+ var _this4 = this;
13136
13157
  setTimeout(function () {
13137
- _this5.showDoNextAttach();
13158
+ _this4.showDoNextAttach();
13138
13159
  var ideaDivs = document.querySelectorAll('.ideaDiv');
13139
13160
  ideaDivs.forEach(function (ideaDiv) {
13140
13161
  var ps = ideaDiv.querySelectorAll('p');
@@ -13145,14 +13166,62 @@ window.todownload = function (val) {
13145
13166
  });
13146
13167
  }, 0);
13147
13168
 
13169
+ // 首次渲染不会触发updated(仅后续数据变化重渲染才触发),标签页等场景挂载后无数据变化会导致图标不注入,此处主动执行一次;此时ideaDiv已在DOM中
13170
+ this.$nextTick(function () {
13171
+ _this4.adjustIdeaDivs();
13172
+ });
13173
+
13148
13174
  // idea-field 在自身 mounted 中才渲染,延时检查表单内嵌情况
13149
13175
  if (this.checkEmbeddedShow) {
13150
13176
  setTimeout(function () {
13151
- _this5.checkEmbeddedShown();
13177
+ _this4.checkEmbeddedShown();
13152
13178
  }, 500);
13153
13179
  }
13154
13180
  },
13155
13181
  methods: {
13182
+ // 意见栏DOM后处理:注入聊天/电话图标、触发手机号查询、签名留白裁剪;首次渲染不会触发updated,需由mounted主动调用一次,后续重渲染由updated触发(重渲染会清除innerHTML注入的图标,需反复补注)
13183
+ adjustIdeaDivs: function adjustIdeaDivs() {
13184
+ var _this5 = this;
13185
+ var ideaDivs = document.querySelectorAll('.ideaDiv');
13186
+ var ideaStaffIds = []; // 非本人意见签名人的staffId,用于批量查询手机号
13187
+ ideaDivs.forEach(function (ideaDiv) {
13188
+ if (ideaDivs && (_this5.anywhereChat || _this5.anywherePhone)) {
13189
+ if (ideaDiv.innerText !== _this5.$tx('ecmapp.common.nothing', '无') && ideaDiv.innerText !== '' && ideaDiv.innerText !== _this5.$tx('ecmapp.common.nothing', '无') && ideaDiv.attributes['staffId']) {
13190
+ var staffId = ideaDiv.attributes['staffId'].nodeValue;
13191
+ if (staffId) {
13192
+ var self = false;
13193
+ _this5.loginUser.staffList.forEach(function (staff) {
13194
+ if (staffId === staff.id) {
13195
+ self = true;
13196
+ }
13197
+ });
13198
+ if (!self) {
13199
+ if (_this5.anywherePhone && ideaStaffIds.indexOf(staffId) === -1) {
13200
+ ideaStaffIds.push(staffId);
13201
+ }
13202
+ if (_this5.anywhereChat && !ideaDiv.querySelector('.idea-start-chat')) {
13203
+ ideaDiv.innerHTML += '<a class="idea-icon-link" href="javascript:" onclick="startChat(\'' + staffId + '\')"><i data-v-5c359387="" class="idea-start-chat van-icon van-icon-chat-o"></i></a>';
13204
+ }
13205
+ }
13206
+ }
13207
+ }
13208
+ }
13209
+ var ps = ideaDiv.querySelectorAll('p');
13210
+ if (ps.length > 1) {
13211
+ var span = ps[ps.length - 1].querySelector('span');
13212
+ span.style = 'width:20px';
13213
+ }
13214
+ });
13215
+
13216
+ // 仅查询未查过的签名人,反复触发时不重复请求;查到的手机号用于给签名行注入拨打电话图标
13217
+ var newStaffIds = ideaStaffIds.filter(function (staffId) {
13218
+ return _this5.phoneQueriedStaffIds.indexOf(staffId) === -1;
13219
+ });
13220
+ if (newStaffIds.length > 0) {
13221
+ this.queryIdeaStaffMobiles(newStaffIds);
13222
+ }
13223
+ this.cropIdeaSignatureWhitespace();
13224
+ },
13156
13225
  // 检查 wfIdeaList 中每个意见栏是否已在业务表单内通过 idea-field 渲染(生成 class 为 field-{意见栏名} 的 DOM)
13157
13226
  checkEmbeddedShown: function checkEmbeddedShown() {
13158
13227
  if (this.wfIdeaList.length === 0) {
@@ -13236,17 +13305,9 @@ window.todownload = function (val) {
13236
13305
  }).then(function (response) {
13237
13306
  if (response.code === 'success') {
13238
13307
  //response.body.listdata[0].webchat = '23234'
13239
- if (response.body.listdata.length > 0 && response.body.listdata[0].webchat) {
13240
- var formUrl = encodeURIComponent(location.href.split('#')[1]);
13308
+ if (response.body.listdata && response.body.listdata.length > 0 && response.body.listdata[0].webchat) {
13241
13309
  var webchat = response.body.listdata[0].webchat;
13242
- _this8.$router.push({
13243
- path: '/chatRoom',
13244
- query: {
13245
- webchat: webchat,
13246
- openType: 'singleChat',
13247
- from: formUrl
13248
- }
13249
- });
13310
+ _this8.openChatRoom(webchat);
13250
13311
  } else {
13251
13312
  _this8.$dialog.alert({
13252
13313
  message: _this8.$tx('ecmapp.wflowform.notActivated', '未开通即时通信功能')
@@ -13254,22 +13315,196 @@ window.todownload = function (val) {
13254
13315
  }
13255
13316
  } else {
13256
13317
  _this8.$dialog.alert({
13257
- message: res.message
13318
+ message: response.message
13319
+ });
13320
+ }
13321
+ });
13322
+ },
13323
+ //跳转聊天室;表单页常处于PopupDialog右滑屏弹层栈中(路由带tier参数,每开一层弹层push一次tier+1),
13324
+ //直接push其他路由会销毁表单组件树,还开着的PopupDialog在beforeDestroy中会$router.back(-1)把路由拉回表单页并重新展开弹层;
13325
+ //须先按tier层数回退到无弹层的基础路由(弹层$route侦听器自行复位关闭),再跳转
13326
+ openChatRoom: function openChatRoom(webchat) {
13327
+ var _this9 = this;
13328
+ var hash = location.href.split('#')[1] || '';
13329
+ //返回地址剔除tier参数,从聊天室返回表单时不再带入弹层层级
13330
+ var fromUrl = hash.split('?')[0] + (hash.indexOf('?') > -1 ? '?' + hash.split('?')[1].split('&').filter(function (param) {
13331
+ return param.indexOf('tier=') !== 0;
13332
+ }).join('&') : '');
13333
+ var formUrl = encodeURIComponent(fromUrl);
13334
+ var pushChatRoom = function pushChatRoom() {
13335
+ _this9.$router.push({
13336
+ path: '/chat/chatRoom',
13337
+ query: {
13338
+ webchat: webchat,
13339
+ openType: 'singleChat',
13340
+ from: formUrl
13341
+ }
13342
+ });
13343
+ };
13344
+ var curTier = ~~this.$route.query.tier;
13345
+ if (curTier > 0) {
13346
+ //回退到基础路由后等待路由更新与弹层状态复位(hash模式路由更新为异步事件),再跳转聊天室;
13347
+ //此时PopupDialog的tier均已归零,随表单销毁不会再back(-1)
13348
+ this.$router.go(-curTier);
13349
+ setTimeout(function () {
13350
+ pushChatRoom();
13351
+ }, 300);
13352
+ } else {
13353
+ pushChatRoom();
13354
+ }
13355
+ },
13356
+ //批量查询意见签名人联系信息,缓存手机号并为有手机号的签名行注入拨打电话图标(参考startChat的接口调用方式)
13357
+ queryIdeaStaffMobiles: function queryIdeaStaffMobiles(staffIds) {
13358
+ var _this10 = this;
13359
+ this.$http({
13360
+ method: 'GET',
13361
+ params: {
13362
+ staffIds: staffIds.join()
13363
+ },
13364
+ url: 'base/organMgr/findLinkManListByStaffIds'
13365
+ }).then(function (response) {
13366
+ staffIds.forEach(function (staffId) {
13367
+ if (_this10.phoneQueriedStaffIds.indexOf(staffId) === -1) {
13368
+ _this10.phoneQueriedStaffIds.push(staffId);
13369
+ }
13370
+ });
13371
+ if (response.code !== 'success' || !response.body || !response.body.listdata) return;
13372
+ response.body.listdata.forEach(function (item) {
13373
+ var sid = item.staffId || item.id;
13374
+ if (!sid || !item.mobile) return;
13375
+ _this10.ideaStaffMobileMap[sid] = item.mobile;
13376
+ document.querySelectorAll('.ideaDiv[staffId="' + sid + '"]').forEach(function (ideaDiv) {
13377
+ if (!ideaDiv.querySelector('.idea-phone-call')) {
13378
+ ideaDiv.innerHTML += '<a class="idea-icon-link" href="javascript:" onclick="showPhoneAction(\'' + sid + '\')"><i class="idea-phone-call van-icon van-icon-phone-o"></i></a>';
13379
+ }
13380
+ });
13381
+ });
13382
+ });
13383
+ },
13384
+ //隐藏按钮转发(见window.showPhoneAction):优先取缓存手机号,缺失时单人查询接口兜底,再弹出拨号/短信actionSheet
13385
+ onPhoneCallBtnClick: function onPhoneCallBtnClick() {
13386
+ var _this11 = this;
13387
+ var staffId = document.querySelector('.phoneCallBtn').staffId;
13388
+ var mobile = this.ideaStaffMobileMap[staffId];
13389
+ if (mobile) {
13390
+ this.curPhoneNum = mobile;
13391
+ this.showPhoneActionSheet = true;
13392
+ return;
13393
+ }
13394
+ this.$http({
13395
+ method: 'GET',
13396
+ params: {
13397
+ staffIds: staffId
13398
+ },
13399
+ url: 'base/organMgr/findLinkManListByStaffIds'
13400
+ }).then(function (response) {
13401
+ if (response.code === 'success' && response.body.listdata.length > 0 && response.body.listdata[0].mobile) {
13402
+ _this11.ideaStaffMobileMap[staffId] = response.body.listdata[0].mobile;
13403
+ _this11.curPhoneNum = response.body.listdata[0].mobile;
13404
+ _this11.showPhoneActionSheet = true;
13405
+ } else {
13406
+ _this11.$dialog.alert({
13407
+ message: _this11.$tx('ecmapp.wflowform.noPhoneNum', '未查询到该签名人的手机号')
13258
13408
  });
13259
13409
  }
13260
13410
  });
13411
+ },
13412
+ //参考InputField.vue:选择拨打电话/发送短信后通过tel:/sms:协议拉起
13413
+ onPhoneActionSelect: function onPhoneActionSelect(action) {
13414
+ var phoneNum = String(this.curPhoneNum).replace(/[\s-]/g, '');
13415
+ var callText = this.$tx('ecmapp.common.makeCall', '拨打电话');
13416
+ var smsText = this.$tx('ecmapp.common.sendMessage', '发送短信');
13417
+ if (action.name === callText) {
13418
+ window.location.href = 'tel:' + phoneNum;
13419
+ } else if (action.name === smsText) {
13420
+ window.location.href = 'sms:' + phoneNum;
13421
+ }
13422
+ this.showPhoneActionSheet = false;
13423
+ },
13424
+ //剪切手写签名图片四周留白,仅保留字迹部分;移植自ecwapp HandleIdea.vue,dataset.cropped防重复裁剪(重复调用幂等)
13425
+ cropIdeaSignatureWhitespace: function cropIdeaSignatureWhitespace() {
13426
+ var _this12 = this;
13427
+ document.querySelectorAll('.ideaSignature').forEach(function (img) {
13428
+ if (img.dataset.cropped === '1') return;
13429
+ if (img.complete) {
13430
+ _this12._cropSignature(img);
13431
+ } else {
13432
+ img.addEventListener('load', function () {
13433
+ return _this12._cropSignature(img);
13434
+ }, {
13435
+ once: true
13436
+ });
13437
+ }
13438
+ });
13439
+ },
13440
+ _cropSignature: function _cropSignature(img) {
13441
+ if (img.dataset.cropped === '1' || !img.naturalWidth || !img.naturalHeight) return;
13442
+ try {
13443
+ var width = img.naturalWidth;
13444
+ var height = img.naturalHeight;
13445
+ var canvas = document.createElement('canvas');
13446
+ canvas.width = width;
13447
+ canvas.height = height;
13448
+ var ctx = canvas.getContext('2d');
13449
+ ctx.drawImage(img, 0, 0);
13450
+ var pixels = ctx.getImageData(0, 0, width, height).data;
13451
+
13452
+ //以左上角像素为背景色,兼容透明底与白底图片,扫描内容像素边界
13453
+ var bgR = pixels[0];
13454
+ var bgG = pixels[1];
13455
+ var bgB = pixels[2];
13456
+ var bgA = pixels[3];
13457
+ var minX = width;
13458
+ var minY = height;
13459
+ var maxX = -1;
13460
+ var maxY = -1;
13461
+ for (var y = 0; y < height; y++) {
13462
+ for (var x = 0; x < width; x++) {
13463
+ var i = (y * width + x) * 4;
13464
+ var isContent = void 0;
13465
+ if (bgA < 20) {
13466
+ isContent = pixels[i + 3] > 20; //透明背景:不透明即内容
13467
+ } else {
13468
+ isContent = pixels[i + 3] > 20 && Math.abs(pixels[i] - bgR) + Math.abs(pixels[i + 1] - bgG) + Math.abs(pixels[i + 2] - bgB) > 80; //与背景色差异明显即内容
13469
+ }
13470
+ if (isContent) {
13471
+ if (x < minX) minX = x;
13472
+ if (x > maxX) maxX = x;
13473
+ if (y < minY) minY = y;
13474
+ if (y > maxY) maxY = y;
13475
+ }
13476
+ }
13477
+ }
13478
+ if (maxX < 0) return; //未识别到内容像素,保持原图
13479
+
13480
+ var pad = 2; //保留少量边距,避免裁掉笔锋
13481
+ minX = Math.max(0, minX - pad);
13482
+ minY = Math.max(0, minY - pad);
13483
+ maxX = Math.min(width - 1, maxX + pad);
13484
+ maxY = Math.min(height - 1, maxY + pad);
13485
+ var cropW = maxX - minX + 1;
13486
+ var cropH = maxY - minY + 1;
13487
+ var cropCanvas = document.createElement('canvas');
13488
+ cropCanvas.width = cropW;
13489
+ cropCanvas.height = cropH;
13490
+ cropCanvas.getContext('2d').drawImage(canvas, minX, minY, cropW, cropH, 0, 0, cropW, cropH);
13491
+ img.dataset.cropped = '1';
13492
+ img.src = cropCanvas.toDataURL('image/png');
13493
+ } catch (e) {
13494
+ //canvas被跨域污染等异常时不处理,保持原图
13495
+ }
13261
13496
  }
13262
13497
  }
13263
13498
  });
13264
13499
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/HandleIdea.vue?vue&type=script&lang=js
13265
13500
  /* harmony default export */ var src_HandleIdeavue_type_script_lang_js = (HandleIdeavue_type_script_lang_js);
13266
- // 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/HandleIdea.vue?vue&type=style&index=0&id=d4a12f7a&prod&scoped=true&lang=scss
13267
- var HandleIdeavue_type_style_index_0_id_d4a12f7a_prod_scoped_true_lang_scss = __webpack_require__(3413);
13268
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/HandleIdea.vue?vue&type=style&index=0&id=d4a12f7a&prod&scoped=true&lang=scss
13501
+ // 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/HandleIdea.vue?vue&type=style&index=0&id=5ed9d962&prod&scoped=true&lang=scss
13502
+ var HandleIdeavue_type_style_index_0_id_5ed9d962_prod_scoped_true_lang_scss = __webpack_require__(5689);
13503
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/HandleIdea.vue?vue&type=style&index=0&id=5ed9d962&prod&scoped=true&lang=scss
13269
13504
 
13270
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecmapp/Wflowform/src/HandleIdea.vue?vue&type=style&index=1&id=d4a12f7a&prod&lang=css
13271
- var HandleIdeavue_type_style_index_1_id_d4a12f7a_prod_lang_css = __webpack_require__(4935);
13272
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/HandleIdea.vue?vue&type=style&index=1&id=d4a12f7a&prod&lang=css
13505
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/ecmapp/Wflowform/src/HandleIdea.vue?vue&type=style&index=1&id=5ed9d962&prod&lang=css
13506
+ var HandleIdeavue_type_style_index_1_id_5ed9d962_prod_lang_css = __webpack_require__(9395);
13507
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/HandleIdea.vue?vue&type=style&index=1&id=5ed9d962&prod&lang=css
13273
13508
 
13274
13509
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/HandleIdea.vue
13275
13510
 
@@ -13283,11 +13518,11 @@ var HandleIdeavue_type_style_index_1_id_d4a12f7a_prod_lang_css = __webpack_requi
13283
13518
 
13284
13519
  var HandleIdea_component = (0,componentNormalizer/* default */.A)(
13285
13520
  src_HandleIdeavue_type_script_lang_js,
13286
- HandleIdeavue_type_template_id_d4a12f7a_scoped_true_render,
13287
- HandleIdeavue_type_template_id_d4a12f7a_scoped_true_staticRenderFns,
13521
+ HandleIdeavue_type_template_id_5ed9d962_scoped_true_render,
13522
+ HandleIdeavue_type_template_id_5ed9d962_scoped_true_staticRenderFns,
13288
13523
  false,
13289
13524
  null,
13290
- "d4a12f7a",
13525
+ "5ed9d962",
13291
13526
  null
13292
13527
 
13293
13528
  )
@@ -17929,8 +18164,8 @@ var SubmitDialog_component = (0,componentNormalizer/* default */.A)(
17929
18164
  )
17930
18165
 
17931
18166
  /* harmony default export */ var SubmitDialog = (SubmitDialog_component.exports);
17932
- ;// 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/WfNodelogList.vue?vue&type=template&id=16e84a2b&scoped=true
17933
- var WfNodelogListvue_type_template_id_16e84a2b_scoped_true_render = function render() {
18167
+ ;// 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/WfNodelogList.vue?vue&type=template&id=3afd5fea&scoped=true
18168
+ var WfNodelogListvue_type_template_id_3afd5fea_scoped_true_render = function render() {
17934
18169
  var _vm = this,
17935
18170
  _c = _vm._self._c;
17936
18171
  return _c('div', {
@@ -17968,6 +18203,7 @@ var WfNodelogListvue_type_template_id_16e84a2b_scoped_true_render = function ren
17968
18203
  }
17969
18204
  }, [_c('van-steps', {
17970
18205
  attrs: {
18206
+ "active": -1,
17971
18207
  "direction": "vertical",
17972
18208
  "active-color": "#1989fa",
17973
18209
  "active-icon": "passed",
@@ -17984,7 +18220,7 @@ var WfNodelogListvue_type_template_id_16e84a2b_scoped_true_render = function ren
17984
18220
  }, _vm._l(_vm.wfNodeLogList, function (item) {
17985
18221
  return _c('van-step', {
17986
18222
  key: item.id,
17987
- class: item.step === 1 || item.status == 6 || item.status == 7 || _vm.openType == 'callback' ? 'active-step-finish' : 'active-step-active'
18223
+ class: item.step === 1 || item.status == 6 || item.status == 7 || item.status == 9 || _vm.openType == 'callback' ? 'active-step-finish' : 'active-step-active'
17988
18224
  }, [_vm.openType === 'callback' && _vm.callbackMode === 'beforeend' && item.status < 6 ? _c('van-checkbox', {
17989
18225
  attrs: {
17990
18226
  "slot": "inactive-icon",
@@ -18024,6 +18260,16 @@ var WfNodelogListvue_type_template_id_16e84a2b_scoped_true_render = function ren
18024
18260
  return _vm.startChat(item.staffId, item.staffName);
18025
18261
  }
18026
18262
  }
18263
+ }) : _vm._e(), _vm.anywherePhone && _vm.loginUser.personAccount !== item.staffAccount && _vm.nodelogStaffMobileMap[item.staffId] ? _c('van-icon', {
18264
+ staticClass: "start-phone",
18265
+ attrs: {
18266
+ "name": "phone-o"
18267
+ },
18268
+ on: {
18269
+ "click": function click($event) {
18270
+ return _vm.onPhoneClick(item.staffId);
18271
+ }
18272
+ }
18027
18273
  }) : _vm._e(), _vm._v(" " + _vm._s(item.staffName) + " ")], 1)]), _c('div', {
18028
18274
  staticClass: "licont"
18029
18275
  }, [_vm.showProcessedTimeLength === 1 ? [_c('p', [_c('span', {
@@ -18127,9 +18373,24 @@ var WfNodelogListvue_type_template_id_16e84a2b_scoped_true_render = function ren
18127
18373
  }
18128
18374
  }, [_vm._v("收 回")])], 1) : _vm._e()], 1), _c('WriteToReadIdea'), _c('ReturnHistoryNode', {
18129
18375
  ref: "returnHistoryNode"
18130
- }), _c('ModifyWflogAddUser'), _c('ModifyWflogForwardTodo')], 1);
18376
+ }), _c('ModifyWflogAddUser'), _c('ModifyWflogForwardTodo'), _c('van-action-sheet', {
18377
+ attrs: {
18378
+ "actions": _vm.phoneActions,
18379
+ "cancel-text": "取消"
18380
+ },
18381
+ on: {
18382
+ "select": _vm.onPhoneActionSelect
18383
+ },
18384
+ model: {
18385
+ value: _vm.showPhoneActionSheet,
18386
+ callback: function callback($$v) {
18387
+ _vm.showPhoneActionSheet = $$v;
18388
+ },
18389
+ expression: "showPhoneActionSheet"
18390
+ }
18391
+ })], 1);
18131
18392
  };
18132
- var WfNodelogListvue_type_template_id_16e84a2b_scoped_true_staticRenderFns = [];
18393
+ var WfNodelogListvue_type_template_id_3afd5fea_scoped_true_staticRenderFns = [];
18133
18394
 
18134
18395
  ;// 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/ModifyWflogAddUser.vue?vue&type=template&id=2b451f48&scoped=true
18135
18396
  var ModifyWflogAddUservue_type_template_id_2b451f48_scoped_true_render = function render() {
@@ -19675,12 +19936,28 @@ var WfNodelogListvue_type_script_lang_js_moment = __webpack_require__(5093);
19675
19936
  // 总办理耗时
19676
19937
  showpop: false,
19677
19938
  // 是否显示滑屏窗口
19678
- anywhereChat: window.anywhereChat || false,
19679
- // 是否允许发起聊天
19939
+ anywhereChat: this.$settings && this.$settings.anywhereChat || false,
19940
+ // 是否允许发起聊天(settings.js配置)
19941
+ anywherePhone: this.$settings && this.$settings.anywherePhone || false,
19942
+ // 是否允许拨打电话(settings.js配置)
19943
+ showPhoneActionSheet: false,
19944
+ curPhoneNum: '',
19945
+ nodelogStaffMobileMap: {},
19946
+ // 节点处理人staffId → 手机号
19947
+ phoneQueriedStaffIds: [],
19948
+ // 已查询过手机号的staffId,避免重复请求
19680
19949
  loginUser: this.$store.getters.loginUser
19681
19950
  };
19682
19951
  },
19683
- computed: {},
19952
+ computed: {
19953
+ phoneActions: function phoneActions() {
19954
+ return [{
19955
+ name: this.$tx('ecmapp.common.makeCall', '拨打电话')
19956
+ }, {
19957
+ name: this.$tx('ecmapp.common.sendMessage', '发送短信')
19958
+ }];
19959
+ }
19960
+ },
19684
19961
  watch: {},
19685
19962
  created: function created() {
19686
19963
  var curTN = this.$vnode.context.curTN;
@@ -19796,6 +20073,7 @@ var WfNodelogListvue_type_script_lang_js_moment = __webpack_require__(5093);
19796
20073
 
19797
20074
  // 打开流程日志滑屏窗口
19798
20075
  _this.showpop = true;
20076
+ _this.queryNodelogStaffMobiles();
19799
20077
  } else {
19800
20078
  console.log(response.message);
19801
20079
  }
@@ -19962,20 +20240,8 @@ var WfNodelogListvue_type_script_lang_js_moment = __webpack_require__(5093);
19962
20240
  url: 'base/organMgr/findLinkManListByStaffIds'
19963
20241
  }).then(function (response) {
19964
20242
  if (response.code === 'success') {
19965
- if (response.body.listdata.length > 0 && response.body.listdata[0].webchat) {
19966
- _this5.$router.back(-1);
19967
- setTimeout(function () {
19968
- var wfNodelogListUrl = encodeURIComponent(location.href.split('#')[1]);
19969
- var webchat = response.body.listdata[0].webchat;
19970
- _this5.$router.push({
19971
- path: '/chat/chatRoom',
19972
- query: {
19973
- webchat: webchat,
19974
- openType: 'singleChat',
19975
- from: wfNodelogListUrl
19976
- }
19977
- });
19978
- }, 100);
20243
+ if (response.body.listdata && response.body.listdata.length > 0 && response.body.listdata[0].webchat) {
20244
+ _this5.openChatRoom(response.body.listdata[0].webchat);
19979
20245
  } else {
19980
20246
  _this5.$dialog.alert({
19981
20247
  message: _this5.$tx('ecmapp.wflowform.notActivated1', {
@@ -19990,6 +20256,113 @@ var WfNodelogListvue_type_script_lang_js_moment = __webpack_require__(5093);
19990
20256
  }
19991
20257
  });
19992
20258
  },
20259
+ //跳转聊天室;表单页常处于PopupDialog右滑屏弹层栈中(路由带tier参数,每开一层弹层push一次tier+1),
20260
+ //直接push其他路由会销毁表单组件树,还开着的PopupDialog在beforeDestroy中会$router.back(-1)把路由拉回并重新展开弹层;
20261
+ //须先按tier层数回退到无弹层的基础路由(弹层$route侦听器自行复位关闭),再跳转(参考HandleIdea.openChatRoom)
20262
+ openChatRoom: function openChatRoom(webchat) {
20263
+ var _this6 = this;
20264
+ var hash = location.href.split('#')[1] || '';
20265
+ //返回地址剔除tier参数,从聊天室返回表单时不再带入弹层层级
20266
+ var fromUrl = hash.split('?')[0] + (hash.indexOf('?') > -1 ? '?' + hash.split('?')[1].split('&').filter(function (param) {
20267
+ return param.indexOf('tier=') !== 0;
20268
+ }).join('&') : '');
20269
+ var formUrl = encodeURIComponent(fromUrl);
20270
+ var pushChatRoom = function pushChatRoom() {
20271
+ _this6.$router.push({
20272
+ path: '/chat/chatRoom',
20273
+ query: {
20274
+ webchat: webchat,
20275
+ openType: 'singleChat',
20276
+ from: formUrl
20277
+ }
20278
+ });
20279
+ };
20280
+ var curTier = ~~this.$route.query.tier;
20281
+ if (curTier > 0) {
20282
+ //回退到基础路由后等待路由更新与弹层状态复位(hash模式路由更新为异步事件),再跳转聊天室;
20283
+ //此时PopupDialog的tier均已归零,随表单销毁不会再back(-1)
20284
+ this.$router.go(-curTier);
20285
+ setTimeout(function () {
20286
+ pushChatRoom();
20287
+ }, 300);
20288
+ } else {
20289
+ pushChatRoom();
20290
+ }
20291
+ },
20292
+ //批量查询非本人节点处理人的手机号,缓存到nodelogStaffMobileMap,供模板电话图标显隐与点击拨号使用;列表场景查不到静默不提示
20293
+ queryNodelogStaffMobiles: function queryNodelogStaffMobiles() {
20294
+ var _this7 = this;
20295
+ if (!this.anywherePhone) return;
20296
+ var staffIds = [];
20297
+ this.wfNodeLogList.forEach(function (item) {
20298
+ if (_this7.loginUser.personAccount !== item.staffAccount && item.staffId && staffIds.indexOf(item.staffId) === -1) {
20299
+ staffIds.push(item.staffId);
20300
+ }
20301
+ });
20302
+ var newStaffIds = staffIds.filter(function (staffId) {
20303
+ return _this7.phoneQueriedStaffIds.indexOf(staffId) === -1;
20304
+ });
20305
+ if (newStaffIds.length === 0) return;
20306
+ this.$http({
20307
+ method: 'GET',
20308
+ params: {
20309
+ staffIds: newStaffIds.join()
20310
+ },
20311
+ url: 'base/organMgr/findLinkManListByStaffIds'
20312
+ }).then(function (response) {
20313
+ newStaffIds.forEach(function (staffId) {
20314
+ if (_this7.phoneQueriedStaffIds.indexOf(staffId) === -1) {
20315
+ _this7.phoneQueriedStaffIds.push(staffId);
20316
+ }
20317
+ });
20318
+ if (response.code !== 'success' || !response.body || !response.body.listdata) return;
20319
+ response.body.listdata.forEach(function (item) {
20320
+ var sid = item.staffId || item.id;
20321
+ if (!sid || !item.mobile) return;
20322
+ //$set保证新增属性响应式,触发模板电话图标显示
20323
+ _this7.$set(_this7.nodelogStaffMobileMap, sid, item.mobile);
20324
+ });
20325
+ });
20326
+ },
20327
+ //点击电话图标:优先取缓存手机号,缺失时单人查询接口兜底,再弹出拨号/短信actionSheet(参考HandleIdea.onPhoneCallBtnClick)
20328
+ onPhoneClick: function onPhoneClick(staffId) {
20329
+ var _this8 = this;
20330
+ var mobile = this.nodelogStaffMobileMap[staffId];
20331
+ if (mobile) {
20332
+ this.curPhoneNum = mobile;
20333
+ this.showPhoneActionSheet = true;
20334
+ return;
20335
+ }
20336
+ this.$http({
20337
+ method: 'GET',
20338
+ params: {
20339
+ staffIds: staffId
20340
+ },
20341
+ url: 'base/organMgr/findLinkManListByStaffIds'
20342
+ }).then(function (response) {
20343
+ if (response.code === 'success' && response.body.listdata && response.body.listdata.length > 0 && response.body.listdata[0].mobile) {
20344
+ _this8.$set(_this8.nodelogStaffMobileMap, staffId, response.body.listdata[0].mobile);
20345
+ _this8.curPhoneNum = response.body.listdata[0].mobile;
20346
+ _this8.showPhoneActionSheet = true;
20347
+ } else {
20348
+ _this8.$dialog.alert({
20349
+ message: _this8.$tx('ecmapp.wflowform.noPhoneNum', '未查询到该签名人的手机号')
20350
+ });
20351
+ }
20352
+ });
20353
+ },
20354
+ //参考InputField.vue:选择拨打电话/发送短信后通过tel:/sms:协议拉起
20355
+ onPhoneActionSelect: function onPhoneActionSelect(action) {
20356
+ var phoneNum = String(this.curPhoneNum).replace(/[\s-]/g, '');
20357
+ var callText = this.$tx('ecmapp.common.makeCall', '拨打电话');
20358
+ var smsText = this.$tx('ecmapp.common.sendMessage', '发送短信');
20359
+ if (action.name === callText) {
20360
+ window.location.href = 'tel:' + phoneNum;
20361
+ } else if (action.name === smsText) {
20362
+ window.location.href = 'sms:' + phoneNum;
20363
+ }
20364
+ this.showPhoneActionSheet = false;
20365
+ },
19993
20366
  btnReturnHistoryClick: function btnReturnHistoryClick(tnPID) {
19994
20367
  //驳回指定节点或任意节点,退回相关逻辑由ReturnHistoryNode组件处理
19995
20368
  this.$refs.returnHistoryNode.open(tnPID, this.$vnode.context, this.quickSubmitNoConfirm);
@@ -19998,9 +20371,9 @@ var WfNodelogListvue_type_script_lang_js_moment = __webpack_require__(5093);
19998
20371
  });
19999
20372
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/WfNodelogList.vue?vue&type=script&lang=js
20000
20373
  /* harmony default export */ var src_WfNodelogListvue_type_script_lang_js = (WfNodelogListvue_type_script_lang_js);
20001
- // 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/WfNodelogList.vue?vue&type=style&index=0&id=16e84a2b&prod&scoped=true&lang=scss
20002
- var WfNodelogListvue_type_style_index_0_id_16e84a2b_prod_scoped_true_lang_scss = __webpack_require__(3248);
20003
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/WfNodelogList.vue?vue&type=style&index=0&id=16e84a2b&prod&scoped=true&lang=scss
20374
+ // 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/WfNodelogList.vue?vue&type=style&index=0&id=3afd5fea&prod&scoped=true&lang=scss
20375
+ var WfNodelogListvue_type_style_index_0_id_3afd5fea_prod_scoped_true_lang_scss = __webpack_require__(4322);
20376
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/WfNodelogList.vue?vue&type=style&index=0&id=3afd5fea&prod&scoped=true&lang=scss
20004
20377
 
20005
20378
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/WfNodelogList.vue
20006
20379
 
@@ -20013,11 +20386,11 @@ var WfNodelogListvue_type_style_index_0_id_16e84a2b_prod_scoped_true_lang_scss =
20013
20386
 
20014
20387
  var WfNodelogList_component = (0,componentNormalizer/* default */.A)(
20015
20388
  src_WfNodelogListvue_type_script_lang_js,
20016
- WfNodelogListvue_type_template_id_16e84a2b_scoped_true_render,
20017
- WfNodelogListvue_type_template_id_16e84a2b_scoped_true_staticRenderFns,
20389
+ WfNodelogListvue_type_template_id_3afd5fea_scoped_true_render,
20390
+ WfNodelogListvue_type_template_id_3afd5fea_scoped_true_staticRenderFns,
20018
20391
  false,
20019
20392
  null,
20020
- "16e84a2b",
20393
+ "3afd5fea",
20021
20394
  null
20022
20395
 
20023
20396
  )
@@ -20572,6 +20945,7 @@ module.exports = {
20572
20945
  handlingSuggestions: 'Handling Suggestions',
20573
20946
  notActivated: 'Instant messaging feature not activated',
20574
20947
  notActivated1: '{staffName} has not activated the instant messaging feature',
20948
+ noPhoneNum: 'No mobile number found for this signer',
20575
20949
  specifyLimit: 'Specify deadline',
20576
20950
  endless: 'No deadline',
20577
20951
  pSelectAddHandler: 'Please select the new step handler!',
@@ -20816,6 +21190,7 @@ module.exports = {
20816
21190
  handlingSuggestions: '处理意见',
20817
21191
  notActivated: '未开通即时通信功能',
20818
21192
  notActivated1: '{staffName}未开通即时通信功能',
21193
+ noPhoneNum: '未查询到该签名人的手机号',
20819
21194
  specifyLimit: '指定时限',
20820
21195
  endless: '无时限',
20821
21196
  pSelectAddHandler: '请选择新增环节处理人!',
@@ -23380,7 +23755,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".pdftools-savedialog .van-loading{heig
23380
23755
 
23381
23756
  /***/ }),
23382
23757
 
23383
- /***/ 1732:
23758
+ /***/ 4924:
23384
23759
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
23385
23760
 
23386
23761
  "use strict";
@@ -23394,7 +23769,7 @@ __webpack_require__.r(__webpack_exports__);
23394
23769
 
23395
23770
  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()));
23396
23771
  // Module
23397
- ___CSS_LOADER_EXPORT___.push([module.id, ".ideaDiv{position:relative}.idea-start-chat{margin-top:-20px;position:absolute;font-size:19px}", ""]);
23772
+ ___CSS_LOADER_EXPORT___.push([module.id, ".ideaDiv{position:relative}.idea-icon-link{color:inherit}.idea-start-chat{right:28px}.idea-phone-call,.idea-start-chat{margin-top:-20px;position:absolute;font-size:19px}.idea-phone-call{right:2px}", ""]);
23398
23773
  // Exports
23399
23774
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
23400
23775
 
@@ -24079,7 +24454,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".loading[data-v-3eb301b1]{margin-top:1
24079
24454
 
24080
24455
  /***/ }),
24081
24456
 
24082
- /***/ 4219:
24457
+ /***/ 435:
24083
24458
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
24084
24459
 
24085
24460
  "use strict";
@@ -24093,7 +24468,7 @@ __webpack_require__.r(__webpack_exports__);
24093
24468
 
24094
24469
  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()));
24095
24470
  // Module
24096
- ___CSS_LOADER_EXPORT___.push([module.id, ".handle-idea-container[data-v-d4a12f7a] .van-collapse .van-cell__title{color:#000;font-weight:400}[data-v-d4a12f7a] .ideaDiv{margin:5px 0}[data-v-d4a12f7a] .ideaDiv p{margin-top:0;margin-bottom:0}[data-v-d4a12f7a] .ideaDiv span{display:inline-block}[data-v-d4a12f7a] .ideaDiv .handwritingIdea{width:200px}[data-v-d4a12f7a] .ideaDiv .ideaSignature{max-width:100px;max-height:50px}[data-v-d4a12f7a] .ideaDiv .donext-attach{padding-left:10px;position:absolute}[data-v-d4a12f7a] .ideaDiv .donext-attach svg{margin-top:2px;width:15px;height:15px}[data-v-d4a12f7a] .highlight{font-weight:600;color:#323233}[data-v-d4a12f7a] .van-collapse-item--border:after,[data-v-d4a12f7a] .van-collapse-item__title:after{right:0}[data-v-d4a12f7a] .van-collapse-item__content{padding-top:1px}[data-v-d4a12f7a] .van-cell:after{border-bottom:0 solid}.viewAllComments[data-v-d4a12f7a]{height:45px;line-height:45px;text-align:center;color:#b7b7b7;font-size:12px;background:#fff}.HandleIdeaContent[data-v-d4a12f7a]{padding:6px 12px;color:#969799;font-size:14px;line-height:1.5;background-color:#fff}", ""]);
24471
+ ___CSS_LOADER_EXPORT___.push([module.id, ".handle-idea-container[data-v-5ed9d962] .van-collapse .van-cell__title{color:#000;font-weight:400}[data-v-5ed9d962] .ideaDiv{margin:5px 0}[data-v-5ed9d962] .ideaDiv p{margin-top:0;margin-bottom:0}[data-v-5ed9d962] .ideaDiv span{display:inline-block}[data-v-5ed9d962] .ideaDiv .handwritingIdea{width:200px}[data-v-5ed9d962] .ideaDiv .ideaSignature{max-width:80px;max-height:30px}[data-v-5ed9d962] .ideaDiv .donext-attach{padding-left:10px;position:absolute}[data-v-5ed9d962] .ideaDiv .donext-attach svg{margin-top:2px;width:15px;height:15px}[data-v-5ed9d962] .highlight{font-weight:600;color:#323233}[data-v-5ed9d962] .van-collapse-item--border:after,[data-v-5ed9d962] .van-collapse-item__title:after{right:0}[data-v-5ed9d962] .van-collapse-item__content{padding-top:1px}[data-v-5ed9d962] .van-cell:after{border-bottom:0 solid}.viewAllComments[data-v-5ed9d962]{height:45px;line-height:45px;text-align:center;color:#b7b7b7;font-size:12px;background:#fff}.HandleIdeaContent[data-v-5ed9d962]{padding:6px 12px;color:#969799;font-size:14px;line-height:1.5;background-color:#fff}", ""]);
24097
24472
  // Exports
24098
24473
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
24099
24474
 
@@ -24252,7 +24627,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".voice-input-popup[data-v-813d3ba6]{pa
24252
24627
 
24253
24628
  /***/ }),
24254
24629
 
24255
- /***/ 4010:
24630
+ /***/ 8484:
24256
24631
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
24257
24632
 
24258
24633
  "use strict";
@@ -24266,7 +24641,7 @@ __webpack_require__.r(__webpack_exports__);
24266
24641
 
24267
24642
  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()));
24268
24643
  // Module
24269
- ___CSS_LOADER_EXPORT___.push([module.id, ".wf-nodelogs-container[data-v-16e84a2b]{margin-bottom:10px}.wf-nodelogs-container .call-back-file .van-steps[data-v-16e84a2b]{height:calc(100% - 60px);overflow-y:auto}.wf-nodelogs-container[data-v-16e84a2b] .popup-body/deep/.van-steps .van-step--vertical{padding-right:16px}.wf-nodelogs-container[data-v-16e84a2b] .popup-body/deep/.van-steps .van-step__title{color:#444!important}.wf-nodelogs-container[data-v-16e84a2b] .popup-body/deep/.van-steps .van-step__line{background-color:#ebedf0!important}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .active-step-finish .van-icon-close,.wf-nodelogs-container[data-v-16e84a2b] .popup-body .active-step-finish .van-step__icon{font-size:20px}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .active-step-finish .van-step__circle-container{color:#1989fa!important}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .active-step-active .van-step__circle-container{color:#07c160!important}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .active-step-active .van-icon-edit{font-size:20px}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .elapsed-time{float:right}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .licont{color:#969799}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .licont .fr{float:right}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .handwritingIdea{width:200px}.wf-nodelogs-container[data-v-16e84a2b] .popup-body .start-chat{padding-left:5px;padding-right:5px}", ""]);
24644
+ ___CSS_LOADER_EXPORT___.push([module.id, ".wf-nodelogs-container[data-v-3afd5fea]{margin-bottom:10px}.wf-nodelogs-container .call-back-file .van-steps[data-v-3afd5fea]{height:calc(100% - 60px);overflow-y:auto}.wf-nodelogs-container[data-v-3afd5fea] .popup-body/deep/.van-steps .van-step--vertical{padding-right:16px}.wf-nodelogs-container[data-v-3afd5fea] .popup-body/deep/.van-steps .van-step__title{color:#444!important}.wf-nodelogs-container[data-v-3afd5fea] .popup-body/deep/.van-steps .van-step__line{background-color:#ebedf0!important}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .active-step-finish .van-icon-close,.wf-nodelogs-container[data-v-3afd5fea] .popup-body .active-step-finish .van-step__icon{font-size:20px}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .active-step-finish .van-step__circle-container{color:#1989fa!important}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .active-step-active .van-step__circle-container{color:#07c160!important}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .active-step-active .van-icon-edit{font-size:20px}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .elapsed-time{float:right}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .licont{color:#969799}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .licont .fr{float:right}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .handwritingIdea{width:200px}.wf-nodelogs-container[data-v-3afd5fea] .popup-body .start-chat,.wf-nodelogs-container[data-v-3afd5fea] .popup-body .start-phone{font-size:19px;padding-left:5px;padding-right:5px;vertical-align:-3px}", ""]);
24270
24645
  // Exports
24271
24646
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
24272
24647
 
@@ -51290,19 +51665,19 @@ var update = add("0ebc5c23", content, true, {"sourceMap":false,"shadowMode":fals
51290
51665
 
51291
51666
  /***/ }),
51292
51667
 
51293
- /***/ 4935:
51668
+ /***/ 9395:
51294
51669
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51295
51670
 
51296
51671
  // style-loader: Adds some css to the DOM by adding a <style> tag
51297
51672
 
51298
51673
  // load the styles
51299
- var content = __webpack_require__(1732);
51674
+ var content = __webpack_require__(4924);
51300
51675
  if(content.__esModule) content = content.default;
51301
51676
  if(typeof content === 'string') content = [[module.id, content, '']];
51302
51677
  if(content.locals) module.exports = content.locals;
51303
51678
  // add the styles to the DOM
51304
51679
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51305
- var update = add("1e353d2b", content, true, {"sourceMap":false,"shadowMode":false});
51680
+ var update = add("3bf5c273", content, true, {"sourceMap":false,"shadowMode":false});
51306
51681
 
51307
51682
  /***/ }),
51308
51683
 
@@ -51818,19 +52193,19 @@ var update = add("24b5a016", content, true, {"sourceMap":false,"shadowMode":fals
51818
52193
 
51819
52194
  /***/ }),
51820
52195
 
51821
- /***/ 3413:
52196
+ /***/ 5689:
51822
52197
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51823
52198
 
51824
52199
  // style-loader: Adds some css to the DOM by adding a <style> tag
51825
52200
 
51826
52201
  // load the styles
51827
- var content = __webpack_require__(4219);
52202
+ var content = __webpack_require__(435);
51828
52203
  if(content.__esModule) content = content.default;
51829
52204
  if(typeof content === 'string') content = [[module.id, content, '']];
51830
52205
  if(content.locals) module.exports = content.locals;
51831
52206
  // add the styles to the DOM
51832
52207
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51833
- var update = add("01f7e341", content, true, {"sourceMap":false,"shadowMode":false});
52208
+ var update = add("074f9a0e", content, true, {"sourceMap":false,"shadowMode":false});
51834
52209
 
51835
52210
  /***/ }),
51836
52211
 
@@ -51946,19 +52321,19 @@ var update = add("d301d61e", content, true, {"sourceMap":false,"shadowMode":fals
51946
52321
 
51947
52322
  /***/ }),
51948
52323
 
51949
- /***/ 3248:
52324
+ /***/ 4322:
51950
52325
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
51951
52326
 
51952
52327
  // style-loader: Adds some css to the DOM by adding a <style> tag
51953
52328
 
51954
52329
  // load the styles
51955
- var content = __webpack_require__(4010);
52330
+ var content = __webpack_require__(8484);
51956
52331
  if(content.__esModule) content = content.default;
51957
52332
  if(typeof content === 'string') content = [[module.id, content, '']];
51958
52333
  if(content.locals) module.exports = content.locals;
51959
52334
  // add the styles to the DOM
51960
52335
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
51961
- var update = add("19f7b3aa", content, true, {"sourceMap":false,"shadowMode":false});
52336
+ var update = add("2676d666", content, true, {"sourceMap":false,"shadowMode":false});
51962
52337
 
51963
52338
  /***/ }),
51964
52339
 
@@ -76209,43 +76584,43 @@ var asyncComponents = [
76209
76584
  }],
76210
76585
  // ========== ecmapp/Wflowform 工作流表单子组件 → chunk: m-wflow-form ==========
76211
76586
  ['Attachment', function () {
76212
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76587
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76213
76588
  return m.Attachment;
76214
76589
  });
76215
76590
  }], ['BodyFile', function () {
76216
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76591
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76217
76592
  return m.BodyFile;
76218
76593
  });
76219
76594
  }], ['HandleIdea', function () {
76220
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76595
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76221
76596
  return m.HandleIdea;
76222
76597
  });
76223
76598
  }], ['SelectOuterDeputy', function () {
76224
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76599
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76225
76600
  return m.SelectOuterDeputy;
76226
76601
  });
76227
76602
  }], ['SubmitHandle', function () {
76228
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76603
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76229
76604
  return m.SubmitHandle;
76230
76605
  });
76231
76606
  }], ['SubmitDialog', function () {
76232
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76607
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76233
76608
  return m.SubmitDialog;
76234
76609
  });
76235
76610
  }], ['ShortcutProcessing', function () {
76236
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76611
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76237
76612
  return m.ShortcutProcessing;
76238
76613
  });
76239
76614
  }], ['WfNodelogList', function () {
76240
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76615
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76241
76616
  return m.WfNodelogList;
76242
76617
  });
76243
76618
  }], ['WriteToReadIdea', function () {
76244
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76619
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76245
76620
  return m.WriteToReadIdea;
76246
76621
  });
76247
76622
  }], ['VoiceInputDialog', function () {
76248
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480)).then(function (m) {
76623
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620)).then(function (m) {
76249
76624
  return m.VoiceInputDialog;
76250
76625
  });
76251
76626
  }]];
@@ -76303,7 +76678,7 @@ var WfengineModule = function WfengineModule() {
76303
76678
  return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8838));
76304
76679
  };
76305
76680
  var WflowformModule = function WflowformModule() {
76306
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2480));
76681
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 620));
76307
76682
  };
76308
76683
 
76309
76684
  // ---------- 重型功能(PDF/富文本,仅特定页面使用) ----------