923 lines
26 KiB
Vue
923 lines
26 KiB
Vue
<template>
|
||
<el-popover
|
||
popper-class="dinw"
|
||
:visible="visible"
|
||
:width="getConfiger.width"
|
||
:trigger="getConfiger.trigger"
|
||
>
|
||
<template #reference
|
||
><span class="deBtn" @click="handleClick">{{
|
||
getConfiger.selectName
|
||
}}</span></template
|
||
>
|
||
<div class="flex just-between align-center">
|
||
<span>{{ title }}</span>
|
||
<span @click="visible = false">
|
||
<el-icon>
|
||
<Close />
|
||
</el-icon>
|
||
</span>
|
||
</div>
|
||
<Search :searchArr="common.searchConfiger" @submit="onSearch" />
|
||
<div class="tableBox flex" v-if="visible">
|
||
<!-- 左边 -->
|
||
<div class="table">
|
||
<MyTable
|
||
@chooseData="chooseDataL"
|
||
:tableData="pageDataL.tableData"
|
||
:tableColumn="pageDataL.tableColumn"
|
||
:tableHeight="common.tableHeight"
|
||
:key="common.keyCount"
|
||
:tableConfiger="common.tableConfiger"
|
||
>
|
||
<!-- 是否报备 -->
|
||
<template #sfbb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_SF"
|
||
:value="row.sfbb"
|
||
:tag="false"
|
||
/>
|
||
</template>
|
||
<!-- 警种类型 -->
|
||
<template #lx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_RYJZLB"
|
||
:value="row.lx"
|
||
:tag="false"
|
||
/>
|
||
</template>
|
||
<!-- 人员类型 -->
|
||
<template #fl="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_RYMFJLB"
|
||
:value="row.fl"
|
||
:tag="false"
|
||
/>
|
||
</template>
|
||
<!-- 设备类型 -->
|
||
<template #pddtlx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_PDDTLX"
|
||
:value="row.pddtlx"
|
||
:tag="false"
|
||
/>
|
||
</template>
|
||
<!-- 班次类型 -->
|
||
<template #bcQwBbzl="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_BBZL"
|
||
:value="row.bcQwBbzl"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 跨越天数 -->
|
||
<template #bcKtsDict="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_BC_KTS"
|
||
:value="row.bcKtsDict"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 请选择大类别 -->
|
||
<template #jyjtfwlb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_JYCL_JYJTFWLB"
|
||
:value="row.jyjtfwlb"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 请选择小类别 -->
|
||
<template #jyjtgjlb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_JYCL_JYJTGJLB"
|
||
:value="row.jyjtgjlb"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 设备类型 -->
|
||
<template #sblx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_ZDSB_SBLX"
|
||
:value="row.sblx"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 终端类别 -->
|
||
<template #sblb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_ZDSB_SBLB"
|
||
:value="row.sblb"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 器械类型 -->
|
||
<template #qxlx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_JYQX_QXLX"
|
||
:value="row.qxlx"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 报备种类 -->
|
||
<template #jzQwBbzl="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_BBZL"
|
||
:value="row.jzQwBbzl"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 巡防区域类别 -->
|
||
<template #xqlb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_XQLB"
|
||
:value="row.xqlb"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 巡防区域类型 -->
|
||
<template #xqlx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_XQLX"
|
||
:value="row.xqlx"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 警务站类型: -->
|
||
<template #jwzLx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_JWZLX"
|
||
:value="row.jwzLx"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 时间段 -->
|
||
<template #sdList="{ row }">
|
||
<div v-for="(it, idxx) in row.sdList" :key="idxx">
|
||
{{ it.kssj }} - {{ it.jssj }}
|
||
</div>
|
||
</template>
|
||
<!-- 检查站 -->
|
||
<template #jczlx="{ row }">
|
||
<span v-if="row.jczlx == '1'">固定检查站</span>
|
||
<span v-if="row.jczlx == '2'">临时检查站</span>
|
||
<span v-if="row.jczlx == '3'">动态检查站</span>
|
||
</template>
|
||
</MyTable>
|
||
</div>
|
||
<!-- 切换按钮 -->
|
||
<div
|
||
class="cnt flex just-center align-center"
|
||
v-if="!getConfiger.isRadio"
|
||
>
|
||
<el-button :icon="Back" circle @click="upLeft" />
|
||
<el-button :icon="Right" circle @click="upRight" />
|
||
</div>
|
||
<!-- 右边 -->
|
||
<div class="table" v-if="!getConfiger.isRadio">
|
||
<MyTable
|
||
@chooseData="chooseDataR"
|
||
:tableData="pageDataR.tableData"
|
||
:tableColumn="pageDataR.tableColumn"
|
||
:tableHeight="common.tableHeight"
|
||
:key="common.keyCount"
|
||
:tableConfiger="common.tableConfiger"
|
||
>
|
||
<!-- 是否报备 -->
|
||
<template #sfbb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_SF"
|
||
:value="row.sfbb"
|
||
:tag="false"
|
||
/>
|
||
</template>
|
||
<!-- 警种类型 -->
|
||
<template #lx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_RYJZLB"
|
||
:value="row.lx"
|
||
:tag="false"
|
||
/>
|
||
</template>
|
||
<!-- 人员类型 -->
|
||
<template #fl="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_RYMFJLB"
|
||
:value="row.fl"
|
||
:tag="false"
|
||
/>
|
||
</template>
|
||
<!-- 设备类型 -->
|
||
<template #pddtlx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_BZ_PDDTLX"
|
||
:value="row.pddtlx"
|
||
:tag="false"
|
||
/>
|
||
</template>
|
||
<!-- 班次类型 -->
|
||
<template #bcQwBbzl="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_BBZL"
|
||
:value="row.bcQwBbzl"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 跨越天数 -->
|
||
<template #bcKtsDict="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_BC_KTS"
|
||
:value="row.bcKtsDict"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 请选择大类别 -->
|
||
<template #jyjtfwlb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_JYCL_JYJTFWLB"
|
||
:value="row.jyjtfwlb"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 请选择小类别 -->
|
||
<template #jyjtgjlb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_JYCL_JYJTGJLB"
|
||
:value="row.jyjtgjlb"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 设备类型 -->
|
||
<template #sblx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_ZDSB_SBLX"
|
||
:value="row.sblx"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 终端类别 -->
|
||
<template #sblb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_ZDSB_SBLB"
|
||
:value="row.sblb"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 器械类型 -->
|
||
<template #qxlx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_JCGL_JYQX_QXLX"
|
||
:value="row.qxlx"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 报备种类 -->
|
||
<template #jzQwBbzl="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_BBZL"
|
||
:value="row.jzQwBbzl"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 巡防区域类别 -->
|
||
<template #xqlb="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_XQLB"
|
||
:value="row.xqlb"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 巡防区域类型 -->
|
||
<template #xqlx="{ row }">
|
||
<dict-tag
|
||
:options="props.dic.D_QW_XQLX"
|
||
:value="row.xqlx"
|
||
:tag="false"
|
||
></dict-tag>
|
||
</template>
|
||
<!-- 时间段 -->
|
||
<template #sdList="{ row }">
|
||
<div v-for="(it, idxx) in row.sdList" :key="idxx">
|
||
{{ it.kssj }} - {{ it.jssj }}
|
||
</div>
|
||
</template>
|
||
<!-- 检查站 -->
|
||
<template #jczlx="{ row }">
|
||
<span v-if="row.jczlx == '01'">固定检查站</span>
|
||
<span v-if="row.jczlx == '02'">临时检查站</span>
|
||
<span v-if="row.jczlx == '03'">动态检查站</span>
|
||
</template>
|
||
</MyTable>
|
||
</div>
|
||
</div>
|
||
<div class="footInfoBtn flex just-between align-center">
|
||
<Pages
|
||
@changeNo="changeNo"
|
||
@changeSize="changeSize"
|
||
:tableHeight="common.tableHeight"
|
||
:pageConfiger="{ ...listQuery }"
|
||
/>
|
||
<el-button type="primary" @click="submitDate">确定选择</el-button>
|
||
</div>
|
||
</el-popover>
|
||
</template>
|
||
|
||
<script setup>
|
||
import { Right, Back } from "@element-plus/icons-vue";
|
||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||
import emitter from "@/utils/eventBus.js";
|
||
import Pages from "@/components/aboutTable/Pages.vue";
|
||
import Search from "@/components/aboutTable/Search.vue";
|
||
import {
|
||
reactive,
|
||
defineProps,
|
||
ref,
|
||
watch,
|
||
getCurrentInstance,
|
||
watchEffect,
|
||
onMounted,
|
||
onUnmounted,
|
||
nextTick
|
||
} from "vue";
|
||
const { proxy } = getCurrentInstance();
|
||
const props = defineProps({
|
||
configer: {
|
||
type: Object,
|
||
default: {}
|
||
},
|
||
dic: Object,
|
||
modelValue: {
|
||
type: Array,
|
||
default: []
|
||
},
|
||
rightData: {
|
||
type: Array,
|
||
default: []
|
||
},
|
||
deptment: {
|
||
type: Object,
|
||
default: {
|
||
bmdm: JSON.parse(localStorage.getItem("deptId"))[0].deptCode,
|
||
bmmc: JSON.parse(localStorage.getItem("deptId"))[0].deptName
|
||
}
|
||
}
|
||
});
|
||
const emits = defineEmits(["update:modelValue", "change"]);
|
||
|
||
const common = reactive({
|
||
tableHeight: 360,
|
||
keyCount: 0,
|
||
total: 0,
|
||
pageConfiger: {
|
||
pageSize: 20,
|
||
pageCurrent: 1
|
||
}, //分页
|
||
tableConfiger: {
|
||
loading: false,
|
||
rowHieght: 61,
|
||
showSelectType: "checkBox",
|
||
haveControls: false,
|
||
showIndex: false,
|
||
defaultSelectKeys: [] // 默认选中的key集合
|
||
},
|
||
searchConfiger: [
|
||
{
|
||
showType: "input",
|
||
prop: "key",
|
||
placeholder: "请输入关键字",
|
||
label: "关键字"
|
||
}
|
||
] //搜索
|
||
});
|
||
const pageDataL = reactive({
|
||
tableData: [],
|
||
tableColumn: [{ label: "班次名称", prop: "bcmc" }]
|
||
});
|
||
const pageDataR = reactive({
|
||
tableData: [],
|
||
tableColumn: [{ label: "班次名称", prop: "bcmc" }]
|
||
});
|
||
let getConfiger = reactive({
|
||
placement: "right", //方向 right/left/bottom/top/top-start/top-end .....
|
||
trigger: "click", //气泡框类型 = click (点击),hover(鼠标滑过),
|
||
isRadio: false, //是否单选
|
||
width: 1000, //宽度
|
||
selectName: "选择",
|
||
lx: null, //查询的类型 - 民警(mj)
|
||
rowKey: "id"
|
||
});
|
||
const visible = ref(false);
|
||
const title = ref("");
|
||
|
||
const listQuery = ref({
|
||
total: 0,
|
||
pageSize: 20,
|
||
pageCurrent: 1
|
||
});
|
||
const url = ref("");
|
||
const hasChoosedL = ref([]); //左边选择的数据
|
||
const hasChoosedR = ref([]); //右边选择的数据
|
||
|
||
const handleClick = () => {
|
||
const deptId = localStorage.getItem("deptId")
|
||
? JSON.parse(localStorage.getItem("deptId"))
|
||
: [];
|
||
(listQuery.value.ssbmdm = deptId[0].deptCode),
|
||
(visible.value = !visible.value);
|
||
if (visible.value) handleData(getConfiger.lx);
|
||
};
|
||
// 接收数据类型
|
||
const handleData = (val, type) => {
|
||
let arr = [];
|
||
switch (val) {
|
||
case "mj":
|
||
case "fj":
|
||
title.value = "选择人员";
|
||
url.value = "/mosty-jcz/tbQwXfll/getXfllList";
|
||
arr = [
|
||
{ label: "报备", prop: "sfbb", showSolt: true },
|
||
{ label: "姓名", prop: "xm" },
|
||
{ label: "警号", prop: "jh" },
|
||
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
|
||
|
||
{ label: "人员类型", prop: "fl", showSolt: true },
|
||
{ label: "警种", prop: "lx", showSolt: true }
|
||
];
|
||
pageDataL.tableColumn = arr;
|
||
pageDataR.tableColumn = arr.filter((v) => {
|
||
return v.label != "报备";
|
||
});
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "department",
|
||
prop: "ssbmdm",
|
||
label: "所属部门",
|
||
lazy: false
|
||
},
|
||
{
|
||
showType: "input",
|
||
prop: "xm",
|
||
placeholder: "请输入姓名",
|
||
label: "姓名"
|
||
},
|
||
{
|
||
showType: "input",
|
||
prop: "jh",
|
||
placeholder: "请输入警号",
|
||
label: "警号"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "pdh":
|
||
title.value = "频道号选择";
|
||
url.value = "/mosty-base/sysDeptExtendPdh/selectPage";
|
||
pageDataL.tableColumn = [
|
||
{ label: "频道名称", prop: "pdmc" },
|
||
{ label: "频道号", prop: "pdh" },
|
||
{ label: "频道电台类型", prop: "pddtlx", showSolt: true }
|
||
];
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "pdmc",
|
||
placeholder: "请输入频道名称",
|
||
label: "频道名称"
|
||
},
|
||
{
|
||
showType: "input",
|
||
prop: "pdh",
|
||
placeholder: "请输入频道号",
|
||
label: "频道号"
|
||
},
|
||
{
|
||
showType: "select",
|
||
prop: "pddtlx",
|
||
placeholder: "请输入频道电台类型",
|
||
label: "频道电台类型",
|
||
options: props.dic.D_BZ_PDDTLX
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "zbbc":
|
||
title.value = "班次选择";
|
||
url.value = "/mosty-qwzx/tbQwglQwbc/selectPage";
|
||
pageDataL.tableColumn = [
|
||
{ label: "班次名称", prop: "bcMc" },
|
||
{ label: "班次类型", prop: "bcQwBbzl", showSolt: true },
|
||
{ label: "开始时间", prop: "bcKssj" },
|
||
{ label: "结束时间", prop: "bcJssj" },
|
||
{ label: "跨越天数", prop: "bcKtsDict", showSolt: true }
|
||
];
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "bcMc",
|
||
placeholder: "请输入班次名称",
|
||
label: "班次名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "xfq":
|
||
case "bxd":
|
||
case "bxx":
|
||
title.value =
|
||
val == "xfq" ? "巡防区名称" : val == "bxd" ? "必巡点" : "必巡线";
|
||
url.value = "/mosty-qwzx/tbQwglXfqy/selectPage";
|
||
pageDataL.tableColumn = [
|
||
{ label: "名称", prop: "xqmc" },
|
||
{ label: "类别", prop: "xqlb", showSolt: true },
|
||
{ label: "类型", prop: "xqlx", showSolt: true }
|
||
];
|
||
pageDataR.tableColumn = [
|
||
{ label: "名称", prop: "xqmc" },
|
||
{ label: "类别", prop: "xqlb", showSolt: true },
|
||
{ label: "类型", prop: "xqlx", showSolt: true }
|
||
];
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "xqmc",
|
||
placeholder: "请输入名称",
|
||
label: "名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "cl":
|
||
title.value = "车辆选择";
|
||
url.value = "/mosty-jcz/tpJczXfcl/getXfclList";
|
||
arr = [
|
||
{ label: "号牌号码", prop: "cph" },
|
||
{ label: "车辆名称", prop: "clmc" },
|
||
{ label: "大类别", prop: "jyjtfwlb", showSolt: true },
|
||
{ label: "小类别", prop: "jyjtgjlb", showSolt: true }
|
||
];
|
||
pageDataL.tableColumn = arr;
|
||
pageDataR.tableColumn = arr;
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "cph",
|
||
placeholder: "请输入车辆名称",
|
||
label: "车辆名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "zdsb":
|
||
title.value = "终端选择";
|
||
url.value = "/mosty-jcgl/tbJcglZdsb/selectPage";
|
||
arr = [
|
||
{ label: "设备编号", prop: "sbbh" },
|
||
{ label: "设备名称", prop: "sbmc" },
|
||
{ label: "终端类别", prop: "sblb", showSolt: true },
|
||
{ label: "设备类型", prop: "sblx", showSolt: true }
|
||
];
|
||
pageDataL.tableColumn = arr;
|
||
pageDataR.tableColumn = arr;
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "sbmc",
|
||
placeholder: "请输入设备名称",
|
||
label: "设备名称"
|
||
},
|
||
{
|
||
showType: "select",
|
||
prop: "sblb",
|
||
placeholder: "请选择设备类型",
|
||
label: "设备类型",
|
||
options: props.dic.D_JCGL_ZDSB_SBLX
|
||
}
|
||
];
|
||
}
|
||
|
||
break;
|
||
case "jyqx":
|
||
title.value = "装备选择";
|
||
url.value = "/mosty-jcz/tpJczJyqx/selectJyqx";
|
||
arr = [
|
||
{ label: "器械名称", prop: "qxMc" },
|
||
{ label: "器械编号", prop: "qxbh" },
|
||
{ label: "器械类型", prop: "qxlx", showSolt: true },
|
||
{ label: "数量", prop: "sl" }
|
||
];
|
||
pageDataL.tableColumn = arr;
|
||
pageDataR.tableColumn = arr;
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "qxMc",
|
||
placeholder: "请输入器械名称",
|
||
label: "器械名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "jz":
|
||
title.value = "警组";
|
||
url.value = "/mosty-qwzx/tbQwglJz/selectPage";
|
||
pageDataL.tableColumn = [
|
||
{ label: "警组名称", prop: "jzMc" },
|
||
{ label: "报备类型", prop: "jzQwBbzl", showSolt: true }
|
||
];
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "jzMc",
|
||
placeholder: "警组名称",
|
||
label: "警组名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "kfd":
|
||
title.value = "快反点";
|
||
url.value = "/mosty-jcgl/tpJcglKfd/selectKfdList";
|
||
pageDataL.tableColumn = [
|
||
{ label: "快反点名称", prop: "kfdMc" },
|
||
{ label: "快反点地址", prop: "kfdDz" }
|
||
];
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "kfdMc",
|
||
placeholder: "请输入名称",
|
||
label: "快反点名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "jcz":
|
||
title.value = "检查站";
|
||
url.value = "/mosty-jcz/jcz/selectJczList";
|
||
pageDataL.tableColumn = [
|
||
{ label: "检查站名称", prop: "jczmc" },
|
||
{ label: "检查站类型", prop: "jczlx", showSolt: true }
|
||
];
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "jczmc",
|
||
placeholder: "检查站名称",
|
||
label: "检查站名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "znzb":
|
||
title.value = "智能装备";
|
||
url.value = "/mosty-jcz/tbJczTcsb/selectPage";
|
||
let crr = [
|
||
{ label: "设备名称", prop: "sbmc" },
|
||
{ label: "设备编号", prop: "sbbh" },
|
||
{ label: "所属部门", prop: "gldwmc" }
|
||
];
|
||
pageDataL.tableColumn = crr;
|
||
pageDataR.tableColumn = crr;
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "sbmc",
|
||
placeholder: "请输入设备名称",
|
||
label: "设备名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "hxg":
|
||
title.value = "选择护学岗";
|
||
url.value = "/mosty-jcgl/tbNbhyXxjbxx/selectPage";
|
||
let zrr = [
|
||
{ label: "学校名称", prop: "xxMc" },
|
||
{ label: "学校地址", prop: "xxDz" },
|
||
{ label: "时间段", prop: "sdList", showSolt: true }
|
||
];
|
||
pageDataL.tableColumn = zrr;
|
||
pageDataR.tableColumn = zrr;
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "xxMc",
|
||
placeholder: "请输入学校名称",
|
||
label: "学校名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
case "jwz":
|
||
title.value = "选择警务站";
|
||
url.value = "/mosty-jcgl/tbJcglJwz/selectJwzList";
|
||
pageDataL.tableColumn = [
|
||
{ label: "警务站名称", prop: "jwzMc" },
|
||
{ label: "负责人姓名", prop: "fzrXm" },
|
||
{ label: "警务站类型", prop: "jwzLx", showSolt: true }
|
||
];
|
||
if (!type) {
|
||
common.searchConfiger = [
|
||
{
|
||
showType: "input",
|
||
prop: "jwzMc",
|
||
placeholder: "请输入警务站名称",
|
||
label: "警务站名称"
|
||
}
|
||
];
|
||
}
|
||
break;
|
||
}
|
||
if (val && visible.value) getData();
|
||
};
|
||
|
||
// 搜索
|
||
const onSearch = (val) => {
|
||
common.pageConfiger.pageCurrent = 1;
|
||
listQuery.value = { ...listQuery.value, ...val };
|
||
handleData(getConfiger.lx, "look");
|
||
};
|
||
// 获取数据
|
||
const getData = () => {
|
||
if (getConfiger.lx == "jyqx")
|
||
listQuery.value.pageNo = listQuery.value.pageCurrent;
|
||
if (getConfiger.lx == "mj") listQuery.value.jllx = "01";
|
||
if (getConfiger.lx == "fj") listQuery.value.jllx = "02";
|
||
if (getConfiger.lx == "zbbc") listQuery.value.bcQwBbzl = getConfiger.bclx;
|
||
if (getConfiger.lx == "jz") listQuery.value.jzQwBbzl = getConfiger.jzlx;
|
||
if (getConfiger.lx == "kfd") listQuery.value.dwlxs = "01";
|
||
if (getConfiger.lx == "zfjly") listQuery.value.sblx = "06";
|
||
if (getConfiger.lx == "bxd") listQuery.value.xqlx = "01";
|
||
if (getConfiger.lx == "xfq") listQuery.value.xqlx = "03";
|
||
if (getConfiger.lx == "bxx") listQuery.value.xqlx = "02";
|
||
common.tableConfiger.loading = true;
|
||
|
||
let params = { ...listQuery.value };
|
||
// params.ssbmdm = props.deptment.bmdm;
|
||
params.pageNo = params.pageCurrent;
|
||
qcckGet(params, url.value)
|
||
.then((res) => {
|
||
if (getConfiger.lx == "cl") {
|
||
pageDataL.tableData =
|
||
res.records.map((item) => {
|
||
return { id: item.cid, ...item };
|
||
}) || [];
|
||
} else {
|
||
pageDataL.tableData = res.records || [];
|
||
}
|
||
listQuery.value.total = res.total;
|
||
common.tableConfiger.loading = false;
|
||
})
|
||
.catch(() => {
|
||
common.tableConfiger.loading = false;
|
||
});
|
||
};
|
||
// 左边选择z
|
||
const chooseDataL = (val) => {
|
||
if (getConfiger.isRadio) {
|
||
hasChoosedL.value = val[0];
|
||
} else {
|
||
hasChoosedL.value = val;
|
||
}
|
||
};
|
||
// 右边选择的数据
|
||
const chooseDataR = (val) => {
|
||
console.log(val);
|
||
hasChoosedR.value = val;
|
||
};
|
||
// 添加数据
|
||
const upRight = () => {
|
||
const data = [...pageDataR.tableData, ...hasChoosedL.value];
|
||
pageDataR.tableData = data.reduce((acc, curr) => {
|
||
const x = acc.find((item) => item.id == curr.id);
|
||
if (!x) {
|
||
return acc.concat([curr]);
|
||
} else {
|
||
return acc;
|
||
}
|
||
}, []);
|
||
// pageDataR.tableData = [...map.values]
|
||
};
|
||
// 移除数据
|
||
const upLeft = () => {
|
||
pageDataR.tableData = pageDataR.tableData.filter((item) => {
|
||
return !hasChoosedR.value.includes(item);
|
||
});
|
||
};
|
||
|
||
// 提交数据
|
||
const submitDate = () => {
|
||
if (getConfiger.isRadio) {
|
||
console.log(hasChoosedL.value);
|
||
|
||
emits("update:modelValue", hasChoosedL.value); //单选
|
||
emits("change", hasChoosedL.value);
|
||
} else {
|
||
if (pageDataR.tableData.length == 0)
|
||
return proxy.$message.warning("请选择数据");
|
||
emits("update:modelValue", pageDataR.tableData); //多选
|
||
emits("change", pageDataR.tableData);
|
||
}
|
||
visible.value = false;
|
||
};
|
||
|
||
// 改变分页
|
||
const changeNo = (val) => {
|
||
listQuery.value.pageCurrent = val;
|
||
handleData(getConfiger.lx);
|
||
};
|
||
// 页数
|
||
const changeSize = (val) => {
|
||
listQuery.value.pageSize = val;
|
||
handleData(getConfiger.lx);
|
||
};
|
||
|
||
watch(
|
||
() => props.configer,
|
||
(val) => {
|
||
getConfiger = { ...getConfiger, ...val };
|
||
|
||
if (getConfiger.lx) handleData(getConfiger.lx);
|
||
if (getConfiger.isRadio) common.tableConfiger.showSelectType = "radio";
|
||
if (getConfiger.rowKey) common.tableConfiger.rowKey = getConfiger.rowKey;
|
||
},
|
||
{ immediate: true }
|
||
);
|
||
|
||
watch(
|
||
() => props.modelValue,
|
||
(val) => {
|
||
if (val && val.length > 0) {
|
||
common.tableConfiger.defaultSelectKeys = props.modelValue.map((it) => {
|
||
return it.id || it.cid;
|
||
});
|
||
pageDataR.tableData = props.modelValue;
|
||
} else {
|
||
common.tableConfiger.defaultSelectKeys = [];
|
||
pageDataR.tableData = [];
|
||
}
|
||
},
|
||
{ immediate: true, deep: true }
|
||
);
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.tableBox .cnt {
|
||
width: 100px;
|
||
}
|
||
|
||
.tableBox .table {
|
||
flex: 1 0 0;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.deBtn {
|
||
display: inline-block;
|
||
border-radius: 40px;
|
||
width: 70px;
|
||
height: 28px;
|
||
line-height: 28px;
|
||
text-align: center;
|
||
color: #fff;
|
||
background-color: #3e85c3;
|
||
border-color: #2b669a;
|
||
box-shadow: 0 1px 1px rgb(90 90 90 / 30%);
|
||
margin: 0 10px;
|
||
}
|
||
|
||
::v-deep .el-table tr {
|
||
color: #000;
|
||
}
|
||
|
||
::v-deep .el-table td.el-table__cell {
|
||
color: #505152;
|
||
}
|
||
|
||
// ::v-deep .el-popper{
|
||
// position: fixed !important;
|
||
// top: 50% !important;
|
||
// left: 50% !important;
|
||
// transform: translate(-50%, -50%) !important;
|
||
// }
|
||
.dinw {
|
||
position: absolute !important;
|
||
left: 50% !important;
|
||
transform: translate(-50%, -50%) !important;
|
||
top: 50% !important;
|
||
// width: 1000px;
|
||
margin: 0px !important;
|
||
}
|
||
</style>
|