xiaweibo 2 ماه پیش
والد
کامیت
00b3bb230b

+ 1 - 2
src/api/production-safety/special-equipment.ts

@@ -97,9 +97,8 @@ export function updateSpecialEquipment(data: SpecialEquipment) {
 /** 删除特种设备设施 */
 export function deleteSpecialEquipment(id: number) {
   return http.request({
-    url: '/specialEquipment/delete',
+    url: `/specialEquipment/delete?id=${id}`,
     method: 'delete',
-    params: { id },
   });
 }
 

+ 46 - 8
src/views/production-safety/risk-identification-and-control/special-equipment-manage/configs/form.ts

@@ -1,5 +1,18 @@
 import type { FormConfig } from '@/types/basic-form';
 
+/** 设备类别选项(设备类别名称) */
+export const DEVICE_CATEGORY_OPTIONS = [
+  { label: 'GC2', value: 1 },
+  { label: '机动工艺车辆', value: 2 },
+];
+
+/** 设备种类选项(设备种类名称) */
+export const DEVICE_TYPE_OPTIONS = [
+  { label: '压力容器', value: 1 },
+  { label: '固定式压力容器', value: 2 },
+  { label: '压力管道', value: 3 },
+];
+
 // 特种设备设施 - 基础表单配置(新增/编辑可用,查看时外层禁用)
 export const SPECIAL_EQUIPMENT_FORM_CONFIG: FormConfig[] = [
   {
@@ -35,20 +48,26 @@ export const SPECIAL_EQUIPMENT_FORM_CONFIG: FormConfig[] = [
     },
   },
   {
-    prop: 'categoryName',
+    prop: 'categoryId',
     label: '设备类别:',
-    component: 'ElInput',
+    component: 'ElSelect',
     componentProps: {
-      placeholder: '',
+      placeholder: '请选择设备类别',
+      clearable: true,
+      style: { width: '100%' },
     },
+    selectOptions: DEVICE_CATEGORY_OPTIONS,
   },
   {
-    prop: 'typeName',
+    prop: 'typeId',
     label: '设备种类:',
-    component: 'ElInput',
+    component: 'ElSelect',
     componentProps: {
-      placeholder: '',
+      placeholder: '请选择设备种类',
+      clearable: true,
+      style: { width: '100%' },
     },
+    selectOptions: DEVICE_TYPE_OPTIONS,
   },
   {
     prop: 'registerCode',
@@ -188,8 +207,8 @@ export const SPECIAL_EQUIPMENT_FORM_DATA = {
   assetId: '',
   deviceName: '',
   useUnit: '',
-  categoryName: '',
-  typeName: '',
+  categoryId: undefined as number | undefined,
+  typeId: undefined as number | undefined,
   registerCode: '',
   licenseNo: '',
   deviceCode: '',
@@ -209,9 +228,28 @@ export const SPECIAL_EQUIPMENT_FORM_DATA = {
 };
 
 export const SPECIAL_EQUIPMENT_FORM_RULES = {
+  deviceId: [{ required: true, message: '设备ID不能为空', trigger: 'blur' }],
+  assetId: [{ required: true, message: '设备固资ID不能为空', trigger: 'blur' }],
   deviceName: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
   useUnit: [{ required: true, message: '使用单位不能为空', trigger: 'blur' }],
+  categoryId: [{ required: true, message: '请选择设备类别', trigger: 'change' }],
+  typeId: [{ required: true, message: '请选择设备种类', trigger: 'change' }],
+  registerCode: [{ required: true, message: '注册代码不能为空', trigger: 'blur' }],
+  licenseNo: [{ required: true, message: '使用证号不能为空', trigger: 'blur' }],
+  deviceCode: [{ required: true, message: '设备编码不能为空', trigger: 'blur' }],
+  safeLocation: [{ required: true, message: '安全地点不能为空', trigger: 'blur' }],
+  useDepartment: [{ required: true, message: '请选择使用部门', trigger: 'change' }],
+  responsibilityDeptId: [{ required: true, message: '请选择责任部门', trigger: 'change' }],
+  responsiblePerson: [{ required: true, message: '责任人不能为空', trigger: 'blur' }],
+  jobNo: [{ required: true, message: '工号不能为空', trigger: 'blur' }],
+  factoryNo: [{ required: true, message: '出厂编号不能为空', trigger: 'blur' }],
+  productionDate: [{ required: true, message: '请选择生产日期', trigger: 'change' }],
+  startUseDate: [{ required: true, message: '请选择启用日期', trigger: 'change' }],
+  inspectionCycle: [{ required: true, message: '检测周期不能为空', trigger: 'blur' }],
+  useYears: [{ required: true, message: '使用年限不能为空', trigger: 'blur' }],
+  inspectionTime: [{ required: true, message: '请选择检测时间', trigger: 'change' }],
   deviceStatus: [{ required: true, message: '请选择设备状态', trigger: 'change' }],
+  nextInspectionDate: [{ required: true, message: '请选择下次检测时间', trigger: 'change' }],
 };
 
 

+ 59 - 6
src/views/production-safety/risk-identification-and-control/special-equipment-manage/list.vue

@@ -27,6 +27,38 @@
                   clearable
                 />
               </div>
+              <div class="select-box--item">
+                <span>设备类别:</span>
+                <el-select
+                  v-model="queryParams.queryParam.categoryId"
+                  placeholder="请选择设备类别"
+                  clearable
+                  class="act-search-input"
+                >
+                  <el-option
+                    v-for="opt in DEVICE_CATEGORY_OPTIONS"
+                    :key="opt.value"
+                    :label="opt.label"
+                    :value="opt.value"
+                  />
+                </el-select>
+              </div>
+              <div class="select-box--item">
+                <span>设备种类:</span>
+                <el-select
+                  v-model="queryParams.queryParam.typeId"
+                  placeholder="请选择设备种类"
+                  clearable
+                  class="act-search-input"
+                >
+                  <el-option
+                    v-for="opt in DEVICE_TYPE_OPTIONS"
+                    :key="opt.value"
+                    :label="opt.label"
+                    :value="opt.value"
+                  />
+                </el-select>
+              </div>
               <div class="select-box--item">
                 <span>状态:</span>
                 <el-select
@@ -40,6 +72,20 @@
                   <el-option label="报废" :value="3" />
                 </el-select>
               </div>
+              <div class="select-box--item">
+                <span>使用部门:</span>
+                <el-cascader
+                  v-model="useDeptPath"
+                  :options="deptOptions"
+                  :props="deptCascaderProps"
+                  :show-all-levels="false"
+                  placeholder="请选择责任部门"
+                  class="act-search-input"
+                  filterable
+                  clearable
+                  @change="handleUseDeptChange"
+                />
+              </div>
               <div class="select-box--item">
                 <span>责任部门:</span>
                 <el-cascader
@@ -124,6 +170,7 @@
   import useTableConfig from '@/hooks/useTableConfigHook';
   import ActionButton from '@/components/ActionButton.vue';
   import { TABLE_OPTIONS, SPECIAL_EQUIPMENT_TABLE_COLUMNS } from './configs/tables';
+  import { DEVICE_CATEGORY_OPTIONS, DEVICE_TYPE_OPTIONS } from './configs/form';
 
   const loading = ref(false);
 
@@ -136,6 +183,7 @@
     pageSize: 10,
     queryParam: {
       deviceName: '',
+      isUseDepartment: undefined,
       deviceStatus: undefined,
       categoryId: undefined,
       typeId: undefined,
@@ -144,12 +192,9 @@
     },
   });
 
-  // 类别/种类名称(目前接口只支持按 ID 查,这里仅作为显示搜索占位)
-  const categoryName = ref('');
-  const typeName = ref('');
-
   // 部门树(queryAllDeptTree 样式)
   const deptOptions = ref<any[]>([]);
+  const useDeptPath = ref<number[]>([]);
   const responsibilityDeptPath = ref<number[]>([]);
   const deptCascaderProps = {
     expandTrigger: 'click',
@@ -191,6 +236,14 @@
     }
   };
 
+  const handleUseDeptChange = (val: number[]) => {
+    if (Array.isArray(val) && val.length) {
+      queryParams.queryParam.isUseDepartment = val[val.length - 1];
+    } else {
+      queryParams.queryParam.isUseDepartment = undefined;
+    }
+  };
+
   const handleDeptChange = (val: number[]) => {
     if (Array.isArray(val) && val.length) {
       queryParams.queryParam.responsibilityDeptId = val[val.length - 1];
@@ -230,15 +283,15 @@
     queryParams.pageSize = 10;
     queryParams.queryParam = {
       deviceName: '',
+      isUseDepartment: undefined,
       deviceStatus: undefined,
       categoryId: undefined,
       typeId: undefined,
       responsibilityDeptId: undefined,
       useUnit: '',
     };
-    categoryName.value = '';
-    typeName.value = '';
     responsibilityDeptPath.value = [];
+    useDeptPath.value = [];
     queryTableList();
   };
 

+ 2 - 2
src/views/production-safety/risk-identification-and-control/special-equipment-manage/view.vue

@@ -126,8 +126,8 @@
         formData.assetId = res.assetId ?? '';
         formData.deviceName = res.deviceName ?? '';
         formData.useUnit = res.useUnit ?? '';
-        formData.categoryName = res.categoryName ?? '';
-        formData.typeName = res.typeName ?? '';
+        (formData as any).categoryId = res.categoryId ?? undefined;
+        (formData as any).typeId = res.typeId ?? undefined;
         formData.registerCode = res.registerCode ?? '';
         formData.licenseNo = res.licenseNo ?? '';
         formData.deviceCode = res.deviceCode ?? '';