Skip to content
On this page

采购简式合同管理

业务模板

补录标识 supplement

json
{
  "groupCode": "baseForm",
  "fieldType": "select",
  "fieldLabel": "补录标识",
  "fieldName": "supplement",
  "dictCode": "yn",
  "defaultValue": "0",
  "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,
  },
) {
  let flag = value === "1";
  setItemDisabled("baseForm", "sign", flag);
  pageData.sign = value === "1" ? "0" : pageData.sign;
}

对方 ELS 账号 toElsAccount

json
{
  "groupCode": "personFrom",
  "fieldType": "remoteSelect",
  "fieldLabel": "对方ELS账号",
  "fieldName": "toElsAccount",
  "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 {
    toElsAccount = "",
    supplierCode = "",
    supplierName = "",
  } = data[0] || {};
  pageData.toElsAccount = toElsAccount;
  pageData.supplierCode = supplierCode;
  pageData.supplierName = supplierName;
}
js
{
  modalColumns: [
    {
      field: "toElsAccount",
      fieldLabelI18nKey: "i18n_title_supplierAccount",
      title: "供应商账号",
      with: 150,
    },
    {
      field: "supplierName",
      fieldLabelI18nKey: "i18n__RdXRL_8e11f650",
      title: "供应商名称",
      with: 150,
    },
    {
      field: "supplierCode",
      fieldLabelI18nKey: "i18n_field_toCompanyCode",
      title: "供应商编码",
      with: 150,
    },
  ],
  modalUrl: "/supplier/supplierMaster/list",
  selectModel: "single",
  params({ pageData }) {
    return {
      frozenFunctionValue: "3",
      purchaseOrg: pageData?.purchaseOrg || "",
    };
  },
  mobileModalParams(Vue, { _pageData, _cacheAllData }) {
    return {
      frozenFunctionValue: "3",
      purchaseOrg: _cacheAllData.purchaseOrg,
    };
  },
  handleAfter: ({ pageData }) => {
    pageData.toElsAccount = "";
    pageData.supplierCode = "";
    pageData.supplierName = "";
    pageData.performingPartyElsAccount = "";
    pageData.invoicedElsAccount = "";
    pageData.payeeElsAccount = "";
    pageData.invoicedErpCode = "";
    pageData.invoicedName = "";
    pageData.payeeErpCode = "";
    pageData.payeeName = "";
    pageData.performingPartyCode = "";
    pageData.performingPartyName = "";
  },
}

销售负责人 salePrincipal

json
{
  "groupCode": "personFrom",
  "fieldType": "selectModal",
  "fieldLabel": "销售负责人",
  "fieldName": "salePrincipal",
  "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 { realname = "", email = "", telphone = "" } = data[0] || {};
  pageData.salePrincipal = realname;
  pageData.supplierMail = email;
  pageData.supplierPhone = telphone;
}
js
{
  modalColumns: [
    {
      field: "post",
      title: "职位",
      fieldLabelI18nKey: "i18n_title_position",
      with: 150,
    },
    {
      field: "realname",
      title: "名字",
      fieldLabelI18nKey: "i18n_field_RJ_a88ea",
      with: 150,
    },
    {
      field: "phone",
      title: "电话",
      fieldLabelI18nKey: "i18n_field_telephone",
      with: 150,
    },
    {
      field: "email",
      title: "邮箱",
      fieldLabelI18nKey: "i18n_field_email",
      with: 150,
    },
  ],
  modalUrl: "/supplier/supplierMaster/getContract",
  selectModel: "single",
  params({ pageData }) {
    return {
      elsAccount: pageData.toElsAccount || "",
      toElsAccount: pageData.elsAccount || "",
    };
  },
  mobileModalParams(Vue) {
    return {
      elsAccount: Vue.vuex_userInfo.elsAccount,
      toElsAccount: Vue.vuex_userInfo.elsAccount,
    };
  },
  afterClearCallBack: function (form, pageData) {
    form.salePrincipal = "";
    form.supplierMail = "";
    form.supplierPhone = "";
  },
}

供应商地址 supplierAddress

json
{
  "groupCode": "personFrom",
  "fieldType": "selectModal",
  "fieldLabel": "供应商地址",
  "fieldName": "supplierAddress",
  "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 { address = "" } = data[0] || {};
  pageData.supplierAddress = address;
}
js
{
  modalColumns: [
    {
      field: "country",
      title: "国家",
      fieldLabelI18nKey: "i18n_field_country",
      with: 150,
    },
    {
      field: "province",
      title: "省份",
      fieldLabelI18nKey: "i18n_field_province",
      with: 150,
    },
    {
      field: "city",
      title: "城市",
      fieldLabelI18nKey: "i18n_field_city",
      with: 150,
    },
    {
      field: "address",
      title: "详细地址",
      fieldLabelI18nKey: "i18n_title_address",
      with: 250,
    },
  ],
  modalUrl: "/supplier/supplierMaster/getAddressInfo",
  selectModel: "single",
  params({ pageData }) {
    return {
      elsAccount: pageData.elsAccount || "",
      toElsAccount: pageData.toElsAccount || "",
    };
  },
  mobileModalParams(Vue) {
    return {
      elsAccount: Vue.vuex_userInfo.elsAccount,
      toElsAccount: Vue.vuex_userInfo.elsAccount,
    };
  },
  handleAfter: ({ pageData }) => {
    pageData.supplierAddress = "";
  },
}

采购负责人 purchasePrincipal

json
{
  "groupCode": "personFrom",
  "fieldType": "remoteSelect",
  "fieldLabel": "采购负责人",
  "fieldName": "purchasePrincipal",
  "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 { realname = "", email = "", telphone = "" } = data[0] || {};
  pageData.purchasePrincipal = realname;
  pageData.mail = email;
  pageData.phone = telphone;
}
js
{
  modalColumns: [
    {
      field: "subAccount",
      title: "子账号",
      fieldLabelI18nKey: "i18n_field_subAccount",
      with: 150,
    },
    {
      field: "realname",
      title: "名字",
      fieldLabelI18nKey: "i18n_field_RJ_a88ea",
      with: 150,
    },
  ],
  modalUrl: "/account/elsSubAccount/page",
  selectModal: "single",
  params({ pageData }) {
    return {
      elsAccount: pageData.elsAccount || "",
      toElsAccount: pageData.elsAccount || "",
    };
  },
  mobileModalParams(Vue) {
    return {
      elsAccount: Vue.vuex_userInfo.elsAccount,
      toElsAccount: Vue.vuex_userInfo.elsAccount,
    };
  },
  handleAfter: ({ pageData }) => {
    pageData.purchasePrincipal = "";
    pageData.mail = "";
    pageData.phone = "";
  },
}

履约方 ELS 账号 performingPartyElsAccount

json
{
  "groupCode": "personFrom",
  "fieldType": "remoteSelect",
  "fieldLabel": "履约方ELS账号",
  "fieldName": "performingPartyElsAccount",
  "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 {
    toElsAccount = "",
    supplierCode = "",
    supplierName = "",
    personEmail = "",
    personPhone = "",
  } = data[0] || {};
  pageData.performingPartyElsAccount = toElsAccount;
  pageData.performingPartyCode = supplierCode;
  pageData.performingPartyName = supplierName;
  pageData.performingPartyMail = personEmail;
  pageData.performingPartyPhone = personPhone;
}
js
{
  modalColumns: [
    {
      field: "toElsAccount",
      title: "履约方账号",
      fieldLabelI18nKey: "i18n_field_IZCey_51232089",
      with: 150,
    },
    {
      field: "supplierName",
      title: "履约方名称",
      fieldLabelI18nKey: "i18n_field_IZCRL_511c5c7b",
      with: 150,
    },
    {
      field: "supplierCode",
      title: "履约方编码",
      fieldLabelI18nKey: "i18n_field_IZCAo_512190a3",
      with: 150,
    },
  ],
  modalUrl: "/supplier/supplierMaster/list",
  selectModel: "single",
  params: ({ pageData, userInfo }) => {
    return {
      frozenFunctionValue: "3",
      purchaseOrg: pageData?.purchaseOrg || "",
    };
  },
  handleAfter: ({ pageData, userInfo }) => {
    pageData.performingPartyElsAccount = "";
    pageData.performingPartyCode = "";
    pageData.performingPartyName = "";
    pageData.performingPartyPhone = "";
    pageData.performingPartyMail = "";
  },
}

开票方 Els 账号 invoicedElsAccount

json
{
  "groupCode": "personFrom",
  "fieldType": "remoteSelect",
  "fieldLabel": "开票方Els账号",
  "fieldName": "invoicedElsAccount",
  "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 {
    toElsAccount = "",
    supplierCode = "",
    supplierName = "",
    personEmail = "",
    personPhone = "",
  } = data[0] || {};
  pageData.invoicedElsAccount = toElsAccount;
  pageData.invoicedErpCode = supplierCode;
  pageData.invoicedName = supplierName;
  pageData.invoicedPhone = personPhone;
}
js
{
  modalColumns: [
    {
      field: "toElsAccount",
      title: "开票方账号",
      fieldLabelI18nKey: "i18n_alert_vPCey_737853a2",
      with: 150,
    },
    {
      field: "supplierName",
      title: "开票方名称",
      fieldLabelI18nKey: "i18n_alert_vPCRL_73718f94",
      with: 150,
    },
    {
      field: "supplierCode",
      title: "开票方编码",
      fieldLabelI18nKey: "i18n_alert_vPCAo_7376c3bc",
      with: 150,
    },
  ],
  modalUrl: "/supplier/supplierMaster/list",
  selectModal: "single",
  params({ pageData, userInfo }) {
    return {
      frozenFunctionValue: "3",
      purchaseOrg: pageData?.purchaseOrg || "",
    };
  },
  mobileModalParams(Vue, { _pageData, _cacheAllData }) {
    return {
      frozenFunctionValue: "3",
      purchaseOrg: _cacheAllData.purchaseOrg,
    };
  },
  handleAfter({ pageData, userInfo }) {
    pageData.invoicedElsAccount = "";
    pageData.invoicedErpCode = "";
    pageData.invoicedName = "";
    pageData.invoicedPhone = "";
  },
}

收款方 ELS 账号 payeeElsAccount

json
{
  "groupCode": "personFrom",
  "fieldType": "remoteSelect",
  "fieldLabel": "收款方ELS账号",
  "fieldName": "payeeElsAccount",
  "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 {
    toElsAccount = "",
    supplierCode = "",
    supplierName = "",
    personPhone = "",
  } = data[0] || {};
  pageData.payeeElsAccount = toElsAccount;
  pageData.payeeErpCode = supplierCode;
  pageData.payeeName = supplierName;
  pageData.payeePhone = personPhone;
}
js
{
  modalColumns: [
    {
      field: "toElsAccount",
      title: "收款方账号",
      fieldLabelI18nKey: "i18n_field_receiverBankAccount",
      with: 150,
    },
    {
      field: "supplierName",
      title: "收款方名称",
      fieldLabelI18nKey: "i18n_alert_lVCRL_c4874134",
      with: 150,
    },
    {
      field: "supplierCode",
      title: "收款方编码",
      fieldLabelI18nKey: "i18n_alert_lVCAo_c48c755c",
      with: 150,
    },
  ],
  modalUrl: "/supplier/supplierMaster/list",
  selectModal: "single",
  mobileModalParams(Vue, { _pageData, _cacheAllData }) {
    return {
      frozenFunctionValue: "3",
      purchaseOrg: _cacheAllData.purchaseOrg,
    };
  },
  params({ pageData, userInfo }) {
    return {
      frozenFunctionValue: "3",
      purchaseOrg: pageData.purchaseOrg || "",
    };
  },
  handleAfter({ pageData, userInfo }) {
    pageData.payeeElsAccount = "";
    pageData.payeeErpCode = "";
    pageData.payeeName = "";
    pageData.payeePhone = "";
  },
}