From 3f85de1f93b8f227fc068004cb0a1fb38c840432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?TOP=E7=B3=AF=E7=B1=B3?= <1130395124@qq.com> Date: Thu, 9 Mar 2023 14:39:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E5=8D=95=E5=A2=9E=E5=8A=A0=E4=BF=9D?= =?UTF-8?q?=E9=99=A9=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/service/insurance.vue | 6 +++++- src/core/apis.js | 3 +++ src/core/models/service.js | 17 +++++++++++++++++ src/pages/order/create.vue | 9 ++++++++- src/store/index.js | 2 ++ src/store/modules/service.js | 21 +++++++++++++++++++++ 6 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/core/models/service.js create mode 100644 src/store/modules/service.js diff --git a/src/components/service/insurance.vue b/src/components/service/insurance.vue index efbbdb7..6ccfc0a 100644 --- a/src/components/service/insurance.vue +++ b/src/components/service/insurance.vue @@ -8,7 +8,7 @@ 全面保证您的人身财产安全 - ¥ 6.00 + ¥ {{ price }} @@ -33,6 +33,10 @@ export default { type: Boolean, default: true, }, + price: { + type: [Number, String], + default: 0, + }, insurance: { type: Boolean, default: false, diff --git a/src/core/apis.js b/src/core/apis.js index 5af6309..1db6936 100644 --- a/src/core/apis.js +++ b/src/core/apis.js @@ -76,6 +76,9 @@ export default { } }, service: { + insurance: { + url: "/index/getyiwai", + }, aftermarket: { url: "/index/category2", }, diff --git a/src/core/models/service.js b/src/core/models/service.js new file mode 100644 index 0000000..52efbf3 --- /dev/null +++ b/src/core/models/service.js @@ -0,0 +1,17 @@ +import Vue from "vue" +let prototype = Vue.prototype; + +export default { + getInsurancePrice() { + return new Promise((resolve, reject) => { + prototype.$request({ + api: "service.insurance", + }).then((response) => { + if (response.code == 1) { + let money = parseFloat(response.data.money); + resolve(money > 0 ? money : 0) + } + }).catch(e => { }); + }); + } +} diff --git a/src/pages/order/create.vue b/src/pages/order/create.vue index a62d2f8..3c22ada 100644 --- a/src/pages/order/create.vue +++ b/src/pages/order/create.vue @@ -32,7 +32,7 @@ - + 留言 @@ -62,6 +62,7 @@ import ServicePreviewItem from "@/components/service/preview-item"; import Agreement from "@/components/auth/agreement"; import WidgetTips from "@/components/widgets/tips"; import ServiceInsurance from "@/components/service/insurance"; +import { mapState } from "vuex"; export default { name: "order-create", data() { @@ -96,8 +97,14 @@ export default { WidgetTips, ServiceInsurance, }, + computed: { + ...mapState({ + insurancePrice: (state) => state.service.insurancePrice, + }), + }, onLoad() { this.pageConfig = getApp().globalData.pageConfig; + this.$store.dispatch("service/insurancePrice"); }, onShow() {}, onReady() {}, diff --git a/src/store/index.js b/src/store/index.js index c8d6757..6034727 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -3,11 +3,13 @@ import Vuex from 'vuex' import system from "@/store/modules/system" import user from "@/store/modules/user" +import service from "@/store/modules/service" Vue.use(Vuex) export default new Vuex.Store({ modules: { system, user, + service, } }) diff --git a/src/store/modules/service.js b/src/store/modules/service.js new file mode 100644 index 0000000..ec2b077 --- /dev/null +++ b/src/store/modules/service.js @@ -0,0 +1,21 @@ +import service from "@/core/models/service"; + +export default { + namespaced: true, + state: { + insurancePrice: 0, + }, + getters: {}, + mutations: { + insurancePrice(state, data) { + state.insurancePrice = data; + } + }, + actions: { + insurancePrice(context) { + service.getInsurancePrice().then(price => { + context.commit('insurancePrice', price); + }); + } + } +}