import { post } from '@vue2-client/services/api'
import { message } from 'ant-design-vue'

export default class DataModel {
  // 用url及pageSize构造
  // url - 加载数据的url
  // params - 除正常查询条件外，附加到后台sql中的参数，可以为空。格式为:{参数名:参数值}
  constructor ({ billUrl, serviceName, ...params }) {
    this.billUrl = billUrl
    this.params = params
    this.serviceName = serviceName
    this.data = undefined
  }

  // 执行查询过程，加载数据汇总信息
  // condition - 查询组件产生的查询条件
  // model - 查询组件收集到的输入数据
  search () {
    return post(`/api/${this.serviceName}/report/${this.billUrl}`, { data: this.params }).then(
      (res) => {
        this.data = res.value || res
      }
    ).catch(
      () => {
        this.data = undefined
        message.error('获取票据信息失败')
      }
    )
  }
}
