Appearance
单标包招标管理
需方负责人 purchasePrincipal
json
{
"groupCode": "projectForm",
"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) {
const {
subAccount = "",
realname = "",
email = "",
phone = "",
} = data[0] || {};
pageData.purchasePrincipal = subAccount + "_" + realname;
pageData.contactNumber = phone;
pageData.email = email;
}
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "姓名",
fieldLabelI18nKey: "i18n_field_realname",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/list",
modalParams: {
status: "1",
},
params: { status: "1" },
handleAfter({ pageData, row }) {
pageData.purchasePrincipal = "";
pageData.contactNumber = "";
pageData.email = "";
},
}招标类型 biddingType
json
{
"groupCode": "subcontractForm",
"fieldType": "select",
"fieldLabel": "招标类型",
"fieldName": "biddingType",
"dictCode": "srmBiddingType",
"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,
},
) {
/**
* @description: 业务规则
* 招标类型 biddingType;
* 数据字典 srmBiddingType (0: 邀请招标, 1: 公开招标);
*
* 报名开始时间 applyBeginTime;
* 报名截止时间 applyEndTime;
* 公开范围 publicScope;
*
* 供应商范围 supplierScope;
*
* 招标类型为'邀请招标', '报名截止时间', '报名开始时间', '公开范围'不可编辑, 否则取反
* 招标类型为'公开招标', '供应商范围'不可编辑, 否则取反
* @return {*}
*/
const flag = value === "0";
const props = ["applyBeginTime", "applyEndTime", "publicScope"];
props.forEach((key) => setItemDisabled("baseForm", key, flag));
setItemDisabled("baseForm", "supplierScope", value === "1");
setItemRequired("baseForm", "applyBeginTime", value === "1");
setItemRequired("baseForm", "applyEndTime", value === "1");
/**
* @description: 业务规则
* 招标类型为'邀请招标', 表行'附件需求清单', 阶段类型数据字典为'bidding2StageType'
* 否则设置为 biddingStageType
* 数据字典 bidding2StageType (2: 投标阶段);
* 数据字典 biddingStageType (1: 报名阶段, 4: 应标阶段);
*/
customFormatItem(
"purchaseAttachmentDemandList",
"stageType",
function fn(item) {
item.options = [];
item.dictCode = value === "0" ? "bidding2StageType" : "biddingStageType";
},
);
}评标模板名称 bidEvaluationName
json
{
"groupCode": "baseForm",
"fieldType": "selectModal",
"fieldLabel": "评标模板名称",
"fieldName": "bidEvaluationName",
"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 { evaluationNumber = "", evaluationName = "" } = data[0] || {};
pageData.bidEvaluationNumber = evaluationNumber;
pageData.bidEvaluationName = evaluationName;
}js
{
modalColumns: [
{
field: "evaluationNumber",
fieldLabelI18nKey: "i18n_field_templateNumber",
title: "模板编码",
with: 150,
},
{
field: "evaluationName",
fieldLabelI18nKey: "i18n_field_templateName",
title: "模板名称",
with: 150,
},
],
selectModal: "single",
modalUrl: "/bidding/biddingEvaluationTemplateHead/list",
params: {
templateStatus: 1,
},
modalParams: {
templateStatus: 1,
},
afterClearCallBack: function (form, pageData, col) {
form.bidEvaluationNumber = "";
form.bidEvaluationName = "";
},
handleAfter({ pageData, userInfo }) {
pageData.businessField = "";
pageData.bidEvaluationNumber = "";
},
}是否需要应标 needEcho
json
{
"groupCode": "baseForm",
"fieldType": "switch",
"fieldLabel": "是否需要应标",
"fieldName": "needEcho",
"dictCode": "yn",
"required": "0"
}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 (value === "0") {
pageData.echoEndTime = "";
console.warn("需要应标为'否',请空'应标截止时间'");
}
/**
* @description: 业务规则
* 需要应标为'是', '应标截止时间'必填, 否则置灰
* @return {*}
*/
setItemRequiredOrDisabled("baseForm", "echoEndTime", value === "1");
}公开范围 publicScope
json
{
"groupCode": "baseForm",
"fieldType": "multiple",
"fieldLabel": "公开范围",
"fieldName": "publicScope",
"dictCode": "srmPublicScope",
"required": "0"
}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,
},
) {
/**
* @description: 业务规则
*
* 公开范围 publicScope
* 数据字典 srmPublicScope (0: SRM门户, 1: SRM门户、企企通采购网);
*/
const reg = /2/;
const flag = reg.test(value);
setItemDisabled("baseForm", "echoEndTime", flag);
}供应商是否需要购买标书 buyBidingDoc
json
{
"groupCode": "baseForm",
"fieldType": "switch",
"fieldLabel": "供应商是否需要购买标书",
"fieldName": "buyBidingDoc",
"dictCode": "yn",
"required": "0"
}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,
},
) {
/**
* @description: 业务规则
* 供应商需要购买标书时,购买标书开始时间 + 购买标书结束时间 + 标书费用 必填,否则取反
* @return {*}
*/
const flag = value === "1";
const props = ["buyBidDocBeginTime", "buyBidDocEndTime", "bidingDocCost"];
props.forEach((key) => setItemRequired("baseForm", key, flag));
}税码 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: "税码",
with: 150,
},
{
field: "taxRate",
title: "税率(%)",
with: 150,
},
{
field: "taxName",
title: "税码名称",
with: 150,
},
{
field: "remark",
title: "备注",
with: 150,
},
],
modalUrl: "/base/tax/queryTaxForTemplate",
modalParams: {},
}