doway-coms 2.11.87 → 2.11.89

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.89",
4
4
  "description": "doway组件库",
5
5
  "author": "dowaysoft",
6
6
  "main": "packages/index.js",
@@ -348,6 +348,7 @@
348
348
  :allowAutoClear="scope.column.params.allowAutoClear"
349
349
  @preSearch="(searchInfo,repeatRowInfo,row,api) => preSearch(searchInfo, scope,null,api)"
350
350
  @selectChanged="(selectedRowInfo)=>pulldownSelectChanged(scope,selectedRowInfo)"
351
+ @inputBlurEvent="()=>pulldownInputBlurEvent(scope)"
351
352
  @confirmMultiSelect="
352
353
  (pulldownView, selectRows) =>
353
354
  pulldownMultiSelect(scope, pulldownView, selectRows)
@@ -3107,6 +3108,9 @@ export default {
3107
3108
  scope['pulldownSelectedRow'] = selectedRowInfo
3108
3109
  this.cellValueChange(scope)
3109
3110
  },
3111
+ pulldownInputBlurEvent(scope){
3112
+ this.$emit('inputBlurEvent', scope,this.dataName)
3113
+ },
3110
3114
  cellValueChange(scope, e) {
3111
3115
  console.debug(scope.column.field + 'value change')
3112
3116
  if (
@@ -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>
@@ -669,7 +669,9 @@ export default {
669
669
  }
670
670
  this.$emit('inputChangeEvent', null)
671
671
  },
672
- inputBlurEvent(event) {},
672
+ inputBlurEvent(event) {
673
+ this.$emit('inputBlurEvent', null)
674
+ },
673
675
  /**
674
676
  * 输入框获取焦点事件
675
677
  */