miaofuhao 3 weeks ago
parent
commit
446498b17b

+ 43 - 0
apps/web-ele/src/api/archive/operationsManagement/model.ts

@@ -800,3 +800,46 @@ export interface FormBusinessPlan {
800 800
   // 上次经营计划
801 801
   lastBusinessPlan?: FormBusinessPlan;
802 802
 }
803
+
804
+export interface FormParticipationRecord {
805
+  // 主键ID
806
+  id?: number;
807
+  // 任务类型
808
+  type?: string;
809
+  // 片区id
810
+  areaId?: number;
811
+  // 油站ID
812
+  stationId?: number;
813
+  // 任务id
814
+  taskId?: number;
815
+  // 任务名称
816
+  taskName?: string;
817
+  // 执行人ID
818
+  executorId?: number;
819
+  // 执行人姓名
820
+  executorName?: string;
821
+  // 岗位
822
+  position?: number;
823
+  // 是否评论0否1是
824
+  isComment?: number;
825
+  // 创建类型0系统1新增
826
+  createType?: number;
827
+  // 评论id
828
+  commentId?: number;
829
+  // 截止时间
830
+  deadline?: string;
831
+  // 处理时间
832
+  processTime?: string;
833
+  // 完成状态: 0-按时完成, 1-逾期完成
834
+  completionStatus?: number;
835
+  // 逻辑删除标识
836
+  delFlag?: number;
837
+  // 参与时间
838
+  participationTime?: string;
839
+  // 参加记录
840
+  participationRecord?: string;
841
+  // 图片
842
+  images?: string;
843
+  // 记录类型1参与油站例会2参与应急演练
844
+  recordType?: number;
845
+}

+ 14 - 1
apps/web-ele/src/api/archive/operationsManagement/operationsManagement.ts

@@ -1,4 +1,4 @@
1
-import type { TaskCheckModel, TaskPhotoModel, CompetitorMarketingSurveyModel, CompetitorSalesSurveyModel, TurnInRateSurveyModel, LicenseTaskModel, TeamShiftLogModel, TaskAttachmentModel, FormManagementPlan, FormOperationalWeeklyReport, FormMeetingRecords, TaskCustomerComplaint, FormBusinessPlan } from './model';
1
+import type { TaskCheckModel, TaskPhotoModel, CompetitorMarketingSurveyModel, CompetitorSalesSurveyModel, TurnInRateSurveyModel, LicenseTaskModel, TeamShiftLogModel, TaskAttachmentModel, FormManagementPlan, FormOperationalWeeklyReport, FormMeetingRecords, TaskCustomerComplaint, FormBusinessPlan, FormParticipationRecord } from './model';
2 2
 
3 3
 import type { BaseResult } from '#/api/base-result';
4 4
 
@@ -44,6 +44,8 @@ enum Api {
44 44
   customerComplaintExport = '/taskCustomerComplaint/complaint/export',
45 45
   // 经营计划列表
46 46
   businessPlanList = '/formBusinessPlan/plan/list',
47
+  // 参与记录列表
48
+  participationRecordList = '/formParticipationRecord/record/list',
47 49
 }
48 50
 
49 51
 /**
@@ -247,3 +249,14 @@ export function getBusinessPlanList(params: any) {
247 249
   });
248 250
 }
249 251
 
252
+/**
253
+ * 查询参与记录列表
254
+ * @param params 查询参数
255
+ * @returns 参与记录列表
256
+ */
257
+export function getParticipationRecordList(params: any) {
258
+  return requestClient.get<BaseResult<FormParticipationRecord[]>>(Api.participationRecordList, {
259
+    params,
260
+  });
261
+}
262
+

+ 106 - 58
apps/web-ele/src/views/Archive/headquartersDistrict/tankerInspect/index.vue

@@ -1,77 +1,125 @@
1
-<script lang="ts" setup>
2
-// 导入部分
3
-import type { VbenFormProps } from '@vben/common-ui';
4
-import type { VxeGridProps } from '#/adapter/vxe-table';
1
+<template>
2
+  <Page :auto-content-height="true">
3
+    <BasicTable table-title="油轮检查列表">
4
+      <template #action="{ row }">
5
+        <el-button
6
+          size="small"
7
+          type="primary"
8
+          plain
9
+          @click="() => handleTaskClick(row.id)"
10
+          >查看</el-button
11
+        >
12
+        <el-button size="small" type="primary" plain>打印</el-button>
13
+      </template>
14
+    </BasicTable>
15
+  </Page>
16
+</template>
17
+
18
+<script setup lang="ts">
19
+import { ref } from 'vue';
20
+import { useRouter, useRoute } from 'vue-router';
5 21
 import { Page } from '@vben/common-ui';
6
-import { useVbenVxeGrid } from '#/adapter/vxe-table';
7
-import { ElButton, ElSpace } from 'element-plus';
8
-import { tableColumns, TANKER_INSPECT_MOCK_DATA, queryFormSchema } from './tankerInspect-data';
22
+import { useVbenVxeGrid, type VxeGridProps } from '#/adapter/vxe-table';
23
+import { columns, querySchema } from './tankerInspect-data';
24
+import type { VbenFormProps } from '@vben/common-ui';
25
+import { getParticipationRecordList } from '#/api/archive/operationsManagement/operationsManagement';
26
+
27
+const showSearchForm = ref(true) as any;
28
+const router = useRouter();
29
+const route = useRoute();
30
+
31
+// 表单字段到 API 字段的映射
32
+function mapFormToApi(formValues: any, page: any) {
33
+  const apiParams = {
34
+    pageNum: page.currentPage,
35
+    pageSize: page.pageSize,
36
+    type: route.query.type || '',
37
+    directoryType: route.query.directoryType || '',
38
+  };
39
+  
40
+  // 处理处理时间
41
+  if (formValues.processTime) {
42
+    apiParams.processStartTime = formValues.processTime[0];
43
+    apiParams.processEndTime = formValues.processTime[1];
44
+  }
45
+  
46
+  // 其他字段
47
+  Object.keys(formValues).forEach(key => {
48
+    if (key !== 'processTime') {
49
+      apiParams[key] = formValues[key];
50
+    }
51
+  });
52
+  
53
+  return apiParams;
54
+}
55
+
9 56
 
10
-// 表单配置
11 57
 const formOptions: VbenFormProps = {
12 58
   commonConfig: {
13 59
     labelWidth: 80,
14
-    componentProps: { allowClear: true },
60
+    componentProps: {
61
+      allowClear: true,
62
+    },
15 63
   },
16
-  schema: queryFormSchema(),
17
-  wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',
64
+  schema: querySchema(),
65
+  wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
18 66
 };
19 67
 
20
-// 油轮检查表格配置
21
-const tankerInspectGridOptions: VxeGridProps = {
22
-  columns: tableColumns,
23
-  height: '800px',
68
+// 列表中显示配置
69
+const gridOptions: VxeGridProps = {
70
+  checkboxConfig: {
71
+    // 高亮
72
+    highlight: true,
73
+    // 翻页时保留选中状态
74
+    reserve: true,
75
+    // 点击行选中
76
+    trigger: 'default',
77
+  },
78
+  columns,
79
+  size: 'medium',
80
+  height: 'auto',
24 81
   proxyConfig: {
25
-    autoLoad: true,
26 82
     ajax: {
27
-      query: async () => ({ items: TANKER_INSPECT_MOCK_DATA, total: TANKER_INSPECT_MOCK_DATA.length }),
83
+      query: async ({ page }, formValues = {}) => {
84
+        // 映射表单字段到 API 字段
85
+        const apiParams = mapFormToApi(formValues, page);
86
+        
87
+        // 调用API
88
+        const response = await getParticipationRecordList(apiParams);
89
+        
90
+        // 映射 API 响应数据到页面显示字段
91
+        const items = response.rows;
92
+        
93
+        return {
94
+          items,
95
+          total: response.total,
96
+        };
97
+      },
28 98
     },
29 99
   },
30
-  rowConfig: { keyField: 'id' },
31
-  pagerConfig: { enabled: true, pageSize: 100, pageSizes: [10, 20, 50, 100] },
100
+  rowConfig: {
101
+    keyField: 'id',
102
+  },
103
+  toolbarConfig: {
104
+    custom: true,
105
+    refresh: true,
106
+    zoom: true,
107
+  },
108
+  id: 'tanker-inspect-index',
32 109
 };
33
-
34
-// 创建表格实例
35
-const [TankerInspectTable] = useVbenVxeGrid({ formOptions, gridOptions: tankerInspectGridOptions });
36
-
37
-// 导出按钮点击事件
38
-const handleExport = () => {
39
-  console.log('导出数据');
40
-  // TODO: 添加导出逻辑
110
+const [BasicTable] = useVbenVxeGrid({
111
+  showSearchForm,
112
+  formOptions,
113
+  gridOptions,
114
+});
115
+const handleTaskClick = (taskId: number) => {
116
+  // 跳转到任务详情页面
117
+  router.push(`/schedule/detail?id=${taskId}&type=${route.query.type || ''}&directoryType=${route.query.directoryType || ''}`);
41 118
 };
42 119
 </script>
43 120
 
44
-<template>
45
-  <Page :auto-content-height="true">
46
-    <div class="tanker-inspect-container">
47
-      <!-- 油轮检查表格 -->
48
-      <div class="table-container">
49
-        <TankerInspectTable table-title="油轮检查列表">
50
-          <template #toolbar-tools>
51
-            <ElSpace>
52
-              <ElButton 
53
-                @click="handleExport"
54
-                v-access:code="['system:tankerInspect:export']"
55
-              >
56
-                导出
57
-              </ElButton>
58
-            </ElSpace>
59
-          </template>
60
-          <template #action="{ row }">
61
-            <ElSpace>
62
-              <ElButton type="primary" size="small">查看</ElButton>
63
-            </ElSpace>
64
-          </template>
65
-        </TankerInspectTable>
66
-      </div>
67
-    </div>
68
-  </Page>
69
-</template>
70
-
71 121
 <style scoped lang="scss">
72
-.tanker-inspect-container {
73
-  min-height: calc(100vh - 120px);
74
-  padding: 16px;
75
-  background-color: #fff;
122
+:deep(.el-tooltip__trigger:focus) {
123
+  outline: none;
76 124
 }
77 125
 </style>

+ 187 - 203
apps/web-ele/src/views/Archive/headquartersDistrict/tankerInspect/tankerInspect-data.tsx

@@ -1,240 +1,224 @@
1 1
 import type { VxeGridProps } from '#/adapter/vxe-table';
2 2
 import type { FormSchemaGetter } from '#/adapter/form';
3 3
 
4
-// 油轮检查类型定义
5
-export interface TankerInspectData {
6
-  id: number;
7
-  taskName: string; // 任务名称
8
-  area: string; // 片区
9
-  station: string; // 油站
10
-  participateTime: string; // 参与时间
11
-  executor: string; // 执行人
12
-  comment: string; // 评论
13
-  deadline: string; // 截止时间
14
-  processingTime: string; // 处理时间
15
-  completionStatus: string; // 完成状态
16
-  creation: string; // 创建
17
-}
4
+import {
5
+  selectAllSysAreaList,
6
+  selectAllSysStation,
7
+} from '#/api/system/infoEntry/stationInfo/stationInfo';
18 8
 
19
-// 油轮检查表格配置
20
-export const tableColumns: VxeGridProps['columns'] = [
21
-  { title: '任务名称', field: 'taskName', minWidth: 180, align: 'center' },
22
-  { title: '片区', field: 'area', minWidth: 120, align: 'center' },
23
-  { title: '油站', field: 'station', minWidth: 150, align: 'center' },
24
-  { title: '参与时间', field: 'participateTime', minWidth: 200, align: 'center' },
25
-  { title: '执行人', field: 'executor', minWidth: 120, align: 'center' },
26
-  { title: '评论', field: 'comment', minWidth: 120, align: 'center' },
27
-  { title: '截止时间', field: 'deadline', minWidth: 200, align: 'center' },
28
-  { title: '处理时间', field: 'processingTime', minWidth: 200, align: 'center' },
29
-  { title: '完成状态', field: 'completionStatus', minWidth: 120, align: 'center' },
30
-  { title: '创建', field: 'creation', minWidth: 200, align: 'center' },
31
-  { title: '操作', minWidth: 100, align: 'center', slots: { default: 'action' } },
32
-];
9
+// 获取过滤后的岗位列表
10
+import { getFilteredPositions } from '../../utils/positionFilter';
33 11
 
34
-// 油轮检查模拟数据
35
-export const TANKER_INSPECT_MOCK_DATA: TankerInspectData[] = [
36
-  {
37
-    id: 1,
38
-    taskName: '油轮安全检查',
39
-    area: '华北片区',
40
-    station: '北京东加油站',
41
-    participateTime: '2025-01-15 09:00:00',
42
-    executor: '张三',
43
-    comment: '正常',
44
-    deadline: '2025-01-20 18:00:00',
45
-    processingTime: '2025-01-15 10:30:00',
46
-    completionStatus: '已完成',
47
-    creation: '2025-01-10 14:20:00'
12
+// 油轮检查表格配置
13
+export const columns: VxeGridProps['columns'] = [
14
+  {
15
+    type: 'checkbox',
16
+    width: 80,
48 17
   },
49 18
   {
50
-    id: 2,
51
-    taskName: '油轮设备检修',
52
-    area: '华北片区',
53
-    station: '北京西加油站',
54
-    participateTime: '2025-01-16 10:00:00',
55
-    executor: '李四',
56
-    comment: '需要更换零件',
57
-    deadline: '2025-01-22 18:00:00',
58
-    processingTime: '2025-01-16 11:45:00',
59
-    completionStatus: '处理中',
60
-    creation: '2025-01-11 09:15:00'
19
+    field: 'action',
20
+    fixed: 'right',
21
+    slots: { default: 'action' },
22
+    title: '操作',
23
+    width: 230,
61 24
   },
62 25
   {
63
-    id: 3,
64
-    taskName: '油轮防漏检查',
65
-    area: '华东片区',
66
-    station: '上海南加油站',
67
-    participateTime: '2025-01-17 13:30:00',
68
-    executor: '王五',
69
-    comment: '发现轻微泄漏',
70
-    deadline: '2025-01-23 18:00:00',
71
-    processingTime: '2025-01-17 14:50:00',
72
-    completionStatus: '待处理',
73
-    creation: '2025-01-12 16:30:00'
26
+    field: 'taskName',
27
+    title: '任务名称',
28
+    minWidth: 150,
74 29
   },
75 30
   {
76
-    id: 4,
77
-    taskName: '油轮安全检查',
78
-    area: '华东片区',
79
-    station: '上海北加油站',
80
-    participateTime: '2025-01-18 08:45:00',
81
-    executor: '赵六',
82
-    comment: '正常',
83
-    deadline: '2025-01-24 18:00:00',
84
-    processingTime: '2025-01-18 10:15:00',
85
-    completionStatus: '已完成',
86
-    creation: '2025-01-13 11:25:00'
31
+    field: 'stationId',
32
+    title: '油站',
33
+    minWidth: 120,
87 34
   },
88 35
   {
89
-    id: 5,
90
-    taskName: '油轮设备检修',
91
-    area: '华南片区',
92
-    station: '广州东加油站',
93
-    participateTime: '2025-01-19 09:30:00',
94
-    executor: '钱七',
95
-    comment: '设备运行正常',
96
-    deadline: '2025-01-25 18:00:00',
97
-    processingTime: '2025-01-19 11:00:00',
98
-    completionStatus: '已完成',
99
-    creation: '2025-01-14 10:40:00'
36
+    field: 'executorName',
37
+    title: '执行人',
38
+    minWidth: 120,
100 39
   },
101 40
   {
102
-    id: 6,
103
-    taskName: '油轮防漏检查',
104
-    area: '华南片区',
105
-    station: '广州西加油站',
106
-    participateTime: '2025-01-20 14:15:00',
107
-    executor: '孙八',
108
-    comment: '正常',
109
-    deadline: '2025-01-26 18:00:00',
110
-    processingTime: '2025-01-20 15:30:00',
111
-    completionStatus: '已完成',
112
-    creation: '2025-01-15 13:50:00'
41
+    field: 'position',
42
+    title: '岗位',
43
+    minWidth: 120,
113 44
   },
114 45
   {
115
-    id: 7,
116
-    taskName: '油轮安全检查',
117
-    area: '华北片区',
118
-    station: '天津加油站',
119
-    participateTime: '2025-01-21 10:00:00',
120
-    executor: '周九',
121
-    comment: '需要加强管理',
122
-    deadline: '2025-01-27 18:00:00',
123
-    processingTime: '2025-01-21 11:20:00',
124
-    completionStatus: '处理中',
125
-    creation: '2025-01-16 09:10:00'
46
+    field: 'isComment',
47
+    title: '评论',
48
+    minWidth: 100,
49
+    align: 'center',
50
+    formatter: (cellValue: number) => {
51
+      return cellValue === 1 ? '已评' : '未评';
52
+    },
126 53
   },
127 54
   {
128
-    id: 8,
129
-    taskName: '油轮设备检修',
130
-    area: '华东片区',
131
-    station: '南京加油站',
132
-    participateTime: '2025-01-22 13:30:00',
133
-    executor: '吴十',
134
-    comment: '设备老化',
135
-    deadline: '2025-01-28 18:00:00',
136
-    processingTime: '2025-01-22 14:45:00',
137
-    completionStatus: '待处理',
138
-    creation: '2025-01-17 14:20:00'
55
+    field: 'deadline',
56
+    title: '截止时间',
57
+    minWidth: 180,
139 58
   },
140
-];
141
-
142
-export const queryFormSchema: FormSchemaGetter = () => QUERY_FORM_SCHEMA;
143
-
144
-// 查询表单模式配置
145
-const QUERY_FORM_SCHEMA = [
146
-  {
147
-    component: 'Select',
148
-    fieldName: 'area',
149
-    label: '片区',
150
-    componentProps: {
151
-      placeholder: '请选择片区',
152
-      options: [
153
-        { label: '华北片区', value: '华北片区' },
154
-        { label: '华东片区', value: '华东片区' },
155
-        { label: '华南片区', value: '华南片区' },
156
-      ],
157
-    },
59
+  {
60
+    field: 'processTime',
61
+    title: '处理时间',
62
+    minWidth: 180,
158 63
   },
159 64
   {
160
-    component: 'Select',
161
-    fieldName: 'station',
162
-    label: '油站',
163
-    componentProps: {
164
-      placeholder: '请选择油站',
165
-      options: [
166
-        { label: '北京东加油站', value: '北京东加油站' },
167
-        { label: '北京西加油站', value: '北京西加油站' },
168
-        { label: '上海南加油站', value: '上海南加油站' },
169
-        { label: '上海北加油站', value: '上海北加油站' },
170
-        { label: '广州东加油站', value: '广州东加油站' },
171
-        { label: '广州西加油站', value: '广州西加油站' },
172
-        { label: '天津加油站', value: '天津加油站' },
173
-        { label: '南京加油站', value: '南京加油站' },
174
-      ],
65
+    field: 'completionStatus',
66
+    title: '完成状态',
67
+    minWidth: 120,
68
+    align: 'center',
69
+    formatter: ({ row }) => {
70
+      return row.completionStatus === 0 ? '按时完成' : '逾期完成';
175 71
     },
176 72
   },
177 73
   {
178
-    component: 'Input',
179
-    fieldName: 'taskName',
180
-    label: '任务名称',
181
-    componentProps: {
182
-      placeholder: '请输入任务名称',
74
+    field: 'createType',
75
+    title: '创建',
76
+    minWidth: 100,
77
+    align: 'center',
78
+    formatter: (cellValue: number) => {
79
+      return cellValue === 0 ? '系统' : '新增';
183 80
     },
184 81
   },
185 82
   {
186
-    component: 'DatePicker',
187
-    fieldName: 'participateTimeRange',
188
-    label: '参与时间',
189
-    componentProps: {
190
-      placeholder: '请选择参与时间范围',
191
-      type: 'daterange',
192
-      rangeSeparator: '至',
193
-      startPlaceholder: '开始时间',
194
-      endPlaceholder: '结束时间',
195
-      valueFormat: 'YYYY-MM-DD HH:mm:ss'
196
-    },
83
+    field: 'participationTime',
84
+    title: '参与时间',
85
+    minWidth: 180,
197 86
   },
198 87
   {
199
-    component: 'DatePicker',
200
-    fieldName: 'processingTimeRange',
201
-    label: '处理时间',
202
-    componentProps: {
203
-      placeholder: '请选择处理时间范围',
204
-      type: 'daterange',
205
-      rangeSeparator: '至',
206
-      startPlaceholder: '开始时间',
207
-      endPlaceholder: '结束时间',
208
-      valueFormat: 'YYYY-MM-DD HH:mm:ss'
209
-    },
88
+    field: 'participationRecord',
89
+    title: '参加记录',
90
+    minWidth: 150,
210 91
   },
211 92
   {
212
-    component: 'Select',
213
-    fieldName: 'comment',
214
-    label: '评论',
215
-    componentProps: {
216
-      placeholder: '请选择评论',
217
-      options: [
218
-        { label: '正常', value: '正常' },
219
-        { label: '需要更换零件', value: '需要更换零件' },
220
-        { label: '发现轻微泄漏', value: '发现轻微泄漏' },
221
-        { label: '需要加强管理', value: '需要加强管理' },
222
-        { label: '设备老化', value: '设备老化' },
223
-        { label: '设备运行正常', value: '设备运行正常' },
224
-      ],
93
+    field: 'recordType',
94
+    title: '记录类型',
95
+    minWidth: 120,
96
+    align: 'center',
97
+    formatter: (cellValue: number) => {
98
+      return cellValue === 1 ? '参与油站例会' : '参与应急演练';
225 99
     },
226 100
   },
101
+];
102
+
103
+export const querySchema: FormSchemaGetter = () => [
227 104
   {
228
-    component: 'Select',
229
-    fieldName: 'completionStatus',
230
-    label: '状态',
231
-    componentProps: {
232
-      placeholder: '请选择状态',
233
-      options: [
234
-        { label: '已完成', value: '已完成' },
235
-        { label: '处理中', value: '处理中' },
236
-        { label: '待处理', value: '待处理' },
237
-      ],
105
+      component: 'ApiSelect',
106
+      fieldName: 'areaId',
107
+      label: '片区',
108
+      componentProps: {
109
+        placeholder: '请选择片区',
110
+        clearable: true,
111
+        api: async () => {
112
+          const resp = await selectAllSysAreaList();
113
+          const data = resp || [];
114
+          return Array.isArray(data)
115
+            ? data.map((item: any) => ({
116
+                label: item.areaName,
117
+                value: item.id,
118
+              }))
119
+            : [];
120
+        },
121
+        labelField: 'label',
122
+        valueField: 'value',
123
+      },
238 124
     },
239
-  },
125
+  {
126
+      component: 'ApiSelect',
127
+      fieldName: 'stationId',
128
+      label: '油站',
129
+      componentProps: {
130
+        placeholder: '请选择油站',
131
+        clearable: true,
132
+        api: async () => {
133
+          const resp = await selectAllSysStation();
134
+          const data = resp || [];
135
+          return Array.isArray(data)
136
+            ? data.map((item: any) => ({
137
+                label: item.stationName,
138
+                value: item.id.toString(),
139
+              }))
140
+            : [];
141
+        },
142
+        labelField: 'label',
143
+        valueField: 'value',
144
+      },
145
+    },
146
+   {
147
+     component: 'Select',
148
+     componentProps: {
149
+       options: [
150
+         { label: '按时完成', value: 0 },
151
+         { label: '逾期完成', value: 1 },
152
+       ],
153
+     },
154
+     fieldName: 'completionStatus',
155
+     label: '状态',
156
+   },
157
+   {
158
+     component: 'DatePicker',
159
+     componentProps: {
160
+       type: 'daterange',
161
+       format: 'YYYY-MM-DD HH:mm:ss',
162
+       valueFormat: 'YYYY-MM-DD HH:mm:ss',
163
+       startPlaceholder: '开始日期',
164
+       endPlaceholder: '结束日期',
165
+     },
166
+     fieldName: 'processTime',
167
+     label: '处理时间',
168
+   },
169
+   {
170
+     component: 'Select',
171
+     componentProps: {
172
+       options: [
173
+         { label: '否', value: 0 },
174
+         { label: '是', value: 1 },
175
+       ],
176
+     },
177
+     fieldName: 'isComment',
178
+     label: '评论',
179
+   },
180
+   {
181
+     component: 'ApiSelect',
182
+     fieldName: 'position',
183
+     label: '岗位',
184
+     componentProps: {
185
+       placeholder: '请选择岗位',
186
+       clearable: true,
187
+       api: getFilteredPositions,
188
+       labelField: 'label',
189
+       valueField: 'value',
190
+     },
191
+   },
192
+   {
193
+     component: 'Select',
194
+     componentProps: {
195
+       options: [
196
+         { label: '系统', value: 0 },
197
+         { label: '新增', value: 1 },
198
+       ],
199
+     },
200
+     fieldName: 'createType',
201
+     label: '创建',
202
+   },
203
+   {
204
+     component: 'Input',
205
+     componentProps: {
206
+       placeholder: '请输入执行人',
207
+     },
208
+     fieldName: 'executorName',
209
+     label: '执行人',
210
+   },
240 211
 ];
212
+
213
+// 参与记录类型枚举
214
+export const RECORD_TYPE = {
215
+  OIL_STATION_MEETING: 1,
216
+  EMERGENCY_DRILL: 2,
217
+};
218
+
219
+// 参与记录类型映射
220
+export const RECORD_TYPE_MAP = {
221
+  [RECORD_TYPE.OIL_STATION_MEETING]: '参与油站例会',
222
+  [RECORD_TYPE.EMERGENCY_DRILL]: '参与应急演练',
223
+};
224
+

+ 2 - 2
apps/web-ele/src/views/aiAnalysis/home/index.vue

@@ -38,9 +38,9 @@
38 38
         <div class="card-icon camera">
39 39
           <img :src="cameraIcon" alt="摄像头图标" />
40 40
         </div>
41
-        <div class="card-title">接入摄像头数量</div>
41
+        <div class="card-title">AI监控数量</div>
42 42
         <div class="card-value">{{ detectStatistics.cameraCount || 0 }}个</div>
43
-        <div class="card-percentage">占所有设备</div>
43
+        <div class="card-percentage">占所有设备<span>100%</span></div>
44 44
       </div>
45 45
       <div class="card-item">
46 46
         <div class="card-icon monitor-type">

+ 1 - 1
apps/web-ele/src/views/oilstation/base/config-data.tsx

@@ -146,7 +146,7 @@ export const drawerFormSchema: FormSchemaGetter = () => [
146 146
         return Array.isArray(data)
147 147
           ? data.map((item: any) => ({
148 148
               label: item.areaName,
149
-              value: item.id,
149
+              value: item.id.toString(),
150 150
             }))
151 151
           : [];
152 152
       },

+ 17 - 2
apps/web-ele/src/views/oilstation/gasgun/gasgun-data.tsx

@@ -125,12 +125,27 @@ export const drawerFormSchema: FormSchemaGetter = () => [
125 125
     rules: 'required',
126 126
   },
127 127
   {
128
-    component: 'Select',
128
+    component: 'ApiSelect',
129
+    fieldName: 'gunName',
130
+    label: '油枪名称',
131
+    componentProps: {
132
+      placeholder: '请选择油枪名称',
133
+      options: getDictOptions('oil_gun').map((item: any) => ({
134
+        label: item.label,
135
+        value: item.value.toString(),
136
+      })),
137
+    },
138
+  },
139
+  {
140
+    component: 'ApiSelect',
129 141
     fieldName: 'oilType',
130 142
     label: '油品种类',
131 143
     componentProps: {
132 144
       placeholder: '请选择油品种类',
133
-      options: getDictOptions('oil_product'),
145
+      options: getDictOptions('oil_product').map((item: any) => ({
146
+        label: item.label,
147
+        value: item.value.toString(),
148
+      })),
134 149
     },
135 150
     rules: 'required',
136 151
   },

+ 2 - 2
apps/web-ele/src/views/system/user/user-drawer.vue

@@ -19,7 +19,7 @@ import { useVbenForm, z } from '#/adapter/form';
19 19
 import { deptTree } from '#/api/system/dept/dept';
20 20
 import { selectAllSysAreaList } from '#/api/system/infoEntry/stationInfo/stationInfo';
21 21
 // @ts-ignore
22
-import { selectAllSysStationAreaList } from '#/api/system/infoEntry/stationInfo/stationInfo';
22
+import { selectAllSysStation } from '#/api/system/infoEntry/stationInfo/stationInfo';
23 23
 // @ts-ignore
24 24
 import { getPostList } from '#/api/system/post/post';
25 25
 // @ts-ignore
@@ -195,7 +195,7 @@ const [Form, FormApi] = useVbenForm({
195 195
       componentProps: {
196 196
         getPopupContainer,
197 197
         api: async () => {
198
-          const data = await selectAllSysStationAreaList();
198
+          const data = await selectAllSysStation();
199 199
 
200 200
           return data;
201 201
         },

+ 1 - 1
apps/web-ele/src/views/workflow/components/flow-designer.vue

@@ -47,7 +47,7 @@ function messageHandler(event: MessageEvent) {
47 47
       // 关闭当前tab
48 48
       closeCurrentTab();
49 49
       // 跳转到流程定义列表
50
-      router.push('/workflow/processDefinition');
50
+      router.push('/system/workflow/processDefinition');
51 51
       break;
52 52
     }
53 53
   }