修改bug

This commit is contained in:
13684185576
2025-07-21 11:02:19 +08:00
parent 14ddbbdcc4
commit 47af5aec1f
9 changed files with 123 additions and 252 deletions

View File

@ -80,15 +80,15 @@ export const publicRoutes = [
icon: "personnel-manage"
}
},
{
path: "/user/publicSecurity",
name: "publicSecurity",
component: () => import("@/views/backOfficeSystem/systemConfig/publicSecurity/index"),
meta: {
title: "公安机关要素",
icon: "personnel-manage"
}
},
// {
// path: "/user/publicSecurity",
// name: "publicSecurity",
// component: () => import("@/views/backOfficeSystem/systemConfig/publicSecurity/index"),
// meta: {
// title: "公安机关要素",
// icon: "personnel-manage"
// }
// },
{
path: "/dict/detail",
name: "dictDetail",

View File

@ -15,6 +15,9 @@
<template #bxxLx="{ row }">
<DictTag :value="row.bxxLx" :tag="false" :options="D_BZ_BXDLX" />
</template>
<template #ssxq="{ row }">
<DictTag :value="row.ssxq" :tag="false" :options="D_BZ_XZQHDM" />
</template>
<template #bxds="{ row }">
<div>{{ row.bxds?.length }}</div>
</template>
@ -50,16 +53,17 @@ const showDetail = ref(false); // 控制详情弹窗显示
const searchConfiger = ref([
{
label: "必巡线名称",
prop: "bxxmc",
prop: "bxxMc",
placeholder: "必巡线名称",
showType: "input"
},
{
label: "所属辖区",
prop: "ssbmdm",
placeholder: "分县局",
showType: "department"
prop: "ssxq",
placeholder: "请选择",
showType: "select",
options:D_BZ_XZQHDM
}
]);
@ -80,7 +84,7 @@ const pageData = reactive({
controlsWidth: 200,
tableColumn: [
{ label: "必巡线名称", prop: "bxxMc" },
{ label: "所属辖区", prop: "ssbm" },
{ label: "所属辖区", prop: "ssxq", showSolt: true },
{ label: "必巡线类型", prop: "bxxLx", showSolt: true },
{ label: "必巡点数量", prop: "bxds", showSolt: true }
]

View File

@ -56,7 +56,7 @@ const searchConfiger = ref([
},
{
label: "证件号码",
prop: "sfzh",
prop: "zjhm",
placeholder: "证件号码",
showType: "input"
},

View File

@ -17,40 +17,47 @@
import { qcckGet } from "@/api/qcckApi.js";
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import { ref, reactive } from 'vue';
import { ref, reactive, watch,defineProps } from 'vue';
const props = defineProps({
dic: {
type: Object,
default: {
D_BZ_XZQHDM: []
}
}
})
const dialogForm = ref(false);
const listQuery = ref({});
const formList = reactive([
[
{ label: "日期", prop: "sbrq", type: "input" },
{ label: "所属辖区", prop: "ssxq", type: "input" },
],
[
{ label: "巡逻路线", prop: "xllx", type: "input" },
{ label: "地址", prop: "dz", type: "input" },
],
[
{ label: "上报人", prop: "sbrxm", type: "input" },
{ label: "街面状况", prop: "jmzk", type: "date" },
],
[
{ label: "状况描述", prop: "zkms", type: "input" },
],
])
const formList = ref()
// 初始化数据
const init = (row) => {
dialogForm.value = true;
pageData.tableConfiger.loading = true;
qcckGet({}, `/mosty-jbld/jbjmzk/${row.id}`).then(res => {
listQuery.value = res || [];
pageData.tableConfiger.loading = false;
pageData.tableData = [...res.mjList, ...res.baList]
}).catch(() => {
pageData.tableConfiger.loading = false;
})
};
watch(() => props.dic, (val) => {
if (val.D_BZ_XZQHDM) {
formList.value = [
[
{ label: "日期", prop: "sbrq", type: "input" },
{ label: "所属辖区", prop: "ssxq", type: "select", options: props.dic.D_BZ_XZQHDM },
],
[
{ label: "巡逻路线", prop: "xllx", type: "input" },
{ label: "地址", prop: "dz", type: "input" },
],
[
{ label: "上报人", prop: "sbrxm", type: "input" },
{ label: "街面状况", prop: "jmzk", type: "date" },
],
[
{ label: "状况描述", prop: "zkms", type: "input" },
],
]
}
})
const close = () => {
dialogForm.value = false;
};

View File

@ -13,6 +13,9 @@
<template #ddmjList="{ row }">
<span>{{ row.ddmjList.length }}</span>
</template>
<template #ssxq="{ row }">
<DictTag :value="row.ssxq" :tag="false" :options="D_BZ_XZQHDM" />
</template>
<template #controls="{ row }">
<el-link type="primary" link @click="addEdit(row)">详情</el-link>
</template>
@ -23,7 +26,7 @@
}"></Pages>
</div>
<!-- 详情 -->
<DetailForm ref="detailDiloag" />
<DetailForm ref="detailDiloag" :dic="{ D_BZ_XZQHDM }" />
</template>
<script setup>
@ -34,14 +37,16 @@ import DetailForm from "./components/detailForm.vue";
import PageTitle from "@/components/aboutTable/PageTitle.vue";
import { qcckGet } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const { D_BZ_XZQHDM } = proxy.$dict("D_BZ_XZQHDM");
const searchBox = ref(); //搜索框
const detailDiloag = ref();
const searchConfiger = ref([
{
label: "勤务名称",
prop: "qwmc",
placeholder: "请输入勤务名称",
showType: "input"
label: "日期",
prop: "sbrq",
placeholder: "请选择日期",
showType: "date"
}
]);
@ -62,7 +67,7 @@ const pageData = reactive({
},
controlsWidth: 100,
tableColumn: [
{ label: "辖区", prop: "ssxq" },
{ label: "辖区", prop: "ssxq", showSolt: true },
{ label: "日期", prop: "sbrq" },
{ label: "巡逻路线", prop: "xllx" },
{ label: "上报人", prop: "sbrxm" },
@ -95,7 +100,7 @@ const getList = (val) => {
qcckGet(data, "/mosty-jbld/jbjmzk/selelctPage")
.then((res) => {
pageData.tableData = res.records || [];
pageData.total=res.total
pageData.total = res.total
pageData.tableConfiger.loading = false;
})
.catch(() => {

View File

@ -4,7 +4,9 @@
<div class="title">公安机关要素</div>
<div class="btnBox">
<el-button type="primary" @click="addItemMenu">
<el-icon><CirclePlus /></el-icon>
<el-icon>
<CirclePlus />
</el-icon>
<span>新增</span>
</el-button>
</div>
@ -12,11 +14,7 @@
<div class="searchBox" ref="searchBox">
<el-form :model="listQuery" :inline="true">
<el-form-item label="要素名称">
<el-input
placeholder="请输入要素名称"
v-model="listQuery.gajgmc"
clearable
></el-input>
<el-input placeholder="请输入要素名称" v-model="listQuery.gajgmc" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="handleFilter"> 查询 </el-button>
@ -25,94 +23,34 @@
</el-form>
</div>
<div class="tabBox">
<el-table
v-if="refreshTable"
:data="tableData"
border
row-key="id"
style="width: 100%"
:height="tableHeight"
:key="keyCount"
>
<el-table-column
prop="gajgmc"
show-overflow-tooltip
align="center"
width="200px"
label="要素名称"
>
<el-table v-if="refreshTable" :data="tableData" border row-key="id" style="width: 100%" :height="tableHeight"
:key="keyCount">
<el-table-column prop="gajgmc" show-overflow-tooltip align="center" width="200px" label="要素名称">
</el-table-column>
<el-table-column
prop="gajgjc"
align="center"
show-overflow-tooltip
width="200px"
label="要素简称"
/>
<el-table-column
prop="wzBc"
label="位置别称"
align="center"
></el-table-column>
<el-table-column
prop="wzXz"
show-overflow-tooltip
label="位置"
align="center"
>
<el-table-column prop="gajgjc" align="center" show-overflow-tooltip width="200px" label="要素简称" />
<el-table-column prop="wzBc" label="位置别称" align="center"></el-table-column>
<el-table-column prop="wzXz" show-overflow-tooltip label="位置" align="center">
</el-table-column>
<el-table-column
prop="ysdl"
label="要素大类"
align="center"
width="140px"
>
<el-table-column prop="ysdl" label="要素大类" align="center" width="140px">
<template #default="{ row }">
<dict-tag
:options="D_ZDY_YSDL"
:value="row.ysdl"
:tag="false"
></dict-tag>
<dict-tag :options="D_ZDY_YSDL" :value="row.ysdl" :tag="false"></dict-tag>
</template>
</el-table-column>
<el-table-column
prop="yszl"
label="要素中类"
align="center"
width="140px"
>
<el-table-column prop="yszl" label="要素中类" align="center" width="140px">
<template #default="{ row }">
<dict-tag
:options="D_ZDY_YSZL"
:value="row.yszl"
:tag="false"
></dict-tag>
<dict-tag :options="D_ZDY_YSZL" :value="row.yszl" :tag="false"></dict-tag>
</template>
</el-table-column>
<el-table-column
prop="ysxl"
label="要素小类"
align="center"
width="140px"
>
<el-table-column prop="ysxl" label="要素小类" align="center" width="140px">
<template #default="{ row }">
<dict-tag
:options="D_ZDY_YSXL"
:value="row.ysxl"
:tag="false"
></dict-tag>
<dict-tag :options="D_ZDY_YSXL" :value="row.ysxl" :tag="false"></dict-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="220">
<template #default="{ row }">
<el-button @click="update(row)" size="small">编辑</el-button>
<el-popconfirm
confirm-button-text=""
cancel-button-text=""
icon-color="red"
title="确定要删除?"
@confirm="delDictItem(row)"
>
<el-popconfirm confirm-button-text="" cancel-button-text="" icon-color="red" title="确定要删除?"
@confirm="delDictItem(row)">
<template #reference>
<el-button type="danger" size="small">删除</el-button>
</template>
@ -121,16 +59,9 @@
</el-table-column>
</el-table>
<div class="fenye" :style="{ top: tableHeight + 'px' }">
<el-pagination
class="pagination"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="listQuery.page"
:page-sizes="[10, 20, 50, 100]"
:page-size="listQuery.size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
<el-pagination class="pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="listQuery.page" :page-sizes="[10, 20, 50, 100]" :page-size="listQuery.size"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
</div>
<div v-if="dialogFormVisible" class="dialog">
@ -138,77 +69,35 @@
<span class="title">{{ isEdit ? "修改" : "新增" }}</span>
<div>
<!-- 修改 -->
<el-button
v-if="isEdit"
type="primary"
size="small"
@click="onSave"
:loading="buttonLoading"
>保存</el-button
>
<el-button v-if="isEdit" type="primary" size="small" @click="onSave" :loading="buttonLoading">保存</el-button>
<!-- 新增 -->
<el-button
v-else
type="primary"
size="small"
@click="onAdd"
:loading="buttonLoading"
>保存</el-button
>
<el-button v-else type="primary" size="small" @click="onAdd" :loading="buttonLoading">保存</el-button>
<el-button size="small" @click="closeDialog">关闭</el-button>
</div>
</div>
<el-form
class="mosty-from-wrap"
:inline="true"
label-position="top"
ref="editRef"
:rules="rules"
:model="dialogForm"
>
<el-form class="mosty-from-wrap" :inline="true" label-position="top" ref="editRef" :rules="rules"
:model="dialogForm">
<el-form-item label="要素名称" prop="gajgmc" label-width="140px">
<el-input
v-model="dialogForm.gajgmc"
placeholder="请输入要素名称"
></el-input>
<el-input v-model="dialogForm.gajgmc" placeholder="请输入要素名称"></el-input>
</el-form-item>
<el-form-item label="要素简称" prop="gajgjc" label-width="140px">
<el-input
v-model="dialogForm.gajgjc"
placeholder="请输入要素简称"
></el-input>
<el-input v-model="dialogForm.gajgjc" placeholder="请输入要素简称"></el-input>
</el-form-item>
<el-form-item label="关联部门" label-width="140px">
<MOSTY.Department
placeholder="部门"
width="280px"
clearable
multiple
filterable
v-model="dialogForm.glbmDtoList"
/>
<MOSTY.Department placeholder="部门" width="280px" clearable multiple filterable
v-model="dialogForm.glbmDtoList" />
</el-form-item>
<el-form-item label="要素小类" prop="ysxl" label-width="140px">
<el-select v-model="dialogForm.ysxl" placeholder="请选择要素小类">
<el-option
v-for="dict in D_ZDY_YSXL"
:key="dict.value + 'ysxl'"
:label="dict.label"
:value="dict.value"
></el-option>
<el-option v-for="dict in D_ZDY_YSXL" :key="dict.value + 'ysxl'" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="位置别称" prop="wzBc" label-width="140px">
<el-input
v-model="dialogForm.wzBc"
placeholder="请输入位置别称"
></el-input>
<el-input v-model="dialogForm.wzBc" placeholder="请输入位置别称"></el-input>
</el-form-item>
<el-form-item label="位置" prop="wzXz" label-width="140px">
<el-input
v-model="dialogForm.wzXz"
placeholder="请输入地址详址"
></el-input>
<el-input v-model="dialogForm.wzXz" placeholder="请输入地址详址"></el-input>
</el-form-item>
<el-form-item style="width: 48%" prop="jd" label="坐标位置">
<div class="latlng">
@ -277,7 +166,7 @@ const listQuery = ref({
gajgmc: "",
yszl: "",
jsnr: "",
ysxl:'',
ysxl: '',
pageNum: 1,
pageSize: 10
});
@ -460,6 +349,8 @@ onMounted(() => {
keyCount.value = data;
});
emitter.on("coordString", (res) => {
console.log(res,'res');
if (res.type === "drawPoint") {
let arr = res.coord.split(",");
dialogForm.value.jd = arr[0];
@ -467,6 +358,8 @@ onMounted(() => {
// getAddressApi({ jd: arr[0], wd: arr[1] }, (res) => {
// dialogForm.value.wzXz = res.address;
// });
let icon = require('@/assets/point/zsdw.png');
emitter.emit("showPoint", { coords: [{ jd: res[0], wd: res[1] }], icon, flag: 'gajg' });
}
});
});
@ -479,6 +372,7 @@ onUnmounted(() => {
<style lang="scss" scoped>
@import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss";
.user-manage-container {
.table-header-wrap {
margin-bottom: 22px;
@ -498,11 +392,13 @@ onUnmounted(() => {
margin-top: 20px;
}
}
.map {
width: 100%;
height: 400px;
position: relative;
}
.latlng {
width: 100%;
display: flex;

View File

@ -2,13 +2,14 @@
<ul class="patrol-missions" v-if="showModel" infinite-scroll-distance="1" v-infinite-scroll="loadList"
v-loading="loading">
<li class="test-item" v-for="(item, index) in list" :key="`info${index}`">
<div class="person-img"><img src="@/assets/images/person.png" /></div>
<!-- <div class="person-img"><img src="@/assets/images/person.png" /></div> -->
<div class="info">
<div class="text one_text_detail f16">{{ item.qwmc }}</div>
<div class="text lh30 flex">负责人:{{ item.xm }} (<dict-tag :options="D_BAXX_GWLX" :value="item.gw" :tag="false" />)
</div>
<div class="lh30">电话:{{ item.lxdh }}</div>
<div class="one_text_detail">巡逻路线:{{ item.bxxmc }}</div>
<div class="one_text_detail">巡逻路线: {{ item.bxxmc }}</div>
<div class="one_text_detail">打卡时间: {{ item.smrq }}</div>
</div>
</li>
<p class="tc" v-if="list.length > 0 && noMore && !loading">没有数据了</p>
@ -68,12 +69,13 @@ const loadList = () => {
overflow-y: auto;
.test-item {
background: url("~@/assets/images/bi/xlrw.png") no-repeat center center;
background-size: 100% 100%;
// background: url("~@/assets/images/bi/xlrw.png") no-repeat center center;
// background-size: 100% 100%;
border: 1px solid #0075ff;
display: flex;
justify-content: space-between;
align-items: center;
padding: 14px 10px 14px 20px;
padding: 10px;
box-sizing: border-box;
margin-bottom: 4px;

View File

@ -25,7 +25,6 @@
</div>
</div>
</div>
<!-- 右边 -->
<div class="home-aside aside-right">
<div class="right-top">

View File

@ -1,12 +1,6 @@
<template>
<div class="login-container">
<el-form
class="login-form"
ref="loginFromRef"
:model="loginForm"
:rules="loginRules"
@submit.native.prevent
>
<el-form class="login-form" ref="loginFromRef" :model="loginForm" :rules="loginRules" @submit.native.prevent>
<div class="title-container">
<h3 class="title">用户登录</h3>
</div>
@ -14,41 +8,21 @@
<span class="svg-container">
<svg-icon icon="user" />
</span>
<el-input
placeholder="请输入账号"
name="userName"
type="text"
v-model="loginForm.userName"
/>
<el-input placeholder="请输入账号" name="userName" type="text" v-model="loginForm.userName" />
</el-form-item>
<el-form-item prop="password1">
<span class="svg-container">
<svg-icon icon="password" />
</span>
<el-input
placeholder="请输入密码"
name="password"
:type="passwordType"
v-model="loginForm.password"
/>
<el-input placeholder="请输入密码" name="password" :type="passwordType" v-model="loginForm.password" />
<span class="show-pwd">
<svg-icon
@click="onChangePwdType"
:icon="passwordType === 'password' ? 'eye' : 'eye-open'"
/>
<svg-icon @click="onChangePwdType" :icon="passwordType === 'password' ? 'eye' : 'eye-open'" />
</span>
</el-form-item>
<el-form-item v-if="isShowKaptCha" prop="kaptcha">
<span class="svg-container"><svg-icon icon="kaptcha" /></span>
<el-input
@keydown.enter="handleLogin()"
v-model="loginForm.kaptcha"
placeholder="请输入验证码"
name="kaptcha"
type="text"
/>
<el-input @keydown.enter="handleLogin()" v-model="loginForm.kaptcha" placeholder="请输入验证码" name="kaptcha"
type="text" />
<span @click="getKaptchaImg">
<el-image class="show-kaptcha" :src="kaptchaUrl" fit="cover">
<template #error>
@ -57,31 +31,15 @@
</el-image>
</span>
</el-form-item>
<!---登录按钮-->
<el-form-item style="height: 49px" v-if="!loginDialog">
<el-button
@click="handleLogin"
type="primary"
style="width: 520px; height: 49px"
:loading="loading"
native-type="submit"
>登录</el-button
>
<el-button @click="handleLogin" type="primary" style="width: 520px; height: 49px" :loading="loading"
native-type="submit">登录</el-button>
</el-form-item>
<el-form-item class="choosedept-wrap" v-if="loginDialog">
<el-select
v-model="deptId"
@change="refreshToken"
placeholder="请选择部门"
>
<el-option
v-for="item in deptList"
:key="item.deptId"
:label="item.deptName"
:value="item.deptId"
></el-option>
<el-select v-model="deptId" @change="refreshToken" placeholder="请选择部门">
<el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName"
:value="item.deptId"></el-option>
</el-select>
</el-form-item>
</el-form>
@ -126,7 +84,7 @@ const loginRules = ref({
kaptcha: [{ required: true, trigger: "blur", message: "验证码为必填项" }]
});
const handleClose = () => {};
const handleClose = () => { };
const refreshToken = (e) => {
store
.dispatch("user/refreshToken", { deptId: e, jwtToken: authorization.value })
@ -187,7 +145,7 @@ const handleLogin = () => {
const logout = () => {
store.dispatch("user/logout");
};
onMounted(() => {});
onMounted(() => { });
const getKaptchaImg = () => {
const res =
`${process.env.VUE_APP_GATEWAY_BASE_URL}/mosty-api/mosty-base/kaptcha?date=` +