eoss-mobiles 0.2.28 → 0.2.30

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.
Files changed (52) hide show
  1. package/lib/action-sheet.js +2 -2
  2. package/lib/calendar.js +2 -2
  3. package/lib/cascader.js +2 -2
  4. package/lib/checkbox.js +57 -32
  5. package/lib/config/api.js +8 -2
  6. package/lib/count-down.js +2 -2
  7. package/lib/eoss-mobile.common.js +1402 -150
  8. package/lib/esign.js +2 -2
  9. package/lib/flow-btn.js +2702 -0
  10. package/lib/flow-list.js +2613 -0
  11. package/lib/flow.js +62 -52
  12. package/lib/form.js +2 -2
  13. package/lib/image-preview.js +2 -2
  14. package/lib/image.js +2 -2
  15. package/lib/index.js +1 -1
  16. package/lib/notice-bar.js +2 -2
  17. package/lib/pagination.js +2 -2
  18. package/lib/picker.js +37 -27
  19. package/lib/popover.js +2 -2
  20. package/lib/popup.js +2 -2
  21. package/lib/pull-refresh.js +2 -2
  22. package/lib/radio.js +58 -35
  23. package/lib/rate.js +2 -2
  24. package/lib/retrial-auth.js +41 -31
  25. package/lib/selector.js +95 -72
  26. package/lib/skeleton.js +2 -2
  27. package/lib/stepper.js +2 -2
  28. package/lib/swipe.js +2 -2
  29. package/lib/table-column.js +37 -27
  30. package/lib/table.js +3 -2
  31. package/lib/theme-chalk/flow-btn.css +1 -0
  32. package/lib/theme-chalk/flow-list.css +1 -0
  33. package/lib/theme-chalk/index.css +1 -1
  34. package/lib/utils/util.js +1 -0
  35. package/package.json +1 -1
  36. package/packages/checkbox/src/main.vue +8 -1
  37. package/packages/flow-btn/index.js +5 -0
  38. package/packages/flow-btn/src/main.vue +475 -0
  39. package/packages/flow-list/index.js +5 -0
  40. package/packages/flow-list/src/main.vue +225 -0
  41. package/packages/radio/src/main.vue +7 -5
  42. package/packages/selector/src/selector-tree.vue +23 -10
  43. package/packages/selector/src/tree.vue +4 -6
  44. package/packages/theme-chalk/lib/flow-btn.css +1 -0
  45. package/packages/theme-chalk/lib/flow-list.css +1 -0
  46. package/packages/theme-chalk/lib/index.css +1 -1
  47. package/packages/theme-chalk/src/flow-btn.scss +94 -0
  48. package/packages/theme-chalk/src/flow-list.scss +122 -0
  49. package/packages/theme-chalk/src/index.scss +2 -0
  50. package/src/config/api.js +10 -2
  51. package/src/index.js +7 -1
  52. package/src/utils/util.js +1 -0
@@ -0,0 +1,225 @@
1
+ <template>
2
+ <div class="em-flow-list">
3
+ <div v-if="isgw && processList.length > 0" class="list">
4
+ <div
5
+ v-for="(item, index) in processList"
6
+ :key="index"
7
+ class="item"
8
+ :class="{ 'success-icon': item.flowList.length > 0 }"
9
+ >
10
+ <!-- 预备("预备", -1),
11
+ 未签收("未签收", 0),
12
+ 已签收("未办理", 1),
13
+ 已完成("已办理", 2),
14
+ 驳回("驳回", 3),
15
+ 撤回("撤回", 4),
16
+ 串行会签预备("串行会签预备", 5),
17
+ 自动办理("自动办理", 6); -->
18
+ <i class="iconfont icon-gou" v-if="item.flowList.length > 0" />
19
+ <div v-else class="process-pending">
20
+ <i class="process-pending-yuan" />
21
+ </div>
22
+ <div class="item-box">
23
+ <div class="one">
24
+ <div class="label">
25
+ {{ item.shortName }}
26
+ </div>
27
+ </div>
28
+ <div
29
+ v-for="x in item.showMore
30
+ ? item.flowList
31
+ : item.flowList.slice(0, 2)"
32
+ :key="x.id"
33
+ >
34
+ <div class="two">
35
+ <img
36
+ style="width:100px;height:100px"
37
+ v-if="x.doresult && x.doresult.startsWith('http')"
38
+ :src="x.doresult"
39
+ alt=""
40
+ />
41
+ <span v-else>{{ x.doresult }}</span>
42
+ <span v-if="x.handleInfo" style="color:#ADADA5">{{
43
+ (x.doresult ? '&' : '') + x.handleInfo
44
+ }}</span>
45
+ </div>
46
+ <div class="tree">
47
+ <div style="display:flex;align-items:center">
48
+ <span>{{ x.userName }}</span>
49
+ <span style="margin-left:10px">{{
50
+ x.createtime | transformTimestamp
51
+ }}</span>
52
+ </div>
53
+ <em-tag
54
+ type="primary"
55
+ :color="
56
+ x.pendstate != 2 && x.pendstate != 6 ? '#FEF6EB' : '#F2F8EC'
57
+ "
58
+ :text-color="
59
+ x.pendstate != 2 && x.pendstate != 6 ? '#EB9A3D' : '#82B656'
60
+ "
61
+ size="medium"
62
+ >{{
63
+ x.pendstate == 2 || x.pendstate == 6 ? '已办理' : '办理中'
64
+ }}</em-tag
65
+ >
66
+ </div>
67
+ </div>
68
+ <span
69
+ v-if="item.flowList.length > 2"
70
+ class="more"
71
+ style="display:inline-block;width: 100%;text-align: center;"
72
+ @click="changeMore(index)"
73
+ >{{ item.showMore ? '收起' : '展示更多' }}</span
74
+ >
75
+ </div>
76
+ </div>
77
+ </div>
78
+ <div v-else-if="processList.length > 0" class="list">
79
+ <div
80
+ v-for="(item, index) in processList"
81
+ :key="index"
82
+ class="item"
83
+ :class="{ 'success-icon': item.pendstate == 2 || item.pendstate == 6 }"
84
+ >
85
+ <!-- 预备("预备", -1),
86
+ 未签收("未签收", 0),
87
+ 已签收("未办理", 1),
88
+ 已完成("已办理", 2),
89
+ 驳回("驳回", 3),
90
+ 撤回("撤回", 4),
91
+ 串行会签预备("串行会签预备", 5),
92
+ 自动办理("自动办理", 6); -->
93
+ <i
94
+ class="iconfont icon-gou"
95
+ v-if="item.pendstate == 2 || item.pendstate == 6"
96
+ />
97
+ <div v-else class="process-pending">
98
+ <i class="process-pending-yuan" />
99
+ </div>
100
+ <div class="item-box">
101
+ <div class="one">
102
+ <div class="label">
103
+ {{ item.itemname }}
104
+ </div>
105
+ </div>
106
+ <div class="two">
107
+ <img
108
+ style="width:100px;height:100px"
109
+ v-if="item.isImageOpinion == 1"
110
+ :src="item.doresult"
111
+ alt=""
112
+ />
113
+ <span v-else>{{ item.doresult }}</span>
114
+ <span v-if="item.handleInfo" style="color:#ADADA5">{{
115
+ (item.doresult ? '&' : '') + item.handleInfo
116
+ }}</span>
117
+ </div>
118
+ <div class="tree">
119
+ <div style="display:flex;align-items:center">
120
+ <span>{{ item.userid }}</span>
121
+ <span style="margin-left:10px">{{
122
+ item.createTime | transformTimestamp
123
+ }}</span>
124
+ </div>
125
+ <em-tag
126
+ type="primary"
127
+ :color="
128
+ item.pendstate != 2 && item.pendstate != 6
129
+ ? '#FEF6EB'
130
+ : '#F2F8EC'
131
+ "
132
+ :text-color="
133
+ item.pendstate != 2 && item.pendstate != 6
134
+ ? '#EB9A3D'
135
+ : '#82B656'
136
+ "
137
+ size="medium"
138
+ >{{
139
+ item.pendstate == 2 || item.pendstate == 6 ? '已办理' : '办理中'
140
+ }}</em-tag
141
+ >
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ <em-empty
147
+ v-else
148
+ class="custom-image"
149
+ image="https://img01.yzcdn.cn/vant/custom-empty-image.png"
150
+ description="暂无数据"
151
+ />
152
+ </div>
153
+ </template>
154
+ <script>
155
+ import { pendedhistoryList } from '../../../src/config/api.js';
156
+ import request from '../../../src/utils/http.js';
157
+ import $ from '../../../src/utils/util';
158
+ export default {
159
+ name: 'EmFlowList',
160
+ props: {
161
+ businessId: {
162
+ type: String,
163
+ default: ''
164
+ },
165
+ type: {
166
+ type: String,
167
+ default: '0'
168
+ },
169
+ data: {
170
+ type: Array,
171
+ default: () => []
172
+ },
173
+ isgw: {
174
+ type: Boolean,
175
+ default: false
176
+ }
177
+ },
178
+ filters: {
179
+ transformTimestamp(val) {
180
+ return $.formatDate(Number(val), 'yyyy-MM-dd');
181
+ }
182
+ },
183
+ data() {
184
+ return {
185
+ processList: []
186
+ };
187
+ },
188
+ watch: {
189
+ businessId: {
190
+ handler(val) {
191
+ if (val && this.data.length === 0) {
192
+ this.getFlowList(val);
193
+ } else {
194
+ this.processList = this.data;
195
+ }
196
+ },
197
+ deep: true,
198
+ immediate: true
199
+ }
200
+ },
201
+ methods: {},
202
+ methods: {
203
+ getFlowList(apprecordId) {
204
+ request({
205
+ url: pendedhistoryList,
206
+ type: 'post',
207
+ params: {
208
+ type: this.type,
209
+ apprecordId
210
+ }
211
+ }).then(res => {
212
+ const { rCode, msg, results } = res;
213
+ if (rCode === 0) {
214
+ this.processList = results;
215
+ } else {
216
+ this.$toast(msg);
217
+ }
218
+ });
219
+ },
220
+ changeMore(i) {
221
+ this.$emit('changeMore', i);
222
+ }
223
+ }
224
+ };
225
+ </script>
@@ -9,8 +9,9 @@
9
9
  <van-radio
10
10
  v-for="item of newData"
11
11
  :key="item[valueKey]"
12
- v-bind="item"
12
+ v-bind="exclAttribute({ data: item, attrs: 'checkedColor' })"
13
13
  :disabled="item.disabled"
14
+ :checked-color="checkedColor || item.checkedColor"
14
15
  :name="item[valueKey]"
15
16
  >
16
17
  <span v-html="item[labelKey]"></span>
@@ -22,6 +23,7 @@
22
23
  <script>
23
24
  import { findSysCode } from '../../../src/config/api';
24
25
  import request from '../../../src/utils/http.js';
26
+ import util from '../../../src/utils/util'
25
27
  export default {
26
28
  name: 'EmRadioGroup',
27
29
  inheritAttrs: false,
@@ -38,10 +40,7 @@ export default {
38
40
  default: () => []
39
41
  },
40
42
  //所有单选框的选中状态颜色
41
- groupCheckedColor: {
42
- type: String,
43
- default: '#1989fa'
44
- },
43
+ checkedColor:String,
45
44
  //所有单选框的图标大小,默认单位为px
46
45
  groupIconSize: {
47
46
  type: [String, Number],
@@ -125,6 +124,9 @@ export default {
125
124
  }
126
125
  },
127
126
  methods: {
127
+ exclAttribute({ data, attrs }) {
128
+ return util.exclAttribute({ data, attrs });
129
+ },
128
130
  /**
129
131
  * handleChange
130
132
  * @desc:当绑定值变化时触发的事件
@@ -542,8 +542,8 @@ export default {
542
542
  }
543
543
  },
544
544
  mounted() {
545
- typeof this.selectList != 'string' &&
546
- (this.list = $.deepClone(this.selectList));
545
+ // typeof this.selectList != 'string' &&
546
+ // (this.list = $.deepClone(this.selectList));
547
547
 
548
548
  // this.$nextTick(() => {
549
549
  // if (this.nodeList) {
@@ -561,7 +561,16 @@ export default {
561
561
  getNodeList(isSearch) {
562
562
  this.personnel = this.nodeList;
563
563
 
564
- !isSearch && (this.list = $.deepClone(this.selectList));
564
+ // !isSearch && (this.list = $.deepClone(this.selectList));
565
+ if (!isSearch) {
566
+ if (typeof this.selectList == 'string') {
567
+ this.selectData = [];
568
+ this.list = this.getSelectData(this.personnel);
569
+ this.$emit('update:selectList', this.list);
570
+ } else {
571
+ this.list = $.deepClone(this.selectList);
572
+ }
573
+ }
565
574
  let _this = this;
566
575
  if (this.list && this.list.length > 0) {
567
576
  this.list.filter(r => {
@@ -752,7 +761,8 @@ export default {
752
761
  if (
753
762
  res.results.length > 0 &&
754
763
  res.results[0].nocheck == false &&
755
- this.isAllCheck && this.multiple
764
+ this.isAllCheck &&
765
+ this.multiple
756
766
  ) {
757
767
  res.results.unshift({
758
768
  showshortname: '全选',
@@ -771,7 +781,7 @@ export default {
771
781
  }
772
782
  });
773
783
  });
774
- if (this.isAllCheck && this.multiple) {
784
+ if (this.isAllCheck && this.multiple) {
775
785
  let checkList = obj.children
776
786
  .slice(1, obj.children.length)
777
787
  .filter(x => x.checked);
@@ -860,7 +870,7 @@ export default {
860
870
  }
861
871
  }
862
872
  },
863
- open(res, isStart, isNode) {
873
+ open(res, isStart, isNode,key) {
864
874
  const _that = this;
865
875
  _that.oldIsSearch = _that.isSearch;
866
876
  // debugger
@@ -868,12 +878,15 @@ export default {
868
878
  this.$listeners['node-click'] &&
869
879
  (this.$listeners['left-icon'] || (this.showMore && !this.isDefaultNode))
870
880
  ) {
871
- if (this.$listeners['left-icon'] && !isNode) {
881
+ if (this.$listeners['left-icon'] && key === 'node') {
872
882
  this.getChiled(res, isStart, 'left-icon');
873
- } else if (this.showMore && !isNode) {
883
+ } else if (this.showMore && this.$listeners['right-icon'] && key === 'node') {
874
884
  this.getChiled(res, isStart, 'right-icon');
885
+ }else if((!this.isDefaultNode && key==="title") || (this.$listeners['node-click'] && this.$listeners['left-icon'] && !this.showMore && !this.isDefaultNode)){
886
+ _that.$listeners['node-click'](res.obj, !!res.obj.children);
887
+ }else{
888
+ this.getChiled(res, isStart, 'node-click');
875
889
  }
876
- isNode && _that.$listeners['node-click'](res.obj, !!res.obj.children);
877
890
  } else if (
878
891
  this.$listeners['node-click'] ||
879
892
  this.$listeners['left-icon'] ||
@@ -946,7 +959,7 @@ export default {
946
959
  }, []);
947
960
  if (model.length - 1 === checkList.length) {
948
961
  this.$set(model[0], 'checked', true);
949
- } else{
962
+ } else {
950
963
  this.$set(model[0], 'checked', false);
951
964
  }
952
965
  }
@@ -22,13 +22,13 @@
22
22
  </div>
23
23
  <div
24
24
  v-if="isTreeIcon"
25
- v-tap="{ methods: handleClickIcon, obj: item }"
25
+ v-tap.stop="{ methods: handleClickIcon, obj: item }"
26
26
  >
27
27
  <slot name="tree-icon" :value="item"></slot>
28
28
  </div>
29
29
  <span v-tap.stop="{ methods: opened, obj: item }">{{ item[labelKey] }}</span>
30
30
  </div>
31
- <van-icon name="arrow" v-tap="{ methods: handleClickIcon, obj: item }" class="right" v-if="showMore" />
31
+ <van-icon name="arrow" v-tap.stop="{ methods: handleClickIcon, obj: item }" class="right" v-if="showMore" />
32
32
  <i
33
33
  class="iconfont icon-gou select-icon"
34
34
  v-show="
@@ -245,13 +245,11 @@ export default {
245
245
  },
246
246
  methods: {
247
247
  handleClickIcon(res, isStart){
248
- console.log('点击了open2')
249
248
  if(!this.$listeners['left-icon'] && !this.showMore) return
250
- this.$emit('popen', res, res.isStart || isStart);
249
+ this.$emit('popen', res, res.isStart || isStart,true,'node');
251
250
  },
252
251
  opened(res, isStart) {
253
- console.log('点击了open')
254
- this.$emit('popen', res, res.isStart || isStart,true);
252
+ this.$emit('popen', res, res.isStart || isStart,true,'title');
255
253
  },
256
254
  checke(res) {
257
255
  let model = undefined
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.em-flow-btn .btn-list{position:fixed;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;background-color:#fff;padding:10px 10px 34px;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;bottom:-1px;left:0;z-index:998;-webkit-box-shadow:0 -7px 7px -7px #ddd;box-shadow:0 -7px 7px -7px #ddd}.em-flow-btn .btn-list .left{display:-webkit-box;display:-ms-flexbox;display:flex}.em-flow-btn .btn-list .left .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:35px}.em-flow-btn .btn-list .left .item:last-child{margin-right:0}.em-flow-btn .btn-list .left .item .icon{width:18px;height:auto}.em-flow-btn .btn-list .left .item .label{color:#666;font-weight:400;font-size:14px;margin-top:4px}.em-flow-btn .btn-list .right-one .audit{width:160px;height:40px;line-height:40px;background-color:#12278B;color:#fff;border-radius:20px;text-align:center;font-size:18px}.em-flow-btn .btn-list .right-two{display:-webkit-box;display:-ms-flexbox;display:flex}.em-flow-btn .btn-list .right-two .reject{width:80px;height:40px;line-height:40px;background-color:#fff;color:#12278B;text-align:center;border:1px solid #12278B;font-size:18px;border-radius:20px 0 0 20px}.em-flow-btn .btn-list .right-two .audit{width:80px;height:40px;line-height:40px;background-color:#12278B;color:#fff;border:1px solid #12278B;border-radius:0 20px 20px 0;text-align:center;font-size:18px}.em-flow-btn .btn-list-1{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.em-flow-btn .more-list{position:fixed;background-color:#fff;width:100%;bottom:83px;color:#999;padding:10px}.em-flow-btn .more-list .item{padding:10px;border-bottom:1px solid #999}
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.em-flow-list{width:100%;background-color:#fff}.em-flow-list .list{padding:32px 16px 0}.em-flow-list .list .item{position:relative;border-left:1px solid #eee;padding:10px 0;margin:10px 0}.em-flow-list .list .item .icon-gou{position:absolute;top:-15px;left:-8px;color:#12278B}.em-flow-list .list .item .process-pending{position:absolute;top:-15px;left:-8.5px;width:16px;height:16px;border-radius:50%;background:rgba(18,39,139,.1);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.em-flow-list .list .item .process-pending .process-pending-yuan{display:inline-block;width:6px;height:6px;border-radius:50%;background:#12278B}.em-flow-list .list .item:last-child{border-left-color:transparent;height:auto}.em-flow-list .list .item .icon-finish{width:16px;height:auto;position:relative;left:-8px}.em-flow-list .list .item .icon-ing{width:34px;height:auto;position:relative;left:-14px}.em-flow-list .list .item .item-box{padding-left:29px;width:100%}.em-flow-list .list .item .item-box .one{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;top:-18px}.em-flow-list .list .item .item-box .one .label{font-size:14px;font-family:PingFang SC;font-weight:400;color:#666}.em-flow-list .list .item .item-box .one .time{font-size:12px;font-family:PingFang SC;font-weight:400;color:#999}.em-flow-list .list .item .item-box .two{font-size:16px;font-family:PingFang SC;font-weight:400;color:#333;padding-bottom:10px;border-bottom:1px solid #eee}.em-flow-list .list .item .item-box .tree{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:12px;font-family:PingFang SC;color:#999;line-height:16px;margin-bottom:16px;margin-top:10px}.em-flow-list .list .item .time{text-align:right;color:#333;font-size:13px;padding-top:10px;height:16px;line-height:15px}.em-flow-list .list .success-icon{border-left-color:#12278B}.em-flow-list .more{color:#12278B}.em-flow-list .custom-image .van-empty__image{width:90px;height:90px}