<template>
  <div class="main mainVueIndex" :class="current_theme" id="defaultpage">
    <div class="oa-header-user" v-if="showIframe">
      <h3 v-show="menuType === '2'" class="oa-user-name" style="color: #fff">
        {{ store.state.userInfo ? store.state.userInfo.userName : '' }}
      </h3>
      <div class="oa-header-upt">
        <a
          ><template>
            <img
              @click="changeMenuType"
              v-if="userInfo.photo"
              class="oa-sign-tul-ui"
              :src="
                'data:image/' + userInfo.photo + ';base64,' + userInfo.photo
              "
              alt="头像"
            />
            <img
              @click="changeMenuType"
              v-else
              class="oa-sign-tul-ui"
              src="../../static/img/photo-default.png"
              alt="头像"
            /> </template
        ></a>
      </div>
      <div class="oa-header-ucon">
        <div class="oa-header-ulist">
          <div class="oa-header-uin">
            <template>
              <img
                v-if="userInfo.photo"
                class="oa-sign-tul-ui"
                :src="
                  'data:image/' + userInfo.photo + ';base64,' + userInfo.photo
                "
                alt="头像"
                @click="photoModal = true"
              />
              <img
                v-else
                class="oa-sign-tul-ui"
                src="../../static/img/photo-default.png"
                alt="头像"
                @click="photoModal = true"
              />
            </template>
            <h3>
              {{ store.state.userInfo ? store.state.userInfo.userName : '' }}
            </h3>
          </div>
          <ul class="oa-header-uul">
            <li @click="showPersonInfo()">
              <span class="st-icons st-icons-user"></span>个人信息
            </li>
            <li @click="pwdModal.show = true">
              <span class="st-icons st-icons-pwd"></span>修改密码
            </li>
            <!-- <li @click="signOut">
                        <span class="st-icons st-icons-out"></span>退出登录
                    </li> -->
            <li @click="signOut">
              <span class="st-icons st-icons-out"></span>退出登录
            </li>
          </ul>
        </div>
      </div>
    </div>
    <div
      v-show="showIframe"
      class="icore-menu-main overFlowSet"
      :class="{ 'icore-menu-main2': menuType === '2' }"
    >
      <div id="menuDrag" v-if="menuType === '2'" class="menuDrag"></div>
      <el-menu
        :default-active="defaultActiveIndex"
        :collapse="menuType === '1'"
        class="el-menu-vertical-demo icore-menu icore-menu-level1"
        v-for="(item, index) in menuData"
        :key="item.id"
        @open="handleOperate"
        @close="handleOperate"
      >
        <el-submenu
          :index="index + ''"
          v-if="item.menuType && Number(item.status)"
        >
          <template slot="title">
            <i
              class="icore-menu-lic icore-menu-icons icore-icons-menu-default"
              :class="item.menuIcon ? item.menuIcon : ''"
            ></i>
            <div class="icore-menu-lit marignL15 nameText">{{ item.name }}</div>
          </template>
          <template v-for="(sitem, sindex) in item.children">
            <el-submenu
              :index="index + '-' + sindex"
              v-if="
                sitem.children &&
                  sitem.children.length > 0 &&
                  allNoMenu(sitem.children) &&
                  Number(sitem.status)
              "
              :key="sitem.id"
              @click.native="
                selectMenu(sitem, [
                  { menuId: 1, menuLabel: item.name },
                  { menuId: 2, menuLabel: sitem.name }
                ])
              "
            >
              <template slot="title">
                <span>{{ sitem.name }}</span>
              </template>
              <template v-for="(ssitem, ssindex) in sitem.children">
                <el-submenu
                  :index="index + '-' + sindex + '-' + ssindex"
                  v-if="
                    ssitem.children &&
                      ssitem.children.length > 0 &&
                      allNoMenu(ssitem.children) &&
                      Number(ssitem.status)
                  "
                  :key="ssitem.id"
                >
                  <template slot="title">
                    <span>{{ ssitem.name }}</span>
                  </template>
                  <template v-for="(sssitem, sssindex) in ssitem.children">
                    <el-menu-item
                      @click.native="
                        selectMenu(sssitem, [
                          { menuId: 1, menuLabel: item.name },
                          { menuId: 2, menuLabel: sitem.name },
                          { menuId: 3, menuLabel: ssitem.name },
                          { menuId: 4, menuLabel: sssitem.name }
                        ])
                      "
                      v-if="
                        (sssitem.menuType === '1' ||
                          sssitem.menuType === '4') &&
                          Number(sssitem.status)
                      "
                      :index="
                        index + '-' + sindex + '-' + ssindex + '-' + sssindex
                      "
                      :key="sssitem.id"
                      >{{ sssitem.name }}</el-menu-item
                    >
                    <!-- 分割线 -->
                    <el-menu-item
                      class="nav_menu"
                      v-if="sssitem.menuType === '3' && Number(sssitem.status)"
                      :index="
                        index + '-' + sindex + '-' + ssindex + '-' + sssindex
                      "
                      :key="sssitem.id"
                    >
                      <template>
                        <div></div>
                      </template>
                    </el-menu-item>
                    <!-- 停用菜单 -->
                    <el-menu-item
                      v-if="Number(sssitem.status) === 0"
                      :index="
                        index + '-' + sindex + '-' + ssindex + '-' + sssindex
                      "
                      :key="sssitem.id"
                      >{{ sssitem.name }}</el-menu-item
                    >
                  </template>
                </el-submenu>
                <!-- 停用菜单 -->
                <el-menu-item
                  :index="index + '-' + sindex + '-' + ssindex"
                  class="closeMenu"
                  v-if="Number(ssitem.status) === 0"
                  :key="ssitem.id"
                >
                  {{ ssitem.name }}
                </el-menu-item>
                <!-- 分割线 -->
                <el-menu-item
                  class="nav_menu"
                  :index="index + '-' + sindex + '-' + ssindex"
                  v-if="
                    (!ssitem.children ||
                      ssitem.children.length === 0 ||
                      !allNoMenu(ssitem.children)) &&
                      ssitem.menuType === '3' &&
                      Number(ssitem.status)
                  "
                  :key="ssitem.id"
                >
                  <template>
                    <div></div>
                  </template>
                </el-menu-item>
                <!-- 分割线 END -->
                <el-menu-item
                  @click.native="
                    selectMenu(ssitem, [
                      { menuId: 1, menuLabel: item.name },
                      { menuId: 2, menuLabel: sitem.name },
                      { menuId: 3, menuLabel: ssitem.name }
                    ])
                  "
                  :index="index + '-' + sindex + '-' + ssindex"
                  v-if="
                    (!ssitem.children ||
                      ssitem.children.length === 0 ||
                      !allNoMenu(ssitem.children)) &&
                      (ssitem.menuType === '1' || ssitem.menuType === '4') &&
                      Number(ssitem.status)
                  "
                  :key="ssitem.id"
                  >{{ ssitem.name }}</el-menu-item
                >
              </template>
            </el-submenu>
            <!-- 停用菜单 -->
            <el-menu-item
              :index="index + '-' + sindex"
              class="closeMenu"
              v-if="Number(sitem.status) === 0"
              :key="sitem.id"
            >
              {{ sitem.name }}
            </el-menu-item>
            <el-menu-item
              @click.native="
                selectMenu(sitem, [
                  { menuId: 1, menuLabel: item.name },
                  { menuId: 2, menuLabel: sitem.name }
                ])
              "
              :index="index + '-' + sindex"
              v-if="
                (!sitem.children ||
                  sitem.children.length === 0 ||
                  !allNoMenu(sitem.children)) &&
                  (sitem.menuType === '1' || sitem.menuType === '4') &&
                  Number(sitem.status)
              "
              :key="sitem.id"
              >{{ sitem.name }}</el-menu-item
            >
          </template>
        </el-submenu>
      </el-menu>
    </div>
    <section
      class="sl-container"
      :class="{ 'sl-container2': menuType === '2' }"
      id="mainContainer"
    >
      <header class="sl-header">
        <div v-if="showIframe" class="sl-header-ul">
          <!-- <div class="sl-header-li-name">工业互联网平台 ICP-iCore 2.0</div> -->
          <!-- <div class="hnstLogo">
            <img src="../assets/img/logo_1.png" alt="" />
          </div> -->
          <!-- 下拉选择公司 -->
          <div
            class="company-select"
            v-if="companys !== '' && companys.length >= 1"
          >
            <span
              class="ifCompany el-dropdown-link"
              v-if="companys.length === 1"
            >
              {{ companyName }}
            </span>
            <el-dropdown trigger="click" @command="selectComPany" v-else>
              <span class="el-dropdown-link">
                {{ companyName }}
                <i class="el-icon-arrow-down el-icon--right"></i>
              </span>
              <el-dropdown-menu slot="dropdown">
                <div v-for="item in companys" :key="item.id">
                  <el-dropdown-item :command="item">
                    {{ item.companyName }}
                  </el-dropdown-item>
                </div>
              </el-dropdown-menu>
            </el-dropdown>
            <el-dropdown
              trigger="click"
              @command="selectOrg"
              v-if="orgDutyLinks.length > 0"
              :style="{
                marginLeft: !styleControll ? '50px' : '20px',
                fontSize: '12px'
              }"
            >
              <span class="el-dropdown-link"
                ><!--<i class="el-icon-arrow-down el-icon--right"></i>-->
                {{ orgName }}
              </span>
              <el-dropdown-menu slot="dropdown">
                <div v-for="item in orgDutyLinks" :key="item.orgId">
                  <el-dropdown-item :command="item">{{
                    item.orgName
                  }}</el-dropdown-item>
                </div>
              </el-dropdown-menu>
            </el-dropdown>
            <!-- <span style="margin-left: 20px; font-size: 12px">{{
              dutyName
            }}</span> -->
          </div>
          <div class="sl-header-li-lgbc">
            <span class="icore-icons icore-icons-right-arrow am-xz"></span>
            <span class="sl-breadcrumb-text">当前位置:</span>
            <el-breadcrumb
              separator-class="el-icon-arrow-right"
              class="sl-breadcrumb-list"
            >
              <el-breadcrumb-item
                v-for="item in pageBreadcrumb"
                :key="'bdb' + item.menuId"
                >{{ item.menuLabel }}</el-breadcrumb-item
              >
            </el-breadcrumb>
          </div>
          <div
            class="sl-header-li-websocket"
            @mouseenter="updatecss"
            @mouseleave="leave"
          >
            <el-badge
              :value="taskAllNum"
              :max="99"
              class="item"
              style="margin-right: 20px"
              :hidden="badgeshow"
            >
              <el-button type="text" size="small" @click="goMyTaskPage"
                >通知信息</el-button
              >
            </el-badge>
            <div
              class="Web_Notice"
              v-show="socketshow"
              style="z-index: 1 ; overflow-y: scroll"
            >
              <div class="workspace_row-grid_mytask">
                <div
                  class="workspace_message"
                  v-for="(item, index) in noticedata"
                  :key="index"
                  @click="seeTaskContent(item)"
                >
                  <div class="workspace_message-title">
                    标题: {{ item.noticetitle }}
                  </div>
                  <div class="workspace_message-content">
                    内容:{{ item.noticecontent }}
                  </div>
                  <div class="workspace_message-from">
                    来自: {{ item.insertusername }}
                  </div>
                  <div class="workspace_message-date">
                    时间:{{ item.inserttime }}
                  </div>
                  <div style="height: 20px"></div>
                  <el-divider></el-divider>
                </div>
                <div class="workspace_replace_item"></div>
              </div>
            </div>
          </div>
          <div class="theme-defined">
            <div
              @click="fullScreenEvent"
              :class="fullScreen ? 'icore-return-screen' : 'icore-full-screen'"
              :title="fullScreen ? '退出全屏' : '全屏'"
            ></div>
            <div @click="themeEvent" class="icore-theme" title="主题"></div>
            <div @click="lockEvent" class="icore-lock" title="锁屏"></div>
            <div @click="backMain" class="icore-main" title="主页"></div>
          </div>
        </div>
      </header>
      <div class="sl-content-main">
        <template v-if="showIframe">
          <default-vue
            :menuData="menuData"
            @gotoSetPage="gotoSetPage"
            v-if="tabsData.length === 0"
          ></default-vue>
          <el-tabs
            id="menuTabId"
            v-show="tabsData.length > 0"
            v-model="selectedMenu"
            type="card"
            closable
            @tab-remove="removeTab"
            @tab-click="handleClick"
            style="padding: 10px 0px 0px; height: 100%"
          >
            <el-tab-pane
              :label="item.name"
              :name="item.menuId"
              :key="item.menuId"
              v-for="(item, index) in tabsData"
            >
              <span @contextmenu="rightShow($event, index, item)" slot="label">
                {{ item.name }}
              </span>
              <div class="pageBreadcrumb">
                {{ JSON.stringify(item.pageBreadcrumb) }}
              </div>
              <iframe
                :src="
                  isDev(item.menuUrl)
                    ? getDevUrl(item.menuUrl)
                    : toTrustUrl(item.menuUrl)
                "
                :style="minHeight"
              ></iframe>
            </el-tab-pane>
          </el-tabs>
          <div class="contextmenu">
            <el-dropdown
              trigger="click"
              @visible-change="visibleChange"
              @command="handleCommand"
            >
              <span class="el-dropdown-link" v-show="false">
                下拉菜单<i
                  id="setClick"
                  class="el-icon-arrow-down el-icon--right"
                ></i>
              </span>
              <el-dropdown-menu slot="dropdown">
                <el-dropdown-item command="a">关闭标签页</el-dropdown-item>
                <el-dropdown-item :disabled="tabsData.length === 1" command="b"
                  >关闭其他标签页</el-dropdown-item
                >
                <el-dropdown-item
                  :disabled="tabsData.length - menuTabIndex === 1"
                  command="c"
                  >关闭右侧标签页</el-dropdown-item
                >
                <el-dropdown-item command="d">刷新当前标签页</el-dropdown-item>
              </el-dropdown-menu>
            </el-dropdown>
          </div>
        </template>
        <transition
          enter-active-class="fade-in"
          leave-active-class="leave-immediately"
          :duration="{ enter: 400, leave: 100 }"
          ref="childrenPage"
        >
          <router-view
            @updateTaskNum="updateTaskNum"
            @updateMessageNum="updateMessageNum"
          >
          </router-view>
        </transition>
      </div>
    </section>
    <!--  -->
    <div
      is="usersAddAndEdit"
      v-if="userModal.show"
      :operate="'edit'"
      :operate1="'index'"
      :item="userInfo"
      @on-then="userModalThen"
      @on-close="userModalClose"
      @editFinish="updataUserInfo"
    ></div>
    <!--  -->
    <!-- 修改密码 -->
    <el-dialog
      ref="pwdModal"
      :visible.sync="pwdModal.show"
      class="oa-pwd-modal"
      title="修改密码"
      width="500px"
      @open="openPwd"
    >
      <el-form
        ref="pwdModal"
        :model="pwdModal.form"
        :rules="pwdModal.ruleValidate"
        label-width="120px"
        style="padding-right: 40px"
      >
        <el-form-item label="原密码" prop="userid" v-show="false">
          <el-input
            size="small"
            type="text"
            v-model="pwdModal.form.userid"
            :maxlength="64"
          ></el-input>
        </el-form-item>
        <el-form-item label="原密码" prop="prepassword">
          <el-input
            size="small"
            type="password"
            v-model="pwdModal.form.prepassword"
            :maxlength="64"
          ></el-input>
        </el-form-item>
        <el-form-item label="新密码" prop="newpassword">
          <el-input
            size="small"
            type="password"
            @input="inputThing"
            v-model="pwdModal.form.newpassword"
            :maxlength="64"
          ></el-input>
          <div
            class="strongBox"
            v-show="strongShow"
            :style="{ backgroundColor: strongColor }"
          >
            {{ strongText }}
          </div>
        </el-form-item>
        <el-form-item label="确认密码" prop="againNewpassword">
          <el-input
            size="small"
            type="password"
            v-model="pwdModal.form.againNewpassword"
            :maxlength="64"
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button size="small" @click="pwdModal.show = false">取 消</el-button>
        <el-button
          size="small"
          :loading="pwdModal.loading"
          type="primary"
          @click="pwdSubmit('pwdModal')"
          >确 定</el-button
        >
      </div>
    </el-dialog>

    <!-- 锁屏 -->
    <el-dialog
      title="锁屏"
      v-if="lockEventFlag"
      :visible.sync="lockEventFlag"
      width="500px"
    >
      <el-form
        :model="lockRuleForm"
        :rules="lockRules"
        ref="lockRuleForm"
        label-width="150px"
      >
        <el-form-item label="锁屏密码" prop="pwd">
          <el-input
            :class="checkedByLogin ? 'lockInput' : ''"
            :disabled="checkedByLogin"
            @keyup.enter.native="lockEventSet"
            v-model="lockRuleForm.pwd"
            style="width: 250px"
          ></el-input>
          <el-checkbox v-model="checkedByLogin">使用登录密码</el-checkbox>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="lockEventFlag = false">取 消</el-button>
        <el-button type="primary" @click="lockEventSet">确 定</el-button>
      </div>
    </el-dialog>
    <!-- /修改密码 -->
    <div v-if="lockScreenPwd" class="lock_screen">
      <div
        v-if="lockErrorMsg"
        class="el-message el-message--error"
        style="z-index: 2033"
      >
        <i class="el-message__icon el-icon-error"></i>
        <p class="el-message__content">密码错误!</p>
      </div>
      <div
        style="
          margin: 0 auto;
          width: 300px;
          position: relative;
          top: 45%;
          transform: translateY(-50%);
        "
      >
        <div>
          <el-input
            ref="lockInput"
            class="lockInput"
            placeholder="请输入密码"
            @keyup.enter.native="setLock"
            type="text"
            v-model="inputLockPwd"
          >
            <template slot="append">
              <div @click="setLock" class="lock_route">
                <i class="el-icon-back"></i>
              </div>
            </template>
          </el-input>
        </div>

        <div style="padding: 10px">
          忘记密码?
          <a
            @click="lockSignOut"
            style="text-decoration: underline; color: #409eff; cursor: pointer"
            >退出登录</a
          >
        </div>
      </div>
    </div>
    <!-- 切换主题 -->
    <el-dialog
      title="选择主题"
      v-if="themeSetFlag"
      :visible.sync="themeSetFlag"
      width="30%"
    >
      <el-radio-group v-model="current_theme">
        <el-radio
          :label="theme.label"
          :key="theme.label"
          v-for="theme in theme_group"
          >{{ theme.desc }}</el-radio
        >
      </el-radio-group>
      <div slot="footer" class="dialog-footer"></div>
    </el-dialog>
    <!-- 权限被修改 -->
    <el-dialog
      v-if="privilegeUpdateIfo"
      :visible.sync="privilegeUpdateIfo"
      width="35%"
      top="20vh"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :show-close="false"
      class="privilegeArea"
    >
      <span v-if="closeSecond > 0" style="font-size: 18px; color: #333">
        <i class="el-icon-warning"></i>
        {{ ' 您的权限已被管理员修改,' + closeSecond + 's后将自动退出' }}
      </span>
      <span v-else style="font-size: 20px; color: #f56c6c">
        <i class="el-icon-loading"></i>
        {{ '正在为您退出,请稍后...' }}
      </span>
      <div slot="footer" class="dialog-footer" v-if="closeSecond > 0">
        <el-button type="primary" size="small" @click="closeConfirm"
          >确 定</el-button
        >
      </div>
    </el-dialog>

    <!--通知弹窗-->
    <el-dialog :visible.sync="centerDialogVisible">
      <div style="margin-left: 30px; font-size: 20px">
        <h1>{{ noticedata1.noticetitle }}</h1>
      </div>
      <div style="height: 20px"></div>
      <div style="margin-left: 30px">
        <i class="el-icon-document"></i>{{ noticedata1.noticecontent }}
      </div>
      <el-divider></el-divider>
      <div style="margin-left: 30px">
        <i class="el-icon-user-solid"></i>
        {{ noticedata1.insertusername }}
      </div>
      <div style="margin-left: 30px"><i></i>{{ noticedata1.inserttime }}</div>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="makeSure">确 定</el-button>
      </span>
    </el-dialog>
    <!--通知-->
    <!--    <div class="Web_Notice">
      <span class="margin_R10">
        <i class="el-icon-message iconImg"></i>
        <el-badge :value="taskAllNum" :max="99" :hidden="taskAllNum < 1"></el-badge>
      </span>
    </div>-->
  </div>
</template>

<script>
import element_css_json_import from '../assets/json/element_css.js'
import objectAssign from 'object-assign'
import generateColors from './utils/color'
import usersAddAndEdit from '@/views/systemConfig/components/usersAddAndEdit.vue'
import { getCookie } from '@/utils/util.js'
import { checkCharLength } from '@/utils/validator.js'
import store from '@/store/index.js'
//  字典数据
import dataDictionary from '@/store/dataDictionary.js'
// import defaultVue from "./defaultVue.vue";
import defaultVue from '@/views/homepage/components/homepage.vue'
import { proPath } from '@/config/config.js'
import draggable from 'vuedraggable'
export default {
  components: {
    usersAddAndEdit,
    defaultVue
  },
  data() {
    const validateLockPass = (rule, value, callback) => {
      if (value === '') {
        callback(new Error('请输入锁屏密码'))
      } else {
        let reg = /^[A-Za-z0-9]+$/
        if (!reg.test(value)) {
          return callback(new Error('请输入英文和数字'))
        }
        callback()
      }
    }
    const validatePass = (rule, value, callback) => {
      if (value === '') {
        callback(new Error('请输入新密码'))
      } else {
        if (this.regular !== '') {
          let reg = eval('/' + this.regular + '/')
          if (!reg.test(value)) {
            let message =
              this.regularType === 1
                ? '至少包含英文、数字、特殊符号中的两种!'
                : ''
            message +=
              '长度需在' + this.minLength + '-' + this.maxLength + '之间'
            return callback(new Error(message))
          }
        } else {
          this.getPwdValid()
          this.$refs.pwdModal.validateField('newpassword')
        }
        // let reg = /^[A-Za-z0-9]+$/
        // if (!reg.test(value)) {
        //   return callback(new Error('请输入英文和数字'));
        // }
        if (this.pwdModal.form.againNewpassword !== '') {
          // 对第二个密码框单独验证
          this.$refs.pwdModal.validateField('againNewpassword')
        }
        callback()
      }
    }
    const validatePassCheck = (rule, value, callback) => {
      if (value === '') {
        callback(new Error('请再次输入新密码'))
      } else if (value !== this.pwdModal.form.newpassword) {
        callback(new Error('两次输入密码不一致'))
      } else {
        callback()
      }
    }
    return {
      centerDialogVisible: false,
      badgeshow: '',
      dutyName: '',
      regular: '', // 密码策略校验正则表达式
      regularType: '',
      minLength: 0,
      maxLength: 0,
      websocket: '',
      interval: '',
      companys: [], // 用户公司列表
      companyId: '', // 选择公司Id
      companyName: '', // 选择公司名称
      checkedByLogin: false,
      strongShow: false,
      digit: false,
      strongText: '',
      strongColor: '',
      originalStyle: '',
      colors: {
        primary: '#20a0ff'
      },
      theme_color: '#409EFF',
      current_theme: 'deepBlue_theme',
      theme_group: [
        {
          label: 'basic_theme',
          desc: '默认主题'
        },
        {
          label: 'green_theme',
          desc: '护眼主题'
        },
        {
          label: 'deepBlue_theme',
          desc: '深蓝色主题'
        },
        {
          label: 'dark_theme',
          desc: '黑色主题'
        },
        {
          label: 'red_theme',
          desc: '红色主题'
        },
        {
          label: 'Cyan_theme',
          desc: '青色主题'
        },
        {
          label: 'yellow_theme',
          desc: '黄色主题'
        }
      ],
      theme_origin_color: {
        basic_theme: '#409EFF',
        deepBlue_theme: '#072ec5',
        dark_theme: '#000000',
        red_theme: '#F20808',
        green_theme: '#008000',
        Cyan_theme: '#00ffff',
        yellow_theme: '#FFFF00'
      },
      themeSetFlag: false,
      lockErrorMsg: false,
      inputLockPwd: '',
      lockScreenPwd: window.top.localStorage.getItem('lockpwd'),
      lockEventFlag: false,
      lockRuleForm: {
        pwd: ''
      },
      lockRules: {
        pwd: [
          {
            required: true,
            message: '请输入锁屏密码',
            trigger: 'blur'
          },
          {
            min: 1,
            max: 128,
            message: '长度在 1 到 128 个字符',
            trigger: 'change'
          },
          {
            validator: validateLockPass,
            trigger: 'change'
          }
        ]
      },
      fullScreen: false,
      oldMinHeight: 0,
      minHeight: 'width: 100%;height: 100%;border: 0px;min-height: 777px',
      menuTabIndex: 0,
      pageBreadcrumb: [
        {
          menuId: 1,
          menuLabel: '首页'
        }
      ],
      widthLog: '',
      leftLog: '',
      dragFlag: false,
      store,
      dataDictionary,
      showIframe: false,
      selectedMenu: '',
      menuType: '2',
      menuData: store.state.routes,
      tabsData: [],
      userInfo: {},
      userModal: {
        show: false
      },
      //  修改密码
      pwdModal: {
        loading: false,
        show: false,
        form: {
          userid: '',
          prepassword: '',
          newpassword: '',
          //  重复密码
          againNewpassword: ''
        },
        ruleValidate: {
          prepassword: [
            {
              required: true,
              message: '原密码不能为空',
              trigger: 'blur'
            }
          ],
          newpassword: [
            {
              required: true,
              message: '新密码不能为空',
              trigger: 'blur'
            },
            // { type: 'string', max: 64, message: '密码不能多于64个字符', trigger: 'blur' },
            {
              validator: validatePass,
              trigger: 'blur'
            }
          ],
          againNewpassword: [
            {
              required: true,
              message: '确认密码不能为空',
              trigger: 'blur'
            },
            // { type: 'string', max: 64, message: '密码不能多于64个字符', trigger: 'blur' },
            {
              validator: validatePassCheck,
              trigger: 'blur'
            }
          ]
        }
      },
      inter: undefined,
      task1Num: 0, // 我的待办任务
      task2Num: 0, // 委托待办任务
      myMessageLength: 0, // 我收到的公告
      privilegeUpdateIfo: false, // 权限被修改后退出提示框
      closeSecond: 5, // 系统退出倒计时
      mainPageList: [], //设为主页的菜单页面
      orgName: '',
      orgId: '',
      orgCode: '',
      orgDutyLinks: [],
      styleControll: false,
      dutyId: '',
      appId: '',
      defaultActiveIndex: '',
      taskAllNum: '', //任务数目
      socketshow: false, //通知框的显示
      orgcodezs: '', //cookie中的orgcode
      userId: '', //cookie中的userId
      noticedata: [],
      noticedata1: {
        noticeTitle: 'ceshi',
        noticecontent: 'ceshi',
        insertusername: 'ceshi',
        inserttime: 'ceshi'
      },
      allowed: []
    }
  },
  created() {
    this.orgcodezs = getCookie('orgCode')
    this.userId = getCookie('userId')
    this.current_theme = window.top.localStorage.getItem('current_theme')
      ? window.top.localStorage.getItem('current_theme')
      : 'deepBlue_theme'
    this.theme_color = this.theme_origin_color[this.current_theme]
    this.getIndexStyle()
    let w = document.documentElement.clientWidth || document.body.clientWidth
    let h = document.documentElement.clientHeight || document.body.clientHeight
    if (w <= 1500) {
      this.styleControll = true
    } else {
      this.styleControll = false
    }
    console.log(this.$route, 'this.route')
    console.log('获取到的orgCode+++++++++++++' + this.orgcodezs)
    this.getinformation()
  },
  destroyed() {
    // 销毁浏览器返回监听
    // window.removeEventListener('popstate', this.goBack, false);
    clearInterval(this.inter)
    // 销毁websocket监听
    // this.websocket.onclose = this.close();
  },
  computed: {},
  beforeCreate() {
    let userId = getCookie('userId')
    this.appId = getCookie('appId')
    let menuId = window.top.localStorage.getItem('activeMenu')
    let companyId = window.top.localStorage.getItem('companyId')
  },
  watch: {
    checkedByLogin: function(n) {
      if (n) {
        try {
          this.lockRuleForm.pwd = JSON.parse(getCookie('userInfo')).password
        } catch (error) {
          this.lockRuleForm.pwd = ''
        }
      } else {
        this.lockRuleForm.pwd = ''
      }
    },
    theme_color: function(newV, oldV) {
      let that = this
      that.colors.primary = newV
      console.log(newV)
      console.log($(document.getElementsByTagName('iframe')))
      window.colorVal = newV
      that.primaryColor = this.colors.primary
      that.colors = objectAssign(
        {},
        that.colors,
        generateColors(that.colors.primary)
      )
      let theme_style = that.originalStyle
      Object.keys(that.colors).forEach(key => {
        theme_style = theme_style.replace(
          new RegExp('(:|\\s+)' + key, 'g'),
          '$1' + that.colors[key]
        )
      })
      that.loadNewStyle(document, theme_style)
      for (let i = 0; i < document.getElementsByTagName('iframe').length; i++) {
        try {
          that.loadNewStyle(
            document.getElementsByTagName('iframe')[i].contentDocument,
            theme_style
          )
        } catch (err) {}
      }
    },
    current_theme: function(n) {
      let that = this
      window.top.localStorage.setItem('current_theme', n)
      that.theme_color = that.theme_origin_color[n]
      console.log(that.theme_color)
      console.log('这是')
      for (let i = 0; i < document.getElementsByTagName('iframe').length; i++) {
        console.log(
          document
            .getElementsByTagName('iframe')
            [i].contentDocument.getElementsByClassName('mainVueIndex')[0]
            .className
        )
        try {
          document
            .getElementsByTagName('iframe')
            [i].contentDocument.getElementsByClassName(
              'mainVueIndex'
            )[0].className = 'main mainVueIndex ' + n
        } catch (err) {}
      }
    },
    menuType: function(newV, oldV) {
      let that = this
      if (newV === '2') {
        that.$nextTick(function() {
          $('.icore-menu-main2').css({
            width: that.widthLog
          })
          $('.sl-container2').css({
            'padding-left': that.leftLog
          })
          $('.oa-header-user').css({
            width: that.widthLog
          })
          $('.oa-header-upt').css({
            width: ''
          })
          that.setDrag()
        })
      } else {
        that.widthLog = $('.icore-menu-main2').css('width')
        that.leftLog = $('.sl-container2').css('padding-left')
        $('.icore-menu-main2').css({
          width: ''
        })
        $('.sl-container2').css({
          'padding-left': ''
        })
        $('.oa-header-user').css({
          width: '80px'
        })
        $('.oa-header-upt').css({
          width: '80px'
        })
      }
    },
    selectedMenu: function(menuId) {
      var currentMenu = this.getMenuIndexByMenuId(this.menuData, null, menuId)
      currentMenu &&
        window.top.localStorage.setItem(
          'currentMenuIndex',
          currentMenu.menuIndex
        )
    }
  },
  mounted() {
    let that = this
    window.onresize = function() {
      let isFull =
        document.fullscreen ||
        document.webkitIsFullScreen ||
        document.msFullscreenEnabled
      isFull = isFull ? true : false
      if (that.fullScreen !== isFull) {
        //要执行的动作
        that.fullScreen = isFull
      }
    }
    // // 监控浏览器返回
    // if (window.history && window.history.pushState) {
    //     history.pushState(null, null, document.URL);
    //     window.addEventListener('popstate', this.goBack, false);
    // }

    //  取字典(用处不明,且加入租户id后报错!!!!!暂时注释掉!!!!!!!!!!)
    // this.dataDictionary.dispatch('list').then(() => {
    //   // console.log(this.dataDictionary.state.dict)
    // });
    this.showIframeEvent()
    this.$nextTick(() => {
      this.minHeight =
        'width: 100%;height: 100%;border: 0px;min-height: ' +
        ($('#menuTabId').height() - 91) +
        'px'
      that.checkedByLogin = true
    })

    // 获取公司信息
    this.companyId = window.top.localStorage.getItem('companyId')
    this.companys = JSON.parse(window.top.localStorage.getItem('companys'))
    if (this.companyId !== '' && this.companyId !== null) {
      this.companyName = this.companys.find(
        x => x.id === this.companyId
      ).companyName
    }
    setTimeout(() => {
      this.current_theme = window.top.localStorage.getItem('current_theme')
        ? window.top.localStorage.getItem('current_theme')
        : 'deepBlue_theme'
    }, 1000)
    // 获取我的待办任务
    var arr = ['#/authManage']
    if ($.inArray(location.hash, arr) == -1) {
      //that.getMyToDoDelegateTask();
      //that.getMyToDoTask();
    }

    that.getMyMessage()
    // 直接关闭浏览器窗口或者标签页时,关闭websocket连接
    // window.onbeforeunload = function () {
    //     // that.send("closesocket:");
    //     that.close();
    // }
    // 获取当前密码策略校验
    that.getPwdValid()
    // 获取机构职级
    that.getOrgDutyList()
  },
  methods: {
    //弹框删除
    async makeSure() {
      let noticeid = this.noticedata1.noticeid
      console.log(this.noticedata1)
      this.noticedata1 = []
      this.centerDialogVisible = false
      await this.axios
        .post('/api/v1/ams/updateNoticeStatus', {
          userId: this.userId,
          noticeId: noticeid
        })
        .then(res => {
          console.log(res.data)
          if (res.data.data === 0) {
            this.badgeshow = true
          } else {
            console.log('进入了小红点标记区')
            this.taskAllNum = res.data.data
          }
        })
    },
    // 判断是否为公司其他平台模块且处于开发模式
    isDev(url) {
      let isDevModule = false
      if (
        url.indexOf('steerinfo.com') !== -1 &&
        document.domain.indexOf('steerinfo.com') === -1
      ) {
        isDevModule = true
      }
      return isDevModule
    },
    // 根据当前模式更改菜单跳转url
    getDevUrl(url) {
      let newUrl = ''
      let index = url.indexOf('steerinfo.com')
      return (newUrl = url.substring(index).replace('steerinfo.com/views', '.'))
    },
    // 根据https/http跳转
    toTrustUrl(url) {
      let newUrl = ''
      if (url.indexOf('https:') === -1 && url.indexOf('http:') > -1) {
        newUrl = url.replace('http:', window.top.location.protocol)
      } else if (url.indexOf('https:') > -1) {
        newUrl = url.replace('https:', window.top.location.protocol)
      } else {
        newUrl = url
      }
      return newUrl
    },
    // 获取当前密码策略
    getPwdValid() {
      this.axios
        .get('pass/v1/syspwdpolicys/getExecutingPwdPolicy')
        .then(res => {
          if (res.code === '0') {
            this.regular = res.data.regular
            this.regularType = res.data.regularType
            this.minLength = res.data.minLength
            this.maxLength = res.data.maxLength
          } else {
            this.$message.error(res.message)
          }
        })
        .catch(err => {
          console.log(err)
        })
    },
    /**
     * 样式加载
     *
     */
    loadNewStyle(doc, theme_style) {
      let child = doc.getElementById('theme')
      if (child !== null) {
        doc.getElementsByTagName('head')[0].removeChild(child)
      }
      let a = document.createElement('style')
      a.setAttribute('id', 'theme')
      a.innerHTML = theme_style
      doc.getElementsByTagName('head')[0].appendChild(a)
    },
    // 验证密码强度的事件
    inputThing(val) {
      let _this = this
      let arr = []
      let i = 0
      arr[0] = /[^a-zA-Z0-9_]/g
      arr[1] = /[a-z]/g
      arr[2] = /[0-9]/g
      arr[3] = /[A-Z]/g
      if (val.length >= 6) {
        arr.forEach(res => {
          if (val.match(res)) {
            i++
          }
        })
        switch (i) {
          case 0:
            _this.strongShow = false
            break
          case 1:
            _this.strongShow = true
            _this.strongText = '弱'
            _this.strongColor = '#F26299'
            _this.digit = true
            break
          case 2:
            _this.strongShow = true
            _this.strongText = '中'
            _this.strongColor = '#F29E55'
            break
          case 3:
            _this.strongShow = true
            _this.strongText = '强'
            _this.strongColor = '#4CD995'
            break
        }
      } else if (!val) {
        _this.strongShow = false
      } else {
        _this.strongShow = true
        _this.strongText = '弱'
        _this.strongColor = '#F26299'
        _this.digit = false
      }
    },
    /**
     * 加载全局样式;
     */
    getStyleTemplate(data) {
      const colorMap = {
        '#3a8ee6': 'shade-1',
        '#409eff': 'primary',
        '#53a8ff': 'light-1',
        '#66b1ff': 'light-2',
        '#79bbff': 'light-3',
        '#8cc5ff': 'light-4',
        '#a0cfff': 'light-5',
        '#b3d8ff': 'light-6',
        '#c6e2ff': 'light-7',
        '#d9ecff': 'light-8',
        '#ecf5ff': 'light-9'
      }
      Object.keys(colorMap).forEach(key => {
        const value = colorMap[key]
        data = data.replace(new RegExp(key, 'ig'), value)
      })
      return data
    },

    getIndexStyle() {
      let data = `@charset "UTF-8"; ${element_css_json_import.element_css}`
      this.originalStyle = this.getStyleTemplate(data)
    },
    /**
     * 解除锁屏
     *
     */
    setLock() {
      let that = this
      let crypto = require('crypto')
      if (
        that.lockScreenPwd === that.inputLockPwd ||
        that.lockScreenPwd ===
          crypto
            .createHash('sha1')
            .update(that.inputLockPwd)
            .digest('hex')
      ) {
        window.top.localStorage.setItem('lockpwd', '')
        that.lockScreenPwd = ''
        that.inputLockPwd = ''
      } else {
        that.inputLockPwd = ''
        that.lockErrorMsg = true
        setTimeout(() => {
          that.lockErrorMsg = false
        }, 1000)
      }
    },
    /**
     * 锁屏退出登录
     */
    lockSignOut() {
      let that = this
      that.store
        .dispatch('loginOut')
        .then(function(res) {
          window.location.href = './index.html'
        })
        .catch(function() {
          // TODO
        })
    },
    /**
     *打开主页
     */
    backMain() {
      this.$message.success('跳转主页')
      // window.open(
      //   window.location.protocol + "//portal.steerinfo.com",
      //   "_blank"
      // );
    },
    /**
     * 主题
     */
    themeEvent() {
      let that = this
      that.themeSetFlag = true
    },
    /**
     * 锁屏
     */
    lockEvent() {
      let that = this
      if (!that.checkedByLogin) {
        that.lockRuleForm.pwd = ''
      }
      that.lockEventFlag = true
    },
    lockEventSet() {
      let that = this
      this.$refs.lockRuleForm.validate(valid => {
        if (valid) {
          window.top.localStorage.setItem('lockpwd', that.lockRuleForm.pwd)
          that.lockScreenPwd = that.lockRuleForm.pwd
          that.lockEventFlag = false
          that.$nextTick(() => {
            that.$refs.lockInput.focus()
          })
        } else {
          return false
        }
      })
    },
    /*
        全屏
        */
    fullScreenEvent() {
      let that = this
      let main = document.documentElement
      if (that.fullScreen) {
        if (document.exitFullscreen) {
          document.exitFullscreen()
        } else if (document.mozCancelFullScreen) {
          document.mozCancelFullScreen()
        } else if (document.webkitCancelFullScreen) {
          document.webkitCancelFullScreen()
        } else if (document.msExitFullscreen) {
          document.msExitFullscreen()
        }
      } else {
        // 开始全屏操作
        var currentIfrm = $('#menuTabId')
          .find('div[role=tabpanel]:visible')
          .find('iframe')
        $('.oa-header-user')
          .hide()
          .next()
          .hide()
        $('#outerHeader').hide()
        $('#mainContainer').css('paddingLeft', '0')
        $('#menuTabId')
          .css('padding', 0)
          .children(':eq(0)')
          .hide()
        $('.sl-content-main', top.document).css('height', 'initial')
        // 先保留全屏前的iframe高度
        this.oldMinHeight = currentIfrm.css('min-height')
        // 将最小高度设置成当前分辨率的高度
        currentIfrm.css('min-height', window.screen.height)
        if (main.requestFullscreen) {
          main.requestFullscreen()
        } else if (main.mozRequestFullScreen) {
          main.mozRequestFullScreen()
        } else if (main.webkitRequestFullScreen) {
          main.webkitRequestFullScreen()
        } else if (main.msRequestFullscreen) {
          main.msRequestFullscreen()
        }
      }
      that.fullScreen = !that.fullScreen
    },
    // 下拉选择公司
    selectComPany(command) {
      this.$confirm('此操作将刷新系统页面, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      })
        .then(() => {
          this.companyId = command.id
          this.companyName = command.companyName
          //  查询列表
          this.store
            .dispatch('generateRoutes', {
              companyId: command.id,
              appId: this.appId
            })
            .then(res => {
              if (res.code === '0') {
                this.store.commit('addRouters', res.data)
              } else {
                this.$message({
                  message: res.message,
                  type: 'error'
                })
              }
            })
          window.top.localStorage.setItem('companyId', command.id)
          window.location.reload()
          this.$message({
            type: 'success',
            message: '正在为您更新数据...'
          })
        })
        .catch(error => {
          console.log(error)
          this.$message({
            type: 'info',
            message: '已取消操作'
          })
        })
    },
    selectOrg(command) {
      this.$confirm('此操作将切换用户所在机构及职级, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      })
        .then(() => {
          this.orgName = command.orgName
          this.orgId = command.orgId
          this.dutyName = command.dutys ? command.dutys[0].dutyName : ''
          this.dutyId = command.dutys ? command.dutys[0].dutyId : ''
          window.top.localStorage.setItem('dutyName', this.dutyName)
          window.top.localStorage.setItem('dutyId', this.dutyId)
          window.top.localStorage.setItem('orgId', command.orgId)
          window.top.localStorage.setItem('orgCode', command.orgCode)
          window.location.reload()
          this.$message({
            type: 'success',
            message: '正在为您更新数据...'
          })
          this.updateUserInfo()
        })
        .catch(error => {
          console.log(error)
          this.$message({
            type: 'info',
            message: '已取消操作'
          })
        })
    },
    // 更新用户当前机构及职级
    async updateUserInfo() {
      // do
    },
    getOrgDutyList() {
      let that = this
      that.axios
        .get('pass/v1/sysorgs/findOrgs?companyId=' + this.companyId)
        .then(res => {
          if (res.code === '0') {
            this.orgDutyLinks = res.data
            if (this.orgDutyLinks.length > 0) {
              let orgId = window.top.localStorage.getItem('orgId')
              if (orgId && orgId !== '' && orgId !== null) {
                let obj = this.orgDutyLinks.find(x => x.orgId === orgId)
                if (obj) {
                  this.orgId = orgId
                  this.orgName = obj.orgName
                  this.orgCode = obj.orgCode
                  this.dutyName = obj.dutys ? obj.dutys[0].dutyName : ''
                  this.dutyId = obj.dutys ? obj.dutys[0].dutyId : ''
                } else {
                  this.orgName = res.data[0].orgName
                  this.orgId = res.data[0].orgId
                  this.orgCode = res.data[0].orgCode
                  this.dutyName = res.data[0].dutys
                    ? res.data[0].dutys[0].dutyName
                    : ''
                  this.dutyId = res.data[0].dutys
                    ? res.data[0].dutys.dutyId
                    : ''
                }
              } else {
                this.orgName = res.data[0].orgName
                this.orgId = res.data[0].orgId
                this.orgCode = res.data[0].orgCode
                this.dutyName = res.data[0].dutys
                  ? res.data[0].dutys[0].dutyName
                  : ''
                this.dutyId = res.data[0].dutys
                  ? res.data[0].dutys[0].dutyId
                  : ''
                this.updateUserInfo()
              }
              window.top.localStorage.setItem('orgId', this.orgId)
              window.top.localStorage.setItem('orgCode', this.orgCode)
              window.top.localStorage.setItem('dutyName', this.dutyName)
              window.top.localStorage.setItem('dutyId', this.dutyId)
            }
          } else {
            this.$message.error(res.message)
          }
        })
        .catch(err => {
          console.log(err)
        })
    },
    visibleChange(f) {
      let that = this
      if (!f) {
        $('.contextmenu').css({
          display: 'none'
        })
      }
    },
    handleCommand(command) {
      let that = this
      switch (command) {
        case 'a': //关闭当前标签
          $('#menuTabId .el-icon-close')
            .eq(that.menuTabIndex)
            .click()
          break
        case 'b': //关闭其他标签
          var removeTarget = []
          var len = that.tabsData.length - that.menuTabIndex - 1
          for (let i = 0; i < len; i++) {
            removeTarget.push(
              $('#menuTabId .el-icon-close').eq(that.menuTabIndex + i + 1)
            )
          }
          for (let i = 0; i < that.menuTabIndex; i++) {
            removeTarget.push($('#menuTabId .el-icon-close').eq(i))
          }
          for (let i = 0; i < removeTarget.length; i++) {
            $(removeTarget[i]).click()
          }
          break
        case 'c': //关闭右侧标签
          var removeTarget = []
          var len = that.tabsData.length - that.menuTabIndex - 1
          for (let i = 0; i < len; i++) {
            removeTarget.push(
              $('#menuTabId .el-icon-close').eq(that.menuTabIndex + i + 1)
            )
          }
          for (let i = 0; i < removeTarget.length; i++) {
            $(removeTarget[i]).click()
          }
          break
        case 'd': // 刷新当前标签页
          $('#menuTabId .el-tabs__item')
            .eq(that.menuTabIndex)
            .click()
          $('#menuTabId iframe')
            .eq(that.menuTabIndex)[0]
            .contentWindow.location.reload(true)
          break
      }
    },
    // 右键菜单
    rightShow($event, index, item) {
      let that = this
      that.menuTabIndex = index
      $('.contextmenu').css({
        left: $event.pageX + 120 + 'px',
        top: $event.pageY + 'px',
        display: 'block'
      })
      $('#setClick').click()
      $event.preventDefault()
    },

    gotoSetPage(item) {
      let that = this
      let menuData = item.preTarget
      if (!menuData) {
        return
      }
      that.tabsData.push(menuData)
      that.selectedMenu = menuData.menuId
      that.pageBreadcrumb = item.pageBreadcrumb
      that.axios
        .post(proPath + 'v1/sysmenus/accessOwnAdd', {
          userId: that.$store.state.userInfo.userId,
          menuId: menuData.menuId
        })
        .then(function(response) {})
        .catch(function() {})
    },
    //  判断是否在iframe下
    showIframeEvent() {
      var that = this
      var thisDocument = document
      try {
        var topDocument = window.top.document
      } catch (err) {
        thisDocument.getElementsByClassName(
          'icore-menu-main'
        )[0].style.display = 'none'
        thisDocument.getElementsByClassName('sl-header')[0].style.display =
          'none'
        thisDocument.getElementById('mainContainer').style.padding = '0px'
        return
      }
      var routerCover = this.$router.history.current.query
      var routerParams = this.$router.history.current.params
      var routerFlag = 0
      var routerFlagP = 0
      for (var i in routerCover) {
        routerFlag = routerFlag + 1
      }
      for (var j in routerParams) {
        routerFlagP = routerFlagP + 1
      }

      that.showIframe =
        thisDocument === topDocument && routerFlag === 0 && routerFlagP === 0

      if (that.showIframe) {
        that.getUserInfo()
        thisDocument.getElementById('mainContainer').style['padding-left'] =
          '179px'
        // websocket初始化
        let token = getCookie('accessToken')
        if (token) {
          this.init(token)
        }
        // 打开设为主页的菜单
        // that.openMainPage();

        // 自动打开上一次访问页面
        that.autoOpenLatestPage()
      }

      if (routerFlag > 0 || routerFlagP > 0) {
        that.menuType = '1'
      }
      var setShowIframe = setInterval(function() {
        for (
          let i = 0;
          i < window.top.document.getElementsByTagName('iframe').length;
          i++
        ) {
          if (
            window.top.document.getElementsByTagName('iframe')[i]
              .contentDocument !== null &&
            window.top.document
              .getElementsByTagName('iframe')
              [i].contentDocument.getElementsByClassName('icore-menu-main')
              .length > 0
          ) {
            $(
              window.top.document.getElementsByTagName('iframe')[i].parentNode
                .parentNode
            ).css({
              height: 'calc(100% - 31px)'
            })
            $(
              window.top.document.getElementsByTagName('iframe')[i].parentNode
            ).css({
              height: '100%'
            })
            window.top.document
              .getElementsByTagName('iframe')
              [i].contentDocument.getElementsByClassName(
                'icore-menu-main'
              )[0].style.display = 'none'
            window.top.document
              .getElementsByTagName('iframe')
              [i].contentDocument.getElementsByClassName(
                'sl-header'
              )[0].style.display = 'none'
            window.top.document
              .getElementsByTagName('iframe')
              [i].contentDocument.getElementsByClassName(
                'sl-content-main'
              )[0].style.height = '100%'
            window.top.document
              .getElementsByTagName('iframe')
              [i].contentDocument.getElementById(
                'mainContainer'
              ).style.padding = '0px'
            if (
              i ===
              window.top.document.getElementsByTagName('iframe').length - 1
            ) {
              clearInterval(setShowIframe)
            }
          }
        }
        if (window.top.document.getElementsByTagName('iframe').length === 0) {
          if (!that.showIframe) {
            thisDocument.getElementById('mainContainer').style['padding-left'] =
              '0px'
            thisDocument.getElementsByClassName(
              'sl-content-main'
            )[0].style.height = '100%'
          }
          clearInterval(setShowIframe)
        }
      }, 20)
      that.setDrag()
    },
    handleOperate() {
      setTimeout(() => {
        this.$nextTick(() => {
          let heightOld = $('.icore-menu-main')[0].clientHeight
          let height = $('.icore-menu-main')[0].scrollHeight
          if (height !== 0) {
            // 菜单收缩后scrollHeight复原
            window.top.document.getElementsByClassName(
              'menuDrag'
            )[0].style.height = heightOld + 'px'
            // 再次赋值
            let heightNew = $('.icore-menu-main')[0].scrollHeight
            window.top.document.getElementsByClassName(
              'menuDrag'
            )[0].style.height = heightNew + 'px'
          }
        })
      }, 500)
    },
    setDrag() {
      let that = this
      if (that.showIframe) {
        that.$nextTick(() => {
          window.top.document.getElementsByClassName(
            'menuDrag'
          )[0].style.height = $('.icore-menu-main')[0].scrollHeight + 'px'
        })
      }
      $('#menuDrag').unbind()
      $('#menuDrag').mousedown(function(event) {
        that.dragFlag = true
        $(event.target).data('dragStart', event.pageX)
        $(event.target).data('dragWidth', $('.icore-menu-main2').outerWidth())
        $('body').css({
          cursor: 'col-resize'
        })
        let _html =
          '<div id="dragsc" style="height: 100%;width: 100%;position: absolute;top: 0;z-index: 888;"></div>'
        $('body').append(_html)
        $('body').mousemove(function(e) {
          if (!that.dragFlag) {
            $(this).css({
              cursor: ''
            })
            $('#dragsc').remove()
            $(this).unbind(e)
          } else {
            var startX = $('#menuDrag').data('dragStart')
            var endX = e.pageX
            var change = endX - startX
            var containerWidth = $('#menuDrag').data('dragWidth')
            // console.log('containerWidth + change = ' + (containerWidth + change))
            if (containerWidth + change < 180) {
              $('.icore-menu-main2').css({
                width: '180px'
              })
              $('.oa-header-user').css({
                width: ''
              })
              $('.sl-container2').css({
                'padding-left': '179px'
              })
            } else if (containerWidth + change <= 800) {
              $('.icore-menu-main2').css({
                width: containerWidth + change + 'px'
              })
              $('.sl-container2').css({
                'padding-left': containerWidth + change - 1 + 'px'
              })
              $('.oa-header-user').css({
                width: containerWidth + change + 'px'
              })
            }
          }
        })
        $('body').mouseup(function(ev) {
          that.dragFlag = false
          $(this).unbind(ev)
        })
      })
    },
    //  tabs选项选择
    handleClick(tab, event) {
      let that = this
      let pageBreadcrumb = $($('.pageBreadcrumb')[parseInt(tab.index)]).html()
      that.pageBreadcrumb = JSON.parse(pageBreadcrumb)
      window.top.localStorage.setItem('activeMenu', tab.name)
      that.menuTabIndex = that.getTabIndex(tab.name)
      for (let i = 0; i < this.mainPageList.length - 1; i++) {
        if (
          tab.name === this.mainPageList[i].menuId &&
          this.mainPageList[i].mainPageLoading === true
        ) {
          $('#menuTabId iframe')
            .eq(that.menuTabIndex)[0]
            .contentWindow.location.reload(true)
          this.mainPageList[i].mainPageLoading = false
        }
      }
    },
    removeTab(targetName) {
      var that = this
      var spliceIndex = null
      var temp = []
      for (let i = 0; i < this.mainPageList.length - 1; i++) {
        if (targetName === this.mainPageList[i].menuId) {
          this.mainPageList[i].mainPageLoading = false
        }
      }
      for (var i = 0; i < that.tabsData.length; i++) {
        temp.push(that.tabsData[i])
        if (targetName === that.tabsData[i].menuId) {
          spliceIndex = i
        }
      }
      if (spliceIndex !== null) {
        temp.splice(spliceIndex, 1)
      }
      if (that.selectedMenu === that.tabsData[spliceIndex].menuId) {
        if (temp.length !== 0) {
          var showIndex = spliceIndex
          if (showIndex > temp.length - 1) {
            showIndex = temp.length - 1
          }
          that.selectedMenu = temp[showIndex].menuId
          window.top.localStorage.setItem('activeMenu', that.selectedMenu)
          that.pageBreadcrumb = temp[showIndex].pageBreadcrumb
        } else {
          that.pageBreadcrumb = [
            {
              menuId: 1,
              menuLabel: '首页'
            }
          ]
          window.top.localStorage.setItem('currentMenuIndex', '')
        }
      }
      that.tabsData = temp
    },
    //  菜单选择
    selectMenu(menuData, pageBreadcrumb) {
      console.log('menuData')
      console.log(menuData)
      // console.log(pageBreadcrumb)
      var that = this
      if (
        menuData.menuUrl !== null &&
        menuData.menuUrl !== '' &&
        typeof menuData.menuUrl !== 'undefined'
      ) {
        window.top.localStorage.setItem('activeMenu', menuData.menuId)
        var temp = []
        menuData.pageBreadcrumb = pageBreadcrumb
        var setTabsFlag = true
        for (var i = 0; i < that.tabsData.length; i++) {
          if (menuData.menuId === that.tabsData[i].menuId) {
            setTabsFlag = false
            break
          }
        }
        if (setTabsFlag) {
          for (var j = 0; j < that.tabsData.length; j++) {
            temp.push(that.tabsData[j])
          }
          temp.push(menuData)
          that.tabsData.push(menuData)
        }
        that.selectedMenu = menuData.menuId
        that.pageBreadcrumb = pageBreadcrumb
        that.axios
          .post(proPath + 'v1/sysmenus/accessOwnAdd', {
            userId: that.$store.state.userInfo.userId,
            menuId: menuData.menuId
          })
          .then(function(response) {})
          .catch(function() {})
        this.$nextTick(() => {
          console.log($(document.getElementsByTagName('iframe')))
        })
      }
      //   console.log('目录', that.selectedMenu, that.tabsData)
      // 左侧菜单点击切换的时候需要重新加载页面
      that.menuTabIndex = that.getTabIndex(menuData.menuId)
      $('#menuTabId iframe').eq(that.menuTabIndex).length &&
        $('#menuTabId iframe')
          .eq(that.menuTabIndex)[0]
          .contentWindow.location.reload(true)
    },
    //  是否合部都不是菜单就不用显示
    allNoMenu(items) {
      let bol = false
      for (let item of items) {
        if (item.menuType === '1' || item.menuType === '4') {
          //  有菜单
          bol = true
          break
        }
      }
      return bol
    },
    //
    signOut() {
      let _this = this
      _this
        .$msgbox({
          title: '退出提示',
          message: '确定退出登录吗?',
          showCancelButton: true,
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          beforeClose: (action, instance, done) => {
            if (action === 'confirm') {
              instance.confirmButtonLoading = true
              instance.confirmButtonText = '执行中...'
              // ajax
              let res = this.axios.get('pass/logout', {
                params: {
                  authorization: getCookie('accessToken')
                }
              })
              res
                .then(function(res) {
                  console.log(111)
                  instance.confirmButtonText = '确定'
                  instance.confirmButtonLoading = false
                  done()
                  window.location.href = './index.html'
                })
                .catch(function() {
                  instance.confirmButtonText = '确定'
                  instance.confirmButtonLoading = false
                  done()
                })
            } else {
              done()
            }
          }
        })
        .then(action => {})
    },
    //  查看个人信息
    showPersonInfo() {
      //  打开查看
      this.userModal.show = true
      let userId = this.$store.state.userInfo.userId
    },
    getUserInfo() {
      let that = this
      if (that.$store.state.userInfo) {
        that.axios
          .get(proPath + 'v1/sysusers/' + that.$store.state.userInfo.userId)
          .then(function(response) {
            if (response) {
              that.userInfo = response.data
              top.globalUserInfo = response.data
            }
          })
      }
    },
    //  隐藏侧边栏
    changeMenuType() {
      if (this.menuType === '2') {
        this.menuType = '1'
      } else {
        this.menuType = '2'
      }
    },
    //  菜单选中
    thisMenu(item) {
      for (let b of this.pageBreadcrumb) {
        if (b.menuId === item.menuId) {
          return true
        }
      }
      return false
    },
    //  弹窗完成
    userModalThen(str, item) {
      //   console.log('代码执行了')
      switch (str) {
        case 'close':
          this.userModal.show = false
          break
        case 'success':
          this.userModal.show = false
          //  刷新
          this.store.dispatch('getUserInfo')
          break
      }
    },
    //  修改密码
    pwdSubmit() {
      // if (this.strongText === '弱' && this.digit) {
      //   this.$message.warning('密码安全等级太弱')
      //   return
      // } else if (this.strongText === '弱' && !this.digit) {
      //   this.$message.warning('密码不能小于六位数')
      //   return
      // }
      this.$refs['pwdModal'].validate(valid => {
        if (valid) {
          // if (this.pwdModal.form.newpassword.length > 16) {
          //   this.$message.warning('密码最长为16个字符')
          //   return
          // }
          this.pwdModal.loading = true
          this.pwdModal.form.userid = this.store.state.userInfo.id
          this.store
            .dispatch('system/usersManage/updpsw', this.pwdModal.form)
            .then(res => {
              this.pwdModal.loading = false
              if (res.code === '0') {
                this.$message.success('设置成功')
                this.strongShow = false
                this.pwdModal.show = false
              } else {
                this.$message.error(res.message)
              }
            })
        }
      })
    },
    //  打开修改密码弹窗
    openPwd() {
      this.$refs['pwdModal'].resetFields && this.$refs['pwdModal'].resetFields()
      this.strongShow = false
    },
    //  弹窗完成
    userModalThen(str, item) {
      let that = this
      switch (str) {
        case 'close':
          that.userModal.show = false
          break
        case 'success':
          that.userModal.show = false
          //  刷新
          that.getUser(that.tableParams.form)
          break
      }
    },
    //  关闭弹窗
    userModalClose() {},
    // 修改完毕重新请求数据
    updataUserInfo(data) {
      this.getUserInfo()
      this.$store.commit('userInfo', data)
    },
    init: function(token) {
      let that = this
      // 192.168.10.231:9008本地
      let path = ''
      if (
        window.top.document.location.origin.indexOf('icore-paas-test') !== -1 ||
        window.top.document.location.origin.indexOf('localhost') !== -1
      ) {
        path =
          'wss://websocket-dev.steerinfo.com/websocket?type=pass&token=' + token
      } else {
        path =
          'wss://websocket.steerinfo.com/websocket?type=pass&token=' + token
      }
      if ('WebSocket' in window) {
        // 实例化websocket
        this.websocket = new WebSocket(path)
        // 监听websocket连接
        this.websocket.onopen = this.open
        // 监听websocket错误信息
        this.websocket.onerror = this.error
        // 监听websocket消息
        this.websocket.onmessage = this.getMessage
        //每隔30秒钟发送一次心跳,避免websocket连接因超时而自动断开
        // this.interval = window.setInterval(function(){
        //     if(that.websocket !== null){
        //         if (that.websocket.readyState !== that.websocket.OPEN) {
        //             let token = getCookie('accessToken');
        //             if (token) {
        //                 that.init(token);
        //             }
        //         }
        //         // } else {
        //         //     that.websocket.send('HeartBeat');
        //         //     // console.log("发送心跳包:HeartBeat");
        //         // }
        //     }
        // },30000);
      } else {
        alert('您当前浏览器不支持WebSocket')
        // 每隔30秒钟发送一次心跳,避免websocket连接因超时而自动断开
        // forgeWebSocket这个方法是在不支持websocket的浏览器中去执行,这个方法作用是作为最早得轮询方式去保持长连接。这样不管浏览器支不支持websocket都能保持长连接的功能作用
        // this.interval = window.setInterval(function(){
        //     that.forgeWebSocket();
        // },30000);
      }
    },
    open: function() {
      console.log('websocket连接成功')
    },
    error: function() {
      console.log('连接错误')
    },
    getTabIndex(menuId) {
      let index = 0
      for (let i = 0; i < this.tabsData.length; i++) {
        if (this.tabsData[i].menuId === menuId) {
          index = i
        }
      }
      return index
    },
    getMessage: function(msg) {
      let that = this
      // console.log(msg.data);
      let newMsg = JSON.parse(msg.data)
      let message = ''
      if (Object.prototype.toString.call(newMsg) === '[object Object]') {
        message = newMsg
      } else if (Object.prototype.toString.call(newMsg) === '[object Array]') {
        message = JSON.parse(msg.data).find(item => item.offline === false)
      }
      if (message.hasOwnProperty('type')) {
        let activeMenu = window.top.localStorage.getItem('activeMenu')
        let obj = this.getTreeAll(
          this.menuData,
          './workFlow.html#/coverTask',
          1,
          []
        )
        let taskObj = this.getTreeAll(
          this.menuData,
          './workFlow.html#/personalInitiatedTask',
          1,
          []
        )
        let msgObj = this.getTreeAll(
          this.menuData,
          './systemConfig.html#/noticeUser',
          1,
          []
        )
        switch (message.type) {
          case 'ACT_TO_DO_TASK': // 待办任务;
            this.$message.info('您收到一条新的待办任务,请前往待办任务中查看!')
            if (activeMenu === obj.menuData.menuId) {
              that.menuTabIndex = that.getTabIndex(obj.menuData.menuId)
              $('#menuTabId .el-tabs__item')
                .eq(that.menuTabIndex)
                .click()
              $('#menuTabId iframe')
                .eq(that.menuTabIndex)[0]
                .contentWindow.location.reload(true)
            }
            this.getMyToDoTask()
            this.getMyToDoDelegateTask()
            break
          case 'ACT_TO_DO_DELEGATETASK': // 委托待办任务;
            this.$message.info(
              '您收到一条新的委托待办任务,请前往待办任务中查看!'
            )
            if (activeMenu === obj.menuData.menuId) {
              that.menuTabIndex = that.getTabIndex(obj.menuData.menuId)
              $('#menuTabId .el-tabs__item')
                .eq(that.menuTabIndex)
                .click()
              $('#menuTabId iframe')
                .eq(that.menuTabIndex)[0]
                .contentWindow.location.reload(true)
            }
            this.getMyToDoTask()
            this.getMyToDoDelegateTask()
            break
          case 'ACT_MY_APPLY_TASK': // 申请完成任务;
            this.$message.info('您有一条申请审批已完成,请前往流程跟踪中查看!')
            if (activeMenu === taskObj.menuData.menuId) {
              that.menuTabIndex = that.getTabIndex(taskObj.menuData.menuId)
              $('#menuTabId .el-tabs__item')
                .eq(that.menuTabIndex)
                .click()
              $('#menuTabId iframe')
                .eq(that.menuTabIndex)[0]
                .contentWindow.location.reload(true)
            }
            break
          case 'SSO_NOTICE': // 公告;
            this.$message.info('您收到一条新的公告:' + message.payload.title)
            if (activeMenu === msgObj.menuData.menuId) {
              that.menuTabIndex = that.getTabIndex(msgObj.menuData.menuId)
              $('#menuTabId .el-tabs__item')
                .eq(that.menuTabIndex)
                .click()
              $('#menuTabId iframe')
                .eq(that.menuTabIndex)[0]
                .contentWindow.location.reload(true)
            }
            this.getMyMessage()
            break
          case 'SSO_ROLE': // 权限已被管理员修改
          case 'SSO_MENU':
          case 'SSO_ORG':
            let userId = this.$store.state.userInfo.userId
            if (userId !== 'admin') {
              this.privilegeUpdateIfo = true
              this.coutTime(5)
            } else {
              if (message.type === 'SSO_MENU') {
                store
                  .dispatch('generateRoutes', {
                    companyId: this.companyId,
                    appId: this.appId
                  })
                  .then(res => {
                    if (res.code === '0') {
                      this.menuData = res.data
                    }
                  })
                  .catch(err => {
                    console.log(err)
                  })
              }
            }
            break
          case 'UPDATE_NUM':
            this.getMyToDoTask()
            this.getMyToDoDelegateTask()
            this.getMyMessage()
            if (
              message.payload === 'updateMessageNumOfAuth' &&
              activeMenu === msgObj.menuData.menuId
            ) {
              that.menuTabIndex = that.getTabIndex(msgObj.menuData.menuId)
              $('#menuTabId .el-tabs__item')
                .eq(that.menuTabIndex)
                .click()
              $('#menuTabId iframe')
                .eq(that.menuTabIndex)[0]
                .contentWindow.location.reload(true)
            }
            break
        }
      }
    },
    send: function(params) {
      this.websocket.send(params)
    },
    close: function() {
      console.log('websocket已经关闭')
      if (this.interval) {
        window.clearInterval(this.interval)
        // console.log("清除定时器");
      }
    },
    // 倒计时函数
    coutTime(index) {
      let that = this
      that.closeSecond = index
      setTimeout(function() {
        if (index == 0) {
          that.store
            .dispatch('loginOut')
            .then(function(res) {
              window.location.href = './index.html'
            })
            .catch(function(err) {
              console.log(err)
            })
        } else {
          that.coutTime(--index)
        }
      }, 1000)
    },
    closeConfirm() {
      this.closeSecond = 0
      this.store
        .dispatch('loginOut')
        .then(function(res) {
          window.location.href = './index.html'
        })
        .catch(function(err) {
          console.log(err)
        })
    },
    // 遍历树获取指定url菜单相关
    // tree 整体树
    // url 需要跳转的页面url
    // num 递归层级,初始值传1,用于返回页面线性层级
    // list 包括页面&页面父级&父级的父级...直到最外层
    getTreeAll(tree, url, num, list) {
      let menuObj = {}
      if (!!tree && tree.length !== 0) {
        for (let item of tree) {
          menuObj['pageBreadcrumb'] = list
          if (item.menuUrl === url) {
            menuObj['menuData'] = item
            let obj = {
              menuId: num,
              menuLabel: item.menuLabel
            }
            menuObj.pageBreadcrumb.push(obj)
            return menuObj
          } else {
            let obj = {
              menuId: num,
              menuLabel: item.menuLabel
            }
            let a = []
            a.push(obj)
            let newList = list.concat(a)
            if (
              item.hasOwnProperty('children') &&
              item.children !== null &&
              item.children.length > 0
            ) {
              menuObj = this.getTreeAll(item.children, url, num + 1, newList)
              if (menuObj.hasOwnProperty('menuData')) {
                return menuObj
              }
            }
          }
        }
      }
      return menuObj
    },
    // 前往我的待办任务
    goMyTaskPage() {
      let that = this
      let updateStatus = false
      for (let item of this.tabsData) {
        if (item.menuUrl === './workFlow.html#/coverTask') {
          updateStatus = true
        }
      }
      let obj = this.getTreeAll(
        this.menuData,
        './workFlow.html#/coverTask',
        1,
        []
      )
      this.selectMenu(obj.menuData, obj.pageBreadcrumb)
      if (updateStatus === true) {
        that.menuTabIndex = that.getTabIndex(obj.menuData.menuId)
        $('#menuTabId .el-tabs__item')
          .eq(that.menuTabIndex)
          .click()
        $('#menuTabId iframe')
          .eq(that.menuTabIndex)[0]
          .contentWindow.location.reload(true)
      }
    },
    // 前往公告页面
    goNoticePage() {
      let that = this
      let updateStatus = false
      for (let item of this.tabsData) {
        if (item.menuUrl === './systemConfig.html#/noticeUser') {
          updateStatus = true
        }
      }
      let obj = this.getTreeAll(
        this.menuData,
        './systemConfig.html#/noticeUser',
        1,
        []
      )
      this.selectMenu(obj.menuData, obj.pageBreadcrumb)
      if (updateStatus === true) {
        that.menuTabIndex = that.getTabIndex(obj.menuData.menuId)
        $('#menuTabId .el-tabs__item')
          .eq(that.menuTabIndex)
          .click()
        $('#menuTabId iframe')
          .eq(that.menuTabIndex)[0]
          .contentWindow.location.reload(true)
      }
    },
    updateTaskNum() {
      let userId = getCookie('userId')
      let messageType = {
        payload: 'updateTaskNum',
        type: 'UPDATE_NUM',
        userId: userId
      }
      this.axios
        .post('pass/websocket/socket/frontSendMessage', messageType, {
          individualType: 'json'
        })
        .then(res => {
          if (res.code === '0') {
            // do
          } else {
            this.$message.error(res.message)
          }
        })
        .catch(error => {
          console.log(error.message)
        })
    },
    updateMessageNum() {
      let userId = getCookie('userId')
      let messageType = {
        payload: 'updateTaskNum',
        type: 'UPDATE_NUM',
        userId: userId
      }
      this.axios
        .post('pass/websocket/socket/frontSendMessage', messageType, {
          individualType: 'json'
        })
        .then(res => {
          if (res.code === '0') {
            // do
          } else {
            this.$message.error(res.message)
          }
        })
        .catch(error => {
          console.log(error.message)
        })
    },
    // 获取我的待办任务个数
    getMyToDoTask() {
      // 获取当前用户
      let userId = getCookie('userId')
      this.axios
        .get(
          'pass/act/v1/actusertasks/findMyToDoTask?userId=' +
            userId +
            '&companyId=' +
            this.companyId +
            '&pageNum=1&pageSize=1000000'
        )
        .then(res => {
          if (res.code === '0') {
            this.task1Num = res.data.list.length
          } else {
            this.$message.error(res.message)
          }
        })
        .catch(error => {
          console.log(error.message)
        })
    },
    // 获取委托我代办的任务
    getMyToDoDelegateTask() {
      // 获取当前用户
      let userId = getCookie('userId')
      this.axios
        .get(
          'pass/act/v1/actusertasks/findMyToDoDelegateTask?userId=' +
            userId +
            '&companyId=' +
            this.companyId +
            '&pageNum=1&pageSize=1000000'
        )
        .then(res => {
          if (res.code === '0') {
            this.task2Num = res.data.list.length
          } else {
            this.$message.error(res.message)
          }
        })
        .catch(error => {
          console.log(error.message)
        })
    },
    // 获取我的公告信息
    getMyMessage() {
      // 获取当前用户
      let userId = getCookie('userId')
      this.axios
        .get(
          'pass/v1/sysnotices/getUserNoticelike?status=0&pageNum=1&pageSize=1000000&companyId=' +
            this.companyId
        )
        .then(res => {
          if (res.code === '0') {
            this.myMessageLength = res.data.list.length
          } else {
            this.$message.error(res.message)
          }
        })
        .catch(error => {
          console.log(error.message)
        })
    },
    // 获取主页页面
    getMainPage(tree, index, list) {
      list = list ? list : []
      if (!!tree && tree.length !== 0) {
        for (let i = 0; i < tree.length; i++) {
          let menuIndex = index ? index + '-' + i.toString() : i
          if (
            tree[i].loginDispaly &&
            tree[i].loginDispaly === '1' &&
            tree[i].status === '1'
          ) {
            tree[i]['menuIndex'] = menuIndex
            tree[i]['mainPageLoading'] = true
            list.push(tree[i])
          } else {
            if (
              tree[i].hasOwnProperty('children') &&
              tree[i].children !== null &&
              tree[i].children.length > 0
            ) {
              this.getMainPage(tree[i].children, menuIndex, list)
            }
          }
        }
      }
      return list
    },
    getMenuIndexByMenuId(tree, index, menuId) {
      if (!!tree && tree.length !== 0) {
        for (let i = 0; i < tree.length; i++) {
          let menuIndex = index ? index + '-' + i.toString() : i.toString()
          if (tree[i].menuId == menuId) {
            tree[i]['menuIndex'] = menuIndex
            return tree[i]
          }

          if (
            tree[i].hasOwnProperty('children') &&
            tree[i].children !== null &&
            tree[i].children.length > 0
          ) {
            var result = this.getMenuIndexByMenuId(
              tree[i].children,
              menuIndex,
              menuId
            )
            if (result) {
              return result
            }
          }
        }
      }
    },
    autoOpenLatestPage() {
      var that = this
      var currentMenuIndex = window.top.localStorage.getItem('currentMenuIndex')
      let menuList = window.top.document.getElementsByClassName('el-menu-item')
      for (let i = 0; i < menuList.length; i++) {
        if (menuList[i].__vue__.index === currentMenuIndex) {
          setTimeout(function() {
            that.defaultActiveIndex = currentMenuIndex
            menuList[i].click()
          }, 20)
        }
      }
    },
    // 打开设为主页菜单页面
    openMainPage() {
      this.mainPageList = this.getMainPage(this.menuData)
      // console.log(this.mainPageList)
      let menuList = window.top.document.getElementsByClassName('el-menu-item')
      let s = 0
      for (let item of this.mainPageList) {
        for (let i = 0; i < menuList.length; i++) {
          if (
            menuList[i].innerHTML === item.menuLabel &&
            menuList[i].__vue__.index === item.menuIndex
          ) {
            s++
            setTimeout(() => {
              menuList[i].click()
              // console.log('点击行为')
            }, 200)
          }
        }
      }
    },
    // 浏览器返回操作
    goBack() {
      this.$router.replace({
        path: '/'
      })
    },
    updatecss() {
      this.socketshow = true
      //let height = document.body.clientHeight - 125
      /*this.$nextTick(() => {
        $('.Web_Notice')[0].style.height = height + 'px;'
      })*/
    },
    leave() {
      this.socketshow = false
    },
    getinformation() {
      console.log('获取到的userId----------------' + this.userId)
      this.axios
        .post('/api/v1/ams/getNotice', { userId: this.userId })
        .then(res => {
          this.noticedata = res.data.data
          this.taskAllNum = res.data.data[0].taskAllNum
          console.log(this.noticedata)
          console.log(this.taskAllNum)
          if (this.taskAllNum != null) {
            if (this.taskAllNum == 0) {
              console.log('进入了标记为0')
              this.badgeshow = true
            } else {
              console.log('进入了标记不为0')
              this.badgeshow = false
              // if(this.$store.state.index==1){
              //   let data={
              //     noticetitle:this.noticedata[0].noticetitle,
              //     noticecontent:this.noticedata[0].noticecontent,
              //     insertusername:this.noticedata[0].insertusername,
              //     inserttime:this.noticedata[0].inserttime,
              //     noticeid:this.noticedata[0].noticeId
              //   }
              //   this.noticedata1=data
              //   this.centerDialogVisible=true;
              // }
            }
          } else {
            console.log('进入了标记值为null的值')
            this.taskAllNum = null
          }
        })
    },
    // 查看待办任务详情
    seeTaskContent(item) {
      console.log('点击后的事件')
      console.log(item)
      let data = {
        noticetitle: item.noticetitle,
        noticecontent: item.noticecontent,
        insertusername: item.insertusername,
        inserttime: item.inserttime,
        noticeid: item.noticeId
      }
      this.noticedata1 = data
      this.centerDialogVisible = true
      console.log(this.noticedata1)
      console.log(this.centerDialogVisible)
      console.log(this.noticedata1.noticetitle)
      //this.$refs.defaultpage.seeTaskContent(item)
      // // this.dialogVisible = true;
      // this.itemTask = item;
    }
  }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->

<style lang="less" scoped>
.Web_Notice {
  width: 400px;
  position: absolute;
  left: -200px;
  height: 500px;
  background-color: #f1f6fd;
}

/deep/ .privilegeArea {
  .el-dialog {
    min-width: 400px;
    min-height: 120px;
    padding-bottom: 10px;
  }
}

.contextmenu {
  width: 150px;
  height: 150px;
  top: 0px;
  position: absolute;
  display: none;
}

iframe {
  display: block !important;
}

/deep/.lockInput .el-input__inner {
  -webkit-text-security: disc !important;
}

.theme-defined {
  position: absolute;
  right: 20px;
  top: 20px;
  width: 150px;
}

.theme-defined > div {
  float: right;
  margin-right: 10px;
}

.company-select {
  position: absolute;
  left: 225px;
  // top: 20px;
  // float: left;
  height: 60px;
  line-height: 60px;
  margin-left: 20px;
  color: #fff;
  font-size: 20px;
}

.el-dropdown {
  font-size: 16px;
  color: #ffffff;
  cursor: pointer;
}

.ifCompany {
  font-size: 16px;
  color: #ffffff;
}

.lock_route {
  transform: rotateY(180deg);
  cursor: pointer;
  position: absolute;
  width: 40px;
  height: 39px;
  top: 0px;
  right: 0px;
  text-align: center;
  line-height: 40px;
  background-color: #ccc;
  color: #fff;
}

.lock_screen {
  position: absolute;
  z-index: 9999999999;
  background-color: #fff;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  min-width: 1600px;
  background: url(../assets/img/default-bg.png) center bottom no-repeat;
}

.main {
  height: 100%;
}

.sl-header {
  /* position: fixed; */
  top: 0;
  left: 0;
  z-index: 1002;
  width: 100%;
  /* min-width: 1150px; */
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.9);
}

.sl-container {
  height: 100%;
  position: relative;
  /* padding-top: 60px; */
  padding-left: 79px;
  /* transition: padding-left .3s ease-out; */
}

.sl-container2 {
  padding-left: 0px;
}

.sl-content-main {
  width: 100%;
  //   min-width: 1200px;
  height: calc(100% - 60px);
  overflow: auto;
  ::-webkit-scrollbar {
    //滚动条宽高,如果不需要显示滚动条可设置宽高为0

    width: 0px;
    height: 10px;
  }
  ::-webkit-scrollbar-thumb {
    //滚动条颜色和圆角
    background-color: #dfe0e0;
    border-radius: 3px;
  }
  ::-webkit-scrollbar-track-piece {
    // border: 2px solid #000;
    background-color: #f2f6f8;
    border-radius: 3px;
  }
}

.icore-menu-main {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1001;
  width: 80px;
  height: calc(100% - 60px);
  margin-top: 60px;
  border-right: 1px solid #efefef;
  background-color: #fff;
  /* transition: width .25s ease-out;*/
}

.icore-menu-main2 {
  width: 180px;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.sl-content {
  transition: margin-left 0.2s linear;
}

.sl-header-li-logo {
  float: left;
  margin-top: 13px;
  margin-left: 20px;
}

.sl-header-li-name {
  float: left;
  height: 60px;
  line-height: 60px;
  margin-left: 20px;
  color: #fff;
  font-size: 20px;
}

.sl-header-li-line {
  float: left;
  margin-top: 5px;
  height: 26px;
}

.sl-header-li-lgo {
  float: right;
  margin-top: 21px;
  width: 120px;
}

.sl-header-li-lgob {
  display: inline-block;
  padding-left: 25px;
  position: relative;
  color: white;
  height: 20px;
  line-height: 20px;
  vertical-align: middle;
}

.sl-header-li-lgob > .xs-icons {
  position: absolute;
  top: -8px;
  left: -18px;
}

.icore-menu-ops {
  font-size: 16px;
  color: #666;
  transition: transform 0.3s ease-out;
}

.icore-menu-main2 .icore-menu-ops {
  transform: rotate(180deg);
}

/* header menu style --> begin */
.icore-menu {
  border-right: solid 0px #e6e6e6;
}

.icore-menu-a {
  position: relative;
  display: inline-block;
  width: 100%;
  padding-left: 54px;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
  cursor: pointer;
  border-right: 2px solid #fff;
}

.icore-menu-tip-cover {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.icore-menu-a-noc {
  padding-right: 2px;
}

.icore-menu-lit {
  opacity: 0;
  display: inline-block;
  margin-top: 4px;
  height: 36px;
  line-height: 36px;
  vertical-align: middle;
  overflow: hidden;
  transition: opacity 0.3s ease-out;
}

.nameText {
  max-width: 85%;
  text-overflow: ellipsis;
}

.icore-menu-main2 .icore-menu-lit {
  opacity: 1;
}

.icore-menu-main2 .icore-menu-tip-cover {
  display: none;
}

.icore-menu-lic {
  position: absolute;
  top: 50%;
  left: 10px;
  margin-top: -11px;
}

.icore-menu-ric {
  position: absolute;
  top: 50%;
  right: 4px;
  margin-top: -3px;
  font-family: element-icons !important;
  speak: none;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  color: #999;
  text-transform: none;
  line-height: 1;
  vertical-align: baseline;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  -webkit-transition: transform 0.3s;
  transition: transform 0.3s;
}

/* .icore-menu-ric:before{
     content: "\E603";
   }*/
.icore-menu-ricr {
  color: #999;
}

.icore-menu-s {
  position: absolute;
  top: -7px;
  left: 100%;
  z-index: 1004;
  border: 1px solid #ccc;
  box-shadow: 0 2px 8px #999;
  border-radius: 2px;
  background-color: #fff;
  min-width: 130px;
  padding: 10px 0;
}

.icore-menu-sham {
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transition: transform, display 0.4s;
  transition: transform 0.4s;
  -webkit-transform-origin: center top;
  transform-origin: center top;
}

.icore-menu-a:hover > .icore-menu-sham,
.icore-menu-sa:hover > .icore-menu-sham {
  opacity: 1;
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}

.icore-menu-s.icore-menu-s-right {
  left: auto;
  right: 15px;
}

.main-upload_text_logo {
  display: block;
  text-align: center;
  position: relative;
  margin: 0px -20px;
  top: -35px;
  border-bottom: 1px solid #cccccc;
}

.main-file_upload {
  width: 100%;
  text-align: center;
  position: relative;
  display: inline-block;
  vertical-align: top;
}

.main-file_con .hide {
  width: 120px;
  position: absolute;
  height: 30px;
  left: 58px;
  margin-top: -8px;
  opacity: 0;
  filter: alpha(opacity=0);
  z-index: 22;
}

.main-file_con .main-file_uploader,
.upload_bt {
  left: 0;
  top: -5px;
  position: relative;
  color: #fff;
  display: inline-block;
  padding: 0px 20px;
  background: #2ecc71;
  text-align: center;
  z-index: 11;
  border-radius: 15px;
  cursor: pointer;
}

.upload_bt {
  left: 130px;
}

.main-file_con .hide:hover {
  box-shadow: 1px 2px #44795b;
}

.main-img_holder,
.m_main-img_holder {
  height: 100px;
  line-height: 70px;
}

.main-img_holder img,
.m_main-img_holder img {
  max-width: 200px;
}

.main-file_btn_upload {
  margin-top: -20px;
  margin-bottom: 20px;
}

.icore-menu-sa {
  display: block;
  min-width: 120px;
  white-space: nowrap;
  padding: 0 20px;
  line-height: 32px;
  position: relative;
}

.icore-menu-a:hover {
  color: #2391e5;
  background-color: #e2f1fc;
  border-right-color: #e2f1fc;
}

.icore-menu-a:hover > .icore-menu-ric {
  color: #2391e5;
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

.icore-menu-sa:hover {
  background-color: #e2f1fc;
  color: #2391e5;
}

.icore-menu-sa:hover > .icore-menu-ricr {
  color: #2391e5;
}

.icore-menu-ss {
  opacity: 0;
  position: absolute;
  left: 100%;
  top: -11px;
  z-index: 1005;
  padding: 10px 0;
  border: 1px solid #ccc;
  box-shadow: 0 2px 8px #999;
  border-radius: 2px;
  background-color: #fff;
}

.icore-menu-sed {
  border-right-color: #2391e5;
}

.icore-menu-sed,
.icore-menu-ssed,
.icore-menu-sssed {
  color: #2391e5;
}

.icore-menu-sed > .icore-menu-ricr,
.icore-menu-ssed > .icore-menu-ricr,
.icore-menu-sed > .icore-menu-ric {
  color: #2391e5;
}

.icore-menu-sdis {
  cursor: default !important;
  cursor: not-allowed !important;
  color: #999 !important;
  background-color: #fff !important;
}

.icore-menu-reverse > .icore-menu-s,
.icore-menu-reverse > .icore-menu-ss {
  top: auto;
  bottom: -11px;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}

/* header menu style --> end */
.sl-breadcrumb {
  overflow: hidden;
  background-color: #fff;
  height: 30px;
  padding: 7px 0 0 20px;
}

.sl-header-li-lgbc {
  position: absolute;
  right: 40%;
  top: 20px;
}

.sl-header-li-websocket {
  position: absolute;
  right: 210px;
  top: 17px;

  .el-button--text {
    color: white;
  }
}

.sl-breadcrumb-text {
  float: left;
  color: white;
}

.sl-breadcrumb-list {
  float: left;
  padding-left: 10px;
  font-size: 12px;
  position: relative;
  top: 6px;
}

.sl-footer {
  padding: 20px 0 0px;
}

.sl-footer > p {
  text-align: center;
  height: 20px;
  line-height: 20px;
  vertical-align: middle;
}

.am-xz {
  float: left;
  margin-right: 7px;
  margin-top: 2px;
  animation: amXuanzhuan 4s linear infinite;
}

@keyframes amXuanzhuan {
  0% {
    transform: rotate3d(1, 0, 0, 360deg);
  }

  100% {
    transform: rotate3d(1, 0, 0, 0);
  }
}

.oa-header-photo-uld {
  width: 200px;
  height: 200px;
  line-height: 200px;
  vertical-align: middle;
  margin: 0 auto;
  overflow: hidden;
  cursor: pointer;
}

.oa-header-photo-uld > img {
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
}

/*.oa-header-content {*/
/*background: url("../../static/img/top_bgimg.png") left center no-repeat rgb(60,207,255);*/
/*height: 60px;*/
/*}*/

.oa-header-logo {
  float: left;
  padding: 15px 0 0 30px;
  height: 50px;
  overflow: hidden;
}

.oa-header-logo > img {
  animation: fadeInLeft 0.5s ease-out 0s both;
}

.oa-header-upt {
  position: absolute;
  left: 0;
  top: 0;
  width: 100px;
  height: 60px;
  overflow: hidden;
  text-align: center;
}

.oa-header-upt > a {
  display: inline-block;
  width: 40px;
  height: 40px;
  margin-top: 10px;
  animation: fadeInRight 0.5s ease-out 0s both;
}

.oa-header-upt > a > img {
  width: 40px;
  height: 40px;
  line-height: 40px;
  vertical-align: middle;
  color: #333;
  border-radius: 20px;
  box-shadow: 0 0 10px #333;
}

.oa-header-user:hover .oa-header-upt > a > img {
  animation: circle 4s linear 0s infinite;
}

.oa-header-ucon {
  display: none;
  overflow: hidden;
  position: absolute;
  top: 50px;
  left: 10px;
  z-index: 18000;
  padding: 10px 0 10px 10px;
  font-size: 15px;
}

.oa-header-ulist {
  position: relative;
  width: 215px;
  border: 1px solid #ddd;
  box-shadow: 0 0 8px #999;
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.95);
}

.oa-header-user:hover .oa-header-ucon {
  display: block;
}

.oa-header-user:hover .oa-header-ulist {
  animation: fadeInRight 0.4s ease-out 0s both;
}

.oa-header-uin {
  text-align: center;
  overflow: hidden;
  padding: 20px 0 15px 0;
}

.oa-header-uin > img {
  width: 60px;
  height: 60px;
  border-radius: 30px;
  cursor: pointer;
}

.oa-header-uin > img:hover {
  animation: largen2 0.6s ease-out 0s both;
}

.oa-header-uin > h3 {
  padding-top: 10px;
  color: #666;
}

.oa-header-uul {
  padding-bottom: 10px;
}

.oa-header-uul > li {
  height: 40px;
  line-height: 40px;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  transition: background-color 0.3s linear 0s;
}

.oa-header-uul .st-icons {
  position: relative;
  top: 6px;
  margin-right: 8px;
  transition: all 0.3s linear;
}

.st-icons-out {
  margin-right: 4px;
}

.oa-header-uul > li:hover {
  background-color: #ebebeb;
}

.oa-header-uul::before,
.oa-header-uul::after {
  border-bottom-color: rgba(0, 0, 0, 0.2);
  content: '';
  display: inline-block;
  position: absolute;
}

.oa-header-uul::after {
  left: 41px;
  top: -6px;
  border-bottom: 6px solid #fff;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
}

.oa-header-uul::before {
  left: 40px;
  top: -7px;
  border-bottom: 7px solid #ccc;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
}

.hnstLogo {
  position: absolute;
  left: 190px;
  top: 14px;
}

.hnstLogo > img {
  height: 32px;
}

.marignL15 {
  margin-left: 15px;
}

.menuDrag {
  height: calc(100% - 120px);
  width: 18px;
  position: absolute;
  right: -6px;
  cursor: col-resize;
  z-index: 22;
}

.pageBreadcrumb {
  display: none;
}

.oa-user-name {
  position: absolute;
  top: 21px;
  left: 100px;
  max-width: 44%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.strongBox {
  position: absolute;
  right: 0;
  top: 0;
  width: 28px;
  height: 28px;
  line-height: 28px;
  text-align: center;
  color: white;
  background: red;
  border-radius: 5px;
  font-size: 14px;
}
</style>