Uniapp 实现 二手车价格评估 功能

Uniapp-Car 二手车估值 下载地址

代码实现中使用第三方API接口,接入大数据模型实现二手车价格估值计算,具体核心代码如下:

javascript 复制代码
<view>
    <!-- -->
    <image class="bg-img" :src="$getImage('@/static/ic_index_bg.png')" ></image>
    <view class="content" ref="refTest">
      <Header title="汽车评估" bg-color="transparent" text-color="#fff"></Header>
      <view class="content-tips">
        <view class="lf-tip">
          <!-- <image src="@/static/ic-mf_cc@2x.png" mode="aspectFill" class="mf-cc"></image> -->
          <view class="tip-big">测一测</view>
          <view class="tip">你的车值多少额度</view>
        </view>
        <view>
          <image :src="$getImage('@/static/ic-car@2x.png')" mode="aspectFill" class="car"></image>
        </view>
      </view>
      <view class="form-box">
        <form-item label="车主姓名">
          <input placeholder="请输入车主真实姓名" class="form-item_input" placeholder-style="color:#999999;"
            v-model="formData.name" />
        </form-item>
        <form-item label="接收手机">
          <input placeholder="请输入真实手机号码" class="form-item_input" type="number" placeholder-style="color:#999999;"
            v-model="formData.phone" maxlength="11" />
        </form-item>
        <form-item label="所在城市" @click="handleSelctCity">
          <input placeholder="请选择所在城市" class="form-item_input input-event" placeholder-style="color:#999999;"
            v-model="formData.cityName" />
        </form-item>
        <form-item label="汽车型号" @click="navigateTo">
          <input placeholder="请选择汽车型号" class="form-item_input input-event" placeholder-style="color:#999999;"
            v-model="formData.carBrand" />
        </form-item>
        <form-item label="上牌日期" @click="openDatePicker">
          <input placeholder="请选择上牌日期" class="form-item_input input-event" placeholder-style="color:#999999;"
            v-model="formData.registrationTime">
        </form-item>
        <form-item label="行驶里程">
          <view class="inline-flex">
            <input placeholder="请输入行驶里程(万公里)" class="form-item_input" placeholder-style="color:#999999;" type="number"
              v-model="formData.mileage" />
            <view style="margin-right: 20rpx;">万公里</view>
          </view>
        </form-item>

        <view class="btn" @click="handleSubmit">立即估价</view>

        <view class="counts">
          <image src="/static/vector@2x.png" class="img"></image>
          累计估价 <text class="txt">{{count}}</text>次
        </view>
        <view class="help">
          <navigator url="/pages/web/index?title=汽车价格如何评估&type=5">汽车价格如何评估?</navigator>
        </view>
      </view>
      <Footer></Footer>
      <city-picker ref="cityPickerRef" @confirm="handleCity"></city-picker>
      <date-picker ref="datePickerRef" @confirm="bindDateChange"></date-picker>
    </view>

根据车辆 所在城市,汽车型号,上牌日期, 行驶里程 数来进行价格评估

javascript 复制代码
   methods: {
      handleSelctCity() {
        console.log("handleSelctCity>>>>");
        this.$refs.cityPickerRef.open()
      },
      openDatePicker() {
        console.log("openDatePicker >>> ");
        this.$nextTick(() => {
          this.$refs.datePickerRef.open()
        })
      },

      bindDateChange(e) {
        this.formData.registrationTime = e
      },
      handleCity(e) {
        console.log(e)
        if (e) {
          this.formData.cityName = e.label
          this.formData.cityCode = e.code
        }
      },

      jumpRusult(data) {
        //保存数据
        this.$store.dispatch('save_car_rate', this.formData)
        let url = "/pages/appraiseResult/appraiseResult"
        if(data){
          this.$store.commit("SET_RETDATA",data)
          url ="/pages/appraiseResult2/appraiseResult2"
        }
        //
        uni.navigateTo({url})
      },
      handleSubmit() {

        console.log("handleSubmit >>> ");
        if (!this.formData.name) {
          toast("请输入真实姓名")
          return;
        }
        if (!this.formData.phone || checkPhone(this.formData.phone)) {
          toast("请输入真实手机号")
          return
        }

        if (!this.formData.cityName) {
          toast("请输入选择所在城市")
          return
        }
        //
        uni.showLoading({title:"加载中"})
        apiSaveCarAppraisalVend(this.formData).then(res => {
          uni.hideLoading()
          this.jumpRusult(res.data)
        }).catch(e => {
          console.log(e);
          uni.hideLoading()
        })
      },

      navigateTo() {
        uni.navigateTo({ url: '/pages/CarBrandList/CarBrandList' })
      }
    }

汽车品牌选择界面部分代码

javascript 复制代码
<view class="container">
    <!-- 车辆品牌列表 -->
    <uni-indexed-list :options="list" :showSelect="false" @click="bindClick"></uni-indexed-list>
    <uni-drawer ref="showRight" mode="right" :width="320" :mask-click="true" >
      <view class="scroll-view">
        <scroll-view class="scroll-view-box" scroll-y="true">
          <view class="drawer-header">
              <view class="drawer-header_back" @click="handleBack">返回</view>
          </view>
          <!-- 车辆系列列表 -->
          <view v-for="(item,index) in carbrandList " :key="index" class="list-item" @click="handleClick(item)">
            {{item.fullName }}
          </view>
        </scroll-view>
      </view>
    </uni-drawer>
  </view>
javascript 复制代码
data() {
      return {
        list: [],
        brandId: undefined,
        seriesId:undefined,
        carModelId:undefined,
        carbrandList: [],
        carSeries:[],
        carModels:[],
        level:0
      }
    },

    onLoad() {
      this.init()
    },

    methods: {
      init() {
        console.log("init");
        apiGetCarBrandList().then(res => {
          console.log(res)
          this.list = res.data
        })
      },

      getCarbrandInfo() {
        apiGetCarBrandInfoList(this.brandId).then(res => {
          console.log(res)
          this.carbrandList = res.data
          this.carSeries =res.data
        })
      },


      getCarModels(seriesId){
        apiGetCarModelList(seriesId).then(res=>{
          this.carModels = res.data
          this.carbrandList = this.carModels
        })
      },


      // 打抽屉
      bindClick(e) {
        console.log("bindClick >>", e);
        this.level = 0
        this.brandId = e.item.id
        this.getCarbrandInfo()
        this.$refs.showRight.open()
      },

      // 返回上级
      handleBack(){
        if(this.level===1){
          this.level = 0
          this.carbrandList = this.carSeries
        }else{
           this.$refs.showRight.close()
        }

      },

      handleClick(carInfo){
        console.log("handleClick ",carInfo);
        // 打开车型列表
        if(this.level === 0){
          this.getCarModels(carInfo.seriesId)
          this.level = 1
        }else{
          uni.$emit("handleCarInfo",carInfo)
          this.$refs.showRight.close()
          uni.navigateBack()
        }
      }
    }

评估结果界面部分代码:

javascript 复制代码
 <!-- 当前价格部分 -->
    <view class="section" v-if="currentTab === 'current'">
      <view class="section-title">
        <text>当前车辆价格评估</text>
      </view>

      <view class="condition-cards">
        <!-- 优秀车况卡片 -->
        <view class="card excellent">
          <view class="card-header">
            <text class="condition-title">优秀 · 车况</text>
            <uni-icons type="star-filled" size="24" color="#FFD700"></uni-icons>
          </view>
          <view class="price-list">
            <view class="price-item">
              <text class="price-label">车商售车价</text>
              <text class="price-value retail">¥{{retdata.car_excellent.car_retail}}万</text>
            </view>
            <view class="price-item">
              <text class="price-label">车商收车价</text>
              <text class="price-value purchase">¥{{retdata.car_excellent.car_purchase}}万</text>
            </view>
            <view class="price-item">
              <text class="price-label">个人交易价</text>
              <text class="price-value personal">¥{{retdata.car_excellent.car_personal}}万</text>
            </view>
          </view>
        </view>
        <!-- 良好车况卡片 -->
        <view class="card good">
          <view class="card-header">
            <text class="condition-title">良好 · 车况</text>
            <uni-icons type="heart-filled" size="24" color="#FF6B6B"></uni-icons>
          </view>
          <view class="price-list">
            <view class="price-item">
              <text class="price-label">车商售车价</text>
              <text class="price-value retail">¥{{retdata.car_good.car_retail}}万</text>
            </view>
            <view class="price-item">
              <text class="price-label">车商收车价</text>
              <text class="price-value purchase">¥{{retdata.car_good.car_purchase}}万</text>
            </view>
            <view class="price-item">
              <text class="price-label">个人交易价</text>
              <text class="price-value personal">¥{{retdata.car_good.car_personal}}万</text>
            </view>
          </view>
        </view>

        <!-- 一般车况卡片 -->
        <view class="card normal">
          <view class="card-header">
            <text class="condition-title">一般 · 车况</text>
            <uni-icons type="info" size="24" color="#4ECDC4"></uni-icons>
          </view>
          <view class="price-list">
            <view class="price-item">
              <text class="price-label">车商售车价</text>
              <text class="price-value retail">¥{{retdata.car_normal.car_retail}}万</text>
            </view>
            <view class="price-item">
              <text class="price-label">车商收车价</text>
              <text class="price-value purchase">¥{{retdata.car_normal.car_purchase}}万</text>
            </view>
            <view class="price-item">
              <text class="price-label">个人交易价</text>
              <text class="price-value personal">¥{{retdata.car_normal.car_personal}}万</text>
            </view>
          </view>
        </view>
      </view>
    </view>

    <!-- 价格预测部分 -->
    <view class="section" v-if="currentTab === 'forecast'">
      <view class="section-title">
        <text>未来价格预测</text>
      </view>
      <view class="chart-container">
        <chart-vue :car-price-forecasts="retdata.car_price_forecasts"></chart-vue>
      </view>
    </view>
  </view>

运行部分界面

Uniapp-Car 下载地址

汽车抵押贷款的一些计算方式总结

(一)、汽车抵押贷款的利率计算方式

汽车抵押贷款的利率计算方式因还款方式不同而有所差异,以下是两种常见还款方式的利率计算公式及计

  1. 等额本息还款法

特点: 每月还款额固定,包含本金和利息。

计算公式: 每月还款额 = [贷款本金 × 月利率 × (1+月利率)^还款月数] ÷ [(1+月利率)^还款月数 - 1]

计算过程: 确定贷款本金、年利率和还款月数。将年利率转换为月利率(月利率 = 年利率 ÷ 12)。

将数据代入公式计算每月还款额。

  1. 等额本金还款法

特点: 每月还款本金固定,利息逐月递减。

计算公式: 每月还款额 = (贷款本金 ÷ 还款月数) + (贷款本金 - 已归还本金累计额) × 月利率

计算过程:确定贷款本金、年利率和还款月数。

将年利率转换为月利率(月利率 = 年利率 ÷ 12)

计算每月还款本金(每月还款本金 = 贷款本金 ÷ 还款月数)

计算每月利息(每月利息 = (贷款本金 - 已归还本金累计额) × 月利率)

计算每月还款额(每月还款额 = 每月还款本金 + 每月利息)

举例说明:

假设贷款10万元,期限1年,年利率6%。

  1. 等额本息还款法:

月利率 = 6% ÷ 12 = 0.5%

每月还款额 = [100000 × 0.5% × (1+0.5%)^12] ÷ [(1+0.5%)^12 - 1] ≈ 8582元

总利息 = 8582 × 12 - 100000 ≈ 2998元

  1. 等额本金还款法:

月利率 = 6% ÷ 12 = 0.5%

每月还款本金 = 100000 ÷ 12 ≈ 8333元

首月利息 = 100000 × 0.5% = 500元

首月还款额 = 8333 + 500 = 8833元

末月利息 = (100000 - 8333 × 11) × 0.5% ≈ 41.67元

末月还款额 = 8333 + 41.67 ≈ 8375元

总利息 = (500 + 41.67) × 12 ÷ 2 ≈ 2917元

注意事项:

利率: 不同贷款机构的利率不同,需进行比较。

手续费: 部分机构可能收取手续费,需提前了解。

提前还款: 部分机构对提前还款有违约金,需注意合同条款。

(二)、二手车价格估算

探索汽车价值的迷宫:六种实用算法助你估算二手车价格

在现代社会,购车已成为生活常态,无论是新车还是二手车。针对众多朋友关于二手车价格的疑问,我特别整理出六种实用的估算方法,让你在购车时心中有数。

  1. 折旧率计算公式

二手车价值随时间变化明显。以十年为周期,前三年每年折旧15%,中间四年减半至10%,后三年减至5%。如一辆10万元车,第二年为10*(1-15%)=8.5万,以此递减至车辆最终残值。

(浮动折旧法)将新车使用10年报废视为100分,15%作为不折旧的固定部分为残值,其余85%为浮动折旧值,分3年、4年、3年来折旧,折旧率分别为11%、10%、9%。

将二手车分为10年来计算:

具体计算规则:

前三年每年折旧15%;

中间四年每年折旧10%;

最后三年每年折旧5%

举个例子:

一台价值10万元的汽车,

第二年:10 X(1-15%)=8.5万

第三年:8.5X(1-15%)=7.2万

第四年:7.2X(1-15%)=6.1万

第五年:6.1X(1-10%)=5.5万

............如此类推.

  1. 重置成本法

采用15年作为汽车寿命,将之换算为180个月。计算二手车价值时,扣除已使用的月份数,再根据剩余月份数得出残值。例如,一辆9万元新车,12年车龄,5年使用,其现价=9万*(180-60)/180=6万。

二手车评估价格=新车价格×(1-年限折旧率)。其中,新车价格为车辆卖出时市场新车补贴优惠后的裸车价;年限折旧率根据车辆使用年限来确定,新车前5年折旧率分别为15%、12%、10%、8%、7%,5年以后每年折旧率约为5%。例如,1年车龄的车辆评估价约为新车发票价的85%。

二手车价格=新车价格X(180-已使用月份)÷180

举个例子:

比如一辆12年3月的车,开了5年,到17年3月售出,新车的裸车价格为9万元,车子使用了60个月,它的使用寿命还剩下120个月,那么现在的二手车价值=9X(180-60)÷180 =6万元

  1. 粗算法

·简单易行的粗算法,第一年打八折,后续每年九折,例如10万元车第二年为10*0.8=8万,以此类推。

第一年汽车贬值20%,从第二年开始每年贬值10%,也就是说第一年打八折,往后每年打九折,十分简单。

举个例子:

一辆车价值10万元的汽车,

第二年:10X0.8=8万元

第三年:8X0.9=7.2万元

第四年:7.2X0.9=6.48万元

............如此类推!

  1. 公里数估值法

采用"54321"法则,根据车辆的行驶公里数和年数计算折旧。如10万车,每6万公里减去对应比例的折旧费用。

假设一部车的有效寿命为30万公里,分为5段,每段6万公里,每段价值依序为新车价的5/15、4/15、3/15、2/15、1/15。这种方法便于直观地估算车辆的剩余价值。

举个例子:

一辆价值10万的汽车,开了8万公里出售,那么他此时的二手车价格=10X(15-5-4)÷15=4万元

提示:此方法只适用于里程数真实的二手车。

  1. 现行估价法

依据市场上的平均价格,结合车辆状况和特定条件,给出精确估值。但需注意数据样本的代表性及特殊车型的差异化处理。

(公平价现行估价法)以同款式、同年份、同使用期限的车辆在二手车市场上的平均价格为基础,再结合车辆的现时技术状况评定系数来判定价格。

【现行估价法是指以同款式,同年份,同使用期限的车辆在二手车市场上的平均价格为基础,再考虑所评估车辆的现时技术状况评定系数,以平均价格乘以系数,从而判定车辆价格。这种方法价格最贴近市场真实价格的方法。不过有个提前条件是具备大量的市场真实交易数据作为样本,这样的平均价格更具代表性,目前市面上提供专业全国二手车价格数据样本的机构不多,用这种方法判断一些偏门车型价格会有难度,特殊车辆则需特殊对待,不可较真。】

温馨提示:

如果我们 想通过这个方法来确定价格区间,我们可以在各大二手车平台找相同年款相同配置,相同条件的同款车型,将它们的价格记录下来求平均值,这样算出来的价格应该和这款车的真实价格相差不多。

如果想价格更加的准确,可以去二手车市场寻找这款车的市场价,多采集几辆车,确保估值的精确度。

  1. 大数据估值法

借助科技的力量,第三方估值平台整合大量车辆成交记录,通过一键估值功能,提供精准估价服务。

无论选择哪种方法,务必确保所有信息的准确性和实际市场情况,确保购车决策的明智。以上就是为你精心准备的二手车估价指南,希望对你有所帮助

估值步骤相对简单:选好车型 、选好公里数、填好上牌时间、选好城市、一键估值搞定

注意‌:以上方法算出的价格只是大概价值,实际价格还需根据车况检测(如车身损伤、漆面、底盘结构等)、市场行情、车主使用习惯和保养程度等因素来确定。同时,车辆的品牌、型号、颜色、配置、过户次数等也会影响最终估值。

相关推荐
Yan-英杰2 小时前
TypeScript+React 全栈生态实战:从架构选型到工程落地,告别开发踩坑
javascript·学习·typescript
旭久2 小时前
web前端开发好物推荐-(code-inspector-plugin/react-dev-inspector)页面快捷定位代码位置
前端·react.js·前端框架
海天鹰2 小时前
JSZip库读取ePub电子书目录
javascript
floret. 小花2 小时前
Vue3 知识点总结 · 2026-03-20
前端·面试·electron·学习笔记·vue3
木斯佳2 小时前
前端八股文面经大全:Bilibili 前端实习面(2026-03-20)·深度解析
前端·sse·ssr·rag
比特森林探险记2 小时前
Element Plus 实战指南
前端·javascript
Fairy要carry2 小时前
面试-Dispatch Tools
前端·chrome
IT_陈寒2 小时前
JavaScript开发者必看:3个让代码效率翻倍的隐藏技巧
前端·人工智能·后端
嘉琪0012 小时前
Day8 完整学习包(Vue 基础 & 响应式)——2026 0320
前端·vue.js·学习