fmui-base 2.3.72 → 2.3.73

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.
package/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  ---npm publish
4
4
 
5
5
  ## 更新日志
6
+ - 2.3.73:移动端流程表单增加退回后重新提交前的批示意见在表单下方显示
6
7
  - 2.3.72:移动端表单设置自定义样式时图标乱码问题
7
8
  - 2.3.71:移动端办理列表缓急标签样式
8
9
  - 2.3.70:移动端支持表单的规则设置校验
@@ -310,15 +310,29 @@ var PageHome = function (_React$Component) {
310
310
  { className: 't-PR5' },
311
311
  item.orgShowName
312
312
  );
313
- var caImg = t.state.caSignatureMap && t.state.caSignatureMap[item.id] || t.normalizeBase64(item.caSignatureImg);
314
- var hasSignImg = !!(caImg || item.signPic != null && item.signPic !== '');
315
- var signPicHtml = caImg ? _react2.default.createElement('img', { className: 't-H64 t-PR5 signPic', src: 'data:image/png;base64,' + caImg }) : item.signPic ? _react2.default.createElement('img', { className: 't-H64 t-PR5 signPic', src: t.state.loadImg + item.signPic }) : "";
313
+ // 优先 base64 / dataURI,避免 viewImage?token= 拼在链接上
314
+ var signSrc = '';
315
+ if (item.imgSrc && String(item.imgSrc).indexOf('data:') === 0) {
316
+ signSrc = String(item.imgSrc);
317
+ } else {
318
+ var caImg = t.state.caSignatureMap && t.state.caSignatureMap[item.id] || t.normalizeBase64(item.caSignatureImg);
319
+ if (caImg) {
320
+ var mime = String(caImg).indexOf('/9j/') === 0 ? 'image/jpeg' : 'image/png';
321
+ signSrc = 'data:' + mime + ';base64,' + caImg;
322
+ } else if (item.signPic) {
323
+ // 兜底:后端未转 base64 时仍走附件预览(不推荐)
324
+ signSrc = t.state.loadImg + item.signPic;
325
+ }
326
+ }
327
+ var hasSignImg = !!signSrc;
328
+ var signPicHtml = signSrc ? _react2.default.createElement('img', { className: 't-H64 t-PR5 signPic', src: signSrc }) : "";
316
329
  var taskNameHtml = _react2.default.createElement(
317
330
  'span',
318
331
  { className: 't-PR5' },
319
332
  item.taskName
320
333
  );
321
- var sealHtml = item.sealFileId && item.sealFileId !== "" ? _react2.default.createElement('img', { className: 't-PR5', src: t.state.loadImg + item.sealFileId, style: { 'position': 'absolute', 'top': '-35px', 'right': '10px', 'height': '64px', 'opacity': 0.8 } }) : "";
334
+ var sealSrc = item.sealSrc && String(item.sealSrc).indexOf('data:') === 0 ? String(item.sealSrc) : item.sealFileId && item.sealFileId !== "" ? t.state.loadImg + item.sealFileId : '';
335
+ var sealHtml = sealSrc ? _react2.default.createElement('img', { className: 't-PR5', src: sealSrc, style: { 'position': 'absolute', 'top': '-35px', 'right': '10px', 'height': '64px', 'opacity': 0.8 } }) : "";
322
336
  var inscriptionShowArray = item.inscriptionShow.split(",");
323
337
  var showUserName = inscriptionShowArray.indexOf("userName") >= 0 && (item.inscriptionShow.indexOf("signImg") < 0 || item.inscriptionShow.indexOf("signImg") >= 0 && !hasSignImg);
324
338
  var _returnHtml = inscriptionShowArray.map(function (inscriptionItem) {
@@ -544,6 +544,8 @@ var PageHome = function (_React$Component) {
544
544
  mobileFlowChar: '0', //是否开启流程图 1开启 0禁用
545
545
  mobileSubTblDefault: '1', //移动端子表默认 1展开 0收起;未设置按展开
546
546
  enableMessageBoard: '0', //流程启用留言板
547
+ showPreResubmitComment: '0', //退回后重新提交前意见在表单下方显示
548
+ preResubmitCommentList: [], //重新发起前批示意见(历史轮)
547
549
  enableAttachmentArea: '0', //流程启用附件区
548
550
  relationCount: 0, //关联流程数量
549
551
  hasRelationBtn: false, //当前是否具备关联流程按钮权限
@@ -1730,6 +1732,8 @@ var PageHome = function (_React$Component) {
1730
1732
  mobileSubTblDefault: mobileSubTblDefault,
1731
1733
  enableMessageBoard: enableMessageBoard,
1732
1734
  enableAttachmentArea: enableAttachmentArea,
1735
+ showPreResubmitComment: content.showPreResubmitComment != null && content.showPreResubmitComment !== '' ? String(content.showPreResubmitComment) : '0',
1736
+ preResubmitCommentList: Array.isArray(content.preResubmitCommentList) ? content.preResubmitCommentList : [],
1733
1737
  readScopeId: readScopeId,
1734
1738
  readScopeList: readScopeList,
1735
1739
  readRangeType: readRangeType,
@@ -9627,10 +9631,215 @@ var PageHome = function (_React$Component) {
9627
9631
  }
9628
9632
  }, 100);
9629
9633
  }
9634
+
9635
+ /** 按批示意见落款设置拼装(与 PC 一致) */
9636
+
9637
+ }, {
9638
+ key: 'buildPreResubmitInscription',
9639
+ value: function buildPreResubmitInscription(c) {
9640
+ var show = (c.inscriptionShow || c.inscription_show || '').toString();
9641
+ if (!show) {
9642
+ show = 'userName,date,time';
9643
+ }
9644
+ var raw = c.signtime || c.time || c.createdDate || '';
9645
+ var s = raw == null ? '' : String(raw).replace('T', ' ');
9646
+ var date = s.length >= 10 ? s.substring(0, 10) : '';
9647
+ var time = '';
9648
+ if (s.length >= 19) {
9649
+ time = s.substring(11, 19);
9650
+ } else if (s.length >= 16) {
9651
+ time = s.substring(11, 16);
9652
+ }
9653
+ var parts = [];
9654
+ var hasSignImg = false;
9655
+ if (show.indexOf('signImg') !== -1) {
9656
+ // 与批示意见组件 List.jsx 一致:纯 base64 拼 dataURI。
9657
+ // 注意:JPEG base64 以 /9j/ 开头,绝不能用 startsWith('/') 当路径跳过前缀。
9658
+ var src = '';
9659
+ if (c.imgSrc && String(c.imgSrc).indexOf('data:') === 0) {
9660
+ src = String(c.imgSrc);
9661
+ } else {
9662
+ var caImg = c.caSignatureImg || c.ca_signature_img || '';
9663
+ if (caImg) {
9664
+ var imgData = String(caImg).replace(/\s+/g, '');
9665
+ var mark = 'base64,';
9666
+ var markIdx = imgData.indexOf(mark);
9667
+ if (markIdx > -1) {
9668
+ imgData = imgData.substring(markIdx + mark.length);
9669
+ }
9670
+ if (imgData.indexOf('data:') === 0 || imgData.indexOf('http') === 0) {
9671
+ src = imgData;
9672
+ } else if (imgData) {
9673
+ var mime = imgData.indexOf('/9j/') === 0 ? 'image/jpeg' : 'image/png';
9674
+ src = 'data:' + mime + ';base64,' + imgData;
9675
+ }
9676
+ } else if (c.signPic) {
9677
+ var fidRaw = String(c.signPic);
9678
+ if (fidRaw.indexOf('data:') === 0 || fidRaw.indexOf('http') === 0) {
9679
+ src = fidRaw;
9680
+ } else {
9681
+ var signFid = fidRaw;
9682
+ var sinIdx = signFid.indexOf('_sinPic');
9683
+ if (sinIdx > -1) {
9684
+ signFid = signFid.substring(0, sinIdx);
9685
+ }
9686
+ src = _variables2.default.loadImg + '&fid=' + signFid;
9687
+ }
9688
+ } else if (c.imgSrc) {
9689
+ src = String(c.imgSrc);
9690
+ }
9691
+ }
9692
+ if (src) {
9693
+ hasSignImg = true;
9694
+ parts.push(_react2.default.createElement('img', { key: 'sign', className: 'signPic', src: src, style: { maxHeight: 64, maxWidth: 120, verticalAlign: 'middle', marginRight: 6 } }));
9695
+ }
9696
+ }
9697
+ // 有签名图时与表单一致:不再重复显示姓名
9698
+ if (show.indexOf('userName') !== -1 && !hasSignImg) {
9699
+ var un = c.userName || '';
9700
+ if (c.replacename) {
9701
+ un = un ? un + '(' + c.replacename + ')' : c.replacename;
9702
+ }
9703
+ if (un) {
9704
+ parts.push(_react2.default.createElement(
9705
+ 'span',
9706
+ { key: 'un' },
9707
+ un,
9708
+ ' '
9709
+ ));
9710
+ }
9711
+ }
9712
+ if (show.indexOf('org') !== -1) {
9713
+ var orgName = c.orgShowName || c.orgName || '';
9714
+ if (orgName) {
9715
+ parts.push(_react2.default.createElement(
9716
+ 'span',
9717
+ { key: 'org' },
9718
+ orgName,
9719
+ ' '
9720
+ ));
9721
+ }
9722
+ }
9723
+ if (show.indexOf('date') !== -1 && date) {
9724
+ parts.push(_react2.default.createElement(
9725
+ 'span',
9726
+ { key: 'date' },
9727
+ date,
9728
+ ' '
9729
+ ));
9730
+ }
9731
+ if (show.indexOf('time') !== -1 && time) {
9732
+ parts.push(_react2.default.createElement(
9733
+ 'span',
9734
+ { key: 'time' },
9735
+ time,
9736
+ ' '
9737
+ ));
9738
+ }
9739
+ if (show.indexOf('taskName') !== -1 && c.taskName) {
9740
+ parts.push(_react2.default.createElement(
9741
+ 'span',
9742
+ { key: 'tn' },
9743
+ c.taskName
9744
+ ));
9745
+ }
9746
+ return parts;
9747
+ }
9748
+
9749
+ /** 按批示意见字段分组 */
9750
+
9751
+ }, {
9752
+ key: 'groupPreResubmitByField',
9753
+ value: function groupPreResubmitByField(list) {
9754
+ var order = [];
9755
+ var map = {};
9756
+ (list || []).forEach(function (c, i) {
9757
+ var item = c || {};
9758
+ var key = item.field != null && String(item.field) !== '' ? String(item.field) : '_idx_' + i;
9759
+ if (!map[key]) {
9760
+ map[key] = {
9761
+ key: key,
9762
+ label: item.taskName || item.field || '批示意见',
9763
+ items: []
9764
+ };
9765
+ order.push(key);
9766
+ }
9767
+ map[key].items.push(item);
9768
+ });
9769
+ return order.map(function (k) {
9770
+ return map[k];
9771
+ });
9772
+ }
9773
+
9774
+ /** 表单下方:外框表格(左字段名 / 右内容+落款,同字段合并) */
9775
+
9776
+ }, {
9777
+ key: 'renderPreResubmitCommentBlock',
9778
+ value: function renderPreResubmitCommentBlock() {
9779
+ var _this5 = this;
9780
+
9781
+ if (this.state.showPreResubmitComment !== '1') {
9782
+ return null;
9783
+ }
9784
+ var list = this.state.preResubmitCommentList || [];
9785
+ if (!list.length) {
9786
+ return null;
9787
+ }
9788
+ var groups = this.groupPreResubmitByField(list);
9789
+ return _react2.default.createElement(
9790
+ 'div',
9791
+ { className: 'pre-resubmit-comment-area t-ML16 t-MR16 t-MT8 t-MB8 t-BCf', style: { border: '1px solid #d9d9d9', borderRadius: 2, overflow: 'hidden' } },
9792
+ _react2.default.createElement(
9793
+ 'div',
9794
+ { className: 't-FS14 t-PL12 t-PR12 t-PT10 t-PB10', style: { fontWeight: 'bold', borderBottom: '1px solid #d9d9d9', background: '#fafafa' } },
9795
+ '\u9000\u56DE\u540E\u91CD\u65B0\u63D0\u4EA4\u524D\u7684\u6279\u793A\u610F\u89C1'
9796
+ ),
9797
+ _react2.default.createElement(
9798
+ 'table',
9799
+ { style: { width: '100%', borderCollapse: 'collapse', margin: 0 } },
9800
+ _react2.default.createElement(
9801
+ 'tbody',
9802
+ null,
9803
+ groups.map(function (group) {
9804
+ return _react2.default.createElement(
9805
+ 'tr',
9806
+ { key: group.key },
9807
+ _react2.default.createElement(
9808
+ 'td',
9809
+ { style: { width: 88, verticalAlign: 'middle', textAlign: 'center', padding: '10px 6px', border: '1px solid #d9d9d9', background: '#fafafa', fontSize: 14 } },
9810
+ group.label
9811
+ ),
9812
+ _react2.default.createElement(
9813
+ 'td',
9814
+ { style: { verticalAlign: 'top', padding: '10px 12px', border: '1px solid #d9d9d9', fontSize: 14 } },
9815
+ group.items.map(function (c, idx) {
9816
+ var content = c.fullMessage != null ? c.fullMessage : c.content || '';
9817
+ return _react2.default.createElement(
9818
+ 'div',
9819
+ { key: c.id || idx, style: idx > 0 ? { marginTop: 12, paddingTop: 12, borderTop: '1px dashed #e8e8e8' } : null },
9820
+ _react2.default.createElement(
9821
+ 'div',
9822
+ { style: { whiteSpace: 'pre-wrap', wordBreak: 'break-word', lineHeight: 1.6 } },
9823
+ content
9824
+ ),
9825
+ _react2.default.createElement(
9826
+ 'div',
9827
+ { style: { textAlign: 'right', marginTop: 4, lineHeight: 1.6 } },
9828
+ _this5.buildPreResubmitInscription(c)
9829
+ )
9830
+ );
9831
+ })
9832
+ )
9833
+ );
9834
+ })
9835
+ )
9836
+ )
9837
+ );
9838
+ }
9630
9839
  }, {
9631
9840
  key: 'render',
9632
9841
  value: function render() {
9633
- var _this5 = this;
9842
+ var _this6 = this;
9634
9843
 
9635
9844
  var isReadOnly = false;
9636
9845
  var t = this;
@@ -9674,7 +9883,7 @@ var PageHome = function (_React$Component) {
9674
9883
  title: this.state.titleCommentBackAlert,
9675
9884
  show: this.state.showCommentBackAlert,
9676
9885
  onConfirm: function onConfirm() {
9677
- _this5.setState({ showCommentBackAlert: false });
9886
+ _this6.setState({ showCommentBackAlert: false });
9678
9887
  }
9679
9888
  },
9680
9889
  _react2.default.createElement(
@@ -9732,7 +9941,8 @@ var PageHome = function (_React$Component) {
9732
9941
  _Group2.default.List,
9733
9942
  null,
9734
9943
  this.state.tableStatus == '0' ? "" : _react2.default.createElement(_table2.default, { key: 'approveFormTable_' + this.state.formTableKey, ref: 'approveFormTable', module: this.state.module, operate: this.state.operate, editType: this.state.editType, dataId: this.state.dataId, hasCommentField: t.state.hasCommentField, newspyj: t.state.newspyj, commentField: t.state.commentField, commentAttitude: t.state.commentAttitude, status: t.state.status, form: t.state.formItem, formStyleObj: t.state.formStyleObj, subColumnCount: t.state.subColumnCount, mobileSubTblDefault: t.state.mobileSubTblDefault, allForm: t.state.form, data: t.state.editFormData, commentFieldList: t.state.commentFieldList, defaultValue: t.state.defaultValue, commentDefaultList: t.state.commentDefaultList, commentBackList: t.state.commentBackList, fieldControll: t.state.fieldControll, caIsPrd: t.state.caIsPrd, preCaFields: t.state.preCaFields, formRelaField: t.state.formRelaField, isRemoveCommentFormHtml: t.state.isRemoveCommentFormHtml, commentUpload: t.state.commentUpload, isCaUser: t.state.isCaUser, caFirm: t.state.caFirm, caESignatureName: t.state.caESignatureName, caFormSign: t.state.caFormSign, inscriptionShow: t.state.inscriptionShow, finalButtons: t.state.finalButtons, onChange: this.change.bind(this) })
9735
- )
9944
+ ),
9945
+ this.renderPreResubmitCommentBlock()
9736
9946
  )
9737
9947
  )
9738
9948
  ),
@@ -10402,7 +10612,7 @@ var PageHome = function (_React$Component) {
10402
10612
  '(\u5DF2\u529E)'
10403
10613
  ) : _react2.default.createElement(
10404
10614
  'span',
10405
- { key: 'add-' + item.userid + '-' + idx, onClick: _this5.moveToReducePool.bind(_this5, item.userid), style: { margin: '0 8px 8px 0', padding: '4px 10px', background: '#e60012', color: '#fff', borderRadius: '4px', fontSize: '13px' } },
10615
+ { key: 'add-' + item.userid + '-' + idx, onClick: _this6.moveToReducePool.bind(_this6, item.userid), style: { margin: '0 8px 8px 0', padding: '4px 10px', background: '#e60012', color: '#fff', borderRadius: '4px', fontSize: '13px' } },
10406
10616
  item.username,
10407
10617
  ' \xD7'
10408
10618
  );
@@ -10423,7 +10633,7 @@ var PageHome = function (_React$Component) {
10423
10633
  (this.state.reduceSignReducePool || []).map(function (item, idx) {
10424
10634
  return _react2.default.createElement(
10425
10635
  'span',
10426
- { key: 'reduce-' + item.userid + '-' + idx, onClick: _this5.moveToAddPool.bind(_this5, item.userid), style: { margin: '0 8px 8px 0', padding: '4px 10px', background: '#e60012', color: '#fff', borderRadius: '4px', fontSize: '13px' } },
10636
+ { key: 'reduce-' + item.userid + '-' + idx, onClick: _this6.moveToAddPool.bind(_this6, item.userid), style: { margin: '0 8px 8px 0', padding: '4px 10px', background: '#e60012', color: '#fff', borderRadius: '4px', fontSize: '13px' } },
10427
10637
  item.username,
10428
10638
  ' \xD7'
10429
10639
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmui-base",
3
- "version": "2.3.72",
3
+ "version": "2.3.73",
4
4
  "title": "fmui-base",
5
5
  "description": "fmui移动端组件",
6
6
  "main": "lib/index.js",