case-data/pages/specialList/specialList.vue
2025-08-15 09:18:09 +08:00

1252 lines
29 KiB
Vue
Raw 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="upage">
<z-paging
ref="paging"
inside-more
loading-more-no-more-text="咱也是有底线的"
:auto-show-back-to-top="true"
v-model="dataList"
@query="queryList"
>
<template #top>
<navBarSearch
:searchWord="keyWord"
:navName="navName"
@changeWord="changeWord"
></navBarSearch>
<!-- <view class="bar"></view> -->
<view class="detail" v-if="showNum">
<view class="desc"
>检索到:<text class="red">{{ total }}个病例</text></view
>
<view class="desc" v-if="keyWord"
>检索词:<text class="red">{{ keyWord }}</text></view
>
</view>
<view class="bar"></view>
<view class="filterbox">
<!-- <view class="type" @click="swicthType">{{!isArticle?'文章':'视频'}}<up--image :src="switchImg" width="31rpx" height="31rpx"></up--image></view> -->
<view class="casesdown" :class="{active:label_iden}" @click="openCase" >筛选<up--image :src="caseImg" width="31rpx" height="31rpx"></up--image></view>
<up-dropdown class="u-dropdown" ref="uDropdownRef">
<up-dropdown-item :title="dropTitle">
<view class="dropcontent">
<up-radio-group
@change="changeDate"
v-model="orderFilter"
iconPlacement="right"
placement="column"
>
<view
class="column"
v-for="item in options"
:key="item.value"
:class="[orderFilter==item.value?'active':'']"
>
<up-radio
activeColor="#3CC7C0"
:label="item.label"
:name="item.value"
></up-radio>
</view>
</up-radio-group>
</view>
</up-dropdown-item>
</up-dropdown>
</view>
</template>
<view class="box">
<!-- <view class="bar"></view> -->
<view class="record">
<view class="list">
<view
class="cell"
v-for="(item) in dataList"
:key="item.exchange_id"
>
<view class="title ">
<view class="titlecon ellipsis-two-lines" @click="goDetail(item.exchange_id)">
{{
item.exchange_title
}}
</view>
<view v-if="isMine" class="dot" @click="openDeal(item.exchange_id,item.case_exchange_vote)">...</view>
</view>
<view class="doctor" @click="goDetail(item.exchange_id)">
<up--image
:src="item.avatar ? item.avatar : headImg"
width="46rpx"
height="46rpx"
radius="50%"
></up--image>
<view class="name"
>{{ item.user_name }}{{ item.hospital_name }}</view
>
</view>
<view class="content ellipsis-two-lines" @click="goDetail(item.exchange_id)"> {{ htmlToText(item.exchange_content) }} </view>
<view
class="imgbox"
@click="goDetail(item.exchange_id)"
v-if="
item.exchange_content_image &&
item.exchange_content_image.length > 0
"
>
<view
:key="unit"
class="imgcell"
v-for="unit in item.exchange_content_image.slice(0,3)"
>
<up--image
:src="unit"
radius="10"
width="220rpx"
height="220rpx"
>
<view slot="error" style="font-size: 24rpx">加载失败</view>
</up--image>
</view>
</view>
<view class="videocon" @click="goDetail(item.exchange_id)">
<view
class="imgbox"
@click="goDetail(item.exchange_id)"
v-if="
item.exchange_content_video &&
item.exchange_content_video.length > 0
"
>
<view class="videomask"></view>
<video
:key="index"
v-for="(videoCell, index) in item.exchange_content_video.slice(0,1)"
class="myVideo"
:src="videoCell"
@error="videoErrorCallback"
controls
></video>
</view>
</view>
<view class="tagbox" @click="goDetail(item.exchange_id)" v-if="item.exchange_label">
<view
class="tag"
v-for="cell in item.exchange_label"
:key="cell.exchange_label_id"
>{{ cell.label_name }}</view
>
</view>
<view class="deal" @click="goDetail(item.exchange_id)">
<view class="left">
<view class="eyebox item">
<up-icon name="eye" color="#4B5563" size="28rpx"></up-icon>
<view class="num">{{ item.read_num }}</view>
</view>
<view class="collect item" v-if="item.collect_num >0">
<up-icon
name="heart"
color="#4B5563"
size="28rpx"
></up-icon>
<view class="num">{{ item.collect_num }}</view>
</view>
<view class="chat item" v-if="item.comment_num >0">
<up-icon name="chat" color="#4B5563" size="28rpx"></up-icon>
<view class="num">{{ item.comment_num }}</view>
</view>
</view>
<view class="time">
<up-icon name="clock" color="#4B5563" size="28rpx"></up-icon>
<view class="num">{{ formatdate(item.push_date)}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
</z-paging>
</view>
<!-- <tabBar :value="2"></tabBar> -->
<up-popup
:round="10"
zIndex="9"
:closeOnClickOverlay="false"
:show="showCase"
mode="bottom"
@close="closeCase"
>
<view class="votepop casepop">
<view class="titlebox">
<view class="left" @click="closeCase">取消</view>
<view class="right" @click="confirmCase">确定</view>
</view>
<view class="stepbox">
<up-steps :current="level-1" direction="column" :key="freshKey">
<up-steps-item >
<template v-slot:content>
<view class="slot-content" @click="openCaseLevel('1')">
<view class="left">{{!caseValue1.name?'请选择选项':caseValue1.name}}</view>
<u-icon name="arrow-right"></u-icon>
</view>
</template>
</up-steps-item>
<up-steps-item v-if="caseValue1.name && labelObj.list2.length>0">
<template v-slot:content>
<view class="slot-content" @click="openCaseLevel('2')">
<view class="left">{{!caseValue2.name?'请选择选项':caseValue2.name}}</view>
<u-icon name="arrow-right"></u-icon>
</view>
</template>
</up-steps-item>
<up-steps-item v-if="caseValue2.name && labelObj.list3.length>0">
<template v-slot:content>
<view class="slot-content" @click="openCaseLevel('3')">
<view class="left">{{!caseValue3.name?'请选择选项':caseValue3.name}}</view>
<u-icon name="arrow-right"></u-icon>
</view>
</template>
</up-steps-item>
</up-steps>
</view>
<scroll-view class="casecon" scroll-y="true">
<view v-show="level == 1" >
<up-radio-group
v-model="caseValue1.value"
name="group1"
iconPlacement="right"
placement="column"
@change="groupChange1"
>
<view
class="column"
v-for="item in labelObj.list1"
:key="item.app_iden"
v-show="item.label_name!='热门话题'"
>
<up-radio
activeColor="#3CC7C0 "
:label="item.label_name"
:name="item.app_iden"
></up-radio>
</view>
</up-radio-group>
</view>
<view v-show="level == 2" >
<up-radio-group
name="group2"
@change="groupChange2"
v-model="caseValue2.value"
iconPlacement="right"
placement="column"
>
<view
class="column"
v-for="item in labelObj.list2"
:key="item.app_iden"
>
<up-radio
activeColor="#3CC7C0 "
:label="item.label_name"
:name="item.app_iden"
></up-radio>
</view>
</up-radio-group>
</view>
<view v-show="level == 3" >
<up-radio-group
name="group3"
@change="groupChange3"
v-model="caseValue3.value"
iconPlacement="right"
placement="column"
>
<view
class="column"
v-for="item in labelObj.list3"
:key="item.app_iden"
>
<up-radio
activeColor="#3CC7C0 "
:label="item.label_name"
:name="item.app_iden"
></up-radio>
</view>
</up-radio-group>
</view>
</scroll-view>
</view>
</up-popup>
<!-- 底部操作 -->
<up-popup
:zIndex="60"
:overlayStyle="{ zIndex: 59 }"
:show="showDeal"
:round="10"
mode="bottom"
>
<view class="dealbox">
<view class="dealcell" @click="goEdit">编辑</view>
<view class="dealcell" @click="alertDel">删除</view>
<view class="bar"></view>
<view class="dealcell" @click="closeDealPop">取消</view>
</view>
</up-popup>
<up-overlay :show="showModal" mask-click-able>
<view class="zanboxpop">
<view class="zanwraper">
<view class="title">提示</view>
<view class="content"> 是否删除该交流病例 </view>
<view class="btnbox">
<view class="cancle" @click="showModal = false">取消</view>
<view class="ok" @click="confirmDel">确定</view>
</view>
</view>
</view>
</up-overlay>
</template>
<script setup>
import { ref,reactive} from "vue";
import navBar from "@/components/navBar/navBar.vue";
import tabBar from "@/components/tabBar/tabBar.vue";
import headImg from "@/static/headImg.png";
import caseImg from "@/static/caseIcon.png";
import dayjs from "dayjs";
import api from "@/api/api";
import navTo from "@/utils/navTo.js";
import { onLoad,onShow} from "@dcloudio/uni-app";
import list from "@/uni_modules/z-paging/components/z-paging/z-paging";
const user_id = ref("");
const showModal=ref(false);
const showDeal=ref(false);
const is_selected = ref(0);
const navName=ref('肝胆相照病例交流园地')
const isMine=ref(false)
const paging = ref(null);
const dataList = ref([]);
const total = ref(0);
const keyWord = ref("");
const vote=ref(null);
const showNum = ref(false);
const label_iden=ref('');
const dropTitle=ref('发布时间');
const orderFilter=ref('1')
const uDropdownRef=ref(null);
const dealId=ref('')
const options= ref([
{
label: "发布时间",
value: '1',
},
{
label: "互动更新时间",
value: '2',
},
{
label: "互动数",
value: '3',
},
]);
const isSearch=ref(true);
const order=reactive({
read_num:'',
push_date:'desc'
})
const showCase = ref(false);
const canOpenCase = ref(false);
const freshKey=ref(0);
const caseValue1 = reactive({
value:'',
name:'',
});
const caseValue2 = reactive({
value:'',
name:'',
});
const caseValue3 = reactive({
value:'',
name:'',
});
const level = ref(1);
const labelObj = reactive({
list1: [],
list2: [],
list3: []
});
const openCaseLevel=(lev)=>{
freshKey.value++;
level.value=lev;
if(lev==1){
caseValue2.name='';
caseValue2.value='';
labelObj.list2=[]
}else if(lev==2){
labelObj.list3=[];
caseValue3.name='';
caseValue3.value=''
}
};
const groupChange1=(e)=>{
caseValue1.value=e;
for (var i = 0; i <labelObj.list1.length; i++) {
if(labelObj.list1[i].app_iden==caseValue1.value){
caseValue1.name=labelObj.list1[i].label_name;
break;
}
}
getCaseLabel(2,e)
}
const groupChange2=(e)=>{
caseValue2.value=e;
for (var i = 0; i <labelObj.list2.length; i++) {
if(labelObj.list2[i].app_iden==caseValue2.value){
caseValue2.name=labelObj.list2[i].label_name;
break;
}
}
getCaseLabel(3,e)
}
const groupChange3=(e)=>{
caseValue3.value=e;
level.value =3
for (var i = 0; i <labelObj.list3.length; i++) {
if(labelObj.list3[i].app_iden==caseValue3.value){
caseValue3.name=labelObj.list3[i].label_name;
break;
}
}
}
const getCaseLabel = (lev,pid=0) => {
api.getCaseLabel({
pId:pid
}).then((res) => {
level.value = lev;
if (lev == 1) {
labelObj.list1 = res.data.data;
//label_iden.value = caseValue1.value;
} else if (lev == 2) {
labelObj.list2 = res.data.data;
if(res.data.data.length==0){
level.value = 1
}
//label_iden.value = caseValue2.value;
} else if (lev == 3) {
labelObj.list3 = res.data.data;
if(res.data.data.length==0){
level.value = 2
}
//label_iden.value = caseValue3.value;
}
});
};
const openCase=()=>{
showCase.value = true;
}
const cancelCase=()=>{
showCase.value=false;
level.value=1;
caseValue1.name='';
caseValue1.value='';
caseValue2.name='';
caseValue2.value='';
caseValue3.name='';
caseValue3.value='';
//labelObj.list1=[];
labelObj.list2=[];
labelObj.list3=[];
}
const confirmCase = () => {
if (level.value == 1 && caseValue1.value == "") {
uni.showToast({ title: "请选择疾病选项", icon: "none" });
return false;
};
if(level.value == 1){
label_iden.value = caseValue1.value;
}
if(level.value == 2 ){
if(!caseValue2.value){
label_iden.value = caseValue1.value;
}else{
label_iden.value = caseValue2.value;
}
}
if(level.value == 3 ){
if(!caseValue3.value){
label_iden.value = caseValue2.value;
}else{
label_iden.value = caseValue3.value;
}
}
paging.value.reload();
showCase.value=false;
//cancelCase();
};
const closeCase = () => {
showCase.value = false;
};
const openDeal = (id,voteObj) => {
showDeal.value = true;
dealId.value=id;
vote.value=voteObj;
console.log(id)
};
const alertDel=()=>{
showDeal.value = false;
showModal.value = true
}
const goEdit=()=>{
showDeal.value = false;
if(vote.value && vote.value.is_have_voted!=1){
uni.showToast({
icon: "none",
title: "不可编辑",
})
return false;
}
navTo({
url:'/pages/publish/publish?exchange_id='+dealId.value
})
}
const htmlToText=(html)=>{
return html
.replace(/<[^>]*>/g, '') // 移除所有HTML标签
.replace(/&nbsp;/gi, ' ') // 将HTML实体转换为字符
.replace(/<br\s*\/?>/gi, '\n').replace(/<img\s[^>]*>/gi, '') // 移除<img>标签及其内容
.replace(/<video[^>]*>[\s\S]*?/gi, ''); // 将换行符替换为实际的换行符
}
const confirmDel = () => {
//删除
api.delExchange(dealId.value).then((res) => {
uni.showToast({
title: "删除成功",
icon: "none",
duration: 2000,
});
});
let index=dataList.value.findIndex( item =>item.exchange_id=== dealId.value)
dataList.value.splice(index, 1);
showModal.value = false;
//paging.value.refresh();
};
const closeDealPop = () => {
showDeal.value = false;
};
const formatdate = (date) => {
return dayjs(date).format("YYYY-MM-DD");
};
onLoad((options) => {
if (options.keyWord) {
keyWord.value = options.keyWord;
}
if (options.userId) {
user_id.value = options.userId;
}
if(options.is_selected){
is_selected.value = options.is_selected;
navName.value="肝胆相照精选病例交流"
}
if(options.type=="mine"){
isMine.value=true;
}
if(options.from=="talkHome"){
showNum.value=true;
}
// if(options)「」
getCaseLabel(1,0)
});
onShow(()=>{
paging.value?.refresh();
})
const changeDate=(e)=>{
if(e==1){
order.push_date='desc';
order.comment_num='';
order.last_comment_time="";
dropTitle.value="发布时间"
}else if(e==2){
order.push_date='';
order.comment_num="";
order.last_comment_time="desc";
dropTitle.value="互动更新时间"
}else{
order.push_date='';
order.last_comment_time="";
order.comment_num="desc";
dropTitle.value="互动数"
}
orderFilter.value=e;
uDropdownRef.value.close();
paging.value.reload();
}
const videoErrorCallback = (e) => {
// uni.showModal({
// content: e.target.errMsg,
// showCancel: false,
// });
};
const changeWord = (val) => {
if (!val) return false;
showNum.value = true;
keyWord.value = val;
paging.value.reload();
};
const goDetail = (id) => {
navTo({
url: `/pages/detail/detail?id=${id}&type=exchange`,
});
};
const queryList = (pageNo, pageSize) => {
console.log(666666);
const params = {
page: pageNo,
page_size: pageSize,
};
searchList(params);
};
const searchList = async (params) => {
let searchForm = {
keyword: keyWord.value,
user_id: user_id.value,
label_iden:label_iden.value
};
if(!label_iden.value){
delete searchForm.label_iden
}
if(Number(is_selected.value)){
searchForm.is_selected=Number(is_selected.value)
}
if(!order.comment_num){
delete order.comment_num
}
if(!order.last_comment_time){
delete order.last_comment_time
}
if(!label_iden.value){
delete searchForm.label_iden
}
if(!order.push_date){
delete order.push_date
}
if(order.comment_num || order.push_date || order.last_comment_time){
searchForm.order=order
}
api.searchExchage({
...searchForm,
...params,
})
.then((res) => {
paging.value.complete(res.data.data.data);
total.value = res.data.data.total;
})
.catch((err) => {
paging.value.complete(false);
});
};
</script>
<style lang='scss' scoped>
.dropcontent{
padding-top: 40rpx;
padding-bottom: 20rpx;
background-color: #fff;
:deep(.u-radio){
margin-bottom: 6px!important;
margin-top: 16px!important;
}
.column {
padding: 0 30rpx;
border-top: 2rpx solid #e5e7eb;
:deep(.u-radio__text){
color: #333 !important;
}
}
.column.active{
:deep(.u-radio__text){
color: #3CC7C0 !important;
}
}
}
.stepbox{
padding:15rpx 30rpx;
border-bottom: 2rpx dotted #f3f4f6;
:deep(.u-steps-item__content){
margin-top: -5rpx!important;
}
.slot-content{
width:100%;
margin-bottom: 25rpx;
justify-content: space-between;
align-items: center;
display: flex;
}
}
.dealbox {
.dealcell {
display: flex;
align-items: center;
justify-content: center;
height: 112rpx;
font-size: 32rpx;
color: rgba(0, 0, 0, 0.9);
border-bottom: 2rpx solid #efefef;
}
}
.filterbox{
background-color: #fff;
display: flex;
height:128rpx;
align-items: center;
position: relative;
border-bottom: 2rpx solid #f3f4f6;
:deep(.u-dropdown__menu__item__text){
font-size: 14px!important;
color: #3CC7C0!important
}
.type{
color: #606266;
font-size:14px;
position: absolute;
left:30rpx;
top:24rpx;
display: flex;
justify-content: center;
align-items: center;
background: #F3F4F6;
border-radius: 15rpx;
height: 74rpx;
padding:0 25rpx;
z-index:2;
}
}
.detail {
background: #f9f9f9;
padding: 12rpx 30rpx;
.desc {
font-size: 26rpx;
color: #4b5563;
line-height: 40rpx;
}
.red {
color: #ff0000;
}
}
.upage {
display: flex;
flex-direction: column;
height: calc(100vh - 100rpx);
:deep(.u-flex) {
display: flex;
flex-direction:row;
overflow: hidden;
}
:deep(.u-dropdown__menu){
background: #fff;
z-index:1;
margin-left: 160rpx;
}
:deep(.u-dropdown__menu__item){
height:74rpx;
padding:0 20rpx;
background: #F3F4F6;
border-radius: 15rpx;
flex:none;
margin-left: 30rpx;
}
}
.box {
background-color: #fff;
flex: 1;
padding-bottom: 30rpx;
overflow-y: scroll;
}
.myVideo {
width: 100%;
border-radius: 15rpx;
}
.deal {
padding-top: 20rpx;
display: flex;
color: #4b5563;
font-size: 24rpx;
justify-content: space-between;
.left {
display: flex;
align-items: center;
.item {
width: 100rpx;
}
}
.collect {
display: flex;
align-items: center;
}
.eyebox,
.chat {
display: flex;
align-items: center;
}
.time {
display: flex;
align-items: center;
}
.num {
margin-left: 8rpx;
}
}
.tagbox {
margin-top: 24rpx;
display: flex;
.tag {
height: 54rpx;
padding: 0 28rpx;
background: #ecfaf9;
border-radius: 30rpx;
font-size: 27rpx;
color: #3cc7c0;
margin-right: 12rpx;
display: flex;
align-items: center;
justify-content: center;
}
}
.doctor {
display: flex;
align-items: center;
}
.record {
padding-top: 0rpx;
.list {
margin: 30rpx 30rpx;
.name {
padding: 20rpx 0 20rpx 15rpx;
font-size: 27rpx;
color: #333333;
}
.content {
font-size: 27rpx;
color: #666666;
line-height: 38rpx;
}
.imgbox {
display: flex;
margin-top: 24rpx;
position: relative;
.videomask{
position: absolute;
width:100%;
height:100%;
z-index:2;
}
.imgcell {
width: 220rpx;
height: 220rpx;
margin-right: 20rpx;
}
.imgcell:last-child {
margin-right: 0;
}
}
}
}
.record {
padding-top: 0rpx;
.list {
margin: 8rpx 0rpx 0;
.cell {
padding: 22rpx 30rpx;
// display: flex;
border-bottom: 2rpx solid #f3f4f6;
.circle {
margin-top: 15rpx;
width: 15rpx;
height: 15rpx;
background: #3cc7c0;
border-radius: 50%;
}
.title {
margin-left: 10rpx;
font-size: 32rpx;
color: #000000;
line-height: 46rpx;
word-break:break-all;
display: flex;
justify-content: space-between;
align-items: center;
.dot{
height: 40rpx;
display: flex;
line-height: 40rpx;
padding:0 14rpx;
align-items: center;
line-height: 40rpx;
}
.titlecon{
flex:1;
margin-right: 20rpx;
}
}
}
.cell:last-child {
border-bottom: none;
}
}
}
.titlebox {
margin: 0 30rpx;
display: flex;
justify-content: space-between;
.more {
display: flex;
align-items: center;
.morename {
margin-right: 10rpx;
font-size: 28rpx;
color: #3cc7c0;
}
}
}
.bar {
height: 16rpx;
background: #f3f4f6;
}
.databox {
height: 162rpx;
background: #ffffff;
display: flex;
padding: 0 30rpx;
justify-content: space-between;
.cell {
flex: 1;
padding: 35rpx 0;
text-align: center;
.num {
font-size: 38rpx;
color: #3cc7c0;
}
.name {
margin-top: 18rpx;
font-size: 28rpx;
color: #4b5563;
}
}
}
.casesdown{
font-size:14px;
color: #606266;
position: absolute;
left:30rpx;
top:24rpx;
display: flex;
justify-content: center;
align-items: center;
background: #F3F4F6;
border-radius: 15rpx;
height: 74rpx;
padding:0 25rpx;
z-index:2;
}
.votepop {
.confirm {
margin: 39rpx 30rpx 0;
height: 92rpx;
background: #3cc7c0;
border-radius: 15rpx;
display: flex;
align-items: center;
font-size: 31rpx;
color: #ffffff;
justify-content: center;
}
.del {
margin: 30rpx 30rpx 30rpx;
height: 92rpx;
background: #fff;
border-radius: 15rpx;
font-size: 31rpx;
color: #666666;
display: flex;
align-items: center;
justify-content: center;
}
.tips {
margin-top: 30rpx;
font-size: 27rpx;
color: #9ca3af;
line-height: 38rpx;
padding: 0 30rpx;
}
.add {
margin: 0 30rpx;
display: flex;
align-items: center;
height: 92rpx;
justify-content: center;
background: #f5f5f5;
border-radius: 15rpx;
font-size: 31rpx;
color: #4b5563;
.desc {
margin-left: 10rpx;
}
}
.titlebox {
padding: 0 30rpx;
margin: 0!important;
height: 86rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 2rpx solid #f3f4f6;
.left {
font-size: 31rpx;
color: #4b5563;
}
.right {
font-size: 31rpx;
color: #3cc7c0;
}
}
.votecon {
max-height: calc(100vh - 530rpx);
overflow-y: scroll;
.row {
display: flex;
align-items: center;
.iconbox {
margin-left: 15rpx;
align-items: center;
}
}
.titlebox {
border: none;
margin: 30rpx 0 20rpx!important;
.title {
font-size: 31rpx;
color: #111827;
}
.desc {
font-size: 27rpx;
color: #9ca3af;
}
}
}
}
.casepop{
display: flex;
flex-direction: column;
max-height: calc(100vh - 400rpx);
.continue{
color: #2878ff !important;
}
}
.casecon {
flex:1;
max-height: calc(100vh - 800rpx);
overflow-y: scroll;
padding-top: 22rpx;
padding-bottom: 20rpx;
min-height: 350rpx;
:deep(.u-radio){
margin-bottom: 10px!important;
margin-top: 0px!important;
}
.column {
padding: 0 30rpx;
border-bottom: 2rpx solid #e5e7eb;
}
}
.zanboxpop {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
.zanwraper {
width: 630rpx;
margin: 0 auto;
padding-bottom: 50rpx;
background: #f5f6f9;
border-radius: 16rpx;
.title {
margin-top: 48rpx;
text-align: center;
font-weight: 500;
font-size: 36rpx;
color: rgba(0, 0, 0, 0.85);
}
.content {
padding: 30rpx 0;
background: #f5f6f9;
text-align: center;
:deep(.imgstyle){
max-width: 100%!important;
}
:deep(._block){
text-align: left!important;
}
}
.count {
margin-top: 24rpx;
display: flex;
align-items: center;
text-align: center;
justify-content: center;
font-weight: 400;
font-size: 28rpx;
color: rgba(0, 0, 0, 0.65);
.num {
color: #ff0000;
font-size: 32rpx;
}
.earn {
font-size: 32rpx;
color: #3cc7c0;
}
}
.countbox {
display: flex;
width: 100%;
margin: 30rpx 0px 40rpx;
padding: 0 40rpx;
justify-content: center;
box-sizing: border-box;
.minus {
flex-shrink: 0;
margin-left: 10rp;
width: 90rpx;
height: 90rpx;
font-size: 60rpx;
color: #333;
display: flex;
justify-content: center;
align-items: center;
background: #ffffff;
border-radius: 12rpx;
border: 2rpx solid #e9e9e9;
}
.add {
flex-shrink: 0;
width: 90rpx;
margin-left: 10rpx;
height: 90rpx;
font-size: 60rpx;
color: #333;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
background: #3cc7c0;
border-radius: 12rpx;
border: 2rpx solid #3cc7c0;
}
:deep(.u-input__content__field-wrapper__field) {
height: 60rpx;
font-size: 34rpx !important;
text-align: center !important;
}
:deep(.u-input) {
background: #f2f2f2;
width: 200rpx !important;
flex: none;
}
:deep(.u-input--radius) {
border-radius: 24rrpx;
}
}
.btnbox {
margin: 0px 40rpx 0px;
display: flex;
justify-content: space-between;
.cancle {
color: rgba(0, 0, 0, 0.3);
width: 256rpx;
height: 88rpx;
background: #f5f6f9;
border-radius: 25px;
border: 2rpx solid rgba(0, 0, 0, 0.15);
font-weight: 500;
font-size: 32rpx;
color: rgba(0, 0, 0, 0.85);
display: flex;
justify-content: center;
align-items: center;
}
.ok {
color: #fff;
width: 256rpx;
height: 88rpx;
background: #3cc7c0;
border-radius: 25px;
border: 2rpx solid #3cc7c0;
font-weight: 500;
font-size: 32rpx;
display: flex;
justify-content: center;
align-items: center;
}
}
}
}
</style>