Skip to content
On this page

供应商主数据

业务模板

供应商状态 supplierStatus

json
{
  "groupCode": "expandForm",
  "fieldType": "select",
  "fieldLabel": "供应商状态",
  "fieldName": "supplierStatus",
  "dictCode": "srmSupplierStatus",
  "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 (value == "4") {
    let demo = {
      frozenFunction: "",
      orgCode: "",
      frozenStatus: "1",
      isSelectAll: "1",
    };
    let dictCodeValueMax = 4;
    let frozenFunction = [];
    for (let i = 0; i <= dictCodeValueMax; i++) {
      frozenFunction.push({
        ...demo,
        frozenFunction: i + "",
      });
    }
    pageData.frozenFunction = JSON.stringify(frozenFunction);
  }
}

冻结功能 frozenFunction

json
{
  "groupCode": "expandForm",
  "fieldType": "customSelectModal",
  "fieldLabel": "冻结功能 ",
  "fieldName": "frozenFunction",
  "dictCode": "srmFreezeFunction",
  "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.sampleItemId = data[0].id;
  pageData.sampleHeadId = data[0].headId;
  pageData.itemNumber = data[0].itemNumber;
  pageData.sampleNumber = data[0].sampleNumber;
  pageData.toElsAccount = data[0].toElsAccount;
  pageData.supplierCode = data[0].supplierCode;
  pageData.supplierName = data[0].supplierName;
  pageData.purchaseGroup = data[0].purchaseGroup;
  pageData.purchaseOrg = data[0].purchaseOrg;
  pageData.materialNumber = data[0].materialNumber;
  pageData.materialDesc = data[0].materialDesc;
  pageData.cateCode = data[0].cateCode;
  pageData.cateName = data[0].cateName;
  pageData.materialSpec = data[0].materialSpec;
  pageData.materialGroup = data[0].materialGroup;
  pageData.materialGroupName = data[0].materialGroupName;
  pageData.factory = data[0].factory;
  pageData.company = data[0].company;
  pageData.approveQuantity = data[0].repertoryQuantity;
}

采购负责人 principal

json
{
  "groupCode": "expandForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "采购负责人",
  "fieldName": "principal",
  "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;
  }
  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",
  },
  selectModel: "single",
}

审批状态 auditStatus

json
{
  "groupCode": "expandForm",
  "fieldType": "select",
  "fieldLabel": "审批状态",
  "fieldName": "auditStatus",
  "dictCode": "srmAuditStatus",
  "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 (!pageData.id) {
    return;
  }

  // 审批状态 auditStatus_dictText
  // 数据字典 srmAuditStatus (0: 未审批, 1: 审批中, 2: 审批通过, 3: 审批拒绝, 4: 无需审批)

  /**
   * @description: 业务规则
   * 审批中的单据不允许修改表头
   * @return {*}
   */
  setItemDisabled("baseForm", "***", value === "1");
}

子账号 subAccount 🎉

json
{
  "groupCode": "supplierContactsInfoList",
  "fieldType": "remoteSelect",
  "title": "子账号",
  "field": "subAccount",
  "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,
  },
) {
  const {
    subAccount = "",
    realname = "",
    phone = "",
    email = "",
  } = data[0] || {};
  row.subAccount = subAccount;
  row.name = realname;
  row.telphone = phone;
  row.email = email;
}
js
{
  modalColumns: [
    {
      field: "subAccount",
      title: "子账号",
      fieldLabelI18nKey: "i18n_field_subAccount",
      with: 150,
    },
    {
      field: "realname",
      title: "姓名",
      fieldLabelI18nKey: "i18n_field_realname",
      with: 150,
    },
    {
      field: "phone",
      title: "电话号码",
      fieldLabelI18nKey: "i18n_title_telphone",
      with: 150,
    },
    {
      field: "email",
      title: "邮箱",
      fieldLabelI18nKey: "i18n_field_email",
      with: 150,
    },
  ],
  modalUrl: "/account/elsSubAccount/page",
  selectModal: "single",
  params: ({ pageData }) => {
    return {
      elsAccount: pageData.toElsAccount,
      status: 1,
    };
  },
  handleBefore: ({ pageData }) => {
    if (!pageData.toElsAccount) {
      return Promise.reject("公共信息只能供方在企业基本信息中维护");
    } else {
      return Promise.resolve();
    }
  },
  handleAfter: ({ row }) => {
    row.subAccount = "";
    row.name = "";
    row.telphone = "";
    row.email = "";
  },
}

国家/地区 country 🎉

json
{
  "groupCode": "supplierAddressInfoList",
  "fieldType": "remoteSelect",
  "title": "国家/地区",
  "field": "country",
  "defaultValue": "中国",
  "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 { name = "" } = data[0] || {};
  row.country = name;
}
js
{
  modalColumns: [
    {
      field: "code",
      title: "国家/地区编码",
      fieldLabelI18nKey: "i18n_field_RunMAo_4a839f2b",
      with: 400,
    },
    {
      field: "name",
      title: "国家/地区名称",
      fieldLabelI18nKey: "i18n_field_RunMRL_4a7e6b03",
      with: 400,
    },
  ],
  modalUrl: "/base/dict/queryDzCountryPage",
  modalParams: {},
  selectModal: "single",
  handleAfter: ({ row }) => {
    row.country = "";
  },
}

省份 province 🎉

json
{
  "groupCode": "supplierAddressInfoList",
  "fieldType": "selectModal",
  "title": "省份",
  "field": "province",
  "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 {
    provinceName = "",
    cityName = "",
    areasName = "",
    streetsName = "",
  } = data[0] || {};
  row.province = provinceName;
  row.city = cityName;
  row.address = `${areasName}${streetsName}`;
}
js
{
  modalColumns: [
    {
      field: "provinceName",
      title: "省份名称",
      fieldLabelI18nKey: "i18n_field_bzRL_374bc89f",
      with: 350,
    },
    {
      field: "cityName",
      title: "城市名称",
      fieldLabelI18nKey: "i18n_field_city",
      with: 350,
    },
    {
      field: "areasName",
      title: "地区名称",
      fieldLabelI18nKey: "i18n_field_nMRL_28e52f0d",
      with: 350,
    },
    {
      field: "streetsName",
      title: "乡道/街道名称",
      fieldLabelI18nKey: "i18n_field_duyuRL_bb7eb13c",
      with: 350,
    },
  ],
  modalUrl: "/base/dict/queryDzAddressPage",
  params: {},
  selectModal: "single",
  handleAfter: ({ row }) => {
    row.province = "";
    row.city = "";
    row.address = "";
  },
}

银行国家/地区 bankCountry 🎉

json
{
  "groupCode": "supplierBankInfoList",
  "fieldType": "remoteSelect",
  "title": "银行国家/地区",
  "field": "bankCountry",
  "defaultValue": "中国",
  "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 { name = "" } = data[0] || {};
  row.bankCountry = name;
}
js
{
  modalColumns: [
    {
      field: "code",
      title: "国家/地区编码",
      fieldLabelI18nKey: "i18n_field_RunMAo_4a839f2b",
      with: 400,
    },
    {
      field: "name",
      title: "国家/地区名称",
      fieldLabelI18nKey: "i18n_field_RunMRL_4a7e6b03",
      with: 400,
    },
  ],
  modalUrl: "/base/dict/queryDzCountryPage",
  modalParams: {},
  selectModal: "single",
  handleAfter: ({ row }) => {
    row.bankCountry = "";
  },
}

开户行全称 bankBranchName 🎉

json
{
  "groupCode": "supplierBankInfoList",
  "fieldType": "selectModal",
  "title": "开户行全称",
  "field": "bankBranchName",
  "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.bankProvince = data[0].provinceName;
  row.bankCity = data[0].cityName;
  row.bankBranchName = data[0].branchName;
  row.cooperationBankType = data[0].bankName;
  row.bankCode = data[0].bankCode;
}
js
{
  modalColumns: [
    {
      field: "provinceCode",
      title: "省份编码",
      fieldLabelI18nKey: "i18n_field_bzAo_3750fcc7",
      with: 150,
    },
    {
      field: "provinceName",
      title: "省份名称",
      fieldLabelI18nKey: "i18n_field_bzRL_374bc89f",
      with: 150,
    },
    {
      field: "cityCode",
      title: "城市编码",
      fieldLabelI18nKey: "i18n_field_LKAo_295aae9f",
      with: 150,
    },
    {
      field: "cityName",
      title: "城市名称",
      fieldLabelI18nKey: "i18n_field_city",
      with: 150,
    },
    {
      field: "bankCode",
      title: "银行编号",
      fieldLabelI18nKey: "i18n_field_WEAy_45c61c37",
      with: 150,
    },
    {
      field: "bankName",
      title: "银行名称",
      fieldLabelI18nKey: "i18n_field_WERL_45c10c19",
      with: 150,
    },
    {
      field: "branchCode",
      title: "银行支行编码",
      fieldLabelI18nKey: "i18n_field_WERcAo_e1bdf07e",
      with: 150,
    },
    {
      field: "branchName",
      title: "银行支行名称",
      fieldLabelI18nKey: "i18n_field_WERcRL_e1b8bc56",
      with: 350,
    },
  ],
  modalUrl: "/base/dict/seleBanksPage",
  params: function ({ pageData }) {
    return {};
  },
  mobileModalParams: function (Vue, { _row }) {
    return {};
  },
  selectModal: "single",
  afterRowClearCallBack: function (Vue, row) {
    row.bankCity = "";
    row.bankBranchName = "";
    row.cooperationBankType = "";
    row.bankCode = "";
  },
}

采购负责人 principal 🎉

json
{
  "groupCode": "supplierOrgInfoList",
  "fieldType": "remoteSelect",
  "title": "采购负责人 ",
  "field": "principal",
  "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;
  }
  let { subAccount = "", realname = "" } = data[0] || {};
  row.principal = 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/list",
  params: {
    status: "1",
  },
  selectModel: "single",
}

税码 taxCode 🎉

json
{
  "groupCode": "supplierOrgInfoList",
  "fieldType": "remoteSelect",
  "title": "税码",
  "field": "taxCode",
  "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;
  }
  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: {},
  selectModel: "single",
  handleAfter: ({ row }) => {
    row.taxCode = "";
    row.taxRate = "";
  },
}

收货员 receiveClerk 🎉

json
{
  "groupCode": "supplierOrgInfoList",
  "fieldType": "remoteSelect",
  "title": "收货员 ",
  "field": "receiveClerk",
  "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;
  }
  const { subAccount = "", realname = "" } = data[0] || {};
  row.receiveClerk = `${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",
  },
  selectModal: "single",
  handleAfter: ({ row }) => {
    row.receiveClerk = "";
  },
}

准入品类 accessCategory 🎉

json
{
  "groupCode": "supplierOrgInfoList",
  "fieldType": "remoteSelect",
  "title": "准入品类",
  "field": "accessCategory",
  "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;
  }
  const { cateCode = "", cateName = "" } = data[0] || {};
  row.accessCategory = `${cateCode}_${cateName}`;
}
js
{
  modalColumns: [
    {
      field: "cateCode",
      title: "物料分类编码",
      fieldLabelI18nKey: "i18n_field_materialClassificationCode",
      with: 150,
    },
    {
      field: "cateName",
      title: "物料分类名称",
      fieldLabelI18nKey: "i18n_field_cateName",
      with: 150,
    },
  ],
  modalUrl: "/material/purchaseMaterialCode/list",
  modalParams: {
    cateStatus: "1",
  },
  selectModal: "single",
  handleBefore: ({ row }) => {
    if (row.accessed === "1") {
      return Promise.reject("该条为准入数据生产,不能修改准入品类");
    } else {
      return Promise.resolve();
    }
  },
  handleAfter: ({ row }) => {
    if (row.accessed === "1") {
      console.error("该条为准入数据生产,不能修改准入品类");
      return;
    }
    row.accessCategory = "";
  },
}