Commit aaad7627 by pangchong

feat: 优化消息提醒

parent 01ad20fd
......@@ -20,3 +20,4 @@ dist
*.sln
*.sw?
pnpm-lock.yaml
pnpm-lock.yaml
......@@ -125,7 +125,7 @@ const queryList = (pageIndex, pageSize) => {
paging.value?.complete(res.list || res.data?.list || [])
firstLoaded.value = true
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
})
.catch(() => {
......
......@@ -53,11 +53,13 @@
</global-page-swiper-item>
</swiper-item>
</swiper>
<!-- 消息提醒 -->
<up-toast ref="uToastRef"></up-toast>
</z-paging-swiper>
</template>
<script setup>
import { computed, ref } from 'vue'
import { computed, nextTick, onUnmounted, ref } from 'vue'
// 获取屏幕边界到安全区域距离
const { safeAreaInsets } = uni.getSystemInfoSync()
......@@ -183,6 +185,17 @@ const swiperTransition = (e) => {}
const swiperAnimationfinish = (e) => {
current.value = e.detail.current
}
//消息提示
const uToastRef = ref()
const openToast = (params) => {
nextTick(() => {
uToastRef.value?.show(params)
})
}
uni.$on('useMessage', (params) => openToast(params))
onUnmounted(() => {
uni.$off('useMessage', openToast)
})
//获取列表刷新对象
const pagingArr = ref([])
defineExpose({
......
......@@ -51,19 +51,14 @@
</view>
<slot name="bottom"></slot>
</template>
<up-toast ref="uToastRef" v-if="showToast"></up-toast>
<!-- <up-loading-page
:loading="false"
loadingText="正在加载中..."
bg-color="rgba(0, 0, 0, 0.3)"
loadingMode="spinner"
fontSize="15"
></up-loading-page> -->
<!-- 消息提醒 -->
<up-toast ref="uToastRef"></up-toast>
</z-paging>
</template>
<script setup>
import { onUnload } from '@dcloudio/uni-app'
import { filterEmptyValues } from 'mocp/utils/tool'
import { computed, nextTick, ref } from 'vue'
import { computed, nextTick, onUnmounted, ref } from 'vue'
const dataList = ref([])
const es = defineEmits(['query', 'handleLeftClick', 'handleRightClick', 'handleFooterClick'])
......@@ -241,7 +236,7 @@ const queryList = (pageIndex, pageSize) => {
if (res.code == 200) {
paging.value?.complete(res.list || res.data?.list || [])
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
})
.catch(() => {
......@@ -268,17 +263,14 @@ const handleRightClick = () => {
}
//消息提示
const uToastRef = ref()
const showToast = ref(true)
uni.$on('useMessage', (params) => {
const openToast = (params) => {
nextTick(() => {
uToastRef.value?.show(params)
})
})
uni.$on('closeMessage', () => {
showToast.value = false
nextTick(() => {
showToast.value = true
})
}
uni.$on('useMessage', (params) => openToast(params))
onUnmounted(() => {
uni.$off('useMessage', openToast)
})
//点击底部按钮
const handleFooterClick = () => {
......
......@@ -94,11 +94,11 @@ const afterRead = async (event) => {
})
} else {
fileList.value.splice(fileListLen, 1)
uni.$mocpMessage.showToast(res.message || '请求错误')
uni.$mocpMessage.error(res.message || '请求错误')
}
} catch (error) {
fileList.value.splice(fileListLen, 1)
uni.$mocpMessage.showToast('上传失败')
uni.$mocpMessage.error('上传失败')
}
fileListLen++
}
......
......@@ -145,13 +145,13 @@ const previewFile = (fileUrl) => {
},
fail: function () {
uni.hideLoading()
uni.$mocpMessage.showToast('打开文件失败,请重新打开')
uni.$mocpMessage.error('打开文件失败,请重新打开')
}
})
},
fail: function () {
uni.hideLoading()
uni.$mocpMessage.showToast('打开文件失败,请重新打开')
uni.$mocpMessage.error('打开文件失败,请重新打开')
}
})
}
......@@ -163,12 +163,12 @@ const onuploadEnd = (e) => {
if (res.code == 200) {
res.data[ps.mapFieldName] = res.data.id
fileList.value.push(res.data)
uni.$mocpMessage.showToast(res.message || '上传成功')
uni.$mocpMessage.success(res.message || '上传成功')
} else {
uni.$mocpMessage.showToast(res.message || '请求错误')
uni.$mocpMessage.error(res.message || '请求错误')
}
} else {
uni.$mocpMessage.showToast('上传失败')
uni.$mocpMessage.error('上传失败')
}
isLoading.value = false
}
......
export const useMessage = () => {
return {
// 消息提示
toast(message) {
uni.$emit('useMessage', { type: 'default', message })
},
// 错误消息
error(message) {
uni.$emit('useMessage', { type: 'error', message })
},
// 成功消息
success(message) {
uni.$emit('useMessage', { type: 'success', message })
},
// 警告消息
loading(message) {
uni.$emit('useMessage', { type: 'loading', duration: 200000, message: message || '加载中...' })
},
close() {
uni.$emit('closeMessage')
}
}
}
......@@ -32,7 +32,7 @@ const useAppraisalRecordStore = defineStore('appraisalRecord', {
if (res.code == 200) {
this.details = res.data
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
},
setState(...args) {
......
......@@ -108,7 +108,7 @@ const useAssignWorkStore = defineStore('assignWork', {
this.arrangeWorkExtendList = res.data.arrangeWorkExtendList || []
this.arrangeWorkExtend = res.data.arrangeWorkExtendList[0]
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
},
setState(...args) {
......
......@@ -169,7 +169,7 @@ const useBaseStore = defineStore('base', {
})
resolve(selectList)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
reject()
}
})
......
......@@ -15,8 +15,10 @@ class ServiceLoading {
})
}
}
close() {
uni.hideLoading()
close(loading) {
if (loading || loading === '') {
uni.hideLoading()
}
}
}
const serviceLoading = new ServiceLoading()
......@@ -72,18 +74,20 @@ export const httpInterceptor = (options) => {
//http请求
export const http = (options) => {
options = httpInterceptor(options)
//loading
const loading = options.config?.loading
// 1. 返回 Promise 对象
return new Promise((resolve, reject) => {
uni.request({
...options,
success(res) {
console.log('接口响应结果:', res)
serviceLoading.close()
serviceLoading.close(loading)
const statusCode = res.statusCode
if (statusCode >= 200 && statusCode < 300) {
if (res.data.code == 403) {
const userStore = useUserStore()
uni.$mocpMessage.showToast(res.data.message)
uni.$mocpMessage.error(res.data.message)
setTimeout(() => {
userStore.handleLogOut()
}, 500)
......@@ -93,19 +97,19 @@ export const http = (options) => {
}
} else if (statusCode == 401) {
const userStore = useUserStore()
uni.$mocpMessage.showToast(res.data.message)
uni.$mocpMessage.error(res.data.message)
setTimeout(() => {
userStore.handleLogOut()
}, 500)
reject(res)
} else {
uni.$mocpMessage.showToast(res.data.message || '请求错误')
uni.$mocpMessage.error(res.data.message || '请求错误')
reject(res)
}
},
fail(err) {
serviceLoading.close()
uni.$mocpMessage.showToast('网络错误,换个网络试试')
serviceLoading.close(loading)
uni.$mocpMessage.error('网络错误,换个网络试试')
reject(err)
}
})
......@@ -114,17 +118,19 @@ export const http = (options) => {
//upload请求
export const upload = (options) => {
options = httpInterceptor(options)
//loading
const loading = options.config?.loading
return new Promise((resolve, reject) => {
uni.uploadFile({
...options,
success: (res) => {
console.log('接口响应结果:', res)
serviceLoading.close()
serviceLoading.close(loading)
const statusCode = res.statusCode
if (statusCode >= 200 && statusCode < 300) {
if (res.data.code == 403) {
const userStore = useUserStore()
uni.$mocpMessage.showToast(res.data.message)
uni.$mocpMessage.error(res.data.message)
setTimeout(() => {
userStore.handleLogOut()
}, 500)
......@@ -134,19 +140,19 @@ export const upload = (options) => {
}
} else if (statusCode == 401) {
const userStore = useUserStore()
uni.$mocpMessage.showToast(res.data.message)
uni.$mocpMessage.error(res.data.message)
setTimeout(() => {
userStore.handleLogOut()
}, 500)
reject(res)
} else {
uni.$mocpMessage.showToast(res.data.message || '请求错误')
uni.$mocpMessage.error(res.data.message || '请求错误')
reject(res)
}
},
fail: (err) => {
serviceLoading.close()
uni.$mocpMessage.showToast('上传失败')
serviceLoading.close(loading)
uni.$mocpMessage.error('上传失败')
reject(err)
}
})
......
import { nextTick, ref } from 'vue'
// utils/message.js
export const showToast = (msg, options) => {
uni.showToast({
......@@ -5,5 +7,18 @@ export const showToast = (msg, options) => {
icon: 'none',
duration: 2000,
...options
});
}
\ No newline at end of file
})
}
export const messageCount = ref(0)
// 消息提示
export const toast = (message) => {
uni.$emit('useMessage', { type: 'default', message })
}
// 错误消息
export const error = (message) => {
uni.$emit('useMessage', { type: 'error', message })
}
// 成功消息
export const success = (message) => {
uni.$emit('useMessage', { type: 'success', message })
}
......@@ -70,7 +70,7 @@ const handleLogin = async () => {
if (res.code == 200) {
userStore.setUserInfo(res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -72,7 +72,7 @@ const handleRightClick = () => {
isEdit.value = false
navLeftType.value = 'icon'
userStore.changeHomeMenuList(cloneDeep(homeMenuList.value))
uni.$mocpMessage.showToast('保存菜单成功')
uni.$mocpMessage.success('保存菜单成功')
}
//编辑
const handleChange = () => {
......
......@@ -13,7 +13,13 @@
<global-picker pickAlign="right" clearable v-model="formData.mid" :options="selectList" emptyValue="-1"></global-picker>
</up-form-item>
<up-form-item :label="formData.isDuty == 0 ? '公司值班经理意见' : '品质中心经理意见'" :borderBottom="true">
<global-picker pickAlign="right" clearable v-model="formData.opinionType" dictkey="ar_opinionType" :emptyValue="-1"></global-picker>
<global-picker
pickAlign="right"
clearable
v-model="formData.opinionType"
dictkey="ar_opinionType"
:emptyValue="-1"
></global-picker>
</up-form-item>
<up-form-item
:label="formData.isDuty == 0 ? '公司值班经理意见描述' : '品质中心经理意见描述'"
......@@ -72,7 +78,7 @@ const getAdminList = async (realName) => {
}
})
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
const handleRightClick = async () => {
......@@ -80,9 +86,9 @@ const handleRightClick = async () => {
if (res.code == 200) {
uni.$mocpJump.navigateBack()
appraisalRecordStore.getRqmDetails()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -8,6 +8,6 @@ export const changeAc = async () => {
formData.acOwn = res.data[0]?.zop3
formData.acType = res.data[0]?.zstortgc
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
......@@ -181,10 +181,10 @@ const handleSubmit = async () => {
if (res.code == 200) {
uni.$mocpJump.navigateBack()
appraisalRecordStore.getRqmDetails()
uni.$emit('appraisalRecordReload')
uni.$mocpMessage.showToast(res.message)
uni.$emit('appraisalRecordReload', {})
uni.$mocpMessage.success(res.message)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
// 添加
......
......@@ -24,7 +24,7 @@ const open = () => {
const handleClick = (row) => {
showPopup.value = false
assignWorkStore.setState('arrangeWorkExtend', row)
uni.$mocpMessage.showToast('已切换成' + row.companyFullName)
uni.$mocpMessage.success('已切换成' + row.companyFullName)
}
defineExpose({
open
......
......@@ -74,11 +74,11 @@ const handleSave = async () => {
const res = await savaLeaderApprovalApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
//更新当前责任单位详情
assignWorkStore.setState('arrangeWorkExtend', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -79,9 +79,9 @@ const handleSave = async () => {
const planIndex = formData.value.findIndex((item) => item.plan.trim() === '')
if (planIndex > -1) {
if (formData.value.length > 1) {
return uni.$mocpMessage.showToast(`请输入分解计划${planIndex + 1}的内容`)
return uni.$mocpMessage.error(`请输入分解计划${planIndex + 1}的内容`)
} else {
return uni.$mocpMessage.showToast(`请输入分解计划的内容`)
return uni.$mocpMessage.error(`请输入分解计划的内容`)
}
}
uni.$emit('changeDecompose', formData.value)
......
......@@ -87,11 +87,11 @@ const handleSave = async () => {
const res = await savaFollowUpFeedbackApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
//更新当前责任单位详情
assignWorkStore.setState('arrangeWorkExtend', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -63,11 +63,11 @@ const handleSave = async () => {
const res = await savaGzApprovalApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
//更新当前责任单位详情
assignWorkStore.setState('arrangeWorkExtend', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -50,11 +50,11 @@ const handleSave = async () => {
const res = await savaGzFeedbackApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
//更新当前责任单位详情
assignWorkStore.setState('arrangeWorkExtend', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -103,11 +103,11 @@ const handleSave = async () => {
const res = await savaWorkValidateApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
//更新当前责任单位详情
assignWorkStore.setState('arrangeWorkExtend', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -164,7 +164,7 @@ const formRef = ref()
const handleSave = async () => {
await formRef.value?.validate()
if (!decompose.value || decompose.value.length == 0) {
return uni.$mocpMessage.showToast('请添加分解计划')
return uni.$mocpMessage.error('请添加分解计划')
}
const params = {
...formData,
......@@ -176,11 +176,11 @@ const handleSave = async () => {
const res = await savaArrangeWorkFeedbackApi(params, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
//更新当前责任单位详情
assignWorkStore.setState('arrangeWorkExtend', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
//添加分解计划
......
......@@ -50,7 +50,7 @@ const goTo = (url) => {
if (url) {
uni.$mocpJump.navigateTo(url)
} else {
uni.$mocpMessage.showToast('暂未开放!')
uni.$mocpMessage.error('暂未开放!')
}
}
//跳转应用中心
......
......@@ -188,7 +188,7 @@ const changeAc = async () => {
formData.model = res.data[0]?.zstortgc
formData.aviation = res.data[0]?.zop3
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
//获取文件列表
......@@ -201,12 +201,12 @@ const handleSave = async () => {
const res = await updateDecisionApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
//更新详情
res.data.file = JSON.stringify(fileList.value)
moveDecisionStore.setState('details', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -98,12 +98,12 @@ const handleSave = async () => {
const res = await addEngineeringApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
res.data.estimateEngineerName = estimateOpts.value.find((item) => item.value == formData.estimateEngineer)?.label.split('(')[0] || ''
//更新详情
technologyEvaluationStore.setState('details', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -53,12 +53,12 @@ const handleSave = async () => {
const res = await addOpinionApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
res.data.otherFullName = otherNameOpts.value.find((item) => item.value == formData.otherName)?.label.split('(')[0] || ''
//更新详情
technologyEvaluationStore.setState('details', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -53,12 +53,12 @@ const handleSave = async () => {
const res = await addRatifyApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
res.data.customFullName = customNameOpts.value.find((item) => item.value == formData.customName)?.label.split('(')[0] || ''
//更新详情
technologyEvaluationStore.setState('details', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
......@@ -101,11 +101,11 @@ const handleSave = async () => {
const res = await addSupportFileApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpJump.navigateBack()
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.success(res.message)
//更新详情
technologyEvaluationStore.setState('details', res.data)
} else {
uni.$mocpMessage.showToast(res.message)
uni.$mocpMessage.error(res.message)
}
}
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment