Compare commits

...

3 Commits

Author SHA1 Message Date
420aa58f02 修改下发任务 2026-03-13 17:18:07 +08:00
f37b9d481d Merge branch 'main' of http://61.139.16.27:26684/DY-JMXF/dy_web 2026-03-09 17:52:28 +08:00
57ee80bf3c 123 2026-03-09 17:52:25 +08:00
7 changed files with 94 additions and 147 deletions

View File

@ -1,5 +1,6 @@
<template>
<el-dialog title="任务" width="80%" :model-value="modelValue" destroy-on-close :close-on-click-modal="false" @close="close">
<el-dialog title="任务" width="80%" :model-value="modelValue" destroy-on-close :close-on-click-modal="false"
@close="close">
<el-form ref="elform" :model="listQuery" :rules="rules" :inline="true" label-position="top">
<el-form-item prop="dwmc" label="点位名称" style="width: 100%">
<el-input v-model="listQuery.dwmc" clearable style="width: 100%" />
@ -27,8 +28,8 @@
import emitter from "@/utils/eventBus.js";
import GdMap from "@/components/Map/GdMap/index.vue";
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
import { ref,reactive,defineProps,defineEmits,onMounted,onUnmounted,watch,getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
import { ref, reactive, defineProps, defineEmits, onMounted, onUnmounted, watch, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const props = defineProps({
modelValue: {
type: Boolean,
@ -41,13 +42,13 @@ const props = defineProps({
default: {}
}
});
const emits = defineEmits(["update:modelValue","submit"]);
const emits = defineEmits(["update:modelValue", "submit"]);
const dialogFormVisible = ref(false); //表单禁用
const listQuery = ref({}); //表单
const rules = reactive({
dwmc: [{ required: true, message: "请输入点位名称", trigger: "blur" }],
jd: [{ required: true, message: "请输入经度", trigger: ["blur",'change'] }],
wd: [{ required: true, message: "请输入纬度", trigger: ["blur",'change'] }],
jd: [{ required: true, message: "请输入经度", trigger: ["blur", 'change'] }],
wd: [{ required: true, message: "请输入纬度", trigger: ["blur", 'change'] }],
});
onMounted(() => {
@ -58,20 +59,22 @@ onMounted(() => {
}
});
});
watch(() => props.modelValue,(val) => {
watch(() => props.modelValue, (val) => {
setTimeout(() => {
dialogFormVisible.value = true;
showFg()
}, 1000);
}, 500);
},{
deep: true, immediate: true
});
function showFg(){
function showFg() {
setTimeout(() => {
const position = [
[Number(props.data[0].x1), Number(props.data[0].y1)],
[Number(props.data[0].x2), Number(props.data[0].y2)]
];
const obj = [{ position: position,text:props.data[0].fgmc,id:1 ,userData:props.data[0]}];
const obj = [{ position: position, text: props.data[0].fgmc, id: 1, userData: props.data[0] }];
emitter.emit("echoPlane", {
fontColor: "#12fdb8",
coords: obj,
@ -80,8 +83,8 @@ function showFg(){
color: "rgba(2,20,51,0.5)",
linecolor: "#1C97FF"
});
emitter.emit("setMapCenter",{location:[Number(props.data[0].zxX), Number(props.data[0].zxY)],zoomLevel:12})
},2000)
emitter.emit("setMapCenter", { location: [Number(props.data[0].zxX), Number(props.data[0].zxY)], zoomLevel: 12 })
}, 1000)
}
//获取经纬度
@ -94,8 +97,8 @@ function chackLat() {
// 提交
const submit = () => {
if (listQuery.value.jd && listQuery.value.wd && listQuery.value.dwmc) {
emits("submit",listQuery.value);
if (listQuery.value.jd && listQuery.value.wd && listQuery.value.dwmc) {
emits("submit", listQuery.value);
close("新增成功");
} else {
proxy.$message({ type: "error", message: "请选择经纬度或者输入点位名称" });
@ -103,7 +106,8 @@ const submit = () => {
};
// 关闭
const close = () => {
listQuery.value={}
listQuery.value = {}
dialogFormVisible.value = false;
emits("update:modelValue", false);
};
onUnmounted(() => {

View File

@ -20,8 +20,8 @@
<el-step title="步骤2" />
</el-steps>
<el-form ref="elform" :model="listQuery" :rules="rules" :inline="true" label-position="top" v-if="stepActive == 0">
<el-form-item style="width: 48%" prop="rwmc" label="任务名称">
<el-input v-model="listQuery.rwmc" placeholder="请输入任务名称" style="width: 100%" clearable />
<el-form-item style="width: 48%" prop="fgRwbt" label="任务名称">
<el-input v-model="listQuery.fgRwbt" placeholder="请输入任务名称" style="width: 100%" clearable />
</el-form-item>
<el-form-item style="width: 45%" label="方格" prop="fgData">
<div :class="listQuery.fgData.length === 0 ? 'ipt mj' : 'ipt'" @click.stop="fgVisible = true">
@ -31,6 +31,9 @@
</el-tag>
</div>
</el-form-item>
<el-form-item style="width: 48%" prop="dkjgsj" label="间隔时间">
<el-input v-model="listQuery.dkjgsj" type="number" placeholder="请输入间隔时间" style="width: 100%" clearable />
</el-form-item>
<div class="center-btn"><el-button style="margin-top: 12px" @click="next">下一步</el-button></div>
</el-form>
<div class="box_main" v-if="stepActive == 1">
@ -56,7 +59,7 @@
</div>
</div>
<FgLoad v-model="fgVisible" @choosedUsers="hanlderChoose" :Single="true" />
<AddDw v-model="showDialog" :data="listQuery.fgData"
<AddDw v-model="showDialog" v-if="showDialog" :data="listQuery.fgData"
:dic="{ D_ZDXL_FGXLRW_YJYS, D_ZDXL_FGXLRW_YJDJ, D_ZDXL_FGXLRW_RWZT }" @submit="dwSubmit" />
</template>
@ -89,8 +92,9 @@ const loading = ref(false);
const elform = ref();
const title = ref("");
const rules = reactive({
rwmc: [{ required: true, message: "请输入任务名称", trigger: "change" }],
fgRwbt: [{ required: true, message: "请输入任务名称", trigger: "change" }],
fgData: [{ required: true, message: "请选择方格", trigger: "change" }],
dkjgsj: [{ required: true, message: "请输入间隔时间", trigger: "change" }],
sblx: [{ required: true, message: "请选择任务类型", trigger: "change" }],
jd: [{ required: true, message: "请选择坐标", trigger: ["change", "blur"] }]
});
@ -179,8 +183,9 @@ const submit = () => {
console.log(listQuery.value, pageData.tableData);
const pramas = {
fgRwbt: listQuery.value.rwmc,
fgRwbt: listQuery.value.fgRwbt,
fgdwId: listQuery.value.fgData[0].id,
dkjgsj:listQuery.value.dkjgsj,
bddDtos: pageData.tableData.map(item => {
return {
bddMc: item.dwmc,

View File

@ -20,11 +20,11 @@
<div class="tabBox">
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight" :tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth" @chooseData="chooseData">
<template #rwZt="{ row }">
<template #rwLqZt="{ row }">
<!-- <el-table-column prop="wlq" label="未领取"/>
<el-table-column prop="ylq" label="已领取"/>
<el-table-column prop="ywc" label="已完成"/> -->
<dict-tag :options="D_BZ_QWRWZT" :value="row.rwZt" :tag="false" />
<dict-tag :options="D_BZ_QWRWZT" :value="row.rwLqZt" :tag="false" />
</template>
<template #controls="{ row }">
<!-- 领取后不可再编辑领取后不可再删除 -->
@ -39,7 +39,7 @@
}"></Pages>
</div>
<!-- 编辑-新增 -->
<EditAddForm ref="editInfo" @updateDate="getDataList" :dic="{D_BZ_SBLX,D_BZ_GZSBLX}"></EditAddForm>
<EditAddForm ref="editInfo" @updateDate="getDataList" :dic="{D_BZ_QWRWZT}"></EditAddForm>
</div>
</template>
@ -52,7 +52,7 @@ import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
const { proxy } = getCurrentInstance();
const { D_BZ_SBLX, D_BZ_GZSBLX,D_BZ_QWRWZT } = proxy.$dict("D_BZ_SBLX", "D_BZ_GZSBLX","D_BZ_QWRWZT");
const { D_BZ_QWRWZT } = proxy.$dict("D_BZ_QWRWZT");
const ids = ref([]); //多选
const searchBox = ref(); //搜索框
const listQuery = ref({});
@ -65,10 +65,11 @@ const searchConfiger = reactive([
label: "任务名称"
},
{
showType: "input",
prop: "sbbh",
placeholder: "请输入任务编号",
label: "任务编号"
showType: "select",
prop: "rwLqZt",
placeholder: "请选择任务领取状态",
label: "任务领取状态",
options: D_BZ_QWRWZT
}
]);
const pageData = reactive({
@ -89,7 +90,7 @@ const pageData = reactive({
{ label: "方格编号", prop: "fgMc" },
{ label: "下发日期", prop: "xtCjsj" },
{ label: "任务领取人", prop: "rwlqr" },
{ label: "任务状态", prop: "rwZt", showSolt: true },
{ label: "任务领取状态", prop: "rwLqZt", showSolt: true },
]
});
onMounted(() => {
@ -137,10 +138,10 @@ const chooseData = (val) => {
//批量删除
const deletList = (id) => {
proxy.$confirm("确定要删除", "警告", { type: "warning" }).then(() => {
// qcckDelete({}, "/mosty-yszx/tbYsSxt/" + id).then(() => {
// proxy.$message({ type: "success", message: "删除成功" });
// getDataList();
// });
qcckPost({id}, "/mosty-yjzl/tbZdxlFgxlrw/delZdyxlFgxlrw").then(() => {
proxy.$message({ type: "success", message: "删除成功" });
getDataList();
});
}).catch(() => {
proxy.$message.info("已取消");
});

View File

@ -4,31 +4,21 @@
<div class="header">
<span class="title">{{ title }}</span>
<span class="close" @click="closeDialog">
<el-icon :size="22"><CircleClose /></el-icon>
<el-icon :size="22">
<CircleClose />
</el-icon>
</span>
</div>
<div class="search">
<el-form ref="formRef" :model="listQuery">
<el-form-item label="所属部门">
<MOSTY.Department
width="200px"
clearable
v-model="listQuery.ssbmdm"
/>
<MOSTY.Department width="200px" clearable v-model="listQuery.ssbmdm" />
</el-form-item>
&nbsp;&nbsp;
<el-form-item label=" 时间段">
<el-date-picker
v-model="timeRange"
popper-class="jl-time"
type="datetimerange"
start-placeholder="开始时间"
end-placeholder="结束时间"
range-separator=""
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择开始时间"
></el-date-picker>
<el-form-item label=" 时间段">
<el-date-picker v-model="timeRange" popper-class="jl-time" type="datetimerange" start-placeholder="开始时间"
end-placeholder="结束时间" range-separator="" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择开始时间"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button class="serchBtn" @click="handleFilter"> 查询 </el-button>
@ -37,67 +27,25 @@
</el-form>
</div>
<div class="datalist">
<el-table
ref="multipleUserRef"
:data="list.tableData"
border
width="100%"
height="100%"
>
<el-table-column
label="序号"
type="index"
align="center"
width="80"
/>
<el-table-column
prop="jlxm"
show-overflow-tooltip
align="center"
label="姓名"
>
<el-table ref="multipleUserRef" :data="list.tableData" border width="100%" height="100%">
<el-table-column label="序号" type="index" align="center" width="80" />
<el-table-column prop="jlxm" show-overflow-tooltip align="center" label="姓名">
</el-table-column>
<el-table-column
prop="xbdm"
show-overflow-tooltip
align="center"
label="性别"
>
<el-table-column prop="xbdm" show-overflow-tooltip align="center" label="性别">
<template #default="{ row }">
{{ row.sfzh.charAt(16) % 2 ? "男" : "女" }}
</template>
</el-table-column>
<el-table-column
prop="sfzh"
show-overflow-tooltip
align="center"
label="身份证号码"
>
<el-table-column prop="sfzh" show-overflow-tooltip align="center" label="身份证号码">
</el-table-column>
<el-table-column
prop="ssbm"
label="所属部门"
show-overflow-tooltip
align="center"
></el-table-column>
<el-table-column
prop="lxdh"
label="联系电话"
align="center"
></el-table-column>
<el-table-column prop="ssbm" label="所属部门" show-overflow-tooltip align="center"></el-table-column>
<el-table-column prop="lxdh" 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="[10, 20, 50, 100]"
:page-size="listQuery.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
<el-pagination class="pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="listQuery.pageCurrent" :page-sizes="[10, 20, 50, 100]" :page-size="listQuery.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="total">
</el-pagination>
</div>
</div>
@ -174,7 +122,7 @@ function getList() {
pageSize: listQuery.value.pageSize,
xfbmdm: listQuery.value.ssbmdm
};
if(timeRange.value.length > 0){
if (timeRange.value.length > 0) {
pramas.startTime = timeRange.value[0]
pramas.endTime = timeRange.value[1]
}
@ -195,6 +143,7 @@ function getList() {
right: 0;
background: rgba(0, 0, 0, 0.7);
z-index: 99;
.container {
position: absolute;
top: 0;
@ -244,10 +193,12 @@ function getList() {
@import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss";
::v-deep .el-form-item{
::v-deep .el-form-item {
align-items: center;
}
::v-deep .el-input__inner{
::v-deep .el-input__inner {
margin: 0 !important;
}
</style>

View File

@ -1,35 +1,26 @@
<template>
<div class="bigBox" v-if="modelValue">
<div
class="container"
:class="title == '街面巡组-实际列表' ? 'container1' : ''"
>
<div class="container" :class="title == '街面巡组-实际列表' ? 'container1' : ''">
<div class="header">
<span class="title">{{ title }}</span>
<span class="close" @click="closeDialog">
<el-icon :size="22"><CircleClose /></el-icon>
<el-icon :size="22">
<CircleClose />
</el-icon>
</span>
</div>
<div class="search">
<el-form ref="formRef" :model="listQuery">
<el-form-item label="所属部门">
<MOSTY.Department width="200px" clearable v-model="listQuery.ssbmdm"/>
</el-form-item> &nbsp;&nbsp;
<MOSTY.Department width="200px" clearable v-model="listQuery.ssbmdm" />
</el-form-item> &nbsp;&nbsp;
<el-form-item label=" 负责人">
<el-input v-model="listQuery.fzrXm" placeholder="请输入负责人" />
</el-form-item> &nbsp;&nbsp;
</el-form-item> &nbsp;&nbsp;
<el-form-item label=" 时间段">
<el-date-picker
v-model="timeRange"
popper-class="jl-time"
type="datetimerange"
start-placeholder="开始时间"
end-placeholder="结束时间"
range-separator=""
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择开始时间"
></el-date-picker>
<el-date-picker v-model="timeRange" popper-class="jl-time" type="datetimerange" start-placeholder="开始时间"
end-placeholder="结束时间" range-separator="" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择开始时间"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button class="serchBtn" @click="handleFilter"> 查询 </el-button>
@ -39,10 +30,10 @@
</div>
<div class="datalist">
<el-table ref="multipleUserRef" :data="list.tableData" border width="100%" height="100%">
<el-table-column label="序号" type="index" align="center" width="80"/>
<el-table-column label="部门名称" show-overflow-tooltip align="center" prop="ssbm"/>
<el-table-column label="序号" type="index" align="center" width="80" />
<el-table-column label="部门名称" show-overflow-tooltip align="center" prop="ssbm" />
<el-table-column label="巡组名称" align="center" prop="jzMc">
<template #default="{ row }">
<template #default="{ row }">
<div v-if="row.jzMc">{{ row.jzMc }}</div>
<div v-else>{{ row.fzrXm }}巡组</div>
</template>
@ -61,7 +52,7 @@
</el-table-column>
<el-table-column label="巡逻车辆" align="center" prop="">
<template #default="{ row }">
<el-tag v-for="(item, index) in checkJson(row.pbcl)" :key="index" >{{ item }}</el-tag>
<el-tag v-for="(item, index) in checkJson(row.pbcl)" :key="index">{{ item }}</el-tag>
</template>
</el-table-column>
<el-table-column label="负责人" align="center" prop="fzrXm" />
@ -76,16 +67,9 @@
</el-table>
</div>
<div class="fenye">
<el-pagination
class="pagination"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="listQuery.pageCurrent"
:page-sizes="[10, 20, 50, 100]"
:page-size="listQuery.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
<el-pagination class="pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="listQuery.pageCurrent" :page-sizes="[10, 20, 50, 100]" :page-size="listQuery.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="total">
</el-pagination>
</div>
</div>
@ -100,7 +84,7 @@ import { timeValidate } from "@/utils/time.js";
import { http } from "@/api/service";
import { ref, onMounted, getCurrentInstance, reactive, onUnmounted } from "vue";
const { proxy } = getCurrentInstance();
const { D_BZ_BBFS} = proxy.$dict("D_BZ_BBFS");
const { D_BZ_BBFS } = proxy.$dict("D_BZ_BBFS");
const timeRange = ref([])
const list = reactive({
tableData: []
@ -176,7 +160,7 @@ function getList() {
fzrXm: listQuery.value.fzrXm,
ssbmdm: listQuery.value.ssbmdm,
};
if(timeRange.value.length > 0){
if (timeRange.value.length > 0) {
pramas.startTime = timeRange.value[0]
pramas.endTime = timeRange.value[1]
}
@ -249,6 +233,7 @@ function getList() {
height: 60px;
}
}
.container1 {
width: 82%;
}
@ -261,12 +246,15 @@ function getList() {
.serchBtn {
margin-left: 20px;
}
@import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss";
::v-deep .el-form-item{
::v-deep .el-form-item {
align-items: center;
}
::v-deep .el-input__inner{
::v-deep .el-input__inner {
margin: 0 !important;
}
</style>

View File

@ -60,9 +60,7 @@
<span v-show="row.bblx != '02'">{{ row.kssj + "至" + row.jssj }}</span>
</template>
</el-table-column>
<el-table-column label="实际巡逻时间" align="center" prop="bbkssj" />
<el-table-column label="巡逻车辆" align="center" prop="">
<template #default="{ row }">
<el-tag v-for="(item, index) in row.pbcl" :key="index">

View File

@ -3,8 +3,8 @@ const path = require("path");
function resolve(dir) {
return path.join(__dirname, dir);
}
// const serverHost = "http://118.122.165.45:35623";
const serverHost = "http://192.168.31.94:8006";
const serverHost = "http://118.122.165.45:35623";
// const serverHost = "http:// 192.168.31.79:8006";
module.exports = {
publicPath: "/",