如图所示,这个被红色框圈起来的就是需要被设置为全局变量的。当切换到其他页面时这个条件依旧存在。
在global.js里增加一句话作为全局变量。
window.companycode = '';
在untils.js文件里增加一个函数
export function changeCompanyCode(data) {
let searchdata = cloneDeep(data);
//data作为实参传进来先给他进行一个遍历看看是否有companyCode,意思就是说看那个单元格里面是否有选择
//公司代码,如果选择了,有这个companyCode,bool为false
let bool = searchdata.every(item => {
return item.field !== 'companyCode';
});
//如果这个表单里面有数据,即companycode.length>0,且没有公司代码,即bool为true
//那么就设置这个companyCode为空
if (companycode.length > 0 && bool == true) {
searchdata.push({
field: 'companyCode',
operator: '=',
value: companycode,
andOr: 'And',
});
}
//这个判断的主要功能就是把有公司代码的值赋值给companyCode
if (!bool) {
searchdata.map(item => {
if (item.field == 'companyCode') {
companycode = item.value;
}
});
}
然后回到需要引用的jsx页面,引用这个函数
import { changeCompanyCode } from '@/utils/utils';
这个clauses其实就是表单里面的数据,作为实参传过去。
clauses = changeCompanyCode(clauses);
直接给表单里面的参数赋值,值就是companyCode
form.setFieldsValue({ 'companyCode_=': companycode });