Files
lz_web_qwgl/src/views/backOfficeSystem/qwManagement/qwgl/components/jmqw.vue
2025-06-08 22:23:25 +08:00

1039 lines
29 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>