methods.ts 7.2 KB
import { baseURL } from './http'

// immuneStatus: { 1:'',2:'',3: '',4: '' }
const GlobalData = {
  examineState: { 0: '去认证', 10: '审核中', 30: '认证失败', 20: '认证成功', 'err': '状态码错误' },
  incomeTypeList: { 1: '问诊订单', 2: '提现', 3: '下级分销', 'err': '状态码错误' },
  ReceivePatients: { 0: '暂不接诊', 1: '在线坐诊', 'err': '状态码错误' },
  sexData: { 0: '未知', 1: '男', 2: '女', 'err': '状态码错误' },
  MessageType: { 1: '系统通知', 2: '用户反馈', 'err': '状态码错误' },
  consultationWay: { 10: '快速问诊', 21: '图文问诊', 22: '视频问诊', 23: '电话问诊', 'err': '状态码错误' },
  isReply: { 0: '否', 1: '是', 'err': '状态码错误' },
  paramsOrderState: ['', 20, 30, 40, 50, 50],
  orderState: { 10: '待接诊', 20: '待问诊', 30: '问诊中', 40: '问诊结束', 50: '已取消', 60: '已退款', 'err': '状态码错误' },
  paramsstate: ['', 0, 1, 2],
  state: { 0: '待支付', 1: '待发货', 2: '已发货', 3: '已完成', 4: '已取消', 'err': '状态码错误' },
  isSterilization: { 0: '未绝育', 1: '已绝育', 'err': '状态码错误' }, // 是否绝育
  petSex: { 0: '母', 1: '公', 'err': '状态码错误' },
  immuneStatus: { 1: '已免疫', 2: '未免疫', 3: '免疫不全', 4: '免疫不详', 'err': '状态码错误' },
  feedType: { 1: '配方粮', 2: '配方粮+零食', 3: '只吃人食物', 4: '自制犬猫粮', 'err': '状态码错误' },
  batheFrequency: { 1: '一周一次(狗狗)', 2: '洗澡频次不规律', 3: '想起来才洗', 4: '定期洗澡(猫猫)', 'err': '状态码错误' },
  timeFrame: { 1: '<7天', 2: '<1个月', 3: '<3个月', 4: '3个月以上', 'err': '状态码错误' },
  petType: { 10: '猫', 20: '狗', 30: '异宠', 'err': '状态码错误' },
  isAgain: { 1: '是', 0: '否', 'err': '状态码错误' },
  symptom: { 1: '呕吐', 2: '软便拉稀', 3: '皮肤问题', 4: '眼睛问题', 5: '泌尿问题', 6: '绝育', 7: '疫苗', 8: '驱虫', 9: '养护问题', 10: '其他', 'err': '状态码错误' },
  renewExamineState: { 0: '待审核', 1: '审核通过', 2: '审核驳回', 6: '审核驳回', 'err': '状态码错误' },
  logisticsState: { 0: '待发货', 1: '已发货', 2: '已完成', 3: '已退货', 'err': '暂无' },
  account: { 1: '微信', 2: '支付宝', 'err': '状态码错误' },
  doctorUserType: { '10': '猫猫', '20': '狗狗', '30': '异宠' }
}

export default {
  optData(key: string) {
    return GlobalData[key]
  },
  optObjectValue(object: string, key: string | number, err: number | string = 'err') {
    return GlobalData[object][key] || GlobalData[object][err]
  },
  // 上传图片
  upload(url: string, callBack: (e: any) => void) {
    let arr = {}
    uni.chooseImage({
      count: 3,
      success: (chooseImageRes: any) => {
        const tempFilePaths = chooseImageRes.tempFilePaths
        console.log(chooseImageRes, '执行了几次')
        chooseImageRes.tempFilePaths.map((_: string[]) => {
          uni.uploadFile({
            url: baseURL + url, //仅为示例,非真实的接口地址
            filePath: _,
            name: 'file',
            // header: {
            // 'content-type': 'multipart/form-data'
            // },
            formData: {
              user: 'test',
              token: uni.getStorageSync('token')
            },
            success: uploadFileRes => {
              // console.log(JSON.parse(uploadFileRes.data), '图片路径')
              arr['upImg'] = JSON.parse(uploadFileRes.data)['message']
              callBack(arr)
              arr = {}
            }
          })
        })
      }
    })
  },
  //支付
  pay(res: any) {
    if (res.appId) {
      uni.requestPayment({
        provider: 'wxpay',
        timeStamp: res.timeStamp, // 时间戳(单位:秒)
        nonceStr: res.nonceStr, // 随机字符串1
        package: res.package, // 固定值
        signType: res.signType, // 签名,这里用的 MD5/RSA 签名
        appid: res.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致1
        paySign: res.paySign,
        success(res) {
          console.log('支付成功')
          uni.showToast({ title: '支付成功~' })
          setTimeout(() => {
            uni.navigateBack()
          }, 1500)
        },
        fail(e) {
          console.log('支付失败', e)
          uni.showToast({ title: '支付取消~', icon: 'none' })
          setTimeout(() => {
            uni.navigateBack()
          }, 1500)
        }
      })
    }
  },
  /**
   * Add the object as a parameter to the URL
   * @param baseUrl url
   * @param obj
   * @returns {string}
   * eg:
   *  let obj = {a: '3', b: '4'}
   *  setObjToUrlParams('www.baidu.com', obj)
   *  ==>www.baidu.com?a=3&b=4
 */
  setObjToUrlParams(baseUrl: string, obj: any): string {
    let parameters = ''
    for (const key in obj) {
      // parameters += key + '=' + encodeURIComponent(obj[key]) + '&'
      parameters += key + '=' + obj[key] + '&'
    }
    parameters = parameters.replace(/&$/, '')
    return /\?$/.test(baseUrl) ? baseUrl + parameters : baseUrl.replace(/\/?$/, '?') + parameters
  },
  isJSON(str: string) {
    try {
      JSON.parse(str);
      return true;
    } catch (e) {
      return false;
    }
  },
  downFile(fileName: string) {
    if (fileName == '' || fileName == undefined) return ''

    if (fileName.indexOf(baseURL) > -1 || fileName.indexOf('http://') > -1 || fileName.indexOf('https://') > -1) return fileName

    return baseURL + fileName
  },
  formatStr(str: string, val: string) {
    if (str == null || str == undefined) return val || ''
    return str
  },
  // 提示,一秒后返回上一页
  timeCallBack(title: string = '修改成功', millisecond: number = 1500, delta: number = 1) {
    uni.showToast({ title, icon: 'none' })
    setTimeout(() => uni.navigateBack({ delta }), millisecond)
  },
  jumpUrl(url: string, handler?: (...arg: any) => any) {
    uni.navigateTo({ url, events: typeof handler === 'function' && handler() })
  },
  relaunchUrl(url: string) {
    uni.reLaunch({ url })
  },
  backUrl(delta: number = 1) {
    uni.navigateBack({ delta })
  },
  previewImage(img: string) {
    uni.previewImage({
      urls: [img],
      longPressActions: {
        itemList: ['发送给朋友', '保存图片', '收藏'],
        success: function (data) { },
        fail: function (err) { }
      }
    })
  },
  copyText(text: string) {
    //#ifndef H5
    uni.setClipboardData({
      data: String(text),
      success: () => uni.$u.toast('复制成功')
    });
    //#endif

    // #ifdef H5
    setTimeout(() => {
      if (!document.queryCommandSupported('copy')) {
        uni.showToast({
          title: '浏览器不支持',
          icon: 'none',
          duration: 2000
        });
        return;
      }
      let textarea = document.createElement("textarea")
      textarea.value = text
      textarea.readOnly = "readOnly"
      document.body.appendChild(textarea)
      textarea.select() // 选择对象
      textarea.setSelectionRange(0, text.length) //核心
      let result = document.execCommand("copy") // 执行浏览器复制命令
      if (result) {
        uni.$u.toast('复制成功')
      }
      textarea.remove()
    }, 500);
    // #endif
  }
}