Skip to content
On this page

样品申请

业务模板

申请人 applicant

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "申请人",
  "fieldName": "applicant",
  "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.applicant = `${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: {},
}

收货地址 deliveryAddress

json
{
  "groupCode": "baseForm",
  "fieldType": "selectModal",
  "fieldLabel": "收货地址",
  "fieldName": "deliveryAddress",
  "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 { address = "", consignee = "", purchasePhone = "" } = data[0] || {};

  pageData.deliveryAddress = address;
  pageData.receiveContact = consignee;
  pageData.receivePhone = purchasePhone;
}
js
{
  modalColumns: [
    {
      field: "organizationType_dictText",
      title: "组织类型",
      fieldLabelI18nKey: "i18n_field_organizationType",
      width: 150,
    },
    {
      field: "organizationName",
      title: "组织名称",
      fieldLabelI18nKey: "i18n_field_orgName",
      width: 150,
    },
    {
      field: "address",
      title: "收货地址",
      fieldLabelI18nKey: "i18n_title_address",
      width: 350,
    },
    {
      field: "consignee",
      title: "收货人",
      fieldLabelI18nKey: "i18n_field_consignee",
      width: 200,
    },
    {
      field: "purchasePhone",
      title: "收货人电话",
      fieldLabelI18nKey: "i18n_field_receivedPhone",
      width: 200,
    },
    {
      field: "consigneeEmail",
      title: "收货人邮箱",
      fieldLabelI18nKey: "i18n_field_consigneeEmail",
      width: 200,
    },
    {
      field: "phone",
      title: "收货人座机",
      fieldLabelI18nKey: "i18n_title_consigneePlan",
      width: 200,
    },
  ],
  modalUrl: "/delivery/deliveryOrderAddress/list",
  selectModal: "single",
  params({ pageData }) {
    return { elsAccount: pageData.busAccount };
  },
  afterClearCallBack(form, pageData) {
    form.deliveryAddress = "";
    form.receiveContact = "";
    form.receivePhone = "";
  },
  mobileModalParams(Vue, { _pageData, _cacheAllData }) {
    return { elsAccount: _cacheAllData.busAccount };
  },
  mobileHandleAfter(Vue, { _pageData, _form, _cacheAllData, _value }) {
    _form.deliveryAddress = "";
    _form.receiveContact = "";
    _form.receivePhone = "";
  },
}

发布人 publishUser

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "发布人",
  "fieldName": "publishUser",
  "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.publishUser = `${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: {},
}

需求数量 repertoryQuantity 🎉

json
{
  "groupCode": "purchaseSampleItemList",
  "fieldType": "number",
  "title": "需求数量",
  "field": "repertoryQuantity",
  "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,
  },
) {
  // 含税单价 price
  let price = row.price || "";
  // 未税单价 netPrice
  // 需求数量 repertoryQuantity
  let repertoryQuantity = row.repertoryQuantity || "";
  // 含税金额 taxAmount
  // 未税金额 netAmount
  // 税率 taxRate
  let taxRate = row.taxRate || "";

  if (price && repertoryQuantity) {
    if (Decimal) {
      let taxAmount = Decimal.mul(price, repertoryQuantity);
      row.taxAmount = new Decimal(taxAmount).toFixed(4);

      if (taxRate) {
        let formula = Decimal.add(1, Decimal.div(taxRate, 100));
        let netPrice = Decimal.div(price, formula);
        let netAmount = Decimal.mul(netPrice, repertoryQuantity);

        row.netPrice = new Decimal(netPrice).toFixed(4);
        row.netAmount = new Decimal(netAmount).toFixed(4);
      }
    }
  }
}

含税单价 price 🎉

json
{
  "groupCode": "purchaseSampleItemList",
  "fieldType": "number",
  "title": "含税单价",
  "field": "price",
  "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,
  },
) {
  // 含税单价 price
  let price = row.price || "";
  // 未税单价 netPrice
  // 需求数量 repertoryQuantity
  let repertoryQuantity = row.repertoryQuantity || "";
  // 含税金额 taxAmount
  // 未税金额 netAmount
  // 税率 taxRate
  let taxRate = row.taxRate || "";

  if (price && repertoryQuantity) {
    if (Decimal) {
      let taxAmount = Decimal.mul(price, repertoryQuantity);
      row.taxAmount = new Decimal(taxAmount).toFixed(4);

      if (taxRate) {
        let formula = Decimal.add(1, Decimal.div(taxRate, 100));
        let netPrice = Decimal.div(price, formula);
        let netAmount = Decimal.mul(netPrice, repertoryQuantity);

        row.netPrice = new Decimal(netPrice).toFixed(4);
        row.netAmount = new Decimal(netAmount).toFixed(4);
      }
    }
  }
}

税码 taxCode 🎉

json
{
  "groupCode": "purchaseSampleItemList",
  "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;

  // 含税单价 price
  let price = row.price || "";
  // 未税单价 netPrice
  // 需求数量 repertoryQuantity
  let repertoryQuantity = row.repertoryQuantity || "";
  // 含税金额 taxAmount
  // 未税金额 netAmount
  // 税率 taxRate

  if (price && repertoryQuantity) {
    if (Decimal) {
      let taxAmount = Decimal.mul(price, repertoryQuantity);
      row.taxAmount = new Decimal(taxAmount).toFixed(4);

      if (taxRate) {
        let formula = Decimal.add(1, Decimal.div(taxRate, 100));
        let netPrice = Decimal.div(price, formula);
        let netAmount = Decimal.mul(netPrice, repertoryQuantity);

        row.netPrice = new Decimal(netPrice).toFixed(4);
        row.netAmount = new Decimal(netAmount).toFixed(4);
      }
    }
  }
}
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: function (Vue, form, row) {
    return {
      purchaseAccount: row.toElsAccount,
    };
  },
  afterRowClearCallBack: function (Vue, row) {
    row.taxCode = "";
    row.taxRate = "";
  },
}