【bug】

1. 文件上传格式限制
2. 下拉框加搜索
pet_门口门禁
shanao 2025-01-21 09:18:07 +08:00
parent 681f3cf93c
commit bf7387a6ba
2 changed files with 221 additions and 173 deletions

View File

@ -63,10 +63,18 @@
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList"/>
</div>
<el-dialog :visible.sync="addDialogVisible" title="添加车辆信息" width="600px">
<el-form v-if="addDialogVisible" ref="addForm" :model="addForm" label-width="170px"
<el-form
v-if="addDialogVisible"
ref="addForm"
:model="addForm"
label-width="170px"
style="padding:0 20px; width: 500px;">
<el-form-item :rules="[{required: true ,message: '车牌号不能为空',trigger: 'blur'}]" label="车牌号" prop="LICENCE_NO">
<el-input v-model="addForm.LICENCE_NO" type="text" maxlength="300" placeholder="这里输入车牌号..."
<el-input
v-model="addForm.LICENCE_NO"
type="text"
maxlength="300"
placeholder="这里输入车牌号..."
@blur="goCheckLicenceNoAdd()"/>
</el-form-item>
<!-- 白牌蓝牌黄牌绿牌黑牌 下拉框-->
@ -102,66 +110,66 @@
placeholder="请选择是否危化车辆"
style="width: 300px"/>
</el-form-item>
<el-form-item label="负责人" prop="CONTACT" :rules="[{ required: true, message: '请填写负责人姓名', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请填写负责人姓名', trigger: 'blur' }]" label="负责人" prop="CONTACT">
<el-input v-model="addForm.CONTACT" type="text" maxlength="300" placeholder="这里输入负责人名称..."/>
</el-form-item>
<el-form-item label="负责人手机号" prop="PHONE" :rules="[{ required: true, message: '请填写负责人手机号', trigger: 'blur' },{ pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请填写负责人手机号', trigger: 'blur' },{ pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }]" label="负责人手机号" prop="PHONE">
<el-input v-model="addForm.PHONE" type="text" maxlength="11" placeholder="这里输入负责人手机号..."/>
</el-form-item>
<el-form-item label="排放标准" prop="EMISSION_STANDARDS" :rules="[{ required: true, message: '请填写排放标准', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请填写排放标准', trigger: 'blur' }]" label="排放标准" prop="EMISSION_STANDARDS">
<el-input v-model="addForm.EMISSION_STANDARDS" type="text" maxlength="300" placeholder="这里输入排放标准..."/>
</el-form-item>
<!-- 驾驶证 -->
<el-form-item label="驾驶证" prop="DRIVING_LICENSE" :rules="[{ required: true, message: '请上传驾驶证', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传驾驶证', trigger: 'blur' }]" label="驾驶证" prop="DRIVING_LICENSE">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleDrivingLicenseSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 绿本 -->
<el-form-item label="绿本" prop="GREEN_BOOK" :rules="[{ required: true, message: '请上传绿本', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传绿本', trigger: 'blur' }]" label="绿本" prop="GREEN_BOOK">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleGreenBookSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 环保随车清单 -->
<el-form-item label="环保随车清单" prop="ECO_FRIENDLY_CHECKLIST" :rules="[{ required: true, message: '请上传环保随车清单', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传环保随车清单', trigger: 'blur' }]" label="环保随车清单" prop="ECO_FRIENDLY_CHECKLIST">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleEcoFriendlyChecklistSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 出厂合格证 -->
<el-form-item label="出厂合格证" prop="FACTORY_CERTIFICATE" :rules="[{ required: true, message: '请上传出厂合格证', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传出厂合格证', trigger: 'blur' }]" label="出厂合格证" prop="FACTORY_CERTIFICATE">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleFactoryCertificateSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 环保信息截图 -->
<el-form-item label="环保信息截图" prop="ENVIRONMENTAL_SCREENSHOTS" :rules="[{ required: true, message: '请上传环保信息截图', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传环保信息截图', trigger: 'blur' }]" label="环保信息截图" prop="ENVIRONMENTAL_SCREENSHOTS">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleEnvironmentalScreenshotsSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
@ -173,10 +181,18 @@
</el-dialog>
<!--编辑-->
<el-dialog :visible.sync="editDialogVisible" title="编辑车辆信息" width="600px">
<el-form v-if="editDialogVisible" ref="editForm" :model="addForm" label-width="170px"
<el-form
v-if="editDialogVisible"
ref="editForm"
:model="addForm"
label-width="170px"
style="padding:0 20px; width: 500px;">
<el-form-item :rules="[{required: true ,message: '车牌号不能为空',trigger: 'blur'}]" label="车牌号" prop="LICENCE_NO">
<el-input v-model="addForm.LICENCE_NO" type="text" maxlength="300" placeholder="这里输入车牌号..."
<el-input
v-model="addForm.LICENCE_NO"
type="text"
maxlength="300"
placeholder="这里输入车牌号..."
@blur="goCheckLicenceNoAdd()"/>
</el-form-item>
<!-- 白牌蓝牌黄牌绿牌黑牌 下拉框-->
@ -212,66 +228,66 @@
placeholder="请选择是否危化车辆"
style="width: 300px"/>
</el-form-item>
<el-form-item label="负责人" prop="CONTACT" :rules="[{ required: true, message: '请填写负责人姓名', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请填写负责人姓名', trigger: 'blur' }]" label="负责人" prop="CONTACT">
<el-input v-model="addForm.CONTACT" type="text" maxlength="300" placeholder="这里输入负责人名称..."/>
</el-form-item>
<el-form-item label="负责人手机号" prop="PHONE" :rules="[{ required: true, message: '请填写负责人手机号', trigger: 'blur' },{ pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请填写负责人手机号', trigger: 'blur' },{ pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }]" label="负责人手机号" prop="PHONE">
<el-input v-model="addForm.PHONE" type="text" maxlength="11" placeholder="这里输入负责人手机号..."/>
</el-form-item>
<el-form-item label="排放标准" prop="EMISSION_STANDARDS" :rules="[{ required: true, message: '请填写排放标准', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请填写排放标准', trigger: 'blur' }]" label="排放标准" prop="EMISSION_STANDARDS">
<el-input v-model="addForm.EMISSION_STANDARDS" type="text" maxlength="300" placeholder="这里输入排放标准..."/>
</el-form-item>
<!-- 驾驶证 -->
<el-form-item label="驾驶证" prop="DRIVING_LICENSE" :rules="[{ required: true, message: '请上传驾驶证', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传驾驶证', trigger: 'blur' }]" label="驾驶证" prop="DRIVING_LICENSE">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleDrivingLicenseSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 绿本 -->
<el-form-item label="绿本" prop="GREEN_BOOK" :rules="[{ required: true, message: '请上传绿本', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传绿本', trigger: 'blur' }]" label="绿本" prop="GREEN_BOOK">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleGreenBookSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 环保随车清单 -->
<el-form-item label="环保随车清单" prop="ECO_FRIENDLY_CHECKLIST" :rules="[{ required: true, message: '请上传环保随车清单', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传环保随车清单', trigger: 'blur' }]" label="环保随车清单" prop="ECO_FRIENDLY_CHECKLIST">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleEcoFriendlyChecklistSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 出厂合格证 -->
<el-form-item label="出厂合格证" prop="FACTORY_CERTIFICATE" :rules="[{ required: true, message: '请上传出厂合格证', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传出厂合格证', trigger: 'blur' }]" label="出厂合格证" prop="FACTORY_CERTIFICATE">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleFactoryCertificateSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<!-- 环保信息截图 -->
<el-form-item label="环保信息截图" prop="ENVIRONMENTAL_SCREENSHOTS" :rules="[{ required: true, message: '请上传环保信息截图', trigger: 'blur' }]">
<el-form-item :rules="[{ required: true, message: '请上传环保信息截图', trigger: 'blur' }]" label="环保信息截图" prop="ENVIRONMENTAL_SCREENSHOTS">
<el-upload
action="http://127.0.0.1:8199/mkmj/management/fileUpload"
:on-success="handleEnvironmentalScreenshotsSuccess"
:before-upload="beforeUpload"
:limit="1">
:limit="1"
action="http://127.0.0.1:8199/mkmj/management/fileUpload">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
@ -281,7 +297,7 @@
<el-button type="primary" @click="editDialogConfirmBtn"> </el-button>
</div>
</el-dialog>
<div style="margin-left: 20px;"></div>
<div style="margin-left: 20px;"/>
<div class="bottom-btn-group" style="margin-top: 20px;">
<el-button size="mini" @click="goBack"></el-button>
</div>
@ -359,7 +375,7 @@ export default {
],
DANGEROUS_CAR_LIST: [
{ ID: '0', NAME: '否' },
{ID: '1', NAME: '是'},
{ ID: '1', NAME: '是' }
],
//
vehicleDefaultProps: {
@ -412,17 +428,17 @@ export default {
goCheckLicenceNoAdd() {
//
if (!this.addForm.LICENCE_NO) {
this.$message.error('车牌号不能为空'); //
this.ISCHECK = false; // false
return; //
this.$message.error('车牌号不能为空') //
this.ISCHECK = false // false
return //
}
//
const regex = /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$/;
const result = regex.test(this.addForm.LICENCE_NO);
const regex = /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$/
const result = regex.test(this.addForm.LICENCE_NO)
if (result) {
console.log('格式校验通过');
console.log('格式校验通过')
requestFN(
'/mkmj/management/goCheckLicenceNo',
{
@ -430,20 +446,20 @@ export default {
}
).then((data) => {
if (data.result === 'success') {
this.$message.success('验证通过');
this.ISCHECK = true;
this.$message.success('验证通过')
this.ISCHECK = true
} else {
this.$message.error('车牌号已存在,请重新输入');
this.ISCHECK = false;
this.$message.error('车牌号已存在,请重新输入')
this.ISCHECK = false
}
}).catch((e) => {
console.info(e);
this.listLoading = false;
this.ISCHECK = false;
});
console.info(e)
this.listLoading = false
this.ISCHECK = false
})
} else {
this.$message.error('车牌号不规范'); //
this.ISCHECK = false;
this.$message.error('车牌号不规范') //
this.ISCHECK = false
}
},
//
@ -468,30 +484,34 @@ export default {
this.addForm.ENVIRONMENTAL_SCREENSHOTS = ''
},
handleDrivingLicenseSuccess(response, file) {
this.addForm.DRIVING_LICENSE = response.uploadPath;
this.addForm.DRIVING_LICENSE = response.uploadPath
},
handleGreenBookSuccess(response, file) {
this.addForm.GREEN_BOOK = response.uploadPath;
this.addForm.GREEN_BOOK = response.uploadPath
},
handleEcoFriendlyChecklistSuccess(response, file) {
this.addForm.ECO_FRIENDLY_CHECKLIST = response.uploadPath;
this.addForm.ECO_FRIENDLY_CHECKLIST = response.uploadPath
},
handleFactoryCertificateSuccess(response, file) {
this.addForm.FACTORY_CERTIFICATE = response.uploadPath;
this.addForm.FACTORY_CERTIFICATE = response.uploadPath
},
handleEnvironmentalScreenshotsSuccess(response, file) {
this.addForm.ENVIRONMENTAL_SCREENSHOTS = response.uploadPath;
this.addForm.ENVIRONMENTAL_SCREENSHOTS = response.uploadPath
},
beforeUpload(file) {
//
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isLt2M) {
this.$message.error('上传文件大小不能超过 2MB!');
const isJPG = file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png'
if (!isJPG) {
this.$message.error('上传头像图片只能是 jpg/jpeg/png 格式!')
}
return isLt2M;
//
const isLt2M = file.size / 1024 / 1024 < 2
if (!isLt2M) {
this.$message.error('上传文件大小不能超过 2MB!')
}
return isJPG && isLt2M
},
addDialogCancelBtn() {
this.addDialogVisible = false;
this.addDialogVisible = false
},
addDialogConfirmBtn() {
this.$refs.addForm.validate(valid => {
@ -533,7 +553,7 @@ export default {
},
goEdit(row) {
this.editDialogVisible = true
this.addForm = {...row};
this.addForm = { ...row }
},
editDialogCancelBtn() {
this.editDialogVisible = false

View File

@ -72,60 +72,58 @@
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
<el-dialog
title="申请信息"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose">
<el-form ref="auditForm" :model="auditForm" label-width="120px">
<el-form-item label="访问起始时间">
:before-close="handleClose"
title="申请信息"
width="30%">
<el-form ref="auditForm" :model="auditForm" :rules="rules" label-width="120px">
<el-form-item label="访问起始时间" prop="VISIT_START_TIME">
<el-date-picker
v-model="auditForm.VISIT_START_TIME"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
placeholder="选择日期时间"/>
</el-form-item>
<el-form-item label="访问结束时间">
<el-form-item label="访问结束时间" prop="VISIT_END_TIME">
<el-date-picker
v-model="auditForm.VISIT_END_TIME"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
placeholder="选择日期时间"/>
</el-form-item>
<el-form-item label="审核人公司" v-if="showCorpSelect">
<el-form-item v-if="showCorpSelect" label="审核人公司" prop="CORPINFO_ID">
<el-select
v-model="auditForm.CORPINFO_ID"
placeholder="请选择公司"
filterable
@change="handleCorpChange">
<el-option
v-for="corp in corpList"
:key="corp.CORPINFO_ID"
:label="corp.CORP_NAME"
:value="corp.CORPINFO_ID">
</el-option>
:value="corp.CORPINFO_ID"/>
</el-select>
</el-form-item>
<el-form-item label="审核人">
<el-form-item label="审核人" prop="AUDITOR_ID">
<el-select
v-model="auditForm.AUDITOR_ID"
filterable
placeholder="请选择审核人">
<el-option
v-for="auditor in personList"
:key="auditor.USER_ID"
:label="auditor.USERNAME"
:value="auditor.USER_ID">
</el-option>
:value="auditor.USER_ID"/>
</el-select>
</el-form-item>
<el-form-item label="访问地">
<el-form-item label="访问地" prop="VISIT_PLACE">
<el-select
v-model="auditForm.VISIT_PLACE"
filterable
placeholder="请选择访问口门">
<el-option
v-for="place in doorList"
:key="place.DOOR_ID"
:label="place.DOOR_NAME"
:value="place.DOOR_ID">
</el-option>
:value="place.DOOR_ID"/>
</el-select>
</el-form-item>
</el-form>
@ -136,18 +134,17 @@
</el-dialog>
<el-dialog
title="驳回原因"
:visible.sync="remarkDialogVisible"
width="30%"
:before-close="handleRemarkClose">
:before-close="handleRemarkClose"
title="驳回原因"
width="30%">
<el-form>
<el-form-item label="驳回原因">
<el-input
v-model="remarkText"
type="textarea"
:rows="4"
readonly>
</el-input>
type="textarea"
readonly/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@ -186,7 +183,7 @@ export default{
VEHICLE_TYPE: '',
CONTACT: '',
PHONE: '',
EMISSION_STANDARDS:'',
EMISSION_STANDARDS: ''
},
form: {
MOTORCADE_NAME: '',
@ -233,6 +230,32 @@ export default{
value: 'ID',
label: 'NAME',
children: 'nodes'
},
rules: {
VISIT_START_TIME: [
{ required: true, message: '访问起始时间不能为空', trigger: 'blur' },
{ validator: (rule, value, callback) => {
if (value !== '') {
if (this.auditForm.VISIT_START_TIME !== '') {
this.$refs.auditForm.validateField('VISIT_END_TIME')
}
callback()
}
}, trigger: 'change' }
],
VISIT_END_TIME: [
{ required: true, message: '访问结束时间不能为空', trigger: 'blur' },
{ validator: (rule, value, callback) => {
if (value !== '' && this.auditForm.VISIT_START_TIME &&
this.auditForm.VISIT_START_TIME >= this.auditForm.VISIT_END_TIME) {
callback(new Error('起始时间不能大于结束时间'))
}
callback()
}, trigger: 'change' }
],
CORPINFO_ID: [{ required: true, message: '审核公司不能为空', trigger: 'blur' }],
AUDITOR_ID: [{ required: true, message: '审核人不能为空', trigger: 'blur' }],
VISIT_PLACE: [{ required: true, message: '访问地不能为空', trigger: 'blur' }]
}
}
},
@ -255,11 +278,11 @@ export default{
this.getList()
},
remark(row) {
this.remarkText = row.QY_REMARK || row.GA_REMARK; // row.REJECT_REASON
this.remarkDialogVisible = true; //
this.remarkText = row.QY_REMARK || row.GA_REMARK // row.REJECT_REASON
this.remarkDialogVisible = true //
},
handleRemarkClose() {
this.remarkDialogVisible = false; //
this.remarkDialogVisible = false //
},
translateLicenceType(id) {
for (var i = 0; i < this.licenceTypeList.length; i++) {
@ -293,49 +316,53 @@ export default{
})
},
apply(row) {
this.dialogVisible = true;
this.dialogVisible = true
this.auditForm = {
VISIT_START_TIME: '',
VISIT_END_TIME: '',
CORPINFO_ID: '',
AUDITOR_ID: '',
VISIT_PLACE: ''
};
}
this.VEHICLE_ID = row.VEHICLE_ID
this.IS_DANGEROUS_CAR = row.IS_DANGEROUS_CAR
this.showCorpSelect = row.IS_DANGEROUS_CAR !== '1';
this.showCorpSelect = row.IS_DANGEROUS_CAR !== '1'
// 访
this.getCorpList();
this.getPlaceList();
this.getCorpList()
this.getPlaceList()
if (!this.showCorpSelect) {
this.getAuditorList();
this.getAuditorList()
}
},
handleCorpChange(corpId) {
// ID
this.getAuditorList(corpId);
this.getAuditorList(corpId)
},
getCorpList() {
//
requestFN('/mkmj/management/getCorpList').then(response => {
this.corpList = response.corpList;
});
this.corpList = response.corpList
})
},
getAuditorList(corpId) {
//
requestFN('/mkmj/management/getPersonList',
{ CORPINFO_ID: corpId }
).then(response => {
this.personList = response.personList;
});
this.personList = response.personList
})
},
getPlaceList() {
// 访
requestFN('/mkmj/management/getPlaceList').then(response => {
this.doorList = response.doorList;
});
this.doorList = response.doorList
})
},
submitAudit() {
this.$refs.auditForm.validate(valid => {
if (!valid) {
return false
}
//
requestFN('/mkmj/management/intoPortApplication',
{
@ -347,20 +374,21 @@ export default{
DOOR_ID: this.auditForm.VISIT_PLACE
}
).then(response => {
this.$message.success('申请提交成功');
this.dialogVisible = false;
this.$message.success('申请提交成功')
this.dialogVisible = false
this.getList()
});
})
})
},
handleClose() {
this.dialogVisible = false;
this.dialogVisible = false
this.auditForm = {
VISIT_START_TIME: '',
VISIT_END_TIME: '',
CORPINFO_ID: '',
AUDITOR_ID: '',
VISIT_PLACE: ''
};
}
},
returnBtn() {
this.$parent.activeName = 'List'