You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
554 lines
21 KiB
554 lines
21 KiB
<template>
|
|
<div class="app-container">
|
|
<div class="tab-header webtop">
|
|
<div>{{ viewTitle }}</div>
|
|
<div>
|
|
<el-button type="primary" size="small" @click="handleCreate()">保存</el-button>
|
|
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
|
|
</div>
|
|
</div>
|
|
<div class="listconadd">
|
|
<el-form ref="dataForm" :model="temp" label-position="right" label-width="190px" class="formadd" :rules="rules">
|
|
<div class="title">合格证基础信息</div>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="certificationNo">
|
|
<span slot="label">合格证编号:</span>
|
|
<el-input v-model="temp.certificationNo" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="certificateDate">
|
|
<span slot="label">发证日期:</span>
|
|
<el-date-picker v-model="temp.certificateDate" type="date" class="addinputw" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期时间"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="certificateStateValue">
|
|
<span slot="label">合格证状态:</span>
|
|
<el-select v-model="temp.certificateState" :disabled="dialogStatus == 'add'" class="addinputw" placeholder="请选择合格证状态" @change="getHeGeZheng">
|
|
<el-option v-for="item in Situation" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="toCardDate">
|
|
<span slot="label">到证日期:</span>
|
|
<el-date-picker v-model="temp.toCardDate" type="date" class="addinputw" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期时间"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="receiveDate">
|
|
<span slot="label">借用日期:</span>
|
|
<el-date-picker v-model="temp.receiveDate" type="date" class="addinputw" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期时间"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="receiver">
|
|
<span slot="label">借用人:</span>
|
|
<el-input v-model="temp.receiver" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<!-- <el-row>-->
|
|
<!-- <el-col :span="12">-->
|
|
<!-- <el-form-item prop="receiveDate">-->
|
|
<!-- <span slot="label">接收日期:</span>-->
|
|
<!-- <el-date-picker v-model="temp.acceptDate" type="date" class="addinputw" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期时间"/>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </el-col>-->
|
|
<!-- <el-col :span="12">-->
|
|
<!-- <el-form-item prop="receiver">-->
|
|
<!-- <span slot="label">接收人:</span>-->
|
|
<!-- <el-input v-model="temp.acceptName" maxlength="125" placeholder="" class="addinputw" clearable/>-->
|
|
<!-- </el-form-item>-->
|
|
<!-- </el-col>-->
|
|
<!-- </el-row>-->
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="remarks">
|
|
<span slot="label">移交状态:</span>
|
|
<el-select v-model="temp.transferStateKey" class="addinputw" clearable placeholder="请选择移交状态" @change="transferStateChange">
|
|
<el-option v-for="item in transferState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="receiver" v-show="temp.certificateState == '0002'">
|
|
<span slot="label">公告型号:</span>
|
|
<el-input v-model="temp.noticeModel" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item prop="remarks">
|
|
<span slot="label">备注:</span>
|
|
<span>{{ temp.remarks }}</span>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item prop="certificatePhoto">
|
|
<span slot="label">合格证照片:</span>
|
|
<ImageUpload types="0001" style="float:left;" v-model="temp.certificatePhoto" @fileChange="fileChangeIt"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<div class="title">合格证详细信息</div>
|
|
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">车辆制造企业名称:</span>
|
|
<el-input v-model="temp.manufacturer" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">车辆品牌:</span>
|
|
<el-input v-model="temp.carBrand" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">车辆名称:</span>
|
|
<el-input v-model="temp.carName" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">车辆型号:</span>
|
|
<el-input v-model="temp.carModel" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">车架号:</span>
|
|
<el-input v-model="temp.vinNo" placeholder="" maxlength="17" clearable class="addinputw"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">车身颜色:</span>
|
|
<el-input v-model="temp.carColor" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">底盘型号:</span>
|
|
<el-input v-model="temp.chassisModel" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">底盘ID:</span>
|
|
<el-input v-model="temp.chassisId" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">发动机型号:</span>
|
|
<el-input v-model="temp.engineType" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">发动机号:</span>
|
|
<el-input v-model="temp.engineNo" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">燃料种类:</span>
|
|
<el-input v-model="temp.fuelType" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<el-form-item>
|
|
<span slot="label">排量:</span>
|
|
<el-input v-model="temp.displacement" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<el-form-item>
|
|
<span slot="label">功率:</span>
|
|
<el-input v-model="temp.power" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">排放标准:</span>
|
|
<el-input v-model="temp.emissionStandard" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">轮胎数:</span>
|
|
<el-input v-model="temp.tyreNum" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">轴距:</span>
|
|
<el-input v-model="temp.wheelbase" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">轴数:</span>
|
|
<el-input v-model="temp.axleNum" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">转向型式:</span>
|
|
<el-input v-model="temp.steeringType" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">总质量:</span>
|
|
<el-input v-model="temp.totalWeight" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">整备质量:</span>
|
|
<el-input v-model="temp.saddleMass" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">驾驶室准乘人数:</span>
|
|
<el-input v-model="temp.seatingCapacity" maxlength="125" placeholder="" class="addinputwOne" clearable @keyup.native="temp.seatingCapacity = oninput(temp.seatingCapacity,2)"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">额定载客(人):</span>
|
|
<el-input v-model="temp.limitPassenger" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">最高设计车速:</span>
|
|
<el-input v-model="temp.speedLimit" maxlength="125" placeholder="" class="addinputwOne" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="24">
|
|
<el-form-item>
|
|
<span slot="label">车辆制造日期:</span>
|
|
<el-date-picker v-model="temp.manufactureDate" type="date" format="yyyy-MM-dd" class="addinputwOne" value-format="yyyy-MM-dd" placeholder="选择日期时间"/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">合格印章:</span>
|
|
<el-input v-model="temp.qualifySeal" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item>
|
|
<span slot="label">CGS印章:</span>
|
|
<el-input v-model="temp.cgsseal" maxlength="125" placeholder="" class="addinputw" clearable/>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</div>
|
|
<el-dialog center :visible.sync="dialogVisible" width="50%" :close-on-click-modal="false">
|
|
<el-form class="formadd">
|
|
<el-row style="border-top: 1px solid #E0E3EB">
|
|
<el-col :span="3" class="tleftb">
|
|
<span>说明原因</span>
|
|
</el-col>
|
|
<el-col :span="21">
|
|
<el-form-item><el-input v-model="smRemarks" type="textarea" :rows="3" maxlength="125" placeholder="" class="addinputw addinputw_remarks" clearable/></el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button type="primary" size="small" @click="handleCreate">确 定</el-button>
|
|
<el-button size="small" @click="handleQuXiao">取 消</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { details, SaveList, Update } from '@/api/cheliang/basevehiclecertificate'
|
|
import { typeValues } from '@/api/cheliang/dictcommons'
|
|
import ImageUpload from '@/components/uploadFile/ManyImageUpload' // 上传文件
|
|
export default {
|
|
name: 'PinpaiAdd',
|
|
components: { ImageUpload },
|
|
data() {
|
|
return {
|
|
viewTitle: '',
|
|
dialogVisible: false,
|
|
smRemarks: '',
|
|
FormLoading: false,
|
|
listLoading: false,
|
|
temp: {
|
|
createOrgSid: '',
|
|
certificateSituation: '',
|
|
certificateSituationValue: '',
|
|
certificatePhoto: [],
|
|
certificateState: '004', // 合格证状态key
|
|
certificateStateValue: '正式', // 合格证状态value
|
|
noticeModel: '', // 公告型号
|
|
smRemarks: '',
|
|
carModel: ''
|
|
}, // 添加和修改
|
|
Situation: [],
|
|
transferState_list: [],
|
|
dialogFormVisible: false, // 添加修改对话框状态
|
|
dialogStatus: '', // 对话框状态
|
|
attachTypeYingyezhizhao: [],
|
|
rules: {
|
|
certificationNo: [
|
|
{ required: true, message: '请填写合格证编号', trigger: 'blur' }
|
|
],
|
|
certificateDate: [
|
|
{ required: true, message: '请选择发证日期', trigger: 'blur' }
|
|
],
|
|
certificateSituation: [
|
|
{ required: true, message: '请选择合格证情况', trigger: 'change' }
|
|
],
|
|
toCardDate: [
|
|
{ required: true, message: '请选择到证日期', trigger: 'blur' }
|
|
],
|
|
certificateState: [
|
|
{ required: true, message: '请选择合格证状态', trigger: 'change' }
|
|
],
|
|
certificateStateValue: [
|
|
{ required: true, message: '请选择合格证状态', trigger: 'change' }
|
|
]
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
this.setDate()
|
|
},
|
|
methods: {
|
|
setDate() {
|
|
// 合格证状态
|
|
typeValues({ type: 'certificateState' }).then((res) => {
|
|
console.log(res)
|
|
if (res.code === '200') {
|
|
this.Situation = res.data
|
|
}
|
|
})
|
|
// 移交状态
|
|
typeValues({ type: 'transferState' }).then((res) => {
|
|
console.log(res)
|
|
if (res.code === '200') {
|
|
this.transferState_list = res.data
|
|
}
|
|
})
|
|
},
|
|
showAdd(createOrgSid) {
|
|
this.$nextTick(() => {
|
|
this.$refs['dataForm'].clearValidate()
|
|
})
|
|
this.dialogStatus = 'add'
|
|
this.viewTitle = '【新增】合格证信息'
|
|
this.temp.certificateState = '004'
|
|
this.temp.certificateStateValue = '正式'
|
|
this.temp.createOrgSid = createOrgSid
|
|
},
|
|
showEdit(sid, row, createOrgSid) {
|
|
this.$nextTick(() => {
|
|
this.$refs['dataForm'].clearValidate()
|
|
})
|
|
this.viewTitle = '【编辑】合格证信息'
|
|
this.dialogStatus = 'update'
|
|
details(sid).then((resp) => {
|
|
if (resp.success) {
|
|
const data = resp.data
|
|
this.temp = data
|
|
this.temp.sid = sid
|
|
this.temp.createOrgSid = createOrgSid
|
|
}
|
|
}).catch(e => {
|
|
this.temp = row
|
|
})
|
|
},
|
|
// 输入数字正则
|
|
oninput(val, limit = 0) {
|
|
val = val.replace(/[^\d.]/g, '') // 保留数字
|
|
val = val.replace(/^00/, '0.') // 开头不能有两个0
|
|
val = val.replace(/^\./g, '0.') // 开头为小数点转换为0.
|
|
val = val.replace(/\.{2,}/g, '.') // 两个以上的小数点转换成一个
|
|
val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); // 只保留一个小数点
|
|
/^0\d+/.test(val) ? val = val.slice(1) : '' // 两位以上数字开头不能为0
|
|
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$'
|
|
const reg = new RegExp(str)
|
|
if (limit === 0) {
|
|
// 不需要小数点
|
|
val = val.replace(reg, '$1')
|
|
} else {
|
|
// 通过正则保留小数点后指定的位数
|
|
val = val.replace(reg, '$1.$2')
|
|
}
|
|
return val
|
|
},
|
|
// 合格证状态
|
|
getHeGeZheng(value) {
|
|
let bb = null
|
|
this.Situation.forEach(e => {
|
|
if (e.dictKey === value) {
|
|
bb = {
|
|
name: e.dictValue,
|
|
key: e.dictKey
|
|
}
|
|
}
|
|
})
|
|
this.temp.certificateStateValue = bb.name
|
|
console.log('value值', this.temp.certificateStateValue)
|
|
if (value == '0001') {
|
|
this.temp.noticeModel = ''
|
|
}
|
|
},
|
|
// 移交状态
|
|
transferStateChange(val) {
|
|
if (val) {
|
|
const choosetItem = this.transferState_list.filter((item) => item.dictKey === val)
|
|
this.temp.transferStateValue = choosetItem[0].dictValue
|
|
console.log('name:', this.temp.transferStateValue, 'key:', this.temp.transferStateKey)
|
|
}
|
|
},
|
|
// ----------------------------------方法--------------------
|
|
fileChangeIt(files, imgFiles) {
|
|
this.temp.certificatePhoto = imgFiles
|
|
},
|
|
// 提交添加数据
|
|
handleCreate() {
|
|
if (this.temp.vinNo !== '' && this.temp.vinNo !== null && this.temp.vinNo !== undefined && this.temp.vinNo.length < 17 && this.temp.vinNo.length !== 8) {
|
|
this.$message({ showClose: true, type: 'error', message: '请检查车架号的长度应为8位或17位' })
|
|
return
|
|
}
|
|
if (this.temp.certificateStateValue === '正式' && this.temp.carModel === '') {
|
|
this.$message({ showClose: true, type: 'error', message: '因合格证状态为正式,则车辆型号不能为空' })
|
|
return
|
|
}
|
|
this.$refs['dataForm'].validate((valid) => {
|
|
if (valid) {
|
|
this.FormLoading = true
|
|
if (this.dialogStatus === 'add') {
|
|
// this.temp.certificatePhoto = this.attachTypeYingyezhizhao
|
|
SaveList(this.temp).then((response) => {
|
|
this.FormLoading = false
|
|
if (response.success) {
|
|
this.dialogFormVisible = false
|
|
this.$notify({
|
|
title: '提示',
|
|
message: '添加成功',
|
|
type: 'success',
|
|
duration: 2000
|
|
})
|
|
this.handleReturn('true')
|
|
}
|
|
})
|
|
} else {
|
|
// this.temp.certificatePhoto = this.attachTypeYingyezhizhao
|
|
this.temp.smRemarks = this.smRemarks
|
|
Update(this.temp).then((response) => {
|
|
this.FormLoading = false
|
|
if (response.success) {
|
|
if (response.msg !== '该车架号后八位与车辆台账中车架号不符,请填写说明原因') {
|
|
this.dialogFormVisible = false
|
|
this.$notify({
|
|
title: '提示',
|
|
message: '修改成功',
|
|
type: 'success',
|
|
duration: 2000
|
|
})
|
|
this.handleReturn('true')
|
|
} else {
|
|
const tip = response.msg
|
|
this.$confirm(tip, '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
this.smRemarks = ''
|
|
this.dialogVisible = true
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
handleQuXiao() {
|
|
this.smRemarks = ''
|
|
this.dialogVisible = false
|
|
},
|
|
// 返回
|
|
handleReturn(isreload) {
|
|
if (isreload === 'true') this.$emit('reloadlist')
|
|
this.temp = {
|
|
certificateSituation: '',
|
|
certificateSituationValue: '',
|
|
certificatePhoto: [],
|
|
certificateState: '0002', // 合格证状态key
|
|
certificateStateValue: '正式', // 合格证状态value
|
|
smRemarks: ''
|
|
} // 添加和修改
|
|
this.dialogVisible = false
|
|
this.smRemarks = ''
|
|
this.$emit('doback')
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style scoped>
|
|
.formadd .el-row .el-col /deep/ .el-form-item .addinputw_remarks {
|
|
width: 92%;
|
|
}
|
|
.addinputwOne {
|
|
width: 33.5%;
|
|
}
|
|
</style>
|
|
|