定损、维修列表标记位置回滚
This commit is contained in:
parent
d94835f6c5
commit
fcc4e79283
|
|
@ -161,6 +161,9 @@ const onClick = async (e, item) => {
|
|||
// 驳回逻辑
|
||||
console.log('驳回')
|
||||
console.log(item)
|
||||
// 标记操作
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
|
||||
const parm = {
|
||||
ids:item.ids
|
||||
}
|
||||
|
|
@ -176,10 +179,15 @@ const onClick = async (e, item) => {
|
|||
}
|
||||
const search = () => {
|
||||
console.log('🚀 ~ search ~ keyWord:', keyWord.value)
|
||||
// 标记操作
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
getRepairDetailsData()
|
||||
}
|
||||
|
||||
const submit = async () => {
|
||||
// 标记操作
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
|
||||
// 提交逻辑
|
||||
const res = await repairSubmitAPI([{taskId: taskId.value}])
|
||||
if (res.code === 200) {
|
||||
|
|
@ -237,6 +245,9 @@ const onQualified = async () => {
|
|||
})
|
||||
return
|
||||
}
|
||||
// 标记操作
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
|
||||
// 提示
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
|
|
@ -275,6 +286,9 @@ const onQualified = async () => {
|
|||
// 点击跳转维修页面
|
||||
const onRepairItem = (item) => {
|
||||
console.log(item)
|
||||
// 标记为跳转,返回时需要恢复滚动
|
||||
uni.setStorageSync('fromDetailOperation', false)
|
||||
|
||||
let codingUrl = ''
|
||||
if (item.manageType === 0) {// 编码维修
|
||||
// if(item.status==0){
|
||||
|
|
@ -298,8 +312,8 @@ const onRepairItem = (item) => {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
onShow(() => {
|
||||
getRepairDetailsData()
|
||||
})
|
||||
|
|
|
|||
|
|
@ -143,6 +143,8 @@ const showCustomModal = ref(false)
|
|||
const currentItem = ref(null)
|
||||
const modalTitle = ref('提示')
|
||||
const modalContent = ref('是否确认进行定损?')
|
||||
// 添加标记位
|
||||
const shouldRestoreScroll = ref(true)
|
||||
// 查询参数
|
||||
const queryParams = ref({
|
||||
startTime: dateArray.value[0] || '',
|
||||
|
|
@ -185,6 +187,8 @@ const onClick = async (e, item) => {
|
|||
title: '提交成功!',
|
||||
icon: 'none',
|
||||
})
|
||||
shouldRestoreScroll.value = false
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
queryParams.value.pageNum = 1
|
||||
tableList.value = []
|
||||
getTableList(true)
|
||||
|
|
@ -204,6 +208,8 @@ const onClick = async (e, item) => {
|
|||
title: '驳回成功!',
|
||||
icon: 'none',
|
||||
})
|
||||
shouldRestoreScroll.value = false
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
queryParams.value.pageNum = 1
|
||||
tableList.value = []
|
||||
getTableList(true)
|
||||
|
|
@ -220,6 +226,8 @@ const onChangeDate = (val) => {
|
|||
|
||||
// 搜索按钮
|
||||
const onSearchBtn = () => {
|
||||
shouldRestoreScroll.value = false
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
queryParams.value.pageNum = 1
|
||||
tableList.value = []
|
||||
getTableList(true)
|
||||
|
|
@ -234,10 +242,7 @@ const getTableList = async (isTap = false) => {
|
|||
})
|
||||
console.log('queryParams.value查询参数', queryParams.value)
|
||||
const res = await getLossAssessmentListAPI(queryParams.value)
|
||||
setTimeout(() => {
|
||||
scrollTop.value = uni.getStorageSync('scrollTop') || 0
|
||||
console.log('🚀 ~ scrollTop.value:', scrollTop.value)
|
||||
}, 400)
|
||||
|
||||
total.value = res.data.total
|
||||
if (isTap) {
|
||||
tableList.value = res.data.rows
|
||||
|
|
@ -272,6 +277,29 @@ const getTableList = async (isTap = false) => {
|
|||
// })
|
||||
|
||||
onShow(() => {
|
||||
// 检查是否有操作标记
|
||||
const fromDetailOperation = uni.getStorageSync('fromDetailOperation')
|
||||
|
||||
if (shouldRestoreScroll.value && !fromDetailOperation) {
|
||||
// 只有从详情页简单返回且没有操作时才恢复滚动
|
||||
setTimeout(() => {
|
||||
const cachedScrollTop = uni.getStorageSync('scrollTop')
|
||||
if (cachedScrollTop) {
|
||||
scrollTop.value = cachedScrollTop
|
||||
// 为了确保滚动生效,可以再次设置
|
||||
setTimeout(() => {
|
||||
scrollTop.value = cachedScrollTop + 0.1
|
||||
}, 50)
|
||||
}
|
||||
}, 100)
|
||||
}
|
||||
|
||||
// 清除操作标记
|
||||
uni.removeStorageSync('fromDetailOperation')
|
||||
// 重置标记位
|
||||
shouldRestoreScroll.value = true
|
||||
|
||||
// 获取数据
|
||||
tableList.value = []
|
||||
total.value = 0
|
||||
getTableList(true)
|
||||
|
|
@ -298,6 +326,8 @@ const onScrollTolower = debounce(() => {
|
|||
// tap 栏切换
|
||||
const changeTab = (index) => {
|
||||
active.value = index
|
||||
shouldRestoreScroll.value = false
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
uni.setStorageSync('scrollTop', 0)
|
||||
uni.setStorageSync('activeTab', index)
|
||||
uni.removeStorageSync('queryParams')
|
||||
|
|
@ -316,6 +346,11 @@ const changeTab = (index) => {
|
|||
const handleItem = (item) => {
|
||||
console.log(item)
|
||||
currentItem.value = item
|
||||
|
||||
// 设置标记:这是从列表正常跳转到详情页,返回时需要恢复滚动
|
||||
shouldRestoreScroll.value = true
|
||||
uni.setStorageSync('fromDetailOperation', false)
|
||||
|
||||
if(item.repairStatusCode == "0") {
|
||||
// 使用自定义弹窗
|
||||
showCustomModal.value = true
|
||||
|
|
@ -333,49 +368,15 @@ const handleItem = (item) => {
|
|||
} else {
|
||||
uni.navigateTo({ url: `/pages/repair/equipAssessment/view?taskId=${item.taskId}` })
|
||||
}
|
||||
|
||||
|
||||
|
||||
// if(item.repairStatusCode=="0"){
|
||||
// // 弹出确认弹窗
|
||||
// uni.showModal({
|
||||
// title: '提示',
|
||||
// content: '是否确认进行定损?',
|
||||
// confirmText: '进入定损',
|
||||
// cancelText: '转至维修',
|
||||
// success: async (res) => {
|
||||
// if (res.confirm) {
|
||||
// // 用户点击确认,进行页面跳转
|
||||
// uni.navigateTo({ url: `/pages/repair/equipAssessment/details?taskId=${item.taskId}` })
|
||||
// } else if (res.cancel) {
|
||||
// //直接进行维修
|
||||
// const res = await updateRepairStatusAPI({taskId: item.taskId})
|
||||
// if(res.code==200){
|
||||
// uni.showToast({
|
||||
// title: '成功转至维修',
|
||||
// icon: 'none',
|
||||
// })
|
||||
// setTimeout(() => {
|
||||
// queryParams.value.pageNum = 1
|
||||
// tableList.value = []
|
||||
// getTableList(true)
|
||||
// }, 1000)
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// // uni.navigateTo({ url: `/pages/repair/equipAssessment/details?taskId=${item.taskId}` })
|
||||
// }else{
|
||||
// uni.navigateTo({ url: `/pages/repair/equipAssessment/view?taskId=${item.taskId}` })
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
// 自定义弹窗确认事件
|
||||
const handleConfirm = () => {
|
||||
if (countdown.value > 0) return
|
||||
showCustomModal.value = false
|
||||
// 设置标记
|
||||
shouldRestoreScroll.value = true
|
||||
uni.setStorageSync('fromDetailOperation', false)
|
||||
uni.navigateTo({ url: `/pages/repair/equipAssessment/details?taskId=${currentItem.value.taskId}` })
|
||||
}
|
||||
|
||||
|
|
@ -383,6 +384,10 @@ const handleConfirm = () => {
|
|||
const handleCancel = async () => {
|
||||
if (countdown.value > 0) return
|
||||
showCustomModal.value = false
|
||||
// 设置标记:这是操作,返回时不需要恢复滚动
|
||||
shouldRestoreScroll.value = false
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
|
||||
const res = await updateRepairStatusAPI({taskId: currentItem.value.taskId})
|
||||
if(res.code == 200) {
|
||||
uni.showToast({
|
||||
|
|
|
|||
|
|
@ -106,6 +106,8 @@ const taskId = ref('')
|
|||
const keyWord = ref('')
|
||||
const search = () => {
|
||||
console.log('🚀 ~ search ~ keyWord:', keyWord.value)
|
||||
// 标记不是从详情页简单返回
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
getRepairDetailsData()
|
||||
}
|
||||
// 获取列表详情
|
||||
|
|
@ -166,6 +168,10 @@ const onQualified = async () => {
|
|||
})
|
||||
return
|
||||
}
|
||||
|
||||
// 标记不是从详情页简单返回
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
|
||||
// 组装参数
|
||||
const ids = []
|
||||
detailsList.value.forEach((e) => {
|
||||
|
|
@ -177,6 +183,7 @@ const onQualified = async () => {
|
|||
}
|
||||
}
|
||||
})
|
||||
|
||||
console.log(ids)
|
||||
const res = await auditRepairPass(ids)
|
||||
if (res.code === 200) {
|
||||
|
|
@ -229,6 +236,10 @@ const handleSubmit = async () => {
|
|||
if (isSubmit.value) return
|
||||
isSubmit.value = true
|
||||
uni.showLoading({ title: '提交中...', mask: true })
|
||||
|
||||
// 标记不是从详情页简单返回
|
||||
uni.setStorageSync('fromDetailOperation', true)
|
||||
|
||||
// 提交逻辑
|
||||
const res = await repairSubmitAPI([{ taskId: taskId.value }])
|
||||
if (res.code === 200) {
|
||||
|
|
|
|||
|
|
@ -146,6 +146,7 @@ const queryParams = ref({
|
|||
pageSize: 20,
|
||||
})
|
||||
const scrollTop = ref(0) // 滚动位置
|
||||
const shouldRestoreScroll = ref(true)
|
||||
|
||||
// 右滑按钮组
|
||||
const options = ref([
|
||||
|
|
@ -249,8 +250,24 @@ const getTableList = async (isTap = false) => {
|
|||
|
||||
|
||||
onShow(() => {
|
||||
tableList.value = []
|
||||
total.value = 0
|
||||
// 检查是否有缓存的滚动位置
|
||||
const cachedScrollTop = uni.getStorageSync('scrollTop')
|
||||
const cachedQueryParams = uni.getStorageSync('queryParams')
|
||||
const cachedActiveTab = uni.getStorageSync('activeTab')
|
||||
|
||||
// 如果是从详情页返回(且不是从查询/合格操作返回),才恢复滚动
|
||||
if (shouldRestoreScroll.value && cachedScrollTop) {
|
||||
scrollTop.value = cachedScrollTop
|
||||
// 延迟设置以确保DOM已更新
|
||||
setTimeout(() => {
|
||||
scrollTop.value = cachedScrollTop
|
||||
}, 100)
|
||||
}
|
||||
|
||||
// 重置标志位
|
||||
shouldRestoreScroll.value = true
|
||||
|
||||
// 正常获取数据
|
||||
getTableList(true)
|
||||
})
|
||||
|
||||
|
|
@ -260,6 +277,7 @@ const onScroll = (e) => {
|
|||
timer = setTimeout(() => {
|
||||
uni.setStorageSync('scrollTop', e.detail.scrollTop)
|
||||
uni.setStorageSync('queryParams', JSON.stringify(queryParams.value))
|
||||
uni.setStorageSync('activeTab', activeTab.value)
|
||||
}, 500)
|
||||
}
|
||||
|
||||
|
|
@ -292,12 +310,14 @@ const changeTab = (index) => {
|
|||
// 点击跳转详情
|
||||
const handleItem = (item) => {
|
||||
console.log(item)
|
||||
shouldRestoreScroll.value = true
|
||||
uni.setStorageSync('fromDetailOperation', false)
|
||||
|
||||
if(item.repairStatusCode=="0" || item.repairStatusCode=="4" || item.repairStatusCode=="3"){
|
||||
uni.navigateTo({ url: `/pages/repair/repairManage/details?taskId=${item.taskId}` })
|
||||
}else{
|
||||
uni.navigateTo({ url: `/pages/repair/repairManage/view?taskId=${item.taskId}` })
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 判断数据是否加载完毕
|
||||
|
|
|
|||
Loading…
Reference in New Issue