• 芋道系统,springboot+vue3+mysql实现地址的存储与显示


    1.效果图

    2.前端实现:

    1. "地址" prop="entrepriseAddress">
    2. <el-cascader
    3. v-model="formData.entrepriseAddress"
    4. size="large"
    5. :options="region"
    6. />
    7. //导入组件
    8. import { regionData } from 'element-china-area-data'

    需要再项目中安装一下地址组件:

    安装命令:npm install element-china-area-data  

    1. const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
    2. const submitForm = async () => {
    3. // 校验表单
    4. await formRef.value.validate()
    5. // 提交请求
    6. formLoading.value = true
    7. try {
    8. const data = formData.value as unknown as FleetEntrepriseVO
    9. if (formType.value === 'create') {
    10. await FleetEntrepriseApi.createFleetEntreprise(data)
    11. message.success(t('common.createSuccess'))
    12. } else {
    13. await FleetEntrepriseApi.updateFleetEntreprise(data)
    14. message.success(t('common.updateSuccess'))
    15. }
    16. dialogVisible.value = false
    17. // 发送操作成功的事件
    18. emit('success')
    19. } finally {
    20. formLoading.value = false
    21. }
    22. }

    相关api接口:

     createFleetEntreprise: async (data: FleetEntrepriseVO) => {

        return await request.post({ url: `/operate/fleet-entreprise/create`, data })

      },

    3.后端代码

    1. @Schema(description = "地址", requiredMode = Schema.RequiredMode.REQUIRED)
    2. @NotEmpty(message = "地址不能为空")
    3. private List entrepriseAddress;

    需要以list集合的形式保存数据,因为前端传来的地址为数组形式;

    而在数据表中是以char的字符类型存储:

    /**
    * 地址
    */
    private String entrepriseAddress;

    controller层:

    1. @PostMapping("/create")
    2. @Operation(summary = "创建企业")
    3. @PreAuthorize("@ss.hasPermission('operate:fleet-entreprise:create')")
    4. public CommonResult createFleetEntreprise(@Valid @RequestBody FleetEntrepriseSaveReqVO createReqVO) {
    5. return success(fleetEntrepriseService.createFleetEntreprise(createReqVO));
    6. }

    实现层:

    1. @Override
    2. public Long createFleetEntreprise(FleetEntrepriseSaveReqVO createReqVO) {
    3. // 插入
    4. FleetEntrepriseDO fleetEntreprise = BeanUtils.toBean(createReqVO, FleetEntrepriseDO.class);
    5. fleetEntrepriseMapper.insert(fleetEntreprise);
    6. // 返回
    7. return fleetEntreprise.getId();
    8. }

    mapper层:

    1. @Mapper
    2. public interface FleetEntrepriseMapper extends BaseMapperX {
    3. default PageResult selectPage(FleetEntreprisePageReqVO reqVO) {
    4. return selectPage(reqVO, new LambdaQueryWrapperX()
    5. .likeIfPresent(FleetEntrepriseDO::getEntrepriseName, reqVO.getEntrepriseName())
    6. .eqIfPresent(FleetEntrepriseDO::getEntrepriseVenue, reqVO.getEntrepriseVenue())
    7. .orderByDesc(FleetEntrepriseDO::getId));
    8. }
    9. }

    注意点:

    前端把地址以数组的形式传到后端,所以要以list集合的形式保存,当用户编辑这条信息时,把值传给前端就会显示对应的地址;

  • 相关阅读:
    C++ STL容器底层实现原理
    代码随想录训练营第30天|LeetCode 332.重新安排行程、51. N皇后、 37. 解数独、回溯总结
    图像分割 - 线检测
    Paas-云原生-容器-编排-持续部署
    万邦京东获得JD商品详情 API 返回值说明
    鸿蒙应用模型开发-更新SDK后报错解决
    下载centOS,下载各种linux版本的镜像,来这里!
    RabbitMQ一、RabbitMQ的介绍与安装(docker)
    JavaScript进阶-作用域
    第2-2-2章 常见组件与中台化-常用组件服务介绍-通用权限系统
  • 原文地址:https://blog.csdn.net/2301_76604664/article/details/139307920