lcw
This commit is contained in:
@ -404,6 +404,18 @@ export const JczdeleteById = (id) => {
|
||||
method: "delete"
|
||||
});
|
||||
};
|
||||
|
||||
// 检查站详情
|
||||
export const JczselectById = (params) => {
|
||||
return request({
|
||||
url: api + `/jcz/selectById`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
//盘查管理
|
||||
// 人
|
||||
export const BpcryselectCrewList = (params) => {
|
||||
@ -438,11 +450,11 @@ export const GjrytxeditEntity = (data) => {
|
||||
});
|
||||
};
|
||||
// 查询过检人员图像
|
||||
export const GjrytxselectPage = (data) => {
|
||||
export const GjrytxselectPage = (params) => {
|
||||
return request({
|
||||
url: api + `/jczGjrytx/selectPage`,
|
||||
method: "get",
|
||||
data
|
||||
params
|
||||
});
|
||||
};
|
||||
// 删除过检人员图像
|
||||
@ -670,3 +682,35 @@ export const tbJczXfbbdeleteJyQxzb = (data) => {
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* 新增摄像头
|
||||
*/
|
||||
export const sxtBatch = (data) => {
|
||||
return request({
|
||||
url: api + `/tbJczSxt/batch`,
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
};
|
||||
/**
|
||||
* 完成报备
|
||||
*/
|
||||
export const finishEntity = (id) => {
|
||||
return request({
|
||||
url: api + `/tbJczXfbb/finishEntity/${id}`,
|
||||
method: "get",
|
||||
});
|
||||
};
|
||||
/**
|
||||
* 获取摄像头列表
|
||||
*/
|
||||
export const sxtGetList = (data) => {
|
||||
return request({
|
||||
url: api + `/tbJczSxt/getList`,
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
330
src/api/service.js
Normal file
330
src/api/service.js
Normal file
@ -0,0 +1,330 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-jmxf";
|
||||
const apibase = "/mosty-api/mosty-jmxf";
|
||||
|
||||
|
||||
export const http = {
|
||||
// 获取视频ws地址
|
||||
getSpWs: (params) => {
|
||||
return request({
|
||||
url: "/jcApi/api/haikang/cameras/getws",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力 全部list
|
||||
getJlAllList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/jmjl/qbList",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力 在岗list
|
||||
getJlZgList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/jmjl/zgList",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
// 街面警力 - 民警辅警统计
|
||||
getJmjlDate: (params) => {
|
||||
return request({
|
||||
url: api + "/tbQwXfbb/selectMfjCount",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 街面警力 - 民警list
|
||||
getJmjlDateMJList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/jmjl/mjlb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 街面警力 - fu警list
|
||||
getJmjlDateFJList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/jmjl/fjlb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
// 警力情况 - 警力全部
|
||||
getJlAll: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/jmjl/qb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 - 警力在岗
|
||||
getJlZg: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/jmjl/zg",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 - 民警全部
|
||||
getMjAll: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/mj/qbmj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 - 民警在岗
|
||||
getMjZg: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/mj/zgmj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 - 民警全部
|
||||
getMjAllList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/mj/qbmj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 - 民警在岗
|
||||
getMjZgList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/mj/zgmj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 - 辅警全部
|
||||
getFjAll: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/fj/qbfj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 -辅警在岗
|
||||
getFjZg: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/fj/zgfj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
// 可抽调 -民警 - 辅警
|
||||
getKcd(params) {
|
||||
return request({
|
||||
url: api + "/jlqk/kcd/zbtj",
|
||||
method: "GET",
|
||||
params: params
|
||||
});
|
||||
},
|
||||
|
||||
// 警力情况 - 辅警全部列表
|
||||
getFjAllList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/fj/qblb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 - 辅警在岗列表
|
||||
getFjAllListZG: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/fj/zglb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 -请休假Mj-FJ
|
||||
getRest: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/qxj/mjfjtj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
// 街面警力统计 app查询界面警力民警辅警数量
|
||||
getJmjlTj: (data) => {
|
||||
return request({
|
||||
url: api + "/tbQwXfbb/selectMfjCount",
|
||||
method: "GET",
|
||||
params: data
|
||||
});
|
||||
},
|
||||
|
||||
// 请休假
|
||||
getQxj: (data) => {
|
||||
return request({
|
||||
url: api + "/jlqk/qxj/mjfjtj",
|
||||
method: "GET",
|
||||
params: data
|
||||
});
|
||||
},
|
||||
|
||||
// 警力情况 -请休假Mj
|
||||
getRestMj: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/qxj/mjlb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 警力情况 -请休假FJ
|
||||
getRestFj: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/qxj/fjlb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 勤务列表 - 警力清单
|
||||
getJlList: (params) => {
|
||||
return request({
|
||||
url: api + "/tbQwBmjlbb/getJlqdList",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 勤务列表 - 不在岗警力清单
|
||||
getBZGlist: (params) => {
|
||||
return request({
|
||||
url: api + "/qwlb/bzgjlqd",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 大屏首页统计 - 在岗警力 - 民警
|
||||
getJlmj: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/mj/zglb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
getJlfj: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/fj/zglb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
getJlqbmj: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/mj/qblb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 大屏首页统计 - 街面巡组 - 计划 列表
|
||||
getJMXZ: (params) => {
|
||||
return request({
|
||||
url: api + "/tbQwXfbb/selectJhjmxzList",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 大屏首页统计 - 街面巡组 - 实际 列表
|
||||
selectSjjmxzList: (params) => {
|
||||
return request({
|
||||
url: api + "/tbQwXfbb/selectSjjmxzList",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
// 大屏首页统计 - 街面力量 - 计划、实际
|
||||
getJMLL: (params) => {
|
||||
return request({
|
||||
url: api + "/tbQwXfbb/selectJmllList",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
// 大屏首页统计 - 街面警力- 民警
|
||||
getjMJLmj: (params) => {
|
||||
return request({
|
||||
url: api + "/tbQwXfbb/selectJmllList",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
// 大屏首页统计- 可抽查 - 值班
|
||||
getZB: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/kcd/zbtj",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
// 大屏首页统计- 可抽查 - 辅警列表
|
||||
getKccFjList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/kcd/fjlb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 大屏首页统计- 可抽查 - 民警列表
|
||||
getKccMjList: (params) => {
|
||||
return request({
|
||||
url: api + "/jlqk/kcd/mjlb",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
|
||||
// 根据监控点编号进行云台操作
|
||||
controllingSbbh: (data) => {
|
||||
return request({
|
||||
url: apibase + "/tbYsSxt/controlling",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
},
|
||||
|
||||
// 获取HLS地址
|
||||
getGbHls: (params) => {
|
||||
return request({
|
||||
url: apibase + "/tbYsSxt/getGbHls",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 获取HLS地址
|
||||
previewURLs: (params) => {
|
||||
return request({
|
||||
url: apibase + "/tbYsSxt/previewURLs",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 获取回放地址
|
||||
rebackURLs: (params) => {
|
||||
return request({
|
||||
url: apibase + "/tbYsSxt/playbackURLs",
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
26
src/api/yszx.js
Normal file
26
src/api/yszx.js
Normal file
@ -0,0 +1,26 @@
|
||||
import request from "@/utils/request";
|
||||
const api = "/mosty-api/mosty-yszx";
|
||||
/*
|
||||
* 查询摄像头列表
|
||||
* return promise 查询摄像头列表
|
||||
*/
|
||||
export const ysSxtGetList = (data = {}) => {
|
||||
return request({
|
||||
url: api + "/tbYsSxt/getList",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取摄像头列表
|
||||
* @param {*} data
|
||||
*/
|
||||
export const ysSxtgetPageList = (data = {}) => {
|
||||
return request({
|
||||
url: api + "/tbYsSxt/getPageList",
|
||||
method: "POST",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
@ -116,6 +116,7 @@
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.absolute {
|
||||
position: absolute;
|
||||
}
|
||||
@ -159,9 +160,11 @@
|
||||
.flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flex-grow1 {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.shrink0 {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
@ -169,6 +172,7 @@
|
||||
.flex-warp {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.flex-nowrap {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
@ -180,6 +184,7 @@
|
||||
.just-between {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.just-around {
|
||||
justify-content: space-around;
|
||||
}
|
||||
@ -207,11 +212,13 @@
|
||||
.align-bottom {
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.flexcc {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.flexcb {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@ -317,11 +324,11 @@
|
||||
}
|
||||
|
||||
.ww#{$i} {
|
||||
width: #{$i}+ "%";
|
||||
width: #{$i}+"%";
|
||||
}
|
||||
|
||||
.hh#{$i} {
|
||||
height: #{$i}+ "%";
|
||||
height: #{$i}+"%";
|
||||
}
|
||||
|
||||
//高度
|
||||
@ -333,26 +340,32 @@
|
||||
.lh#{$i} {
|
||||
line-height: #{$i}px;
|
||||
}
|
||||
|
||||
//自适应大号字体(通常为统计数字 18-30)
|
||||
.font_size_big {
|
||||
font-size: clamp(1.125rem, -0.894rem + 2.31vw, 1.875rem);
|
||||
}
|
||||
|
||||
//自适应一号字体(通常为一级标题 14-18)
|
||||
.font_size_title {
|
||||
font-size: clamp(0.875rem, 0.37rem + 0.58vw, 1.063rem);
|
||||
}
|
||||
|
||||
//自适应统计字体(通常为统计数字 14-22)
|
||||
.font_size1 {
|
||||
font-size: clamp(0.875rem, -0.471rem + 1.54vw, 1.375rem);
|
||||
}
|
||||
|
||||
//自适应二号字体(通常为二级标题 14-16)
|
||||
.font_size2 {
|
||||
font-size: clamp(0.75rem, 0.077rem + 0.77vw, 1rem);
|
||||
}
|
||||
|
||||
//自适应普通字体(通常为默认大小 10-14)
|
||||
.font_size_default {
|
||||
font-size: clamp(0.625rem, -0.048rem + 0.77vw, 0.875rem);
|
||||
}
|
||||
|
||||
.flex#{$i} {
|
||||
flex: #{$i};
|
||||
}
|
||||
@ -364,9 +377,29 @@
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "HANYILINGXINTIJIAN";
|
||||
src: url("~@/assets/font/HANYILINGXINTIJIAN-1.TTF");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* 自定义滚动条样式 */
|
||||
::-webkit-scrollbar {
|
||||
width: 0.5em;
|
||||
height: 0.5em;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #021b31;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #011733cd;
|
||||
}
|
||||
@ -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">
|
||||
@ -75,7 +74,7 @@ const props = defineProps({
|
||||
});
|
||||
try {
|
||||
const userInfo = getItem("deptId")[0].deptCode;
|
||||
} catch (error) { }
|
||||
} catch (error) {}
|
||||
let map;
|
||||
let mapLayer;
|
||||
let mapLayer1;
|
||||
@ -89,33 +88,27 @@ 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: 10
|
||||
},
|
||||
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(
|
||||
"http://89.0.23.24/PGIS_S_TileMapServer/Maps/XZDJ_SL/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();
|
||||
});
|
||||
mapUtil.value = new MapUtil(map);
|
||||
@ -135,6 +128,8 @@ onMounted(() => {
|
||||
});
|
||||
// 撒点
|
||||
emitter.on("addPointArea", (obj) => {
|
||||
console.log(obj);
|
||||
|
||||
mapUtil.value.makerSki(obj);
|
||||
});
|
||||
// 鼠标滑过提示文字的点位
|
||||
@ -173,7 +168,7 @@ onMounted(() => {
|
||||
});
|
||||
// 回显线
|
||||
emitter.on("echoLine", (res) => {
|
||||
mapUtil.value.createLine(res, res.flag);
|
||||
mapUtil.value.createLine(res);
|
||||
});
|
||||
//创建边界面(geojson)
|
||||
emitter.on("setBoundarys", (res) => {
|
||||
@ -204,6 +199,11 @@ onMounted(() => {
|
||||
mapUtil.value.diffusionCircle(res);
|
||||
});
|
||||
|
||||
// 清除全部覆盖物
|
||||
emitter.on("removeElementAll", () => {
|
||||
mapUtil.value.removeElementAll();
|
||||
});
|
||||
|
||||
// 展示盘曲
|
||||
emitter.on("showGapText", (obj) => {
|
||||
mapUtil.value.gapText(obj);
|
||||
@ -302,6 +302,7 @@ onUnmounted(() => {
|
||||
emitter.off("diffusionCircle");
|
||||
emitter.off("SsCircle");
|
||||
emitter.off("ClearssCircle");
|
||||
emitter.off("removeElementAll");
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -324,35 +325,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;
|
||||
}
|
||||
@ -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">
|
||||
@ -74,7 +75,7 @@ const props = defineProps({
|
||||
});
|
||||
try {
|
||||
const userInfo = getItem("deptId")[0].deptCode;
|
||||
} catch (error) {}
|
||||
} catch (error) { }
|
||||
let map;
|
||||
let mapLayer;
|
||||
let mapLayer1;
|
||||
@ -88,27 +89,32 @@ 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: 10
|
||||
center: [94.36057012, 29.64276831],
|
||||
zoom: 15
|
||||
},
|
||||
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]}`;
|
||||
|
||||
}
|
||||
}
|
||||
minZoom: 7,
|
||||
maxZoom: 18,
|
||||
});
|
||||
|
||||
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_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);
|
||||
@ -128,8 +134,6 @@ onMounted(() => {
|
||||
});
|
||||
// 撒点
|
||||
emitter.on("addPointArea", (obj) => {
|
||||
console.log(obj);
|
||||
|
||||
mapUtil.value.makerSki(obj);
|
||||
});
|
||||
// 鼠标滑过提示文字的点位
|
||||
@ -168,7 +172,7 @@ onMounted(() => {
|
||||
});
|
||||
// 回显线
|
||||
emitter.on("echoLine", (res) => {
|
||||
mapUtil.value.createLine(res);
|
||||
mapUtil.value.createLine(res, res.flag);
|
||||
});
|
||||
//创建边界面(geojson)
|
||||
emitter.on("setBoundarys", (res) => {
|
||||
@ -199,11 +203,6 @@ onMounted(() => {
|
||||
mapUtil.value.diffusionCircle(res);
|
||||
});
|
||||
|
||||
// 清除全部覆盖物
|
||||
emitter.on("removeElementAll", () => {
|
||||
mapUtil.value.removeElementAll();
|
||||
});
|
||||
|
||||
// 展示盘曲
|
||||
emitter.on("showGapText", (obj) => {
|
||||
mapUtil.value.gapText(obj);
|
||||
@ -302,7 +301,6 @@ onUnmounted(() => {
|
||||
emitter.off("diffusionCircle");
|
||||
emitter.off("SsCircle");
|
||||
emitter.off("ClearssCircle");
|
||||
emitter.off("removeElementAll");
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -325,29 +323,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;
|
||||
}
|
||||
|
||||
334
src/components/loder/Gzyloder.vue
Normal file
334
src/components/loder/Gzyloder.vue
Normal file
@ -0,0 +1,334 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog
|
||||
:title="titleValue"
|
||||
width="1400px"
|
||||
v-model="modelValue"
|
||||
@close="closed"
|
||||
>
|
||||
<div v-if="modelValue">
|
||||
<el-form :model="listQuery" class="mosty-from-wrap" :inline="true">
|
||||
<el-form-item label="所属部门">
|
||||
<MOSTY.Department
|
||||
width="100%"
|
||||
clearable
|
||||
v-model="listQuery.ssbmdm"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="感知源名称">
|
||||
<el-input
|
||||
v-model="listQuery.sbmc"
|
||||
placeholder="请输入感知源名称"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="success" @click="handleFilter">查询</el-button>
|
||||
<el-button type="info" @click="reset()"> 重置 </el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="tabBox" style="margin-top: 0px" v-if="modelValue">
|
||||
<el-table
|
||||
ref="multipleUserRef"
|
||||
@selection-change="handleSelectionChange"
|
||||
:data="tableData"
|
||||
:highlight-current-row="props.Single"
|
||||
border
|
||||
v-loading="loading"
|
||||
style="width: 100%"
|
||||
:row-key="keyid"
|
||||
height="450"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="55"
|
||||
:reserve-selection="true"
|
||||
v-if="!props.Single"
|
||||
/>
|
||||
<el-table-column width="55" #default="{ row }" v-else>
|
||||
<el-radio v-model="ridioIndex" :label="row.id"></el-radio>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="序号"
|
||||
type="index"
|
||||
align="center"
|
||||
sortable
|
||||
width="80"
|
||||
/>
|
||||
<el-table-column
|
||||
sortable
|
||||
prop="ssbm"
|
||||
label="所属部门"
|
||||
show-overflow-tooltip
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
sortable
|
||||
prop="sbmc"
|
||||
show-overflow-tooltip
|
||||
align="center"
|
||||
label="感知源名称"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
align="center"
|
||||
label="厂商名称"
|
||||
prop="csmc"
|
||||
/>
|
||||
|
||||
<el-table-column
|
||||
prop="sbbh"
|
||||
show-overflow-tooltip
|
||||
align="center"
|
||||
label="设备编号"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
sortable
|
||||
prop="jd"
|
||||
show-overflow-tooltip
|
||||
label="经度"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
sortable
|
||||
prop="wd"
|
||||
show-overflow-tooltip
|
||||
label="纬度"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="fenye">
|
||||
<el-pagination
|
||||
class="pagination"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="listQuery.pageCurrent"
|
||||
:page-sizes="[2, 5, 10, 20]"
|
||||
:page-size="listQuery.pageSize"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="closed">取消</el-button>
|
||||
<el-button type="primary" @click="onComfirm">确认</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import * as rule from "@/utils/rules.js";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import {ysSxtgetPageList} from '@/api/yszx.js'
|
||||
import {
|
||||
defineProps,
|
||||
watch,
|
||||
ref,
|
||||
onMounted,
|
||||
nextTick,
|
||||
getCurrentInstance
|
||||
} from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_JCZLX } = proxy.$dict("D_BZ_JCZLX");
|
||||
const props = defineProps({
|
||||
//是否显示
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
required: true
|
||||
},
|
||||
//标题
|
||||
titleValue: {
|
||||
type: String,
|
||||
default: "选择环林卡口"
|
||||
},
|
||||
//是否单选
|
||||
Single: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
//已经选中得数据回显
|
||||
data: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
});
|
||||
const keyid = (row) => {
|
||||
return row.id;
|
||||
};
|
||||
const ridioIndex = ref(null);
|
||||
const total = ref(0);
|
||||
const listQuery = ref({
|
||||
pageCurrent: 1,
|
||||
pageSize: 20,
|
||||
jczmc: "",
|
||||
ssbmdm: ""
|
||||
});
|
||||
const tableData = ref([]);
|
||||
const loading = ref(false);
|
||||
const emits = defineEmits(["update:modelValue", "choosedJcz"]);
|
||||
const closed = () => {
|
||||
listQuery.value.jczmc = "";
|
||||
emits("update:modelValue", false);
|
||||
};
|
||||
const reset = () => {
|
||||
listQuery.value = {
|
||||
pageCurrent: 1,
|
||||
pageSize: 20,
|
||||
jczmc: "",
|
||||
ssbmdm: ""
|
||||
};
|
||||
getListData();
|
||||
};
|
||||
// 判断传进来的选中数据和加载的选中数据不满足的数据
|
||||
const checkopenList = ref([]);
|
||||
|
||||
// 确定选中
|
||||
const onComfirm = () => {
|
||||
//单选
|
||||
if (props.Single) {
|
||||
if (![ridioIndex.value][0]) {
|
||||
proxy.$message.warning("请选择环林卡口");
|
||||
return;
|
||||
}
|
||||
const info = tableData.value.find((item) => {
|
||||
return item.id === ridioIndex.value;
|
||||
});
|
||||
emits("choosedJcz", JSON.parse(JSON.stringify(info)));
|
||||
} else {
|
||||
//多选
|
||||
const jczList = JSON.parse(JSON.stringify(multipleSelectionUser.value));
|
||||
if (jczList.length === 0) {
|
||||
proxy.$message.warning("请选择环林卡口");
|
||||
return;
|
||||
}
|
||||
emits("choosedJcz", [...jczList, ...checkopenList.value]);
|
||||
}
|
||||
closed();
|
||||
};
|
||||
onMounted(() => {
|
||||
getListData();
|
||||
});
|
||||
/**
|
||||
* pageSize 改变触发
|
||||
*/
|
||||
const handleSizeChange = (currentSize) => {
|
||||
listQuery.value.pageSize = currentSize;
|
||||
getListData();
|
||||
};
|
||||
|
||||
/**
|
||||
* 页码改变触发
|
||||
*/
|
||||
const handleCurrentChange = (currentPage) => {
|
||||
listQuery.value.pageCurrent = currentPage;
|
||||
getListData();
|
||||
};
|
||||
//检查站数据
|
||||
const getListData = async () => {
|
||||
loading.value = true;
|
||||
ysSxtgetPageList(listQuery.value)
|
||||
.then((res) => {
|
||||
tableData.value = res?.records;
|
||||
loading.value = false;
|
||||
multipleUser(props.data, tableData.value);
|
||||
total.value = Number(res.total);
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
const handleFilter = () => {
|
||||
listQuery.value.pageCurrent = 1;
|
||||
getListData();
|
||||
};
|
||||
|
||||
const multipleUserRef = ref(null);
|
||||
const multipleSelectionUser = ref([]);
|
||||
const handleSelectionChange = (val) => {
|
||||
multipleSelectionUser.value = val;
|
||||
if (checkopenList.value) {
|
||||
for (let i = 0; i < multipleSelectionUser.value.length; i++) {
|
||||
const l = multipleSelectionUser.value[i];
|
||||
for (let j = 0; j < checkopenList.value.length; j++) {
|
||||
const z = checkopenList.value[j];
|
||||
if (l.id == z.id) {
|
||||
checkopenList.value.splice(j, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
//回显--用于多选表格
|
||||
function multipleUser(row, list) {
|
||||
if (row) {
|
||||
if (props.Single) {
|
||||
row.forEach((item) => {
|
||||
list.forEach((select) => {
|
||||
if (typeof item == "object") {
|
||||
if (item.id == select.id) {
|
||||
ridioIndex.value = item.id;
|
||||
}
|
||||
} else {
|
||||
if (item == select.id) {
|
||||
ridioIndex.value = item;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
row.forEach((item) => {
|
||||
list.forEach((select) => {
|
||||
if (item.id == select.id) {
|
||||
if (multipleUserRef.value) {
|
||||
multipleUserRef.value.toggleRowSelection(select, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
watch(
|
||||
() => props.modelValue,
|
||||
(val) => {
|
||||
if (val === true) {
|
||||
ridioIndex.value = "";
|
||||
handleFilter();
|
||||
}
|
||||
}
|
||||
);
|
||||
watch(
|
||||
() => props.data,
|
||||
(val) => {
|
||||
if (multipleUserRef.value) multipleUser(val, tableData.value);
|
||||
checkopenList.value = JSON.parse(JSON.stringify(val));
|
||||
}
|
||||
);
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/assets/css/layout.scss";
|
||||
@import "@/assets/css/element-plus.scss";
|
||||
::v-deep .el-form--inline {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
::v-deep .el-radio__label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
::v-deep .el-table__body tr.current-row > td.el-table__cell {
|
||||
// background: #106fdc;
|
||||
}
|
||||
</style>
|
||||
48
src/components/wsIframe/index.vue
Normal file
48
src/components/wsIframe/index.vue
Normal file
@ -0,0 +1,48 @@
|
||||
<template>
|
||||
<div style="width: 100%; height: 100%; overflow: hidden;">
|
||||
<iframe v-if="urls" :src="'http://80.2.22.233:56233?sbbh=' + urls" style="border: none; width: 100%; height: 100%; "
|
||||
allowfullscreen allowtransparency scrolling="no"></iframe>
|
||||
<iframe v-else src="https://stream7.iqilu.com/10339/upload_transcode/202002/09/20200209105011F0zPoYzHry.mp4" style="border: none; width: 100%; height: 100%; "
|
||||
allowfullscreen allowtransparency scrolling="no"></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { http } from "@/api/service";
|
||||
import { ref, onMounted, onUnmounted, watch, getCurrentInstance } from "vue";
|
||||
const props = defineProps({
|
||||
sbbh: String
|
||||
})
|
||||
const { proxy } = getCurrentInstance();
|
||||
const urls = ref(null)
|
||||
watch(() => props.sbbh, (val) => {
|
||||
if (!val) {
|
||||
proxy.$message({
|
||||
message: "获取不到视频流,播放失败!!!",
|
||||
grouping: true,
|
||||
type: "info"
|
||||
});
|
||||
} else {
|
||||
getUrl(val)
|
||||
}
|
||||
}, { immediate: true })
|
||||
|
||||
function getUrl(sbbh) {
|
||||
http.previewURLs({ sbbh: sbbh, protocol: 'sbbh' }).then((res) => {
|
||||
console.log(res);
|
||||
|
||||
let data = JSON.parse(res);
|
||||
if (data && data.url) {
|
||||
urls.value = data.data.url
|
||||
} else {
|
||||
proxy.$message({
|
||||
message: "获取不到视频流,播放失败!!!",
|
||||
grouping: true,
|
||||
type: "info"
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
@ -353,7 +353,7 @@ export const publicRoutes = [
|
||||
"@/views/backOfficeSystem/peopleManag/InspectedVehicle/index"
|
||||
),
|
||||
meta: {
|
||||
title: "过检车辆图管理",
|
||||
title: "过检车辆管理",
|
||||
icon: "article"
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,7 +38,6 @@ service.interceptors.response.use(
|
||||
// 请求成功的处理
|
||||
(response) => {
|
||||
const { success, code, msg, message, data } = response.data;
|
||||
console.log("data", code, response.data);
|
||||
// 需要判断当前请求是否成功
|
||||
if (success && code === 10000) {
|
||||
return data; // 成功后返回解析后的数据
|
||||
|
||||
@ -87,12 +87,16 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { onMounted, ref } from "vue";
|
||||
import Empty from "@/components/MyComponents/Empty/index.vue";
|
||||
import { jczqueryById } from "@/api/mosty-jcz";
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
const warningList = ref({ qxList: [], ryList: [], clList: [] ,sbList:[]});
|
||||
|
||||
let warningList = ref({ qxList: [], ryList: [], clList: [] ,sbList:[]});
|
||||
onMounted(() => {
|
||||
emitter.on("getjczqueryById", (res) => {
|
||||
warningListValue(res)
|
||||
})
|
||||
});
|
||||
const show = ref(1);
|
||||
const props = defineProps({
|
||||
jczId: {
|
||||
@ -107,19 +111,23 @@ const showchenge = (val) => {
|
||||
|
||||
const getjczqueryById = () => {
|
||||
jczqueryById({ jczid: props.jczId }).then((res) => {
|
||||
if (res) {
|
||||
emitter.emit("chengZ", res);
|
||||
warningList.value.qxList = res.qxList
|
||||
warningListValue(res)
|
||||
});
|
||||
};
|
||||
const warningListValue = (res) => {
|
||||
if (res) {
|
||||
warningList.value={}
|
||||
warningList.value.qxList =res.qxList&&res.qxList.length>0
|
||||
? res.qxList.filter((item) => item.qxsl > 0)
|
||||
: [];
|
||||
warningList.value.ryList = res.ryList ? res.ryList : [];
|
||||
warningList.value.clList = res.clList ? res.clList : [];
|
||||
warningList.value.sbList = [...res.tcList,...res.zdList]
|
||||
warningList.value.ryList = res.ryList.length>0 ? res.ryList : [];
|
||||
warningList.value.clList = res.clList.length>0 ? res.clList : [];
|
||||
warningList.value.sbList = [...res.tcList, ...res.zdList]
|
||||
emitter.emit("chengZ", res);
|
||||
} else {
|
||||
warningList.value = res;
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
getjczqueryById();
|
||||
</script>
|
||||
|
||||
@ -240,4 +248,5 @@ getjczqueryById();
|
||||
font-size: 12px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@ -1,49 +1,64 @@
|
||||
<template>
|
||||
<div class="image-carousel">
|
||||
<div class="control-button prev" @click="prevImage">
|
||||
<img src="@/assets/images/icon_08.png" alt="">
|
||||
</div>
|
||||
<div class="carousel-container">
|
||||
<div class="hh100" :style="{transform: `translateX(-${currentIndex * 100}%)`}">
|
||||
<ul class="image-wrapper" style="margin-bottom:1%;">
|
||||
<li v-for="(image, index) in images" :key="index" class="image-item">
|
||||
<img :src="image" alt="carousel image">
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="image-wrapper">
|
||||
<li v-for="(image, index) in images" :key="index" class="image-item">
|
||||
<img :src="image" alt="carousel image">
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="control-button next" @click="nextImage">
|
||||
<img src="@/assets/images/icon_07.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<el-carousel style="height: 100%;" motion-blur indicator-position="none" @change="handleCarouselChange"
|
||||
:autoplay="false">
|
||||
<el-carousel-item v-for="(item, index) in listSxt" :key="index">
|
||||
<div class="video-grid" v-if="activeIndex == index">
|
||||
<div v-for="(items,indexs) in item" :key="indexs" class="video-cell">
|
||||
<div class="iconFont" @click.stop="showchenge(items)">
|
||||
<el-icon :size="20"><UploadFilled /></el-icon>
|
||||
</div>
|
||||
<WsIframe :sbbh="items.sbbh" />
|
||||
</div>
|
||||
</div>
|
||||
</el-carousel-item>
|
||||
</el-carousel>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
currentIndex: 0,
|
||||
images: [
|
||||
require('@/assets/images/person.png'),
|
||||
require('@/assets/images/person.png'),
|
||||
require('@/assets/images/person.png'),
|
||||
require('@/assets/images/person.png')
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
prevImage() {
|
||||
this.currentIndex = this.currentIndex > 0 ? this.currentIndex - 1 : this.images.length - 1
|
||||
},
|
||||
nextImage() {
|
||||
this.currentIndex = this.currentIndex < this.images.length - 1 ? this.currentIndex + 1 : 0
|
||||
}
|
||||
<script setup>
|
||||
import { ref, watch, computed, onMounted, onUnmounted, reactive,nextTick } from 'vue'
|
||||
import WsIframe from '@/components/wsIframe/index.vue'
|
||||
import { useRoute } from "vue-router"
|
||||
import { sxtGetList } from '@/api/mosty-jcz.js'
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
const activeIndex = ref(0)
|
||||
const cdList=ref([])
|
||||
const listSxt=ref([1])
|
||||
const handleCarouselChange = (index) => {
|
||||
activeIndex.value = index
|
||||
}
|
||||
|
||||
const getSxtGetList = (id) => {
|
||||
const jczid = {
|
||||
jczid: id
|
||||
}
|
||||
sxtGetList(jczid).then(res => {
|
||||
listSxt.value= Array.from({ length:Math.ceil(res.length / 12)==0?1:Math.ceil(res.length / 12) }, (_, row) => {
|
||||
return res.slice(row * 12, row * 12 + 12)
|
||||
}
|
||||
);
|
||||
cdList.value = listSxt.value[0].length < 4 ? listSxt.value[0]: listSxt.value[0].slice(0,4)
|
||||
emitter.emit("getSxtGetList", cdList.value )
|
||||
}).finally(()=>{
|
||||
})
|
||||
}
|
||||
const route = useRoute()
|
||||
onMounted(() => {
|
||||
const id = route.query.id
|
||||
getSxtGetList(id)
|
||||
})
|
||||
const showchenge = (item) => {
|
||||
const index = cdList.value.indexOf(item);
|
||||
if (index !== -1) {
|
||||
// 如果数字已存在,先移除它
|
||||
cdList.value.splice(index, 1);
|
||||
}
|
||||
// 添加到最前面
|
||||
cdList.value.unshift(item);
|
||||
|
||||
emitter.emit("getSxtGetList", cdList.value )
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -54,6 +69,7 @@ export default {
|
||||
position: relative;
|
||||
padding: 30px 20px;
|
||||
box-sizing: border-box;
|
||||
|
||||
.carousel-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
@ -71,6 +87,7 @@ export default {
|
||||
width: 24%;
|
||||
margin: 0 1%;
|
||||
height: 100%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
@ -86,12 +103,58 @@ export default {
|
||||
transition: all 0.3s;
|
||||
color: #fff;
|
||||
z-index: 1;
|
||||
|
||||
&.prev {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
&.next {
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
.video-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(6, 1fr);
|
||||
/* 6列 */
|
||||
grid-template-rows: repeat(2, auto);
|
||||
/* 2行 */
|
||||
gap: 10px;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
::v-deep .el-carousel__container {
|
||||
height: 100% !important;
|
||||
}
|
||||
|
||||
::v-deep .image-carousel {
|
||||
// padding: 0 !important;;
|
||||
}
|
||||
|
||||
/* 自定义滚动条样式 */
|
||||
::-webkit-scrollbar {
|
||||
width: 0.5em;
|
||||
height: 0.5em;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: #000000;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #021b31;
|
||||
border-radius: 0.25em;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #011733cd;
|
||||
}
|
||||
.video-cell{
|
||||
position: relative;
|
||||
}
|
||||
.iconFont{
|
||||
position: absolute; top: 10px; text-align: right; width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,53 +1,35 @@
|
||||
<template>
|
||||
<div class="video-more-container">
|
||||
<div class="switch-btn prev" @click="handlePrev">
|
||||
<img src="@/assets/images/icon_08.png" alt="">
|
||||
</div>
|
||||
<div class="video-grid">
|
||||
<div v-for="index in 4" :key="index" class="video-cell">
|
||||
<div class="video-wrapper">
|
||||
<video class="video-player" controls>
|
||||
<source src="" type="video/mp4">
|
||||
</video>
|
||||
<div class="video-controls">
|
||||
<div class="time-display">01:32</div>
|
||||
<div class="control-buttons">
|
||||
<i class="el-icon-video-play"></i>
|
||||
<i class="el-icon-refresh-right"></i>
|
||||
<i class="el-icon-full-screen"></i>
|
||||
</div>
|
||||
<el-carousel style="height: 100%;" motion-blur indicator-position="none" :autoplay="false"
|
||||
@change="handleCarouselChange">
|
||||
<el-carousel-item v-for="(item,index) in sbList" :key="index" >
|
||||
<div class="video-grid" v-if="activeIndex==index">
|
||||
<div v-for="(items,indexs) in item" :key="indexs" class="video-cell">
|
||||
<WsIframe :sbbh="items.sbbh" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="switch-btn next" @click="handleNext">
|
||||
<img src="@/assets/images/icon_07.png" alt="">
|
||||
</div>
|
||||
</el-carousel-item>
|
||||
</el-carousel>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'VideoMore',
|
||||
data() {
|
||||
return {
|
||||
currentPage: 1,
|
||||
totalPages: 3
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handlePrev() {
|
||||
if (this.currentPage > 1) {
|
||||
this.currentPage--
|
||||
}
|
||||
},
|
||||
handleNext() {
|
||||
if (this.currentPage < this.totalPages) {
|
||||
this.currentPage++
|
||||
}
|
||||
}
|
||||
}
|
||||
<script setup>
|
||||
import { ref ,onMounted} from 'vue'
|
||||
import WsIframe from '@/components/wsIframe/index.vue'
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
const activeIndex = ref(0)
|
||||
const handleCarouselChange = (index) => {
|
||||
activeIndex.value=index
|
||||
}
|
||||
const sbList = ref([1])
|
||||
onMounted(()=>{
|
||||
emitter.on("getSxtGetList", (res) => {
|
||||
sbList.value= Array.from({ length:Math.ceil(res.length / 4)==0?1:Math.ceil(res.length / 4) }, (_, row) => {
|
||||
return res.slice(row * 4, row * 4 + 4)
|
||||
}
|
||||
);
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@ -79,14 +61,16 @@ export default {
|
||||
}
|
||||
|
||||
.video-grid {
|
||||
padding: 10px;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
gap: 20px;
|
||||
gap: 10px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.video-cell {
|
||||
|
||||
position: relative;
|
||||
background: url('~@/assets/images/bg13.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
@ -128,14 +112,19 @@ export default {
|
||||
.control-buttons {
|
||||
display: flex;
|
||||
gap: 15px;
|
||||
|
||||
|
||||
i {
|
||||
cursor: pointer;
|
||||
font-size: 20px;
|
||||
|
||||
&:hover {
|
||||
color: #409EFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
::v-deep .el-carousel__container {
|
||||
height: 100% !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -302,16 +302,22 @@ const _onSave = () => {
|
||||
break;
|
||||
case "02":
|
||||
listQuery.value.bcKts = 2;
|
||||
break;
|
||||
case "03":
|
||||
listQuery.value.bcKts = 4;
|
||||
break;
|
||||
case "04":
|
||||
listQuery.value.bcKts = 5;
|
||||
break;
|
||||
case "05":
|
||||
listQuery.value.bcKts = 6;
|
||||
break;
|
||||
case "06":
|
||||
listQuery.value.bcKts = 7;
|
||||
break;
|
||||
case "07":
|
||||
listQuery.value.bcKts = 8;
|
||||
break;
|
||||
}
|
||||
if (listQuery.value.jczList) {
|
||||
listQuery.value.jczid = listQuery.value.jczList.id;
|
||||
@ -361,6 +367,8 @@ const fz = (val) => {
|
||||
//
|
||||
const close = () => {
|
||||
dialogForm.value = false;
|
||||
mjData.value = [];
|
||||
fjData.value = [];
|
||||
listQuery.value = {};
|
||||
};
|
||||
|
||||
|
||||
@ -25,6 +25,7 @@
|
||||
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">删除</el-link>
|
||||
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||
<el-link type="primary" @click="endreporting( row.id)" v-if="row.bbZt !== '03'">结束报备</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
@ -44,7 +45,7 @@ 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 { XfbbselectPage, JczXfbb } from "@/api/mosty-jcz.js";
|
||||
import { XfbbselectPage, JczXfbb,finishEntity } from "@/api/mosty-jcz.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {
|
||||
@ -152,6 +153,21 @@ const delDictItem = (ids) => {
|
||||
})
|
||||
.catch(() => { });
|
||||
};
|
||||
const endreporting = (id) => {
|
||||
proxy
|
||||
.$confirm("确定要结束报备", "警告", { type: "warning" })
|
||||
.then(() => {
|
||||
finishEntity(id).then(res => {
|
||||
proxy.$message({ type: "success", message: "报备结束" });
|
||||
getjczgetXfllList();
|
||||
|
||||
})
|
||||
})
|
||||
.catch(() => { });
|
||||
|
||||
}
|
||||
|
||||
|
||||
getjczgetXfllList();
|
||||
// 新增
|
||||
const addEdit = (type, row) => {
|
||||
|
||||
@ -81,7 +81,7 @@ const searchConfiger = ref([
|
||||
},
|
||||
{
|
||||
label: "车前部物品特征代码",
|
||||
prop: "zqlx",
|
||||
prop: "cqbwptzdm",
|
||||
placeholder: "车前部物品特征代码",
|
||||
showType: "input"
|
||||
},
|
||||
@ -89,7 +89,7 @@ const searchConfiger = ref([
|
||||
{
|
||||
label: "车辆异常痕迹代码",
|
||||
prop: "clychjdm",
|
||||
placeholder: "请选择环林卡口类型",
|
||||
placeholder: "请输入车辆异常痕迹代码",
|
||||
showType: "input"
|
||||
}
|
||||
]);
|
||||
|
||||
@ -117,7 +117,7 @@ const searchConfiger = ref([
|
||||
},
|
||||
{
|
||||
label: "过检人员身份证号",
|
||||
prop: "zqlx",
|
||||
prop: "gjrysfzh",
|
||||
placeholder: "请输入过检人员身份证号",
|
||||
showType: "input"
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
<el-form-item label="关联GPSID" prop="glgpsid">
|
||||
<el-input :disabled="forbidden"
|
||||
v-model="listQuery.glgpsid"
|
||||
placeholder="请输入装备型号"
|
||||
placeholder="请输入关联GPSID"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
@ -95,7 +95,7 @@
|
||||
<el-form-item label="设备sim卡号" prop="sbsim">
|
||||
<el-input :disabled="forbidden"
|
||||
v-model="listQuery.sbsim"
|
||||
placeholder="请输入装备型号"
|
||||
placeholder="请输入设备sim卡号"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
|
||||
@ -71,7 +71,7 @@ const searchConfiger = ref([
|
||||
{
|
||||
label: "身份证号",
|
||||
prop: "sfzh",
|
||||
placeholder: "请输入预警对象",
|
||||
placeholder: "请输入身份证号",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 100%" prop="sklList" label="标签">
|
||||
<!-- <el-form-item style="width: 40%" prop="sklList" label="标签">
|
||||
<el-select :disabled="forbidden"
|
||||
v-model="listQuery.sklList"
|
||||
placeholder="请选择标签"
|
||||
@ -96,8 +96,13 @@
|
||||
:label="dict.label"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item style="width: 40%" label="环林卡口名称">
|
||||
<div class="diviput" @click="!forbidden?showJcz = true:''">
|
||||
<span v-if="listQuery.jczmc">{{ listQuery.jczmc }}</span>
|
||||
<span class="placeholder" v-else> 请选择布控卡口</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="width: 85%" prop="jd" label="坐标位置">
|
||||
<div class="latlng flex">
|
||||
<el-input :disabled="true"
|
||||
@ -122,6 +127,7 @@
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<Jczloder v-model="showJcz" :Single="true" @choosedJcz="JczMsg" :data="[]" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -129,6 +135,7 @@ import { ref, reactive, onMounted } from "vue";
|
||||
import { TtbJczSxtAdd, Ttbgetupdate } from "@/api/mosty-jcz.js";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
import Jczloder from "@/components/loder/Jczloder.vue";
|
||||
import GdMap from "@/components/GdMap/index.vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
const props = defineProps({
|
||||
@ -216,6 +223,8 @@ const init = (type, row) => {
|
||||
//保存
|
||||
const _onSave = () => {
|
||||
if (!formRef) return;
|
||||
console.log(listQuery.value);
|
||||
|
||||
formRef.value.validate((valid, fields) => {
|
||||
if (valid) {
|
||||
if (pageType.value == "add") {
|
||||
@ -226,6 +235,7 @@ const _onSave = () => {
|
||||
});
|
||||
} else {
|
||||
Ttbgetupdate(listQuery.value).then((res) => {
|
||||
|
||||
ElMessage({ message: "修改成功", type: "success" });
|
||||
emit("getjczgetXfllList");
|
||||
close();
|
||||
@ -235,7 +245,6 @@ const _onSave = () => {
|
||||
console.log("error submit!", fields);
|
||||
}
|
||||
});
|
||||
console.log();
|
||||
};
|
||||
//选择定位地图
|
||||
const selectLocation = () => {
|
||||
@ -269,7 +278,12 @@ const tableHeight1 = ref();
|
||||
const tabHeightFn = () => {
|
||||
tableHeight1.value = window.innerHeight - 450;
|
||||
};
|
||||
const showJcz = ref(false);
|
||||
|
||||
const JczMsg = (val) => {
|
||||
listQuery.value.jczmc = val.jczmc;
|
||||
listQuery.value.jczid = val.id;
|
||||
};
|
||||
defineExpose({ init });
|
||||
</script>
|
||||
|
||||
@ -357,4 +371,20 @@ defineExpose({ init });
|
||||
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;
|
||||
}
|
||||
}
|
||||
.divData {
|
||||
background-color:#f5f7fa ;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -2,6 +2,12 @@
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle title="感知源管理">
|
||||
<el-button :disabled="ids.length<=0" type="primary" @click="delDictItem(ids)" v-if="Auth">
|
||||
<el-icon style="vertical-align: middle">
|
||||
<CirclePlus />
|
||||
</el-icon>
|
||||
<span style="vertical-align: middle" >批量删除</span>
|
||||
</el-button>
|
||||
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
|
||||
<el-icon style="vertical-align: middle">
|
||||
<CirclePlus />
|
||||
@ -87,7 +93,7 @@ const searchConfiger = ref([
|
||||
prop: "sblx",
|
||||
placeholder: "感知源类型",
|
||||
showType: "select",
|
||||
options: D_BZ_GZSBLX
|
||||
options: D_BZ_SBLX
|
||||
}
|
||||
]);
|
||||
|
||||
@ -97,7 +103,7 @@ const pageData = reactive({
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
showSelectType: "checkBox",
|
||||
loading: false
|
||||
},
|
||||
total: 0,
|
||||
@ -107,10 +113,8 @@ const pageData = reactive({
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "感知源名称", prop: "sbmc", showOverflowTooltip: true },
|
||||
{ label: "编号", prop: "sbbh", showOverflowTooltip: true },
|
||||
{ label: "地址", prop: "dzmc", showOverflowTooltip: true },
|
||||
{
|
||||
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
|
||||
{
|
||||
label: "感知源类型",
|
||||
prop: "sblx",
|
||||
showSolt: true,
|
||||
@ -122,7 +126,10 @@ const pageData = reactive({
|
||||
showSolt: true,
|
||||
showOverflowTooltip: true
|
||||
},
|
||||
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true }
|
||||
{ label: "感知源名称", prop: "sbmc", showOverflowTooltip: true },
|
||||
{ label: "编号", prop: "sbbh", showOverflowTooltip: true },
|
||||
{ label: "地址", prop: "dzmc", showOverflowTooltip: true },
|
||||
|
||||
]
|
||||
});
|
||||
const Auth = ref(true)
|
||||
@ -159,15 +166,21 @@ const changeNo = (val) => {
|
||||
const changeSize = (val) => {
|
||||
pageData.pageConfiger.pageSize = val;
|
||||
};
|
||||
|
||||
const ids=ref([])
|
||||
// 获取列表
|
||||
// 删除
|
||||
const delDictItem = (ids) => {
|
||||
proxy
|
||||
.$confirm("确定删除该数据?", "警告", { type: "warning" })
|
||||
.then(() => {
|
||||
gzydeleteList(ids).then((res) => {
|
||||
// ElMessage({ message: "删除成功", type: "success" });
|
||||
let idsList
|
||||
if (Array.isArray(ids)) {
|
||||
idsList=ids
|
||||
}else{
|
||||
idsList=[ids]
|
||||
}
|
||||
gzydeleteList(idsList).then((res) => {
|
||||
ElMessage({ message: "删除成功", type: "success" });
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getjczgetXfllList();
|
||||
});
|
||||
@ -191,6 +204,9 @@ const tabHeightFn = () => {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
const chooseData = (val) => {
|
||||
ids.value=val.map(item=>item.id)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 40%" prop="czcs" label="处置措施">
|
||||
<el-select :disabled="forbidden" v-model="listQuery.czcs" placeholder="请选择布控颜色">
|
||||
<el-select :disabled="forbidden" v-model="listQuery.czcs" placeholder="请选择处置措施">
|
||||
<el-option v-for="dict in dict.D_BZ_CZCS" :key="dict.value" :value="dict.value"
|
||||
:label="dict.label"></el-option>
|
||||
</el-select>
|
||||
|
||||
@ -24,8 +24,8 @@
|
||||
<template #bkfs="{ row }">
|
||||
{{ row.bkfs=='01'?"全省布控":"精准布控" }}
|
||||
</template>
|
||||
<template #bkcs="{ row }">
|
||||
<dict-tag :value="row.yjys" :options="D_BZ_CZCS" :tag="false" />
|
||||
<template #czcs="{ row }">
|
||||
<dict-tag :value="row.czcs" :options="D_BZ_CZCS" :tag="false" />
|
||||
</template>
|
||||
<!-- <template #bkzt="{ row }">
|
||||
<dict-tag :value="row.bkzt" :options="D_BZ_RCBKZT" :tag="false" />
|
||||
@ -72,14 +72,14 @@ const { D_BZ_BKYS,D_BZ_CZCS } = proxy.$dict(
|
||||
);
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
label: "布控名称",
|
||||
prop: "bkmc",
|
||||
placeholder: "请输入布控名称",
|
||||
label: "姓名",
|
||||
prop: "xm",
|
||||
placeholder: "请输入姓名",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "证件号码",
|
||||
prop: "bksfzh",
|
||||
prop: "zjhm",
|
||||
placeholder: "请输入证件号码",
|
||||
showType: "input"
|
||||
},
|
||||
@ -139,7 +139,7 @@ const pageData = reactive({
|
||||
},
|
||||
{
|
||||
label: "布控措施",
|
||||
prop: "bkcs",
|
||||
prop: "czcs",
|
||||
showSolt: true,
|
||||
}
|
||||
]
|
||||
|
||||
@ -42,7 +42,7 @@
|
||||
format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 40%" prop="czcs" label="处置措施">
|
||||
<el-select :disabled="forbidden" v-model="listQuery.czcs" placeholder="请选择布控颜色">
|
||||
<el-select :disabled="forbidden" v-model="listQuery.czcs" placeholder="请选择处置措施">
|
||||
<el-option v-for="dict in dict.D_BZ_CZCS" :key="dict.value" :value="dict.value"
|
||||
:label="dict.label"></el-option>
|
||||
</el-select>
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
{{ row.bkfs == '01' ? "全省布控" : "精准布控" }}
|
||||
</template>
|
||||
<template #bkcs="{ row }">
|
||||
<dict-tag :value="row.yjys" :options="D_BZ_CZCS" :tag="false" />
|
||||
<dict-tag :value="row.czcs" :options="D_BZ_CZCS" :tag="false" />
|
||||
</template>
|
||||
<!-- <template #bkzt="{ row }">
|
||||
<dict-tag :value="row.bkzt" :options="D_BZ_RCBKZT" :tag="false" />
|
||||
@ -74,16 +74,11 @@ const { D_BZ_BKYS, D_BZ_CZCS, D_BZ_CPHYS } = proxy.$dict(
|
||||
"D_BZ_BKYS", "D_BZ_CZCS", "D_BZ_CPHYS"
|
||||
);
|
||||
const searchConfiger = ref([
|
||||
|
||||
{
|
||||
label: "布控名称",
|
||||
prop: "bkmc",
|
||||
placeholder: "请输入布控名称",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "证件号码",
|
||||
prop: "bksfzh",
|
||||
placeholder: "请输入证件号码",
|
||||
label: "车牌号码",
|
||||
prop: "cph",
|
||||
placeholder: "请输入车牌号码",
|
||||
showType: "input"
|
||||
},
|
||||
|
||||
|
||||
@ -65,7 +65,12 @@ const { D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM,D_BZ_HYZK,D_BZ_WHCD } = proxy.$dict
|
||||
"D_BZ_HYZK",
|
||||
"D_BZ_WHCD"
|
||||
);
|
||||
const searchConfiger = ref([
|
||||
const searchConfiger = ref([ {
|
||||
showType: "department",
|
||||
prop: "ssbmdm",
|
||||
placeholder: "请选择所属部门",
|
||||
label: "所属部门"
|
||||
},
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "xm",
|
||||
@ -85,12 +90,7 @@ const searchConfiger = ref([
|
||||
showType: "select",
|
||||
options: D_BZ_SF
|
||||
},
|
||||
{
|
||||
showType: "department",
|
||||
prop: "ssbmdm",
|
||||
placeholder: "请选择所属部门",
|
||||
label: "所属部门"
|
||||
}
|
||||
|
||||
]);
|
||||
|
||||
const detailDiloag = ref();
|
||||
|
||||
@ -0,0 +1,246 @@
|
||||
<template>
|
||||
<div class="dialog" v-if="dialogGzy">
|
||||
<div class="head_box">
|
||||
<span class="title">新增感知源</span>
|
||||
<div>
|
||||
<el-button size="small" type="primary" @click="_onSave">保存</el-button>
|
||||
<el-button size="small" @click="close">关闭</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cntinfo">
|
||||
<el-form ref="formRef" :model="listQuery" :rules="rules" :inline="true" label-position="top">
|
||||
<el-form-item style="width: 40%" label="感知源">
|
||||
<el-input v-model="JczMc" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 40%" label="感知源">
|
||||
<div class="diviput" @click="showJcz = true">
|
||||
<span v-if="listQuery.sxtList&&listQuery.sxtList.length>0">
|
||||
<el-tag closable @close="handleClose(index)" v-for="(item, index) in listQuery.sxtList" :key="index"> {{
|
||||
item.sbmc }} </el-tag>
|
||||
</span>
|
||||
<span class="placeholder" v-else> 请选择感知源</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<Gzyloder v-model="showJcz" :Single="false" @choosedJcz="GzyMsg" :data="data" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from "vue";
|
||||
import Gzyloder from '@/components/loder/Gzyloder.vue'
|
||||
import { sxtBatch,JczselectById } from '@/api/mosty-jcz'
|
||||
import { ElMessage } from "element-plus";
|
||||
const emit=defineEmits(['getjczgetXfllList'])
|
||||
const search = ref(null)
|
||||
|
||||
const listQuery = ref({})
|
||||
onMounted(() => {
|
||||
tabHeightFn()
|
||||
console.log("xxxx");
|
||||
});
|
||||
const data = ref([])
|
||||
|
||||
const dialogGzy = ref(false)
|
||||
const JczMc = ref()
|
||||
// 初始化数据
|
||||
const init = (row) => {
|
||||
dialogGzy.value = true;
|
||||
listQuery.value.jczid = row.id
|
||||
JczMc.value = row.jczmc
|
||||
JczselectById({id:row.id}).then(res => {
|
||||
if(res){
|
||||
listQuery.value.sxtList = res.sxtList?res.sxtList:[];
|
||||
}
|
||||
})
|
||||
};
|
||||
//保存
|
||||
const _onSave = () => {
|
||||
sxtBatch(listQuery.value).then((res) => {
|
||||
console.log(res);
|
||||
ElMessage({ message: "新增成功", type: "success" });
|
||||
emit("getjczgetXfllList");
|
||||
close()
|
||||
});
|
||||
};
|
||||
const pageDatas = reactive({
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
loading: false
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
|
||||
{ label: "环林卡口名称", prop: "jczmc", showOverflowTooltip: true },
|
||||
{
|
||||
label: "环林卡口类型",
|
||||
prop: "jczlx",
|
||||
showOverflowTooltip: true,
|
||||
showSolt: true
|
||||
},
|
||||
|
||||
{
|
||||
label: "执勤类型",
|
||||
prop: "zqlx",
|
||||
showSolt: true,
|
||||
showOverflowTooltip: true
|
||||
},
|
||||
{
|
||||
label: "环林卡口地址",
|
||||
prop: "xxdz",
|
||||
showOverflowTooltip: true
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
//页面关闭
|
||||
const close = () => {
|
||||
dialogGzy.value = false;
|
||||
listQuery.value={}
|
||||
};
|
||||
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
console.log(search.value);
|
||||
pageDatas.tableHeight = window.innerHeight - 370
|
||||
// - search.value.offsetHeight - 280;
|
||||
window.onresize = function () {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
defineExpose({ init });
|
||||
const showJcz = ref(false)
|
||||
const GzyMsg = (val) => {
|
||||
listQuery.value.sxtList=val
|
||||
}
|
||||
const handleClose = (val) => {
|
||||
listQuery.value.sxtList.splice(listQuery.value.sxtList.indexOf(val), 1)
|
||||
}
|
||||
</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;
|
||||
min-height: 32px;
|
||||
// line-height: 32px;
|
||||
padding: 0 10px;
|
||||
border-radius: 5px;
|
||||
|
||||
.placeholder {
|
||||
color: #b5b5b5;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -32,6 +32,7 @@
|
||||
<template v-if="Auth">
|
||||
<el-link type="primary" @click="addEdit('edit', row)">修改</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">删除</el-link>
|
||||
<el-link type="primary" @click="perceptionAdd(row)">新增感知源</el-link>
|
||||
</template>
|
||||
|
||||
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
|
||||
@ -45,12 +46,14 @@
|
||||
<!-- 编辑详情 -->
|
||||
<EditAddForm ref="detailDiloag" :dict="{ D_BZ_JCZLX, D_BZ_ZQLX, D_BZ_DLLX, D_BZ_JCZJB }"
|
||||
@getjczgetXfllList="getjczgetXfllList" />
|
||||
<PerceptionSource ref="perceptionSource" @getjczgetXfllList="getjczgetXfllList"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ElMessage } from "element-plus";
|
||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import PerceptionSource from './components/perceptionSource.vue'
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
@ -200,6 +203,10 @@ const tabHeightFn = () => {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
const perceptionSource = ref()
|
||||
const perceptionAdd = (row) => {
|
||||
perceptionSource.value.init(row)
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
@ -127,7 +127,14 @@ const getjczgetXfllList = () => {
|
||||
getjczgetXfllList();
|
||||
// 搜索
|
||||
const onSearch = (val) => {
|
||||
queryCondition.value = { ...queryCondition.value, ...val };
|
||||
console.log(val);
|
||||
|
||||
const startTime = {
|
||||
startTime : val.startTime[0],
|
||||
endTime : val.startTime[1]
|
||||
}
|
||||
|
||||
queryCondition.value = { ...queryCondition.value,...startTime};
|
||||
getjczgetXfllList();
|
||||
};
|
||||
|
||||
|
||||
@ -21,18 +21,18 @@
|
||||
v-model:modelValue="listQuery.ssbmdm"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编号" prop="qxbh">
|
||||
<el-form-item label="器械编号" prop="qxbh">
|
||||
<el-input
|
||||
:disabled="forbidden"
|
||||
v-model="listQuery.qxbh"
|
||||
placeholder="请输入设备编号"
|
||||
placeholder="请输入器械编号"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="装备类型" prop="qxlx">
|
||||
<el-select v-model="listQuery.qxlx" placeholder="请选择装备类型" :disabled="forbidden">
|
||||
<el-form-item label="器械类型" prop="qxlx">
|
||||
<el-select v-model="listQuery.qxlx" placeholder="请选择器械类型" :disabled="forbidden">
|
||||
<el-option
|
||||
v-for="item in dict.D_JCGL_JYQX_QXLX"
|
||||
:key="item"
|
||||
@ -41,8 +41,8 @@
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备分类" prop="scode">
|
||||
<el-select v-model="listQuery.scode" placeholder="请选择设备分类" :disabled="forbidden">
|
||||
<el-form-item label="器械分类" prop="scode">
|
||||
<el-select v-model="listQuery.scode" placeholder="请选择器械分类" :disabled="forbidden">
|
||||
<el-option
|
||||
v-for="item in dict.D_BZ_JYQXFL"
|
||||
:key="item"
|
||||
@ -51,18 +51,18 @@
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="qxMc" label="装备名称">
|
||||
<el-form-item prop="qxMc" label="器械名称">
|
||||
<el-input :disabled="forbidden"
|
||||
v-model="listQuery.qxMc"
|
||||
placeholder="请输入装备名称"
|
||||
placeholder="请输入器械名称"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="装备型号">
|
||||
<el-form-item label="器械型号">
|
||||
<el-input :disabled="forbidden"
|
||||
v-model="listQuery.xh"
|
||||
placeholder="请输入装备型号"
|
||||
placeholder="请输入器械型号"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
@ -78,7 +78,7 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="装备状态">
|
||||
<el-form-item label="器械状态">
|
||||
<el-select :disabled="forbidden"
|
||||
clearable
|
||||
v-model="listQuery.zbzt"
|
||||
@ -93,10 +93,10 @@
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="装备厂商">
|
||||
<el-form-item label="器械厂商">
|
||||
<el-input
|
||||
v-model="listQuery.sccs" :disabled="forbidden"
|
||||
placeholder="请输入装备厂商"
|
||||
placeholder="请输入器械厂商"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
@ -163,7 +163,7 @@ const rules = reactive({
|
||||
], qxbh: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入设备编号",
|
||||
message: "请输入器械编号",
|
||||
trigger: "change"
|
||||
}
|
||||
],
|
||||
@ -194,7 +194,7 @@ const rules = reactive({
|
||||
], scode: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择设备分类",
|
||||
message: "请选择器械分类",
|
||||
trigger: "change"
|
||||
}
|
||||
],
|
||||
|
||||
@ -83,9 +83,9 @@ const searchConfiger = ref([
|
||||
label: "所属部门"
|
||||
},
|
||||
{
|
||||
label: "设备名称",
|
||||
prop: "sbmc",
|
||||
placeholder: "请输入设备名称",
|
||||
label: "器械名称",
|
||||
prop: "qxMc",
|
||||
placeholder: "请输入器械名称",
|
||||
showType: "input"
|
||||
}
|
||||
// {
|
||||
|
||||
@ -159,7 +159,12 @@ const urlImg = ref("/mosty-api/mosty-base/minio/image/download/");
|
||||
const imgUrl = ref("");
|
||||
const dialogFormVisible = ref(false);
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
{
|
||||
showType: "department",
|
||||
prop: "ssbmdm",
|
||||
placeholder: "请选择所属部门",
|
||||
label: "所属部门"
|
||||
},{
|
||||
label: "姓名",
|
||||
prop: "xm",
|
||||
placeholder: "请输入姓名",
|
||||
@ -171,19 +176,14 @@ const searchConfiger = ref([
|
||||
placeholder: "请输入证件号码",
|
||||
showType: "input"
|
||||
},
|
||||
{
|
||||
label: "是否离职",
|
||||
prop: "xtSjzt",
|
||||
placeholder: "是否离职",
|
||||
showType: "select",
|
||||
options: D_BZ_SF
|
||||
},
|
||||
{
|
||||
showType: "department",
|
||||
prop: "ssbmdm",
|
||||
placeholder: "请选择所属部门",
|
||||
label: "所属部门"
|
||||
}
|
||||
// {
|
||||
// label: "是否离职",
|
||||
// prop: "xtSjzt",
|
||||
// placeholder: "是否离职",
|
||||
// showType: "select",
|
||||
// options: D_BZ_SF
|
||||
// },
|
||||
|
||||
]);
|
||||
const elform = ref(null)
|
||||
const detailDiloag = ref();
|
||||
|
||||
@ -86,7 +86,8 @@ const searchConfiger = ref([
|
||||
label: "车辆品牌",
|
||||
prop: "clpp",
|
||||
placeholder: "请输入车辆品牌",
|
||||
showType: "input"
|
||||
showType: "select",
|
||||
options: D_BZ_CLPP
|
||||
}
|
||||
]);
|
||||
|
||||
|
||||
@ -49,13 +49,13 @@
|
||||
import GdMap from "@/components/GdMap/index.vue";
|
||||
import Head from "./layout/head.vue";
|
||||
import Collection from "./components/collection.vue";
|
||||
// import Warning from "./components/warning.vue";
|
||||
import CarWarning from "./components/CarWarning.vue";
|
||||
import PeoWarning from "./components/PeoWarning.vue";
|
||||
import BeOnDuty from "./components/beonDuty.vue";
|
||||
import Entrance from "./components/entrance.vue";
|
||||
import WanringAnyse from "./components/wanringAnyse.vue";
|
||||
import { jczgetJczList } from "@/api/mosty-jcz";
|
||||
import {ysSxtGetList} from '@/api/yszx.js'
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
|
||||
import { ref, onMounted } from "vue";
|
||||
@ -80,6 +80,17 @@ onMounted(() => {
|
||||
}
|
||||
});
|
||||
});
|
||||
const sxtGetList = () => {
|
||||
ysSxtGetList().then(res => {
|
||||
emitter.emit("addPointArea", {
|
||||
coords: res,
|
||||
icon: require("@/assets/point/sp.png"),
|
||||
flag: "jczMap_Gzy"
|
||||
});
|
||||
|
||||
})
|
||||
}
|
||||
sxtGetList()
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@ -146,4 +157,5 @@ onMounted(() => {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<div class="zbbb" v-if="query" @click="show = true">值班报备</div>
|
||||
</div>
|
||||
<el-dialog v-model="show" title="Shipping address">
|
||||
<div style="height: 50vh; overflow: auto">
|
||||
<div style="height: 50vh; overflow: auto" v-if="show">
|
||||
<zbbb
|
||||
:row="row"
|
||||
@close="close"
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
<template>
|
||||
<div></div>
|
||||
|
||||
<div class="cntinfo">
|
||||
<div class="flex align-center just-between box">
|
||||
<div class="flex align-center">
|
||||
@ -12,7 +10,7 @@
|
||||
/>
|
||||
</div>
|
||||
<!-- v-if="['add', 'edit'].includes(pageType)" -->
|
||||
<el-button size="small" type="primary" @click="_onSave">保存</el-button>
|
||||
<el-button size="small" type="primary" @click="_onSave" :disabled="loding">保存</el-button>
|
||||
</div>
|
||||
<el-form
|
||||
ref="formRef"
|
||||
@ -51,7 +49,7 @@
|
||||
<div class="bblxItem">
|
||||
<div class="btItem">班次设置</div>
|
||||
<div class="info">
|
||||
<el-form-item prop="kssj">
|
||||
<el-form-item prop="bcKssj" label=" ">
|
||||
<el-time-picker
|
||||
v-model="listQuery.bcKssj"
|
||||
:disabled="isDetail"
|
||||
@ -60,7 +58,7 @@
|
||||
value-format="HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item prop="bcKts">
|
||||
<el-form-item prop="bcKtsDict" label=" ">
|
||||
<el-select
|
||||
clearable
|
||||
v-model="listQuery.bcKtsDict"
|
||||
@ -75,7 +73,7 @@
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="jssj">
|
||||
<el-form-item prop="bcJssj" label=" ">
|
||||
<el-time-picker
|
||||
v-model="listQuery.bcJssj"
|
||||
:disabled="isDetail"
|
||||
@ -103,7 +101,7 @@
|
||||
:dic="props.dic"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item prop="fzrXm">
|
||||
<el-form-item prop="fzrXm" label=" ">
|
||||
<el-input
|
||||
readonly
|
||||
v-model="listQuery.fzrXm"
|
||||
@ -111,7 +109,7 @@
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item prop="fzrSfzh">
|
||||
<el-form-item prop="fzrSfzh" label=" ">
|
||||
<el-input
|
||||
readonly
|
||||
v-model="listQuery.fzrSfzh"
|
||||
@ -119,7 +117,7 @@
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item prop="fzrLxdh">
|
||||
<el-form-item prop="fzrLxdh" label=" ">
|
||||
<el-input
|
||||
readonly
|
||||
v-model="listQuery.fzrLxdh"
|
||||
@ -307,11 +305,13 @@
|
||||
<script setup>
|
||||
import { ref, reactive, getCurrentInstance, onMounted, watch } from "vue";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import { jczqueryById } from "@/api/mosty-jcz";
|
||||
import { jczsavel, Xfbbupdate } from "@/api/mosty-jcz.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import ChooseTable from "@/components/chooseList/chooseTable.vue";
|
||||
import { timeValidate } from "@/utils/tools.js";
|
||||
import { useRoute } from "vue-router";
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
const { proxy } = getCurrentInstance();
|
||||
// const { D_BZ_JYQXFL } = proxy.$dict("D_BZ_JYQXFL");
|
||||
const props = defineProps({
|
||||
@ -394,7 +394,6 @@ const init = (type) => {
|
||||
}
|
||||
} else {
|
||||
pageType.value = "add";
|
||||
|
||||
listQuery.value.qxList = props.dic.D_BZ_JYQXFL.map((item) => {
|
||||
return { qxmc: item.label, qxsl: 0 };
|
||||
});
|
||||
@ -416,17 +415,43 @@ onMounted(() => {
|
||||
});
|
||||
// 验证规则
|
||||
const rules = ref({
|
||||
spbt: [
|
||||
bcKtsDict: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入标题",
|
||||
message: "请选择班次",
|
||||
trigger: "blur"
|
||||
}
|
||||
]
|
||||
],
|
||||
bcKssj: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择开始时间",
|
||||
trigger: "blur"
|
||||
}
|
||||
], bcJssj: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择结束时间",
|
||||
trigger: "blur"
|
||||
}
|
||||
], fzrXm: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入负责人",
|
||||
trigger: "blur"
|
||||
}
|
||||
], fzrSfzh: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入身份证",
|
||||
trigger: "blur"
|
||||
}
|
||||
],
|
||||
});
|
||||
//保存
|
||||
|
||||
const loding = ref(false);
|
||||
const _onSave = () => {
|
||||
formRef.value.validate().then( async() => {
|
||||
const data = [...mjData.value, ...fjData.value];
|
||||
|
||||
listQuery.value.ryList = ChegeMj(data);
|
||||
@ -438,33 +463,61 @@ const _onSave = () => {
|
||||
break;
|
||||
case "02":
|
||||
listQuery.value.bcKts = 2;
|
||||
break;
|
||||
case "03":
|
||||
listQuery.value.bcKts = 4;
|
||||
break;
|
||||
case "04":
|
||||
listQuery.value.bcKts = 5;
|
||||
break;
|
||||
case "05":
|
||||
listQuery.value.bcKts = 6;
|
||||
break;
|
||||
case "06":
|
||||
listQuery.value.bcKts = 7;
|
||||
break;
|
||||
case "07":
|
||||
listQuery.value.bcKts = 8;
|
||||
break;
|
||||
}
|
||||
|
||||
listQuery.value.jczid = routerList.value.id?routerList.value.id:"";
|
||||
listQuery.value.jczmc = routerList.value.name?routerList.value.name:"";
|
||||
if (pageType.value == "add") {
|
||||
jczsavel(listQuery.value).then((res) => {
|
||||
ElMessage({ message: "新增成功", type: "success" });
|
||||
getjczqueryById()
|
||||
emit("close");
|
||||
}).finally(()=>{
|
||||
loding.value=false
|
||||
});
|
||||
} else {
|
||||
Xfbbupdate(listQuery.value).then((res) => {
|
||||
ElMessage({ message: "修改成功", type: "success" });
|
||||
getjczqueryById()
|
||||
emit("close");
|
||||
}).finally(()=>{
|
||||
loding.value=false
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}).catch(() => { });
|
||||
};
|
||||
const getjczqueryById = () => {
|
||||
jczqueryById({ jczid: props.jczId }).then((res) => {
|
||||
if (res) {
|
||||
emitter.emit("getjczqueryById",res);
|
||||
// warningList.value.qxList =res.qxList&&res.qxList.length>0
|
||||
// ? res.qxList.filter((item) => item.qxsl > 0)
|
||||
// : [];
|
||||
// warningList.value.ryList = res.ryList.length>0 ? res.ryList : [];
|
||||
// warningList.value.clList = res.clList.length>0 ? res.clList : [];
|
||||
// warningList.value.sbList = [...res.tcList, ...res.zdList]
|
||||
// emitter.emit("chengZ", res);
|
||||
} else {
|
||||
// warningList.value = res;
|
||||
}
|
||||
});
|
||||
};
|
||||
//
|
||||
const close = () => {
|
||||
dialogForm.value = false;
|
||||
@ -621,4 +674,7 @@ const changeJCZ = (val) => {
|
||||
.box {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
::v-deep .el-form-item__label{
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user