ecinc-cloud-mappaio 9.7.13 → 9.7.15

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.
@@ -8750,7 +8750,7 @@ src.install = function (Vue) {
8750
8750
 
8751
8751
  /***/ }),
8752
8752
 
8753
- /***/ 8439:
8753
+ /***/ 8388:
8754
8754
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8755
8755
 
8756
8756
  "use strict";
@@ -8770,7 +8770,7 @@ __webpack_require__.d(__webpack_exports__, {
8770
8770
  WriteToReadIdea: function() { return /* binding */ Wflowform_WriteToReadIdea; }
8771
8771
  });
8772
8772
 
8773
- ;// 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/Attachment.vue?vue&type=template&id=4f8ded30&scoped=true
8773
+ ;// 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/Attachment.vue?vue&type=template&id=d820d2a0&scoped=true
8774
8774
  var render = function render() {
8775
8775
  var _vm = this,
8776
8776
  _c = _vm._self._c;
@@ -8781,9 +8781,9 @@ var render = function render() {
8781
8781
  }) : _vm._e(), _vm.attachModeType === 'default' ? _c('van-cell-group', {
8782
8782
  staticClass: "van-attachment-field",
8783
8783
  class: {
8784
- 'wflow-attach': _vm.showAttachments || _vm.canUpload
8784
+ 'wflow-attach': _vm.localShowAttach || _vm.canUpload
8785
8785
  }
8786
- }, [!_vm.canUpload ? _c('van-cell', {
8786
+ }, [_c('van-cell', {
8787
8787
  staticStyle: {
8788
8788
  "height": "44px"
8789
8789
  },
@@ -8793,21 +8793,20 @@ var render = function render() {
8793
8793
  },
8794
8794
  on: {
8795
8795
  "click": function click($event) {
8796
- _vm.showAttachments = !_vm.showAttachments;
8796
+ _vm.localShowAttach = !_vm.localShowAttach;
8797
8797
  }
8798
8798
  }
8799
- }, [_vm.attachList.length > 0 ? [_vm._v(" " + _vm._s(_vm.showAttachments ? _vm.$tx('ecmapp.pageBtns.fold', '折叠') : _vm.$tx('ecmapp.pageBtns.open', '展开')) + " "), _c('van-icon', {
8800
- class: _vm.showAttachments ? 'icon-play-up' : 'icon-play-down',
8801
- attrs: {
8802
- "name": "play"
8803
- }
8804
- })] : [_vm._v(_vm._s(_vm.$tx('ecmapp.common.nothing', '无')))]], 2) : _c('van-cell', {
8799
+ }, [_c('span', {
8805
8800
  staticStyle: {
8806
- "height": "44px"
8807
- },
8808
- attrs: {
8809
- "required": _vm.isRequired > 0,
8810
- "title": (_vm.title ? _vm.title : _vm.$tx('common.attach', '附件')) + '(' + _vm.attachList.length + ')'
8801
+ "display": "inline-flex",
8802
+ "align-items": "center",
8803
+ "gap": "8px"
8804
+ }
8805
+ }, [_vm.canUpload ? _c('span', {
8806
+ on: {
8807
+ "click": function click($event) {
8808
+ $event.stopPropagation();
8809
+ }
8811
8810
  }
8812
8811
  }, [_c('van-uploader', {
8813
8812
  attrs: {
@@ -8827,7 +8826,7 @@ var render = function render() {
8827
8826
  },
8828
8827
  expression: "uploadAttach"
8829
8828
  }
8830
- }, [_vm.canUpload ? _c('van-icon', {
8829
+ }, [_c('van-icon', {
8831
8830
  staticStyle: {
8832
8831
  "margin-top": "2px"
8833
8832
  },
@@ -8835,12 +8834,17 @@ var render = function render() {
8835
8834
  "name": "add-o",
8836
8835
  "size": "20px"
8837
8836
  }
8838
- }) : _vm._e()], 1)], 1)], 1) : _vm._e(), _vm.attachModeType === 'default' ? _c('van-cell-group', {
8837
+ })], 1)], 1) : _vm._e(), _vm.attachList.length > 0 ? _c('span', [_vm._v(" " + _vm._s(_vm.localShowAttach ? _vm.$tx('ecmapp.pageBtns.fold', '折叠') : _vm.$tx('ecmapp.pageBtns.open', '展开')) + " "), _c('van-icon', {
8838
+ class: _vm.localShowAttach ? 'icon-play-up' : 'icon-play-down',
8839
+ attrs: {
8840
+ "name": "play"
8841
+ }
8842
+ })], 1) : _vm._e(), _vm.attachList.length === 0 && !_vm.canUpload ? _c('span', [_vm._v(" " + _vm._s(_vm.$tx('ecmapp.common.nothing', '无')) + " ")]) : _vm._e()])])], 1) : _vm._e(), _vm.attachModeType === 'default' ? _c('van-cell-group', {
8839
8843
  directives: [{
8840
8844
  name: "show",
8841
8845
  rawName: "v-show",
8842
- value: _vm.showAttachments || _vm.componentType === 'Wflow' && _vm.vo.status < 1,
8843
- expression: "showAttachments || (componentType === 'Wflow' && vo.status < 1)"
8846
+ value: _vm.localShowAttach || _vm.componentType === 'Wflow' && _vm.vo.status < 1,
8847
+ expression: "localShowAttach || (componentType === 'Wflow' && vo.status < 1)"
8844
8848
  }],
8845
8849
  staticClass: "wfattach-container"
8846
8850
  }, [_vm._l(_vm.attachList, function (attach, index) {
@@ -8867,7 +8871,7 @@ var render = function render() {
8867
8871
  domProps: {
8868
8872
  "innerHTML": _vm._s(attach.fileSize)
8869
8873
  }
8870
- }), _vm.showMoreMenu && attach.id !== undefined ? [_c('van-icon', {
8874
+ }), _vm.localShowMoreMenu && attach.id !== undefined ? [_c('van-icon', {
8871
8875
  attrs: {
8872
8876
  "name": "ellipsis"
8873
8877
  },
@@ -8888,7 +8892,13 @@ var render = function render() {
8888
8892
  return _vm.handleOpenEditor(attach);
8889
8893
  }
8890
8894
  }
8891
- }) : _vm._e(), _vm.canUpload && _vm.canDelete ? _c('van-icon', {
8895
+ }) : _vm._e(), _vm.deletingAttachId === attach.id ? [_c('van-icon', {
8896
+ staticClass: "attach-deleting-icon",
8897
+ attrs: {
8898
+ "name": "replay",
8899
+ "color": "#ee0a24"
8900
+ }
8901
+ })] : _vm.canUpload && _vm.canDelete ? _c('van-icon', {
8892
8902
  attrs: {
8893
8903
  "color": "#ee0a24",
8894
8904
  "name": "cross"
@@ -8900,9 +8910,6 @@ var render = function render() {
8900
8910
  }
8901
8911
  }
8902
8912
  }) : _vm._e(), _vm.attachShowDownload && attach.id !== undefined ? _c('van-icon', {
8903
- staticStyle: {
8904
- "margin-left": "4px"
8905
- },
8906
8913
  attrs: {
8907
8914
  "name": "down"
8908
8915
  },
@@ -8982,7 +8989,13 @@ var render = function render() {
8982
8989
  "top": "11px",
8983
8990
  "padding": "0 5px"
8984
8991
  }
8985
- }, [_vm.canUpload && _vm.canDelete ? _c('van-icon', {
8992
+ }, [_vm.deletingAttachId === attach.id ? [_c('van-icon', {
8993
+ staticClass: "attach-deleting-icon",
8994
+ attrs: {
8995
+ "name": "replay",
8996
+ "color": "#ee0a24"
8997
+ }
8998
+ })] : _vm.canUpload && _vm.canDelete ? _c('van-icon', {
8986
8999
  attrs: {
8987
9000
  "name": "cross"
8988
9001
  },
@@ -9002,7 +9015,7 @@ var render = function render() {
9002
9015
  return _vm.handleUploadPreview(attach);
9003
9016
  }
9004
9017
  }
9005
- })], 1)]), !attach.id && attach.file.progress > 0 ? _c('template', {
9018
+ })], 2)]), !attach.id && attach.file.progress > 0 ? _c('template', {
9006
9019
  slot: "label"
9007
9020
  }, [_c('div', {
9008
9021
  staticClass: "upload-progress"
@@ -9198,7 +9211,12 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9198
9211
  onZipAttachPreviewClick: {
9199
9212
  type: Function,
9200
9213
  default: null
9201
- } // 自定义压缩附件处理方式
9214
+ },
9215
+ // 自定义压缩附件处理方式
9216
+ autoUpload: {
9217
+ type: Boolean,
9218
+ default: true
9219
+ } // 是否开启自动上传,属性值为true时选择文件后自动上传
9202
9220
  },
9203
9221
  data: function data() {
9204
9222
  return {
@@ -9210,6 +9228,9 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9210
9228
  renameAttach: {
9211
9229
  rename: ''
9212
9230
  },
9231
+ localShowAttach: this.showAttachments,
9232
+ localShowMoreMenu: this.showMoreMenu,
9233
+ deletingAttachId: null,
9213
9234
  licExpiredAlert: null,
9214
9235
  loginUser: this.$store.getters.loginUser,
9215
9236
  topdfFile: '.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt',
@@ -9217,7 +9238,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9217
9238
  imgFile: '.pdf,.pdfx,.jpg,.png,.jpeg,.gif,.bmp' //图片文件格式
9218
9239
  };
9219
9240
  },
9220
- computed: _objectSpread({}, (0,vuex_esm/* mapGetters */.L8)(['loginUser'])),
9241
+ computed: _objectSpread({}, (0,vuex_esm/* mapGetters */.L8)(['loginUser', 'maxFileSize'])),
9221
9242
  watch: {
9222
9243
  attachments: {
9223
9244
  handler: function handler(val) {
@@ -9265,6 +9286,12 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9265
9286
  },
9266
9287
  deep: true,
9267
9288
  immediate: true
9289
+ },
9290
+ showAttachments: function showAttachments(val) {
9291
+ this.localShowAttach = val;
9292
+ },
9293
+ showMoreMenu: function showMoreMenu(val) {
9294
+ this.localShowMoreMenu = val;
9268
9295
  }
9269
9296
  },
9270
9297
  created: function created() {
@@ -9278,7 +9305,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9278
9305
  this.curTN.tnCanEdit = $scope.canEdit;
9279
9306
  if (this.canEdit == null) this.canEdit = this.curTN.tnCanEdit;
9280
9307
  this.canUpload = this.attachEdit !== null ? this.attachEdit.canUpload : this.canEdit === 1;
9281
- } else if (this.vo.status < 1 || this.attachsType === 'DONEXT') {
9308
+ } else if (this.curTN.tnCanEdit === 1 || this.attachsType === 'DONEXT') {
9282
9309
  // 流程表单
9283
9310
  this.canUpload = true;
9284
9311
  }
@@ -9292,8 +9319,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9292
9319
  setTimeout(function () {
9293
9320
  _this3.setWfAttachUrl();
9294
9321
  if (window.mappType !== 'ecinc') {
9295
- _this3.$set(_this3, 'showMoreMenu', false);
9296
- _this3.$forceUpdate();
9322
+ _this3.localShowMoreMenu = false;
9297
9323
  }
9298
9324
  }, 500);
9299
9325
 
@@ -9760,6 +9786,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9760
9786
  deleteUrl = _this8.wfAttachUrl + '/delete';
9761
9787
  if (_this.$vnode.context.wfInstance === undefined || _this.$vnode.context.wfInstance === null || _this.$vnode.context.wfInstance.id === undefined) deleteUrl = _this8.wfAttachUrl + '/deleteAttach'; // 非流程表单
9762
9788
 
9789
+ _this8.deletingAttachId = file.id;
9763
9790
  _this8.$http({
9764
9791
  method: 'DELETE',
9765
9792
  contentType: 'application/x-www-form-urlencoded',
@@ -9783,8 +9810,10 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9783
9810
  message: res.message
9784
9811
  });
9785
9812
  }
9813
+ }).finally(function () {
9814
+ _this8.deletingAttachId = null;
9786
9815
  });
9787
- case 3:
9816
+ case 4:
9788
9817
  case "end":
9789
9818
  return _context2.stop();
9790
9819
  }
@@ -9888,6 +9917,33 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9888
9917
  return attach.fileType === _this9.attachsType;
9889
9918
  });
9890
9919
  this.$forceUpdate();
9920
+
9921
+ // 选择文件后自动展开附件列表
9922
+ this.localShowAttach = true;
9923
+ setTimeout(function () {
9924
+ // 自动上传
9925
+ if (_this9.autoUpload) {
9926
+ var scope = null;
9927
+ if (_this9.$vnode.context.wfInstance) {
9928
+ scope = _this9.$vnode.context;
9929
+ } else if (_this9.$vnode.context.$parent.moduleInfo) {
9930
+ scope = _this9.$vnode.context.$parent;
9931
+ scope.wfInstance = {
9932
+ module: scope.moduleCode,
9933
+ bodyDocId: ''
9934
+ };
9935
+ } else if (_this9.$vnode.context.$parent.$vnode.context.moduleInfo) {
9936
+ scope = _this9.$vnode.context.$parent.$vnode.context;
9937
+ scope.wfInstance = {
9938
+ module: scope.moduleCode,
9939
+ bodyDocId: ''
9940
+ };
9941
+ }
9942
+ if (scope) {
9943
+ _this9.uploadWflowAttach(scope);
9944
+ }
9945
+ }
9946
+ }, 100);
9891
9947
  },
9892
9948
  // 初始化文件头像
9893
9949
  initPotourl: function initPotourl(attach) {
@@ -9927,11 +9983,27 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9927
9983
  case 0:
9928
9984
  _uploadAttachFile = function _uploadAttachFile3() {
9929
9985
  _uploadAttachFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(attach, index) {
9930
- var file, config, module, reqData, uploadRst;
9986
+ var file, maxFileSizeStr, message, config, module, reqData, uploadRst;
9931
9987
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
9932
9988
  while (1) switch (_context4.prev = _context4.next) {
9933
9989
  case 0:
9934
- file = attach.file;
9990
+ file = attach.file; // maxFileSize 校验:超过单文件大小限制时拒绝上传
9991
+ if (!(_this.maxFileSize && _this.maxFileSize !== -1)) {
9992
+ _context4.next = 6;
9993
+ break;
9994
+ }
9995
+ if (!(file.file && file.file.size > _this.maxFileSize)) {
9996
+ _context4.next = 6;
9997
+ break;
9998
+ }
9999
+ maxFileSizeStr = (0,utils/* formatFileSize */.v7)(_this.maxFileSize);
10000
+ message = '上传单个文件大小不允许超过' + maxFileSizeStr;
10001
+ return _context4.abrupt("return", {
10002
+ code: 'failure',
10003
+ message: message,
10004
+ body: {}
10005
+ });
10006
+ case 6:
9935
10007
  config = {
9936
10008
  onUploadProgress: function onUploadProgress(progressEvent) {
9937
10009
  var complete = progressEvent.loaded / progressEvent.total * 100 | 0;
@@ -9962,12 +10034,12 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
9962
10034
  // 代办佐证材料
9963
10035
  reqData.uploadBy = attach.uploadBy;
9964
10036
  }
9965
- _context4.next = 9;
10037
+ _context4.next = 14;
9966
10038
  return _this.$wfEngine.upload(_this, _this.wfAttachUrl + '/upload', file.file, reqData, config);
9967
- case 9:
10039
+ case 14:
9968
10040
  uploadRst = _context4.sent;
9969
10041
  return _context4.abrupt("return", uploadRst);
9970
- case 11:
10042
+ case 16:
9971
10043
  case "end":
9972
10044
  return _context4.stop();
9973
10045
  }
@@ -10173,7 +10245,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
10173
10245
  if (!attachment.id) return;
10174
10246
  var downloadUrl = '';
10175
10247
  downloadUrl = "/apigw" + '/' + this.wfAttachUrl + '/downloadById?inline=false&attachIds=' + attachment.id + '&httpPort=' + location.port + '&csrfToken=' + window.$auth.getCsrfToken();
10176
- if (window.layout === 'H5') {
10248
+ if (window.mappType === 'ecinc') {
10177
10249
  window.$wv.downloadFile(downloadUrl, null, attachment.fileName, null);
10178
10250
  } else {
10179
10251
  this.$mappUtils.downLoadAndOpenFile(this, downloadUrl, attachment.fileName, attachment.fileSize);
@@ -10183,9 +10255,9 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
10183
10255
  });
10184
10256
  ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/Attachment.vue?vue&type=script&lang=js
10185
10257
  /* harmony default export */ var src_Attachmentvue_type_script_lang_js = (Attachmentvue_type_script_lang_js);
10186
- // 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/Attachment.vue?vue&type=style&index=0&id=4f8ded30&prod&scoped=true&lang=scss
10187
- var Attachmentvue_type_style_index_0_id_4f8ded30_prod_scoped_true_lang_scss = __webpack_require__(8811);
10188
- ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/Attachment.vue?vue&type=style&index=0&id=4f8ded30&prod&scoped=true&lang=scss
10258
+ // 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/Attachment.vue?vue&type=style&index=0&id=d820d2a0&prod&scoped=true&lang=scss
10259
+ var Attachmentvue_type_style_index_0_id_d820d2a0_prod_scoped_true_lang_scss = __webpack_require__(9302);
10260
+ ;// CONCATENATED MODULE: ./packages/ecmapp/Wflowform/src/Attachment.vue?vue&type=style&index=0&id=d820d2a0&prod&scoped=true&lang=scss
10189
10261
 
10190
10262
  // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js
10191
10263
  var componentNormalizer = __webpack_require__(1656);
@@ -10204,7 +10276,7 @@ var component = (0,componentNormalizer/* default */.A)(
10204
10276
  staticRenderFns,
10205
10277
  false,
10206
10278
  null,
10207
- "4f8ded30",
10279
+ "d820d2a0",
10208
10280
  null
10209
10281
 
10210
10282
  )
@@ -18536,7 +18608,8 @@ module.exports = {
18536
18608
  writReviewComments: 'Please fill in review comments',
18537
18609
  noWritReview: 'Your reading record does not exist; you cannot fill in review comments.',
18538
18610
  success: 'Processed successfully',
18539
- failed: 'Processing failed'
18611
+ failed: 'Processing failed',
18612
+ notSupportMobile: 'This file does not support processing on mobile devices.'
18540
18613
  }
18541
18614
  }
18542
18615
  };
@@ -18773,22 +18846,355 @@ module.exports = {
18773
18846
  noWritReview: '您的阅文记录不存在,不能填写批阅意见',
18774
18847
  submitToNet: '您是否确认提交下一环节?',
18775
18848
  success: '处理成功',
18776
- failed: '处理失败'
18849
+ failed: '处理失败',
18850
+ notSupportMobile: '此文件不支持在手机端办理。'
18777
18851
  }
18778
18852
  }
18779
18853
  };
18780
18854
 
18781
18855
  /***/ }),
18782
18856
 
18783
- /***/ 7924:
18857
+ /***/ 8838:
18784
18858
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
18785
18859
 
18786
18860
  "use strict";
18861
+ // ESM COMPAT FLAG
18787
18862
  __webpack_require__.r(__webpack_exports__);
18788
- /* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5373);
18789
- /* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_1__);
18790
- /* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2215);
18791
- /* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_cookie__WEBPACK_IMPORTED_MODULE_0__);
18863
+
18864
+ // EXPORTS
18865
+ __webpack_require__.d(__webpack_exports__, {
18866
+ "default": function() { return /* binding */ wfengine; }
18867
+ });
18868
+
18869
+ // EXTERNAL MODULE: ./node_modules/qs/lib/index.js
18870
+ var lib = __webpack_require__(5373);
18871
+ var lib_default = /*#__PURE__*/__webpack_require__.n(lib);
18872
+ // EXTERNAL MODULE: ./node_modules/js-cookie/src/js.cookie.js
18873
+ var js_cookie = __webpack_require__(2215);
18874
+ var js_cookie_default = /*#__PURE__*/__webpack_require__.n(js_cookie);
18875
+ // EXTERNAL MODULE: ./node_modules/spark-md5/spark-md5.js
18876
+ var spark_md5 = __webpack_require__(5735);
18877
+ var spark_md5_default = /*#__PURE__*/__webpack_require__.n(spark_md5);
18878
+ ;// CONCATENATED MODULE: ./packages/ecwflow/wfengine/chunkUpload.js
18879
+ /**
18880
+ * 分片上传核心模块
18881
+ * 封装大文件分片上传、断点续传全流程逻辑
18882
+ */
18883
+
18884
+
18885
+ // ========== 配置 ==========
18886
+ var DEFAULT_CHUNK_SIZE = 3; // 默认分片大小(MB)
18887
+ var MAX_RETRY = 3; // 单分片最大重试次数
18888
+ var RETRY_DELAYS = [1000, 2000, 4000]; // 指数退避延迟(ms)
18889
+ var STORAGE_PREFIX = 'chunk_upload_'; // localStorage key 前缀
18890
+
18891
+ /**
18892
+ * 获取分片大小(字节)
18893
+ */
18894
+ function getChunkSize() {
18895
+ return (window.chunkUploadSize || DEFAULT_CHUNK_SIZE) * 1024 * 1024;
18896
+ }
18897
+
18898
+ // ========== MD5 计算 ==========
18899
+
18900
+ /**
18901
+ * 使用 spark-md5 增量计算文件 MD5(避免大文件一次性读入内存)
18902
+ * @param {File} file 文件对象
18903
+ * @param {number} chunkSize 切片大小(字节)
18904
+ * @returns {Promise<string>} 文件 MD5 值(32位小写)
18905
+ */
18906
+ function computeFileMD5(file, chunkSize) {
18907
+ return new Promise(function (resolve, reject) {
18908
+ var blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;
18909
+ var chunks = Math.ceil(file.size / chunkSize);
18910
+ var currentChunk = 0;
18911
+ var spark = new (spark_md5_default()).ArrayBuffer();
18912
+ var reader = new FileReader();
18913
+ reader.onload = function (e) {
18914
+ spark.append(e.target.result);
18915
+ currentChunk++;
18916
+ if (currentChunk < chunks) {
18917
+ loadNext();
18918
+ } else {
18919
+ resolve(spark.end());
18920
+ }
18921
+ };
18922
+ reader.onerror = function () {
18923
+ reject(new Error('文件读取失败'));
18924
+ };
18925
+ function loadNext() {
18926
+ var start = currentChunk * chunkSize;
18927
+ var end = Math.min(start + chunkSize, file.size);
18928
+ var chunk = blobSlice.call(file, start, end);
18929
+ reader.readAsArrayBuffer(chunk);
18930
+ }
18931
+ loadNext();
18932
+ });
18933
+ }
18934
+
18935
+ // ========== localStorage 断点进度管理 ==========
18936
+
18937
+ /**
18938
+ * 保存上传进度
18939
+ */
18940
+ function saveUploadProgress(fileMd5, data) {
18941
+ try {
18942
+ localStorage.setItem(STORAGE_PREFIX + fileMd5, JSON.stringify(data));
18943
+ } catch (e) {
18944
+ // localStorage 满或不可用,静默忽略
18945
+ }
18946
+ }
18947
+
18948
+ /**
18949
+ * 获取上传进度
18950
+ */
18951
+ function getUploadProgress(fileMd5) {
18952
+ try {
18953
+ var raw = localStorage.getItem(STORAGE_PREFIX + fileMd5);
18954
+ return raw ? JSON.parse(raw) : null;
18955
+ } catch (e) {
18956
+ return null;
18957
+ }
18958
+ }
18959
+
18960
+ /**
18961
+ * 清除上传进度
18962
+ */
18963
+ function clearUploadProgress(fileMd5) {
18964
+ try {
18965
+ localStorage.removeItem(STORAGE_PREFIX + fileMd5);
18966
+ } catch (e) {
18967
+ // 静默忽略
18968
+ }
18969
+ }
18970
+
18971
+ // ========== 后端接口调用 ==========
18972
+
18973
+ /**
18974
+ * 检查已上传分片
18975
+ * @param {Vue} $scope Vue 实例
18976
+ * @param {string} baseUrl 基础 URL(如 workflow/wfBusiAttach)
18977
+ * @param {string} fileMd5 文件 MD5
18978
+ * @param {number} totalChunks 总分片数
18979
+ * @returns {Promise<number[]>} 已上传分片索引列表
18980
+ */
18981
+ function checkChunkStatus($scope, baseUrl, fileMd5, totalChunks) {
18982
+ var formData = new FormData();
18983
+ formData.append('fileMd5', fileMd5);
18984
+ formData.append('totalChunks', totalChunks);
18985
+ return $scope.$http({
18986
+ url: baseUrl + '/uploadChunkCheck',
18987
+ method: 'post',
18988
+ data: formData
18989
+ }).then(function (res) {
18990
+ if (res.code === 'success' && res.body) {
18991
+ return res.body.uploadedChunks || [];
18992
+ }
18993
+ return [];
18994
+ }).catch(function () {
18995
+ return [];
18996
+ });
18997
+ }
18998
+
18999
+ /**
19000
+ * 上传单个分片(含重试)
19001
+ * @param {Vue} $scope Vue 实例
19002
+ * @param {string} baseUrl 基础 URL
19003
+ * @param {File} file 完整文件对象
19004
+ * @param {number} chunkIndex 分片索引
19005
+ * @param {string} fileMd5 文件 MD5
19006
+ * @param {number} totalChunks 总分片数
19007
+ * @param {string} fileName 文件名
19008
+ * @param {number} fileSize 文件大小
19009
+ * @returns {Promise}
19010
+ */
19011
+ function uploadSingleChunk($scope, baseUrl, file, chunkIndex, fileMd5, totalChunks, fileName, fileSize) {
19012
+ var chunkSize = getChunkSize();
19013
+ var start = chunkIndex * chunkSize;
19014
+ var end = Math.min(start + chunkSize, file.size);
19015
+ var chunk = file.slice(start, end);
19016
+ var formData = new FormData();
19017
+ formData.append('chunkFile', chunk, 'chunk_' + chunkIndex);
19018
+ formData.append('fileMd5', fileMd5);
19019
+ formData.append('chunkIndex', chunkIndex);
19020
+ formData.append('totalChunks', totalChunks);
19021
+ formData.append('fileName', fileName);
19022
+ formData.append('fileSize', fileSize);
19023
+ return doUploadWithRetry($scope, baseUrl + '/uploadChunk', formData, 0, chunkIndex);
19024
+ }
19025
+
19026
+ /**
19027
+ * 带重试的上传请求
19028
+ */
19029
+ function doUploadWithRetry($scope, url, formData, retryCount, chunkIdx) {
19030
+ return $scope.$http({
19031
+ url: url,
19032
+ method: 'post',
19033
+ data: formData
19034
+ }).then(function (res) {
19035
+ if (res.code !== 'success') {
19036
+ console.error('[chunkUpload] chunk_' + chunkIdx + ' failed:', res.message);
19037
+ throw new Error(res.message || 'chunk upload failed');
19038
+ }
19039
+ console.log('[chunkUpload] chunk_' + chunkIdx + ' success');
19040
+ return res;
19041
+ }).catch(function (err) {
19042
+ if (retryCount < MAX_RETRY) {
19043
+ console.warn('[chunkUpload] chunk_' + chunkIdx + ' retry ' + (retryCount + 1) + ':', err.message || err);
19044
+ var delay = RETRY_DELAYS[retryCount] || RETRY_DELAYS[RETRY_DELAYS.length - 1];
19045
+ return new Promise(function (resolve) {
19046
+ setTimeout(resolve, delay);
19047
+ }).then(function () {
19048
+ return doUploadWithRetry($scope, url, formData, retryCount + 1, chunkIdx);
19049
+ });
19050
+ }
19051
+ throw err;
19052
+ });
19053
+ }
19054
+
19055
+ /**
19056
+ * 合并分片
19057
+ * @param {Vue} $scope Vue 实例
19058
+ * @param {string} baseUrl 基础 URL
19059
+ * @param {string} fileMd5 文件 MD5
19060
+ * @param {string} fileName 文件名
19061
+ * @param {number} fileSize 文件大小
19062
+ * @param {number} totalChunks 总分片数
19063
+ * @param {Object} reqData 业务参数(module, busiDataId 等)
19064
+ * @returns {Promise}
19065
+ */
19066
+ function mergeChunks($scope, baseUrl, fileMd5, fileName, fileSize, totalChunks, reqData) {
19067
+ var formData = new FormData();
19068
+ formData.append('fileMd5', fileMd5);
19069
+ formData.append('fileName', fileName);
19070
+ formData.append('fileSize', fileSize);
19071
+ formData.append('totalChunks', totalChunks);
19072
+ if (reqData) {
19073
+ for (var key in reqData) {
19074
+ if (reqData.hasOwnProperty(key) && reqData[key] !== undefined && reqData[key] !== null) {
19075
+ formData.append(key, reqData[key]);
19076
+ }
19077
+ }
19078
+ }
19079
+ return $scope.$http({
19080
+ url: baseUrl + '/uploadChunkMerge',
19081
+ method: 'post',
19082
+ data: formData
19083
+ });
19084
+ }
19085
+
19086
+ // ========== 主编排函数 ==========
19087
+
19088
+ /**
19089
+ * 分片上传主流程
19090
+ * @param {Vue} $scope Vue 实例
19091
+ * @param {string} uploadUrl 上传 URL(如 workflow/wfBusiAttach/upload)
19092
+ * @param {File} file 文件对象
19093
+ * @param {Object} reqData 业务参数
19094
+ * @param {Object} config 配置(含 onUploadProgress 回调)
19095
+ * @returns {Promise} 合并后的响应,与原 upload 接口返回格式一致
19096
+ */
19097
+ function chunkedUpload($scope, uploadUrl, file, reqData, config) {
19098
+ var chunkSize = getChunkSize();
19099
+ var totalChunks = Math.ceil(file.size / chunkSize);
19100
+ var fileName = file.name || 'unknown';
19101
+ var fileSize = file.size;
19102
+
19103
+ // 从 uploadUrl 中提取 baseUrl(去掉末尾的 /upload)
19104
+ var baseUrl = uploadUrl.replace(/\/upload\/?$/, '');
19105
+ var onProgress = config && config.onUploadProgress || null;
19106
+ return new Promise(function (resolve, reject) {
19107
+ // Step 1: 计算文件 MD5
19108
+ computeFileMD5(file, chunkSize).then(function (fileMd5) {
19109
+ // Step 2: 检查断点续传进度
19110
+ var savedProgress = getUploadProgress(fileMd5);
19111
+ var uploadedBytes = savedProgress ? savedProgress.uploadedBytes || 0 : 0;
19112
+ return checkChunkStatus($scope, baseUrl, fileMd5, totalChunks).then(function (uploadedChunks) {
19113
+ // Step 3: 逐片上传未完成的分片
19114
+ var completedChunks = uploadedChunks.length;
19115
+ var uploadedBytesFromServer = 0;
19116
+ for (var i = 0; i < uploadedChunks.length; i++) {
19117
+ var idx = uploadedChunks[i];
19118
+ var cStart = idx * chunkSize;
19119
+ var cEnd = Math.min(cStart + chunkSize, fileSize);
19120
+ uploadedBytesFromServer += cEnd - cStart;
19121
+ }
19122
+ uploadedBytes = uploadedBytesFromServer;
19123
+
19124
+ // 模拟初始进度回调
19125
+ if (onProgress) {
19126
+ onProgress({
19127
+ loaded: uploadedBytes,
19128
+ total: fileSize
19129
+ });
19130
+ }
19131
+ return uploadChunksSequentially($scope, baseUrl, file, fileMd5, totalChunks, uploadedChunks, fileName, fileSize, chunkSize, function (chunkBytes) {
19132
+ completedChunks++;
19133
+ uploadedBytes += chunkBytes;
19134
+ if (onProgress) {
19135
+ onProgress({
19136
+ loaded: uploadedBytes,
19137
+ total: fileSize
19138
+ });
19139
+ }
19140
+ // 保存进度到 localStorage
19141
+ saveUploadProgress(fileMd5, {
19142
+ completedChunks: completedChunks,
19143
+ uploadedBytes: uploadedBytes,
19144
+ totalChunks: totalChunks,
19145
+ fileName: fileName,
19146
+ fileSize: fileSize,
19147
+ timestamp: Date.now()
19148
+ });
19149
+ }).then(function () {
19150
+ // Step 4: 合并分片
19151
+ return mergeChunks($scope, baseUrl, fileMd5, fileName, fileSize, totalChunks, reqData);
19152
+ }).then(function (mergeResult) {
19153
+ // Step 5: 合并成功,清除进度记录
19154
+ clearUploadProgress(fileMd5);
19155
+ resolve(mergeResult);
19156
+ });
19157
+ });
19158
+ }).catch(function (err) {
19159
+ reject(err);
19160
+ });
19161
+ });
19162
+ }
19163
+
19164
+ /**
19165
+ * 逐片串行上传
19166
+ * 使用 Array.reduce 链式调用,reduce 回调参数 cIdx 天然为每次迭代创建独立闭包,
19167
+ * 避免 for + var 共享变量导致所有分片使用同一个 chunkIndex 的问题。
19168
+ */
19169
+ function uploadChunksSequentially($scope, baseUrl, file, fileMd5, totalChunks, uploadedChunks, fileName, fileSize, chunkSize, onChunkDone) {
19170
+ var uploadedSet = {};
19171
+ for (var i = 0; i < uploadedChunks.length; i++) {
19172
+ uploadedSet[uploadedChunks[i]] = true;
19173
+ }
19174
+
19175
+ // 构建待上传分片索引数组
19176
+ var chunkIndices = [];
19177
+ for (var chunkIndex = 0; chunkIndex < totalChunks; chunkIndex++) {
19178
+ if (!uploadedSet[chunkIndex]) {
19179
+ chunkIndices.push(chunkIndex);
19180
+ }
19181
+ }
19182
+
19183
+ // reduce 的 cIdx 参数每次迭代都是独立的值,无闭包共享问题
19184
+ return chunkIndices.reduce(function (chain, cIdx) {
19185
+ return chain.then(function () {
19186
+ return uploadSingleChunk($scope, baseUrl, file, cIdx, fileMd5, totalChunks, fileName, fileSize).then(function () {
19187
+ var cStart = cIdx * chunkSize;
19188
+ var cEnd = Math.min(cStart + chunkSize, fileSize);
19189
+ var cBytes = cEnd - cStart;
19190
+ if (onChunkDone) {
19191
+ onChunkDone(cBytes);
19192
+ }
19193
+ });
19194
+ });
19195
+ }, Promise.resolve());
19196
+ }
19197
+ ;// CONCATENATED MODULE: ./packages/ecwflow/wfengine/index.js
18792
19198
  function _typeof(o) { "@babel/helpers - typeof"; return _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; }, _typeof(o); }
18793
19199
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18794
19200
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -18803,6 +19209,7 @@ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(
18803
19209
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18804
19210
 
18805
19211
 
19212
+
18806
19213
  var install = function install(Vue) {
18807
19214
  var WfEngine = new Vue({
18808
19215
  methods: {
@@ -19020,7 +19427,7 @@ var install = function install(Vue) {
19020
19427
  }
19021
19428
  }
19022
19429
  if ($scope.wfJsonData && $scope.wfJsonData.routes) {
19023
- var rindex = js_cookie__WEBPACK_IMPORTED_MODULE_0___default().get('route-index-' + $scope.wfInstance.id);
19430
+ var rindex = js_cookie_default().get('route-index-' + $scope.wfInstance.id);
19024
19431
  if (rindex !== undefined && rindex !== null) {
19025
19432
  rindex = parseInt(rindex);
19026
19433
  if ($scope.wfJsonData.routes.length > rindex) $scope.submitHandle.route.index = rindex;
@@ -19050,6 +19457,15 @@ var install = function install(Vue) {
19050
19457
  }
19051
19458
  });
19052
19459
  }
19460
+ if (window.vType === 'mapp' && $scope.curTN.h5TodoDisabled === 1) {
19461
+ $scope.$notify({
19462
+ title: '提示',
19463
+ message: $scope.$tx('ecmapp.wflowform.notSupportMobile'),
19464
+ offset: 60,
19465
+ duration: 10 * 1000,
19466
+ type: 'warning'
19467
+ });
19468
+ }
19053
19469
 
19054
19470
  // 更新vo.flContent中<img>元素的src
19055
19471
  if ($scope.vo.flContent !== undefined && $scope.vo.flContent != null && $scope.vo.flContent.indexOf('/workflow/wfBusiAttach/downloadById') !== -1) {
@@ -19468,7 +19884,7 @@ var install = function install(Vue) {
19468
19884
  $scope.$http({
19469
19885
  method: 'POST',
19470
19886
  contentType: 'application/x-www-form-urlencoded',
19471
- data: qs__WEBPACK_IMPORTED_MODULE_1___default().stringify(saveData),
19887
+ data: lib_default().stringify(saveData),
19472
19888
  params: params,
19473
19889
  url: wfEngineUrl
19474
19890
  }).then(function (res) {
@@ -19514,7 +19930,7 @@ var install = function install(Vue) {
19514
19930
  });
19515
19931
  }
19516
19932
  if ($scope.wfJsonData && $scope.wfJsonData.routes) {
19517
- var rindex = js_cookie__WEBPACK_IMPORTED_MODULE_0___default().get('route-index-' + $scope.wfInstance.id);
19933
+ var rindex = js_cookie_default().get('route-index-' + $scope.wfInstance.id);
19518
19934
  if (rindex !== undefined && rindex !== null) {
19519
19935
  rindex = parseInt(rindex);
19520
19936
  if ($scope.wfJsonData.routes.length > rindex) $scope.submitHandle.route.index = rindex;
@@ -19589,7 +20005,7 @@ var install = function install(Vue) {
19589
20005
  }
19590
20006
  var submitHandle = JSON.parse(JSON.stringify($scope.submitHandle));
19591
20007
  if (submitType.indexOf('Save') !== -1) {
19592
- js_cookie__WEBPACK_IMPORTED_MODULE_0___default().set('route-index-' + $scope.wfInstance.id, submitHandle.route.index);
20008
+ js_cookie_default().set('route-index-' + $scope.wfInstance.id, submitHandle.route.index);
19593
20009
  var route = $scope.wfJsonData == null || $scope.wfJsonData.routes == null || $scope.wfJsonData.routes.length === 0 ? {
19594
20010
  taskNodes: []
19595
20011
  } : $scope.wfJsonData.routes[submitHandle.route.index];
@@ -19600,14 +20016,14 @@ var install = function install(Vue) {
19600
20016
  if (nextUsers !== '') nextUsers += ';';
19601
20017
  nextUsers += user.id;
19602
20018
  });
19603
- js_cookie__WEBPACK_IMPORTED_MODULE_0___default().set('route-wfuser-' + $scope.curTN.tnID + '-' + wfNode.id, nextUsers);
20019
+ js_cookie_default().set('route-wfuser-' + $scope.curTN.tnID + '-' + wfNode.id, nextUsers);
19604
20020
  }
19605
20021
  });
19606
20022
  delete submitHandle.submitRoute;
19607
20023
  delete submitHandle.nextTNProp;
19608
20024
  delete submitHandle.nextTNUser;
19609
20025
  } else {
19610
- js_cookie__WEBPACK_IMPORTED_MODULE_0___default().set('route-index-' + $scope.wfInstance.id, '', {
20026
+ js_cookie_default().set('route-index-' + $scope.wfInstance.id, '', {
19611
20027
  expires: 0
19612
20028
  });
19613
20029
  var selRoute = $scope.wfJsonData == null || $scope.wfJsonData.routes == null || $scope.wfJsonData.routes.length === 0 ? {
@@ -19650,7 +20066,7 @@ var install = function install(Vue) {
19650
20066
  delete wfNode.users;
19651
20067
  submitHandle.nextTNProp.push(wfNode);
19652
20068
  submitHandle.nextTNUser.push(nextUsers);
19653
- js_cookie__WEBPACK_IMPORTED_MODULE_0___default().set('route-wfuser-' + $scope.curTN.tnID + '-' + wfNode.id, '', {
20069
+ js_cookie_default().set('route-wfuser-' + $scope.curTN.tnID + '-' + wfNode.id, '', {
19654
20070
  expires: 0
19655
20071
  });
19656
20072
  }
@@ -19683,7 +20099,7 @@ var install = function install(Vue) {
19683
20099
  headers: {
19684
20100
  'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
19685
20101
  },
19686
- data: qs__WEBPACK_IMPORTED_MODULE_1___default().stringify(saveData),
20102
+ data: lib_default().stringify(saveData),
19687
20103
  url: (params.wfEngineUrl || $scope.wfEngineUrl || 'workflow/wfInstance') + '/saveWfInstance'
19688
20104
  }).then(function (res) {
19689
20105
  if (res.code === 'success') {
@@ -19956,7 +20372,7 @@ var install = function install(Vue) {
19956
20372
  _this4.$http({
19957
20373
  method: 'POST',
19958
20374
  contentType: 'application/x-www-form-urlencoded',
19959
- data: qs__WEBPACK_IMPORTED_MODULE_1___default().stringify(saveData),
20375
+ data: lib_default().stringify(saveData),
19960
20376
  params: $scope.$vnode.context.wfParams,
19961
20377
  url: 'workflow/wfInstance/getUdmNodeUsers'
19962
20378
  }).then(function (res) {
@@ -20006,7 +20422,7 @@ var install = function install(Vue) {
20006
20422
  headers: {
20007
20423
  'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
20008
20424
  },
20009
- data: qs__WEBPACK_IMPORTED_MODULE_1___default().stringify({
20425
+ data: lib_default().stringify({
20010
20426
  wfInstance: JSON.stringify($scope.wfInstance),
20011
20427
  nextTNUsers: JSON.stringify(nextTNUsers)
20012
20428
  }),
@@ -20164,6 +20580,11 @@ var install = function install(Vue) {
20164
20580
  }
20165
20581
  },
20166
20582
  upload: function upload($scope, uploadUrl, file, params, config) {
20583
+ // 分片上传分流判断:chunkFileSizeThreshold > 0 且文件大小超过阈值
20584
+ var chunkThreshold = window.chunkFileSizeThreshold;
20585
+ if (chunkThreshold > 0 && file && file.size > chunkThreshold * 1024 * 1024) {
20586
+ return chunkedUpload($scope, uploadUrl, file, params, config);
20587
+ }
20167
20588
  var formData = new FormData();
20168
20589
  if (params != null) {
20169
20590
  for (var key in params) {
@@ -20262,7 +20683,7 @@ var install = function install(Vue) {
20262
20683
  });
20263
20684
  Vue.prototype.$wfEngine = WfEngine;
20264
20685
  };
20265
- /* harmony default export */ __webpack_exports__["default"] = (install);
20686
+ /* harmony default export */ var wfengine = (install);
20266
20687
 
20267
20688
  /***/ }),
20268
20689
 
@@ -21588,7 +22009,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, "[data-v-d6f101a0] .van-nav-bar__title{
21588
22009
 
21589
22010
  /***/ }),
21590
22011
 
21591
- /***/ 3641:
22012
+ /***/ 5596:
21592
22013
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
21593
22014
 
21594
22015
  "use strict";
@@ -21602,7 +22023,7 @@ __webpack_require__.r(__webpack_exports__);
21602
22023
 
21603
22024
  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()));
21604
22025
  // Module
21605
- ___CSS_LOADER_EXPORT___.push([module.id, ".wfattach-container .van-cell__value[data-v-4f8ded30],.wfattach-container[data-v-4f8ded30] .van-cell__title{-webkit-box-flex:0;-ms-flex:none;flex:none}.wfattach-container[data-v-4f8ded30] .van-cell__title{width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.wfattach-container[data-v-4f8ded30] .van-cell__value{width:35%;height:24px}.wfattach-container[data-v-4f8ded30] .van-cell__value .van-icon-add-o{line-height:24px}.wfattach-container[data-v-4f8ded30] .van-cell__value .van-circle{margin-top:2px}.wfattach-container[data-v-4f8ded30] .van-cell__value .attach-icon{display:-webkit-box;display:-ms-flexbox;display:flex;float:right}.wfattach-container[data-v-4f8ded30] .van-cell__value .attach-icon .van-icon{line-height:24px;margin-left:15px;font-size:16px}.wfattach-container[data-v-4f8ded30]:after{border-top-width:0}.attachmants_preview .attachmants .van-cell-group .van-cell[data-v-4f8ded30]{padding-left:70px;padding-right:36px}.attachmants_preview .attachmants .van-cell-group .van-cell[data-v-4f8ded30]:after{right:0}.attachmants_preview .attachmants .van-cell-group .van-cell[data-v-4f8ded30]:first-child:before{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:\" \";pointer-events:none;right:0;top:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.attachmants_preview .attachmants .van-cell-group .van-cell .van-cell__title[data-v-4f8ded30]{position:relative}.attachmants_preview .attachmants .van-cell-group .van-cell .van-cell__title .attach_photo[data-v-4f8ded30]{position:absolute;left:-54px;height:44px;width:44px}.attachmants_preview .attachmants .van-cell-group .van-cell .van-cell__title .attach_name[data-v-4f8ded30]{width:calc(100vw - 107px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-attachment-field[data-v-4f8ded30]{position:relative}.van-attachment-field[data-v-4f8ded30]:after{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:\" \";pointer-events:none;top:unset;border-width:0;right:0;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}", ""]);
22026
+ ___CSS_LOADER_EXPORT___.push([module.id, ".wfattach-container .van-cell__value[data-v-d820d2a0],.wfattach-container[data-v-d820d2a0] .van-cell__title{-webkit-box-flex:0;-ms-flex:none;flex:none}.wfattach-container[data-v-d820d2a0] .van-cell__title{width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.wfattach-container[data-v-d820d2a0] .van-cell__value{width:45%;height:24px}.wfattach-container[data-v-d820d2a0] .van-cell__value .van-icon-add-o{line-height:24px}.wfattach-container[data-v-d820d2a0] .van-cell__value .van-circle{margin-top:2px}.wfattach-container[data-v-d820d2a0] .van-cell__value .attach-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.wfattach-container[data-v-d820d2a0] .van-cell__value .attach-icon>span{white-space:nowrap;-ms-flex-negative:0;flex-shrink:0}.wfattach-container[data-v-d820d2a0] .van-cell__value .attach-icon .van-icon{line-height:24px;margin-left:10px;font-size:16px;-ms-flex-negative:0;flex-shrink:0}.wfattach-container[data-v-d820d2a0]:after{border-top-width:0}.attachmants_preview .attachmants .van-cell-group .van-cell[data-v-d820d2a0]{padding-left:70px;padding-right:36px}.attachmants_preview .attachmants .van-cell-group .van-cell[data-v-d820d2a0]:after{right:0}.attachmants_preview .attachmants .van-cell-group .van-cell[data-v-d820d2a0]:first-child:before{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:\" \";pointer-events:none;right:0;top:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.attachmants_preview .attachmants .van-cell-group .van-cell .van-cell__title[data-v-d820d2a0]{position:relative}.attachmants_preview .attachmants .van-cell-group .van-cell .van-cell__title .attach_photo[data-v-d820d2a0]{position:absolute;left:-54px;height:44px;width:44px}.attachmants_preview .attachmants .van-cell-group .van-cell .van-cell__title .attach_name[data-v-d820d2a0]{width:calc(100vw - 107px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-attachment-field[data-v-d820d2a0]{position:relative}.van-attachment-field[data-v-d820d2a0]:after{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:\" \";pointer-events:none;top:unset;border-width:0;right:0;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.attach-deleting-icon[data-v-d820d2a0]{display:inline-block;-webkit-animation:attach-spin-d820d2a0 .8s linear infinite;animation:attach-spin-d820d2a0 .8s linear infinite}@-webkit-keyframes attach-spin-d820d2a0{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes attach-spin-d820d2a0{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}", ""]);
21606
22027
  // Exports
21607
22028
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
21608
22029
 
@@ -48016,6 +48437,750 @@ module.exports = function getSideChannel() {
48016
48437
  };
48017
48438
 
48018
48439
 
48440
+ /***/ }),
48441
+
48442
+ /***/ 5735:
48443
+ /***/ (function(module) {
48444
+
48445
+ (function (factory) {
48446
+ if (true) {
48447
+ // Node/CommonJS
48448
+ module.exports = factory();
48449
+ } else { var glob; }
48450
+ }(function (undefined) {
48451
+
48452
+ 'use strict';
48453
+
48454
+ /*
48455
+ * Fastest md5 implementation around (JKM md5).
48456
+ * Credits: Joseph Myers
48457
+ *
48458
+ * @see http://www.myersdaily.org/joseph/javascript/md5-text.html
48459
+ * @see http://jsperf.com/md5-shootout/7
48460
+ */
48461
+
48462
+ /* this function is much faster,
48463
+ so if possible we use it. Some IEs
48464
+ are the only ones I know of that
48465
+ need the idiotic second function,
48466
+ generated by an if clause. */
48467
+ var add32 = function (a, b) {
48468
+ return (a + b) & 0xFFFFFFFF;
48469
+ },
48470
+ hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
48471
+
48472
+
48473
+ function cmn(q, a, b, x, s, t) {
48474
+ a = add32(add32(a, q), add32(x, t));
48475
+ return add32((a << s) | (a >>> (32 - s)), b);
48476
+ }
48477
+
48478
+ function md5cycle(x, k) {
48479
+ var a = x[0],
48480
+ b = x[1],
48481
+ c = x[2],
48482
+ d = x[3];
48483
+
48484
+ a += (b & c | ~b & d) + k[0] - 680876936 | 0;
48485
+ a = (a << 7 | a >>> 25) + b | 0;
48486
+ d += (a & b | ~a & c) + k[1] - 389564586 | 0;
48487
+ d = (d << 12 | d >>> 20) + a | 0;
48488
+ c += (d & a | ~d & b) + k[2] + 606105819 | 0;
48489
+ c = (c << 17 | c >>> 15) + d | 0;
48490
+ b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
48491
+ b = (b << 22 | b >>> 10) + c | 0;
48492
+ a += (b & c | ~b & d) + k[4] - 176418897 | 0;
48493
+ a = (a << 7 | a >>> 25) + b | 0;
48494
+ d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
48495
+ d = (d << 12 | d >>> 20) + a | 0;
48496
+ c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
48497
+ c = (c << 17 | c >>> 15) + d | 0;
48498
+ b += (c & d | ~c & a) + k[7] - 45705983 | 0;
48499
+ b = (b << 22 | b >>> 10) + c | 0;
48500
+ a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
48501
+ a = (a << 7 | a >>> 25) + b | 0;
48502
+ d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
48503
+ d = (d << 12 | d >>> 20) + a | 0;
48504
+ c += (d & a | ~d & b) + k[10] - 42063 | 0;
48505
+ c = (c << 17 | c >>> 15) + d | 0;
48506
+ b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
48507
+ b = (b << 22 | b >>> 10) + c | 0;
48508
+ a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
48509
+ a = (a << 7 | a >>> 25) + b | 0;
48510
+ d += (a & b | ~a & c) + k[13] - 40341101 | 0;
48511
+ d = (d << 12 | d >>> 20) + a | 0;
48512
+ c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
48513
+ c = (c << 17 | c >>> 15) + d | 0;
48514
+ b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
48515
+ b = (b << 22 | b >>> 10) + c | 0;
48516
+
48517
+ a += (b & d | c & ~d) + k[1] - 165796510 | 0;
48518
+ a = (a << 5 | a >>> 27) + b | 0;
48519
+ d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
48520
+ d = (d << 9 | d >>> 23) + a | 0;
48521
+ c += (d & b | a & ~b) + k[11] + 643717713 | 0;
48522
+ c = (c << 14 | c >>> 18) + d | 0;
48523
+ b += (c & a | d & ~a) + k[0] - 373897302 | 0;
48524
+ b = (b << 20 | b >>> 12) + c | 0;
48525
+ a += (b & d | c & ~d) + k[5] - 701558691 | 0;
48526
+ a = (a << 5 | a >>> 27) + b | 0;
48527
+ d += (a & c | b & ~c) + k[10] + 38016083 | 0;
48528
+ d = (d << 9 | d >>> 23) + a | 0;
48529
+ c += (d & b | a & ~b) + k[15] - 660478335 | 0;
48530
+ c = (c << 14 | c >>> 18) + d | 0;
48531
+ b += (c & a | d & ~a) + k[4] - 405537848 | 0;
48532
+ b = (b << 20 | b >>> 12) + c | 0;
48533
+ a += (b & d | c & ~d) + k[9] + 568446438 | 0;
48534
+ a = (a << 5 | a >>> 27) + b | 0;
48535
+ d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
48536
+ d = (d << 9 | d >>> 23) + a | 0;
48537
+ c += (d & b | a & ~b) + k[3] - 187363961 | 0;
48538
+ c = (c << 14 | c >>> 18) + d | 0;
48539
+ b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
48540
+ b = (b << 20 | b >>> 12) + c | 0;
48541
+ a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
48542
+ a = (a << 5 | a >>> 27) + b | 0;
48543
+ d += (a & c | b & ~c) + k[2] - 51403784 | 0;
48544
+ d = (d << 9 | d >>> 23) + a | 0;
48545
+ c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
48546
+ c = (c << 14 | c >>> 18) + d | 0;
48547
+ b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
48548
+ b = (b << 20 | b >>> 12) + c | 0;
48549
+
48550
+ a += (b ^ c ^ d) + k[5] - 378558 | 0;
48551
+ a = (a << 4 | a >>> 28) + b | 0;
48552
+ d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
48553
+ d = (d << 11 | d >>> 21) + a | 0;
48554
+ c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
48555
+ c = (c << 16 | c >>> 16) + d | 0;
48556
+ b += (c ^ d ^ a) + k[14] - 35309556 | 0;
48557
+ b = (b << 23 | b >>> 9) + c | 0;
48558
+ a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
48559
+ a = (a << 4 | a >>> 28) + b | 0;
48560
+ d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
48561
+ d = (d << 11 | d >>> 21) + a | 0;
48562
+ c += (d ^ a ^ b) + k[7] - 155497632 | 0;
48563
+ c = (c << 16 | c >>> 16) + d | 0;
48564
+ b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
48565
+ b = (b << 23 | b >>> 9) + c | 0;
48566
+ a += (b ^ c ^ d) + k[13] + 681279174 | 0;
48567
+ a = (a << 4 | a >>> 28) + b | 0;
48568
+ d += (a ^ b ^ c) + k[0] - 358537222 | 0;
48569
+ d = (d << 11 | d >>> 21) + a | 0;
48570
+ c += (d ^ a ^ b) + k[3] - 722521979 | 0;
48571
+ c = (c << 16 | c >>> 16) + d | 0;
48572
+ b += (c ^ d ^ a) + k[6] + 76029189 | 0;
48573
+ b = (b << 23 | b >>> 9) + c | 0;
48574
+ a += (b ^ c ^ d) + k[9] - 640364487 | 0;
48575
+ a = (a << 4 | a >>> 28) + b | 0;
48576
+ d += (a ^ b ^ c) + k[12] - 421815835 | 0;
48577
+ d = (d << 11 | d >>> 21) + a | 0;
48578
+ c += (d ^ a ^ b) + k[15] + 530742520 | 0;
48579
+ c = (c << 16 | c >>> 16) + d | 0;
48580
+ b += (c ^ d ^ a) + k[2] - 995338651 | 0;
48581
+ b = (b << 23 | b >>> 9) + c | 0;
48582
+
48583
+ a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
48584
+ a = (a << 6 | a >>> 26) + b | 0;
48585
+ d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
48586
+ d = (d << 10 | d >>> 22) + a | 0;
48587
+ c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
48588
+ c = (c << 15 | c >>> 17) + d | 0;
48589
+ b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
48590
+ b = (b << 21 |b >>> 11) + c | 0;
48591
+ a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
48592
+ a = (a << 6 | a >>> 26) + b | 0;
48593
+ d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
48594
+ d = (d << 10 | d >>> 22) + a | 0;
48595
+ c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
48596
+ c = (c << 15 | c >>> 17) + d | 0;
48597
+ b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
48598
+ b = (b << 21 |b >>> 11) + c | 0;
48599
+ a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
48600
+ a = (a << 6 | a >>> 26) + b | 0;
48601
+ d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
48602
+ d = (d << 10 | d >>> 22) + a | 0;
48603
+ c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
48604
+ c = (c << 15 | c >>> 17) + d | 0;
48605
+ b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
48606
+ b = (b << 21 |b >>> 11) + c | 0;
48607
+ a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
48608
+ a = (a << 6 | a >>> 26) + b | 0;
48609
+ d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
48610
+ d = (d << 10 | d >>> 22) + a | 0;
48611
+ c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
48612
+ c = (c << 15 | c >>> 17) + d | 0;
48613
+ b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
48614
+ b = (b << 21 | b >>> 11) + c | 0;
48615
+
48616
+ x[0] = a + x[0] | 0;
48617
+ x[1] = b + x[1] | 0;
48618
+ x[2] = c + x[2] | 0;
48619
+ x[3] = d + x[3] | 0;
48620
+ }
48621
+
48622
+ function md5blk(s) {
48623
+ var md5blks = [],
48624
+ i; /* Andy King said do it this way. */
48625
+
48626
+ for (i = 0; i < 64; i += 4) {
48627
+ md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
48628
+ }
48629
+ return md5blks;
48630
+ }
48631
+
48632
+ function md5blk_array(a) {
48633
+ var md5blks = [],
48634
+ i; /* Andy King said do it this way. */
48635
+
48636
+ for (i = 0; i < 64; i += 4) {
48637
+ md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
48638
+ }
48639
+ return md5blks;
48640
+ }
48641
+
48642
+ function md51(s) {
48643
+ var n = s.length,
48644
+ state = [1732584193, -271733879, -1732584194, 271733878],
48645
+ i,
48646
+ length,
48647
+ tail,
48648
+ tmp,
48649
+ lo,
48650
+ hi;
48651
+
48652
+ for (i = 64; i <= n; i += 64) {
48653
+ md5cycle(state, md5blk(s.substring(i - 64, i)));
48654
+ }
48655
+ s = s.substring(i - 64);
48656
+ length = s.length;
48657
+ tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
48658
+ for (i = 0; i < length; i += 1) {
48659
+ tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
48660
+ }
48661
+ tail[i >> 2] |= 0x80 << ((i % 4) << 3);
48662
+ if (i > 55) {
48663
+ md5cycle(state, tail);
48664
+ for (i = 0; i < 16; i += 1) {
48665
+ tail[i] = 0;
48666
+ }
48667
+ }
48668
+
48669
+ // Beware that the final length might not fit in 32 bits so we take care of that
48670
+ tmp = n * 8;
48671
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
48672
+ lo = parseInt(tmp[2], 16);
48673
+ hi = parseInt(tmp[1], 16) || 0;
48674
+
48675
+ tail[14] = lo;
48676
+ tail[15] = hi;
48677
+
48678
+ md5cycle(state, tail);
48679
+ return state;
48680
+ }
48681
+
48682
+ function md51_array(a) {
48683
+ var n = a.length,
48684
+ state = [1732584193, -271733879, -1732584194, 271733878],
48685
+ i,
48686
+ length,
48687
+ tail,
48688
+ tmp,
48689
+ lo,
48690
+ hi;
48691
+
48692
+ for (i = 64; i <= n; i += 64) {
48693
+ md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
48694
+ }
48695
+
48696
+ // Not sure if it is a bug, however IE10 will always produce a sub array of length 1
48697
+ // containing the last element of the parent array if the sub array specified starts
48698
+ // beyond the length of the parent array - weird.
48699
+ // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue
48700
+ a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);
48701
+
48702
+ length = a.length;
48703
+ tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
48704
+ for (i = 0; i < length; i += 1) {
48705
+ tail[i >> 2] |= a[i] << ((i % 4) << 3);
48706
+ }
48707
+
48708
+ tail[i >> 2] |= 0x80 << ((i % 4) << 3);
48709
+ if (i > 55) {
48710
+ md5cycle(state, tail);
48711
+ for (i = 0; i < 16; i += 1) {
48712
+ tail[i] = 0;
48713
+ }
48714
+ }
48715
+
48716
+ // Beware that the final length might not fit in 32 bits so we take care of that
48717
+ tmp = n * 8;
48718
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
48719
+ lo = parseInt(tmp[2], 16);
48720
+ hi = parseInt(tmp[1], 16) || 0;
48721
+
48722
+ tail[14] = lo;
48723
+ tail[15] = hi;
48724
+
48725
+ md5cycle(state, tail);
48726
+
48727
+ return state;
48728
+ }
48729
+
48730
+ function rhex(n) {
48731
+ var s = '',
48732
+ j;
48733
+ for (j = 0; j < 4; j += 1) {
48734
+ s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];
48735
+ }
48736
+ return s;
48737
+ }
48738
+
48739
+ function hex(x) {
48740
+ var i;
48741
+ for (i = 0; i < x.length; i += 1) {
48742
+ x[i] = rhex(x[i]);
48743
+ }
48744
+ return x.join('');
48745
+ }
48746
+
48747
+ // In some cases the fast add32 function cannot be used..
48748
+ if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {
48749
+ add32 = function (x, y) {
48750
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF),
48751
+ msw = (x >> 16) + (y >> 16) + (lsw >> 16);
48752
+ return (msw << 16) | (lsw & 0xFFFF);
48753
+ };
48754
+ }
48755
+
48756
+ // ---------------------------------------------------
48757
+
48758
+ /**
48759
+ * ArrayBuffer slice polyfill.
48760
+ *
48761
+ * @see https://github.com/ttaubert/node-arraybuffer-slice
48762
+ */
48763
+
48764
+ if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {
48765
+ (function () {
48766
+ function clamp(val, length) {
48767
+ val = (val | 0) || 0;
48768
+
48769
+ if (val < 0) {
48770
+ return Math.max(val + length, 0);
48771
+ }
48772
+
48773
+ return Math.min(val, length);
48774
+ }
48775
+
48776
+ ArrayBuffer.prototype.slice = function (from, to) {
48777
+ var length = this.byteLength,
48778
+ begin = clamp(from, length),
48779
+ end = length,
48780
+ num,
48781
+ target,
48782
+ targetArray,
48783
+ sourceArray;
48784
+
48785
+ if (to !== undefined) {
48786
+ end = clamp(to, length);
48787
+ }
48788
+
48789
+ if (begin > end) {
48790
+ return new ArrayBuffer(0);
48791
+ }
48792
+
48793
+ num = end - begin;
48794
+ target = new ArrayBuffer(num);
48795
+ targetArray = new Uint8Array(target);
48796
+
48797
+ sourceArray = new Uint8Array(this, begin, num);
48798
+ targetArray.set(sourceArray);
48799
+
48800
+ return target;
48801
+ };
48802
+ })();
48803
+ }
48804
+
48805
+ // ---------------------------------------------------
48806
+
48807
+ /**
48808
+ * Helpers.
48809
+ */
48810
+
48811
+ function toUtf8(str) {
48812
+ if (/[\u0080-\uFFFF]/.test(str)) {
48813
+ str = unescape(encodeURIComponent(str));
48814
+ }
48815
+
48816
+ return str;
48817
+ }
48818
+
48819
+ function utf8Str2ArrayBuffer(str, returnUInt8Array) {
48820
+ var length = str.length,
48821
+ buff = new ArrayBuffer(length),
48822
+ arr = new Uint8Array(buff),
48823
+ i;
48824
+
48825
+ for (i = 0; i < length; i += 1) {
48826
+ arr[i] = str.charCodeAt(i);
48827
+ }
48828
+
48829
+ return returnUInt8Array ? arr : buff;
48830
+ }
48831
+
48832
+ function arrayBuffer2Utf8Str(buff) {
48833
+ return String.fromCharCode.apply(null, new Uint8Array(buff));
48834
+ }
48835
+
48836
+ function concatenateArrayBuffers(first, second, returnUInt8Array) {
48837
+ var result = new Uint8Array(first.byteLength + second.byteLength);
48838
+
48839
+ result.set(new Uint8Array(first));
48840
+ result.set(new Uint8Array(second), first.byteLength);
48841
+
48842
+ return returnUInt8Array ? result : result.buffer;
48843
+ }
48844
+
48845
+ function hexToBinaryString(hex) {
48846
+ var bytes = [],
48847
+ length = hex.length,
48848
+ x;
48849
+
48850
+ for (x = 0; x < length - 1; x += 2) {
48851
+ bytes.push(parseInt(hex.substr(x, 2), 16));
48852
+ }
48853
+
48854
+ return String.fromCharCode.apply(String, bytes);
48855
+ }
48856
+
48857
+ // ---------------------------------------------------
48858
+
48859
+ /**
48860
+ * SparkMD5 OOP implementation.
48861
+ *
48862
+ * Use this class to perform an incremental md5, otherwise use the
48863
+ * static methods instead.
48864
+ */
48865
+
48866
+ function SparkMD5() {
48867
+ // call reset to init the instance
48868
+ this.reset();
48869
+ }
48870
+
48871
+ /**
48872
+ * Appends a string.
48873
+ * A conversion will be applied if an utf8 string is detected.
48874
+ *
48875
+ * @param {String} str The string to be appended
48876
+ *
48877
+ * @return {SparkMD5} The instance itself
48878
+ */
48879
+ SparkMD5.prototype.append = function (str) {
48880
+ // Converts the string to utf8 bytes if necessary
48881
+ // Then append as binary
48882
+ this.appendBinary(toUtf8(str));
48883
+
48884
+ return this;
48885
+ };
48886
+
48887
+ /**
48888
+ * Appends a binary string.
48889
+ *
48890
+ * @param {String} contents The binary string to be appended
48891
+ *
48892
+ * @return {SparkMD5} The instance itself
48893
+ */
48894
+ SparkMD5.prototype.appendBinary = function (contents) {
48895
+ this._buff += contents;
48896
+ this._length += contents.length;
48897
+
48898
+ var length = this._buff.length,
48899
+ i;
48900
+
48901
+ for (i = 64; i <= length; i += 64) {
48902
+ md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));
48903
+ }
48904
+
48905
+ this._buff = this._buff.substring(i - 64);
48906
+
48907
+ return this;
48908
+ };
48909
+
48910
+ /**
48911
+ * Finishes the incremental computation, reseting the internal state and
48912
+ * returning the result.
48913
+ *
48914
+ * @param {Boolean} raw True to get the raw string, false to get the hex string
48915
+ *
48916
+ * @return {String} The result
48917
+ */
48918
+ SparkMD5.prototype.end = function (raw) {
48919
+ var buff = this._buff,
48920
+ length = buff.length,
48921
+ i,
48922
+ tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
48923
+ ret;
48924
+
48925
+ for (i = 0; i < length; i += 1) {
48926
+ tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);
48927
+ }
48928
+
48929
+ this._finish(tail, length);
48930
+ ret = hex(this._hash);
48931
+
48932
+ if (raw) {
48933
+ ret = hexToBinaryString(ret);
48934
+ }
48935
+
48936
+ this.reset();
48937
+
48938
+ return ret;
48939
+ };
48940
+
48941
+ /**
48942
+ * Resets the internal state of the computation.
48943
+ *
48944
+ * @return {SparkMD5} The instance itself
48945
+ */
48946
+ SparkMD5.prototype.reset = function () {
48947
+ this._buff = '';
48948
+ this._length = 0;
48949
+ this._hash = [1732584193, -271733879, -1732584194, 271733878];
48950
+
48951
+ return this;
48952
+ };
48953
+
48954
+ /**
48955
+ * Gets the internal state of the computation.
48956
+ *
48957
+ * @return {Object} The state
48958
+ */
48959
+ SparkMD5.prototype.getState = function () {
48960
+ return {
48961
+ buff: this._buff,
48962
+ length: this._length,
48963
+ hash: this._hash.slice()
48964
+ };
48965
+ };
48966
+
48967
+ /**
48968
+ * Gets the internal state of the computation.
48969
+ *
48970
+ * @param {Object} state The state
48971
+ *
48972
+ * @return {SparkMD5} The instance itself
48973
+ */
48974
+ SparkMD5.prototype.setState = function (state) {
48975
+ this._buff = state.buff;
48976
+ this._length = state.length;
48977
+ this._hash = state.hash;
48978
+
48979
+ return this;
48980
+ };
48981
+
48982
+ /**
48983
+ * Releases memory used by the incremental buffer and other additional
48984
+ * resources. If you plan to use the instance again, use reset instead.
48985
+ */
48986
+ SparkMD5.prototype.destroy = function () {
48987
+ delete this._hash;
48988
+ delete this._buff;
48989
+ delete this._length;
48990
+ };
48991
+
48992
+ /**
48993
+ * Finish the final calculation based on the tail.
48994
+ *
48995
+ * @param {Array} tail The tail (will be modified)
48996
+ * @param {Number} length The length of the remaining buffer
48997
+ */
48998
+ SparkMD5.prototype._finish = function (tail, length) {
48999
+ var i = length,
49000
+ tmp,
49001
+ lo,
49002
+ hi;
49003
+
49004
+ tail[i >> 2] |= 0x80 << ((i % 4) << 3);
49005
+ if (i > 55) {
49006
+ md5cycle(this._hash, tail);
49007
+ for (i = 0; i < 16; i += 1) {
49008
+ tail[i] = 0;
49009
+ }
49010
+ }
49011
+
49012
+ // Do the final computation based on the tail and length
49013
+ // Beware that the final length may not fit in 32 bits so we take care of that
49014
+ tmp = this._length * 8;
49015
+ tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
49016
+ lo = parseInt(tmp[2], 16);
49017
+ hi = parseInt(tmp[1], 16) || 0;
49018
+
49019
+ tail[14] = lo;
49020
+ tail[15] = hi;
49021
+ md5cycle(this._hash, tail);
49022
+ };
49023
+
49024
+ /**
49025
+ * Performs the md5 hash on a string.
49026
+ * A conversion will be applied if utf8 string is detected.
49027
+ *
49028
+ * @param {String} str The string
49029
+ * @param {Boolean} [raw] True to get the raw string, false to get the hex string
49030
+ *
49031
+ * @return {String} The result
49032
+ */
49033
+ SparkMD5.hash = function (str, raw) {
49034
+ // Converts the string to utf8 bytes if necessary
49035
+ // Then compute it using the binary function
49036
+ return SparkMD5.hashBinary(toUtf8(str), raw);
49037
+ };
49038
+
49039
+ /**
49040
+ * Performs the md5 hash on a binary string.
49041
+ *
49042
+ * @param {String} content The binary string
49043
+ * @param {Boolean} [raw] True to get the raw string, false to get the hex string
49044
+ *
49045
+ * @return {String} The result
49046
+ */
49047
+ SparkMD5.hashBinary = function (content, raw) {
49048
+ var hash = md51(content),
49049
+ ret = hex(hash);
49050
+
49051
+ return raw ? hexToBinaryString(ret) : ret;
49052
+ };
49053
+
49054
+ // ---------------------------------------------------
49055
+
49056
+ /**
49057
+ * SparkMD5 OOP implementation for array buffers.
49058
+ *
49059
+ * Use this class to perform an incremental md5 ONLY for array buffers.
49060
+ */
49061
+ SparkMD5.ArrayBuffer = function () {
49062
+ // call reset to init the instance
49063
+ this.reset();
49064
+ };
49065
+
49066
+ /**
49067
+ * Appends an array buffer.
49068
+ *
49069
+ * @param {ArrayBuffer} arr The array to be appended
49070
+ *
49071
+ * @return {SparkMD5.ArrayBuffer} The instance itself
49072
+ */
49073
+ SparkMD5.ArrayBuffer.prototype.append = function (arr) {
49074
+ var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),
49075
+ length = buff.length,
49076
+ i;
49077
+
49078
+ this._length += arr.byteLength;
49079
+
49080
+ for (i = 64; i <= length; i += 64) {
49081
+ md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));
49082
+ }
49083
+
49084
+ this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
49085
+
49086
+ return this;
49087
+ };
49088
+
49089
+ /**
49090
+ * Finishes the incremental computation, reseting the internal state and
49091
+ * returning the result.
49092
+ *
49093
+ * @param {Boolean} raw True to get the raw string, false to get the hex string
49094
+ *
49095
+ * @return {String} The result
49096
+ */
49097
+ SparkMD5.ArrayBuffer.prototype.end = function (raw) {
49098
+ var buff = this._buff,
49099
+ length = buff.length,
49100
+ tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
49101
+ i,
49102
+ ret;
49103
+
49104
+ for (i = 0; i < length; i += 1) {
49105
+ tail[i >> 2] |= buff[i] << ((i % 4) << 3);
49106
+ }
49107
+
49108
+ this._finish(tail, length);
49109
+ ret = hex(this._hash);
49110
+
49111
+ if (raw) {
49112
+ ret = hexToBinaryString(ret);
49113
+ }
49114
+
49115
+ this.reset();
49116
+
49117
+ return ret;
49118
+ };
49119
+
49120
+ /**
49121
+ * Resets the internal state of the computation.
49122
+ *
49123
+ * @return {SparkMD5.ArrayBuffer} The instance itself
49124
+ */
49125
+ SparkMD5.ArrayBuffer.prototype.reset = function () {
49126
+ this._buff = new Uint8Array(0);
49127
+ this._length = 0;
49128
+ this._hash = [1732584193, -271733879, -1732584194, 271733878];
49129
+
49130
+ return this;
49131
+ };
49132
+
49133
+ /**
49134
+ * Gets the internal state of the computation.
49135
+ *
49136
+ * @return {Object} The state
49137
+ */
49138
+ SparkMD5.ArrayBuffer.prototype.getState = function () {
49139
+ var state = SparkMD5.prototype.getState.call(this);
49140
+
49141
+ // Convert buffer to a string
49142
+ state.buff = arrayBuffer2Utf8Str(state.buff);
49143
+
49144
+ return state;
49145
+ };
49146
+
49147
+ /**
49148
+ * Gets the internal state of the computation.
49149
+ *
49150
+ * @param {Object} state The state
49151
+ *
49152
+ * @return {SparkMD5.ArrayBuffer} The instance itself
49153
+ */
49154
+ SparkMD5.ArrayBuffer.prototype.setState = function (state) {
49155
+ // Convert string to buffer
49156
+ state.buff = utf8Str2ArrayBuffer(state.buff, true);
49157
+
49158
+ return SparkMD5.prototype.setState.call(this, state);
49159
+ };
49160
+
49161
+ SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
49162
+
49163
+ SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
49164
+
49165
+ /**
49166
+ * Performs the md5 hash on an array buffer.
49167
+ *
49168
+ * @param {ArrayBuffer} arr The array buffer
49169
+ * @param {Boolean} [raw] True to get the raw string, false to get the hex one
49170
+ *
49171
+ * @return {String} The result
49172
+ */
49173
+ SparkMD5.ArrayBuffer.hash = function (arr, raw) {
49174
+ var hash = md51_array(new Uint8Array(arr)),
49175
+ ret = hex(hash);
49176
+
49177
+ return raw ? hexToBinaryString(ret) : ret;
49178
+ };
49179
+
49180
+ return SparkMD5;
49181
+ }));
49182
+
49183
+
48019
49184
  /***/ }),
48020
49185
 
48021
49186
  /***/ 2048:
@@ -48530,19 +49695,19 @@ var update = add("4ff8cc4e", content, true, {"sourceMap":false,"shadowMode":fals
48530
49695
 
48531
49696
  /***/ }),
48532
49697
 
48533
- /***/ 8811:
49698
+ /***/ 9302:
48534
49699
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
48535
49700
 
48536
49701
  // style-loader: Adds some css to the DOM by adding a <style> tag
48537
49702
 
48538
49703
  // load the styles
48539
- var content = __webpack_require__(3641);
49704
+ var content = __webpack_require__(5596);
48540
49705
  if(content.__esModule) content = content.default;
48541
49706
  if(typeof content === 'string') content = [[module.id, content, '']];
48542
49707
  if(content.locals) module.exports = content.locals;
48543
49708
  // add the styles to the DOM
48544
49709
  var add = (__webpack_require__(9548)/* ["default"] */ .A)
48545
- var update = add("430458c6", content, true, {"sourceMap":false,"shadowMode":false});
49710
+ var update = add("06724a92", content, true, {"sourceMap":false,"shadowMode":false});
48546
49711
 
48547
49712
  /***/ }),
48548
49713
 
@@ -70803,39 +71968,39 @@ var asyncComponents = [
70803
71968
  }],
70804
71969
  // ========== ecmapp/Wflowform 工作流表单子组件 → chunk: m-wflow-form ==========
70805
71970
  ['Attachment', function () {
70806
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
71971
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70807
71972
  return m.Attachment;
70808
71973
  });
70809
71974
  }], ['BodyFile', function () {
70810
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
71975
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70811
71976
  return m.BodyFile;
70812
71977
  });
70813
71978
  }], ['HandleIdea', function () {
70814
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
71979
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70815
71980
  return m.HandleIdea;
70816
71981
  });
70817
71982
  }], ['SelectOuterDeputy', function () {
70818
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
71983
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70819
71984
  return m.SelectOuterDeputy;
70820
71985
  });
70821
71986
  }], ['SubmitHandle', function () {
70822
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
71987
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70823
71988
  return m.SubmitHandle;
70824
71989
  });
70825
71990
  }], ['SubmitDialog', function () {
70826
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
71991
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70827
71992
  return m.SubmitDialog;
70828
71993
  });
70829
71994
  }], ['ShortcutProcessing', function () {
70830
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
71995
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70831
71996
  return m.ShortcutProcessing;
70832
71997
  });
70833
71998
  }], ['WfNodelogList', function () {
70834
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
71999
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70835
72000
  return m.WfNodelogList;
70836
72001
  });
70837
72002
  }], ['WriteToReadIdea', function () {
70838
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439)).then(function (m) {
72003
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388)).then(function (m) {
70839
72004
  return m.WriteToReadIdea;
70840
72005
  });
70841
72006
  }]];
@@ -70859,7 +72024,7 @@ var mappaio_install = function install(Vue) {
70859
72024
  });
70860
72025
 
70861
72026
  // 3. 异步加载工作流引擎插件(独立 chunk)
70862
- Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 7924)).then(function (m) {
72027
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8838)).then(function (m) {
70863
72028
  Vue.use(m.default || m);
70864
72029
  });
70865
72030
  };
@@ -70885,10 +72050,10 @@ var webSocket = websocket/* default */.A;
70885
72050
 
70886
72051
  // ---------- 工作流相关 ----------
70887
72052
  var WfengineModule = function WfengineModule() {
70888
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 7924));
72053
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8838));
70889
72054
  };
70890
72055
  var WflowformModule = function WflowformModule() {
70891
- return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8439));
72056
+ return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8388));
70892
72057
  };
70893
72058
 
70894
72059
  // ---------- 重型功能(PDF/富文本,仅特定页面使用) ----------