作者 shenhailong

电费前端充值

// import axios from "axios";
// let base = 'empt-location/userPayOrder';
// var socket;
//
// function openSocket(orderNum) {
// console.log(orderNum);
// if(typeof(WebSocket) == "undefined") {
// console.log("您的浏览器不支持WebSocket");
// }else{
// console.log("您的浏览器支持WebSocket");
// //实现化WebSocket对象,指定要连接的服务器地址与端口 建立连接
// //等同于socket = new WebSocket("ws://localhost:8888/xxxx/im/25");
// //var socketUrl="${request.contextPath}/im/"+$("#userId").val();
// var socketUrl="http://localhost:10003/imserver/"+orderNum;
// socketUrl=socketUrl.replace("https","ws").replace("http","ws");
// console.log(socketUrl);
// if(socket!=null){
// socket.close();
// socket=null;
// }
// socket = new WebSocket(socketUrl);
// //打开事件
// socket.onopen = function() {
// console.log("websocket已打开");
// //socket.send("这是来自客户端的消息" + location.href + new Date());
// };
// //获得消息事件
// socket.onmessage = function(msg) {
//
// console.log(msg.data);
// return msg;
// //发现消息进入 开始处理前端触发逻辑
// };
// //关闭事件
// socket.onclose = function() {
// console.log("websocket已关闭");
// };
// //发生了错误事件
// socket.onerror = function() {
// console.log("websocket发生了错误");
// }
// }
// }
// function sendMessage() {
// if(typeof(WebSocket) == "undefined") {
// console.log("您的浏览器不支持WebSocket");
// }else {
// console.log("您的浏览器支持WebSocket");
// console.log('{"toUserId":"'+$("#toUserId").val()+'","contentText":"'+$("#contentText").val()+'"}');
// socket.send('{"toUserId":"'+$("#toUserId").val()+'","contentText":"'+$("#contentText").val()+'"}');
// }
// }
//
//
// export default {
// openSocket
// }
const WSS_URL = `ws://localhost:10003/imserver`
let Socket = ''
let setIntervalWesocketPush = null
/**建立连接 */
export function createSocket() {
// var socketUrl="http://localhost:10003/imserver";
var socketUrl="http://10.5.10.98:10003/imserver";
var socketUrl="http://localhost:10003/imserver";
// var socketUrl="http://10.5.10.98:10003/imserver";
socketUrl=socketUrl.replace("https","ws").replace("http","ws");
console.log(socketUrl);
... ...
... ... @@ -41,7 +41,7 @@
<el-table-column prop="paylocationname" label="房间号码" width="150">
</el-table-column>
<el-table-column prop="paytypeaddress" label="水表编号" width="200">
<el-table-column prop="paytypeaddress" label="水表编号" width="200">
</el-table-column>
<el-table-column prop="paytime" :formatter="dateForma" label="充值日期" width="160">
... ... @@ -62,10 +62,10 @@
<div v-else="scope.row.paystatus === true" style="color: #42d885">已完成</div>
</template>
</el-table-column>
<el-table-column prop="reamke3" label="水表充值操作" width="150">
<el-table-column prop="reamke3" label="充值操作" width="150">
<template slot-scope="scope">
<div v-if="scope.row.reamke3 === '1'" style="color:#42d885">水表充值成功</div>
<div v-else="scope.row.reamke3 === '0'" style="color: #ff4d51">水表充值失败</div>
<div v-if="scope.row.reamke3 === '1'" style="color:#42d885">充值成功</div>
<div v-else="scope.row.reamke3 === '0'" style="color: #ff4d51">充值失败</div>
</template>
</el-table-column>
<el-table-column
... ...
... ... @@ -7,7 +7,7 @@
<h2 style="width: 150px" type="primary">&nbsp;&nbsp;查询房间号</h2>
</div>
<br/>
<el-form :inline="true" :model="filters">
<el-form :inline="true" :model="filters">
<el-form-item prop="roomNumber">
<el-input style="width: 700px" v-model="filters.roomNumber" placeholder="房间号" required></el-input>
<br/><br/>
... ... @@ -15,31 +15,21 @@
</el-form-item>
</el-form>
<el-form :model="electricityForm" :rules="rules" ref="userPayForm" label-width="180px" :label-position="labelPosition">
<el-col :span="24">
<el-form-item label="透支电费">
<el-input disabled="" style="width: 200px; -webkit-text-fill-color: #070A08" v-model="electricityForm.overdraftthreshold"></el-input>
<span style="margin-right: 100px">&nbsp;元</span>
<span style="margin-right: 100px">&nbsp;状态</span>
<el-input disabled="" style="width: 200px; -webkit-text-fill-color: #070A08" v-model="electricityForm.payUserName"></el-input>
</el-form-item>
</el-col>
<el-form :model="electricityForm" :rules="rules" ref="electricityForm" label-width="180px" :label-position="labelPosition">
<el-col :span="24">
<el-form-item label="剩余电费">
<el-input disabled="" style="width: 200px; margin-right: 100px; -webkit-text-fill-color: #070A08" v-model="electricityForm.payLocationName"></el-input>
<el-input disabled="" style="width: 200px; margin-right: 100px; -webkit-text-fill-color: #070A08" v-model="electricityForm.balance"></el-input>
<span style="margin-right: 95px">&nbsp;充值日期</span>
<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>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item v-if="Edistatus=='create'" label="充值金额" prop="payFees">
<el-input type="number" style="width:200px" oninput ="value=value.replace(/[^0-9.]/g,'')" v-model.number="electricityForm.payFees"></el-input>
</el-form-item>
<el-form-item v-else label="充值金额" prop="payFees">
<el-input type="number" style="width: 802px" oninput ="value=value.replace(/[^0-9]/g,'')" v-model.number="electricityForm.payFees"></el-input>
<el-form-item label="充值金额" prop="payFees">
<el-input type="number" style="width:802px" oninput ="value=value.replace(/[^0-9.(0-9)]/g,'')" v-model.number="electricityForm.payFees"></el-input>
</el-form-item>
</el-col>
<el-button style="margin-left:885px" type="primary" v-on:click="topUpElectricty()">充值电费</el-button>
</el-form>
... ... @@ -63,11 +53,8 @@
</el-col>
<el-col :span="24">
<el-form-item v-if="Edistatus=='create'" label="充值金额" prop="payFees">
<el-input type="number" style="width:200px" oninput ="value=value.replace(/[^0-9.(0-9)]/g,'')" v-model.number="waterForm.payFees"></el-input>
</el-form-item>
<el-form-item v-else label="充值金额" prop="payFees">
<el-input type="number" style="width: 802px" oninput ="value=value.replace(/[^0-9.]/g,'')" v-model.number="waterForm.payFees"></el-input>
<el-form-item label="充值金额" prop="payFees">
<el-input type="number" style="width:802px" oninput ="value=value.replace(/[^0-9.(0-9)]/g,'')" v-model.number="waterForm.payFees"></el-input>
</el-form-item>
</el-col>
</el-form>
... ... @@ -92,11 +79,8 @@
</el-container>
</template>
<script>
import loginUserInfo from '@/api/base';
import {getList, add, qrCode} from '../../api/empt/userPayOrder';
import ElCol from "element-ui/packages/col/src/col";
import {ediOrder, remove} from '../../api/empt/PayOrder'
// import QRCode from 'qrcodejs2'
import Vue from 'vue';
import VueQriously from 'vue-qriously';
import {createSocket, sendWSPush, onmessageWS} from "../../api/socket";
... ... @@ -112,8 +96,11 @@
roomNumber:''
},
electricityForm:{
overdraftthreshold:'',
balance:'',
payTime:'',
realName:'',
payFees:'',
userId:''
},
waterForm:{
overdraftthreshold:'',
... ... @@ -123,21 +110,19 @@
wmId:'',
payFees:'',
realName:'',
userId:'',
realName:''
userId:''
},
rules:{
payType: [
{ required: true, message: '请选择充值类型', trigger: 'change' }
],
payFees:[
{ required: true, message: '充值金额不能为空'},
{ required: true, message: '充值金额不能为空', trigger: "blur"},
{ type: 'number', message: '金额必须为数字值'}
],
]
},
labelPosition:'left',
Edistatus:'',
// Edistatus:'',
shuibiao:'',
dianbiao:'',
dialogVisible:false,
... ... @@ -157,9 +142,11 @@
let resData = res.data;
if (resData.length > 0) {
for (var i = 0; i < resData.length; i++) {
if (resData[i].wmId === null) {
if (resData[i].wmId === "") {
this.electricityForm = resData[i];
this.electricityForm.payTime = new Date();
this.electricityForm.payTime = new Date()
this.electricityForm.realName = JSON.parse(sessionStorage.getItem('user')).realname;
this.electricityForm.userId = JSON.parse(sessionStorage.getItem('user')).userId;;
} else {
this.waterForm = resData[i];
this.waterForm.payTime = new Date();
... ... @@ -194,7 +181,7 @@
},
//充值水费
// 充值水费
topUpWater: function () {
let _this = this;
this.$refs.waterForm.validate((valid) => {
... ... @@ -211,23 +198,76 @@
this.loading=false;
// var socket_ = openSocket.openSocket(res.data.data.orderNum);
createSocket();
// 监听ws数据响应
const getDataFunc = function(e) {
if (e.detail.data.data!==undefined){
let resultMessage = JSON.parse(e.detail.data.data);
if(resultMessage.orderNumber===res.data.data.orderNumber){
if (resultMessage.success === "Y"){
_this.dialogVisible=false;
alert("支付成功,请等待系统充值")
//带参数跳转
_this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}else {
_this.dialogVisible=false;
alert("充值失败,网络波动,请联系管理员")
//带参数跳转
_this.$router.push({path:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}
}
}
}
window.addEventListener('onmessageWS', getDataFunc)
}else {
this.$message({
message: '网络异常',
type: 'error'
});
}
}).catch(error => alert(error));
});
}
});
},
// 充值电费
topUpElectricty: function () {
let _this = this;
this.$refs.electricityForm.validate((valid) => {
if (valid) {
this.$confirm('确认充值吗?', '提示', {}).then(() => {
this.electricityForm.realName = JSON.parse(sessionStorage.getItem('user')).username;
let para = Object.assign({}, this.electricityForm);
this.loading=true;
qrCode(para).then((res) => {
this.addLoading = false;
if (res.data.code == 200) {
this.dialogVisible=true;
this.Qrcode = res.data.data.url;
this.loading=false;
createSocket();
// 监听ws数据响应
const getDataFunc = function(e) {
console.log(e);
console.log(e.detail.data.data);
if (e.detail.data.data!==undefined){
let resultMessage = JSON.parse(e.detail.data.data);
if(resultMessage.orderNumber===res.data.data.orderNumber){
if (resultMessage.success === "Y"){
_this.dialogVisible=false;
alert("充值成功")
alert("充值成功。")
//带参数跳转
_this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}else if (resultMessage.success ==="S"){
_this.dialogVisible=false;
alert("支付成功,请等待系统充值。")
//带参数跳转
_this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}else {
_this.dialogVisible=false;
alert("充值失败")
alert("充值失败,请联系管理员查看原因。")
//带参数跳转
_this.$router.push({path:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
_this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}
}
}
... ...