|
|
|
@ -7,15 +7,16 @@ |
|
|
|
|
<view class='line'></view> --> |
|
|
|
|
<view class='nav acea-row'> |
|
|
|
|
<view class='item'> |
|
|
|
|
<view>当前福利积分</view> |
|
|
|
|
<view class='num'>{{welfare || 0}}</view> |
|
|
|
|
<view>账户钻石数</view> |
|
|
|
|
<view class='num'>{{huitong || 0}}</view> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
<view class='item'> |
|
|
|
|
<view>冻结福利积分</view> |
|
|
|
|
<view class='num'>{{welfare_frozen || 0}}</view> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
<!-- <view class='item'> |
|
|
|
|
<view>当前惠通宝市值/消费积分</view> |
|
|
|
|
<view class='num'>{{userInfo.lockIntegral || 0}}</view> |
|
|
|
|
|
|
|
|
|
</view> --> |
|
|
|
|
<!-- <view class='item'> |
|
|
|
|
<view class='num'>{{userInfo.totalGainIntegral || 0}}</view> |
|
|
|
|
<view>累计积分</view> |
|
|
|
@ -35,16 +36,32 @@ |
|
|
|
|
<view class='item acea-row row-center-wrapper' :class='current==index?"on":""' v-for="(item,index) in navList" :key='index' |
|
|
|
|
@click='nav(index)'><text class='iconfont' :class="item.icon"></text>{{item.name}}</view> |
|
|
|
|
</view> --> |
|
|
|
|
<view class="zhuanrang"> |
|
|
|
|
<text>钻石兑换本票</text> |
|
|
|
|
<view class="zhuanrangBtn" @click="show1 = true"> |
|
|
|
|
立即兑换 |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="zhuanrang"> |
|
|
|
|
<text>钻石转让</text> |
|
|
|
|
<view class="zhuanrangBtn" @click="show = true"> |
|
|
|
|
立即转让 |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<view class="scoreTitle"> |
|
|
|
|
分值明细 |
|
|
|
|
</view> |
|
|
|
|
<view class='list'> |
|
|
|
|
<view class='list' :hidden='current != 0' > |
|
|
|
|
<view class='tip' v-if="userInfo.clear && userInfo.clear.status && userInfo.clear.nextClearIntegral > 0"><text class='iconfont icon-shuoming'></text> |
|
|
|
|
<text class="tip-text">提示:您有部分积分将于{{userInfo.clear.nextClearDay}}过期,请尽快使用!</text> |
|
|
|
|
</view> |
|
|
|
|
<view class='item acea-row row-between-wrapper' v-for="(item,index) in integralList" :key="index"> |
|
|
|
|
<view> |
|
|
|
|
<view class='state'>{{item.type}}</view> |
|
|
|
|
<view class='state'>{{item.type}} |
|
|
|
|
<text style="margin-left:10rpx;">{{(item.ext != null&&item.ext.from_phone)?`来自${item.ext.from_phone}`:(item.ext !== null&&item.ext.to_phone)?`转给${item.ext.to_phone}`:''}}</text> |
|
|
|
|
</view> |
|
|
|
|
<view>{{item.create_time}}</view> |
|
|
|
|
</view> |
|
|
|
|
<view> |
|
|
|
@ -55,6 +72,7 @@ |
|
|
|
|
<view class='num p-color' v-if="item.count.indexOf('-')==-1">{{item.count}}</view> |
|
|
|
|
<view class='num' v-if="item.count.indexOf('-')!=-1">{{item.count}}</view> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
<view class='loadingicon acea-row row-center-wrapper' v-if="integralList.length>0"> |
|
|
|
|
<text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}} |
|
|
|
@ -83,7 +101,7 @@ |
|
|
|
|
</view> --> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="instructions" v-if="showProtocol"> |
|
|
|
|
<!-- <view class="instructions" v-if="showProtocol"> |
|
|
|
|
<view class="setAgCount"> |
|
|
|
|
<i class="icon iconfont icon-cha" @click="showProtocol = false"></i> |
|
|
|
|
<div class="title">积分说明</div> |
|
|
|
@ -91,12 +109,86 @@ |
|
|
|
|
<jyf-parser :html="protocol" ref="article" :tag-style="tagStyle"></jyf-parser> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> --> |
|
|
|
|
<u-popup :show="show1" @close="show1=false"> |
|
|
|
|
<view class="popContent"> |
|
|
|
|
<view class="popTitle" style="display: flex;justify-content: space-between;"> |
|
|
|
|
<text>钻石 : 本票比值</text> |
|
|
|
|
<text>1:{{huitongToConsume}}</text> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> |
|
|
|
|
|
|
|
|
|
<view class="popTitle" style="margin-top:29rpx;"> |
|
|
|
|
兑换本票数 |
|
|
|
|
</view> |
|
|
|
|
<u--input |
|
|
|
|
placeholder="请输入兑换数" |
|
|
|
|
border="surround" |
|
|
|
|
type="number" |
|
|
|
|
v-model="huitongToConsumeNum" |
|
|
|
|
></u--input> |
|
|
|
|
<view class="popTitle" style="margin-top: 15px;display: flex;justify-content: space-between;"> |
|
|
|
|
<text>需支付钻石</text> |
|
|
|
|
<text>{{huitongToConsumeNum?(huitongToConsumeNum*huitongToConsume).toFixed(2):0}}</text> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<view class="submitBtn" @click="changeConsume"> |
|
|
|
|
立即兑换 |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
</u-popup> |
|
|
|
|
<u-popup :show="show" @close="show=false"> |
|
|
|
|
<view class="popContent"> |
|
|
|
|
<view class="popTitle"> |
|
|
|
|
转让钻石数量 |
|
|
|
|
</view> |
|
|
|
|
<u--input |
|
|
|
|
placeholder="请输入钻石数量" |
|
|
|
|
type="digit" |
|
|
|
|
border="surround" |
|
|
|
|
v-model="zhuanrang.count" |
|
|
|
|
></u--input> |
|
|
|
|
<view class="popTitle" style="margin-top:29rpx;"> |
|
|
|
|
收款人注册手机号 |
|
|
|
|
</view> |
|
|
|
|
<u--input |
|
|
|
|
placeholder="请输入收款人注册手机号" |
|
|
|
|
border="surround" |
|
|
|
|
type="number" |
|
|
|
|
v-model="zhuanrang.phoneTo" |
|
|
|
|
></u--input> |
|
|
|
|
<view class="popTitle" style="margin-top:29rpx;"> |
|
|
|
|
转让人手机验证码 |
|
|
|
|
</view> |
|
|
|
|
<view class="code"> |
|
|
|
|
<u--input |
|
|
|
|
placeholder="请输入验证码" |
|
|
|
|
border="surround" |
|
|
|
|
v-model="zhuanrang.smsCode" |
|
|
|
|
></u--input> |
|
|
|
|
<!-- <text @click="getCode">获取验证码</text> --> |
|
|
|
|
<button v-debounce class="codeText" :disabled="disabled" :class="disabled === true ? 'on' : ''" @click="getCode"> |
|
|
|
|
{{ text }} |
|
|
|
|
</button> |
|
|
|
|
</view> |
|
|
|
|
<view class="msg"> |
|
|
|
|
注:钻石互转平台收取3%钻石手续费 |
|
|
|
|
</view> |
|
|
|
|
<view class="submitBtn" @click="submitHandle"> |
|
|
|
|
确定 |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }" ref="verify"></Verify> |
|
|
|
|
</u-popup> |
|
|
|
|
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> --> |
|
|
|
|
</view> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
import sendVerifyCode from "@/mixins/SendVerifyCode"; |
|
|
|
|
// +---------------------------------------------------------------------- |
|
|
|
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] |
|
|
|
|
// +---------------------------------------------------------------------- |
|
|
|
@ -106,22 +198,27 @@ |
|
|
|
|
// +---------------------------------------------------------------------- |
|
|
|
|
// | Author: CRMEB Team <admin@crmeb.com> |
|
|
|
|
// +---------------------------------------------------------------------- |
|
|
|
|
import { getIntegralInfo, getassetsLog, getAgreementApi,getUserInfo } from '@/api/user.js'; |
|
|
|
|
import { getIntegralInfo, getassetsLog,DiamondTostock, getAgreementApi,getUserInfo,registerVerify,sendDiamond,getConfig} from '@/api/user.js'; |
|
|
|
|
import { |
|
|
|
|
mapGetters |
|
|
|
|
} from "vuex"; |
|
|
|
|
import authorize from '@/components/Authorize'; |
|
|
|
|
// import authorize from '@/components/Authorize'; |
|
|
|
|
import emptyPage from '@/components/emptyPage.vue'; |
|
|
|
|
import Verify from '@/components/verify/verify.vue'; |
|
|
|
|
import parser from "@/components/jyf-parser/jyf-parser"; |
|
|
|
|
const app = getApp(); |
|
|
|
|
export default { |
|
|
|
|
components: { |
|
|
|
|
authorize, |
|
|
|
|
// authorize, |
|
|
|
|
emptyPage, |
|
|
|
|
Verify, |
|
|
|
|
"jyf-parser": parser, |
|
|
|
|
}, |
|
|
|
|
mixins: [sendVerifyCode], |
|
|
|
|
data() { |
|
|
|
|
return { |
|
|
|
|
show:false, |
|
|
|
|
show1:false, |
|
|
|
|
// navList: [{ |
|
|
|
|
// 'name': '分值明细', |
|
|
|
|
// 'icon': 'icon-mingxi' |
|
|
|
@ -148,8 +245,16 @@ |
|
|
|
|
video: 'width:100%;' |
|
|
|
|
}, |
|
|
|
|
integral_status: true, |
|
|
|
|
welfare:0, |
|
|
|
|
welfare_frozen:0, |
|
|
|
|
huitong:0, |
|
|
|
|
// huitong_frozen:0, |
|
|
|
|
zhuanrang:{ |
|
|
|
|
count:0, |
|
|
|
|
phoneTo:null, |
|
|
|
|
smsCode:null, |
|
|
|
|
type:'integral', |
|
|
|
|
}, |
|
|
|
|
huitongToConsume:1, |
|
|
|
|
huitongToConsumeNum:0, |
|
|
|
|
statusList:[ |
|
|
|
|
|
|
|
|
|
{key:0,value:'获取冻结'}, |
|
|
|
@ -157,7 +262,8 @@ |
|
|
|
|
{key:2,value:'退款'}, |
|
|
|
|
{key:3,value:'支付'}, |
|
|
|
|
|
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
mobilePhoneNum:'' |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
computed: mapGetters(['isLogin','viewColor']), |
|
|
|
@ -169,6 +275,10 @@ |
|
|
|
|
this.isShowAuth = true |
|
|
|
|
} |
|
|
|
|
this.getAgreement(); |
|
|
|
|
getConfig().then(res=>{ |
|
|
|
|
this.huitongToConsume = res.data?res.data.diamondToStock:1 |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -179,17 +289,147 @@ |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
getLable(val){ |
|
|
|
|
|
|
|
|
|
let arr = this.statusList.filter(item=>{ |
|
|
|
|
return item.key==val |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
if(arr.length>0){ |
|
|
|
|
return arr[0].value |
|
|
|
|
}else{ |
|
|
|
|
return '-' |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
changeConsume(){ |
|
|
|
|
if(this.huitongToConsumeNum==0){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '兑换数量需大于0', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if(this.huitongToConsumeNum>this.huitong){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '积分不足', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
DiamondTostock({count:Number(this.huitongToConsumeNum).toFixed(2)}).then(res=>{ |
|
|
|
|
|
|
|
|
|
if(res.status==200){ |
|
|
|
|
this.getUserInfo() |
|
|
|
|
this.show1 = false; |
|
|
|
|
} |
|
|
|
|
}).catch(res => { |
|
|
|
|
this.$util.Tips({ |
|
|
|
|
title: res |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
submitHandle(){ |
|
|
|
|
if(this.zhuanrang.count==0){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '转让数量需大于0', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if(this.zhuanrang.count>this.huitong){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '积分不足', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if(!this.zhuanrang.phoneTo){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '请输入收款人注册手机号', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
const regex =/^1(3|4|5|7|8|9|6)\d{9}$/i; |
|
|
|
|
|
|
|
|
|
if(!regex.test(this.zhuanrang.phoneTo)){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '请输入正确的手机号', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(!this.zhuanrang.smsCode){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '请输入验证码', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
this.zhuanrang.count = Number(this.zhuanrang.count).toFixed(2) |
|
|
|
|
|
|
|
|
|
sendDiamond(this.zhuanrang).then(res=>{ |
|
|
|
|
|
|
|
|
|
if(res.status==200){ |
|
|
|
|
this.getUserInfo() |
|
|
|
|
this.show = false; |
|
|
|
|
} |
|
|
|
|
}).catch(res => { |
|
|
|
|
this.$util.Tips({ |
|
|
|
|
title: res |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
success(data) { |
|
|
|
|
this.$refs.verify.hide(); |
|
|
|
|
this.code(data); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
async getCode(data) { |
|
|
|
|
let that = this; |
|
|
|
|
if(!this.zhuanrang.phoneTo){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '请输入收款人注册手机号', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
const regex =/^1(3|4|5|7|8|9|6)\d{9}$/i; |
|
|
|
|
|
|
|
|
|
if(!regex.test(this.zhuanrang.phoneTo)){ |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: '请输入正确的手机号', |
|
|
|
|
icon:'none' |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
this.$refs.verify.show(); |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
async code(data) { |
|
|
|
|
let that = this; |
|
|
|
|
// if (that.formItem == 2) that.type = "register"; |
|
|
|
|
await registerVerify({ |
|
|
|
|
phone: this.mobilePhoneNum, |
|
|
|
|
type: 'huitong', |
|
|
|
|
key: "", |
|
|
|
|
// code: that.codeVal, |
|
|
|
|
toke:data.token, |
|
|
|
|
captchaType: 'blockPuzzle', |
|
|
|
|
captchaVerification: data.captchaVerification |
|
|
|
|
}) |
|
|
|
|
.then(res => { |
|
|
|
|
that.$util.Tips({ |
|
|
|
|
title: res.message |
|
|
|
|
}); |
|
|
|
|
that.sendCode(); |
|
|
|
|
}) |
|
|
|
|
.catch(res => { |
|
|
|
|
that.$util.Tips({ |
|
|
|
|
title: res |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 授权回调 |
|
|
|
|
*/ |
|
|
|
@ -201,20 +441,22 @@ |
|
|
|
|
authColse: function(e) { |
|
|
|
|
this.isShowAuth = e |
|
|
|
|
}, |
|
|
|
|
getUserInfo: function() { |
|
|
|
|
getUserInfo() { |
|
|
|
|
let that = this; |
|
|
|
|
getUserInfo().then((res)=>{ |
|
|
|
|
this.welfare = res.data.assets.welfare |
|
|
|
|
this.welfare_frozen = res.data.assets.welfare_frozen |
|
|
|
|
getIntegralInfo().then(function(res) { |
|
|
|
|
that.$set(that,'userInfo',res.data); |
|
|
|
|
that.getIntegralList() |
|
|
|
|
}).catch(res => { |
|
|
|
|
this.integral_status = false |
|
|
|
|
return that.$util.Tips({ |
|
|
|
|
title: res |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
this.huitong = res.data.assets.diamond; |
|
|
|
|
|
|
|
|
|
this.mobilePhoneNum = res.data.phone |
|
|
|
|
this.getIntegralList() |
|
|
|
|
// getIntegralInfo().then(function(res) { |
|
|
|
|
// that.$set(that,'userInfo',res.data); |
|
|
|
|
// that.getIntegralList() |
|
|
|
|
// }).catch(res => { |
|
|
|
|
// this.integral_status = false |
|
|
|
|
// return that.$util.Tips({ |
|
|
|
|
// title: res |
|
|
|
|
// }); |
|
|
|
|
// }); |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
@ -237,9 +479,8 @@ |
|
|
|
|
getassetsLog({ |
|
|
|
|
page: that.page, |
|
|
|
|
limit: that.limit, |
|
|
|
|
asset_type:3 //本票 |
|
|
|
|
asset_type:2 |
|
|
|
|
}).then(function(res) { |
|
|
|
|
console.log(res,"---") |
|
|
|
|
let list = res.data.list, |
|
|
|
|
loadend = list.length < that.limit; |
|
|
|
|
that.integralList = that.$util.SplitArray(list, that.integralList); |
|
|
|
@ -426,6 +667,7 @@ |
|
|
|
|
.integral-details .wrapper .list .item .state { |
|
|
|
|
|
|
|
|
|
margin-bottom: 24rpx; |
|
|
|
|
font-family: Alibaba PuHuiTi; |
|
|
|
|
font-size: 30rpx; |
|
|
|
|
color: #333333; |
|
|
|
|
} |
|
|
|
@ -539,4 +781,77 @@ |
|
|
|
|
height: 756rpx; |
|
|
|
|
overflow-y: scroll; |
|
|
|
|
} |
|
|
|
|
.zhuanrang{ |
|
|
|
|
margin:20rpx 0rpx; |
|
|
|
|
border-radius: 10px; |
|
|
|
|
background: #fff; |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
padding:20rpx 30rpx; |
|
|
|
|
text{ |
|
|
|
|
|
|
|
|
|
font-family: Alibaba PuHuiTi; |
|
|
|
|
font-weight: 400; |
|
|
|
|
font-size: 30rpx; |
|
|
|
|
color: #333333; |
|
|
|
|
} |
|
|
|
|
.zhuanrangBtn{ |
|
|
|
|
width: 230rpx; |
|
|
|
|
height: 70rpx; |
|
|
|
|
background: linear-gradient(-90deg, #89B929, #116636); |
|
|
|
|
border-radius: 35px; |
|
|
|
|
text-align: center; |
|
|
|
|
line-height: 70rpx; |
|
|
|
|
font-size: 28rpx; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.popContent{ |
|
|
|
|
padding:40rpx 24rpx; |
|
|
|
|
.popTitle{ |
|
|
|
|
font-family: Alibaba PuHuiTi; |
|
|
|
|
font-weight: 400; |
|
|
|
|
font-size: 30rpx; |
|
|
|
|
color: #333333; |
|
|
|
|
margin-bottom: 29rpx; |
|
|
|
|
} |
|
|
|
|
.code{ |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
.codeText{ |
|
|
|
|
|
|
|
|
|
font-family: Alibaba PuHuiTi; |
|
|
|
|
font-weight: 400; |
|
|
|
|
font-size: 30rpx; |
|
|
|
|
color: #116636; |
|
|
|
|
margin-left:58rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.submitBtn{ |
|
|
|
|
width:100%; |
|
|
|
|
height: 90rpx; |
|
|
|
|
line-height: 90rpx; |
|
|
|
|
text-align: center; |
|
|
|
|
background: linear-gradient(-90deg, #89B929, #116636); |
|
|
|
|
border-radius: 45px; |
|
|
|
|
color:#fff; |
|
|
|
|
margin-top:36rpx; |
|
|
|
|
} |
|
|
|
|
/deep/.u-input{ |
|
|
|
|
background: #F6F6F6; |
|
|
|
|
border-radius: 10px; |
|
|
|
|
height: 90rpx; |
|
|
|
|
border-radius: 0 !important; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.msg{ |
|
|
|
|
|
|
|
|
|
font-family: Alibaba PuHuiTi; |
|
|
|
|
font-weight: 400; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
margin:31rpx 0; |
|
|
|
|
text-align: center; |
|
|
|
|
color: #999999; |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|