Appearance
多标包招标管理
表行编辑规则
js
{
groupName: "分包明细",
groupNameI18nKey: "i18n_field_zsRH_268da877",
groupCode: "purchaseBiddingItemList",
groupType: "item",
sortOrder: "3",
extend: {
vxeGridConfig: {
editConfig: {
trigger: "click",
mode: "cell",
beforeEditMethod(pageData, { row, rowIndex, column, columnIndex }) {
console.log("row :>> ", row);
console.log("rowIndex :>> ", rowIndex);
console.log("column :>> ", column);
console.log("columnIndex :>> ", columnIndex);
console.log("pageData :>> ", pageData.value);
if (pageData.value.test === "1" || columnIndex === 3) {
return false;
}
return true;
},
},
},
},
}需方负责人 purchasePrincipal
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "需方负责人",
"fieldName": "purchasePrincipal",
"required": "1"
}js
/**
* @param {Object} ctx 组件实例
* @param {String} value 当前所选值
* @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
* @param {boolean} _isFill 填充、粘贴操作判断标识
* @param {Object} row 表行数据 (如有)
* @param {number} idx 表行索引值 (如有)
* @param {Object} pageData 页面所有数据
* @param {Object} layoutConfig 模板配置
* @param {Object} userInfo 当前登录人信息
* @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
* customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequired 自定义设置字段必填
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemDisabled 自定义设置字段置灰
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequiredOrDisabled 自定义设置字段必填/置灰
* @param {() => void} topEmit 用于处理复杂绑定函数需求
* @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
* https://github.com/MikeMcl/decimal.js
*/
function callback(
ctx,
{
value,
data,
_isFill,
row,
idx,
pageData,
layoutConfig,
userInfo,
customFormatItem,
setItemRequired,
setItemDisabled,
setItemRequiredOrDisabled,
topEmit,
Decimal,
},
) {
if (!data || !data.length) {
return;
}
const { subAccount = "", realname = "" } = data[0] || {};
pageData.purchasePrincipal = `${subAccount}_${realname}`;
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "姓名",
fieldLabelI18nKey: "i18n_field_realname",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/page",
modalParams: {
status: "1",
},
}模板名称 templateName 🎉
json
{
"groupCode": "purchaseBiddingHeadList",
"fieldType": "remoteSelect",
"title": "模板名称",
"field": "templateName",
"required": "1"
}js
/**
* @param {Object} ctx 组件实例
* @param {String} value 当前所选值
* @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
* @param {boolean} _isFill 填充、粘贴操作判断标识
* @param {Object} row 表行数据 (如有)
* @param {number} idx 表行索引值 (如有)
* @param {Object} pageData 页面所有数据
* @param {Object} layoutConfig 模板配置
* @param {Object} userInfo 当前登录人信息
* @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
* customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequired 自定义设置字段必填
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemDisabled 自定义设置字段置灰
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequiredOrDisabled 自定义设置字段必填/置灰
* @param {() => void} topEmit 用于处理复杂绑定函数需求
* @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
* https://github.com/MikeMcl/decimal.js
*/
function callback(
ctx,
{
value,
data,
_isFill,
row,
idx,
pageData,
layoutConfig,
userInfo,
customFormatItem,
setItemRequired,
setItemDisabled,
setItemRequiredOrDisabled,
topEmit,
Decimal,
},
) {
if (data && data.length) {
// 填充操作时 _isFill 判断标识值为 true
// 且 data 参数为当前所选行缓存数据
// 如果赋值操作中字段属性不同, 需要加条件判断区分取值
if (_isFill) {
const {
templateNumber = "",
templateName = "",
templateVersion = "",
templateAccount = "",
} = data[0] || {};
row.templateNumber = templateNumber;
row.templateName = templateName;
row.templateVersion = templateVersion;
row.templateAccount = templateAccount;
} else {
const {
templateNumber = "",
templateName = "",
templateVersion = "",
elsAccount = "",
} = data[0] || {};
row.templateNumber = templateNumber;
row.templateName = templateName;
row.templateVersion = templateVersion;
row.templateAccount = elsAccount;
}
}
}js
{
modalColumns: [
{
field: "templateNumber",
title: "模板编号",
fieldLabelI18nKey: "i18n_title_templateNumber",
with: 150,
},
{
field: "templateName",
title: "模板名称",
fieldLabelI18nKey: "i18n_field_templateName",
with: 150,
},
{
field: "templateVersion",
title: "模板版本",
fieldLabelI18nKey: "i18n_field_templateVersion",
with: 150,
},
],
modalUrl: "/template/templateHead/getListByType",
handleListData: function (Vue, res) {
let result = res.result;
Vue.tableData = result;
Vue.needPager = false; // 不需要分页
},
modalParams: function __modalParamsFunc(
Vue,
{ _pageData, _form, _row, _value, _cacheAllData, _data },
) {
return {
elsAccount: _cacheAllData.elsAccount,
businessType: "bidding",
};
},
params: function ({ pageData, userInfo }) {
return {
elsAccount: userInfo.elsAccount || "",
businessType: "bidding",
};
},
afterRowClearCallBack: function (Vue, row) {
row.templateNumber = "";
row.templateName = "";
row.templateVersion = "";
row.templateAccount = "";
},
}税码 taxCode 🎉
json
{
"groupCode": "purchaseBiddingItemList",
"fieldType": "remoteSelect",
"title": "税码",
"field": "taxCode",
"required": "1"
}js
/**
* @param {Object} ctx 组件实例
* @param {String} value 当前所选值
* @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
* @param {boolean} _isFill 填充、粘贴操作判断标识
* @param {Object} row 表行数据 (如有)
* @param {number} idx 表行索引值 (如有)
* @param {Object} pageData 页面所有数据
* @param {Object} layoutConfig 模板配置
* @param {Object} userInfo 当前登录人信息
* @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
* customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequired 自定义设置字段必填
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemDisabled 自定义设置字段置灰
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequiredOrDisabled 自定义设置字段必填/置灰
* @param {() => void} topEmit 用于处理复杂绑定函数需求
* @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
* https://github.com/MikeMcl/decimal.js
*/
function callback(
ctx,
{
value,
data,
_isFill,
row,
idx,
pageData,
layoutConfig,
userInfo,
customFormatItem,
setItemRequired,
setItemDisabled,
setItemRequiredOrDisabled,
topEmit,
Decimal,
},
) {
if (!data || !data.length) {
return;
}
const { taxCode = "", taxRate = "" } = data[0] || {};
row.taxCode = taxCode;
row.taxRate = taxRate;
}js
{
modalColumns: [
{
field: "taxCode",
title: "税码",
fieldLabelI18nKey: "i18n_field_taxCode",
with: 150,
},
{
field: "taxRate",
title: "税率(%)",
fieldLabelI18nKey: "i18n_field_fIW_1d82c0c",
with: 150,
},
{
field: "taxName",
title: "税码名称",
fieldLabelI18nKey: "i18n_field_taxName",
with: 150,
},
{
field: "remark",
title: "备注",
fieldLabelI18nKey: "i18n_field_remark",
with: 150,
},
],
modalUrl: "/base/tax/queryTaxForTemplate",
modalParams: {},
handleAfter: ({ row }) => {
row.taxCode = "";
row.taxCode_dictText = "";
row.taxRate = "";
},
afterRowClearCallBack: function (Vue, row) {
row.taxCode = "";
row.taxRate = "";
},
}