n20-common-lib 2.5.5-beta → 2.5.5-beta.0
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 +13 -13
- package/src/components/ApprovalButtons/showAppOpi.vue +4 -3
- package/src/components/ApprovalRecord/index.vue +20 -2
- package/src/components/ShowColumn/index.vue +36 -0
- package/src/directives/VDrag/index.js +72 -72
- package/src/directives/VTitle/index.js +0 -1
- package/src/i18n.json +10 -1
- package/theme/blue.css +1 -1
- package/theme/cctcRed.css +1 -1
- package/theme/green.css +1 -1
- package/theme/lightBlue.css +1 -1
- package/theme/orange.css +1 -1
- package/theme/purple.css +1 -1
- package/theme/red.css +1 -1
- package/theme/yellow.css +1 -1
package/package.json
CHANGED
|
@@ -66,19 +66,6 @@
|
|
|
66
66
|
</el-form-item>
|
|
67
67
|
</div>
|
|
68
68
|
<div class="flex-box">
|
|
69
|
-
<el-form-item class="flex-1" :label="'审批意见' | $lc" :error="errMsg" :required="required" style="width: 70%">
|
|
70
|
-
<el-input
|
|
71
|
-
ref="msg-input"
|
|
72
|
-
v-model="messageC"
|
|
73
|
-
type="textarea"
|
|
74
|
-
:placeholder="
|
|
75
|
-
('请输入操作意见(' + messageMax + '字以内),批准该意见为非必填,驳回/作废该意见为必填!') | $lc
|
|
76
|
-
"
|
|
77
|
-
:maxlength="messageMax"
|
|
78
|
-
show-word-limit
|
|
79
|
-
:autosize="{ rows: 1 }"
|
|
80
|
-
/>
|
|
81
|
-
</el-form-item>
|
|
82
69
|
<template v-if="taskId && showBtn">
|
|
83
70
|
<show-app-opi
|
|
84
71
|
v-if="opiAndUser || authList.includes('showAppOpi')"
|
|
@@ -96,6 +83,19 @@
|
|
|
96
83
|
style="width: 18%"
|
|
97
84
|
/>
|
|
98
85
|
</template>
|
|
86
|
+
<el-form-item class="flex-1" :label="'审批意见' | $lc" :error="errMsg" :required="required" style="width: 70%">
|
|
87
|
+
<el-input
|
|
88
|
+
ref="msg-input"
|
|
89
|
+
v-model="messageC"
|
|
90
|
+
type="textarea"
|
|
91
|
+
:placeholder="
|
|
92
|
+
('请输入操作意见(' + messageMax + '字以内),批准该意见为非必填,驳回/作废该意见为必填!') | $lc
|
|
93
|
+
"
|
|
94
|
+
:maxlength="messageMax"
|
|
95
|
+
show-word-limit
|
|
96
|
+
:autosize="{ rows: 1 }"
|
|
97
|
+
/>
|
|
98
|
+
</el-form-item>
|
|
99
99
|
</div>
|
|
100
100
|
<el-form-item v-if="fileKit || fileKitT" label="附加上传">
|
|
101
101
|
<cl-upload
|
|
@@ -62,9 +62,10 @@ export default {
|
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
changeFn() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
this.$emit(
|
|
66
|
+
'update:message',
|
|
67
|
+
Array.isArray(this.approveMsgSlt) ? this.approveMsgSlt.join('\n') : this.approveMsgSlt
|
|
68
|
+
)
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* 审批记录 */
|
|
2
2
|
<template>
|
|
3
|
-
<div>
|
|
3
|
+
<div v-if="approvalMode === 'dialog' || !approvalMode">
|
|
4
4
|
<expandableWrap :title="'审批记录' | $lc" :show-expand="false" :icon="false">
|
|
5
5
|
<template slot="tips">
|
|
6
6
|
<el-button plain size="mini" :disabled="false" @click="cardV = true">{{ '审批进度查看' | $lc }}</el-button>
|
|
@@ -30,12 +30,24 @@
|
|
|
30
30
|
<approvalImg class="text-c p-a" :proc-inst-id="procInstIdC" style="height: 70vh; overflow: auto" />
|
|
31
31
|
</el-dialog>
|
|
32
32
|
</div>
|
|
33
|
+
<div v-else>
|
|
34
|
+
<expandableWrap title="审批记录">
|
|
35
|
+
<template slot="tips">
|
|
36
|
+
<el-button size="mini" plain @click="imgV = true">流程图查看</el-button>
|
|
37
|
+
</template>
|
|
38
|
+
<approvalCard :procInstId="procInstIdC" />
|
|
39
|
+
<el-dialog v-drag title="查看流程" :visible.sync="imgV" width="65%" class="p-a-0" append-to-body top="10vh">
|
|
40
|
+
<approvalImg class="text-c p-a" style="height: 70vh; overflow: auto" />
|
|
41
|
+
</el-dialog>
|
|
42
|
+
</expandableWrap>
|
|
43
|
+
</div>
|
|
33
44
|
</template>
|
|
34
45
|
|
|
35
46
|
<script>
|
|
36
47
|
import expandableWrap from '../Expandable/main.vue'
|
|
37
48
|
import approvalCard from '../ApprovalCard/index.vue'
|
|
38
49
|
import approvalImg from './approvalImg.vue'
|
|
50
|
+
import getJsonc from '../../assets/getJsonc'
|
|
39
51
|
export default {
|
|
40
52
|
name: 'ApprovalRecord',
|
|
41
53
|
components: {
|
|
@@ -52,13 +64,19 @@ export default {
|
|
|
52
64
|
data() {
|
|
53
65
|
return {
|
|
54
66
|
cardV: false,
|
|
55
|
-
imgV: false
|
|
67
|
+
imgV: false,
|
|
68
|
+
approvalMode: undefined
|
|
56
69
|
}
|
|
57
70
|
},
|
|
58
71
|
computed: {
|
|
59
72
|
procInstIdC() {
|
|
60
73
|
return this.procInstId || this.$route.query.processInstanceId
|
|
61
74
|
}
|
|
75
|
+
},
|
|
76
|
+
mounted() {
|
|
77
|
+
getJsonc('/server-config.jsonc').then(({ approvalMode }) => {
|
|
78
|
+
this.approvalMode = approvalMode
|
|
79
|
+
})
|
|
62
80
|
}
|
|
63
81
|
}
|
|
64
82
|
</script>
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
:close-on-click-modal="false"
|
|
11
11
|
@open="popOpen"
|
|
12
12
|
>
|
|
13
|
+
<div class="flex-box flex-lr p-r-lg" slot="title">
|
|
14
|
+
<div>{{ title }}</div>
|
|
15
|
+
|
|
16
|
+
<div v-has="isHas" class="pointer color-primary" @click="handleInitialize">{{ '初始化' | $lc }}</div>
|
|
17
|
+
</div>
|
|
13
18
|
<div class="dialog-view">
|
|
14
19
|
<div class="flex-box">
|
|
15
20
|
<div class="left-c flex-column p-t-m bd-r">
|
|
@@ -78,6 +83,7 @@
|
|
|
78
83
|
<script>
|
|
79
84
|
import { $lc } from '../../utils/i18n/index'
|
|
80
85
|
import axios from '../../utils/axios'
|
|
86
|
+
|
|
81
87
|
import dialogWrap from '../Dialog/index.vue'
|
|
82
88
|
import dragList from '../DragList/index.vue'
|
|
83
89
|
export default {
|
|
@@ -124,6 +130,10 @@ export default {
|
|
|
124
130
|
width: {
|
|
125
131
|
type: String,
|
|
126
132
|
default: '800px'
|
|
133
|
+
},
|
|
134
|
+
isHas: {
|
|
135
|
+
type: String,
|
|
136
|
+
default: undefined
|
|
127
137
|
}
|
|
128
138
|
},
|
|
129
139
|
data() {
|
|
@@ -167,6 +177,31 @@ export default {
|
|
|
167
177
|
}
|
|
168
178
|
},
|
|
169
179
|
methods: {
|
|
180
|
+
async handleInitialize() {
|
|
181
|
+
if (this.dragList.length < 1) {
|
|
182
|
+
this.$message.error(
|
|
183
|
+
`${$lc(`至少设置`)}${
|
|
184
|
+
this.isExport ? $lc('一列导出数据') : this.isFilter ? $lc('一个筛选条件') : $lc('一列显示列')
|
|
185
|
+
}!`
|
|
186
|
+
)
|
|
187
|
+
return
|
|
188
|
+
}
|
|
189
|
+
await this.$msgboxPor({
|
|
190
|
+
title: $lc('确认初始化吗?'),
|
|
191
|
+
message: $lc('初始化后将全局生效!'),
|
|
192
|
+
type: 'info',
|
|
193
|
+
confirmButtonText: $lc('确定'),
|
|
194
|
+
cancelButtonText: $lc('取消')
|
|
195
|
+
})
|
|
196
|
+
|
|
197
|
+
let list = []
|
|
198
|
+
let preCols = this.columns.filter((col) => col.static === 'pre')
|
|
199
|
+
let nextCols = this.columns.filter((col) => col.static === 'next')
|
|
200
|
+
list.push(...preCols, ...this.dragList, ...nextCols)
|
|
201
|
+
this.userNo = '_global_'
|
|
202
|
+
this.saveColumns(list)
|
|
203
|
+
this.visible = false
|
|
204
|
+
},
|
|
170
205
|
popOpen() {
|
|
171
206
|
this.dragList = this.checkColumns.filter((col) => !col.static)
|
|
172
207
|
},
|
|
@@ -205,6 +240,7 @@ export default {
|
|
|
205
240
|
list.push(...preCols, ...this.dragList, ...nextCols)
|
|
206
241
|
|
|
207
242
|
// 自动保存设置的显示列
|
|
243
|
+
this.userNo = sessionStorage.getItem('userNo')
|
|
208
244
|
!this.isExport && this.autoSave && this.saveColumns(list)
|
|
209
245
|
|
|
210
246
|
this.$emit('setColumns', list)
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* author: zhengwei
|
|
3
|
-
* tiem: 2021-8-31
|
|
4
|
-
* amend: 只注册到bind上,有问题;onXX会导致事件覆盖
|
|
5
|
-
*/
|
|
6
|
-
// 封装全局弹窗拖拽指令 v-drag
|
|
7
|
-
function dialogMoveFn(_this) {
|
|
8
|
-
var dialogDom = _this.parentNode
|
|
9
|
-
dialogDom.style.top = parseFloat(dialogDom.style.top || '0') + _this.pageYc + 'px'
|
|
10
|
-
dialogDom.style.left = parseFloat(dialogDom.style.left || '0') + _this.pageXc + 'px'
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const dialogMove = {
|
|
14
|
-
install: function (Vue) {
|
|
15
|
-
Vue.directive('drag', {
|
|
16
|
-
update(el, binding) {
|
|
17
|
-
if (el.style.display === 'none') {
|
|
18
|
-
var dialogDom = el.querySelector('.el-dialog')
|
|
19
|
-
if (dialogDom) {
|
|
20
|
-
dialogDom.style.left = ''
|
|
21
|
-
dialogDom.style.top = ''
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
Vue.nextTick(function () {
|
|
25
|
-
var dialogHeader = el.querySelector('.el-dialog__header')
|
|
26
|
-
if (dialogHeader && !dialogHeader._hasMoveDir) {
|
|
27
|
-
var _this, pvrPageX, pvrPageY
|
|
28
|
-
dialogHeader._hasMoveDir = true
|
|
29
|
-
dialogHeader.style.cursor = 'move'
|
|
30
|
-
|
|
31
|
-
dialogHeader.addEventListener('mousedown', function (evt) {
|
|
32
|
-
var ev = evt || event
|
|
33
|
-
this.pageXc = this.pageYc = 0
|
|
34
|
-
_this = this
|
|
35
|
-
pvrPageX = ev.pageX
|
|
36
|
-
pvrPageY = ev.pageY
|
|
37
|
-
document.addEventListener('mousemove', mousemoveThisMove)
|
|
38
|
-
document.addEventListener('mouseup', mouseupThisMove)
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
var mousemoveThisMove = function (evt) {
|
|
42
|
-
var ev = evt || event
|
|
43
|
-
ev.stopPropagation()
|
|
44
|
-
ev.preventDefault()
|
|
45
|
-
if (
|
|
46
|
-
ev.clientX >= 0 &&
|
|
47
|
-
ev.clientY >= 0 &&
|
|
48
|
-
ev.clientX <= document.documentElement.clientWidth &&
|
|
49
|
-
ev.clientY <= document.documentElement.clientHeight
|
|
50
|
-
) {
|
|
51
|
-
_this.pageXc = ev.pageX - pvrPageX
|
|
52
|
-
_this.pageYc = ev.pageY - pvrPageY
|
|
53
|
-
if (_this.pageXc !== 0 || _this.pageYc !== 0) {
|
|
54
|
-
binding.value ? binding.value(_this, binding.arg) : dialogMoveFn(_this)
|
|
55
|
-
}
|
|
56
|
-
pvrPageX = ev.pageX
|
|
57
|
-
pvrPageY = ev.pageY
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
var mouseupThisMove = function () {
|
|
62
|
-
document.removeEventListener('mousemove', mousemoveThisMove)
|
|
63
|
-
document.removeEventListener('mouseup', mouseupThisMove)
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
})
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export default dialogMove
|
|
1
|
+
/**
|
|
2
|
+
* author: zhengwei
|
|
3
|
+
* tiem: 2021-8-31
|
|
4
|
+
* amend: 只注册到bind上,有问题;onXX会导致事件覆盖
|
|
5
|
+
*/
|
|
6
|
+
// 封装全局弹窗拖拽指令 v-drag
|
|
7
|
+
function dialogMoveFn(_this) {
|
|
8
|
+
var dialogDom = _this.parentNode
|
|
9
|
+
dialogDom.style.top = parseFloat(dialogDom.style.top || '0') + _this.pageYc + 'px'
|
|
10
|
+
dialogDom.style.left = parseFloat(dialogDom.style.left || '0') + _this.pageXc + 'px'
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const dialogMove = {
|
|
14
|
+
install: function (Vue) {
|
|
15
|
+
Vue.directive('drag', {
|
|
16
|
+
update(el, binding) {
|
|
17
|
+
if (el.style.display === 'none') {
|
|
18
|
+
var dialogDom = el.querySelector('.el-dialog')
|
|
19
|
+
if (dialogDom) {
|
|
20
|
+
dialogDom.style.left = ''
|
|
21
|
+
dialogDom.style.top = ''
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
Vue.nextTick(function () {
|
|
25
|
+
var dialogHeader = el.querySelector('.el-dialog__header')
|
|
26
|
+
if (dialogHeader && !dialogHeader._hasMoveDir) {
|
|
27
|
+
var _this, pvrPageX, pvrPageY
|
|
28
|
+
dialogHeader._hasMoveDir = true
|
|
29
|
+
dialogHeader.style.cursor = 'move'
|
|
30
|
+
|
|
31
|
+
dialogHeader.addEventListener('mousedown', function (evt) {
|
|
32
|
+
var ev = evt || event
|
|
33
|
+
this.pageXc = this.pageYc = 0
|
|
34
|
+
_this = this
|
|
35
|
+
pvrPageX = ev.pageX
|
|
36
|
+
pvrPageY = ev.pageY
|
|
37
|
+
document.addEventListener('mousemove', mousemoveThisMove)
|
|
38
|
+
document.addEventListener('mouseup', mouseupThisMove)
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
var mousemoveThisMove = function (evt) {
|
|
42
|
+
var ev = evt || event
|
|
43
|
+
ev.stopPropagation()
|
|
44
|
+
ev.preventDefault()
|
|
45
|
+
if (
|
|
46
|
+
ev.clientX >= 0 &&
|
|
47
|
+
ev.clientY >= 0 &&
|
|
48
|
+
ev.clientX <= document.documentElement.clientWidth &&
|
|
49
|
+
ev.clientY <= document.documentElement.clientHeight
|
|
50
|
+
) {
|
|
51
|
+
_this.pageXc = ev.pageX - pvrPageX
|
|
52
|
+
_this.pageYc = ev.pageY - pvrPageY
|
|
53
|
+
if (_this.pageXc !== 0 || _this.pageYc !== 0) {
|
|
54
|
+
binding.value ? binding.value(_this, binding.arg) : dialogMoveFn(_this)
|
|
55
|
+
}
|
|
56
|
+
pvrPageX = ev.pageX
|
|
57
|
+
pvrPageY = ev.pageY
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var mouseupThisMove = function () {
|
|
62
|
+
document.removeEventListener('mousemove', mousemoveThisMove)
|
|
63
|
+
document.removeEventListener('mouseup', mouseupThisMove)
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export default dialogMove
|
|
@@ -117,7 +117,6 @@ HoverTooltip.install = (Vue) => {
|
|
|
117
117
|
el.$tipShow = () => tipShow(el, binding.arg)
|
|
118
118
|
el.$tipHide = () => tipHide(el)
|
|
119
119
|
el.addEventListener('mouseenter', () => {
|
|
120
|
-
console.log(getWidth(binding.value))
|
|
121
120
|
if (getWidth(binding.value) > (binding.arg || 98)) {
|
|
122
121
|
return el.$tipShow()
|
|
123
122
|
}
|
package/src/i18n.json
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
"筛选": {
|
|
3
3
|
"en": "Filter"
|
|
4
4
|
},
|
|
5
|
+
"初始化": {
|
|
6
|
+
"en": "Initialization"
|
|
7
|
+
},
|
|
8
|
+
"确认初始化吗?": {
|
|
9
|
+
"en": "Are you sure to initialize?"
|
|
10
|
+
},
|
|
11
|
+
"初始化后将全局生效!": {
|
|
12
|
+
"en": "After initialization, it will be global!"
|
|
13
|
+
},
|
|
5
14
|
"数据请求": {
|
|
6
15
|
"en": "Data request"
|
|
7
16
|
},
|
|
@@ -1880,4 +1889,4 @@
|
|
|
1880
1889
|
"请先勾选要删除的数据!": {
|
|
1881
1890
|
"en": "Please select the data to be deleted first!"
|
|
1882
1891
|
}
|
|
1883
|
-
}
|
|
1892
|
+
}
|