hookehuyr

feat(api): 添加学校、品牌和车型相关API接口

添加新的API模块用于获取学校列表、品牌列表和车品牌列表
修改车辆销售表单字段名maxSpeed为max_speed_kmh
简化图片上传验证逻辑,仅需正面照
import { fn, fetch } from '@/api/fn';
const Api = {
GET_SCHOOLS: '/srv/?a=common&t=get_schools',
GET_BRANDS_MODELS: '/srv/?a=common&t=get_brands_models',
GET_VEHICLE_BRANDS: '/srv/?a=common&t=get_vehicle_brands',
}
/**
* @description: 获取学校列表
* @param {*} params
* @returns
*/
export const getSchoolsAPI = (params) => fn(fetch.get(Api.GET_SCHOOLS, params));
/**
* @description: 获取品牌列表
* @param {*} params
* @returns
*/
export const getBrandsModelsAPI = (params) => fn(fetch.get(Api.GET_BRANDS_MODELS, params));
/**
* @description: 获取车品牌列表
* @param {*} params
* @returns
*/
export const getVehicleBrandsAPI = (params) => fn(fetch.get(Api.GET_VEHICLE_BRANDS, params));
......@@ -166,8 +166,8 @@
</nut-form-item>
<!-- 最高时速 -->
<nut-form-item label="最高时速" prop="maxSpeed">
<nut-input v-model="formData.maxSpeed" placeholder="25" type="number" input-align="right">
<nut-form-item label="最高时速" prop="max_speed_kmh">
<nut-input v-model="formData.max_speed_kmh" placeholder="25" type="number" input-align="right">
<template #right>
<text class="unit">km/h</text>
</template>
......@@ -324,6 +324,7 @@ import './index.less'
// 导入接口
import { addVehicleAPI, editVehicleAPI, getVehicleDetailAPI } from '@/api/car';
import { getSchoolsAPI, getBrandsModelsAPI } from '@/api/other';
const themeVars = ref({
navbarBackground: '#fb923c',
......@@ -375,7 +376,7 @@ const formData = reactive({
new_level: '',
total_mileage_km: '1200',
range_km: '60',
maxSpeed: '25',
max_speed_kmh: '25',
battery_capacity_ah: '20',
// batteryWear: '',
brake_wear_level: '',
......@@ -387,7 +388,8 @@ const formData = reactive({
front_photo: '',
left_photo: '',
right_photo: '',
other_photo: ''
other_photo: '',
verification_status: ''
})
// 选择器显示状态
......@@ -846,9 +848,11 @@ const onPublish = async () => {
*/
const validateForm = () => {
// 检查是否至少上传了一张图片
const hasImages = formData.front_photo || formData.left_photo || formData.right_photo || formData.other_photo
// const hasImages = formData.front_photo || formData.left_photo || formData.right_photo || formData.other_photo
const hasImages = formData.front_photo
if (!hasImages) {
Taro.showToast({ title: '请上传车辆图片', icon: 'none' })
// Taro.showToast({ title: '请上传车辆图片', icon: 'none' })
Taro.showToast({ title: '请上传车辆正面照', icon: 'none' })
return false
}
......@@ -901,14 +905,15 @@ const loadCarData = async () => {
new_level: typeof carData.new_level === 'number' ? convertScoreToText(carData.new_level, 'condition') : carData.new_level,
total_mileage_km: carData.total_mileage_km,
range_km: carData.range_km,
maxSpeed: carData.maxSpeed,
max_speed_kmh: carData.max_speed_kmh,
battery_capacity_ah: carData.battery_capacity_ah,
// batteryWear: carData.batteryWear,
brake_wear_level: typeof carData.brake_wear_level === 'number' ? convertScoreToText(carData.brake_wear_level, 'wear') : carData.brake_wear_level,
tire_wear_level: typeof carData.tire_wear_level === 'number' ? convertScoreToText(carData.tire_wear_level, 'wear') : carData.tire_wear_level,
price: carData.price,
market_price: carData.market_price,
note: carData.note
note: carData.note,
verification_status: carData.verification_status
})
// 填充图片数据
......