eoss-ui 0.5.81-beta15 → 0.5.81-beta17

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.
@@ -0,0 +1,430 @@
1
+ <template>
2
+ <el-form-item
3
+ :name="name"
4
+ :prop="field || prop"
5
+ :rules="rules"
6
+ :index="index"
7
+ >
8
+ <es-select
9
+ v-if="type == 'select'"
10
+ v-bind="formOption"
11
+ :data="option"
12
+ v-model="model"
13
+ @blur="
14
+ (event) => {
15
+ handleBlur({
16
+ item: config,
17
+ event: event,
18
+ data: scope.row,
19
+ scope: scope
20
+ });
21
+ }
22
+ "
23
+ @focus="
24
+ (event) => {
25
+ handleFocus({
26
+ item: config,
27
+ event: event,
28
+ data: scope.row,
29
+ scope: scope
30
+ });
31
+ }
32
+ "
33
+ @change="
34
+ (value) => {
35
+ handleChange({
36
+ item: config,
37
+ name: field || prop,
38
+ value: value,
39
+ data: scope.row,
40
+ scope: scope
41
+ });
42
+ }
43
+ "
44
+ ></es-select>
45
+ <es-cascader
46
+ v-else-if="getType('cascader', scope)"
47
+ v-bind="formOption"
48
+ :data="option"
49
+ v-model="scope.row[field || prop]"
50
+ @blur="
51
+ (event) => {
52
+ handleBlur({
53
+ item: config,
54
+ event: event,
55
+ data: scope.row,
56
+ scope: scope
57
+ });
58
+ }
59
+ "
60
+ @focus="
61
+ (event) => {
62
+ handleFocus({
63
+ item: config,
64
+ event: event,
65
+ data: scope.row,
66
+ scope: scope
67
+ });
68
+ }
69
+ "
70
+ @change="
71
+ (value) => {
72
+ handleChange({
73
+ item: config,
74
+ name: field || prop,
75
+ value: value,
76
+ data: scope.row,
77
+ scope: scope
78
+ });
79
+ }
80
+ "
81
+ >
82
+ </es-cascader>
83
+ <es-select-ganged
84
+ v-else-if="getType('ganged', scope)"
85
+ v-bind="formOption"
86
+ :data="init(option, config)"
87
+ v-model="scope.row[field || prop]"
88
+ @change="
89
+ (value) => {
90
+ handleChange({
91
+ name: field || prop,
92
+ value: value,
93
+ data: scope.row,
94
+ item: item
95
+ });
96
+ }
97
+ "
98
+ ></es-select-ganged>
99
+ <es-radio-group
100
+ v-else-if="getType('radio', scope)"
101
+ v-bind="formOption"
102
+ :data="option"
103
+ v-model="scope.row[field || prop]"
104
+ @change="
105
+ (value) => {
106
+ handleChange({
107
+ item: config,
108
+ name: field || prop,
109
+ value: value,
110
+ data: scope.row
111
+ });
112
+ }
113
+ "
114
+ ></es-radio-group>
115
+ <es-checkbox-group
116
+ v-else-if="getType('checkbox', scope)"
117
+ v-bind="formOption"
118
+ :data="option"
119
+ v-model="scope.row[field || prop]"
120
+ @change="
121
+ (value) => {
122
+ handleChange({
123
+ item: config,
124
+ name: field || prop,
125
+ value: value,
126
+ data: scope.row
127
+ });
128
+ }
129
+ "
130
+ ></es-checkbox-group>
131
+ <es-switch
132
+ v-else-if="getType('switch', scope)"
133
+ v-bind="formOption"
134
+ :data="option"
135
+ v-model="scope.row[field || prop]"
136
+ @change="
137
+ (value) => {
138
+ handleChange({
139
+ item: config,
140
+ name: field || prop,
141
+ value: value,
142
+ data: scope.row
143
+ });
144
+ }
145
+ "
146
+ ></es-switch>
147
+ <es-date-picker
148
+ v-else-if="
149
+ config.date ||
150
+ getType(
151
+ type,
152
+ [
153
+ 'date',
154
+ 'year',
155
+ 'month',
156
+ 'date',
157
+ 'dates',
158
+ 'week',
159
+ 'datetime',
160
+ 'datetimerange',
161
+ 'daterange',
162
+ 'monthrange',
163
+ 'quarter',
164
+ 'halfyear'
165
+ ],
166
+ scope
167
+ )
168
+ "
169
+ v-bind="formOption"
170
+ v-model="scope.row[field || prop]"
171
+ :type="type"
172
+ @blur="
173
+ (event) => {
174
+ handleBlur({
175
+ item: config,
176
+ event: event,
177
+ data: scope.row,
178
+ scope: scope
179
+ });
180
+ }
181
+ "
182
+ @focus="
183
+ (event) => {
184
+ handleFocus({
185
+ item: config,
186
+ event: event,
187
+ data: scope.row,
188
+ scope: scope
189
+ });
190
+ }
191
+ "
192
+ @change="
193
+ (value) => {
194
+ handleChange({
195
+ item: config,
196
+ name: field || prop,
197
+ value: value,
198
+ data: scope.row,
199
+ scope: scope
200
+ });
201
+ }
202
+ "
203
+ ></es-date-picker>
204
+ <es-input-number
205
+ v-else-if="getType('number', scope)"
206
+ v-bind="formOption"
207
+ v-model="scope.row[field || prop]"
208
+ @blur="
209
+ (event) => {
210
+ handleBlur({
211
+ item: config,
212
+ event: event,
213
+ data: scope.row,
214
+ scope: scope
215
+ });
216
+ }
217
+ "
218
+ @focus="
219
+ (event) => {
220
+ handleFocus({
221
+ item: config,
222
+ event: event,
223
+ data: scope.row,
224
+ scope: scope
225
+ });
226
+ }
227
+ "
228
+ @change="
229
+ (value) => {
230
+ handleChange({
231
+ item: config,
232
+ name: field || prop,
233
+ value: value,
234
+ data: scope.row,
235
+ scope: scope
236
+ });
237
+ }
238
+ "
239
+ ></es-input-number>
240
+ <es-selector
241
+ v-else-if="getType('selector', scope)"
242
+ v-bind="formOption"
243
+ v-model="scope.row[field || prop]"
244
+ v-on="
245
+ exclAttribute({
246
+ data: events,
247
+ attrs: 'change'
248
+ })
249
+ "
250
+ @change="
251
+ (value) => {
252
+ handleChange({
253
+ item: config,
254
+ name: field || prop,
255
+ value: value,
256
+ data: scope.row
257
+ });
258
+ }
259
+ "
260
+ ></es-selector>
261
+ <template v-else-if="getType(['text', 'input', 'textarea'])">
262
+ <template v-if="config.lazy">
263
+ <input
264
+ v-if="getType(['text', 'input'], scope)"
265
+ class="el-input__inner"
266
+ v-bind="formOption"
267
+ v-model.lazy="scope.row[field]"
268
+ @blur="
269
+ (event) => {
270
+ handleBlur({
271
+ item: config,
272
+ event: event,
273
+ data: scope.row,
274
+ scope: scope
275
+ });
276
+ }
277
+ "
278
+ @focus="
279
+ (event) => {
280
+ handleFocus({
281
+ item: config,
282
+ event: event,
283
+ data: scope.row,
284
+ scope: scope
285
+ });
286
+ }
287
+ "
288
+ @change="
289
+ (value) => {
290
+ handleChange({
291
+ item: config,
292
+ name: field || prop,
293
+ value: value,
294
+ data: scope.row,
295
+ scope: scope
296
+ });
297
+ }
298
+ "
299
+ />
300
+ <textarea
301
+ v-else
302
+ class="el-textarea__inner"
303
+ v-bind="formOption"
304
+ v-model.lazy="scope.row[field]"
305
+ @blur="
306
+ (event) => {
307
+ handleBlur({
308
+ item: config,
309
+ event: event,
310
+ data: scope.row,
311
+ scope: scope
312
+ });
313
+ }
314
+ "
315
+ @focus="
316
+ (event) => {
317
+ handleFocus({
318
+ item: config,
319
+ event: event,
320
+ data: scope.row,
321
+ scope: scope
322
+ });
323
+ }
324
+ "
325
+ @change="
326
+ (value) => {
327
+ handleChange({
328
+ item: config,
329
+ name: field || prop,
330
+ value: value,
331
+ data: scope.row,
332
+ scope: scope
333
+ });
334
+ }
335
+ "
336
+ ></textarea>
337
+ </template>
338
+ <es-input
339
+ v-else
340
+ v-bind="formOption"
341
+ :type="type"
342
+ :scope="scope"
343
+ v-model="scope.row[field || prop]"
344
+ @blur="
345
+ (event) => {
346
+ handleBlur({
347
+ item: config,
348
+ event: event,
349
+ data: scope.row,
350
+ scope: scope
351
+ });
352
+ }
353
+ "
354
+ @focus="
355
+ (event) => {
356
+ handleFocus({
357
+ item: config,
358
+ event: event,
359
+ data: scope.row,
360
+ scope: scope
361
+ });
362
+ }
363
+ "
364
+ @change="
365
+ (value) => {
366
+ handleChange({
367
+ item: config,
368
+ name: field || prop,
369
+ value: value,
370
+ data: scope.row,
371
+ scope: scope
372
+ });
373
+ }
374
+ "
375
+ ></es-input>
376
+ </template>
377
+ </el-form-item>
378
+ </template>
379
+
380
+ <script>
381
+ export default {
382
+ name: 'FormItem',
383
+ components: {},
384
+ props: {
385
+ scope: {},
386
+ type: String,
387
+ name: String,
388
+ value: {},
389
+ index: [String, Number],
390
+ labelKey: String,
391
+ valueKey: String,
392
+ field: String,
393
+ prop: String,
394
+ rules: [Array, Object]
395
+ },
396
+ data() {
397
+ return {};
398
+ },
399
+ computed: {
400
+ model: {
401
+ get() {
402
+ return this.value;
403
+ },
404
+ set(val) {
405
+ this.$emit('input', val);
406
+ }
407
+ }
408
+ },
409
+ watch: {},
410
+ created() {},
411
+ mounted() {},
412
+ methods: {
413
+ getType(target, data) {
414
+ let type = this.type;
415
+ if (this.setType) {
416
+ let obj = this.setType(data);
417
+ if (util.isObject(obj)) {
418
+ type = obj.type;
419
+ this.options = obj.data;
420
+ } else {
421
+ type = obj;
422
+ }
423
+ }
424
+ return Array.isArray(target) ? target.includes(type) : type == target;
425
+ }
426
+ }
427
+ };
428
+ </script>
429
+
430
+ <style lang="scss" scoped></style>
@@ -100,6 +100,7 @@
100
100
  <children
101
101
  v-else
102
102
  :key="item.label || item.title"
103
+ :tag="item.tag"
103
104
  v-bind="{
104
105
  mode: mode,
105
106
  name: name,
@@ -117,6 +117,17 @@
117
117
  @change="changeSelectUser($event, 'addSignUserId', true)"
118
118
  />
119
119
  </el-form-item>
120
+ <el-form-item
121
+ prop="addSignMode"
122
+ v-if="isCanPreAddSign"
123
+ label="加签模式"
124
+ :rules="[{ required: true, trigger: 'blur' }]"
125
+ >
126
+ <el-radio-group v-model="nextNode.addSignMode">
127
+ <el-radio label="preAddSign">前置加签</el-radio>
128
+ <el-radio label="postAddSign">后置加签</el-radio>
129
+ </el-radio-group>
130
+ </el-form-item>
120
131
  </div>
121
132
  <!-- 加签结束 -->
122
133
  <!-- 减签开始 -->
@@ -400,12 +411,10 @@
400
411
  <div
401
412
  v-show="showNews"
402
413
  style="
403
- {
404
- border: 1px solid #ccc;
405
- padding: 5px;
406
- border-radius: 5px;
407
- font-size: 13px;
408
- }
414
+ border: 1px solid #ccc;
415
+ padding: 5px;
416
+ border-radius: 5px;
417
+ font-size: 13px;
409
418
  "
410
419
  >
411
420
  {{ nextNode.notificationMsg }}
@@ -740,6 +749,7 @@ export default {
740
749
  return {
741
750
  styles: {},
742
751
  userModel: {},
752
+ isCanPreAddSign: false,
743
753
  nextOtherOrgObjSelect: [],
744
754
  subProcessColumns: [],
745
755
  nextCurrentOrgObjSelect: [],
@@ -860,6 +870,7 @@ export default {
860
870
  presetReadUserId: [],
861
871
  nextNode: {
862
872
  nextNodeId: '', // 下步节点
873
+ addSignMode: 'postAddSign',
863
874
  isAddSign: '', // 是否加签
864
875
  isRemoveSign: '', // 是否减签
865
876
  nextOperate: '', // 下步操作
@@ -1332,8 +1343,8 @@ export default {
1332
1343
  rejectBtn() {
1333
1344
  if (this.value === '') this.value = this.nodeDefaultRejectOpinion;
1334
1345
  if (!this.value) {
1335
- if(!this.$refs.commonOpinions.validate()) return
1336
- }
1346
+ if (!this.$refs.commonOpinions.validate()) return;
1347
+ }
1337
1348
  if (this.beforeSubmit != undefined) {
1338
1349
  this.beforeSubmit(0)
1339
1350
  .then((next) => {
@@ -1341,7 +1352,6 @@ export default {
1341
1352
  })
1342
1353
  .catch((e) => {});
1343
1354
  } else {
1344
-
1345
1355
  this.showReject = true;
1346
1356
  }
1347
1357
  },
@@ -1643,11 +1653,10 @@ export default {
1643
1653
  * @date 2022年9月29日
1644
1654
  **/
1645
1655
  rejectAndEnd(res) {
1646
- if (this.isOpinionRequired == 1 && (this.value == '' || !this.value)){
1647
- if(!this.$refs.commonOpinions.validate()) return
1648
- }
1656
+ if (this.isOpinionRequired == 1 && (this.value == '' || !this.value)) {
1657
+ if (!this.$refs.commonOpinions.validate()) return;
1658
+ }
1649
1659
  if (this.beforeSubmit != undefined) {
1650
-
1651
1660
  this.beforeSubmit()
1652
1661
  .then((next) => {
1653
1662
  this.saveRejectAndEnd(res);
@@ -1660,7 +1669,6 @@ export default {
1660
1669
  saveRejectAndEnd(res) {
1661
1670
  this.$confirm('确认' + res.value + '?')
1662
1671
  .then(() => {
1663
-
1664
1672
  // return this.$message.warning('请填写意见');
1665
1673
  let params = {
1666
1674
  url: rejectAndEnd,
@@ -1783,7 +1791,7 @@ export default {
1783
1791
  this.isHideOtherOrg = false;
1784
1792
  this.isNodeShowProcess = false;
1785
1793
  this.isMainSubProcess = false;
1786
- this.isNextUser =this.nextNode.nextOperate != 9 ;
1794
+ this.isNextUser = this.nextNode.nextOperate != 9;
1787
1795
  // this.isMainSubProcess === true
1788
1796
  // ? (this.isMainSubProcess = true)
1789
1797
  // : (this.isMainSubProcess = false);
@@ -1960,7 +1968,7 @@ export default {
1960
1968
  return;
1961
1969
  } else {
1962
1970
  }
1963
-
1971
+
1964
1972
  if (isDef !== true) this.getNodeInfo();
1965
1973
  },
1966
1974
  /**
@@ -2041,13 +2049,15 @@ export default {
2041
2049
  isSpecial,
2042
2050
  canPresetRead,
2043
2051
  isCdjxjTaskHandle,
2044
- taskButtonList
2052
+ taskButtonList,
2053
+ isCanPreAddSign
2045
2054
  }
2046
2055
  } = res;
2047
2056
  this.$emit('startTaskRead', res);
2048
2057
  this.$emit('start-task-read', res);
2049
2058
  this.currentOrgName = currentOrgName;
2050
2059
  this.otherOrgName = otherOrgName;
2060
+ this.isCanPreAddSign = isCanPreAddSign;
2051
2061
  this.endFlowInfo.choiceOrgId = choiceOrgId;
2052
2062
  this.endFlowInfo.choiceDeptId = choiceDeptId;
2053
2063
  this.endFlowInfo.pendingId = this.pendingId;
@@ -2514,6 +2524,9 @@ export default {
2514
2524
  notificationType = this.nextNode.notificationType.join(',');
2515
2525
  addSignUserId = addSignUserId.join(',');
2516
2526
  removeSignUserId = removeSignUserId.join(',');
2527
+ if (!this.isCanPreAddSign) {
2528
+ delete this.nextNode.addSignMode;
2529
+ }
2517
2530
  let params = {
2518
2531
  ...this.nextNode,
2519
2532
  pendingId: this.pendingId,
@@ -352,7 +352,7 @@
352
352
  custom-class="es-clients-dialog"
353
353
  :visible.sync="showDownLoadApp"
354
354
  >
355
- <es-clients :downloads="download"></es-clients>
355
+ <es-clients :downloads="download" :showTips="showIosTips"></es-clients>
356
356
  </es-dialog>
357
357
  <slot name="calogin"></slot>
358
358
  <es-dialog
@@ -588,7 +588,8 @@ export default {
588
588
  type: Number,
589
589
  default: 1500
590
590
  },
591
- isScale: Boolean
591
+ isScale: Boolean,
592
+ showIosTips: Boolean
592
593
  },
593
594
  computed: {
594
595
  transform() {
@@ -1602,15 +1602,15 @@ export default {
1602
1602
  }
1603
1603
  } else {
1604
1604
  if (node.fourthTabs.length) {
1605
- this.tabsId = this.tabs[0].id;
1605
+ this.tabsId = node.fourthTabs[0].id;
1606
1606
  this.$nextTick(() => {
1607
1607
  this.tabs = node.fourthTabs;
1608
+ this.handleJump(
1609
+ this.tabs[0].url,
1610
+ this.tabs[0].urlopenmode,
1611
+ this.tabs[0]
1612
+ );
1608
1613
  });
1609
- this.handleJump(
1610
- this.tabs[0].url,
1611
- this.tabs[0].urlopenmode,
1612
- this.tabs[0]
1613
- );
1614
1614
  //this.navIds = this.getId(this.menus, this.tabs[0].url);
1615
1615
  }
1616
1616
  }
@@ -1359,6 +1359,16 @@ export default {
1359
1359
  } else {
1360
1360
  if (res.method == 'iframe') {
1361
1361
  res.url = util.handlerUrl(res.url);
1362
+ } else {
1363
+ let tab = this.tabs[i];
1364
+ if (tab.method === 'iframe') {
1365
+ this.$set(this.tabs[i], 'url', util.handlerUrl(tab.url));
1366
+ } else {
1367
+ this.$set(this.tabs[i], 'refresh', false);
1368
+ this.$nextTick(() => {
1369
+ this.$set(this.tabs[i], 'refresh', true);
1370
+ });
1371
+ }
1362
1372
  }
1363
1373
  }
1364
1374
  },
@@ -1415,11 +1425,17 @@ export default {
1415
1425
  let tab = this.tabs[i];
1416
1426
  if (tab.method === 'iframe') {
1417
1427
  tab.url = util.handlerUrl(tab.url);
1428
+ } else {
1429
+ let tab = this.tabs[i];
1430
+ if (tab.method === 'iframe') {
1431
+ this.$set(this.tabs[i], 'url', util.handlerUrl(tab.url));
1432
+ } else {
1433
+ this.$set(this.tabs[i], 'refresh', false);
1434
+ this.$nextTick(() => {
1435
+ this.$set(this.tabs[i], 'refresh', true);
1436
+ });
1437
+ }
1418
1438
  }
1419
- tab.refresh = false;
1420
- this.$nextTick(() => {
1421
- tab.refresh = true;
1422
- });
1423
1439
  },
1424
1440
  /**
1425
1441
  * @desc:删除iframe
@@ -1501,7 +1517,7 @@ export default {
1501
1517
  } else if (open) {
1502
1518
  util.win.open(open);
1503
1519
  } else if (link) {
1504
- util.win.location.href = link;
1520
+ util.win.open(link, '_self');
1505
1521
  } else {
1506
1522
  switch (type) {
1507
1523
  case 'quit':
@@ -1525,15 +1541,23 @@ export default {
1525
1541
  this.showMsg = false;
1526
1542
  break;
1527
1543
  case 'home':
1528
- if (this.homePage.id !== this.activeName) {
1529
- let i = util.indexOfObj(this.tabs, this.homePage.id, 'id');
1530
- if (i == -1) {
1531
- this.tabs.unshift(this.homePage);
1544
+ let i = util.indexOfObj(this.tabs, this.homePage.id, 'id');
1545
+ if (i == -1) {
1546
+ this.tabs.unshift(this.homePage);
1547
+ } else {
1548
+ let tab = this.tabs[i];
1549
+ if (tab.method === 'iframe') {
1550
+ this.$set(this.tabs[i], 'url', util.handlerUrl(tab.url));
1551
+ } else {
1552
+ this.$set(this.tabs[i], 'refresh', false);
1553
+ this.$nextTick(() => {
1554
+ this.$set(this.tabs[i], 'refresh', true);
1555
+ });
1532
1556
  }
1533
- this.activeName = this.homePage.id;
1534
- this.showMsg = false;
1535
- this.showSet = false;
1536
1557
  }
1558
+ this.activeName = this.homePage.id;
1559
+ this.showMsg = false;
1560
+ this.showSet = false;
1537
1561
  break;
1538
1562
  case 'search':
1539
1563
  this.handlerSetDrawer(res);
@@ -1684,6 +1708,16 @@ export default {
1684
1708
  if (i == -1) {
1685
1709
  let tab = this.setIframeType(obj);
1686
1710
  this.tabs.splice(n + 1, 0, tab);
1711
+ } else {
1712
+ let tab = this.tabs[i];
1713
+ if (tab.method === 'iframe') {
1714
+ this.$set(this.tabs[i], 'url', util.handlerUrl(tab.url));
1715
+ } else {
1716
+ this.$set(this.tabs[i], 'refresh', false);
1717
+ this.$nextTick(() => {
1718
+ this.$set(this.tabs[i], 'refresh', true);
1719
+ });
1720
+ }
1687
1721
  }
1688
1722
  } else {
1689
1723
  this.$message.error('没有此菜单!');