Files
lz_web_qwgl/src/views/backOfficeSystem/qwManagement/qwgl/components/jmqw.vue

1039 lines
29 KiB
Vue
Raw Normal View History

2025-06-08 22:23:25 +08:00
<template>
<el-form
ref="editRef"
class="info"
:model="dialogForm"
:inline="true"
:rules="rules"
>
<div class="bblxItem">
<div class="btItem">巡防部门</div>
<div class="info">
<el-form-item label="巡防部门" prop="ssbmdm">
<MOSTY.Department
width="180px"
clearable
filterable
v-model="dialogForm.ssbmdm"
/>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">巡防范围</div>
<div class="info">
<el-form-item prop="xffwlx" label="">
<el-radio-group v-model="dialogForm.xffwlx" @change="changeType">
<el-radio
v-for="it in props.dic.D_ZDY_XFFWLX"
:key="it"
:label="it.dm"
>{{ it.zdmc }}</el-radio
>
</el-radio-group>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">
<span v-if="dialogForm.xffwlx == '01'">巡区设置</span>
<span v-if="dialogForm.xffwlx == '02'">快反点设置</span>
<span v-if="dialogForm.xffwlx == '03'">检查站设置</span>
<span v-if="dialogForm.xffwlx == '04'">警务站设置</span>
<span v-if="dialogForm.xffwlx == '05'">护学岗设置</span>
<span v-if="dialogForm.xffwlx == '06'">必巡线</span>
<span v-if="dialogForm.xffwlx == '07'">必巡点</span>
</div>
<div class="info">
<el-form-item v-if="dialogForm.xffwlx == '01'">
<ChooseTable
v-if="!isDetail"
:deptment="props.dep"
:configer="{ isRadio: true, lx: 'xfq' }"
@change="changeXq"
:dic="props.dic"
/>
</el-form-item>
<el-form-item v-if="dialogForm.xffwlx == '02'">
<ChooseTable
v-if="!isDetail"
:deptment="props.dep"
:configer="{ rowKey: 'kfdId', isRadio: true, lx: 'kfd' }"
@change="changeXq"
:dic="props.dic"
/>
</el-form-item>
<el-form-item v-if="dialogForm.xffwlx == '03'">
<ChooseTable
v-if="!isDetail"
:deptment="props.dep"
:configer="{ rowKey: 'id', isRadio: true, lx: 'jcz' }"
@change="changeXq"
:dic="props.dic"
/>
</el-form-item>
<el-form-item v-if="dialogForm.xffwlx == '04'">
<ChooseTable
v-if="!isDetail"
:deptment="props.dep"
:configer="{ lx: 'jwz', rowKey: 'jwzId', isRadio: true }"
@change="changejwz"
:dic="props.dic"
/>
</el-form-item>
<el-form-item
prop="xfqyMc"
v-if="['01', '02', '03'].includes(dialogForm.xffwlx)"
>
<el-input
:placeholder="
dialogForm.xffwlx == '01'
? '巡区名称'
: dialogForm.xffwlx == '02'
? '快反点'
: '检查站'
"
readonly
v-model="dialogForm.xfqyMc"
></el-input>
</el-form-item>
<el-form-item prop="xfqyMc" v-if="['04'].includes(dialogForm.xffwlx)">
<el-input
placeholder="警务站"
readonly
v-model="dialogForm.jwzMc"
></el-input>
</el-form-item>
<el-form-item
label="必巡点"
label-width="96px"
v-if="['01', '07'].includes(dialogForm.xffwlx)"
>
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{ lx: 'bxd', placement: 'bottom' }"
v-model="dialogForm.bxdList"
:dic="props.dic"
/>
<el-tag
type="primary"
v-for="itchid in dialogForm.bxdList"
:key="itchid"
>{{ itchid.xqmc }}</el-tag
>
</el-form-item>
<el-form-item
label="必巡线"
label-width="96px"
v-if="['01', '06'].includes(dialogForm.xffwlx)"
>
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{
lx: 'bxx',
rowKey: 'id',
isRadio: true,
placement: 'bottom'
}"
@change="changeDw"
v-model="dialogForm.bxxList"
:dic="props.dic"
/>
<el-tag
type="primary"
v-for="itchid in dialogForm.bxxList"
:key="itchid"
>{{ itchid.xqmc }}</el-tag
>
<template v-if="dialogForm.xffwlx == '06'">
<div v-for="it in dialogForm.bxdList" :key="it">
<span v-if="dialogForm.bxdList.length > 0">关联点位</span>
<span class="dwBox">{{ it.xqmc }}</span>
</div>
</template>
</el-form-item>
<el-form-item label-width="96px" v-if="dialogForm.xffwlx == '05'">
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{ lx: 'hxg' }"
v-model="dialogForm.hxgList"
:dic="props.dic"
/>
<el-tag
type="primary"
v-for="itchid in dialogForm.hxgList"
:key="itchid"
>{{ itchid.xxMc }}</el-tag
>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">警组设置</div>
<div class="info">
<el-form-item>
<ChooseTable
v-if="!isDetail"
:deptment="props.dep"
:configer="{
isRadio: true,
rowKey: 'id',
lx: 'jz',
jzlx: props.bblx
}"
@change="changeJz"
:dic="props.dic"
/>
</el-form-item>
<el-form-item prop="jzMc" label=" ">
<el-input
placeholder="警组名称"
readonly
v-model="dialogForm.jzMc"
></el-input>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">班次设置</div>
<div class="info">
<el-form-item>
<ChooseTable
v-if="!isDetail"
:deptment="props.dep"
:configer="{ isRadio: true, lx: 'zbbc', bclx: props.bblx }"
@change="changeBc"
:dic="props.dic"
/>
</el-form-item>
<el-form-item prop="bcMc" label=" ">
<el-input placeholder="班次名称" readonly v-model="dialogForm.bcMc" />
</el-form-item>
<el-form-item>
<span class="f16">(</span>
</el-form-item>
<el-form-item prop="bcKssj">
<el-time-picker
v-model="dialogForm.bcKssj"
format="HH:mm:ss"
value-format="HH:mm:ss"
/>
</el-form-item>
<el-form-item style="width: 20px">
<span class="f16"></span>
</el-form-item>
<el-form-item prop="bcKtsDict" style="width: 90px">
<MOSTY.Select
:dictEnum="props.dic.D_QW_BC_KTS"
placeholder="跨天数"
v-model="dialogForm.bcKtsDict"
style="width: 100%"
/>
</el-form-item>
<el-form-item prop="bcJssj">
<el-time-picker
v-model="dialogForm.bcJssj"
format="HH:mm:ss"
value-format="HH:mm:ss"
/>
</el-form-item>
<el-form-item>
<span class="f16">)</span>
</el-form-item>
<el-form-item
v-if="
dialogForm.bcKtsDict != '01' &&
dialogForm.bcKtsDict != '02' &&
dialogForm.bcKtsDict != '03'
"
>
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{ isRadio: true, lx: 'mj', placement: 'left' }"
@change="changeShr"
:dic="props.dic"
/>
</el-form-item>
<el-form-item
prop="shrXm"
v-if="
dialogForm.bcKtsDict != '01' &&
dialogForm.bcKtsDict != '02' &&
dialogForm.bcKtsDict != '03'
"
>
<el-input
placeholder="审核人"
readonly
v-model="dialogForm.shrXm"
></el-input>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">负责人</div>
<div class="info">
<el-form-item>
<ChooseTable
:deptment="props.dep"
@change="handleFzr"
v-if="!isDetail"
:configer="{ lx: 'mj', rowKey: 'id', isRadio: true }"
:dic="props.dic"
/>
</el-form-item>
<el-form-item prop="fzrXm">
<el-input
readonly
v-model="dialogForm.fzrXm"
placeholder="负责人"
clearable
/>
</el-form-item>
<el-form-item prop="fzrSfzh">
<el-input
readonly
v-model="dialogForm.fzrSfzh"
placeholder="身份证"
clearable
/>
</el-form-item>
<el-form-item prop="fzrLxdh">
<el-input
readonly
v-model="dialogForm.fzrLxdh"
placeholder="负责人电话"
clearable
/>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">智能装备</div>
<div class="info">
<el-form-item label="执法记录仪" label-width="96px" prop="tcList">
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{ lx: 'zfjly' }"
v-model="dialogForm.tcList"
:dic="props.dic"
/>
<div style="min-width: 100px;"> <el-tag
type="primary"
v-for="itchid in dialogForm.tcList"
:key="itchid"
>{{ itchid.sbmc }}</el-tag
></div>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">终端报备</div>
<div class="info">
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{ lx: 'zdsb' }"
v-model="dialogForm.zdList"
:dic="props.dic"
/>
<el-tag type="primary" v-for="it in dialogForm.zdList" :key="it.id">{{
it.sbmc
}}</el-tag>
</div>
</div>
<div class="bblxItem">
<div class="btItem">警用器械</div>
<div class="info">
<el-form-item
:label="item.zdmc"
:label-width="120"
v-for="(item, index) in dialogForm.qxList"
:key="index"
>
<el-input-number
v-model="item.qxsl"
:min="0"
:max="1000"
></el-input-number>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">巡逻方式</div>
<div class="info">
<CheckBox :data="baseInfo.xlfs" @changeData="changeDataxl" />
<div
class="gapline"
v-if="baseInfo.xlfs.hasChoose.includes('车巡')"
></div>
<!-- 车辆 -->
<div v-if="baseInfo.xlfs.hasChoose.includes('车巡')">
<ChooseTable
style="background-color: red"
class="dinw"
:deptment="props.dep"
v-if="!isDetail"
v-model="dialogForm.clList"
:configer="{ lx: 'cl', selectName: '选择车辆' }"
@change="changeCl"
:dic="props.dic"
/>
</div>
<div
v-if="baseInfo.xlfs.hasChoose.includes('车巡') && dialogForm.clList"
>
<dl class="dl-car" v-for="item in dialogForm.clList" :key="item.cid">
<dt class="flex just-between align-center">
<div>{{ item.cph }}</div>
<div @click="closeCl(item)">
<el-icon><Close /></el-icon>
</div>
</dt>
<dd class="flex dir-column pr20 pt10">
<el-form-item
v-for="it in item.tcryListStr"
:label="it.label"
:key="it.vlaue"
>
<div class="flex">
<div class="num">{{ it.list ? it.list.length : 0 }}</div>
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{
lx: it.label == '同行辅警' ? 'fj' : 'mj',
placement: 'top-start'
}"
v-model="it.list"
:key="it"
:dic="props.dic"
/>
<div class="peolist">
<el-tag
type="primary"
v-for="itchid in it.list"
:key="itchid"
>{{ itchid.xm }}</el-tag
>
</div>
</div>
</el-form-item>
</dd>
</dl>
</div>
<div
class="gapline"
v-if="baseInfo.xlfs.hasChoose.includes('步巡')"
></div>
<!-- 人员 -->
<dl class="dl-car" v-if="baseInfo.xlfs.hasChoose.includes('步巡')">
<dt class="peo">
<span>步巡人员</span>
</dt>
<dd class="info flex dir-column pt10">
<el-form-item prop="zbmjStr" label="当班民警">
<div class="flex">
<div class="num">
{{ dialogForm.zbmjStr ? dialogForm.zbmjStr.length : 0 }}
</div>
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{ lx: 'mj', placement: 'top-start' }"
v-model="dialogForm.zbmjStr"
:dic="props.dic"
/>
<div class="peolist">
<el-tag
type="primary"
v-for="item in dialogForm.zbmjStr"
:key="item"
>{{ item.xm }}</el-tag
>
</div>
</div>
</el-form-item>
<el-form-item prop="zbfjStr" label="当班辅警">
<div class="flex">
<div class="num">
{{ dialogForm.zbfjStr ? dialogForm.zbfjStr.length : 0 }}
</div>
<ChooseTable
:deptment="props.dep"
v-if="!isDetail"
:configer="{ lx: 'fj', placement: 'top-start' }"
v-model="dialogForm.zbfjStr"
:dic="props.dic"
/>
<div class="peolist">
<el-tag
type="primary"
v-for="item in dialogForm.zbfjStr"
:key="item"
>{{ item.xm }}</el-tag
>
</div>
</div>
</el-form-item>
</dd>
</dl>
</div>
</div>
<div class="bblxItem">
<div class="btItem">武装着装</div>
<div class="info">
<el-form-item label="武装类型">
<MOSTY.Radio
:options="props.dic.D_BZ_WZLX"
placeholder="类型"
v-model="dialogForm.xfwzlx"
/>
</el-form-item>
<el-form-item prop="xfzzlx" label="着装类型">
<MOSTY.Radio
:options="props.dic.D_BZ_ZZLX"
placeholder="类型"
v-model="dialogForm.xfzzlx"
/>
</el-form-item>
</div>
</div>
<div class="bblxItem">
<div class="btItem">备注</div>
<div class="info">
<el-form-item style="width: 100%">
<el-input
v-model="dialogForm.bz"
placeholder="请输入关键字"
show-word-limit
type="textarea"
/>
</el-form-item>
</div>
</div>
<div class="bblxItem" v-if="!isDetail">
<div class="btItem"></div>
<div class="info subBtn">
<el-button @click="saveForm" v-loading="loading">报备</el-button>
<el-button
@click="dialogForm.value.xffwlx = '1'"
v-if="props.text == '日历'"
>重置</el-button
>
</div>
</div>
</el-form>
</template>
<script setup>
import { servicePost, serviceGet } from "@/api/serviceApi.js";
import { ElMessage } from "element-plus";
import * as MOSTY from "@/components/MyComponents/index";
import ChooseTable from "@/components/chooseList/chooseTable.vue";
import emitter from "@/utils/eventBus.js";
import CheckBox from "@/components/checkBox/index";
import {
reactive,
ref,
getCurrentInstance,
defineProps,
watch,
defineEmits,
computed
} from "vue";
const { proxy } = getCurrentInstance();
const props = defineProps({
bblx: {
type: String,
default: "01"
},
text: String,
data: Object,
dic: Object,
isDetail: {
type: Boolean,
default: false
},
dep: Object
});
const emits = defineEmits(["updateList", "update:modelValue"]);
const editRef = ref();
const multipleTable = ref([]);
const baseInfo = reactive({
xlfs: {
list: ["车巡", "步巡"],
hasChoose: []
}
});
const loading = ref(false);
const activeName = ref("");
const dialogForm = ref({
xffwlx: "01"
});
watch(
() => props.dic.D_JCGL_JYQX_QXLX,
(val) => {
dialogForm.value.qxList = val || [];
dialogForm.value.qxList.forEach((v) => {
v.qxsl = 0;
});
},
{ immediate: true }
);
const rules = reactive({
bcKssj: [{ required: true, message: "请选择开始时间", trigger: ["change"] }],
bcJssj: [{ required: true, message: "请选择结束时间", trigger: ["change"] }],
lx: [{ required: true, message: "请选择类型", trigger: ["change"] }],
xlfs: [{ required: true, message: "请填写巡逻方式", trigger: ["change"] }],
ssbmdm: [{ required: true, message: "请选择部门", trigger: ["change"] }],
bcMc: [{ required: true, message: "请选班次", trigger: ["change"] }],
jzMc: [{ required: true, message: "请选择警组", trigger: ["change"] }],
shrXm: [
{ required: true, message: "请选择审核人", trigger: ["change", "blur"] }
],
tcList: [
{ required: true, message: "请选择执法记录仪", trigger: ["change", "blur"] }
],
xlfs: [{ required: true, message: "请选择警组", trigger: ["change"] }]
});
// 选择班次
const changeBc = (val) => {
dialogForm.value.bcMc = val ? val[0].bcMc : "";
dialogForm.value.bcId = val ? val[0].id : "";
dialogForm.value.bcKssj = val ? val[0].bcKssj : "";
dialogForm.value.bcJssj = val ? val[0].bcJssj : "";
dialogForm.value.bcKtsDict = val ? val[0].bcKtsDict : "";
};
// 选择巡区 - 检查站 - 快反点
const changeXq = (val) => {
console.log(val);
dialogForm.value.xfqyMc = val
? val[0].xqmc || val[0].kfdMc || val[0].jczmc
: "";
dialogForm.value.xfqyId = val ? val[0].id || val[0].kfdId : "";
};
// 警务站
const changejwz = (val) => {
console.log(val);
dialogForm.value.jwzMc = val[0].jwzMc;
dialogForm.value.jwzLx = val[0].jwzLx;
dialogForm.value.jwzId = val[0].jwzId;
dialogForm.value.jwzDz = val[0].jwzDz;
dialogForm.value.xfqyId = val[0].jwzId;
dialogForm.value.xfqyMc = val[0].jwzMc;
};
// 删除车辆
const closeCl = (item) => {
dialogForm.value.clList = dialogForm.value.clList.filter((el) => {
return el.cid != item.cid;
});
};
// 处理负责人
const handleFzr = (val) => {
dialogForm.value.fzrXm = val.length > 0 ? val[0].xm : "";
dialogForm.value.fzrSfzh = val.length > 0 ? val[0].sfzh : "";
dialogForm.value.fzrLxdh = val.length > 0 ? val[0].lxdh : "";
};
// 选择警组
const changeJz = (val) => {
console.log(val);
val.forEach((item) => {
dialogForm.value.jzMc = item.jzMc;
dialogForm.value.jzId = item.id;
dialogForm.value.fzrXm = item.ddMjxm;
dialogForm.value.fzrSfzh = item.ddMjsfzh;
dialogForm.value.fzrLxdh = item.ddDh;
dialogForm.value.xfzzlx = item.xfzzlx;
dialogForm.value.xfwzlx = item.xfwzlx;
dialogForm.value.bcMc = item.bcMc;
dialogForm.value.bcKtsDict = item.bcKtsDict;
dialogForm.value.bcId = item.glQwbcId;
dialogForm.value.bcKssj = item.bcKssj;
dialogForm.value.bcJssj = item.bcJssj;
dialogForm.value.clList = item.zbclStr ? JSON.parse(item.zbclStr) : [];
dialogForm.value.zdList = item.zbzdsbStr ? JSON.parse(item.zbzdsbStr) : [];
let sblist = item.tcsbStr ? JSON.parse(item.tcsbStr) : [];
dialogForm.value.tcList = sblist.filter((v) => {
return v.sblx == "06";
});
const zbzbStr = item.zbzbStr ? JSON.parse(item.zbzbStr) : [];
dialogForm.value.qxList = zbzbStr.length>0? zbzbStr: props.dic.D_JCGL_JYQX_QXLX.map((item) =>{return {
...item,qxsl:0
}} );
dialogForm.value.zbmjStr = item.zbmjStr ? JSON.parse(item.zbmjStr) : [];
dialogForm.value.zbfjStr = item.zbfjStr ? JSON.parse(item.zbfjStr) : [];
dialogForm.value.clList.forEach((item) => {
item.tcryListStr = item.tcryList;
});
let xlfs = item.xfxlfs ? item.xfxlfs.split(",") : [];
baseInfo.xlfs.hasChoose = xlfs.map((it) => {
return props.dic.D_BZ_XLFS.find((v) => v.value == it).label;
});
});
};
// 切换按钮
const changeDataxl = (val) => {
baseInfo.xlfs.hasChoose = val;
};
//车辆选择
const changeCl = (val) => {
val.forEach((item) => {
item.tcryListStr = props.dic.D_BZ_RYXFBBZW;
});
dialogForm.value.clList = dialogForm.value.clList.concat(val);
dialogForm.value.clList = Array.from(
new Set(dialogForm.value.clList.map(JSON.stringify))
).map(JSON.parse);
};
// watch(()=>dialogForm.value.clList,(val,oldel)=>{
// console.log(val,oldel);
// let arrList=[]
// for (let i = 0; i < val.length; i++) {
// console.log(val[i].tcryListStr)
// }
// },{deep:true})
// 关联点位
const changeDw = (val) => {
let newList = JSON.parse(JSON.stringify(val));
let arr = [];
newList.forEach((v) => {
v.glbxd = v.glbxd ? JSON.parse(v.glbxd) : [];
arr = arr.concat(v.glbxd);
});
dialogForm.value.bxdList = arr;
};
// 处理数据
const handleRylist = (arr, text) => {
let list = arr?.map((it) => {
return {
ryId: it.ryid,
xfllId: it.id,
ryJzlx: it.lx,
ryMfjlb: it.fl,
rySfzh: it.sfzh,
ryXm: it.xm,
ryXfbbzw: handleDic(text)
};
});
return list;
};
// 处理字典
const handleDic = (val) => {
let obj = props.dic.D_BZ_RYXFBBZW.find((v) => {
return v.label == val;
});
return obj ? obj.dm : "";
};
// 提交
const saveForm = () => {
editRef.value.validate((valid) => {
if (!valid) return;
let params = { ...dialogForm.value };
params.bbSjBbrq = props.data.year;
let arr = [];
baseInfo.xlfs.hasChoose.forEach((it) => {
let obj = props.dic.D_BZ_XLFS.find((v) => v.label == it);
if (obj) arr.push(obj.value);
});
params.xfxlfs = arr.join(",");
let zbmj = handleRylist(dialogForm.value.zbmjStr, "当班民警");
let zbfj = handleRylist(dialogForm.value.zbfjStr, "同行辅警");
params.ryList = [];
params.ryList = params.ryList.concat(zbmj, zbfj);
// console.log(dialogForm.value.ryList, dialogForm.value.clList);
// if (!dialogForm.value.ryList && dialogForm.value.clList.length == 0) {
// proxy.$message.warning("请选择巡逻方式和人员");
// return;
// }
params.clList = params.clList.map((item) => {
item.tcryList = [];
item.tcryListStr = item.tcryListStr?.map((it) => {
it.list = it.list?.map((iv) => {
let obj = {
ryCzclId: item.cid || item.clId,
ryId: iv.ryid,
ryJzlx: iv.lx,
xfllId: iv.id,
ryMfjlb: iv.fl,
rySfzh: iv.sfzh,
ryXm: iv.xm,
ryXfbbzw: it.dm
};
item.tcryList.push(obj);
return {
xm: iv.xm,
sfzh: iv.sfzh,
fl: iv.fl,
id: iv.id,
ryid: iv.ryid
};
});
return {
label: it.label,
vlaue: it.dm,
list: it.list,
ryXfbbzw: it.dm,
dm: it.dm,
cid: it.cid
};
});
let val = {
clId: item.cid || item.clId,
clmc: item.clmc,
cph: item.cph,
cplx: item.cplx,
tcryList: item.tcryList,
tcryListStr: JSON.stringify(item.tcryListStr)
};
if (props.text == "列表") val.id = item.id;
return val;
});
if (params.bxdList) {
params.bxdList = params.bxdList.map((v) => {
return {
bxdLx: v.xqlx,
bxdMc: v.xqmc,
bxdid: v.id,
dkdz: "",
jd: v.zxdJd,
wd: v.zxdWd
};
});
}
if (params.bxxList) {
params.bxxList = params.bxxList.map((v) => {
return { bxxLx: v.xqlx, bxxMc: v.xqmc, bxxid: v.id };
});
}
loading.value = true;
let url =
props.text == "日历"
? "/mosty-qwzx/tbQwglXfbb/save"
: "/mosty-qwzx/tbQwglXfbb/update";
let message = props.text == "日历" ? "新增成功" : "修改成功";
servicePost(params, url)
.then((res) => {
loading.value = false;
proxy.$message.success(message);
emits("updateList");
})
.catch(() => {
loading.value = false;
});
});
};
// 切换类型清空数据
const changeType = () => {
dialogForm.value.xfqyMc = "";
dialogForm.value.xfqyId = "";
dialogForm.value.jwzMc = "";
dialogForm.value.jwzLx = "";
dialogForm.value.jwzId = "";
dialogForm.value.jwzDz = "";
dialogForm.value.bxdList = [];
dialogForm.value.bxxList = [];
dialogForm.value.hxgList = [];
};
// 回显数据
const showData = (val) => {
dialogForm.value = JSON.parse(JSON.stringify(val));
// 巡逻方式
let xlfs = val.xfxlfs ? val.xfxlfs.split(",") : [];
let arr = xlfs.map((it) => {
return props.dic.D_BZ_XLFS.find((v) => v.value == it).label;
});
baseInfo.xlfs.hasChoose = arr;
dialogForm.value.zbmjStr = []; //值班民警 01
dialogForm.value.zbfjStr = []; //值班辅警 02
if (dialogForm.value.ryList && dialogForm.value.ryList.length > 0) {
dialogForm.value.ryList.forEach((item) => {
let obj = {
id: item.xfllId,
ryid: item.ryId,
lx: item.ryJzlx,
fl: item.ryMfjlb,
sfzh: item.rySfzh,
xm: item.ryXm
};
if (item.ryMfjlb == "01") dialogForm.value.zbmjStr.push(obj); //值班民警
if (item.ryMfjlb == "02") dialogForm.value.zbfjStr.push(obj); //值班辅警
});
}
// c车辆
if (dialogForm.value.clList && dialogForm.value.clList.length > 0) {
dialogForm.value.clList.forEach((item) => {
item.tcryListStr = JSON.parse(item.tcryListStr);
});
}
// 必巡线
if (dialogForm.value.bxxList) {
dialogForm.value.bxxList = dialogForm.value.bxxList.map((v) => {
return { xqlx: v.bxxLx, xqmc: v.bxxMc, id: v.bxxid };
});
}
// 必巡点
if (dialogForm.value.bxdList) {
dialogForm.value.bxdList = dialogForm.value.bxdList.map((v) => {
return {
xqlx: v.bxdLx,
xqmc: v.bxdMc,
id: v.bxdid,
zxdJd: v.jd,
zxdWd: v.wd
};
});
}
};
watch(
() => props.data,
(val) => {
if (val && val.info) showData(val.info);
},
{ immediate: true }
);
</script>
<style lang="scss" scoped>
.bblxItem {
width: 100%;
line-height: 40px;
min-height: 40px;
display: flex;
.btItem {
width: 180px;
padding: 7px 0;
background: #e9e9e9;
color: #000;
margin-top: 1px;
text-align: center;
}
.info {
flex: 1;
background: #f2f2f2;
margin-top: 1px;
padding: 10px;
box-sizing: border-box;
.gapline {
height: 1px;
border-top: 1px dashed #e2e2e2;
margin: 4px 0;
}
.dl-car {
min-width: 200px;
display: inline-block;
border: solid 1px #66cbff;
margin: 20px 30px 0 0;
padding: 0;
border-radius: 5px;
position: relative;
dt {
display: flex;
justify-content: space-between;
align-items: center;
color: #0380c0;
padding: 0 10px 0 40px;
box-sizing: border-box;
font-weight: 600;
box-sizing: border-box;
border-bottom: solid 1px #66cbff;
background: #e3f5ff;
height: 30px;
border-radius: 5px 5px 0 0;
}
.peo {
border-bottom: solid 1px #01d608;
background: #dbf3cf;
color: #339d00;
}
}
.dl-car::before {
position: absolute;
content: "";
top: -18px;
left: -18px;
width: 52px;
height: 49px;
background: url("~@/assets/images/peo.png");
}
}
.num {
width: 50px;
height: 30px;
line-height: 30px;
text-align: center;
border: 1px solid #d2d2d2;
background-color: #e7e7e7;
border-radius: 4px;
margin-right: 10px;
}
.subBtn {
padding-left: 100px;
box-sizing: border-box;
}
}
::v-deep .el-form-item--default {
margin-bottom: 0;
}
::v-deep .el-form-item {
margin-bottom: 10px;
}
::v-deep .el-form--inline .el-form-item {
margin-right: 20px;
margin-top: 10px;
}
::v-deep .el-input__inner {
border: 1px solid #d2d2d2;
background-color: #f9f9f9;
}
.deBtn {
padding: 0px 10px;
background: rgb(35, 176, 241);
border-radius: 18px;
color: #fff;
cursor: pointer;
}
.dwBox {
padding: 1px 4px;
box-sizing: border-box;
border-radius: 2px;
border: 1px solid #0072ff;
margin: 0 4px;
}
</style>