12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302 |
- <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"
- >
- <el-button type="text" size="small" @click="goMyTaskPage"
- >待办任务</el-button
- >
- </el-badge>
- <div class="Web_Notice" v-show="socketshow">
- <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-date">
- 时间:{{ item.inserttime }}
- </div>
- <div class="workspace_message-content">
- 内容:{{ item.noticecontent }}
- </div>
- <div class="workspace_message-from">
- 来自: {{ item.insertusername }}
- </div>
- </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>
- <!--通知-->
- <!-- <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 {
- 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,
- 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
- noticedata: [],//通知的数据
- };
- },
- created() {
- 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;
- }
- 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");
- this.orgcodezs=getCookie("orgCode");
- 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: {
- // 判断是否为公司其他平台模块且处于开发模式
- 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 {
- 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(){
- this.axios.post("/api/v1/ams/getNotice",{orgcodezs:this.orgcodezs}).then((res)=>{
- this.noticedata=res.data.data;
- this.taskAllNum=res.data.data[0].taskAllNum
- console.log(this.noticedata)
- console.log(this.taskAllNum)
- })
- },
- // 查看待办任务详情
- seeTaskContent (item) {
- 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: 300px;
- position: absolute;
- left: -100px;
- 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;
- }
- /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;
- }
- .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>
|