考试申请

This commit is contained in:
13684185576
2025-07-07 09:25:03 +08:00
parent e83dbabe9d
commit 3700602c41
10 changed files with 288 additions and 546 deletions

136
package-lock.json generated
View File

@ -2043,6 +2043,51 @@
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"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": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@ -2051,6 +2096,28 @@
"requires": {
"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": {
"version": "4.1.3",
"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 DepartmentTree from "./DepartmentTree/index.vue";
import ChooseIcon from "./ChooseIcon/index.vue";
import PackageSelect from "./PackageSelect/index.vue";
import StationSelect from "./StationSelect/index.vue";
import Provinces from "./Provinces2/index.vue";
import MarkdownEdit from "./MarkdownEdit/index.vue";
@ -36,5 +37,6 @@ export {
MarkdownEdit,
FileUpload,
RichOnly,
Date
Date,
PackageSelect
};

View File

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

View File

@ -5,11 +5,7 @@
</div>
<!-- 搜索 -->
<div ref="searchBox">
<Search
:searchArr="searchConfiger"
@submit="onSearch"
:key="pageData.keyCount"
>
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
<!-- <template #defaultSlot>
<div>
<el-input-number v-model="queryFrom.xqy"></el-input-number>
@ -21,35 +17,20 @@
</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 :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData">
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="primary" @click="addEdit('basic', row)">详情</el-link>
<el-link type="primary" @click="addEdit('staff', row)"
>从业人员</el-link
>
<el-link type="primary" @click="addEdit('vehicle', row)"
>车辆</el-link
>
<el-link type="primary" @click="addEdit('staff', row)">从业人员</el-link>
<el-link type="primary" @click="addEdit('vehicle', row)">车辆</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"></Pages>
</div>
<!-- 详情 -->
<DetailForm ref="detailDiloag" />
@ -72,13 +53,13 @@ const searchBox = ref(); //搜索框
const searchConfiger = ref([
{
label: "单位名称",
prop: "placeName",
prop: "dwmc",
placeholder: "单位名称",
showType: "input"
},
{
label: "单位类型",
prop: "placeName",
prop: "dwlx",
placeholder: "单位类型",
showType: "input"
}
@ -86,18 +67,7 @@ const searchConfiger = ref([
const queryFrom = ref({});
const pageData = reactive({
tableData: [
// {
// id: 1,
// placeName: "老王打印店",
// placePhone: "13800138000",
// legalPersonName: "张三",
// legalPersonId: "511222222222222",
// legalPersonPhone: "13900139000",
// operationStatus: "在营",
// jurisdiction: "巴宜区纺织路派出所"
// }
],
tableData: [],
keyCount: 0,
tableConfiger: {
rowHieght: 61,
@ -111,10 +81,10 @@ const pageData = reactive({
},
controlsWidth: 200,
tableColumn: [
{ label: "单位名称", prop: "placeName" },
{ label: "单位类型", prop: "operationStatus" },
{ label: "单位车辆数量", prop: "jurisdiction" },
{ label: "所属辖区", prop: "legalPersonName" }
{ label: "单位名称", prop: "dwmc" },
{ label: "单位类型", prop: "dwlx" },
{ label: "单位车辆数量", prop: "dwclsl" },
{ label: "所属辖区", prop: "ssxq" }
]
});

View File

@ -5,11 +5,7 @@
</div>
<!-- 搜索 -->
<div ref="searchBox">
<Search
:searchArr="searchConfiger"
@submit="onSearch"
:key="pageData.keyCount"
>
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
<!-- <template #defaultSlot>
<div>
<el-input-number v-model="queryFrom.xqy"></el-input-number>
@ -21,29 +17,18 @@
</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 :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData">
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"></Pages>
</div>
<!-- 详情 -->
<DetailForm ref="detailDiloag" title="公交线路详情" />
@ -99,10 +84,10 @@ const pageData = reactive({
},
controlsWidth: 200,
tableColumn: [
{ label: "公交线路名称", prop: "placeName" },
{ label: "公交线路起点站", prop: "operationStatus" },
{ label: "公交线路终点站", prop: "jurisdiction" },
{ label: "行政区划", prop: "legalPersonName" }
{ label: "公交线路名称", prop: "xlmc" },
{ label: "公交线路起点站", prop: "xlqdz" },
{ label: "公交线路终点站", prop: "xlzdz" },
{ label: "行政区划", prop: "xzqy" }
]
});

View File

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

View File

@ -55,20 +55,12 @@
</div>
</div>
<div
class="form-row"
:key="index"
v-for="(item, index) in listQuery.ckxxList"
>
<div class="form-row" :key="index" v-for="(item, index) in listQuery.ckxxList">
<div class="form-item">
<div class="menu">{{ item.xm }}</div>
<div class="menu">{{ item.sfzh }}</div>
<div class="menu">
<dict-tag
:options="dict.D_BZ_XB"
:value="item.xbdm"
:tag="false"
/>
<dict-tag :options="dict.D_BZ_XB" :value="item.xbdm" :tag="false" />
</div>
<div class="menu">{{ item.hjdz }}</div>
</div>
@ -88,22 +80,13 @@
<div class="menu control">上车地址</div>
</div>
</div>
<div
class="form-row"
:key="index"
v-for="(item, index) in listQuery.ztscryList"
>
<div class="form-row" :key="index" v-for="(item, index) in listQuery.ztscryList">
<div class="form-item">
<div class="menu">{{ item.xm }}</div>
<div class="menu">{{ item.sfzh }}</div>
<div class="menu">
<dict-tag
:options="dict.D_BZ_XB"
:value="item.xbdm"
:tag="false"
/>
<dict-tag :options="dict.D_BZ_XB" :value="item.xbdm" :tag="false" />
</div>
<div class="menu">{{ item.hjdz }}</div>
<div class="menu">{{ item.scdz }}</div>
</div>
@ -122,20 +105,12 @@
<div class="menu control">户籍地址</div>
</div>
</div>
<div
class="form-row"
:key="index"
v-for="(item, index) in listQuery.zdrList"
>
<div class="form-row" :key="index" v-for="(item, index) in listQuery.zdrList">
<div class="form-item">
<div class="menu">{{ item.xm }}</div>
<div class="menu">{{ item.sfzh }}</div>
<div class="menu">
<dict-tag
:options="dict.D_BZ_XB"
:value="item.xbdm"
:tag="false"
/>
<dict-tag :options="dict.D_BZ_XB" :value="item.xbdm" :tag="false" />
</div>
<div class="menu">{{ item.hjdz }}</div>
@ -182,7 +157,9 @@
</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>
</template>
@ -205,7 +182,6 @@ const show = ref(true);
const init = (type, row) => {
dialogForm.value = true;
// 根据type和row初始化表单数据
if (type == "track") {
show.value = false;
gettbGpJbxxgetInfo(row.id);
@ -261,6 +237,7 @@ defineExpose({ init });
align-items: center;
margin-bottom: 20px;
}
.cntinfo {
height: calc(100% - 70px);
overflow: hidden;
@ -270,6 +247,7 @@ defineExpose({ init });
.form-row {
display: flex;
color: #000;
.form-item {
line-height: 32px;
align-items: center;
@ -277,10 +255,12 @@ defineExpose({ init });
width: 100%;
display: flex;
}
.el-form-items {
flex: 0.5;
}
}
.lable {
background-color: #f7fafb;
padding: 0px 8px;
@ -290,6 +270,7 @@ defineExpose({ init });
height: 36px;
border: 1px solid #e3e7ed;
}
.menu {
height: 36px;
flex: 1;
@ -297,9 +278,11 @@ defineExpose({ init });
border: 1px solid #e3e7ed;
background-color: #fff;
}
.control {
background-color: #f7fafb;
}
.upload-group {
display: flex;
// gap: 20px;
@ -312,6 +295,7 @@ defineExpose({ init });
.unit {
margin-left: 5px;
}
::v-deep .el-input__inner {
height: 36px !important;
line-height: 36px !important;
@ -319,9 +303,11 @@ defineExpose({ init });
color: #777575;
}
}
.interval {
margin-top: 10px;
}
.map {
margin-top: 10px;
height: 85%;

View File

@ -5,40 +5,23 @@
</div>
<!-- 搜索 -->
<div ref="searchBox">
<Search
:searchArr="searchConfiger"
@submit="onSearch"
:key="pageData.keyCount"
/>
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
</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 :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData">
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="primary" @click="addEdit('track', row)"
>车辆轨迹</el-link
>
<el-link type="primary" @click="addEdit('track', row)">车辆轨迹</el-link>
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"></Pages>
</div>
<!-- 详情 -->
<DetailForm ref="detailDiloag" :dict="{ D_BZ_XB }" />
@ -77,15 +60,19 @@ const searchConfiger = ref([
showType: "input"
},
{
label: "日期",
prop: "endTime",
placeholder: "日期",
label: "购票日期",
prop: "gprq",
placeholder: "购票日期",
showType: "date"
}
]);
const queryFrom = ref({});
const pageData = reactive({
tableData: [],
tableData: [
{
cph:'川A8888'
}
],
keyCount: 0,
tableConfiger: {
rowHieght: 61,
@ -99,16 +86,16 @@ const pageData = reactive({
},
controlsWidth: 200,
tableColumn: [
{ label: "车牌号", prop: "gjxlbm" },
{ label: "日期", prop: "zdmc" },
{ label: "车辆驾驶员", prop: "xm" },
{ label: "车辆行驶线路", prop: "xzqhbm" },
{ label: "乘客数量", prop: "xzqhbm" },
{ label: "重点人数量", prop: "xzqhbm" }
{ label: "车牌号", prop: "cph" },
{ label: "购票日期", prop: "gprq" },
{ label: "车辆驾驶员", prop: "cljsy" },
{ label: "车辆行驶线路", prop: "clqsxl" },
{ label: "乘客数量", prop: "cksl" },
{ label: "重点人数量", prop: "zdrsl" }
]
});
onMounted(() => {
getList();
// getList();
tabHeightFn();
});
//选择类型

View File

@ -3,7 +3,7 @@ const path = require("path");
function resolve(dir) {
return path.join(__dirname, dir);
}
const serverHost = "http://192.168.43.92:8006";
const serverHost = "http://192.168.1.32:8066";
// const serverHost = "http://127.0.0.1:8006"
module.exports = {
publicPath: "./",