userPayOrder.vue 10.6 KB
<template>
    <el-container>
        <el-main >
            <el-row type="flex" class="row-bg" justify="center" v-loading="loading">
                <el-col :span="20">
                    <div>
                        <h2 style="width: 150px" type="primary">&nbsp;&nbsp;查询房间号</h2>
                    </div>
                    <br/>
                    <el-form :inline="true"  :model="filters">
                        <el-form-item prop="roomNumber">
                            <el-input style="width: 700px" v-model="filters.roomNumber" placeholder="房间号"></el-input>
                            <br/><br/>
                            <el-button style="width: 150px" type="primary" v-on:click="getdefaultData()">查询</el-button>
                        </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-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>
                                <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>
                        </el-col>
                    </el-form>


                    <el-form :model="waterForm" :rules="rules"   ref="waterForm"  label-width="180px" :label-position="labelPosition">
                        <input type="hidden" v-model="waterForm.wmId" />
                        <el-col :span="24">
                            <el-form-item label="透支水费">
                                <el-input disabled="" style="width: 200px; -webkit-text-fill-color: #070A08" v-model="waterForm.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="waterForm.wmFmstate"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="24">
                            <el-form-item label="剩余水费">
                                <el-input disabled="" style="width: 200px; -webkit-text-fill-color: #070A08; margin-right: 100px;" v-model="waterForm.subtraction"></el-input>
                                <span style="margin-right: 95px">&nbsp;充值日期</span>
                                <el-date-picker type="date" placeholder="" v-model="waterForm.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="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>
                        </el-col>
                    </el-form>

                    <el-button style="margin-left:885px" type="primary" v-on:click="topUpWater()">充值水费</el-button>
                </el-col>
            </el-row>
            <el-dialog
                    title="扫码支付"
                    :visible.sync="dialogVisible"
                    width="15%"
                    >
                <template>
                    <div>
                        <qriously :value="Qrcode" :size="200" />
                    </div>
                </template>
            </el-dialog>
        </el-main>
    </el-container>
</template>
<style scoped>

</style>
<script>
    import loginUserInfo from '@/api/base'
    import {getList, add, qrCode} from '../../api/empt/userPayOrder';
    import ElCol from "element-ui/packages/col/src/col"
    // import QRCode from 'qrcodejs2'
    import Vue from 'vue'
    import VueQriously from 'vue-qriously'
    Vue.use(VueQriously)
    export default {
        components: {ElCol},
        data() {
            return{
                loading:false,
                filters:{
                    roomNumber:''
                },
                electricityForm:{
                    overdraftthreshold:'',
                    payTime:'',
                },
                waterForm:{
                    overdraftthreshold:'',
                    wmFmstate:'',
                    payTime:'',
                    subtraction:'',
                    wmId:'',
                    payFees:'',
                    realName:'',
                    userId:''
                },
                rules:{
                    payType: [
                        { required: true, message: '请选择充值类型', trigger: 'change' }
                    ],
                    payFees:[
                        { required: true, message: '充值金额不能为空'},
                        { type: 'number', message: '金额必须为数字值'}
                    ],

                },
                labelPosition:'left',
                Edistatus:'',
                shuibiao:'',
                dianbiao:'',
                dialogVisible:false,
                Qrcode: ''
            }
        },
        methods:{

            getdefaultData() {

                let para = {
                    roomNumber: this.filters.roomNumber
                };

                this.loading=true;
                getList(para).then((res) => {
                    let resData = res.data;
                    if (resData.length > 0) {
                        for (var i = 0; i < resData.length; i++) {
                            if (resData[i].wmId === null) {

                                this.electricityForm = resData[i];
                                this.electricityForm.payTime = new Date();
                            } else {
                                this.waterForm = resData[i];
                                this.waterForm.payTime = new Date();
                                this.waterForm.realName = JSON.parse(sessionStorage.getItem('user')).realname;
                                this.waterForm.userId = JSON.parse(sessionStorage.getItem('user')).userId;
                            }
                        }
                        this.loading=false;
                    } else {
                        this.$alert('请输入正确的房间号', '提示', {
                            confirmButtonText: '确定',
                            callback: action => {
                            }
                        });
                    }


                    this.loading = false;
                    //NProgress.done();
                }).catch((error) => {
                    this.loading = false;
                    if (null != error.response && error.response !== undefined) {
                        let status = error.response.status;
                        let msg = error.response.statusText;
                        alert("请输入所查询的房号1");
                    } else {
                        this.$alert('请输入房间号', '提示', {
                            confirmButtonText: '确定',
                        });
                    }

                });


            },

            //充值水费
            topUpWater: function () {

                this.$refs.waterForm.validate((valid) => {
                    if (valid) {
                        this.$confirm('确认充值吗?', '提示', {}).then(() => {
                            let para = Object.assign({}, this.waterForm);
                            this.loading=true;
                            qrCode(para).then((res) => {
                                this.addLoading = false;
                                if (res.data.code == 200) {
                                    this.dialogVisible=true;
                                    this.Qrcode = res.data.data;
                                    this.loading=false;
                                }else {
                                    this.$message({
                                        message: '网络异常',
                                        type: 'error'
                                    });
                                }
                            }).catch(error => alert(error));
                        });
                    }
                });
            },
        },

        mounted(){

        }
    }
</script>