n20-common-lib 1.3.84 → 1.3.86
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 +1 -1
- package/src/components/ApprovalButtons/index.vue +2 -2
- package/src/components/ApprovalButtons/setCarboncopyProp.vue +57 -28
- package/src/components/ApprovalCard/ApproveCard-zjk.vue +7 -0
- package/src/components/ApprovalCard/index-zjk.vue +132 -0
- package/src/components/ApprovalCard/index.vue +1 -1
- package/src/components/ApprovalRecord/index-zjk.vue +41 -0
- package/src/components/ApprovalRecord/index.vue +2 -2
- package/src/index.js +14 -2
package/package.json
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
v-drag
|
|
71
71
|
:visible.sync="setCarboncopyV"
|
|
72
72
|
:title="'设置抄送用户' | $lc"
|
|
73
|
-
width="
|
|
73
|
+
width="960px"
|
|
74
74
|
append-to-body
|
|
75
75
|
top="7.5vh"
|
|
76
76
|
>
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
v-drag
|
|
81
81
|
:visible.sync="setAddtaskV"
|
|
82
82
|
:title="'设置加签用户' | $lc"
|
|
83
|
-
width="
|
|
83
|
+
width="960px"
|
|
84
84
|
append-to-body
|
|
85
85
|
top="7.5vh"
|
|
86
86
|
>
|
|
@@ -1,39 +1,59 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<cl-page style="height: 75vh">
|
|
2
|
+
<cl-page style="height: 75vh; --table-w: 650px">
|
|
3
3
|
<div slot="header" class="flex-box flex-v m-b">
|
|
4
|
-
<span class="m-r-ss">{{ '
|
|
4
|
+
<span class="m-r-ss">{{ '用户姓名' | $lc }}</span>
|
|
5
5
|
<span>
|
|
6
|
-
<el-input v-model="searchObj.
|
|
6
|
+
<el-input v-model="searchObj.uname" size="mini" :placeholder="'请输入用户姓名' | $lc" />
|
|
7
7
|
</span>
|
|
8
|
-
<span class="m-l m-r-ss">{{ '
|
|
8
|
+
<span class="m-l m-r-ss">{{ '单位名称' | $lc }}</span>
|
|
9
9
|
<span>
|
|
10
|
-
<el-input v-model="searchObj.
|
|
10
|
+
<el-input v-model="searchObj.cltName" size="mini" :placeholder="'请选择单位' | $lc" />
|
|
11
11
|
</span>
|
|
12
|
-
<
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<el-
|
|
12
|
+
<el-button class="m-l" plain size="mini" @click="resetFn">{{ '重置' | $lc }}</el-button>
|
|
13
|
+
<el-button type="primary" size="mini" @click="searchFn">{{ '查询' | $lc }}</el-button>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="flex-box" style="height: 100%">
|
|
16
|
+
<el-table
|
|
17
|
+
ref="elTable"
|
|
18
|
+
:key="elTableKey"
|
|
19
|
+
:data="nodeTable"
|
|
20
|
+
row-key="uno"
|
|
21
|
+
border
|
|
22
|
+
height="100%"
|
|
23
|
+
style="width: var(--table-w); flex: none"
|
|
24
|
+
@select="sltChange"
|
|
25
|
+
@select-all="sltChange"
|
|
26
|
+
>
|
|
27
|
+
<el-table-column :reserve-selection="true" type="selection" width="46" header-align="center" align="center" />
|
|
28
|
+
<el-table-column prop="uname" :label="'用户姓名' | $lc" header-align="center" align="center" />
|
|
29
|
+
<el-table-column prop="cltName" :label="'单位名称' | $lc" header-align="center" align="center" />
|
|
30
|
+
<el-table-column prop="uno" :label="'登录账号/用户编号' | $lc" header-align="center" align="center" />
|
|
31
|
+
</el-table>
|
|
32
|
+
<div class="flex-column flex-c p-l p-r">
|
|
33
|
+
<i class="el-icon-d-arrow-left m-b"></i>
|
|
34
|
+
<i class="el-icon-d-arrow-right"></i>
|
|
35
|
+
</div>
|
|
36
|
+
<div class="flex-item bd-a">
|
|
37
|
+
<div class="text-c" style="height: 44px; line-height: 44px; background: var(--background-color-base)">
|
|
38
|
+
抄送对象
|
|
39
|
+
</div>
|
|
40
|
+
<div v-for="item in selectArr" :key="item.uno" class="flex-box p-a-s">
|
|
41
|
+
<span
|
|
42
|
+
v-title="item.uname + '/' + item.cltName"
|
|
43
|
+
:show-overflow-tooltip="true"
|
|
44
|
+
class="text-ellipsis"
|
|
45
|
+
style="width: 200px"
|
|
46
|
+
>{{ item.uname }}/{{ item.cltName }}</span
|
|
47
|
+
>
|
|
48
|
+
<el-link class="m-l-auto" :underline="false" icon="el-icon-close m-l-auto" @click="closeFn(item)" />
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
17
51
|
</div>
|
|
18
|
-
|
|
19
|
-
<el-table
|
|
20
|
-
ref="elTable"
|
|
21
|
-
:key="elTableKey"
|
|
22
|
-
:data="nodeTable"
|
|
23
|
-
row-key="uno"
|
|
24
|
-
border
|
|
25
|
-
height="100%"
|
|
26
|
-
@select="sltChange"
|
|
27
|
-
@select-all="sltChange"
|
|
28
|
-
>
|
|
29
|
-
<el-table-column :reserve-selection="true" type="selection" width="46" header-align="center" align="center" />
|
|
30
|
-
<el-table-column prop="uno" :label="'编号' | $lc" header-align="center" align="center" />
|
|
31
|
-
<el-table-column prop="uname" :label="'姓名' | $lc" header-align="center" align="center" />
|
|
32
|
-
<el-table-column prop="cltName" :label="'单位' | $lc" header-align="center" align="center" />
|
|
33
|
-
</el-table>
|
|
34
52
|
<template slot="footer">
|
|
35
|
-
<div class="flex-box
|
|
53
|
+
<div class="flex-box m-t m-b" style="width: var(--table-w)">
|
|
54
|
+
<cl-statis :page-sum="nodeTable.length" :total-sun="pageObj.totalSize" />
|
|
36
55
|
<cl-pagination
|
|
56
|
+
class="m-l-auto"
|
|
37
57
|
:page-obj="pageObj"
|
|
38
58
|
:page-key="{ no: 'pageNum', size: 'pageSize', total: 'totalSize' }"
|
|
39
59
|
@change="getList"
|
|
@@ -50,10 +70,12 @@
|
|
|
50
70
|
<script>
|
|
51
71
|
import ClPage from '../PageLayout/page.vue'
|
|
52
72
|
import ClPagination from '../Pagination/index.vue'
|
|
73
|
+
import ClStatis from '../Statis/index.vue'
|
|
53
74
|
export default {
|
|
54
75
|
components: {
|
|
55
76
|
ClPage,
|
|
56
|
-
ClPagination
|
|
77
|
+
ClPagination,
|
|
78
|
+
ClStatis
|
|
57
79
|
},
|
|
58
80
|
props: {
|
|
59
81
|
carbonCopyList: {
|
|
@@ -104,9 +126,16 @@ export default {
|
|
|
104
126
|
this.pageObj.pageNum = 1
|
|
105
127
|
this.getList()
|
|
106
128
|
},
|
|
129
|
+
resetFn() {
|
|
130
|
+
this.searchObj = {}
|
|
131
|
+
},
|
|
107
132
|
sltChange(list) {
|
|
108
133
|
this.selectArr = list || []
|
|
109
134
|
},
|
|
135
|
+
closeFn(item) {
|
|
136
|
+
this.selectArr = this.selectArr.filter((d) => d.uno !== item.uno)
|
|
137
|
+
this.$refs.elTable.toggleRowSelection(item, false)
|
|
138
|
+
},
|
|
110
139
|
confirmFn() {
|
|
111
140
|
this.$emit('confirm', this.selectArr)
|
|
112
141
|
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/* 审批进度 */
|
|
2
|
+
<template>
|
|
3
|
+
<div class="n20-approve-wrap">
|
|
4
|
+
<el-timeline :reverse="true">
|
|
5
|
+
<el-timeline-item v-for="(item, i) in approvalData" :key="i" :type="item | typeF(status)" :hide-timestamp="true">
|
|
6
|
+
<div class="n20-time">
|
|
7
|
+
<div>{{ item.endTime | dataF }}</div>
|
|
8
|
+
<div>{{ item.endTime | timeF }}</div>
|
|
9
|
+
</div>
|
|
10
|
+
<div>
|
|
11
|
+
<div class="flex-box flex-v">
|
|
12
|
+
<div class="n20-worker p-r-s" style="width: 300px">{{ item.memberName }}</div>
|
|
13
|
+
<div class="n20-worker p-r-s" style="width: 150px">{{ item.roleName }}</div>
|
|
14
|
+
<div class="n20-worker p-r-s text-c" style="width: 80px">{{ item.assignee }}</div>
|
|
15
|
+
<div class="n20-worker p-r-s text-c" style="width: 150px">
|
|
16
|
+
<span :class="item | typeF(status, 'color-')">{{ item.resultName | $lc }}</span>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="flex-item">{{ item.suggestion }}</div>
|
|
19
|
+
</div>
|
|
20
|
+
<div v-if="item.ccUserName" class="n20-description-c m-t">抄送人:{{ item.ccUserName }}</div>
|
|
21
|
+
</div>
|
|
22
|
+
</el-timeline-item>
|
|
23
|
+
</el-timeline>
|
|
24
|
+
</div>
|
|
25
|
+
</template>
|
|
26
|
+
|
|
27
|
+
<script>
|
|
28
|
+
import { $lc } from '../../utils/i18n/index'
|
|
29
|
+
import axios from '../../utils/axios'
|
|
30
|
+
export default {
|
|
31
|
+
name: 'ApprovalCardZjk',
|
|
32
|
+
filters: {
|
|
33
|
+
typeF(item, status, prefix = '') {
|
|
34
|
+
let result = item.result
|
|
35
|
+
switch (result) {
|
|
36
|
+
case status.submit:
|
|
37
|
+
return prefix + 'primary'
|
|
38
|
+
case status.approval:
|
|
39
|
+
return prefix + 'primary'
|
|
40
|
+
case status.reject:
|
|
41
|
+
return prefix + 'danger'
|
|
42
|
+
case status.invalid:
|
|
43
|
+
return prefix + 'danger'
|
|
44
|
+
case status.end:
|
|
45
|
+
return prefix + 'primary'
|
|
46
|
+
default:
|
|
47
|
+
return undefined
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
dataF(_t) {
|
|
51
|
+
let t = _t || ''
|
|
52
|
+
let ts = t.split(' ') || ['', '']
|
|
53
|
+
return ts[0]
|
|
54
|
+
},
|
|
55
|
+
timeF(_t) {
|
|
56
|
+
let t = _t || ''
|
|
57
|
+
let ts = t.split(' ') || ['', '']
|
|
58
|
+
return ts[1]
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
props: {
|
|
62
|
+
close: {
|
|
63
|
+
type: Boolean,
|
|
64
|
+
default: false
|
|
65
|
+
},
|
|
66
|
+
status: {
|
|
67
|
+
type: Object,
|
|
68
|
+
default: () => ({
|
|
69
|
+
waiting: 0,
|
|
70
|
+
submit: 1,
|
|
71
|
+
approval: 2,
|
|
72
|
+
reject: 3,
|
|
73
|
+
invalid: 4,
|
|
74
|
+
end: 5
|
|
75
|
+
})
|
|
76
|
+
},
|
|
77
|
+
approvalData: {
|
|
78
|
+
type: Array,
|
|
79
|
+
default: () => []
|
|
80
|
+
},
|
|
81
|
+
procInstId: {
|
|
82
|
+
type: String,
|
|
83
|
+
default: undefined
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
created() {
|
|
87
|
+
if (this.procInstId) {
|
|
88
|
+
axios
|
|
89
|
+
.get('/bems/activiti/sample/Q003', {
|
|
90
|
+
procInstId: this.procInstId
|
|
91
|
+
})
|
|
92
|
+
.then(({ data = [] }) => {
|
|
93
|
+
let approvalData = []
|
|
94
|
+
data.forEach((item) => {
|
|
95
|
+
let _item = {
|
|
96
|
+
endTime: item.endTime || '',
|
|
97
|
+
assignee: item.assignee,
|
|
98
|
+
suggestion: item.suggestion,
|
|
99
|
+
ccUserName: item.ccUserName, // 抄送人
|
|
100
|
+
memberName: item.memberName // 审批人单位
|
|
101
|
+
}
|
|
102
|
+
let resultName = item.optResult || ''
|
|
103
|
+
resultName = resultName.split('-')
|
|
104
|
+
resultName = resultName[resultName.length - 1]
|
|
105
|
+
_item.resultName = resultName
|
|
106
|
+
|
|
107
|
+
if (item.taskName === $lc('开始')) {
|
|
108
|
+
_item.result = 1
|
|
109
|
+
} else if (_item.resultName === $lc('加签推进')) {
|
|
110
|
+
_item.result = 2
|
|
111
|
+
} else if (_item.resultName === $lc('作废')) {
|
|
112
|
+
_item.result = 4
|
|
113
|
+
} else if (item.taskName === $lc('结束')) {
|
|
114
|
+
_item.result = 5
|
|
115
|
+
} else if ('approvalState' in item) {
|
|
116
|
+
_item.result = item.approvalState
|
|
117
|
+
} else if (!item.endTime) {
|
|
118
|
+
_item.result = 0
|
|
119
|
+
} else if (item.rejectFlag === 1) {
|
|
120
|
+
_item.result = 3
|
|
121
|
+
} else {
|
|
122
|
+
_item.result = 2
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
approvalData.push(_item)
|
|
126
|
+
})
|
|
127
|
+
this.approvalData.push(...approvalData)
|
|
128
|
+
})
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
</script>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<div>
|
|
11
11
|
<div class="flex-box">
|
|
12
12
|
<div v-title="item.assignee" class="n20-worker flex-item m-r-s text-ellipsis" :show-overflow-tooltip="true">
|
|
13
|
-
<span class="worker-icon
|
|
13
|
+
<span class="worker-icon n20-icon-user"></span>
|
|
14
14
|
<span>{{ item.assignee }}</span>
|
|
15
15
|
</div>
|
|
16
16
|
<div class="n20-approval m-r-s">
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/* 审批记录 */
|
|
2
|
+
<template>
|
|
3
|
+
<div>
|
|
4
|
+
<expandableWrap :title="'审批记录' | $lc" :show-expand="false">
|
|
5
|
+
<template slot="tips">
|
|
6
|
+
<el-button plain size="mini" :disabled="false" @click="cardV = true">{{ '审批进度查看' | $lc }}</el-button>
|
|
7
|
+
<el-button plain size="mini" :disabled="false" @click="imgV = true">{{ '流程图查看' | $lc }}</el-button>
|
|
8
|
+
</template>
|
|
9
|
+
</expandableWrap>
|
|
10
|
+
<el-dialog :title="'审批记录' | $lc" :visible.sync="cardV" width="1100px" class="p-a-0" append-to-body top="10vh">
|
|
11
|
+
<approvalCard class="p-a" :proc-inst-id="$route.query.processInstanceId" style="height: 70vh; overflow: auto" />
|
|
12
|
+
</el-dialog>
|
|
13
|
+
<el-dialog :title="'查看流程' | $lc" :visible.sync="imgV" width="1100px" class="p-a-0" append-to-body top="10vh">
|
|
14
|
+
<approvalImg
|
|
15
|
+
class="text-c p-a"
|
|
16
|
+
:proc-inst-id="$route.query.processInstanceId"
|
|
17
|
+
style="height: 70vh; overflow: auto"
|
|
18
|
+
/>
|
|
19
|
+
</el-dialog>
|
|
20
|
+
</div>
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<script>
|
|
24
|
+
import expandableWrap from '../Expandable/main.vue'
|
|
25
|
+
import approvalCard from '../ApprovalCard/index-zjk.vue'
|
|
26
|
+
import approvalImg from './approvalImg.vue'
|
|
27
|
+
export default {
|
|
28
|
+
name: 'ApprovalRecordZjk',
|
|
29
|
+
components: {
|
|
30
|
+
expandableWrap,
|
|
31
|
+
approvalCard,
|
|
32
|
+
approvalImg
|
|
33
|
+
},
|
|
34
|
+
data() {
|
|
35
|
+
return {
|
|
36
|
+
cardV: false,
|
|
37
|
+
imgV: false
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
</script>
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
<el-button plain size="mini" :disabled="false" @click="imgV = true">{{ '流程图查看' | $lc }}</el-button>
|
|
8
8
|
</template>
|
|
9
9
|
</expandableWrap>
|
|
10
|
-
<el-dialog :title="'审批记录' | $lc" :visible.sync="cardV" width="
|
|
10
|
+
<el-dialog :title="'审批记录' | $lc" :visible.sync="cardV" width="700px" class="p-a-0" append-to-body top="10vh">
|
|
11
11
|
<approvalCard class="p-a" :proc-inst-id="$route.query.processInstanceId" style="height: 70vh; overflow: auto" />
|
|
12
12
|
</el-dialog>
|
|
13
|
-
<el-dialog :title="'查看流程' | $lc" :visible.sync="imgV" width="
|
|
13
|
+
<el-dialog :title="'查看流程' | $lc" :visible.sync="imgV" width="80%" class="p-a-0" append-to-body top="10vh">
|
|
14
14
|
<approvalImg
|
|
15
15
|
class="text-c p-a"
|
|
16
16
|
:proc-inst-id="$route.query.processInstanceId"
|
package/src/index.js
CHANGED
|
@@ -62,6 +62,10 @@ import Diff from './components/Diff/index.vue'
|
|
|
62
62
|
import TableO from './components/Table/indexO.vue'
|
|
63
63
|
import FiltersO from './components/Filters/indexO.vue'
|
|
64
64
|
import DialogO from './components/Dialog/indexO.vue'
|
|
65
|
+
/* 中建科 */
|
|
66
|
+
import ApprovalCardZjk from './components/ApprovalCard/index-zjk.vue'
|
|
67
|
+
import ApproveCardZjk from './components/ApprovalCard/ApproveCard-zjk.vue'
|
|
68
|
+
import ApprovalRecordZjk from './components/ApprovalRecord/index-zjk.vue'
|
|
65
69
|
|
|
66
70
|
/** 第三方组件 */
|
|
67
71
|
|
|
@@ -155,7 +159,11 @@ const components = [
|
|
|
155
159
|
/* old */
|
|
156
160
|
TableO,
|
|
157
161
|
FiltersO,
|
|
158
|
-
DialogO
|
|
162
|
+
DialogO,
|
|
163
|
+
/* 中建科 */
|
|
164
|
+
ApprovalCardZjk,
|
|
165
|
+
ApproveCardZjk,
|
|
166
|
+
ApprovalRecordZjk
|
|
159
167
|
]
|
|
160
168
|
|
|
161
169
|
const install = function (Vue, opts = { prefix: 'Cl', i18nConfig: {} }) {
|
|
@@ -268,5 +276,9 @@ export {
|
|
|
268
276
|
EventBubble,
|
|
269
277
|
ApprovalImg,
|
|
270
278
|
Stamp,
|
|
271
|
-
Diff
|
|
279
|
+
Diff,
|
|
280
|
+
/* 中建科 */
|
|
281
|
+
ApprovalCardZjk,
|
|
282
|
+
ApproveCardZjk,
|
|
283
|
+
ApprovalRecordZjk
|
|
272
284
|
}
|