Compare commits
7 Commits
9ffddb9a44
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 5cbde4297d | |||
| a05b857b6c | |||
| 8a9cd4b9a1 | |||
| c7a8eb35b2 | |||
| c8de256b2b | |||
| fb59556148 | |||
| 18b5b1bb4f |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 1.0 MiB |
@ -433,6 +433,13 @@ export const BpcryselectCrewList = (params) => {
|
||||
params
|
||||
});
|
||||
};
|
||||
export const BpcrygetRypcList = (data) => {
|
||||
return request({
|
||||
url: api + `/tbJczBpcry/getRypcList`,
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
};
|
||||
// 车
|
||||
export const BpcryselectCarList = (params) => {
|
||||
return request({
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<div :id="mapid" class="map"></div>
|
||||
<div class="changeMap_box" v-if="props.isShow">
|
||||
<!-- <el-switch v-model="conditionRoute" @change="handleSwitch" active-text="打开路况" inactive-text="关闭路况" style="--el-switch-color:#13ce66;--el-switch-off-color:#ff4949;" /> -->
|
||||
<el-switch v-model="conditionRoute" @change="handleSwitch" active-text="打开路况" inactive-text="关闭路况"
|
||||
style="--el-switch-color: #13ce66; --el-switch-off-color: #ff4949" />
|
||||
<!-- <el-carousel type="card" height="75px" :autoplay="false" indicator-position="none" :initial-index="3" @change="onMapImageChange">
|
||||
<el-carousel-item>
|
||||
<div class="mapImageItem">
|
||||
@ -30,8 +31,7 @@
|
||||
</el-carousel> -->
|
||||
<!-- 地图缩放 -->
|
||||
<div class="zoomTargetBox">
|
||||
<el-input-number :min="7" :max="18" v-model="zoomTarget" :step="1" step-strictly @change="handleZoom">
|
||||
</el-input-number>
|
||||
<el-input-number :min="7" :max="18" v-model="zoomTarget" :step="1" step-strictly @change="handleZoom"></el-input-number>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -44,7 +44,7 @@ import { getItem } from "@/utils/storage";
|
||||
const conditionRoute = ref(true); //路况
|
||||
const mMap = ref(null); //地图对象
|
||||
const mapUtil = ref(null); //地图工具对象
|
||||
const zoomTarget = ref(6);
|
||||
const zoomTarget = ref(15);
|
||||
|
||||
const props = defineProps({
|
||||
mapid: {
|
||||
@ -70,12 +70,11 @@ const props = defineProps({
|
||||
isShowDraw: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
|
||||
}
|
||||
});
|
||||
try {
|
||||
const userInfo = getItem("deptId")[0].deptCode;
|
||||
} catch (error) {}
|
||||
} catch (error) { }
|
||||
let map;
|
||||
let mapLayer;
|
||||
let mapLayer1;
|
||||
@ -89,66 +88,37 @@ onMounted(() => {
|
||||
|
||||
map = new EliMap({
|
||||
id: props.mapid,
|
||||
crs: "EPSG:3857",
|
||||
crs: "EPSG:4490",
|
||||
style: {
|
||||
glyphs: "./fonts/{fontstack}/{range}.pbf",
|
||||
center: [94.36,29.65],
|
||||
zoom: 11
|
||||
center: [94.36057012, 29.64276831],
|
||||
zoom: 15
|
||||
},
|
||||
minZoom: 7,
|
||||
minZoom: 5,
|
||||
maxZoom: 18,
|
||||
transformRequest: (url) => {
|
||||
if (url.indexOf("TileMatrix=") != -1) {
|
||||
const arr = url.split("TileMatrix=");
|
||||
const arr1 = arr[1].split("&");
|
||||
const nurl = `${arr[0]}&TileMatrix=${Number(arr1[0])}&${arr1[1]}&${arr1[2]}`;
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
window.map = map;
|
||||
map.mapboxGLMap.on("load", () => {
|
||||
map.addGaudLayer({
|
||||
url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
|
||||
})
|
||||
map.addWMTSLayer(
|
||||
"/PGIS_S_TileMapServer/Maps/XZDJ_DJ/EzMap"
|
||||
,
|
||||
{
|
||||
Service: "getImage",
|
||||
Type: "RGB",
|
||||
ZoomOffset: "0",
|
||||
V: "0.3",
|
||||
Zoom: "{z}",
|
||||
Row: "{y}",
|
||||
Col: "{x}"
|
||||
},
|
||||
{
|
||||
tileSize: 300
|
||||
}
|
||||
);
|
||||
zoomTarget.value = map.mapboxGLMap.getZoom();
|
||||
// 地图加载完成后发出事件
|
||||
// emit('mapLoaded')
|
||||
});
|
||||
mapUtil.value = new MapUtil(map);
|
||||
// map = new EliMap({
|
||||
// id: props.mapid,
|
||||
// crs: "EPSG:4490",
|
||||
// style: {
|
||||
// glyphs: "./fonts/{fontstack}/{range}.pbf",
|
||||
// center: [94.36057012, 29.64276831],
|
||||
// zoom: 15
|
||||
// },
|
||||
// minZoom: 7,
|
||||
// maxZoom: 18,
|
||||
// });
|
||||
// window.map = map;
|
||||
// map.mapboxGLMap.on("load", () => {
|
||||
// map.addWMTSLayer(
|
||||
// "/PGIS_S_TileMapServer/Maps/XZDJ_SL/EzMap"
|
||||
// ,
|
||||
// {
|
||||
// Service: "getImage",
|
||||
// Type: "RGB",
|
||||
// ZoomOffset: "0",
|
||||
// V: "0.3",
|
||||
// Zoom: "{z}",
|
||||
// Row: "{y}",
|
||||
// Col: "{x}"
|
||||
// },
|
||||
// {
|
||||
// tileSize: 300
|
||||
// }
|
||||
// );
|
||||
// zoomTarget.value = map.mapboxGLMap.getZoom();
|
||||
// });
|
||||
// mapUtil.value = new MapUtil(map);
|
||||
|
||||
mapUtil.value.Drawplot(); //初始化加载绘制工具
|
||||
|
||||
// 设置地图中心点及图层
|
||||
@ -184,6 +154,10 @@ onMounted(() => {
|
||||
emitter.on("showSquire", (obj) => {
|
||||
mapUtil.value.zdySquire(obj);
|
||||
});
|
||||
// 展示气泡框
|
||||
emitter.on("makerPopup", (obj) => {
|
||||
mapUtil.value.makerPopup(obj);
|
||||
});
|
||||
|
||||
// 绘制图形 - 回显区域
|
||||
emitter.on("drawShape", (res) => {
|
||||
@ -289,7 +263,6 @@ const mapSetLayer = (id, source) => {
|
||||
|
||||
//获取地图绘制的数据
|
||||
const resFun = (coord, type, flag, data) => {
|
||||
|
||||
emitter.emit("coordString", {
|
||||
coord: coord,
|
||||
type: type,
|
||||
@ -303,12 +276,6 @@ const handleZoom = (val) => {
|
||||
map.mapboxGLMap.setZoom(val);
|
||||
};
|
||||
|
||||
emitter.on("map-resize", () => {
|
||||
if (map && map.mapboxGLMap) {
|
||||
map.mapboxGLMap.resize();
|
||||
}
|
||||
});
|
||||
|
||||
// 是否打开或者关闭路况
|
||||
const handleSwitch = (val) => {
|
||||
if (val) {
|
||||
@ -325,6 +292,7 @@ onUnmounted(() => {
|
||||
emitter.off("showPoint");
|
||||
emitter.off("deletePointArea");
|
||||
emitter.off("deletePointAreaOne");
|
||||
emitter.off("makerPopup");
|
||||
emitter.off("drawShape");
|
||||
emitter.off("echoPlane");
|
||||
emitter.off("removeEara");
|
||||
@ -338,7 +306,6 @@ onUnmounted(() => {
|
||||
emitter.off("diffusionCircle");
|
||||
emitter.off("SsCircle");
|
||||
emitter.off("ClearssCircle");
|
||||
emitter.off("map-resize");
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -361,29 +328,35 @@ onUnmounted(() => {
|
||||
right: 398px;
|
||||
bottom: 4px;
|
||||
z-index: 9;
|
||||
|
||||
.mapImageItem {
|
||||
border: 1px solid #08aae8;
|
||||
background: rgb(9, 26, 70);
|
||||
& > img {
|
||||
|
||||
&>img {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
}
|
||||
& > div {
|
||||
|
||||
&>div {
|
||||
text-align: center;
|
||||
position: relative;
|
||||
top: -3px;
|
||||
}
|
||||
}
|
||||
|
||||
.zoomTargetBox {
|
||||
margin-top: 10px;
|
||||
margin-left: 23px;
|
||||
}
|
||||
|
||||
::v-deep .el-input-number__decrease,
|
||||
::v-deep .el-input-number__increase {
|
||||
background: #133362;
|
||||
color: #fff;
|
||||
border: none;
|
||||
}
|
||||
|
||||
::v-deep .el-input__inner {
|
||||
background: #0c1641;
|
||||
}
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
<template>
|
||||
<div :id="mapid" class="map"></div>
|
||||
<div class="changeMap_box" v-if="props.isShow">
|
||||
<!-- <el-switch v-model="conditionRoute" @change="handleSwitch" active-text="打开路况" inactive-text="关闭路况"
|
||||
style="--el-switch-color: #13ce66; --el-switch-off-color: #ff4949" /> -->
|
||||
<!-- <el-switch v-model="conditionRoute" @change="handleSwitch" active-text="打开路况" inactive-text="关闭路况" style="--el-switch-color:#13ce66;--el-switch-off-color:#ff4949;" /> -->
|
||||
<!-- <el-carousel type="card" height="75px" :autoplay="false" indicator-position="none" :initial-index="3" @change="onMapImageChange">
|
||||
<el-carousel-item>
|
||||
<div class="mapImageItem">
|
||||
@ -31,7 +30,8 @@
|
||||
</el-carousel> -->
|
||||
<!-- 地图缩放 -->
|
||||
<div class="zoomTargetBox">
|
||||
<el-input-number :min="7" :max="18" v-model="zoomTarget" :step="1" step-strictly @change="handleZoom"></el-input-number>
|
||||
<el-input-number :min="7" :max="18" v-model="zoomTarget" :step="1" step-strictly @change="handleZoom">
|
||||
</el-input-number>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -71,18 +71,11 @@ const props = defineProps({
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
minZoom: {
|
||||
type: Number,
|
||||
default: 7
|
||||
},
|
||||
maxZoom: {
|
||||
type: Number,
|
||||
default: 18
|
||||
},
|
||||
|
||||
});
|
||||
try {
|
||||
const userInfo = getItem("deptId")[0].deptCode;
|
||||
} catch (error) { }
|
||||
} catch (error) {}
|
||||
let map;
|
||||
let mapLayer;
|
||||
let mapLayer1;
|
||||
@ -96,37 +89,66 @@ onMounted(() => {
|
||||
|
||||
map = new EliMap({
|
||||
id: props.mapid,
|
||||
crs: "EPSG:4490",
|
||||
crs: "EPSG:3857",
|
||||
style: {
|
||||
glyphs: "./fonts/{fontstack}/{range}.pbf",
|
||||
center: [94.36057012, 29.64276831],
|
||||
zoom: 15
|
||||
center: [94.36,29.65],
|
||||
zoom: 11
|
||||
},
|
||||
minZoom: props.minZoom,
|
||||
maxZoom: props.maxZoom,
|
||||
minZoom: 7,
|
||||
maxZoom: 18,
|
||||
transformRequest: (url) => {
|
||||
if (url.indexOf("TileMatrix=") != -1) {
|
||||
const arr = url.split("TileMatrix=");
|
||||
const arr1 = arr[1].split("&");
|
||||
const nurl = `${arr[0]}&TileMatrix=${Number(arr1[0])}&${arr1[1]}&${arr1[2]}`;
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
window.map = map;
|
||||
map.mapboxGLMap.on("load", () => {
|
||||
map.addWMTSLayer(
|
||||
"/PGIS_S_TileMapServer/Maps/XZDJ_DJ/EzMap"
|
||||
,
|
||||
{
|
||||
Service: "getImage",
|
||||
Type: "RGB",
|
||||
ZoomOffset: "0",
|
||||
V: "0.3",
|
||||
Zoom: "{z}",
|
||||
Row: "{y}",
|
||||
Col: "{x}"
|
||||
},
|
||||
{
|
||||
tileSize: 300
|
||||
}
|
||||
);
|
||||
map.addGaudLayer({
|
||||
url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
|
||||
})
|
||||
zoomTarget.value = map.mapboxGLMap.getZoom();
|
||||
// 地图加载完成后发出事件
|
||||
// emit('mapLoaded')
|
||||
});
|
||||
mapUtil.value = new MapUtil(map);
|
||||
|
||||
// map = new EliMap({
|
||||
// id: props.mapid,
|
||||
// crs: "EPSG:4490",
|
||||
// style: {
|
||||
// glyphs: "./fonts/{fontstack}/{range}.pbf",
|
||||
// center: [94.36057012, 29.64276831],
|
||||
// zoom: 15
|
||||
// },
|
||||
// minZoom: 7,
|
||||
// maxZoom: 18,
|
||||
// });
|
||||
// window.map = map;
|
||||
// map.mapboxGLMap.on("load", () => {
|
||||
// map.addWMTSLayer(
|
||||
// "/PGIS_S_TileMapServer/Maps/XZDJ_SL/EzMap"
|
||||
// ,
|
||||
// {
|
||||
// Service: "getImage",
|
||||
// Type: "RGB",
|
||||
// ZoomOffset: "0",
|
||||
// V: "0.3",
|
||||
// Zoom: "{z}",
|
||||
// Row: "{y}",
|
||||
// Col: "{x}"
|
||||
// },
|
||||
// {
|
||||
// tileSize: 300
|
||||
// }
|
||||
// );
|
||||
// zoomTarget.value = map.mapboxGLMap.getZoom();
|
||||
// });
|
||||
// mapUtil.value = new MapUtil(map);
|
||||
mapUtil.value.Drawplot(); //初始化加载绘制工具
|
||||
|
||||
// 设置地图中心点及图层
|
||||
@ -267,6 +289,7 @@ const mapSetLayer = (id, source) => {
|
||||
|
||||
//获取地图绘制的数据
|
||||
const resFun = (coord, type, flag, data) => {
|
||||
|
||||
emitter.emit("coordString", {
|
||||
coord: coord,
|
||||
type: type,
|
||||
@ -280,6 +303,12 @@ const handleZoom = (val) => {
|
||||
map.mapboxGLMap.setZoom(val);
|
||||
};
|
||||
|
||||
emitter.on("map-resize", () => {
|
||||
if (map && map.mapboxGLMap) {
|
||||
map.mapboxGLMap.resize();
|
||||
}
|
||||
});
|
||||
|
||||
// 是否打开或者关闭路况
|
||||
const handleSwitch = (val) => {
|
||||
if (val) {
|
||||
@ -309,6 +338,7 @@ onUnmounted(() => {
|
||||
emitter.off("diffusionCircle");
|
||||
emitter.off("SsCircle");
|
||||
emitter.off("ClearssCircle");
|
||||
emitter.off("map-resize");
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -331,35 +361,29 @@ onUnmounted(() => {
|
||||
right: 398px;
|
||||
bottom: 4px;
|
||||
z-index: 9;
|
||||
|
||||
.mapImageItem {
|
||||
border: 1px solid #08aae8;
|
||||
background: rgb(9, 26, 70);
|
||||
|
||||
&>img {
|
||||
& > img {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
&>div {
|
||||
& > div {
|
||||
text-align: center;
|
||||
position: relative;
|
||||
top: -3px;
|
||||
}
|
||||
}
|
||||
|
||||
.zoomTargetBox {
|
||||
margin-top: 10px;
|
||||
margin-left: 23px;
|
||||
}
|
||||
|
||||
::v-deep .el-input-number__decrease,
|
||||
::v-deep .el-input-number__increase {
|
||||
background: #133362;
|
||||
color: #fff;
|
||||
border: none;
|
||||
}
|
||||
|
||||
::v-deep .el-input__inner {
|
||||
background: #0c1641;
|
||||
}
|
||||
@ -395,25 +395,48 @@ export const publicRoutes = [
|
||||
icon: "article"
|
||||
},
|
||||
children: [
|
||||
// {
|
||||
// path: "/Inspector",
|
||||
// name: "Inspector",
|
||||
// component: () =>
|
||||
// import("@/views/backOfficeSystem/peopleManag/Inspector/index"),
|
||||
// meta: {
|
||||
// title: "过检人像管理",
|
||||
// icon: "article"
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// path: "/InspectedVehicle",
|
||||
// name: "InspectedVehicle",
|
||||
// component: () =>
|
||||
// import(
|
||||
// "@/views/backOfficeSystem/peopleManag/InspectedVehicle/index"
|
||||
// ),
|
||||
// meta: {
|
||||
// title: "过检车辆管理",
|
||||
// icon: "article"
|
||||
// }
|
||||
// },
|
||||
|
||||
{
|
||||
path: "/Inspector",
|
||||
name: "Inspector",
|
||||
path: "/transitPassengers",
|
||||
name: "transitPassengers",
|
||||
component: () =>
|
||||
import("@/views/backOfficeSystem/peopleManag/Inspector/index"),
|
||||
|
||||
import("@/views/backOfficeSystem/peopleManag/transitPassengers/index"),
|
||||
meta: {
|
||||
title: "过检人像管理",
|
||||
title: "过站人员管理",
|
||||
icon: "article"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/InspectedVehicle",
|
||||
name: "InspectedVehicle",
|
||||
path: "/passingThroughVehicle",
|
||||
name: "passingThroughVehicle",
|
||||
component: () =>
|
||||
import(
|
||||
"@/views/backOfficeSystem/peopleManag/InspectedVehicle/index"
|
||||
),
|
||||
|
||||
import("@/views/backOfficeSystem/peopleManag/passingThroughVehicle/index"),
|
||||
meta: {
|
||||
title: "过检车辆管理",
|
||||
title: "过站车辆管理",
|
||||
icon: "article"
|
||||
}
|
||||
},
|
||||
|
||||
@ -103,11 +103,8 @@ const JczMsg = ref({})
|
||||
const getJczselectById = () => {
|
||||
const id = router.query.id
|
||||
JczselectById({ id: id }).then((res) => {
|
||||
console.log(res);
|
||||
|
||||
JczMsg.value = res
|
||||
}).catch((err) => {
|
||||
|
||||
});
|
||||
}
|
||||
onMounted(() => {
|
||||
|
||||
@ -1,39 +1,41 @@
|
||||
<template>
|
||||
<div class="image-carousel">
|
||||
<div class="flex full-height" v-if="JczMsg.jczlx=='01'">
|
||||
<div class="flex full-height" v-if="JczMsg.jczlx == '01'">
|
||||
<div class="column-container">
|
||||
<div class="gradient-title">过站人员</div>
|
||||
<div class="search-container">
|
||||
<el-input v-model="timeData.ryXm" placeholder="请输入姓名" class="search-input" clearable />
|
||||
<el-date-picker v-model="timeData.time" type="daterange" unlink-panels range-separator="至"
|
||||
start-placeholder="开始时间" end-placeholder="结束时间" :shortcuts="shortcuts" :size="size" />
|
||||
<el-button type="primary" class="search-button">搜索</el-button>
|
||||
<el-input v-model="gzrParams.xm" placeholder="请输入姓名" class="search-input" clearable />
|
||||
<el-date-picker v-model="gzrParams.startTime" type="daterange" unlink-panels range-separator="至"
|
||||
start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD hh:mm:ss"
|
||||
value-format="YYYY-MM-DD hh:mm:ss" />
|
||||
<el-button type="primary" class="search-button" @click="getPageR">搜索</el-button>
|
||||
</div>
|
||||
<div class="waning-cards noScollLine">
|
||||
<div class="warning-card" v-for="(item, index) in 20" :key="index">
|
||||
<div class="waning-cards noScollLine" v-infinite-scroll="gzrgd">
|
||||
<div class="warning-card" v-for="(item, index) in gzrParams.dataList" :key="index">
|
||||
<div class="warning-image">
|
||||
<img :src="require('@/assets/images/default_male.png')" alt="抓拍图片" />
|
||||
<img :src="item.cjzp ? item.cjzp : default_male" alt="抓拍图片" />
|
||||
</div>
|
||||
<div class="warning-info">
|
||||
<div class="info-item">
|
||||
<span class="label">姓名:</span>
|
||||
<span>老王</span>
|
||||
<span class="tag">老王预警</span>
|
||||
<span>{{ item.xm }}</span>
|
||||
<!-- <span class="tag">老王预警</span> -->
|
||||
</div>
|
||||
<div class="info-item align-center">
|
||||
<span class="label">性别:男</span>
|
||||
<span class="label">过站类型:</span>
|
||||
<span class="highlight">{{ item.gzlx == '01' ? '进站' : '出站' }}</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">相似度:</span>
|
||||
<span class="highlight">95%</span>
|
||||
<span class="label">身份证号:</span>
|
||||
<span class="highlight">{{ item.zjhm }}</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">抓拍时间:</span>
|
||||
<span>2025-10-10 10:00:00</span>
|
||||
<span>{{ item.gzsj }}</span>
|
||||
</div>
|
||||
<div class="info-item align-center">
|
||||
<span class="label nowrap">抓拍地址:</span>
|
||||
<span class="one_text_detail">上海市普陀区金沙江路 1518 弄</span>
|
||||
<span class="one_text_detail">{{ item.kkMc }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -42,36 +44,34 @@
|
||||
<div class="column-container">
|
||||
<div class="gradient-title">过站车辆</div>
|
||||
<div class="search-container">
|
||||
<el-input v-model="clData.cph" placeholder="请输入车牌号" class="search-input" clearable />
|
||||
<el-date-picker v-model="clData.time" type="daterange" unlink-panels range-separator="至"
|
||||
start-placeholder="开始时间" end-placeholder="结束时间" :shortcuts="shortcuts" :size="size" />
|
||||
<el-button type="primary" class="search-button">搜索</el-button>
|
||||
<el-input v-model="gzcParams.cph" placeholder="请输入车牌号" class="search-input" clearable />
|
||||
<el-date-picker v-model="gzcParams.startTime" type="daterange" unlink-panels range-separator="至"
|
||||
start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD hh:mm:ss"
|
||||
value-format="YYYY-MM-DD hh:mm:ss" />
|
||||
<el-button type="primary" class="search-button" @click="getPage">搜索</el-button>
|
||||
</div>
|
||||
<div class="waning-cards noScollLine" >
|
||||
<div class="warning-card" v-for="(item, index) in pageData.tableData" :key="index">
|
||||
<div class="waning-cards noScollLine" v-infinite-scroll="gzcgd">
|
||||
<div class="warning-card" v-for="(item, index) in gzcParams.dataList" :key="index">
|
||||
<div class="warning-image">
|
||||
<img :src="require('@/assets/images/car.png')" alt="抓拍图片" />
|
||||
<img :src="item.gczp ? item.gczp : car" alt="抓拍图片" />
|
||||
</div>
|
||||
<div class="warning-info">
|
||||
<div class="info-item">
|
||||
<span class="label">车牌号:</span>
|
||||
<span>{{ item.cph }}</span>
|
||||
<span class="tag">{{ item.bq }} </span>
|
||||
<span>{{ item.hphm }}</span>
|
||||
<!-- <span class="tag">{{ item.bq }} </span> -->
|
||||
</div>
|
||||
<!-- <div class="info-item flex">
|
||||
<span class="label">性别:男</span>
|
||||
</div> -->
|
||||
<div class="info-item">
|
||||
<span class="label">相似度:</span>
|
||||
<span class="highlight">{{ item.xsd }}</span>
|
||||
<span class="label">车辆种类:</span>
|
||||
<span class="highlight">{{ item.zwppmc }}</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">抓拍时间:</span>
|
||||
<span>{{ item.time }}</span>
|
||||
<span>{{ item.gzsj }}</span>
|
||||
</div>
|
||||
<div class="info-item align-center">
|
||||
<span class="label nowrap">抓拍地址:</span>
|
||||
<span class="one_text_detail">{{ item.fx }}{{ item.dz }}</span>
|
||||
<span class="one_text_detail">{{ item.kkMc }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -82,19 +82,24 @@
|
||||
<div>
|
||||
<div>
|
||||
<div style="display: flex;align-items: center;padding: 10px 0;">
|
||||
<el-input v-model="timeData.ryXm" placeholder="请输入车牌号" style="width: 30%;margin-right: 10px;" clearable />
|
||||
<el-date-picker v-model="timeData.time" type="daterange" range-separator="至" start-placeholder="开始时间"
|
||||
end-placeholder="结束时间" style="width: 30%;;margin-right: 10px;" :size="size" />
|
||||
<el-button type="primary">搜索</el-button>
|
||||
<el-input v-model="promesData.hphm" placeholder="请输入车牌号" style="width: 30%;margin-right: 10px;" clearable />
|
||||
<el-date-picker v-model="promesData.startTime" type="daterange" range-separator="至" start-placeholder="开始时间"
|
||||
end-placeholder="结束时间" style="width: 30%;;margin-right: 10px;" format="YYYY-MM-DD hh:mm:ss"
|
||||
value-format="YYYY-MM-DD hh:mm:ss" />
|
||||
<el-button type="primary" @click="search">搜索</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" tableHeight="35vh"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||
<template #tp="{ row }">
|
||||
<el-image :src="row.tp" :preview-src-list="[row.tp]" alt="车辆类型" style="width: 80px; height: 100px;"/>
|
||||
|
||||
<template #gczp="{ row }">
|
||||
<el-image :src="row.gczp ? row.gczp : car" :preview-src-list="[row.gczp]" alt="车辆类型"
|
||||
style="width: 80px; height: 100px;" />
|
||||
</template>
|
||||
<template #gzlx="{ row }">
|
||||
<span>
|
||||
{{ row.gzlx == '01' ? '入林' : '出林' }}
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<el-link type="primary" @click="addEdit('edit', row)">修改</el-link>
|
||||
@ -112,56 +117,24 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive } from 'vue'
|
||||
import { ref, reactive, onMounted, watch } from 'vue'
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
const props=defineProps({
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
import { useRoute } from 'vue-router'
|
||||
const props = defineProps({
|
||||
JczMsg: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
|
||||
const timeData = ref({
|
||||
ryXm: '',
|
||||
time: []
|
||||
})
|
||||
const clData = ref({
|
||||
cph: '',
|
||||
time: []
|
||||
})
|
||||
|
||||
const pageData = reactive({
|
||||
tableData: [{
|
||||
tp: require("@/assets/images/cstp.png"),
|
||||
cph: "豫DGL808",
|
||||
time: "2025-11-02 09:18:00",
|
||||
fx: "入林方向",
|
||||
dz: "德吉路与光彩路入口处",
|
||||
bm: "54040251001325030171",
|
||||
cllx: "小型车辆",
|
||||
bq: "前科人员车",
|
||||
xsd: "80%",
|
||||
}, {
|
||||
tp: require("@/assets/images/cstp.png"),
|
||||
cph: "豫DGL808",
|
||||
time: "2025-11-02 15:18:00",
|
||||
fx: "出林方向",
|
||||
dz: "德吉路与光彩路出口处",
|
||||
bm: "54040251001325030172",
|
||||
cllx: "小型车辆",
|
||||
bq: "前科人员车",
|
||||
xsd: "90%",
|
||||
}, {
|
||||
tp: require("@/assets/images/cstp.png"),
|
||||
cph: "豫DGL808",
|
||||
time: "2025-11-02 21:18:00",
|
||||
fx: "入林方向",
|
||||
dz: "德吉路与光彩路入口处",
|
||||
bm: "54040251001325030171",
|
||||
cllx: "小型车辆",
|
||||
bq: "前科人员车",
|
||||
xsd: "95%",
|
||||
}], //表格数据
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
@ -176,16 +149,154 @@ const pageData = reactive({
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "过车图片", prop: "tp", showOverflowTooltip: true, showSolt: true },
|
||||
{ label: "车牌号", prop: "cph", showOverflowTooltip: true },
|
||||
{ label: "过车时间", prop: "time", showOverflowTooltip: true },
|
||||
{ label: "卡口方向", prop: "fx", showOverflowTooltip: true },
|
||||
{ label: "车辆种类", prop: "cllx", showOverflowTooltip: true },
|
||||
{ label: "摄像头编码", prop: "bm", showOverflowTooltip: true },
|
||||
{ label: "抓拍摄像头", prop: "dz", showOverflowTooltip: true, },
|
||||
{ label: "过车图片", prop: "gczp", showOverflowTooltip: true, showSolt: true },
|
||||
{ label: "车牌号", prop: "hphm", showOverflowTooltip: true },
|
||||
{ label: "过车时间", prop: "gzsj", showOverflowTooltip: true },
|
||||
{ label: "卡口方向", prop: "gzlx", showOverflowTooltip: true, showSolt: true },
|
||||
{ label: "车辆种类", prop: "zwppmc", showOverflowTooltip: true },
|
||||
{ label: "摄像头编码", prop: "tdbm", showOverflowTooltip: true },
|
||||
{ label: "抓拍摄像头", prop: "tdmc", showOverflowTooltip: true, },
|
||||
{ label: "标签", prop: "bq", showOverflowTooltip: true }
|
||||
]
|
||||
});
|
||||
})
|
||||
|
||||
const default_male = ref(require('@/assets/images/default_male.png'))
|
||||
const car = ref(require('@/assets/images/car.png'))
|
||||
|
||||
|
||||
|
||||
const route = useRoute()
|
||||
const jczid = ref()
|
||||
onMounted(() => {
|
||||
jczid.value = route.query.id
|
||||
})
|
||||
|
||||
|
||||
watch(() => props.JczMsg, (newVal, oldVal) => {
|
||||
if (newVal) {
|
||||
console.log(newVal);
|
||||
if (newVal.jczlx == '02') {
|
||||
getJczGzclSelectPage()
|
||||
} else {
|
||||
getJczclSelectPage()
|
||||
getJczrlSelectPage()
|
||||
}
|
||||
|
||||
}
|
||||
}, { deep: true })
|
||||
const promesData = ref({
|
||||
pageSize: 20,
|
||||
pageCurrent: 1,
|
||||
kkId: jczid.value,
|
||||
})
|
||||
const search = () => {
|
||||
promesData.value.pageCurrent = 1
|
||||
getJczGzclSelectPage()
|
||||
}
|
||||
|
||||
|
||||
const getJczGzclSelectPage = () => {
|
||||
const params = {
|
||||
...promesData.value,
|
||||
startTime: promesData.value.startTime ? promesData.value.startTime[0] : "",
|
||||
endTime: promesData.value.startTime ? promesData.value.startTime[1] : ''
|
||||
}
|
||||
qcckGet(params, "/mosty-jcz/jczGzcl/selectPage").then((res) => {
|
||||
pageData.tableData = res.records
|
||||
pageData.total = res.total
|
||||
console.log(res);
|
||||
}).catch((err) => {
|
||||
|
||||
});
|
||||
}
|
||||
const changeNo = (val) => {
|
||||
promesData.value.currentPage = val
|
||||
getJczGzclSelectPage()
|
||||
}
|
||||
const changeSize = (val) => {
|
||||
promesData.value.pageSize = val
|
||||
getJczGzclSelectPage()
|
||||
}
|
||||
|
||||
|
||||
const gzcParams = ref({
|
||||
dataList: [],
|
||||
pageSize: 20,
|
||||
kkId: jczid.value,
|
||||
pageCurrent: 1,
|
||||
startTime: '',
|
||||
hphm: "",
|
||||
total:0
|
||||
})
|
||||
|
||||
// 过站车
|
||||
const getJczclSelectPage = () => {
|
||||
const params = {
|
||||
hphm: gzcParams.value.hphm,
|
||||
kkId: gzcParams.value.kkId,
|
||||
pageCurrent: gzcParams.value.pageCurrent,
|
||||
pageSize: gzcParams.value.pageSize,
|
||||
startTime: promesData.value.startTime ? promesData.value.startTime[0] : "",
|
||||
endTime: promesData.value.startTime ? promesData.value.startTime[1] : ''
|
||||
}
|
||||
qcckGet(params, "/mosty-jcz/jczGzcl/selectPage").then((res) => {
|
||||
gzcParams.value.dataList = gzcParams.value.pageCurrent == 1 ? res.records : gzcParams.value.dataList.concat(res.records)
|
||||
gzcParams.value.total = res.total
|
||||
}).catch((err) => {
|
||||
});
|
||||
}
|
||||
|
||||
const getPage = () => {
|
||||
gzcParams.value.pageCurrent = 1
|
||||
getJczclSelectPage()
|
||||
}
|
||||
const gzcgd = () => {
|
||||
if (gzcParams.value.dataList.length == gzcParams.value.total) {
|
||||
return
|
||||
}
|
||||
gzcParams.value.pageCurrent++
|
||||
getJczclSelectPage()
|
||||
}
|
||||
|
||||
// 过站人
|
||||
const gzrParams = ref({
|
||||
dataList: [],
|
||||
pageSize: 20,
|
||||
kkId: jczid.value,
|
||||
pageCurrent: 1,
|
||||
startTime: '',
|
||||
xm: "",
|
||||
total:0
|
||||
})
|
||||
|
||||
|
||||
const getJczrlSelectPage = () => {
|
||||
const params = {
|
||||
xm: gzrParams.value.xm,
|
||||
kkId: gzrParams.value.kkId,
|
||||
pageCurrent: gzrParams.value.pageCurrent,
|
||||
pageSize: gzrParams.value.pageSize,
|
||||
startTime: gzrParams.value.startTime ? gzrParams.value.startTime[0] : "",
|
||||
endTime: gzrParams.value.startTime ? gzrParams.value.startTime[1] : ''
|
||||
}
|
||||
qcckGet(params, "/mosty-jcz/jczGzry/selectPage").then((res) => {
|
||||
gzrParams.value.dataList = gzrParams.value.pageCurrent == 1 ? res.records : gzrParams.value.dataList.concat(res.records)
|
||||
gzrParams.value.total = res.total
|
||||
}).catch((err) => {
|
||||
|
||||
});
|
||||
}
|
||||
const getPageR = () => {
|
||||
gzrParams.value.pageCurrent = 1
|
||||
getJczrlSelectPage()
|
||||
}
|
||||
const gzrgd = () => {
|
||||
if (gzrParams.value.dataList.length == gzrParams.value.total) {
|
||||
return
|
||||
}
|
||||
gzrParams.value.pageCurrent++
|
||||
getJczrlSelectPage()
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@ -500,42 +611,55 @@ const pageData = reactive({
|
||||
background-color: #273467d9;
|
||||
color: #fff;
|
||||
}
|
||||
::v-deep .el-table{
|
||||
|
||||
::v-deep .el-table {
|
||||
border: none !important;
|
||||
background-color: transparent !important;
|
||||
--el-table-border-color: transparent !important;
|
||||
--el-table-border-color: transparent !important;
|
||||
}
|
||||
::v-deep .el-table tr{
|
||||
|
||||
::v-deep .el-table tr {
|
||||
background-color: #072b56bf !important;
|
||||
}
|
||||
|
||||
::v-deep .el-table th.el-table__cell {
|
||||
background-color: #273467d9;
|
||||
color: #fff;
|
||||
}
|
||||
::v-deep .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{
|
||||
|
||||
::v-deep .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
|
||||
background-color: #094c9dbf !important;
|
||||
}
|
||||
::v-deep .el-table .el-table__cell{
|
||||
z-index:0 !important;
|
||||
position:static;
|
||||
|
||||
::v-deep .el-table .el-table__cell {
|
||||
z-index: 0 !important;
|
||||
position: static;
|
||||
}
|
||||
::v-deep .el-table td.el-table__cell{
|
||||
|
||||
::v-deep .el-table td.el-table__cell {
|
||||
|
||||
color: #fff !important;
|
||||
}
|
||||
::v-deep .el-table--border .el-table__cell{
|
||||
|
||||
::v-deep .el-table--border .el-table__cell {
|
||||
border-color: #3b3b3bbf !important;
|
||||
}
|
||||
::v-deep .el-pagination__total{
|
||||
|
||||
::v-deep .el-pagination__total {
|
||||
color: #fff !important;
|
||||
}
|
||||
::v-deep .el-pagination.is-background .btn-next:disabled, .el-pagination.is-background .btn-prev:disabled{
|
||||
background-color: #212c59;
|
||||
|
||||
::v-deep .el-pagination.is-background .btn-next:disabled,
|
||||
.el-pagination.is-background .btn-prev:disabled {
|
||||
background-color: #212c59;
|
||||
}
|
||||
::v-deep .el-pagination.is-background .btn-next:disabled, .el-pagination.is-background .btn-prev:disabled{
|
||||
|
||||
::v-deep .el-pagination.is-background .btn-next:disabled,
|
||||
.el-pagination.is-background .btn-prev:disabled {
|
||||
background-color: #212c59 !important;
|
||||
}
|
||||
::v-deep .el-date-editor .el-range-separator{
|
||||
|
||||
::v-deep .el-date-editor .el-range-separator {
|
||||
color: #fff !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -74,7 +74,7 @@ const queryCondition = ref({});
|
||||
const getjczgetXfllList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
const promes = { ...queryCondition.value, ...pageData.pageConfiger };
|
||||
qcckGet(promes,"/mosty-jcz/tbJczBpcCount/getRcwTj")
|
||||
qcckGet({xtly:'jcz'},"/mosty-jcz/tbJczBpcCount/getRcwTj")
|
||||
.then((res) => {
|
||||
pageData.tableData = [res];
|
||||
})
|
||||
|
||||
@ -10,15 +10,13 @@
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||
</div>
|
||||
<div class="tabBox">
|
||||
<MyTable
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData"
|
||||
>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData">
|
||||
<template #zp="{ row }">
|
||||
<el-image style="width: 70px" :src="row.zp" preview-teleported :preview-src-list="[row.zp]">
|
||||
</el-image>
|
||||
</template>
|
||||
<template #yjTp="{ row }">
|
||||
<div class="phone">
|
||||
<el-image v-if="row.tp" :src="urlImg + row.yjTp" fit="cover" lazy />
|
||||
@ -34,15 +32,10 @@
|
||||
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages
|
||||
@changeNo="changeNo"
|
||||
@changeSize="changeSize"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"
|
||||
></Pages>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
<!-- 编辑详情 -->
|
||||
<!-- 编辑详情 -->
|
||||
@ -56,7 +49,7 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import EditAddForm from "./components/editAddForm.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import { BpcryselectCrewList } from "@/api/mosty-jcz.js";
|
||||
import { BpcryselectCrewList, BpcrygetRypcList } from "@/api/mosty-jcz.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
|
||||
@ -98,17 +91,17 @@ const pageData = reactive({
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "照片", prop: "xm" },
|
||||
// { label: "照片", prop: "zp", showSolt: true },
|
||||
{ label: "所属部门", prop: "ssbm" },
|
||||
{ label: "盘查民警", prop: "pcmjXm" },
|
||||
{ label: "被盘查人", prop: "xm" },
|
||||
{ label: "被盘查人身份证", prop: "sfzh" },
|
||||
{ label: "被盘查人电话", prop: "lxdh" },
|
||||
{ label: "盘查日期", prop: "pcrq", showSolt: true },
|
||||
{ label: "盘查时间", prop: "pcsj", showSolt: true },
|
||||
{ label: "盘查日期", prop: "pcrq" },
|
||||
{ label: "盘查时间", prop: "pcsj" },
|
||||
{ label: "被盘输入类型", prop: "yjLx", showSolt: true },
|
||||
{ label: "人员标签名称", prop: "bqmc", showSolt: true },
|
||||
{ label: "盘查结果", prop: "pcclJgmc", showSolt: true }
|
||||
{ label: "盘查结果", prop: "pcclJgmc" }
|
||||
]
|
||||
});
|
||||
onMounted(() => {
|
||||
@ -120,8 +113,12 @@ const queryCondition = ref({});
|
||||
// 获取数据
|
||||
const getjczgetXfllList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
const promes = { ...queryCondition.value, ...pageData.pageConfiger };
|
||||
BpcryselectCrewList(promes)
|
||||
const promes = {
|
||||
...queryCondition.value,
|
||||
...pageData.pageConfiger,
|
||||
xtly: "jcz"
|
||||
};
|
||||
BpcrygetRypcList(promes)
|
||||
.then((res) => {
|
||||
pageData.tableData = res.records;
|
||||
pageData.total = res.total;
|
||||
|
||||
@ -8,15 +8,13 @@
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||
</div>
|
||||
<div class="tabBox">
|
||||
<MyTable
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData"
|
||||
>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData">
|
||||
<template #zp="{ row }">
|
||||
<el-image style="width: 70px" :src="row.zp" preview-teleported :preview-src-list="[row.zp]">
|
||||
</el-image>
|
||||
</template>
|
||||
<template #yjLx="{ row }">
|
||||
<dict-tag :value="row.yjLx" :options="D_BZ_PCSRLX" :tag="false" />
|
||||
</template>
|
||||
@ -28,22 +26,14 @@
|
||||
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages
|
||||
@changeNo="changeNo"
|
||||
@changeSize="changeSize"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"
|
||||
></Pages>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
<!-- 编辑详情 -->
|
||||
<!-- 编辑详情 -->
|
||||
<EditAddForm
|
||||
ref="detailDiloag"
|
||||
:dict="{ D_BZ_PCSRLX, D_BZ_HPZL, D_YDJW_PCCLYJYY_CL }"
|
||||
/>
|
||||
<EditAddForm ref="detailDiloag" :dict="{ D_BZ_PCSRLX, D_BZ_HPZL, D_YDJW_PCCLYJYY_CL }" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -53,7 +43,7 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import EditAddForm from "./components/editAddForm.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import { BpcryselectCrewList } from "@/api/mosty-jcz.js";
|
||||
import { BpcryselectCarList } from "@/api/mosty-jcz.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
|
||||
@ -93,16 +83,16 @@ const pageData = reactive({
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "照片", prop: "xm" },
|
||||
// { label: "照片", prop: "zp", showSolt: true },
|
||||
{ label: "所属部门", prop: "ssbm" },
|
||||
{ label: "盘查民警", prop: "pcmjXm" },
|
||||
{ label: "号牌号码", prop: "hphm" },
|
||||
{ label: "号牌种类", prop: "hpzl", howSolt: true }, //D_BZ_HPZL
|
||||
{ label: "号牌种类", prop: "hpzl", showSolt: true }, //D_BZ_HPZL
|
||||
{ label: "机动车所有人", prop: "jdcsyr" },
|
||||
{ label: "盘查日期", prop: "pcrq", showSolt: true },
|
||||
{ label: "盘查时间", prop: "pcsj", showSolt: true },
|
||||
{ label: "盘查日期", prop: "pcrq" },
|
||||
{ label: "盘查时间", prop: "pcsj" },
|
||||
{ label: "被盘输入类型", prop: "yjLx", showSolt: true }, //D_BZ_PCSRLX
|
||||
{ label: "盘查结果", prop: "pcclJgmc", showSolt: true }
|
||||
{ label: "盘查结果", prop: "pcclJgmc" }
|
||||
]
|
||||
});
|
||||
onMounted(() => {
|
||||
@ -114,8 +104,8 @@ const queryCondition = ref({});
|
||||
// 获取数据
|
||||
const getjczgetXfllList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
const promes = { ...queryCondition.value, ...pageData.pageConfiger };
|
||||
BpcryselectCrewList(promes)
|
||||
const promes = { ...queryCondition.value, ...pageData.pageConfiger, xtly: 'jcz' };
|
||||
BpcryselectCarList(promes)
|
||||
.then((res) => {
|
||||
pageData.tableData = res.records;
|
||||
pageData.total = res.total;
|
||||
|
||||
@ -109,7 +109,7 @@ const pageData = reactive({
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "图片", prop: "tp", showSolt: true },
|
||||
// { label: "图片", prop: "tp", showSolt: true },
|
||||
{ label: "民警姓名", prop: "xm" },
|
||||
{ label: "身份证号码", prop: "sfzh" },
|
||||
{ label: "警号", prop: "jh" },
|
||||
|
||||
@ -0,0 +1,327 @@
|
||||
<template>
|
||||
<div class="dialog" v-if="dialogForm">
|
||||
<div class="head_box">
|
||||
<span class="title">{{ pageInfo[pageType].title }}</span>
|
||||
<div>
|
||||
<el-button size="small" type="primary" v-if="['add', 'edit'].includes(pageType)" @click="_onSave">保存</el-button>
|
||||
<el-button size="small" @click="close">关闭</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cntinfo">
|
||||
<FormMessage v-model="listQuery" :formList="formData" ref="formRef" :rules="rules" :disabled="forbidden">
|
||||
<template #gczp>
|
||||
<el-image :src="listQuery.gczp" fit="fill" style="width: 100px; height: 100px;" />
|
||||
</template>
|
||||
</FormMessage>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from "vue";
|
||||
import { jczBkclEntity, jczBkclInsertEntity } from "@/api/mosty-jcz.js";
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue"
|
||||
import { ElMessage } from "element-plus";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
const props = defineProps({
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => { }
|
||||
}
|
||||
});
|
||||
const rules = reactive({
|
||||
cph: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入布控姓名"
|
||||
}
|
||||
],
|
||||
|
||||
bkkk: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择布控卡口"
|
||||
}
|
||||
], cpys: [{
|
||||
required: true,
|
||||
message: "请选择车牌颜色"
|
||||
}],
|
||||
yjys: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择预警颜色"
|
||||
}
|
||||
],
|
||||
bkkssj: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择布控开始时间"
|
||||
}
|
||||
],
|
||||
|
||||
bkjssj: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入布控身份证号"
|
||||
}
|
||||
],
|
||||
bkfs: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入布控方式"
|
||||
}
|
||||
], czcs: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输选择布控措施"
|
||||
}
|
||||
],
|
||||
bkyy: {
|
||||
required: true,
|
||||
message: "请输入布控原因"
|
||||
}
|
||||
});
|
||||
|
||||
const formData = reactive([
|
||||
{ label: "头像", prop: "gczp", type: "slot", width: "100%" },
|
||||
{ label: "车牌号", prop: "hphm", type: "input" },
|
||||
{ label: "过车时间", prop: "gzsj", type: "input" },
|
||||
{ label: "车辆识别代号", prop: "clsbdh", type: "input", disabled: true },
|
||||
{ label: "机动车所有人", prop: "jdcsyr", type: "input" },
|
||||
{ label: "所有人身份证号", prop: "jdcsyrsfzh", type: "input" },
|
||||
{ label: "驾驶员姓名", prop: "jsyxm", type: "input" },
|
||||
{ label: "驾驶员身份证号", prop: "jsysfzh", type: "input" },
|
||||
{ label: "品牌名称", prop: "zwppmc", type: "input" },
|
||||
{
|
||||
label: "车牌颜色", prop: "csysdm", type: "select", options: props.dict.D_BZ_CLYS
|
||||
},
|
||||
{
|
||||
label: "机动车档案编号", prop: "dabm", type: "input"
|
||||
},
|
||||
{
|
||||
label: "过站类型", prop: "gzlx", type: "select", options: [
|
||||
{ label: "入林", value: "01" },
|
||||
{ label: "出林", value: "02" }
|
||||
]
|
||||
},
|
||||
{ label: "摄像头编码", prop: "tdbm", type: "input" },
|
||||
{ label: "抓拍摄像头", prop: "tdmc", type: "input" },
|
||||
{ label: "抓拍地址", prop: "kkMc", type: "input" },
|
||||
{ label: "同行位置", prop: "txwz", type: "input" },
|
||||
{ label: "所属部门", prop: "ssbm", type: "input", disabled: true },
|
||||
]);
|
||||
|
||||
|
||||
|
||||
const formRef = ref(null);
|
||||
const emit = defineEmits(["getjczgetXfllList"]);
|
||||
const dialogForm = ref(false);
|
||||
const listQuery = ref({});
|
||||
const pageInfo = {
|
||||
edit: {
|
||||
title: "编辑",
|
||||
url: ""
|
||||
},
|
||||
add: {
|
||||
title: "新增",
|
||||
url: ""
|
||||
},
|
||||
detail: {
|
||||
title: "详情"
|
||||
}
|
||||
};
|
||||
|
||||
let pageType = ref("add");
|
||||
|
||||
// 初始化数据
|
||||
const forbidden = ref(false)
|
||||
const init = (type, row) => {
|
||||
pageType.value = type;
|
||||
dialogForm.value = true;
|
||||
// 根据type和row初始化表单数据
|
||||
tabHeightFn();
|
||||
if (type == "edit" || type == "detail") {
|
||||
listQuery.value = { ...row };
|
||||
if (type == "detail") {
|
||||
forbidden.value = true
|
||||
}
|
||||
} else {
|
||||
listQuery.value = {};
|
||||
}
|
||||
};
|
||||
//保存
|
||||
const _onSave = () => {
|
||||
if (!formRef) return;
|
||||
|
||||
formRef.value.submit(() => {
|
||||
const promes = { ...listQuery.value };
|
||||
qcckPost(promes, '/mosty-jcz/jczGzcl/editEntity').then((res) => {
|
||||
ElMessage({ message: "修改成功", type: "success" });
|
||||
emit("getjczgetXfllList");
|
||||
close();
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
// ((valid, fields) => {
|
||||
// if (valid) {
|
||||
// const promes = { ...listQuery.value };
|
||||
// if (pageType.value == "add") {
|
||||
// // jczBkclInsertEntity(promes).then((res) => {
|
||||
// // ElMessage({ message: "新增成功", type: "success" });
|
||||
// // emit("getjczgetXfllList");
|
||||
// // close();
|
||||
// // });
|
||||
// } else {
|
||||
// // /jczGzry/editEntity
|
||||
// qcckPost(promes,'/mosty-jcz/jczGzry/editEntity').then((res) => {
|
||||
// ElMessage({ message: "修改成功", type: "success" });
|
||||
// emit("getjczgetXfllList");
|
||||
// close();
|
||||
// });
|
||||
// }
|
||||
// } else {
|
||||
// console.log("error submit!", fields);
|
||||
// }
|
||||
// });
|
||||
// console.log();
|
||||
};
|
||||
|
||||
|
||||
//页面关闭
|
||||
const close = () => {
|
||||
dialogForm.value = false;
|
||||
forbidden.value = false
|
||||
listQuery.value = {};
|
||||
};
|
||||
// 表格高度计算
|
||||
const tableHeight1 = ref();
|
||||
const tabHeightFn = () => {
|
||||
tableHeight1.value = window.innerHeight - 450;
|
||||
};
|
||||
|
||||
defineExpose({ init });
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dialog {
|
||||
padding: 20px;
|
||||
|
||||
.head_box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.cntinfo {
|
||||
height: calc(100% - 70px);
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.my_transfer {
|
||||
height: calc(100% - 50px);
|
||||
display: flex;
|
||||
|
||||
.btn {
|
||||
width: 50px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.left {
|
||||
margin: 12px;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
|
||||
.tableBox {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.serch {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
// height: 96px;
|
||||
>.el-form--inline {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
|
||||
>.el-form-item--default {
|
||||
width: 31%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tableBox {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
width: 380px;
|
||||
margin: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.phone {
|
||||
width: 95px;
|
||||
height: 120px;
|
||||
|
||||
.el-image {
|
||||
width: 95px;
|
||||
max-height: 120px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-upload {
|
||||
width: 90px;
|
||||
height: 100px;
|
||||
border: 1px dashed #000000;
|
||||
margin-bottom: 14px;
|
||||
|
||||
.el-icon {
|
||||
margin-top: 34px;
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
.el-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.mapbox {
|
||||
width: 1000px;
|
||||
padding: 0 10px;
|
||||
height: 400px;
|
||||
box-sizing: border-box;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.diviput {
|
||||
width: 100%;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #c0c4cc;
|
||||
color: #000;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0 10px;
|
||||
border-radius: 5px;
|
||||
|
||||
.placeholder {
|
||||
color: #b5b5b5;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-icon svg {
|
||||
color: #000000 !important;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,218 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle title="过站车辆管理">
|
||||
<!-- <el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
|
||||
<el-icon style="vertical-align: middle">
|
||||
<CirclePlus />
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
|
||||
</el-button> -->
|
||||
</PageTitle>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div ref="searchBox">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||
</div>
|
||||
<div class="tabBox">
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||
<template #gczp="{ row }">
|
||||
<el-image style="width: 70px; height: 80px" :src="row.gczp ? row.gczp : car" :fit="fit" />
|
||||
</template>
|
||||
<template #gzlx="{ row }">
|
||||
<span v-if="row.gzlx == '01'">入林</span>
|
||||
<span v-else>出林</span>
|
||||
</template>
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<template v-if="Auth">
|
||||
<el-link type="primary" @click="addEdit('edit', row)">修改</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">删除</el-link>
|
||||
</template>
|
||||
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
<!-- 编辑详情 -->
|
||||
<EditAddForm ref="detailDiloag" :dict="{
|
||||
D_BZ_BKYS, D_BZ_CZCS, D_BZ_CPHYS
|
||||
}" @getjczgetXfllList="getjczgetXfllList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import EditAddForm from "./components/editAddForm.vue";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { isAuth } from '@/utils/tools.js'
|
||||
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const car = ref(require('@/assets/images/car.png'))
|
||||
const kkList = ref([])
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
label: "车牌号",
|
||||
prop: "hphm",
|
||||
placeholder: "请输入车牌号",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "过站时间",
|
||||
prop: "startTime",
|
||||
placeholder: "过站时间",
|
||||
showType: "daterange",
|
||||
}, {
|
||||
label: "检查站",
|
||||
prop: "kkId",
|
||||
placeholder: "请选择过站检查站",
|
||||
showType: "select",
|
||||
options: []
|
||||
},
|
||||
]);
|
||||
|
||||
const listGet = () => {
|
||||
qcckGet({}, "/mosty-jcz/jcz/selectJczFullList").then((res) => {
|
||||
kkList.value = res.map(item => {
|
||||
return {
|
||||
label: item.jczmc,
|
||||
value: item.id
|
||||
}
|
||||
})
|
||||
}).catch((err) => {
|
||||
|
||||
}).finally(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
}
|
||||
watch(() => kkList.value, (newVal, oldVal) => {
|
||||
if (newVal) {
|
||||
searchConfiger.value[2].options = newVal
|
||||
}
|
||||
}, { deep: true, immediate: true })
|
||||
const detailDiloag = ref();
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
loading: false
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "过车图片", prop: "gczp", showOverflowTooltip: true, showSolt: true },
|
||||
{ label: "车牌号", prop: "hphm", showOverflowTooltip: true },
|
||||
{ label: "过车时间", prop: "gzsj", showOverflowTooltip: true },
|
||||
{ label: "卡口方向", prop: "gzlx", showOverflowTooltip: true, showSolt: true },
|
||||
{ label: "车辆种类", prop: "zwppmc", showOverflowTooltip: true },
|
||||
{ label: "摄像头编码", prop: "tdbm", showOverflowTooltip: true },
|
||||
{ label: "抓拍摄像头", prop: "tdmc", showOverflowTooltip: true, },
|
||||
{ label: "抓拍地址", prop: "kkMc", showOverflowTooltip: true },
|
||||
{ label: "标签", prop: "bq", showOverflowTooltip: true }
|
||||
]
|
||||
});
|
||||
const Auth = ref(false)
|
||||
onMounted(() => {
|
||||
tabHeightFn();
|
||||
Auth.value = isAuth()
|
||||
listGet()
|
||||
});
|
||||
|
||||
//查询条件
|
||||
const queryCondition = ref();
|
||||
// 获取数据
|
||||
const getjczgetXfllList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
const params = {
|
||||
...queryCondition.value,
|
||||
pageCurrent: pageData.pageConfiger.pageCurrent,
|
||||
pageSize: pageData.pageConfiger.pageSize,
|
||||
|
||||
}
|
||||
qcckGet(params, "/mosty-jcz/jczGzcl/selectPage").then((res) => {
|
||||
pageData.tableData = res.records
|
||||
pageData.total = res.total
|
||||
|
||||
}).catch((err) => {
|
||||
|
||||
}).finally(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
getjczgetXfllList();
|
||||
// 搜索
|
||||
const onSearch = (val) => {
|
||||
queryCondition.value = {
|
||||
...val,
|
||||
startTime: val.startTime ? val.startTime[0] : "",
|
||||
endTime: val.startTime ? val.startTime[1] : ""
|
||||
}
|
||||
getjczgetXfllList();
|
||||
};
|
||||
|
||||
const changeNo = (val) => {
|
||||
pageData.pageConfiger.pageCurrent = val;
|
||||
};
|
||||
const changeSize = (val) => {
|
||||
pageData.pageConfiger.pageSize = val;
|
||||
};
|
||||
|
||||
// 获取列表
|
||||
// 删除
|
||||
const delDictItem = (ids) => {
|
||||
proxy
|
||||
.$confirm("确定删除该数据?", "警告", { type: "warning" })
|
||||
.then(() => {
|
||||
|
||||
qcckPost({
|
||||
ids: [ids]
|
||||
}, "/mosty-jcz/jczGzcl/deleteById").then((res) => {
|
||||
ElMessage({ message: "删除成功", type: "success" });
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getjczgetXfllList();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
proxy.$message.info("已取消");
|
||||
});
|
||||
};
|
||||
|
||||
// 新增
|
||||
const addEdit = (type, row) => {
|
||||
detailDiloag.value.init(type, row);
|
||||
};
|
||||
|
||||
const searchBox = ref(null);
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight =
|
||||
window.innerHeight - searchBox.value.offsetHeight - 280;
|
||||
window.onresize = function () {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-loading-mask {
|
||||
background: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
</style>
|
||||
@ -199,7 +199,7 @@ const pageData = reactive({
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "图片", prop: "tp", showSolt: true },
|
||||
// { label: "图片", prop: "tp", showSolt: true },
|
||||
{ label: "民警姓名", prop: "xm" },
|
||||
{ label: "身份证号码", prop: "sfzh" },
|
||||
{ label: "警号", prop: "jh" },
|
||||
|
||||
@ -0,0 +1,318 @@
|
||||
<template>
|
||||
<div class="dialog" v-if="dialogForm">
|
||||
<div class="head_box">
|
||||
<span class="title">{{ pageInfo[pageType].title }}</span>
|
||||
<div>
|
||||
<el-button size="small" type="primary" v-if="['add', 'edit'].includes(pageType)" @click="_onSave">保存</el-button>
|
||||
<el-button size="small" @click="close">关闭</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cntinfo">
|
||||
<FormMessage v-model="listQuery" :formList="formData" ref="formRef" :rules="rules" :disabled="forbidden">
|
||||
<template #zp>
|
||||
<el-image :src="listQuery.zp" fit="fill" style="width: 100px; height: 100px;" />
|
||||
</template>
|
||||
</FormMessage>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from "vue";
|
||||
import { jczBkclEntity, jczBkclInsertEntity } from "@/api/mosty-jcz.js";
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue"
|
||||
import { ElMessage } from "element-plus";
|
||||
import { qcckGet,qcckPost } from "@/api/qcckApi.js";
|
||||
const props = defineProps({
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => { }
|
||||
}
|
||||
});
|
||||
const rules = reactive({
|
||||
cph: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入布控姓名"
|
||||
}
|
||||
],
|
||||
|
||||
bkkk: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择布控卡口"
|
||||
}
|
||||
], cpys: [{
|
||||
required: true,
|
||||
message: "请选择车牌颜色"
|
||||
}],
|
||||
yjys: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择预警颜色"
|
||||
}
|
||||
],
|
||||
bkkssj: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择布控开始时间"
|
||||
}
|
||||
],
|
||||
|
||||
bkjssj: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入布控身份证号"
|
||||
}
|
||||
],
|
||||
bkfs: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入布控方式"
|
||||
}
|
||||
], czcs: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输选择布控措施"
|
||||
}
|
||||
],
|
||||
bkyy: {
|
||||
required: true,
|
||||
message: "请输入布控原因"
|
||||
}
|
||||
});
|
||||
|
||||
const formData = reactive([
|
||||
{ label: "头像", prop: "zp", type: "slot", width: "100%" },
|
||||
{ label: "姓名", prop: "xm", type: "input" },
|
||||
{ label: "身份证号", prop: "zjhm", type: "input" },
|
||||
{ label: "出生日期", prop: "csrq", type: "input", disabled: true },
|
||||
|
||||
{ label: "过站时间", prop: "gzsj", type: "datetime" },
|
||||
{
|
||||
label: "过站类型", prop: "gzlx", type: "select", options: [
|
||||
{ label: "入林", value: "01" },
|
||||
{ label: "出林", value: "02" }
|
||||
]
|
||||
},
|
||||
{ label: "摄像头编码", prop: "tdbm", type: "input" },
|
||||
{ label: "抓拍摄像头", prop: "tdmc", type: "input" },
|
||||
{ label: "抓拍地址", prop: "kkMc", type: "input" },
|
||||
{ label: "同行位置", prop: "txwz", type: "input" },
|
||||
{ label: "所属部门", prop: "ssbm", type: "input", disabled: true },
|
||||
]);
|
||||
|
||||
|
||||
|
||||
const formRef = ref(null);
|
||||
const emit = defineEmits(["getjczgetXfllList"]);
|
||||
const dialogForm = ref(false);
|
||||
const listQuery = ref({});
|
||||
const pageInfo = {
|
||||
edit: {
|
||||
title: "编辑",
|
||||
url: ""
|
||||
},
|
||||
add: {
|
||||
title: "新增",
|
||||
url: ""
|
||||
},
|
||||
detail: {
|
||||
title: "详情"
|
||||
}
|
||||
};
|
||||
|
||||
let pageType = ref("add");
|
||||
|
||||
// 初始化数据
|
||||
const forbidden = ref(false)
|
||||
const init = (type, row) => {
|
||||
pageType.value = type;
|
||||
dialogForm.value = true;
|
||||
// 根据type和row初始化表单数据
|
||||
tabHeightFn();
|
||||
if (type == "edit" || type == "detail") {
|
||||
listQuery.value = { ...row };
|
||||
if (type == "detail") {
|
||||
forbidden.value = true
|
||||
}
|
||||
} else {
|
||||
listQuery.value = {};
|
||||
}
|
||||
};
|
||||
//保存
|
||||
const _onSave = () => {
|
||||
if (!formRef) return;
|
||||
|
||||
formRef.value.submit(() => {
|
||||
const promes = { ...listQuery.value };
|
||||
qcckPost(promes,'/mosty-jcz/jczGzry/editEntity').then((res) => {
|
||||
ElMessage({ message: "修改成功", type: "success" });
|
||||
emit("getjczgetXfllList");
|
||||
close();
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
// ((valid, fields) => {
|
||||
// if (valid) {
|
||||
// const promes = { ...listQuery.value };
|
||||
// if (pageType.value == "add") {
|
||||
// // jczBkclInsertEntity(promes).then((res) => {
|
||||
// // ElMessage({ message: "新增成功", type: "success" });
|
||||
// // emit("getjczgetXfllList");
|
||||
// // close();
|
||||
// // });
|
||||
// } else {
|
||||
// // /jczGzry/editEntity
|
||||
// qcckPost(promes,'/mosty-jcz/jczGzry/editEntity').then((res) => {
|
||||
// ElMessage({ message: "修改成功", type: "success" });
|
||||
// emit("getjczgetXfllList");
|
||||
// close();
|
||||
// });
|
||||
// }
|
||||
// } else {
|
||||
// console.log("error submit!", fields);
|
||||
// }
|
||||
// });
|
||||
// console.log();
|
||||
};
|
||||
|
||||
|
||||
//页面关闭
|
||||
const close = () => {
|
||||
dialogForm.value = false;
|
||||
forbidden.value = false
|
||||
listQuery.value = {};
|
||||
};
|
||||
// 表格高度计算
|
||||
const tableHeight1 = ref();
|
||||
const tabHeightFn = () => {
|
||||
tableHeight1.value = window.innerHeight - 450;
|
||||
};
|
||||
|
||||
defineExpose({ init });
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dialog {
|
||||
padding: 20px;
|
||||
|
||||
.head_box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.cntinfo {
|
||||
height: calc(100% - 70px);
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.my_transfer {
|
||||
height: calc(100% - 50px);
|
||||
display: flex;
|
||||
|
||||
.btn {
|
||||
width: 50px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.left {
|
||||
margin: 12px;
|
||||
flex: 1;
|
||||
position: relative;
|
||||
|
||||
.tableBox {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.serch {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
// height: 96px;
|
||||
>.el-form--inline {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
|
||||
>.el-form-item--default {
|
||||
width: 31%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tableBox {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
width: 380px;
|
||||
margin: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.phone {
|
||||
width: 95px;
|
||||
height: 120px;
|
||||
|
||||
.el-image {
|
||||
width: 95px;
|
||||
max-height: 120px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-upload {
|
||||
width: 90px;
|
||||
height: 100px;
|
||||
border: 1px dashed #000000;
|
||||
margin-bottom: 14px;
|
||||
|
||||
.el-icon {
|
||||
margin-top: 34px;
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
.el-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.mapbox {
|
||||
width: 1000px;
|
||||
padding: 0 10px;
|
||||
height: 400px;
|
||||
box-sizing: border-box;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.diviput {
|
||||
width: 100%;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #c0c4cc;
|
||||
color: #000;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0 10px;
|
||||
border-radius: 5px;
|
||||
|
||||
.placeholder {
|
||||
color: #b5b5b5;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-icon svg {
|
||||
color: #000000 !important;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,218 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle title="过站人员管理">
|
||||
<!-- <el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
|
||||
<el-icon style="vertical-align: middle">
|
||||
<CirclePlus />
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
|
||||
</el-button> -->
|
||||
</PageTitle>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div ref="searchBox">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||
</div>
|
||||
<div class="tabBox">
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||
>
|
||||
<template #zp="{ row }">
|
||||
<el-image style="width: 70px; height: 80px" :src="row.zp?row.zp:rxImg" :fit="fit" />
|
||||
</template>
|
||||
<template #gzlx="{ row }">
|
||||
<span v-if="row.gzlx == '01'">入林</span>
|
||||
<span v-else>出林</span>
|
||||
</template>
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<template v-if="Auth">
|
||||
<el-link type="primary" @click="addEdit('edit', row)">修改</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">删除</el-link>
|
||||
</template>
|
||||
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
<!-- 编辑详情 -->
|
||||
<EditAddForm ref="detailDiloag" :dict="{
|
||||
D_BZ_BKYS, D_BZ_CZCS, D_BZ_CPHYS
|
||||
}" @getjczgetXfllList="getjczgetXfllList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import EditAddForm from "./components/editAddForm.vue";
|
||||
import { qcckGet,qcckPost } from "@/api/qcckApi.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { isAuth } from '@/utils/tools.js'
|
||||
import { reactive, ref, onMounted, getCurrentInstance,watch } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const rxImg=require('@/assets/images/default_male.png')
|
||||
const kkList = ref([])
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "xm",
|
||||
placeholder: "请输入姓名",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "过站时间",
|
||||
prop: "startTime",
|
||||
placeholder: "过站时间",
|
||||
showType: "daterange",
|
||||
}, {
|
||||
label: "检查站",
|
||||
prop: "kkId",
|
||||
placeholder: "请选择过站检查站",
|
||||
showType: "select",
|
||||
options:[]
|
||||
},
|
||||
]);
|
||||
|
||||
const listGet = () => {
|
||||
qcckGet({}, "/mosty-jcz/jcz/selectJczFullList").then((res) => {
|
||||
kkList.value = res.map(item => {
|
||||
return {
|
||||
label: item.jczmc,
|
||||
value: item.id
|
||||
}
|
||||
})
|
||||
}).catch((err) => {
|
||||
|
||||
}).finally(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
}
|
||||
watch(() => kkList.value, (newVal, oldVal) => {
|
||||
if (newVal) {
|
||||
searchConfiger.value[2].options = newVal
|
||||
}
|
||||
},{deep:true,immediate:true})
|
||||
const detailDiloag = ref();
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
loading: false
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "头像", prop: "zp", showSolt: true },
|
||||
{ label: "姓名", prop: "xm", showOverflowTooltip: true },
|
||||
{ label: "身份证号", prop: "zjhm", showOverflowTooltip: true,width: 200 },
|
||||
{ label: "过站类型", prop: "gzlx", showOverflowTooltip: true, showSolt: true },
|
||||
{ label: "摄像头编码", prop: "tdbm", showOverflowTooltip: true },
|
||||
{ label: "抓拍摄像头", prop: "tdmc", showOverflowTooltip: true, },
|
||||
{ label: "抓拍地址", prop: "kkMc", showOverflowTooltip: true },
|
||||
{ label: "标签", prop: "bq", showOverflowTooltip: true }
|
||||
]
|
||||
});
|
||||
const Auth = ref(false)
|
||||
onMounted(() => {
|
||||
tabHeightFn();
|
||||
Auth.value = isAuth()
|
||||
listGet()
|
||||
});
|
||||
|
||||
//查询条件
|
||||
const queryCondition = ref();
|
||||
// 获取数据
|
||||
const getjczgetXfllList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
const params = {
|
||||
...queryCondition.value,
|
||||
pageCurrent: pageData.pageConfiger.pageCurrent,
|
||||
pageSize: pageData.pageConfiger.pageSize,
|
||||
|
||||
}
|
||||
qcckGet(params, "/mosty-jcz/jczGzry/selectPage").then((res) => {
|
||||
pageData.tableData = res.records
|
||||
pageData.total = res.total
|
||||
|
||||
}).catch((err) => {
|
||||
|
||||
}).finally(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
getjczgetXfllList();
|
||||
// 搜索
|
||||
const onSearch = (val) => {
|
||||
queryCondition.value = {
|
||||
...val,
|
||||
startTime: val.startTime ? val.startTime[0] : "",
|
||||
endTime: val.startTime ? val.startTime[1] : ""
|
||||
}
|
||||
getjczgetXfllList();
|
||||
};
|
||||
|
||||
const changeNo = (val) => {
|
||||
pageData.pageConfiger.pageCurrent = val;
|
||||
};
|
||||
const changeSize = (val) => {
|
||||
pageData.pageConfiger.pageSize = val;
|
||||
};
|
||||
|
||||
// 获取列表
|
||||
// 删除
|
||||
const delDictItem = (ids) => {
|
||||
proxy
|
||||
.$confirm("确定删除该数据?", "警告", { type: "warning" })
|
||||
.then(() => {
|
||||
|
||||
qcckPost({
|
||||
ids: [ids]
|
||||
}, "/mosty-jcz/jczGzry/deleteById").then((res) => {
|
||||
ElMessage({ message: "删除成功", type: "success" });
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getjczgetXfllList();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
proxy.$message.info("已取消");
|
||||
});
|
||||
};
|
||||
|
||||
// 新增
|
||||
const addEdit = (type, row) => {
|
||||
detailDiloag.value.init(type, row);
|
||||
};
|
||||
|
||||
const searchBox = ref(null);
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight =
|
||||
window.innerHeight - searchBox.value.offsetHeight - 280;
|
||||
window.onresize = function () {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-loading-mask {
|
||||
background: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
</style>
|
||||
@ -18,7 +18,7 @@
|
||||
<div class="info-item">
|
||||
<span class="label">车牌号:</span>
|
||||
<span>{{ item.yjClcph }}</span>
|
||||
<span class="tag">{{ item.yjBt }}</span>
|
||||
<span class="tag">{{ item.yjbqmc }}</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">相似度:</span>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<div class="info-item">
|
||||
<span class="label">姓名:</span>
|
||||
<span>{{ item.yjRyxm }}</span>
|
||||
<span class="tag">{{ item.yjBt }}</span>
|
||||
<span class="tag">{{ item.yjbqmc }}</span>
|
||||
</div>
|
||||
<div class="info-item flex">
|
||||
<span class="label">性别:{{ IdCard(item.yjRysfzh, 'all').sex }}</span>
|
||||
|
||||
@ -70,7 +70,9 @@
|
||||
<script setup>
|
||||
// 可以在这里添加需要的响应式数据和方法
|
||||
import { jczCountWay, jczgetcountCrl, jczGzrycountCrl } from "@/api/mosty-jcz";
|
||||
import { useRoute } from 'vue-router'
|
||||
import { ref } from "vue";
|
||||
const route = useRoute()
|
||||
const personnelData = ref({
|
||||
rzhy: 0,
|
||||
sczd: 0,
|
||||
@ -85,21 +87,21 @@ const carAccess = ref({
|
||||
rlsl: 0
|
||||
});
|
||||
const countWay = () => {
|
||||
jczCountWay()
|
||||
jczCountWay({kkId:route.query.id?route.query.id:""})
|
||||
.then((res) => {
|
||||
personnelData.value = res;
|
||||
})
|
||||
.catch((err) => {});
|
||||
};
|
||||
const getcountCrl = () => {
|
||||
jczgetcountCrl()
|
||||
jczgetcountCrl({kkId:route.query.id?route.query.id:""})
|
||||
.then((res) => {
|
||||
personneAccess.value = res;
|
||||
})
|
||||
.catch((err) => {});
|
||||
};
|
||||
const GzrycountCrl = () => {
|
||||
jczGzrycountCrl()
|
||||
jczGzrycountCrl({kkId:route.query.id?route.query.id:""})
|
||||
.then((res) => {
|
||||
carAccess.value = res;
|
||||
})
|
||||
|
||||
@ -3,8 +3,8 @@ const path = require("path");
|
||||
function resolve(dir) {
|
||||
return path.join(__dirname, dir);
|
||||
}
|
||||
const serverHost = "http://192.168.3.59:8006"//波哥
|
||||
// const serverHost = "http://47.108.232.77:9537";
|
||||
// const serverHost = "http://192.168.3.59:8006"//波哥
|
||||
const serverHost = "http://47.108.232.77:9537";
|
||||
// const serverHost = "http://j96926b5.natappfree.cc"
|
||||
// const serverHost = "http://192.168.1.98:8006"
|
||||
// const serverHost = "http://n5e6d39a.natappfree.cc"//周
|
||||
|
||||
Reference in New Issue
Block a user