装备统计和对接接口
This commit is contained in:
@ -304,6 +304,18 @@ export const publicRoutes = [
|
||||
title: "感知源管理",
|
||||
icon: "article"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: "/EquipmentStatistics",
|
||||
name: "EquipmentStatistics",
|
||||
component: () =>
|
||||
import(
|
||||
"@/views/backOfficeSystem/peopleManag/EquipmentStatistics/index"
|
||||
),
|
||||
meta: {
|
||||
title: "装备统计",
|
||||
icon: "article"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -0,0 +1,129 @@
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" width="60%" custom-class="container" @close="close" :title="title" align-center>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||
<template #cplx="{ row }">
|
||||
<dict-tag :options="D_BZ_HPZL" :value="row.cplx" :tag="false"></dict-tag>
|
||||
</template>
|
||||
<template #jyjtgjlb="{ row }">
|
||||
<dict-tag :options="D_JCGL_JYCL_JYJTGJLB" :value="row.jyjtgjlb" :tag="false"></dict-tag>
|
||||
</template>
|
||||
<template #jyjtytlb="{ row }">
|
||||
<dict-tag :options="D_JCGL_JYCL_JYJTYTLB" :value="row.jyjtytlb" :tag="false"></dict-tag>
|
||||
</template>
|
||||
<template #hpyslb="{ row }">
|
||||
<dict-tag :options="D_JCGL_JYCL_HPYSLB" :value="row.hpyslb" :tag="false"></dict-tag>
|
||||
</template>
|
||||
<template #sblx="{ row }">
|
||||
<dict-tag :options="D_JCGL_TCSB_SBLX" :value="row.sblx" :tag="false"></dict-tag>
|
||||
</template>
|
||||
<template #qxlx="{ row }">
|
||||
<dict-tag :options="D_JCGL_JYQX_QXLX" :value="row.qxlx" :tag="false"></dict-tag>
|
||||
</template>
|
||||
</MyTable>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, ref, watch, getCurrentInstance } from 'vue'
|
||||
import MyTable from '@/components/aboutTable/MyTable.vue'
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import { ysSxtgetPageList } from "@/api/yszx";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {
|
||||
D_JCGL_JYCL_JYJTYTLB,
|
||||
D_BZ_HPZL,
|
||||
D_JCGL_JYCL_JYJTGJLB,
|
||||
D_JCGL_JYQX_QXLX,
|
||||
D_JCGL_JYCL_HPYSLB,
|
||||
D_JCGL_TCSB_SBLX
|
||||
} = proxy.$dict(
|
||||
"D_JCGL_JYCL_JYJTYTLB",
|
||||
"D_BZ_HPZL",
|
||||
"D_JCGL_JYCL_JYJTGJLB",
|
||||
"D_JCGL_JYQX_QXLX",
|
||||
"D_JCGL_JYCL_HPYSLB",
|
||||
"D_JCGL_TCSB_SBLX"
|
||||
);
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '车辆信息'
|
||||
},
|
||||
data: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: ""
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(["update:modelValue", "choose"])
|
||||
const dataLsit = ref();
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
tableHeight: 500,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
loading: false,
|
||||
haveControls: false
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
controlsWidth: 180, //操作栏宽度
|
||||
tableColumn: []
|
||||
})
|
||||
watch(() => props.type, (newVal) => {
|
||||
switch (newVal) {
|
||||
case 'cl':
|
||||
pageData.tableColumn = [
|
||||
{ label: "车辆名称", prop: "clmc" },
|
||||
{ label: "号牌号码", prop: "cph", showOverflowTooltip: true },
|
||||
{ label: "号牌类型", prop: "cplx", showSolt: true },
|
||||
];
|
||||
break
|
||||
case 'zb':
|
||||
pageData.tableColumn = [
|
||||
{ label: "设备编号", prop: "sbbh" },
|
||||
{ label: "设备名称", prop: "sbmc" },
|
||||
{ label: "设备类型", prop: "sblx", showSolt: true },
|
||||
{ label: "关联GPSID", prop: "glgpsid" }
|
||||
]
|
||||
break
|
||||
case 'qx':
|
||||
pageData.tableColumn = [
|
||||
{ label: "器械名称", prop: "qxmc" },
|
||||
{ label: "器械类型", prop: "qxlx", showSolt: true },
|
||||
{ label: "数量", prop: "qxsl" },
|
||||
]
|
||||
break
|
||||
}
|
||||
})
|
||||
watch(() => props.data, (val) => {
|
||||
if (val) {
|
||||
pageData.tableData = val;
|
||||
}
|
||||
},
|
||||
{
|
||||
deep:true,immediate:true
|
||||
})
|
||||
const close = () => {
|
||||
emit("update:modelValue", false);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.container {
|
||||
color: #000000;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,144 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle title="装备统计">
|
||||
</PageTitle>
|
||||
</div>
|
||||
<div ref="searchBox">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="tabBox">
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData">
|
||||
<template #clNum="{ row }">
|
||||
<span @click="openDialogshow(row.clList,'cl')">{{ row.clNum }}</span>
|
||||
</template>
|
||||
<template #zdNum="{ row }">
|
||||
<span @click="openDialogshow(row.zdList,'zb')">{{ row.zdNum }}</span>
|
||||
</template>
|
||||
<template #qxNum="{ row }">
|
||||
<span @click="openDialogshow(row.qxlist,'qx')">{{ row.qxNum }}</span>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
<TableList v-model="clDialogShow" :data="dialogData" :type="dialogType" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import TableList from "./components/TableList.vue";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_RYMFJLB} = proxy.$dict( "D_BZ_RYMFJLB");
|
||||
const clDialogShow=ref(false)
|
||||
const dialogData=ref(null)
|
||||
const dialogType=ref();//打开弹窗的类型
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
showType: "department",
|
||||
prop: "ssbmdm",
|
||||
placeholder: "请选择所属部门",
|
||||
label: "所属部门"
|
||||
},
|
||||
{
|
||||
label: "检查站名称",
|
||||
prop: "jczmc",
|
||||
placeholder: "请输入检查站名称",
|
||||
showType: "input"
|
||||
},
|
||||
]);
|
||||
const detailDiloag = ref();
|
||||
const queryFrom = ref({});
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
loading: false,
|
||||
haveControls:false
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "所属部门", prop: "ssbm" },
|
||||
{ label: "检查站名称", prop: "jczmc" },
|
||||
{ label: "车辆", prop: "clNum", showSolt: true },
|
||||
{ label: "智能装备", prop: "zdNum", showSolt: true },
|
||||
{ label: "器械", prop: "qxNum", showSolt: true }
|
||||
]
|
||||
});
|
||||
onMounted(() => {
|
||||
tabHeightFn();
|
||||
});
|
||||
|
||||
//选择类型
|
||||
|
||||
// 搜索
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = { ...val };
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getjczgetXfllList();
|
||||
};
|
||||
|
||||
const changeNo = (val) => {
|
||||
pageData.pageConfiger.pageNum = val;
|
||||
getjczgetXfllList();
|
||||
};
|
||||
const changeSize = (val) => {
|
||||
pageData.pageConfiger.pageSize = val;
|
||||
getjczgetXfllList();
|
||||
};
|
||||
|
||||
// 获取列表
|
||||
const getjczgetXfllList = () => {
|
||||
pageData.tableConfiger.loading = true;
|
||||
let params = { ...queryFrom.value, pageSize: 10, pageCurrent: 1 }
|
||||
qcckGet(params, "/mosty-jcz/jcztj/jczzbtj").then((res) => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total;
|
||||
}).finally(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
getjczgetXfllList();
|
||||
// 新增
|
||||
const addEdit = (type, row) => {
|
||||
detailDiloag.value.init(type, row);
|
||||
};
|
||||
const searchBox = ref();
|
||||
const openDialogshow=(arr,type)=>{
|
||||
dialogData.value=arr;
|
||||
dialogType.value=type;
|
||||
clDialogShow.value=true;
|
||||
}
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight =
|
||||
window.innerHeight - searchBox.value.offsetHeight - 280;
|
||||
window.onresize = function () {
|
||||
tabHeightFn();
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.el-loading-mask {
|
||||
background: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
</style>
|
||||
@ -1,19 +1,33 @@
|
||||
<template>
|
||||
<div class="mian_box">
|
||||
<div class="item">检查站:<span @click="openDialog('jcz')">2</span></div>
|
||||
<div class="item">卡口:<span @click="openDialog('kk')">8</span></div>
|
||||
<div class="item" v-for="item in dataList" :key="item">{{ item.zdmc }}:<span
|
||||
@click="openDialog(item.dm)">{{ item.num }}</span></div>
|
||||
</div>
|
||||
<pointList v-model="pointListShow" :lxType="lxType" />
|
||||
</template>
|
||||
<script setup>
|
||||
import pointList from "./pointList.vue";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import { ref, onMounted, reactive } from "vue";
|
||||
const lxType = ref();
|
||||
const pointListShow = ref(false);
|
||||
const dataList = ref([])
|
||||
const openDialog = (val) => {
|
||||
lxType.value = val;
|
||||
if (val == '1') {
|
||||
lxType.value = 'jcz';
|
||||
} else {
|
||||
lxType.value = 'kk';
|
||||
}
|
||||
pointListShow.value = true;
|
||||
};
|
||||
onMounted(() => {
|
||||
getTotal()
|
||||
})
|
||||
const getTotal = () => {
|
||||
qcckGet({}, "/mosty-jcz/jcztj/jczZqlxtj").then(res => {
|
||||
dataList.value = res;
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.mian_box {
|
||||
|
||||
@ -1,27 +1,13 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-model="modelValue"
|
||||
width="60%"
|
||||
custom-class="container"
|
||||
@close="close"
|
||||
:title="title"
|
||||
align-center
|
||||
append-to-body
|
||||
>
|
||||
<MyTable
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData"
|
||||
>
|
||||
<template #sblx="{ row }">
|
||||
<dict-tag :options="D_BZ_SBLX" :value="row.sblx" :tag="false" />
|
||||
<el-dialog v-model="modelValue" width="60%" custom-class="container" @close="close" :title="title" align-center
|
||||
append-to-body>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||
<template #zqlx="{ row }">
|
||||
<dict-tag :options="D_BZ_ZQLX" :value="row.zqlx" :tag="false" />
|
||||
</template>
|
||||
<template #sblxdm="{ row }">
|
||||
<dict-tag :options="D_BZ_GZSBLX" :value="row.sblxdm" :tag="false" />
|
||||
<template #jczlx="{ row }">
|
||||
<dict-tag :options="D_BZ_JCZLX" :value="row.jczlx" :tag="false" />
|
||||
</template>
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
@ -29,25 +15,22 @@
|
||||
</template>
|
||||
</MyTable>
|
||||
<div class="footInfoBtn flex just-between align-center">
|
||||
<Pages
|
||||
@changeNo="changeNo"
|
||||
@changeSize="changeSize"
|
||||
:tableHeight="550"
|
||||
:pageConfiger="{ ...pageData.pageConfiger, total: pageData.total }"
|
||||
/>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="550"
|
||||
:pageConfiger="{ ...pageData.pageConfiger, total: pageData.total }" />
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, ref, watch, getCurrentInstance } from "vue";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import { ysSxtgetPageList } from "@/api/yszx";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_SBLX, D_BZ_GZSBLX } = proxy.$dict("D_BZ_SBLX", "D_BZ_GZSBLX");
|
||||
const { D_BZ_ZQLX, D_BZ_JCZLX } = proxy.$dict("D_BZ_ZQLX", "D_BZ_JCZLX");
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
@ -61,13 +44,14 @@ const props = defineProps({
|
||||
const emit = defineEmits(["update:modelValue", "choose"]);
|
||||
const dataLsit = ref();
|
||||
const title = ref();
|
||||
const zqlx = ref()
|
||||
const pageData = reactive({
|
||||
tableData: [{ ssbm: "测试" }], //表格数据
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
tableHeight: 500,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "radio",
|
||||
showSelectType: "null",
|
||||
loading: false
|
||||
},
|
||||
total: 0,
|
||||
@ -78,7 +62,7 @@ const pageData = reactive({
|
||||
controlsWidth: 180, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
|
||||
{ label: "检查站名称", prop: "sbmc", showOverflowTooltip: true },
|
||||
{ label: "检查站名称", prop: "jczmc", showOverflowTooltip: true },
|
||||
{ label: "环林检查站类型", prop: "sbbh", showOverflowTooltip: true },
|
||||
{ label: "执勤类型", prop: "csmc", showOverflowTooltip: true },
|
||||
{ label: "检查站地址", prop: "dzmc", showOverflowTooltip: true }
|
||||
@ -89,23 +73,26 @@ watch(
|
||||
(val) => {
|
||||
if (val == "jcz") {
|
||||
title.value = "检查站";
|
||||
zqlx.value = '1'
|
||||
pageData.tableColumn = [
|
||||
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
|
||||
{ label: "检查站名称", prop: "sbmc", showOverflowTooltip: true },
|
||||
{ label: "环林检查站类型", prop: "sbbh", showOverflowTooltip: true },
|
||||
{ label: "执勤类型", prop: "csmc", showOverflowTooltip: true },
|
||||
{ label: "检查站地址", prop: "dzmc", showOverflowTooltip: true }
|
||||
{ label: "检查站名称", prop: "jczmc", showOverflowTooltip: true },
|
||||
{ label: "环林检查站类型", prop: "jczlx", showSolt: true },
|
||||
{ label: "执勤类型", prop: "zqlx", showSolt: true },
|
||||
{ label: "检查站地址", prop: "xxdz", showOverflowTooltip: true }
|
||||
];
|
||||
} else {
|
||||
title.value = "卡口信息";
|
||||
zqlx.value = '2'
|
||||
pageData.tableColumn = [
|
||||
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
|
||||
{ label: "卡口名称", prop: "sbmc", showOverflowTooltip: true },
|
||||
{ label: "环林卡口类型", prop: "sbbh", showOverflowTooltip: true },
|
||||
{ label: "执勤类型", prop: "csmc", showOverflowTooltip: true },
|
||||
{ label: "卡口地址", prop: "dzmc", showOverflowTooltip: true }
|
||||
{ label: "卡口名称", prop: "jczmc", showOverflowTooltip: true },
|
||||
{ label: "环林卡口类型", prop: "jczlx", showSolt: true },
|
||||
{ label: "执勤类型", prop: "zqlx", showSolt: true },
|
||||
{ label: "卡口地址", prop: "xxdz", showOverflowTooltip: true }
|
||||
];
|
||||
}
|
||||
getList();
|
||||
}
|
||||
);
|
||||
const getList = () => {
|
||||
@ -113,9 +100,10 @@ const getList = () => {
|
||||
const promes = {
|
||||
// ssbm: propsGzyList.ssbm,
|
||||
pageSize: pageData.pageConfiger.pageSize,
|
||||
pageCurrent: pageData.pageConfiger.pageCurrent
|
||||
pageCurrent: pageData.pageConfiger.pageCurrent,
|
||||
zqlx: zqlx.value
|
||||
};
|
||||
ysSxtgetPageList(promes)
|
||||
qcckGet(promes, "/mosty-jcz/jcztj/selectJczPage")
|
||||
.then((res) => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total || 0;
|
||||
@ -124,12 +112,6 @@ const getList = () => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
watch(
|
||||
() => props.modelValue,
|
||||
(newVal) => {
|
||||
// getList();
|
||||
}
|
||||
);
|
||||
const changeNo = (val) => {
|
||||
pageData.pageConfiger.pageCurrent = val;
|
||||
getList();
|
||||
@ -138,20 +120,9 @@ const changeSize = (val) => {
|
||||
pageData.pageConfiger.pageSize = val;
|
||||
getList();
|
||||
};
|
||||
const chooseData = (val) => {
|
||||
if (pageData.tableConfiger.showSelectType === "radio") {
|
||||
dataLsit.value = val[0];
|
||||
} else {
|
||||
dataLsit.value = val;
|
||||
}
|
||||
};
|
||||
const close = () => {
|
||||
emit("update:modelValue", false);
|
||||
};
|
||||
const submitDate = () => {
|
||||
emit("choose", dataLsit.value);
|
||||
close();
|
||||
};
|
||||
const enterLevel = (val) => {
|
||||
const hrefs = router.resolve({
|
||||
name: "StationLevel",
|
||||
|
||||
Reference in New Issue
Block a user