king
2020-08-20 3683e1475e8d74f690172a468518d88d91a69ccc
src/api/index.js
@@ -1,21 +1,54 @@
import axios from 'axios'
import qs from 'qs'
import {notification } from 'antd'
import { notification } from 'antd'
import md5 from 'md5'
import moment from 'moment'
import Utils from '@/utils/utils.js'
import options from '@/store/options.js'
// axios.defaults.baseURL = 'http://qingqiumarket.cn'
let mkDataBase = null
let storUsable = false
if (window.openDatabase) {
  let service = window.GLOB.service ? '-' + window.GLOB.service.replace('/', '') : ''
  try {
    mkDataBase = openDatabase(`mkdb${service}`, '1', 'mk-pc-database', 50 * 1024 * 1024)
    mkDataBase.transaction(tx => {
      tx.executeSql('CREATE TABLE IF NOT EXISTS VERSIONS (version varchar(50), createDate varchar(50), CDefine1 varchar(50), CDefine2 varchar(50), CDefine3 varchar(50))', [], () => {
      }, () => {
        // eslint-disable-next-line
        throw 'CREATE TABLE ERROR'
      })
      tx.executeSql('CREATE TABLE IF NOT EXISTS CONFIGS (menuid varchar(50), userid varchar(50), openEdition varchar(50), webEdition varchar(50), LongParam text, LongParamUser text, CDefine1 varchar(50), CDefine2 varchar(50), CDefine3 varchar(50), CDefine4 varchar(50), CDefine5 varchar(50))', [], () => {
      }, () => {
        // eslint-disable-next-line
        throw 'CREATE TABLE ERROR'
      })
    })
    // mkDataBase.transaction(tx => {
    //   tx.executeSql('DROP TABLE VERSIONS')
    //   tx.executeSql('DROP TABLE CONFIGS')
    // })
  } catch (e) {
    console.warn(e)
    mkDataBase = null
  }
}
axios.defaults.crossDomain = true
// axios.defaults.headers.common['token'] = 'token'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
axios.defaults.withCredentials = true
axios.interceptors.request.use((config) => {
  config.method = 'post'
  if (config.url.includes('LoginAndRedirect') || config.url.includes('getjsonresult')) {
  if (config.url.includes('LoginAndRedirect') || config.url.includes('getjsonresult') || config.url.includes('wxNativePay')) {
    config.data = qs.stringify(config.data)
  } else if (config.url.includes('Upload')) {
  } else if (config.url.includes('Upload') || config.url.includes('doupload') || config.url.includes('dopreload')) {
    config.headers = { 'Content-Type': 'multipart/form-data' }
  } else {
    config.headers.token = sessionStorage.getItem('TOKEN') || ''
    // config.headers.token = sessionStorage.getItem('TOKEN') || ''
    config.data = JSON.stringify(config.data)
  }
@@ -26,12 +59,13 @@
const setCurrentUrl = () => {
  if (!!(window.history && window.history.pushState)) {
    sessionStorage.clear()
    window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login')
    window.location.reload()
  }
}
let GlobMap = new Map()
window.GLOB.CacheMap = new Map()
axios.interceptors.response.use((response) => {
  if (response.data.ErrCode === 'LoginError') {
@@ -52,69 +86,345 @@
class Api {
  constructor() {
    let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : ''
    if (process.env.NODE_ENV === 'production') {
      axios.defaults.baseURL = document.location.origin + '/' + service
      axios.defaults.baseURL = document.location.origin + '/' + window.GLOB.service
    } else {
      // axios.defaults.baseURL = 'http://127.0.0.1:8888'
    }
  }
  /**
   * @description 系统授权
   */
  systemauth (appId, timestamp) {
    return axios({
      url: '/webapi/dostar',
      data: {
        rduri: 'http://minkesoft.com/mksepc/webapi/dostar',
        func: 'sEmpowerCloud_Get_LinkUrl',
        userid: '',
        AppID: appId,
        TimeStamp: timestamp
      }
    })
  }
  
  /**
   * @description 登录系统
   * @description 使用dostar接口,跳过验证
   * @param {Object} param 查询及提交参数
   */
  loginsystem (username, password) {
  dostarInterface (param) {
    param.userid = param.userid || ''
    return axios({
      url: '/zh-CN/Home/LoginAndRedirect',
      data: {
        Username: username,
        Password: password
      url: '/webapi/dostar',
      data: param
    })
  }
  /**
   * @description 使用dostar接口,跳转至dostars
   * @param {Object} param 查询及提交参数
   */
  dostarToDostars (param) {
    param.userid = param.userid || sessionStorage.getItem('UserID') || ''
    param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || ''
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    return axios({
      url: '/webapi/dostar',
      data: param
    })
  }
  /**
   * @description 游客登录
   */
  getTouristMsg () {
    let _SessionUid = localStorage.getItem('SessionUid')
    if (!_SessionUid) { // 手动清除SessionUid时,实时生成
      _SessionUid = Utils.getuuid()
      localStorage.setItem('SessionUid', _SessionUid)
    }
    let param = {
      func: 's_visitor_login',
      timestamp: moment().format('YYYY-MM-DD HH:mm:ss') + '.000',
      SessionUid: _SessionUid,
      TypeCharOne: 'pc'
    }
    param.LText = md5(window.btoa(_SessionUid + param.timestamp))
    param.secretkey = md5(param.LText + 'mingke' + param.timestamp)
    param.appkey = window.GLOB.appkey || ''
    if (window.GLOB.mainSystemApi) {
      param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon')
    }
    return axios({
      url: '/webapi/dologon',
      data: param
    })
  }
  /**
   * @description 手机号验证码登录
   */
  getphoneusermsg (phoneNo, checkcode, isCloud = false) {
    let param = {
      // func: 'webapi_login',
      mob: phoneNo,
      UserName: '',
      Password: '',
      check_code: checkcode,
      way_no: 'sms_vcode',
      systemType: options.sysType
    }
    param.appkey = window.GLOB.appkey || ''
    if (isCloud) {
      param.debug = 'Y'
      if (options.cloudServiceApi) {
        param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon')
      }
    } else if (!isCloud && window.GLOB.mainSystemApi) {
      param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon')
    }
    return axios({
      url: '/webapi/dologon',
      data: param
    })
  }
  /**
   * @description 登录系统, 获取用户信息
   */
  getusermsg (username, password) {
    return axios({
      url: 'webapi/getjsonresult',
      data: {
        DBT: 'proc',
        DBS: 'webapi_login',
        DBP: JSON.stringify({ 'UserName': username, 'Password': password })
  getusermsg (username, password, isCloud = false) {
    let param = {
      // func: 'webapi_login',
      UserName: username,
      Password: password,
      systemType: options.sysType,
      Type: 'X'
    }
    param.Password = Utils.formatOptions(param.Password)
    param.appkey = window.GLOB.appkey || ''
    if (isCloud) {
      param.debug = 'Y'
      if (options.cloudServiceApi) {
        param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon')
      }
    } else if (!isCloud && window.GLOB.mainSystemApi) {
      param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon')
    }
    return axios({
      url: '/webapi/dologon',
      data: param
    })
  }
  /**
   * @description 重置密码
   * @description 获取系统版本信息,启用或更新websql
   */
  resetpassword (originpwd, newpwd) {
    return axios({
      url: '/local/dostar',
      data: {
        func: 's_PwdUpt',
        userid: sessionStorage.getItem('UserID'),
        OriginPwd: originpwd,
        NewPwd: newpwd
  getAppVersion (_resolve, _reject) {
    let appVersion = {}
    new Promise((resolve, reject) => {
      if (!mkDataBase) {
        reject()
      } else {
        mkDataBase.transaction(tx => {
          if (!mkDataBase) {
            reject()
            return
          }
          tx.executeSql('SELECT * FROM VERSIONS', [], (tx, results) => {
            if (results.rows.length === 0) {
              tx.executeSql('DELETE FROM CONFIGS')
              resolve({version: '', createDate: ''})
            } else if (results.rows.length === 1) {
              resolve(results.rows[0])
            } else if (results.rows.length > 1) {
              tx.executeSql('DELETE FROM VERSIONS')
              tx.executeSql('DELETE FROM CONFIGS')
              resolve({version: '', createDate: ''})
            }
          }, (tx, results) => {
            reject()
            console.warn(results)
          })
        })
      }
    }).then(msg => {
      if (msg.version) {
        appVersion.oldVersion = msg.version
      }
      let curTime = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
      let param = {
        func: 's_get_app_version',
        modifydate: msg.createDate || curTime,
      }
      param.userid = sessionStorage.getItem('UserID') || ''
      param.lang = localStorage.getItem('lang') || ''
      param.SessionUid = localStorage.getItem('SessionUid') || ''
      param.LoginUID = sessionStorage.getItem('LoginUID') || ''
      param.appkey = window.GLOB.appkey || ''
      if (window.GLOB.mainSystemApi) {
        param.rduri = window.GLOB.mainSystemApi
      }
      param.nonc = Utils.getuuid()
      let keys = Object.keys(param).sort()
      let values = ''
      keys.forEach(key => {
        if (key === 'rduri' || key === 't') return
        if (typeof(param[key]) === 'object') {
          values += key + JSON.stringify(param[key])
        } else {
          values += key + param[key]
        }
      })
      param.sign  = md5(values)
      param.t = new Date().getTime()
      return new Promise((resolve, reject) => {
        axios({
          url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
          data: param
        }).then(res => {
          if (!res.status) {
            reject()
            return
          }
          let version = res.app_version || '1.00'
          appVersion.newVersion = version
          appVersion.oldVersion = appVersion.oldVersion || version
          mkDataBase.transaction(tx => {
            if (res.menu_data && res.menu_data.length > 0) {
              let keys = res.menu_data.map(mid => `'${mid.menuid}'`)
              tx.executeSql(`DELETE FROM CONFIGS where menuid in (${keys.join(',')})`, [], () => {}, () => {
                reject()
              })
            }
            if (msg.version) {
              tx.executeSql(`UPDATE VERSIONS SET createDate='${curTime}'`, [], () => {
                resolve()
              }, () => {
                reject()
              })
            } else {
              tx.executeSql('INSERT INTO VERSIONS (version, createDate) VALUES (?, ?)', [version, curTime], () => {
                resolve()
              }, () => {
                reject()
              })
            }
          })
        })
      })
    }, () => {
      _reject()
      mkDataBase = null
      return Promise.reject()
    }).then(() => {
      storUsable = true
      _resolve(appVersion)
    })
  }
  /**
   * @description 更新系统版本信息,清空配置信息
   */
  updateAppVersion (newVersion) {
    return new Promise(resolve => {
      if (!mkDataBase) {
        resolve({status: false})
        return
      }
      let curTime = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
      mkDataBase.transaction(tx => {
        tx.executeSql(`DELETE FROM CONFIGS`, [], () => {}, () => {
          resolve({status: false})
        })
        tx.executeSql(`UPDATE VERSIONS SET version='${newVersion}', createDate='${curTime}'`, [], () => {
          resolve({status: true})
        }, () => {
          resolve({status: false})
        })
      })
    })
  }
  /**
   * @description 删除某个菜单配置信息
   */
  deleteMenuStorage (menuId) {
    return new Promise(resolve => {
      if (!mkDataBase) {
        resolve()
        return
      }
      mkDataBase.transaction(tx => {
        tx.executeSql(`DELETE FROM CONFIGS where menuid='${menuId}'`, [], () => {
          resolve()
        }, () => {
          mkDataBase = null
        })
      })
    })
  }
  /**
   * @description 获取或修改云端配置
   */
  getCloudConfig (param) {
    param.lang = localStorage.getItem('lang') || ''
    param.appkey = window.GLOB.appkey || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    if (sessionStorage.getItem('CloudUserID') && options.cloudServiceApi) { // 存在云端登录信息,且存在云端地址
      param.rduri = options.cloudServiceApi
      param.userid = sessionStorage.getItem('CloudUserID')
      param.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
    } else if (window.GLOB.mainSystemApi) {
      param.rduri = window.GLOB.mainSystemApi
      param.userid = sessionStorage.getItem('UserID')
      param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    } else {
      param.userid = sessionStorage.getItem('UserID')
      param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    }
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    return axios({
      url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
      data: param
    })
  }
@@ -122,17 +432,37 @@
   * @description 获取或修改系统配置,增加appkey
   */
  getSystemConfig (param) {
    param.userid = sessionStorage.getItem('UserID')
    param.userid = sessionStorage.getItem('UserID') || ''
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    if (window.GLOB.mainSystemApi) {
    if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { // 编辑状态,且存在云端地址
      param.rduri = options.cloudServiceApi
      param.userid = sessionStorage.getItem('CloudUserID') || ''
      param.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
    } else if (window.GLOB.mainSystemApi) {
      param.rduri = window.GLOB.mainSystemApi
    }
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    return axios({
      url: '/webapi/dostar',
      url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
      data: param
    })
  }
@@ -143,44 +473,204 @@
  getLocalConfig (param) {
    param.userid = sessionStorage.getItem('UserID')
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    return axios({
      url: '/webapi/dostar',
      url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
      data: param
    })
  }
  /**
   * @description 获取系统配置,优先从缓存中取值,增加appkey
   * @description 获取系统配置,取值优先等级websql、缓存、服务器
   * @param {Object}  param   请求参数
   */
  getSystemCacheConfig (param) {
    param.userid = sessionStorage.getItem('UserID')
  getCacheConfig (param) {
    param.userid = sessionStorage.getItem('UserID') || ''
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    if (window.GLOB.mainSystemApi) {
    if (sessionStorage.getItem('isEditState') === 'true') { // 编辑状态,单点登录服务器为云端
      if (options.cloudServiceApi) { // 存在云端地址时,使用云端系统参数
        param.rduri = options.cloudServiceApi
        param.userid = sessionStorage.getItem('CloudUserID') || ''
        param.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
      }
    } else if (window.GLOB.mainSystemApi) {
      param.rduri = window.GLOB.mainSystemApi
    }
    let _param = JSON.parse(JSON.stringify(param)) // 缓存校验,去除时间和加密字符
    delete _param.timestamp
    delete _param.secretkey
    delete _param.open_key
    _param = JSON.stringify(_param)
    _param  = md5(_param)
    if (mkDataBase && storUsable) {
      param.nonc = Utils.getuuid()
      let keys = Object.keys(param).sort()
      let values = ''
      keys.forEach(key => {
        if (key === 'rduri' || key === 't') return
        if (typeof(param[key]) === 'object') {
          values += key + JSON.stringify(param[key])
        } else {
          values += key + param[key]
        }
      })
      param.sign  = md5(values)
      param.t = new Date().getTime()
    if (GlobMap.has(_param)) {
      return Promise.resolve(GlobMap.get(_param))
      return new Promise(resolve => {
        mkDataBase.transaction(tx => {
          tx.executeSql(`SELECT * FROM CONFIGS WHERE menuid='${param.MenuID}' and userid='${param.userid}'`, [], (tx, results) => {
            let paramItem = results.rows[0]
            if (paramItem) {
              resolve({
                ErrCode: 'S',
                ErrMesg: '',
                LongParam: paramItem.LongParam,
                LongParamUser: paramItem.LongParamUser,
                message: '',
                open_edition: paramItem.openEdition,
                status: true,
                web_edition: paramItem.webEdition
              })
            } else {
              axios({
                url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
                data: param
              }).then(res => {
                if (res.status) {
                  this.writeInWebSql([param.MenuID, param.userid, res.open_edition, res.web_edition, res.LongParam, res.LongParamUser])
                }
                resolve(res)
              })
            }
          }, (tx, results) => {
            axios({
              url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
              data: param
            }).then(res => {
              if (res.status) {
                window.GLOB.CacheMap.set(_param, res)
              }
              resolve(res)
            })
            mkDataBase = null
            storUsable = false
            console.warn(results)
          })
        })
      })
    } else if (window.GLOB.CacheMap.has(_param)) {
      return Promise.resolve(window.GLOB.CacheMap.get(_param))
    } else {
      param.nonc = Utils.getuuid()
      let keys = Object.keys(param).sort()
      let values = ''
      keys.forEach(key => {
        if (key === 'rduri' || key === 't') return
        if (typeof(param[key]) === 'object') {
          values += key + JSON.stringify(param[key])
        } else {
          values += key + param[key]
        }
      })
      param.sign  = md5(values)
      param.t = new Date().getTime()
      return new Promise(resolve => {
        axios({
          url: '/webapi/dostar',
          url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
          data: param
        }).then(res => {
          if (res.status) {
            window.GLOB.CacheMap.set(_param, res)
          }
          resolve(res)
        })
      })
    }
  }
          GlobMap.set(_param, res)
  /**
   * @description 将数据写入websql
   */
  writeInWebSql (data) {
    if (!mkDataBase) return
    mkDataBase.transaction(tx => {
      tx.executeSql('INSERT INTO CONFIGS (menuid, userid, openEdition, webEdition, LongParam, LongParamUser) VALUES (?, ?, ?, ?, ?, ?)', data)
    })
  }
  /**
   * @description 获取系统配置,优先从缓存中取值,增加appkey
   * @param {Object}  param   请求参数
   * @param {Boolean} SSO     是否为单点登录地址
   */
  getSystemCacheConfig (param) {
    param.userid = param.userid || sessionStorage.getItem('UserID') || ''
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    let _param = JSON.parse(JSON.stringify(param)) // 缓存校验,去除时间和加密字符
    delete _param.timestamp
    delete _param.secretkey
    delete _param.open_key
    _param = JSON.stringify(_param)
    _param  = md5(_param)
    if (window.GLOB.CacheMap.has(_param)) {
      return Promise.resolve(window.GLOB.CacheMap.get(_param))
    } else {
      param.nonc = Utils.getuuid()
      let keys = Object.keys(param).sort()
      let values = ''
      keys.forEach(key => {
        if (key === 'rduri' || key === 't') return
        if (typeof(param[key]) === 'object') {
          values += key + JSON.stringify(param[key])
        } else {
          values += key + param[key]
        }
      })
      param.sign = md5(values)
      param.t = new Date().getTime()
      return new Promise(resolve => {
        axios({
          url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
          data: param
        }).then(res => {
          if (res.status) {
            window.GLOB.CacheMap.set(_param, res)
          }
          resolve(res)
        })
      })
@@ -193,11 +683,32 @@
  genericInterface (param) {
    param.userid = sessionStorage.getItem('UserID')
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    if (sessionStorage.getItem('isEditState') === 'true') { // HS下菜单
      param.userid = sessionStorage.getItem('CloudUserID')
      param.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
    }
    param.nonc = Utils.getuuid()
    
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    return axios({
      url: '/webapi/dostar',
      url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
      data: param
    })
  }
@@ -208,8 +719,9 @@
  getExcelOut (param, name) {
    param.userid = sessionStorage.getItem('UserID')
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    param.appkey = window.GLOB.appkey || ''
    
    return new Promise(resolve => {
      axios({
@@ -253,13 +765,96 @@
  }
  /**
   * @description 上传base64
   * @param {String} base64 base64图片编码
   */
  fileuploadbase64 (base64, service = 'local') {
    let param = {
      func: '',
      BasePath: 'Content/Upload',
      lang: localStorage.getItem('lang') || '',
      appkey: window.GLOB.appkey || '',
      Base64Img: base64
    }
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    if (service === 'sso' && window.GLOB.mainSystemApi) {
      param.rduri = window.GLOB.mainSystemApi
      param.userid = sessionStorage.getItem('UserID')
      param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    } else if (service === 'cloud' && options.cloudServiceApi) {
      param.rduri = options.cloudServiceApi
      param.userid = sessionStorage.getItem('CloudUserID')
      param.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
    } else {
      param.userid = sessionStorage.getItem('UserID')
      param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    }
    param.nonc = Utils.getuuid()
    let keys = Object.keys(param).sort()
    let values = ''
    keys.forEach(key => {
      if (key === 'rduri' || key === 't') return
      if (typeof(param[key]) === 'object') {
        values += key + JSON.stringify(param[key])
      } else {
        values += key + param[key]
      }
    })
    param.sign  = md5(values)
    param.t = new Date().getTime()
    if (param.rduri) {
      param.rduri = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image')
      return axios({
        url: '/webapi/dostars',
        data: param
      })
    } else {
      return axios({
        url: '/webapi/SaveBase64Image',
        data: param
      })
    }
  }
  /**
   * @description 大文件上传
   */
  getLargeFileUpload (param) {
    return axios({
      url: '/webapi/doupload',
      data: param
    })
  }
  /**
   * @description 查询文件是否已上传
   */
  getFilePreUpload (param) {
    return axios({
      url: '/webapi/dopreload',
      data: param
    })
  }
  /**
   * @description 获取微信支付二维码
   */
  getWxNativePay (param) {
    return axios({
      url: '/wxpay/wxNativePay',
      data: param
    })
  }
  /**
   * @description 文件上传
   */
  getFileUpload (file) {
    const param = new FormData()
    param.append('file', file)
    param.append('RootPath', 'Content/images/upload/')
  getFileUpload (param) {
    return axios({
      url: '/zh-CN/Home/Upload',
      data: param
@@ -267,78 +862,17 @@
  }
  /**
   * @description 获取页面配置信息
   * @param {String} MenuNo 页面菜单参数
   */
  getMainConfigsData (MenuNo) {
    return axios({
      url: '/local/dostar',
      data: {
        func: 'GetMainConfigs',
        userid: sessionStorage.getItem('UserID'),
        MenuNo: MenuNo
      }
    })
  }
  /**
   * @description 获取页面列表数据
   * @param {String} MenuNo 页面菜单参数
   */
  getMainTableData (MenuNo, pageIndex = 1, pageSize = 10, orderColumn = '', orderType = '', search) {
    return axios({
      url: '/local/dostar',
      data: {
        func: 'GetMainData',
        userid: sessionStorage.getItem('UserID'),
        MenuNo: MenuNo,
        PageIndex: pageIndex,
        PageSize: pageSize,
        orderColumn: orderColumn,
        orderType: orderType,
        search: search
      }
    })
  }
  /**
   * @description 获取页面配置信息
   * @param {String} MenuNo 页面菜单参数
   */
  getModelFormData (MenuNo) {
    return axios({
      url: '/local/dostar',
      data: {
        func: 'getModelFormData',
        userid: sessionStorage.getItem('UserID'),
        MenuNo: MenuNo
      }
    })
  }
  /**
   * @description 获取页面列表数据
   * @param {String} param 提交参数
   */
  setActionSubmit (param) {
    param.userid = sessionStorage.getItem('UserID')
    return axios({
      url: '/local/dostar',
      data: param
    })
  }
  /**
   * @description 通用接口
   * @description 通用接口(数据管理)
   * @param {Object} param 查询及提交参数
   */
  commonInterface (param) {
    param.userid = sessionStorage.getItem('UserID')
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    param.BID = param.BID || ''
    param.debug = param.debug || ''
    return axios({
      url: '/webapi/dostar',
      data: param
@@ -346,32 +880,20 @@
  }
  /**
   * @description 通用接口(提交)
   * @description 通用接口(提交)(数据管理)
   * @param {Object} param 查询及提交参数
   */
  submitInterface (param) {
    param.userid = sessionStorage.getItem('UserID')
    param.lang = localStorage.getItem('lang') || ''
    param.SessionUid = sessionStorage.getItem('SessionUid') || ''
    param.SessionUid = localStorage.getItem('SessionUid') || ''
    param.LoginUID = sessionStorage.getItem('LoginUID') || ''
    return axios({
      url: '/webapi/dostar',
      data: param
    })
  }
  // /**
  //  * @description 登出系统
  //  */
  // logoutsystem () {
  //   return axios({
  //     url: '/local/dostar',
  //     data: {
  //       func: 'logout',
  //       userid: sessionStorage.getItem('UserID')
  //     }
  //   })
  // }
}
export default new Api()