style: replace legacy padding classes with inline pixel values

Remove the unused padding.scss stylesheet and its import from the main SCSS entrypoint. Update all legacy padding utility class names across every Vue component to use inline pixel-based utility classes (such as replacing `pl-12` with `pl-[12px]`). Also clean up extraneous whitespace and line breaks in component templates for improved readability.
This commit is contained in:
duanshuwen
2026-07-24 16:36:44 +08:00
parent e57617d2c6
commit 79b101978a
50 changed files with 247 additions and 703 deletions

View File

@@ -8,24 +8,26 @@
<image class="header-icon" src="https://oss.nianxx.cn/mp/static/version_101/home/feedback.png" />
</view>
<view v-if="!isCallSuccess" class="border-box p-12">
<view class="bg-[#f5f7fa] border-box flex flex-items-center p-12 rounded-10 font-size-14 color-171717 mb-12">
<view v-if="!isCallSuccess" class="border-box p-[12px]">
<view
class="bg-[#f5f7fa] border-box flex flex-items-center p-[12px] rounded-10 font-size-14 color-171717 mb-12">
<text class="font-500 line-height-22 mr-20">所在位置</text>
<input placeholder="请填写所在位置" v-model="roomId" />
</view>
<view class="bg-[#f5f7fa] border-box flex flex-items-center p-12 rounded-10 font-size-14 color-171717 mb-12">
<view
class="bg-[#f5f7fa] border-box flex flex-items-center p-[12px] rounded-10 font-size-14 color-171717 mb-12">
<text class="font-500 line-height-22 mr-20">联系电话</text>
<input placeholder="请填写联系电话" v-model="contactPhone" @input="handleContactPhoneInput" />
</view>
<view class="bg-[#f5f7fa] border-box p-12 rounded-10 font-size-14 font-500 color-171717 mb-12">
<view class="bg-[#f5f7fa] border-box p-[12px] rounded-10 font-size-14 font-500 color-171717 mb-12">
<view class="font-500 line-height-22 mb-12">需求信息描述</view>
<textarea class="h-80" placeholder="请输入需求信息描述" placeholder-class="font-size-14 font-400" maxlength="100"
v-model="contactText" />
</view>
<view class="bg-[#f5f7fa] border-box p-12 rounded-10 font-size-14 font-500 color-171717 mb-12">
<view class="bg-[#f5f7fa] border-box p-[12px] rounded-10 font-size-14 font-500 color-171717 mb-12">
<view class="font-500 line-height-22 mb-12">照片上传</view>
<view class="w-80 h-80 bg-white rounded-8 overflow-hidden flex flex-items-center flex-justify-center">
@@ -45,8 +47,8 @@
</view>
</view>
<view v-else class="border-box card-content flex flex-items-center p-12">
<view class="border-box left flex-full pr-20">
<view v-else class="border-box card-content flex flex-items-center p-[12px]">
<view class="border-box left flex-full pr-[20px]">
<view class="font-size-12 color-525866 line-height-20 mb-4">所在位置{{ roomId }}</view>
<view class="font-size-12 color-525866 line-height-20 mb-4">联系方式: {{ contactPhone }}</view>
<view class="font-size-12 color-525866 line-height-20 ellipsis-2">需求描述: {{ contactText }}</view>

View File

@@ -1,18 +1,19 @@
<template>
<uni-popup ref="popupRef" type="bottom" :safe-area="false" @maskClick="handleClose">
<view class="refund-popup bg-[#f5f7fa] border-box">
<view class="border-box flex flex-items-center justify-between pt-12 pb-12 relative">
<view class="border-box flex flex-items-center justify-between pt-[12px] pb-[12px] relative">
<view class="flex-full font-size-16 color-171717 line-height-24 text-center">明细详情</view>
<!-- 关闭按钮 -->
<uni-icons class="close absolute" type="close" size="20" color="#CACFD8" @click="handleClose" />
</view>
<!-- 内容区域 -->
<view class="rounded-12 bg-white ml-[12px] mr-12 mb-40">
<view class="border-box border-bottom flex flex-items-center flex-justify-between pt-12 pb-12 ml-[12px] mr-12">
<view
class="border-box border-bottom flex flex-items-center flex-justify-between pt-[12px] pb-[12px] ml-[12px] mr-12">
<text class="font-size-16 font-500 color-171717">在线支付</text>
<text class="font-size-14 color-171717">239</text>
</view>
<view class="border-box flex flex-items-center flex-justify-between pt-12 pb-12 ml-[12px] mr-12">
<view class="border-box flex flex-items-center flex-justify-between pt-[12px] pb-[12px] ml-[12px] mr-12">
<text class="font-size-16 font-500 color-171717">房费</text>
<text class="font-size-14 color-171717">239</text>
</view>

View File

@@ -8,12 +8,13 @@
<image class="header-icon" src="https://oss.nianxx.cn/mp/static/version_101/home/feedback.png" />
</view>
<view v-if="!isCallSuccess" class="border-box p-12">
<view class="bg-[#f5f7fa] border-box flex flex-items-center p-12 rounded-10 font-size-14 color-171717 mb-12">
<view v-if="!isCallSuccess" class="border-box p-[12px]">
<view
class="bg-[#f5f7fa] border-box flex flex-items-center p-[12px] rounded-10 font-size-14 color-171717 mb-12">
<text class="font-500 line-height-22 mr-20">联系电话</text>
<input placeholder="请填写联系电话" v-model="contactPhone" />
</view>
<view class="bg-[#f5f7fa] border-box p-12 rounded-10 font-size-14 font-500 color-171717 mb-12">
<view class="bg-[#f5f7fa] border-box p-[12px] rounded-10 font-size-14 font-500 color-171717 mb-12">
<view class="font-500 line-height-22 mb-12">意见内容</view>
<textarea class="h-80" placeholder="请输入反馈意见" placeholder-class="font-size-14 font-400" maxlength="100"
v-model="contactText" />
@@ -26,12 +27,12 @@
</view>
</view>
<view v-else class="border-box left flex-full p-12">
<view v-else class="border-box left flex-full p-[12px]">
<view class="font-size-12 color-525866 line-height-20 mb-4">联系方式: {{ contactPhone }}</view>
<view class="font-size-12 color-525866 line-height-20 ellipsis-2">意见内容: {{ contactText }}</view>
</view>
<view class="footer-help flex flex-items-center pl-12 mb-12">
<view class="footer-help flex flex-items-center pl-[12px] mb-12">
<image class="help-icon mr-4" src="./images/icon_volume.png" />
<text class="font-size-12 font-500 color-FA7319">
{{ appName }}收到您的意见将第一时间为您处理!

View File

@@ -1,28 +1,16 @@
<template>
<view class="border-box border-top-8">
<view
v-if="goodsData.commodityPurchaseInstruction"
class="border-box pl-12 pr-12"
>
<ModuleTitle
v-if="showTitle"
:title="goodsData.commodityPurchaseInstruction.templateTitle"
/>
<view
v-for="(moduleItem, index) in goodsData.commodityPurchaseInstruction
.commodityPurchaseInstructionModuleEntityList"
:key="index"
>
<view
class="flex flex-items-start flex-col pt-12 pb-12"
:class="{
<view v-if="goodsData.commodityPurchaseInstruction" class="border-box pl-[12px] pr-[12px]">
<ModuleTitle v-if="showTitle" :title="goodsData.commodityPurchaseInstruction.templateTitle" />
<view v-for="(moduleItem, index) in goodsData.commodityPurchaseInstruction
.commodityPurchaseInstructionModuleEntityList" :key="index">
<view class="flex flex-items-start flex-col pt-[12px] pb-[12px]" :class="{
'border-bottom':
index <
goodsData.commodityPurchaseInstruction
.commodityPurchaseInstructionModuleEntityList.length -
1,
}"
>
}">
<view class="flex flex-items-center flex-row flex-shrink-0 mr-8">
<uni-icons fontFamily="znicons" size="20" color="#333">
{{ zniconsMap[moduleItem.moduleIcon] }}
@@ -37,11 +25,7 @@
</view>
</view>
</view>
<zero-markdown-view
v-else
:markdown="goodsData.commodityTip"
:aiMode="true"
/>
<zero-markdown-view v-else :markdown="goodsData.commodityTip" :aiMode="true" />
</view>
</template>

View File

@@ -1,13 +1,13 @@
<template>
<uni-popup ref="popupRef" type="bottom" :safe-area="false" @maskClick="handleClose">
<view class="refund-popup bg-[#f5f7fa] border-box">
<view class="border-box flex flex-items-center justify-between pt-12 pb-12 relative">
<view class="border-box flex flex-items-center justify-between pt-[12px] pb-[12px] relative">
<view class="flex-full font-size-16 color-171717 line-height-24 text-center">取消政策</view>
<!-- 关闭按钮 -->
<uni-icons class="close absolute" type="close" size="20" color="#CACFD8" @click="handleClose" />
</view>
<!-- 内容区域 -->
<view class="border-box rounded-12 bg-white p-12 ml-[12px] mr-12 mb-40">
<view class="border-box rounded-12 bg-white p-[12px] ml-[12px] mr-12 mb-40">
<view class="flex flex-items-center mb-8">
<uni-icons fontFamily="znicons" size="20" color="#333">
{{ zniconsMap["zn-refund"] }}

View File

@@ -1,24 +1,17 @@
<template>
<view class="card border-box pb-12 relative mt-12">
<view
class="card-item absolute overflow-hidden"
v-for="(card, index) in list"
:key="card.__uid"
:style="[itemStyle(index, card), transformStyle(index, card)]"
@touchstart.stop="touchStart($event, index)"
@touchmove.stop.prevent="touchMove($event, index)"
@touchend.stop="touchEnd(index)"
@touchcancel.stop="touchCancel(index)"
@transitionend="onTransitionEnd(index)"
>
<view class="card border-box pb-[12px] relative mt-12">
<view class="card-item absolute overflow-hidden" v-for="(card, index) in list" :key="card.__uid"
:style="[itemStyle(index, card), transformStyle(index, card)]" @touchstart.stop="touchStart($event, index)"
@touchmove.stop.prevent="touchMove($event, index)" @touchend.stop="touchEnd(index)"
@touchcancel.stop="touchCancel(index)" @transitionend="onTransitionEnd(index)">
<view class="inner-card bg-white">
<!-- 商品大图部分自适应剩余空间 -->
<view class="goods-image-wrapper relative">
<image class="w-full h-full" :src="card.commodityPhoto" mode="aspectFill"/>
<image class="w-full h-full" :src="card.commodityPhoto" mode="aspectFill" />
</view>
<!-- 底部价格 + 购买按钮 -->
<view class="card-footer border-box p-12 flex flex-justify-between flex-items-center">
<view class="card-footer border-box p-[12px] flex flex-justify-between flex-items-center">
<view class="border-box">
<view class="font-size-14 font-500 color-333 ellipsis-1">
{{ card.commodityName }}

View File

@@ -4,7 +4,7 @@
<view :style="{ height: statusBarHeight + 'px' }" v-if="!hideStatusBar"></view>
<!-- 导航栏内容 -->
<view class="flex flex-items-center flex-justify-between border-box pl-8 pr-8" :style="navContentStyle">
<view class="flex flex-items-center flex-justify-between border-box pl-[8px] pr-[8px]" :style="navContentStyle">
<!-- 左侧返回按钮 -->
<view class="nav-bar-left flex flex-items-center flex-justify-center" v-if="showBack" @click="handleBack">
<uni-icons type="left" size="20" :color="backIconColor" />

View File

@@ -1,25 +1,18 @@
<template>
<view class="bg-white rounded-12 overflow-hidden mb-12">
<view class="border-box font-size-16 font-500 color-000 line-height-24 p-12"
>使用日期</view
>
<view class="border-box font-size-16 font-500 color-000 line-height-24 p-[12px]">使用日期</view>
<view class="flex flex-items-center border-box">
<scroll-view class="date-scroll" scroll-x>
<view class="date-list">
<block v-for="item in openDateRangeList" :key="item.date">
<view
class="date-item"
:class="{ selected: isSameDate(selectedDate, item.date) }"
@click="onDateClick(item)"
>
<view class="date-item" :class="{ selected: isSameDate(selectedDate, item.date) }"
@click="onDateClick(item)">
<view class="label font-size-12">{{ item.weekDesc }}</view>
<view class="md font-size-16 font-600">{{
formatMD(item.date)
}}</view>
<view class="status font-size-12">{{ item.canOrder }}</view>
<view v-if="isSameDate(selectedDate, item.date)" class="check"
></view
>
<view v-if="isSameDate(selectedDate, item.date)" class="check"></view>
</view>
</block>
</view>

View File

@@ -1,12 +1,8 @@
<template>
<!-- 选择数量 -->
<view
class="border-box bg-white p-12 rounded-12 flex flex-items-center mb-12"
>
<view class="border-box bg-white p-[12px] rounded-12 flex flex-items-center mb-12">
<view class="flex-full">
<view class="font-size-16 font-500 color-000 line-height-24"
>选择数量</view
>
<view class="font-size-16 font-500 color-000 line-height-24">选择数量</view>
<view class="font-size-12 color-A3A3A3 line-height-16">
请选择套餐数量
</view>
@@ -17,27 +13,24 @@
</view>
<!-- 使用日期 -->
<UseDateRange
v-if="orderData.reservationEnabled"
:openDateRangeList="orderData.openDateRangeList"
v-model:selectedDate="reservationDate"
/>
<UseDateRange v-if="orderData.reservationEnabled" :openDateRangeList="orderData.openDateRangeList"
v-model:selectedDate="reservationDate" />
<!-- 联系方式 -->
<view class="bg-white rounded-12 overflow-hidden">
<view class="border-box border-bottom font-size-16 font-500 color-000 line-height-24 p-12">联系方式</view>
<view class="flex flex-items-center border-box p-12">
<view class="border-box border-bottom font-size-16 font-500 color-000 line-height-24 p-[12px]">联系方式</view>
<view class="flex flex-items-center border-box p-[12px]">
<view class="font-size-14 font-500 color-525866 mr-12"> 联系人姓名 </view>
<view class="right">
<input class="border-box px-4 py-2 font-size-15 color-000 line-height-20"
<input class="border-box px-[4px] py-[2px] font-size-15 color-000 line-height-20"
v-model.trim="userFormList[0].visitorName" placeholder="请输入联系人" maxlength="20" />
</view>
</view>
<view class="flex flex-items-center border-box p-12">
<view class="flex flex-items-center border-box p-[12px]">
<view class="font-size-14 font-500 color-525866 mr-12"> 手机号码 </view>
<view class="right">
<input class="border-box px-4 py-2 font-size-15 color-000 line-height-20"
<input class="border-box px-[4px] py-[2px] font-size-15 color-000 line-height-20"
v-model.trim="userFormList[0].contactPhone" placeholder="请输入联系手机" maxlength="11" />
</view>
</view>

View File

@@ -1,28 +1,15 @@
<template>
<view
class="booking-footer border-box bg-white flex flex-items-center font-family-misans-vf"
>
<text
class="amt font-size-20 font-bold color-FF3D60 line-height-28 flex flex-items-center mr-8"
>
<view class="booking-footer border-box bg-white flex flex-items-center font-family-misans-vf">
<text class="amt font-size-20 font-bold color-FF3D60 line-height-28 flex flex-items-center mr-8">
{{ totalAmt }}
</text>
<!-- <view class="flex flex-items-center" @click="emit('detailClick')">
<text class="font-size-12 color-A3A3A3 mr-4">明细</text>
<uni-icons type="up" size="16" color="#A3A3A3" />
</view> -->
<view
class="btn border-box rounded-10 flex flex-items-center ml-auto pl-8"
@click="handleBooking"
>
<image
class="icon"
src="https://oss.nianxx.cn/mp/static/version_101/common/btn.png"
/>
<text
class="font-size-16 font-500 color-white"
>立即支付</text
>
<view class="btn border-box rounded-10 flex flex-items-center ml-auto pl-[8px]" @click="handleBooking">
<image class="icon" src="https://oss.nianxx.cn/mp/static/version_101/common/btn.png" />
<text class="font-size-16 font-500 color-white">立即支付</text>
</view>
</view>
</template>
@@ -39,11 +26,11 @@ const props = defineProps({
},
orderData: {
type: Object,
default: () => {},
default: () => { },
},
selectedDate: {
type: Object,
default: () => {},
default: () => { },
},
});

View File

@@ -1,26 +1,26 @@
<template>
<view class="bg-white rounded-12 overflow-hidden mb-12">
<view class="flex flex-items-center border-box p-12 border-bottom">
<view class="flex flex-items-center border-box p-[12px] border-bottom">
<view class="font-size-16 font-500 color-000 line-height-24 flex-full">入住信息</view>
<view class="right">
<Stepper v-model="count" unit="间" />
</view>
</view>
<view class="border-box pl-12 pr-12">
<view class="border-box border-bottom pt-12 pb-12 flex flex-items-center" v-for="(item, index) in userFormList"
:key="index">
<view class="border-box pl-[12px] pr-[12px]">
<view class="border-box border-bottom pt-[12px] pb-[12px] flex flex-items-center"
v-for="(item, index) in userFormList" :key="index">
<view class="font-size-14 font-500 color-525866 mr-12"> 住客姓名 </view>
<view class="right">
<input class="border-box px-4 py-2 font-size-15 color-000 line-height-20" v-model.trim="item.visitorName"
placeholder="请输入姓名" maxlength="11" />
<input class="border-box px-[4px] py-[2px] font-size-15 color-000 line-height-20"
v-model.trim="item.visitorName" placeholder="请输入姓名" maxlength="11" />
</view>
</view>
<view class="flex flex-items-center border-box pt-12 pb-12">
<view class="flex flex-items-center border-box pt-[12px] pb-[12px]">
<view class="font-size-14 font-500 color-525866 mr-12"> 联系手机 </view>
<view class="right">
<input class="border-box px-4 py-2 font-size-15 color-000 line-height-20"
<input class="border-box px-[4px] py-[2px] font-size-15 color-000 line-height-20"
v-model.trim="userFormList[0].contactPhone" placeholder="请输入联系手机" maxlength="11" />
</view>
</view>

View File

@@ -6,9 +6,9 @@
</template>
</TopNavBar>
<view class="booking-content flex-full border-box p-12 overflow-hidden scroll-y">
<view class="booking-content flex-full border-box p-[12px] overflow-hidden scroll-y">
<!-- 预约内容 -->
<view class="border-box bg-white p-12 rounded-12 mb-12">
<view class="border-box bg-white p-[12px] rounded-12 mb-12">
<!-- 酒店类型入住离店日期部分 -->
<DateRangeSection v-if="orderData.orderType == 0" :selectedDate="selectedDate" :showBtn="true"
@click="navigateToDetail(orderData)" />
@@ -18,20 +18,21 @@
</view>
<view class="border-box border-bottom">
<view class="font-size-12 color-99A0AE line-height-16 pb-12 break-all">
<view class="font-size-12 color-99A0AE line-height-16 pb-[12px] break-all">
{{ orderData.commodityDescription }}
</view>
<!-- 权益部分 -->
<view class="flex flex-items-center mb-8">
<text class="bg-[#f7f7f7] border-box rounded-4 font-size-11 color-525866 mr-4 pt-4 pb-4 pl-6 pr-6"
<text
class="bg-[#f7f7f7] border-box rounded-4 font-size-11 color-525866 mr-4 pt-[4px] pb-[4px] pl-[6px] pr-[6px]"
v-for="(item, index) in orderData.commodityFacilityList" :key="index">
{{ item }}
</text>
</view>
</view>
<view class="border-box flex flex-items-center flex-justify-between pt-12">
<view class="border-box flex flex-items-center flex-justify-between pt-[12px]">
<text class="font-size-12 color-525866 line-height-18">取消政策及说明</text>
<view class="flex flex-items-center">
<text class="font-size-12 theme-color-500 line-height-16" @click="refundVisible = true">取消政策</text>

View File

@@ -1,5 +1,5 @@
<template>
<view class="bg-white border-box rounded-12 p-12 mb-12">
<view class="bg-white border-box rounded-12 p-[12px] mb-12">
<view class="flex flex-items-center flex-justify-between">
<view class="flex flex-items-center">
<text class="font-size-16 color-171717 line-height-24 font-500">
@@ -10,16 +10,11 @@
</text>
</view>
</view>
<view
v-if="orderData.orderStatus === '0'"
class="font-size-11 color-99A0AE mt-4"
>
<view v-if="orderData.orderStatus === '0'" class="font-size-11 color-99A0AE mt-4">
超时后订单将自动取消
</view>
<view
v-if="['1', '2'].includes(orderData.orderStatus)"
class="border-box border-top flex flex-items-center flex-justify-between font-size-12 pt-12 mt-12"
>
<view v-if="['1', '2'].includes(orderData.orderStatus)"
class="border-box border-top flex flex-items-center flex-justify-between font-size-12 pt-[12px] mt-12">
<view class="color-525866">取消政策及说明</view>
<view class="flex flex-items-center" @click="emit('click')">
<text class="theme-color-500 mr-4">查看详情</text>

View File

@@ -1,5 +1,5 @@
<template>
<view class="footer bg-white border-box flex flex-items-center flex-justify-between p-12">
<view class="footer bg-white border-box flex flex-items-center flex-justify-between p-[12px]">
<button v-if="['1', '2'].includes(statusCode)"
class="left border-none border-box bg-white rounded-10 flex flex-items-center flex-justify-center font-size-14 font-500 color-525866 mr-12"
@click="emit('refund', orderData)">

View File

@@ -1,5 +1,5 @@
<template>
<view v-if="orderType == 0" class="border-box bg-white p-12 rounded-12 mb-12">
<view v-if="orderType == 0" class="border-box bg-white p-[12px] rounded-12 mb-12">
<!-- 酒店类型入住离店日期部分 -->
<DateRangeSection v-if="orderData.orderType == 0" :selectedDate="selectedDate" />
@@ -7,20 +7,20 @@
{{ orderData.commodityName }}
</view>
<view class="border-box border-bottom font-size-12 color-99A0AE line-height-16 pb-12">
<view class="border-box border-bottom font-size-12 color-99A0AE line-height-16 pb-[12px]">
{{ orderData.commodityDescription }}
</view>
<!-- 权益部分 -->
<view class="border-box flex flex-items-center pt-12">
<text class="bg-[#f7f7f7] border-box rounded-4 font-size-11 color-525866 mr-4 pt-4 pb-4 pl-6 pr-6"
<view class="border-box flex flex-items-center pt-[12px]">
<text class="bg-[#f7f7f7] border-box rounded-4 font-size-11 color-525866 mr-4 pt-[4px] pb-[4px] pl-[6px] pr-[6px]"
v-for="(item, index) in commodityFacilityList" :key="index">
{{ item }}
</text>
</view>
</view>
<view v-if="orderType != 0" class="border-box bg-white p-12 rounded-12 mb-12">
<view v-if="orderType != 0" class="border-box bg-white p-[12px] rounded-12 mb-12">
<view class="font-size-16 font-500 color-000 line-height-24 ellipsis-1 mb-8">
{{ orderData.commodityName }}
</view>
@@ -31,7 +31,7 @@
</view>
<view v-if="orderData.orderStatus === '0'"
class="border-box border-top pt-12 font-size-14 font-500 color-171717 mt-12">[电子凭证]直接验证使用</view>
class="border-box border-top pt-[12px] font-size-14 font-500 color-171717 mt-12">[电子凭证]直接验证使用</view>
</view>
</template>

View File

@@ -1,27 +1,18 @@
<template>
<view class="card-content border-box pt-12">
<view class="card-content border-box pt-[12px]">
<view class="flex items-center justify-between">
<view
class="left flex-full font-size-14 line-height-20 color-171717 mr-12"
>
<view class="left flex-full font-size-14 line-height-20 color-171717 mr-12">
{{ orderData.commodityName }}
</view>
<view
:class="[
<view :class="[
'right font-size-18 font-bold line-height-20',
orderData.orderStatus === '0' ? 'color-FF3D60' : 'color-525866',
]"
>
]">
{{ orderData.orderAmt }}
</view>
</view>
<!-- 动态渲染信息行 -->
<InfoRow
v-for="item in displayItems"
:key="item.label"
:label="item.label"
:value="item.value"
/>
<InfoRow v-for="item in displayItems" :key="item.label" :label="item.label" :value="item.value" />
</view>
</template>

View File

@@ -1,5 +1,5 @@
<template>
<view class="order-card bg-white border-box p-12 rounded-12 m-12" @click.stop="handleCardClick">
<view class="order-card bg-white border-box p-[12px] rounded-12 m-12" @click.stop="handleCardClick">
<!-- 卡片头部 -->
<view class="card-header flex items-center">
<view class="status-info flex items-center flex-full">

View File

@@ -1,5 +1,5 @@
<template>
<view class="bg-white border-box rounded-10 p-12">
<view class="bg-white border-box rounded-10 p-[12px]">
<view class="flex mb-8 font-size-12">
<text class="w-60 color-99A0AE">订单编号</text>
<text class="color-525866">{{ orderData.orderId }}</text>
@@ -10,14 +10,12 @@
</view>
<view class="flex font-size-12">
<text class="w-60 color-99A0AE">支付状态</text>
<text
:class="[
<text :class="[
{
'color-FF3D60': statusCode === '0' || statusCode === '3',
'color-21B466': ['1', '2', '4', '5', '6'].includes(statusCode),
},
]"
>
]">
{{ statusText }}
</text>
</view>

View File

@@ -1,7 +1,7 @@
<template>
<uni-popup ref="popupRef" type="bottom" :safe-area="false" @maskClick="handleClose" @change="handlePopupChange">
<view class="refund-popup bg-[#f5f7fa] border-box">
<view class="border-box flex flex-items-center justify-between pt-12 pb-12 relative">
<view class="border-box flex flex-items-center justify-between pt-[12px] pb-[12px] relative">
<view class="flex flex-col flex-items-center flex-full ">
<view class="flex-full font-size-16 text-color-900 text-center">核销凭证</view>
<view class="flex-full font-size-12 text-color-600 text-center mt-4">请向工作人员出示此码</view>
@@ -10,9 +10,10 @@
<uni-icons class="close absolute" type="close" size="20" color="#CACFD8" @click="handleClose" />
</view>
<view class="bg-white border-box rounded-12 flex flex-col flex-items-center flex-justify-center p-12 mb-12 mx-12">
<view
class="bg-white border-box rounded-12 flex flex-col flex-items-center flex-justify-center p-[12px] mb-12 mx-12">
<view class="flex w-full flex-row flex-items-center flex-justify-between py-4">
<view class="flex w-full flex-row flex-items-center flex-justify-between py-[4px]">
<view>
<view class="font-size-16 font-500 color-000 line-height-24 ellipsis-1">
{{ selectedVoucher.name }}
@@ -20,30 +21,33 @@
</view>
<view v-if="selectedVoucher" class="flex flex-row">
<view class="bg-[#f5f7fa] text-color-600 font-size-12 p-4 rounded-4 mr-4">总计{{ selectedVoucher.count }}{{
<view class="bg-[#f5f7fa] text-color-600 font-size-12 p-[4px] rounded-4 mr-4">总计{{ selectedVoucher.count
}}{{
selectedVoucher.unit }}
</view>
<view class="bg-[#F0F8F3] theme-color-500 font-size-12 p-4 rounded-4">{{ selectedVoucher.count -
<view class="bg-[#F0F8F3] theme-color-500 font-size-12 p-[4px] rounded-4">{{ selectedVoucher.count -
selectedVoucher.writeOffCount }}{{ selectedVoucher.unit }}可用</view>
</view>
</view>
<view
class="flex flex-col w-full flex-items-center flex-justify-center border-box rounded-8 border pt-16 pb-32 mt-12">
<view class="flex flex-row flex-justify-between border-box w-full px-12">
<view class="bg-[#F0F8F3] theme-color-500 font-size-14 px-12 line-height-24 rounded-12">凭证{{
class="flex flex-col w-full flex-items-center flex-justify-center border-box rounded-8 border pt-[16px] pb-[32px] mt-12">
<view class="flex flex-row flex-justify-between border-box w-full px-[12px]">
<view class="bg-[#F0F8F3] theme-color-500 font-size-14 px-[12px] line-height-24 rounded-12">凭证{{
selectedVoucherList.length > 1 ? currentVoucherIndex + 1 : '' }}</view>
<view class="text-color-500 font-size-14 px-12 line-height-24 rounded-12">此码仅可核销{{ selectedVoucher.count -
<view class="text-color-500 font-size-14 px-[12px] line-height-24 rounded-12">此码仅可核销{{ selectedVoucher.count
-
selectedVoucher.writeOffCount }}</view>
</view>
<view class="flex flex-items-center flex-justify-center mt-20 p-20 rounded-12 border borderColor"
<view class="flex flex-items-center flex-justify-center mt-20 p-[20px] rounded-12 border borderColor"
:style="{ borderColor: selectedVoucher?.color }">
<Qrcode v-if="showQrcode" :size="props.size" :unit="props.unit" :val="qrcodeVal" :loadMake="true"
:onval="true" />
</view>
<view v-if="false" class="mt-20 bg-[#F0F8F3] theme-color-500 font-size-14 px-12 line-height-24 rounded-12">
<view v-if="false"
class="mt-20 bg-[#F0F8F3] theme-color-500 font-size-14 px-[12px] line-height-24 rounded-12">
{{ selectedVoucher.name }}
</view>
</view>

View File

@@ -1,7 +1,5 @@
<template>
<view
class="border-box font-size-24 color-171717 line-height-32 font-500 pt-12 pb-12"
>
<view class="border-box font-size-24 color-171717 line-height-32 font-500 pt-[12px] pb-[12px]">
{{ currentStatusText }}
</view>
</template>

View File

@@ -1,8 +1,5 @@
<template>
<view
class="bg-white border-box rounded-10 p-12 mb-12"
v-if="hasConsumerData"
>
<view class="bg-white border-box rounded-10 p-[12px] mb-12" v-if="hasConsumerData">
<view v-for="(item, index) in consumerList" :key="index">
<view class="flex mb-8 font-size-12">
<text class="w-60 color-99A0AE">住客姓名</text>

View File

@@ -1,23 +1,24 @@
<template>
<view class="bg-white border-box rounded-12 px-12 pt-12 mb-12">
<view class="bg-white border-box rounded-12 px-[12px] pt-[12px] mb-12">
<text class="font-size-16 color-171717 line-height-24 font-500">
核销凭证列表
</text>
<view class="flex flex-items-center flex-justify-between py-12"
<view class="flex flex-items-center flex-justify-between py-[12px]"
:class="[index + 1 === props.orderData.commodityPackageConfig.length ? '' : 'border-bottom']"
v-for="(item, index) in props.orderData.commodityPackageConfig" :key="item.name">
<view class="flex flex-col">
<text class="text-color-900 font-size-16">{{ item.name }}</text>
<view class="flex flex-row mt-8">
<view class="bg-[#f5f7fa] text-color-600 font-size-12 p-4 rounded-4 mr-4">总计{{ item.count }}{{ item.unit }}
<view class="bg-[#f5f7fa] text-color-600 font-size-12 p-[4px] rounded-4 mr-4">总计{{ item.count }}{{ item.unit
}}
</view>
<view class="bg-[#F0F8F3] theme-color-500 font-size-12 p-4 rounded-4">{{ item.count - item.writeOffCount
<view class="bg-[#F0F8F3] theme-color-500 font-size-12 p-[4px] rounded-4">{{ item.count - item.writeOffCount
}}{{ item.unit }}可用</view>
</view>
</view>
<view class="flex flex-items-center px-14 py-8 rounded-8"
<view class="flex flex-items-center px-[14px] py-[8px] rounded-8"
:class="[item.packageStatus === 0 ? 'bg-[#0CCD58]' : 'bg-[#f5f5f5]']" @click="handleShowQrcode(item, index)">
<text v-if="item.packageStatus === 0" class="font-size-14 color-white">出示凭证</text>
<text v-else class="font-size-14 text-color-300">已核销</text>

View File

@@ -1,7 +1,7 @@
<template>
<view class="card bg-white border-box p-8 rounded-12 flex flex-items-start m-12" @click.stop="handleClick(item)">
<view class="card bg-white border-box p-[8px] rounded-12 flex flex-items-start m-12" @click.stop="handleClick(item)">
<image class="left rounded-10" :src="item.commodityPhoto" mode="aspectFill" />
<view class="right border-box flex-full pl-12">
<view class="right border-box flex-full pl-[12px]">
<view class="font-size-16 line-height-24 color-171717 mb-4">
{{ item.commodityName }}
</view>

View File

@@ -8,7 +8,7 @@
<!-- 选择入住离店日期 0:是酒店 -->
<view v-if="didSelectedTabItem && didSelectedTabItem.orderType == 0"
class="bg-white border-box flex flex-items-center p-12">
class="bg-white border-box flex flex-items-center p-[12px]">
<view class="in flex flex-items-center">
<text class="font-size-11 font-500 color-99A0AE mr-4">入住</text>
<text class="font-size-14 font-500 color-171717">

View File

@@ -1,71 +1,40 @@
<template>
<view class="order-card bg-white border-box p-12 rounded-12 m-12">
<view class="order-card bg-white border-box p-[12px] rounded-12 m-12">
<!-- 卡片头部 -->
<view class="border-box flex flex-items-center pb-12">
<image
class="icon mr-4"
src="https://oss.nianxx.cn/mp/static/version_101/service/service_icon.png"
/>
<view class="border-box flex flex-items-center pb-[12px]">
<image class="icon mr-4" src="https://oss.nianxx.cn/mp/static/version_101/service/service_icon.png" />
<text class="font-size-14 color-525866 line-height-20">工单</text>
<text class="font-size-12 color-525866 line-height-20 ml-auto">{{
isCancelWork ? "已取消" : workOrderStatus(orderData.workOrderStatus)
}}</text>
</view>
<!-- 卡片内容 -->
<view class="border-box card-content flex flex-items-center pb-12">
<view class="border-box left flex-full pr-20">
<view class="font-size-12 color-525866 line-height-20 mb-4"
>所在位置{{ orderData.roomNo }}</view
>
<view class="font-size-12 color-525866 line-height-20 mb-4"
>联系方式: {{ orderData.userPhone }}</view
>
<view class="font-size-12 color-525866 line-height-20 ellipsis-2"
>需求描述: {{ orderData.content }}</view
>
<view class="border-box card-content flex flex-items-center pb-[12px]">
<view class="border-box left flex-full pr-[20px]">
<view class="font-size-12 color-525866 line-height-20 mb-4">所在位置{{ orderData.roomNo }}</view>
<view class="font-size-12 color-525866 line-height-20 mb-4">联系方式: {{ orderData.userPhone }}</view>
<view class="font-size-12 color-525866 line-height-20 ellipsis-2">需求描述: {{ orderData.content }}</view>
</view>
<image
v-if="orderData.contentImgUrl"
class="right rounded-6"
:src="orderData.contentImgUrl"
mode="aspectFill"
/>
<image v-if="orderData.contentImgUrl" class="right rounded-6" :src="orderData.contentImgUrl" mode="aspectFill" />
</view>
<!-- 服务人员 -->
<view
v-if="orderData.processMemberName && orderData.processMemberPhone"
class="service-user border-box p-8 flex flex-items-center flex-justify-between mb-12"
>
<view class="font-size-12 line-height-16"
>服务人员{{ orderData.processMemberName }}</view
>
<uni-icons
class="ml-auto mr-4"
type="phone-filled"
size="14"
color="#436799"
/>
<text class="font-size-12 line-height-16" @click="callService"
>拨打电话</text
>
<view v-if="orderData.processMemberName && orderData.processMemberPhone"
class="service-user border-box p-[8px] flex flex-items-center flex-justify-between mb-12">
<view class="font-size-12 line-height-16">服务人员{{ orderData.processMemberName }}</view>
<uni-icons class="ml-auto mr-4" type="phone-filled" size="14" color="#436799" />
<text class="font-size-12 line-height-16" @click="callService">拨打电话</text>
</view>
<!-- 取消操作 -->
<view
v-if="
<view v-if="
!isCancelWork &&
orderData.workOrderStatus !== '2' &&
orderData.workOrderStatus !== '3'
"
class="flex flex-items-center flex-justify-between"
>
<text
class="cancel border-box border rounded-6 font-size-12 line-height-16 color-525866 ml-auto"
@click="cancelCall"
>取消呼叫</text
>
" class="flex flex-items-center flex-justify-between">
<text class="cancel border-box border rounded-6 font-size-12 line-height-16 color-525866 ml-auto"
@click="cancelCall">取消呼叫</text>
</view>
</view>
</template>

View File

@@ -1,5 +1,5 @@
<template>
<view class="w-full border-box flex flex-col overflow-hidden pl-12 mt-6 mb-6">
<view class="w-full border-box flex flex-col overflow-hidden pl-[12px] mt-6 mb-6">
<text class="font-size-14 color-333">{{ text }}</text>
<slot></slot>
</view>

View File

@@ -6,8 +6,10 @@
</view>
<!-- 滚动区域 -->
<scroll-view class="flex-full overflow-hidden chat-scroll" scroll-y :scroll-into-view="scrollIntoViewId" scroll-with-animation @scroll="onScroll" @touchstart="onTouchStart" @touchend="onTouchEnd" @touchcancel="onTouchEnd">
<view class="flex flex-col pt-12 px-16 pb-24 border-box gap-10">
<scroll-view class="flex-full overflow-hidden chat-scroll" scroll-y :scroll-into-view="scrollIntoViewId"
scroll-with-animation @scroll="onScroll" @touchstart="onTouchStart" @touchend="onTouchEnd"
@touchcancel="onTouchEnd">
<view class="flex flex-col pt-[12px] px-[16px] pb-[24px] border-box gap-10">
<template v-if="hasStructuredLongTextData">
<view v-if="headerSections.title || headerSections.tag" class="long-answer-header">
<view v-if="headerSections.title" class="long-answer-title">
@@ -19,14 +21,10 @@
</view>
<template v-for="section in contentSections" :key="section.contentKey">
<LongAnswerSectionSkeleton
v-if="shouldRenderSectionSkeleton(section)"
/>
<LongAnswerSectionSkeleton v-if="shouldRenderSectionSkeleton(section)" />
<ParsedValueView v-else-if="shouldUseParsedValueView(section)"
:field-key="section.contentKey"
:value="section.parsedValue !== null ? section.parsedValue : section.contentValue"
/>
<ParsedValueView v-else-if="shouldUseParsedValueView(section)" :field-key="section.contentKey"
:value="section.parsedValue !== null ? section.parsedValue : section.contentValue" />
<ChatMarkdown v-else :text="section.contentValue" />
</template>

View File

@@ -22,8 +22,8 @@
<view v-show="tabIndex === 0" class="discovery-shell flex-full" @touchstart.capture="handleDiscoveryPanelTouchStart"
@touchstart="handleDiscoveryPanelTouchStart" @touchmove.capture="handleDiscoveryPanelTouchMove"
@touchmove="handleDiscoveryPanelTouchMove"
@touchend="handleDiscoveryPanelTouchEnd" @touchcancel="handleDiscoveryPanelTouchEnd">
@touchmove="handleDiscoveryPanelTouchMove" @touchend="handleDiscoveryPanelTouchEnd"
@touchcancel="handleDiscoveryPanelTouchEnd">
<view class="home-welcome-panel">
<HomeWelcome class="flex-shrink-0" :mainPageDataModel="mainPageDataModel" />
</view>
@@ -138,7 +138,7 @@
</scroll-view>
<!-- 输入框区域 -->
<view class="pb-safe-area">
<view class="pb-[20px]">
<ChatQuickAccess />
<ChatInputArea ref="inputAreaRef" v-model="inputMessage" :holdKeyboard="holdKeyboard"
:is-session-active="isSessionActive" :stop-request="stopRequest" @send="sendMessageAction"

View File

@@ -1,5 +1,5 @@
<template>
<view class="border-box h-44 flex flex-items-center pl-12 pr-12" :style="navBarStyle">
<view class="border-box h-44 flex flex-items-center pl-[12px] pr-[12px]" :style="navBarStyle">
<view class="nav-icon-button" @tap.stop="showDrawer">
<uni-icons type="bars" size="24" color="#ffffff" />
</view>

View File

@@ -1,8 +1,8 @@
v
<template>
<view class="welcome-content border-box p-12">
<view class="welcome-content border-box p-[12px]">
<view class="wrap rounded-20">
<view class="flex flex-items-center flex-justify-between border-box pl-12 pr-12">
<view class="flex flex-items-center flex-justify-between border-box pl-[12px] pr-[12px]">
<SpriteAnimator :src="spriteStyle.ipLargeImage" :frameWidth="spriteStyle.frameWidth"
:frameHeight="spriteStyle.frameHeight" :totalFrames="spriteStyle.totalFrames" :columns="spriteStyle.columns"
:displayWidth="spriteStyle.displayWidth" :fps="16" />

View File

@@ -6,11 +6,11 @@
</view>
<!-- 滚动区域 -->
<scroll-view class="flex-full overflow-hidden" scroll-y >
<view class="pb-24 border-box overflow-hidden">
<scroll-view class="flex-full overflow-hidden" scroll-y>
<view class="pb-[24px] border-box overflow-hidden">
<image v-if="coverImage" class="w-full h-auto block" :src="coverImage" mode="widthFix" />
<view class="pt-16 px-12 pb-24 border-box">
<view class="pt-[16px] px-[12px] pb-[24px] border-box">
<view class="color-171717 font-size-16 font-weight-600">{{ detailTitle }}</view>
<view v-if="publishTime" class="notice-time-tag flex flex-row flex-items-center mt-16">
@@ -18,7 +18,7 @@
<text class="color-171717 font-size-12 font-weight-600 ml-8">发布时间{{ publishTime }}</text>
</view>
<view class="mt-20 pt-16 color-666 font-size-14 line-height-20 border-top">{{ noticeContent }}</view>
<view class="mt-20 pt-[16px] color-666 font-size-14 line-height-20 border-top">{{ noticeContent }}</view>
</view>
</view>
</scroll-view>
@@ -61,7 +61,6 @@ onLoad((query = {}) => {
</script>
<style lang="scss" scoped>
.notice-time-tag {
display: inline-flex;
height: 28px;
@@ -71,5 +70,4 @@ onLoad((query = {}) => {
border-radius: 14px;
box-sizing: border-box;
}
</style>

View File

@@ -2,17 +2,13 @@
<view v-if="shouldRenderCard" class="w-full bg-white border-box border-ff overflow-hidden rounded-20 flex flex-col">
<!-- 占位撑开 -->
<view class="w-vw"></view>
<view class="flex flex-col px-16 pt-16 pb-12 border-box" @click="lookDetailAction">
<view class="flex flex-col px-[16px] pt-[16px] pb-[12px] border-box" @click="lookDetailAction">
<view v-if="tag" class="long-answer-tag" :style="longAnswerTagStyle">{{ tag }}</view>
<view v-if="title" class="flex flex-row flex-items-start flex-justify-start mb-4">
<text class="font-size-16 font-600 text-color-900"> {{ title }}</text>
</view>
<!-- 文字内容根据数据模式限制预览行数 -->
<view
v-if="processedContent"
class="answer-content font-size-12 font-color-600"
:style="answerContentStyle"
>
<view v-if="processedContent" class="answer-content font-size-12 font-color-600" :style="answerContentStyle">
<ChatMarkdown :text="processedContent" :fontColor="'#94A3B8'" />
</view>
<!-- 超过2行时显示...提示 -->
@@ -154,7 +150,7 @@ onBeforeUnmount(cleanupStreamWatchers);
const lookDetailAction = () => {
const message = previewContent.value ? String(previewContent.value) : "";
// 使用 StreamManager 以 streamId 转发当前及后续流式更新,详情页通过 streamId 订阅
const streamId = `stream_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;
const streamId = `stream_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
const updateStream = () => {
StreamManager.updateStream(
streamId,
@@ -211,6 +207,7 @@ const lookDetailAction = () => {
text-overflow: ellipsis;
line-height: 16px;
}
.long-answer-tag {
display: inline-flex;
width: fit-content;

View File

@@ -1,15 +1,16 @@
<template>
<uni-popup ref="popup" type="center" :safe-area="false">
<view class="popup-content bg-white border-box mx-24 px-12 py-16 rounded-12">
<view class="header flex flex-items-center pb-12">
<view class="title flex-full text-center font-size-17 color-000 font-500 ml-24">呼叫热线</view>
<view class="popup-content bg-white border-box mx-24 px-[12px] py-16 rounded-12">
<view class="header flex flex-items-center pb-[12px]">
<view class="title flex-full text-center font-size-17 color-000 font-500 ml-[24px]">呼叫热线</view>
<uni-icons type="close" size="24" color="#CACFD8" @click="close" />
</view>
<view class="border-box pl-12 pr-12">
<view class="border-box pl-[12px] pr-[12px]">
<view class="font-size-16 color-A3A3A3 line-height-22">
如有任何疑问欢迎随时致电景区咨询热线
<text class="color-2563EB" @click="handleClick(mobleNumber1)">{{mobleNumber1}}</text> / <text class="color-2563EB" @click="handleClick(mobleNumber2)">{{mobleNumber2}}</text>
<text class="color-2563EB" @click="handleClick(mobleNumber1)">{{ mobleNumber1 }}</text> / <text
class="color-2563EB" @click="handleClick(mobleNumber2)">{{ mobleNumber2 }}</text>
我们将全程为您提供细致解答与暖心服务
</view>
</view>
@@ -44,6 +45,4 @@ uni.$on("SHOW_CALL_MOBILE_POPUP", () => {
});
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>

View File

@@ -1,5 +1,5 @@
<template>
<view class="w-full pb-12">
<view class="w-full pb-[12px]">
<view class="w-vw"></view>
<template v-if="toolCall.picture && toolCall.picture.length > 0">
<ModuleTitle :title="图片详情" />

View File

@@ -2,7 +2,7 @@
<view class="facility-location-card bg-white rounded-24 overflow-hidden w-full">
<image class="facility-location-card__image block w-full" :src="data.image" mode="aspectFill" />
<view class="facility-location-card__body px-24 pb-24">
<view class="facility-location-card__body px-[24px] pb-[24px]">
<view class="facility-location-card__title-row flex flex-items-center">
<view class="facility-location-card__badge color-2563EB bg-[#eff6ff] font-size-12 font-900">
{{ type.text }}

View File

@@ -3,7 +3,7 @@
<!-- 占位撑开 -->
<view class="w-vw"></view>
<view class="content flex flex-col m-4 border-box rounded-24">
<view class="flex flex-col p-6 border-box flex-items-center justify-center">
<view class="flex flex-col p-[6px] border-box flex-items-center justify-center">
<image class="w-full rounded-20" :src="componentDataMap.background" mode="widthFix" />
<!-- 左上角标签 -->
@@ -18,10 +18,10 @@
{{ componentDataMap.description }}
</text>
<view class="w-full border-box px-12 pb-[8px] flex flex-row" @click="jumpClick">
<view class="btn-bg w-full border-box p-4 rounded-24 flex flex-row">
<view class="w-full border-box px-[12px] pb-[8px] flex flex-row" @click="jumpClick">
<view class="btn-bg w-full border-box p-[4px] rounded-24 flex flex-row">
<view
class="btn-bg-sub w-full border-box p-16 rounded-20 flex flex-row flex-items-center flex-justify-center color-white text-center font-size-18 font-800">
class="btn-bg-sub w-full border-box p-[16px] rounded-20 flex flex-row flex-items-center flex-justify-center color-white text-center font-size-18 font-800">
{{ componentDataMap.buttonName }}
</view>
</view>

View File

@@ -2,7 +2,7 @@
<view class="w-full bg-white border-box border-ff overflow-hidden rounded-20 flex flex-col">
<!-- 占位撑开 -->
<view class="w-vw"></view>
<view class="flex flex-col px-16 pt-16 pb-12 border-box" @click="openDetail(item)">
<view class="flex flex-col px-[16px] pt-[16px] pb-[12px] border-box" @click="openDetail(item)">
<view class="long-text-guide-card__badge font-size-12 font-900" :class="`is-${item.badgeTone}`">
{{ item.badge }}

View File

@@ -1,13 +1,13 @@
<template>
<uni-popup ref="popup" type="bottom" :safe-area="false">
<view class="popup-content border-box pt-12 pl-12 pr-12">
<view class="header flex flex-items-center pb-12">
<view class="title flex-full text-center font-size-17 color-000 font-500 ml-24">更多服务</view>
<view class="popup-content border-box pt-[12px] pl-[12px] pr-[12px]">
<view class="header flex flex-items-center pb-[12px]">
<view class="title flex-full text-center font-size-17 color-000 font-500 ml-[24px]">更多服务</view>
<uni-icons type="close" size="24" color="#CACFD8" @click="close" />
</view>
<view class="list bg-white border-box pl-20 pr-20">
<view class="item border-box border-bottom pt-20 pb-20" v-for="(item, index) in list" :key="index">
<view class="list bg-white border-box pl-[20px] pr-[20px]">
<view class="item border-box border-bottom pt-[20px] pb-[20px]" v-for="(item, index) in list" :key="index">
<view class="flex flex-items-center flex-justify-center">
<image v-if="item.icon" class="left" :src="item.icon" />
<view class="center flex-full">

View File

@@ -2,8 +2,8 @@
<view class="w-full bg-white border-box border-ff overflow-hidden rounded-20 flex flex-col">
<!-- 占位撑开 -->
<view class="w-vw"></view>
<view class="flex flex-items-center flex-justify-between p-12 border-box" @click="openMap">
<view class="rounded-16 p-16 bg-[#F0F8F3]">
<view class="flex flex-items-center flex-justify-between p-[12px] border-box" @click="openMap">
<view class="rounded-16 p-[16px] bg-[#F0F8F3]">
<view class="w-32 h-32 rounded-full bg-white flex flex-items-center flex-justify-center">
<uni-icons type="location" size="16" color="#171717" />
</view>

View File

@@ -1,35 +1,23 @@
<template>
<view class="recommendation-list-card w-full">
<scroll-view
class="recommendation-list-card__scroll scroll-x whitespace-nowrap w-full"
scroll-x
:show-scrollbar="false"
enhanced
>
<view
v-for="item in items"
:key="item.id || item.title"
<scroll-view class="recommendation-list-card__scroll scroll-x whitespace-nowrap w-full" scroll-x
:show-scrollbar="false" enhanced>
<view v-for="item in items" :key="item.id || item.title"
class="recommendation-list-card__item inline-block bg-white rounded-20 overflow-hidden"
:class="{ 'is-disabled': disabled }"
@click="handleSelect(item)"
>
<image
class="recommendation-list-card__image block w-full"
:src="item.image"
mode="aspectFill"
/>
<view class="recommendation-list-card__body p-16">
:class="{ 'is-disabled': disabled }" @click="handleSelect(item)">
<image class="recommendation-list-card__image block w-full" :src="item.image" mode="aspectFill" />
<view class="recommendation-list-card__body p-[16px]">
<view class="recommendation-list-card__name color-1E293B font-size-18 font-900 ellipsis-1">
{{ item.title }}
</view>
<view class="recommendation-list-card__distance flex flex-items-center gap-4 mt-4 color-94A3B8 font-size-12 font-800">
<view
class="recommendation-list-card__distance flex flex-items-center gap-4 mt-4 color-94A3B8 font-size-12 font-800">
<text class="recommendation-list-card__pin"></text>
<text>{{ item.distance }}</text>
</view>
<view
class="recommendation-list-card__button flex flex-items-center flex-justify-center mt-12 color-334155 font-size-12 font-900"
@click.stop="handleSelect(item)"
>
@click.stop="handleSelect(item)">
{{ getActionText(item) }}
</view>
</view>

View File

@@ -1,10 +1,9 @@
<template>
<view class="visual-action-row flex flex-items-center gap-12 p-[12px] bg-white rounded-18 border-box"
:class="{ 'is-disabled': disabled }" @click="handleClick">
<view
class="visual-action-row flex flex-items-center gap-12 p-12 bg-white rounded-18 border-box"
:class="{ 'is-disabled': disabled }"
@click="handleClick"
>
<view class="visual-action-row__icon flex flex-items-center flex-justify-center w-42 h-42 rounded-14 font-size-18 font-900" :class="toneClass">
class="visual-action-row__icon flex flex-items-center flex-justify-center w-42 h-42 rounded-14 font-size-18 font-900"
:class="toneClass">
<slot name="icon">{{ icon }}</slot>
</view>
<view class="visual-action-row__body flex-full">

View File

@@ -1,6 +1,6 @@
<template>
<CardShell variant="detail">
<view class="visual-detail__header flex flex-items-center px-16 border-box border-bottom-F1F5F9">
<view class="visual-detail__header flex flex-items-center px-[16px] border-box border-bottom-F1F5F9">
<view class="visual-detail__back mr-8 rounded-full bg-[#f8fafc] color-334155 font-900 text-center"
@click="$emit('back')">
<uni-icons type="left" size="16" color="#CBD5E1"></uni-icons>

View File

@@ -1,14 +1,14 @@
<template>
<view class="container pl-12">
<view class="container pl-[12px]">
<view class="container-scroll font-size-0 scroll-x whitespace-nowrap">
<view class="card-item bg-white inline-block rounded-20 mr-10"
v-for="(item, index) in list" :key="index" @click="sendReply(item)">
<view class="card-item bg-white inline-block rounded-20 mr-10" v-for="(item, index) in list" :key="index"
@click="sendReply(item)">
<view class="flex flex-row flex-justify-start p-10">
<view class="flex flex-row flex-justify-start p-[10px]">
<image class="card-img flex-shrink-0 rounded-14" :src="createSvgIndex(index)" />
<view class="min-width-0 flex flex-col flex-full border-box pl-8 py-4" >
<view class="min-width-0 flex flex-col flex-full border-box pl-[8px] py-[4px]">
<view class="w-full font-size-12 font-600 color-171717 ellipsis-1">
{{ item.title }}
</view>

View File

@@ -1,12 +1,12 @@
<template>
<view class="bg-[#f5f7fa] flex flex-col h-screen overflow-hidden">
<TopNavBar title="房间相册" backgroundColor="transparent" />
<view class="p-8">
<view class="p-[8px]">
<text class="ml-4 font-size-18 color-171717 font-500">全部({{ albumList.length }})</text>
</view>
<scroll-view scroll-y class="scroll-container overflow-auto">
<view class="pl-4 pr-4 pb-24">
<view class="pl-[4px] pr-[4px] pb-[24px]">
<view class="grid-container">
<view class="album-item" v-for="(item, index) in albumList" :key="index">
<view class="album-image-wrapper">

View File

@@ -1,16 +1,10 @@
<template>
<view class="border-box border-top-8">
<view
class="border-box pt-12 pl-12 pr-12"
v-for="(moduleItem, index) in goodsData.commodityEquipment"
:key="index"
>
<view
class="flex flex-items-start flex-col"
:class="{
<view class="border-box pt-[12px] pl-[12px] pr-[12px]" v-for="(moduleItem, index) in goodsData.commodityEquipment"
:key="index">
<view class="flex flex-items-start flex-col" :class="{
'border-bottom': index < goodsData.commodityEquipment.length - 1,
}"
>
}">
<view class="flex flex-items-center flex-row flex-shrink-0">
<uni-icons fontFamily="znicons" size="20" color="#171717">
{{ zniconsMap[moduleItem.icon] }}
@@ -19,12 +13,9 @@
{{ moduleItem.title }}
</text>
</view>
<view class="border-box flex flex-col flex-items-start mt-4 pb-12">
<text
class="font-size-12 color-525866 line-height-20 mb-4"
v-for="(text, index) in moduleItem.desc"
:key="index"
>
<view class="border-box flex flex-col flex-items-start mt-4 pb-[12px]">
<text class="font-size-12 color-525866 line-height-20 mb-4" v-for="(text, index) in moduleItem.desc"
:key="index">
{{ text }}
</text>
</view>

View File

@@ -1,5 +1,5 @@
<template>
<view class="good-info border-box pl-12 pr-12">
<view class="good-info border-box pl-[12px] pr-[12px]">
<!-- 标题区域 -->
<view class="title-section">
<text class="title">
@@ -13,11 +13,7 @@
<!-- 设施信息区域 -->
<view class="facilities-section" v-if="facilitiesList.length">
<view class="facilities-grid">
<view
class="facility-item"
v-for="(facility, index) in facilitiesList"
:key="index"
>
<view class="facility-item" v-for="(facility, index) in facilitiesList" :key="index">
<text class="facility-text">{{ facility }}</text>
</view>
</view>

View File

@@ -1,13 +1,8 @@
<template>
<view class="border-box border-top-8 pl-12 pr-12 pt-6 pb-12">
<ModuleTitle
v-if="showTitle"
title="套餐包含内容"
/>
<view class="flex flex-items-start flex-col"
v-for="(item, index) in goodsData.commodityPackageConfig" :key="index"
>
<view class="title-row py-4 ml-4">
<view class="border-box border-top-8 pl-[12px] pr-[12px] pt-[6px] pb-[12px]">
<ModuleTitle v-if="showTitle" title="套餐包含内容" />
<view class="flex flex-items-start flex-col" v-for="(item, index) in goodsData.commodityPackageConfig" :key="index">
<view class="title-row py-[4px] ml-4">
<text class="left font-size-14 color-171717">{{ item.name }}</text>
<view class="sep" aria-hidden="true"></view>
<text class="right font-size-14 color-171717">{{ item.count }}{{ item.unit }}</text>

View File

@@ -39,7 +39,7 @@
{{ calculatedTotalPrice }}
</view>
<view class="btn border-box rounded-10 flex flex-items-center ml-auto pl-8" @click="navigateToPay(goodsData)">
<view class="btn border-box rounded-10 flex flex-items-center ml-auto pl-[8px]" @click="navigateToPay(goodsData)">
<image class="icon" src="https://oss.nianxx.cn/mp/static/version_101/common/btn.png" />
<text class="font-size-16 font-500 color-white">立即预定</text>
</view>

View File

@@ -7,7 +7,6 @@
@import "./height.scss";
@import "./line-height.scss";
@import "./margin.scss";
@import "./padding.scss";
@import "./font-size.scss";
@import "./font-family.scss";
@import "./text-align.scss";

View File

@@ -1,324 +0,0 @@
// 内边距
.p-2 {
padding: 2px;
}
.pt-2 {
padding-top: 2px;
}
.pb-2 {
padding-bottom: 2px;
}
.pl-2 {
padding-left: 2px;
}
.pr-2 {
padding-right: 2px;
}
.px-2 {
padding-left: 2px;
padding-right: 2px;
}
.py-2 {
padding-top: 2px;
padding-bottom: 2px;
}
.p-4 {
padding: 4px;
}
.pl-4 {
padding-left: 4px;
}
.pr-4 {
padding-right: 4px;
}
.pt-4 {
padding-top: 4px;
}
.pb-4 {
padding-bottom: 4px;
}
.px-4 {
padding-left: 4px;
padding-right: 4px;
}
.py-4 {
padding-top: 4px;
padding-bottom: 4px;
}
.p-6 {
padding: 6px;
}
.pt-6 {
padding-top: 6px;
}
.pb-6 {
padding-bottom: 6px;
}
.pl-6 {
padding-left: 6px;
}
.pr-6 {
padding-right: 6px;
}
.px-6 {
padding-left: 6px;
padding-right: 6px;
}
.py-6 {
padding-top: 6px;
padding-bottom: 6px;
}
.p-8 {
padding: 8px;
}
.pt-8 {
padding-top: 8px;
}
.pl-8 {
padding-left: 8px;
}
.pr-8 {
padding-right: 8px;
}
.pb-8 {
padding-bottom: 8px;
}
.px-8 {
padding-left: 8px;
padding-right: 8px;
}
.py-8 {
padding-top: 8px;
padding-bottom: 8px;
}
.p-10 {
padding: 10px;
}
.pt-10 {
padding-top: 10px;
}
.pb-10 {
padding-bottom: 10px;
}
.pl-10 {
padding-left: 10px;
}
.pr-10 {
padding-right: 10px;
}
.px-10 {
padding-left: 10px;
padding-right: 10px;
}
.py-10 {
padding-top: 10px;
padding-bottom: 10px;
}
.p-12 {
padding: 12px;
}
.pt-12 {
padding-top: 12px;
}
.pb-12 {
padding-bottom: 12px;
}
.pl-12 {
padding-left: 12px;
}
.pr-12 {
padding-right: 12px;
}
.px-12 {
padding-left: 12px;
padding-right: 12px;
}
.py-12 {
padding-top: 12px;
padding-bottom: 12px;
}
.p-14 {
padding: 14px;
}
.pt-14 {
padding-top: 14px;
}
.pb-14 {
padding-bottom: 14px;
}
.pl-14 {
padding-left: 14px;
}
.pr-14 {
padding-right: 14px;
}
.px-14 {
padding-left: 14px;
padding-right: 14px;
}
.py-14 {
padding-top: 14px;
padding-bottom: 14px;
}
.p-16 {
padding: 16px;
}
.pt-16 {
padding-top: 16px;
}
.pb-16 {
padding-bottom: 16px;
}
.pl-16 {
padding-left: 16px;
}
.pr-16 {
padding-right: 16px;
}
.px-16 {
padding-left: 16px;
padding-right: 16px;
}
.py-16 {
padding-top: 16px;
padding-bottom: 16px;
}
.p-18 {
padding: 18px;
}
.p-20 {
padding: 20px;
}
.pt-20 {
padding-top: 20px;
}
.pb-20 {
padding-bottom: 20px;
}
.pl-20 {
padding-left: 20px;
}
.pr-20 {
padding-right: 20px;
}
.px-20 {
padding-left: 20px;
padding-right: 20px;
}
.py-20 {
padding-top: 20px;
padding-bottom: 20px;
}
.p-24 {
padding: 24px;
}
.pt-24 {
padding-top: 24px;
}
.pb-24 {
padding-bottom: 24px;
}
.pl-24 {
padding-left: 24px;
}
.pr-24 {
padding-right: 24px;
}
.px-24 {
padding-left: 24px;
padding-right: 24px;
}
.py-24 {
padding-top: 24px;
padding-bottom: 24px;
}
.p-32 {
padding: 32px;
}
.pt-32 {
padding-top: 32px;
}
.pb-32 {
padding-bottom: 32px;
}
.pl-32 {
padding-left: 32px;
}
.pr-32 {
padding-right: 32px;
}
.px-32 {
padding-left: 32px;
padding-right: 32px;
}
.py-32 {
padding-top: 32px;
padding-bottom: 32px;
}
.pb-safe-area {
padding-bottom: 20px;
}