diff --git a/pages/home/components/orderCard2.vue b/pages/home/components/orderCard2.vue index 2a9eb79..011c3cc 100644 --- a/pages/home/components/orderCard2.vue +++ b/pages/home/components/orderCard2.vue @@ -39,6 +39,7 @@ {{`团购价: `}}¥{{ dataItem.order_money }} + {{ dataItem.line_money }} @@ -258,6 +259,15 @@ line-height: 34rpx; text-align: left; font-style: normal; + + .service-price-line { + font-weight: 400; + font-size: 24rpx; + color: #999999; + line-height: 34rpx; + margin-left: 10rpx; + text-decoration: line-through; + } } .service-type { diff --git a/pages/shop/add-service.vue b/pages/shop/add-service.vue index f4dd126..d0924ac 100644 --- a/pages/shop/add-service.vue +++ b/pages/shop/add-service.vue @@ -1,123 +1,111 @@ + .popup-btn-know { + background-color: #e8101e; + color: #ffffff; + } + + .popup-btn-notshow { + background-color: #ffffff; + color: #e8101e; + border: 1rpx #e8101e solid; + } + \ No newline at end of file diff --git a/pages/shop/components/orderCard.vue b/pages/shop/components/orderCard.vue index e96c5d2..d5e5695 100644 --- a/pages/shop/components/orderCard.vue +++ b/pages/shop/components/orderCard.vue @@ -35,6 +35,7 @@ {{`团购价: `}}¥{{ dataItem.order_money }} + {{ dataItem.line_money }} @@ -285,6 +286,14 @@ line-height: 34rpx; text-align: left; font-style: normal; + .service-price-line { + font-weight: 400; + font-size: 24rpx; + color: #999999; + line-height: 34rpx; + margin-left: 10rpx; + text-decoration: line-through; + } } .service-type { diff --git a/pages/shop/components/orderCard2.vue b/pages/shop/components/orderCard2.vue index 2a9eb79..57602ea 100644 --- a/pages/shop/components/orderCard2.vue +++ b/pages/shop/components/orderCard2.vue @@ -39,6 +39,7 @@ {{`团购价: `}}¥{{ dataItem.order_money }} + {{ dataItem.line_money }} @@ -258,6 +259,14 @@ line-height: 34rpx; text-align: left; font-style: normal; + .service-price-line { + font-weight: 400; + font-size: 24rpx; + color: #999999; + line-height: 34rpx; + margin-left: 10rpx; + text-decoration: line-through; + } } .service-type { diff --git a/pages/shop/photoAlbum/addPhoto.vue b/pages/shop/photoAlbum/addPhoto.vue index ada8177..a5df658 100644 --- a/pages/shop/photoAlbum/addPhoto.vue +++ b/pages/shop/photoAlbum/addPhoto.vue @@ -105,7 +105,9 @@ 便于您使用该功能上传您的照片/图片/视频以及用于更换头像、发布商品等场景中所需内容。 - + + @@ -120,6 +122,7 @@ }, data() { return { + videoContext:null, videoPlay: false, videoUrl: "", disabled: false, @@ -201,10 +204,13 @@ }, methods: { screenChange(e) { + let fullScreen = e.detail.fullScreen; // 值true为进入全屏,false为退出全屏 console.log(e, "全屏"); if (!fullScreen) { //退出全屏 + this.videoContext.pause() + plus.screen.lockOrientation('portrait-primary'); this.videoPlay = false; // 隐藏播放盒子 } }, @@ -220,8 +226,8 @@ direction: 90 }); this.videoContext.play(); - - + + }, async submitPhoto() { // 1. 防连点核心逻辑:如果正在提交中,直接return阻止后续执行 @@ -366,7 +372,8 @@ if (this.formData.type == 1) { res = await uploadImage.handleUpload(this.userInfo.id, 3); } else { - res = await uploadImage.handleUpload(this.userInfo.id, 3, ['album', 'camera'], 'video'); + res = await uploadImage.handleUpload(this.userInfo.id, 3, ['album', 'camera'], + 'video'); } console.log('上传单张图片', res) this.formData.url = res; @@ -420,7 +427,8 @@ // 1. 检查权限 // const { granted } = await permissionUtils.checkPermission('photo_library', '需要相册权限用于上传照片'); this.nowQer = 'xc'; - const xc = await permissionUtils.checkPermission('photo_library', '需要相册权限用于上传照片'); + const xc = await permissionUtils.checkPermission('photo_library', + '需要相册权限用于上传照片'); this.nowQer = 'xj'; const xj = await permissionUtils.checkPermission('camera', '需要相机权限用于拍摄照片'); this.isShowPer = false; @@ -439,8 +447,10 @@ if (!confirm) return; // 3. 请求权限 - const result1 = await permissionUtils.requestPermission('photo_library', '我们需要访问您的相册以上传图片/视频'); - const result2 = await permissionUtils.requestPermission('camera', '我们需要访问您的相机以上传图片/视频'); + const result1 = await permissionUtils.requestPermission('photo_library', + '我们需要访问您的相册以上传图片/视频'); + const result2 = await permissionUtils.requestPermission('camera', + '我们需要访问您的相机以上传图片/视频'); if (result1 && result2) { this.openCamera(); } else { diff --git a/pages/shop/photoAlbum/photoManage.vue b/pages/shop/photoAlbum/photoManage.vue index 0ab3754..a4c4be1 100644 --- a/pages/shop/photoAlbum/photoManage.vue +++ b/pages/shop/photoAlbum/photoManage.vue @@ -35,6 +35,10 @@ 审核中… + + + 已驳回 + @@ -57,11 +61,11 @@ - + 审核中… - + 已驳回 @@ -115,7 +119,7 @@ await this.getList() }, async onLoad(options) { - if(options.type){ + if (options.type) { this.type = options.type } }, @@ -151,7 +155,25 @@ // }); }, goAdd(id, item) { - console.log(11111, id) + if (this.type == 1) { + if ( this.imgVideoList[id] && this.imgVideoList[id].length >= 20) { + uni.showToast({ + title: '最多上传20张图片', + icon: 'none', + duration: 2000 + }); + return + } + } else if (this.type == 2) { + if ( this.imgVideoList[id] && this.imgVideoList[id].length >= 10) { + uni.showToast({ + title: '最多上传10张视频', + icon: 'none', + duration: 2000 + }); + return + } + } // 1. 原有逻辑:分类id为空,拦截提示 if (!id) { uni.showToast({ @@ -186,14 +208,19 @@ }); }, async getList() { - await request.post("/sj/imgVideo/list", { - type: this.type - }).then(res => { - if (res.code == 200) { - this.imgVideoList = res.data.list[this.type] - } - - }) + try { + const res = await request.post("/sj/imgVideo/list", { + type: this.type + }); + // 核心修复:保留imgVideoList对象结构,可选链避免属性不存在,默认值确保始终为对象 + this.imgVideoList = res.data?.list?.[this.type] || {}; + // 若接口返回格式为res.data.list[this.type]是对应类型的id数据,需调整为: + // this.imgVideoList = res.data?.list?.[this.type] || {}; + } catch (err) { + // 网络错误等异常处理,确保imgVideoList始终为对象 + console.error("获取图片/视频列表失败:", err); + this.imgVideoList = {}; + } } } } diff --git a/pages/shop/photoAlbum/videoList.vue b/pages/shop/photoAlbum/videoList.vue index 0435b28..ed4a153 100644 --- a/pages/shop/photoAlbum/videoList.vue +++ b/pages/shop/photoAlbum/videoList.vue @@ -12,7 +12,7 @@ - + {{ imgVideoList.length }}/20张 - + 删除 @@ -121,18 +121,15 @@ async handleDelete() { // 收集选中项的ID let deleteIds = this.selectedItems.map(index => this.imgVideoList[index].id); - let auth_ids = this.selectedItems.map(index => this.imgVideoList[index].auth_id).filter(item => item !== 0); - console.log(1111,deleteIds,auth_ids,[1,6]) + let auth_ids = this.selectedItems.map(index => this.imgVideoList[index].auth_id).filter(item => + item !== 0); + console.log(1111, deleteIds, auth_ids, [1, 6]) try { const res = await request.post("/sj/imgVideo/del", { ids: deleteIds, - auth_ids:auth_ids + auth_ids: auth_ids }); if (res.code == 200) { - uni.showToast({ - title: '删除成功', - icon: 'success' - }); // 重新获取列表 await this.getList(); // 退出管理模式 @@ -153,8 +150,8 @@ }, goAdd(id, item) { if (this.isManage) return; // 管理模式下禁止跳转 - if(this.type==1){ - if(this.imgVideoList.length>=20){ + if (this.type == 1) { + if (this.imgVideoList.length >= 20) { uni.showToast({ title: '最多上传20张图片', icon: 'none', @@ -162,8 +159,8 @@ }); return } - }else if(this.type==2){ - if(this.imgVideoList.length>=10){ + } else if (this.type == 2) { + if (this.imgVideoList.length >= 10) { uni.showToast({ title: '最多上传10张视频', icon: 'none', @@ -206,14 +203,20 @@ return obj }, async getList() { - await request.post("/sj/imgVideo/list", { - type: this.type, - class_type: this.class_type - }).then(res => { - if (res.code == 200) { - this.imgVideoList = res.data.list[this.type][this.class_type] - } - }) + try { + const res = await request.post("/sj/imgVideo/list", { + type: this.type, + class_type: this.class_type + }); + // 核心修复:逐层可选链保护 + 兜底空数组,彻底避免属性访问错误 + this.imgVideoList = res.code === 200 ? + res.data?.list?.[this.type]?.[this.class_type] || [] : + []; + } catch (err) { + // 网络错误、接口报错等所有异常的兜底处理 + console.error("获取媒体列表失败:", err); + this.imgVideoList = []; + } } } } @@ -230,16 +233,16 @@ font-style: normal; white-space: nowrap; } - + .review { background: rgba(255, 250, 218, 1); border-radius: 20rpx 20rpx 0rpx 0rpx; margin: 20rpx; padding: 20rpx 20rpx 20rpx 20rpx; - + .review-title { margin-bottom: 6rpx; - + .review-title-text { font-weight: 400; font-size: 24rpx; @@ -249,7 +252,7 @@ font-style: normal; } } - + } .container-card { @@ -292,8 +295,8 @@ .card-content { gap: 14rpx; flex-wrap: wrap; - - .card-content-page{ + + .card-content-page { font-weight: 400; font-size: 24rpx; color: #999999;