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

前端Element-plus的选择器 el-select 清空内容时,后端对应的更新方式,支持更新为null

1、所属小类选择器 el-select 清空内容时,前端通过事件设置为空字符串

@clear="handleSmallCategoryClear"

【所属小类选择器】只能选择,不能输入信息

<script setup lang="ts" name="QualityFileInfoDialog">
......
// 所属小类选择器清空内容
const handleSmallCategoryClear = () => {// 所属小类设置为空字符串qualityFileForm.value.smallCategory = "";
};
......
</script><template>
......<el-selectv-model="qualityFileForm.smallCategory"placeholder="请选择"clearable@clear="handleSmallCategoryClear"><el-option v-for="item in fileSmallCategoryList" :label="item.label" :value="item.value" /></el-select>
......
</template>

2、发布部门选择器 el-select 清空内容时,前端通过属性设置为空字符串

:value-on-clear="``"

注意:这里一定要使用:,

:value-on-clear="``",这样才是空字符串

value-on-clear="``",这样是``

【发布部门选择器】可以输入信息,支持新增选项,支持过滤,按回车默认选择第一个选项

<script setup lang="ts" name="QualityFileInfoDialog">
............
</script><template>
......<el-selectv-model="qualityFileForm.issueDept"placeholder="请选择"clearablefilterableallow-createdefault-first-option:value-on-clear="``"><el-option v-for="item in departmentList" :label="item.deptName" :value="item.deptName" /></el-select>
......
</template>

3、所属类别选择器 el-select 清空内容时,后端设置为~NULL~标识

【所属类型选择器】可以输入信息,支持过滤,按回车默认选择第一个选项

<script setup lang="ts" name="QualityFileInfoDialog">
............
</script><template>
......<el-selectv-model="qualityFileForm.detailCategory"placeholder="请选择"clearablefilterabledefault-first-option><el-option v-for="item in fileDetailCategoryList" :label="item.label" :value="item.label" /></el-select>
......
</template>

后端处理:spring boot + mybatis

            // 所属类别,下拉选项支持可以更新为 null// 处理 null 的情况if (qualityFile.getDetailCategory() == null) {// 先标识为 ~NULL~,然后在Mybatis中再进行特殊处理qualityFile.setDetailCategory("~NULL~");}// 处理非 null 的情况else {if (storeQualityFile.getDetailCategory() != null &&storeQualityFile.getDetailCategory().equals(qualityFile.getDetailCategory())) {qualityFile.setDetailCategory(null);}}
/*** 更新质量体系文件** @param qualityFile 质量体系文件*/@Overridepublic void update(@NotNull QualityFile qualityFile) {if (qualityFile == null) return;QualityFile storeQualityFile = qualityFileMapper.selectByFileNo(qualityFile.getFileNo());if (storeQualityFile == null) return;// 两个对象的内容不相同,才进行更新if (!storeQualityFile.equals(qualityFile)) {// 只更新有修改过的属性,通过数据新旧值对比,如果数据没有变化,设置为 null,就不会进行更新// 序号if (storeQualityFile.getOrderNo() != null && qualityFile.getOrderNo() != null &&storeQualityFile.getOrderNo().equals(qualityFile.getOrderNo())) {qualityFile.setOrderNo(null);}// 文件编号,不能修改// 文件名称if (storeQualityFile.getFileName() != null && qualityFile.getFileName() != null &&storeQualityFile.getFileName().equals(qualityFile.getFileName())) {qualityFile.setFileName(null);}// 版本号if (storeQualityFile.getEdition() != null && qualityFile.getEdition() != null &&storeQualityFile.getEdition().equals(qualityFile.getEdition())) {qualityFile.setEdition(null);}// 修改记录if (storeQualityFile.getModifyRecord() != null && qualityFile.getModifyRecord() != null &&storeQualityFile.getModifyRecord().equals(qualityFile.getModifyRecord())) {qualityFile.setModifyRecord(null);}// 发布部门if (storeQualityFile.getIssueDept() != null && qualityFile.getIssueDept() != null &&storeQualityFile.getIssueDept().equals(qualityFile.getIssueDept())) {qualityFile.setIssueDept(null);}// 发布日期if (storeQualityFile.getIssueDate() != null && qualityFile.getIssueDate() != null &&storeQualityFile.getIssueDate().equals(qualityFile.getIssueDate())) {qualityFile.setIssueDate(null);}// 所属小类if (storeQualityFile.getSmallCategory() != null && qualityFile.getSmallCategory() != null &&storeQualityFile.getSmallCategory().equals(qualityFile.getSmallCategory())) {qualityFile.setSmallCategory(null);}// 所属类别,下拉选项支持可以更新为 null// 处理 null 的情况if (qualityFile.getDetailCategory() == null) {// 先标识为 ~NULL~,然后在Mybatis中再进行特殊处理qualityFile.setDetailCategory("~NULL~");}// 处理非 null 的情况else {if (storeQualityFile.getDetailCategory() != null &&storeQualityFile.getDetailCategory().equals(qualityFile.getDetailCategory())) {qualityFile.setDetailCategory(null);}}// 备注if (storeQualityFile.getRemark() != null && qualityFile.getRemark() != null &&storeQualityFile.getRemark().equals(qualityFile.getRemark())) {qualityFile.setRemark(null);}}qualityFileMapper.update(qualityFile);}

更新:

<!-- 更新质量体系文件 --><update id="update">update ControledFileMain<set><!-- 序号 --><if test="orderNo != null">Cfm_OrderID = #{orderNo},</if><!-- 文件编号,不能修改 --><!-- 文件名称 --><if test="fileName != null">Cfm_Name = #{fileName},</if><!-- 版本号 --><if test="edition != null">Cfm_Edition = #{edition},</if><!-- 修改记录 --><if test="modifyRecord != null">Cfm_ModifyRecord = #{modifyRecord},</if><!-- 所属小类 --><if test="smallCategory != null">Cfm_SmallType = #{smallCategory},</if><!-- 所属类别,下拉选项支持可以更新为 null --><if test="detailCategory != null"><if test="detailCategory == '~NULL~'">Cfm_SampleType = null,</if><if test="detailCategory != '~NULL~'">Cfm_SampleType = #{detailCategory},</if></if><!-- 发布部门 --><if test="issueDept != null">Cfm_Dept = #{issueDept},</if><!-- 发布日期 --><if test="issueDate != null">Cfm_IssueDate = #{issueDate},</if><!-- 备注 --><if test="remark != null">Cfm_Memo = #{remark},</if></set>where Cfm_ID = #{fileNo}</update>

http://www.dtcms.com/a/337442.html

相关文章:

  • 【秋招笔试】2025.08.09网易秋招机考
  • openEuler系统备份与恢复方法
  • 【DL学习笔记】交叉熵损失函数详解
  • 无人机视角违章建筑识别分割数据集labelme格式343张2类别
  • AI测试自愈率80%!语音编程提效10倍——2025软件AI化爆炸级突破
  • 端面试题大汇总二
  • 分库分表数据源如何清洗同步到目标表
  • 大数据计算引擎(二)——Flink
  • 大数据计算引擎(四)—— Impala
  • 【matlab】考虑源荷不平衡的微电网鲁棒定价研究
  • Pandas 数据导入导出、索引、分组聚合与可视化
  • (第十八期)图像标签的三个常用属性:width、height、border
  • 特赞内容运营解决方案,AI重构品牌内容价值链
  • 云计算学习100天-第21天
  • 整体设计 之“凝聚式中心点”原型 --整除:智能合约和DBMS的深层融合 之2
  • 将 iPhone 联系人转移到 Infinix 的完整指南
  • MCP ZAP Server:一款能够利用大模型替代人工进行Web安全扫描的开源MCP
  • Vue深入组件:组件 v-model 详解2
  • 网络安全巡检系统的功能组成和作用
  • sizeof和strlen的对比分析
  • vue从入门到精通:搭建第一个vue项目
  • kali linux从入门到精通教程
  • 【GM3568JHF】FPGA+ARM异构开发板烧录指南
  • Go并发编程-goroutine
  • 智能人形机器人:知识驱动的工业生产力革新
  • 视觉语言导航(11)——预训练范式 4.1
  • 系统架构师考试-操作系统-10道关于PV操作和死锁的模拟题
  • 实现一个函数,使用引用作为参数完成三个字符串按长度排序,最长的字符串放入第一个参数,最短的字符串放入第三个参数(不允许使用 string)
  • Linx--MySQL--安装笔记详细步骤!
  • 石英挠性加速度计:高精度测量的理想之选?