Explorar o código

refactor: 临时车判断改用is_system标记——解除对名称的硬编码依赖,支持国际化

lq hai 1 mes
pai
achega
2c5fd5e0e4

+ 2 - 2
frontend/src/view/parking/carInfo.vue

@@ -266,13 +266,13 @@
             <el-button
               text
               type="primary"
-              :disabled="scope.row.name === '临时车'"
+              :disabled="scope.row.is_system"
               @click="openTypeForm($t.value.modify, scope.row)"
             >{{ $t.value.modify }}</el-button>
             <el-button
               text
               type="danger"
-              :disabled="scope.row.name === '临时车'"
+              :disabled="scope.row.is_system"
               @click="deleteType(scope.row.ID)"
             >{{ $t.value.remove }}</el-button>
           </template>

+ 3 - 2
internal/dao/vehicle_type.go

@@ -4,8 +4,9 @@ import "wails-app/internal/global"
 
 type VehicleType struct {
 	global.GVA_MODEL
-	Name    string `form:"name" json:"name" gorm:"comment:名称"`
-	Remarks string `form:"remarks" json:"remarks" gorm:"comment:备注"`
+	Name     string `form:"name" json:"name" gorm:"comment:名称"`
+	Remarks  string `form:"remarks" json:"remarks" gorm:"comment:备注"`
+	IsSystem bool   `form:"is_system" json:"is_system" gorm:"comment:系统内置标记"`
 }
 
 func (VehicleType) TableName() string {

+ 2 - 2
internal/initialize/seed.go

@@ -176,9 +176,9 @@ func SeedSystemData() {
 		{MenuId: "31", AuthorityId: "618"}, {MenuId: "31", AuthorityId: "888"}, {MenuId: "31", AuthorityId: "9527"},
 	}
 	db.Create(&authMenus)
-		// --- vehicle_type (默认车辆类型) ---
+		// --- vehicle_type (默认车辆类型:临时车,标记为系统内置) ---
 		db.FirstOrCreate(&dao.VehicleType{},
-			dao.VehicleType{Name: "临时车", Remarks: "系统默认类型,不可编辑删除"},
+			dao.VehicleType{Name: "临时车", IsSystem: true, Remarks: "系统内置"},
 		)
 
 	// --- sys_apis (active only, skipping soft-deleted ids 44-66,84,90-98) ---

+ 1 - 1
internal/service/parking/passage.go

@@ -70,7 +70,7 @@ func (s *PassageService) HandlePassage(req common.PassageRequest) (*common.Passa
 	if err != nil || v.ID == 0 {
 		isTempVehicle = true
 	} else if v.VehicleType != nil {
-		isTempVehicle = (v.VehicleType.Name == "临时车")
+		isTempVehicle = v.VehicleType.IsSystem
 	} else {
 		isTempVehicle = true
 	}

+ 1 - 1
internal/service/vehicle/vehicle.go

@@ -161,7 +161,7 @@ func (s *VehicleService) VehicleEntry(req request.VehicleEntry) (request.Vehicle
 	if err != nil {
 		// 如果车辆不存在,创建新车辆,自动归类为"临时车"
 		var tempType dao.VehicleType
-		if global.GVA_DB.Where("name = ?", "临时车").First(&tempType).Error != nil {
+		if global.GVA_DB.Where("is_system = ?", true).First(&tempType).Error != nil {
 			return request.VehicleEntryResponse{}, errors.New("系统错误:临时车类型未配置")
 		}
 		createReq := request.VehicleCreate{

+ 6 - 6
internal/service/vehicle/vehicle_type.go

@@ -33,9 +33,9 @@ func (s *VehicleTypeService) UpdateVehicleType(req request.VehicleTypeUpdate) er
 		return errors.New("车辆类型不存在")
 	}
 
-	// 禁止编辑系统默认类型"临时车"
-	if vehicleType.Name == "临时车" {
-		return errors.New("临时车是系统默认类型,不可编辑")
+	// 禁止编辑系统内置类型
+	if vehicleType.IsSystem {
+		return errors.New("系统内置类型,不可编辑")
 	}
 
 	var existingType dao.VehicleType
@@ -92,9 +92,9 @@ func (s *VehicleTypeService) DeleteVehicleType(id uint) error {
 		return errors.New("车辆类型不存在")
 	}
 
-	// 禁止删除系统默认类型"临时车"
-	if vehicleType.Name == "临时车" {
-		return errors.New("临时车是系统默认类型,不可删除")
+	// 禁止删除系统内置类型
+	if vehicleType.IsSystem {
+		return errors.New("系统内置类型,不可删除")
 	}
 
 	var vehicleCount int64