doway-coms 2.11.87 → 2.11.88
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,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
3
|
<vxe-modal
|
|
4
|
+
show-footer
|
|
4
5
|
ref="printModal"
|
|
5
6
|
show-zoom
|
|
6
7
|
append-to-body
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
wrap-class-name="full-modal"
|
|
18
19
|
@cancel="closeModal"
|
|
19
20
|
>
|
|
21
|
+
<template #default>
|
|
20
22
|
<iframe
|
|
21
23
|
name="printFrame"
|
|
22
24
|
id="printFrame"
|
|
@@ -28,15 +30,28 @@
|
|
|
28
30
|
:src="url"
|
|
29
31
|
>
|
|
30
32
|
</iframe>
|
|
33
|
+
</template>
|
|
34
|
+
<template #footer>
|
|
35
|
+
<div v-if="sendEmailInfo.show===true" class="email-controls">
|
|
36
|
+
<Checkbox v-model="sendEmailInfo.self">抄送自己</Checkbox>
|
|
37
|
+
<Input v-model="sendEmailInfo.to" class="email-input"/>
|
|
38
|
+
<Button :loading="sendEmailInfo.loading" type="primary" @click="sendEmail">发送电子邮件</Button>
|
|
39
|
+
</div>
|
|
40
|
+
</template>
|
|
31
41
|
</vxe-modal>
|
|
32
42
|
</div>
|
|
33
43
|
</template>
|
|
34
44
|
<script>
|
|
35
45
|
import {Modal as VxeModal} from 'vxe-table'
|
|
46
|
+
import { Checkbox,Input,Button } from 'ant-design-vue'
|
|
47
|
+
import request from '../../utils/request'
|
|
36
48
|
export default {
|
|
37
49
|
name: 'BasePrintPreview',
|
|
38
50
|
components:{
|
|
39
|
-
VxeModal
|
|
51
|
+
VxeModal,
|
|
52
|
+
Checkbox,
|
|
53
|
+
Input,
|
|
54
|
+
Button
|
|
40
55
|
},
|
|
41
56
|
props: {},
|
|
42
57
|
data() {
|
|
@@ -46,6 +61,14 @@ export default {
|
|
|
46
61
|
postData: '',
|
|
47
62
|
requestToken: '',
|
|
48
63
|
tempData: '',
|
|
64
|
+
sendEmailInfo:{
|
|
65
|
+
show:false,
|
|
66
|
+
to:null,
|
|
67
|
+
self:false,
|
|
68
|
+
cacheKey:null,
|
|
69
|
+
sendEmailUrl:null,
|
|
70
|
+
loading:false
|
|
71
|
+
}
|
|
49
72
|
}
|
|
50
73
|
},
|
|
51
74
|
methods: {
|
|
@@ -69,14 +92,37 @@ export default {
|
|
|
69
92
|
document.body.removeChild(formExport)
|
|
70
93
|
})
|
|
71
94
|
},
|
|
95
|
+
async sendEmail(){
|
|
96
|
+
this.sendEmailInfo.loading = true
|
|
72
97
|
|
|
73
|
-
|
|
98
|
+
try{
|
|
99
|
+
await request({
|
|
100
|
+
url: this.sendEmailInfo.sendEmailUrl,
|
|
101
|
+
method: 'post',
|
|
102
|
+
data: {to:this.sendEmailInfo.to,self:this.sendEmailInfo.self,cacheKey:this.sendEmailInfo.cacheKey}
|
|
103
|
+
})
|
|
104
|
+
this.$antsuccess('发送成功')
|
|
105
|
+
}finally{
|
|
106
|
+
this.sendEmailInfo.loading = false
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
showPreview(url, data, isReplace, method, modalInfo,contentInfo) {
|
|
74
110
|
// modalInfo = {type: '', info: {}}
|
|
75
111
|
this.$refs.printModal.maximize()
|
|
76
112
|
this.isShow = true
|
|
77
113
|
if (!modalInfo) {
|
|
78
114
|
modalInfo = null
|
|
79
115
|
}
|
|
116
|
+
|
|
117
|
+
if(contentInfo){
|
|
118
|
+
//构造是否发送电子邮件信息
|
|
119
|
+
this.sendEmailInfo.show = contentInfo.sendEmail
|
|
120
|
+
this.sendEmailInfo.to = contentInfo.emailTo
|
|
121
|
+
this.sendEmailInfo.self = contentInfo.emailSelf
|
|
122
|
+
this.sendEmailInfo.cacheKey = contentInfo.cacheKey
|
|
123
|
+
this.sendEmailInfo.sendEmailUrl = contentInfo.sendEmailUrl
|
|
124
|
+
}
|
|
125
|
+
|
|
80
126
|
if (method == 'post') {
|
|
81
127
|
this.isShow = true
|
|
82
128
|
this.$nextTick(() => {
|
|
@@ -121,6 +167,9 @@ export default {
|
|
|
121
167
|
} else { // 其它
|
|
122
168
|
this.url = url + '?token=' + this.$store.getters.token + '&ids=' + ids
|
|
123
169
|
}
|
|
170
|
+
if(this.sendEmailInfo.cacheKey){
|
|
171
|
+
this.url = this.url + '&cacheKey=' + this.sendEmailInfo.cacheKey
|
|
172
|
+
}
|
|
124
173
|
}
|
|
125
174
|
},
|
|
126
175
|
closeModal() {
|
|
@@ -147,4 +196,19 @@ export default {
|
|
|
147
196
|
flex: 1;
|
|
148
197
|
}
|
|
149
198
|
}
|
|
199
|
+
.email-controls {
|
|
200
|
+
right: 20px;
|
|
201
|
+
bottom: 20px;
|
|
202
|
+
display: flex;
|
|
203
|
+
align-items: center;
|
|
204
|
+
gap: 10px;
|
|
205
|
+
background: white;
|
|
206
|
+
padding: 10px;
|
|
207
|
+
border-radius: 4px;
|
|
208
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.email-input {
|
|
212
|
+
width: 200px;
|
|
213
|
+
}
|
|
150
214
|
</style>
|