| | |
| | | }); |
| | | const userInfo = ref({}); |
| | | |
| | | onMounted(() => { |
| | | onMounted(async () => { |
| | | let res = userStore.getInfo(); |
| | | userInfo.value = res.user; |
| | | // 确保字典数据已加载完成,避免第一次进入页面时付款类型显示不出来 |
| | | try { |
| | | if (!dictStore.dict || dictStore.dict.length === 0) { |
| | | await dictStore.initDict(); |
| | | } |
| | | } catch (error) { |
| | | console.error('字典数据加载失败:', error); |
| | | } |
| | | getList() |
| | | }) |
| | | const handleEdit = (row) => { |
| | |
| | | stopAutoRefresh() |
| | | } |
| | | } |
| | | // 获取在职员工数 |
| | | const getStaffCount = async () => { |
| | | try { |
| | | const res = await staffOnJobListPage({ staffState: 1, current: 1, size: 1 }) |
| | | if (res && res.data) { |
| | | keyMetrics.value[3].value = res.data.total || 0 |
| | | } |
| | | } catch (error) { |
| | | console.error('获取在职员工数失败:', error) |
| | | } |
| | | } |
| | | |
| | | // 生成模拟数据 |
| | | const generateMockData = () => { |
| | |
| | | |
| | | keyMetrics.value[2].value = (Math.random() * 15 + 85).toFixed(1) |
| | | keyMetrics.value[2].trend = (Math.random() * 3 - 1.5).toFixed(1) |
| | | |
| | | keyMetrics.value[3].value = Math.floor(Math.random() * 50 + 200) |
| | | keyMetrics.value[3].trend = (Math.random() * 2 - 1).toFixed(1) |
| | | |
| | | // 生成部门数据 |
| | | const departments = ['技术部', '销售部', '人事部', '财务部', '生产部', '市场部'] |
| | |
| | | // 生命周期 |
| | | onMounted(() => { |
| | | generateMockData() |
| | | getStaffCount() |
| | | initCharts() |
| | | startAutoRefresh() |
| | | }) |