This commit is contained in:
2026-04-27 10:12:53 +08:00
parent 9332db0198
commit 48dd162ead
2 changed files with 36 additions and 71 deletions

View File

@ -182,7 +182,7 @@ export function getEventUnfinished(params) {
*/
export function addSsPai(data) {
return service({
url: '/api/traffic/sspai',
url: '/traffic/sspai',
method: 'post',
data
});

View File

@ -26,8 +26,8 @@
</div>
<div class="section-body" v-show="openSections.device">
<van-cell-group :border="false">
<van-field v-model="formData.sbbh" @click="openPicker('设备编号', 'sbbh')" is-link readonly name="设备编号" label="设备编号" placeholder="请选择" required :rules="[{ required: true, message: '请选择设备编号' }]"/>
<van-field v-model="formData.zfmj" @click="openPicker('执法民警', 'zfmj')" is-link readonly name="执法民警" label="执法民警" placeholder="请选择" required :rules="[{ required: true, message: '请选择执法民警' }]"/>
<van-field v-model="formData.sbbhMc" @click="openPicker('设备编号', 'sbbh')" is-link readonly name="设备编号" label="设备编号" placeholder="请选择" required :rules="[{ required: true, message: '请选择设备编号' }]"/>
<van-field v-model="formData.zqmjMc" @click="openPicker('执法民警', 'zqmj')" is-link readonly name="执法民警" label="执法民警" placeholder="请选择" required :rules="[{ required: true, message: '请选择执法民警' }]"/>
</van-cell-group>
</div>
</div>
@ -43,9 +43,9 @@
</div>
<div class="section-body" v-show="openSections.vehicle">
<van-cell-group :border="false">
<van-field v-model="formData.clfl" @click="openPicker('车辆分类', 'clfl')" is-link readonly name="车辆分类" label="车辆分类" placeholder="请选择"/>
<van-field v-model="formData.hpzl" @click="openPicker('号牌种类', 'hpzl')" is-link readonly name="号牌种类" label="号牌种类" placeholder="请选择"/>
<van-field v-model="formData.hppch" name="号牌牌号" label="号牌牌号" placeholder="请输入" maxlength="10" />
<van-field v-model="formData.clflMc" @click="openPicker('车辆分类', 'clfl')" is-link readonly name="车辆分类" label="车辆分类" placeholder="请选择"/>
<van-field v-model="formData.hpzlMc" @click="openPicker('号牌种类', 'hpzl')" is-link readonly name="号牌种类" label="号牌种类" placeholder="请选择"/>
<van-field v-model="formData.hphm" name="号牌牌号" label="号牌牌号" placeholder="请输入" maxlength="10" />
</van-cell-group>
</div>
</div>
@ -61,16 +61,16 @@
</div>
<div class="section-body" v-show="openSections.violation">
<van-cell-group :border="false">
<van-field v-model="formData.wgxzq" @click="openPicker('非法行政区划', 'wgxzq')" is-link readonly name="非法行政区划" label="非法行政区划" placeholder="请输入非法行政区划" />
<van-field v-model="formData.wgdd" name="违法地点" label="违法地点" placeholder="请输入违法地点" required :rules="[{ required: true, message: '请输入违法地点' }]" />
<van-field v-model="formData.ldmkms" 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.wffssj" @click="openPicker('违法发生时间', 'wffssj')" is-link readonly name="违法发生时间" label="违法发生时间" placeholder="请选择违法发生时间"/>
<van-field v-model="formData.wfsj" name="违法时间" label="违法时间" placeholder="请输入违法时间" readonly />
<van-field v-model="formData.xzqhMc" @click="openPicker('非法行政区划', 'xzqh')" is-link readonly name="非法行政区划" label="非法行政区划" placeholder="请输入非法行政区划" />
<van-field v-model="formData.wgddMc" name="违法地点" label="违法地点" placeholder="请输入违法地点" required :rules="[{ required: true, message: '请输入违法地点' }]" />
<van-field v-model="formData.lddmMc" name="路段码公里数" label="路段码公里数" placeholder="请输入路段码公里数" />
<van-field v-model="formData.ddmsMc" name="地点米数" label="地点米数" placeholder="请输入地点米数" />
<van-field v-model="formData.wfdzMc" name="违法地址" label="违法地址" placeholder="请输入违法地址" />
<van-field v-model="formData.wfsj" @click="openPicker('违法发生时间', 'wfsj')" is-link readonly name="违法发生时间" label="违法发生时间" placeholder="请选择违法发生时间"/>
<van-field v-model="formData.wfsj1" @click="openPicker('违法时间', 'wfsj1')" is-link readonly 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.wffxjg" name="违法发现机关" label="违法发现机关" placeholder="请输入违法发现机关" />
<van-field v-model="formData.fxjg" name="违法发现机关" label="违法发现机关" placeholder="请输入违法发现机关" />
</van-cell-group>
</div>
</div>
@ -101,9 +101,9 @@
</div>
<!-- 照片基本信息 -->
<van-cell-group :border="false">
<van-field v-model="formData.zpsl" name="照片数量" label="照片数量" type="number" placeholder="请输入照片数量" required :rules="[{ required: true, message: '请输入照片数量' }]" />
<van-field v-model="formData.tpmc" name="图片文件名" label="图片文件名" placeholder="请输入图片文件名" />
<van-field v-model="formData.tpfs" @click="openPicker('图片方式', 'tpfs')" is-link readonly name="图片方式" label="图片方式" placeholder="请选择图片方式"/>
<van-field v-model="formData.zpsl" name="照片数量" label="照片数量" readonly type="number" placeholder="请输入照片数量" required :rules="[{ required: true, message: '请输入照片数量' }]" />
<van-field v-model="formData.zpxm" name="图片文件名" label="图片文件名" placeholder="请输入图片文件名" />
<van-field v-model="formData.tpfsMc" @click="openPicker('图片方式', 'tpfs')" is-link readonly name="图片方式" label="图片方式" placeholder="请选择图片方式"/>
<van-field v-model="formData.wfspdz" name="违法视频地址" label="违法视频地址" placeholder="请输入违法视频地址" />
</van-cell-group>
</div>
@ -120,7 +120,7 @@
</div>
<div class="section-body" v-show="openSections.other">
<van-cell-group :border="false">
<van-field v-model="formData.qtlx" name="通知书号" label="通知书号" placeholder="请输入通知书号"/>
<van-field v-model="formData.tzsh" name="通知书号" label="通知书号" placeholder="请输入通知书号"/>
<van-field v-model="formData.tzrq" @click="openPicker('通知日期', 'tzrq')" is-link readonly name="通知日期" label="通知日期" placeholder="请输入通知日期" />
</van-cell-group>
</div>
@ -175,20 +175,13 @@ const photoList = ref([
]);
function chooseDate(val) {
console.log("选择的值:", val);
switch (pop.type) {
case 'list':
formData[chooseType.value] = val.text;
let dmKey = chooseType.value + 'dm';
formData[dmKey] = val.value;
let mcKey = chooseType.value + 'Mc';
formData[mcKey] = val.text;
formData[chooseType.value] = val.value;
break;
case 'datetime':
if(chooseType.value === 'wffssj') {
formData.wffssj = val.value;
formData.wfrq = val.value.slice(0, 10);
formData.wfsj = val.value.slice(11, 19);
}
break;
case 'date':
formData[chooseType.value] = val.value;
break;
@ -270,6 +263,7 @@ function openPicker(name,type) {
];
break;
case '违法发生时间':
case '违法时间':
pop.type = 'datetime';
break;
case '图片方式':
@ -285,8 +279,6 @@ function openPicker(name,type) {
break;
}
pop.show = true;
console.log(pop);
}
@ -320,48 +312,18 @@ async function handleSubmit() {
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 submitData = { ...formData };
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) {
const res = await addSsPai(submitData);
console.log("提交数据:", res);
// Toast("提交成功");
// router.back();
// if (res.code === 200 || res.code === 0) {
// } else {
// Toast(res.msg || "提交失败");
// }
@ -376,10 +338,8 @@ async function handleSubmit() {
onMounted(() => {
// 获取用户信息
const userInfo = JSON.parse(localStorage.getItem("userInfo") || "{}");
if (userInfo.userName) {
formData.zfmj = userInfo.userName;
formData.zfmjdm = userInfo.userId;
}
formData.zqmjMc = userInfo.username;
formData.zqmj = userInfo.workNo;
});
</script>
@ -684,4 +644,9 @@ onMounted(() => {
font-weight: 600;
}
}
::v-deep .van-image{
width: 135px !important;
height: 135px !important;
}
</style>