/** 爱山东网管请求封装
 * 请求拦截、相应拦截、错误统一处理
 */
const BASE_URL = 'https://gqyjpt.weihai.cn/prod-api'
// var errors = []
// if(localStorage.getItem('wenti')){
// 	errors = JSON.parse(localStorage.getItem('wenti'))
// }
// localStorage.setItem('wenti', JSON.stringify(errors))
var http2 = {
  post: function (params, fn) {
    // console.log('中台错误信息', JSON.stringify(localStorage.getItem('wenti')))
    /**
     * 网关验签接口
     * @param {1}  = appid应用唯一标识
     * @param {2}  = interfaceid接口唯一标识
     * @param {3}  = data接口参数,请使用json格式, 例如:{"siteid":"2","cateid":"1"}
     * @param {4}  = fromport端口来源"0"：PC；"1"：APP；"2"：支付宝；"3"：微信
     * @param {5}  = extraData 额外参数,附件,请求头一类的参数
     *
     */
    const data = SM.encrypt(
      JSON.stringify(params.reqParams),
      params.interfacePublicKey
    )
    // console.log('http请求普通参数前', params.reqParams)
    // console.log('http请求参数加密后', data)
    const extraData = {
      // 公共请求头设置
      // header: {
      // 	// Authorization: "Bearer eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI0ODA3ODFkZmQxYmE0MmM0OGQyZDQ5NTllYzcyYTUwNCIsInVzZXIiOiJqYyIsInN1YiI6ImpjIn0.WfLq11T7iWPiMuzqDY2N54aIqdv-ciYCe6pINqQAeBdqlMiJmkufsqlD2YMmUzsHA-o4WerkiSYnPzexEMiAJA"
      // 	// Authorization: localStorage.getItem('token')
      // 	Authorization: gemhoUtil.getCookie('token')
      // },
      verificationHeaders: {
        // 二次核验请求头
        interfaceTicket: gemhoUtil.getCookie('ticket'),
      },
    }
    // if (gemhoUtil.getCookie('token')) {
    extraData.header = {
      Authorization: gemhoUtil.getCookie('token')
      // Authorization:
      //   'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImxvZ2luX3VzZXJfa2V5IjoiMTU4YjM0M2MtNTFmMS00ZDYzLTk0ZWUtNzcxZWRkYTAxMjFmIn0.ehBDVx2ldKNypKcQ4Vnzzii7Dy9El8gRBRQ1Fs_Lq0tkp-zCxSHoEesF5YsWD5weKSaYdAYj_3gXQk-P832QrA',
      // }
    }

    if (params.fileList) {
      // 用于接口传递的额外参数 如文件流等){
      extraData.fileList = params.fileList
    }
    // console.log('http请求额外参数', JSON.stringify(extraData))
    // console.log('http2方法进来了~extraData', extraData)

    // vaildInterfacefn("gqyjglptxiefn", params.serviceId, data, "1", "https://" + urldomaincreatesign, "https://" + urldomaingateway).then((value) => {
    vaildInterfacefn(
      'gqyjglptxiefn',
      params.serviceId,
      data,
      '1',
      extraData
    ).then((value) => {
      /**
       * code: 200
         data: "048b04671ad85e52e" // value 值就是接口返回的data值
         msg: "请求成功"
         success: true
        */
      if (!value) {
        // var errors = JSON.parse(localStorage.getItem('wenti'))
        // errors.push('中台发生了错误-中台value为undefined')
        // localStorage.setItem('wenti', JSON.stringify(errors))
        // vant.Dialog.alert({
        // 	title: '信息提示',
        // 	message: '网络异常, 请重试',
        // 	// message: '请求异常'
        // })
        fn && fn(null)
        return
      }

      let sm2_encrypt_result = value // 后台返回待解密内容
      let sm2_decrypt_result = sm2_Decrypt(
        sm2_encrypt_result,
        params.interfacePrivateKey
      )

      // console.log('vaildInterfacefn响应解密', sm2_decrypt_result)
      if (!sm2_decrypt_result) {
        // 解密为空字符串
        // var errors = JSON.parse(localStorage.getItem('wenti'))
        // errors.push('中台发生了错误-解密为空')
        // localStorage.setItem('wenti', JSON.stringify(errors))
        fn && fn(null, 'decrypt')
        return
      }

      const decryptRes = JSON.parse(sm2_decrypt_result)
      console.log('当前请求参数', params.reqParams, '当前请求返回值', decryptRes)

      if (
        decryptRes.code === 400 ||
        decryptRes.code === 401 ||
        decryptRes.status === 401
      ) {
        gemhoUtil.setCookie('token', '') // 清空token
        vant.Dialog.alert({
          title: '信息提示',
          message: decryptRes.msg || decryptRes.message,
        }).then(() => {
          // confirm按钮回调
          if (gemhoUtil.getPageName() === 'index') {
            lightAppJssdk.navigation.close({
              success: function (data) {
                //成功回调
                console.log('关闭页面')
              },
              fail: function (data) {
                console.log('关闭失败')
              },
            })
          } else {
            gemhoUtil.navigatePage('../index.html')
          }
        })
        return
      }

      fn && fn(sm2_decrypt_result)
    })
  },
}
