You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1559 lines
37 KiB

3 weeks ago
<template>
<view class="page">
<view class="oinfo">
<!-- 地址信息 -->
<view class="yycon">
<view class="acon">
<view class="aleft" @click="getAddr">
<view class="aname" v-if="info.address">
{{info.username?info.username:''}}
{{info.tel?info.tel:''}}
</view>
<view v-else class="aname">
请选择收货地址
</view>
<view class="atxt" v-if="info.address">
{{info.address?info.address:''}}
</view>
<view v-else class="atxt">
下单前请选择您的收货地址
</view>
</view>
<view class="aright" @click="getAddr">
<uni-icons type="arrowright" size="18" color="#a9a9a9"></uni-icons>
</view>
<view class="aline"></view>
</view>
</view>
<!-- 商品信息 -->
<view class="yycon">
<view class="olist">
<view class="oscon">
<view class="osimg imgload">
<image class="osimg" v-if="info.icon" :src="info.icon" mode="aspectFit"></image>
</view>
<view class="osrcon">
<view class="osname">
{{info.pname?info.pname:''}}
</view>
<view class="oscell">
套餐{{info.sets}}
</view>
<view class="oscell">
数量{{info.nums}}
</view>
<view class="oscell">
租期{{info.rentcyclename}}
</view>
</view>
</view>
</view>
<view class="tcon">
<view class="tcell">
<image class="ticon" src="../../static/image/time.png"></image>
<view class="tlist">
<view class="tname">预计起租日</view>
<view class="tvalue">{{info.date1}}</view>
</view>
</view>
<view class="tcell">
<image class="ticon" src="../../static/image/time.png"></image>
<view class="tlist">
<view class="tname">归还日</view>
<view class="tvalue">{{info.date2}}</view>
</view>
</view>
</view>
<view class="tip">
<uni-icons type="info" size="20" color="#89965f"></uni-icons>
<text style="margin-left: 10rpx;">提示:快递运输期间不算租期实际起租日为快递签收当天</text>
</view>
</view>
<!-- 订单信息 -->
<view class="yycon odrcell">
<!-- <view class="atitle">
<view>
首期租金付款
</view>
<view class="price">
<uni-easyinput type="digit" @blur="blurDo" v-model="order.price_sqk" placeholder="请输入首期租金" />
</view>
</view> -->
<view class="atitle">
<view>
首期租金付款
</view>
<view class="sqprice">
{{order.price_sqk}}
</view>
</view>
<view class="sqcon" v-if="info.price_spbz>0">
<!-- <view class="sqlist">
<view>服务包</view>
<view>{{info.price_fwbjg}}</view>
</view> -->
<view class="sqlist" v-if="info.price_spbz>0">
<view>碎屏保障</view>
<view>{{info.price_spbz}}</view>
</view>
</view>
<view class="atip">
:该首月租金仅作为展示最终以风控评估结果为准
</view>
<!-- <view class="olist">
<view class="ocell">
<text>
剩余租金
</text>
<text class="red">{{( (parseFloat(info.price)- order.price_sqk)/info.last).toFixed(2)}}*{{info.last}}</text>
</view>
</view> -->
<view class="olist">
<view class="ocell">
<text>
总期数
</text>
<text class="red">{{info.rentcycle}}</text>
</view>
</view>
<view class="olist">
<view class="ocell">
<text>
总租金
</text>
<text class="red">{{ parseFloat(info.price).toFixed(2)}}</text>
</view>
</view>
<view class="olist">
<view class="ocell">
<text>
配送方式
</text>
<text>{{info.delivery}}</text>
</view>
</view>
<!-- <view class="olist">
<view class="ocell">
<text>
完结还需支付
</text>
<text>{{ (parseFloat(info.price)-order.price_sqk).toFixed(2) }}</text>
</view>
</view> -->
</view>
<!-- 上传身份证信息 -->
<view class="yycon" v-if="!isauth">
<view class="realcon">
<view class="rleft">
<view class="tip1">
上传身份证照片
</view>
<view class="tip2">
完善实名信息加快审核速度
</view>
</view>
<view class="rright" @click="gotoindenty">
去上传
</view>
</view>
</view>
<!-- 下单备注 -->
<view class="yycon odrcell">
<view class="olist">
<view class="ocell">
<text style="margin-right: 12rpx;">
下单备注:
</text>
<uni-easyinput v-model="order.message" maxlength="200" placeholder="请输入您的备注信息" />
</view>
</view>
</view>
</view>
<!-- 提交订单 -->
<view class="submitcon" v-if="info">
<view class="xycon">
<radio-group @change="radioChange">
<view class="sitem">
<view class="selbtn">
<label>
<radio value="1" :checked="isChecked"/>
</label>
</view>
<view class="conright">
<view class="sname">
我已阅读并同意
</view>
<view class="adress" @click="gotoxy">
租赁服务协议及相关
</view>
</view>
</view>
</radio-group>
</view>
<view class="ocon">
<!-- <view class="pcon">
<text class="hj">{{info.nums}},首期实付</text>
<text class="rmb"></text>
<text class="zs">{{ parseFloat(order.price_sqk).toFixed(2) }}</text>
</view> -->
<button type="primary" v-if="!isxy||ifsubmit" class="sbtn">{{btntxt}}</button>
<button type="primary" v-if="isxy && !ifsubmit" class="btn" @click="gotoOrder"></button>
</view>
</view>
<!-- 支付弹框 -->
<uni-popup ref="paypup" type="share">
<view class="allcon">
<view class="hcon">
<view class="htitle">请在2小时内支付</view>
<view class="rclose" @tap="_hide">
<uni-icons type="closeempty" size="24" color="#999999"></uni-icons>
</view>
</view>
<view class="mcon" v-if="info">
<text class="mcost">{{info.cost}}</text>
</view>
<view class="selcon">
<radio-group class="checklist-group" @change="change">
<view class="sitem" v-for="(item,index) in paylist" :key="index">
<view class="simg">
<image class="img" :src="item.icon"></image>
</view>
<view class="conright">
<view class="sname">
{{item.name}}
</view>
</view>
<view class="selbtn">
<radio :value="item.id" :checked="item.isChecked" />
</view>
</view>
</radio-group>
</view>
<button type="primary" class="paybtn" @click="paydo()"></button>
</view>
</uni-popup>
<!-- 地址选择弹框 -->
<uni-popup ref="adrpup" type="share">
<view class="allcon">
<view class="hcon">
<view class="htitle">请点击选择收件地址</view>
<view class="rclose" @tap="_adrhide">
<uni-icons type="closeempty" size="24" color="#999999"></uni-icons>
</view>
</view>
<view class="selcon">
<radio-group class="checklist-group" @change="adrchange">
<view v-for="(item, index) in myaddresslist" :key="index" class="adrsitem">
<view class="lcon">
<view class="sname">
<text>{{item.contact}}</text>
<text style="margin-left: 10rpx;margin-right: 10rpx;">{{item.phone}}</text>
<view v-if="item.sortid==1" class="adrtip"></view>
</view>
<view class="sinfo">
{{item.province+item.city+item.area+item.address}}
</view>
</view>
<view class="opecon">
<radio :value="index.toString()" :checked="item.isChecked" />
</view>
</view>
</radio-group>
</view>
</view>
</uni-popup>
<!-- 是否登录 -->
<openlogin ref="loginId" @getPhoneNumber="getPhoneNumber"></openlogin>
</view>
</template>
<script>
import { myCache,getNowDate,getMondate} from '../../utils/utils.js';
import openlogin from "../components/openlogin.vue";
export default {
components: {
openlogin
},
data() {
return {
openId:"",
phone:"",
userid:"",
isauth: 0,//是否实名
promoterid:0,//是否绑定推广员
id:"",
ifsubmit:false,
isxy:false,
btntxt:"立享免押租",
info:{
icon:"../../static/image/product/sp1.jpg",
username:"",
tel:"",
address:"",//"江苏省扬州市江都市地址信息1地址信息2地址信息3地址信息4地址信息5",
pname:"测试",
sets:"租完6个月可买断 测试 测试",
nums:1,
rentcyclename:'6个月套餐',
rentcycle:6,
last:5,
price:1.01,
delivery:"自提",
date1:"2023-03-15",
date2:"2023-03-25"
},
order:{
buyerid:"",// 买家ID
pro_id:"",// 商品ID
zuqi:"",// 租期
pro_type:"",// 商品类型 1全新 2二手
pro_color:"",// 颜色选择
pro_nc:"",// 内存选择
message:'',// 用户留言
price_sqk:0,// 首期款金额(用户填写,必填项)
price_year:1.00,// 年租金(必填项)
sh_state:1,// 是否自提 0:否 1自提默认
// idcard_pic:"",// 身份证正面
// idcard_pic1:"",// 身份证反面
sh_name:"",// 收货人姓名
sh_phone:"",// 收货人电话
sh_province:"",// 收货省份
sh_city:"",// 收货城市
sh_area:"",// 收货区
sh_address:""// 收货详细地址
},
paylist:[
{
id:"2",
name:"支付宝支付",
icon:"../../static/image/pt2.png",
isChecked:true
}
],
payType:"2" ,// 2支付宝支付
product:null,
productall:null,
specs:null,
myaddresslist:[],
isChecked:false
};
},
onLoad(options) {
if(options.type=='buy')
{
this.getinfo();
}
else{
uni.showModal({
title: '提示',
content: '订单提交异常,请返回..',
cancelText: '取消',
confirmText: '确定',
success: ress => {
// 返回
uni.navigateBack({
delta: 1
});
}
});
}
},
onShow(){
console.log("onRead")
this.iflogin();
},
methods: {
async gotoOrder(){
// 订单提交
if(this.isauth==0){
uni.showModal({
title: '提示',
content: '请先进行实名认证,即将跳转去认证!',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
// 缓存订单界面认证界面
myCache("signtype",'2');
// 跳转去实名认证
uni.navigateTo({
url: `/pages/setting/certificationone`
});
}
}
});
return false;
}
// 绑定推广员
if(this.promoterid==0){
uni.showModal({
title: '提示',
content: '请先扫码绑定推广员再下单,即将跳转绑定推广员!',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
// 跳转去扫码绑定推广员
uni.switchTab({
url: '/pages/user/user'
});
}
}
});
return false;
}
if(!this.order.buyerid){
uni.showModal({
title: '提示',
content: '请重新登录后提交订单..',
cancelText: '取消',
confirmText: '确定',
success: ress => {
}
});
return false;
}
if(!this.order.pro_id){
uni.showModal({
title: '提示',
content: '提交订单商品异常..',
cancelText: '取消',
confirmText: '确定',
success: ress => {
}
});
return false;
}
// if(this.order.sh_state==0&&!this.order.sh_address){
if(!this.order.sh_address){
uni.showModal({
title: '提示',
content: '请选择收货地址..',
cancelText: '取消',
confirmText: '确定',
success: ress => {
}
});
return false;
}
// if(!this.order.price_sqk){
// uni.showModal({
// title: '提示',
// content: '请输入首期付款金额..',
// cancelText: '取消',
// confirmText: '确定',
// success: ress => {
// }
// });
// return false;
// }
// if(this.order.sh_state==1){
// this.order.sh_name="";// 收货人姓名
// this.order.sh_phone="";// 收货人电话
// this.order.sh_province="";// 收货省份
// this.order.sh_city="";// 收货城市
// this.order.sh_area="";// 收货区
// this.order.sh_address="";// 收货详细地址
// }
// 订单提交中
this.ifsubmit=true;
try {
uni.showLoading({
title: '订单提交中...'
});
var params = {
para: JSON.stringify(this.order)
};
const {data: res} = await uni.$http.post('/alipay/insertOrder',params);
if (res) {
//
this.ifsubmit=false;
uni.showModal({
title: '提示',
content: '订单已提交!',
showCancel: false,
confirmText: '确定',
success: ress => {
var id=res;
console.log(id,'id');
myCache("gobackorderlist",1);
uni.redirectTo({
url: `/pages/order/orderinfo?type=1&id=${id}`
});
// 跳转到订单详情待审核
// uni.redirectTo({
// url: `/pages/order/orderinfo?id=${id}`
// });
}
});
// 清除缓存
myCache('cartproduct','');
myCache('cartproductnow','');
myCache('cartproductsels','');
}
else{
this.ifsubmit=false;
uni.showToast({
title: res.msg? res.msg:'下单提交失败!',
icon: 'error',
duration: 2000
});
}
}
catch (err) {
this.ifsubmit=false;
uni.showToast({
title: err.msg? err.msg:'下单提交失败!',
icon: 'error',
duration: 2000
});
}
},
async getinfo() {
var _this=this;
// 获取地址信息,地址默认
this.myaddresslist=myCache("myaddresslist");
// 获取订单数据
this.productall=myCache('cartproduct');
this.product=myCache('cartproductnow');
console.log(this.product)
this.specs=myCache('cartproductsels');
if(!this.productall||!this.product||!this.specs){
uni.showModal({
title: '提示',
content: '订单提交异常,请返回..',
cancelText: '取消',
confirmText: '确定',
success: ress => {
// 返回
uni.navigateBack({
delta: 1
});
}
});
}
else{
//订单填充
this.order.pro_id=this.productall.id;//商品ID
this.order.pro_type=this.productall.pro_type?this.productall.pro_type:1;
if(this.specs.length>1&&this.specs[1].list[this.specs[1].sels].id){
// 颜色
this.order.pro_color=this.specs[1].list[this.specs[1].sels].id;
this.info.sets=this.specs[0].list[this.specs[0].sels].name+ " "+this.specs[1].list[this.specs[1].sels].name+ " "
+this.specs[3].list[this.specs[3].sels].name; // 规格选择1
this.info.rentcyclename= this.specs[2].list[this.specs[2].sels].name;
this.info.rentcycle= parseInt(this.specs[2].list[this.specs[2].sels].id);
// 租期
this.order.zuqi=this.info.rentcycle;
this.info.last=this.info.rentcycle-1;
}
if(this.specs.length>1&&this.specs[3].list[this.specs[3].sels].id){
// 版本 pro_nc
this.order.pro_nc=this.specs[3].list[this.specs[3].sels].id;
}
// 界面填充
this.info.icon=this.product.img1;//第一图
this.info.pname=this.product.name; // 商品名称
var prices=this.product.price?this.product.price.split(','):[];
var zqsel=this.info.rentcycle?this.info.rentcycle:6;// 默认6
var rate=1;
if(zqsel==6){
rate=parseFloat(this.product.rate6);
}
else if(zqsel==9){
rate=parseFloat(this.product.rate9);
}
else if(zqsel==12){
rate=parseFloat(this.product.rate12);
}
var price=Math.floor(parseFloat(prices[this.specs[3].sels]?prices[this.specs[3].sels]:0)*rate-(this.product.price_lgj?parseFloat(this.product.price_lgj):0)).toFixed(0);
this.info.price=price; //this.product.price;// 总价格
// this.order.price_sqk= Math.round(100*(parseFloat(this.info.price)/parseFloat(this.info.rentcycle)))/100;
this.info.price_fwbjg=parseFloat(this.product.fwbjg);
this.info.price_spbz=parseFloat(this.product.price_spbz);
this.order.price_fwbjg=this.info.price_fwbjg;
this.order.price_spbz=this.info.price_spbz;
this.order.price_sqk=this.info.price_fwbjg+this.info.price_spbz;
this.order.price_year=parseFloat(this.info.price);
this.info.date1=getNowDate();
this.info.date2=getMondate(this.info.rentcycle);
}
this.$forceUpdate();
this.getprom();
},
async getprom() {
// 分类
this.userid = myCache('userid');
const {data: res} = await uni.$http.post('/platform/isBindPromoter',{id:this.userid});
console.log(res)
if (res) {
this.promoterid=res;
this.$forceUpdate();
}
},
iflogin(){
this.openId = myCache('openId');
this.phone = myCache('phone');
this.userid = myCache('userid');
if(this.userid==""||this.userid=="0"){
// 跳转去登录
uni.navigateTo({
url: `/pages/login/login`
});
}
else{
this.order.buyerid=this.userid;
//实名
var res=myCache('userInfo');
if(res){
this.isauth = res.isauth ? res.isauth: 0;
// this.promoterid=res.promoterid ? res.promoterid: 0;
// idcard 身份证号
// this.order.idcard_pic=res.buyer_idcardpic;//身份证正面
// this.order.idcard_pic1=res.buyer_idcardpic1;//身份证反面
}
}
},
shselDo(type){
this.order.sh_state=type;
if(type==1){
this.info.delivery="自提";
this.order.sh_name="";// 收货人姓名
this.order.sh_phone="";// 收货人电话
this.order.sh_province="";// 收货省份
this.order.sh_city="";// 收货城市
this.order.sh_area="";// 收货区
this.order.sh_address="";// 收货详细地址
}
else{
this.info.delivery="快递发货";
if(this.myaddresslist&&this.myaddresslist.length>0){
this.myaddresslist.forEach((cell,idx)=>{
if(cell.isdefault){
// 收货信息
_this.info.address=cell.address;
_this.info.username=cell.fullname;
_this.info.tel=cell.mobilePhone;
// 订单收货信息
_this.order.sh_name=cell.fullname;// 收货人姓名
_this.order.sh_phone=cell.mobilePhone;// 收货人电话
_this.order.sh_province=cell.prov;// 收货省份
_this.order.sh_city=cell.city;// 收货城市
_this.order.sh_area=cell.area;// 收货区
_this.order.sh_address=(cell.address).replace(cell.prov,'').replace(cell.city,'').replace(cell.area,'').replace(/-/g, '');// 收货详细地址
}
});
}
}
this.$forceUpdate();
},
getAddr() {
console.log("getAddr")
var _this=this;
// uni.showLoading({
// title: '加载中...'
// });
// const {data: res} = await uni.$http.post('/Appiso/getAddressByBuyerid' , {buyerid:this.userid});
var res=myCache("myaddresslist");
console.log(res)
if(res&&res.length>0){
res.forEach((cell)=>{
res["isChecked"]=false;
});
this.myaddresslist=res;
this._adrshow();
this.$forceUpdate();
}
else{
uni.showModal({
title: '提示',
content: '暂无收件地址,去添加?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
uni.navigateTo({
url: `/pages/address/add?type=add`
});
}
}
});
}
},
radioChange(e){
//协议
console.log(e);
if(e.detail.value==1){
this.isxy=true;
}
else{
this.isxy=false;
}
this.$forceUpdate();
},
blurDo(e){
// 首期付款金额输入验证
console.log(e);
if(e.detail.value){
if(parseFloat(e.detail.value)<=0){
uni.showToast({
title: '首期付款金额大于0元',
icon: 'error',
duration: 2000
});
// 默认平均首期
this.order.price_sqk= Math.round(100*(parseFloat(this.info.price)/parseFloat(this.info.rentcycle)))/100;
}
else if(parseFloat(e.detail.value)>parseFloat(this.info.price)){
uni.showToast({
title: '首期付款金额不大于总金额!',
icon: 'error',
duration: 2000
});
// 默认平均首期
this.order.price_sqk= Math.round(100*parseFloat(this.info.price))/100;
}
else{
this.order.price_sqk= Math.round(100*parseFloat(e.detail.value))/100;
}
}
else{
console.log('blurDo')
// 默认平均首期
this.order.price_sqk=Math.round(100*(parseFloat(this.info.price)/parseFloat(this.info.rentcycle)))/100;
}
this.$forceUpdate();
},
gotoxy(){
//跳转协议
uni.navigateTo({
url: `/pages/user/protocol?id=1`
});
},
adrchange(e){
console.log(e);
if(e.detail.value||e.detail.value=='0'){
var data= this.myaddresslist[ parseInt(e.detail.value)];
// 收货信息
this.order.sh_name=data.contact?data.contact:'';// 收货人姓名
this.order.sh_phone=data.phone?data.phone:'';// 收货人电话
this.order.sh_province=data.province?data.province:'';// 收货省份
this.order.sh_city=data.city?data.city:'';// 收货城市
this.order.sh_area=data.area?data.area:'';// 收货区
this.order.sh_address= data.address?data.address:'';
// 订单收货信息
this.info.address=this.order.sh_province+this.order.sh_city+this.order.sh_area+this.order.sh_address;
this.info.username=this.order.sh_name;
this.info.tel=this.order.sh_phone;
console.log(this.info,this.order);
this.$forceUpdate();
this._adrhide();
}
},
change(e){
console.log(e);
if(e.detail.value){
this.payType=e.detail.value;
}
},
_show() {
this.$refs.paypup.open();
},
_hide() {
this.$refs.paypup.close();
// 关闭弹出层
setTimeout(() => {
uni.hideLoading();
}, 1000);
},
_adrshow() {
this.$refs.adrpup.open();
},
_adrhide() {
this.$refs.adrpup.close();
// 关闭弹出层
setTimeout(() => {
uni.hideLoading();
}, 1000);
},
getPhoneNumber(e){
if(e.phone){
this.phone = e.phone
}
if(e.userid){
this.userid = e.userid
}
},
goback(){
uni.navigateBack({
delta: 1
});
},
// 去购买
gotopay(){
this._show();
},
paydo(){
// 去支付
// 是否登录
if(!this.iflogin()){
return false;
}
// #ifdef MP-ALIPAY
console.log("MP-ALIPAY");
this.alipaydo();
// #endif
},
async zfbpayFailDo(){
// 支付失败
uni.hideLoading();
var that=this;
uni.showModal({
title: '提示',
content: '支付订单失败!请重新再试!',
showCancel: false,
confirmText: '确定',
success: ress => {
if (ress.confirm) {
// 提示
}
}
});
},
async alipaydo(){
var that = this;
uni.showLoading({
title: '正在支付....'
});
console.log("alipaydo");
// 支付宝调起支付
var that=this;
console.log("支付宝发起支付");
//申请支付
var param={
"userid": myCache('userid'),
"userId": myCache('openId'),
"orderId": that.info.id,
};
// 申请支付
uni.showLoading({
title: '正在支付....'
});
const {data: ress} = await uni.$http.post("/api/alipay/trade/create", param);
if(ress.msg=="successed"){
console.log(ress.data);
var orderInfo =ress.data;
// 调起支付
uni.getProvider({
service: 'payment',
success: function (res) {
console.log(res.provider,"uni.getProvider");
if (~res.provider.indexOf('alipay')) {
uni.requestPayment({
"provider": "alipay", //固定值为"alipay"
"orderInfo": orderInfo.TradeNo,// 交易单号
success: function (resr) {
console.log("支付宝调起支付成功",resr);
if (resr && resr.resultCode === '9000') {
// 支付成功 执行想要的操作
uni.showLoading({
title: '订单支付成功!'
});
// 回调改订单状态
that.wxpaySuccessDo();
}
else{
uni.showModal({
title: '提示',
content: '请求支付失败!请重试!',
showCancel: false,
confirmText: '确定',
success: ress => {
}
});
}
},
fail: function (err) {
console.log("支付宝调起支付失败",err)
console.log('支付失败:' + JSON.stringify(err));
that.zfbpayFailDo();
}
});
}
}
});
}
else{
// 请求支付订单失败,
uni.showModal({
title: '提示',
content: '请求支付失败!订单已经关闭或异常!请返回订单重试!',
showCancel: false,
confirmText: '确定',
success: ress => {
// 返回订单全部列表
uni.redirectTo({
url: `/pages/order/orderlist?id=0`
});
}
});
}
},
gotoindenty(){
// 缓存订单界面认证界面
myCache("signtype",'2');
uni.navigateTo({
url: `/pages/setting/certificationone`
});
}
}
}
</script>
<style lang="scss" scoped>
.page{
padding: 0;
position: relative;
}
.submitcon{
position: fixed;
display: flex;
flex-direction: column;
bottom: 0;
left: 0;
width: 100%;
height: 200rpx;
background-color: #FFFFFF;
.xycon{
padding: 0 20rpx 0 20rpx;
position: relative;
display: block;
width: 100%;
.sitem {
position: relative;
display: flex;
flex-direction: row;
flex: 1;
align-items: center;
.selbtn{
width: 80rpx;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top:16rpx;
left: 0;
}
.conright{
flex: 1;
display: flex;
align-items: center;
flex-direction: row;
width: 100%;
justify-content:flex-start;
margin-left: 70rpx;
}
.sname{
display: flex;
justify-content: flex-start;
align-items: center;
font-size: 28rpx;
color: #999;
padding: 22rpx 10rpx 0 0;
}
.adress{
display: flex;
justify-content: flex-start;
align-items: center;
padding: 22rpx 10rpx 0 0;
font-size: 26rpx;
color:#4A7DF2;
}
}
}
.ocon{
display: flex;
flex-direction: row;
}
.pcon{
margin-left: 20rpx;
margin-top: 20rpx;
height: 50rpx;
display: flex;
flex:1;
justify-content: flex-start;
align-items: baseline;
.hj{
color:#303133;
font-size: 30rpx;
}
.rmb{
font-size: 30rpx;
font-family: smallYuan;
color:#ff3d0e ;
margin-left: 10rpx;
}
.zs{
font-size: 48rpx;
font-weight: 600;
color:#ff3d0e ;
}
.xs{
font-size: 28rpx;
font-weight: 600;
color:#89965f ;
}
}
.sbtn{
margin: 20rpx 45rpx 20rpx;
width: 660rpx;
height: 76rpx;
line-height: 76rpx;
background: #A0A0A0;
border:none;
box-shadow: 0rpx 12rpx 44rpx 2rpx rgba(186,186,188,0.4);
border-radius: 10rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 32rpx;
color: #FCFCFD;
text-align: center;
&::after{
border:none;
}
}
.sbtn::after{
border:0 !important;
}
.btn{
margin: 20rpx 45rpx 54rpx;
font-size: 32rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #FCFCFD;
width: 660rpx;
height: 76rpx;
line-height: 76rpx;
background: #89965f;
box-shadow: 0rpx 12rpx 64rpx 2rpx rgba(67,110,255,0.4);
border-radius: 10rpx;
opacity: 1;
&::after{
border:none;
}
}
.btn::after{
border:0 !important;
}
.pjbtn{
background-color: #FFFFFF !important;
margin: 30rpx 20rpx 0 0;
border-radius: 50rpx;
height: 60rpx;
line-height: 60rpx;
width:170rpx;
font-size: 26rpx;
border:1rpx solid #ff3d0e;
color:#ff3d0e;
}
.pjbtn::after{
border:0 !important;
}
}
.oscon{
border-radius: 16rpx;
padding:20rpx;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
.osimg{
width: 150rpx;
height: 180rpx;
border-radius: 10rpx;
margin-left: 20rpx;
}
.osrcon{
display: flex;
flex-direction: column;
flex: 1;
justify-content: flex-start;
margin-left: 50rpx;
}
.osname{
line-height: 48rpx;
font-size:30rpx;
color:#303133;
}
.oscell{
font-size: 26rpx;
color:#747474;
line-height: 44rpx;
}
}
.tcon{
display: flex;
flex-direction: row;
justify-content: space-between;
padding: 20rpx;
.tcell{
width: 46%;
margin: 0 2%;
background-color: #F5F6FC;
padding: 20rpx;
border-radius: 10rpx;
display: flex;
flex-direction: row;
align-items: center;
.ticon{
width: 36rpx;
height: 36rpx;
margin-right: 20rpx;
margin-right: 20rpx;
}
.tlist{
display: flex;
flex:1;
flex-direction: column;
.tname{
color: #303133;
font-weight: 600;
font-size: 28rpx;
}
.tvalue{
color: #656E87;
font-size: 24rpx;
margin-top: 10rpx;
}
}
}
}
.tip{
background: #E1F2FF;
padding: 20rpx;
font-size: 24rpx;
color: #303133;
display: flex;
justify-content: center;
align-items: center;
}
.odrcell{
border-radius: 12rpx;
padding: 20rpx 40rpx;
}
.oinfo{
padding:0;
position: relative;
display: block;
margin-bottom: 240rpx;
.yycon{
display: flex;
flex-direction: column;
justify-content: center;
background-color: #FFFFFF;
margin-top: 20rpx;
position: relative;
.realcon{
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
position: relative;
padding: 30rpx;
background: #E1F2FF;
.rleft{
display: flex;
flex-direction: column;
.tip1{
font-weight: 600;
font-size: 32rpx;
color: #333333;
}
.tip2{
margin-top: 12rpx;
font-weight: 400;
font-size: 26rpx;
color: #78839A;
}
}
.rright{
width: 180rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
background: #89965f;
border-radius: 40rpx 40rpx 40rpx 40rpx;
font-weight: 400;
font-size: 28rpx;
color: #FFFFFF;
}
}
.shsel{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
height: 80rpx;
background-color: #F5F5F5;
.shsel1{
border-radius: 20rpx 20rpx 0 0;
background-color: #E1F2FF;
font-size: 26rpx;
color:#666;
width: 50%;
height: 80rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.shsel1.current{
border-radius: 20rpx 20rpx 0 0;
background-color: #FFF;
color:#303133;
font-weight: 600;
font-size: 28rpx;
}
.shsel2{
border-radius: 20rpx 20rpx 0 0;
background-color: #E1F2FF;
font-size: 26rpx;
color:#666;
width: 50%;
height: 80rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.shsel2.current{
border-radius: 20rpx 20rpx 0 0;
background-color: #FFF;
font-size: 28rpx;
color:#303133;
font-weight: 600;
}
}
.acon{
display: flex;
flex-direction: row;
align-items: center;
position: relative;
padding: 30rpx 0;
width: 100%;
.aleft{
display: flex;
flex: 1;
flex-direction: column;
justify-content: flex-start;
margin-left: 40rpx;
.aname{
padding: 5rpx 0 10rpx;
color:#303133;
font-size: 32rpx;
font-weight: 600;
}
.atxt{
font-size: 26rpx;
color:#747474;
padding: 5rpx 0;
}
}
.aright{
width: 60rpx;
display: flex;
align-items: center;
justify-content: flex-end;
margin-right: 40rpx;
}
.aline{
position: absolute;
bottom: 0;
width: 100%;
height: 10rpx;
}
}
.atitle{
padding: 10rpx 0 20rpx;
color:#303133;
font-size: 30rpx;
font-weight: 600;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
position: relative;
.sqprice{
font-size: 36rpx;
display: flex;
flex-direction: row;
align-items: right;
}
.price{
font-size: 36rpx;
display: flex;
flex-direction: row;
width: 280rpx;
align-items: center;
}
}
.sqcon{
padding: 20rpx;
margin: 20rpx 0;
background-color: #f5f5f5;
display: flex;
flex-direction: column;
border-radius: 10rpx;
.sqlist{
display: flex;
flex-direction: row;
justify-content: space-between;
color: #333333;
font-size: 26rpx;
line-height: 50rpx;
}
}
.atip{
color:#000;
font-size: 26rpx;
margin-bottom: 20rpx;
}
.olist{
display: flex;
flex-direction: column;
.ocell{
font-size: 26rpx;
color:#747474;
padding: 10rpx 0;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.red{
color:#ff3d0e;
}
}
}
}
}
::v-deep .uni-easyinput__content-input{
font-size: 36rpx !important;
}
::v-deep.uni-radio-input-checked{
background-color: #89965f !important;
border-color: #89965f !important;
background-clip: content-box!important;
box-sizing: border-box;
}
::v-deep.uni-radio-input-checked::before{
display: none!important;
}
.allcon{
height: 600rpx;
overflow: hidden;
background-color: #FFFFFF;
padding-top: 40rpx;
}
.mtxt{
display: flex;
flex-direction: row;
align-items: baseline;
justify-content: center;
padding: 20rpx;
font-size: 30rpx;
border-top:1rpx solid #eee;
}
.mref{
margin: 0 20rpx;
}
.mcon{
display: flex;
flex-direction: row;
align-items: baseline;
justify-content: center;
width:100%;
padding: 20rpx 0;
font-size: 40rpx;
font-weight:600;
.mcost{
font-size: 60rpx;
}
}
.hcon{
display: flex;
flex-direction: row;
padding: 20rpx;
.htitle{
flex:1;
display: flex;
justify-content: center;
align-items: center;
font-size: 32rpx;
font-weight: 600;
text-indent: 50rpx;
}
.rclose{
width: 50rpx;
display: flex;
justify-content: flex-start;
}
}
.checklist-group{
width: 100%;
}
.paybtn{
background-color: #89965f !important;
margin: 20rpx 20rpx;
border-radius: 50rpx;
height: 75rpx;
line-height: 75rpx;
font-size: 30rpx;
}
.selcon{
padding: 20rpx;
position: relative;
display: block;
overflow-y: auto;
.adrsitem {
display: flex;
flex-direction: row;
align-items: center;
background-color: #FFFFFF;
margin-bottom: 20rpx;
border-radius: 16rpx;
border-top: 1rpx solid #f0f0f0;
.lcon{
display: flex;
flex: 1;
flex-direction: column;
}
.opecon{
width: 80rpx;
display: flex;
align-items: center;
}
.sname{
font-size: 30rpx;
font-weight: 600;
color: rgb(29, 29, 29);
padding: 24rpx;
justify-content: flex-start;
align-items: center;
display: flex;
.adrtip{
font-weight: 400;
font-size: 24rpx;
color: #FFFFFF;
width: 80rpx;
height: 48rpx;
text-align: center;
line-height: 50rpx;
background: #89965f;
border-radius: 24rpx;
margin-left: 10rpx;
}
}
.sinfo{
padding: 0 24rpx 24rpx;
font-size: 26rpx;
color:rgb(116, 116, 116);
line-height: 40rpx;
}
}
.sitem {
display: flex;
flex-direction: row;
flex: 1;
background-color: #FFFFFF;
border-top: 1rpx solid #f0f0f0;
padding:16rpx 0;
.conright{
flex: 1;
display: flex;
flex-direction: row;
width: 100%;
justify-content:flex-start;
align-items: center;
}
.rinfo{
width: 100rpx;
display: flex;
flex-direction: column;
justify-items: center;
align-self: center;
margin-right: 10rpx;
text-align: center;
.btn{
padding: 0 12rpx;
background-color: #89965f ;
border-radius: 24rpx;
font-size: 26rpx;
color: #fff;
}
}
.selbtn{
width: 80rpx;
display: flex;
justify-content: center;
align-items: center;
}
.simg{
width: 50rpx;
height: 46rpx;
padding: 10rpx;
.img{
width: 100%;
height: 100%;
border-radius: 6rpx;
}
}
.sname{
display: flex;
flex: 1;
justify-content: flex-start;
font-size: 28rpx;
font-weight: 600;
color: rgb(29, 29, 29);
padding: 0 10rpx 0 20rpx;
}
}
}
</style>