n20-common-lib 2.22.24 → 2.22.26

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n20-common-lib",
3
- "version": "2.22.24",
3
+ "version": "2.22.26",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -5,7 +5,7 @@
5
5
  <ExpandablePane
6
6
  v-if="taskId && showBtn && authList.includes('isShowOtherAtt')"
7
7
  title="自定义项"
8
- :default-expand="false"
8
+ :default-expand="otherExpand"
9
9
  >
10
10
  <el-form ref="approveBtnGroup" label-position="right" :label-width="_lang === 'zh' ? '12em' : '12em'">
11
11
  <div
@@ -221,7 +221,7 @@
221
221
  <carboncopy-prop
222
222
  type="addtask"
223
223
  :carbon-copy-list="addTaskList"
224
- @close="setAddtaskV = false"
224
+ @close="setAddtaskClose"
225
225
  @confirm="setAddtaskOk"
226
226
  />
227
227
  </cl-dialog>
@@ -454,6 +454,10 @@ export default {
454
454
  beforeDiscard: {
455
455
  type: Function,
456
456
  default: undefined
457
+ },
458
+ otherExpand: {
459
+ type: Boolean,
460
+ default: true
457
461
  }
458
462
  },
459
463
  data() {
@@ -594,13 +598,10 @@ export default {
594
598
  this.checkFlowFn()
595
599
  }
596
600
  }
597
- // addTaskTip 是否给出加签提示
601
+ // addTaskTip 需要加签时,直接弹出加签弹窗选择被加签人
598
602
  if (res.code === 200 && res.data && res.data.addTaskTip) {
599
- this.$confirm('请确定是否向后加签', $lc('提示'), {
600
- confirmButtonText: $lc('确定'),
601
- cancelButtonText: $lc('取消'),
602
- type: 'warning'
603
- }).then(handleResult)
603
+ this._pendingAddTaskTip = handleResult
604
+ this.setAddtaskV = true
604
605
  } else {
605
606
  handleResult()
606
607
  }
@@ -1136,6 +1137,14 @@ export default {
1136
1137
 
1137
1138
  this.setCarboncopyV = false
1138
1139
  },
1140
+ setAddtaskClose() {
1141
+ this.setAddtaskV = false
1142
+ if (this._pendingAddTaskTip) {
1143
+ const callback = this._pendingAddTaskTip
1144
+ this._pendingAddTaskTip = null
1145
+ callback()
1146
+ }
1147
+ },
1139
1148
  setAddtaskOk(list) {
1140
1149
  this.addTaskList = list
1141
1150
  if (this.addTaskList.length > 0 && !this.addTaskType) {
@@ -1147,6 +1156,23 @@ export default {
1147
1156
  }
1148
1157
 
1149
1158
  this.setAddtaskV = false
1159
+
1160
+ // 加签提示场景:未选择被加签人时,弹窗确认是否向后加签
1161
+ if (this._pendingAddTaskTip) {
1162
+ const callback = this._pendingAddTaskTip
1163
+ this._pendingAddTaskTip = null
1164
+ if (this.addTaskList.length === 0) {
1165
+ this.$confirm('请检查是否向后加签', $lc('提示'), {
1166
+ confirmButtonText: $lc('确定'),
1167
+ cancelButtonText: $lc('取消'),
1168
+ type: 'warning'
1169
+ }).then(() => {
1170
+ callback()
1171
+ }).catch(() => {})
1172
+ } else {
1173
+ callback()
1174
+ }
1175
+ }
1150
1176
  },
1151
1177
  getFileDtos(fileList) {
1152
1178
  return fileList.map((file) => {
@@ -1,28 +1,13 @@
1
1
  <template>
2
- <div
3
- class="w-100p flex-box"
4
- :style="{
5
- display: 'grid',
6
- flexWrap: 'wrap',
7
- gridTemplateColumns: `repeat(${columns}, 1fr)`,
8
- gap: '16px',
9
- padding: '0',
10
- overflowX: 'hidden'
11
- }"
12
- >
13
- <div v-for="(item, i) in otherAttData" :key="i" class="flex-box" style="width: 100%; padding: 0 20px">
2
+ <div class="w-100p">
3
+ <div v-for="(item, i) in otherAttData" :key="i" class="flex-box m-l-m m-r-m">
14
4
  <el-form-item
15
5
  class="m-r-ss m-b-s"
16
- :label-width="labelWidth"
17
6
  :class="item.cfgHasRemark === '1' ? 'flex-auto' : 'flex-1'"
18
7
  :label="item.cfgName"
19
8
  >
20
9
  <span slot="label">
21
- <span
22
- v-title="item.cfgName"
23
- style="display: inline-block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis"
24
- :style="{ maxWidth: labelWidth }"
25
- >
10
+ <span style="display: inline-block; white-space: wrap">
26
11
  <span v-if="required" style="color: red">*</span>
27
12
  {{ item.cfgName }}
28
13
  </span>
@@ -56,20 +41,10 @@
56
41
  >
57
42
  <el-option v-for="(row, i) in JSON.parse(item.cfgJson)" :key="i" :label="row.value" :value="row.code" />
58
43
  </el-select>
59
- <el-radio-group
60
- v-if="item.cfgType === '22'"
61
- v-model="item.cfgVal"
62
- class="input-w"
63
- @change="(val) => changeFn(val, item)"
64
- >
44
+ <el-radio-group v-if="item.cfgType === '22'" v-model="item.cfgVal" @change="(val) => changeFn(val, item)">
65
45
  <el-radio v-for="(row, i) in JSON.parse(item.cfgJson)" :key="i" :label="row.code">{{ row.value }}</el-radio>
66
46
  </el-radio-group>
67
- <el-checkbox-group
68
- v-if="item.cfgType === '32'"
69
- v-model="item.checkList"
70
- class="input-w"
71
- @change="(val) => changeFn(val, item)"
72
- >
47
+ <el-checkbox-group v-if="item.cfgType === '32'" v-model="item.checkList" @change="(val) => changeFn(val, item)">
73
48
  <el-checkbox v-for="(row, i) in JSON.parse(item.cfgJson || '[]')" :key="i" :label="row.code">{{
74
49
  row.value
75
50
  }}</el-checkbox>
@@ -104,19 +79,12 @@
104
79
  <script>
105
80
  import axios from '../../utils/axios'
106
81
  export default {
82
+ name: 'ShowOtherAttrNew',
107
83
  props: {
108
- labelWidth: {
109
- type: String,
110
- default: '12em'
111
- },
112
84
  taskId: {
113
85
  type: [String, Number],
114
86
  default: ''
115
87
  },
116
- columns: {
117
- type: Number,
118
- default: 1
119
- },
120
88
  form: {
121
89
  type: Object,
122
90
  default: () => ({})
@@ -143,6 +111,34 @@ export default {
143
111
  this.getData(this.otherAttDataA)
144
112
  },
145
113
  methods: {
114
+ setDefaultValue(item) {
115
+ const defaultTypes = ['22', '21', '31', '32']
116
+ // 不满足条件的直接返回
117
+ if (!defaultTypes.includes(item.cfgType) || item.cfgVal) return
118
+
119
+ try {
120
+ // 解析cfgJson,获取默认选项
121
+ const cfgJson = JSON.parse(item.cfgJson || '[]')
122
+ const defaultItems = cfgJson.filter((row) => row.isDefault === '1')
123
+ if (!defaultItems.length) return
124
+ // 获取默认选项的code值
125
+ const defaultCodes = defaultItems.map((row) => row.code)
126
+ if (['22', '21'].includes(item.cfgType)) {
127
+ item.cfgVal = defaultCodes[0]
128
+ item.cfgText = defaultItems[0]?.value
129
+ } else if (['31', '32'].includes(item.cfgType)) {
130
+ item.cfgVal = defaultCodes.join(',')
131
+ item.cfgText = defaultItems.map((row) => row.value).join(',')
132
+ if (item.cfgType === '31') {
133
+ item.selectList = defaultCodes
134
+ } else {
135
+ item.checkList = defaultCodes
136
+ }
137
+ }
138
+ } catch (e) {
139
+ // JSON解析失败时忽略
140
+ }
141
+ },
146
142
  getData(data) {
147
143
  if (data.length) {
148
144
  this.otherAttData = data
@@ -155,6 +151,10 @@ export default {
155
151
  if (['32'].includes(item.cfgType)) {
156
152
  item.checkList = item.checkList ? item.checkList : []
157
153
  }
154
+ if (['31'].includes(item.cfgType)) {
155
+ item.selectList = item.selectList ? item.selectList : []
156
+ }
157
+ this.setDefaultValue(item)
158
158
  return item
159
159
  }) || []
160
160
  }
@@ -198,7 +198,8 @@
198
198
  :class="{ 'flex-box': align === 'left-right' }"
199
199
  :style="align === 'left-right' ? 'justify-content: space-between' : ''"
200
200
  >
201
- <span>{{ s.cfgName }}:</span><span>{{ s.cfgText ? s.cfgText : s.cfgVal }}</span>
201
+ <span>{{ s.cfgName }}:</span
202
+ ><span>{{ s.cfgText ? s.cfgText : s.cfgVal }}{{ s.cfgRemark }}</span>
202
203
  </div>
203
204
  </div>
204
205
  </div>
@@ -278,10 +279,8 @@
278
279
  :class="{ 'flex-box': align === 'left-right' }"
279
280
  :style="align === 'left-right' ? 'justify-content: space-between' : ''"
280
281
  >
281
- <div>
282
- <span>{{ s.cfgName }}:</span><span>{{ s.cfgText ? s.cfgText : s.cfgVal }}</span>
283
- </div>
284
- <div>{{ s.cfgRemark }}</div>
282
+ <span>{{ s.cfgName }}:{{ s.cfgName }}:</span>
283
+ <span>{{ s.cfgText ? s.cfgText : s.cfgVal }}{{ s.cfgRemark }}</span>
285
284
  </div>
286
285
  </div>
287
286
  </div>
@@ -33,9 +33,9 @@
33
33
  </el-form-item>
34
34
  </el-form>
35
35
  <ExpandablePane v-if="otherAttDataA.length > 0" title="自定义项" :default-expand="true">
36
- <el-form ref="approveBtnGroup" label-position="right" :label-width="labelWidth">
36
+ <el-form ref="approveBtnGroup" label-position="top">
37
37
  <div
38
- class="p-b-lg p-t-lg p-r-lg"
38
+ class="p-b-s p-t-s"
39
39
  style="max-height: 350px; overflow-y: auto; border: 1px dashed var(--border-color-base); border-radius: 5px"
40
40
  >
41
41
  <show-other-att-new
@@ -44,8 +44,6 @@
44
44
  :other-att-data-a="otherAttDataA"
45
45
  :proc-inst-id="procInstId || this.$route.query.processInstanceId"
46
46
  :required="true"
47
- :columns="columns"
48
- :label-width="labelWidth"
49
47
  />
50
48
  </div>
51
49
  </el-form>
@@ -71,14 +69,7 @@ export default {
71
69
  type: String,
72
70
  default: '85%'
73
71
  },
74
- labelWidth: {
75
- type: String,
76
- default: '12em'
77
- },
78
- columns: {
79
- type: Number,
80
- default: 1
81
- },
72
+
82
73
  afterGetConf: {
83
74
  type: Function,
84
75
  default: undefined