2024年10月10日 1.0.4 增加解除绑定页面
parent
f7c022e549
commit
a3e9708645
@ -0,0 +1,56 @@
|
||||
package com.nmgs.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nmgs.mapper.UnBindMapper;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/UnBind")
|
||||
public class UnBindController {
|
||||
|
||||
@Resource
|
||||
private UnBindMapper unBindMapper;
|
||||
|
||||
@PostMapping("getPage")
|
||||
@ResponseBody
|
||||
public Object getPage(@RequestBody Map<String, Object> params) {
|
||||
Integer pageNum = (Integer) params.get("pageNum");
|
||||
Integer pageSize = (Integer) params.get("pageSize");
|
||||
Page<Map<String, Object>> page = new Page<>(pageNum, pageSize);
|
||||
page = unBindMapper.getPage(page, params);
|
||||
return page;
|
||||
}
|
||||
|
||||
@PostMapping("deleteData")
|
||||
@ResponseBody
|
||||
public Object deleteData(@RequestBody List<Map<String, Object>> params) {
|
||||
int a=0;
|
||||
for (Map<String, Object> param : params) {
|
||||
a+=unBindMapper.deleteData(param);
|
||||
}
|
||||
return a;
|
||||
}
|
||||
@PostMapping("getWXCarColorList")
|
||||
@ResponseBody
|
||||
public Object getWXCarColorList(@RequestBody Map<String, Object> params) {
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("CarType",unBindMapper.getWXCarTypeList());
|
||||
map.put("CarColor",unBindMapper.getWXCarColorList());
|
||||
return map;
|
||||
}
|
||||
@PostMapping("crossData")
|
||||
@ResponseBody
|
||||
public Object crossData(@RequestBody Map<String, Object> params) {
|
||||
return unBindMapper.crossData(params);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.nmgs.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository
|
||||
@Mapper
|
||||
public interface UnBindMapper{
|
||||
|
||||
Page<Map<String, Object>> getPage(Page<Map<String, Object>> page,@Param("params") Map<String, Object> params);
|
||||
|
||||
int deleteData(Map<String, Object> params);
|
||||
|
||||
List<Map<String, Object>> getWXCarColorList();
|
||||
List<Map<String, Object>> getWXCarTypeList();
|
||||
|
||||
int crossData(Map<String, Object> params);
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nmgs.mapper.UnBindMapper">
|
||||
<select id="getPage" resultType="java.util.Map">
|
||||
SELECT a.vehicleid,
|
||||
a.vehiclecolor,
|
||||
a.wxid,
|
||||
c.wxname,
|
||||
a.ismanager,
|
||||
b.vehicletype,
|
||||
b.phoneNumber,
|
||||
b.freetype,
|
||||
b.freeStartTime,
|
||||
b.freeEndTime,
|
||||
b.freeTimes
|
||||
FROM wx_vehiclewx_bind a
|
||||
LEFT JOIN wx_vehiclebind b ON a.vehicleid = b.vehicleid
|
||||
AND a.vehiclecolor = b.vehiclecolor
|
||||
LEFT JOIN wx_vehiclewxdata c ON a.wxid = c.wxid
|
||||
<where>
|
||||
<if test="params.wxname!=null and params.wxname!=''">
|
||||
<bind name="wxname" value="'%'+params.wxname+'%'"/>
|
||||
and c.wxname like #{wxname}
|
||||
</if>
|
||||
<if test="params.vehicleid!=null and params.vehicleid!=''">
|
||||
<bind name="vehicleid" value="'%'+params.vehicleid+'%'"/>
|
||||
and a.vehicleid like #{vehicleid}
|
||||
</if>
|
||||
<if test="params.vehiclecolor!=null and params.vehiclecolor!=''">
|
||||
and a.vehiclecolor = #{params.vehiclecolor}
|
||||
</if>
|
||||
<if test="params.ismanager!=null and params.ismanager!=''">
|
||||
and a.ismanager = #{params.ismanager}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="getWXCarColorList" resultType="java.util.Map">
|
||||
SELECT *
|
||||
FROM atype_text
|
||||
</select>
|
||||
<select id="getWXCarTypeList" resultType="java.util.Map">
|
||||
SELECT *
|
||||
FROM type_text
|
||||
</select>
|
||||
<delete id="deleteData">
|
||||
DELETE
|
||||
FROM wx_vehiclewx_bind
|
||||
WHERE vehicleid = #{vehicleid}
|
||||
AND vehiclecolor = #{vehiclecolor}
|
||||
AND ismanager = #{ismanager}
|
||||
AND wxid = #{wxid}
|
||||
</delete>
|
||||
<update id="crossData">
|
||||
update wx_vehiclewx_bind set ismanager= 0
|
||||
WHERE vehicleid = #{vehicleid}
|
||||
AND vehiclecolor = #{vehiclecolor}
|
||||
AND ismanager = #{ismanager}
|
||||
AND wxid = #{wxid}
|
||||
</update>
|
||||
</mapper>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nmgs.mapper.UnBindMapper">
|
||||
<select id="getPage" resultType="java.util.Map">
|
||||
SELECT a.vehicleid,
|
||||
a.vehiclecolor,
|
||||
a.wxid,
|
||||
c.wxname,
|
||||
a.ismanager,
|
||||
b.vehicletype,
|
||||
b.phoneNumber,
|
||||
b.freetype,
|
||||
b.freeStartTime,
|
||||
b.freeEndTime,
|
||||
b.freeTimes
|
||||
FROM wx_vehiclewx_bind a
|
||||
LEFT JOIN wx_vehiclebind b ON a.vehicleid = b.vehicleid
|
||||
AND a.vehiclecolor = b.vehiclecolor
|
||||
LEFT JOIN wx_vehiclewxdata c ON a.wxid = c.wxid
|
||||
<where>
|
||||
<if test="params.wxname!=null and params.wxname!=''">
|
||||
<bind name="wxname" value="'%'+params.wxname+'%'"/>
|
||||
and c.wxname like #{wxname}
|
||||
</if>
|
||||
<if test="params.vehicleid!=null and params.vehicleid!=''">
|
||||
<bind name="vehicleid" value="'%'+params.vehicleid+'%'"/>
|
||||
and a.vehicleid like #{vehicleid}
|
||||
</if>
|
||||
<if test="params.vehiclecolor!=null and params.vehiclecolor!=''">
|
||||
and a.vehiclecolor = #{params.vehiclecolor}
|
||||
</if>
|
||||
<if test="params.ismanager!=null and params.ismanager!=''">
|
||||
and a.ismanager = #{params.ismanager}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="getWXCarColorList" resultType="java.util.Map">
|
||||
SELECT *
|
||||
FROM atype_text
|
||||
</select>
|
||||
<select id="getWXCarTypeList" resultType="java.util.Map">
|
||||
SELECT *
|
||||
FROM type_text
|
||||
</select>
|
||||
<delete id="deleteData">
|
||||
DELETE
|
||||
FROM wx_vehiclewx_bind
|
||||
WHERE vehicleid = #{vehicleid}
|
||||
AND vehiclecolor = #{vehiclecolor}
|
||||
AND ismanager = #{ismanager}
|
||||
AND wxid = #{wxid}
|
||||
</delete>
|
||||
<update id="crossData">
|
||||
update wx_vehiclewx_bind set ismanager= 0
|
||||
WHERE vehicleid = #{vehicleid}
|
||||
AND vehiclecolor = #{vehiclecolor}
|
||||
AND ismanager = #{ismanager}
|
||||
AND wxid = #{wxid}
|
||||
</update>
|
||||
</mapper>
|
||||
@ -1,5 +0,0 @@
|
||||
序号 日期 版本号 说明
|
||||
1 2023年11月27日 1.0.0 初始版本号
|
||||
2 2023年11月29日 1.0.1 增加微信解绑申请操作
|
||||
3 2024年04月16日 1.0.2 增加使用次数及剩余次数
|
||||
4 2024年07月02日 1.0.3 优化查询语句
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,32 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<link rel="icon" href="/favicon.ico"/>
|
||||
|
||||
<title></title>
|
||||
<script type="module" crossorigin src="./assets/index.e4d9b69f.js"></script>
|
||||
<link rel="stylesheet" href="./assets/index.c4ceb410.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">
|
||||
<div class="loading">
|
||||
<div class="loading-wrap">
|
||||
<div class="loading-dots">
|
||||
<span class="dot dot-spin">
|
||||
<i></i>
|
||||
<i></i>
|
||||
<i></i>
|
||||
<i></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="loading-title">
|
||||
正在缓冲...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="../static/bmapOffline/map_load.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,276 @@
|
||||
<template>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<div style="padding: 10px 0">
|
||||
<el-input style="width: 150px;margin-left: 0.5%" placeholder="绑定人" v-model="searchForm.wxname"></el-input>
|
||||
<el-input style="width: 150px;margin-left: 0.5%" placeholder="车牌号" v-model="searchForm.vehicleid"></el-input>
|
||||
<el-select v-model="searchForm.vehiclecolor" class="m-2" :clearable="true" placeholder="车牌颜色"
|
||||
style="width: 150px;margin-left: 0.5%">
|
||||
<el-option
|
||||
v-for="item in CarColorList"
|
||||
:label="item.text"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select v-model="searchForm.ismanager" class="m-2" :clearable="true" placeholder="审核状态"
|
||||
style="width: 150px;margin-left: 0.5%">
|
||||
<el-option
|
||||
label="非车主用户"
|
||||
:value="0"
|
||||
/>
|
||||
<el-option
|
||||
label="车主"
|
||||
:value="1"
|
||||
/>
|
||||
<el-option
|
||||
label="已拒绝"
|
||||
:value="2"
|
||||
/>
|
||||
<el-option
|
||||
label="待审核"
|
||||
:value="3"
|
||||
/>
|
||||
</el-select>
|
||||
<el-button type="primary" style="margin-left: 0.5%;margin-top: 0;" @click="network">
|
||||
<el-icon style="vertical-align: middle;">
|
||||
<search/>
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle;"> 搜索 </span>
|
||||
</el-button>
|
||||
<el-button type="primary" style="margin-left: 0.5%;margin-top: 0;" @click="reNetwork">
|
||||
<el-icon>
|
||||
<Refresh/>
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle;"> 重置 </span>
|
||||
</el-button>
|
||||
<el-button type="danger" style="margin-top: 0;" @click="deleteSelect(null)">
|
||||
<el-icon>
|
||||
<Delete/>
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle;"> 删除 </span>
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table :data="tableData" border
|
||||
:highlight-current-row="true"
|
||||
style="width: 100%;"
|
||||
:height=myHeight
|
||||
@selection-change="handleSelectionChange"
|
||||
v-loading="tableLoading"
|
||||
>
|
||||
<el-table-column :resizable="false" :fixed="true" type="selection" width="50" align="center"></el-table-column>
|
||||
<el-table-column prop="wxname" label="绑定人" align="center"></el-table-column>
|
||||
<el-table-column prop="vehicleid" label="车牌号码" align="center"></el-table-column>
|
||||
<el-table-column prop="vehiclecolor" label="车牌颜色" align="center" :formatter="carColor"></el-table-column>
|
||||
<el-table-column prop="ismanager" label="状态" align="center" :formatter="statusType"></el-table-column>
|
||||
<el-table-column prop="vehicletype" label="车型" align="center" :formatter="carType"></el-table-column>
|
||||
<el-table-column prop="phoneNumber" label="备注" align="center"></el-table-column>
|
||||
<el-table-column :resizable="false" prop="right" label="操作" width="130" align="center">
|
||||
<template v-slot="scope">
|
||||
<el-button style="width: 48%;margin-left: 2%;margin-top: 2%" @click="deleteSelect(scope.row)" type="danger"
|
||||
size="default" :icon="Delete">
|
||||
</el-button>
|
||||
<el-button style="width: 48%;margin-left: 2%;margin-top: 2%" @click="toCrossData(scope.row)" type="success"
|
||||
size="default" :icon="Select" :disabled="scope.row.ismanager!==3">
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-config-provider :locale="locale">
|
||||
<el-pagination
|
||||
background
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="searchForm.pageNum"
|
||||
:page-sizes="[ 10, 50, 100]"
|
||||
:page-size="searchForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="searchForm.total">
|
||||
</el-pagination>
|
||||
</el-config-provider>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import zhCn from 'element-plus/lib/locale/lang/zh-cn'
|
||||
import { getUnPage, deleteData, getWXCarColorList, crossData} from "../../util/api/api.js";
|
||||
import pro from '../../util/tool.js';
|
||||
import {Delete, Edit, Reading, ZoomIn, Search,Select} from '@element-plus/icons-vue'
|
||||
import {ElMessage} from "element-plus/es";
|
||||
import {ElMessageBox} from "element-plus";
|
||||
|
||||
export default {
|
||||
name: "WXUnBind",
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
Select,
|
||||
Delete,
|
||||
Edit,
|
||||
Reading,
|
||||
ZoomIn,
|
||||
locale: zhCn,
|
||||
tableData: [],
|
||||
CarColorList: [],
|
||||
CarColorMap: {},
|
||||
CarTypeList: [],
|
||||
CarTypeMap: {},
|
||||
multipleSelection: [],
|
||||
searchForm: {
|
||||
total: 0,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
formLabelWidth: '130px',
|
||||
myHeight: 500,
|
||||
tableLoading: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deleteSelect(row) {
|
||||
let carNoList = [];
|
||||
if (row != null) {
|
||||
carNoList[0] = row;
|
||||
} else {
|
||||
carNoList = this.multipleSelection;
|
||||
}
|
||||
if (carNoList.length === 0) {
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: '请选择要删除的数据!',
|
||||
type: 'warning',
|
||||
})
|
||||
return;
|
||||
}
|
||||
ElMessageBox.confirm(
|
||||
'是否批量删除' + carNoList.length + '条数据?',
|
||||
'提示',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}
|
||||
).then(() => {
|
||||
deleteData(carNoList).then((res) => {
|
||||
if (res) {
|
||||
ElMessage({
|
||||
message: res + '条删除成功!',
|
||||
type: 'success',
|
||||
})
|
||||
this.network()
|
||||
} else {
|
||||
ElMessage.error('删除失败!')
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message: '已取消!',
|
||||
})
|
||||
})
|
||||
},
|
||||
toCrossData(row) {
|
||||
ElMessageBox.confirm(
|
||||
'是否确认通过该条数据?',
|
||||
'提示',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}
|
||||
).then(() => {
|
||||
crossData(row).then((res) => {
|
||||
if (res) {
|
||||
ElMessage({
|
||||
message: '修改状态成功!',
|
||||
type: 'success',
|
||||
})
|
||||
this.network()
|
||||
} else {
|
||||
ElMessage.error('修改状态失败!')
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
ElMessage({
|
||||
type: 'info',
|
||||
message: '已取消!',
|
||||
})
|
||||
})
|
||||
},
|
||||
handleSelectionChange(row) { //批量删除选择的数据
|
||||
this.multipleSelection = row
|
||||
},
|
||||
reNetwork() {
|
||||
this.searchForm = {
|
||||
total: 0,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
};
|
||||
this.network()
|
||||
},
|
||||
network() {
|
||||
this.tableLoading = true;
|
||||
getUnPage(this.searchForm).then((res) => {
|
||||
if (res.records != null) {
|
||||
this.tableData = res.records;
|
||||
this.searchForm.total = res.total;
|
||||
this.searchForm.pageNum = res.current;
|
||||
this.searchForm.pageSize = res.size;
|
||||
} else {
|
||||
ElMessage.error('查询失败!')
|
||||
}
|
||||
this.tableLoading = false;
|
||||
})
|
||||
},
|
||||
carColor(row, column) {
|
||||
if (row[column.property] != null) {
|
||||
return this.CarColorMap[row[column.property]]
|
||||
}
|
||||
},
|
||||
carType(row, column) {
|
||||
if (row[column.property] != null) {
|
||||
return this.CarTypeMap[row[column.property]]
|
||||
}
|
||||
},
|
||||
statusType(row, column) {
|
||||
if (row[column.property] === 1) {
|
||||
return '车主'
|
||||
} else if (row[column.property] === 2) {
|
||||
return '已拒绝'
|
||||
} else if (row[column.property] === 3) {
|
||||
return '待审核'
|
||||
} else if (row[column.property] === 0) {
|
||||
return '非车主用户'
|
||||
}
|
||||
},
|
||||
dateFormat(row, column) {
|
||||
return pro.dateFormat(row[column.property]);
|
||||
},
|
||||
handleSizeChange(val) { //页大小改变
|
||||
this.searchForm.pageSize = val
|
||||
this.network()
|
||||
},
|
||||
handleCurrentChange(val) { //当前页改变
|
||||
this.searchForm.pageNum = val
|
||||
this.network()
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
getWXCarColorList().then((res) => {
|
||||
this.CarColorList = res.CarColor;
|
||||
for (let i = 0; i < res.CarColor.length; i++) {
|
||||
this.CarColorMap[res.CarColor[i].value] = res.CarColor[i].text
|
||||
}
|
||||
this.CarTypeList = res.CarType;
|
||||
for (let i = 0; i < res.CarType.length; i++) {
|
||||
this.CarTypeMap[res.CarType[i].VALUE] = res.CarType[i].TEXT
|
||||
}
|
||||
this.network();
|
||||
})
|
||||
this.myHeight = (document.documentElement.clientHeight) * 0.81;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
Loading…
Reference in New Issue