|
@@ -3,41 +3,32 @@
|
|
|
<div class="search-box">
|
|
|
<div class="box-left">
|
|
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-position="left">
|
|
|
- <el-form-item label="区划" prop="area" label-width="30px">
|
|
|
+ <el-form-item label="区划" prop="area_code" label-width="30px">
|
|
|
<el-select
|
|
|
- v-model="treeData.area"
|
|
|
+ v-model="queryParams.area_code"
|
|
|
class="custom-select"
|
|
|
popper-class="custom-select-popper"
|
|
|
:teleported="false"
|
|
|
style="width: 150px; margin-left: 10px"
|
|
|
- @change="handleAreaChange"
|
|
|
>
|
|
|
- <el-option v-for="item in treeData.areaList" :key="item.id" :label="item.label" :value="item.id" />
|
|
|
- </el-select>
|
|
|
- <el-select
|
|
|
- v-model="treeData.town"
|
|
|
- class="custom-select"
|
|
|
- popper-class="custom-select-popper"
|
|
|
- :teleported="false"
|
|
|
- style="width: 150px; margin-left: 10px"
|
|
|
- @change="handleTownChange"
|
|
|
- >
|
|
|
- <el-option v-for="item in treeData.townList" :key="item.id" :label="item.label" :value="item.id" />
|
|
|
+ <el-option label="茂名市" value="" />
|
|
|
+ <el-option v-for="item in district_type2" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="视频来源" prop="video_from" label-width="70px">
|
|
|
<el-select
|
|
|
- v-model="treeData.village"
|
|
|
+ v-model="queryParams.video_from"
|
|
|
class="custom-select"
|
|
|
popper-class="custom-select-popper"
|
|
|
:teleported="false"
|
|
|
style="width: 150px; margin-left: 10px"
|
|
|
- @change="handleVillageChange"
|
|
|
>
|
|
|
- <el-option v-for="item in treeData.villageList" :key="item.id" :label="item.label" :value="item.id" />
|
|
|
+<!-- <el-option v-for="item in district_type2" :key="item.value" :label="item.label" :value="item.value" />-->
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="实景视频" prop="dict_value" label-width="70px">
|
|
|
+ <el-form-item label="实景视频" prop="video_tag" label-width="70px">
|
|
|
<el-select
|
|
|
- v-model="queryParams.dict_value"
|
|
|
+ v-model="queryParams.video_tag"
|
|
|
class="custom-select"
|
|
|
popper-class="custom-select-popper"
|
|
|
:teleported="false"
|
|
@@ -46,8 +37,8 @@
|
|
|
<el-option v-for="item in video_type" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="name">
|
|
|
- <el-input v-model="queryParams.name" class="custom-input2" placeholder="请输入摄像头名称" style="width: 313px" />
|
|
|
+ <el-form-item prop="video_name">
|
|
|
+ <el-input v-model="queryParams.video_name" class="custom-input2" placeholder="请输入摄像头名称" style="width: 313px" />
|
|
|
</el-form-item>
|
|
|
<el-form-item style="margin-right: 0">
|
|
|
<div class="common-btn-primary" @click="handleQuery">搜索</div>
|
|
@@ -78,27 +69,27 @@
|
|
|
<div v-for="(item, index) in dialogListData" :key="index" class="video-box" @click="selectItem(item)">
|
|
|
<div style="width: 100%; height: 100%; display: flex; align-items: center; justify-content: center">
|
|
|
<div v-if="editVideo">
|
|
|
- <div v-if="getCheckStatus(item.video_code)" class="active-tag"></div>
|
|
|
- <div :class="getCheckStatus(item.video_code) ? 'common-checked-active' : 'common-checked'"></div>
|
|
|
- <div class="img"></div>
|
|
|
+ <div v-if="item.isUserVideos" class="active-tag" />
|
|
|
+ <div :class="item.isUserVideos ? 'common-checked-active' : 'common-checked'" />
|
|
|
+ <div class="img" />
|
|
|
<div class="video-label">
|
|
|
<span class="label">{{ item.name }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <HKVideo v-else :dot_data="item" autoplay :is-index="item.sort" />
|
|
|
+ <HKVideo v-else :dot_data="item" autoplay :is-index="item.isUserVideos" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="footer">
|
|
|
<pagination
|
|
|
- v-show="total > queryParams.size"
|
|
|
- v-model:page="queryParams.current"
|
|
|
- v-model:limit="queryParams.size"
|
|
|
+ v-show="total > queryParams.pageSize"
|
|
|
+ v-model:page="queryParams.page"
|
|
|
+ v-model:limit="queryParams.pageSize"
|
|
|
:total="total"
|
|
|
layout="total, prev, pager, next"
|
|
|
@pagination="getList"
|
|
|
/>
|
|
|
- <div v-if="total === 0" style="width: 100%; text-align: center; font-size: 38px; font-weight: bold">暂无数据</div>
|
|
|
+ <div v-if="total === 0" style="width: 100%; text-align: center; font-size: 16px; font-weight: bold">暂无数据</div>
|
|
|
</div>
|
|
|
<div id="container" style="display: none"></div>
|
|
|
</Dialog>
|
|
@@ -106,12 +97,11 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { getEmergencyVideoCata, getUserVideoPoints, getVideoList, updateUserVideoPoints } from '@/api/videoMonitor';
|
|
|
+import { getUserVideoPoints, getVideoListNew, updateUserVideoPoints } from '@/api/videoMonitor';
|
|
|
import { deepClone } from '@/utils';
|
|
|
import useAppStore from '@/store/modules/app';
|
|
|
import useMapStore from '@/store/modules/map';
|
|
|
import HKVideo from '@/components/HKVideo/index2.vue';
|
|
|
-import { getRegionalTree } from '@/api/PreventionResponsible';
|
|
|
|
|
|
interface LngLat {
|
|
|
longitude: number;
|
|
@@ -131,24 +121,17 @@ const props = defineProps({
|
|
|
const mapStore = useMapStore();
|
|
|
const emits = defineEmits(['update:modelValue']);
|
|
|
const proxy = getCurrentInstance()?.proxy;
|
|
|
-const { video_type } = toRefs<any>(proxy?.useDict('video_type'));
|
|
|
-
|
|
|
+const { district_type2, video_type } = toRefs<any>(proxy?.useDict('district_type2', 'video_type'));
|
|
|
//查看更多数据
|
|
|
const queryFormRef = ref();
|
|
|
-const treeData = reactive({
|
|
|
- area: '',
|
|
|
- town: '',
|
|
|
- village: '',
|
|
|
- areaList: [],
|
|
|
- townList: [],
|
|
|
- villageList: []
|
|
|
-});
|
|
|
+
|
|
|
const queryParams = reactive({
|
|
|
- current: 1,
|
|
|
- size: 8,
|
|
|
- dict_value: '',
|
|
|
- name: '',
|
|
|
- area: ''
|
|
|
+ area_code: '',
|
|
|
+ video_from: '',
|
|
|
+ video_tag: '573204ca-e814-11ef-a825-fa163e4bf12e',
|
|
|
+ video_name: '',
|
|
|
+ page: 1,
|
|
|
+ pageSize: 8
|
|
|
});
|
|
|
let total = ref(0);
|
|
|
let editVideo = ref(false);
|
|
@@ -173,32 +156,18 @@ const getList = (flag?: boolean) => {
|
|
|
let newParams = {
|
|
|
latitude: props.lngLat.latitude,
|
|
|
longitude: props.lngLat.longitude,
|
|
|
- current: queryParams.current,
|
|
|
- size: queryParams.size,
|
|
|
- query: {
|
|
|
- name: queryParams.name
|
|
|
- }
|
|
|
+ ...queryParams
|
|
|
};
|
|
|
- if (!!queryParams.dict_value) {
|
|
|
- newParams.query.dict_value = queryParams.dict_value;
|
|
|
- }
|
|
|
- getEmergencyVideoCata(newParams).then((res) => {
|
|
|
- dialogListData.value = res.rows;
|
|
|
+ getVideoListNew(newParams).then((res) => {
|
|
|
+ dialogListData.value = res.data;
|
|
|
total.value = res.total;
|
|
|
getUserVideoPoints().then((res2) => {
|
|
|
- filterData(res2.data.videoInfos);
|
|
|
editData.value = deepClone(res2.data.videoInfos);
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
const getVideoInfoList = () => {
|
|
|
- mapStore.setVideoPointParams({
|
|
|
- flag: true,
|
|
|
- dict_value: queryParams.dict_value
|
|
|
- });
|
|
|
- getVideoList(queryParams).then((res) => {
|
|
|
- mapStore.setTrackState(res.data);
|
|
|
- });
|
|
|
+ mapStore.setPointParams(queryParams.video_tag);
|
|
|
};
|
|
|
const selectItem = (item) => {
|
|
|
if (editVideo.value) {
|
|
@@ -222,20 +191,15 @@ const reset = () => {
|
|
|
|
|
|
/** 搜索按钮操作 */
|
|
|
const handleQuery = () => {
|
|
|
- queryParams.current = 1;
|
|
|
+ queryParams.page = 1;
|
|
|
getList();
|
|
|
- // getVideoInfoList();
|
|
|
+ getVideoInfoList();
|
|
|
};
|
|
|
|
|
|
/** 重置按钮操作 */
|
|
|
const resetQuery = () => {
|
|
|
queryFormRef.value?.resetFields();
|
|
|
- treeData.area = '';
|
|
|
- treeData.townList = [];
|
|
|
- treeData.town = '';
|
|
|
- treeData.villageList = [];
|
|
|
- treeData.village = '';
|
|
|
- queryParams.current = 1;
|
|
|
+ queryParams.page = 1;
|
|
|
handleQuery();
|
|
|
};
|
|
|
|
|
@@ -243,16 +207,6 @@ const resetQuery = () => {
|
|
|
const activeEdit = () => {
|
|
|
editVideo.value = true;
|
|
|
};
|
|
|
-const filterData = (data) => {
|
|
|
- data.forEach((item) => {
|
|
|
- for (let i = 0; i < dialogListData.value.length; i++) {
|
|
|
- if (item.video_code_int === dialogListData.value[i].video_code) {
|
|
|
- dialogListData.value[i].sort = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-};
|
|
|
// 关闭编辑
|
|
|
const handleCancel = () => {
|
|
|
editVideo.value = false;
|
|
@@ -268,43 +222,10 @@ const handleSave = () => {
|
|
|
handleCancel();
|
|
|
});
|
|
|
};
|
|
|
-// 区变化
|
|
|
-const handleAreaChange = () => {
|
|
|
- getAreaTreeList('townList', treeData.area);
|
|
|
- treeData.town = '';
|
|
|
- treeData.village = '';
|
|
|
- queryParams.area = treeData.area;
|
|
|
-};
|
|
|
-// 镇变化
|
|
|
-const handleTownChange = () => {
|
|
|
- getAreaTreeList('villageList', treeData.town);
|
|
|
- treeData.village = '';
|
|
|
- queryParams.area = treeData.town;
|
|
|
-};
|
|
|
-// 村变化
|
|
|
-const handleVillageChange = () => {
|
|
|
- queryParams.area = treeData.village;
|
|
|
-};
|
|
|
-// 获取区划树
|
|
|
-const getAreaTreeList = (datasource, id) => {
|
|
|
- getRegionalTree(id).then((res) => {
|
|
|
- treeData[datasource] = res.data;
|
|
|
- });
|
|
|
-};
|
|
|
-const getCheckStatus = (id) => {
|
|
|
- let flag = false;
|
|
|
- for (let i = 0; i < editData.value.length; i++) {
|
|
|
- if (editData.value[i].video_code_int === id) {
|
|
|
- flag = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- return flag;
|
|
|
-};
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
getList();
|
|
|
- getAreaTreeList('areaList', 2);
|
|
|
- // getVideoInfoList();
|
|
|
+ getVideoInfoList();
|
|
|
});
|
|
|
</script>
|
|
|
|