修改页面

This commit is contained in:
wangxiaowei
2026-01-02 01:56:58 +08:00
parent 310391c4bc
commit 83a2b4da9d
4 changed files with 115 additions and 115 deletions

View File

@ -56,12 +56,11 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { useMessage } from 'wot-design-uni' import { useMessage, useToast } from 'wot-design-uni'
import { useColPickerData } from '@/hooks/useColPickerData' import { useColPickerData } from '@/hooks/useColPickerData'
import { addUserAddress, deleteUserAddress, editUserAddress, getOpenCityList, getUserAddressInfo } from '@/api/user' import { addUserAddress, deleteUserAddress, editUserAddress, getOpenCityList, getUserAddressInfo } from '@/api/user'
import { mobile } from '@/utils/test' import { mobile } from '@/utils/test'
import { router } from '@/utils/tools' import { router } from '@/utils/tools'
import { useToast } from 'wot-design-uni'
const OSS = inject('OSS') const OSS = inject('OSS')
const toast = useToast() const toast = useToast()

View File

@ -88,7 +88,7 @@
<view class="schedule-section mx-30rpx mt-30rpx"> <view class="schedule-section mx-30rpx mt-30rpx">
<view class="section-header" style="justify-content: flex-start;border-radius: 16rpx;"> <view class="section-header" style="justify-content: flex-start;border-radius: 16rpx;">
<text class="section-title">今日行程</text> <text class="section-title">今日行程</text>
<text class="section-tip">其他日期行程可至行程记录查看</text> <!-- <text class="section-tip">其他日期行程可至行程记录查看</text> -->
</view> </view>
<view class="schedule-list"> <view class="schedule-list">
<view v-if="todayOrders.length === 0" class="empty-schedule"> <view v-if="todayOrders.length === 0" class="empty-schedule">
@ -967,6 +967,7 @@
} }
.schedule-header-row { .schedule-header-row {
padding-top: 10rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;

View File

@ -205,13 +205,13 @@
<text class="text-24rpx text-[#303133] leading-34rpx">位置更新</text> <text class="text-24rpx text-[#303133] leading-34rpx">位置更新</text>
</view> </view>
<!-- 收入统计 --> <!-- 收入统计 -->
<view class="service-item flex flex-col items-center" @click="router.navigateTo('/bundle/finance/finance')"> <!-- <view class="service-item flex flex-col items-center" @click="router.navigateTo('/bundle/finance/finance')">
<view <view
class="service-icon-wrapper h-96rpx w-96rpx flex items-center justify-center rounded-16rpx bg-[#FFFFFF]"> class="service-icon-wrapper h-96rpx w-96rpx flex items-center justify-center rounded-16rpx bg-[#FFFFFF]">
<wd-img width="48rpx" height="48rpx" :src="`${OSS}images/chayishi/income.png`" /> <wd-img width="48rpx" height="48rpx" :src="`${OSS}images/chayishi/income.png`" />
</view> </view>
<text class="text-24rpx text-[#303133] leading-34rpx">收入统计</text> <text class="text-24rpx text-[#303133] leading-34rpx">收入统计</text>
</view> </view> -->
<!-- 上传资料 --> <!-- 上传资料 -->
<view class="service-item flex flex-col items-center" @click="My.handleServiceClick('upload')"> <view class="service-item flex flex-col items-center" @click="My.handleServiceClick('upload')">
<view <view
@ -221,13 +221,13 @@
<text class="text-24rpx text-[#303133] leading-34rpx">上传资料</text> <text class="text-24rpx text-[#303133] leading-34rpx">上传资料</text>
</view> </view>
<!-- 行程记录 --> <!-- 行程记录 -->
<view class="service-item flex flex-col items-center" @click="My.handleServiceClick('record')"> <!-- <view class="service-item flex flex-col items-center" @click="My.handleServiceClick('record')">
<view <view
class="service-icon-wrapper h-96rpx w-96rpx flex items-center justify-center rounded-16rpx bg-[#FFFFFF]"> class="service-icon-wrapper h-96rpx w-96rpx flex items-center justify-center rounded-16rpx bg-[#FFFFFF]">
<wd-img width="48rpx" height="48rpx" :src="`${OSS}images/chayishi/path_record.png`" /> <wd-img width="48rpx" height="48rpx" :src="`${OSS}images/chayishi/path_record.png`" />
</view> </view>
<text class="text-24rpx text-[#303133] leading-34rpx">行程记录</text> <text class="text-24rpx text-[#303133] leading-34rpx">行程记录</text>
</view> </view> -->
<!-- 分销赚钱 --> <!-- 分销赚钱 -->
<view class="service-item flex flex-col items-center" <view class="service-item flex flex-col items-center"
@click="My.handleServiceClick('distribution')"> @click="My.handleServiceClick('distribution')">
@ -308,7 +308,6 @@
handleGetUserInfo: async () => { handleGetUserInfo: async () => {
const res = await getUserInfo() const res = await getUserInfo()
userInfo.value = res userInfo.value = res
userInfo.value.cert_id = 1
}, },
/** /**
@ -374,8 +373,7 @@
// 跳转到上传资料页面 // 跳转到上传资料页面
// cert_id: 0 未上传1 审核中2 已认证3 未通过 // cert_id: 0 未上传1 审核中2 已认证3 未通过
const status = userInfo.value.cert_id == 0 ? 'add' : 'view' const status = userInfo.value.cert_id == 0 ? 'add' : 'view'
console.log("🚀 ~ userInfo.value.cert_id:", userInfo.value.cert_id) router.navigateTo(`/pages/my/upload-data?status=${status}&certId=${userInfo.value.cert_id}`)
router.navigateTo(`/pages/my/upload-data?status=${status}`)
} }
else if (type === 'record') { else if (type === 'record') {
// 跳转到行程记录页面 // 跳转到行程记录页面

View File

@ -36,77 +36,65 @@
</view> </view>
<!-- 营业执照 --> <!-- 营业执照 -->
<view class="info-card mx-30rpx mt-30rpx rounded-24rpx bg-white p-30rpx"> <view class="rounded-24rpx bg-white mx-30rpx relative">
<text class="mb-24rpx block text-32rpx text-[#303133] font-bold leading-44rpx">营业执照</text> <!-- 审核状态标签 -->
<view v-if="documents.businessLicense" class="relative w-[200rpx]"> <view class="absolute top-20rpx right-34rpx">
<wd-img width="200rpx" height="200rpx" :src="documents.businessLicense" mode="aspectFill" <view v-if="auditStatus == 0"
class="rounded-12rpx" />
<!-- 审核状态标签 -->
<view v-if="auditStatus.businessLicense === 'approved'"
class="status-badge absolute right-8rpx top-8rpx"> class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="80rpx" height="80rpx" :src="`${OSS}images/chayishi/success.png`" /> <wd-img width="160rpx" height="160rpx" :src="`${OSS}images/chayishi/applying.png`" />
</view>
<view v-else-if="auditStatus == 1"
class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="160rpx" height="160rpx" :src="`${OSS}images/chayishi/success.png`" />
</view>
<view v-else-if="auditStatus == 2"
class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="160rpx" height="160rpx" :src="`${OSS}images/chayishi/fail.png`" />
</view> </view>
</view> </view>
<view v-else class="empty-state flex flex-col items-center justify-center py-60rpx">
<wd-img width="120rpx" height="120rpx" :src="`${OSS}images/chayishi/text.png`" /> <!-- 营业执照 -->
<text class="mt-24rpx text-28rpx text-[#909399] leading-40rpx">暂未提交信息</text> <view class="info-card mt-30rpx px-30rpx pt-20rpx">
<text class="mb-24rpx block text-32rpx text-[#303133] font-bold leading-44rpx">营业执照</text>
<view v-if="documents.businessLicense" class="relative w-[200rpx]">
<wd-img width="200rpx" height="200rpx" :src="documents.businessLicense" mode="aspectFill"
class="rounded-12rpx" />
</view>
<view v-else class="empty-state flex flex-col items-center justify-center py-60rpx">
<wd-img width="120rpx" height="120rpx" :src="`${OSS}images/chayishi/text.png`" />
<text class="mt-24rpx text-28rpx text-[#909399] leading-40rpx">暂未提交信息</text>
</view>
</view>
<!-- 资质证书 -->
<view class="info-card px-30rpx">
<text class="mb-24rpx block text-32rpx text-[#303133] font-bold leading-44rpx">资质证书</text>
<view v-if="documents.qualification" class="relative w-[200rpx]">
<wd-img width="200rpx" height="200rpx" :src="documents.qualification" mode="aspectFill"
class="rounded-12rpx" />
</view>
<view v-else class="empty-state flex flex-col items-center justify-center py-60rpx">
<wd-img width="120rpx" height="120rpx" :src="`${OSS}images/chayishi/text.png`" />
<text class="mt-24rpx text-28rpx text-[#909399] leading-40rpx">暂未提交信息</text>
</view>
</view>
<!-- 健康证 -->
<view class="info-card rounded-24rpx px-30rpx">
<text class="mb-24rpx block text-32rpx text-[#303133] font-bold leading-44rpx">健康证</text>
<view v-if="documents.healthCert" class="relative w-[200rpx]">
<wd-img width="200rpx" height="200rpx" :src="documents.healthCert" mode="aspectFill"
class="rounded-12rpx" />
</view>
<view v-else class="empty-state flex flex-col items-center justify-center py-60rpx">
<wd-img width="120rpx" height="120rpx" :src="`${OSS}images/chayishi/text.png`" />
<text class="mt-24rpx text-28rpx text-[#909399] leading-40rpx">暂未提交信息</text>
</view>
</view> </view>
</view> </view>
<!-- 资质证书 --> <!-- 修改信息按钮- 待审核和审核失败可修改信息 -->
<view class="info-card mx-30rpx mt-30rpx rounded-24rpx bg-white p-30rpx"> <view class="mx-30rpx mb-40rpx mt-40rpx" v-if="auditStatus == 0 || auditStatus == 2">
<text class="mb-24rpx block text-32rpx text-[#303133] font-bold leading-44rpx">资质证书</text>
<view v-if="documents.qualification" class="relative w-[200rpx]">
<wd-img width="200rpx" height="200rpx" :src="documents.qualification" mode="aspectFill"
class="rounded-12rpx" />
<!-- 审核状态标签 -->
<view v-if="auditStatus.qualification === 'rejected'"
class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="80rpx" height="80rpx" :src="`${OSS}images/chayishi/fail.png`" />
</view>
<view v-else-if="auditStatus.qualification === 'pending'"
class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="80rpx" height="80rpx" :src="`${OSS}images/chayishi/applying.png`" />
</view>
<view v-else-if="auditStatus.qualification === 'approved'"
class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="80rpx" height="80rpx" :src="`${OSS}images/chayishi/success.png`" />
</view>
</view>
<view v-else class="empty-state flex flex-col items-center justify-center py-60rpx">
<wd-img width="120rpx" height="120rpx" :src="`${OSS}images/chayishi/text.png`" />
<text class="mt-24rpx text-28rpx text-[#909399] leading-40rpx">暂未提交信息</text>
</view>
</view>
<!-- 健康证 -->
<view class="info-card mx-30rpx mt-30rpx rounded-24rpx bg-white p-30rpx">
<text class="mb-24rpx block text-32rpx text-[#303133] font-bold leading-44rpx">健康证</text>
<view v-if="documents.healthCert" class="relative w-[200rpx]">
<wd-img width="200rpx" height="200rpx" :src="documents.healthCert" mode="aspectFill"
class="rounded-12rpx" />
<!-- 审核状态标签 -->
<view v-if="auditStatus.healthCert === 'approved'"
class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="80rpx" height="80rpx" :src="`${OSS}images/chayishi/success.png`" />
</view>
<view v-else-if="auditStatus.healthCert === 'pending'"
class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="80rpx" height="80rpx" :src="`${OSS}images/chayishi/applying.png`" />
</view>
<view v-else-if="auditStatus.healthCert === 'rejected'"
class="status-badge absolute right-8rpx top-8rpx">
<wd-img width="80rpx" height="80rpx" :src="`${OSS}images/chayishi/fail.png`" />
</view>
</view>
<view v-else class="empty-state flex flex-col items-center justify-center py-60rpx">
<wd-img width="120rpx" height="120rpx" :src="`${OSS}images/chayishi/text.png`" />
<text class="mt-24rpx text-28rpx text-[#909399] leading-40rpx">暂未提交信息</text>
</view>
</view>
<!-- 修改信息按钮 -->
<view class="mx-30rpx mb-40rpx mt-40rpx">
<view class="edit-btn h-88rpx rounded-16rpx bg-[#4C9F44] text-center leading-88rpx" <view class="edit-btn h-88rpx rounded-16rpx bg-[#4C9F44] text-center leading-88rpx"
@click="UploadData.handleEdit"> @click="UploadData.handleEdit">
<text class="text-32rpx text-[#fff] font-bold">修改信息</text> <text class="text-32rpx text-[#fff] font-bold">修改信息</text>
@ -200,7 +188,7 @@
<!-- 提交按钮仅在新增/编辑状态显示 --> <!-- 提交按钮仅在新增/编辑状态显示 -->
<view v-if="pageStatus === 'add' || pageStatus === 'edit'" <view v-if="pageStatus === 'add' || pageStatus === 'edit'"
class="fixed bottom-0 left-0 right-0 px-30rpx pb-40rpx pt-24rpx z-100"> class="fixed bottom-0 left-0 right-0 px-30rpx pb-40rpx pt-24rpx z-100">
<view class="save-btn h-88rpx rounded-16rpx bg-[#4C9F44] text-center leading-88rpx" <view class="save-btn h-88rpx rounded-8rpx bg-[#4C9F44] text-center leading-88rpx"
@click="UploadData.handleSubmit"> @click="UploadData.handleSubmit">
<text class="text-32rpx text-[#fff] font-bold">提交</text> <text class="text-32rpx text-[#fff] font-bold">提交</text>
</view> </view>
@ -211,7 +199,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { router } from '@/utils/tools' import { router } from '@/utils/tools'
import { useToast } from 'wot-design-uni' import { useToast } from 'wot-design-uni'
import { addTeaSpecialistQualification, getTeaSpecialistQualification } from '@/api/tes-specialist' import { addTeaSpecialistQualification, getTeaSpecialistQualification, editTeaSpecialistQualification } from '@/api/tes-specialist'
const OSS = inject('OSS') const OSS = inject('OSS')
const navbarHeight = inject('navbarHeight') const navbarHeight = inject('navbarHeight')
@ -230,12 +218,8 @@
healthCert: '', // 健康证 healthCert: '', // 健康证
}) })
// 审核状态'approved' | 'pending' | 'rejected' | 'none' // 审核状态
const auditStatus = ref({ const auditStatus = ref<number>(0) // 0 待审核 1 通过 2 未通过
businessLicense: 'approved', // 'approved' | 'pending' | 'rejected' | 'none'
qualification: 'none',
healthCert: 'pending',
})
// 上传文件 // 上传文件
const fileList1 = ref<any[]>([]) // 营业执照 const fileList1 = ref<any[]>([]) // 营业执照
@ -243,19 +227,27 @@
const fileList3 = ref<any[]>([]) // 健康证 const fileList3 = ref<any[]>([]) // 健康证
const action = import.meta.env.VITE_UPLOAD_BASEURL const action = import.meta.env.VITE_UPLOAD_BASEURL
// certId
const certId = ref<number>(0)
// 初始化:根据实际情况判断页面状态 // 初始化:根据实际情况判断页面状态
onLoad((options: any) => { onLoad(async (args: any) => {
token.value = uni.getStorageSync('token') token.value = uni.getStorageSync('token')
certId.value = args.certId || 0
// 如果有状态参数,使用参数 // 如果有状态参数,使用参数
if (options.status) { if (args.status) {
pageStatus.value = options.status as 'add' | 'edit' | 'pending' | 'view' pageStatus.value = args.status as 'add' | 'edit' | 'pending' | 'view'
} }
// TODO: 否则根据API数据判断状态 // TODO: 否则根据API数据判断状态
// 如果已提交且在审核中显示pending // 如果已提交且在审核中显示pending
// 如果已审核通过显示view // 如果已审核通过显示view
// 如果有数据但需要编辑显示edit // 如果有数据但需要编辑显示edit
UploadData.handleGetInfo() if (certId.value > 0) {
await UploadData.handleGetInfo()
}
// 如果无数据显示add // 如果无数据显示add
}) })
@ -264,30 +256,24 @@
* 初始化数据 * 初始化数据
*/ */
handleGetInfo: async () => { handleGetInfo: async () => {
const res = await getTeaSpecialistQualification() const res = await getTeaSpecialistQualification(certId.value)
console.log("🚀 ~ res:", res)
// 回显图片-编辑状态
fileList1.value = res.license_img ? [{ url: res.license_img }] : [] // 营业执照
fileList2.value = res.cert_img ? [{ url: res.cert_img }] : [] // 资质证书
fileList3.value = res.fitness_img ? [{ url: res.fitness_img }] : [] // 健康证
// 回显图片-预览状态
documents.value = {
businessLicense: res.license_img || '',
qualification: res.cert_img || '',
healthCert: res.fitness_img || '',
}
// 设置审核状态
auditStatus.value = res.status // 0 待审核 1 通过 2 未通过
}, },
// 上传图片
handleUploadImage: (type: 'businessLicense' | 'qualification' | 'healthCert') => {
uni.chooseImage({
count: 1,
sourceType: ['camera', 'album'],
success: (res) => {
// TODO: 上传图片到服务器
console.log('选择图片:', res)
documents.value[type] = res.tempFilePaths[0]
},
})
},
// 删除图片
handleDeleteImage: (type: 'businessLicense' | 'qualification' | 'healthCert') => {
documents.value[type] = ''
},
// 修改信息 // 修改信息
handleEdit: () => { handleEdit: () => {
pageStatus.value = 'edit' pageStatus.value = 'edit'
@ -348,13 +334,29 @@
* 提交数据 * 提交数据
*/ */
handleSubmit: async () => { handleSubmit: async () => {
// // TODO: 实现提交逻辑 const licenseImg = documents.value.businessLicense ? documents.value.businessLicense.replace(import.meta.env.VITE_OSS_BASEURL, '') : ''
await addTeaSpecialistQualification({ const certImg = documents.value.qualification ? documents.value.qualification.replace(import.meta.env.VITE_OSS_BASEURL, '') : ''
license_img: documents.value.businessLicense, const fitnessImg = documents.value.healthCert ? documents.value.healthCert.replace(import.meta.env.VITE_OSS_BASEURL, '') : ''
cert_img: documents.value.qualification,
fitness_img: documents.value.healthCert, if (certId.value > 0) {
}) // 编辑资料
toast.show('资料提交成功') await editTeaSpecialistQualification({
id: certId.value,
license_img: licenseImg,
cert_img: certImg,
fitness_img: fitnessImg,
})
toast.show('资料修改成功')
} else {
// 添加资料
await addTeaSpecialistQualification({
license_img: licenseImg,
cert_img: certImg,
fitness_img: fitnessImg,
})
toast.show('资料提交成功')
}
// 提交后设置为申请中状态 // 提交后设置为申请中状态
pageStatus.value = 'pending' pageStatus.value = 'pending'
}, },