更新页面

This commit is contained in:
2026-04-24 18:01:42 +08:00
parent 50e694ef4b
commit c6d5f461c0
2 changed files with 97 additions and 19 deletions

View File

@ -146,3 +146,44 @@ export function getEventUnfinished(params) {
params params
}); });
} }
/**
* 新增随时拍
* @param {Object} data - 随时拍数据
* @param {string} data.hphm - 号牌号码(必填)
* @param {string} data.sbbh - 设备编号
* @param {string} data.zqmj - 执勤民警
* @param {string} data.clfl - 车辆分类
* @param {string} data.hpzl - 号牌种类
* @param {string} data.xzqh - 违法地行政区划
* @param {string} data.wfdd - 违法地点
* @param {string} data.lddm - 路段代码
* @param {number} data.kms - 公里数
* @param {string} data.ddms - 地点米数
* @param {string} data.wfdz - 违法地址
* @param {string} data.wfsj - 违法时间
* @param {string} data.wfsj1 - 违法时间1
* @param {string} data.wfxw - 违法行为
* @param {string} data.scz - 实测值
* @param {string} data.bzz - 标准值
* @param {string} data.zpsl - 照片数量
* @param {string} data.zpxm - 图片文件名
* @param {string} data.zpstr1 - 照片1 (base64)
* @param {string} data.zpstr2 - 照片2 (base64)
* @param {string} data.zpstr3 - 照片3 (base64)
* @param {string} data.wfspdz - 违法视频地址
* @param {string} data.fxjg - 违法发现机关
* @param {string} data.tpfs - 图片方式
* @param {string} data.zpur11 - 照片链接1
* @param {string} data.zpur12 - 照片链接2
* @param {string} data.zpur13 - 照片链接3
* @param {string} data.tzsh - 通知书号
* @param {string} data.tzrq - 通知日期
*/
export function addSsPai(data) {
return service({
url: '/api/traffic/sspai',
method: 'post',
data
});
}

View File

@ -15,7 +15,6 @@
<van-form @submit="handleSubmit" class="form"> <van-form @submit="handleSubmit" class="form">
<div class="form-content"> <div class="form-content">
<!-- 设备信息 --> <!-- 设备信息 -->
<div class="section-card"> <div class="section-card">
<div class="section-header" @click="toggleSection('device')"> <div class="section-header" @click="toggleSection('device')">
@ -68,7 +67,7 @@
<van-field v-model="formData.ddmcs" name="地点米数" label="地点米数" placeholder="请输入地点米数" /> <van-field v-model="formData.ddmcs" name="地点米数" label="地点米数" placeholder="请输入地点米数" />
<van-field v-model="formData.wfdz" name="违法地址" label="违法地址" placeholder="请输入违法地址" /> <van-field v-model="formData.wfdz" name="违法地址" label="违法地址" placeholder="请输入违法地址" />
<van-field v-model="formData.wffssj" @click="openPicker('违法发生时间', 'wffssj')" is-link readonly name="违法发生时间" label="违法发生时间" placeholder="请选择违法发生时间"/> <van-field v-model="formData.wffssj" @click="openPicker('违法发生时间', 'wffssj')" is-link readonly name="违法发生时间" label="违法发生时间" placeholder="请选择违法发生时间"/>
<van-field v-model="formData.wfsj" name="违法时间" label="违法时间" placeholder="HH:mm:ss" /> <van-field v-model="formData.wfsj" name="违法时间" label="违法时间" placeholder="请输入违法时间" readonly />
<van-field v-model="formData.scz" name="实测值" label="实测值" placeholder="请输入实测值" /> <van-field v-model="formData.scz" name="实测值" label="实测值" placeholder="请输入实测值" />
<van-field v-model="formData.bzz" name="标准值" label="标准值" placeholder="请输入标准值" /> <van-field v-model="formData.bzz" name="标准值" label="标准值" placeholder="请输入标准值" />
<van-field v-model="formData.wffxjg" name="违法发现机关" label="违法发现机关" placeholder="请输入违法发现机关" /> <van-field v-model="formData.wffxjg" name="违法发现机关" label="违法发现机关" placeholder="请输入违法发现机关" />
@ -146,6 +145,7 @@ import { ref, reactive, onMounted } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { Toast } from "vant"; import { Toast } from "vant";
import { upImage } from "@/api/common"; import { upImage } from "@/api/common";
import { addSsPai } from "@/api/traffic";
const isLoading = ref(false); const isLoading = ref(false);
const router = useRouter(); const router = useRouter();
const chooseType = ref(null) //选择的类型 const chooseType = ref(null) //选择的类型
@ -292,14 +292,6 @@ function openPicker(name,type) {
} }
const officerColumns = [
{ text: "张三", value: "001" },
{ text: "李四", value: "002" },
{ text: "王五", value: "003" }
];
// 切换区域展开状态 // 切换区域展开状态
function toggleSection(key) { function toggleSection(key) {
openSections[key] = !openSections[key]; openSections[key] = !openSections[key];
@ -325,17 +317,62 @@ function goBack() {
} }
// 提交表单 // 提交表单
function handleSubmit() { async function handleSubmit() {
isLoading.value = true; isLoading.value = true;
// 提交数据
const submitData = {
...formData,
photos: photoList.value.filter(p => p.url).map(p => p.url)
};
console.log("提交数据:", submitData);
Toast("提交成功");
router.back();
try {
// 字段映射:页面字段 -> API字段
const submitData = {
sbbh: formData.sbbhdm || formData.sbbh,
zqmj: formData.zfmj,
clfl: formData.clfldm || formData.clfl,
hpzl: formData.hpzldm || formData.hpzl,
hphm: formData.hppch,
xzqh: formData.wgxzqdm || formData.wgxzq,
wfdd: formData.wgdd,
lddm: formData.ldmkms,
ddms: formData.ddmcs,
wfdz: formData.wfdz,
wfsj: formData.wffssj,
wfsj1: formData.wfsj,
scz: formData.scz,
bzz: formData.bzz,
zpsl: formData.zpsl,
zpxm: formData.tpmc,
wfspdz: formData.wfspdz,
fxjg: formData.wffxjg,
tpfs: formData.tpfsdm || formData.tpfs,
tzsh: formData.qtlx,
tzrq: formData.tzrq,
};
// 照片处理base64 或 URL
const uploadedPhotos = photoList.value.filter(p => p.url);
uploadedPhotos.forEach((photo, index) => {
if (index < 3) {
// 判断是 base64 还是 URL
if (photo.url.startsWith('data:')) {
submitData[`zpstr${index + 1}`] = photo.url;
} else {
submitData[`zpur1${index + 1}`] = photo.url;
}
}
});
console.log("提交数据:", submitData);
const res = await addSsPai(submitData);
if (res.code === 200 || res.code === 0) {
Toast("提交成功");
router.back();
} else {
Toast(res.msg || "提交失败");
}
} catch (error) {
console.error("提交失败:", error);
Toast("提交失败请重试");
} finally {
isLoading.value = false;
}
} }
onMounted(() => { onMounted(() => {