作者 shenhailong

修改订单列表显示条数 修改充值界面管理员跟用户显示区别 home 增加修改密码更新缓存等操作 登录后跳转缴费界面

... ... @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>流浪地球项目</title>
<title>郑州机场集团水电缴费平台</title>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
</head>
... ...
... ... @@ -4,7 +4,7 @@ let setIntervalWesocketPush = null
/**建立连接 */
export function createSocket() {
var socketUrl="http://localhost:10003/imserver";
// var socketUrl="http://10.5.10.98:10003/imserver";
// var socketUrl="http://218.28.199.138:10003/imserver";
socketUrl=socketUrl.replace("https","ws").replace("http","ws");
console.log(socketUrl);
... ...
... ... @@ -8,8 +8,12 @@ export const removeUser = params => { return http.del(`${baseUrl}/del`,params)};
export const batchRemoveUser = params => { return http.del(`${baseUrl}/batchremove`, { params: params }); };
export const editPass = params => { return http.put(`${baseUrl}/password`,params)};
export const editUser = params => { return http.put(`${baseUrl}/edit`,params)};
export const addUser = params => { return http.post(`${baseUrl}/add`,params)};
export const setUserRole = params => { return http.put(`${baseUrl}/roleset`,params)};
\ No newline at end of file
export const setUserRole = params => { return http.put(`${baseUrl}/roleset`,params)};
export const resetToken = params => { return http.put(`${baseUrl}/resetToken`,params)};
\ No newline at end of file
... ...
... ... @@ -84,13 +84,15 @@ axios.interceptors.response.use(
router.push({
path: "/login"
});
message({
// 饿了么的消息弹窗组件
message: '缺少身份验证',
type: "error"
});
} else {
// 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
if (error.response.status === 401) {
router.push({
path: "/login"
});
message({
// 饿了么的消息弹窗组件
message: '授权超时,或未授权,请重新登录',
... ... @@ -100,13 +102,17 @@ axios.interceptors.response.use(
// 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
if (error.response.status === 403) {
router.push({
path: "/error/403"
message({
// 饿了么的消息弹窗组件
message: '网络异常',
type: "error"
});
}
if (error.response.status === 500) {
router.push({
path: "/error/500"
message({
// 饿了么的消息弹窗组件
message: '网络异常',
type: "error"
});
}
if (error.response.status === 502) {
... ... @@ -115,8 +121,10 @@ axios.interceptors.response.use(
});
}
if (error.response.status === 404) {
router.push({
path: "/error/404"
message({
// 饿了么的消息弹窗组件
message: '访问页面不存在',
type: "error"
});
}
}
... ...
... ... @@ -14,12 +14,32 @@
<span class="el-dropdown-link userinfo-inner"><img :src="this.sysUserAvatar" /> {{sysUserName}}</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>我的消息</el-dropdown-item>
<el-dropdown-item>设置</el-dropdown-item>
<el-dropdown-item @click.native="editPass">修改密码</el-dropdown-item>
<el-dropdown-item @click.native="updateCache">更新缓存</el-dropdown-item>
<el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-col>
</el-col>
<el-col>
<el-dialog title="修改密码" :visible.sync="dialogFormVisible">
<el-form :model="resetForm" status-icon :rules="resetFormRules" ref="resetForm" label-width="100px">
<el-form-item label="用户名" prop="name">
<span>{{sysUserName}}</span>
</el-form-item>
<el-form-item label="新密码" prop="newpwd">
<el-input type="password" v-model="resetForm.newpwd" autocomplete="off" placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="renewpwd">
<el-input type="password" v-model="resetForm.renewpwd" auto-complete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitEdit('resetForm')" style="float:right">提 交</el-button>
</el-form-item>
</el-form>
</el-dialog>
</el-col>
<el-col :span="24" class="main">
<aside :class="collapsed?'menu-collapsed':'menu-expanded'">
<!--导航菜单-->
... ... @@ -72,6 +92,8 @@
<script>
import rt from '../routes'
import { editPass,resetToken} from '../api/user';
import ElFormItem from "element-ui/packages/form/src/form-item";
export default {
provide() {
... ... @@ -79,11 +101,55 @@
reload: this.reload
}
},
components: {ElFormItem},
data() {
var validatePass = (rule, value, callback) => {
if (!value) {
callback(new Error('请输入新密码'));
}else {
var ls=0;
if(value.match(/([a-z])+/)){
ls++;
} if(value.match(/([0-9])+/)){
ls++;
} if(value.match(/([A-Z])+/)){
ls++;
} if((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)){
ls++;
} if (value.toString().length < 8 || value.toString().length > 20) {
callback(new Error('密码长度为8 - 20个字符'));
ls=0;
} if(value.match(/([\u4E00-\u9FA5])+/)){
callback(new Error('不能包含中文字符'));
ls=0;
}
switch (ls) {
case 0: this.passwordPercent = 0;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
case 1: this.passwordPercent = 33;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
case 2: this.passwordPercent = 66;callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));break;
case 3:
case 4: this.passwordPercent = 100;break;
default: this.passwordPercent = 0;break;
}
callback();
}
};
var validatePass2 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value !== this.resetForm.newpwd) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
};
return {
sysName:'易通快速通关申报管理系统',
collapsed:false,
sysUserName: '',
sysUserId:'',
sysUserAvatar: '',
isRouterAlive: true,
form: {
... ... @@ -95,7 +161,24 @@
type: [],
resource: '',
desc: ''
}
},
dialogFormVisible:false,
resetForm: {
newpwd: '',
renewpwd: '',
},
resetFormRules: {
newpwd: [
{ required: true, validator: validatePass, trigger: 'blur' }
],
renewpwd: [
{ required: true, validator: validatePass2, trigger: 'blur' }
]
},
editForm: {
userId: '',
password: '',
},
}
},
methods: {
... ... @@ -109,6 +192,53 @@
})
})
},
editPass:function(){
this.dialogFormVisible=true;
},
updateCache:function(){
resetToken().then( res =>{
let response = res.data;
if (response.code === '200'){
this.$notify({
title: '成功',
message: '缓存更新成功',
type: 'success'
});
}else{
this.$notify.error({
title: '失败',
message: '缓存更新失败'
});
}
})
},
submitEdit(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
this.editForm.userId=this.sysUserId;
this.editForm.password=this.resetForm.renewpwd;
editPass(this.editForm).then(res=>{
let response=res.data;
if(response.code=='200'){
this.$notify({
title: '密码修改成功',
message: '密码修改成功,退出请重新登录',
type: 'success'
});
this.dialogFormVisible=false;
}else{
this.$notify.error({
title: '密码修改失败',
message: '密码修改失败!!!'
});
}
});
} else {
console.log('error submit!!');
return false;
}
});
},
onSubmit() {
console.log('submit!');
},
... ... @@ -155,6 +285,7 @@
if (user) {
user = JSON.parse(user);
this.sysUserName = user.username || '';
this.sysUserId=user.userId||'';
this.sysUserAvatar = user.userface || '/static/images/faceDefault.jpg';
}
//操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由
... ... @@ -240,6 +371,8 @@
aside {
flex:0 0 230px;
width: 230px;
overflow-y: scroll;
background: #606060;
// position: absolute;
// top: 0px;
// bottom: 0px;
... ...
... ... @@ -136,7 +136,7 @@
console.log("user:");
console.log(_this.$router.options.routes);
_this.$router.push({path: '/main'});
_this.$router.push({path: '/userPayOrder'});
}
}).catch(error => {
this.$message({
... ...
... ... @@ -101,7 +101,7 @@
},
total: 0,
pageNum: 1,
pageSize: 5,
pageSize: 30,
listLoading: false,
pickerOptions: {
shortcuts: [{
... ...
... ... @@ -7,9 +7,10 @@
<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>
<el-input v-if="username == 'admin'" style="width: 700px" v-model="filters.roomNumber" placeholder="房间号" required></el-input>
<el-input v-else="" disabled style="width: 700px" v-model="filters.roomNumber" placeholder="房间号" required></el-input>
<br/><br/>
<el-button style="width: 150px" type="primary" v-on:click="getdefaultData()">查询</el-button>
</el-form-item>
... ... @@ -91,9 +92,10 @@
components: {ElButton},
data() {
return{
username: JSON.parse(sessionStorage.getItem('user')).username,
loading:false,
filters:{
roomNumber:''
roomNumber: JSON.parse(sessionStorage.getItem('user')).username
},
electricityForm:{
balance:'',
... ... @@ -120,6 +122,7 @@
{ required: true, message: '充值金额不能为空', trigger: "blur"},
{ type: 'number', message: '金额必须为数字值'}
]
},
labelPosition:'left',
// Edistatus:'',
... ... @@ -145,7 +148,7 @@
this.electricityForm = resData[i];
this.electricityForm.payTime = new Date()
this.electricityForm.realName = JSON.parse(sessionStorage.getItem('user')).realname;
this.electricityForm.userId = JSON.parse(sessionStorage.getItem('user')).userId;;
this.electricityForm.userId = JSON.parse(sessionStorage.getItem('user')).userId;
} else {
this.waterForm = resData[i];
this.waterForm.payTime = new Date();
... ... @@ -155,10 +158,10 @@
}
this.loading=false;
} else {
this.$alert('未查询到该房间的设备信息', '提示', {
confirmButtonText: '确定',
callback: action => {
}
this.$message({
showClose: true,
message: '未查询到该房间的设备信息',
type: 'error'
});
}
this.loading = false;
... ... @@ -168,10 +171,16 @@
if (null != error.response && error.response !== undefined) {
let status = error.response.status;
let msg = error.response.statusText;
alert("请输入所查询的房号");
this.$message({
showClose: true,
message: '请输入查询的房间号',
type: 'warning'
});
} else {
this.$alert('请输入房间号', '提示', {
confirmButtonText: '确定',
this.$message({
showClose: true,
message: '请输入正确的房间号',
type: 'error'
});
}
... ... @@ -204,12 +213,20 @@
if(resultMessage.orderNumber===res.data.data.orderNumber){
if (resultMessage.success === "Y"){
_this.dialogVisible=false;
alert("支付成功,请等待系统充值")
this.$message({
showClose: true,
message: '支付成功,请等待系统充值',
type: 'warning'
});
//带参数跳转
_this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}else {
_this.dialogVisible=false;
alert("充值失败,网络波动,请联系管理员")
this.$message({
showClose: true,
message: '充值失败,网络波动,请联系管理员',
type: 'error'
});
//带参数跳转
_this.$router.push({path:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}
... ... @@ -252,17 +269,29 @@
if(resultMessage.orderNumber===res.data.data.orderNumber){
if (resultMessage.success === "Y"){
_this.dialogVisible=false;
alert("充值成功。")
this.$message({
showClose: true,
message: '充值成功',
type: 'success'
});
//带参数跳转
_this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}else if (resultMessage.success ==="S"){
_this.dialogVisible=false;
alert("支付成功,请等待系统充值。")
this.$message({
showClose: true,
message: '支付成功,请等待系统充值',
type: 'warning'
});
//带参数跳转
_this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}else {
_this.dialogVisible=false;
alert("充值失败,请联系管理员查看原因。")
this.$message({
showClose: true,
message: '充值失败,请联系管理员查看原因',
type: 'error'
});
//带参数跳转
_this.$router.push({name:'订单查询',params:{orderNumber:resultMessage.orderNumber}});
}
... ... @@ -283,7 +312,65 @@
},
},
mounted(){
let para={}
if (this.filters.roomNumber == 'admin'){
para = {
roomNumber: "1101",
};
}else {
para = {
roomNumber: this.filters.roomNumber,
};
}
this.loading=true;
this.electricityForm.balance="";
getList(para).then((res) => {
let resData = res.data;
if (resData.length > 0) {
for (var i = 0; i < resData.length; i++) {
if (resData[i].wmId === "") {
this.electricityForm = resData[i];
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();
this.waterForm.realName = JSON.parse(sessionStorage.getItem('user')).realname;
this.waterForm.userId = JSON.parse(sessionStorage.getItem('user')).userId;
}
}
this.loading=false;
} else {
this.$message({
showClose: true,
message: '未查询到该房间的设备信息',
type: 'error'
});
}
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;
this.$message({
showClose: true,
message: '请输入查询的房间号',
type: 'warning'
});
} else {
this.$message({
showClose: true,
message: '请输入正确的房间号',
type: 'error'
});
}
});
}
}
</script>
\ No newline at end of file
... ...