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,6 @@
1
1
  {
2
2
  "name": "doway-coms",
3
- "version": "2.11.87",
3
+ "version": "2.11.88",
4
4
  "description": "doway组件库",
5
5
  "author": "dowaysoft",
6
6
  "main": "packages/index.js",
@@ -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
- showPreview(url, data, isReplace, method, modalInfo) {
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>