telephone-clients 4.0.0-1-59 → 4.0.0-1-61
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/CHANGELOG.md +37 -37
- package/README.md +38 -38
- package/package.json +1 -1
- package/release.bat +5 -5
- package/src/filiale/meihekou/android/createQRcode.vue +186 -186
- package/src/filiale/yuncheng/pc/TelLossList.vue +285 -278
package/CHANGELOG.md
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
所有关于本产品的变化都在该文档里。
|
|
3
|
-
|
|
4
|
-
## [Unreleased]
|
|
5
|
-
|
|
6
|
-
## 1.1.7 - 2018-11-23 @ 王智鹏
|
|
7
|
-
- 添加安卓端可以查询购气信息
|
|
8
|
-
|
|
9
|
-
## 1.1.0 - 2018-11-11 @ 何宁社
|
|
10
|
-
- 去掉样式
|
|
11
|
-
|
|
12
|
-
## 1.0.19 - 2018-11-1 @ 何宁社
|
|
13
|
-
- 派通气单时,自动建档
|
|
14
|
-
|
|
15
|
-
## 1.0.11 - 2018-9-11 @ 文明
|
|
16
|
-
### Fixed
|
|
17
|
-
- 修改获取参数的方式及登入人的信息
|
|
18
|
-
|
|
19
|
-
## 1.0.10 - 2018-9-3 @ 何宁社
|
|
20
|
-
### Fixed
|
|
21
|
-
- 删除错误的局部组件注册
|
|
22
|
-
|
|
23
|
-
## 1.0.9 - 2018-9-3 @ 何宁社
|
|
24
|
-
### Fixed
|
|
25
|
-
- 解决部分组件的大写问题
|
|
26
|
-
|
|
27
|
-
## 1.0.7 - 2018-9-3 @ 何宁社
|
|
28
|
-
### Fixed
|
|
29
|
-
- 解决Console的大写问题
|
|
30
|
-
|
|
31
|
-
## 0.0.2 - 2018-5-6 @ 何宁社
|
|
32
|
-
### Added
|
|
33
|
-
- 把故障编辑及故障显示组件独立出来了
|
|
34
|
-
|
|
35
|
-
## 0.0.1 - 2017-12-01
|
|
36
|
-
### Added
|
|
37
|
-
- pc端,微信端界面完成,接下来主要完成文字客服,语音客服,业务逻辑,手机app等功能
|
|
1
|
+
# Change Log
|
|
2
|
+
所有关于本产品的变化都在该文档里。
|
|
3
|
+
|
|
4
|
+
## [Unreleased]
|
|
5
|
+
|
|
6
|
+
## 1.1.7 - 2018-11-23 @ 王智鹏
|
|
7
|
+
- 添加安卓端可以查询购气信息
|
|
8
|
+
|
|
9
|
+
## 1.1.0 - 2018-11-11 @ 何宁社
|
|
10
|
+
- 去掉样式
|
|
11
|
+
|
|
12
|
+
## 1.0.19 - 2018-11-1 @ 何宁社
|
|
13
|
+
- 派通气单时,自动建档
|
|
14
|
+
|
|
15
|
+
## 1.0.11 - 2018-9-11 @ 文明
|
|
16
|
+
### Fixed
|
|
17
|
+
- 修改获取参数的方式及登入人的信息
|
|
18
|
+
|
|
19
|
+
## 1.0.10 - 2018-9-3 @ 何宁社
|
|
20
|
+
### Fixed
|
|
21
|
+
- 删除错误的局部组件注册
|
|
22
|
+
|
|
23
|
+
## 1.0.9 - 2018-9-3 @ 何宁社
|
|
24
|
+
### Fixed
|
|
25
|
+
- 解决部分组件的大写问题
|
|
26
|
+
|
|
27
|
+
## 1.0.7 - 2018-9-3 @ 何宁社
|
|
28
|
+
### Fixed
|
|
29
|
+
- 解决Console的大写问题
|
|
30
|
+
|
|
31
|
+
## 0.0.2 - 2018-5-6 @ 何宁社
|
|
32
|
+
### Added
|
|
33
|
+
- 把故障编辑及故障显示组件独立出来了
|
|
34
|
+
|
|
35
|
+
## 0.0.1 - 2017-12-01
|
|
36
|
+
### Added
|
|
37
|
+
- pc端,微信端界面完成,接下来主要完成文字客服,语音客服,业务逻辑,手机app等功能
|
package/README.md
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
# TelephoneClient
|
|
2
|
-
|
|
3
|
-
#### 项目介绍
|
|
4
|
-
{**以下是码云平台说明,您可以替换为您的项目简介**
|
|
5
|
-
码云是开源中国推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
|
|
6
|
-
无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
|
|
7
|
-
|
|
8
|
-
#### 软件架构
|
|
9
|
-
软件架构说明
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
#### 安装教程
|
|
13
|
-
|
|
14
|
-
1. xxxx
|
|
15
|
-
2. xxxx
|
|
16
|
-
3. xxxx
|
|
17
|
-
|
|
18
|
-
#### 使用说明
|
|
19
|
-
|
|
20
|
-
1. xxxx
|
|
21
|
-
2. xxxx
|
|
22
|
-
3. xxxx
|
|
23
|
-
|
|
24
|
-
#### 参与贡献
|
|
25
|
-
|
|
26
|
-
1. Fork 本项目
|
|
27
|
-
2. 新建 Feat_xxx 分支
|
|
28
|
-
3. 提交代码
|
|
29
|
-
4. 新建 Pull Request
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
#### 码云特技
|
|
33
|
-
|
|
34
|
-
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
35
|
-
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
|
|
36
|
-
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
|
|
37
|
-
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
|
|
38
|
-
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
1
|
+
# TelephoneClient
|
|
2
|
+
|
|
3
|
+
#### 项目介绍
|
|
4
|
+
{**以下是码云平台说明,您可以替换为您的项目简介**
|
|
5
|
+
码云是开源中国推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
|
|
6
|
+
无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
|
|
7
|
+
|
|
8
|
+
#### 软件架构
|
|
9
|
+
软件架构说明
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
#### 安装教程
|
|
13
|
+
|
|
14
|
+
1. xxxx
|
|
15
|
+
2. xxxx
|
|
16
|
+
3. xxxx
|
|
17
|
+
|
|
18
|
+
#### 使用说明
|
|
19
|
+
|
|
20
|
+
1. xxxx
|
|
21
|
+
2. xxxx
|
|
22
|
+
3. xxxx
|
|
23
|
+
|
|
24
|
+
#### 参与贡献
|
|
25
|
+
|
|
26
|
+
1. Fork 本项目
|
|
27
|
+
2. 新建 Feat_xxx 分支
|
|
28
|
+
3. 提交代码
|
|
29
|
+
4. 新建 Pull Request
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
#### 码云特技
|
|
33
|
+
|
|
34
|
+
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
35
|
+
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
|
|
36
|
+
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
|
|
37
|
+
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
|
|
38
|
+
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
39
39
|
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
package/package.json
CHANGED
package/release.bat
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
git add -A
|
|
2
|
-
git commit -m "[build] %1"
|
|
3
|
-
git tag -a V%1 -m "Release version %1"
|
|
4
|
-
git push origin --tags
|
|
5
|
-
git push
|
|
1
|
+
git add -A
|
|
2
|
+
git commit -m "[build] %1"
|
|
3
|
+
git tag -a V%1 -m "Release version %1"
|
|
4
|
+
git push origin --tags
|
|
5
|
+
git push
|
|
@@ -1,186 +1,186 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div style="height: auto;width: 100%">
|
|
3
|
-
<div partial>
|
|
4
|
-
<div align="center" class="">
|
|
5
|
-
<div class=""><img src="../../../assets/scanCode.png">请扫描下方二维码进行购气</div>
|
|
6
|
-
<div class="row app-row">
|
|
7
|
-
<div class="col-xs-4">
|
|
8
|
-
<label class="font text-left">订单编号:</label>
|
|
9
|
-
</div>
|
|
10
|
-
<div class="col-xs-8">
|
|
11
|
-
<input v-model="oderInfo.out_trade_no" class="search_input input-font" type="text"/>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="row app-row">
|
|
15
|
-
<div class="col-xs-4">
|
|
16
|
-
<label class="font text-left">订单状态:</label>
|
|
17
|
-
</div>
|
|
18
|
-
<div class="col-xs-8">
|
|
19
|
-
<input v-model="oderInfo.msg" class="search_input input-font" type="text"/>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
<!--<div @click="callBack('支付成功')">返回</div>-->
|
|
23
|
-
</div>
|
|
24
|
-
<div align="center" class="">
|
|
25
|
-
<div class="QR-code">
|
|
26
|
-
<img v-show="isTimeout" height="266" src="../../../assets/qrcode_no.png" width="266"/>
|
|
27
|
-
<div id="scan" style="margin-top: 25px"></div>
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
</template>
|
|
33
|
-
<script>
|
|
34
|
-
import QRCode from 'qrcodejs2'
|
|
35
|
-
import {HttpResetClass} from "vue-client";
|
|
36
|
-
|
|
37
|
-
export default {
|
|
38
|
-
title: '二维码扫码',
|
|
39
|
-
prop: ['row'],
|
|
40
|
-
|
|
41
|
-
data() {
|
|
42
|
-
return {
|
|
43
|
-
// 订单状态定时器
|
|
44
|
-
timer1: {},
|
|
45
|
-
timer2: {},
|
|
46
|
-
// 订单信息
|
|
47
|
-
oderInfo: {
|
|
48
|
-
out_trade_no: "",
|
|
49
|
-
msg: ''
|
|
50
|
-
},
|
|
51
|
-
// 下单信息
|
|
52
|
-
parameter: {
|
|
53
|
-
},
|
|
54
|
-
isTimeout: true // 二维码图片
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
methods: {
|
|
59
|
-
callBack(para) {
|
|
60
|
-
//tag
|
|
61
|
-
this.$back(para)
|
|
62
|
-
},
|
|
63
|
-
// 生成二维码
|
|
64
|
-
async createOrder() {
|
|
65
|
-
console.log(this.row)
|
|
66
|
-
let data = {
|
|
67
|
-
config: this.row.model.f_orgid,
|
|
68
|
-
f_revenue: 'productV3',
|
|
69
|
-
pay_way: this.row.model.f_payment,
|
|
70
|
-
money: `${Number(Number(this.row.money)*100).toFixed(2)}`,
|
|
71
|
-
body: '购气订单',
|
|
72
|
-
attach: {
|
|
73
|
-
f_userfiles_id: this.row.model.f_userfiles_id,
|
|
74
|
-
f_pregas: this.row.model.f_pregas,
|
|
75
|
-
f_preamount: this.row.money,
|
|
76
|
-
f_payment: this.row.money,
|
|
77
|
-
f_terminal_num: HostApp.getSN().data,
|
|
78
|
-
f_collection: this.row.money,
|
|
79
|
-
f_totalcost: this.row.money,
|
|
80
|
-
isHand: this.row.model.isHand || '',
|
|
81
|
-
hand_ids: this.row.model.hand_ids || [],
|
|
82
|
-
f_meterid: this.row.model.f_meterid || '',
|
|
83
|
-
isGasValue: this.row.model.isGasValue || '',
|
|
84
|
-
f_card_id: this.row.model.f_card_id || '',
|
|
85
|
-
f_times: this.row.model.f_times || 0
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
let result = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/pos/rs/logic/CCBGetCode`, data, {})
|
|
89
|
-
if (result.data && result.data.code == 200){
|
|
90
|
-
this.oderInfo.out_trade_no = result.data.f_out_trade_no
|
|
91
|
-
new QRCode(document.getElementById('scan'), {'text': result.data.url, width: 266, height: 266})
|
|
92
|
-
this.isTimeout = false
|
|
93
|
-
if (this.oderInfo.out_trade_no) {
|
|
94
|
-
this.timer1 = window.setInterval(this.queryOrderSatus, 3000)
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
// 查询订单状态
|
|
99
|
-
async queryOrderSatus() {
|
|
100
|
-
let http1 = new HttpResetClass()
|
|
101
|
-
let resp = await http1.load('POST', `${this.$androidUtil.getProxyUrl()}/pos/rs/sql/getSellGasInfo`, {
|
|
102
|
-
"data": {
|
|
103
|
-
"condition": `f_serial_id = '${this.oderInfo.out_trade_no}'`
|
|
104
|
-
}
|
|
105
|
-
}, {resolveMsg: null, rejectMsg: null})
|
|
106
|
-
if (resp.data.length == 1){
|
|
107
|
-
this.oderInfo.msg = '支付成功'
|
|
108
|
-
await this.destroyed()
|
|
109
|
-
await this.callBack(this.oderInfo.out_trade_no)
|
|
110
|
-
}else {
|
|
111
|
-
this.oderInfo.msg = '订单未支付'
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
destroyed() {
|
|
115
|
-
// 停止计时器
|
|
116
|
-
//tag
|
|
117
|
-
window.clearInterval(this.timer1)
|
|
118
|
-
// window.clearInterval(this.timer2)
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
async ready() {
|
|
122
|
-
let http1 = new HttpResetClass()
|
|
123
|
-
let resp = await http1.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/tel_singleTable_OrderBy`, {
|
|
124
|
-
data: {
|
|
125
|
-
items: "*",
|
|
126
|
-
tablename: "t_userfiles",
|
|
127
|
-
condition: `f_userfiles_id = '${this.row.model.f_userfiles_id}' and f_table_state != '换表'`,
|
|
128
|
-
orderitem: "f_userfiles_id"
|
|
129
|
-
}
|
|
130
|
-
}, {resolveMsg: null, rejectMsg: null})
|
|
131
|
-
console.log(resp)
|
|
132
|
-
if (resp.data[0].f_meter_classify.includes('卡表')) {
|
|
133
|
-
this.row.model.isHand = '0'
|
|
134
|
-
this.row.model.f_meterid = resp.data[0].f_meterid
|
|
135
|
-
this.row.model.isGasValue = resp.data[0].f_meter_classify.includes('气量') ? '0' : '1'
|
|
136
|
-
this.row.model.f_card_id = resp.data[0].f_card_id
|
|
137
|
-
this.row.model.f_times = resp.data[0].f_times
|
|
138
|
-
}else if (resp.data[0].f_meter_classify.includes('机表')){
|
|
139
|
-
this.row.model.isHand = '1'
|
|
140
|
-
this.row.model.hand_ids = []
|
|
141
|
-
let resp2 = await http1.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/tel_singleTable_OrderBy`, {
|
|
142
|
-
data: {
|
|
143
|
-
items: "id",
|
|
144
|
-
tablename: "t_handplan",
|
|
145
|
-
condition: `f_userfiles_id = '${this.row.model.f_userfiles_id}' and f_whether_pay = '否'`,
|
|
146
|
-
orderitem: "id desc"
|
|
147
|
-
}
|
|
148
|
-
}, {resolveMsg: null, rejectMsg: null})
|
|
149
|
-
if (resp2.data.length >0 ){
|
|
150
|
-
this.row.model.hand_ids = resp2.data.map(item=>{return item.id})
|
|
151
|
-
}
|
|
152
|
-
}else {
|
|
153
|
-
this.row.model.isHand = '-1'
|
|
154
|
-
}
|
|
155
|
-
await this.createOrder()
|
|
156
|
-
},
|
|
157
|
-
destroyed() {
|
|
158
|
-
// 停止计时器
|
|
159
|
-
//tag
|
|
160
|
-
window.clearInterval(this.timer1)
|
|
161
|
-
// window.clearInterval(this.timer2)
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
</script>
|
|
165
|
-
<style>
|
|
166
|
-
.app-row {
|
|
167
|
-
background-color: white;
|
|
168
|
-
padding: 10px 10px 0 10px;
|
|
169
|
-
border-bottom: 1px solid rgba(235, 235, 235, 0.7);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
.search_input {
|
|
173
|
-
border: 0;
|
|
174
|
-
outline: none;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
.font {
|
|
178
|
-
font: 15px PingFang-SC-Medium;
|
|
179
|
-
color: #666666;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
.input-font {
|
|
183
|
-
font: 15px PingFang-SC-Medium;
|
|
184
|
-
color: #333333;
|
|
185
|
-
}
|
|
186
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div style="height: auto;width: 100%">
|
|
3
|
+
<div partial>
|
|
4
|
+
<div align="center" class="">
|
|
5
|
+
<div class=""><img src="../../../assets/scanCode.png">请扫描下方二维码进行购气</div>
|
|
6
|
+
<div class="row app-row">
|
|
7
|
+
<div class="col-xs-4">
|
|
8
|
+
<label class="font text-left">订单编号:</label>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="col-xs-8">
|
|
11
|
+
<input v-model="oderInfo.out_trade_no" class="search_input input-font" type="text"/>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="row app-row">
|
|
15
|
+
<div class="col-xs-4">
|
|
16
|
+
<label class="font text-left">订单状态:</label>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="col-xs-8">
|
|
19
|
+
<input v-model="oderInfo.msg" class="search_input input-font" type="text"/>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
<!--<div @click="callBack('支付成功')">返回</div>-->
|
|
23
|
+
</div>
|
|
24
|
+
<div align="center" class="">
|
|
25
|
+
<div class="QR-code">
|
|
26
|
+
<img v-show="isTimeout" height="266" src="../../../assets/qrcode_no.png" width="266"/>
|
|
27
|
+
<div id="scan" style="margin-top: 25px"></div>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</template>
|
|
33
|
+
<script>
|
|
34
|
+
import QRCode from 'qrcodejs2'
|
|
35
|
+
import {HttpResetClass} from "vue-client";
|
|
36
|
+
|
|
37
|
+
export default {
|
|
38
|
+
title: '二维码扫码',
|
|
39
|
+
prop: ['row'],
|
|
40
|
+
|
|
41
|
+
data() {
|
|
42
|
+
return {
|
|
43
|
+
// 订单状态定时器
|
|
44
|
+
timer1: {},
|
|
45
|
+
timer2: {},
|
|
46
|
+
// 订单信息
|
|
47
|
+
oderInfo: {
|
|
48
|
+
out_trade_no: "",
|
|
49
|
+
msg: ''
|
|
50
|
+
},
|
|
51
|
+
// 下单信息
|
|
52
|
+
parameter: {
|
|
53
|
+
},
|
|
54
|
+
isTimeout: true // 二维码图片
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
methods: {
|
|
59
|
+
callBack(para) {
|
|
60
|
+
//tag
|
|
61
|
+
this.$back(para)
|
|
62
|
+
},
|
|
63
|
+
// 生成二维码
|
|
64
|
+
async createOrder() {
|
|
65
|
+
console.log(this.row)
|
|
66
|
+
let data = {
|
|
67
|
+
config: this.row.model.f_orgid,
|
|
68
|
+
f_revenue: 'productV3',
|
|
69
|
+
pay_way: this.row.model.f_payment,
|
|
70
|
+
money: `${Number(Number(this.row.money)*100).toFixed(2)}`,
|
|
71
|
+
body: '购气订单',
|
|
72
|
+
attach: {
|
|
73
|
+
f_userfiles_id: this.row.model.f_userfiles_id,
|
|
74
|
+
f_pregas: this.row.model.f_pregas,
|
|
75
|
+
f_preamount: this.row.money,
|
|
76
|
+
f_payment: this.row.money,
|
|
77
|
+
f_terminal_num: HostApp.getSN().data,
|
|
78
|
+
f_collection: this.row.money,
|
|
79
|
+
f_totalcost: this.row.money,
|
|
80
|
+
isHand: this.row.model.isHand || '',
|
|
81
|
+
hand_ids: this.row.model.hand_ids || [],
|
|
82
|
+
f_meterid: this.row.model.f_meterid || '',
|
|
83
|
+
isGasValue: this.row.model.isGasValue || '',
|
|
84
|
+
f_card_id: this.row.model.f_card_id || '',
|
|
85
|
+
f_times: this.row.model.f_times || 0
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
let result = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/pos/rs/logic/CCBGetCode`, data, {})
|
|
89
|
+
if (result.data && result.data.code == 200){
|
|
90
|
+
this.oderInfo.out_trade_no = result.data.f_out_trade_no
|
|
91
|
+
new QRCode(document.getElementById('scan'), {'text': result.data.url, width: 266, height: 266})
|
|
92
|
+
this.isTimeout = false
|
|
93
|
+
if (this.oderInfo.out_trade_no) {
|
|
94
|
+
this.timer1 = window.setInterval(this.queryOrderSatus, 3000)
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
// 查询订单状态
|
|
99
|
+
async queryOrderSatus() {
|
|
100
|
+
let http1 = new HttpResetClass()
|
|
101
|
+
let resp = await http1.load('POST', `${this.$androidUtil.getProxyUrl()}/pos/rs/sql/getSellGasInfo`, {
|
|
102
|
+
"data": {
|
|
103
|
+
"condition": `f_serial_id = '${this.oderInfo.out_trade_no}'`
|
|
104
|
+
}
|
|
105
|
+
}, {resolveMsg: null, rejectMsg: null})
|
|
106
|
+
if (resp.data.length == 1){
|
|
107
|
+
this.oderInfo.msg = '支付成功'
|
|
108
|
+
await this.destroyed()
|
|
109
|
+
await this.callBack(this.oderInfo.out_trade_no)
|
|
110
|
+
}else {
|
|
111
|
+
this.oderInfo.msg = '订单未支付'
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
destroyed() {
|
|
115
|
+
// 停止计时器
|
|
116
|
+
//tag
|
|
117
|
+
window.clearInterval(this.timer1)
|
|
118
|
+
// window.clearInterval(this.timer2)
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
async ready() {
|
|
122
|
+
let http1 = new HttpResetClass()
|
|
123
|
+
let resp = await http1.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/tel_singleTable_OrderBy`, {
|
|
124
|
+
data: {
|
|
125
|
+
items: "*",
|
|
126
|
+
tablename: "t_userfiles",
|
|
127
|
+
condition: `f_userfiles_id = '${this.row.model.f_userfiles_id}' and f_table_state != '换表'`,
|
|
128
|
+
orderitem: "f_userfiles_id"
|
|
129
|
+
}
|
|
130
|
+
}, {resolveMsg: null, rejectMsg: null})
|
|
131
|
+
console.log(resp)
|
|
132
|
+
if (resp.data[0].f_meter_classify.includes('卡表')) {
|
|
133
|
+
this.row.model.isHand = '0'
|
|
134
|
+
this.row.model.f_meterid = resp.data[0].f_meterid
|
|
135
|
+
this.row.model.isGasValue = resp.data[0].f_meter_classify.includes('气量') ? '0' : '1'
|
|
136
|
+
this.row.model.f_card_id = resp.data[0].f_card_id
|
|
137
|
+
this.row.model.f_times = resp.data[0].f_times
|
|
138
|
+
}else if (resp.data[0].f_meter_classify.includes('机表')){
|
|
139
|
+
this.row.model.isHand = '1'
|
|
140
|
+
this.row.model.hand_ids = []
|
|
141
|
+
let resp2 = await http1.load('POST', `${this.$androidUtil.getProxyUrl()}/af-telephone/rs/sql/tel_singleTable_OrderBy`, {
|
|
142
|
+
data: {
|
|
143
|
+
items: "id",
|
|
144
|
+
tablename: "t_handplan",
|
|
145
|
+
condition: `f_userfiles_id = '${this.row.model.f_userfiles_id}' and f_whether_pay = '否'`,
|
|
146
|
+
orderitem: "id desc"
|
|
147
|
+
}
|
|
148
|
+
}, {resolveMsg: null, rejectMsg: null})
|
|
149
|
+
if (resp2.data.length >0 ){
|
|
150
|
+
this.row.model.hand_ids = resp2.data.map(item=>{return item.id})
|
|
151
|
+
}
|
|
152
|
+
}else {
|
|
153
|
+
this.row.model.isHand = '-1'
|
|
154
|
+
}
|
|
155
|
+
await this.createOrder()
|
|
156
|
+
},
|
|
157
|
+
destroyed() {
|
|
158
|
+
// 停止计时器
|
|
159
|
+
//tag
|
|
160
|
+
window.clearInterval(this.timer1)
|
|
161
|
+
// window.clearInterval(this.timer2)
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
</script>
|
|
165
|
+
<style>
|
|
166
|
+
.app-row {
|
|
167
|
+
background-color: white;
|
|
168
|
+
padding: 10px 10px 0 10px;
|
|
169
|
+
border-bottom: 1px solid rgba(235, 235, 235, 0.7);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.search_input {
|
|
173
|
+
border: 0;
|
|
174
|
+
outline: none;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.font {
|
|
178
|
+
font: 15px PingFang-SC-Medium;
|
|
179
|
+
color: #666666;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.input-font {
|
|
183
|
+
font: 15px PingFang-SC-Medium;
|
|
184
|
+
color: #333333;
|
|
185
|
+
}
|
|
186
|
+
</style>
|
|
@@ -1,278 +1,285 @@
|
|
|
1
|
-
<template >
|
|
2
|
-
<div class="flex-row">
|
|
3
|
-
<div id="stand-work-list" class="flex bg-white p-10 basic-main" style="flex-direction: row">
|
|
4
|
-
<div style="width: 40%;height: 100%" v-show="leftShow">
|
|
5
|
-
<div class="row" style="height: 10%;width: 50%">
|
|
6
|
-
<div class="form-group form-input-group" style="display: flex;justify-content: flex-start">
|
|
7
|
-
<label class="font_normal_body" style="width: 40%">查询日期</label>
|
|
8
|
-
<datepicker placeholder="查询日期"
|
|
9
|
-
:value.sync="searchDate"
|
|
10
|
-
v-model="searchDate"
|
|
11
|
-
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
12
|
-
></datepicker>
|
|
13
|
-
<button type="button" name="button"
|
|
14
|
-
class="button_search button_spacing" style="z-index: 2" @click="searchEcharts()">查询</button>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
<div style="height: 45%;" id="husunzhexian1"></div>
|
|
18
|
-
<div style="height: 45%;" id="husunzhexian2"></div>
|
|
19
|
-
</div>
|
|
20
|
-
<div class="span" style="width: 60%;overflow: auto">
|
|
21
|
-
<visit-info v-if="showVisit" :phone="wavflie" :idwavfile="idwavfile" :outltime="outltime" @show-obj="watchShow" v-on:visitback="visitback" ></visit-info>
|
|
22
|
-
<criteria-paged :model="model" v-else v-ref:paged>
|
|
23
|
-
<criteria partial='criteria' v-ref:criteria @condition-changed='$parent.search'>
|
|
24
|
-
<div novalidate class="form-inline" partial>
|
|
25
|
-
<div class="row">
|
|
26
|
-
<div class="col-sm-3 form-group form-input-group">
|
|
27
|
-
<label class="font_normal_body" style="width: 35%">电话号码</label>
|
|
28
|
-
<input type="text" class="input_search" v-model="model.telnum" placeholder='电话号码'
|
|
29
|
-
condition="telnum like '%{}%'"
|
|
30
|
-
:size="model.telnum ? model.telnum.length : 7">
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<div class="col-sm-3 form-group form-input-group">
|
|
34
|
-
<label class="font_normal_body" style="width: 40%">来电时间</label>
|
|
35
|
-
<datepicker placeholder="开始时间"
|
|
36
|
-
:value.sync="model.f_date"
|
|
37
|
-
v-model="model.f_date"
|
|
38
|
-
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
39
|
-
condition="outltime > '{}'"
|
|
40
|
-
></datepicker>
|
|
41
|
-
</div>
|
|
42
|
-
<div class="col-sm-3 form-group form-input-group">
|
|
43
|
-
<label class="font_normal_body" style="width: 40%">来电时间</label>
|
|
44
|
-
<datepicker placeholder="结束时间"
|
|
45
|
-
:value.sync="model.f_end_date"
|
|
46
|
-
v-model="model.f_end_date"
|
|
47
|
-
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
48
|
-
condition="outltime < '{}'"
|
|
49
|
-
></datepicker>
|
|
50
|
-
</div>
|
|
51
|
-
<div class="col-sm-3 form-group form-input-group">
|
|
52
|
-
<label class="font_normal_body" style="width: 35%">回访状态</label>
|
|
53
|
-
<v-select :value.sync="model.f_flghuifang"
|
|
54
|
-
:options='$parent.$parent.huifangs'
|
|
55
|
-
:value-single="true"
|
|
56
|
-
placeholder='请选择回访状态'
|
|
57
|
-
close-on-select
|
|
58
|
-
style="width: 60%"
|
|
59
|
-
></v-select>
|
|
60
|
-
</div>
|
|
61
|
-
<div style="float: right;" class="form-group span">
|
|
62
|
-
<button type="button" name="button"
|
|
63
|
-
class="button_search button_spacing" @click="search(),$dispatch('search')" style="z-index: 2">查询</button>
|
|
64
|
-
<export-excel-tel
|
|
65
|
-
:data="$parent.$parent.searchData"
|
|
66
|
-
:field="$parent.$parent.excelHeaders"
|
|
67
|
-
sqlurl="af-telephone/rs/logic/telephoneExport" sql-name="tel_singleTable_OrderBy" template-name='呼损记录导出'
|
|
68
|
-
:choose-col="true">
|
|
69
|
-
</export-excel-tel>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
</criteria>
|
|
74
|
-
<data-grid partial='list' v-ref:grid :model="model" class="list_area table_sy">
|
|
75
|
-
<template partial='head'>
|
|
76
|
-
<tr>
|
|
77
|
-
<th><nobr>电话号码</nobr></th>
|
|
78
|
-
<th><nobr>来电时间</nobr></th>
|
|
79
|
-
<th><nobr>操作</nobr></th>
|
|
80
|
-
</tr>
|
|
81
|
-
</template>
|
|
82
|
-
<template partial='body'>
|
|
83
|
-
<td style="text-align: center">{{row.telnum}}</td>
|
|
84
|
-
<td style="text-align: center">{{row.outltime}}</td>
|
|
85
|
-
<td style="text-align: center">
|
|
86
|
-
<button-link v-show="!row.f_flghuifang" type="button" class="btn btn-link" @click="$parent.$parent.$parent.playWav(row.telnum,row.id)">回拨</button-link>
|
|
87
|
-
</td>
|
|
88
|
-
</template>
|
|
89
|
-
</data-grid>
|
|
90
|
-
</criteria-paged>
|
|
91
|
-
</div>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
<!-- <modal :show.sync="showVisit" v-ref:modal backdrop="false">-->
|
|
95
|
-
<!-- <header slot="modal-header" class="modal-header">-->
|
|
96
|
-
<!-- </header>-->
|
|
97
|
-
<!-- <article slot="modal-body" class="modal-body">-->
|
|
98
|
-
<!-- <visit-info v-if="showVisit" :phone="wavflie" :idwavfile="idwavfile" :outltime="outltime" @show-obj="watchShow"></visit-info>-->
|
|
99
|
-
<!-- </article>-->
|
|
100
|
-
<!-- <footer slot="modal-footer" class="modal-footer">-->
|
|
101
|
-
<!-- </footer>-->
|
|
102
|
-
<!-- </modal>-->
|
|
103
|
-
</template>
|
|
104
|
-
|
|
105
|
-
<script>
|
|
106
|
-
import {HttpResetClass, PagedList} from 'vue-client'
|
|
107
|
-
import * as Util from '../../../components/Util'
|
|
108
|
-
export default {
|
|
109
|
-
title: '呼损记录',
|
|
110
|
-
data () {
|
|
111
|
-
return {
|
|
112
|
-
model: new PagedList('af-telephone/rs/sql/tel_singleTable_OrderBy', 20, {items: "'*'", tablename: "'t_records'", orderitem: "'outltime desc'" }),
|
|
113
|
-
row: null,
|
|
114
|
-
show: false,
|
|
115
|
-
wavflie : '',
|
|
116
|
-
idwavfile:'',
|
|
117
|
-
leftShow:true,
|
|
118
|
-
searchDate:Util.toStandardDateString(),
|
|
119
|
-
orderMan: '',
|
|
120
|
-
msgs: [],
|
|
121
|
-
huifangs:[{label:"全部",value:""},{label:"已回访",value:"已回访"},{label:"未回访",value:"未回访"}],
|
|
122
|
-
service: Object,
|
|
123
|
-
pendingCount: 0,
|
|
124
|
-
serobj:Object,
|
|
125
|
-
showVisit:false,
|
|
126
|
-
outltime:this.getNowFormatDate(),
|
|
127
|
-
searchData:{
|
|
128
|
-
items: "*",
|
|
129
|
-
tablename: "t_records",
|
|
130
|
-
orderitem: "outltime desc",
|
|
131
|
-
condition: '1=1'
|
|
132
|
-
},
|
|
133
|
-
excelHeaders: {
|
|
134
|
-
'telnum': '电话号码',
|
|
135
|
-
'outltime': '来电时间',
|
|
136
|
-
},
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
this.
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
},
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
data
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
this.
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
this.
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
1
|
+
<template >
|
|
2
|
+
<div class="flex-row">
|
|
3
|
+
<div id="stand-work-list" class="flex bg-white p-10 basic-main" style="flex-direction: row">
|
|
4
|
+
<div style="width: 40%;height: 100%" v-show="leftShow">
|
|
5
|
+
<div class="row" style="height: 10%;width: 50%">
|
|
6
|
+
<div class="form-group form-input-group" style="display: flex;justify-content: flex-start">
|
|
7
|
+
<label class="font_normal_body" style="width: 40%">查询日期</label>
|
|
8
|
+
<datepicker placeholder="查询日期"
|
|
9
|
+
:value.sync="searchDate"
|
|
10
|
+
v-model="searchDate"
|
|
11
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
12
|
+
></datepicker>
|
|
13
|
+
<button type="button" name="button"
|
|
14
|
+
class="button_search button_spacing" style="z-index: 2" @click="searchEcharts()">查询</button>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
<div style="height: 45%;" id="husunzhexian1"></div>
|
|
18
|
+
<div style="height: 45%;" id="husunzhexian2"></div>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="span" style="width: 60%;overflow: auto">
|
|
21
|
+
<visit-info v-if="showVisit" :phone="wavflie" :idwavfile="idwavfile" :outltime="outltime" @show-obj="watchShow" v-on:visitback="visitback" ></visit-info>
|
|
22
|
+
<criteria-paged :model="model" v-else v-ref:paged>
|
|
23
|
+
<criteria partial='criteria' v-ref:criteria @condition-changed='$parent.search'>
|
|
24
|
+
<div novalidate class="form-inline" partial>
|
|
25
|
+
<div class="row">
|
|
26
|
+
<div class="col-sm-3 form-group form-input-group">
|
|
27
|
+
<label class="font_normal_body" style="width: 35%">电话号码</label>
|
|
28
|
+
<input type="text" class="input_search" v-model="model.telnum" placeholder='电话号码'
|
|
29
|
+
condition="telnum like '%{}%'"
|
|
30
|
+
:size="model.telnum ? model.telnum.length : 7">
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div class="col-sm-3 form-group form-input-group">
|
|
34
|
+
<label class="font_normal_body" style="width: 40%">来电时间</label>
|
|
35
|
+
<datepicker placeholder="开始时间"
|
|
36
|
+
:value.sync="model.f_date"
|
|
37
|
+
v-model="model.f_date"
|
|
38
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
39
|
+
condition="outltime > '{}'"
|
|
40
|
+
></datepicker>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="col-sm-3 form-group form-input-group">
|
|
43
|
+
<label class="font_normal_body" style="width: 40%">来电时间</label>
|
|
44
|
+
<datepicker placeholder="结束时间"
|
|
45
|
+
:value.sync="model.f_end_date"
|
|
46
|
+
v-model="model.f_end_date"
|
|
47
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
48
|
+
condition="outltime < '{}'"
|
|
49
|
+
></datepicker>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="col-sm-3 form-group form-input-group">
|
|
52
|
+
<label class="font_normal_body" style="width: 35%">回访状态</label>
|
|
53
|
+
<v-select :value.sync="model.f_flghuifang"
|
|
54
|
+
:options='$parent.$parent.huifangs'
|
|
55
|
+
:value-single="true"
|
|
56
|
+
placeholder='请选择回访状态'
|
|
57
|
+
close-on-select
|
|
58
|
+
style="width: 60%"
|
|
59
|
+
></v-select>
|
|
60
|
+
</div>
|
|
61
|
+
<div style="float: right;" class="form-group span">
|
|
62
|
+
<button type="button" name="button"
|
|
63
|
+
class="button_search button_spacing" @click="search(),$dispatch('search')" style="z-index: 2">查询</button>
|
|
64
|
+
<export-excel-tel
|
|
65
|
+
:data="$parent.$parent.searchData"
|
|
66
|
+
:field="$parent.$parent.excelHeaders"
|
|
67
|
+
sqlurl="af-telephone/rs/logic/telephoneExport" sql-name="tel_singleTable_OrderBy" template-name='呼损记录导出'
|
|
68
|
+
:choose-col="true">
|
|
69
|
+
</export-excel-tel>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
</criteria>
|
|
74
|
+
<data-grid partial='list' v-ref:grid :model="model" class="list_area table_sy">
|
|
75
|
+
<template partial='head'>
|
|
76
|
+
<tr>
|
|
77
|
+
<th><nobr>电话号码</nobr></th>
|
|
78
|
+
<th><nobr>来电时间</nobr></th>
|
|
79
|
+
<th><nobr>操作</nobr></th>
|
|
80
|
+
</tr>
|
|
81
|
+
</template>
|
|
82
|
+
<template partial='body'>
|
|
83
|
+
<td style="text-align: center">{{row.telnum}}</td>
|
|
84
|
+
<td style="text-align: center">{{row.outltime}}</td>
|
|
85
|
+
<td style="text-align: center">
|
|
86
|
+
<button-link v-show="!row.f_flghuifang" type="button" class="btn btn-link" @click="$parent.$parent.$parent.playWav(row.telnum,row.id)">回拨</button-link>
|
|
87
|
+
</td>
|
|
88
|
+
</template>
|
|
89
|
+
</data-grid>
|
|
90
|
+
</criteria-paged>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
<!-- <modal :show.sync="showVisit" v-ref:modal backdrop="false">-->
|
|
95
|
+
<!-- <header slot="modal-header" class="modal-header">-->
|
|
96
|
+
<!-- </header>-->
|
|
97
|
+
<!-- <article slot="modal-body" class="modal-body">-->
|
|
98
|
+
<!-- <visit-info v-if="showVisit" :phone="wavflie" :idwavfile="idwavfile" :outltime="outltime" @show-obj="watchShow"></visit-info>-->
|
|
99
|
+
<!-- </article>-->
|
|
100
|
+
<!-- <footer slot="modal-footer" class="modal-footer">-->
|
|
101
|
+
<!-- </footer>-->
|
|
102
|
+
<!-- </modal>-->
|
|
103
|
+
</template>
|
|
104
|
+
|
|
105
|
+
<script>
|
|
106
|
+
import {HttpResetClass, PagedList} from 'vue-client'
|
|
107
|
+
import * as Util from '../../../components/Util'
|
|
108
|
+
export default {
|
|
109
|
+
title: '呼损记录',
|
|
110
|
+
data () {
|
|
111
|
+
return {
|
|
112
|
+
model: new PagedList('af-telephone/rs/sql/tel_singleTable_OrderBy', 20, {items: "'*'", tablename: "'t_records'", orderitem: "'outltime desc'" }),
|
|
113
|
+
row: null,
|
|
114
|
+
show: false,
|
|
115
|
+
wavflie : '',
|
|
116
|
+
idwavfile:'',
|
|
117
|
+
leftShow:true,
|
|
118
|
+
searchDate:Util.toStandardDateString(),
|
|
119
|
+
orderMan: '',
|
|
120
|
+
msgs: [],
|
|
121
|
+
huifangs:[{label:"全部",value:""},{label:"已回访",value:"已回访"},{label:"未回访",value:"未回访"}],
|
|
122
|
+
service: Object,
|
|
123
|
+
pendingCount: 0,
|
|
124
|
+
serobj:Object,
|
|
125
|
+
showVisit:false,
|
|
126
|
+
outltime:this.getNowFormatDate(),
|
|
127
|
+
searchData:{
|
|
128
|
+
items: "*",
|
|
129
|
+
tablename: "t_records",
|
|
130
|
+
orderitem: "outltime desc",
|
|
131
|
+
condition: '1=1'
|
|
132
|
+
},
|
|
133
|
+
excelHeaders: {
|
|
134
|
+
'telnum': '电话号码',
|
|
135
|
+
'outltime': '来电时间',
|
|
136
|
+
},
|
|
137
|
+
f_filiale:'',
|
|
138
|
+
f_filiale_id:'',
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
ready () {
|
|
142
|
+
this.f_filiale = this.$login.f.orgs
|
|
143
|
+
this.f_filiale_id = this.$login.f.orgid
|
|
144
|
+
this.$refs.paged.$refs.criteria.model.f_flghuifang = '未回访'
|
|
145
|
+
this.leftShow = (this.$parent.leftShow == undefined ? true : this.$parent.leftShow)
|
|
146
|
+
this.renderEcharts(Util.toStandardDateString())
|
|
147
|
+
// this.selfSearch()
|
|
148
|
+
|
|
149
|
+
},
|
|
150
|
+
methods: {
|
|
151
|
+
visitback(val){
|
|
152
|
+
this.showVisit = false
|
|
153
|
+
if(val == 'commit'){
|
|
154
|
+
this.$refs.paged.$refs.criteria.search()
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
searchEcharts(){
|
|
158
|
+
console.log("9334",this.searchDate)
|
|
159
|
+
this.renderEcharts(this.searchDate)
|
|
160
|
+
},
|
|
161
|
+
//获取当前日期
|
|
162
|
+
renderEcharts(date){
|
|
163
|
+
console.log("933",Util.addDate(3,date),Util.addDate(-3),date)
|
|
164
|
+
new HttpResetClass().load("post",'af-telephone/rs/sql/getLossPhoneByTime',{
|
|
165
|
+
data:{
|
|
166
|
+
groupitem:'SUBSTRING(outltime, 0, 11)',
|
|
167
|
+
condition:`outltime>='${Util.addDate(-3,date)} 00:00:00' and outltime<='${Util.addDate(3,date)} 23:59:59' and f_filiale_id = '${this.$login.f.orgid}'`
|
|
168
|
+
}
|
|
169
|
+
},{resolveMsg:null,rejectMsg:null}).then(res=>{
|
|
170
|
+
let myChart1 = this.$echarts.init(document.getElementById(("husunzhexian1")))
|
|
171
|
+
myChart1.setOption(this.getAOptions("呼损日分析表",res.data))
|
|
172
|
+
})
|
|
173
|
+
|
|
174
|
+
new HttpResetClass().load("post",'af-telephone/rs/sql/getLossPhoneByTime',{
|
|
175
|
+
data:{
|
|
176
|
+
groupitem:"SUBSTRING(outltime, 12, 2)+':00'",
|
|
177
|
+
condition:`outltime>='${Util.toStandardDateString(date)} 08:00:00' and outltime<='${Util.toStandardDateString(date)} 18:59:59' and f_filiale_id = '${this.$login.f.orgid}'`
|
|
178
|
+
}
|
|
179
|
+
},{resolveMsg:null,rejectMsg:null}).then(res=>{
|
|
180
|
+
let myChart1 = this.$echarts.init(document.getElementById(("husunzhexian2")))
|
|
181
|
+
myChart1.setOption(this.getAOptions("呼损时分析表",res.data))
|
|
182
|
+
})
|
|
183
|
+
},
|
|
184
|
+
getAOptions(title,arr){
|
|
185
|
+
|
|
186
|
+
return {
|
|
187
|
+
color: ['rgb(155,214,129)', '#73c0de'],
|
|
188
|
+
title: {
|
|
189
|
+
text: title
|
|
190
|
+
},
|
|
191
|
+
tooltip: {
|
|
192
|
+
trigger: 'axis'
|
|
193
|
+
},
|
|
194
|
+
legend: {
|
|
195
|
+
data: ['忙线', '未接']
|
|
196
|
+
},
|
|
197
|
+
grid: {
|
|
198
|
+
left: '3%',
|
|
199
|
+
right: '4%',
|
|
200
|
+
bottom: '3%',
|
|
201
|
+
containLabel: true
|
|
202
|
+
},
|
|
203
|
+
toolbox: {
|
|
204
|
+
feature: {
|
|
205
|
+
saveAsImage: {}
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
xAxis: {
|
|
209
|
+
type: 'category',
|
|
210
|
+
boundaryGap: false,
|
|
211
|
+
data: arr.map(item=>{
|
|
212
|
+
if(title === '呼损日分析表'){
|
|
213
|
+
return item.timearea.substr(5,5)
|
|
214
|
+
}
|
|
215
|
+
return item.timearea
|
|
216
|
+
})
|
|
217
|
+
},
|
|
218
|
+
yAxis: {
|
|
219
|
+
type: 'value'
|
|
220
|
+
},
|
|
221
|
+
series: [
|
|
222
|
+
{
|
|
223
|
+
name: '未接',
|
|
224
|
+
type: 'line',
|
|
225
|
+
stack: 'Total',
|
|
226
|
+
data: arr.map(item=>item.weijie)
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
name: '忙线',
|
|
230
|
+
type: 'line',
|
|
231
|
+
stack: 'Total',
|
|
232
|
+
data: arr.map(item=>item.zhanxian)
|
|
233
|
+
},
|
|
234
|
+
]
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
getNowFormatDate() {
|
|
238
|
+
var date = new Date();
|
|
239
|
+
var seperator1 = "-";
|
|
240
|
+
var month = date.getMonth() + 1;
|
|
241
|
+
var strDate = date.getDate();
|
|
242
|
+
if (month >= 1 && month <= 9) {
|
|
243
|
+
month = "0" + month;
|
|
244
|
+
}
|
|
245
|
+
if (strDate >= 0 && strDate <= 9) {
|
|
246
|
+
strDate = "0" + strDate;
|
|
247
|
+
}
|
|
248
|
+
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + ' 23:59:59'
|
|
249
|
+
return currentdate;
|
|
250
|
+
},
|
|
251
|
+
watchShow(val){
|
|
252
|
+
this.showVisit = val
|
|
253
|
+
},
|
|
254
|
+
clearVisit(){
|
|
255
|
+
this.show = false
|
|
256
|
+
},
|
|
257
|
+
playWav(val,val1){
|
|
258
|
+
if (!this.leftShow){
|
|
259
|
+
this.$parent.setUserPhone(val)
|
|
260
|
+
}
|
|
261
|
+
this.wavflie=val;
|
|
262
|
+
this.idwavfile=val1
|
|
263
|
+
this.showVisit = true
|
|
264
|
+
},
|
|
265
|
+
closemodel () {
|
|
266
|
+
this.showVisit = false
|
|
267
|
+
},
|
|
268
|
+
search(args) {
|
|
269
|
+
if(args.model.f_flghuifang){
|
|
270
|
+
if(args.model.f_flghuifang==='已回访'){
|
|
271
|
+
args.condition += ` and f_flghuifang = '已回访'`
|
|
272
|
+
}else{
|
|
273
|
+
args.condition += ` and f_flghuifang is null`
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
args.condition += " AND isnull(starttime,'') = '' AND isnull(findtime,'') != ''"
|
|
277
|
+
if(this.f_filiale_id){
|
|
278
|
+
args.condition += ` and f_filiale_id = '${this.f_filiale_id}'`
|
|
279
|
+
}
|
|
280
|
+
this.searchData.condition = args.condition
|
|
281
|
+
this.model.search(args.condition)
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
}
|
|
285
|
+
</script>
|