1.相关方车辆入港申请

dev-2.0-mkmj
guoyuepeng 2025-07-23 11:10:12 +08:00
parent a830b6a4c7
commit 1371d526ae
3 changed files with 127 additions and 4 deletions

View File

@ -95,3 +95,4 @@ export const setVehiclemessageSave = (params) => post("/vehiclemessage/addVehicl
export const setVehiclemessageUpdate = (params) => post("/vehiclemessage/updateVehicleMessage", params);
export const getAuditUserList = (params) => post("/sys/user/audit/user", params);
export const setVehiclemessageDelete = (params) => post("/vehiclemessage/deleteVehicleMessage", params);
export const uploadSmd = (params) => upload("/busImgfiles/upload/smd", params); // 上传图片至smd不上传到数据库返回文件地址

View File

@ -38,6 +38,27 @@
<u-input v-model="form.QY_AUDITOR_NAME" border="none" readonly input-align="right"/>
<u-icon name="arrow-right"></u-icon>
</u-form-item>
<u-form-item label="行驶证照片" prop="drivingImgFiles" borderBottom required labelPosition="top"
labelWidth="auto">
<u-upload class="mt-10"
multiple
:fileList="form.drivingImgFiles"
:maxCount="2"
:preview-full-image="true"
@afterRead="fnAfterRead($event, 'drivingImgFiles')"
@delete="fnDeletePic($event, 'drivingImgFiles')"
></u-upload>
</u-form-item>
<u-form-item label="车辆照片" prop="vehicleImgFiles" borderBottom required labelPosition="top"
labelWidth="auto">
<u-upload class="mt-10"
multiple
:fileList="form.vehicleImgFiles"
:preview-full-image="true"
@afterRead="fnAfterRead($event, 'vehicleImgFiles')"
@delete="fnDeletePic($event, 'vehicleImgFiles')"
></u-upload>
</u-form-item>
</u-form>
<view class="mt-10">
<u-button type="primary" text="提交" @click="$u.debounce(fnSubmit, 1000, true)"/>
@ -53,7 +74,7 @@ import AppTime from "@/components/time/index.vue";
import AppDepartment from "@/components/department/index.vue";
import AppPersonnel from "@/components/personnel/index.vue";
import {addVehicleMessage,goCheckLicenceNo,getVehiclemessageView, setVehiclemessageSave,getCorpInfoList,
setVehiclemessageUpdate,getAuditUserList} from "@/api";
setVehiclemessageUpdate,getAuditUserList,uploadSmd} from "@/api";
export default {
components: {
AppTime,
@ -92,7 +113,10 @@ export default {
AUDITOR_DEPARTMENT_NAME: '',
portId: '',
QY_AUDITOR:'',
QY_AUDITOR_NAME:''
QY_AUDITOR_NAME:'',
drivingImgFiles: [],
vehicleImgFiles: [],
deleteFileIds: [],
},
rules: {
LICENCE_TYPE: [{type: 'string', required: true, message: '请选择车牌类型', trigger: ['blur', 'change']}],
@ -103,6 +127,8 @@ export default {
VISIT_START_TIME: [{type: 'string', required: true, message: '请选择有效期开始', trigger: ['blur', 'change']}],
VISIT_END_TIME: [{type: 'string', required: true, message: '请选择有效期结束', trigger: ['blur', 'change']}],
AUDITOR_DEPARTMENT_ID: [{type: 'string', required: true, message: '请选择审核部门', trigger: ['blur', 'change']}],
vehicleImgFiles: [{type: 'array', required: true, message: '请上传车辆照片', trigger: ['blur', 'change']}],
drivingImgFiles: [{type: 'array', required: true, message: '请上传行驶证照片', trigger: ['blur', 'change']}]
},
picker: {
show: false,
@ -195,7 +221,26 @@ export default {
uni.$u.toast('车牌号已存在')
return
}
const vehicleImgs = [];
const drivingImgs = [];
for (let i = 0; i < this.form.vehicleImgFiles.length; i++) {
if (!this.form.vehicleImgFiles[i].imgfilesId) {
const { imgUrl } = await uploadSmd({
filePath: this.form.vehicleImgFiles[i].url,
name: "file",
});
vehicleImgs.push(imgUrl);
}
}
for (let i = 0; i < this.form.drivingImgFiles.length; i++) {
if (!this.form.drivingImgFiles[i].imgfilesId) {
const { imgUrl } = await uploadSmd({
filePath: this.form.drivingImgFiles[i].url,
name: "file",
});
drivingImgs.push(imgUrl);
}
}
const params = {
...this.form,
DEPARTMENT_ID: this.userInfo.DEPARTMENT_ID,
@ -203,6 +248,11 @@ export default {
VEHICLE_DEPARTMENT_ID: this.userInfo.DEPARTMENT_ID,
VEHICLE_DEPARTMENT_NAME: this.userInfo.DEPARTMENT_NAME,
carForm:'2',
vehicleImgs: JSON.stringify(vehicleImgs),
drivingImgs: JSON.stringify(drivingImgs),
deleteFileIds: JSON.stringify(this.form.deleteFileIds),
vehicleImgFiles: null,
drivingImgFiles: null,
OLD_LICENCE_NO:this.form.LICENCE_NO
}
// const resData = await addVehicleMessage(params);
@ -242,6 +292,50 @@ export default {
}
this.form.corpInfoName = this.form.QY_AUDITOR_CORP_NAME
this.form.corpInfoId = this.form.QY_AUDITOR_CORP_ID
for (let i = 0; i < resData.pd.drivingImgs.length; i++) {
if (!Array.isArray(this.form.drivingImgFiles)) {
this.$set(this.form, "drivingImgFiles", []);
}
this.form.drivingImgFiles.push({
url: this.$filePath + resData.pd.drivingImgs[i].filepath,
...resData.pd.drivingImgs[i],
});
}
for (let i = 0; i < resData.pd.vehicleImgs.length; i++) {
if (!Array.isArray(this.form.vehicleImgFiles)) {
this.$set(this.form, "vehicleImgFiles", []);
}
this.form.vehicleImgFiles.push({
url: this.$filePath + resData.pd.vehicleImgs[i].filepath,
...resData.pd.vehicleImgs[i],
});
}
},
fnAfterRead(event, key) {
// (/)
const fileList = Array.isArray(event.file) ? event.file : [event.file];
//
if (!Array.isArray(this.form[key])) {
this.$set(this.form, key, []);
}
// ()
const newFiles = fileList.map(file => ({ ...file }));
this.form[key] = [...this.form[key], ...newFiles];
},
fnDeletePic(event, key) {
uni.showModal({
title: '提示',
content: '确定删除该图片吗?',
success: (res) => {
if (res.confirm) {
if (event?.file?.imgfilesId) {
this.form.deleteFileIds = this.form.deleteFileIds == null ? [] : this.form.deleteFileIds
this.form.deleteFileIds.push(event.file.imgfilesId);
}
this.form[key].splice(event.index, 1)
}
}
})
},
},
}

View File

@ -24,7 +24,29 @@
</u-cell>
<u-cell>
<view slot="title" class="title">车辆归属人</view>
<view slot="label" class="mt-10">{{ info.U_NAME }}</view>
<view slot="label" class="mt-10">{{ info.USER_NAME }}</view>
</u-cell>
<u-cell v-if="info.drivingImgs && info.drivingImgs.length > 0">
<view slot="title" class="title">行驶证照片</view>
<view slot="label" class="mt-10">
<view style="display: flex;flex-wrap: wrap">
<view v-for="item in info.drivingImgs" :key="item" class="ml-10 mt-10">
<u--image :showLoading="true" :src="item.FILEPATH" width="80px" height="80px"
@click="previewImage(item.FILEPATH, info.drivingImgs)"></u--image>
</view>
</view>
</view>
</u-cell>
<u-cell v-if="info.vehicleImgs && info.vehicleImgs.length > 0" >
<view slot="title" class="title">车辆照片</view>
<view slot="label" class="mt-10">
<view style="display: flex;flex-wrap: wrap">
<view v-for="item in info.vehicleImgs" :key="item" class="ml-10 mt-10">
<u--image :showLoading="true" :src="item.FILEPATH" width="80px" height="80px"
@click="previewImage(item.FILEPATH, info.vehicleImgs)"></u--image>
</view>
</view>
</view>
</u-cell>
</u-cell-group>
</view>
@ -64,6 +86,12 @@ export default {
async getData() {
const resData = await getVehiclemessageView({VEHICLE_ID: this.$route.query.VEHICLE_ID });
this.info = resData.pd;
for (let i = 0; i < resData.pd.drivingImgs?.length; i++) {
this.info.drivingImgs[i].FILEPATH = this.$filePath + resData.pd.drivingImgs[i].filepath;
}
for (let i = 0; i < resData.pd.vehicleImgs?.length; i++) {
this.info.vehicleImgs[i].FILEPATH = this.$filePath + resData.pd.vehicleImgs[i].filepath;
}
},
}
}