| @ -0,0 +1,754 @@ | |||
| <template> | |||
| <!-- <div>服务档案</div> --> | |||
| <view class="box box-size"> | |||
| <view style="margin: 32rpx 0;"> | |||
| <up-steps :current="currentStep" activeColor="#FFA042" inactiveColor="#E5E5E5" class="up-steps-custom"> | |||
| <up-steps-item title="喂养要求" :titleStyle="{fontSize: '32rpx', fontWeight: 'bold', color: currentStep === 0 ? '#FFA042' : '#999999'}"></up-steps-item> | |||
| <up-steps-item title="清洁要求" :titleStyle="{fontSize: '32rpx', fontWeight: 'bold', color: currentStep === 1 ? '#FFA042' : '#999999'}"></up-steps-item> | |||
| <up-steps-item title="附加服务" :titleStyle="{fontSize: '32rpx', fontWeight: 'bold', color: currentStep === 2 ? '#FFA042' : '#999999'}"></up-steps-item> | |||
| </up-steps> | |||
| </view> | |||
| <!-- v-if="detail.includeDryFood | |||
| || detail.includeWetFood | |||
| || detail.includeHomemadeFood | |||
| || detail.includeRawMeat | |||
| || detail.includeHealthSupplements | |||
| || detail.includeSnacks | |||
| " --> | |||
| <!-- 喂养要求内容 --> | |||
| <view v-if="currentStep === 0"> | |||
| <view class="top box-size" :style="{borderRadius:'16rpx'}"> | |||
| <view class="form-title"> | |||
| 本次喂养过程中,您需要喂养的食品包括 | |||
| </view> | |||
| <view v-if="!detail.includeDryFood && !detail.includeWetFood && !detail.includeHomemadeFood && !detail.includeRawMeat && !detail.includeHealthSupplements && !detail.includeSnacks" class="empty-state-full"> | |||
| <up-icon name="info-circle" size="60rpx" color="#999999"></up-icon> | |||
| <text class="empty-text-full">暂无喂养食品</text> | |||
| </view> | |||
| <view class=" mt32 ml10" v-if="detail.includeDryFood"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 干粮(主粮、冻干等) | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 干粮摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.dryFoodLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.dryFoodLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24 flex-between"> | |||
| <view :style="{color:'#999999'}">干粮喂养重量</view> | |||
| <view class="level"> | |||
| <view class="input_ mr10"> | |||
| <input type="text" v-model="detail.dryFoodFeedWeight" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>/次(单位:克)</view> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24 flex-between"> | |||
| <view :style="{color:'#999999'}">干粮喂养频率</view> | |||
| <view class="level"> | |||
| <view class="input_ mr10"> | |||
| <input type="text" v-model="detail.dryFoodFeedFrequencyDays" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>天</view> | |||
| <view class="input_ mr10"> | |||
| <input type="text" v-model="detail.dryFoodFeedFrequencyTimes" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>次</view> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 备注信息 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.dryFoodRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.includeDryFood"></view> | |||
| <view class=" mt32 ml10" v-if="detail.includeWetFood"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 湿粮(罐头等) | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 湿粮摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.wetFoodLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.wetFoodLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24 flex-between"> | |||
| <view :style="{color:'#999999'}">湿粮喂养重量</view> | |||
| <view class="level"> | |||
| <view class="input_ mr10"> | |||
| <input type="text" disabled v-model="detail.wetFoodFeedWeight" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>/次(单位:罐)</view> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24 flex-between"> | |||
| <view :style="{color:'#999999'}">湿粮喂养频率</view> | |||
| <view class="level"> | |||
| <view class="input_ mr10"> | |||
| <input type="text" disabled v-model="detail.wetFoodFeedFrequencyDays" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>天</view> | |||
| <view class="input_ mr10"> | |||
| <input type="text" disabled v-model="detail.wetFoodFeedFrequencyTimes" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>次</view> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 备注信息 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.wetFoodRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.includeWetFood"></view> | |||
| <view class=" mt32 ml10" v-if="detail.includeHomemadeFood"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 自制食品 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 自制食品摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.homemadeFoodLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.homemadeFoodLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 自制饭制作和喂食说明 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.homemadeFoodInstructions" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.includeHomemadeFood"></view> | |||
| <view class=" mt32 ml10" v-if="detail.includeRawMeat"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 生骨肉 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 生骨肉摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.rawMeatLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.rawMeatLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 生骨肉喂食说明 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.rawMeatFeedingInstructions" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.includeRawMeat"></view> | |||
| <view class=" mt32 ml10" v-if="detail.includeHealthSupplements"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 保健品 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 保健品摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.healthSupplementsLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.healthSupplementsLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 保健品喂养方式 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.healthSupplementsFeedingInstructions" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.includeHealthSupplements"></view> | |||
| <view class=" mt32 ml10" v-if="detail.includeSnacks"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 零食 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 零食摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.snacksLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.snacksLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 零食喂养方式 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.snacksFeedingMethod" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.includeSnacks"></view> | |||
| </view> | |||
| <view class="top mt24" :style="{borderRadius:'16rpx'}"> | |||
| <view class="form-title"> | |||
| 食盆/自动喂食器 | |||
| </view> | |||
| <view class=" mt32 ml10"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 喂食器具摆放位置 | |||
| </view> | |||
| <view class="mt20"> | |||
| <template v-if="handleImageUrl(detail.feedingTrayAutomaticFeederLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.feedingTrayAutomaticFeederLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 备注信息 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.feedingTrayAutomaticFeederRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class="top mt24" :style="{borderRadius:'16rpx'}"> | |||
| <view class="form-title"> | |||
| 饮用水 | |||
| </view> | |||
| <view class=" mt32 ml10"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 饮用水摆放位置 | |||
| </view> | |||
| <view class="mt20"> | |||
| <template v-if="handleImageUrl(detail.waterBowlLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.waterBowlLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 饮用水添加要求 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.waterBowlRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <view class="top mt24" :style="{borderRadius:'16rpx'}"> | |||
| <view class="form-title"> | |||
| 其他补充信息(非必填) | |||
| </view> | |||
| <view class=" mt32 ml10"> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 备注信息 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.otherRemark" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <!-- 清洁要求内容 --> | |||
| <view v-if="currentStep === 1"> | |||
| <view class="top box-size" :style="{borderRadius:'16rpx'}"> | |||
| <view class="form-title"> | |||
| 您需要的清洁内容 | |||
| </view> | |||
| <view v-if="!detail.includeCatLitter && !detail.includeUrinePad" class="empty-state-full"> | |||
| <up-icon name="info-circle" size="60rpx" color="#999999"></up-icon> | |||
| <text class="empty-text-full">暂无清洁内容</text> | |||
| </view> | |||
| <view class="mt32 ml10" v-if="detail.includeCatLitter"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 猫砂 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 猫砂摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.catLitterLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.catLitterLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24 flex-between"> | |||
| <view :style="{color:'#999999'}">猫砂更换频率</view> | |||
| <view class="level"> | |||
| <view class="input_ mr10"> | |||
| <input type="text" disabled v-model="detail.catLitterChangeFrequencyDays" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>天</view> | |||
| <view class="input_ mr10"> | |||
| <input type="text" disabled v-model="detail.catLitterChangeFrequencyTimes" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>次</view> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 备注信息 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.catLitterRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.includeCatLitter"></view> | |||
| <view class="mt32 ml10" v-if="detail.includeUrinePad"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 尿垫 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 尿垫摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.urinePadLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.urinePadLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24 flex-between"> | |||
| <view :style="{color:'#999999'}">更换尿垫</view> | |||
| <view class="level"> | |||
| <view class="input_ mr10"> | |||
| <input type="text" v-model="detail.urinePadChangeFrequency" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>是</view> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24 flex-between"> | |||
| <view :style="{color:'#999999'}">尿垫更换频率</view> | |||
| <view class="level"> | |||
| <view class="input_ mr10"> | |||
| <input type="text" v-model="detail.urinePadChangeFrequencyDays" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>天</view> | |||
| <view class="input_ mr10"> | |||
| <input type="text" v-model="detail.urinePadChangeFrequencyTimes" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| <view>次</view> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 备注信息 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.urinePadRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <!-- 附加服务内容 --> | |||
| <view v-if="currentStep === 2"> | |||
| <view class="top box-size" :style="{borderRadius:'16rpx'}"> | |||
| <view class="form-title"> | |||
| 您需要的附加服务 | |||
| </view> | |||
| <view v-if="!detail.additionalService || (!detail.playtimeService && !detail.furCleaningService && !detail.groomingService && !detail.deepCleaningService)" class="empty-state-full"> | |||
| <up-icon name="info-circle" size="60rpx" color="#999999"></up-icon> | |||
| <text class="empty-text-full">暂无附加服务</text> | |||
| </view> | |||
| <!-- 陪玩服务 --> | |||
| <view class="mt32 ml10" v-if="detail.playtimeService"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 陪玩 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 陪玩用具摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.playtimeToolsLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.playtimeToolsLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 您希望的互动方式和要求 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.playtimeRequirements" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.playtimeService"></view> | |||
| <!-- 活动区吸毛 --> | |||
| <view class="mt32 ml10" v-if="detail.furCleaningService"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 活动区吸毛 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 吸毛用品摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.furCleaningToolsLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.furCleaningToolsLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 请说明吸毛区域及要求 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.furCleaningRequirements" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.furCleaningService"></view> | |||
| <!-- 毛发梳理 --> | |||
| <view class="mt32 ml10" v-if="detail.groomingService"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 毛发梳理 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 毛发梳理用品摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.groomingToolsLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.groomingToolsLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 请说明毛发梳理要求(如: 天数,次数等) | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.groomingRequirements" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.groomingService"></view> | |||
| <!-- 食具深度清洁 --> | |||
| <view class="mt32 ml10" v-if="detail.deepCleaningService"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 食具深度清洁 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 需深度清洁的用具及消毒剂摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <template v-if="handleImageUrl(detail.deepCleaningToolsLocation).length > 0"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.deepCleaningToolsLocation)" :key="index"></u-image> | |||
| </template> | |||
| <view v-else class="empty-state"> | |||
| <up-icon name="info-circle" size="40rpx" color="#999999"></up-icon> | |||
| <text class="empty-text">暂无图片</text> | |||
| </view> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 请说明食具/饮水机深度清洁要求(如清洁方式、消毒剂使用方式、频率等) | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.deepCleaningRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.deepCleaningService"></view> | |||
| <!-- 喂药上药 --> | |||
| <view class="mt32 ml10" v-if="detail.administerMedication"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 喂药上药 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 药品摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.administerMedicationLocation)" :key="index"></u-image> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 请说明药品使用方式 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" disabled v-model="detail.administerMedicationRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <view class="line" :style="{borderRadius:'1rpx'}" v-if="detail.administerMedication"></view> | |||
| <!-- 遛狗服务 --> | |||
| <view class="mt32 ml10" v-if="detail.walkDog"> | |||
| <view class="color-A55 size-30 fw400"> | |||
| 遛狗服务 | |||
| </view> | |||
| <view class="size-30 mt32 fw400"> | |||
| 遛狗用品摆放位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.walkDogToolsLocation)" :key="index"></u-image> | |||
| </view> | |||
| <!-- 雨天遛狗 --> | |||
| <view v-if="detail.walkDogRainyDay"> | |||
| <view class="size-30 mt32 fw400"> | |||
| 狗狗雨具位置 | |||
| </view> | |||
| <view class="img mt20"> | |||
| <u-image class="img" :src="item" mode="aspectFill" width="173rpx" height="230rpx" @click="previewImage(item)" v-for="(item, index) in handleImageUrl(detail.dogRainGearLocation)" :key="index"></u-image> | |||
| </view> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 下雨天遛狗要求 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.walkDogRainRemark" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <!-- 遛狗时长 --> | |||
| <view v-if="detail.isWalkDogDuration"> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 遛狗时长 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.walkDogDuration" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <!-- 狗狗行为 --> | |||
| <view v-if="detail.isDogBehavior"> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 狗狗行为 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.dogBehavior" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <!-- 偏好区域 --> | |||
| <view v-if="detail.isFavoriteRegion"> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 偏好区域 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.favoriteRegion" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| <!-- 偏好路线 --> | |||
| <view v-if="detail.isFavoriteRoute"> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 偏好路线 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.favoriteRoute" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <!-- 附加服务备注 --> | |||
| <view class="mt32 ml10"> | |||
| <view class="size-30 mt24" :style="{color:'#999999'}"> | |||
| 附加服务备注 | |||
| </view> | |||
| <view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}"> | |||
| <input type="text" v-model="detail.additionalServicesRemarks" :style="{height:'50rpx',fontSize:'30rpx'}"> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </view> | |||
| <!-- 底部按钮 --> | |||
| <view class="buttom_ mt60 box-size level" v-if="currentStep > 0"> | |||
| <view class="buttom_item level size-30" :style="{borderRadius:'41rpx',color:'#fff'}" @click="prevStep"> | |||
| 上一页 | |||
| </view> | |||
| <view class="buttom_item level size-30" :style="{borderRadius:'41rpx',color:'#fff'}" @click="nextStep"> | |||
| {{ currentStep === 2 ? '完成' : '下一页' }} | |||
| </view> | |||
| </view> | |||
| <view class="buttom mt60 box-size" v-else> | |||
| <view class="buttom-item level size-30" :style="{borderRadius:'41rpx',color:'#fff'}" @click="nextStep"> | |||
| 下一页 | |||
| </view> | |||
| </view> | |||
| </view> | |||
| </template> | |||
| <script> | |||
| import { | |||
| getpetList | |||
| } from "@/api/pet/index.js" | |||
| import { | |||
| getDictList | |||
| } from "@/api/system/user.js" | |||
| import { | |||
| getPetCareByPetId | |||
| } from "@/api/order/order.js"; | |||
| export default { | |||
| data() { | |||
| return { | |||
| detail: {}, | |||
| show: false, | |||
| petTypes: [], | |||
| petType: '', | |||
| orderId: 0, | |||
| currentStep: 0, // 当前步骤,0:喂养要求,1:清洁要求,2:附加服务 | |||
| } | |||
| }, | |||
| onLoad(options) { | |||
| this.orderId = options.petId | |||
| this.getPetCareByPetId() | |||
| // 如果有指定步骤,则切换到对应步骤 | |||
| if (options.step) { | |||
| this.currentStep = parseInt(options.step) | |||
| } | |||
| }, | |||
| methods: { | |||
| getPetCareByPetId() { | |||
| getPetCareByPetId(this.orderId).then(res => { | |||
| this.detail = res.data || {} | |||
| }) | |||
| }, | |||
| handleImageUrl(url) { | |||
| if (!url) return [] | |||
| return url.split(',') | |||
| }, | |||
| previewImage(url) { | |||
| uni.previewImage({ | |||
| urls: [url] | |||
| }) | |||
| }, | |||
| // 切换到上一步 | |||
| prevStep() { | |||
| if (this.currentStep > 0) { | |||
| this.currentStep--; | |||
| } | |||
| }, | |||
| // 切换到下一步 | |||
| nextStep() { | |||
| if (this.currentStep < 2) { | |||
| this.currentStep++; | |||
| } else { | |||
| // 如果是最后一步,可以提交表单或返回上一页 | |||
| uni.navigateBack(); | |||
| } | |||
| }, | |||
| } | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| @import"detail.scss"; | |||
| @import"steps-custom.scss"; | |||
| .empty-state { | |||
| display: flex; | |||
| flex-direction: column; | |||
| align-items: center; | |||
| justify-content: center; | |||
| width: 173rpx; | |||
| height: 230rpx; | |||
| background-color: #f5f5f5; | |||
| border-radius: 8rpx; | |||
| } | |||
| .empty-text { | |||
| margin-top: 10rpx; | |||
| font-size: 24rpx; | |||
| color: #999999; | |||
| } | |||
| .empty-state-full { | |||
| display: flex; | |||
| flex-direction: column; | |||
| align-items: center; | |||
| justify-content: center; | |||
| width: 100%; | |||
| height: 200rpx; | |||
| background-color: #f9f9f9; | |||
| border-radius: 8rpx; | |||
| margin-top: 20rpx; | |||
| } | |||
| .empty-text-full { | |||
| margin-top: 20rpx; | |||
| font-size: 28rpx; | |||
| color: #999999; | |||
| } | |||
| /* 自定义步骤条样式 */ | |||
| :deep(.up-steps-custom) { | |||
| .u-steps-item__wrapper { | |||
| width: 40rpx !important; | |||
| height: 40rpx !important; | |||
| &__circle { | |||
| width: 40rpx !important; | |||
| height: 40rpx !important; | |||
| background: #E5E5E5; | |||
| &__text { | |||
| font-size: 24rpx; | |||
| } | |||
| } | |||
| } | |||
| .u-steps-item__line { | |||
| top: 20rpx !important; | |||
| height: 4rpx !important; | |||
| background: #E5E5E5 !important; | |||
| } | |||
| /* 激活状态样式 */ | |||
| .u-steps-item--active { | |||
| .u-steps-item__wrapper__circle { | |||
| background: linear-gradient(90deg, #FFA042, #FFD591) !important; | |||
| } | |||
| } | |||
| /* 已完成步骤前的线条样式 */ | |||
| .u-steps-item--process { | |||
| .u-steps-item__line { | |||
| background: linear-gradient(90deg, #FFA042, #FFD591) !important; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||