sale-client 4.2.21 → 4.2.22
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/build/dev-server.js +52 -32
- package/package.json +1 -1
- package/src/App.vue +1 -1
- package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
- package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
- package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ChangeMeter.vue +2 -0
- package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
- package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
- package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
- package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
- package/src/filiale/bayan/ChargeList.vue +1010 -1010
- package/src/filiale/bayan/StockListmain.vue +543 -543
- package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
- package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
- package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
- package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
- package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
- package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
- package/src/filiale/ronghao/CardService.js +2144 -2144
- package/src/filiale/ronghao/InsuranceManage.vue +58 -58
- package/src/filiale/ronghao/MachineChargeService.js +149 -149
- package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
- package/src/filiale/ronghao/PaymentCode.vue +174 -174
- package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
- package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
- package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
- package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
- package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
- package/src/filiale/ronghao/Upload.vue +654 -654
- package/src/filiale/ronghao/cardDown.vue +1141 -1141
- package/src/filiale/ronghao/changemeterOperate.vue +315 -315
- package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
- package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
- package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
- package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
- package/src/filiale/ronghao/machineDown.vue +1176 -1176
- package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
- package/src/filiale/ronghao/specificInformation.vue +537 -537
- package/src/filiale/yangchun/ChargeList.vue +954 -954
- package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
- package/src/filiale/zhongsheng/BlackListList.vue +293 -293
- package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
- package/src/main.js +1 -1
- package/src/plugins/CardService.js +2217 -2217
- package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
- package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
- package/.gradle/5.2.1/gc.properties +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/.gradle/vcs-1/gc.properties +0 -0
|
@@ -1,508 +1,508 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
|
|
3
|
-
<criteria-paged :model="model" v-ref:paged >
|
|
4
|
-
<p class="bg-info text-center" style="padding: 8px;font-size: 20px">短信信息
|
|
5
|
-
</p>
|
|
6
|
-
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
7
|
-
<div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
|
|
8
|
-
<div class="row">
|
|
9
|
-
<div class="form-group col-sm-3">
|
|
10
|
-
<label class="font_normal_body">短信类型</label>
|
|
11
|
-
<v-select id="f_send_type"
|
|
12
|
-
v-model="model.f_send_type"
|
|
13
|
-
placeholder='短信类型'
|
|
14
|
-
style="width: 60%"
|
|
15
|
-
:value.sync="model.f_send_type"
|
|
16
|
-
:options='$parent.$parent.getsendType'
|
|
17
|
-
condition= "f_send_type = '{}'"
|
|
18
|
-
close-on-select>
|
|
19
|
-
</v-select>
|
|
20
|
-
</div>
|
|
21
|
-
<div class="form-group col-sm-3">
|
|
22
|
-
<label class="font_normal_body">发送状态</label>
|
|
23
|
-
<v-select id="f_send"
|
|
24
|
-
v-model="model.f_send"
|
|
25
|
-
placeholder='发送状态'
|
|
26
|
-
style="width: 60%"
|
|
27
|
-
:value.sync="model.f_send"
|
|
28
|
-
:options='$parent.$parent.sendType'
|
|
29
|
-
condition= "f_send = '{}'"
|
|
30
|
-
close-on-select>
|
|
31
|
-
</v-select>
|
|
32
|
-
</div>
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<div class="span" style="float:right;">
|
|
36
|
-
<button class="button_search button_spacing width-60" @click="$parent.$parent.search()" v-el:cba>查询</button>
|
|
37
|
-
<button class="button_clear button_spacing width-60" title="权限:短信发送" v-show="$parent.$parent.smsMessaage.includes('短信发送')" @click="$parent.$parent.confirms()" v-el:cba>发送</button>
|
|
38
|
-
<button class="button_delete button_spacing width-60" title="权限:短信发送" v-show="$parent.$parent.smsMessaage.includes('短信发送')"@click="$parent.$parent.delete()" v-el:cba>删除</button>
|
|
39
|
-
<button v-show="$parent.$parent.alllist" class="button_clear button_spacing width-60" @click="$parent.$parent.retrun()" v-el:cba>返回</button>
|
|
40
|
-
<button class="button_export button_spacing" title="权限:短信导入" v-show="$parent.$parent.smsMessaage.includes('短信导入')" @click="$parent.$parent.importSMS()">导入</button>
|
|
41
|
-
<export-excel :data="$parent.$parent.getCondition" sql-name="getSendAll"
|
|
42
|
-
template-name="短信信息导出" sqlurl="api/af-revenue/logic/saleExport"
|
|
43
|
-
:field="$parent.$parent.getfield" :choose-col="true"></export-excel>
|
|
44
|
-
<!-- items: 'f_userinfo_id,f_user_name,f_user_phone,f_user_id, f_gas,f_amount,f_balance,f_arreamount,f_arrears_date,f_create_date,f_send_content,f_send,f_send_date, f_filiale,f_outlets',-->
|
|
45
|
-
<!-- orderitem: 'id',tablename: 't_sms',-->
|
|
46
|
-
<div
|
|
47
|
-
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
48
|
-
@click="$parent.$parent.hidden()" class="button_spacing" style="float: right">
|
|
49
|
-
</div>
|
|
50
|
-
</div>
|
|
51
|
-
</div>
|
|
52
|
-
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
53
|
-
<div class="form-group col-sm-3">
|
|
54
|
-
<label class="font_normal_body">评价级别</label>
|
|
55
|
-
<v-select id="f_reply_type"
|
|
56
|
-
v-model="model.f_reply_type"
|
|
57
|
-
placeholder='评价级别'
|
|
58
|
-
style="width: 60%"
|
|
59
|
-
:value.sync="model.f_reply_type"
|
|
60
|
-
:options='$parent.$parent.replyType'
|
|
61
|
-
condition= "f_reply_type = '{}'"
|
|
62
|
-
close-on-select>
|
|
63
|
-
</v-select>
|
|
64
|
-
</div>
|
|
65
|
-
<div class="form-group col-sm-3">
|
|
66
|
-
<label class="font_normal_body">用户编号</label>
|
|
67
|
-
<input type="text" class="form-control" v-model="model.code" placeholder='用户编号' v-filter v-figure_filter
|
|
68
|
-
condition="code = '{}'" v-next-el='yhxm' style="width: 60%"
|
|
69
|
-
:size="model.code ? model.f_userinfo_id.length : 4">
|
|
70
|
-
</div>
|
|
71
|
-
<div class="form-group col-sm-3">
|
|
72
|
-
<label class="font_normal_body">用户姓名</label>
|
|
73
|
-
<input type="text" class="form-control" v-model="model.f_user_name" placeholder='用户姓名'
|
|
74
|
-
condition="f_user_name = '{}'" v-next-el='yhxm' style="width: 60%"
|
|
75
|
-
:size="model.f_user_name ? model.f_user_name.length : 4">
|
|
76
|
-
</div>
|
|
77
|
-
<div class="form-group col-sm-3">
|
|
78
|
-
<label class="font_normal_body">用户电话</label>
|
|
79
|
-
<input type="text" class="form-control" v-model="model.f_user_phone" placeholder='用户电话'
|
|
80
|
-
condition="f_user_phone like '%{}%'" v-next-el='yhxm' style="width: 60%"
|
|
81
|
-
:size="model.f_user_phone ? model.f_user_phone.length : 4">
|
|
82
|
-
</div>
|
|
83
|
-
|
|
84
|
-
<div class="form-group col-sm-3">
|
|
85
|
-
<label class="font_normal_body">选择小区</label>
|
|
86
|
-
<v-select :value.sync="model.f_residential_area" :value-single="true"
|
|
87
|
-
class="select_list select"
|
|
88
|
-
style="width: 60%"
|
|
89
|
-
:options='$parent.$parent.residentialArea' placeholder='选择小区'
|
|
90
|
-
close-on-select search="true">
|
|
91
|
-
</v-select>
|
|
92
|
-
</div>
|
|
93
|
-
<div class="form-group col-sm-3" title="短信生成开始时间">
|
|
94
|
-
<label class="font_normal_body">开始日期</label>
|
|
95
|
-
<datepicker id="f_create_start_date" placeholder="开始日期"
|
|
96
|
-
v-model="model.f_create_start_date"
|
|
97
|
-
:value.sync="model.f_create_start_date"
|
|
98
|
-
:disabled-days-of-Week="[]"
|
|
99
|
-
style="width: 60%"
|
|
100
|
-
condition="convert(varchar(10),f_sendtime,120) >= '{}'"
|
|
101
|
-
:format="'yyyy-MM-dd'"
|
|
102
|
-
:show-reset-button="reset">
|
|
103
|
-
</datepicker>
|
|
104
|
-
</div>
|
|
105
|
-
<div class="form-group col-sm-3" title="短信生成结束时间">
|
|
106
|
-
<label class="font_normal_body">结束日期</label>
|
|
107
|
-
<datepicker id="f_create_end_date" placeholder="结束日期"
|
|
108
|
-
v-model="model.f_create_end_date"
|
|
109
|
-
:value.sync="model.f_create_end_date"
|
|
110
|
-
:disabled-days-of-Week="[]"
|
|
111
|
-
style="width: 60%"
|
|
112
|
-
condition="convert(varchar(10),f_sendtime,120) <= '{}'"
|
|
113
|
-
:format="'yyyy-MM-dd'"
|
|
114
|
-
:show-reset-button="reset">
|
|
115
|
-
</datepicker>
|
|
116
|
-
</div>
|
|
117
|
-
</div>
|
|
118
|
-
</div>
|
|
119
|
-
</criteria>
|
|
120
|
-
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
121
|
-
<template partial='head'>
|
|
122
|
-
<tr>
|
|
123
|
-
<th>
|
|
124
|
-
<input type="checkbox" @click="$parent.$parent.$parent.isAll(model.pageIndex)">
|
|
125
|
-
</th>
|
|
126
|
-
<th><nobr>序号</nobr></th>
|
|
127
|
-
<th><nobr>用户信息</nobr></th>
|
|
128
|
-
<th><nobr>用户编号</nobr></th>
|
|
129
|
-
<th><nobr>电话号码</nobr></th>
|
|
130
|
-
<th><nobr>短信类型</nobr></th>
|
|
131
|
-
<th><nobr>短信内容</nobr></th>
|
|
132
|
-
<th><nobr>发送状态</nobr></th>
|
|
133
|
-
<th><nobr>发送时间</nobr></th>
|
|
134
|
-
<th><nobr>状态报告</nobr></th>
|
|
135
|
-
<th><nobr>评价级别</nobr></th>
|
|
136
|
-
<th><nobr>回执状态</nobr></th>
|
|
137
|
-
<th><nobr>评价内容</nobr></th>
|
|
138
|
-
<th><nobr>操作人</nobr></th>
|
|
139
|
-
<th><nobr>操作</nobr></th>
|
|
140
|
-
</tr>
|
|
141
|
-
</template>
|
|
142
|
-
<template partial='body'>
|
|
143
|
-
<td style="text-align:center">
|
|
144
|
-
<input type="checkbox" v-model="$parent.$parent.$parent.ids"
|
|
145
|
-
:value="row.id">
|
|
146
|
-
</td>
|
|
147
|
-
<td style="text-align:center"><nobr>{{$index+1}}</nobr></td>
|
|
148
|
-
<td style="text-align:center"><nobr>{{row.f_userinfo_id}}|{{row.f_user_name}}|{{row.f_user_phone}}</nobr></td>
|
|
149
|
-
<td style="text-align:center"><nobr>{{row.code}}</nobr></td>
|
|
150
|
-
<td style="text-align:center"><nobr>{{row.f_phone}}</nobr></td>
|
|
151
|
-
<td style="text-align:center"><nobr>{{row.f_send_type}}</nobr></td>
|
|
152
|
-
<td style="text-align:center;width: 20px" :title="row.f_content"><nobr>{{row.f_content.substr(0,20)}}</nobr></td>
|
|
153
|
-
<td style="text-align:center"><nobr>{{row.f_send}}</nobr></td>
|
|
154
|
-
<td style="text-align:center"><nobr>{{row.f_sendtime}}</nobr></td>
|
|
155
|
-
<td style="text-align:center"><nobr>{{row.f_statedetail}}</nobr></td>
|
|
156
|
-
<td style="text-align:center"><nobr>{{row.f_reply_type}}</nobr></td>
|
|
157
|
-
<td style="text-align:center"><nobr>{{row.f_result_msg}}</nobr></td>
|
|
158
|
-
<td style="text-align:center"><nobr>{{row.f_reply_content}}</nobr></td>
|
|
159
|
-
<td style="text-align:center"><nobr>{{row.f_operator}}</nobr>
|
|
160
|
-
</td>
|
|
161
|
-
<td :class="'back-blue'" style="text-align: center;" >
|
|
162
|
-
<div v-if="row.f_state == '未发'">
|
|
163
|
-
<button class="button_clear button_spacing width-50" @click="$parent.$parent.$parent.amendment(row)">修正</button>
|
|
164
|
-
<button class="button_delete button_spacing width-50" @click="$parent.$parent.$parent.delete2(row)">删除</button>
|
|
165
|
-
</div>
|
|
166
|
-
</td>
|
|
167
|
-
</template>
|
|
168
|
-
</data-grid>
|
|
169
|
-
</criteria-paged>
|
|
170
|
-
|
|
171
|
-
<modal :show.sync="arrshow" v-ref:modal backdrop="false">
|
|
172
|
-
<header slot="modal-header" class="modal-header">
|
|
173
|
-
<h4 class="modal-title">修正</h4>
|
|
174
|
-
</header>
|
|
175
|
-
<article slot="modal-body" class="modal-body">
|
|
176
|
-
<div class="form-group">
|
|
177
|
-
<input type="text" class="input_search" v-model="amendcontent" :value.sync="amendcontent"
|
|
178
|
-
placeholder='短信内容'>
|
|
179
|
-
</div>
|
|
180
|
-
</article>
|
|
181
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
182
|
-
<button v-show="arrshow" type="button" class="btn btn-default" @click='close'>取消</button>
|
|
183
|
-
<button v-show="arrshow" type="button" class="btn btn-success" @click='create(row)'>确认</button>
|
|
184
|
-
</footer>
|
|
185
|
-
</modal>
|
|
186
|
-
<modal :show.sync="showFile" v-ref:modal backdrop="true">
|
|
187
|
-
<header slot="modal-header" class="modal-header">
|
|
188
|
-
<button type="button" class="close" @click="closeFile"><span>×</span></button>
|
|
189
|
-
<h4 class="modal-title">选择文件</h4>
|
|
190
|
-
</header>
|
|
191
|
-
<article slot="modal-body" class="modal-body">
|
|
192
|
-
<div class="form-group">
|
|
193
|
-
<file-upload class="my-file-uploader" name="importSms" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
|
|
194
|
-
</div>
|
|
195
|
-
</article>
|
|
196
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
197
|
-
<div class="progress">
|
|
198
|
-
<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" :style="{width:progressBar}">
|
|
199
|
-
{{progressBar}}
|
|
200
|
-
</div>
|
|
201
|
-
</div>
|
|
202
|
-
</footer>
|
|
203
|
-
</modal>
|
|
204
|
-
</template>
|
|
205
|
-
|
|
206
|
-
<script>
|
|
207
|
-
/**
|
|
208
|
-
*阶梯气价查询列表
|
|
209
|
-
*/
|
|
210
|
-
import { PagedList, HttpResetClass } from 'vue-client'
|
|
211
|
-
import Vue from 'vue'
|
|
212
|
-
import axios from 'axios'
|
|
213
|
-
export default {
|
|
214
|
-
data () {
|
|
215
|
-
return {
|
|
216
|
-
criteriaShow: false,
|
|
217
|
-
model: new PagedList('api/af-revenue/sql/getSendAll', 20),
|
|
218
|
-
f_send: '未发送',
|
|
219
|
-
downDate: this.$login.toStandardDateString(),
|
|
220
|
-
ids: [],
|
|
221
|
-
show: false,
|
|
222
|
-
pages: [],
|
|
223
|
-
arrshow: false,
|
|
224
|
-
alllist: false,
|
|
225
|
-
// 修正的短信内容
|
|
226
|
-
amendcontent: '',
|
|
227
|
-
isFirst: true,
|
|
228
|
-
amendid: '',
|
|
229
|
-
// 小区
|
|
230
|
-
residentialArea: [],
|
|
231
|
-
sendType: [{label: '全部', value: ''}, ...this.$appdata.getParam('发送状态')],
|
|
232
|
-
getsendType: this.$appdata.getParam('短信类型'),
|
|
233
|
-
replyType: this.$appdata.getParam('评价级别'),
|
|
234
|
-
bodydata: ['f_user_name', 'code', 'f_phone', 'f_send_type', 'f_content', 'f_send', 'f_sendtime', 'f_statedetail', 'f_reply_type', 'f_reply_content', 'f_reply_content'],
|
|
235
|
-
header: ['用户姓名', '用户编号', '电话号码', '短信类型', '短信内容', '发送状态', '发送时间', '状态报告', '评价级别', '回执状态', '评价内容'],
|
|
236
|
-
showFile: false,
|
|
237
|
-
progressBar:'0%'
|
|
238
|
-
}
|
|
239
|
-
},
|
|
240
|
-
props: {
|
|
241
|
-
condition: {
|
|
242
|
-
type: String
|
|
243
|
-
}
|
|
244
|
-
},
|
|
245
|
-
computed: {
|
|
246
|
-
smsMessaage () {
|
|
247
|
-
return this.$login.r ? this.$login.r : []
|
|
248
|
-
},
|
|
249
|
-
getCondition () {
|
|
250
|
-
return {condition: this.$refs.paged.$refs.cri.condition}
|
|
251
|
-
},
|
|
252
|
-
getfield () {
|
|
253
|
-
let data = {}
|
|
254
|
-
this.bodydata.forEach((value, index) => {
|
|
255
|
-
data[this.bodydata[index]] = this.header[index]
|
|
256
|
-
})
|
|
257
|
-
return data
|
|
258
|
-
console.log('field' + data)
|
|
259
|
-
}
|
|
260
|
-
},
|
|
261
|
-
ready () {
|
|
262
|
-
// this.getaddress()
|
|
263
|
-
},
|
|
264
|
-
methods: {
|
|
265
|
-
importSMS () {
|
|
266
|
-
this.showFile = true
|
|
267
|
-
},
|
|
268
|
-
// 关闭文件上传对话框
|
|
269
|
-
closeFile () {
|
|
270
|
-
this.showFile = false
|
|
271
|
-
// 将选的文件清空
|
|
272
|
-
this.$refs.file.$el.querySelector('input').value = ''
|
|
273
|
-
},
|
|
274
|
-
hidden () {
|
|
275
|
-
this.criteriaShow = !this.criteriaShow
|
|
276
|
-
},
|
|
277
|
-
async getaddress () {
|
|
278
|
-
console.log('开始获取小区')
|
|
279
|
-
let HttpReset = new HttpResetClass()
|
|
280
|
-
var data = await HttpReset.load('POST', 'api/af-revenue/sql/address_getarealist', {
|
|
281
|
-
data: {
|
|
282
|
-
condition: '1=1'
|
|
283
|
-
}
|
|
284
|
-
}, {resolveMsg: null, rejectMsg: '获取小区失败!'})
|
|
285
|
-
console.log('小区', data)
|
|
286
|
-
let house = []
|
|
287
|
-
for (let row of data.data) {
|
|
288
|
-
console.log('开始保存小区')
|
|
289
|
-
house.push({label: row.f_residential_area, value: row.f_residential_area})
|
|
290
|
-
}
|
|
291
|
-
this.residentialArea = house
|
|
292
|
-
},
|
|
293
|
-
|
|
294
|
-
// 把数据库查询数据转换为下拉数据
|
|
295
|
-
// calculate(rows){
|
|
296
|
-
// let data = []
|
|
297
|
-
// rows.forEach((row, n) => {
|
|
298
|
-
// data[n] = {label: row.f_residential_area, value: row.f_residential_area}
|
|
299
|
-
// })
|
|
300
|
-
// return data
|
|
301
|
-
// },
|
|
302
|
-
amendment (row) {
|
|
303
|
-
this.arrshow = true
|
|
304
|
-
this.amendid = row.id
|
|
305
|
-
},
|
|
306
|
-
delete () {
|
|
307
|
-
if (this.ids.length !== 0) {
|
|
308
|
-
this.$refs.paged.$refs.cri.condition = this.$refs.paged.$refs.cri.condition + 'and id in (' + this.ids + ')'
|
|
309
|
-
}
|
|
310
|
-
this.$showMessage('删除后不可恢复,确认删除?', ['confirm', 'cancel']).then((res) => {
|
|
311
|
-
if (res === 'confirm') {
|
|
312
|
-
this.$LogicService.deletMessage(this.$refs.paged.$refs.cri.condition).then((res) => {
|
|
313
|
-
this.$dispatch('success')
|
|
314
|
-
}).catch((error) => {
|
|
315
|
-
this.$dispatch('error', error)
|
|
316
|
-
})
|
|
317
|
-
}
|
|
318
|
-
this.$refs.paged.$refs.cri.search()
|
|
319
|
-
})
|
|
320
|
-
},
|
|
321
|
-
delete2 (row) {
|
|
322
|
-
let condition = '1=1' + ' and id = ' + row.id
|
|
323
|
-
this.$showMessage('删除后不可恢复,确认删除?', ['confirm', 'cancel']).then((res) => {
|
|
324
|
-
console.log('删除2方法')
|
|
325
|
-
if (res === 'confirm') {
|
|
326
|
-
this.$LogicService.deletMessage(condition).then((res) => {
|
|
327
|
-
this.$dispatch('success')
|
|
328
|
-
}).catch((error) => {
|
|
329
|
-
this.$dispatch('error', error)
|
|
330
|
-
})
|
|
331
|
-
}
|
|
332
|
-
this.$refs.paged.$refs.cri.search()
|
|
333
|
-
})
|
|
334
|
-
},
|
|
335
|
-
retrun () {
|
|
336
|
-
this.alllist = false
|
|
337
|
-
this.$dispatch('allchange2')
|
|
338
|
-
},
|
|
339
|
-
close () {
|
|
340
|
-
this.arrshow = false
|
|
341
|
-
},
|
|
342
|
-
create () {
|
|
343
|
-
if (this.amendcontent === '' || this.amendcontent === null) {
|
|
344
|
-
this.$showAlert('短信内容不能为空', 'warning', 2000)
|
|
345
|
-
return
|
|
346
|
-
}
|
|
347
|
-
this.arrshow = false
|
|
348
|
-
// 组织数据
|
|
349
|
-
let content = {
|
|
350
|
-
// 批量减免金额
|
|
351
|
-
f_content: this.amendcontent,
|
|
352
|
-
f_operator: Vue.$login.f.name,
|
|
353
|
-
f_operatorid: Vue.$login.f.id,
|
|
354
|
-
f_orgid: Vue.$login.f.orgid,
|
|
355
|
-
f_orgname: Vue.$login.f.orgs,
|
|
356
|
-
f_depid: Vue.$login.f.depids,
|
|
357
|
-
f_depname: Vue.$login.f.deps,
|
|
358
|
-
id: this.amendid
|
|
359
|
-
|
|
360
|
-
}
|
|
361
|
-
console.log('数据id', content.id)
|
|
362
|
-
this.$resetpost('api/af-revenue/logic/amendcontent', content, {
|
|
363
|
-
resolveMsg: null,
|
|
364
|
-
rejectMsg: '修正短信内容出错!!!'
|
|
365
|
-
}).then((res) => {
|
|
366
|
-
this.search()
|
|
367
|
-
})
|
|
368
|
-
},
|
|
369
|
-
confirms () {
|
|
370
|
-
let data = {
|
|
371
|
-
condition: this.$refs.paged.$refs.cri.condition
|
|
372
|
-
|
|
373
|
-
}
|
|
374
|
-
console.log('this.ids:', this.ids)
|
|
375
|
-
console.log('-----------------------------' + data.condition)
|
|
376
|
-
if (this.ids.length !== 0) {
|
|
377
|
-
data.condition = data.condition + 'and id in (' + this.ids + ')'
|
|
378
|
-
|
|
379
|
-
this.$showMessage(`您本次发送短信的条数为${this.ids.length},是否确认下发?`, ['confirm', 'cancel']).then((res) => {
|
|
380
|
-
if (res === 'confirm') {
|
|
381
|
-
this.ids = []
|
|
382
|
-
console.log('data1:', data)
|
|
383
|
-
this.$LogicService.sendMessage(data).then((res) => {
|
|
384
|
-
this.$dispatch('success')
|
|
385
|
-
this.$refs.paged.$refs.cri.search()
|
|
386
|
-
}).catch((error) => {
|
|
387
|
-
this.$dispatch('error', error)
|
|
388
|
-
this.$refs.paged.$refs.cri.search()
|
|
389
|
-
})
|
|
390
|
-
}
|
|
391
|
-
})
|
|
392
|
-
} else {
|
|
393
|
-
this.$showMessage('是否确认全部发送?', ['confirm', 'cancel']).then((res) => {
|
|
394
|
-
if (res === 'confirm') {
|
|
395
|
-
this.ids = []
|
|
396
|
-
console.log('data2:', data)
|
|
397
|
-
this.$LogicService.sendMessage(data).then((res) => {
|
|
398
|
-
this.$dispatch('success')
|
|
399
|
-
this.$refs.paged.$refs.cri.search()
|
|
400
|
-
}).catch((error) => {
|
|
401
|
-
this.$dispatch('error', error)
|
|
402
|
-
this.$refs.paged.$refs.cri.search()
|
|
403
|
-
})
|
|
404
|
-
}
|
|
405
|
-
})
|
|
406
|
-
}
|
|
407
|
-
},
|
|
408
|
-
search () {
|
|
409
|
-
this.$refs.paged.$refs.cri.search()
|
|
410
|
-
if (this.isFirst) {
|
|
411
|
-
this.isFirst = false
|
|
412
|
-
} else {
|
|
413
|
-
this.$dispatch('allchange')
|
|
414
|
-
this.alllist = true
|
|
415
|
-
}
|
|
416
|
-
},
|
|
417
|
-
selfSearch (args) {
|
|
418
|
-
// this.condition = ' and convert(varchar(10),f_create_date,120) = ' + "'" + Util.toStandardDateString() + "'"
|
|
419
|
-
// if (!Util.f.parent.parent.name.includes('统一资源管理')) {
|
|
420
|
-
// args.condition = `${args.condition} and f_orgid = '${Vue.$login.f.orgid}'`
|
|
421
|
-
// }
|
|
422
|
-
// args.condition += this.condition
|
|
423
|
-
args.condition += ` and f_orgid='${this.$login.f.orgid}' and f_send_type ='账单推送'`
|
|
424
|
-
this.model.search(args.condition, this.model)
|
|
425
|
-
this.ids = []
|
|
426
|
-
},
|
|
427
|
-
isAll (page) {
|
|
428
|
-
if (this.pages.includes(page)) { // 已添加,取消动作
|
|
429
|
-
// 从ids中删除本页所有数据的ids
|
|
430
|
-
this.addOrRemove(false)
|
|
431
|
-
this.pages = this.pages.filter((item) => {
|
|
432
|
-
return item !== page
|
|
433
|
-
})
|
|
434
|
-
} else { // 未添加
|
|
435
|
-
this.pages.push(page) // 添加id,添加动作
|
|
436
|
-
this.addOrRemove(true)
|
|
437
|
-
}
|
|
438
|
-
},
|
|
439
|
-
addOrRemove (is) {
|
|
440
|
-
let that = this
|
|
441
|
-
if (is) { // 添加本页所有数据到ids中
|
|
442
|
-
this.ids = []
|
|
443
|
-
this.model.rows.forEach((row) => {
|
|
444
|
-
if (!that.ids.includes(row.id)) {
|
|
445
|
-
that.ids.push(row.id)
|
|
446
|
-
}
|
|
447
|
-
})
|
|
448
|
-
} else { // 从ids中取消所有的数据
|
|
449
|
-
this.ids = []
|
|
450
|
-
this.model.rows.forEach((row) => {
|
|
451
|
-
that.ids = that.ids.filter((item) => {
|
|
452
|
-
return item !== row.id
|
|
453
|
-
})
|
|
454
|
-
})
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
},
|
|
458
|
-
events: {
|
|
459
|
-
'onFileProgress'(e){
|
|
460
|
-
this.progressBar = e.percent+'%'
|
|
461
|
-
if(this.progressBar=='100%'){
|
|
462
|
-
this.$showAlert(`文件已导入成功,数据正在处理请稍后`, 'warning')
|
|
463
|
-
}
|
|
464
|
-
},
|
|
465
|
-
'onFileUpload': async function (file, res) {
|
|
466
|
-
console.log('this.$login.r', this.$login.f)
|
|
467
|
-
let data = {
|
|
468
|
-
filepath: res.f_downloadpath,
|
|
469
|
-
f_orgid: this.$login.f.orgid,
|
|
470
|
-
f_orgname: this.$login.f.f_orgs,
|
|
471
|
-
f_operatorid: this.$login.f.id,
|
|
472
|
-
f_operator: this.$login.f.name
|
|
473
|
-
}
|
|
474
|
-
console.log('filepath=' + JSON.stringify(data))
|
|
475
|
-
await axios.post('api/af-revenue/logic/importSms',
|
|
476
|
-
{data: data},
|
|
477
|
-
// {onUploadProgress: (progressEvent)=> {
|
|
478
|
-
// var percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)
|
|
479
|
-
// this.progressBar = percentCompleted+'%'
|
|
480
|
-
// }}
|
|
481
|
-
).then((res)=>{
|
|
482
|
-
debugger
|
|
483
|
-
if (res.data.success == 'success') {
|
|
484
|
-
|
|
485
|
-
// this.$showAlert(`导入成功信息:${res.data.allSms}条,导入失败:${res.data.errorSms}条`, ['confirm', 'cancel'])
|
|
486
|
-
this.$showMessage(`导入成功信息:${res.data.allSms}条,导入失败:${res.data.errorSms}条`, ['confirm'],null,'success').then((res) => {
|
|
487
|
-
if (res === 'confirm') {
|
|
488
|
-
// 关闭上传框
|
|
489
|
-
this.closeFile()
|
|
490
|
-
this.progressBar='0%'
|
|
491
|
-
this.$refs.paged.$refs.cri.search()
|
|
492
|
-
}
|
|
493
|
-
})
|
|
494
|
-
this.$closeAlert()
|
|
495
|
-
}
|
|
496
|
-
})
|
|
497
|
-
},
|
|
498
|
-
'onFileError' (error) {
|
|
499
|
-
this.$showAlert(error, 'warning', 2000)
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
</script>
|
|
504
|
-
<style>
|
|
505
|
-
#tooltip {
|
|
506
|
-
height: auto;
|
|
507
|
-
}
|
|
508
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
<criteria-paged :model="model" v-ref:paged >
|
|
4
|
+
<p class="bg-info text-center" style="padding: 8px;font-size: 20px">短信信息
|
|
5
|
+
</p>
|
|
6
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
7
|
+
<div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
|
|
8
|
+
<div class="row">
|
|
9
|
+
<div class="form-group col-sm-3">
|
|
10
|
+
<label class="font_normal_body">短信类型</label>
|
|
11
|
+
<v-select id="f_send_type"
|
|
12
|
+
v-model="model.f_send_type"
|
|
13
|
+
placeholder='短信类型'
|
|
14
|
+
style="width: 60%"
|
|
15
|
+
:value.sync="model.f_send_type"
|
|
16
|
+
:options='$parent.$parent.getsendType'
|
|
17
|
+
condition= "f_send_type = '{}'"
|
|
18
|
+
close-on-select>
|
|
19
|
+
</v-select>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="form-group col-sm-3">
|
|
22
|
+
<label class="font_normal_body">发送状态</label>
|
|
23
|
+
<v-select id="f_send"
|
|
24
|
+
v-model="model.f_send"
|
|
25
|
+
placeholder='发送状态'
|
|
26
|
+
style="width: 60%"
|
|
27
|
+
:value.sync="model.f_send"
|
|
28
|
+
:options='$parent.$parent.sendType'
|
|
29
|
+
condition= "f_send = '{}'"
|
|
30
|
+
close-on-select>
|
|
31
|
+
</v-select>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
<div class="span" style="float:right;">
|
|
36
|
+
<button class="button_search button_spacing width-60" @click="$parent.$parent.search()" v-el:cba>查询</button>
|
|
37
|
+
<button class="button_clear button_spacing width-60" title="权限:短信发送" v-show="$parent.$parent.smsMessaage.includes('短信发送')" @click="$parent.$parent.confirms()" v-el:cba>发送</button>
|
|
38
|
+
<button class="button_delete button_spacing width-60" title="权限:短信发送" v-show="$parent.$parent.smsMessaage.includes('短信发送')"@click="$parent.$parent.delete()" v-el:cba>删除</button>
|
|
39
|
+
<button v-show="$parent.$parent.alllist" class="button_clear button_spacing width-60" @click="$parent.$parent.retrun()" v-el:cba>返回</button>
|
|
40
|
+
<button class="button_export button_spacing" title="权限:短信导入" v-show="$parent.$parent.smsMessaage.includes('短信导入')" @click="$parent.$parent.importSMS()">导入</button>
|
|
41
|
+
<export-excel :data="$parent.$parent.getCondition" sql-name="getSendAll"
|
|
42
|
+
template-name="短信信息导出" sqlurl="api/af-revenue/logic/saleExport"
|
|
43
|
+
:field="$parent.$parent.getfield" :choose-col="true"></export-excel>
|
|
44
|
+
<!-- items: 'f_userinfo_id,f_user_name,f_user_phone,f_user_id, f_gas,f_amount,f_balance,f_arreamount,f_arrears_date,f_create_date,f_send_content,f_send,f_send_date, f_filiale,f_outlets',-->
|
|
45
|
+
<!-- orderitem: 'id',tablename: 't_sms',-->
|
|
46
|
+
<div
|
|
47
|
+
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
48
|
+
@click="$parent.$parent.hidden()" class="button_spacing" style="float: right">
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
53
|
+
<div class="form-group col-sm-3">
|
|
54
|
+
<label class="font_normal_body">评价级别</label>
|
|
55
|
+
<v-select id="f_reply_type"
|
|
56
|
+
v-model="model.f_reply_type"
|
|
57
|
+
placeholder='评价级别'
|
|
58
|
+
style="width: 60%"
|
|
59
|
+
:value.sync="model.f_reply_type"
|
|
60
|
+
:options='$parent.$parent.replyType'
|
|
61
|
+
condition= "f_reply_type = '{}'"
|
|
62
|
+
close-on-select>
|
|
63
|
+
</v-select>
|
|
64
|
+
</div>
|
|
65
|
+
<div class="form-group col-sm-3">
|
|
66
|
+
<label class="font_normal_body">用户编号</label>
|
|
67
|
+
<input type="text" class="form-control" v-model="model.code" placeholder='用户编号' v-filter v-figure_filter
|
|
68
|
+
condition="code = '{}'" v-next-el='yhxm' style="width: 60%"
|
|
69
|
+
:size="model.code ? model.f_userinfo_id.length : 4">
|
|
70
|
+
</div>
|
|
71
|
+
<div class="form-group col-sm-3">
|
|
72
|
+
<label class="font_normal_body">用户姓名</label>
|
|
73
|
+
<input type="text" class="form-control" v-model="model.f_user_name" placeholder='用户姓名'
|
|
74
|
+
condition="f_user_name = '{}'" v-next-el='yhxm' style="width: 60%"
|
|
75
|
+
:size="model.f_user_name ? model.f_user_name.length : 4">
|
|
76
|
+
</div>
|
|
77
|
+
<div class="form-group col-sm-3">
|
|
78
|
+
<label class="font_normal_body">用户电话</label>
|
|
79
|
+
<input type="text" class="form-control" v-model="model.f_user_phone" placeholder='用户电话'
|
|
80
|
+
condition="f_user_phone like '%{}%'" v-next-el='yhxm' style="width: 60%"
|
|
81
|
+
:size="model.f_user_phone ? model.f_user_phone.length : 4">
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<div class="form-group col-sm-3">
|
|
85
|
+
<label class="font_normal_body">选择小区</label>
|
|
86
|
+
<v-select :value.sync="model.f_residential_area" :value-single="true"
|
|
87
|
+
class="select_list select"
|
|
88
|
+
style="width: 60%"
|
|
89
|
+
:options='$parent.$parent.residentialArea' placeholder='选择小区'
|
|
90
|
+
close-on-select search="true">
|
|
91
|
+
</v-select>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="form-group col-sm-3" title="短信生成开始时间">
|
|
94
|
+
<label class="font_normal_body">开始日期</label>
|
|
95
|
+
<datepicker id="f_create_start_date" placeholder="开始日期"
|
|
96
|
+
v-model="model.f_create_start_date"
|
|
97
|
+
:value.sync="model.f_create_start_date"
|
|
98
|
+
:disabled-days-of-Week="[]"
|
|
99
|
+
style="width: 60%"
|
|
100
|
+
condition="convert(varchar(10),f_sendtime,120) >= '{}'"
|
|
101
|
+
:format="'yyyy-MM-dd'"
|
|
102
|
+
:show-reset-button="reset">
|
|
103
|
+
</datepicker>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="form-group col-sm-3" title="短信生成结束时间">
|
|
106
|
+
<label class="font_normal_body">结束日期</label>
|
|
107
|
+
<datepicker id="f_create_end_date" placeholder="结束日期"
|
|
108
|
+
v-model="model.f_create_end_date"
|
|
109
|
+
:value.sync="model.f_create_end_date"
|
|
110
|
+
:disabled-days-of-Week="[]"
|
|
111
|
+
style="width: 60%"
|
|
112
|
+
condition="convert(varchar(10),f_sendtime,120) <= '{}'"
|
|
113
|
+
:format="'yyyy-MM-dd'"
|
|
114
|
+
:show-reset-button="reset">
|
|
115
|
+
</datepicker>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
</criteria>
|
|
120
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
121
|
+
<template partial='head'>
|
|
122
|
+
<tr>
|
|
123
|
+
<th>
|
|
124
|
+
<input type="checkbox" @click="$parent.$parent.$parent.isAll(model.pageIndex)">
|
|
125
|
+
</th>
|
|
126
|
+
<th><nobr>序号</nobr></th>
|
|
127
|
+
<th><nobr>用户信息</nobr></th>
|
|
128
|
+
<th><nobr>用户编号</nobr></th>
|
|
129
|
+
<th><nobr>电话号码</nobr></th>
|
|
130
|
+
<th><nobr>短信类型</nobr></th>
|
|
131
|
+
<th><nobr>短信内容</nobr></th>
|
|
132
|
+
<th><nobr>发送状态</nobr></th>
|
|
133
|
+
<th><nobr>发送时间</nobr></th>
|
|
134
|
+
<th><nobr>状态报告</nobr></th>
|
|
135
|
+
<th><nobr>评价级别</nobr></th>
|
|
136
|
+
<th><nobr>回执状态</nobr></th>
|
|
137
|
+
<th><nobr>评价内容</nobr></th>
|
|
138
|
+
<th><nobr>操作人</nobr></th>
|
|
139
|
+
<th><nobr>操作</nobr></th>
|
|
140
|
+
</tr>
|
|
141
|
+
</template>
|
|
142
|
+
<template partial='body'>
|
|
143
|
+
<td style="text-align:center">
|
|
144
|
+
<input type="checkbox" v-model="$parent.$parent.$parent.ids"
|
|
145
|
+
:value="row.id">
|
|
146
|
+
</td>
|
|
147
|
+
<td style="text-align:center"><nobr>{{$index+1}}</nobr></td>
|
|
148
|
+
<td style="text-align:center"><nobr>{{row.f_userinfo_id}}|{{row.f_user_name}}|{{row.f_user_phone}}</nobr></td>
|
|
149
|
+
<td style="text-align:center"><nobr>{{row.code}}</nobr></td>
|
|
150
|
+
<td style="text-align:center"><nobr>{{row.f_phone}}</nobr></td>
|
|
151
|
+
<td style="text-align:center"><nobr>{{row.f_send_type}}</nobr></td>
|
|
152
|
+
<td style="text-align:center;width: 20px" :title="row.f_content"><nobr>{{row.f_content.substr(0,20)}}</nobr></td>
|
|
153
|
+
<td style="text-align:center"><nobr>{{row.f_send}}</nobr></td>
|
|
154
|
+
<td style="text-align:center"><nobr>{{row.f_sendtime}}</nobr></td>
|
|
155
|
+
<td style="text-align:center"><nobr>{{row.f_statedetail}}</nobr></td>
|
|
156
|
+
<td style="text-align:center"><nobr>{{row.f_reply_type}}</nobr></td>
|
|
157
|
+
<td style="text-align:center"><nobr>{{row.f_result_msg}}</nobr></td>
|
|
158
|
+
<td style="text-align:center"><nobr>{{row.f_reply_content}}</nobr></td>
|
|
159
|
+
<td style="text-align:center"><nobr>{{row.f_operator}}</nobr>
|
|
160
|
+
</td>
|
|
161
|
+
<td :class="'back-blue'" style="text-align: center;" >
|
|
162
|
+
<div v-if="row.f_state == '未发'">
|
|
163
|
+
<button class="button_clear button_spacing width-50" @click="$parent.$parent.$parent.amendment(row)">修正</button>
|
|
164
|
+
<button class="button_delete button_spacing width-50" @click="$parent.$parent.$parent.delete2(row)">删除</button>
|
|
165
|
+
</div>
|
|
166
|
+
</td>
|
|
167
|
+
</template>
|
|
168
|
+
</data-grid>
|
|
169
|
+
</criteria-paged>
|
|
170
|
+
|
|
171
|
+
<modal :show.sync="arrshow" v-ref:modal backdrop="false">
|
|
172
|
+
<header slot="modal-header" class="modal-header">
|
|
173
|
+
<h4 class="modal-title">修正</h4>
|
|
174
|
+
</header>
|
|
175
|
+
<article slot="modal-body" class="modal-body">
|
|
176
|
+
<div class="form-group">
|
|
177
|
+
<input type="text" class="input_search" v-model="amendcontent" :value.sync="amendcontent"
|
|
178
|
+
placeholder='短信内容'>
|
|
179
|
+
</div>
|
|
180
|
+
</article>
|
|
181
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
182
|
+
<button v-show="arrshow" type="button" class="btn btn-default" @click='close'>取消</button>
|
|
183
|
+
<button v-show="arrshow" type="button" class="btn btn-success" @click='create(row)'>确认</button>
|
|
184
|
+
</footer>
|
|
185
|
+
</modal>
|
|
186
|
+
<modal :show.sync="showFile" v-ref:modal backdrop="true">
|
|
187
|
+
<header slot="modal-header" class="modal-header">
|
|
188
|
+
<button type="button" class="close" @click="closeFile"><span>×</span></button>
|
|
189
|
+
<h4 class="modal-title">选择文件</h4>
|
|
190
|
+
</header>
|
|
191
|
+
<article slot="modal-body" class="modal-body">
|
|
192
|
+
<div class="form-group">
|
|
193
|
+
<file-upload class="my-file-uploader" name="importSms" action="rs/file/uploadFile" tagname="确定" multiple v-ref:file></file-upload>
|
|
194
|
+
</div>
|
|
195
|
+
</article>
|
|
196
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
197
|
+
<div class="progress">
|
|
198
|
+
<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" :style="{width:progressBar}">
|
|
199
|
+
{{progressBar}}
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
</footer>
|
|
203
|
+
</modal>
|
|
204
|
+
</template>
|
|
205
|
+
|
|
206
|
+
<script>
|
|
207
|
+
/**
|
|
208
|
+
*阶梯气价查询列表
|
|
209
|
+
*/
|
|
210
|
+
import { PagedList, HttpResetClass } from 'vue-client'
|
|
211
|
+
import Vue from 'vue'
|
|
212
|
+
import axios from 'axios'
|
|
213
|
+
export default {
|
|
214
|
+
data () {
|
|
215
|
+
return {
|
|
216
|
+
criteriaShow: false,
|
|
217
|
+
model: new PagedList('api/af-revenue/sql/getSendAll', 20),
|
|
218
|
+
f_send: '未发送',
|
|
219
|
+
downDate: this.$login.toStandardDateString(),
|
|
220
|
+
ids: [],
|
|
221
|
+
show: false,
|
|
222
|
+
pages: [],
|
|
223
|
+
arrshow: false,
|
|
224
|
+
alllist: false,
|
|
225
|
+
// 修正的短信内容
|
|
226
|
+
amendcontent: '',
|
|
227
|
+
isFirst: true,
|
|
228
|
+
amendid: '',
|
|
229
|
+
// 小区
|
|
230
|
+
residentialArea: [],
|
|
231
|
+
sendType: [{label: '全部', value: ''}, ...this.$appdata.getParam('发送状态')],
|
|
232
|
+
getsendType: this.$appdata.getParam('短信类型'),
|
|
233
|
+
replyType: this.$appdata.getParam('评价级别'),
|
|
234
|
+
bodydata: ['f_user_name', 'code', 'f_phone', 'f_send_type', 'f_content', 'f_send', 'f_sendtime', 'f_statedetail', 'f_reply_type', 'f_reply_content', 'f_reply_content'],
|
|
235
|
+
header: ['用户姓名', '用户编号', '电话号码', '短信类型', '短信内容', '发送状态', '发送时间', '状态报告', '评价级别', '回执状态', '评价内容'],
|
|
236
|
+
showFile: false,
|
|
237
|
+
progressBar:'0%'
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
props: {
|
|
241
|
+
condition: {
|
|
242
|
+
type: String
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
computed: {
|
|
246
|
+
smsMessaage () {
|
|
247
|
+
return this.$login.r ? this.$login.r : []
|
|
248
|
+
},
|
|
249
|
+
getCondition () {
|
|
250
|
+
return {condition: this.$refs.paged.$refs.cri.condition}
|
|
251
|
+
},
|
|
252
|
+
getfield () {
|
|
253
|
+
let data = {}
|
|
254
|
+
this.bodydata.forEach((value, index) => {
|
|
255
|
+
data[this.bodydata[index]] = this.header[index]
|
|
256
|
+
})
|
|
257
|
+
return data
|
|
258
|
+
console.log('field' + data)
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
ready () {
|
|
262
|
+
// this.getaddress()
|
|
263
|
+
},
|
|
264
|
+
methods: {
|
|
265
|
+
importSMS () {
|
|
266
|
+
this.showFile = true
|
|
267
|
+
},
|
|
268
|
+
// 关闭文件上传对话框
|
|
269
|
+
closeFile () {
|
|
270
|
+
this.showFile = false
|
|
271
|
+
// 将选的文件清空
|
|
272
|
+
this.$refs.file.$el.querySelector('input').value = ''
|
|
273
|
+
},
|
|
274
|
+
hidden () {
|
|
275
|
+
this.criteriaShow = !this.criteriaShow
|
|
276
|
+
},
|
|
277
|
+
async getaddress () {
|
|
278
|
+
console.log('开始获取小区')
|
|
279
|
+
let HttpReset = new HttpResetClass()
|
|
280
|
+
var data = await HttpReset.load('POST', 'api/af-revenue/sql/address_getarealist', {
|
|
281
|
+
data: {
|
|
282
|
+
condition: '1=1'
|
|
283
|
+
}
|
|
284
|
+
}, {resolveMsg: null, rejectMsg: '获取小区失败!'})
|
|
285
|
+
console.log('小区', data)
|
|
286
|
+
let house = []
|
|
287
|
+
for (let row of data.data) {
|
|
288
|
+
console.log('开始保存小区')
|
|
289
|
+
house.push({label: row.f_residential_area, value: row.f_residential_area})
|
|
290
|
+
}
|
|
291
|
+
this.residentialArea = house
|
|
292
|
+
},
|
|
293
|
+
|
|
294
|
+
// 把数据库查询数据转换为下拉数据
|
|
295
|
+
// calculate(rows){
|
|
296
|
+
// let data = []
|
|
297
|
+
// rows.forEach((row, n) => {
|
|
298
|
+
// data[n] = {label: row.f_residential_area, value: row.f_residential_area}
|
|
299
|
+
// })
|
|
300
|
+
// return data
|
|
301
|
+
// },
|
|
302
|
+
amendment (row) {
|
|
303
|
+
this.arrshow = true
|
|
304
|
+
this.amendid = row.id
|
|
305
|
+
},
|
|
306
|
+
delete () {
|
|
307
|
+
if (this.ids.length !== 0) {
|
|
308
|
+
this.$refs.paged.$refs.cri.condition = this.$refs.paged.$refs.cri.condition + 'and id in (' + this.ids + ')'
|
|
309
|
+
}
|
|
310
|
+
this.$showMessage('删除后不可恢复,确认删除?', ['confirm', 'cancel']).then((res) => {
|
|
311
|
+
if (res === 'confirm') {
|
|
312
|
+
this.$LogicService.deletMessage(this.$refs.paged.$refs.cri.condition).then((res) => {
|
|
313
|
+
this.$dispatch('success')
|
|
314
|
+
}).catch((error) => {
|
|
315
|
+
this.$dispatch('error', error)
|
|
316
|
+
})
|
|
317
|
+
}
|
|
318
|
+
this.$refs.paged.$refs.cri.search()
|
|
319
|
+
})
|
|
320
|
+
},
|
|
321
|
+
delete2 (row) {
|
|
322
|
+
let condition = '1=1' + ' and id = ' + row.id
|
|
323
|
+
this.$showMessage('删除后不可恢复,确认删除?', ['confirm', 'cancel']).then((res) => {
|
|
324
|
+
console.log('删除2方法')
|
|
325
|
+
if (res === 'confirm') {
|
|
326
|
+
this.$LogicService.deletMessage(condition).then((res) => {
|
|
327
|
+
this.$dispatch('success')
|
|
328
|
+
}).catch((error) => {
|
|
329
|
+
this.$dispatch('error', error)
|
|
330
|
+
})
|
|
331
|
+
}
|
|
332
|
+
this.$refs.paged.$refs.cri.search()
|
|
333
|
+
})
|
|
334
|
+
},
|
|
335
|
+
retrun () {
|
|
336
|
+
this.alllist = false
|
|
337
|
+
this.$dispatch('allchange2')
|
|
338
|
+
},
|
|
339
|
+
close () {
|
|
340
|
+
this.arrshow = false
|
|
341
|
+
},
|
|
342
|
+
create () {
|
|
343
|
+
if (this.amendcontent === '' || this.amendcontent === null) {
|
|
344
|
+
this.$showAlert('短信内容不能为空', 'warning', 2000)
|
|
345
|
+
return
|
|
346
|
+
}
|
|
347
|
+
this.arrshow = false
|
|
348
|
+
// 组织数据
|
|
349
|
+
let content = {
|
|
350
|
+
// 批量减免金额
|
|
351
|
+
f_content: this.amendcontent,
|
|
352
|
+
f_operator: Vue.$login.f.name,
|
|
353
|
+
f_operatorid: Vue.$login.f.id,
|
|
354
|
+
f_orgid: Vue.$login.f.orgid,
|
|
355
|
+
f_orgname: Vue.$login.f.orgs,
|
|
356
|
+
f_depid: Vue.$login.f.depids,
|
|
357
|
+
f_depname: Vue.$login.f.deps,
|
|
358
|
+
id: this.amendid
|
|
359
|
+
|
|
360
|
+
}
|
|
361
|
+
console.log('数据id', content.id)
|
|
362
|
+
this.$resetpost('api/af-revenue/logic/amendcontent', content, {
|
|
363
|
+
resolveMsg: null,
|
|
364
|
+
rejectMsg: '修正短信内容出错!!!'
|
|
365
|
+
}).then((res) => {
|
|
366
|
+
this.search()
|
|
367
|
+
})
|
|
368
|
+
},
|
|
369
|
+
confirms () {
|
|
370
|
+
let data = {
|
|
371
|
+
condition: this.$refs.paged.$refs.cri.condition
|
|
372
|
+
|
|
373
|
+
}
|
|
374
|
+
console.log('this.ids:', this.ids)
|
|
375
|
+
console.log('-----------------------------' + data.condition)
|
|
376
|
+
if (this.ids.length !== 0) {
|
|
377
|
+
data.condition = data.condition + 'and id in (' + this.ids + ')'
|
|
378
|
+
|
|
379
|
+
this.$showMessage(`您本次发送短信的条数为${this.ids.length},是否确认下发?`, ['confirm', 'cancel']).then((res) => {
|
|
380
|
+
if (res === 'confirm') {
|
|
381
|
+
this.ids = []
|
|
382
|
+
console.log('data1:', data)
|
|
383
|
+
this.$LogicService.sendMessage(data).then((res) => {
|
|
384
|
+
this.$dispatch('success')
|
|
385
|
+
this.$refs.paged.$refs.cri.search()
|
|
386
|
+
}).catch((error) => {
|
|
387
|
+
this.$dispatch('error', error)
|
|
388
|
+
this.$refs.paged.$refs.cri.search()
|
|
389
|
+
})
|
|
390
|
+
}
|
|
391
|
+
})
|
|
392
|
+
} else {
|
|
393
|
+
this.$showMessage('是否确认全部发送?', ['confirm', 'cancel']).then((res) => {
|
|
394
|
+
if (res === 'confirm') {
|
|
395
|
+
this.ids = []
|
|
396
|
+
console.log('data2:', data)
|
|
397
|
+
this.$LogicService.sendMessage(data).then((res) => {
|
|
398
|
+
this.$dispatch('success')
|
|
399
|
+
this.$refs.paged.$refs.cri.search()
|
|
400
|
+
}).catch((error) => {
|
|
401
|
+
this.$dispatch('error', error)
|
|
402
|
+
this.$refs.paged.$refs.cri.search()
|
|
403
|
+
})
|
|
404
|
+
}
|
|
405
|
+
})
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
search () {
|
|
409
|
+
this.$refs.paged.$refs.cri.search()
|
|
410
|
+
if (this.isFirst) {
|
|
411
|
+
this.isFirst = false
|
|
412
|
+
} else {
|
|
413
|
+
this.$dispatch('allchange')
|
|
414
|
+
this.alllist = true
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
selfSearch (args) {
|
|
418
|
+
// this.condition = ' and convert(varchar(10),f_create_date,120) = ' + "'" + Util.toStandardDateString() + "'"
|
|
419
|
+
// if (!Util.f.parent.parent.name.includes('统一资源管理')) {
|
|
420
|
+
// args.condition = `${args.condition} and f_orgid = '${Vue.$login.f.orgid}'`
|
|
421
|
+
// }
|
|
422
|
+
// args.condition += this.condition
|
|
423
|
+
args.condition += ` and f_orgid='${this.$login.f.orgid}' and f_send_type ='账单推送'`
|
|
424
|
+
this.model.search(args.condition, this.model)
|
|
425
|
+
this.ids = []
|
|
426
|
+
},
|
|
427
|
+
isAll (page) {
|
|
428
|
+
if (this.pages.includes(page)) { // 已添加,取消动作
|
|
429
|
+
// 从ids中删除本页所有数据的ids
|
|
430
|
+
this.addOrRemove(false)
|
|
431
|
+
this.pages = this.pages.filter((item) => {
|
|
432
|
+
return item !== page
|
|
433
|
+
})
|
|
434
|
+
} else { // 未添加
|
|
435
|
+
this.pages.push(page) // 添加id,添加动作
|
|
436
|
+
this.addOrRemove(true)
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
addOrRemove (is) {
|
|
440
|
+
let that = this
|
|
441
|
+
if (is) { // 添加本页所有数据到ids中
|
|
442
|
+
this.ids = []
|
|
443
|
+
this.model.rows.forEach((row) => {
|
|
444
|
+
if (!that.ids.includes(row.id)) {
|
|
445
|
+
that.ids.push(row.id)
|
|
446
|
+
}
|
|
447
|
+
})
|
|
448
|
+
} else { // 从ids中取消所有的数据
|
|
449
|
+
this.ids = []
|
|
450
|
+
this.model.rows.forEach((row) => {
|
|
451
|
+
that.ids = that.ids.filter((item) => {
|
|
452
|
+
return item !== row.id
|
|
453
|
+
})
|
|
454
|
+
})
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
},
|
|
458
|
+
events: {
|
|
459
|
+
'onFileProgress'(e){
|
|
460
|
+
this.progressBar = e.percent+'%'
|
|
461
|
+
if(this.progressBar=='100%'){
|
|
462
|
+
this.$showAlert(`文件已导入成功,数据正在处理请稍后`, 'warning')
|
|
463
|
+
}
|
|
464
|
+
},
|
|
465
|
+
'onFileUpload': async function (file, res) {
|
|
466
|
+
console.log('this.$login.r', this.$login.f)
|
|
467
|
+
let data = {
|
|
468
|
+
filepath: res.f_downloadpath,
|
|
469
|
+
f_orgid: this.$login.f.orgid,
|
|
470
|
+
f_orgname: this.$login.f.f_orgs,
|
|
471
|
+
f_operatorid: this.$login.f.id,
|
|
472
|
+
f_operator: this.$login.f.name
|
|
473
|
+
}
|
|
474
|
+
console.log('filepath=' + JSON.stringify(data))
|
|
475
|
+
await axios.post('api/af-revenue/logic/importSms',
|
|
476
|
+
{data: data},
|
|
477
|
+
// {onUploadProgress: (progressEvent)=> {
|
|
478
|
+
// var percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)
|
|
479
|
+
// this.progressBar = percentCompleted+'%'
|
|
480
|
+
// }}
|
|
481
|
+
).then((res)=>{
|
|
482
|
+
debugger
|
|
483
|
+
if (res.data.success == 'success') {
|
|
484
|
+
|
|
485
|
+
// this.$showAlert(`导入成功信息:${res.data.allSms}条,导入失败:${res.data.errorSms}条`, ['confirm', 'cancel'])
|
|
486
|
+
this.$showMessage(`导入成功信息:${res.data.allSms}条,导入失败:${res.data.errorSms}条`, ['confirm'],null,'success').then((res) => {
|
|
487
|
+
if (res === 'confirm') {
|
|
488
|
+
// 关闭上传框
|
|
489
|
+
this.closeFile()
|
|
490
|
+
this.progressBar='0%'
|
|
491
|
+
this.$refs.paged.$refs.cri.search()
|
|
492
|
+
}
|
|
493
|
+
})
|
|
494
|
+
this.$closeAlert()
|
|
495
|
+
}
|
|
496
|
+
})
|
|
497
|
+
},
|
|
498
|
+
'onFileError' (error) {
|
|
499
|
+
this.$showAlert(error, 'warning', 2000)
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
</script>
|
|
504
|
+
<style>
|
|
505
|
+
#tooltip {
|
|
506
|
+
height: auto;
|
|
507
|
+
}
|
|
508
|
+
</style>
|