我的布控

This commit is contained in:
wangjie 2025-04-15 15:21:20 +08:00
parent b4031bf1b4
commit a82eed844e
7 changed files with 925 additions and 325 deletions

View File

@ -1,15 +1,35 @@
<template> <template>
<div> <div>
<div class="titleBox"> <div class="titleBox">
<PageTitle title="布控审批"/> <PageTitle title="布控审批" />
</div> </div>
<!-- 搜索 --> <!-- 搜索 -->
<div ref="searchBox"> <div ref="searchBox">
<!-- 顶部主导航 -->
<div class="main-nav">
<el-button :class="['nav-btn', activeMainNav === 'todo' ? 'active' : '']" @click="activeMainNav = 'todo'">
我的待办
</el-button>
<el-button :class="['nav-btn', activeMainNav === 'done' ? 'active' : '']" @click="activeMainNav = 'done'">
我的已办
</el-button>
</div>
<!-- 子导航 -->
<div class="sub-nav">
<el-tabs v-model="activeSubNav">
<el-tab-pane label="我的发起" name="myInitiate"></el-tab-pane>
<el-tab-pane label="我的审核" name="myAudit"></el-tab-pane>
<el-tab-pane label="我的审批" name="myApprove"></el-tab-pane>
<el-tab-pane label="我的签收" name="mySign"></el-tab-pane>
<el-tab-pane label="我的处置" name="myHandle"></el-tab-pane>
</el-tabs>
</div>
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"> <Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
<template #defaultSlot> <template #defaultSlot>
<div> <div>
<el-input-number v-model="queryFrom.xqy"></el-input-number> <el-input-number v-model="queryFrom.xqy"></el-input-number>
<span class="ml10 mr10" style="color: #000;"></span> <span class="ml10 mr10" style="color: #000"></span>
<el-input-number v-model="queryFrom.dqy"></el-input-number> <el-input-number v-model="queryFrom.dqy"></el-input-number>
</div> </div>
</template> </template>
@ -17,6 +37,16 @@
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div class="tabBox"> <div class="tabBox">
<div ref="btns" class="btns flexcb">
<div class="">
<el-button>批量处理</el-button>
<el-button>导出</el-button>
</div>
<el-input v-model="input2" style="max-width: 300px" placeholder="请输入关键字">
<template #append><el-button type="primary" icon="Search"></el-button></template>
</el-input>
</div>
<MyTable <MyTable
:tableData="pageData.tableData" :tableData="pageData.tableData"
:tableColumn="pageData.tableColumn" :tableColumn="pageData.tableColumn"
@ -24,7 +54,8 @@
:key="pageData.keyCount" :key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger" :tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"> @chooseData="chooseData"
>
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-button size="small" @click="addEdit('detail', row)">详情</el-button> <el-button size="small" @click="addEdit('detail', row)">详情</el-button>
@ -35,7 +66,7 @@
<Pages <Pages
@changeNo="changeNo" @changeNo="changeNo"
@changeSize="changeSize" @changeSize="changeSize"
:tableHeight="pageData.tableHeight" :tableHeight="pageData.tableHeight + 42"
:pageConfiger="{ :pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
@ -48,29 +79,92 @@
</template> </template>
<script setup> <script setup>
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import DetailForm from "./components/detailForm.vue"; import DetailForm from "./components/detailForm.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js"; import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const detailDiloag = ref(); const detailDiloag = ref();
const searchBox = ref(); // const searchBox = ref(); //
const searchConfiger = ref([ const btns = ref();
{ label: "场所名称", prop: 'name', placeholder: "请输入场所名称", showType: "input" }, //
{ label: "场所电话", prop: 'phone', placeholder: "请输入场所电话", showType: "input" }, const activeMainNav = ref("todo");
{ label: "法人姓名", prop: 'frxm', placeholder: "请输入法人姓名", showType: "input" }, //
{ label: "法人证件号码", prop: 'frzjhm', placeholder: "请输入法人证件号码", showType: "input" }, const activeSubNav = ref("myAudit");
{ label: "法人联系电话", prop: 'frlxdh', placeholder: "请输入法人联系电话", showType: "input" }, const searchConfiger = ref([
{ label: "经营状况", prop: 'jyzt', placeholder: "请选择经营状况", showType: "select", options: [{ label: '在业', value: '在业' }]}, {
{ label: "所属辖区", prop: 'ssxq', placeholder: "请选择所属辖区", showType: "department" }, label: "布控类别",
{ label: "面积大小", prop: 'mj', placeholder: "请输入面积范围", showType: "defaultSlot" }, prop: "category",
]); placeholder: "请输入布控类别",
const queryFrom = ref({}); showType: "select",
const pageData = reactive({ options: [{ label: "在业", value: "在业" }]
tableData: [], },
{
label: "布控对象",
prop: "target",
placeholder: "请输入布控对象",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{
label: "布控状态",
prop: "status",
placeholder: "请输入布控状态",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{ label: "布控时间", prop: "dateRange", placeholder: "请输入布控时间", showType: "daterange" },
{
label: "预计布控类型",
prop: "controlType",
placeholder: "请输入布控类别",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{
label: "最近预警时间",
prop: "lastAlertTime",
placeholder: "请输入布控对象",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{
label: "布控发起单位",
prop: "initiatingUnit",
placeholder: "请输入布控状态",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{
label: "处置接收单位",
prop: "receivingUnit",
placeholder: "请输入布控状态",
showType: "select",
options: [{ label: "在业", value: "在业" }]
}
]);
const queryFrom = ref({});
const pageData = reactive({
tableData: [
[
{
taskId: "任务编号",
target: "人员",
targetInfo: "石某某",
measures: "布控公安机关",
scope: "布控范围",
alertInfo: "预警信息",
startTime: "2024-04-05 12:00",
endTime: "2024-04-10 12:00",
lastAlertTime: "2024-04-10 12:00",
creator: "张三"
}
// ...
]
],
keyCount: 0, keyCount: 0,
tableConfiger: { tableConfiger: {
rowHieght: 61, rowHieght: 61,
@ -84,42 +178,47 @@ const pageData = reactive({
}, },
controlsWidth: 250, controlsWidth: 250,
tableColumn: [ tableColumn: [
{ label: "场所名称", prop: "name" }, { label: "任务编号", prop: "taskId" },
{ label: "经营状态", prop: "jyzt" }, { label: "布控对象", prop: "target" },
{ label: "所属辖区", prop: "ssxq" }, { label: "布控对象信息", prop: "targetInfo" },
{ label: "法人姓名", prop: "frxm" }, { label: "布控管控措施", prop: "measures" },
{ label: "法人证件号码", prop: "frzjhm" }, { label: "布控范围", prop: "scope" },
{ label: "预警信息", prop: "alertInfo" },
{ label: "开始时间", prop: "startTime" },
{ label: "结束时间", prop: "endTime" },
{ label: "最近预警时间", prop: "lastAlertTime" },
{ label: "布控发起人", prop: "creator" }
] ]
}); });
onMounted(() => { onMounted(() => {
// getList() // getList()
tabHeightFn(); tabHeightFn();
}); });
// //
const handleType = (val) => { const handleType = val => {
pageData.keyCount++; pageData.keyCount++;
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getList() getList();
} };
// //
const onSearch = (val) =>{ const onSearch = val => {
queryFrom.value = {...val} queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getList() getList();
} };
const changeNo = (val) =>{ const changeNo = val => {
pageData.pageConfiger.pageNum = val; pageData.pageConfiger.pageNum = val;
getList() getList();
} };
const changeSize = (val) =>{ const changeSize = val => {
pageData.pageConfiger.pageSize = val; pageData.pageConfiger.pageSize = val;
getList() getList();
} };
// //
const getList = (val) =>{ const getList = val => {
// pageData.tableConfiger.loading = true; // pageData.tableConfiger.loading = true;
// let data = { ...pageData.pageConfiger, ...queryFrom.value }; // let data = { ...pageData.pageConfiger, ...queryFrom.value };
// let url = '/mosty-lzcj/tbDwKscs/queryList'; // let url = '/mosty-lzcj/tbDwKscs/queryList';
@ -128,24 +227,59 @@ const getList = (val) =>{
// pageData.total = res.total; // pageData.total = res.total;
// pageData.tableConfiger.loading = false; // pageData.tableConfiger.loading = false;
// }).catch(()=>{ pageData.tableConfiger.loading = false; }) // }).catch(()=>{ pageData.tableConfiger.loading = false; })
} };
// //
const addEdit = (type, row) => { const addEdit = (type, row) => {
detailDiloag.value.init(type, row); detailDiloag.value.init(type, row);
}; };
// //
const tabHeightFn = () => { const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250; console.log("btns.value.offsetHeight", btns.value.offsetHeight);
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - btns.value.offsetHeight - 30 - 250;
window.onresize = function () { window.onresize = function () {
tabHeightFn(); tabHeightFn();
}; };
}; };
</script> </script>
<style> <style lang="scss" scoped>
.el-loading-mask { .main-nav {
background: rgba(0, 0, 0, 0.5) !important; padding: 16px;
} background-color: #fff;
}
.nav-btn {
margin-right: 10px;
border: none;
background: none;
&.active {
background-color: #409eff;
color: #fff;
}
}
.sub-nav {
background-color: #fff;
padding: 0 16px;
}
:deep(.el-tabs__header) {
margin-bottom: 0;
}
:deep(.el-tabs__nav-wrap::after) {
height: 1px;
}
:deep(.el-table--fit) {
top: 52px !important;
}
.btns {
height: 52px;
padding: 10px;
box-sizing: border-box;
}
</style> </style>

View File

@ -0,0 +1,86 @@
<template>
<el-dialog v-model="dialogTableVisible" title="XXXXXXX涉及人数" width="1000px" @close="close">
<div class="dialog-container">
<el-form :model="formData" label-width="auto" label-position="left">
<div class="form-row">
<el-form-item label="模型名称">
<el-input v-model="formData.modelName" placeholder="请输入模型名称" />
</el-form-item>
<el-form-item label="感知模型类型" prop="region">
<el-select v-model="formData.region" placeholder="重点区域类型">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
</el-select>
</el-form-item>
<el-form-item label="生成时间范围">
<el-date-picker
v-model="formData.dateRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
style="width: 100%"
/>
</el-form-item>
</div>
<el-form-item label="感知源信息">
<el-input v-model="formData.perceptionDomain" placeholder="请输入模型名称">
<template #append>
<el-button type="primary">选择感知源</el-button>
</template>
</el-input>
</el-form-item>
<el-form-item label="地图范围">
<el-input v-model="formData.mapRange" placeholder="请输入模型名称">
<template #append>
<el-button type="primary">选择地图范围</el-button>
</template>
</el-input>
</el-form-item>
</el-form>
<div class="map"></div>
</div>
</el-dialog>
</template>
<script setup>
import { ref } from "vue";
const formData = ref({
modelName: "",
perceptionDomain: "",
mapRange: "",
dateRange: [],
region: ""
});
const dialogTableVisible = ref(false);
//
const init = (type, row) => {
dialogTableVisible.value = true;
};
const close = () => {};
defineExpose({ init });
</script>
<style lang="scss" scoped>
.dialog-container {
height: 550px;
.map {
height: 400px;
border: 1px solid #ccc;
border-radius: 5px;
}
.form-row {
display: flex;
gap: 5px;
.el-form-item {
flex: 1;
}
}
}
</style>

View File

@ -0,0 +1,125 @@
<template>
<el-dialog v-model="dialogTableVisible" title="XXXXXXX涉及人数" width="1000px" @close="close">
<div class="dialog-container">
<!-- 搜索 -->
<div ref="searchBox">
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" class="seacrh" />
</div>
<!-- 表格 -->
<div class="tabBox">
<MyTable
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
tableHeight="400px"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<!-- 操作 -->
<template #controls="{ row }">
<el-button size="small" @click="addEdit('detail', row)">详情</el-button>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
</div>
</div>
</el-dialog>
</template>
<script setup>
import { ref, reactive } from "vue";
import Search from "@/components/aboutTable/Search.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
const dialogTableVisible = ref(false);
const searchConfiger = ref([
{
label: "姓名",
prop: "name",
placeholder: "请输入场所名称",
showType: "input"
},
{
label: "身份证号",
prop: "idCard",
placeholder: "请输入从业人姓名",
showType: "input"
},
{
label: "车牌号",
prop: "plateNumber",
placeholder: "请输入场所名称",
showType: "input"
},
{
label: "车牌号",
prop: "plateNumber2",
placeholder: "请输入从业人姓名",
showType: "input"
}
]);
const pageData = reactive({
tableData: [
{
name: "1"
}
], //
keyCount: 0,
tableConfiger: {
rowHieght: 61,
showSelectType: "null",
loading: false
},
total: 0,
pageConfiger: {
pageSize: 20,
pageCurrent: 1
}, //
controlsWidth: 120, //
tableColumn: [
{ label: "照片", prop: "photo", width: "80" },
{ label: "姓名", prop: "name", width: "100" },
{ label: "性别", prop: "gender", width: "80" },
{ label: "身份证号", prop: "idCard", width: "180" },
{ label: "户籍地", prop: "residence", width: "150" },
{ label: "现居住地", prop: "currentAddress", width: "150" },
{ label: "手机号", prop: "phone", width: "120" },
{ label: "虚拟身份", prop: "virtualId", width: "120" },
{ label: "车牌号", prop: "plateNumber", width: "120" },
{ label: "车牌号", prop: "plateNumber2", width: "120" },
{ label: "特征描述", prop: "features", width: "150" },
{ label: "人员标签", prop: "personTags", width: "150" }
]
});
//
const init = (type, row) => {
dialogTableVisible.value = true;
};
const close = () => {};
defineExpose({ init });
</script>
<style lang="scss" scoped>
.dialog-container {
// .box {
// flex-wrap: nowrap !important;
// }
.seacrh {
.box {
flex-wrap: nowrap !important;
}
}
}
</style>

View File

@ -0,0 +1,50 @@
<template>
<div class="dialog" v-if="dialogForm">
<div class="head_box">
<span class="title">发起布控12346</span>
<div>
<el-button size="small" @click="close">关闭</el-button>
</div>
</div>
<div class="cntinfo">
<div>布控信息</div>
<ControlInfo></ControlInfo>
</div>
</div>
</template>
<script setup>
import { ref, reactive } from 'vue';
import ControlInfo from "./ui/controlInfo.vue";
const dialogForm = ref(false);
const listQuery = ref({});
//
const init = (type, row) => {
dialogForm.value = true;
// typerow
};
const close = () => {
dialogForm.value = false;
};
defineExpose({init})
</script>
<style lang="scss" scoped>
.dialog {
padding: 20px;
.cntinfo{
color: #000;
height: calc(100% - 70px);
overflow: hidden;
overflow-y: auto;
}
}
</style>

View File

@ -0,0 +1,72 @@
<template>
<div>
<!-- 布控信息 -->
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="布控标题">
<el-input v-model="formInline.user" placeholder="Approved by" clearable />
</el-form-item>
<el-form-item label="预警标签模型">
<el-select
v-model="formInline.region"
placeholder="Activity zone"
clearable
>
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
</el-select>
</el-form-item>
<el-form-item label="所属警钟">
<el-select
v-model="formInline.region"
placeholder="Activity zone"
clearable
>
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
</el-select>
</el-form-item>
<el-form-item label="布控对象">
<el-select
v-model="formInline.person"
placeholder="Activity zone"
clearable
>
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
</el-select>
</el-form-item>
</el-form>
<!-- 按钮 -->
<div>
<el-button type="primary">新增</el-button>
<el-button type="danger">批量删除</el-button>
</div>
</div>
</template>
<script setup>
import { reactive } from 'vue'
const formInline = reactive({
user: '',
region: '',
date: '',
})
const onSubmit = () => {
console.log('submit!')
}
</script>
<style lang="scss" scoped>
.demo-form-inline .el-input {
--el-input-width: 220px;
}
.demo-form-inline .el-select {
--el-select-width: 220px;
}
</style>

View File

@ -1,11 +1,27 @@
<template> <template>
<div> <div>
<div class="titleBox"> <div class="titleBox">
<PageTitle title="我的布控"/> <PageTitle title="我的布控" />
</div> </div>
<!-- 搜索 --> <!-- 搜索 -->
<div ref="searchBox"> <div ref="searchBox">
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"/> <Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
</div>
<!-- 按钮组 -->
<div class="content">
<div class="flexcb btns">
<div>
<el-button type="primary" @click="sendControl">发起布控</el-button>
<el-button type="primary">导出</el-button>
<el-button type="primary">发起布控</el-button>
<el-button type="danger">批量删除</el-button>
<el-button type="primary" icon="CirclePlus">添加标签模型</el-button>
<el-button type="primary" icon="CirclePlus" @click="areaModel">添加范围模型</el-button>
<el-button type="primary" icon="CirclePlus" @click="personNum">涉及人数</el-button>
</div>
<el-input v-model="input2" style="max-width: 300px" placeholder="请输入关键字">
<template #append><el-button type="primary" icon="Search"></el-button></template>
</el-input>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div class="tabBox"> <div class="tabBox">
@ -16,7 +32,8 @@
:key="pageData.keyCount" :key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger" :tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"> @chooseData="chooseData"
>
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-button size="small" @click="addEdit('detail', row)">详情</el-button> <el-button size="small" @click="addEdit('detail', row)">详情</el-button>
@ -32,35 +49,93 @@
}" }"
></Pages> ></Pages>
</div> </div>
</div>
<!-- 详情 --> <!-- 详情 -->
<DetailForm ref="detailDiloag" /> <DetailForm ref="detailDiloag" />
<!-- 发起布控 -->
<SendControl ref="sendControlRef"></SendControl>
<PersonNum ref="personNumRef"></PersonNum>
<!-- 添加范围模型 -->
<AreaModel ref="areaModelRef"></AreaModel>
</div> </div>
</template> </template>
<script setup> <script setup>
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import DetailForm from "./components/detailForm.vue"; import DetailForm from "./components/detailForm.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js"; import SendControl from "./components/sendControl.vue";
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import PersonNum from "./components/personNum.vue";
const { proxy } = getCurrentInstance(); import AreaModel from "./components/areaModel.vue";
const detailDiloag = ref();
const searchBox = ref(); // import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
const searchConfiger = ref([ import { reactive, ref, onMounted, getCurrentInstance } from "vue";
{ label: "场所名称", prop: 'name', placeholder: "请输入场所名称", showType: "input" }, const { proxy } = getCurrentInstance();
{ label: "从业人姓名", prop: 'cyxm', placeholder: "请输入从业人姓名", showType: "input" }, const detailDiloag = ref();
{ label: "请求开锁人姓名", prop: 'qqksrxm', placeholder: "请输入请求开锁人姓名", showType: "input" }, const searchBox = ref(); //
{ label: "请求开锁人身份证号", prop: 'qqksrsfzh', placeholder: "请输入请求开锁人身份证号", showType: "input" }, const sendControlRef = ref();
{ label: "见证人姓名", prop: 'jzrxm', placeholder: "请输入见证人姓名", showType: "input" }, const personNumRef = ref();
{ label: "见证人联系电话", prop: 'jzrlxdh', placeholder: "请输入见证人联系电话", showType: "input" }, const searchConfiger = ref([
{ label: "所属辖区", prop: 'ssxq', placeholder: "请选择所属辖区", showType: "department" }, {
]); label: "布控级别",
const queryFrom = ref({}); prop: "jyzt",
const pageData = reactive({ placeholder: "请选择经营状况",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{
label: "布控对象",
prop: "jyzt",
placeholder: "请选择经营状况",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{
label: "布控状态",
prop: "jyzt",
placeholder: "请选择经营状况",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{ label: "布控时间", prop: "checkDate", placeholder: "布控时间", showType: "date" },
{
label: "预计标签模型",
prop: "jyzt",
placeholder: "请选预计标签模型",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{ label: "最近预警时间", prop: "checkDate", placeholder: "最近预警时间", showType: "date" },
{
label: "布控对象信息",
prop: "jyzt",
placeholder: "请选择布控对象信息",
showType: "select",
options: [{ label: "在业", value: "在业" }]
},
{
label: "处理接受部门",
prop: "jyzt",
placeholder: "请选择经营状况",
showType: "select",
options: [{ label: "在业", value: "在业" }]
}
]);
const areaModelRef = ref();
const queryFrom = ref({});
const pageData = reactive({
tableData: [ tableData: [
{name:'1',ssxq:'1',cyxm:'1',qqksrxm:'1',qqksrsfzh:'1',jzrxm:'1'} {
name: "1",
ssxq: "1",
cyxm: "1",
qqksrxm: "1",
qqksrsfzh: "1",
jzrxm: "1"
}
], // ], //
keyCount: 0, keyCount: 0,
tableConfiger: { tableConfiger: {
@ -74,44 +149,54 @@ const pageData = reactive({
pageCurrent: 1 pageCurrent: 1
}, // }, //
controlsWidth: 120, // controlsWidth: 120, //
tableColumn: [ tableColumn: [
{ label: "场所名称", prop: "name" }, { label: "布控级别", prop: "bkjb" },
{ label: "所属辖区", prop: "ssxq" }, { label: "布控标题", prop: "bkbt" },
{ label: "从业人姓名", prop: "cyxm" }, { label: "布控对象", prop: "bkdx" },
{ label: "请求开锁人姓名", prop: "qqksrxm" }, { label: "布控对象信息", prop: "bkdx" },
{ label: "请求开锁人身份证号", prop: "qqksrsfzh" }, { label: "预警标签模型", prop: "yjbqmx" },
{ label: "见证人姓名", prop: "jzrxm" }, { label: "布控范围", prop: "bkfw" },
{ label: "预警信息", prop: "yjxx" },
{ label: "处置接收单位", prop: "czjsdw" },
{ label: "处置要求", prop: "czyq" },
{ label: "开始时间", prop: "kssj" },
{ label: "结束时间", prop: "jssj" },
{ label: "最近预警时间", prop: "zjyjsj" },
{ label: "失效时间", prop: "sxsj" },
{ label: "布控发起人", prop: "bkfqr" },
{ label: "布控状态", prop: "bkzt" }
] ]
}); });
onMounted(() => { onMounted(() => {
// getList() // getList()
tabHeightFn(); tabHeightFn();
}); });
// //
const handleType = (val) => { const handleType = val => {
pageData.keyCount++; pageData.keyCount++;
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getList() getList();
} };
// //
const onSearch = (val) =>{ const onSearch = val => {
queryFrom.value = {...val} queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getList() getList();
} };
const changeNo = (val) =>{ const changeNo = val => {
pageData.pageConfiger.pageNum = val; pageData.pageConfiger.pageNum = val;
getList() getList();
} };
const changeSize = (val) =>{ const changeSize = val => {
pageData.pageConfiger.pageSize = val; pageData.pageConfiger.pageSize = val;
getList() getList();
} };
// //
const getList = (val) =>{ const getList = val => {
// pageData.tableConfiger.loading = true; // pageData.tableConfiger.loading = true;
// let data = { ...pageData.pageConfiger, ...queryFrom.value }; // let data = { ...pageData.pageConfiger, ...queryFrom.value };
// let url = '/mosty-lzcj/tbDwMbkf/queryList'; // let url = '/mosty-lzcj/tbDwMbkf/queryList';
@ -120,24 +205,44 @@ const getList = (val) =>{
// pageData.total = res.total; // pageData.total = res.total;
// pageData.tableConfiger.loading = false; // pageData.tableConfiger.loading = false;
// }).catch(()=>{ pageData.tableConfiger.loading = false; }) // }).catch(()=>{ pageData.tableConfiger.loading = false; })
} };
// //
const addEdit = (type, row) => { const addEdit = (type, row) => {
detailDiloag.value.init(type, row); detailDiloag.value.init(type, row);
}; };
//
const sendControl = () => {
sendControlRef.value.init();
};
//
const personNum = () => {
personNumRef.value.init();
};
//
// const areaModel = () => {
const tabHeightFn = () => { areaModelRef.value.init();
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250; };
//
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 292;
window.onresize = function () { window.onresize = function () {
tabHeightFn(); tabHeightFn();
}; };
}; };
</script> </script>
<style> <style lang="scss" scoped>
.el-loading-mask { .el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important; background: rgba(0, 0, 0, 0.5) !important;
} }
.content {
background-color: #fff;
border-radius: 4px;
padding-top: 10px;
.btns {
padding: 0 10px;
}
}
</style> </style>

View File

@ -1,11 +1,11 @@
<template> <template>
<div> <div>
<div class="titleBox"> <div class="titleBox">
<PageTitle title="事故车辆附加信息"/> <PageTitle title="事故车辆附加信息" />
</div> </div>
<!-- 搜索 --> <!-- 搜索 -->
<div ref="searchBox"> <div ref="searchBox">
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"/> <Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div class="tabBox"> <div class="tabBox">
@ -16,13 +16,11 @@
:key="pageData.keyCount" :key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger" :tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"> @chooseData="chooseData"
>
<!-- 事故照片 --> <!-- 事故照片 -->
<template #accidentPhoto="{ row }"> <template #accidentPhoto="{ row }">
<el-image <el-image style="width: 50px; height: 50px" :src="row.accidentPhoto" :preview-src-list="[row.accidentPhoto]">
style="width: 50px; height: 50px"
:src="row.accidentPhoto"
:preview-src-list="[row.accidentPhoto]">
</el-image> </el-image>
</template> </template>
<!-- 操作 --> <!-- 操作 -->
@ -46,30 +44,60 @@
</template> </template>
<script setup> <script setup>
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import DetailForm from "./components/detailForm.vue"; import DetailForm from "./components/detailForm.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js"; import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const detailDiloag = ref(); const detailDiloag = ref();
const searchBox = ref(); // const searchBox = ref(); //
const searchConfiger = ref([ const searchConfiger = ref([
{ label: "业务流水号码", prop: 'businessNo', placeholder: "请输入业务流水号码", showType: "input" }, { label: "业务流水号码", prop: "businessNo", placeholder: "请输入业务流水号码", showType: "input" },
{ label: "事故车辆发现时间", prop: 'discoveryTime', placeholder: "请选择事故车辆发现时间", showType: "date" }, { label: "事故车辆发现时间", prop: "discoveryTime", placeholder: "请选择事故车辆发现时间", showType: "date" }
]); ]);
const queryFrom = ref({}); const queryFrom = ref({});
const pageData = reactive({ const pageData = reactive({
tableData: [ tableData: [
{id: 1, businessNo: '01131213', registrantName: '张三', discoveryTime: '2025/1/20 10:00:00', accidentPhoto: 'https://example.com/photo1.jpg'}, {
{id: 2, businessNo: '01131213', registrantName: '张三', discoveryTime: '2025/1/20 10:00:00', accidentPhoto: 'https://example.com/photo2.jpg'}, id: 1,
{id: 3, businessNo: '01131213', registrantName: '张三', discoveryTime: '2025/1/20 10:00:00', accidentPhoto: 'https://example.com/photo3.jpg'}, businessNo: "01131213",
{id: 4, businessNo: '01131213', registrantName: '张三', discoveryTime: '2025/1/20 10:00:00', accidentPhoto: 'https://example.com/photo4.jpg'}, registrantName: "张三",
{id: 5, businessNo: '01131213', registrantName: '张三', discoveryTime: '2025/1/20 10:00:00', accidentPhoto: 'https://example.com/photo5.jpg'}, discoveryTime: "2025/1/20 10:00:00",
accidentPhoto: "https://example.com/photo1.jpg"
},
{
id: 2,
businessNo: "01131213",
registrantName: "张三",
discoveryTime: "2025/1/20 10:00:00",
accidentPhoto: "https://example.com/photo2.jpg"
},
{
id: 3,
businessNo: "01131213",
registrantName: "张三",
discoveryTime: "2025/1/20 10:00:00",
accidentPhoto: "https://example.com/photo3.jpg"
},
{
id: 4,
businessNo: "01131213",
registrantName: "张三",
discoveryTime: "2025/1/20 10:00:00",
accidentPhoto: "https://example.com/photo4.jpg"
},
{
id: 5,
businessNo: "01131213",
registrantName: "张三",
discoveryTime: "2025/1/20 10:00:00",
accidentPhoto: "https://example.com/photo5.jpg"
}
], ],
keyCount: 0, keyCount: 0,
tableConfiger: { tableConfiger: {
@ -87,39 +115,39 @@ const pageData = reactive({
{ label: "业务流水号码", prop: "businessNo" }, { label: "业务流水号码", prop: "businessNo" },
{ label: "登记人姓名", prop: "registrantName" }, { label: "登记人姓名", prop: "registrantName" },
{ label: "事故车辆发现时间", prop: "discoveryTime" }, { label: "事故车辆发现时间", prop: "discoveryTime" },
{ label: "事故照片", prop: "accidentPhoto", slot: true }, { label: "事故照片", prop: "accidentPhoto", slot: true }
] ]
}); });
onMounted(() => { onMounted(() => {
getList() getList();
tabHeightFn(); tabHeightFn();
}); });
// //
const handleType = (val) => { const handleType = val => {
pageData.keyCount++; pageData.keyCount++;
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getList() getList();
} };
// //
const onSearch = (val) =>{ const onSearch = val => {
queryFrom.value = {...val} queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getList() getList();
} };
const changeNo = (val) =>{ const changeNo = val => {
pageData.pageConfiger.pageNum = val; pageData.pageConfiger.pageNum = val;
getList() getList();
} };
const changeSize = (val) =>{ const changeSize = val => {
pageData.pageConfiger.pageSize = val; pageData.pageConfiger.pageSize = val;
getList() getList();
} };
// //
const getList = (val) =>{ const getList = val => {
// pageData.tableConfiger.loading = true; // pageData.tableConfiger.loading = true;
let data = { ...pageData.pageConfiger, ...queryFrom.value }; let data = { ...pageData.pageConfiger, ...queryFrom.value };
// let url = '/mosty-lzcj/tbDwMbkf/queryList'; // let url = '/mosty-lzcj/tbDwMbkf/queryList';
@ -128,24 +156,24 @@ const getList = (val) =>{
// pageData.total = res.total; // pageData.total = res.total;
// pageData.tableConfiger.loading = false; // pageData.tableConfiger.loading = false;
// }).catch(()=>{ pageData.tableConfiger.loading = false; }) // }).catch(()=>{ pageData.tableConfiger.loading = false; })
} };
// //
const addEdit = (type, row) => { const addEdit = (type, row) => {
detailDiloag.value.init(type, row); detailDiloag.value.init(type, row);
}; };
// //
const tabHeightFn = () => { const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250; pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
window.onresize = function () { window.onresize = function () {
tabHeightFn(); tabHeightFn();
}; };
}; };
</script> </script>
<style> <style>
.el-loading-mask { .el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important; background: rgba(0, 0, 0, 0.5) !important;
} }
</style> </style>