Merge branch 'develop-718' of http://123.57.20.168:4000/admin/ys-app into develop-718

This commit is contained in:
PC-202311141343\Administrator
2025-08-26 09:27:47 +08:00
8 changed files with 151 additions and 179 deletions

View File

@@ -23,55 +23,59 @@
/> />
</view> </view>
<!-- 分页部分 --> <!-- 分页部分 top="68rpx" -->
<mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" <mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
:up="upOption" :down="downOption" :fixed="false" textColor="#ffffff" bgColor="#ffffff" :up="upOption" :down="downOption" :fixed="false" textColor="#ffffff" bgColor="#ffffff"
class="scroll-h" :class="{'loading-scroll':cssFlag}" class="scroll-h" :class="{'loading-scroll':cssFlag}"
> >
<view class="white-bg margin-bottom20" v-for="(item, index) in list" :key="index" <block v-for="(item, index) in list" :key="index">
@touchstart="handleTouchStart(item)" <view class="white-bg margin-bottom20"
@touchend="handleTouchEnd"> @touchstart="handleTouchStart(item)"
<view class="report-list"> @touchend="handleTouchEnd"
<view class="w-b-title title" @dblclick.stop="handleDetail(item)"> v-if="item && item.auditStatus !== '办事处审核通过'"
{{ item.cusName }} >
<!--<view v-if="item.nodeCode" class="r-right btn-edit" @click.prevent="handleCopyInfo(item)"> 复制信息 </view>--> <view class="report-list">
</view> <view class="w-b-title title" @dblclick.stop="handleDetail(item)">
<view class="r-list"> {{ item.cusName }}
<view class="r-left">客户人员名称</view> <!--<view v-if="item.nodeCode" class="r-right btn-edit" @click.prevent="handleCopyInfo(item)"> 复制信息 </view>-->
<view class="r-right">{{ item.userName }}</view> </view>
</view> <view class="r-list">
<view class="border-bottom"></view> <view class="r-left">客户人员名称</view>
<view class="r-right">{{ item.userName }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">性别</view>
<view class="r-right">{{ item.sex }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">手机号</view>
<view class="r-right">{{ item.mobilePhone || item.iphone }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">部门</view>
<view class="r-right">{{ item.userDept }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">业务员认定等级</view>
<view class="r-right">{{ item.salesmanThinkLevel }}</view>
</view>
<!--<view v-if="item.systemThinkLevel" class="r-list">
<view class="r-left">系统认定等级</view>
<view class="r-right">{{ item.systemThinkLevel }}</view>
</view>-->
<view class="r-list">
<view class="r-left">性别</view>
<view class="r-right">{{ item.sex }}</view>
</view> </view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">手机号</view>
<view class="r-right">{{ item.mobilePhone || item.iphone }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">部门</view>
<view class="r-right">{{ item.userDept }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">业务员认定等级</view>
<view class="r-right">{{ item.salesmanThinkLevel }}</view>
</view>
<!-- <view v-if="item.systemThinkLevel" class="r-list">
<view class="r-left">系统认定等级</view>
<view class="r-right">{{ item.systemThinkLevel }}</view>
</view>-->
</view> </view>
</view> </block>
</mescroll-uni> </mescroll-uni>
</view> </view>
</view> </view>
@@ -113,7 +117,7 @@ let handleSearch = () => {
watch(searchValue, (newValue, oldValue) => { watch(searchValue, (newValue, oldValue) => {
handleSearch() handleSearch()
}) })
let clearSearchValue = ()=>{ let clearSearchValue = () => {
searchValue.value = ''; searchValue.value = '';
} }
// 查询列表 // 查询列表
@@ -151,7 +155,7 @@ const downCallback = async (mescroll) => {
list.value = res.list; list.value = res.list;
cssFlag.value = false; cssFlag.value = false;
// 正确传递 total 参数 // 正确传递 total 参数
mescroll.endSuccess(res.list.length, res.total > (mescroll.size || upOption.page.size)); mescroll.endSuccess(res.list.length, res.total >= mescroll.size);
uni.hideLoading(); uni.hideLoading();
}, 500); }, 500);
@@ -173,7 +177,7 @@ const upCallback = async (mescroll) => {
list.value.push(...res.list); list.value.push(...res.list);
} }
// 正确判断是否还有更多数据 // 正确判断是否还有更多数据
mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size); mescroll.endSuccess(res.list.length, res.total >= mescroll.size);
uni.hideLoading(); uni.hideLoading();
}, 500); }, 500);
} catch (error) { } catch (error) {
@@ -203,10 +207,8 @@ const getList = (pageIndex, pageSize) => {
let handleDetail = (item) => { let handleDetail = (item) => {
uni.navigateTo({ uni.navigateTo({
url: "/pages/business/CRM/customer/components/customerUserEdit", url: "/pages/business/CRM/customer/components/customerUserEdit",
events: { events: {},
success(res) {
},
success(res){
res.eventChannel.emit('editCusData', {param: item, isAdd: false}) res.eventChannel.emit('editCusData', {param: item, isAdd: false})
} }
}) })
@@ -216,8 +218,8 @@ let handleDetail = (item) => {
let touchTimerId = null; let touchTimerId = null;
// 开始触摸 // 开始触摸
let handleTouchStart = (item)=>{ let handleTouchStart = (item) => {
touchTimerId = setTimeout(()=>{ touchTimerId = setTimeout(() => {
// console.log(item, "长按客户人员项") // console.log(item, "长按客户人员项")
handleChange(item) handleChange(item)
@@ -226,39 +228,39 @@ let handleTouchStart = (item)=>{
} }
// 结束触摸 // 结束触摸
let handleTouchEnd = ()=>{ let handleTouchEnd = () => {
if(touchTimerId !== null){ if (touchTimerId !== null) {
clearTimeout(touchTimerId); clearTimeout(touchTimerId);
} }
} }
// 变更主归属人 // 变更主归属人
let handleChange = (item)=>{ let handleChange = (item) => {
uni.showModal({ uni.showModal({
title: '是否将该客户人员主的归属人变更为自己?', title: '是否将该客户人员主的归属人变更为自己?',
editable: true, editable: true,
placeholderText: '请输入变更理由', placeholderText: '请输入变更理由',
success(res){ success(res) {
if(res.confirm){ if (res.confirm) {
if(res.content){ if (res.content) {
submissionOfChangeOfMainOwner({ submissionOfChangeOfMainOwner({
userId: item.userId, userId: item.userId,
userName: item.userName, userName: item.userName,
reasonForChange: res.content reasonForChange: res.content
}).then(res=>{ }).then(res => {
if(res.code===200){ if (res.code === 200) {
uni.showToast({ uni.showToast({
title: '操作成功' title: '操作成功'
}) })
}else{ } else {
uni.showToast({ uni.showToast({
title: '操作失败', title: '操作失败',
icon: 'error' icon: 'error'
}) })
} }
}) })
}else{ } else {
uni.showToast({ uni.showToast({
title: '操作失败!变更原因不能为空', title: '操作失败!变更原因不能为空',
icon: 'none' icon: 'none'
@@ -270,21 +272,21 @@ let handleChange = (item)=>{
} }
// 复制信息 // 复制信息
let handleCopyInfo=(item)=>{ let handleCopyInfo = (item) => {
const {cusName, userName, sex, iphone, mobilePhone, jobTelphone, userDept, salesmanThinkLevel} = item; const {cusName, userName, sex, iphone, mobilePhone, jobTelphone, userDept, salesmanThinkLevel} = item;
/* item = JSON.stringify({ /* item = JSON.stringify({
'客户名称':item.cusName, '客户名称':item.cusName,
'客户人员名称': item.userName, '客户人员名称': item.userName,
'性别': item.sex, '性别': item.sex,
'手机号': item.iphone || item.mobilePhone || item.jobTelphone, '手机号': item.iphone || item.mobilePhone || item.jobTelphone,
'部门': item.userDept, '部门': item.userDept,
'业务员认定等级': item.salesmanThinkLevel} '业务员认定等级': item.salesmanThinkLevel}
); );
console.log(item, '复制信息');*/ console.log(item, '复制信息');*/
uni.setClipboardData({ uni.setClipboardData({
data: `客户名称:${cusName} data: `客户名称:${cusName}
客户人员名称:${userName} 客户人员名称:${userName}
性别:${iphone||mobilePhone||jobTelphone} 性别:${iphone || mobilePhone || jobTelphone}
部门:${userDept} 部门:${userDept}
业务员认定等级:${salesmanThinkLevel}`, 业务员认定等级:${salesmanThinkLevel}`,
success: function () { success: function () {
@@ -298,7 +300,7 @@ let handleCopyInfo=(item)=>{
} }
</script> </script>
<style scoped> <style lang="scss" scoped>
.all-body { .all-body {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
top: 150rpx; top: 150rpx;
@@ -311,7 +313,6 @@ let handleCopyInfo=(item)=>{
} }
.search .btn-search { .search .btn-search {
border: none; border: none;
background: none; background: none;
@@ -338,12 +339,16 @@ let handleCopyInfo=(item)=>{
.white-bg { .white-bg {
padding-bottom: 10rpx; padding-bottom: 10rpx;
.w-b-title{
.w-b-title {
align-items: flex-start; align-items: flex-start;
} }
} }
.btn-edit{ .white-bg:hover {
white-space: nowrap; //background-color: #f1f1f1;
background-color: #f1f1f1; /* Chrome, Safari, Opera */
box-shadow: 0px 0px 5rpx white;
//filter: rgba(237, 242, 250, 0.5);
} }
</style> </style>

View File

@@ -179,7 +179,7 @@
<!-- 索引hobbyIndex 范围hobbyList 响应handleHobbyChange--> <!-- 索引hobbyIndex 范围hobbyList 响应handleHobbyChange-->
<uni-easyinput v-model="formData.hobby" placeholder="请输入爱好"/> <uni-easyinput v-model="formData.hobby" placeholder="请输入爱好"/>
<multipleSelect :multiple="true" :value="hobbyIndex" downInner :options="hobbyList" <multipleSelect :multiple="true" :value="hobbyIndex" downInner :options="hobbyList"
@change="handleHobbyChange" :key="Math.round()" :slabel="'name'" @change="handleHobbyChange" :slabel="'name'"
></multipleSelect><!--placeholder="请选择爱好标签"--> ></multipleSelect><!--placeholder="请选择爱好标签"-->
</uni-forms-item> </uni-forms-item>
@@ -435,6 +435,7 @@ let handleFunctionChange = (e) => {
console.log(e.detail.value, '职能索引'); console.log(e.detail.value, '职能索引');
const {name} = functionalRequirementList[e.detail.value]; const {name} = functionalRequirementList[e.detail.value];
formData.value.functionalRequirements = name; formData.value.functionalRequirements = name;
formData.value.function = name;
getRecommendLevel(); getRecommendLevel();
} }

View File

@@ -16,13 +16,13 @@
<!-- 正文内容 --> <!-- 正文内容 -->
<view class="all-body"> <view class="all-body">
<!-- 搜索--> <!-- 搜索-->
<!-- <view class="search">--> <view class="search">
<!-- <uni-search-bar class="custom-search" radius="28" placeholder="请输入客户人员名称" clearButton="auto"--> <!-- <uni-search-bar class="custom-search" radius="28" placeholder="请输入客户人员名称" clearButton="auto"-->
<!-- cancelButton="none" bgColor="#6FA2F8" textColor="#ffffff"--> <!-- cancelButton="none" bgColor="#6FA2F8" textColor="#ffffff"-->
<!-- v-model="searchValue"--> <!-- v-model="searchValue"-->
<!-- />--> <!-- />-->
<!-- &lt;!&ndash; <button type="default" @click="clearSearchValue" size="mini" class="btn-search">清空</button>&ndash;&gt;--> <view class="custom-search"></view>
<!-- </view>--> </view>
<!-- 分页部分 --> <!-- 分页部分 -->
<mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" <mescroll-uni ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback"
@@ -90,16 +90,9 @@ let timerId = null;
let handleSearch = () => { let handleSearch = () => {
// 防抖搜索 console.log(searchValue.value) // 防抖搜索 console.log(searchValue.value)
if (timerId) clearTimeout(timerId); if (timerId) clearTimeout(timerId);
uni.showLoading()
timerId = setTimeout(async () => { timerId = setTimeout(async () => {
cssFlag.value = true;
// let res = await getList(1, upOption.value.page.size) // let res = await getList(1, upOption.value.page.size)
await downCallback(mescrollRef.value.mescroll); await downCallback(mescrollRef.value.mescroll);
cssFlag.value = false;
uni.hideLoading();
clearTimeout(timerId); clearTimeout(timerId);
timerId = null; timerId = null;
}, 500) }, 500)
@@ -138,6 +131,8 @@ const mescrollInit = (mescroll) => {
// 下拉刷新 // 下拉刷新
const downCallback = async (mescroll) => { const downCallback = async (mescroll) => {
try { try {
uni.showLoading();
cssFlag.value = true;
setTimeout(async () => { setTimeout(async () => {
// 重置页码为第一页 // 重置页码为第一页
const res = await getList(1, mescroll.size || upOption.page.size); const res = await getList(1, mescroll.size || upOption.page.size);
@@ -145,6 +140,8 @@ const downCallback = async (mescroll) => {
list.value = res.list; list.value = res.list;
// 正确传递 total 参数 // 正确传递 total 参数
mescroll.endSuccess(res.list.length, res.total > (mescroll.size || upOption.page.size)); mescroll.endSuccess(res.list.length, res.total > (mescroll.size || upOption.page.size));
uni.hideLoading();
cssFlag.value = false;
}, 500); }, 500);
} catch (error) { } catch (error) {
console.log(error) console.log(error)
@@ -162,6 +159,7 @@ const upCallback = async (mescroll) => {
} else { } else {
list.value.push(...res.list); list.value.push(...res.list);
} }
mescroll.endBySize(res.list.length, res.total);
// 正确判断是否还有更多数据 // 正确判断是否还有更多数据
mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size); mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size);
}, 500); }, 500);
@@ -218,7 +216,6 @@ let handleDetail = (item) => {
/* #endif */ /* #endif */
} }
.scroll-h { .scroll-h {
/* #ifdef APP-PLUS */ /* #ifdef APP-PLUS */
height: calc(100vh - 120px); height: calc(100vh - 120px);

View File

@@ -32,8 +32,8 @@
<view class="white-bg margin-bottom20" v-for="(item, index) in list" :key="index" <view class="white-bg margin-bottom20" v-for="(item, index) in list" :key="index"
@click.stop="handleDetail(item)"> @click.stop="handleDetail(item)">
<view class="report-list"> <view class="report-list">
<view class="w-b-title title" @touchstart.prevent="handleTouchStart(item)" <view class="w-b-title title" @touchstart="handleTouchStart(item)"
@touchend.prevent="handleTouchEnd"> @touchend="handleTouchEnd">
{{ item.cusName }} {{ item.cusName }}
<view v-if="item.nodeCode" class="r-right btn-edit" :class="statusColorMap[item.nodeCode]"> <view v-if="item.nodeCode" class="r-right btn-edit" :class="statusColorMap[item.nodeCode]">
{{ item.nodeCode }} {{ item.nodeCode }}
@@ -181,7 +181,8 @@ const upCallback = async (mescroll) => {
list.value.push(...res.list); list.value.push(...res.list);
} }
// 正确判断是否还有更多数据 // 正确判断是否还有更多数据
mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size); mescroll.endBySize(res.list.length, res.total)
// mescroll.endSuccess(res.list.length, res.total > mescroll.num * mescroll.size);
}, 500); }, 500);
} catch (error) { } catch (error) {
console.log(error) console.log(error)

View File

@@ -33,10 +33,9 @@
<radio-group class="block" @change="radioChange"> <radio-group class="block" @change="radioChange">
<view class="white-bg" v-for="(item, index) in list" :key="index" @click="handleDetail(item)"> <view class="white-bg" v-for="(item, index) in list" :key="index" @click="handleDetail(item)">
<radio class='radio' <radio class='radio'
:class="index==selectIndex?'checked':''" :class="index === selectIndex ? 'checked' : ''"
:checked="index==selectIndex?true:false" :checked="index === selectIndex"
:value="item" :value="index+''">
:data-index="index">
</radio> </radio>
<view class="report-list"> <view class="report-list">
@@ -118,7 +117,6 @@ let timerId = null;
watch(searchValue, (newValue, oldValue) => { watch(searchValue, (newValue, oldValue) => {
// console.log(`新值: ${newValue}, 旧值: ${oldValue}`); // console.log(`新值: ${newValue}, 旧值: ${oldValue}`);
if(timerId) clearTimeout(timerId); if(timerId) clearTimeout(timerId);
cssFlag.value = true;
timerId = setTimeout(async ()=>{ timerId = setTimeout(async ()=>{
handleSearch(); handleSearch();
clearTimeout(timerId); clearTimeout(timerId);
@@ -130,7 +128,6 @@ watch(searchValue, (newValue, oldValue) => {
const downCallback = async (mescroll) => { const downCallback = async (mescroll) => {
try { try {
const res = await getList(1, upOption.value.page.size); const res = await getList(1, upOption.value.page.size);
cssFlag.value = false;
list.value = res.list; list.value = res.list;
// 正确结束下拉刷新状态 // 正确结束下拉刷新状态
mescroll.endSuccess(res.list.length, res.total >= upOption.value.page.size); mescroll.endSuccess(res.list.length, res.total >= upOption.value.page.size);
@@ -163,9 +160,11 @@ const upCallback = async (mescroll) => {
let handleSearch = async () => { let handleSearch = async () => {
// 触发下拉刷新以重新加载数据 // 触发下拉刷新以重新加载数据
if (mescrollRef.value) { if (mescrollRef.value) {
cssFlag.value = true;
uni.showLoading() uni.showLoading()
await downCallback(mescrollRef.value.mescroll); await downCallback(mescrollRef.value.mescroll);
uni.hideLoading() uni.hideLoading()
cssFlag.value = false;
} }
} }
// 获取数据列表 // 获取数据列表
@@ -181,12 +180,10 @@ const getList = async (pageIndex, pageSize) => {
// 选中项的索引号 // 选中项的索引号
const selectIndex = ref(null); const selectIndex = ref(null);
const radioChange = (e) => { const radioChange = (e) => {
let {value} = e.detail; let {value} = e.detail; // index
let {index} = e.target.dataset;
// console.log(value); // console.log(value);
// console.log(e.target.dataset);
const eventChannel = instance.getOpenerEventChannel(); const eventChannel = instance.getOpenerEventChannel();
eventChannel.emit('cuSelected', value); eventChannel.emit('cuSelected', list.value[value]);
uni.navigateBack() uni.navigateBack()
} }

View File

@@ -9,9 +9,9 @@
<view class="all-body"> <view class="all-body">
<!-- 搜索 @blur="blur" @focus="focus" @input="input" @cancel="cancel" @clear="clear"--> <!-- 搜索 @blur="blur" @focus="focus" @input="input" @cancel="cancel" @clear="clear"-->
<view class="search"> <view class="search">
<uni-search-bar class="custom-search" radius="28" placeholder="检索功能待开发,感谢您的耐心等待" clearButton="auto" <!-- <uni-search-bar class="custom-search" radius="28" placeholder="检索功能待开发,感谢您的耐心等待" clearButton="auto"-->
cancelButton="none" bgColor="#6FA2F8" textColor="#ffffff" v-model="searchValue" /> <!-- cancelButton="none" bgColor="#6FA2F8" textColor="#ffffff" v-model="searchValue" />-->
<button type="default" @click="handleSearch" size="mini" class="btn-search">查询</button> <!-- <button type="default" @click="handleSearch" size="mini" class="btn-search">查询</button>-->
</view> </view>
<!-- 分页部分 --> <!-- 分页部分 -->

View File

@@ -1,6 +1,6 @@
<template> <template>
<view class="con-body"> <view class="con-body">
<view > <view class="con-bg">
<!-- 头部 --> <!-- 头部 -->
<customHeader ref="customHeaderRef" :title="'查看主归属人变更详细信息'" :leftFlag="true" <customHeader ref="customHeaderRef" :title="'查看主归属人变更详细信息'" :leftFlag="true"
:rightFlag="false"></customHeader> :rightFlag="false"></customHeader>
@@ -8,36 +8,43 @@
<view class="top-height" :style="{ paddingTop: navBarPaddingTop + 'px' }"></view> <view class="top-height" :style="{ paddingTop: navBarPaddingTop + 'px' }"></view>
<view class="all-body"> <view class="all-body">
<!-- 分页部分 --> <!-- 分页部分 -->
<view>
<view class="report-list">
<view class="title">客户公司名称{{ detailInfo.cusName }}</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">客户人员名称</view>
<view class="r-right">{{ detailInfo.userName }}</view>
</view>
<view class="r-list">
<view class="r-left">性别</view>
<view class="r-right">{{ detailInfo.sex }}</view>
</view>
<view class="r-list">
<view class="r-left">手机号</view>
<view class="r-right">{{ detailInfo.mobilePhone }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">部门</view>
<view class="r-right">{{ detailInfo.userDept }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">业务员认定等级</view>
<view class="r-right">{{ detailInfo.salesmanThinkLevel }}</view>
</view>
<view class="white-bg margin-bottom20"
@click="showDetail(item)">
<view>
<view class="report-list">
<view class="title">客户公司名称{{ detailInfo.cusName }}</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">客户人员名称</view>
<view class="r-right">{{ detailInfo.userName }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">性别</view>
<view class="r-right">{{ detailInfo.sex }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">手机号</view>
<view class="r-right">{{ detailInfo.mobilePhone }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left">部门</view>
<view class="r-right">{{ detailInfo.userDept }}</view>
</view>
<view class="border-bottom"></view>
<view class="r-list">
<view class="r-left title">业务员认定等级</view>
<view class="r-right title">{{ detailInfo.salesmanThinkLevel }}</view>
</view>
</view>
</view> </view>
</view> </view>
<view class="tezt"> <view class="tezt">
<qianjue-step :list="list"></qianjue-step> <qianjue-step :list="list"></qianjue-step>
</view> </view>
@@ -126,52 +133,9 @@ function getCrmCusUserNewChangeOwnerList() {
</script> </script>
<style scoped> <style scoped>
.all-body { .con-bg{
/* #ifdef APP-PLUS */ background: white;
top: 150rpx; min-height: 100vh;
height: calc(100vh - 75px);
/* #endif */
/* #ifndef APP-PLUS */
top: 120rpx;
height: calc(100vh);
/* #endif */
}
.search {
display: flex;
}
.search .btn-search {
border: none;
background: none;
line-height: normal;
color: #fff;
line-height: 56rpx !important;
padding: 10rpx 0 0;
text-align: left;
cursor: pointer;
}
.search .btn-search::after {
display: none;
}
.search .custom-search {
width: 80%;
}
.search .custom-search.uni-searchbar {
padding-right: 0 !important;
}
.scroll-h {
/* #ifdef APP-PLUS */
height: calc(100vh - 120px);
/* #endif */
/* #ifndef APP-PLUS */
height: calc(100vh - 110px);
/* #endif */
} }
.white-bg { .white-bg {

View File

@@ -366,6 +366,13 @@ let handleDetail = (rowIndex, colIndex) => {
width: 690rpx; width: 690rpx;
margin: 20rpx 0 0 0; margin: 20rpx 0 0 0;
border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0;
/* #ifdef APP-PLUS */
min-height: calc(100vh - 160rpx/*.topbar height*/ - 68rpx/*.search height*/ - 40rpx/*.white-bg padding-top*/ - 40rpx/*.white-bg padding-bottom*/);
/* #endif */
/* #ifndef APP-PLUS */
min-height: calc(100vh - 116rpx/*.topbar height*/ - 68rpx/*.search height*/ - 40rpx/*.white-bg padding-top*/ - 40rpx/*.white-bg padding-bottom*/);
/* #endif */
//overflow-y: auto;
} }
.white-bg.white-bg-2 { .white-bg.white-bg-2 {