场景:
选择项目后,自动带出项目成员信息。
要求:
1.项目成员来源于关联查询
2.项目信息由对话框或关联查询等模式输入
3.项目成员不允许编辑,要求初始化带出数据,且可随时根据项目信息变化自动更新项目成员
准备:
1.创建一个关联查询用于选择项目
2.创建一个项目成员用于自动带出项目成员,要求项目成员中有关联字段和项目关联
配置:
1.建模,创建表单,参考如下:
主表中的选择项目:使用下拉框动态查询配置
子表数据的初始化带出 由子表回填的数据初始化配置
3.设置表单权限
4.写脚本 分三部分:1.隐藏添加按钮,2.隐藏子表回填,3.根据项目自动切换变化项目成员
let vm = document.getElementsByName("online-form")[0].__vue__;
//子表回填按钮隐藏
let sub_zddcxx_hearderCss = $("[id='xh_tablegd_zbsjzddc.sub_zddcxx']")
.parent()
.siblings(".form-table-header")[0];
sub_zddcxx_hearderCss.getElementsByClassName("inputs")[0].style.display =
"none";
//子表添加按钮隐藏
$("[id='xh_tablegd_zbsjzddc.sub_zddcxx']")
.children(".table-footer.printHide")
.hide();
vm.$watch("data.zbsjzddc.djbh", function (newV) {
if (newV) {
//清空子表
vm.data.zbsjzddc.sub_zddcxx = [];
//请求子表数据
let params = [{ key: "F_xmmc", value: newV }];
let url = `${window.context.form}/form/customQuery/v1/doQuery?alias=xmcyda&page=1`;
debugger;
vm.$http.post(url, params).then((resp) => {
debugger;
if (resp.data.rows.length > 0) {
resp.data.rows.forEach((item, index) => {
//初始化子表,每次循环都先放入一条空的子表行数据
let subinit = { ...vm.data.zbsjzddc.initData.zddcxx };
vm.data.zbsjzddc.sub_zddcxx.push(subinit);
//对应子表字段
vm.data.zbsjzddc.sub_zddcxx[index].xx1 = item.F_xmmc;
vm.data.zbsjzddc.sub_zddcxx[index].xx2 = item.F_xm;
vm.data.zbsjzddc.sub_zddcxx[index].xx3 = item.F_js;
});
vm.$message.success(`获取子表数据成功!`);
} else {
vm.$message.success(`无相关数据!`);
}
});
} else {
//newV为空时清空子表
vm.data.zbsjzddc.sub_zddcxx = [];
vm.$message.success(`清空成功!`);
}
});