作者 shenhailong

电费前端充值

1 -// import axios from "axios";  
2 -// let base = 'empt-location/userPayOrder';  
3 -// var socket;  
4 -//  
5 -// function openSocket(orderNum) {  
6 -// console.log(orderNum);  
7 -// if(typeof(WebSocket) == "undefined") {  
8 -// console.log("您的浏览器不支持WebSocket");  
9 -// }else{  
10 -// console.log("您的浏览器支持WebSocket");  
11 -// //实现化WebSocket对象,指定要连接的服务器地址与端口 建立连接  
12 -// //等同于socket = new WebSocket("ws://localhost:8888/xxxx/im/25");  
13 -// //var socketUrl="${request.contextPath}/im/"+$("#userId").val();  
14 -// var socketUrl="http://localhost:10003/imserver/"+orderNum;  
15 -// socketUrl=socketUrl.replace("https","ws").replace("http","ws");  
16 -// console.log(socketUrl);  
17 -// if(socket!=null){  
18 -// socket.close();  
19 -// socket=null;  
20 -// }  
21 -// socket = new WebSocket(socketUrl);  
22 -// //打开事件  
23 -// socket.onopen = function() {  
24 -// console.log("websocket已打开");  
25 -// //socket.send("这是来自客户端的消息" + location.href + new Date());  
26 -// };  
27 -// //获得消息事件  
28 -// socket.onmessage = function(msg) {  
29 -//  
30 -// console.log(msg.data);  
31 -// return msg;  
32 -// //发现消息进入 开始处理前端触发逻辑  
33 -// };  
34 -// //关闭事件  
35 -// socket.onclose = function() {  
36 -// console.log("websocket已关闭");  
37 -// };  
38 -// //发生了错误事件  
39 -// socket.onerror = function() {  
40 -// console.log("websocket发生了错误");  
41 -// }  
42 -// }  
43 -// }  
44 -// function sendMessage() {  
45 -// if(typeof(WebSocket) == "undefined") {  
46 -// console.log("您的浏览器不支持WebSocket");  
47 -// }else {  
48 -// console.log("您的浏览器支持WebSocket");  
49 -// console.log('{"toUserId":"'+$("#toUserId").val()+'","contentText":"'+$("#contentText").val()+'"}');  
50 -// socket.send('{"toUserId":"'+$("#toUserId").val()+'","contentText":"'+$("#contentText").val()+'"}');  
51 -// }  
52 -// }  
53 -//  
54 -//  
55 -// export default {  
56 -// openSocket  
57 -// }  
58 -  
59 -const WSS_URL = `ws://localhost:10003/imserver`  
60 let Socket = '' 1 let Socket = ''
61 let setIntervalWesocketPush = null 2 let setIntervalWesocketPush = null
62 3
63 /**建立连接 */ 4 /**建立连接 */
64 export function createSocket() { 5 export function createSocket() {
65 - // var socketUrl="http://localhost:10003/imserver";  
66 - var socketUrl="http://10.5.10.98:10003/imserver"; 6 + var socketUrl="http://localhost:10003/imserver";
  7 + // var socketUrl="http://10.5.10.98:10003/imserver";
67 socketUrl=socketUrl.replace("https","ws").replace("http","ws"); 8 socketUrl=socketUrl.replace("https","ws").replace("http","ws");
68 9
69 console.log(socketUrl); 10 console.log(socketUrl);
@@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
41 <el-table-column prop="paylocationname" label="房间号码" width="150"> 41 <el-table-column prop="paylocationname" label="房间号码" width="150">
42 </el-table-column> 42 </el-table-column>
43 43
44 - <el-table-column prop="paytypeaddress" label="水表编号" width="200"> 44 + <el-table-column prop="paytypeaddress" label="水表编号" width="200">
45 </el-table-column> 45 </el-table-column>
46 46
47 <el-table-column prop="paytime" :formatter="dateForma" label="充值日期" width="160"> 47 <el-table-column prop="paytime" :formatter="dateForma" label="充值日期" width="160">
@@ -62,10 +62,10 @@ @@ -62,10 +62,10 @@
62 <div v-else="scope.row.paystatus === true" style="color: #42d885">已完成</div> 62 <div v-else="scope.row.paystatus === true" style="color: #42d885">已完成</div>
63 </template> 63 </template>
64 </el-table-column> 64 </el-table-column>
65 - <el-table-column prop="reamke3" label="水表充值操作" width="150"> 65 + <el-table-column prop="reamke3" label="充值操作" width="150">
66 <template slot-scope="scope"> 66 <template slot-scope="scope">
67 - <div v-if="scope.row.reamke3 === '1'" style="color:#42d885">水表充值成功</div>  
68 - <div v-else="scope.row.reamke3 === '0'" style="color: #ff4d51">水表充值失败</div> 67 + <div v-if="scope.row.reamke3 === '1'" style="color:#42d885">充值成功</div>
  68 + <div v-else="scope.row.reamke3 === '0'" style="color: #ff4d51">充值失败</div>
69 </template> 69 </template>
70 </el-table-column> 70 </el-table-column>
71 <el-table-column 71 <el-table-column
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 <h2 style="width: 150px" type="primary">&nbsp;&nbsp;查询房间号</h2> 7 <h2 style="width: 150px" type="primary">&nbsp;&nbsp;查询房间号</h2>
8 </div> 8 </div>
9 <br/> 9 <br/>
10 - <el-form :inline="true" :model="filters"> 10 + <el-form :inline="true" :model="filters">
11 <el-form-item prop="roomNumber"> 11 <el-form-item prop="roomNumber">
12 <el-input style="width: 700px" v-model="filters.roomNumber" placeholder="房间号" required></el-input> 12 <el-input style="width: 700px" v-model="filters.roomNumber" placeholder="房间号" required></el-input>
13 <br/><br/> 13 <br/><br/>
@@ -15,31 +15,21 @@ @@ -15,31 +15,21 @@
15 </el-form-item> 15 </el-form-item>
16 </el-form> 16 </el-form>
17 17
18 - <el-form :model="electricityForm" :rules="rules" ref="userPayForm" label-width="180px" :label-position="labelPosition">  
19 - <el-col :span="24">  
20 - <el-form-item label="透支电费">  
21 - <el-input disabled="" style="width: 200px; -webkit-text-fill-color: #070A08" v-model="electricityForm.overdraftthreshold"></el-input>  
22 - <span style="margin-right: 100px">&nbsp;元</span>  
23 - <span style="margin-right: 100px">&nbsp;状态</span>  
24 - <el-input disabled="" style="width: 200px; -webkit-text-fill-color: #070A08" v-model="electricityForm.payUserName"></el-input>  
25 - </el-form-item>  
26 - </el-col> 18 + <el-form :model="electricityForm" :rules="rules" ref="electricityForm" label-width="180px" :label-position="labelPosition">
27 <el-col :span="24"> 19 <el-col :span="24">
28 <el-form-item label="剩余电费"> 20 <el-form-item label="剩余电费">
29 - <el-input disabled="" style="width: 200px; margin-right: 100px; -webkit-text-fill-color: #070A08" v-model="electricityForm.payLocationName"></el-input> 21 + <el-input disabled="" style="width: 200px; margin-right: 100px; -webkit-text-fill-color: #070A08" v-model="electricityForm.balance"></el-input>
30 <span style="margin-right: 95px">&nbsp;充值日期</span> 22 <span style="margin-right: 95px">&nbsp;充值日期</span>
31 <el-date-picker type="date" placeholder="" v-model="electricityForm.payTime" disabled="" style="width: 200px; -webkit-text-fill-color: #070A08" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> 23 <el-date-picker type="date" placeholder="" v-model="electricityForm.payTime" disabled="" style="width: 200px; -webkit-text-fill-color: #070A08" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
32 </el-form-item> 24 </el-form-item>
33 </el-col> 25 </el-col>
34 26
35 <el-col :span="24"> 27 <el-col :span="24">
36 - <el-form-item v-if="Edistatus=='create'" label="充值金额" prop="payFees">  
37 - <el-input type="number" style="width:200px" oninput ="value=value.replace(/[^0-9.]/g,'')" v-model.number="electricityForm.payFees"></el-input>  
38 - </el-form-item>  
39 - <el-form-item v-else label="充值金额" prop="payFees">  
40 - <el-input type="number" style="width: 802px" oninput ="value=value.replace(/[^0-9]/g,'')" v-model.number="electricityForm.payFees"></el-input> 28 + <el-form-item label="充值金额" prop="payFees">
  29 + <el-input type="number" style="width:802px" oninput ="value=value.replace(/[^0-9.(0-9)]/g,'')" v-model.number="electricityForm.payFees"></el-input>
41 </el-form-item> 30 </el-form-item>
42 </el-col> 31 </el-col>
  32 + <el-button style="margin-left:885px" type="primary" v-on:click="topUpElectricty()">充值电费</el-button>
43 </el-form> 33 </el-form>
44 34
45 35
@@ -63,11 +53,8 @@ @@ -63,11 +53,8 @@
63 </el-col> 53 </el-col>
64 54
65 <el-col :span="24"> 55 <el-col :span="24">
66 - <el-form-item v-if="Edistatus=='create'" label="充值金额" prop="payFees">  
67 - <el-input type="number" style="width:200px" oninput ="value=value.replace(/[^0-9.(0-9)]/g,'')" v-model.number="waterForm.payFees"></el-input>  
68 - </el-form-item>  
69 - <el-form-item v-else label="充值金额" prop="payFees">  
70 - <el-input type="number" style="width: 802px" oninput ="value=value.replace(/[^0-9.]/g,'')" v-model.number="waterForm.payFees"></el-input> 56 + <el-form-item label="充值金额" prop="payFees">
  57 + <el-input type="number" style="width:802px" oninput ="value=value.replace(/[^0-9.(0-9)]/g,'')" v-model.number="waterForm.payFees"></el-input>
71 </el-form-item> 58 </el-form-item>
72 </el-col> 59 </el-col>
73 </el-form> 60 </el-form>
@@ -92,11 +79,8 @@ @@ -92,11 +79,8 @@
92 </el-container> 79 </el-container>
93 </template> 80 </template>
94 <script> 81 <script>
95 - import loginUserInfo from '@/api/base';  
96 import {getList, add, qrCode} from '../../api/empt/userPayOrder'; 82 import {getList, add, qrCode} from '../../api/empt/userPayOrder';
97 import ElCol from "element-ui/packages/col/src/col"; 83 import ElCol from "element-ui/packages/col/src/col";
98 - import {ediOrder, remove} from '../../api/empt/PayOrder'  
99 - // import QRCode from 'qrcodejs2'  
100 import Vue from 'vue'; 84 import Vue from 'vue';
101 import VueQriously from 'vue-qriously'; 85 import VueQriously from 'vue-qriously';
102 import {createSocket, sendWSPush, onmessageWS} from "../../api/socket"; 86 import {createSocket, sendWSPush, onmessageWS} from "../../api/socket";
@@ -112,8 +96,11 @@ @@ -112,8 +96,11 @@
112 roomNumber:'' 96 roomNumber:''
113 }, 97 },
114 electricityForm:{ 98 electricityForm:{
115 - overdraftthreshold:'', 99 + balance:'',
116 payTime:'', 100 payTime:'',
  101 + realName:'',
  102 + payFees:'',
  103 + userId:''
117 }, 104 },
118 waterForm:{ 105 waterForm:{
119 overdraftthreshold:'', 106 overdraftthreshold:'',
@@ -123,21 +110,19 @@ @@ -123,21 +110,19 @@
123 wmId:'', 110 wmId:'',
124 payFees:'', 111 payFees:'',
125 realName:'', 112 realName:'',
126 - userId:'',  
127 - realName:'' 113 + userId:''
128 }, 114 },
129 rules:{ 115 rules:{
130 payType: [ 116 payType: [
131 { required: true, message: '请选择充值类型', trigger: 'change' } 117 { required: true, message: '请选择充值类型', trigger: 'change' }
132 ], 118 ],
133 payFees:[ 119 payFees:[
134 - { required: true, message: '充值金额不能为空'}, 120 + { required: true, message: '充值金额不能为空', trigger: "blur"},
135 { type: 'number', message: '金额必须为数字值'} 121 { type: 'number', message: '金额必须为数字值'}
136 - ],  
137 - 122 + ]
138 }, 123 },
139 labelPosition:'left', 124 labelPosition:'left',
140 - Edistatus:'', 125 + // Edistatus:'',
141 shuibiao:'', 126 shuibiao:'',
142 dianbiao:'', 127 dianbiao:'',
143 dialogVisible:false, 128 dialogVisible:false,
@@ -157,9 +142,11 @@ @@ -157,9 +142,11 @@
157 let resData = res.data; 142 let resData = res.data;
158 if (resData.length > 0) { 143 if (resData.length > 0) {
159 for (var i = 0; i < resData.length; i++) { 144 for (var i = 0; i < resData.length; i++) {
160 - if (resData[i].wmId === null) { 145 + if (resData[i].wmId === "") {
161 this.electricityForm = resData[i]; 146 this.electricityForm = resData[i];
162 - this.electricityForm.payTime = new Date(); 147 + this.electricityForm.payTime = new Date()
  148 + this.electricityForm.realName = JSON.parse(sessionStorage.getItem('user')).realname;
  149 + this.electricityForm.userId = JSON.parse(sessionStorage.getItem('user')).userId;;
163 } else { 150 } else {
164 this.waterForm = resData[i]; 151 this.waterForm = resData[i];
165 this.waterForm.payTime = new Date(); 152 this.waterForm.payTime = new Date();
@@ -194,7 +181,7 @@ @@ -194,7 +181,7 @@
194 181
195 }, 182 },
196 183
197 - //充值水费 184 + // 充值水费
198 topUpWater: function () { 185 topUpWater: function () {
199 let _this = this; 186 let _this = this;
200 this.$refs.waterForm.validate((valid) => { 187 this.$refs.waterForm.validate((valid) => {
@@ -211,23 +198,76 @@ @@ -211,23 +198,76 @@
211 this.loading=false; 198 this.loading=false;
212 // var socket_ = openSocket.openSocket(res.data.data.orderNum); 199 // var socket_ = openSocket.openSocket(res.data.data.orderNum);
213 createSocket(); 200 createSocket();
  201 + // 监听ws数据响应
  202 + const getDataFunc = function(e) {
  203 + if (e.detail.data.data!==undefined){
  204 + let resultMessage = JSON.parse(e.detail.data.data);
  205 + if(resultMessage.orderNumber===res.data.data.orderNumber){
  206 + if (resultMessage.success === "Y"){
  207 + _this.dialogVisible=false;
  208 + alert("支付成功,请等待系统充值")
  209 + //带参数跳转
  210 + _this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
  211 + }else {
  212 + _this.dialogVisible=false;
  213 + alert("充值失败,网络波动,请联系管理员")
  214 + //带参数跳转
  215 + _this.$router.push({path:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
  216 + }
  217 + }
  218 + }
  219 + }
  220 + window.addEventListener('onmessageWS', getDataFunc)
  221 + }else {
  222 + this.$message({
  223 + message: '网络异常',
  224 + type: 'error'
  225 + });
  226 + }
  227 + }).catch(error => alert(error));
  228 + });
  229 + }
  230 + });
  231 + },
214 232
  233 + // 充值电费
  234 + topUpElectricty: function () {
  235 + let _this = this;
  236 + this.$refs.electricityForm.validate((valid) => {
  237 + if (valid) {
  238 + this.$confirm('确认充值吗?', '提示', {}).then(() => {
  239 + this.electricityForm.realName = JSON.parse(sessionStorage.getItem('user')).username;
  240 + let para = Object.assign({}, this.electricityForm);
  241 + this.loading=true;
  242 + qrCode(para).then((res) => {
  243 + this.addLoading = false;
  244 + if (res.data.code == 200) {
  245 + this.dialogVisible=true;
  246 + this.Qrcode = res.data.data.url;
  247 + this.loading=false;
  248 + createSocket();
215 // 监听ws数据响应 249 // 监听ws数据响应
216 const getDataFunc = function(e) { 250 const getDataFunc = function(e) {
217 console.log(e); 251 console.log(e);
  252 + console.log(e.detail.data.data);
218 if (e.detail.data.data!==undefined){ 253 if (e.detail.data.data!==undefined){
219 let resultMessage = JSON.parse(e.detail.data.data); 254 let resultMessage = JSON.parse(e.detail.data.data);
220 if(resultMessage.orderNumber===res.data.data.orderNumber){ 255 if(resultMessage.orderNumber===res.data.data.orderNumber){
221 if (resultMessage.success === "Y"){ 256 if (resultMessage.success === "Y"){
222 _this.dialogVisible=false; 257 _this.dialogVisible=false;
223 - alert("充值成功") 258 + alert("充值成功。")
  259 + //带参数跳转
  260 + _this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
  261 + }else if (resultMessage.success ==="S"){
  262 + _this.dialogVisible=false;
  263 + alert("支付成功,请等待系统充值。")
224 //带参数跳转 264 //带参数跳转
225 _this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}}); 265 _this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
226 }else { 266 }else {
227 _this.dialogVisible=false; 267 _this.dialogVisible=false;
228 - alert("充值失败") 268 + alert("充值失败,请联系管理员查看原因。")
229 //带参数跳转 269 //带参数跳转
230 - _this.$router.push({path:'订单查询',params:{orderNumber:resultMessage.orderNumber}}); 270 + _this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
231 } 271 }
232 } 272 }
233 } 273 }