[新增功能](hyx_门口门禁):

- 新增货运车辆,危化车辆审核管理
hyx_门口门禁
huangyuxuan 2025-01-08 11:27:13 +08:00
parent f3ee48b330
commit cb17fd5649
7 changed files with 670 additions and 0 deletions

View File

@ -0,0 +1,157 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-form ref="form" v-model="form">
<el-row>
<el-col :span="5">
<el-form-item label="车牌号:">
<el-input v-model="form.LICENCE_NO" placeholder="搜索" class="filter-item" style="width: 200px;"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
</el-button>
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="reset"></el-button>
</el-col>
</el-row>
</el-form>
</div>
<el-table
v-loading="listLoading"
ref="multipleTable"
:data="varList"
:row-key="getRowKey"
:header-cell-style="{
'font-weight': 'bold',
'color': '#000'
}"
tooltip-effect="dark"
border
fit
highlight-current-row
>
<el-table-column
:reserve-selection="true"
type="selection"
width="55"
align="center"/>
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column prop="LICENCE_NO" label="车牌号"/>
<el-table-column prop="LICENCE_TYPE" label="车牌类型"/>
<el-table-column prop="VEHICLE_TYPE" label="车辆类型"/>
<el-table-column prop="CONTACT" label="联系人"/>
<el-table-column prop="PHONE" label="联系人电话"/>
<el-table-column label="审核状态" align="center" width="120">
<template slot-scope="{row}">
{{ getType(row.IS_AUDIT) }}
</template>
</el-table-column>
<el-table-column label="操作" align="left" width="110">
<template slot-scope="{row}">
<el-button v-if="showFirstButton(row.AUDITOR,row.IS_AUDIT)" type="success" icon="el-icon-view" size="mini" @click="approve(row)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div/>
<div/>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
</div>
<send-util ref="sendUtil" append-to-body @refresh="getList"/>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import SendUtil from './sendUtil.vue'
export default {
components: { SendUtil, Pagination },
data() {
return {
listQuery: {
page: 1,
limit: 10
},
areaList: [], //
placeList: [],
listLoading: true,
varList: [],
total: 0,
title: '',
isShow: false,
form: {
LICENCE_NO: '',
PHONE: '',
ID_CARD: '',
CORPINFO_NAME: '',
DEPARTMENT_NAME: '',
VISIT_START_TIME: '',
VISIT_END_TIME: '',
DOOR_NAME: '',
IS_DANGEROUS_CAR: '1',
CORPINFO_ID: JSON.parse(sessionStorage.getItem('user')).CORPINFO_ID
}
}
},
created() {
this.getList()
},
methods: {
approve(row) {
this.$refs.sendUtil.init(row)
},
showFirstButton(AUDITOR, IS_AUDIT) {
return AUDITOR === JSON.parse(sessionStorage.getItem('user')).USER_ID && IS_AUDIT === '0'
},
getType(AUDIT_TYPE) {
if (AUDIT_TYPE === '0') {
return '待交警支队审核'
} else if (AUDIT_TYPE === '1') {
return '待分公司审核'
} else if (AUDIT_TYPE === '2') {
return '审核通过'
} else if (AUDIT_TYPE === '3') {
return '审核驳回'
}
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
//
reset() {
this.form = {
USER_NAME: '',
PHONE: '',
ID_CARD: '',
CORPINFO_NAME: '',
DEPARTMENT_NAME: '',
VISIT_START_TIME: '',
VISIT_END_TIME: '',
DOOR_NAME: ''
}
this.getList()
},
//
getList() {
this.listLoading = true
requestFN(
'/vehiclemessage/freightVehiclesAudit?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page, this.form
).then((data) => {
console.log(data)
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.hasButton()
this.pd = data.pd
}).catch((e) => {
this.listLoading = false
})
}
}
}
</script>

View File

@ -0,0 +1,152 @@
<template>
<div>
<el-dialog
v-loading="loading"
:visible.sync="visible"
:append-to-body="appendToBody"
:before-close="beforeClose"
title="审批"
width="1200px"
destroy-on-close>
<el-form ref="form" :model="form" :rules="rules" label-width="200px" label-position="right" type="flex">
<el-row :gutter="12">
<el-col :span="12">
<el-form-item prop="STATUS" label="是否通过: ">
<el-select v-model="form.STATUS" filterable style="width: 300px" placeholder="请选择" @change="clearInfo">
<el-option label="是" value="2"/>
<el-option label="否" value="3"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col v-if="form.STATUS === '3'" :span="24">
<el-form-item v-if="form.STATUS === '3'" prop="OPINION" label="打回原因:">
<el-input v-model="form.OPINION" :rows="2" type="textarea" placeholder="填写审批意见"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="handleClose"> </el-button>
<el-button type="primary" @click="sendMessage"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import vueQr from 'vue-qr'
import Treeselect from '@riophae/vue-treeselect'
import uploadFile from '../../../util/uploadFile/index.vue'
import { requestFN } from '@/utils/request'
export default {
components: { uploadFile, Treeselect, vueQr },
props: {
appendToBody: {
type: Boolean,
default: false
}
},
data() {
return {
VEHICLE_ID: '',
visible: false,
loading: false,
form: {
STATUS: null,
APPOINT_CORP_ID: '',
APPOINT_CORP_NAME: '',
APPOINT_DEPARTMENT_ID: null,
APPOINT_DEPARTMENT_NAME: '',
APPOINT_USER_ID: null,
APPOINT_USER_NAME: '',
OPINION: '',
APPOINT_ANNEX: [],
user: '',
tm: new Date().getTime(),
list: [],
isShow: true,
info: {},
BACK_NAME: '',
BACK_STEP: ''
},
rules: {
STATUS: [
{ required: true, message: '请选择是否通过', trigger: 'change' }
],
OPINION: [
{ required: true, message: '请填写打回原因', trigger: 'change' }
]
},
heirloom: {},
normalizer(node) {
return {
id: node.id,
label: node.name,
children: node.nodes
}
},
departmentTree: [],
peopleList: [],
corpFlag: false,
menu: {
department: '',
user: '',
uploadFile: '',
limitFlag: ''
},
step: 0,
list: [],
ACCESS_AUDIT_ID: ''
}
},
methods: {
async init(e) {
console.log(e)
this.loading = true
this.visible = true
this.VEHICLE_ID = e.VEHICLE_ID
this.loading = false
},
handleClose() {
this.form = {
STATUS: '',
APPOINT_DEPARTMENT_ID: null,
APPOINT_DEPARTMENT_NAME: '',
APPOINT_USER_ID: '',
APPOINT_USER_NAME: '',
OPINION: '',
user: '',
list: [],
tm: new Date().getTime()
}
this.visible = false
},
goDetail() {
this.$parent.activeName = 'List'
},
sendMessage() {
requestFN(
'/vehiclemessage/qyAudit',
{
AUDITOR: JSON.parse(sessionStorage.getItem('user')).USER_ID,
VEHICLE_ID: this.VEHICLE_ID,
IS_AUDIT: this.form.STATUS,
REMARK: this.form.OPINION
}
).then((data) => {
this.visible = false
this.$emit('refresh', '')
}).catch((e) => {
this.loading = false
})
}
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,24 @@
<template>
<div>
<List v-show="activeName==='List'" ref="list" />
</div>
</template>
<script>
import List from './components/list'
export default {
components: {
List: List
},
data() {
return {
activeName: 'List',
USER_ID: ''
}
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,3 @@
<template>
<router-view />
</template>

View File

@ -0,0 +1,155 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-form ref="form" v-model="form">
<el-row>
<el-col :span="5">
<el-form-item label="车牌号:">
<el-input v-model="form.LICENCE_NO" placeholder="搜索" class="filter-item" style="width: 200px;"/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"></el-button>
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="reset"></el-button>
</el-col>
</el-row>
</el-form>
</div>
<el-table
v-loading="listLoading"
ref="multipleTable"
:data="varList"
:row-key="getRowKey"
:header-cell-style="{
'font-weight': 'bold',
'color': '#000'
}"
tooltip-effect="dark"
border
fit
highlight-current-row
>
<el-table-column
:reserve-selection="true"
type="selection"
width="55"
align="center"/>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="LICENCE_NO" label="车牌号"/>
<el-table-column prop="LICENCE_TYPE" label="车牌类型"/>
<el-table-column prop="VEHICLE_TYPE" label="车辆类型"/>
<el-table-column prop="CONTACT" label="联系人"/>
<el-table-column prop="PHONE" label="联系人电话"/>
<el-table-column label="审核状态" align="center" width="120">
<template slot-scope="{row}">
{{ getType(row.IS_AUDIT) }}
</template>
</el-table-column>
<el-table-column label="操作" align="left" width="110">
<template slot-scope="{row}">
<el-button v-if="showFirstButton(row.AUDITOR,row.IS_AUDIT)" type="success" icon="el-icon-view" size="mini" @click="approve(row)"></el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div/><div/>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<send-util ref="sendUtil" append-to-body @refresh="getList"/>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // el-pagination
import { requestFN } from '@/utils/request'
import SendUtil from './sendUtil.vue'
export default{
components: { SendUtil, Pagination },
data() {
return {
listQuery: {
page: 1,
limit: 10
},
areaList: [], //
placeList: [],
listLoading: true,
varList: [],
total: 0,
title: '',
isShow: false,
form: {
LICENCE_NO: '',
PHONE: '',
ID_CARD: '',
CORPINFO_NAME: '',
DEPARTMENT_NAME: '',
VISIT_START_TIME: '',
VISIT_END_TIME: '',
DOOR_NAME: '',
IS_DANGEROUS_CAR: '0',
CORPINFO_ID: JSON.parse(sessionStorage.getItem('user')).CORPINFO_ID
}
}
},
created() {
this.getList()
},
methods: {
approve(row) {
this.$refs.sendUtil.init(row)
},
showFirstButton(AUDITOR, IS_AUDIT) {
return AUDITOR === JSON.parse(sessionStorage.getItem('user')).USER_ID && IS_AUDIT === '1'
},
getType(AUDIT_TYPE) {
if (AUDIT_TYPE === '0') {
return '待交警支队审核'
} else if (AUDIT_TYPE === '1') {
return '待分公司审核'
} else if (AUDIT_TYPE === '2') {
return '审核通过'
} else if (AUDIT_TYPE === '3') {
return '审核驳回'
}
},
//
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
//
reset() {
this.form = {
USER_NAME: '',
PHONE: '',
ID_CARD: '',
CORPINFO_NAME: '',
DEPARTMENT_NAME: '',
VISIT_START_TIME: '',
VISIT_END_TIME: '',
DOOR_NAME: ''
}
this.getList()
},
//
getList() {
this.listLoading = true
requestFN(
'/vehiclemessage/freightVehiclesAudit?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page, this.form
).then((data) => {
console.log(data)
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
this.hasButton()
this.pd = data.pd
}).catch((e) => {
this.listLoading = false
})
}
}
}
</script>

View File

@ -0,0 +1,155 @@
<template>
<div>
<el-dialog
v-loading="loading"
:visible.sync="visible"
:append-to-body="appendToBody"
:before-close="beforeClose"
title="审批"
width="1200px"
destroy-on-close>
<el-form ref="form" :model="form" :rules="rules" label-width="200px" label-position="right" type="flex">
<el-row :gutter="12">
<el-col :span="12">
<el-form-item prop="STATUS" label="是否通过: ">
<el-select v-model="form.STATUS" filterable style="width: 300px" placeholder="请选择" @change="clearInfo">
<el-option label="是" value="1"/>
<el-option label="否" value="3"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col v-if="form.STATUS === '3'" :span="24">
<el-form-item v-if="form.STATUS === '3'" prop="OPINION" label="打回原因:">
<el-input v-model="form.OPINION" :rows="2" type="textarea" placeholder="填写审批意见"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="handleClose"> </el-button>
<el-button type="primary" @click="sendMessage"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import vueQr from 'vue-qr'
import Treeselect from '@riophae/vue-treeselect'
import uploadFile from '../../../util/uploadFile/index.vue'
import { requestFN } from '@/utils/request'
export default {
components: { uploadFile, Treeselect, vueQr },
props: {
appendToBody: {
type: Boolean,
default: false
}
},
data() {
return {
VEHICLE_ID: '',
visible: false,
loading: false,
form: {
STATUS: null,
APPOINT_CORP_ID: '',
APPOINT_CORP_NAME: '',
APPOINT_DEPARTMENT_ID: null,
APPOINT_DEPARTMENT_NAME: '',
APPOINT_USER_ID: null,
APPOINT_USER_NAME: '',
OPINION: '',
APPOINT_ANNEX: [],
user: '',
tm: new Date().getTime(),
list: [],
isShow: true,
info: {},
BACK_NAME: '',
BACK_STEP: ''
},
rules: {
STATUS: [
{ required: true, message: '请选择是否通过', trigger: 'change' }
],
OPINION: [
{ required: true, message: '请填写打回原因', trigger: 'change' }
]
},
heirloom: {},
normalizer(node) {
return {
id: node.id,
label: node.name,
children: node.nodes
}
},
departmentTree: [],
peopleList: [],
corpFlag: false,
menu: {
department: '',
user: '',
uploadFile: '',
limitFlag: ''
},
step: 0,
list: [],
ACCESS_AUDIT_ID: ''
}
},
methods: {
async init(e) {
console.log(e)
this.loading = true
this.visible = true
this.VEHICLE_ID = e.VEHICLE_ID
this.loading = false
},
beforeClose() {
this.handleClose()
},
handleClose() {
this.form = {
STATUS: '',
APPOINT_DEPARTMENT_ID: null,
APPOINT_DEPARTMENT_NAME: '',
APPOINT_USER_ID: '',
APPOINT_USER_NAME: '',
OPINION: '',
user: '',
list: [],
tm: new Date().getTime()
}
this.visible = false
},
goDetail() {
this.$parent.activeName = 'List'
},
sendMessage() {
requestFN(
'/vehiclemessage/qyAudit',
{
AUDITOR: JSON.parse(sessionStorage.getItem('user')).USER_ID,
VEHICLE_ID: this.VEHICLE_ID,
IS_AUDIT: this.form.STATUS,
REMARK: this.form.OPINION
}
).then((data) => {
this.visible = false
this.$emit('refresh', '')
}).catch((e) => {
this.loading = false
})
}
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,24 @@
<template>
<div>
<List v-show="activeName==='List'" ref="list" />
</div>
</template>
<script>
import List from './components/list'
export default {
components: {
List: List
},
data() {
return {
activeName: 'List',
USER_ID: ''
}
}
}
</script>
<style scoped>
</style>