Browse Source

Merge branch 'milestone-20260128-日常优化1.0' of http://39.101.133.168:8807/huangqizhen/gold-vue into milestone-20260128-日常优化1.0

milestone-20260128-日常优化1.0
ZhangYong 4 weeks ago
parent
commit
6506cb1e38
  1. 2
      src/components/locales/lang/en.js
  2. 2
      src/components/locales/lang/zh-CN.js
  3. 25
      src/router/index.js
  4. 40
      src/utils/goToCheck.js
  5. 29
      src/views/home.vue
  6. 4
      src/views/moneyManage/refundDetail/refundHeader.vue

2
src/components/locales/lang/en.js

@ -1024,7 +1024,7 @@ export default {
market: "Region", market: "Region",
registerTime: "Registered at", registerTime: "Registered at",
}, },
orderNeedsReview: "A receipt order requires review",
// orderNeedsReview: "A receipt order requires review",
messageGroups: { messageGroups: {
today: "Today", today: "Today",
yesterday: "Yesterday", yesterday: "Yesterday",

2
src/components/locales/lang/zh-CN.js

@ -1035,7 +1035,7 @@ export default {
market: "地区", market: "地区",
registerTime: "注册时间", registerTime: "注册时间",
}, },
orderNeedsReview: "用户有条收款订单需审核",
// orderNeedsReview: "用户有条收款订单需审核",
messageGroups: { messageGroups: {
today: "今天", today: "今天",
yesterday: "昨天", yesterday: "昨天",

25
src/router/index.js

@ -307,27 +307,27 @@ const routes = [
{ {
path: 'receiveDetail', path: 'receiveDetail',
name: "receiveDetail", name: "receiveDetail",
meta: {permissionId: 74},
meta: {permissionId: 59},
children: [ children: [
// 收款提交 // 收款提交
{ {
path: 'receiveService', path: 'receiveService',
name: "receiveService", name: "receiveService",
component: () => import("../views/moneyManage/receiveDetail/receiveService.vue"), component: () => import("../views/moneyManage/receiveDetail/receiveService.vue"),
meta: {permissionId: 60}
meta: {permissionId: [60, 61, 62, 63, 64, 65, 66]}
}, },
// 收款处理(负责人) // 收款处理(负责人)
{ {
path: 'receiveManager', path: 'receiveManager',
name: "receiveManager", name: "receiveManager",
component: () => import("../views/moneyManage/receiveDetail/receiveManage.vue"), component: () => import("../views/moneyManage/receiveDetail/receiveManage.vue"),
meta: {permissionId: [67, 79]}
meta: {permissionId: [79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]}
}, },
{//收款处理 {//收款处理
path: 'receiveFinance', path: 'receiveFinance',
name: "receiveFinance", name: "receiveFinance",
component: () => import("../views/moneyManage/receiveDetail/receiveFinance.vue"), component: () => import("../views/moneyManage/receiveDetail/receiveFinance.vue"),
meta: {permissionId: [67, 79]}
meta: {permissionId: [67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78]}
}, },
//总部管理员及财务(移除) //总部管理员及财务(移除)
// { // {
@ -350,28 +350,28 @@ const routes = [
path: 'refundService', path: 'refundService',
name: "refundService", name: "refundService",
component: () => import("../views/moneyManage/refundDetail/refundService.vue"), component: () => import("../views/moneyManage/refundDetail/refundService.vue"),
meta: {permissionId: 99}
meta: {permissionId: [99, 100, 101, 102]}
}, },
// 退款审批 // 退款审批
{ {
path: 'refundFinance', path: 'refundFinance',
name: "refundFinance", name: "refundFinance",
component: () => import("../views/moneyManage/refundDetail/refundFinance.vue"), component: () => import("../views/moneyManage/refundDetail/refundFinance.vue"),
meta: {permissionId: 103}
meta: {permissionId: [103, 104, 105, 106]}
}, },
// 退款审批(负责人) // 退款审批(负责人)
{ {
path: 'refundCharge', path: 'refundCharge',
name: "refundCharge", name: "refundCharge",
component: () => import("../views/moneyManage/refundDetail/refundCharge.vue"), component: () => import("../views/moneyManage/refundDetail/refundCharge.vue"),
meta: {permissionId: 107}
meta: {permissionId: [107, 108, 109, 110]}
}, },
// 退款审批(总部财务) // 退款审批(总部财务)
{ {
path: 'refundHeader', path: 'refundHeader',
name: "refundHeader", name: "refundHeader",
component: () => import("../views/moneyManage/refundDetail/refundHeader.vue"), component: () => import("../views/moneyManage/refundDetail/refundHeader.vue"),
meta: {permissionId: 111}
meta: {permissionId: [111, 112, 113, 114]}
}, },
] ]
}, },
@ -380,7 +380,7 @@ const routes = [
path: 'executor', path: 'executor',
name: "executor", name: "executor",
component: () => import("../views/moneyManage/executor/executor.vue"), component: () => import("../views/moneyManage/executor/executor.vue"),
meta: {permissionId: 115}
meta: {permissionId: [115, 116, 117, 118]}
}, },
// 财务核算 // 财务核算
{ {
@ -579,9 +579,10 @@ router.afterEach(async (to) => { // 接收to参数获取当前路由信息
// 存入全局状态,供所有页面访问 // 存入全局状态,供所有页面访问
const messageStore = useMessageStore(); const messageStore = useMessageStore();
// 过滤 flag=1的消息 // 过滤 flag=1的消息
newMessageRes.data = newMessageRes.data.filter(item => item.flag !== 1);
messageStore.setMessages(newMessageRes.data);
const list = Array.isArray(newMessageRes.data)
? newMessageRes.data
: (Array.isArray(newMessageRes.data?.list) ? newMessageRes.data.list : []);
messageStore.setMessages(list.filter(item => item.flag !== 1));
} catch (error) { } catch (error) {
console.error('获取消息失败:', error); console.error('获取消息失败:', error);
} }

40
src/utils/goToCheck.js

@ -34,3 +34,43 @@ export function getOrderPage(status) {
// 未知状态返回工作台 // 未知状态返回工作台
return '/workbench'; return '/workbench';
} }
function toNumberOrNull(value) {
if (value === null || value === undefined) return null;
const num = typeof value === 'number' ? value : Number(String(value).trim());
return Number.isFinite(num) ? num : null;
}
const queryIdRouteNameMap = {
6: 'rechargeAudit',
7: 'rechargeAudit',
8: 'rechargeAudit',
9: 'rechargeAudit',
10: 'rechargeAudit',
11: 'rechargeAudit',
12: 'rechargeAudit',
13: 'refundAudit',
14: 'refundAudit',
15: 'refundAudit',
16: 'refundAudit',
17: 'refundAudit',
18: 'refundAudit',
19: 'refundAudit'
};
export function getMessageJumpTarget(message) {
const permissionId = toNumberOrNull(message?.queryId ?? message?.menuId ?? message?.permissionId);
if (permissionId !== null) {
const routeName = queryIdRouteNameMap[permissionId];
if (routeName) return { name: routeName };
}
const type = toNumberOrNull(message?.type);
if (type === 0) return { name: 'rechargeAudit' };
if (type === 1) return { name: 'refundAudit' };
const status = toNumberOrNull(message?.status);
if (status !== null) return getOrderPage(status);
return '/workbench';
}

29
src/views/home.vue

@ -211,7 +211,8 @@ const getMessage = async () => {
}); });
if (res?.data) { if (res?.data) {
const cleanList = res.data.filter(i => i.flag !== 1)
const list = Array.isArray(res.data) ? res.data : (Array.isArray(res.data?.list) ? res.data.list : [])
const cleanList = list.filter(i => i.flag !== 1)
messageStore.setMessages(cleanList) messageStore.setMessages(cleanList)
} }
} catch (e) { } catch (e) {
@ -282,6 +283,27 @@ const toggleShowAll = () => showAll.value = !showAll.value
const scrollContainer = ref(null) const scrollContainer = ref(null)
const scrollToTop = () => scrollContainer.value?.scrollTo({top: 0, behavior: 'smooth'}) const scrollToTop = () => scrollContainer.value?.scrollTo({top: 0, behavior: 'smooth'})
const getPathByQueryId = (queryId) => {
const qid = Number(queryId)
if (!Number.isFinite(qid)) return null
const matchedRoutes = router.getRoutes().filter(r => {
const pid = r.meta?.permissionId
if (Array.isArray(pid)) return pid.includes(qid)
return pid === qid
})
if (!matchedRoutes.length) return null
matchedRoutes.sort((a, b) => {
const aDepth = typeof a.path === 'string' ? a.path.split('/').length : 0
const bDepth = typeof b.path === 'string' ? b.path.split('/').length : 0
return bDepth - aDepth
})
return matchedRoutes[0]?.path || null
}
// + // +
const handleMessageClick = async (item) => { const handleMessageClick = async (item) => {
const res = await API({ const res = await API({
@ -292,7 +314,8 @@ const handleMessageClick = async (item) => {
if (res.code === 200) { if (res.code === 200) {
closeMessageDialog() closeMessageDialog()
await router.push(getOrderPage(item.status))
const targetPath = item?.queryId ? getPathByQueryId(item.queryId) : null
await router.push(targetPath || getOrderPage(item.status) || '/noPermission')
await getMessage() await getMessage()
ElMessage.success(t('elmessage.jumpSuccess')) ElMessage.success(t('elmessage.jumpSuccess'))
} else { } else {
@ -504,7 +527,7 @@ onMounted(() => getMessage())
<div class="message-desc"> <div class="message-desc">
<div v-if="findMenuById(menuTree, permissionMapping.refund_headquarters_finance)">[{{ item.marketName }}] </div> <div v-if="findMenuById(menuTree, permissionMapping.refund_headquarters_finance)">[{{ item.marketName }}] </div>
<div>[{{item.name}}{{ item.jwcode }}]{{ t('home.orderNeedsReview') }}</div>
<div>[{{item.name}}{{ item.jwcode }}]{{ item.desc}}</div>
</div> </div>
<el-button <el-button
type="primary" type="primary"

4
src/views/moneyManage/refundDetail/refundHeader.vue

@ -470,6 +470,10 @@ const executorList = ref([
value: '315915', value: '315915',
label: '越:范秋霞' label: '越:范秋霞'
}, },
{
value: '200246',
label: '马:小汪执行人'
}
]) ])
// //
const getRefund = async function () { const getRefund = async function () {

Loading…
Cancel
Save