king
2022-11-25 567cea64c520654876e8c1a7f4ca2baf2c1c773f
src/utils/utils.js
@@ -39,6 +39,45 @@
export default class Utils {
  /**
   * @description 获取会员等级
   * @return {String}  level
   */
  static getMemberLevel () {
    let _level = 10
    let _Mlevel = sessionStorage.getItem('Member_Level')
    if (_Mlevel) {
      if (_Mlevel === md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 10)) {
        _level = 10
      } else if (_Mlevel === md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 20)) {
        _level = 20
      } else if (_Mlevel === md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + 30)) {
        _level = 30
      }
    }
    return _level
  }
  /**
   * @description 获取图表高度
   */
  static getHeight (val) {
    if (typeof(val) === 'string') {
      if (val.indexOf('px') > -1) {
        val = parseFloat(val)
      } else if (val.indexOf('vw') > -1) {
        val = parseFloat(val)
        val = document.body.clientWidth * val / 100
      } else if (val.indexOf('vh') > -1) {
        val = parseFloat(val)
        val = document.body.clientHeight * val / 100
      }
    }
    return parseInt(val || 400) - 30
  }
  /**
   * @description 数据源名称,用于统一查询
   * @return {String}  name
   */
@@ -74,12 +113,11 @@
  static getguid () {
    // 产生一个新的GUID值
    let uuid = []
    let d = new Date()
    let options = '0123456789abcdefghigklmnopqrstuv'
    for (let i = 0; i < 19; i++) {
      uuid.push(options.substr(Math.floor(Math.random() * 0x20), 1))
    }
    uuid = moment().format('YYYYMMDDHHmmss') + d.getMilliseconds() + uuid.join('')
    uuid = moment().format('YYYYMMDDHHmmssSSS') + uuid.join('')
    return uuid.toUpperCase()
  }
@@ -139,7 +177,7 @@
    let error = ''
    
    sql = sql.replace(/sys\.fn_sqlvarbasetostr\(HashBytes\('MD5'/ig, '') // 跳过MD5加密
    sql = sql.replace(/sys\.fn_/ig, '') // 跳过sys.fn_验证
    chars.forEach(char => {
      if (!error && char.reg.test(sql)) {
@@ -711,14 +749,7 @@
  static getrealurl (url) {
    if (!url) return ''
    let baseurl = ''
    if (process.env.NODE_ENV === 'production') {
      baseurl = document.location.origin + '/' + window.GLOB.service
    } else {
      baseurl = window.GLOB.location + '/' + window.GLOB.service
    }
    let realurl = url.match(/^http/) || url.match(/^\/\//) ? url : baseurl + url
    let realurl = url.match(/^http/) || url.match(/^\/\//) ? url : window.GLOB.baseurl + url
    return realurl
  }
@@ -734,7 +765,7 @@
    if (options.cloudServiceApi) {
      baseurl = options.cloudServiceApi.replace(/webapi(.*)$/, '')
    } else {
      baseurl = document.location.origin + '/' + window.GLOB.service
      baseurl = window.GLOB.baseurl
    }
    return url.match(/^http/) || url.match(/^\/\//) ? url : baseurl + url
@@ -748,7 +779,7 @@
    let arrfield = [item.valueField, item.valueText]
    if (item.type === 'checkcard') {
      arrfield = item.fields.map(f => f.field)
      arrfield = item.fields ? item.fields.map(f => f.field) : []
      arrfield.push(item.cardValField)
      if (item.urlField) {
        arrfield.push(item.urlField)
@@ -777,10 +808,8 @@
    arrfield = arrfield.join(',')
    if (item.orderBy) {
      // sql = `select ${item.type === 'checkcard' ? 'top 20' : ''} ${arrfield} from (select distinct ${arrfield},${item.orderBy} as orderfield from ${_datasource} ) a order by orderfield ${item.orderType}`
      sql = `select distinct ${arrfield},${item.orderBy} as orderfield from ${_datasource} order by orderfield ${item.orderType}`
    } else {
      // sql = `select ${item.type === 'checkcard' ? 'top 20' : ''} ${arrfield} from (select distinct ${arrfield} from ${_datasource}) a`
      sql = `select distinct ${arrfield} from ${_datasource}`
    }
@@ -796,9 +825,8 @@
      sql = sql.replace(/@db@/ig, window.GLOB.externalDatabase)
    }
    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
      console.info(sql)
    }
    sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
    sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
    return {
      sql: sql,
@@ -822,7 +850,12 @@
  let RoleID = sessionStorage.getItem('role_id') || ''
  let departmentcode = sessionStorage.getItem('departmentcode') || ''
  let organization = sessionStorage.getItem('organization') || ''
  let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
  let nation = sessionStorage.getItem('nation') || ''
  let province = sessionStorage.getItem('province') || ''
  let city = sessionStorage.getItem('city') || ''
  let district = sessionStorage.getItem('district') || ''
  let address = sessionStorage.getItem('address') || ''
  let _sheet = item.sheet
  if (sessionStorage.getItem('isEditState') === 'true') {
@@ -1069,9 +1102,9 @@
    _sql = `
      /* 系统生成 */
      declare @${sheet} table (${declarefields.join(',')},jskey nvarchar(50),BID nvarchar(50) )
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
      
      Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @login_city='${city}'
      Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
      ${_initCustomScript}
      `
    _sqlInsert = `Insert into @${sheet} (${fields},jskey,BID)`
@@ -1104,9 +1137,9 @@
    _sql = `
      /* 系统生成 */
      declare @${sheet} table (jskey nvarchar(50))
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
      
      Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @login_city='${city}'
      Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
      `
  }
@@ -1136,7 +1169,13 @@
  let RoleID = sessionStorage.getItem('role_id') || ''
  let departmentcode = sessionStorage.getItem('departmentcode') || ''
  let organization = sessionStorage.getItem('organization') || ''
  let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
  let nation = sessionStorage.getItem('nation') || ''
  let province = sessionStorage.getItem('province') || ''
  let city = sessionStorage.getItem('city') || ''
  let district = sessionStorage.getItem('district') || ''
  let address = sessionStorage.getItem('address') || ''
  let _sheet = btn.sheet
  let BID = data[0].$$BID || ''
@@ -1281,9 +1320,9 @@
    _sql = `
      /* 系统生成 */
      declare @${sheet} table (${declarefields.join(',')},jskey nvarchar(50),data_type nvarchar(50),BID nvarchar(50) )
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
      
      Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @login_city='${city}'
      Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
      ${_initCustomScript}
      `
    _sqlInsert = `Insert into @${sheet} (${fields},jskey,data_type,BID)`
@@ -1316,9 +1355,9 @@
    _sql = `
      /* 系统生成 */
      declare @${sheet} table (jskey nvarchar(50))
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
      
      Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @login_city='${city}'
      Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
      `
  }
@@ -1343,17 +1382,16 @@
 * @return {Object}  param     请求参数
 * @return {Array}   data      列表行数据
 * @return {Array}   columns   显示列
 * @return {Object}  tab       标签信息
 * @return {Boolean} retmsg    是否需要数据返回
 */
export function getSysDefaultSql (btn, setting, formdata, param, data, columns, tab, retmsg = false, moduleParams, getOptions) {
export function getSysDefaultSql (btn, setting, formdata, param, data, columns, retmsg = false, moduleParams, getOptions) {
  let primaryId = param.ID
  let BID = param.BID
  let BID = param.BID || ''
  let verify = btn.verify || {}
  let datavars = {}                 // 声明的变量,表单及显示列
  let _actionType = null
  let _callbacksql = ''
  let foreignKey = tab && tab.foreignKey ? tab.foreignKey.toLowerCase() : ''
  let foreignKey = setting.foreignKey ? setting.foreignKey.toLowerCase() : ''
  if (verify.default !== 'false') { // 判断是否使用默认sql
    _actionType = btn.sqlType
@@ -1385,7 +1423,7 @@
  })
  // 需要声明的变量集
  let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'login_city', 'bid']
  let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'bid']
  // 主键字段
  let primaryKey = setting.primaryKey || 'id'
@@ -1408,14 +1446,11 @@
      if (form.type === 'number' || form.type === 'rate') {
        let val = form.value
        if (typeof(val) !== 'number') {
          val = parseFloat(val)
          if (isNaN(val)) {
            val = 0
          }
        if (isNaN(val)) {
          val = 0
        }
        _initFormfields.push(`@${_key}=${val}`)
      } else if (['date', 'datemonth', 'datetime'].includes(form.type)) {
      } else if (['date', 'datemonth'].includes(form.type)) {
        _initFormfields.push(`@${_key}='${form.value || '1949-10-01'}'`)
      } else {
        _initFormfields.push(`@${_key}='${form.value}'`)
@@ -1450,7 +1485,7 @@
  }
  // 添加数据中字段,表单值优先(按钮不选行或多行拼接时跳过)
  if (data && !btn.$forbid && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce') {
  if (data && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce' && columns && columns.length > 0) {
    datavars = {...data, ...datavars}
    const setField = (col) => {
@@ -1492,17 +1527,15 @@
      }
    }
    if (columns && columns.length > 0) {
      columns.forEach(col => {
        if (col.type === 'colspan' || col.type === 'old_colspan') {
          col.subcols.forEach(cell => {
            setField(cell)
          })
        } else {
          setField(col)
        }
      })
    }
    columns.forEach(col => {
      if (col.type === 'colspan' || col.type === 'old_colspan') {
        col.subcols.forEach(cell => {
          setField(cell)
        })
      } else {
        setField(col)
      }
    })
  }
  // 变量声明
@@ -1511,7 +1544,7 @@
    _declarefields = ',' + _declarefields
  }
  _sql = `/* 系统生成 */
      Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@bid nvarchar(50),@ModularDetailCode nvarchar(50)${_declarefields}
      Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50),@ModularDetailCode nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@bid nvarchar(50)${_declarefields}
    `
  let userName = sessionStorage.getItem('User_Name') || ''
@@ -1519,7 +1552,12 @@
  let RoleID = sessionStorage.getItem('role_id') || ''
  let departmentcode = sessionStorage.getItem('departmentcode') || ''
  let organization = sessionStorage.getItem('organization') || ''
  let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
  let nation = sessionStorage.getItem('nation') || ''
  let province = sessionStorage.getItem('province') || ''
  let city = sessionStorage.getItem('city') || ''
  let district = sessionStorage.getItem('district') || ''
  let address = sessionStorage.getItem('address') || ''
  if (sessionStorage.getItem('isEditState') === 'true') {
    userName = sessionStorage.getItem('CloudUserName') || ''
@@ -1529,7 +1567,7 @@
  // 初始化凭证及用户信息字段
  _sql += `
      /* 凭证及用户信息初始化赋值 */
      select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @login_city='${city}', @BillCode='', @ModularDetailCode=''
      select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}', @bid='${BID}', @BillCode='', @ModularDetailCode=''
      `
  // 表单变量赋值
@@ -1609,9 +1647,6 @@
        }
      })
      regoptions.push({
        reg: new RegExp('@login_city@', 'ig'),
        value: `'${city}'`
      }, {
        reg: new RegExp('@userName@', 'ig'),
        value: `'${userName}'`
      }, {
@@ -1909,6 +1944,11 @@
      values.push('@BID@')
    }
    if (!keys.includes('typename')) {
      keys.push('typename')
      values.push('@typename@')
    }
    keys = keys.join(',')
    values = values.join(',')
    _insertsql = `insert into ${btn.sql} (${keys}) select ${values};`
@@ -1931,11 +1971,14 @@
      if (!_arr.includes('submitdate')) {
        _form.push('submitdate=getdate()')
      }
      if (!_arr.includes('submituserid')) {
        _form.push('submituserid=@userid@')
      }
      if (!_arr.includes('submituser')) {
        _form.push('submituser=@username')
      }
      if (!_arr.includes('submitstaff')) {
        _form.push('submitstaff=@fullname')
      }
      if (!_arr.includes('submituserid')) {
        _form.push('submituserid=@userid@')
      }
    } else {
      if (!_arr.includes('modifydate')) {
@@ -1943,6 +1986,9 @@
      }
      if (!_arr.includes('modifyuser')) {
        _form.push('modifyuser=@username')
      }
      if (!_arr.includes('modifystaff')) {
        _form.push('modifystaff=@fullname')
      }
      if (!_arr.includes('modifyuserid')) {
        _form.push('modifyuserid=@userid@')
@@ -1959,6 +2005,9 @@
      if (!_arr.includes('fiyear')) {
        _form.push('FiYear=@FiYear')
      }
    }
    if (!_arr.includes('typename')) {
      _form.push('typename=@typename@')
    }
    _form = _form.join(',')
@@ -2012,7 +2061,7 @@
    _sql += `
      /* 默认sql */
      insert into snote (remark,createuserid,CreateUser,CreateStaff) select left('删除表:${btn.sql} 数据: ${_msg}${primaryKey}='+@ID@,200),@userid@,@username,@fullname
      insert into snote (remark,createuserid,CreateUser,CreateStaff,typename) select left('删除表:${btn.sql} 数据: ${_msg}${primaryKey}='+@ID@,200),@userid@,@username,@fullname,@typename@
      delete ${btn.sql} where ${primaryKey}${_ID};`
  } else if (_actionType === 'insertOrUpdate') {
    _sql += `
@@ -2035,6 +2084,20 @@
    _sql += _backCustomScript
  }
  if (window.GLOB.breakpoint) {
    let start = new RegExp('\\/\\*\\$breakpoint_begin_' + window.GLOB.breakpoint + '@', 'ig')
    let end = new RegExp('@breakpoint_end_' + window.GLOB.breakpoint + '\\$\\*\\/', 'ig')
    if (window.GLOB.breakpoint === 'all') {
      start = /\/\*\$breakpoint_begin_[0-9a-z_]+@/ig
      end = /@breakpoint_end_[0-9a-z_]+\$\*\//ig
    }
    _sql = _sql.replace(start, '').replace(end, '').replace(/\$breakpoint_proc@/ig, window.GLOB.breakpoint)
    _sql += `
      z_debug_end: select @ErrorCode='E',@retmsg='debug_end' goto aaa`
  }
  if (retmsg) {
    _sql += `
      aaa: if @ErrorCode!=''
@@ -2047,12 +2110,27 @@
      aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
  }
  _sql = _sql.replace(/@ID@/ig, `'${primaryId || ''}'`)
  _sql = _sql.replace(/@BID@/ig, `'${BID}'`)
  _sql = _sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
  _sql = _sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
  _sql = _sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
  _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
  _sql = _sql.replace(/@typename@/ig, `'admin'`)
  if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
    // _sql = _sql.replace(/\n\s{8}/ig, '\n')
    console.info(_sql)
  }
  if (retmsg) {
    _callbacksql = _callbacksql.replace(/@ID@/ig, `'${primaryId || ''}'`)
    _callbacksql = _callbacksql.replace(/@BID@/ig, `'${BID}'`)
    _callbacksql = _callbacksql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
    _callbacksql = _callbacksql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
    _callbacksql = _callbacksql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
    _callbacksql = _callbacksql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
    return {
      sql: _sql,
      callbacksql: _callbacksql
@@ -2067,26 +2145,31 @@
 */
export function getMark (marks, record, style = {}) {
  let icon = null
  let color = null
  let innerStyle = null
  let position = null
  style = JSON.parse(JSON.stringify(style))
  marks.some(mark => {
    let originVal = record[mark.field[0]] + ''
    let originVal = record[mark.field[0]]
    let contrastVal = ''
    let result = false
    if (mark.field[1] === 'static') {
      contrastVal = mark.contrastValue + ''
      contrastVal = mark.contrastValue
      originVal = originVal + ''
    } else {
      contrastVal = record[mark.field[2]] + ''
      contrastVal = record[mark.field[2]]
    }
    if (originVal === undefined || contrastVal === undefined) return false
    if (mark.match === '=') {
      result = originVal === contrastVal
    } else if (mark.match === '!=') {
      result = originVal !== contrastVal
    } else if (mark.match === 'like') {
      originVal = originVal + ''
      contrastVal = contrastVal + ''
      result = originVal.indexOf(contrastVal) > -1
    } else if (mark.match === '>') {
      result = parseFloat(originVal) > parseFloat(contrastVal)
@@ -2100,20 +2183,24 @@
    if (type === 'font') {
      style.color = mark.color
      innerStyle = {color: mark.color}
    } else if (type === 'background') {
      style.background = mark.color
      if (mark.fontColor) {
        style.color = mark.fontColor
        innerStyle = {color: mark.fontColor}
      }
    } else if (type === 'underline') {
      style.textDecoration = 'underline'
      style.color = mark.color
      innerStyle = {color: mark.color, textDecoration: 'underline'}
    } else if (type === 'line-through') {
      style.textDecoration = 'line-through'
      style.color = mark.color
      innerStyle = {color: mark.color, textDecoration: 'line-through'}
    } else if (type.indexOf('icon') > -1) {
      icon = mark.signType[mark.signType.length - 1]
      color = mark.color
      innerStyle = {color: mark.color}
      if (type === 'iconfront' || mark.signType[1] === 'front') {
        position = 'front'
      } else {
@@ -2127,7 +2214,7 @@
  return {
    style,
    icon,
    color,
    innerStyle,
    position
  }
}