Преглед на файлове

feat: add mock data and fix dimension page load logic

1. 为岗位分布、人员列表、班组/站点画像页面添加默认模拟数据
2. 修复评分维度页面未预先加载维度数据的问题
huoyi@samsundot.com преди 3 седмици
родител
ревизия
08765e17c1

+ 14 - 2
src/views/portraitManagement/components/ProfileMembers.vue

@@ -13,11 +13,23 @@ import RollingTable from './rollingTable.vue'
13 13
 const props = defineProps({
14 14
   columns: {
15 15
     type: Array,
16
-    default: () => []
16
+    default: () => [
17
+      { label: '姓名', prop: 'name' },
18
+      { label: '岗位', prop: 'post' },
19
+      { label: '技能等级', prop: 'skillLevel' },
20
+      { label: '开机年限', prop: 'years' }
21
+    ]
17 22
   },
18 23
   data: {
19 24
     type: Array,
20
-    default: () => []
25
+    default: () => [
26
+      { name: '张三', post: '主值班员', skillLevel: '高级工', years: '8年' },
27
+      { name: '李四', post: '副值班员', skillLevel: '中级工', years: '5年' },
28
+      { name: '王五', post: '巡检员', skillLevel: '高级工', years: '6年' },
29
+      { name: '赵六', post: '维护员', skillLevel: '中级工', years: '3年' },
30
+      { name: '钱七', post: '安全员', skillLevel: '技师', years: '12年' },
31
+      { name: '孙八', post: '主值班员', skillLevel: '高级技师', years: '15年' }
32
+    ]
21 33
   }
22 34
 })
23 35
 </script>

+ 6 - 6
src/views/portraitManagement/components/ProfilePositionDistribution.vue

@@ -38,20 +38,20 @@ const props = defineProps({
38 38
 })
39 39
 
40 40
 const defaultSkillData = {
41
-  categories: [],
42
-  values: [],
41
+  categories: ['初级工', '中级工', '高级工', '技师', '高级技师'],
42
+  values: [30, 45, 60, 35, 20],
43 43
   colors: ['#4da6ff', '#0f46fa']
44 44
 }
45 45
 
46 46
 const defaultOperateData = {
47
-  categories: [],
48
-  values: [],
47
+  categories: ['1年以下', '1~3年', '3~5年', '5~10年', '10年以上'],
48
+  values: [15, 40, 55, 45, 30],
49 49
   colors: ['#6bcb77', '#2ecc71']
50 50
 }
51 51
 
52 52
 const defaultPostData = {
53
-  categories: [],
54
-  values: [],
53
+  categories: ['主值班员', '副值班员', '巡检员', '维护员', '安全员'],
54
+  values: [25, 50, 40, 30, 20],
55 55
   colors: ['#ff6b6b', '#ee5a24']
56 56
 }
57 57
 

+ 21 - 15
src/views/portraitManagement/deptProfile/component/profile.vue

@@ -108,23 +108,29 @@ const politicalData = ref([
108 108
   { value: 6, name: '其他', itemStyle: { color: '#4d96ff' } }
109 109
 ])
110 110
 
111
-const skillData = ref({
112
-  categories: ['等级1', '等级2', '等级3', '等级4', '等级5'],
113
-  values: [3, 5, 7, 8, 4],
114
-  colors: ['#4da6ff', '#0f46fa']
115
-})
111
+const skillData = ref([
112
+  { name: '等级1', value: 3 },
113
+  { name: '等级2', value: 5 },
114
+  { name: '等级3', value: 7 },
115
+  { name: '等级4', value: 8 },
116
+  { name: '等级5', value: 4 }
117
+])
116 118
 
117
-const operateData = ref({
118
-  categories: ['0-3', '4-7', '8-11', '12-15', '15-18'],
119
-  values: [4, 2, 3, 5, 8],
120
-  colors: ['#6bcb77', '#2ecc71']
121
-})
119
+const operateData = ref([
120
+  { name: '0-3年', value: 4 },
121
+  { name: '4-7年', value: 2 },
122
+  { name: '8-11年', value: 3 },
123
+  { name: '12-15年', value: 5 },
124
+  { name: '15年以上', value: 8 }
125
+])
122 126
 
123
-const postData = ref({
124
-  categories: ['前传', '人身', '验证', '开包', '开机'],
125
-  values: [4, 5, 6, 7, 8],
126
-  colors: ['#ff6b6b', '#ee5a24']
127
-})
127
+const postData = ref([
128
+  { name: '前传', value: 4 },
129
+  { name: '人身', value: 5 },
130
+  { name: '验证', value: 6 },
131
+  { name: '开包', value: 7 },
132
+  { name: '开机', value: 8 }
133
+])
128 134
 
129 135
 watch(() => props.queryParams, (newParams) => {
130 136
   fetchData(newParams)

+ 13 - 2
src/views/portraitManagement/groupProfile/component/profile.vue

@@ -43,11 +43,22 @@ const props = defineProps({
43 43
 const radarData = ref([])
44 44
 
45 45
 const teamMembers = ref([
46
- 
46
+  { deptName: '安检一队', employeeCount: 32, partyMemberCount: 8, avgAge: 28.5, avgServiceYear: 4.2, avgXrayYear: 3.1, totalScore: 92.5 },
47
+  { deptName: '安检二队', employeeCount: 28, partyMemberCount: 6, avgAge: 30.2, avgServiceYear: 5.8, avgXrayYear: 4.5, totalScore: 88.3 },
48
+  { deptName: '安检三队', employeeCount: 35, partyMemberCount: 10, avgAge: 27.8, avgServiceYear: 3.5, avgXrayYear: 2.8, totalScore: 90.1 },
49
+  { deptName: '安检四队', employeeCount: 30, partyMemberCount: 7, avgAge: 29.6, avgServiceYear: 4.8, avgXrayYear: 3.6, totalScore: 86.7 },
50
+  { deptName: '安检五队', employeeCount: 26, partyMemberCount: 5, avgAge: 31.0, avgServiceYear: 6.2, avgXrayYear: 5.0, totalScore: 85.9 },
51
+  { deptName: '安检六队', employeeCount: 33, partyMemberCount: 9, avgAge: 28.0, avgServiceYear: 3.8, avgXrayYear: 2.5, totalScore: 91.2 }
47 52
 ])
48 53
 
49 54
 const memberColumns = ref([
50
- 
55
+  { label: '部门', prop: 'deptName' },
56
+  { label: '员工数量', prop: 'employeeCount' },
57
+  { label: '党员数量', prop: 'partyMemberCount' },
58
+  { label: '平均年龄', prop: 'avgAge' },
59
+  { label: '平均司龄', prop: 'avgServiceYear' },
60
+  { label: '平均开机年限', prop: 'avgXrayYear' },
61
+  { label: '综合得分', prop: 'totalScore' }
51 62
 ])
52 63
 
53 64
 const genderData = ref([

+ 31 - 5
src/views/portraitManagement/stationProfile/component/profile.vue

@@ -49,16 +49,42 @@ const teamColumns = [
49 49
   { label: '综合得分', prop: 'totalScore' }
50 50
 ]
51 51
 
52
-const teamData = ref([])
52
+const teamData = ref([
53
+  { dept: '安检一科', empCount: 58, partyCount: 15, avgAge: 29.2, avgWorkYears: 5.1, certLevel: '高级工', avgUpgradeAge: 32.5, totalScore: 91.8 },
54
+  { dept: '安检二科', empCount: 52, partyCount: 12, avgAge: 30.5, avgWorkYears: 6.3, certLevel: '技师', avgUpgradeAge: 34.0, totalScore: 88.6 },
55
+  { dept: '安检三科', empCount: 61, partyCount: 18, avgAge: 28.0, avgWorkYears: 4.0, certLevel: '中级工', avgUpgradeAge: 31.2, totalScore: 93.2 },
56
+  { dept: '安检四科', empCount: 55, partyCount: 14, avgAge: 29.8, avgWorkYears: 5.5, certLevel: '高级工', avgUpgradeAge: 33.1, totalScore: 87.4 },
57
+  { dept: '安检五科', empCount: 48, partyCount: 10, avgAge: 31.2, avgWorkYears: 6.8, certLevel: '技师', avgUpgradeAge: 35.0, totalScore: 85.9 },
58
+  { dept: '安检六科', empCount: 60, partyCount: 16, avgAge: 27.5, avgWorkYears: 3.8, certLevel: '中级工', avgUpgradeAge: 30.8, totalScore: 90.5 }
59
+])
53 60
 
54 61
 const genderData = ref([])
55 62
 const nationData = ref([])
56 63
 const politicalData = ref([])
57 64
 
58
-const skillData = ref([])
59
-const operateData = ref([])
60
-const postData = ref([])
61
-
65
+const skillData = ref([
66
+  { name: '等级1', value: 3 },
67
+  { name: '等级2', value: 5 },
68
+  { name: '等级3', value: 7 },
69
+  { name: '等级4', value: 8 },
70
+  { name: '等级5', value: 4 }
71
+])
72
+
73
+const operateData = ref([
74
+  { name: '0-3年', value: 4 },
75
+  { name: '4-7年', value: 2 },
76
+  { name: '8-11年', value: 3 },
77
+  { name: '12-15年', value: 5 },
78
+  { name: '15年以上', value: 8 }
79
+])
80
+
81
+const postData = ref([
82
+  { name: '前传', value: 4 },
83
+  { name: '人身', value: 5 },
84
+  { name: '验证', value: 6 },
85
+  { name: '开包', value: 7 },
86
+  { name: '开机', value: 8 }
87
+])
62 88
 const fetchTeamData = async (params) => {
63 89
   try {
64 90
     const res = await getDeptMembers(params)

+ 21 - 15
src/views/portraitManagement/teamProfile/component/profile.vue

@@ -108,23 +108,29 @@ const politicalData = ref([
108 108
   { value: 6, name: '其他', itemStyle: { color: '#4d96ff' } }
109 109
 ])
110 110
 
111
-const skillData = ref({
112
-  categories: ['等级1', '等级2', '等级3', '等级4', '等级5'],
113
-  values: [3, 5, 7, 8, 4],
114
-  colors: ['#4da6ff', '#0f46fa']
115
-})
111
+const skillData = ref([
112
+  { name: '等级1', value: 3 },
113
+  { name: '等级2', value: 5 },
114
+  { name: '等级3', value: 7 },
115
+  { name: '等级4', value: 8 },
116
+  { name: '等级5', value: 4 }
117
+])
116 118
 
117
-const operateData = ref({
118
-  categories: ['0-3', '4-7', '8-11', '12-15', '15-18'],
119
-  values: [4, 2, 3, 5, 8],
120
-  colors: ['#6bcb77', '#2ecc71']
121
-})
119
+const operateData = ref([
120
+  { name: '0-3年', value: 4 },
121
+  { name: '4-7年', value: 2 },
122
+  { name: '8-11年', value: 3 },
123
+  { name: '12-15年', value: 5 },
124
+  { name: '15年以上', value: 8 }
125
+])
122 126
 
123
-const postData = ref({
124
-  categories: ['前传', '人身', '验证', '开包', '开机'],
125
-  values: [4, 5, 6, 7, 8],
126
-  colors: ['#ff6b6b', '#ee5a24']
127
-})
127
+const postData = ref([
128
+  { name: '前传', value: 4 },
129
+  { name: '人身', value: 5 },
130
+  { name: '验证', value: 6 },
131
+  { name: '开包', value: 7 },
132
+  { name: '开机', value: 8 }
133
+])
128 134
 
129 135
 watch(() => props.queryParams, (newParams) => {
130 136
   fetchData(newParams)

+ 1 - 0
src/views/score/dimension/index.vue

@@ -274,6 +274,7 @@ const parentIndicatorName = ref('')
274 274
 
275 275
 async function loadTree() {
276 276
   if (!selectedDim.value) return
277
+  loadDimensions()
277 278
   treeLoading.value = true
278 279
   const r = await treeIndicator({ dimensionId: selectedDim.value.id, org: scoreLevel.value }).finally(() => treeLoading.value = false)
279 280
   indicatorTree.value = r.data || []