vue主页

<template>
  <el-container class="el-cus-container" height="80px">
    <el-header class="el-cus-header" v-show="!maximize">
      <el-row :gutter="20" type="flex">
        <el-col :span="6">
          <span class="logo"></span>
          <span :class="expand?'menu-show':'menu-hide'" class="menu" @click="expand = !expand"></span>
        </el-col>
        <el-col :span="18">
          <span class="list">
            <span class="list" @click="createTab('任务中心','taskCenter')">任务中心</span>
          </span>
          <span class="list">
            Hi, {{userName}}
          </span>
          <span class="list" @click="dialogRole = true" v-if="roleLists.length">
            <i class="iconfont icon-role"></i> {{currentRoleName}}
          </span>
          <span class="list" @click="fullscreen">
            <i class="iconfont icon-quanping"></i>全屏</span>
          <span class="list" @click="logout">
            <i class="iconfont icon-logout"></i>退出</span>
        </el-col>
      </el-row>
    </el-header>

    <el-container class="el-cus-content">
      <el-aside class="el-cus-aside" v-show="!(maximize||!expand)" width="580px" :style="asideStyle">
        <nav-menu>
          <nav-menu-item v-for="(item,index) in menus" :key="item.moduleId" :item="item" :index="index" @selected="selected" @click="addShortcutMenu" :size="menus.length" />
        </nav-menu>
      </el-aside>
      <el-main :class="!(maximize||!expand)?'el-cus-main':'el-cus-main-max'">
        <el-tabs type="border-card" closable @tab-click="handleClick" @tab-remove="handleRemove" :active-name="tab" :style="tabsStyle">
          <el-tab-pane v-for="item in tabs" :key="item.title" :label="item.title" :name="item.title">
            <div :is="item.content" @page="createTab" :btns="item.btns"></div>
          </el-tab-pane>
        </el-tabs>
      </el-main>
    </el-container>

    <el-dialog title="选择角色" :visible.sync="dialogRole">
      <el-select v-model="currentRoleIdTemp" placeholder="请选择角色" style="display:block">
        <el-option v-for="item in roleLists" :key="item.roleId" :label="item.roleName" :value="item.roleId">
          <span style="float: left">{{ item.roleName }}</span>
        </el-option>
      </el-select>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogRole = false">取 消</el-button>
        <el-button type="primary" @click="switchRole">确 定</el-button>
      </span>
    </el-dialog>

    <el-dialog title="编辑快捷入口" :visible.sync="dialogMenu" width="550px" center>
      <div>
        <el-transfer v-model="shortcutMenus" :data="systemMenus" :titles="['系统菜单','快捷入口']" :props="{key: 'moduleId',label: 'moduleName'}"></el-transfer>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogMenu = false">取 消</el-button>
        <el-button type="primary" @click="dialogMenu = false">确 定</el-button>
      </span>
    </el-dialog>
  </el-container>

</template>

<script>
import navMenu from './navMenu'
import navMenuItem from './navMenuItem'
import store from 'store'
import getSelectBaseData from 'common/js/getSelectBaseData.js'

const homePage = {
  title: '首页',
  name: '首页',
  content: 'homePage',
  btns: {}
}

export default {
  data() {
    return {
      expand: true,
      maximize: false,
      clientHeight: document.documentElement.clientHeight,
      headerHeight: 45,
      tabs: [homePage],
      tab: '首页',
      menus: [
        {
          badge: 0,
          childModules: [],
          moduleCode: 'hos_Seting',
          moduleIcon: 'iconfont icon-structrue',
          moduleId: 0,
          moduleName: '\u5feb\u6377\u5165\u53e3',
          parent: null,
          parentId: 2,
          sort: 4
        }
      ],
      shortcutMenus: [],
      menuComponent: {
        首页: 'homePage',
        数据字典: 'dataDictionary',
        角色列表: 'roleList',
        用户列表: 'userList',
        功能列表: 'functionList',
        我的测试页面: 'myTest',
        iframe模式打开: 'iframeContent',
        静态资源列表: 'staticModuleList',
        接口联调入口: 'rapCompare', //模块太大,请按需放开
        报关批次管理: 'cusbatchMng',
        计量单位校验维护: 'calibrationUnit',
        同步审核管理: 'synchAudit',
        商品编码管理: 'productList',
        跨境申报限制: 'cbeDeclareLimite',
        '商品编码列表(跨境电商)': 'crossGoodsList',
        计量单位列表: 'expUnitCodeList',
        申报要素管理列表: 'hsCodeElementsList',
        个人物品税号管理列表: 'personalHSCodeList',
        汇率设置管理: 'exchangeSetting',
        敏感资料管理: 'sensitiveList',
        报关部门管理: 'customDept',
        台湾统编码管理: 'unionNoList',
        税金类别对应付款方式管理: 'taxSortPayment',
        规格型号: 'specificationModel',
        经营单位管理: 'businessUnit',
        经营单位匹配方式管理: 'businessUnitMatch',
        大陆税金管理: 'taxDLManager',
        电商税金账号管理: 'taxAcct',
        大客户标识: 'customerVipSign',
        地区时差管理: 'areaTimeDifference',
        地区基础管理: 'areaManage',
        省市区代码管理: 'provinceCodeManage',
        车次管理: 'carNumberManage',
        港澳台商品税金管理: 'gattaxList',
        报关类型管理: 'customTypeList',
        批次车次对应地区管理: 'carBatchAreaManage',
        税金模板管理: 'abroadTaxModelManager',
        税金日志管理: 'taxLog',
        税金汇总: 'taxSummary',
        国际税金导入: 'abroadTaxImport',
        税金模板管理: 'abroadTaxModelManager',
        品名设置: 'GDescBak',
        单词设置: 'AuditWord',
        未替换品名统计: 'UnAuditWord',
        自动记录配置: 'AutoConfig',
        未审核品名: 'GDescUnAudit',
        海外税金查询: 'taxAbroad',
        清关计划: 'pregatePlan',
        清关任务: 'pregateTask',
        风险品名配置管理: 'sensitiveGoods',
        香港关务费用: 'hkAddFee',
        台湾关务费用: 'twAddFee',
        苹果DEC费用: 'apAddFee',
        EDI报关管理: 'ediReport',
        DIY模板配置: 'DIYTemplateConfiguration',
        D类税金管理: 'dTypeTax',
        逐票审改: 'reviewReferenceSingle',
        风险品名配置管理: 'sensitiveGoods',
        批量审改: 'customDataBatch',
        审单翻译处理: 'examTranslateHandle',
        证件数据管理: 'identityManage',
        图片下载: 'imageDownload',
        图片下载日志: 'imageDownloadLog',
        天猫品名匹配基础配置表管理: 'tmallAccs',
        统计未审运单: 'noAuditWaybillt',
        品名搜索: 'searchName',
        排货白名单: 'deliveryGoodsWhitelist',
        排货黑名单: 'deliveryGoodsBlacklist',
        清关能力: 'cusClearAbility',
        国际件组合口岸配置: 'abroadLabel',
        虚拟收寄信息: 'dummySRInfo',
        调重幅度配置: 'adjustWeightRange',
        调重规则配置: 'adjustRule',
        EDI按钮配置: 'ediBtnConfig',
        批量导出配置: 'batchExportConfig',
        件种配置表: 'expKindConfig',
        件种判断条件维护: 'expKindJudge',
        图片上传: 'imageUpload',
        图片上传日志: 'imageUploadLog',
        台湾件容器查询: 'queryTwContainer',
        台湾件车辆容器查询: 'queryTwVehicle',
        出口: 'exportExp',
        邮政编码管理: 'postManage',
        排货结果查询: 'scheduleGoodsResult',
        任务列表: 'taskList',
        进口: 'importExp',
        D类运单审核: 'dTypeAuditList',
        新快件系统配置: 'expConfig',
        打印报关单: 'printCustomsDeclaration',
        报关单模板配置: 'customsDeclarationPrintConf',
        汇总纳税查询: 'exp306Query',
        报关单税费查询: 'exp310Query',
        报关处理: 'customsManage',
        自动转口岸: 'toportVehicle',
        申报: 'toportDeclare',
        天猫关务品名: 'tmallCustom',
        口岸批量审改: 'portDataBatchModify',
        口岸逐票审改: 'portDataSignleModify',
        任务中心: 'taskCenter',
        短信发送模板配置: 'smsConfig',
        发送短信: 'sendSms',
        理货规则配置: 'tallyRule',
	公司管理:'companyManage',
  统计:'totalCustomManage',
        车牌航班管理:'carAndFlight',
   派件贴纸查询:'billTranslation',
	口岸自扣规则配置:'autoDetainedRule'
      },
      openedElement: [],
      roleLists: [],
      currentRoleIdTemp: '',
      dialogRole: false,
      dialogMenu: false,
      isMiniMenu: false
    }
  },
  beforeCreate() {
    this.$httpExt()
      .get('admin/checkLogin')
      .then(
        response => {
          let data = response.result
          this.$store.commit('setUserName', data.userName)
          this.getRoles()
          /**初始化埋点 */
          SfGather.uid = data.userName
          SfGather.init()
          //手动上报事件  pc登陆
          this.$sfgather().addUserEvent('pc_login')
          //加载公用下拉框的基础数据
          getSelectBaseData.getData(this)
        },
        response => {
          this.$notify.error({
            title: '异常',
            message: response.msg
          })
        }
      )
  },
  computed: {
    forwardModule() {
      return this.$store.state.global.forwardModule
    },
    asideStyle() {
      let maxHeight = this.clientHeight - 80 + 'px'
      let overflowY = 'auto'
      return {
        maxHeight,
        overflowY
      }
    },
    currentRoleName() {
      for (let i = 0; i < this.roleLists.length; i++) {
        if (this.roleLists[i].roleId == this.currentRoleId)
          return this.roleLists[i].roleName
      }
    },
    userName() {
      return this.$store.state.global.userName
    },
    currentRoleId() {
      return this.$store.state.global.roleId
    },
    systemMenus() {
      var childMenus = new Array()
      this.menus.forEach(item => {
        childMenus = childMenus.concat(item.childModules)
        if (item.childModules.length > 0) {
          item.childModules.forEach(childItem => {
            childMenus = childMenus.concat(childItem.childModules)
          })
        }
      })
      return childMenus
    },
    tabsStyle() {
      let height = this.clientHeight - this.headerHeight - 20 - 20 + 'px'
      let width = '100%'
      return {
        height,
        width
      }
    }
  },
  created() {
    let that = this
    this.$nextTick(function() {
      window.addEventListener('keyup', function(e) {
        // that.headerHeight = 45
        // that.maximize =
        //   that.maximize && e.code === 'Escape' ? false : that.maximize
      })
      document.addEventListener('fullscreenchange', function(e) {
        let isFullscreen =
          document.fullscreenElement ||
          document.mozFullScreenElement ||
          document.webkitFullscreenElement
        if (!isFullscreen) {
          that.headerHeight = 45
        }
        that.maximize = isFullscreen && that.maximize
      })
      document.addEventListener('mozfullscreenchange', function(event) {
        let isFullscreen =
          document.fullscreenElement ||
          document.mozFullScreenElement ||
          document.webkitFullscreenElement
        if (!isFullscreen) {
          that.headerHeight = 45
        }
        that.maximize = isFullscreen && that.maximize
      })
      document.addEventListener('webkitfullscreenchange', function(event) {
        let isFullscreen =
          document.fullscreenElement ||
          document.mozFullScreenElement ||
          document.webkitFullscreenElement
        if (!isFullscreen) {
          that.headerHeight = 45
        }
        that.maximize = isFullscreen && that.maximize
      })
      document.addEventListener('msfullscreenchange', function(event) {
        let isFullscreen =
          document.fullscreenElement ||
          document.mozFullScreenElement ||
          document.webkitFullscreenElement
        if (!isFullscreen) {
          that.headerHeight = 45
        }
        that.maximize = isFullscreen && that.maximize
      })
    })
  },
  mounted() {
    let that = this
    this.$nextTick(function() {
      window.addEventListener('resize', function(e) {
        that.clientHeight = document.documentElement.clientHeight
      })
    })
    
    function banBackSpace(e){
    	
    	var ev = e || window.event;//获取event对象 
			var obj = ev.target || ev.srcElement;//获取事件源 
			
			var t = obj.type || obj.getAttribute('type');//获取事件源类型 
			
			//获取作为判断条件的事件类型 
			var vReadOnly = obj.getAttribute('readonly'); 
			var vEnabled = obj.getAttribute('enabled'); 
			
			
			//处理null值情况  增加处理下拉选择框有编辑的情况
			vReadOnly = (vReadOnly == 'readonly') ? true:(vReadOnly == null) ? false : vReadOnly; 
			vEnabled = (vEnabled == null) ? true : vEnabled; 
			
			//当敲Backspace键时,事件源类型为密码或单行、多行文本的, 
			//并且readonly属性为true或enabled属性为false的,则退格键失效 
			var flag=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea") 
			&& (vReadOnly==true || vEnabled!=true))?true:false; 
			
			//当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效 
			var flagStatus=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea") 
			?true:false;
			
			//判断 
			if(flagStatus){ 
			return false;
			} 
			if(flag){ 
			return false;
			} 
    	
    }
    
    //禁止后退键 作用于Firefox、Opera 
		document.onkeypress=banBackSpace; 
		//禁止后退键 作用于IE、Chrome 
		document.onkeydown=banBackSpace; 
  },
  methods: {
    fullscreen() {
      if (document.documentElement.requestFullscreen) {
        document.documentElement.requestFullscreen()
      } else if (document.mozRequestFullScreen) {
        document.documentElement.mozRequestFullScreen()
      } else if (document.documentElement.msRequestFullscreen) {
        document.documentElement.msRequestFullscreen()
      } else if (document.documentElement.webkitRequestFullscreen) {
        document.documentElement.webkitRequestFullScreen()
      }
      this.headerHeight = 0
      this.maximize = true
    },
    searchId(data, str) {
      for (var i = 0; i < data.length; i++) {
        if (data[i].moduleName === str) {
          return data[i].moduleId
        } else if (data[i].childModules.length > 0) {
          var temp = this.searchId(data[i].childModules, str)
          if (temp) {
            return temp
          }
        }
      }
      return ''
    },
    queryBtns(moduleId, tabObjIntabs) {
      //根据moduleId获取按钮权限
      this.$httpExt()
        .get('admin/queryPageBtn', {
          moduleId: moduleId,
          roleId: this.currentRoleId
        })
        .then(
          response => {
            var data = response
            if (data.result.length == 0) {
              return
            }
            var obj = {}
            for (let i = 0; i < data.result.length; i++) {
              obj[data.result[i]] = true
            }
            tabObjIntabs.btns = obj
          },
          response => {
            this.$notify.error({
              title: '异常',
              message: response.msg
            })
          }
        )
    },
    getRoles() {
      //根据userId获取角色列表
      this.$httpExt()
        .get('admin/queryRoles')
        .then(
          response => {
            var data = response
            if (data.result.length == 0) {
              return
            }
            this.roleLists = data.result
            //显示默认角色
            let hasDefault = false
            for (let i = 0; i < this.roleLists.length; i++) {
              if (this.roleLists[i].isDefault == 1) {
                this.$store.commit('setRoleId', this.roleLists[i].roleId)
                hasDefault = true
              }
            }
            //若没有默认角色,设置角色为第一个
            if (hasDefault == false) {
              this.$store.commit('setRoleId', this.roleLists[0].roleId)
            }

            this.currentRoleIdTemp = this.currentRoleId
            this.getMenu()
          },
          response => {
            this.$notify.error({
              title: '异常',
              message: response.msg
            })
          }
        )
    },
    switchRole() {
      this.$store.commit('setRoleId', this.currentRoleIdTemp)
      this.getMenu()
      this.dialogRole = false
      this.tabs = [homePage]
      this.tab = '首页'
    },
    getQueryString(name) {
      var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
      var r = window.location.search.substr(1).match(reg)
      if (r != null) return r[2]
      return null
    },
    getMenu() {
      this.$httpExt()
        .get('admin/queryMenus', {
          roleId: this.currentRoleId
        })
        .then(
          response => {
            var data = response
            this.menus = this.menus.concat(data.result)
            var page = decodeURI(this.getQueryString('p'))
            if (page !== 'null') {
              var moduleId = this.searchId(this.menus, page)
              moduleId && this.selected(page, moduleId)
            }
          },
          respons => {
            this.$notify.error({
              title: '异常',
              message: response.msg
            })
          }
        )
    },
    renderTab(h, tab) {
      return h('span', [
        `${tab.title} `,
        h('i', {
          class: ['el-icon-close']
        })
      ])
    },
    selected(tab, moduleId) {
      /*对tab的切换进行埋点  当做是页面的跳转进行处理*/
      var pageName = tab + '_' + moduleId
      this.$sfgather().track_pageview(pageName)
      for (let [index, item] of this.tabs.entries()) {
        if (item.title == tab) {
          this.tab = tab
          return
        }
      }
      var content = this.menuComponent[tab]
      this.tabs.push({
        title: tab,
        name: tab,
        content: content,
        btns: {}
      })
      this.tab = tab
      this.queryBtns(moduleId, this.tabs[this.tabs.length - 1]) //查询新页面的按钮权限
    },
    addShortcutMenu() {
      this.dialogMenu = true
    },
    handleClick(tab, event) {
      this.tab = tab.name
    },
    handleRemove(targetName) {
      let tabs = this.tabs
      let activeName = this.tab
      if (activeName === targetName) {
        tabs.forEach((tab, index) => {
          if (tab.name === targetName) {
            let nextTab = tabs[index + 1] || tabs[index - 1]
            if (nextTab) {
              activeName = nextTab.name
            }
          }
        })
      }

      this.tab = activeName
      this.tabs = tabs.filter(tab => tab.name !== targetName)
    },
    over(event) {
      var panel = this.$el.querySelector('.panel-top').parentNode
      if (panel.className.indexOf('mini-menu') != -1) {
        event.currentTarget.querySelector('.el-menu').style.display = 'block'
      }
    },
    out(event) {
      var panel = this.$el.querySelector('.panel-top').parentNode
      if (panel.className.indexOf('mini-menu') != -1) {
        event.currentTarget.querySelector('.el-menu').style.display = 'none'
      }
    },
    logout() {
      this.$confirm('你确定退出登录么?', '退出提示', {
        type: 'warning'
      })
        .then(() => {
          //debugger
          this.$delAllCookie()
          window.location.href = this.$store.state.global.url + 'admin/logout'
        })
        .catch(() => {})
    },
    createTab(t, c) {
      let flag = false
      for (let [index, item] of this.tabs.entries()) {
        if (item.title == t) {
          this.tabs.splice(index, 1, {
            title: t,
            name: t,
            content: c,
            btns: {}
          })
          flag = true
          break
        }
      }
      if (!flag) {
        this.tabs.push({
          title: t,
          name: t,
          content: c,
          btns: {}
        })
      }
      this.tab = t
    }
  },
  watch: {
    forwardModule() {
      let moduleName = this.$store.state.global.forwardModule.moduleName
      let moduleId = this.$store.state.global.forwardModule.moduleId
      this.selected(moduleName, moduleId)
    }
  },
  components: {
    navMenu,
    navMenuItem,
    homePage: function(resolve) {
      require(['../homePage/homePage'], resolve)
    },
    dataDictionary: function(resolve) {
      require(['../backstageManage/dataDictionary'], resolve)
    },
    roleList: function(resolve) {
      require(['../userManage/roleList'], resolve)
    },
    userList: function(resolve) {
      require(['../userManage/userList'], resolve)
    },
    functionList: function(resolve) {
      require(['../userManage/functionList'], resolve)
    },
    myTest: function(resolve) {
      require(['../baseInfo/myTest'], resolve)
    },
    iframeContent: function(resolve) {
      require(['../example/iframe'], resolve)
    },
    staticModuleList: function(resolve) {
      require(['../staticResource/staticModuleList'], resolve)
    },
    rapCompare: function(resolve) {
      require(['../tool/rapCompare'], resolve)
    },
    cusbatchMng: function(resolve) {
      require(['../baseInfo/cusbatchManage/cusbatchMng'], resolve)
    },
    calibrationUnit: function(resolve) {
      require(['../baseInfo/cusbatchManage/calibrationUnit'], resolve)
    },
    synchAudit: function(resolve) {
      require(['../baseInfo/synchAudit'], resolve)
    },
    productList: function(resolve) {
      require(['../baseInfo/goodsCode/productList'], resolve)
    },
    crossGoodsList: function(resolve) {
      require(['../baseInfo/goodsCode/crossGoodsList'], resolve)
    },
    expUnitCodeList: function(resolve) {
      require(['../baseInfo/goodsCode/expUnitCodeList'], resolve)
    },
    personalHSCodeList: function(resolve) {
      require(['../baseInfo/goodsCode/personalHSCodeList'], resolve)
    },
    exchangeSetting: function(resolve) {
      require(['../baseInfo/exchangeSetting'], resolve)
    },
    hsCodeElementsList: function(resolve) {
      require(['../baseInfo/goodsCode/hsCodeElementsList'], resolve)
    },
    cbeDeclareLimite: function(resolve) {
      require(['../baseInfo/cbeDeclareLimite'], resolve)
    },
    unionNoList: function(resolve) {
      require(['../baseInfo/unionNoList'], resolve)
    },
    autoSingleTrialList: function(resolve) {
      require(['../baseInfo/autoSingleTrialList'], resolve)
    },
    sensitiveList: function(resolve) {
      require(['../baseInfo/sensitiveList'], resolve)
    },
    customDept: function(resolve) {
      require(['../baseInfo/customDept'], resolve)
    },
    taxSortPayment: function(resolve) {
      require(['../baseInfo/tax/taxSortPayment'], resolve)
    },
    taxAcct: function(resolve) {
      require(['../baseInfo/tax/taxAcct'], resolve)
    },
    specificationModel: function(resolve) {
      require(['../baseInfo/specificationModel'], resolve)
    },
    businessUnit: function(resolve) {
      require(['../baseInfo/businessUnit/businessUnit'], resolve)
    },
    businessUnitMatch: function(resolve) {
      require(['../baseInfo/businessUnit/businessUnitMatch'], resolve)
    },
    taxDLManager: function(resolve) {
      require(['../taxManager/taxDLManager'], resolve)
    },
    areaManage: function(resolve) {
      require(['../baseInfo/areaManage/areaManage'], resolve)
    },
    provinceCodeManage: function(resolve) {
      require(['../baseInfo/areaManage/provinceCodeManage'], resolve)
    },
    carNumberManage: function(resolve) {
      require(['../baseInfo/carNumberManage/carNumberManage'], resolve)
    },
    gattaxList: function(resolve) {
      require(['../baseInfo/gattaxList'], resolve)
    },
    customTypeList: function(resolve) {
      require(['../baseInfo/customTypeList'], resolve)
    },
    carBatchAreaManage: function(resolve) {
      require(['../baseInfo/carNumberManage/carBatchAreaManage'], resolve)
    },
    abroadTaxModelManager: function(resolve) {
      require(['../taxManager/abroad/abroadTaxModelManager'], resolve)
    },
    taxLog: function(resolve) {
      require(['../taxManager/taxLog'], resolve)
    },
    taxSummary: function(resolve) {
      require(['../taxManager/taxSummary'], resolve)
    },
    abroadTaxImport: function(resolve) {
      require(['../taxManager/abroad/abroadTaxImport'], resolve)
    },
    AuditWord: function(resolve) {
      require(['../baseInfo/autoSignleTrial/AuditWord'], resolve)
    },
    GDescBak: function(resolve) {
      require(['../baseInfo/autoSignleTrial/GDescBak'], resolve)
    },
    UnAuditWord: function(resolve) {
      require(['../baseInfo/autoSignleTrial/UnAuditWord'], resolve)
    },
    AutoConfig: function(resolve) {
      require(['../baseInfo/autoSignleTrial/AutoConfig'], resolve)
    },
    GDescUnAudit: function(resolve) {
      require(['../baseInfo/autoSignleTrial/GDescUnAudit'], resolve)
    },
    taxAbroad: function(resolve) {
      require(['../taxManager/taxAbroad'], resolve)
    },
    pregatePlan: function(resolve) {
      require(['../taskManager/pregatePlan'], resolve)
    },
    pregateTask: function(resolve) {
      require(['../taskManager/pregateTask'], resolve)
    },
    customerVipSign: function(resolve) {
      require(['../baseInfo/customerVipSign'], resolve)
    },
    areaTimeDifference: function(resolve) {
      require(['../baseInfo/areaTimeDifference'], resolve)
    },
    sensitiveGoods: function(resolve) {
      require(['../baseInfo/sensitiveGoods'], resolve)
    },
    hkAddFee: function(resolve) {
      require(['../taxManager/hkAddFee'], resolve)
    },
    twAddFee: function(resolve) {
      require(['../taxManager/twAddFee'], resolve)
    },
    apAddFee: function(resolve) {
      require(['../taxManager/apAddFee'], resolve)
    },
    ediReport: function(resolve) {
      require(['../reviewService/ediReport'], resolve)
    },
    dTypeTax: function(resolve) {
      require(['../taxManager/dTypeTax/dTypeTaxIndex'], resolve)
    },
    reviewReferenceSingle: function(resolve) {
      require(['../reviewService/reviewReferenceSingle'], resolve)
    },
    sensitiveGoods: function(resolve) {
      require(['../baseInfo/sensitiveGoods'], resolve)
    },
    customDataBatch: function(resolve) {
      require(['../reviewService/customDataBatch'], resolve)
    },
    examTranslateHandle: function(resolve) {
      require(['../reviewService/examTranslateHandle'], resolve)
    },
    identityManage: function(resolve) {
      require(['../autoReview/identityManage'], resolve)
    },
    imageDownload: function(resolve) {
      require(['../reviewService/imageDownload'], resolve)
    },
    imageDownloadLog: function(resolve) {
      require(['../reviewService/imageDownloadLog'], resolve)
    },
    tmallAccs: function(resolve) {
      require(['../baseInfo/tmallAccs'], resolve)
    },
    noAuditWaybillt: function(resolve) {
      require(['../reviewService/noAuditWaybillt'], resolve)
    },
    searchName: function(resolve) {
      require(['../baseInfo/searchName'], resolve)
    },
    abroadLabel: function(resolve) {
      require(['../baseInfo/abroadLabel'], resolve)
    },
    dummySRInfo: function(resolve) {
      require(['../baseInfo/reviewConfigure/dummySRInfo'], resolve)
    },
    adjustWeightRange: function(resolve) {
      require(['../baseInfo/reviewConfigure/adjustWeightRange'], resolve)
    },
    adjustRule: function(resolve) {
      require(['../baseInfo/reviewConfigure/adjustRule'], resolve)
    },
    deliveryGoodsWhitelist: function(resolve) {
      require(['../baseInfo/deliveryGoods/whitelist'], resolve)
    },
    deliveryGoodsBlacklist: function(resolve) {
      require(['../baseInfo/deliveryGoods/blacklist'], resolve)
    },
    cusClearAbility: function(resolve) {
      require(['../baseInfo/deliveryGoods/cusClearAbility'], resolve)
    },
    ediBtnConfig: function(resolve) {
      require(['../reviewService/ediBtnConfig'], resolve)
    },
    batchExportConfig: function(resolve) {
      require(['../reviewService/batchExportConfig'], resolve)
    },
    expKindConfig: function(resolve) {
      require(['../baseInfo/expKindConfig'], resolve)
    },
    expKindJudge: function(resolve) {
      require(['../baseInfo/expKindJudge'], resolve)
    },
    imageUpload: function(resolve) {
      require(['../image/imageUpload'], resolve)
    },
    imageUploadLog: function(resolve) {
      require(['../image/imageUploadLog'], resolve)
    },
    queryTwContainer: function(resolve) {
      require(['../queryContainer/queryTwContainer'], resolve)
    },
    queryTwVehicle: function(resolve) {
      require(['../queryContainer/queryTwVehicle'], resolve)
    },
    exportExp: function(resolve) {
      require(['../expManager/exportExp'], resolve)
    },
    postManage: function(resolve) {
      require(['../baseInfo/postManage'], resolve)
    },
    scheduleGoodsResult: function(resolve) {
      require(['../reviewService/scheduleGoodsResult'], resolve)
    },
    taskList: function(resolve) {
      require(['../fdtp2/taskManager/declareTaskList'], resolve)
    },
    importExp: function(resolve) {
      require(['../expManager/importExp'], resolve)
    },
    dTypeAuditList: function(resolve) {
      require(['../dType/dTypeAuditList'], resolve)
    },
    expConfig: function(resolve) {
      require(['../baseInfo/expConfig'], resolve)
    },
    printCustomsDeclaration: function(resolve) {
      require(['../expManager/printCustomsDeclaration'], resolve)
    },
    customsDeclarationPrintConf: function(resolve) {
      require(['../expManager/customsDeclarationPrintConf'], resolve)
    },
    exp306Query: function(resolve) {
      require(['../expManager/exp306Query'], resolve)
    },
    exp310Query: function(resolve) {
      require(['../expManager/exp310Query'], resolve)
    },
    customsManage: function(resolve) {
      require(['../expManager/customsManage'], resolve)
    },
    toportVehicle: function(resolve) {
      require(['../reviewService/toportVehicle'], resolve)
    },
    toportDeclare: function(resolve) {
      require(['../reviewService/toportDeclare'], resolve)
    },
    tmallCustom: function(resolve) {
      require(['../reviewService/tmallCustom'], resolve)
    },
    portDataBatchModify: function(resolve) {
      require(['../expManager/portDataBatchModify'], resolve)
    },
    portDataSignleModify: function(resolve) {
      require(['../expManager/portDataSignleModify'], resolve)
    },
    taskCenter: function(resolve) {
      require(['../taskCenter/taskCenter'], resolve)
    },
    smsConfig: function(resolve) {
      require(['../baseInfo/smsConfig'], resolve)
    },
    sendSms: function(resolve) {
      require(['../reviewService/sendSms'], resolve)
    },
    tallyRule: function(resolve) {
      require(['../baseInfo/tally/tallyRule'], resolve)
    },
	companyManage: function(resolve){
      require(['../baseInfo/companyManage'], resolve)
    },
	totalCustomManage: function(resolve){
      require(['../reviewService/totalCustomManage'], resolve)
    },
    carAndFlight: function(resolve){
    	require(['../baseInfo/carAndFlight'], resolve)
    },
    billTranslation: function(resolve){
    	require(['../reviewService/billTranslation'], resolve)
    },
	autoDetainedRule: function(resolve){
      require(['../baseInfo/autoDetainedRule'], resolve)
     }
  }
}
</script>
<style lang="less" scoped>
.el-table thead tr th {
  text-align: center;
  background: #f5f7fa;
}

body {
  background: #f5f7fa;
  margin: 0;
  padding: 0;
  font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
    Microsoft YaHei, SimSun, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
}

.el-cus-container {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  //width: 100%;
  background: #f5f5f5;
  position: absolute;
  overflow: hidden;
}

.el-cus-header {
  border-bottom: 1px solid #d1dbe8;
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.12);
  padding: 0px 20px 0px 0px;
  // padding-top: 10px;
  // height: 45px !important;
  background: #fff;
}

.el-cus-header .logo {
  width: 230px;
  height: 60px;
  // margin-top: -8px;
  // margin-left: -20px;
  float: left;
  background: url('../../common/images/logo.png') center no-repeat;
  background-size: 230px 60px;
}

.el-cus-header .menu {
  margin-left: 5px;
  width: 30px;
  height: 60px;
  vertical-align: middle;
  float: left;
  background: url('../../common/images/menu-toggle.png') center no-repeat;
  background-size: 30px 27px;
}

.menu-show {
  animation-name: icon-rotate-show;
  animation-duration: 0.5s;
  animation-timing-function: linear;
  transform: rotate(0deg);
}

.menu-hide {
  animation-name: icon-rotate-hide;
  animation-duration: 0.5s;
  animation-timing-function: linear;
  transform: rotate(180deg);
}

@keyframes icon-rotate-show {
  from {
    transform: rotate(180deg);
  }
  to {
    transform: rotate(0deg);
  }
}

@keyframes icon-rotate-hide {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(180deg);
  }
}

.el-cus-header .list {
  color: #333;
  cursor: pointer;
  margin-right: 5px;
  font-size: 14px;
}

.el-cus-header .list:hover {
  color: #409eff;
}

.el-cus-header .list i {
  font-weight: 700;
}

.el-cus-header > .el-row {
  line-height: 60px;
  vertical-align: middle;
  text-align: right;
  &:first-child {
    text-align: left;
  }
  &:last-child {
    text-align: right;
  }
}

.el-cus-content {
  overflow: hidden;
  padding-top: 20px;
}

.el-cus-aside {
  overflow: hidden;
}

.el-cus-main {
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
  margin-left: -330px;
  padding-top: 0px;
  padding-left: 0px;
  padding-right: 20px;
}

.el-cus-main-max {
  overflow: hidden;
  padding-top: 0px;
}

.el-cus-aside::-webkit-scrollbar {
  background: transparent;
}
</style>

  

posted @ 2018-08-08 19:17  杯子茶壶  阅读(301)  评论(0)    收藏  举报