• 芋道系统,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集合的形式保存,当用户编辑这条信息时,把值传给前端就会显示对应的地址;

  • 相关阅读:
    一文带你吃透阻塞队列
    编写高效的消息传递代码-对消息进行降维
    Redis的集群模式搭建
    H5游戏开发-面向对象编程
    day-58 代码随想录算法训练营(19)单调栈 part 01
    11 个例子讲清spark提交命令参数
    Hadoop大数据通用处理平台
    ISIS 协议常用基本配置总结
    word wps 出版 常用操作
    VS Code + Remote-ssh插件实现远程开发
  • 原文地址:https://blog.csdn.net/2301_76604664/article/details/139307920