This commit is contained in:
给我
2025-12-26 17:51:25 +08:00
parent b9b765d20f
commit bd47ebd435
421 changed files with 125980 additions and 4 deletions

View File

@ -327,6 +327,18 @@ export const publicRoutes = [
icon: "article"
},
children: [
{
path: "/CheckStatisticsManage",
name: "CheckStatisticsManage",
component: () =>
import(
"@/views/backOfficeSystem/peopleManag/CheckStatisticsManage/index"
),
meta: {
title: "盘查统计",
icon: "article"
}
},
{
path: "/InventoryManage",
name: "InventoryManage",
@ -350,8 +362,19 @@ export const publicRoutes = [
title: "车辆盘查",
icon: "article"
}
}
,
},
{
path: "/wpCheckManage",
name: "wpCheckManage",
component: () =>
import(
"@/views/backOfficeSystem/peopleManag/wpCheckManage/index"
),
meta: {
title: "物品盘查",
icon: "article"
}
},
{
path: "/TrackPerson",
name: "TrackPerson",

View File

@ -0,0 +1,377 @@
<template>
<div class="dialog" v-if="dialogForm">
<div class="head_box">
<span class="title">{{ pageInfo[pageType].title }}</span>
<div>
<el-button
size="small"
type="primary"
v-if="['add', 'edit'].includes(pageType)"
@click="_onSave"
>保存</el-button
>
<el-button size="small" @click="close">关闭</el-button>
</div>
</div>
<div class="cntinfo">
<el-form
ref="elform"
:model="listQuery"
:inline="true"
label-position="top"
>
<el-form-item label="图片" style="width: 10%">
<img
class="imgBox"
:src="
'http://10.64.201.128:2366/xlpcAdminNew/requestservice/czrk/ryxp.jpg?sfzh=' +
listQuery.sfzh
"
/>
</el-form-item>
<el-form-item label="所属部门">
<MOSTY.Department
:placeholder="listQuery.ssbm"
style="width: 100%"
ref="cascader"
clearable
filterable
:options="depList"
:props="props"
v-model:modelValue="listQuery.gldwdm"
/>
</el-form-item>
<el-form-item label="盘查民警姓名">
<el-input
v-model="listQuery.pcmjXm"
placeholder="盘查民警姓名"
clearable
disabled
style="width: 100%"
/>
</el-form-item>
<el-form-item label="盘查民警警号" style="width: 40%">
<el-input
v-model="listQuery.pcmjJh"
placeholder="盘查民警警号"
clearable
disabled
style="width: 100%"
/>
</el-form-item>
<el-form-item label="被盘查人身份证号" style="width: 40%">
<el-input
v-model="listQuery.sfzh"
placeholder="请输入被盘查人身份证号"
clearable
disabled
style="width: 100%"
/>
</el-form-item>
<el-form-item label="被盘查人性别" style="width: 40%">
<el-input
v-model="listQuery.sexmc"
placeholder="请输入被盘查人性别"
disabled
clearable
style="width: 100%"
/>
</el-form-item>
<el-form-item label="被盘查人出生日期" style="width: 40%">
<el-input
v-model="listQuery.csrq"
disabled
placeholder="被盘查人出生日期"
/>
</el-form-item>
<el-form-item label="被盘查人民族" style="width: 40%">
<el-input
v-model="listQuery.mzmc"
disabled
placeholder="被盘查人民族"
/>
</el-form-item>
<el-form-item label="被盘查人学历" style="width: 40%">
<el-input
v-model="listQuery.whcdmc"
disabled
placeholder="被盘查人学历"
/>
</el-form-item>
<el-form-item label="被盘查人籍贯" style="width: 40%">
<el-input
v-model="listQuery.jgdm"
disabled
placeholder="被盘查人籍贯"
/>
</el-form-item>
<el-form-item label="被盘查人住址详址" style="width: 40%">
<el-input
v-model="listQuery.zzxz"
disabled
placeholder="被盘查人住址详址"
/>
</el-form-item>
<el-form-item label="被盘查人联系电话" style="width: 40%">
<el-input
v-model="listQuery.lxdh"
disabled
placeholder="被盘查人联系电话"
/>
</el-form-item>
<el-form-item label="盘查日期" style="width: 40%">
<el-input v-model="listQuery.pcrq" disabled placeholder="盘查日期" />
</el-form-item>
<el-form-item label="盘查时间" style="width: 40%">
<el-input v-model="listQuery.pcsj" disabled placeholder="盘查时间" />
</el-form-item>
<el-form-item label="盘查输入类型" style="width: 40%">
<el-input
v-model="listQuery.pcsrlxmc"
disabled
placeholder="盘查输入类型"
/>
</el-form-item>
<el-form-item label="人员标签" style="width: 40%">
<el-input
v-model="listQuery.bqxxsj"
disabled
placeholder="人员标签"
/>
</el-form-item>
<el-form-item label="盘查处理结果" style="width: 40%">
<el-input
v-model="listQuery.pcclJgmc"
disabled
placeholder="盘查处理结果"
/>
</el-form-item>
<el-form-item label="移交单位" style="width: 40%">
<el-input
v-model="listQuery.pcclYjdw"
disabled
placeholder="移交单位"
/>
</el-form-item>
<el-form-item label="移交原因" style="width: 100%">
<el-input
placeholder="移交原因"
v-model="listQuery.pcclYjyy"
disabled
show-word-limit
type="textarea"
/>
</el-form-item>
</el-form>
<div class="head_box">
<span class="title">盘查图片</span>
</div>
<el-form :model="listQuery" :inline="true" label-position="top">
<div v-if="listQuery.tpList && listQuery.tpList.length > 0">
<el-image
class="image"
v-for="(item, index) in listQuery.tpList"
:key="index"
:src="`/mosty-api/mosty-base/minio/image/download/${item.fjid}`"
/>
</div>
</el-form>
<div class="head_box">
<span class="title">盘查物品</span>
</div>
<div v-if="listQuery.wpVoList && listQuery.wpVoList.length > 0">
<el-form
ref="elform"
:model="listQuery"
:rules="rules"
:inline="true"
label-position="top"
>
<el-form-item label="物品图片" prop="name">
<div style="height: 120px; display: inline-block">
<el-image
v-for="(item, index) in listQuery.wpVoList[0]?.wpTpIdList"
:key="index"
:src="`/mosty-api/mosty-base/minio/image/download/${item}`"
class="image"
/>
</div>
</el-form-item>
<el-form-item label="物品描述" prop="name">
<el-input v-model="listQuery.wpVoList[0].wpms"></el-input>
</el-form-item>
<el-form-item label="物品数量" prop="name">
<el-input v-model="listQuery.wpVoList[0].wpsl"></el-input>
</el-form-item>
<el-form-item label="物品类型" prop="name">
<el-input v-model="listQuery.wpVoList[0].wplx"></el-input>
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
<script setup>
import { ref, reactive, onMounted } from "vue";
import * as MOSTY from "@/components/MyComponents/index";
import { TcsbsaveTcsbsave, Tcsbupdate } from "@/api/mosty-jcz.js";
import { Right, Back } from "@element-plus/icons-vue";
import { baseselectPage } from "@/api/mosty-base";
import { ElMessage } from "element-plus";
const props = defineProps({
dict: {
type: Object,
default: () => {}
}
});
const formRef = ref(null);
const dialogForm = ref(false);
const listQuery = ref({});
const pageInfo = {
edit: {
title: "编辑",
url: ""
},
add: {
title: "新增",
url: ""
},
detail: {
title: "详情"
}
};
let pageType = ref("add");
const propsTree = ref({
checkStrictly: true,
emitPath: false,
multiple: false
});
// 初始化数据
const DX = ref();
const init = (type, row) => {
pageType.value = type;
dialogForm.value = true;
// 根据type和row初始化表单数据
tabHeightFn();
if (type == "edit" || type == "detail") {
DX.value = row.yjRyxm ? row.yjRyxm : row.yjClcph;
listQuery.value = { ...row };
} else {
listQuery.value = {};
}
};
//页面关闭
const close = () => {
dialogForm.value = false;
listQuery.value = {};
DX.value = "";
};
// 表格高度计算
const tableHeight1 = ref();
const tabHeightFn = () => {
tableHeight1.value = window.innerHeight - 450;
};
defineExpose({ init });
</script>
<style lang="scss" scoped>
.dialog {
padding: 20px;
.head_box {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.cntinfo {
height: calc(100% - 70px);
overflow: hidden;
overflow-y: auto;
}
}
.my_transfer {
height: calc(100% - 50px);
display: flex;
.btn {
width: 50px;
display: flex;
align-items: center;
justify-content: center;
margin: 0 10px;
}
.left {
margin: 12px;
flex: 1;
position: relative;
.tableBox {
position: absolute;
width: 100%;
}
.serch {
position: relative;
width: 100%;
// height: 96px;
> .el-form--inline {
display: block;
width: 100%;
padding: 0;
> .el-form-item--default {
width: 31%;
}
}
}
.tableBox {
width: 100%;
}
}
.right {
width: 380px;
margin: 12px;
}
}
.phone {
width: 95px;
height: 120px;
.el-image {
width: 95px;
max-height: 120px;
}
}
::v-deep .el-upload {
width: 90px;
height: 100px;
border: 1px dashed #e0e0e0;
margin-bottom: 14px;
.el-icon {
margin-top: 34px;
font-size: 26px;
}
.el-image {
width: 100%;
height: 100%;
}
}
.imgBox {
width: 100px;
height: 120px;
}
.image {
width: 100px;
height: 100px;
margin: 10px 0 10px 20px;
display: inline-block;
}
</style>

View File

@ -0,0 +1,117 @@
<template>
<div>
<div class="titleBox">
<PageTitle title="盘查统计">
<!-- <el-link type="primary" @click="addEdit('detail', row)">详情</el-link> -->
</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"
>
</MyTable>
</div>
</div>
</template>
<script setup>
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Search from "@/components/aboutTable/Search.vue";
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
const { proxy } = getCurrentInstance();
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const { D_BZ_YJLX, D_BZ_YJJB } = proxy.$dict("D_BZ_YJLX", "D_BZ_YJJB");
const searchConfiger = ref([
{
label: "姓名",
prop: "xm",
placeholder: "请输入姓名",
showType: "input"
},
]);
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: "clNum" },
{ label: "车辆物品数", prop: "clwpNum" },
{ label: "人员数", prop: "ryNum" },
{ label: "人员物品数", prop: "rywpNum" },
]
});
onMounted(() => {
tabHeightFn();
});
//查询条件
const queryCondition = ref({});
// 获取数据
const getjczgetXfllList = () => {
pageData.tableConfiger.loading = true;
const promes = { ...queryCondition.value, ...pageData.pageConfiger };
qcckGet(promes,"/mosty-jcz/tbJczBpcCount/getRcwTj")
.then((res) => {
pageData.tableData = [res];
})
.finally(() => {
pageData.tableConfiger.loading = false;
});
};
getjczgetXfllList();
// 搜索
const onSearch = (val) => {
const promes = {
startTime: "",
endTime: ""
};
if (val.startTime) {
promes.startTime = val.startTime[0];
promes.endTime = val.startTime[1];
} else {
promes.startTime = "";
promes.endTime = "";
}
queryCondition.value = { ...queryCondition.value, ...val, ...promes };
getjczgetXfllList();
};
const searchBox = ref(null);
// 表格高度计算
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>

View File

@ -0,0 +1,163 @@
<template>
<div>
<div class="titleBox">
<PageTitle title="物品盘查">
<!-- <el-link type="primary" @click="addEdit('detail', row)">详情</el-link> -->
</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 #yjTp="{ row }">
<div class="phone">
<el-image v-if="row.tp" :src="urlImg + row.yjTp" fit="cover" lazy />
<el-image v-else :src="Person" fit="cover" lazy />
</div>
</template>
<template #wplx="{ row }">
<dict-tag :options="D_BZ_WPLX" :value="row.wplx" :tag="false" />
</template>
<template #pcwplx="{ row }">
<dict-tag :options="D_BZ_WPPCLX" :value="row.pcwplx" :tag="false" />
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
</div>
</div>
</template>
<script setup>
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
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 { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
const { proxy } = getCurrentInstance();
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const { D_BZ_WPPCLX, D_BZ_WPLX } = proxy.$dict("D_BZ_WPPCLX", "D_BZ_WPLX");
const searchConfiger = ref([
{
label: "盘查类型",
prop: "pcwplx",
placeholder: "请输入盘查类型",
showType: "select",
defaultVal:'01',
options:D_BZ_WPPCLX
},
{
label: "日期",
prop: "startTime",
placeholder: "日期",
showType: "datetimerange"
}
]);
const detailDiloag = 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: "wplx", showSolt: true },
{ label: "物品数量", prop: "wpsl" },
{ label: "物品描述", prop: "wpms" },
{ label: "盘查类型", prop: "pcwplx", showSolt: true },
{ label: "盘查时间", prop: "xtCjsj" },
]
});
onMounted(() => {
tabHeightFn();
});
//查询条件
const queryCondition = ref({
pcwplx:'01'
});
// 获取数据
const getjczgetXfllList = () => {
pageData.tableConfiger.loading = true;
const promes = { ...queryCondition.value, ...pageData.pageConfiger };
qcckGet(promes, "/mosty-jcz/tbJczBpcCount/getClRyWplb")
.then((res) => {
pageData.tableData = res.records;
pageData.total = res.total;
})
.finally(() => {
pageData.tableConfiger.loading = false;
});
};
getjczgetXfllList();
// 搜索
const onSearch = (val) => {
const promes = {
kssj: "",
jssj: ""
};
if (val.startTime) {
promes.kssj = val.startTime[0];
promes.jssj = val.startTime[1];
} else {
promes.kssj = "";
promes.jssj = "";
}
queryCondition.value = { ...queryCondition.value, ...val, ...promes };
getjczgetXfllList();
};
const changeNo = (val) => {
pageData.pageConfiger.pageNum = val;
};
const changeSize = (val) => {
pageData.pageConfiger.pageSize = val;
};
// 新增
const addEdit = (type, row) => {
detailDiloag.value.init(type, row);
};
const searchBox = ref(null);
// 表格高度计算
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>