detection-business/pages/index/orderdetails.vue
2024-11-15 17:48:16 +08:00

1130 lines
27 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content">
<view class="top-heder">
<view class="t-left" @click="getback()">
<uni-icons type="left" size="18"></uni-icons>
</view>
<view class="t-title">
<text>检测详情</text>
</view>
<view class="t-you"></view>
</view>
<view class="x-box">
<view class="box-top">
<view style=" width: 100%;">
<view class="touxiang" v-if="!detailData.workerAvatar">
<image src="../../static/detection/touxiang.png" mode=""></image>
</view>
<view class="touxiang" v-else>
<image :src="baseImageUrl+detailData.workerAvatar" mode=""></image>
</view>
<view class="sanniu">
<text>{{ detailData.workerName }}</text>
</view>
</view>
</view>
<view class="box-dis">
<view class="shop-img">
<image :src="baseImageUrl+detailData.goodsImage" mode=""></image>
</view>
<view class="ds-right">
<view class="h-title">{{ detailData.goodsName }}</view>
<view class="dis-hui">
<text>预约人:</text>
<text>{{ detailData.buyUserName }}</text>
</view>
<view class="dis-hui">
<text>手机号:</text>
<text>{{ detailData.buyUserPhone }}</text>
</view>
<view class="dis-hui">
<text>引车员:</text>
<text>{{ detailData.leadManName }}</text>
</view>
<view class="dis-hui">
<text>车型:</text>
<text>{{ detailData.carType }}</text>
</view>
<view class="dis-hui">
<text>车牌号:</text>
<text>{{ detailData.carNum }}</text>
</view>
<view class="dis-hui">
<text>商品价格:</text>
<text>{{ detailData.goodsPrice / 100 }}元</text>
</view>
</view>
</view>
<view class="bd-tel" @click="callUser(detailData.buyUserPhone)">
<uni-icons type="phone" color="#0D2E8D" size="16"></uni-icons>
<text>联系用户</text>
</view>
</view>
<view class="x-box" v-if="roleSelect == 'shop'">
<view class="h-title">订单详情</view>
<!-- <view class="on-input">-->
<!-- <view class="o-left">订单编号:</view>-->
<!-- <view class="o-right">{{ detailData.orderNo }}</view>-->
<!-- </view>-->
<view class="on-input">
<view class="o-left">折扣:</view>
<view class="o-right">{{ detailData.reduceMoney / 100 }}</view>
</view>
<view class="on-input">
<view class="o-left">优惠金额:</view>
<view class="o-right">{{ detailData.couponDiscount / 100 }}</view>
</view>
<!-- <view class="on-input">-->
<!-- <view class="o-left">核销人:</view>-->
<!-- <view class="o-right">{{ detailData.validationRealName }}</view>-->
<!-- </view>-->
<!-- <view class="on-input">-->
<!-- <view class="o-left">核销时间:</view>-->
<!-- <view class="o-right">{{ detailData.validationTime }}</view>-->
<!-- </view>-->
<view class="bottomxx" v-if="isOnline&&isOnline==0&&orderStatus&&orderStatus==0" @click="xling = true">
<view class="">结算</view>
</view>
<view class="bottom-input">
<view class="o-left">实付金额:</view>
<view class="o-zui">{{ (detailData.payMoney + detailData.balance) / 100 }}元</view>
</view>
</view>
<view class="" v-for="(item,index) in detailData.stepInfos" :key="index">
<view class="x-box">
<view class="h-title" style="display: flex;align-items: center;justify-content: space-between;">
<view style="width: 10%;">
<view class="qiu_">{{ index + 1 }}</view>
</view>
<text style="width:30%;box-sizing: border-box;padding-left: 5px;"> {{ item.title }}</text>
<text class="times">{{ item.createTime }}</text>
<text class="times">施工人员:
{{ item.nickname }}
</text>
</view>
<view class="">
<view style="margin-bottom: 5px; box-sizing: border-box;padding-left: 10%">{{ item.content }}</view>
<view style="display: flex" v-if="item.images">
<!-- <view v-for="it in item.images.split(',')">-->
<!-- <image :src="baseImageUrl+'/'+it" style="width: 28vw; height: 12vh; margin-right: 1vw; " ></image>-->
<!-- </view>-->
<u-album :urls="item.imageList" style="padding-left: 40px"></u-album>
</view>
</view>
<view style="display: flex;align-items: center;">
<view class="xb_" v-if="index != detailData.stepInfos.length - 1 ">↓</view>
</view>
</view>
</view>
<view class="annniu" v-if="detailData.status&&detailData.status == 0&&workNodeStatus == 1"
@click="hge = true;getProject()">
<view class="">结束检测</view>
</view>
<view class="annniu"
v-if="detailData.status&&detailData.status == 1&&detailData.isPass&&detailData.isPass ==1&&detailData.makeCert!=1"
@click="dialogToggle">
<view class="">制证完成</view>
</view>
<u-picker :show="show" :columns="columns" keyName="label" @close="close" @confirm="confirm" @change="change"
@cancel="cancel"></u-picker>
<u-popup :show="hge" @close="closehge" :round="10" @open="openxl">
<view class="popup-box">
<view class="on-inputx">
<text>说明:</text>
<!-- <input type="text" placeholder="请输入内容"> -->
</view>
<u--textarea v-model="remark" placeholder="请输入内容" border="bottom"></u--textarea>
<view class="on-inputx">
<text>施工图片:</text>
<!-- <input type="text" placeholder="请输入内容"> -->
</view>
<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
:maxCount="10"></u-upload>
<view class="t-title">是否合格</view>
<view class="on-inputx">
<view class="anniu" :class="{'an':geindex == index}" v-for="(item,index) in sfou" :key="index"
@click="Nnimamadewen(item.value,index)">
<text>{{ item.text }}</text>
</view>
</view>
<view class="t-title" v-if="geindex == 1">重审/退办</view>
<view class="on-inputx" v-if="geindex == 1">
<view class="anniu" :class="{'an':isRetrial == item.value}" v-for="(item,index) in cstb"
:key="index" @click="shenmowanyi(item.value,index)">
<text>{{ item.text }}</text>
</view>
</view>
<view class="t-title" v-if="tbindex == 1 && isRetrial == 1 && isPass != '1'">选择复检的项目</view>
<view class="box_ on-inputx" v-if="tbindex == 1 && isRetrial == 1 && isPass != '1'">
<view class="box_button " :class="{ 'box_button_x' :csId.includes(item.id) }"
v-for="item in selectProject" @click="clickProject(item)">{{ item.projectName }}
</view>
</view>
<view class="bottomx" @click="submit()">
<uni-icons type="compose" color="#0D2E8D" size="20"></uni-icons>
<text>提交</text>
</view>
</view>
</u-popup>
<u-popup :show="xling" @close="closexl" :round="10" @open="openxl">
<view class="popup-box">
<view class="t-title">线下订单</view>
<view class="on-inputx">
<text>商品价格:</text>
<text>{{ detailData.goodsPrice / 100 }}元</text>
</view>
<view class="on-inputx">
<text>优惠金额:</text>
<input type="number" v-model="reduceMoney" @input="jisuan" placeholder="请输入优惠金额">
</view>
<view class="on-inputx">
<text>
<text style="color: red;font-weight: bold;text-align: center;">*</text>
实付金额:
</text>
<input type="number" v-model="payMoney" placeholder="请输入实付金额">
</view>
<view class="on-inputx">
<text>
<text style="color: red;font-weight: bold;text-align: center;">*</text>
付款方式:
</text>
</view>
<view class="warp-box">
<view class="lan-box" :class=" {'lantong':payType == item.value } " v-for="(item,index) in shelist"
:key="index" @click="xuanxiaolan(item)">
{{ item.label }}
</view>
</view>
<view class="on-inputx">
<text>收款账号:</text>
<input type="text" @click="bankShow = true" v-model="receivablesAccount" placeholder="请输入收款账号">
</view>
<view class="on-inputx">
<text>备注:</text>
</view>
<u--textarea v-model="payRemark" placeholder="如果存在组合付款方式,请在备注中描述清楚"
border="bottom"></u--textarea>
<view class="bottomx" @click="tiijiao()" style="margin-top: 10px;">
<uni-icons type="compose" color="#0D2E8D" size="20"></uni-icons>
<text>提交</text>
</view>
</view>
</u-popup>
<u-picker :show="bankShow" :columns="bankList" @confirm="chooseBank" @cancel="bankShow=false"
keyName="label"></u-picker>
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog cancelText="关闭" confirmText="确定" title="通知" content="您确定制证完成吗"
@confirm="dialogConfirm"
@close="dialogClose"></uni-popup-dialog>
</uni-popup>
</view>
</template>
<script>
import config from '@/config'
import request from '../../utils/request';
import upload from '@/utils/upload.js'
export default {
data() {
return {
baseImageUrl: this.$baseImageUrl,
reduceMoney: null,
payMoney: null,
payType: '',
receivablesAccount: '',
orderStatus: null,
payRemark: '',
bankList: [],
bankShow: false,
isRetrial: 1,
tbindex: 1,
isOnline: 1,
hge: false,
roleSelect: '',
orImages: false,
show: false,
xling: false,
baseUrl: this.$baseUrl,
geindex: 0,
detailData: {},
inspectionInfoId: '',
workNodeId: '',
workNodeStatus: '',
stepInfo: {
isPass: "0"
},
selectProject: [],
lei: '请选择车辆类型',
columns: [],
cph: '',
fileList1: [],
fileList2: [],
shelist: [],
isPass: "1",
remark: '',
csId: [],
sfou: [{
text: '合格',
value: "1"
},
{
text: '不合格',
value: "0"
},
],
cstb: [{
text: '重检',
value: "2"
}, {
text: '复检',
value: "1"
},
{
text: '退办理',
value: "0"
},
]
}
},
onLoad(option) {
this.inspectionInfoId = option.inspectionInfoId
this.workNodeId = option.workNodeId
this.workNodeStatus = option.workNodeStatus
},
onShow() {
this.getindex()
uni.getStorage({
key: 'roleSelect',
success: (res) => {
this.roleSelect = res.data
}
})
},
methods: {
chooseBank(e) {
this.receivablesAccount = e.value[0]
this.bankShow = false
},
dialogToggle() {
this.$refs.alertDialog.open()
},
async dialogConfirm() {
let data = {
inspectionId: this.inspectionId
}
let res = await request({
url: '/partnerOwn/partner/makeCertOk',
method: 'post',
params: data
})
if (res.code == 200) {
uni.showToast({
title: '操作成功'
})
this.getindex()
this.$refs.alertDialog.close()
}
},
dialogClose() {
this.$refs.alertDialog.close()
},
//查询重审可以选择的项目
getProject() {
request({
url: '/system/info/getWeorkNodesById',
method: 'get',
params: {
inspectionId: this.inspectionId
}
}).then(res => {
this.selectProject = res.data
//查询当前是否是第一个节点或最后一个节点
// let data = {
// inspectionId: this.inspectionId,
// workNodeId: this.workNodeId
// }
// request({
// url: '/system/info/orImages',
// method: 'get',
// params: data
// }).then(res => {
// this.orImages = res.data
// })
})
},
jisuan() {
if (this.reduceMoney > (this.detailData.goodsPrice / 100)) {
this.reduceMoney = this.detailData.goodsPrice / 100
}
this.payMoney = (this.detailData.goodsPrice / 100) - this.reduceMoney
},
async tiijiao() {
if (!this.payMoney || !this.payType) {
uni.showToast({
title: '实付金额与付款方式不能为空!',
icon: 'none'
})
return
}
let data = {
reduceMoney: this.reduceMoney ? this.reduceMoney * 100 : 0,
payMoney: this.payMoney * 100,
payType: this.payType,
receivablesAccount: this.receivablesAccount,
payRemark: this.payRemark,
inspectionId: this.inspectionId,
}
let res = await request({
url: '/partnerOwn/partner/offlineCharging',
method: 'post',
data: data
})
if (res.code = 200) {
uni.showToast({
title: "提交成功"
})
this.getindex()
this.xling = false
}
},
callUser(phone) {
uni.makePhoneCall({
phoneNumber: phone //仅为示例
});
},
async submit() {
let inspectionInfo = {
inspectionInfoId: this.inspectionInfoId,
isPass: this.isPass,
id: this.workNodeId,
remark: this.remark,
dealImages: this.fileList2.join(","),
}
let status = 0
if (this.isPass == '1') {
status = 3
} else if (this.tbindex == 1 && this.isRetrial == 1) {
if (this.csId == '' || this.csId == undefined) {
uni.showToast({
title: '请选择要复检的项目',
icon: 'none'
})
return
}
const workNodes = []
this.csId.forEach(item => {
let a = {
id: item
}
workNodes.push(a)
})
inspectionInfo.workNodes = workNodes
await request({
url: '/system/info/recheck',
method: 'post',
data: inspectionInfo
})
return
} else if (this.tbindex == 2 && this.isRetrial == 2) {
//跳转到修改工单页面
uni.navigateTo({
url: '/pages/index/Neworder?inspectionInfoId=' + this.inspectionInfoId
})
return
}else if (this.tbindex == 0 && this.isRetrial == 0) {
status = 1
}
inspectionInfo.selectType = status
let res = await request({
// url: '/partnerOwn/partner/stopInspection',
url: '/system/info/controls',
method: 'post',
data: inspectionInfo
})
if (res.code == 200) {
this.getindex()
uni.showToast({
title: "成功",
})
uni.navigateBack();
}
if (res.code == 500) {
uni.navigateBack();
}
},
closehge() {
this.hge = false
},
async addStepInfo() {
this.stepInfo.images = this.fileList2.join(",")
this.stepInfo.inspectionInfoId = this.inspectionInfoId
let res = await request({
url: '/partnerOwn/partner/addStepInfo',
method: 'post',
data: this.stepInfo
})
if (res.code == 200) {
this.fileList1 = []
this.fileList2 = []
this.stepInfo = {}
this.xling = false
uni.showToast({
title: "成功",
})
this.getindex()
uni.reLaunch({
url: '/pages/index/ordermanage'
})
}
if (res.code == 500) {
uni.showToast({
title: "已结束",
})
uni.reLaunch({
url: '/pages/index/ordermanage'
})
}
},
clickProject(data) {
//判断当前id是否存在csId数组里面
let index = this.csId.indexOf(data.id)
if (index !== -1) {
// 如果存在,则从数组中删除
this.csId.splice(index, 1);
} else {
// 如果不存在,则添加到数组中
this.csId.push(data.id);
}
},
async getindex() {
let res = await request({
url: '/partnerOwn/partner/inspectionDetail',
method: 'get',
params: {
inspectionInfoId: this.inspectionInfoId
}
})
this.detailData = res.data
this.detailData.stepInfos.forEach(item => {
// 检查 item.images 是否为有效的字符串
if (typeof item.images === 'string' && item.images.trim() !== '') {
// 将里面的images转为数组
item.images = item.images.split(',');
// 使用map方法处理每个图片路径转换为对象格式
item.images = item.images.map(image => this.baseImageUrl + "/" + image);
// 将处理后的图片列表赋值给imageList
item.imageList = item.images;
} else {
// 如果 item.images 不是有效的字符串,设置为空数组
item.images = [];
item.imageList = [];
}
// 输出最终结果
});
this.inspectionId = res.data.inspectionId
this.isOnline = res.data.isOnline
this.orderStatus = res.data.orderStatus
this.payMoney = res.data.goodsPrice / 100
let she = await request({
url: '/rescue/dict/data/type/pay_type',
method: 'get',
})
this.shelist = she.data
let bankRes = await request({
url: '/partnerOwn/partner/getBankAccountList',
method: 'get',
})
if (bankRes.code == 200) {
let tempList = []
if (bankRes.data && bankRes.data.length > 0) {
bankRes.data.forEach(it => {
tempList.push((it.remark) + it.label)
})
}
this.bankList.push(tempList)
}
},
xuanxiaolan(item) {
this.payType = item.value
},
getback() {
uni.navigateBack()
},
Nnimamadewen(value, index) {
this.isPass = value
this.geindex = index
},
shenmowanyi(value, index) {
this.tbindex = value
this.isRetrial = value
},
closexl(e) {
this.xling = false
},
openxl(e) {
},
close(e) {
},
confirm(e) {
this.show = false,
this.lei = e.value[0].label
},
change(e) {
},
cancel(e) {
this.show = false
},
// 删除图片
deletePic(event) {
this[`fileList${event.name}`].splice(event.index, 1)
},
// 新增图片
async afterRead(event) {
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
let lists = [].concat(event.file)
let fileListLen = this[`fileList${event.name}`].length
lists.map((item) => {
this[`fileList${event.name}`].push({
...item,
})
})
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url)
let item = this[`fileList${event.name}`][fileListLen]
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
status: 'success',
message: '',
url: result
}))
fileListLen++
}
},
uploadFilePromise(url) {
upload({
url: '/common/upload',
filePath: url,
}).then((res) => {
// this.newsCover = res.fileName
this.fileList2.push(res.data.url)
return res.data.url
})
},
deletePic1(event) {
this[`fileList${event.name}`].splice(event.index, 1)
},
}
}
</script>
<style scoped lang="scss">
image {
width: 100%;
height: 100%;
}
.lantong {
background-color: #0D2E8D !important;
color: white;
}
.lan-box {
font-size: 14px;
margin: 5px 10px;
padding: 5px;
box-sizing: border-box;
background-color: #F4F4F4;
border-radius: 4px;
}
.warp-box {
width: 100%;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.content {
box-sizing: border-box;
width: 100%;
height: 100%;
background: #fff;
}
.top-heder {
width: 100%;
// height: 46px;
background: white;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 5px 15px;
padding-top: 45px;
padding-bottom: 15px;
margin-bottom: 10px;
}
.t-title {
font-size: 17px;
font-weight: bold;
color: #333333;
}
.t-left {
width: 10%;
}
.t-you {
height: 100%;
width: 10%;
}
.x-box {
width: 95%;
margin: 10px auto;
background: #FFFFFF;
border-radius: 8px;
box-sizing: border-box;
padding: 10px;
background: white;
padding-bottom: 0px;
padding-top: 0px;
margin-top: 0px;
margin-bottom: 0px;
// display: flex;
// align-items: center;
// justify-content: center;
}
.bottomx {
margin: 0 auto;
width: 225px;
height: 46px;
border-radius: 6px 6px 6px 6px;
opacity: 1;
border: 1px solid #0D2E8D;
display: flex;
align-items: center;
justify-content: center;
color: #0D2E8D;
}
.bottomxx {
position: fixed;
right: 10px;
bottom: 150px;
width: 46px;
height: 46px;
border-radius: 50%;
opacity: 1;
border: 1px solid #0D2E8D;
background: #0D2E8D;
display: flex;
align-items: center;
justify-content: center;
color: white;
}
.touxiang {
width: 50px;
height: 50px;
border-radius: 50%;
overflow: hidden;
margin: 10px auto;
}
.sanniu {
width: 105px;
height: 35px;
background: #0D2E8D;
border-radius: 50px;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-weight: 400;
color: #FFFFFF;
line-height: 15px;
margin: 0 auto;
}
.xiamxia {
width: 30%;
height: 30px;
background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%);
border-radius: 50px;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-weight: 400;
color: #FFFFFF;
line-height: 15px;
margin: 15px auto;
}
.annniu {
width: 90%;
height: 45px;
background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%);
border-radius: 50px;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-weight: 400;
color: #FFFFFF;
line-height: 15px;
margin: 15px auto;
}
.banniu {
width: 20%;
height: 30px;
background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%);
border-radius: 50px;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
font-weight: 400;
color: #FFFFFF;
}
.box {
}
.box-dis {
box-sizing: border-box;
padding: 15px;
// border-bottom: 1px solid #EEEEEE;
display: flex;
align-items: center;
}
.shop-img {
width: 125px;
height: 125px;
border-radius: 8px;
overflow: hidden;
margin-right: 10px;
}
.dis-hui {
width: 100%;
display: flex;
align-items: center;
font-size: 15px;
font-weight: 400;
color: #999999;
margin-bottom: 5px;
}
.times {
width: 30%;
font-size: 14px;
font-weight: 600;
color: #999999;
margin-left: 25px;
}
.h-title {
font-size: 16px;
font-weight: bold;
color: #333333;
margin-bottom: 5px;
}
.box-top {
box-sizing: border-box;
padding: 15px;
border-bottom: 1px solid #EEEEEE;
width: 100%;
display: flex;
align-items: center;
justify-content: space-around;
}
.t-input {
width: 90%;
margin: 20px auto;
border: 1px solid #0D2E8D;
border-radius: 6px;
box-sizing: border-box;
padding: 2px 5px;
}
.on-input {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin: 15px auto;
}
.on-inputx {
width: 100%;
display: flex;
align-items: center;
margin: 15px auto;
}
.bottom-input {
border-top: 1px solid #F4F4F4;
box-sizing: border-box;
padding-top: 20px;
display: flex;
justify-content: space-between;
width: 100%;
}
.o-left {
font-size: 15px;
font-weight: 400;
color: #666666;
}
.o-right {
font-size: 15px;
font-weight: 400;
color: #333333;
}
.o-zui {
font-size: 20px;
font-weight: 500;
color: #333333;
}
.popup-box {
overflow: hidden;
border-radius: 8px;
box-sizing: border-box;
padding: 15px;
width: 100%;
background-color: white;
}
.sousuo {
width: 95%;
margin: 0 auto;
margin-left: 0px;
height: 30px;
background: #F0F0F0;
border-radius: 50px;
color: #999999;
box-sizing: border-box;
padding: 0 10px;
display: flex;
align-items: center;
justify-content: space-between;
input {
width: 80%;
}
}
.list-box {
width: 100%;
height: 300px;
overflow: hidden;
box-sizing: border-box;
}
.list_scroll {
height: 100%; // 需设置高度
display: flex;
flex-direction: column;
}
.list-qiu {
width: 95%;
border-bottom: 1px solid #EEEEEE;
box-sizing: border-box;
padding: 10px 5px;
display: flex;
justify-content: space-between;
align-items: center;
}
.tel {
margin-left: 5px;
font-size: 15px;
font-weight: 400;
color: #666666;
}
.bd-tel {
width: 100%;
border-top: 1px solid #EEEEEE;
box-sizing: border-box;
padding-top: 10px;
display: flex;
align-items: center;
justify-content: center;
color: #0D2E8D;
}
.imgs-warp {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 10px;
}
.imgss {
width: 32%;
height: 110px;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.anniu {
box-sizing: border-box;
padding: 2px 10px;
margin: 0px 10px;
// background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%);
border: 1px solid #0D2E8D;
border-radius: 23px;
font-size: 15px;
color: #0D2E8D;
display: flex;
align-items: center;
justify-content: center;
}
.an {
box-sizing: border-box;
padding: 2px 10px;
margin: 0px 10px;
background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%) !important;
border-radius: 23px;
font-size: 15px;
color: white !important;
display: flex;
align-items: center;
justify-content: center;
}
.box_ {
width: 100%;
display: flex;
flex-wrap: wrap;
}
.box_button {
border-radius: 6px;
border: 1px solid #999;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
box-sizing: border-box;
padding: 5px 10px;
margin-right: 5px;
margin-bottom: 5px;
}
.box_button_x {
border-radius: 6px;
border: 1px solid #0D2E8D;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
box-sizing: border-box;
padding: 5px 10px;
margin-right: 5px;
margin-bottom: 5px;
background: #0D2E8D;
color: #fff;
}
.qiu_ {
width: 35px;
height: 35px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
color: #fff;
background: #0D2E8D;
}
.xb_ {
width: 13%;
height: 35px;
display: flex;
align-items: center;
box-sizing: border-box;
padding-left: 6px;
color: #0D2E8D;
font-size: 40px;
font-weight: bold;
}
</style>