lcw
This commit is contained in:
@ -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