相关修改

This commit is contained in:
qiuyuan 2025-08-06 17:55:50 +08:00
parent 6dea318ca8
commit 4022a1ebcd
4 changed files with 718 additions and 536 deletions

View File

@ -96,7 +96,7 @@
<text class="card-desc">维修方便便捷</text> <text class="card-desc">维修方便便捷</text>
<view class="card-bg"></view> <view class="card-bg"></view>
</view> </view>
<image class="card-icon" src="/static/imgs/index/weixiu.png"></image> <image class="card-icon" src="/static/imgs/index/weixiu.png" style="width: 80rpx;height: 80rpx;bottom: 32rpx;"></image>
</view> </view>
<!-- <view class="service-card large card-3" @click="goDetail('neighborList')" hover-class="card-hover"> <!-- <view class="service-card large card-3" @click="goDetail('neighborList')" hover-class="card-hover">
@ -522,13 +522,13 @@
&.card-2 { &.card-2 {
.card-bg { .card-bg {
background: #ff7e7e; background: #5b9cf8;
top: -30rpx; top: -50rpx;
right: -30rpx; right: -30rpx;
} }
.card-icon { .card-icon {
filter: drop-shadow(0 4rpx 8rpx rgba(255, 126, 126, 0.3)); filter: drop-shadow(0 4rpx 8rpx rgba(91, 156, 248, 0.3));
} }
} }

View File

@ -42,7 +42,7 @@
<view class="date">{{ formatTime(order.createdAt,"YYYY-MM-DD") }}</view> <view class="date">{{ formatTime(order.createdAt,"YYYY-MM-DD") }}</view>
</view> </view>
<view class="order-description">{{ order.title }}</view> <view class="order-description">{{ order.title }}</view>
<button @click="handleAction(order)" class="order-action" v-if="order.status == 1 || order.status == 2 || order.status == 99">撤回</button> <button @click.stop="handleAction(order, $event)" class="order-action" v-if="order.status == 1 || order.status == 2 || order.status == 99">撤回</button>
</view> </view>
</view> </view>
<!-- 空状态提示 --> <!-- 空状态提示 -->
@ -73,7 +73,7 @@
<script> <script>
// import Header from '@/components/header_common.vue'; // import Header from '@/components/header_common.vue';
import Footer from '@/components/footer_common.vue'; import Footer from '@/components/footer_common.vue';
import { get, post } from '@/utils/request'; import { get, post,put } from '@/utils/request';
import { IMAGE_BASE_URL,BASE_URL } from '@/utils/config'; import { IMAGE_BASE_URL,BASE_URL } from '@/utils/config';
import { formatTime, formatRelativeTime } from '@/utils/timeFormat'; import { formatTime, formatRelativeTime } from '@/utils/timeFormat';
export default { export default {
@ -116,7 +116,7 @@
2: '进行中', 2: '进行中',
3: '已完成', 3: '已完成',
99:'驳回', 99:'驳回',
98:'已删除' 98:'已撤回'
}; };
return statusMap[status] || '未知状态'; return statusMap[status] || '未知状态';
}, },
@ -153,22 +153,41 @@
uni.navigateTo({ url: '/pages/serviceTickets/index' }); uni.navigateTo({ url: '/pages/serviceTickets/index' });
}, },
// //
handleAction(order) { handleAction(order, e) {
if (order.actionText === '撤回') { //
uni.showModal({ e.stopPropagation();
title: '提示',
content: '确定要撤回这个工单吗?', if (order.status == 1 || order.status == 2 || order.status == 99) {
success: (res) => { uni.showModal({
if (res.confirm) { title: '提示',
// content: '确定要撤回这个工单吗?',
uni.showToast({ success: (res) => {
title: '工单已撤回', if (res.confirm) {
icon: 'success' //
}); this.withdrawOrder(order.id);
} }
} }
}); });
} }
},
async withdrawOrder(orderId) {
try {
const res = await put(`/api/v1/app_auth/work-order/${orderId}`, {status:98});
if (res?.success) {
uni.showToast({
title: '工单已撤回',
icon: 'success'
});
//
this.getWorkOrderList();
}
} catch (err) {
console.error('撤回工单失败:', err);
uni.showToast({
title: '撤回失败',
icon: 'none'
});
}
}, },
goDetail(i){ goDetail(i){
uni.setStorageSync("Detail",i) uni.setStorageSync("Detail",i)

View File

@ -3,18 +3,37 @@
<!-- 图片区域 - 编辑状态下可修改 --> <!-- 图片区域 - 编辑状态下可修改 -->
<view class="image-area card"> <view class="image-area card">
<view class="img-container"> <view class="img-container">
<image <!-- 非编辑状态显示服务器图片 -->
class="work-order-img" <image
:src="!isEditing ? `${IMAGE_BASE_URL}${detailObj.images[0] || ''}` : workOrderImg" class="work-order-img"
mode="widthFix" :src="`${IMAGE_BASE_URL}${detailObj.images[0]}`"
:lazy-load="true" mode="widthFix"
></image> lazy-load="true"
<view class="upload-btn" @click="uploadImage" v-if="isEditing"> v-if="!isEditing && detailObj.images && detailObj.images.length > 0"
<u-icon name="camera" size="28" color="#fff"></u-icon> ></image>
<text class="upload-text">更换图片</text>
</view> <!-- 编辑状态显示本地选择的图片 -->
</view> <image
class="work-order-img"
:src="workOrderImg"
mode="widthFix"
lazy-load="true"
v-if="isEditing && workOrderImg"
></image>
<!-- 没有图片时的占位 -->
<view class="empty-placeholder" v-if="(!detailObj.images || detailObj.images.length === 0) && !isEditing">
<u-icon name="photo" size="48" color="#c0c4cc"></u-icon>
<text class="empty-text">暂无图片</text>
</view>
<!-- 编辑状态的上传按钮 -->
<view class="upload-btn" @click="uploadImage" v-if="isEditing">
<u-icon name="camera" size="28" color="#fff"></u-icon>
<text class="upload-text">{{ workOrderImg ? '更换图片' : '上传图片' }}</text>
</view>
</view>
</view> </view>
<!-- 标题与日期 --> <!-- 标题与日期 -->
@ -298,7 +317,22 @@
margin-bottom: 0; margin-bottom: 0;
} }
} }
.empty-placeholder {
width: 100%;
height: 300rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #f5f7fa;
border-radius: 8rpx;
.empty-text {
margin-top: 16rpx;
font-size: 28rpx;
color: #909399;
}
}
/* 页面容器 */ /* 页面容器 */
.work-order-detail { .work-order-detail {
background-color: $bg-color; background-color: $bg-color;

File diff suppressed because it is too large Load Diff