This commit is contained in:
lcw
2025-07-21 16:25:08 +08:00
53 changed files with 439 additions and 516 deletions

136
package-lock.json generated
View File

@ -2043,6 +2043,51 @@
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true "dev": true
}, },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"ssri": { "ssri": {
"version": "8.0.1", "version": "8.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@ -2051,6 +2096,28 @@
"requires": { "requires": {
"minipass": "^3.1.1" "minipass": "^3.1.1"
} }
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
}
} }
} }
}, },
@ -14550,75 +14617,6 @@
} }
} }
}, },
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-router": { "vue-router": {
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz",

View File

@ -0,0 +1,55 @@
<template>
<div class="form-item-box zj-packageSelect-wrap" :style="{ width: width }">
<el-select v-bind="$attrs" :model-value="modelValue" @change="hanlderSelect"
:popper-class="selectOption.length > 20 ? 'nation-select' : ''" :placeholder="placeholder">
<el-option v-for="item in selectOption" :key="item.dm" :label="item.zdmc" :value="item.dm">
</el-option>
</el-select>
</div>
</template>
<script setup>
import { COMPONENT_WIDTH } from '@/constant';
import { nextTick, onBeforeMount, ref } from "vue";
import { getDictInfoByDictEnum } from "@/api/sysDict";
const emits = defineEmits(["handleChange"]); //子组件向父组件事件传递
const props = defineProps({
//获取组件传值
placeholder: {
default: "请选择",
type: String
},
modelValue: {
default: "",
type: String
},
dictEnum: {
default: "",
type: String
},
width: {
default: COMPONENT_WIDTH,
type: String
}
});
const selectOption = ref([]);
onBeforeMount(async () => {
const res = await getDictInfoByDictEnum({ dictElementEnum: props.dictEnum });
//正常下拉结构
if (res.zdlx === 1) {
selectOption.value = [...res.itemList];
} else {
//树形结构数据
}
});
const hanlderSelect = (data) => {
emits("handleChange", data);
};
</script>
<style lang="scss" scoped>
.zj-packageSelect-wrap {
::v-deep .el-select {
width: 100%;
}
}
</style>

View File

@ -11,6 +11,7 @@ import Upload from "./Upload/index.vue";
import Department from "./Department/index.vue"; import Department from "./Department/index.vue";
import DepartmentTree from "./DepartmentTree/index.vue"; import DepartmentTree from "./DepartmentTree/index.vue";
import ChooseIcon from "./ChooseIcon/index.vue"; import ChooseIcon from "./ChooseIcon/index.vue";
import PackageSelect from "./PackageSelect/index.vue";
import StationSelect from "./StationSelect/index.vue"; import StationSelect from "./StationSelect/index.vue";
import Provinces from "./Provinces2/index.vue"; import Provinces from "./Provinces2/index.vue";
import MarkdownEdit from "./MarkdownEdit/index.vue"; import MarkdownEdit from "./MarkdownEdit/index.vue";
@ -36,5 +37,6 @@ export {
MarkdownEdit, MarkdownEdit,
FileUpload, FileUpload,
RichOnly, RichOnly,
Date Date,
PackageSelect
}; };

View File

@ -89,22 +89,22 @@ $test: rgba(0, 128, 0, 0.603);
.is-error { .is-error {
.form-item-box { .form-item-box {
position: relative; position: relative;
.el-input { // .el-input {
background-color: #001238; // background-color: #001238;
.el-input__inner { // .el-input__inner {
background-color: #001238; // background-color: #001238;
} // }
.el-input__count .el-input__count-inner { // .el-input__count .el-input__count-inner {
background-color: #001238; // background-color: #001238;
} // }
} // }
.el-cascader__tags { .el-cascader__tags {
.el-tag { // .el-tag {
background: #001238; // background: #001238;
} // }
.el-cascader__search-input { // .el-cascader__search-input {
background: #001238; // background: #001238;
} // }
.el-cascader__search-input { .el-cascader__search-input {
margin: 2px 0 2px 13px !important; margin: 2px 0 2px 13px !important;
} }
@ -130,13 +130,12 @@ $test: rgba(0, 128, 0, 0.603);
position: relative; position: relative;
.el-input { .el-input {
border: #57d040; border: #57d040;
.el-input__inner { // .el-input__inner {
background-color: #001238; // background-color: #001238;
// border: 1px solid #57d040; // }
} // .el-input__count .el-input__count-inner {
.el-input__count .el-input__count-inner { // background-color: #001238;
background-color: #001238; // }
}
} }
.el-cascader__tags { .el-cascader__tags {
.el-tag { .el-tag {

View File

@ -5,45 +5,32 @@
</div> </div>
<!-- 搜索 --> <!-- 搜索 -->
<div ref="searchBox"> <div ref="searchBox">
<Search <Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
:searchArr="searchConfiger" <!-- <template #defaultSlot>
@submit="onSearch" <div>
:key="pageData.keyCount" <el-input-number v-model="queryFrom.xqy"></el-input-number>
> <span class="ml10 mr10" style="color: #000"></span>
<el-input-number v-model="queryFrom.dqy"></el-input-number>
</div>
</template> -->
</Search> </Search>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-link type="primary" @click="addEdit('basic', row)">详情</el-link> <el-link type="primary" @click="addEdit('basic', row)">详情</el-link>
<el-link type="primary" @click="addEdit('staff', row)" <el-link type="primary" @click="addEdit('staff', row)">从业人员</el-link>
>从业人员</el-link <el-link type="primary" @click="addEdit('vehicle', row)">车辆</el-link>
>
<el-link type="primary" @click="addEdit('vehicle', row)"
>车辆</el-link
>
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 详情 --> <!-- 详情 -->
<DetailForm ref="detailDiloag" :dict="{D_BZ_MZ,D_BZ_GGJTGJLX}"/> <DetailForm ref="detailDiloag" :dict="{D_BZ_MZ,D_BZ_GGJTGJLX}"/>
@ -80,9 +67,7 @@ const searchConfiger = ref([
const queryFrom = ref({}); const queryFrom = ref({});
const pageData = reactive({ const pageData = reactive({
tableData: [ tableData: [],
],
keyCount: 0, keyCount: 0,
tableConfiger: { tableConfiger: {
rowHieght: 61, rowHieght: 61,

View File

@ -34,15 +34,10 @@
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link> <el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 详情 --> <!-- 详情 -->
<DetailForm ref="detailDiloag" title="公交线路详情" :dict="{D_BZ_XZQHDM}"/> <DetailForm ref="detailDiloag" title="公交线路详情" :dict="{D_BZ_XZQHDM}"/>

View File

@ -4,7 +4,9 @@
<div class="title">用户管理</div> <div class="title">用户管理</div>
<div class="btnBox"> <div class="btnBox">
<el-button type="primary" @click="addUserHander"> <el-button type="primary" @click="addUserHander">
<el-icon><CirclePlus /></el-icon> <el-icon>
<CirclePlus />
</el-icon>
<span>新增</span> <span>新增</span>
</el-button> </el-button>
</div> </div>
@ -12,46 +14,23 @@
<div class="searchBox" ref="searchBox"> <div class="searchBox" ref="searchBox">
<el-form :model="listQuery" class="mosty-from-wrap" :inline="true"> <el-form :model="listQuery" class="mosty-from-wrap" :inline="true">
<el-form-item label="用户名"> <el-form-item label="用户名">
<el-input <el-input placeholder="请输入用户名" v-model="listQuery.loginName" clearable></el-input>
placeholder="请输入用户名"
v-model="listQuery.loginName"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="移动电话"> <el-form-item label="移动电话">
<el-input <el-input placeholder="请输入移动电话" v-model="listQuery.phone" clearable></el-input>
placeholder="请输入移动电话"
v-model="listQuery.phone"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="身份证号"> <el-form-item label="身份证号">
<el-input <el-input placeholder="请输入身份证号" v-model="listQuery.idEntityCard" clearable></el-input>
placeholder="请输入身份证号"
v-model="listQuery.idEntityCard"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="警号"> <el-form-item label="警号">
<el-input <el-input placeholder="请输入警号" v-model="listQuery.inDustRialId" clearable></el-input>
placeholder="请输入警号"
v-model="listQuery.inDustRialId"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否包含下级"> <el-form-item label="是否包含下级">
<el-select v-model="listQuery.isChild"> <el-select v-model="listQuery.isChild">
<el-option <el-option v-for="item in D_BZ_SF" :key="item" :label="item.label" :value="item.value">{{ item.label
v-for="item in D_BZ_SF" }}</el-option>
:key="item"
:label="item.label"
:value="item.value"
>{{ item.label }}</el-option
>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="handleFilter">查询</el-button> <el-button @click="handleFilter">查询</el-button>
<el-button @click="reset()"> 重置 </el-button> <el-button @click="reset()"> 重置 </el-button>
@ -60,71 +39,27 @@
</div> </div>
<div class="main-box"> <div class="main-box">
<div class="treeBox" :style="{ height: treeHeight }"> <div class="treeBox" :style="{ height: treeHeight }">
<MOSTY.DepartmentTree <MOSTY.DepartmentTree width="280px" placeholder="管理部门ID" clearable filterable :isBmId="true"
width="280px" v-model="listQuery.deptId" />
placeholder="管理部门ID"
clearable
filterable
:isBmId="true"
v-model="listQuery.deptId"
/>
</div> </div>
<div class="tabBox"> <div class="tabBox">
<el-table <el-table :data="tableData" border style="width: 100%" :height="tableHeight" :key="keyCount">
:data="tableData" <el-table-column sortable prop="userName" align="center" label="用户名"></el-table-column>
border <el-table-column sortable prop="idEntityCard" align="center" label="身份证号"></el-table-column>
style="width: 100%" <el-table-column sortable prop="deptName" label="部门"></el-table-column>
:height="tableHeight" <el-table-column sortable prop="inDustRialId" align="center" label="警号">
:key="keyCount"
>
<el-table-column
sortable
prop="userName"
align="center"
label="用户名"
></el-table-column>
<el-table-column
sortable
prop="idEntityCard"
align="center"
label="身份证号"
></el-table-column>
<el-table-column
sortable
prop="deptName"
label="部门"
></el-table-column>
<el-table-column
sortable
prop="inDustRialId"
align="center"
label="警号"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column sortable prop="mobile" align="center" label="电话号码"></el-table-column>
sortable
prop="mobile"
align="center"
label="电话号码"
></el-table-column>
<el-table-column align="center" sortable label="性别" width="80"> <el-table-column align="center" sortable label="性别" width="80">
<template #default="{ row }"> <template #default="{ row }">
<dict-tag :options="D_BZ_XB" :value="row.sex" :tag="false" /> <dict-tag :options="D_BZ_XB" :value="row.sex" :tag="false" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column align="center" label="操作" fixed="right" width="250">
align="center"
label="操作"
fixed="right"
width="250"
>
<template #default="{ row }"> <template #default="{ row }">
<el-button @click="updateDict(row)" size="small">编辑</el-button> <el-button @click="updateDict(row)" size="small">编辑</el-button>
<el-dropdown <el-dropdown style="margin-left: 12px; margin-right: 12px" @command="dropdownAction">
style="margin-left: 12px; margin-right: 12px"
@command="dropdownAction"
>
<el-button style="" size="small" @click="handleClick"> <el-button style="" size="small" @click="handleClick">
更多<el-icon class="el-icon--right"> 更多<el-icon class="el-icon--right">
<arrow-down /> <arrow-down />
@ -132,23 +67,13 @@
</el-button> </el-button>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item <el-dropdown-item :command="commandValue('assignRoles', row)">分配角色</el-dropdown-item>
:command="commandValue('assignRoles', row)" <el-dropdown-item :command="commandValue('restPwd', row)">重置密码</el-dropdown-item>
>分配角色</el-dropdown-item
>
<el-dropdown-item :command="commandValue('restPwd', row)"
>重置密码</el-dropdown-item
>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown>
<el-popconfirm <el-popconfirm confirm-button-text="" cancel-button-text="" icon-color="red" title="确定要删除?"
confirm-button-text="" @confirm="delRole(row)">
cancel-button-text=""
icon-color="red"
title="确定要删除?"
@confirm="delRole(row)"
>
<template #reference> <template #reference>
<el-button type="danger" size="small">删除</el-button> <el-button type="danger" size="small">删除</el-button>
</template> </template>
@ -157,16 +82,9 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="fenye" :style="{ top: tableHeight + 'px' }"> <div class="fenye" :style="{ top: tableHeight + 'px' }">
<el-pagination <el-pagination class="pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange"
class="pagination" :current-page="listQuery.page" :page-sizes="[10, 20, 50, 100]" :page-size="listQuery.size"
@size-change="handleSizeChange" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
@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> </div>
</div> </div>
@ -175,263 +93,106 @@
<span class="title">{{ isEdit ? "修改" : "新增" }}</span> <span class="title">{{ isEdit ? "修改" : "新增" }}</span>
<div> <div>
<!-- 修改 --> <!-- 修改 -->
<el-button <el-button v-if="isEdit" type="primary" size="small" @click="onSave" :loading="buttonLoading">修改</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" <el-button v-else type="primary" size="small" @click="onAdd">保存</el-button>
>保存</el-button
>
<el-button size="small" @click="closeDialog">关闭</el-button> <el-button size="small" @click="closeDialog">关闭</el-button>
</div> </div>
</div> </div>
<el-form <el-form class="mosty-from-wrap" ref="elform" :model="dialogForm" :inline="true" label-position="top"
class="mosty-from-wrap" :rules="rules">
ref="elform"
:model="dialogForm"
:inline="true"
label-position="top"
:rules="rules"
>
<el-form-item label="部门:" prop="ssbmdm"> <el-form-item label="部门:" prop="ssbmdm">
<MOSTY.Department <MOSTY.Department :placeholder="dialogForm.ssbm" width="280px" clearable filterable
:placeholder="dialogForm.ssbm" v-model="dialogForm.ssbmdm" />
width="280px"
clearable
filterable
v-model="dialogForm.ssbmdm"
/>
</el-form-item> </el-form-item>
<el-form-item label="用户昵称:" prop="userName"> <el-form-item label="用户昵称:" prop="userName">
<MOSTY.Other <MOSTY.Other width="280px" placeholder="请输入用户昵称" clearable v-model="dialogForm.userName" />
width="280px"
placeholder="请输入用户昵称"
clearable
v-model="dialogForm.userName"
/>
</el-form-item> </el-form-item>
<el-form-item label="登录账号:" prop="loginName"> <el-form-item label="登录账号:" prop="loginName">
<MOSTY.Other <MOSTY.Other width="280px" placeholder="请输入登录账号" clearable v-model="dialogForm.loginName" />
width="280px"
placeholder="请输入登录账号"
clearable
v-model="dialogForm.loginName"
/>
</el-form-item> </el-form-item>
<el-form-item label="密码:" v-if="!isEdit" prop="password"> <el-form-item label="密码:" v-if="!isEdit" prop="password">
<MOSTY.Other <MOSTY.Other width="280px" placeholder="请输入密码" show-password v-model="dialogForm.password" />
width="280px"
placeholder="请输入密码"
show-password
v-model="dialogForm.password"
/>
</el-form-item> </el-form-item>
<el-form-item label="身份证号" prop="idEntityCard"> <el-form-item label="身份证号" prop="idEntityCard">
<MOSTY.IdentityCard <MOSTY.IdentityCard width="280px" v-model="dialogForm.idEntityCard" @change="fn" clearable>
width="280px" </MOSTY.IdentityCard>
v-model="dialogForm.idEntityCard"
@change="fn"
clearable
></MOSTY.IdentityCard>
</el-form-item> </el-form-item>
<el-form-item label="警号" prop="inDustRialId"> <el-form-item label="警号" prop="inDustRialId">
<MOSTY.Other <MOSTY.Other width="280px" placeholder="请输入警号" v-model="dialogForm.inDustRialId" />
width="280px"
placeholder="请输入警号"
v-model="dialogForm.inDustRialId"
/>
</el-form-item> </el-form-item>
<el-form-item label="岗位选择"> <el-form-item label="岗位选择">
<MOSTY.StationSelect <MOSTY.StationSelect width="300px" clearable filterable v-model="dialogForm.positionId" />
width="300px"
clearable
filterable
v-model="dialogForm.positionId"
/>
</el-form-item> </el-form-item>
<el-form-item label="用户类型:" prop="userType"> <el-form-item label="用户类型:" prop="userType">
<el-select <el-select style="width: 100%" v-model="dialogForm.userType" placeholder="请选择用户类型">
style="width: 100%" <el-option v-for="dict in D_BZ_YHLX" :label="dict.label" :value="dict.value" :key="dict.value" />
v-model="dialogForm.userType"
placeholder="请选择用户类型"
>
<el-option
v-for="dict in D_BZ_YHLX"
:label="dict.label"
:value="dict.value"
:key="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="虚拟用户:" prop="isVirtualUser"> <el-form-item label="虚拟用户:" prop="isVirtualUser">
<el-select <el-select style="width: 100%" v-model="dialogForm.isVirtualUser" placeholder="请选择">
style="width: 100%" <el-option v-for="dict in D_BZ_XNYH" :label="dict.label" :value="dict.value" :key="dict.value" />
v-model="dialogForm.isVirtualUser"
placeholder="请选择"
>
<el-option
v-for="dict in D_BZ_XNYH"
:label="dict.label"
:value="dict.value"
:key="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="电话号码:" prop="telePhone"> <el-form-item label="电话号码:" prop="telePhone">
<MOSTY.Phone <MOSTY.Phone width="280px" v-model="dialogForm.telePhone" maxlength="11" clearable></MOSTY.Phone>
width="280px"
v-model="dialogForm.telePhone"
maxlength="11"
clearable
></MOSTY.Phone>
</el-form-item> </el-form-item>
<el-form-item label="移动电话:" prop="mobile"> <el-form-item label="移动电话:" prop="mobile">
<MOSTY.Phone <MOSTY.Phone width="280px" v-model="dialogForm.mobile" maxlength="11" clearable></MOSTY.Phone>
width="280px"
v-model="dialogForm.mobile"
maxlength="11"
clearable
></MOSTY.Phone>
</el-form-item> </el-form-item>
<el-form-item label="民族:" prop="nation"> <el-form-item label="民族:" prop="nation">
<MOSTY.PackageSelect <MOSTY.PackageSelect width="280px" v-model="dialogForm.nation" dictEnum="NATION" clearable filterable />
width="280px"
v-model="dialogForm.nation"
dictEnum="NATION"
clearable
filterable
/>
</el-form-item> </el-form-item>
<el-form-item label="性别:" prop="sex"> <el-form-item label="性别:" prop="sex">
<el-select <el-select style="width: 100%" v-model="dialogForm.sex" placeholder="请选择性别">
style="width: 100%" <el-option v-for="(item, index) in D_BZ_XB" :key="index" :label="item.label"
v-model="dialogForm.sex" :value="item.value"></el-option>
placeholder="请选择性别"
>
<el-option
v-for="(item, index) in D_BZ_XB"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="文化程度:" prop="whcd"> <el-form-item label="文化程度:" prop="whcd">
<MOSTY.PackageSelect <MOSTY.PackageSelect dictEnum="EDUCATION" width="280px" v-model="dialogForm.whcd" clearable filterable />
dictEnum="EDUCATION"
width="280px"
v-model="dialogForm.whcd"
clearable
filterable
/>
</el-form-item> </el-form-item>
<el-form-item label="E-mail" prop="email"> <el-form-item label="E-mail" prop="email">
<MOSTY.Email <MOSTY.Email v-model="dialogForm.email" width="280px" clearable></MOSTY.Email>
v-model="dialogForm.email"
width="280px"
clearable
></MOSTY.Email>
</el-form-item> </el-form-item>
<el-form-item label="出生日期" prop="birthday"> <el-form-item label="出生日期" prop="birthday">
<el-date-picker <el-date-picker style="width: 100%" v-model="dialogForm.birthday" type="date" placeholder="出生日期"
style="width: 100%" format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
v-model="dialogForm.birthday"
type="date"
placeholder="出生日期"
format="YYYY/MM/DD"
value-format="YYYY-MM-DD"
/>
</el-form-item> </el-form-item>
<el-form-item label="所属模块:" prop="politic"> <el-form-item label="所属模块:" prop="politic">
<el-select <el-select style="width: 100%" v-model="dialogForm.politic" placeholder="请选择">
style="width: 100%" <el-option v-for="dict in D_BZ_ZZMM" :label="dict.label" :value="dict.value" :key="dict.value" />
v-model="dialogForm.politic"
placeholder="请选择"
>
<el-option
v-for="dict in D_BZ_ZZMM"
:label="dict.label"
:value="dict.value"
:key="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="婚姻状况:" prop="marital"> <el-form-item label="婚姻状况:" prop="marital">
<el-select <el-select style="width: 100%" v-model="dialogForm.marital" placeholder="请选择婚姻状况">
style="width: 100%" <el-option v-for="dict in D_BZ_HYZK" :label="dict.label" :value="dict.value" :key="dict.value" />
v-model="dialogForm.marital"
placeholder="请选择婚姻状况"
>
<el-option
v-for="dict in D_BZ_HYZK"
:label="dict.label"
:value="dict.value"
:key="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="人员类别:" prop="type"> <el-form-item label="人员类别:" prop="type">
<el-select <el-select style="width: 100%" v-model="dialogForm.type" placeholder="请选择人员类别">
style="width: 100%" <el-option v-for="dict in D_BZ_RYLB" :label="dict.label" :value="dict.value" :key="dict.value" />
v-model="dialogForm.type"
placeholder="请选择人员类别"
>
<el-option
v-for="dict in D_BZ_RYLB"
:label="dict.label"
:value="dict.value"
:key="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="有效期:" prop="endTime"> <el-form-item label="有效期:" prop="endTime">
<el-date-picker <el-date-picker style="width: 100%" v-model="dialogForm.endTime" type="datetime" placeholder="请选择有效期"
style="width: 100%" format="YYYY/MM/DD hh:mm:ss" value-format="x" />
v-model="dialogForm.endTime"
type="datetime"
placeholder="请选择有效期"
format="YYYY/MM/DD hh:mm:ss"
value-format="x"
/>
</el-form-item> </el-form-item>
<el-form-item label="是否融合"> <el-form-item label="是否融合">
<el-select <el-select style="width: 100%" v-model="dialogForm.sfrh" placeholder="请选择">
style="width: 100%" <el-option v-for="dict in D_BZ_SF" :label="dict.label" :value="dict.value" :key="dict.value" />
v-model="dialogForm.sfrh"
placeholder="请选择"
>
<el-option
v-for="dict in D_BZ_SF"
:label="dict.label"
:value="dict.value"
:key="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 100%" label="备注"> <el-form-item style="width: 100%" label="备注">
<el-input <el-input v-model="dialogForm.bz" show-word-limit maxlength="200" :autosize="{ minRows: 2, maxRows: 4 }"
v-model="dialogForm.bz" type="textarea"></el-input>
show-word-limit
maxlength="200"
:autosize="{ minRows: 2, maxRows: 4 }"
type="textarea"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<RolesDialog <RolesDialog v-model="roleDialogVisible" :userId="currentUserId" @updateRole="handleFilter"></RolesDialog>
v-model="roleDialogVisible"
:userId="currentUserId"
@updateRole="handleFilter"
></RolesDialog>
</div> </div>
</template> </template>
@ -687,7 +448,7 @@ const closeDialog = () => {
dialogFormVisible.value = false; dialogFormVisible.value = false;
}; };
const moreAction = (e, item) => {}; const moreAction = (e, item) => { };
//分配角色 //分配角色
const currentUserId = ref(""); const currentUserId = ref("");
@ -704,7 +465,7 @@ const restPwd = (row) => {
handleFilter(); handleFilter();
}); });
}; };
const handleClick = (e) => {}; const handleClick = (e) => { };
//watch监听路由变化 //watch监听路由变化
watch(roleDialogVisible, (val) => { watch(roleDialogVisible, (val) => {
@ -782,5 +543,4 @@ onUnmounted(() => {
// width: 380px; // width: 380px;
// } // }
// } // }
// } // }</style>
</style>

View File

@ -55,20 +55,12 @@
</div> </div>
</div> </div>
<div <div class="form-row" :key="index" v-for="(item, index) in listQuery.ckxxList">
class="form-row"
:key="index"
v-for="(item, index) in listQuery.ckxxList"
>
<div class="form-item"> <div class="form-item">
<div class="menu">{{ item.xm }}</div> <div class="menu">{{ item.xm }}</div>
<div class="menu">{{ item.sfzh }}</div> <div class="menu">{{ item.sfzh }}</div>
<div class="menu"> <div class="menu">
<dict-tag <dict-tag :options="dict.D_BZ_XB" :value="item.xbdm" :tag="false" />
:options="dict.D_BZ_XB"
:value="item.xbdm"
:tag="false"
/>
</div> </div>
<div class="menu">{{ item.hjdz }}</div> <div class="menu">{{ item.hjdz }}</div>
</div> </div>
@ -88,22 +80,13 @@
<div class="menu control">上车地址</div> <div class="menu control">上车地址</div>
</div> </div>
</div> </div>
<div <div class="form-row" :key="index" v-for="(item, index) in listQuery.ztscryList">
class="form-row"
:key="index"
v-for="(item, index) in listQuery.ztscryList"
>
<div class="form-item"> <div class="form-item">
<div class="menu">{{ item.xm }}</div> <div class="menu">{{ item.xm }}</div>
<div class="menu">{{ item.sfzh }}</div> <div class="menu">{{ item.sfzh }}</div>
<div class="menu"> <div class="menu">
<dict-tag <dict-tag :options="dict.D_BZ_XB" :value="item.xbdm" :tag="false" />
:options="dict.D_BZ_XB"
:value="item.xbdm"
:tag="false"
/>
</div> </div>
<div class="menu">{{ item.hjdz }}</div> <div class="menu">{{ item.hjdz }}</div>
<div class="menu">{{ item.scdz }}</div> <div class="menu">{{ item.scdz }}</div>
</div> </div>
@ -122,20 +105,12 @@
<div class="menu control">户籍地址</div> <div class="menu control">户籍地址</div>
</div> </div>
</div> </div>
<div <div class="form-row" :key="index" v-for="(item, index) in listQuery.zdrList">
class="form-row"
:key="index"
v-for="(item, index) in listQuery.zdrList"
>
<div class="form-item"> <div class="form-item">
<div class="menu">{{ item.xm }}</div> <div class="menu">{{ item.xm }}</div>
<div class="menu">{{ item.sfzh }}</div> <div class="menu">{{ item.sfzh }}</div>
<div class="menu"> <div class="menu">
<dict-tag <dict-tag :options="dict.D_BZ_XB" :value="item.xbdm" :tag="false" />
:options="dict.D_BZ_XB"
:value="item.xbdm"
:tag="false"
/>
</div> </div>
<div class="menu">{{ item.hjdz }}</div> <div class="menu">{{ item.hjdz }}</div>
@ -182,7 +157,9 @@
</div> </div>
</div> </div>
</div> </div>
<div class="map"><GdMap style="width: 100%; width: 100%" /></div> <div class="map">
<GdMap style="width: 100%; width: 100%" />
</div>
</div> </div>
</div> </div>
</template> </template>
@ -206,7 +183,6 @@ const show = ref(true);
const init = (type, row) => { const init = (type, row) => {
dialogForm.value = true; dialogForm.value = true;
// 根据type和row初始化表单数据 // 根据type和row初始化表单数据
if (type == "track") { if (type == "track") {
show.value = false; show.value = false;
gettbGpJbxxgetInfo(row.id); gettbGpJbxxgetInfo(row.id);
@ -265,6 +241,7 @@ defineExpose({ init });
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.cntinfo { .cntinfo {
height: calc(100% - 70px); height: calc(100% - 70px);
overflow: hidden; overflow: hidden;
@ -274,6 +251,7 @@ defineExpose({ init });
.form-row { .form-row {
display: flex; display: flex;
color: #000; color: #000;
.form-item { .form-item {
line-height: 32px; line-height: 32px;
align-items: center; align-items: center;
@ -281,10 +259,12 @@ defineExpose({ init });
width: 100%; width: 100%;
display: flex; display: flex;
} }
.el-form-items { .el-form-items {
flex: 0.5; flex: 0.5;
} }
} }
.lable { .lable {
background-color: #f7fafb; background-color: #f7fafb;
padding: 0px 8px; padding: 0px 8px;
@ -294,6 +274,7 @@ defineExpose({ init });
height: 36px; height: 36px;
border: 1px solid #e3e7ed; border: 1px solid #e3e7ed;
} }
.menu { .menu {
height: 36px; height: 36px;
flex: 1; flex: 1;
@ -301,9 +282,11 @@ defineExpose({ init });
border: 1px solid #e3e7ed; border: 1px solid #e3e7ed;
background-color: #fff; background-color: #fff;
} }
.control { .control {
background-color: #f7fafb; background-color: #f7fafb;
} }
.upload-group { .upload-group {
display: flex; display: flex;
// gap: 20px; // gap: 20px;
@ -316,6 +299,7 @@ defineExpose({ init });
.unit { .unit {
margin-left: 5px; margin-left: 5px;
} }
::v-deep .el-input__inner { ::v-deep .el-input__inner {
height: 36px !important; height: 36px !important;
line-height: 36px !important; line-height: 36px !important;
@ -323,9 +307,11 @@ defineExpose({ init });
color: #777575; color: #777575;
} }
} }
.interval { .interval {
margin-top: 10px; margin-top: 10px;
} }
.map { .map {
margin-top: 10px; margin-top: 10px;
height: 85%; height: 85%;

View File

@ -5,40 +5,23 @@
</div> </div>
<!-- 搜索 --> <!-- 搜索 -->
<div ref="searchBox"> <div ref="searchBox">
<Search <Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
:searchArr="searchConfiger"
@submit="onSearch"
:key="pageData.keyCount"
/>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-link type="primary" @click="addEdit('track', row)" <el-link type="primary" @click="addEdit('track', row)">车辆轨迹</el-link>
>车辆轨迹</el-link
>
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link> <el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 详情 --> <!-- 详情 -->
<DetailForm ref="detailDiloag" :dict="{ D_BZ_XB }" /> <DetailForm ref="detailDiloag" :dict="{ D_BZ_XB }" />
@ -64,18 +47,7 @@ const searchConfiger = ref([
placeholder: "车牌号", placeholder: "车牌号",
showType: "input" showType: "input"
}, },
// {
// label: "起点",
// prop: "xlqdz",
// placeholder: "起点",
// showType: "input"
// },
// {
// label: "终点",
// prop: "xlzdz",
// placeholder: "终点",
// showType: "input"
// },
{ {
label: "购票日期", label: "购票日期",
prop: "gprq", prop: "gprq",

View File

@ -1,4 +1,72 @@
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" name="viewport"><link rel="icon" href="favicon.ico"><title>公安</title><script src="./pgis/eliMapboxgl.min.js"></script><script src="./static/js/vconsole.min.js"></script><script src="./static/js/jquery-1.12.4.min.js"></script><script src="./static/js/moment.js"></script><script src="./static/js/vue.js"></script><script src="./static/js/antd.min.js"></script><script src="./static/js/antd-with-locales.min.js"></script><link href="static/css/chunk-09ca48cc.f7cbaf6a.css" rel="prefetch"><link href="static/css/chunk-0a1fd7f4.d746725f.css" rel="prefetch"><link href="static/css/chunk-0fdaaf92.db916b7b.css" rel="prefetch"><link href="static/css/chunk-10fce026.dc80f006.css" rel="prefetch"><link href="static/css/chunk-14aa086e.1d74ce14.css" rel="prefetch"><link href="static/css/chunk-15d0e086.3440019d.css" rel="prefetch"><link href="static/css/chunk-19815cd9.139a93fa.css" rel="prefetch"><link href="static/css/chunk-28bd6e9c.48d99538.css" rel="prefetch"><link href="static/css/chunk-3596bc08.1afc7a53.css" rel="prefetch"><link href="static/css/chunk-48f37632.16db3d3e.css" rel="prefetch"><link href="static/css/chunk-548a1330.fec91e96.css" rel="prefetch"><link href="static/css/chunk-608198a8.e91625ec.css" rel="prefetch"><link href="static/css/chunk-61c2abd0.00c5e95f.css" rel="prefetch"><link href="static/css/chunk-67863059.910bc36e.css" rel="prefetch"><link href="static/css/chunk-792019d0.d705d3b8.css" rel="prefetch"><link href="static/css/chunk-7b3f9a30.a3543662.css" rel="prefetch"><link href="static/css/chunk-a37f0b78.d618262c.css" rel="prefetch"><link href="static/css/chunk-a6018400.2b796476.css" rel="prefetch"><link href="static/css/chunk-cadd7c5e.6f1e785e.css" rel="prefetch"><link href="static/css/chunk-fc70b89e.9b419676.css" rel="prefetch"><link href="static/js/chunk-09ca48cc.151702df.js" rel="prefetch"><link href="static/js/chunk-0a1fd7f4.5797fbab.js" rel="prefetch"><link href="static/js/chunk-0fdaaf92.96513d67.js" rel="prefetch"><link href="static/js/chunk-10fce026.23ec475e.js" rel="prefetch"><link href="static/js/chunk-14aa086e.7b81938b.js" rel="prefetch"><link href="static/js/chunk-15d0e086.e35a849a.js" rel="prefetch"><link href="static/js/chunk-19815cd9.831d7c4e.js" rel="prefetch"><link href="static/js/chunk-28bd6e9c.f97fa2ad.js" rel="prefetch"><link href="static/js/chunk-3596bc08.64d195aa.js" rel="prefetch"><link href="static/js/chunk-48f37632.5f7f6c0e.js" rel="prefetch"><link href="static/js/chunk-548a1330.f50e10a5.js" rel="prefetch"><link href="static/js/chunk-608198a8.7a34e974.js" rel="prefetch"><link href="static/js/chunk-61c2abd0.340a5058.js" rel="prefetch"><link href="static/js/chunk-67863059.2227b023.js" rel="prefetch"><link href="static/js/chunk-792019d0.72242fee.js" rel="prefetch"><link href="static/js/chunk-7b3f9a30.c55636e5.js" rel="prefetch"><link href="static/js/chunk-a37f0b78.e08e0f95.js" rel="prefetch"><link href="static/js/chunk-a6018400.c4908397.js" rel="prefetch"><link href="static/js/chunk-cadd7c5e.ef340dda.js" rel="prefetch"><link href="static/js/chunk-fc70b89e.46304eea.js" rel="prefetch"><link href="static/css/app.4926db33.css" rel="preload" as="style"><link href="static/css/chunk-vendors.ccb705f1.css" rel="preload" as="style"><link href="static/js/app.72e2223d.js" rel="preload" as="script"><link href="static/js/chunk-vendors.62ab2f07.js" rel="preload" as="script"><link href="static/css/chunk-vendors.ccb705f1.css" rel="stylesheet"><link href="static/css/app.4926db33.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 公安 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script>document.documentElement.addEventListener( <!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" name="viewport">
<link rel="icon" href="favicon.ico">
<title>公安</title>
<script src="./pgis/eliMapboxgl.min.js"></script>
<script src="./static/js/vconsole.min.js"></script>
<script src="./static/js/jquery-1.12.4.min.js"></script>
<script src="./static/js/moment.js"></script>
<script src="./static/js/vue.js"></script>
<script src="./static/js/antd.min.js"></script>
<script src="./static/js/antd-with-locales.min.js"></script>
<link href="static/css/chunk-09ca48cc.f7cbaf6a.css" rel="prefetch">
<link href="static/css/chunk-0a1fd7f4.d746725f.css" rel="prefetch">
<link href="static/css/chunk-0fdaaf92.db916b7b.css" rel="prefetch">
<link href="static/css/chunk-10fce026.dc80f006.css" rel="prefetch">
<link href="static/css/chunk-14aa086e.1d74ce14.css" rel="prefetch">
<link href="static/css/chunk-15d0e086.3440019d.css" rel="prefetch">
<link href="static/css/chunk-19815cd9.139a93fa.css" rel="prefetch">
<link href="static/css/chunk-28bd6e9c.48d99538.css" rel="prefetch">
<link href="static/css/chunk-3596bc08.1afc7a53.css" rel="prefetch">
<link href="static/css/chunk-48f37632.16db3d3e.css" rel="prefetch">
<link href="static/css/chunk-548a1330.fec91e96.css" rel="prefetch">
<link href="static/css/chunk-608198a8.e91625ec.css" rel="prefetch">
<link href="static/css/chunk-61c2abd0.00c5e95f.css" rel="prefetch">
<link href="static/css/chunk-67863059.910bc36e.css" rel="prefetch">
<link href="static/css/chunk-792019d0.d705d3b8.css" rel="prefetch">
<link href="static/css/chunk-7b3f9a30.a3543662.css" rel="prefetch">
<link href="static/css/chunk-a37f0b78.d618262c.css" rel="prefetch">
<link href="static/css/chunk-a6018400.2b796476.css" rel="prefetch">
<link href="static/css/chunk-cadd7c5e.6f1e785e.css" rel="prefetch">
<link href="static/css/chunk-fc70b89e.9b419676.css" rel="prefetch">
<link href="static/js/chunk-09ca48cc.151702df.js" rel="prefetch">
<link href="static/js/chunk-0a1fd7f4.5797fbab.js" rel="prefetch">
<link href="static/js/chunk-0fdaaf92.96513d67.js" rel="prefetch">
<link href="static/js/chunk-10fce026.23ec475e.js" rel="prefetch">
<link href="static/js/chunk-14aa086e.7b81938b.js" rel="prefetch">
<link href="static/js/chunk-15d0e086.e35a849a.js" rel="prefetch">
<link href="static/js/chunk-19815cd9.831d7c4e.js" rel="prefetch">
<link href="static/js/chunk-28bd6e9c.f97fa2ad.js" rel="prefetch">
<link href="static/js/chunk-3596bc08.64d195aa.js" rel="prefetch">
<link href="static/js/chunk-48f37632.5f7f6c0e.js" rel="prefetch">
<link href="static/js/chunk-548a1330.f50e10a5.js" rel="prefetch">
<link href="static/js/chunk-608198a8.7a34e974.js" rel="prefetch">
<link href="static/js/chunk-61c2abd0.340a5058.js" rel="prefetch">
<link href="static/js/chunk-67863059.2227b023.js" rel="prefetch">
<link href="static/js/chunk-792019d0.72242fee.js" rel="prefetch">
<link href="static/js/chunk-7b3f9a30.c55636e5.js" rel="prefetch">
<link href="static/js/chunk-a37f0b78.e08e0f95.js" rel="prefetch">
<link href="static/js/chunk-a6018400.c4908397.js" rel="prefetch">
<link href="static/js/chunk-cadd7c5e.ef340dda.js" rel="prefetch">
<link href="static/js/chunk-fc70b89e.46304eea.js" rel="prefetch">
<link href="static/css/app.4926db33.css" rel="preload" as="style">
<link href="static/css/chunk-vendors.ccb705f1.css" rel="preload" as="style">
<link href="static/js/app.72e2223d.js" rel="preload" as="script">
<link href="static/js/chunk-vendors.62ab2f07.js" rel="preload" as="script">
<link href="static/css/chunk-vendors.ccb705f1.css" rel="stylesheet">
<link href="static/css/app.4926db33.css" rel="stylesheet">
</head>
<body><noscript><strong>We're sorry but 公安 doesn't work properly without JavaScript enabled. Please enable it to
continue.</strong></noscript>
<div id="app"></div>
<script>document.documentElement.addEventListener(
"touchmove", "touchmove",
function (event) { function (event) {
if (event.touches.length > 1) { if (event.touches.length > 1) {
@ -6,4 +74,9 @@
} }
}, },
false false
);</script><script src="static/js/chunk-vendors.62ab2f07.js"></script><script src="static/js/app.72e2223d.js"></script></body></html> );</script>
<script src="static/js/chunk-vendors.3cfe86c5.js"></script>
<script src="static/js/app.7ff2e197.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long