Commit c362b73a by 李宁

1:wq

:Merge branch 'channelBusi'
2 parents 848137b2 2c136680
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
<html lang=""> <html lang="">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="icon" href="/favicon.ico"> <link rel="icon" href="src/assets/log.png">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>商机办结登记</title> <title>享零工-商客能人</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
......
...@@ -30,3 +30,14 @@ export function queryAreaData(data) { ...@@ -30,3 +30,14 @@ export function queryAreaData(data) {
method: 'GET' method: 'GET'
}) })
} }
/**
* 获取可选角色列表
*/
export function queryRoleActive(data) {
return request({
url: '/crm/getUserRoleList',
method: 'GET',
data,
})
}
\ No newline at end of file \ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>
...@@ -141,7 +141,7 @@ ...@@ -141,7 +141,7 @@
class="flex flex-col font-['PingFang_SC:Regular',sans-serif] justify-center leading-[0] not-italic text-[#909399] text-[14px] text-nowrap tracking-[-0.01px] hover:text-brand-primary cursor-pointer transition-colors" class="flex flex-col font-['PingFang_SC:Regular',sans-serif] justify-center leading-[0] not-italic text-[#909399] text-[14px] text-nowrap tracking-[-0.01px] hover:text-brand-primary cursor-pointer transition-colors"
> >
<p class="leading-[22px] whitespace-pre"> <p class="leading-[22px] whitespace-pre">
{{ activeView === 'orders' || activeView === 'order-detail' ? '业务管理' : '权限管理' }} {{ activeView === 'orders' || activeView === 'order-detail' || activeView === 'business' ? '业务管理' : '系统管理' }}
</p> </p>
</button> </button>
...@@ -218,8 +218,10 @@ ...@@ -218,8 +218,10 @@
v-if="activeView === 'orders'" v-if="activeView === 'orders'"
:orders="orders" :orders="orders"
:current-user="currentUser" :current-user="currentUser"
:should-restore-filters="shouldRestoreFilters"
@view-order-detail="handleViewOrderDetail" @view-order-detail="handleViewOrderDetail"
@orders-update="handleOrdersUpdate" @orders-update="handleOrdersUpdate"
@restore-filters-complete="handleRestoreFiltersComplete"
/> />
<!-- 订单详情页面 --> <!-- 订单详情页面 -->
...@@ -314,16 +316,12 @@ const props = defineProps<DesktopMainProps>() ...@@ -314,16 +316,12 @@ const props = defineProps<DesktopMainProps>()
const emit = defineEmits(['logout']) const emit = defineEmits(['logout'])
// 响应式数据 // 响应式数据
const isSidebarCollapsed = ref(false) const isSidebarCollapsed = ref(false)
const activeMenu = ref<string>('orders') // 当前激活的菜单
const activeView = ref<string>('orders') // 当前显示的视图
const selectedOrderId = ref<string | null>(null) // 当前查看的订单ID const selectedOrderId = ref<string | null>(null) // 当前查看的订单ID
const selectedOrder = ref<any>(null) // 当前查看的订单 const selectedOrder = ref<any>(null) // 当前查看的订单
const shouldRestoreFilters = ref(false) // 是否需要恢复筛选条件
const userInfo = ref(localStorage.getItem('pcUserInfo') ? JSON.parse(localStorage.getItem('pcUserInfo') as string) : {}) const userInfo = ref(localStorage.getItem('pcUserInfo') ? JSON.parse(localStorage.getItem('pcUserInfo') as string) : {})
// 菜单配置 // 菜单配置
// const businessMenuItems = [
// { id: 'orders', label: '登记订单管理', icon: LayoutDashboard },
// { id: 'business', label: '业务酬金管理', icon: DollarSign }
// ]
const businessMenuItems = computed(() => { const businessMenuItems = computed(() => {
let va = userInfo.value let va = userInfo.value
if(va?.functions){ if(va?.functions){
...@@ -344,10 +342,6 @@ const businessMenuItems = computed(() => { ...@@ -344,10 +342,6 @@ const businessMenuItems = computed(() => {
} }
return [] return []
}) })
// const systemMenuItems = [
// { id: 'roles', label: '角色管理', icon: RoleIcon },
// { id: 'users', label: '账号管理', icon: Users }
// ]
const systemMenuItems = computed(() => { const systemMenuItems = computed(() => {
let va = userInfo.value let va = userInfo.value
if(va?.functions){ if(va?.functions){
...@@ -368,6 +362,7 @@ const systemMenuItems = computed(() => { ...@@ -368,6 +362,7 @@ const systemMenuItems = computed(() => {
} }
return [] return []
}) })
const menuMap: Record<string, string> = { const menuMap: Record<string, string> = {
orders: '登记订单管理', orders: '登记订单管理',
business: '业务酬金管理', business: '业务酬金管理',
...@@ -493,6 +488,7 @@ const handleViewOrderDetail = (order: any) => { ...@@ -493,6 +488,7 @@ const handleViewOrderDetail = (order: any) => {
} }
const handleBackToOrders = () => { const handleBackToOrders = () => {
selectedOrderId.value = null selectedOrderId.value = null
shouldRestoreFilters.value = true
activeView.value = 'orders' activeView.value = 'orders'
} }
const handleUpdateOrder = (updates: any) => { const handleUpdateOrder = (updates: any) => {
...@@ -510,6 +506,11 @@ const handleUpdateOrder = (updates: any) => { ...@@ -510,6 +506,11 @@ const handleUpdateOrder = (updates: any) => {
const handleOrdersUpdate = (ordersList: any[]) => { const handleOrdersUpdate = (ordersList: any[]) => {
allOrders.value = ordersList allOrders.value = ordersList
} }
// 处理筛选条件恢复完成事件
const handleRestoreFiltersComplete = () => {
shouldRestoreFilters.value = false
}
// 面包屑导航点击处理 // 面包屑导航点击处理
const handleBreadcrumbClick = (level: string) => { const handleBreadcrumbClick = (level: string) => {
if (level === 'level1') { if (level === 'level1') {
...@@ -617,6 +618,10 @@ const organizations = ref<Organization[]>([]) ...@@ -617,6 +618,10 @@ const organizations = ref<Organization[]>([])
// 生命周期 // 生命周期
onMounted(() => { onMounted(() => {
getArea() getArea()
setTimeout(()=>{
initData()
},0)
}) })
const getArea = async ()=>{ const getArea = async ()=>{
try { try {
...@@ -646,6 +651,19 @@ const getArea = async ()=>{ ...@@ -646,6 +651,19 @@ const getArea = async ()=>{
} }
} }
const initData = ()=>{
if(businessMenuItems.value.length > 0){
activeMenu.value = businessMenuItems.value[0].id
activeView.value = businessMenuItems.value[0].id
}else if(systemMenuItems.value.length > 0){
activeMenu.value = systemMenuItems.value[0].id
activeView.value = systemMenuItems.value[0].id
}
}
// 当前激活的菜单
const activeMenu = ref<string>('')
// 当前显示的视图
const activeView = ref<string>('')
// 当前登录用户ID // 当前登录用户ID
const currentUserId = ref('user-001') const currentUserId = ref('user-001')
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</el-button> </el-button>
<!-- 待审核:关闭订单 + 驳回 + 通过 --> <!-- 待审核:关闭订单 + 驳回 + 通过 -->
<template v-if="order.auditStatus === '0'"> <template v-if="order.auditStatus==='0' && permissionJson.audit">
<el-dropdown @command="handleAuditCommand"> <el-dropdown @command="handleAuditCommand">
<el-button type="primary" class="bg-brand-primary"> <el-button type="primary" class="bg-brand-primary">
审核订单 审核订单
...@@ -164,7 +164,7 @@ ...@@ -164,7 +164,7 @@
placeholder="请输入CRM订单编号" placeholder="请输入CRM订单编号"
class="mt-2" class="mt-2"
/> />
<p v-else class="mt-2 text-neutral-700">{{ order.crmOrderId || '-' }}</p> <p v-else class="mt-2 text-neutral-700">{{ order.crmOrderId || '--' }}</p>
</div> </div>
<div> <div>
...@@ -177,7 +177,7 @@ ...@@ -177,7 +177,7 @@
placeholder="请输入办理订单备注" placeholder="请输入办理订单备注"
class="mt-2" class="mt-2"
/> />
<p v-else class="mt-2 text-neutral-700">{{ order.processRemark || '-' }}</p> <p v-else class="mt-2 text-neutral-700">{{ order.crmOrderMemo || '--' }}</p>
</div> </div>
<el-button <el-button
...@@ -193,7 +193,7 @@ ...@@ -193,7 +193,7 @@
</el-card> </el-card>
<!-- 酬金信息区 --> <!-- 酬金信息区 -->
<el-card class="p-6"> <el-card class="p-6" v-if="permissionJson.updateOrder">
<h3 class="text-neutral-900 font-bold mb-4">酬金信息</h3> <h3 class="text-neutral-900 font-bold mb-4">酬金信息</h3>
<div class="space-y-5"> <div class="space-y-5">
<!-- 预计酬金金额 --> <!-- 预计酬金金额 -->
...@@ -362,6 +362,7 @@ interface Order { ...@@ -362,6 +362,7 @@ interface Order {
remarks?: string remarks?: string
processRemark?: string processRemark?: string
operationLogs?: OperationLog[] operationLogs?: OperationLog[]
crmOrderMemo?: string
} }
interface BusinessRule { interface BusinessRule {
...@@ -391,11 +392,40 @@ const emit = defineEmits<{ ...@@ -391,11 +392,40 @@ const emit = defineEmits<{
// 响应式数据 // 响应式数据
const crmOrderId = ref(props.order.crmOrderId || '') const crmOrderId = ref(props.order.crmOrderId || '')
const processRemark = ref(props.order.processRemark || '') const processRemark = ref(props.order.crmOrderMemo || '')
const realMoney = ref( const realMoney = ref(
props.order.realMoney !== undefined ? String(props.order.realMoney) : '' props.order.realMoney !== undefined ? String(props.order.realMoney) : ''
) )
const permissionJson = computed(() => {
const userInfo = ref(localStorage.getItem('pcUserInfo') ? JSON.parse(localStorage.getItem('pcUserInfo') as string) : {})
let va = userInfo.value
let audit = false
let updateOrder = false
if(va?.functions){
let arr = va.functions.filter((item: any) => {return item.id==1})
if(arr.length>0 && arr[0].children){
let arr2 = arr[0].children.filter((item: any) => {return item.id==2})
if(arr2.length>0 && arr2[0].children){
arr2[0].children.forEach((item: any) => {
if(item.id === 4){
updateOrder = true
}
if(item.id === 5){
audit = true
}
})
}
}
}
return {audit,updateOrder}
})
onMounted(()=>{ onMounted(()=>{
queryLog() queryLog()
}) })
...@@ -461,6 +491,7 @@ const getstatusName = (status: status) => { ...@@ -461,6 +491,7 @@ const getstatusName = (status: status) => {
const getauditStatusClass = (status: auditStatus) => { const getauditStatusClass = (status: auditStatus) => {
const statusMap = { const statusMap = {
'-1': 'bg-blue-100 text-blue-800',
'0': 'bg-purple-100 text-purple-800', '0': 'bg-purple-100 text-purple-800',
'1': 'bg-green-100 text-green-800', '1': 'bg-green-100 text-green-800',
'2': 'bg-orange-100 text-orange-800' '2': 'bg-orange-100 text-orange-800'
...@@ -469,6 +500,7 @@ const getauditStatusClass = (status: auditStatus) => { ...@@ -469,6 +500,7 @@ const getauditStatusClass = (status: auditStatus) => {
} }
const getauditStatusName = (status: auditStatus) => { const getauditStatusName = (status: auditStatus) => {
const statusMap = { const statusMap = {
'-1': '未提交审核',
'0': '待审核', '0': '待审核',
'1': '审核通过', '1': '审核通过',
'2': '审核驳回' '2': '审核驳回'
...@@ -500,7 +532,7 @@ const handleSaveCrm = async ()=>{ ...@@ -500,7 +532,7 @@ const handleSaveCrm = async ()=>{
} }
} }
const handleSaveReward = async () => { const handleSaveReward = async () => {
if (realMoney.value && realMoney.value.trim()) { if (realMoney.value && realMoney.value!='null' && realMoney.value.trim()) {
const amount = parseFloat(realMoney.value) const amount = parseFloat(realMoney.value)
if (isNaN(amount) || amount < 0) { if (isNaN(amount) || amount < 0) {
ElMessage.error('请输入有效的实际发放酬金') ElMessage.error('请输入有效的实际发放酬金')
...@@ -511,7 +543,7 @@ const handleSaveReward = async () => { ...@@ -511,7 +543,7 @@ const handleSaveReward = async () => {
const response = await $api.updateOrderMoney({ const response = await $api.updateOrderMoney({
list: [{ list: [{
id: props.order.id, id: props.order.id,
realMoney: realMoney.value realMoney: realMoney.value=='null'?props.order.preMoney:realMoney.value
}] }]
}) })
...@@ -526,48 +558,6 @@ const handleSaveReward = async () => { ...@@ -526,48 +558,6 @@ const handleSaveReward = async () => {
} }
// 提交审核(办理成功/审核驳回 → 待审核)
const handleSubmitReview = () => {
if (!crmOrderId.value.trim()) {
ElMessage.error('请填写CRM订单编号')
return
}
let finalAmount = props.order.preMoney || 0
if (realMoney.value && realMoney.value.trim()) {
const amount = parseFloat(realMoney.value)
if (isNaN(amount) || amount < 0) {
ElMessage.error('请输入有效的实际发放酬金')
return
}
finalAmount = amount
}
const newLog = {
id: `LOG${Date.now()}`,
time: new Date().toLocaleString('zh-CN'),
operator: '管理员',
action: '提交审核',
details: `CRM订单编号:${crmOrderId.value},提交给主管理员审核,实际发放酬金:¥${finalAmount.toFixed(2)}`
}
emit('update', {
crmOrderId: crmOrderId.value,
processRemark: processRemark.value.trim(),
auditStatus: '0',
realMoney: finalAmount,
rejectReason: undefined,
operationLogs: [...(props.order.operationLogs || []), newLog]
})
ElMessage.success('已提交审核,等待主管理员审核')
setTimeout(() => {
emit('back')
}, 1000)
}
// 审核通过 // 审核通过
const handleApprove = async () => { const handleApprove = async () => {
try { try {
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
导出数据 导出数据
</el-button> </el-button>
<el-button <el-button
v-if="permissionJson.audit"
type="primary" type="primary"
:disabled="selectedOrderIds.length === 0" :disabled="selectedOrderIds.length === 0"
class="h-10 pr-4 pl-0" class="h-10 pr-4 pl-0"
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
批量审核{{ selectedOrderIds.length > 0 ? ` (${selectedOrderIds.length})` : '' }} 批量审核{{ selectedOrderIds.length > 0 ? ` (${selectedOrderIds.length})` : '' }}
</el-button> </el-button>
<el-button <el-button
v-if="permissionJson.updateOrder"
type="primary" type="primary"
class="h-10 pr-4 pl-0" class="h-10 pr-4 pl-0"
@click="handleBatchModify" @click="handleBatchModify"
...@@ -46,7 +48,7 @@ ...@@ -46,7 +48,7 @@
<Search class="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-neutral-500 z-10" /> <Search class="absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-neutral-500 z-10" />
<el-input <el-input
v-model="chinaPersonPhone" v-model="chinaPersonPhone"
placeholder="登记人手机号" placeholder="人手机号"
class="search-input text-ellipsis-input" class="search-input text-ellipsis-input"
clearable clearable
/> />
...@@ -76,13 +78,14 @@ ...@@ -76,13 +78,14 @@
<!-- 全部审核状态 --> <!-- 全部审核状态 -->
<el-select v-model="reviewStatusFilter" placeholder="全部审核状态" class="flex-1 bg-gray-100"> <el-select v-model="reviewStatusFilter" placeholder="全部审核状态" class="flex-1 bg-gray-100">
<el-option label="全部审核状态" value="" /> <el-option label="全部审核状态" value="" />
<el-option label="未提交审核" value="-1" />
<el-option label="待审核" value="0" /> <el-option label="待审核" value="0" />
<el-option label="审核通过" value="1" /> <el-option label="审核通过" value="1" />
<el-option label="审核驳回" value="2" /> <el-option label="审核驳回" value="2" />
</el-select> </el-select>
<!-- 全部业务 --> <!-- 全部业务 -->
<el-select v-model="businessNameFilter" placeholder="全部业务" class="flex-1 bg-gray-100"> <!-- <el-select v-model="businessNameFilter" placeholder="全部业务" class="flex-1 bg-gray-100">
<el-option label="全部业务" value="" /> <el-option label="全部业务" value="" />
<el-option <el-option
v-for="businessName in uniqueBusinessNames" v-for="businessName in uniqueBusinessNames"
...@@ -90,7 +93,7 @@ ...@@ -90,7 +93,7 @@
:label="businessName.jobName" :label="businessName.jobName"
:value="businessName.jobId" :value="businessName.jobId"
/> />
</el-select> </el-select> -->
<!-- 查询和重置按钮 --> <!-- 查询和重置按钮 -->
<el-button type="primary" @click="handleSearch" class="h-10 px-4 shrink-0"> <el-button type="primary" @click="handleSearch" class="h-10 px-4 shrink-0">
...@@ -186,16 +189,14 @@ ...@@ -186,16 +189,14 @@
</el-table-column> </el-table-column>
<!-- 审核状态 --> <!-- 审核状态 -->
<el-table-column prop="auditStatus" label="审核状态" width="90" fixed="right"> <el-table-column prop="auditStatus" label="审核状态" width="120" fixed="right">
<template #default="{ row }"> <template #default="{ row }">
<span <span
v-if="row.auditStatus"
:class="getReviewStatusClass(row.auditStatus)" :class="getReviewStatusClass(row.auditStatus)"
class="px-2 py-1 rounded text-xs font-medium" class="px-2 py-1 rounded text-xs font-medium"
> >
{{ getReviewStatusName(row.auditStatus) }} {{ getReviewStatusName(row.auditStatus) }}
</span> </span>
<span v-else class="text-neutral-400">-</span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -212,7 +213,7 @@ ...@@ -212,7 +213,7 @@
详情 详情
</el-button> </el-button>
<el-button <el-button
v-if="row.auditStatus === 0" v-if="row.auditStatus===0 && permissionJson.audit"
type="primary" type="primary"
link link
size="small" size="small"
...@@ -457,8 +458,8 @@ ...@@ -457,8 +458,8 @@
<span class="font-mono">¥{{ Number(row.realMoney).toFixed(2) }}</span> <span class="font-mono">¥{{ Number(row.realMoney).toFixed(2) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="id" label="业务代码" min-width="160" /> <el-table-column prop="jobId" label="业务代码" min-width="160" />
<el-table-column prop="id" label="业务名称" min-width="160" /> <el-table-column prop="jobName" label="业务名称" min-width="160" />
<el-table-column prop="status" label="校验" width="80"> <el-table-column prop="status" label="校验" width="80">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="!row.memo" type="success" size="small">有效</el-tag> <el-tag v-if="!row.memo" type="success" size="small">有效</el-tag>
...@@ -555,14 +556,16 @@ interface Props { ...@@ -555,14 +556,16 @@ interface Props {
orders?: any[] orders?: any[]
onViewOrderDetail?: (order: any) => void onViewOrderDetail?: (order: any) => void
onUpdateOrder?: (updates: any) => void onUpdateOrder?: (updates: any) => void
shouldRestoreFilters?: boolean
} }
const props = withDefaults(defineProps<Props>(), { const props = withDefaults(defineProps<Props>(), {
orders: () => [] orders: () => [],
shouldRestoreFilters: false
}) })
// Emits // Emits
const emit = defineEmits(['view-order-detail', 'update-order', 'orders-update']) const emit = defineEmits(['view-order-detail', 'update-order', 'orders-update', 'restore-filters-complete'])
// 响应式数据 // 响应式数据
const customerPhone = ref('') const customerPhone = ref('')
...@@ -664,6 +667,7 @@ const getBusinessStatusName = (status: BusinessStatus) => { ...@@ -664,6 +667,7 @@ const getBusinessStatusName = (status: BusinessStatus) => {
const getReviewStatusClass = (status: ReviewStatus) => { const getReviewStatusClass = (status: ReviewStatus) => {
const statusMap: Record<string, string> = { const statusMap: Record<string, string> = {
'-1': 'bg-blue-100 text-blue-800',
'0': 'bg-purple-100 text-purple-800', '0': 'bg-purple-100 text-purple-800',
'1': 'bg-green-100 text-green-800', '1': 'bg-green-100 text-green-800',
'2': 'bg-orange-100 text-orange-800', '2': 'bg-orange-100 text-orange-800',
...@@ -675,6 +679,7 @@ const getReviewStatusClass = (status: ReviewStatus) => { ...@@ -675,6 +679,7 @@ const getReviewStatusClass = (status: ReviewStatus) => {
} }
const getReviewStatusName = (status: ReviewStatus) => { const getReviewStatusName = (status: ReviewStatus) => {
const statusMap: Record<string, string> = { const statusMap: Record<string, string> = {
'-1': '未提交审核',
'0': '待审核', '0': '待审核',
'1': '审核通过', '1': '审核通过',
'2': '审核驳回', '2': '审核驳回',
...@@ -685,6 +690,35 @@ const getReviewStatusName = (status: ReviewStatus) => { ...@@ -685,6 +690,35 @@ const getReviewStatusName = (status: ReviewStatus) => {
return statusMap[status] || '--' return statusMap[status] || '--'
} }
const permissionJson = computed(() => {
const userInfo = ref(localStorage.getItem('pcUserInfo') ? JSON.parse(localStorage.getItem('pcUserInfo') as string) : {})
let va = userInfo.value
let audit = false
let updateOrder = false
if(va?.functions){
let arr = va.functions.filter((item: any) => {return item.id==1})
if(arr.length>0 && arr[0].children){
let arr2 = arr[0].children.filter((item: any) => {return item.id==2})
if(arr2.length>0 && arr2[0].children){
arr2[0].children.forEach((item: any) => {
if(item.id === 4){
updateOrder = true
}
if(item.id === 5){
audit = true
}
})
}
}
}
return {audit,updateOrder}
})
// 判断行是否可选择(只有待审核的订单才能被选择) // 判断行是否可选择(只有待审核的订单才能被选择)
const isRowSelectable = (row: any) => { const isRowSelectable = (row: any) => {
return row.auditStatus === 0 return row.auditStatus === 0
...@@ -778,6 +812,19 @@ const handleBatchModify = () => { ...@@ -778,6 +812,19 @@ const handleBatchModify = () => {
} }
const handleViewDetail = (order: any) => { const handleViewDetail = (order: any) => {
// 保存当前筛选条件和分页状态到sessionStorage
const filterState = {
customerPhone: customerPhone.value,
chinaPersonPhone: chinaPersonPhone.value,
dateRange: dateRange.value,
businessStatusFilter: businessStatusFilter.value,
reviewStatusFilter: reviewStatusFilter.value,
businessNameFilter: businessNameFilter.value,
currentPage: currentPage.value,
pageSize: pageSize.value
}
sessionStorage.setItem('orderMonitoringFilterState', JSON.stringify(filterState))
let param = {...order} let param = {...order}
param.status += '' param.status += ''
...@@ -1111,11 +1158,60 @@ const applyBatchModify = () => { ...@@ -1111,11 +1158,60 @@ const applyBatchModify = () => {
resetBatchState() resetBatchState()
} }
// 恢复筛选条件
const restoreFilterState = () => {
const savedState = sessionStorage.getItem('orderMonitoringFilterState')
if (savedState) {
try {
const filterState = JSON.parse(savedState)
customerPhone.value = filterState.customerPhone || ''
chinaPersonPhone.value = filterState.chinaPersonPhone || ''
dateRange.value = filterState.dateRange || null
businessStatusFilter.value = filterState.businessStatusFilter || ''
reviewStatusFilter.value = filterState.reviewStatusFilter || ''
businessNameFilter.value = filterState.businessNameFilter || ''
currentPage.value = filterState.currentPage || 1
pageSize.value = filterState.pageSize || 20
// 清除保存的状态,避免影响后续操作
sessionStorage.removeItem('orderMonitoringFilterState')
return true
} catch (error) {
console.error('恢复筛选条件失败:', error)
sessionStorage.removeItem('orderMonitoringFilterState')
}
}
return false
}
// 初始化数据 // 初始化数据
onMounted(() => { onMounted(() => {
// 尝试恢复筛选条件,如果没有保存的状态则使用默认值
const hasRestoredState = restoreFilterState()
if (!hasRestoredState) {
// 没有保存的状态,使用默认查询
queryOrder() queryOrder()
} else {
// 有保存的状态,直接查询
queryOrder()
}
queryRule() queryRule()
}) })
// 监听shouldRestoreFilters变化
watch(() => props.shouldRestoreFilters, (newValue) => {
if (newValue) {
// 从详情页返回时恢复筛选条件
const hasRestoredState = restoreFilterState()
if (hasRestoredState) {
// 成功恢复状态后重新查询
queryOrder()
}
// 重置标志
emit('restore-filters-complete')
}
})
const queryRule = async ()=>{ const queryRule = async ()=>{
try { try {
const response = await $api.queryAllRewardList({}) const response = await $api.queryAllRewardList({})
......
...@@ -398,7 +398,7 @@ onMounted(() => { ...@@ -398,7 +398,7 @@ onMounted(() => {
}) })
const getRoleList = async ()=>{ const getRoleList = async ()=>{
try { try {
const response = await $api.queryRoleList({}) const response = await $api.queryRoleActive({})
if (response && response.c === 0) { if (response && response.c === 0) {
availableRoles.value = response.d.filter((item: any) => {return item.status==1}) availableRoles.value = response.d.filter((item: any) => {return item.status==1})
} }
......
...@@ -5,6 +5,7 @@ import { createApp } from 'vue' ...@@ -5,6 +5,7 @@ import { createApp } from 'vue'
import { createPinia } from 'pinia' import { createPinia } from 'pinia'
// Element Plus // Element Plus
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import ElementPlus from 'element-plus' import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css' import 'element-plus/dist/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue' import * as ElementPlusIconsVue from '@element-plus/icons-vue'
...@@ -29,7 +30,9 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) { ...@@ -29,7 +30,9 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.use(createPinia()) app.use(createPinia())
app.use(router) app.use(router)
app.use(ElementPlus) app.use(ElementPlus, {
locale: zhCn,
})
// 将 API 接口、请求实例、状态管理和工具方法挂载到全局 // 将 API 接口、请求实例、状态管理和工具方法挂载到全局
app.config.globalProperties.$api = api app.config.globalProperties.$api = api
......
...@@ -342,7 +342,7 @@ ...@@ -342,7 +342,7 @@
<script src="js/util.js?1212"></script> <script src="js/util.js?1212"></script>
<script src="js/vue.min.js"></script> <script src="js/vue.min.js"></script>
<script src="js/vant.min.js"></script> <script src="js/vant.min.js"></script>
<script src="js/demo.js?87555999"></script> <script src="js/demo.js?0909090"></script>
</body> </body>
</html> </html>
\ No newline at end of file \ No newline at end of file
...@@ -802,6 +802,10 @@ $('#submitPicture').click(async ()=>{ ...@@ -802,6 +802,10 @@ $('#submitPicture').click(async ()=>{
if(res.code == 200){ if(res.code == 200){
$('#pictureShowAlert').hide() $('#pictureShowAlert').hide()
if(stepId.startsWith('account_')){
noShootClick = false
}
}else{ }else{
util.toast(res.msg) util.toast(res.msg)
} }
......
...@@ -6,10 +6,10 @@ if(pa){ ...@@ -6,10 +6,10 @@ if(pa){
} }
//3205:苏州市 //3205:苏州市
let cheatArea = '3205' let cheatArea = '3205,3201'
if(cheatArea.includes(pa.areaType)){ if(cheatArea.includes(pa.areaType)){
indow.noShootNum = 5 window.noShootNum = 5
window.snInputNum = 6 window.snInputNum = 6
window.accountInputNum = 6 window.accountInputNum = 6
}else if(pa.orderId == '3356158'){ }else if(pa.orderId == '3356158'){
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!