sample.md 2.3 KB

退回处理

//---------------------- private ----------------------//

// 加载即调用方法请在此处进行调用
export async function _mjsInit() {
  await mjs.init(this, { vconsole: false })
  // 页面环境:0提交(其它),1查看,2编辑(审批)
  if (mjs.env) {
    // 记录修改前ids
    mjs.pre_ids = this.$('tableField_krmybpq6').getValue().reduce((acc, cur) => {
      acc.push(...cur.associationFormField_liya90jt.map(item => item.instanceId))
      return acc;
    }, [])
    console.log("当前明细实例Ids", mjs.pre_ids);

   }
  // 价税合计,计算
  function round(number, precision) {
    return Math.round(+number + 'e' + precision) / Math.pow(10, precision);
  }
  mjs._calcTotal = mjs.optimize.debounce(() => {
    const details = this.$('tableField_krmybpq6').getValue();
    const total = details.reduce((acc, cur) => {
      const count = (cur.associationFormField_liya90jt || []).reduce((sum, ass) => {
        sum += Number(ass.subTitle)
        return sum;
      }, 0)
      cur.numberField_krn4ig4x = round(count, 2);
      acc += cur.numberField_krn4ig4x;
      return acc;
    }, 0)
    this.$('numberField_krn54uoe').setValue(total)
  }, 400)

  // 退回点击事件注册 & 响应
  mjs.bus.DOM_CALLBACK_APPROVE = async (_this, title) => {
    console.log(_this, title, title == "提交")
    if (title == "提交") {
      const cur_ids = this.$('tableField_krmybpq6').getValue().reduce((acc, cur) => {
        acc.push(...cur.associationFormField_liya90jt.map(item => item.instanceId))
        return acc;
      }, [])
      // 接口处理: 释放修改删除的全部数据,占用重新提交的全部数据
      mjs.request.xhr.doPost("https://mc.cloudpure.cn/frp/guyuan/invoice-zy", null, {
        pre_ids: mjs.pre_ids,
        pre_update: {
          selectField_liihyrt6: "未使用",
        },
        cur_ids: cur_ids,
        cur_update: {
          selectField_liihyrt6: "已使用",
          radioField_liw7rb2q: "否" // 提交后, 更新是否退回标识为否
        }
      })
    }
  }
  mjs.dom.registerFlowEvent(this);
}

//---------------------- event ----------------------//

// 页面节点加载渲染完毕
export function didMount() {
  // 工具库: mjs & 初始化
  this._mjsLoad();
}

//子表分类求和
export function onChange({ value, extra }) { 
  // 价税合计,计算
  mjs._calcTotal()
}