| | |
| | | in-line |
| | | require-mark-placement="left" |
| | | > |
| | | <div class="vehicle-info-layout"> |
| | | <!-- 左侧:车辆照片 --> |
| | | <div> |
| | | <n-form-item path="vehiclePhotos" :show-label="false"> |
| | | <div class="photo-section"> |
| | | <div class="photo-label"> |
| | | <span style="color: #ff4d4f; margin-right: 4px">*</span>车辆照片 |
| | | </div> |
| | | <div class="photo-upload-area"> |
| | | <img |
| | | v-if="formModel.vehiclePhotos[0]?.url" |
| | | :src="formModel.vehiclePhotos[0]?.url" |
| | | class="vehicle-photo-preview" |
| | | alt="vehicle-photo" |
| | | @click="handleOpenVehicleMaterialModal" |
| | | > |
| | | <img |
| | | v-else |
| | | :src="uploadIcon" |
| | | style="width: 56px; height: 56px;cursor: pointer;" |
| | | alt="upload" |
| | | @click="handleOpenVehicleMaterialModal" |
| | | > |
| | | </div> |
| | | <n-grid :cols="24" :x-gap="24" :y-gap="8"> |
| | | <!-- 车辆照片 --> |
| | | <n-gi :span="3"> |
| | | <n-form-item path="vehiclePhotos" label="车辆照片"> |
| | | <div class="photo-upload-area"> |
| | | <img |
| | | v-if="formModel.vehiclePhotos[0]?.url" |
| | | :src="formModel.vehiclePhotos[0]?.url" |
| | | class="vehicle-photo-preview" |
| | | alt="vehicle-photo" |
| | | @click="handleOpenVehicleMaterialModal" |
| | | > |
| | | <img |
| | | v-else |
| | | :src="uploadIcon" |
| | | style="width: 56px; height: 56px;cursor: pointer;" |
| | | alt="upload" |
| | | @click="handleOpenVehicleMaterialModal" |
| | | > |
| | | </div> |
| | | </n-form-item> |
| | | <!-- <div class="flex"> |
| | | <img |
| | | :src="noticeIcon" |
| | | style=" |
| | | width: 12px; |
| | | height: 12px; |
| | | margin-right: 6px; |
| | | margin-top: 3px; |
| | | " |
| | | </n-gi> |
| | | |
| | | <!-- 车辆VIN码 --> |
| | | <n-gi :span="7"> |
| | | <n-form-item label="车辆VIN码" path="vin"> |
| | | <n-input |
| | | v-model:value="formModel.vin" |
| | | placeholder="请输入" |
| | | clearable |
| | | maxlength="17" |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 车辆编码 --> |
| | | <n-gi :span="7"> |
| | | <n-form-item label="车辆编码" path="vehicleCode"> |
| | | <n-input |
| | | v-model:value="formModel.vehicleCode" |
| | | placeholder="请输入" |
| | | clearable |
| | | maxlength="5" |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 车牌号 --> |
| | | <n-gi :span="7"> |
| | | <n-form-item label="车牌号" path="plateNumber"> |
| | | <n-input |
| | | v-model:value="formModel.plateNumber" |
| | | placeholder="请输入" |
| | | clearable |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 型号 --> |
| | | <n-gi :span="8"> |
| | | <n-form-item label="型号" path="model"> |
| | | <n-select |
| | | v-model:value="formModel.model" |
| | | :options="modelOptions" |
| | | placeholder="请选择" |
| | | clearable |
| | | @update:show="isModelSelectOpen = $event" |
| | | > |
| | | <div class="photo-tip"> |
| | | <span>支持jpg/png,</span> |
| | | <span>大小≤5MB,最多</span> |
| | | <span>上传1张</span> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | |
| | | <!-- 右侧:表单 --> |
| | | <div class="form-section"> |
| | | <n-grid :cols="3" :x-gap="24" :y-gap="8"> |
| | | <!-- 车辆VIN码 --> |
| | | <n-gi> |
| | | <n-form-item label="车辆VIN码" path="vin"> |
| | | <n-input |
| | | v-model:value="formModel.vin" |
| | | placeholder="请输入" |
| | | clearable |
| | | maxlength="17" |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 车牌编码 --> |
| | | <n-gi> |
| | | <n-form-item label="车牌编码" path="vehicleCode"> |
| | | <n-input |
| | | v-model:value="formModel.vehicleCode" |
| | | placeholder="请输入" |
| | | clearable |
| | | maxlength="5" |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 车牌号 --> |
| | | <n-gi> |
| | | <n-form-item label="车牌号" path="plateNumber"> |
| | | <n-input |
| | | v-model:value="formModel.plateNumber" |
| | | placeholder="请输入" |
| | | clearable |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 型号 --> |
| | | <n-gi> |
| | | <n-form-item label="型号" path="model"> |
| | | <n-select |
| | | v-model:value="formModel.model" |
| | | :options="modelOptions" |
| | | placeholder="请选择" |
| | | clearable |
| | | @update:show="isModelSelectOpen = $event" |
| | | <template #arrow> |
| | | <img |
| | | src="https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/e120f81c-9f15-4e1a-9938-22252898edf9.png" |
| | | class="arrow-icon" |
| | | :class="{ |
| | | 'arrow-icon--open': isModelSelectOpen, |
| | | }" |
| | | style="width: 16px; height: 16px" |
| | | alt="arrow" |
| | | > |
| | | <template #arrow> |
| | | <img |
| | | src="https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/e120f81c-9f15-4e1a-9938-22252898edf9.png" |
| | | class="arrow-icon" |
| | | :class="{ |
| | | 'arrow-icon--open': isModelSelectOpen, |
| | | }" |
| | | style="width: 16px; height: 16px" |
| | | alt="arrow" |
| | | > |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | :src="noDataIcon" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | | </n-form-item> |
| | | </n-gi> |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | :src="noDataIcon" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 车辆颜色 --> |
| | | <n-gi> |
| | | <n-form-item label="车辆颜色" path="vehicleColor"> |
| | | <n-input |
| | | v-model:value="formModel.vehicleColor" |
| | | placeholder="请输入" |
| | | clearable |
| | | maxlength="3" |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | <!-- 车辆颜色 --> |
| | | <n-gi :span="8"> |
| | | <n-form-item label="车辆颜色" path="vehicleColor"> |
| | | <n-input |
| | | v-model:value="formModel.vehicleColor" |
| | | placeholder="请输入" |
| | | clearable |
| | | maxlength="3" |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 采购来源 --> |
| | | <n-gi> |
| | | <n-form-item label="采购来源" path="purchaseSource"> |
| | | <n-input |
| | | v-model:value="formModel.purchaseSource" |
| | | placeholder="请输入" |
| | | clearable |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | <!-- 采购来源 --> |
| | | <n-gi :span="8"> |
| | | <n-form-item label="采购来源" path="purchaseSource"> |
| | | <n-input |
| | | v-model:value="formModel.purchaseSource" |
| | | placeholder="请输入" |
| | | clearable |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 备注 --> |
| | | <n-gi> |
| | | <n-form-item label="备注" path="remark"> |
| | | <n-input |
| | | v-model:value="formModel.remark" |
| | | placeholder="请输入" |
| | | clearable |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | <!-- 备注 --> |
| | | <n-gi :span="8"> |
| | | <n-form-item label="备注" path="remark"> |
| | | <n-input |
| | | v-model:value="formModel.remark" |
| | | placeholder="请输入" |
| | | clearable |
| | | /> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 运营区域 --> |
| | | <n-gi> |
| | | <n-form-item label="运营区域" path="operationArea"> |
| | | <n-select |
| | | v-model:value="formModel.operationArea" |
| | | :options="operationAreaOptions" |
| | | placeholder="请选择" |
| | | filterable |
| | | clearable |
| | | :render-label="renderOperationAreaOptionLabel" |
| | | :render-tag="renderOperationAreaTag" |
| | | @update:show="isOperationAreaSelectOpen = $event" |
| | | <!-- 运营区域 --> |
| | | <n-gi :span="8"> |
| | | <n-form-item label="运营区域" path="operationArea"> |
| | | <n-select |
| | | v-model:value="formModel.operationArea" |
| | | :options="operationAreaOptions" |
| | | placeholder="请选择" |
| | | filterable |
| | | clearable |
| | | :render-label="renderOperationAreaOptionLabel" |
| | | :render-tag="renderOperationAreaTag" |
| | | @update:show="isOperationAreaSelectOpen = $event" |
| | | > |
| | | <template #arrow> |
| | | <img |
| | | src="https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/e120f81c-9f15-4e1a-9938-22252898edf9.png" |
| | | class="arrow-icon" |
| | | :class="{ |
| | | 'arrow-icon--open': isOperationAreaSelectOpen, |
| | | }" |
| | | style="width: 16px; height: 16px" |
| | | alt="arrow" |
| | | > |
| | | <template #arrow> |
| | | <img |
| | | src="https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/e120f81c-9f15-4e1a-9938-22252898edf9.png" |
| | | class="arrow-icon" |
| | | :class="{ |
| | | 'arrow-icon--open': isOperationAreaSelectOpen, |
| | | }" |
| | | style="width: 16px; height: 16px" |
| | | alt="arrow" |
| | | > |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | :src="noDataIcon" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | | </n-form-item> |
| | | </n-gi> |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | :src="noDataIcon" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | | </n-form-item> |
| | | </n-gi> |
| | | |
| | | <!-- 车辆属性 --> |
| | | <n-gi> |
| | | <n-form-item label="车辆属性" path="vehicleAttribute"> |
| | | <n-select |
| | | v-model:value="formModel.vehicleAttribute" |
| | | :options="vehicleAttributeOptions" |
| | | placeholder="请选择" |
| | | filterable |
| | | clearable |
| | | @update:show="isVehicleAttributeSelectOpen = $event" |
| | | <!-- 车辆属性 --> |
| | | <n-gi :span="8"> |
| | | <n-form-item label="车辆属性" path="vehicleAttribute"> |
| | | <n-select |
| | | v-model:value="formModel.vehicleAttribute" |
| | | :options="vehicleAttributeOptions" |
| | | placeholder="请选择" |
| | | filterable |
| | | clearable |
| | | @update:show="isVehicleAttributeSelectOpen = $event" |
| | | > |
| | | <template #arrow> |
| | | <img |
| | | src="https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/e120f81c-9f15-4e1a-9938-22252898edf9.png" |
| | | class="arrow-icon" |
| | | :class="{ |
| | | 'arrow-icon--open': isVehicleAttributeSelectOpen, |
| | | }" |
| | | style="width: 16px; height: 16px" |
| | | alt="arrow" |
| | | > |
| | | <template #arrow> |
| | | <img |
| | | src="https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/e120f81c-9f15-4e1a-9938-22252898edf9.png" |
| | | class="arrow-icon" |
| | | :class="{ |
| | | 'arrow-icon--open': isVehicleAttributeSelectOpen, |
| | | }" |
| | | style="width: 16px; height: 16px" |
| | | alt="arrow" |
| | | > |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | :src="noDataIcon" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | | </n-form-item> |
| | | </n-gi> |
| | | </n-grid> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | :src="noDataIcon" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | | </n-form-item> |
| | | </n-gi> |
| | | </n-grid> |
| | | </n-form> |
| | | <n-form |
| | | ref="supplementFormRef" |
| | |
| | | } |
| | | |
| | | /* 车辆信息布局 */ |
| | | .vehicle-info-layout { |
| | | display: flex; |
| | | gap: 16px; |
| | | } |
| | | |
| | | .photo-section { |
| | | flex-shrink: 0; |
| | | width: 140px; |
| | | display: flex; |
| | | } |
| | | |
| | | .photo-label { |
| | | font-size: 13px; |
| | | color: #000; |
| | | margin-right: 8px; |
| | | line-height: 22px; |
| | | } |
| | | :deep(.n-base-selection-input){ |
| | | font-size: 13px !important; |
| | | } |
| | |
| | | font-size: 12px; |
| | | color: #999; |
| | | line-height: 18px; |
| | | } |
| | | |
| | | .form-section { |
| | | flex: 1; |
| | | min-width: 0; |
| | | } |
| | | |
| | | :deep(.n-form-item) { |