import Request from '@/utils/request/request-util';

/**
 * 表单设计api
 *
 * @author chenjinlong
 * @date 2021/4/13 09:52
 */
export class FormDesignApi {
  /**
   * 获取所有字典类型列表
   *
   * @author fengshuonan
   * @date 2021/4/20 10:41
   */
  static getDictTypeList() {
    return Request.getAndLoadData('/dictType/list');
  }

  /**
   * 获取视图列表
   * @param {*} params
   * @returns
   */
  static getViewSelectList(params) {
    return Request.getAndLoadData('/customView/selectList', params);
  }

  /**
   * 获取视图中的字段列表
   * @param {*} params
   * @returns
   */
  static getViewFieldList(params) {
    return Request.getAndLoadData('/customView/getViewFieldList', params);
  }

  /**
   * 获取表单元素配置信息
   * @returns
   */
  static getFormConfig(params) {
    return Request.getAndLoadData('/formItem/getFormConfig', params);
  }

  /**
   * 更新表单元素列表
   * @returns
   */
  static saveOrUpdateFormConfig(params) {
    return Request.post('/formItem/saveOrUpdateFormConfig', params);
  }

  /**
   * 升级
   * @returns
   */
  static upgradeModel(params) {
    return Request.post('/formModel/upgradeModel', params);
  }

  /**
   * 获取表单组件列表（带分组）
   * @returns
   */
  static formComponentList(params) {
    return Request.get('/formComponent/list', params);
  }

  /**
   * 生成节点id
   * @returns {Promise<*>}
   */
  static async genId() {
    let id = '';
    await Request.get('/id/getId', null).then(res => {
      id = res.data;
    });
    return id;
  }

  /**
   * 表单模板列表
   * @param {*} params
   * @returns
   */
  static formTemplateList(params) {
    return Request.getAndLoadData('/formTemplate/list', params);
  }

  /**
   * 表单模板详情
   * @param {*} params
   * @returns
   */
  static formTemplateDetail(params) {
    return Request.getAndLoadData('/formTemplate/detail', params);
  }
}
