fmui-base 2.3.17 → 2.3.18

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.18:流程抢占加签支持加签多人,流程表单支持在线编辑
6
7
  - 2.3.17:流程提交保存时增加表单的乐观锁校验功能,用来校验该表单数据在办理时有无被其他人修改过
7
8
  - 2.3.16:选人组件:常用类型增加用户全选功能
8
9
  - 2.3.15:时分字段保存丢失值,子表删除时页面空白
package/lib/form/form.js CHANGED
@@ -1390,7 +1390,10 @@ var PageHome = function (_React$Component) {
1390
1390
  itemParam: itemParam,
1391
1391
  loaded: true
1392
1392
  }, function () {
1393
- t.refs["upload_" + t.state.itemParam.tableName + "_" + t.state.itemParam.key].initData();
1393
+ var uploadRef = t.refs["upload_" + t.state.itemParam.tableName + "_" + t.state.itemParam.key];
1394
+ if (uploadRef && typeof uploadRef.initData === 'function') {
1395
+ uploadRef.initData();
1396
+ }
1394
1397
 
1395
1398
  //修改样式
1396
1399
  var styleStr = "";
@@ -1443,7 +1446,10 @@ var PageHome = function (_React$Component) {
1443
1446
  itemParam: itemParam,
1444
1447
  loaded: true
1445
1448
  }, function () {
1446
- t.refs["upload_" + t.state.itemParam.tableName + "_" + t.state.itemParam.key].initData();
1449
+ var uploadRef = t.refs["upload_" + t.state.itemParam.tableName + "_" + t.state.itemParam.key];
1450
+ if (uploadRef && typeof uploadRef.initData === 'function') {
1451
+ uploadRef.initData();
1452
+ }
1447
1453
 
1448
1454
  //修改样式
1449
1455
  var styleStr = "";
@@ -1565,7 +1571,10 @@ var PageHome = function (_React$Component) {
1565
1571
  }
1566
1572
  }
1567
1573
  if (itemType == 'upload' || itemType == 'image' && itemParam.imagetype != '1' || itemType == 'weboffice') {
1568
- this.refs["upload_" + t.state.itemParam.tableName + "_" + t.state.itemParam.key].initData();
1574
+ var uploadRef = this.refs["upload_" + t.state.itemParam.tableName + "_" + t.state.itemParam.key];
1575
+ if (uploadRef && typeof uploadRef.initData === 'function') {
1576
+ uploadRef.initData();
1577
+ }
1569
1578
  }
1570
1579
  if (itemType == 'note') {
1571
1580
  if (itemParam.noteFileIds) {
@@ -3589,10 +3598,91 @@ var PageHome = function (_React$Component) {
3589
3598
  }
3590
3599
 
3591
3600
  //预览附件
3601
+ /** 新建正文生成 recordId 后回写字段,保证提交与再次编辑复用同一 id */
3592
3602
 
3603
+ }, {
3604
+ key: 'applyGeneratedRecordId',
3605
+ value: function applyGeneratedRecordId(recordId) {
3606
+ if (!recordId) {
3607
+ return;
3608
+ }
3609
+ var t = this;
3610
+ var itemParam = t.state.itemParam;
3611
+ if (!itemParam || itemParam.itemType !== 'weboffice') {
3612
+ return;
3613
+ }
3614
+ // 已有同一 recordId 则无需重复回写
3615
+ if (itemParam.value === recordId || String(itemParam.value) === String(recordId)) {
3616
+ return;
3617
+ }
3618
+ itemParam.value = recordId;
3619
+ t.setState({
3620
+ itemParam: itemParam
3621
+ });
3622
+ var data = t.editData(itemParam.key, recordId, t.props.data);
3623
+ if (typeof t.props.onChange === 'function') {
3624
+ t.props.onChange(data, itemParam);
3625
+ }
3626
+ }
3627
+ }, {
3628
+ key: 'buildOfficeCtx',
3629
+ value: function buildOfficeCtx(file) {
3630
+ var t = this;
3631
+ var recordId = '';
3632
+ var value = t.state.itemParam.value;
3633
+ if (value) {
3634
+ if (typeof value === 'string') {
3635
+ recordId = value;
3636
+ } else if (value instanceof Array && value.length > 0) {
3637
+ // weboffice 字段存库为 recordId 字符串;列表态兜底取 id
3638
+ recordId = value[0].recordId || value[0].id || '';
3639
+ }
3640
+ }
3641
+ return {
3642
+ recordId: recordId,
3643
+ attachmentId: file ? file.id : t.state.itemParam.initIds,
3644
+ moduleCode: t.state.module,
3645
+ module: t.state.module,
3646
+ readOnly: t.state.itemParam.readOnly,
3647
+ formData: t.props.data,
3648
+ dataId: t.props.dataId,
3649
+ processInstanceId: t.props.processInstanceId,
3650
+ fileExt: file ? file.fileExt : '.doc',
3651
+ onRecordIdGenerated: t.applyGeneratedRecordId.bind(t)
3652
+ };
3653
+ }
3654
+ }, {
3655
+ key: 'openWeboffice',
3656
+ value: function openWeboffice(mode) {
3657
+ console.info('openWeboffice', mode);
3658
+ if (typeof MobileOffice === 'undefined') {
3659
+ _Toast2.default.show({ content: 'Office SDK 未加载' });
3660
+ return;
3661
+ }
3662
+ var ctx = this.buildOfficeCtx();
3663
+ ctx.mode = mode || 'edit';
3664
+ MobileOffice.open(ctx);
3665
+ }
3666
+ }, {
3667
+ key: 'previewWeboffice',
3668
+ value: function previewWeboffice(file) {
3669
+ console.info('previewWeboffice-->');
3670
+ if (typeof MobileOffice === 'undefined') {
3671
+ var id = file.id;
3672
+ var fileExt = file.fileExt;
3673
+ downloadFile(id, 'android', fileExt);
3674
+ return;
3675
+ }
3676
+ var ctx = this.buildOfficeCtx(file);
3677
+ MobileOffice.preview(ctx);
3678
+ }
3593
3679
  }, {
3594
3680
  key: 'viewFile',
3595
3681
  value: function viewFile(file) {
3682
+ if (this.state.itemParam && this.state.itemParam.itemType === 'weboffice') {
3683
+ this.previewWeboffice(file);
3684
+ return;
3685
+ }
3596
3686
  var id = file.id;
3597
3687
  var fileExt = file.fileExt;
3598
3688
  downloadFile(id, 'android', fileExt);
@@ -3601,6 +3691,11 @@ var PageHome = function (_React$Component) {
3601
3691
  key: 'clickPop',
3602
3692
  value: function clickPop() {
3603
3693
  if (!this.state.itemParam.readOnly) {
3694
+ // weboffice 走云编辑;其它类型(如 html)仍提示不支持
3695
+ if (this.state.itemParam.itemType === 'weboffice') {
3696
+ this.openWeboffice('edit');
3697
+ return false;
3698
+ }
3604
3699
  _Toast2.default.show({
3605
3700
  content: "移动端暂不支持该类型编辑"
3606
3701
  });
@@ -4661,7 +4756,7 @@ var PageHome = function (_React$Component) {
4661
4756
  _react2.default.createElement(
4662
4757
  'div',
4663
4758
  { className: 't-W100' },
4664
- _react2.default.createElement(_upload2.default, {
4759
+ t.state.itemParam.readOnly ? _react2.default.createElement(_upload2.default, {
4665
4760
  ref: "upload_" + t.state.itemParam.tableName + "_" + t.state.itemParam.key,
4666
4761
  canAdd: false,
4667
4762
  canDel: false,
@@ -4671,10 +4766,37 @@ var PageHome = function (_React$Component) {
4671
4766
  initIds: t.state.itemParam.initIds,
4672
4767
  dir: t.state.module,
4673
4768
  fileSizeLimit: 0,
4769
+ onView: t.previewWeboffice.bind(t),
4674
4770
  onChange: function onChange(value, isInit) {
4675
4771
  t.handleChangeOffice(t.state.itemParam.key, value, isInit);
4676
4772
  }
4677
- })
4773
+ }) : _react2.default.createElement(
4774
+ 'div',
4775
+ { className: 't-field-box t-FBH t-FBAC t-FBJ' },
4776
+ _react2.default.createElement(
4777
+ 'div',
4778
+ { className: t.state.itemParam.required ? 't-field-layout-h-label required' : 't-field-layout-h-label' },
4779
+ _react2.default.createElement(
4780
+ 'span',
4781
+ { style: t.state.itemParam.formStyleObj.titleStyle == null ? {} : t.state.itemParam.formStyleObj.titleStyle },
4782
+ t.state.itemParam.title
4783
+ )
4784
+ ),
4785
+ _react2.default.createElement(
4786
+ 'div',
4787
+ { className: 't-P16' },
4788
+ _react2.default.createElement(
4789
+ 'span',
4790
+ {
4791
+ className: 't-FCblue t-FS14',
4792
+ onClick: function onClick() {
4793
+ t.openWeboffice('edit');
4794
+ }
4795
+ },
4796
+ '\u7F16\u8F91\u6B63\u6587'
4797
+ )
4798
+ )
4799
+ )
4678
4800
  ),
4679
4801
  t.state.itemParam.isVerifySing == "1" ? _react2.default.createElement('i', { className: 'iconfont icon-checked t-PT10', style: { color: 'green' } }) : t.state.itemParam.isVerifySing == "2" ? _react2.default.createElement('i', { className: 'iconfont icon-close t-PT10', style: { color: 'red' } }) : ""
4680
4802
  )
@@ -8899,7 +8899,7 @@ var PageHome = function (_React$Component) {
8899
8899
  placeholder: '\u8BF7\u9009\u62E9',
8900
8900
  code: 'org,group',
8901
8901
  chooseType: 'userNotOrg',
8902
- checkType: this.state.participantMode == '3' ? 'radio' : 'checkbox',
8902
+ checkType: 'checkbox',
8903
8903
  ref: "selectMember_addSign",
8904
8904
  isDelete: true,
8905
8905
  onChange: this.addSignCallback.bind(this)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmui-base",
3
- "version": "2.3.17",
3
+ "version": "2.3.18",
4
4
  "title": "fmui-base",
5
5
  "description": "fmui移动端组件",
6
6
  "main": "lib/index.js",