当前位置: 首页 > news >正文

基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(四)

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

更多nbcio-boot功能请看演示系统

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888
 

接上一节,今天讲动态更新数据的方法

1、后端动态更新代码如下:

/**
     * 根据主表名,关键字和数据动态更新一条记录
     * @param tableName 主表名称
     */
    @SaCheckPermission("workflow:form:edit")
    @PostMapping(value = "/updateDataById")
    public R<?> updateDataById(@RequestBody FormDataVo formDataVo) {
        return R.ok(formService.updateDataById(formDataVo));
    }

@Override
	public int updateDataById(FormDataVo formDataVo) {
		return baseMapper.updateDataById(formDataVo.getTableName(), formDataVo.getPrimaryKey(),Long.valueOf(formDataVo.getId()),formDataVo.getUpdateMap());
	}

int updateDataById(@Param("tableName") String tableName, @Param("primaryKey") String primaryKey,
                       @Param("id") Long id, @Param("updateMap") Map<String,Object> updateMap); 

<update id="updateDataById">
        UPDATE ${tableName} SET
        <foreach collection="updateMap" item="val" index="key" separator=",">
            ${key} = #{val}
        </foreach>
        WHERE ${primaryKey} = #{id}
    </update>

2、前端代码如下:

/** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          this.buttonLoading = true;
          console.log("submitForm this.form",this.form)
          const id = this.form[this.primaryKey] || this.ids
          const formData = {
            tableName: this.tableName,
            primaryKey: this.primaryKey,
            id: id,
            updateMap: this.form
          }
          console.log("submitForm formData",formData)
          if (id != null) {
            updateDataById(formData).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            }).finally(() => {
              this.buttonLoading = false;
            });
          } 
        }
      });
    },

3、效果图如下:

相关文章:

  • GBASE南大通用数据库GBase 8s常见问题讲堂 -- 字符集的设置
  • Java实现考研专业课程管理系统 JAVA+Vue+SpringBoot+MySQL
  • 面试百问之count(1) 和 count(*) 区别是什么?
  • 机器学习-决策树【手撕】
  • Ribbon负载均衡
  • C++三剑客之std::variant(二):深入剖析
  • L1-093 猜帽子游戏(Java)
  • 【Effective C++】4. 设计与声明
  • OpenKruiseGame × KubeSphere 联合发布游戏服运维控制台,推动云原生游戏落地
  • 1.24寒假集训
  • C++高精度问题
  • 【大数据精讲】全量同步与CDC增量同步方案对比
  • (2)(2.4) CRSF/ELRS Telemetry
  • 2024免费mathtype7.4.4安装注册步骤教程
  • 【AI视野·今日NLP 自然语言处理论文速览 第七十五期】Thu, 11 Jan 2024
  • 【GitHub项目推荐--微软开源的课程(Web开发课程/机器学习课程/物联网课程/数据科学课程)】【转载】
  • openssl3.2/test/certs - 004 - cross root and root cross cert
  • Hadoop安装配置HBase
  • [设计模式Java实现附plantuml源码~创建型] 对象的克隆~原型模式
  • 【196】JAVA8 用 DOM 方式的 API 解析XML文件,无需引入第三方依赖。
  • 白天气温超30℃的北京,晚间下起了冰雹
  • 珠峰窗口期5月开启 普通人登一次有多烧钱?
  • 白玉兰奖征片综述丨综艺市场破局焕新,多元赛道重塑价值坐标
  • 印度证实印巴已同意停火
  • 巴基斯坦外长:印巴已同意立即停火
  • 游客称在网红雪山勒多曼因峰需救援被开价2.8万,康定文旅:封闭整改