n20-common-lib 2.2.29 → 2.2.31

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.2.29",
3
+ "version": "2.2.31",
4
4
  "private": false,
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -96,6 +96,16 @@
96
96
  .n20-quarter-date-picker__btn {
97
97
  color: var(--color-text-regular);
98
98
  }
99
+
100
+ .n20-quarter-date-picker__btn.isactive {
101
+ color: var(--color-primary);
102
+ }
103
+
99
104
  .n20-quarter-date-picker.el-popover {
100
105
  padding: 0;
101
106
  }
107
+
108
+ .el-button.el-button--text.is-disabled,
109
+ .el-button.el-button--text.is-disabled:hover {
110
+ color: #333;
111
+ }
@@ -69,7 +69,7 @@ export default {
69
69
  let addTaskPre = {}
70
70
  for (let k in res.data.addTask) {
71
71
  let item = res.data.addTask[k]
72
- let addTaskPreItem = item.filter((c) => /@2@addTaskType$/.test(c.addTaskDefId))
72
+ let addTaskPreItem = item.filter((c) => /@2@addTaskType/.test(c.addTaskDefId))
73
73
 
74
74
  if (addTaskPreItem.length) {
75
75
  addTaskPre[k] = addTaskPreItem
@@ -198,24 +198,25 @@ export default {
198
198
  this.setTaskRecord(obj)
199
199
  })
200
200
 
201
+ // 非加签节点添加事件
201
202
  currentActivityIdList.forEach((currentActivityId) => {
202
203
  let assignee = currAssMap[currentActivityId]
203
204
  let assigneeEnd = taskDefIdMap[currentActivityId]
204
- taskDefIdMap[currentActivityId] = undefined
205
-
206
205
  let task = this.svgW.querySelector(`[data-element-id="${currentActivityId}"]`)
207
206
  if (task) {
208
207
  task.classList.add('activiti-node-at')
209
- !currentActivityId.includes('@addTaskType') && this.addEvent(task, { assignee, assigneeEnd }, 'pending')
210
- // this.addEvent(task, { assignee, assigneeEnd }, 'pending')
208
+ if (!currentActivityId.includes('@addTaskType')) {
209
+ this.addEvent(task, { assignee, assigneeEnd }, 'pending')
210
+ }
211
211
  }
212
212
  })
213
213
  for (let k in taskDefIdMap) {
214
- if (taskDefIdMap[k]) {
214
+ if (!currentActivityIdList.includes(k)) {
215
215
  let taskK = this.svgW.querySelector(`[data-element-id="${k}"]`)
216
216
  if (taskK) {
217
- !k.includes('@addTaskType') && this.addEvent(taskK, taskDefIdMap[k])
218
- // this.addEvent(taskK, taskDefIdMap[k])
217
+ if (!k.includes('@addTaskType')) {
218
+ this.addEvent(taskK, taskDefIdMap[k])
219
+ }
219
220
  }
220
221
  }
221
222
  }
@@ -475,7 +476,16 @@ export default {
475
476
  if (el.currentTarget.getAttribute('class').includes('activiti-node-reject')) {
476
477
  list.forEach((c) => (c.examineType = 'reject'))
477
478
  }
478
- this.addTaskList = list
479
+
480
+ // 合并驳回再次加签的节点
481
+ let _list = []
482
+ list.forEach((item) => {
483
+ if (!_list.some((_item) => _item.addTaskDefId === item.addTaskDefId)) {
484
+ _list.push(item)
485
+ }
486
+ })
487
+
488
+ this.addTaskList = _list
479
489
  this.addTaskV = false
480
490
  this.$nextTick(() => {
481
491
  this.$refs['addTask-pop'].doDestroy()
@@ -13,7 +13,9 @@
13
13
  value-format="yyyy-MM-dd"
14
14
  type="daterange"
15
15
  clearable
16
+ v-bind="$attrs"
16
17
  :placeholder="'选择日' | $lc"
18
+ v-on="$listeners"
17
19
  />
18
20
  <date-picker
19
21
  v-if="type === '周' && selectList.includes(type)"
@@ -21,7 +23,7 @@
21
23
  v-model="week"
22
24
  format="yyyy 第 WW 周"
23
25
  type="week"
24
- :picker-options="{ firstDayOfWeek: 1 }"
26
+ :picker-options="attrs"
25
27
  :default-time="['00:00:00', '23:59:59']"
26
28
  :placeholder="'选择周' | $lc"
27
29
  />
@@ -34,15 +36,22 @@
34
36
  format="yyyy-MM"
35
37
  value-format="yyyy-MM"
36
38
  :editable="false"
39
+ v-bind="$attrs"
37
40
  :placeholder="'选择月' | $lc"
38
41
  />
39
- <quarter-date-picker v-if="type === '季'" key="quarter" v-model="quarter" />
42
+ <quarter-date-picker
43
+ v-if="type === '季'"
44
+ key="quarter"
45
+ v-model="quarter"
46
+ :disabled-date="this.attrs.disabledDate"
47
+ />
40
48
  <date-picker
41
49
  v-if="type === '年' && selectList.includes(type)"
42
50
  key="year"
43
51
  v-model="year"
44
52
  type="year"
45
53
  format="yyyy"
54
+ v-bind="$attrs"
46
55
  value-format="yyyy"
47
56
  :editable="false"
48
57
  :placeholder="'选择年' | $lc"
@@ -51,7 +60,7 @@
51
60
  </template>
52
61
 
53
62
  <script>
54
- // TODO: 双休绑定数值格式不统一
63
+ // TODO: 双向绑定数值格式不统一
55
64
  import datePicker from '../DatePicker/index.vue'
56
65
  import quarterDatePicker from './quarterDatePicker'
57
66
  import dayjs from 'dayjs'
@@ -89,6 +98,7 @@ export default {
89
98
  }
90
99
  },
91
100
  data() {
101
+ this.attrs = Object.assign({ firstDayOfWeek: 1 }, this.$attrs['picker-options'])
92
102
  return {}
93
103
  },
94
104
  computed: {
@@ -124,38 +134,38 @@ export default {
124
134
  return this.value.startDate
125
135
  },
126
136
  set(value) {
127
- if (value) {
128
- let todayDay = value ? new Date(value) : new Date()
129
- let todayOfWeek = todayDay.getDay()
130
- let spendDay = 1
131
- if (todayOfWeek !== 0) {
132
- spendDay = 7 - todayOfWeek // 开始时间到结束时间还有几天
133
- }
134
- // 86400000为一天的毫秒数
135
- let startTimeNum = todayDay.valueOf() - (6 - spendDay) * 86400000 // 开始时间时间戳
136
- let endTimeNum = todayDay.valueOf() + spendDay * 86400000 // 结束时间时间戳
137
- let startTimeStr = this.timestampToTime(startTimeNum) // 时间戳转字符串
138
- let endTimeStr = this.timestampToTime(endTimeNum)
139
- let weekTime = {
140
- startDate: startTimeStr,
141
- endDate: endTimeStr,
142
- typeDate: this.value.typeDate
143
- } // 选择的范围
137
+ if (value) {
138
+ let todayDay = value ? new Date(value) : new Date()
139
+ let todayOfWeek = todayDay.getDay()
140
+ let spendDay = 1
141
+ if (todayOfWeek !== 0) {
142
+ spendDay = 7 - todayOfWeek // 开始时间到结束时间还有几天
143
+ }
144
+ // 86400000为一天的毫秒数
145
+ let startTimeNum = todayDay.valueOf() - (6 - spendDay) * 86400000 // 开始时间时间戳
146
+ let endTimeNum = todayDay.valueOf() + spendDay * 86400000 // 结束时间时间戳
147
+ let startTimeStr = this.timestampToTime(startTimeNum) // 时间戳转字符串
148
+ let endTimeStr = this.timestampToTime(endTimeNum)
149
+ let weekTime = {
150
+ startDate: startTimeStr,
151
+ endDate: endTimeStr,
152
+ typeDate: this.value.typeDate
153
+ } // 选择的范围
144
154
 
145
- this.$emit('input', weekTime)
146
- this.$emit('change', weekTime)
147
- } else {
148
- this.$emit('input', {
149
- startDate: '',
150
- endDate: '',
151
- typeDate: this.value.typeDate
152
- })
153
- this.$emit('change', {
154
- startDate: '',
155
- endDate: '',
156
- typeDate: this.value.typeDate
157
- })
158
- }
155
+ this.$emit('input', weekTime)
156
+ this.$emit('change', weekTime)
157
+ } else {
158
+ this.$emit('input', {
159
+ startDate: '',
160
+ endDate: '',
161
+ typeDate: this.value.typeDate
162
+ })
163
+ this.$emit('change', {
164
+ startDate: '',
165
+ endDate: '',
166
+ typeDate: this.value.typeDate
167
+ })
168
+ }
159
169
  }
160
170
  },
161
171
  month: {
@@ -27,16 +27,40 @@
27
27
 
28
28
  <div class="el-picker-panel__content">
29
29
  <div v-if="isQuarter" class="n20-quarter-date-picker__grid">
30
- <el-button type="text" size="medium" class="n20-quarter-date-picker__btn" @click="selectSeason(0)"
30
+ <el-button
31
+ type="text"
32
+ :disabled="isDisabled(year, '1')"
33
+ size="medium"
34
+ class="n20-quarter-date-picker__btn"
35
+ :class="this.season == 1 ? 'isactive' : ''"
36
+ @click="selectSeason(0)"
31
37
  >{{ year }}年 第一季度</el-button
32
38
  >
33
- <el-button type="text" size="medium" class="n20-quarter-date-picker__btn" @click="selectSeason(1)"
39
+ <el-button
40
+ type="text"
41
+ :disabled="isDisabled(year, '2')"
42
+ size="medium"
43
+ class="n20-quarter-date-picker__btn"
44
+ :class="this.season == 2 ? 'isactive' : ''"
45
+ @click="selectSeason(1)"
34
46
  >{{ year }}年 第二季度</el-button
35
47
  >
36
- <el-button type="text" size="medium" class="n20-quarter-date-picker__btn" @click="selectSeason(2)"
48
+ <el-button
49
+ type="text"
50
+ :disabled="isDisabled(year, '3')"
51
+ size="medium"
52
+ class="n20-quarter-date-picker__btn"
53
+ :class="this.season == 3 ? 'isactive' : ''"
54
+ @click="selectSeason(2)"
37
55
  >{{ year }}年 第三季度</el-button
38
56
  >
39
- <el-button type="text" size="medium" class="n20-quarter-date-picker__btn" @click="selectSeason(3)"
57
+ <el-button
58
+ :disabled="isDisabled(year, '4')"
59
+ type="text"
60
+ size="medium"
61
+ class="n20-quarter-date-picker__btn"
62
+ :class="this.season == 4 ? 'isactive' : ''"
63
+ @click="selectSeason(3)"
40
64
  >{{ year }}年 第四季度</el-button
41
65
  >
42
66
  </div>
@@ -81,6 +105,10 @@ export default {
81
105
  return {}
82
106
  }
83
107
  },
108
+ disabledDate: {
109
+ type: Function,
110
+ default: () => false
111
+ },
84
112
  valueArr: {
85
113
  default: () => {
86
114
  return ['01-01 - 03-31', '04-01 - 06-30', '07-01 - 09-30', '10-01 - 12-31']
@@ -185,6 +213,35 @@ export default {
185
213
  this.showValue = `${this.year} 年 ${this.season} 季度`
186
214
  that.$emit('input', { startDate: this.year + '-' + arr[0], endDate: this.year + '-' + arr[1] })
187
215
  that.$emit('change', { startDate: this.year + '-' + arr[0], endDate: this.year + '-' + arr[1] }) // 每次选择时间都将当前选择时间发送到父组件
216
+ },
217
+ isDisabled(year, type) {
218
+ let quarterDate
219
+ switch (type) {
220
+ case '1':
221
+ quarterDate = dayjs(year + '03')
222
+ .endOf('month')
223
+ .toDate()
224
+ break
225
+ case '2':
226
+ quarterDate = dayjs(year + '06')
227
+ .endOf('month')
228
+ .toDate()
229
+ break
230
+ case '3':
231
+ quarterDate = dayjs(year + '09')
232
+ .endOf('month')
233
+ .toDate()
234
+ break
235
+ case '4':
236
+ quarterDate = dayjs(year + '12')
237
+ .endOf('month')
238
+ .toDate()
239
+ break
240
+ }
241
+ if (this.disabledDate) {
242
+ return this.disabledDate(quarterDate)
243
+ }
244
+ return false
188
245
  }
189
246
  }
190
247
  }