Skip to content
On this page

招标项目

业务模板

项目立项名称 projectName

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "项目立项名称",
  "fieldName": "projectName",
  "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,
  },
) {
  topEmit && topEmit();
  if (!data || !data.length) {
    return;
  }
  pageData.projectName = data[0].projectName || "";
  pageData.projectId = data[0].id || "";
  pageData.tenderProjectName = data[0].projectName || "";
  pageData.tenderProjectType = data[0].projectType || "";
  pageData.industryCategory = data[0].industry || "";
  pageData.projectBudget = data[0].budgetAmount || "";
  pageData.currency = data[0].currency || "";
  //招标方式
  pageData.purchaseOrgType = data[0].purchaseOrgType || "";

  //项目经理
  //pageData.agencyElsName = data[0].agencyLibraryAccount||''
  //招标单位名称
  pageData.purchaseEnterpriseName = data[0].purchaseEnterpriseName || "";
  pageData.elsRealname = data[0].purchaseEnterpriseName || "";

  pageData.purchasePrincipal = data[0].projectContacts || "";
  pageData.contactNumber = data[0].contactsNumber || "";
  pageData.projectProvince = data[0].projectAddress || "";
  pageData.projectContactAddr = data[0].projectAddressDetail || "";
  pageData.investmentsRatio = data[0].amountMoneyProportion || "";
  pageData.projectSummarize = data[0].projectDetail || "";
  pageData.remark = data[0].otherInstructions || "";
  pageData.purchaseOrg = data[0].purchaseOrg || "";
  pageData.purchaseGroup = data[0].purchaseGroup || "";

  //采购执行人名称
  pageData.purchaseExecutorName = data[0].purchasePrincipal || "";
  if (data[0].purchasePrincipalAccount != null) {
    //采购执行人账号
    pageData.purchaseExecutorAccount =
      data[0].purchasePrincipalAccount.split("_")[0] || "";
    //采购执行人子账号
    pageData.purchaseExecutorSubAccount =
      data[0].purchasePrincipalAccount.split("_")[1] || "";
  }

  if (data[0].agencyLibraryName != null) {
    //代理机构名称
    pageData.agencyElsName = data[0].agencyLibraryName || "";
    //代理机构账号
    pageData.agencyElsAccount = data[0].agencyLibraryAccount || "";
  }

  //粘贴于招标方式 记得同步
  if (pageData.purchaseOrgType == "0") {
    pageData.agencyElsName = "";
    pageData.agencyElsAccount = "";
  }

  const opt = pageData.purchaseOrgType;
  let flag = opt == "0";
  let disabledFlag = false;
  //是否可编辑
  setItemDisabled("baseForm", "agencyElsName", flag);
  setItemDisabled("baseForm", "purchaseExecutorName", disabledFlag);

  let validateFlag = opt == "0";
  let delayCountValidateFlag = false;

  // 必填
  setItemRequired("baseForm", "agencyElsName", !validateFlag);
  setItemRequired("baseForm", "purchaseExecutorName", delayCountValidateFlag);
}
js
{
  modalColumns: [
    { field: "projectName", title: "项目名称", with: 150 },
    { field: "projectNumber", title: "项目编号", with: 150 },
  ],
  modalUrl: "tender/tenderProjectApprovalHead/list",
  params: { sourceStatus: 2 },
  handleAfter: function ({ pageData, userInfo }) {
    pageData.projectName = "";
    pageData.projectId = "";
    pageData.tenderProjectName = "";
    pageData.tenderProjectType = "";
    pageData.industryCategory = "";
    pageData.currency = "";
    pageData.purchaseOrgType = "";
    pageData.purchaseEnterpriseName = "";
    pageData.purchasePrincipal = "";
    pageData.contactNumber = "";
    pageData.projectProvince = "";
    pageData.projectContactAddr = "";
    pageData.investmentsRatio = "";
    pageData.projectSummarize = "";
    pageData.remark = "";
    pageData.purchaseOrg = "";
    pageData.purchaseGroup = "";
    pageData.purchaseExecutorName = "";
    pageData.purchaseExecutorAccount = "";
    pageData.purchaseExecutorSubAccount = "";
    pageData.agencyElsName = "";
    pageData.agencyElsAccount = "";
    pageData.projectBudget = "0";
    pageData.projectItemList = [];
  },
}

采购组织形式 purchaseOrgType

json
{
  "groupCode": "baseForm",
  "fieldType": "select",
  "fieldLabel": "采购组织形式",
  "fieldName": "purchaseOrgType",
  "dictCode": "tenderOrgType",
  "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,
  },
) {
  const flag = value == "0";
  setItemDisabled("baseForm", "agencyElsName", flag);
  if (flag) pageData.agencyElsName = "";
}

代理机构名称 agencyElsName

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "代理机构名称",
  "fieldName": "agencyElsName",
  "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 (!data || !data.length) {
    return;
  }
  pageData.agencyElsName = data[0].supplierEnterpriseName;
  pageData.agencyElsAccount = data[0].supplierAccount;
}
js
{
  modalColumns: [
    { field: "supplierEnterpriseName", title: "代理机构名称", with: 150 },
    { field: "supplierAccount", title: "代理机构ELS号", with: 150 },
  ],
  modalUrl: "/tender/library/purchaseTenderAgencyLibraryHead/list",
  modalParams: { status: "2" },
}

采购执行人名称 purchaseExecutorName

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "采购执行人名称",
  "fieldName": "purchaseExecutorName",
  "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 (!data || !data.length) {
    return;
  }
  pageData.purchaseExecutorName = data[0].realname;
  pageData.purchaseExecutorSubAccount = data[0].subAccount;
  pageData.purchaseExecutorAccount = data[0].elsAccount;
}
js
{
  modalColumns: [
    { field: "subAccount", title: "子账号", with: 150 },
    { field: "realname", title: "姓名", with: 150 },
  ],
  modalUrl: "account/elsSubAccount/page",
  modalParams: function (Vue, form, obj) {
    if (form.purchaseOrgType == "0") {
      return;
    }
    return { els_account: form.agencyElsAccount };
  },
  params: ({ pageData }) => {
    if (pageData.purchaseOrgType == "0") {
      return {};
    }
    return {
      els_account: pageData.agencyElsAccount,
    };
  },
  beforeCheckedCallBack: function (parentRef, pageData, groupData, form) {
    return new Promise((resolve, rejec) => {
      if (form.purchaseOrgType == "1") {
        return form.agencyElsName
          ? resolve("success")
          : rejec("先选择代理机构");
      }
      return resolve("success");
    });
  },
}

开标是否需要加密 openBidEncrypt

json
{
  "groupCode": "baseForm",
  "fieldType": "switch",
  "fieldLabel": "开标是否需要加密",
  "fieldName": "openBidEncrypt",
  "dictCode": "yn",
  "defaultValue": "1",
  "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,
  },
) {
  console.log("useCa", value);
  setItemDisabled("baseForm", "useCa", value != "1");
  if (value == "0") {
    pageData.useCa = "0";
  }
}

招标流程模型名称 tenderProcessModelName 🎉

json
{
  "groupCode": "subpackageInfoVOList",
  "fieldType": "selectModal",
  "title": "招标流程模型名称",
  "field": "tenderProcessModelName",
  "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) {
    row.tenderProcessModelName = data[0].tenderProcessName || "";
    row.tenderProcessModelId = data[0].id || "";
    row.tenderType_dictText = data[0].tenderType_dictText || "";
    row.tenderType = data[0].tenderType || "";
    row.checkType_dictText = data[0].checkType_dictText || "";
    row.checkType = data[0].checkType || "";
    row.processType_dictText = data[0].processType_dictText || "";
    row.processType = data[0].processType || "";
    row.signUp_dictText = data[0].signUp_dictText || "";
    row.signUp = data[0].signUp || "";
    row.bidOpenType_dictText = data[0].bidOpenType_dictText || "";
    row.bidOpenType = data[0].bidOpenType || "";
    row.evaluationType_dictText = data[0].evaluationType_dictText || "";
    row.evaluationType = data[0].evaluationType || "";
    row.bidding = data[0].bidding || "";
    row.bidding_dictText = data[0].bidding_dictText || "";
    row.purchaseType = data[0].purchaseType || "";
    row.purchaseType_dictText = data[0].purchaseType_dictText || "";
  }
}
js
{
  modalColumns: [
    { field: "tenderProcessNumber", title: "流程编码", with: 150 },
    { field: "tenderProcessName", title: "流程名称", with: 150 },
  ],
  modalUrl: "tender/tenderProcessModelHead/list",
  selectModal: "single",
  modalParams: {
    status: "1",
    column: "createTime",
    order: "desc",
  },
  handleAfter: ({ row }) => {
    row.tenderProcessModelName = "";
    row.tenderProcessModelId = "";
    row.tenderType_dictText = "";
    row.tenderType = "";
    row.checkType_dictText = "";
    row.checkType = "";
    row.processType_dictText = "";
    row.processType = "";
    row.signUp_dictText = "";
    row.signUp = "";
    row.bidOpenType_dictText = "";
    row.bidOpenType = "";
    row.evaluationType_dictText = "";
    row.evaluationType = "";
    row.bidding = "";
    row.bidding_dictText = "";
    row.purchaseType = "";
    row.purchaseType_dictText = "";
  },
}

税码 taxCode 🎉

json
{
  "groupCode": "projectItemList",
  "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;
  }
  row.taxCode = data[0].taxCode;
  row.taxRate = data[0].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: {},
  afterRowClearCallBack: function (Vue, row) {
    row.taxCode = "";
    row.taxRate = "";
  },
}