主管理员 1 month ago
parent
commit
a63aa4d6aa
11 changed files with 554 additions and 110 deletions
  1. +48
    -1
      api/order/order.js
  2. +28
    -1
      otherPages/myOrdersManage/clock/index.vue
  3. +306
    -0
      otherPages/myOrdersManage/service/PetCare.java
  4. +5
    -4
      otherPages/myOrdersManage/service/detail.scss
  5. +60
    -29
      otherPages/myOrdersManage/service/detail.vue
  6. +11
    -11
      otherPages/myOrdersManage/service/index.vue
  7. +6
    -9
      otherPages/orderTakingManage/detail/index.vue
  8. +53
    -23
      otherPages/orderTakingManage/pet/detail.vue
  9. +21
    -19
      otherPages/orderTakingManage/pet/index.vue
  10. +15
    -12
      pages/myOrdersManage/components/systemOrder.vue
  11. +1
    -1
      pages/myOrdersManage/index.vue

+ 48
- 1
api/order/order.js View File

@ -12,6 +12,53 @@ export function getAppOrderList() {
})
}
// 获取订单列表
export function orderItemLogGetByOrderId(orderId) {
return request({
headers: {
"isToken": true
},
url: "/applet/orderItemLog/getByOrderId/" + orderId,
method: 'get'
})
}
// 获取订单中的宠物列表
export function getOrderPetById(orderId) {
return request({
headers: {
"isToken": true
},
url: "/applet/order/getOrderPetById/" + orderId,
method: 'get'
})
}
// 获取订单的宠物详情
export function getPetById(petId) {
return request({
headers: {
"isToken": true
},
url: "/applet/order/getPetById/" + petId,
method: 'get'
})
}
// 获取宠物id获取服务档案详情
export function getPetCareByPetId(petId) {
return request({
headers: {
"isToken": true
},
url: "/applet/order/getPetCareByPetId/" + petId,
method: 'get'
})
}
export default {
getAppOrderList
getAppOrderList,
orderItemLogGetByOrderId,
getOrderPetById,
getPetById,
getPetCareByPetId,
}

+ 28
- 1
otherPages/myOrdersManage/clock/index.vue View File

@ -196,12 +196,24 @@
import {
onMounted,
reactive,
ref
ref,
} from "vue";
import {
onLoad
} from '@dcloudio/uni-app'
import {
ossUpload
} from '@/utils/oss-upload/oss/index.js'
import { orderItemLogGetByOrderId } from '@/api/order/order.js'
onLoad((options) => {
orderId.value = options.id || null;
GetByOrderId()
});
const orderId = ref(0)
const fileList = reactive({
// glove: [],//
@ -278,6 +290,20 @@
}
}
function GetByOrderId(){
orderItemLogGetByOrderId(orderId.value)
.then(res => {
if(res.code == 200){
}
})
}
function saveDraft() {
}
function msg(content) {
@ -286,6 +312,7 @@
icon: 'none'
})
}
</script>
<style scoped lang="scss">


+ 306
- 0
otherPages/myOrdersManage/service/PetCare.java View File

@ -0,0 +1,306 @@
package com.cyl.manager.ums.domain;
import java.math.BigDecimal;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
/**
* 宠物服务档案对象 ums_pet_care
*
* @author daixiande
*/
@Data
public class PetCare {
private static final long serialVersionUID = 1L;
/** 主键,自增长的ID */
private Integer id;
/** 所属宠物ID */
@Excel(name = "所属宠物ID")
private Integer petId;
/** 是否包含干粮 */
@Excel(name = "是否包含干粮")
private Boolean includeDryFood;
/** 干粮摆放位置-图片 */
@Excel(name = "干粮摆放位置-图片")
private String dryFoodLocation;
/** 干粮喂养重量 */
@Excel(name = "干粮喂养重量")
private String dryFoodFeedWeight;
/** 干粮喂养批次_天 */
@Excel(name = "干粮喂养批次_天")
private Integer dryFoodFeedFrequencyDays;
/** 干粮喂养批次_次 */
@Excel(name = "干粮喂养批次_次")
private Integer dryFoodFeedFrequencyTimes;
/** 干粮备注 */
@Excel(name = "干粮备注")
private String dryFoodRemarks;
/** 是否包含湿粮 */
@Excel(name = "是否包含湿粮")
private Boolean includeWetFood;
/** 湿粮摆放位置-图片 */
@Excel(name = "湿粮摆放位置-图片")
private String wetFoodLocation;
/** 湿粮喂养重量 */
@Excel(name = "湿粮喂养重量")
private BigDecimal wetFoodFeedWeight;
/** 湿粮喂养批次_天 */
@Excel(name = "湿粮喂养批次_天")
private Integer wetFoodFeedFrequencyDays;
/** 湿粮喂养批次_次 */
@Excel(name = "湿粮喂养批次_次")
private Integer wetFoodFeedFrequencyTimes;
/** 湿粮备注 */
@Excel(name = "湿粮备注")
private String wetFoodRemarks;
/** 是否包含自制食品 */
@Excel(name = "是否包含自制食品")
private Boolean includeHomemadeFood;
/** 自制食品摆放位置-图片 */
@Excel(name = "自制食品摆放位置-图片")
private String homemadeFoodLocation;
/** 自制饭制作和喂食说明(备注) */
@Excel(name = "自制饭制作和喂食说明", readConverterExp = "备=注")
private String homemadeFoodInstructions;
/** 是否包含生骨肉 */
@Excel(name = "是否包含生骨肉")
private Boolean includeRawMeat;
/** 生骨肉摆放位置-图片 */
@Excel(name = "生骨肉摆放位置-图片")
private String rawMeatLocation;
/** 生骨肉喂食说明(备注) */
@Excel(name = "生骨肉喂食说明", readConverterExp = "备=注")
private String rawMeatFeedingInstructions;
/** 是否包含保健品 */
@Excel(name = "是否包含保健品")
private Boolean includeHealthSupplements;
/** 保健品摆放位置-图片 */
@Excel(name = "保健品摆放位置-图片")
private String healthSupplementsLocation;
/** 保健品喂食说明(备注) */
@Excel(name = "保健品喂食说明", readConverterExp = "备=注")
private String healthSupplementsFeedingInstructions;
/** 是否包含零食 */
@Excel(name = "是否包含零食")
private Boolean includeSnacks;
/** 零食摆放位置-图片 */
@Excel(name = "零食摆放位置-图片")
private String snacksLocation;
/** 零食喂养方式(备注) */
@Excel(name = "零食喂养方式", readConverterExp = "备=注")
private String snacksFeedingMethod;
/** 零食备注 */
@Excel(name = "其它备注")
private String otherRemark;
/** 食盆/自动喂食器摆放位置-图片 */
@Excel(name = "食盆/自动喂食器摆放位置-图片")
private String feedingTrayAutomaticFeederLocation;
/** 食盆/自动喂食器备注 */
@Excel(name = "食盆/自动喂食器备注")
private String feedingTrayAutomaticFeederRemarks;
/** 水碗、饮用水摆放位置-图片 */
@Excel(name = "水碗、饮用水摆放位置-图片")
private String waterBowlLocation;
/** 水碗、饮用水备注 */
@Excel(name = "水碗、饮用水备注")
private String waterBowlRemarks;
/** 是否有清洁要求 */
@Excel(name = "是否有清洁要求")
private Boolean cleaningRequirements;
/** 是否更换猫砂 */
@Excel(name = "厕所、猫砂摆放位置-图片")
private Boolean changeLitterBox;
/** 厕所、猫砂摆放位置-图片 */
@Excel(name = "厕所、猫砂摆放位置-图片")
private String litterBoxLocation;
/** 猫砂更换频次_天 */
@Excel(name = "猫砂更换频次_天")
private Integer litterBoxChangeFrequencyDays;
/** 猫砂更换频次_次 */
@Excel(name = "猫砂更换频次_次")
private Integer litterBoxChangeFrequencyTimes;
/** 厕所、猫砂备注 */
@Excel(name = "厕所、猫砂备注")
private String litterBoxRemarks;
/** 尿垫摆放位置-图片 */
@Excel(name = "尿垫摆放位置-图片")
private String peePadLocation;
/** 是否更换尿垫 */
@Excel(name = "是否更换尿垫")
private Boolean changePeePad;
/** 尿垫砂更换频次_天 */
@Excel(name = "尿垫更换频次_天")
private Integer peePadFrequencyDays;
/** 尿垫更换频次_次 */
@Excel(name = "尿垫更换频次_次")
private Integer peePadFrequencyTimes;
/** 尿垫备注 */
@Excel(name = "尿垫备注")
private String peePadRemarks;
/** 是否选择附加服务 */
@Excel(name = "是否选择附加服务")
private Boolean additionalService;
/** 是否陪玩*/
@Excel(name = "是否陪玩")
private Boolean playtimeService;
/** 陪玩用具摆放位置-图片 */
@Excel(name = "陪玩用具摆放位置-图片")
private String playtimeToolsLocation;
/** 希望的互动方式和要求(备注) */
@Excel(name = "希望的互动方式和要求", readConverterExp = "备=注")
private String playtimeRequirements;
/** 是否选择活动区吸毛 */
@Excel(name = "是否选择活动区吸毛")
private Boolean furCleaningService;
/** 吸毛用品摆放位置-图片 */
@Excel(name = "吸毛用品摆放位置-图片")
private String furCleaningToolsLocation;
/** 请说明吸毛区和要求(备注) */
@Excel(name = "请说明吸毛区和要求", readConverterExp = "备=注")
private String furCleaningRequirements;
/** 是否选择毛发梳理 */
@Excel(name = "是否选择毛发梳理")
private Boolean groomingService;
/** 毛发梳理用品摆放位置-图片 */
@Excel(name = "毛发梳理用品摆放位置-图片")
private String groomingToolsLocation;
/** 请说明毛发梳理要求(备注) */
@Excel(name = "请说明毛发梳理要求", readConverterExp = "备=注")
private String groomingRequirements;
/** 是否选择食具深度清洁 */
@Excel(name = "是否选择食具深度清洁")
private Boolean deepCleaningService;
/** 食具深度清洁用品摆放位置-图片 */
@Excel(name = "食具深度清洁用品摆放位置-图片")
private String deepCleaningToolsLocation;
/** 食具深度清洁备注 */
@Excel(name = "食具深度清洁备注")
private String deepCleaningRemarks;
/** 是否选择喂药上药 */
@Excel(name = "是否选择喂药上药")
private Boolean administerMedication;
/** 药品摆放位置-图片 */
@Excel(name = "药品摆放位置-图片")
private String administerMedicationLocation;
/** 喂药上药备注 */
@Excel(name = "喂药上药备注")
private String administerMedicationRemarks;
/** 附加服务用品摆放位置-图片 */
@Excel(name = "附加服务用品摆放位置-图片")
private String additionalServicesPlacement;
/** 服务用品摆放备注 */
@Excel(name = "服务用品摆放备注")
private String additionalServicesPlacementRemark;
/** 服务用品摆放备注 */
@Excel(name = "附加服务备注")
private String additionalServicesRemarks;
@Excel(name = "遛狗时长")
private Boolean isWalkDogDuration;
@Excel(name = "狗狗行为")
private Boolean isDogBehavior;
@Excel(name = "偏好区域")
private Boolean isFavoriteRegion;
@Excel(name = "偏好路线")
private Boolean isFavoriteRoute;
@Excel(name = "狗狗雨具位置")
private String dogRainGearLocation;
@Excel(name = "下雨天遛狗要求")
private String walkDogRainRemark;
/** 是否遛狗服务 */
@Excel(name = "是否遛狗服务")
private Boolean walkDog;
/** 遛狗用品摆放位置 */
@Excel(name = "遛狗用品摆放位置")
private String walkDogToolsLocation;
/** 是否雨天遛狗 */
@Excel(name = "是否雨天遛狗")
private Boolean walkDogRainyDay;
/** 遛狗时长 */
@Excel(name = "遛狗时长")
private String walkDogDuration;
/** 狗狗行为 */
@Excel(name = "狗狗行为")
private String dogBehavior;
/** 偏好区域 */
@Excel(name = "偏好区域")
private String favoriteRegion;
/** 偏好路线 */
@Excel(name = "偏好路线")
private String favoriteRoute;
}

+ 5
- 4
otherPages/myOrdersManage/service/detail.scss View File

@ -11,10 +11,11 @@
padding: 0 23rpx 53rpx 23rpx;
}
.img image{
width: 173rpx;
height: 230rpx;
background-color: red;
.img {
image, .u-image, .img{
width: 173rpx;
height: 230rpx;
}
}
.notes{


+ 60
- 29
otherPages/myOrdersManage/service/detail.vue View File

@ -10,7 +10,7 @@
<view class="form-title">
本次喂养过程中您需要喂养的食品包括
</view>
<view class=" mt32 ml10">
<view class=" mt32 ml10" v-if="detail.includeDryFood">
<view class="color-A55 size-30 fw400">
干粮(主粮冻干等)
</view>
@ -18,13 +18,13 @@
干粮摆放位置
</view>
<view class="img mt20">
<image src="" mode=""></image>
<u-image class="img" :src="detail.dryFoodLocation" mode="aspectFill"></u-image>
</view>
<view class="size-30 mt24 flex-between">
<view :style="{color:'#999999'}">干粮喂养重量</view>
<view class="level">
<view class="input_ mr10">
<input type="text" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.dryFoodFeedWeight" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
</view>
<view>/(单位:)</view>
</view>
@ -33,11 +33,11 @@
<view :style="{color:'#999999'}">干粮喂养频率</view>
<view class="level">
<view class="input_ mr10">
<input type="text" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.dryFoodFeedFrequencyDays" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
</view>
<view></view>
<view class="input_ mr10">
<input type="text" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.dryFoodFeedFrequencyTimes" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
</view>
<view></view>
</view>
@ -46,11 +46,11 @@
备注信息
</view>
<view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}">
<input type="text" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.dryFoodRemarks" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
<view class="line" :style="{borderRadius:'1rpx'}"></view>
<view class=" mt32 ml10">
<view class=" mt32 ml10" v-if="detail.includeWetFood">
<view class="color-A55 size-30 fw400">
湿粮(罐头等)
</view>
@ -58,13 +58,13 @@
湿粮摆放位置
</view>
<view class="img mt20">
<image src="" mode=""></image>
<u-image class="img" :src="detail.wetFoodLocation" mode="aspectFill"></u-image>
</view>
<view class="size-30 mt24 flex-between">
<view :style="{color:'#999999'}">湿粮喂养重量</view>
<view class="level">
<view class="input_ mr10">
<input type="text" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.wetFoodFeedWeight" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
</view>
<view>/(单位:)</view>
</view>
@ -73,11 +73,11 @@
<view :style="{color:'#999999'}">湿粮喂养频率</view>
<view class="level">
<view class="input_ mr10">
<input type="text" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.wetFoodFeedFrequencyDays" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
</view>
<view></view>
<view class="input_ mr10">
<input type="text" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.wetFoodFeedFrequencyTimes" :style="{width:'80rpx',height:'50rpx',fontSize:'30rpx'}">
</view>
<view></view>
</view>
@ -86,11 +86,11 @@
备注信息
</view>
<view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}">
<input type="text" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.wetFoodRemarks" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
<view class="line" :style="{borderRadius:'1rpx'}"></view>
<view class=" mt32 ml10">
<view class=" mt32 ml10" v-if="detail.includeHomemadeFood">
<view class="color-A55 size-30 fw400">
自制食品
</view>
@ -98,17 +98,17 @@
自制食品摆放位置
</view>
<view class="img mt20">
<image src="" mode=""></image>
<u-image class="img" :src="detail.homemadeFoodLocation" mode="aspectFill"></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" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.homemadeFoodInstructions" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
<view class="line" :style="{borderRadius:'1rpx'}"></view>
<view class=" mt32 ml10">
<view class=" mt32 ml10" v-if="detail.includeRawMeat">
<view class="color-A55 size-30 fw400">
生骨肉
</view>
@ -116,17 +116,17 @@
生骨肉摆放位置
</view>
<view class="img mt20">
<image src="" mode=""></image>
<u-image class="img" :src="detail.rawMeatLocation" mode="aspectFill"></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" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.rawMeatFeedingInstructions" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
<view class="line" :style="{borderRadius:'1rpx'}"></view>
<view class=" mt32 ml10">
<view class=" mt32 ml10" v-ifan class="s">="detail.includeHealthSupplements">
<view class="color-A55 size-30 fw400">
保健品
</view>
@ -134,17 +134,17 @@
保健品摆放位置
</view>
<view class="img mt20">
<image src="" mode=""></image>
<u-image class="img" :src="detail.healthSupplementsLocation" mode="aspectFill"></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" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.healthSupplementsFeedingInstructions" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
<view class="line" :style="{borderRadius:'1rpx'}"></view>
<view class=" mt32 ml10">
<view class=" mt32 ml10" v-if="detail.includeSnacks">
<view class="color-A55 size-30 fw400">
零食
</view>
@ -152,13 +152,13 @@
零食摆放位置
</view>
<view class="img mt20">
<image src="" mode=""></image>
<u-image class="img" :src="detail.snacksLocation" mode="aspectFill"></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" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.snacksFeedingMethod" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
<view class="line" :style="{borderRadius:'1rpx'}"></view>
@ -172,13 +172,13 @@
喂食器具摆放位置
</view>
<view class="mt20">
<image src="" mode="" :style="{width:'307rpx',height:'230rpx',backgroundColor:'red'}"></image>
<u-image class="img" :src="detail.feedingTrayAutomaticFeederLocation" mode="aspectFill"></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" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.feedingTrayAutomaticFeederRemarks" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
</view>
@ -191,13 +191,13 @@
饮用水摆放位置
</view>
<view class="mt20">
<image src="" mode="" :style="{width:'307rpx',height:'230rpx',backgroundColor:'red'}"></image>
<u-image class="img" :src="detail.waterBowlLocation" mode="aspectFill"></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" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.waterBowlRemarks" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
</view>
@ -210,7 +210,7 @@
备注信息
</view>
<view class="notes mt16 box-size ml--15" :style="{borderRadius:'16rpx'}">
<input type="text" :style="{height:'50rpx',fontSize:'30rpx'}">
<input type="text" v-model="detail.otherRemark" :style="{height:'50rpx',fontSize:'30rpx'}">
</view>
</view>
</view>
@ -224,6 +224,37 @@
</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,
}
},
onLoad(options) {
this.orderId = options.petId
this.getPetCareByPetId()
},
methods: {
getPetCareByPetId() {
getPetCareByPetId(this.orderId).then(res => {
this.detail = res.data
})
},
}
}
</script>
<style scoped lang="scss">


+ 11
- 11
otherPages/myOrdersManage/service/index.vue View File

@ -40,27 +40,27 @@
<script>
import { getpetList } from "@/api/pet/index.js"
import { getDictList } from "@/api/system/user.js"
import {
getOrderPetById
} from "@/api/order/order.js";
export default{
data(){
return{
petList:[],
show:false,
petTypes:[],
petType:''
petType:'',
orderId : 0,
}
},
onShow() {
this.getPetList();
onLoad(options) {
this.orderId = options.id
this.getPetList()
},
methods:{
getPetList(){
getpetList({owner:this.openIdStr}).then(res=>{
if(res&&res.content){
this.petList=res.content
if(this.petList.length==0){
this.getPetTypeList()
}
}
getOrderPetById(this.orderId).then(res=>{
this.petList=res.data
})
},
getPetTypeList(){
@ -114,7 +114,7 @@
},
goServiceInfo(item){
uni.navigateTo({
url: `/pages/personalCenter/serviceInfo?petType=${item.petType}&petId=${item.id}`
url: `/otherPages/myOrdersManage/service/detail?petType=${item.petType}&petId=${item.id}`
});
}
}


+ 6
- 9
otherPages/orderTakingManage/detail/index.vue View File

@ -44,7 +44,7 @@
服务日期
</view>
<view v-if="orderDetail.order">
{{ getTextList() }}
{{ getTextList().join(',') }}
</view>
</view>
<view class="line1">
@ -166,7 +166,7 @@
服务日期
</view>
<view class="desc">
两天:12-09,01-09
{{ getTextList().length }}:{{ getTextList().join(',') }}
</view>
</view>
<view class="ok">
@ -182,7 +182,7 @@
服务地址
</view>
<view class="desc">
xxx省xx市
{{ orderDetail.order.address }}
</view>
</view>
<view class="ok">
@ -198,11 +198,8 @@
服务宠物
</view>
<view class="desc">
<view >
中华田园犬
</view>
<view >
中华田园犬2
<view v-for="pet in orderDetail.order.h5OrderVO.petVOList" :key="pet.id">
{{ pet.breed }}
</view>
</view>
</view>
@ -398,7 +395,7 @@
function getTextList(){
return orderDetail.value.order?.h5OrderVO
.orderServiceList.map(item =>
dayjs(item.serviceDate).format('MM-DD')).join(',')
dayjs(item.serviceDate).format('MM-DD'))
}
</script>


+ 53
- 23
otherPages/orderTakingManage/pet/detail.vue View File

@ -6,7 +6,7 @@
宠物头像
</view>
<view class="img">
<image :src="petInfo.headImage" mode="" style="width: 157rpx;height: 157rpx;"
<image :src="petInfo.photo" mode="" style="width: 157rpx;height: 157rpx;"
:style="{borderRadius:'100rpx'}"></image>
<!-- <view >
点击更换头像
@ -26,7 +26,7 @@
昵称
<!-- <input type="text" placeholder="请输入宠物名字" /> -->
<view class="item_">
{{ petInfo.nickName }}
{{ petInfo.name }}
</view>
</view>
<view class="line1">
@ -38,7 +38,8 @@
<up-button @click="show = true">请选择</up-button>
</view> -->
<view class="item_">
{{ petInfo.sex == 0 ? '男' : '女' }}
<!-- {{ petInfo.sex == 0 ? '男' : '女' }} -->
{{ petInfo.gender }}
</view>
</view>
<view class="line1">
@ -46,7 +47,8 @@
<view class="level name box-size pad_4">
品种
<view class="item_">
{{ petInfo.type }}
<!-- {{ petInfo.type }} -->
{{ petInfo.breed }}
</view>
</view>
<view class="line1">
@ -54,7 +56,7 @@
<view class="level name box-size pad_4">
出生年月
<view class="item_">
{{ petInfo.birthday }}
{{ petInfo.birthDate || '未知' }}
</view>
</view>
<view class="line1">
@ -62,7 +64,8 @@
<view class="level name box-size pad_4">
体重
<view class="item_">
{{ petInfo.weight }}
<!-- {{ petInfo.weight }} -->
{{ petInfo.bodyType || '未知' }}
</view>
</view>
<view class="line1">
@ -70,7 +73,8 @@
<view class="level name box-size pad_4">
性格
<view class="item_">
{{ petInfo.personality }}
<!-- {{ petInfo.personality }} -->
{{ petInfo.personality && petInfo.personality.join ? petInfo.personality.join(',') : petInfo.personality }}
</view>
</view>
</view>
@ -85,7 +89,8 @@
<!-- <input type="text" placeholder="请输入宠物名字" /> -->
<view class="item_">
<!-- 有免疫史 -->
{{ vaccineText }}
<!-- {{ vaccineText }} -->
{{ petInfo.vaccineStatus || '未知' }}
</view>
</view>
<view class="line1">
@ -97,8 +102,9 @@
<up-button @click="show = true">请选择</up-button>
</view> -->
<view class="item_">
{{ dewormText }}
<!-- {{ dewormText }} -->
<!-- 未驱虫 -->
{{ petInfo.dewormingStatus || '未知' }}
</view>
</view>
<view class="line1">
@ -106,8 +112,9 @@
<view class="level name box-size pad_4">
绝育
<view class="item_">
{{ neuteredText }}
<!-- {{ neuteredText }} -->
<!-- 已绝育 -->
{{ petInfo.sterilization || '未知' }}
</view>
</view>
<view class="line1">
@ -117,22 +124,41 @@
</view>
</view>
</view>
<view class="container box-size">
<!-- <view class="container box-size">
<view class="container_item level">
<view class="icon" :style="{borderRadius:'30rpx'}">
<!-- <up-icon name="checkbox-mark" color="#FFFFFF" size="40"></up-icon> -->
<up-icon name="checkbox-mark" color="#FFFFFF" size="40"></up-icon>
</view>
身体健康无异常
</view>
<view class="container_item level">
<view class="icon_" :style="{borderRadius:'30rpx'}">
<!-- <up-icon name="checkbox-mark" color="#FFFFFF" size="40"></up-icon> -->
<up-icon name="checkbox-mark" color="#FFFFFF" size="40"></up-icon>
</view>
近三个月有做过手术
</view>
<view class="bottom box-size" :style="{borderRadius:'8rpx'}">
右腿骨折右眼有轻微白内障
</view>
</view> -->
<view class="container box-size">
<view class="container_item level" v-for="(value, index) in healthData"
:key="index">
<view class="icon" :style="{borderRadius:'30rpx'}" v-if="petInfo.healthStatus.includes(value)">
<up-icon name="checkbox-mark" color="#FFFFFF" size="40"></up-icon>
</view>
<view class="icon_" :style="{borderRadius:'30rpx'}" v-else>
<up-icon name="checkbox-mark" color="#FFFFFF" size="40"></up-icon>
</view>
{{ value }}
</view>
<view class="bottom box-size" :style="{borderRadius:'8rpx'}"
v-if="petInfo.remark">
{{ petInfo.remark }}
</view>
</view>
</view>
</template>
@ -148,18 +174,18 @@
onShow
} from '@dcloudio/uni-app'
import {
getByPetId
} from "@/api/pet/index.js"
getPetById
} from "@/api/order/order.js"
import { getDictList } from "@/api/system/user"
onLoad((options) => {
petId.value = options.id || null;
});
onShow(() => {
getPetDetail()
})
});
// const
const healthData = ref([])
const vaccineText = computed(() => {
const vaccineMap = {
@ -198,18 +224,22 @@
const getPetDetail = async () => {
if (!petId.value) return;
let response = await getByPetId({
id: petId.value
})
let response = await getPetById(petId.value)
if (response.code == 200 && response.data) {
petInfo.value = response.data;
}
}
function getDictListInfo(){
getDictList('')
getDictList('pet_health_status').then(res=>{
if (res.code == 200) {
healthData.value = res.data.map(e=>e.dictLabel)
}
})
}
getDictListInfo()
</script>
<style lang="scss">


+ 21
- 19
otherPages/orderTakingManage/pet/index.vue View File

@ -3,30 +3,30 @@
<view v-if="petLists.length > 0" class="personal-pet-list">
<view v-for="(item, index) in petLists" :key="index">
<view
:class="['personal-pet-list-item', item.sex === 0 ? '.personal-pet-list-item_backgroud_m' : '.personal-pet-list-item_backgroud_f']">
:class="['personal-pet-list-item', item.gender === '男生' ? '.personal-pet-list-item_backgroud_m' : '.personal-pet-list-item_backgroud_f']">
<view class="personal-pet-info">
<view>
<u-avatar :src="item.headImage? item.headImage : defaultPhoto" size="60" shape="circle"></u-avatar>
<u-avatar :src="item.photo? item.photo : defaultPhoto" size="60" shape="circle"></u-avatar>
</view>
<view class="personal-pet-info-1">
<view class="personal-pet-info-2">
<view class="personal-pet-name">
{{ item.nickName }}
{{ item.name }}
</view>
<view class="personal-pet-sex">
<img :src="item.sex === 0 ? '../../../static/images/sex/boy.svg' : '../../../static/images/sex/girl.svg'"
<img :src="item.gender === '男生' ? '../../../static/images/sex/boy.svg' : '../../../static/images/sex/girl.svg'"
alt="sex" style="width: 16px;height: 16px;" />
</view>
</view>
<view class="personal-pet-info-3" style="width: 100%;">
<view style="max-width: 25%;">
{{ item.type || '未知' }}
{{ item.breed || '未知' }}
</view>
<view class="personal-pet-info-age" style="max-width: 90px;">
{{ item.type || '未知' }}
</view>
<view style="max-width: 25%;">
{{ item.weight + 'kg' }}
<view>
{{ item.bodyType }}
</view>
</view>
</view>
@ -55,23 +55,33 @@
ref,
onMounted
} from 'vue';
// import {
// getpetList
// } from "@/api/pet/index.js";
import {
getpetList
} from "@/api/pet/index.js";
getOrderPetById
} from "@/api/order/order.js";
import {
onShow,
onPullDownRefresh
onPullDownRefresh,
onLoad,
} from "@dcloudio/uni-app"
onLoad((options) => {
orderId.value = options.id || null;
getPetListData()
});
//
const defaultPhoto = ref('https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/catdog.png');
const petLists = ref([]);
const orderId = ref(0)
//
const getPetListData = async () => {
petLists.value = [];
try {
const res = await getpetList();
const res = await getOrderPetById(orderId.value);
if (res && res.data) {
petLists.value = res.data;
}
@ -80,14 +90,6 @@
}
};
//
onMounted(() => {
getPetListData();
});
onShow(() => {
getPetListData();
});
onPullDownRefresh(() => {
getPetListData();


+ 15
- 12
pages/myOrdersManage/components/systemOrder.vue View File

@ -23,13 +23,13 @@
<view class="mb28" v-if="item.type == 0">订单为系统派发请确认订单信息后再抢单</view>
<view class="flex flex-between">
<up-button type="primary" v-if="true" :text="btnTexts[current]" @click="toClock(item.id)" shape="circle"
<up-button type="primary" :text="btnTexts[item.orderStatus]" @click="toClock(item)" shape="circle"
class="mr20" color="#FFAA48"></up-button>
<up-button type="primary" text="宠物档案" @click="toPet" shape="circle" class="mr20"
<up-button type="primary" text="宠物档案" @click="toPet(item)" shape="circle" class="mr20"
color="#FFAA48"></up-button>
<up-button type="primary" text="服务档案" @click="toService" shape="circle"
<up-button type="primary" text="服务档案" @click="toService(item)" shape="circle"
color="#FFAA48"></up-button>
</view>
</view>
@ -58,27 +58,30 @@ import { onMounted } from 'vue';
required: true
}
});
const btnTexts = ['订单详情', '打卡', '打开记录']
const btnTexts = ['打卡', '打开记录', '订单详情']
const orderStatus = ['待接单','进行中','已完成']
function toClock(id) {
const paths = [`/otherPages/orderTakingManage/detail/index?id=${id}`,'/otherPages/myOrdersManage/clock/index','/otherPages/myOrdersManage/clock/detail']
function toClock(item) {
const paths = [
`/otherPages/myOrdersManage/clock/index?id=${item.id}`,
`/otherPages/myOrdersManage/clock/detail?id=${item.id}`,
`/otherPages/orderTakingManage/detail/index?id=${item.id}`,
]
uni.navigateTo({
url: paths[1],
// url: paths[props.current]
url: paths[item.orderStatus]
})
}
function toPet() {
function toPet(item) {
uni.navigateTo({
url: "/otherPages/orderTakingManage/pet/index"
url: "/otherPages/orderTakingManage/pet/index?id=" + item.orderId
})
}
function toService() {
function toService(item) {
uni.navigateTo({
url: "/otherPages/myOrdersManage/service/index"
url: "/otherPages/myOrdersManage/service/index?id=" + item.orderId
})
}
</script>


+ 1
- 1
pages/myOrdersManage/index.vue View File

@ -116,7 +116,7 @@ import { getOrderServiceText, getProductNameText } from '@/utils/serviceTime.js'
function getList() {
myList({
type: current.value,
orderStatus: current.value,
userId: userInfo.value.userId
})
.then(res => {


Loading…
Cancel
Save