选中一条数据,可实现修改部分字段,并新增一条数据,新增的该条数据除修改的字段外,均与原数据相同。
二、思路:1.前端添加按钮,并在dialog中放入需要修改的字段
2.在method中,调用新接口,该接口可在后台用projectId(id)查询到该条数据的其他字段值,并在下面进行赋值,然后调用add方法(参数保存在新的form表单中进行传参)
三、前端代码 1.api:export const getProjectIdById = (id) => {
return request({
url: '/api/fgdm/firesubzoneinfo/projectId',
method: 'get',
params: {
id
}
})
}
2.vue:
①按钮及dialog
复制
从:
到:
取 消
确 定
②import中引入方法
③
④method代码
//sz复制
szCopy() {
this.szcopy = true;
},
submitSzcopy() {
let idList = this.ids.split(",");
if (idList.length === 1 && idList[0] === "") {
this.$message({
type: "error",
message: "请选择一条数据!",
});
return;
}
if (idList.length > 1) {
this.$message({
type: "error",
message: "只能选择一条数据!",
});
return;
}
//通过id获取projectId,sz复制相当于在projectId不变的条件下进行新增坐标点相同的sz
getProjectIdById(idList[0]).then((res) => {
this.form4.projectId = res.data.data.projectId;
this.form4.subzoneName = res.data.data.projectId+"-copy";
this.form4.equipLocal = res.data.data.equipLocal;
this.form4.equipName = res.data.data.equipName;
this.form4.pressure = res.data.data.pressure;
this.form4.cMaterialOne = res.data.data.cMaterialOne;
this.form4.cMaterialTwo = res.data.data.cMaterialTwo;
this.form4.cMaterialThree = res.data.data.cMaterialThree;
this.form4.riskType = res.data.data.riskType;
this.form4.riskGrade = res.data.data.riskGrade;
this.form4.targetCoverage = res.data.data.targetCoverage;
this.form4.realCoverage = res.data.data.realCoverage;
this.form4.firezoneName = res.data.data.firezoneName;
add(this.form4).then(
() => {
this.szcopy = false;
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!",
});
},
(error) => {
window.console.log(error);
loading();
}
);
});
},
//sz复制
四、后端代码
1.controller:R返回类型为该框架封装类型
2.service及其实现类、mapper引入方法即可
3.xml:



