12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113 |
- <template>
- <div>
- <div class="bigBox">
- <div class="settingBox" @click="mouseClick">
- <!-- 设置盒子顶部搜索 -->
- <div class="topSearch">
- <div class="spaceName">{{spaceName}}</div>
- <div>
- <el-icon v-hasRole="['dept']" @click="createNewMenu(1, true)" color="#505870" size="24">
- <Plus />
- </el-icon>
- <!-- @click="createNewFile" -->
- </div>
- </div>
- <!-- 方块点击盒子 -->
- <div
- style="height: 75vh;overflow-y: auto;">
- <div class="searchBox">
- <div v-if="leftShowList === 2" style="width:100%">
- <el-input v-model="searchFire" @keyup.enter="fileBlur" class="searchFire" size="large"
- placeholder="搜索文件夹" />
- <el-icon class="SearchIcon" @click="fileBlur">
- <Search />
- </el-icon>
- </div>
- <div v-else style="width:100%">
- <el-input v-model="searchFolderTree" @keyup.enter="folderBlur" class="searchFire" size="large"
- placeholder="搜索文件" />
- <el-icon class="SearchIcon" @click="folderBlur">
- <Search />
- </el-icon>
- </div>
- <div class="left_changeShow">
- <img v-if="leftShowList === 2" src="@/assets/images/squre.png" @click="changeLeftShow" alt="">
- <img v-else src="@/assets/images/Frame_187.png" @click="changeLeftShow" alt="">
- </div>
- </div>
- <!-- v-for盒子 -->
- <div v-if="leftShowList === 2" style="display: flex;justify-content: flex-start;align-items: flex-start;flex-wrap: wrap;align-content: flex-start;overflow-y: auto;">
- <template v-for="(item, index) in fileMenu" :key="index">
- <div class="setBox" >
- <el-dropdown trigger="click" class="selectChe">
- <span class="el-dropdown-link">
- ...
- </span>
- <template #dropdown>
- <el-dropdown-menu>
- <el-dropdown-item @click="restName(item, index)">重命名</el-dropdown-item>
- <el-dropdown-item v-if="item.dirType == '2' && isDept" @click="upFirstFoler(item)">编辑</el-dropdown-item>
- <el-dropdown-item v-if="isDept" @click="delName(item, index)">删除</el-dropdown-item>
- </el-dropdown-menu>
- </template>
- </el-dropdown>
- <div class="left_fileBox" @click="changeFile(item, index)">
- <el-tooltip
- class="box-item tool-tip"
- effect="dark"
- placement="top-start"
- v-if="item.encryptLevel"
- >
- <template #content> 安全级别: {{ item.encryptLevel == 'L1'?'敏感':(item.encryptLevel == 'L2'?'涉密':(item.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
- <img :src="item.dirType=='1'?fileStyle:ordinaryList" style="width: 72px;height: 72px;" class="shouzhi">
- </el-tooltip>
- <img :src="item.dirType=='1'?fileStyle:ordinaryList" class="shouzhi" style="width: 72px;height: 72px;" v-else>
- <el-tooltip
- class="box-item tool-tip"
- effect="dark"
- placement="top-start"
- > <template #content> <span>{{ item.dirName }}</span></template>
- <p class="ellipsis-text shouzhi">{{ item.dirName }}</p>
- </el-tooltip>
- <img class="levelImg shouzhi" v-if="item.isEncrypt === 'Y'" :src="getLevelImg(item.encryptLevel)" alt="">
- </div>
- </div>
- </template>
- </div>
- <LeftList v-else :spaceType="2" :isDept="isDept" @treeRClick="treeRClick" :searchFolderTree="searchFolderTree" :ListtreeData="ListtreeData" @listfolderClick="listfolderClick"></LeftList>
- </div>
- <div class="expansion">
- <div class="top_box">
- <span style="margin-left: 5px;font-size: 14px;font-weight: 500;">{{ formatStorage(useSpace) }}/{{ allSpace + "G" }}</span>
- <span style="margin-left: 5px;font-size: 14px;color: #2E6BC8;cursor: pointer;"
- @click="askApply">申请扩容</span>
- </div>
- <el-progress style="margin-left: 8px;" :stroke-width="12" color='#2E6BC8' :percentage="percent()" />
- </div>
- </div>
- <!-- 右侧大盒子 -->
- <div class="mesBox">
- <!-- 展示文件夹盒子 -->
- <!-- 文件夹 -->
- <div v-if="editOnline">
- <!-- 众多功能 -->
- <div class="manyUse">
- <div class="useMenu">
- <div v-if="(thisRole.some(item=>item == 'upload') || (isDept && thisFolder.dirId)) && (pathLabelData.length || leftShowList == 1)&& thisFolder.parentId != 0"
- style="display: flex;width: 92px;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;">
- <div style="margin-left: 5px;">
- <img src="../../assets/images/upload.png" style="width: 24px;height: 24px;" alt="">
- </div>
- <div style="margin-left: 5px;">
- <span style="color: black;cursor: pointer;" @click="uploadModal = true" class="shouzhi">上传
- </span>
- </div>
- </div>
- <div v-else
- style="display: flex;width: 92px;opacity:0.5;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;">
- <div style="margin-left: 5px;">
- <img src="../../assets/images/upload.png" style="width: 24px;height: 24px;" alt="">
- </div>
- <div style="margin-left: 5px;">
- <span style="color: black;cursor: pointer;" class="shouzhi">上传
- </span>
- </div>
- </div>
- <div v-if="(!thisFolder.dirType) || !isDept"
- style="display: flex;width: 102px;opacity:0.5;height: 32px;justify-content: flex-start;align-items: center;">
- <div style="margin-left: 5px;">
- <el-icon
- style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
- >
- <Plus />
- </el-icon>
- </div>
- <div style="margin-left: 5px;">
- <span style="font-size: 14px;" class="shouzhi">新建目录</span>
- </div>
- </div>
- <div v-else
- style="display: flex;width: 102px;height: 32px;justify-content: flex-start;align-items: center;">
- <div style="margin-left: 5px;">
- <el-icon
- style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
- @click="createNewMenu(0)">
- <Plus />
- </el-icon>
- </div>
- <div style="margin-left: 5px;" @click="createNewMenu(0)">
- <span style="font-size: 14px;" class="shouzhi">新建目录</span>
- </div>
- </div>
- <template v-for="(item, index) in useMenu" :key="index">
- <div :class="{ 'isCheck': (haveCheck && thisRole.some(item=>item == 'delete')||haveCheck && isDept) }"
- style="display: flex;width: 82px;opacity:0.5;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;cursor: pointer;"
- @click="getMenu(item, index,(haveCheck && thisRole.some(item=>item == 'delete')||haveCheck && isDept))">
- <div style="margin-left: 5px;">
- <img :src="item.img" style="width: 24px;height: 24px;" alt="">
- </div>
- <div style="margin-left: 5px;">
- <span style="font-size: 14px;" class="shouzhi">{{ item.name }}</span>
- </div>
- </div>
- </template>
- <div v-if="(isDept && thisFolder.dirId)"
- style="display: flex;width: 92px;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;">
- <div style="margin-left: 5px;">
- <img src="../../assets/images/scanFile.png" style="width: 24px;height: 24px;" alt="">
- </div>
- <div style="margin-left: 5px;">
- <span style="color: black;cursor: pointer;" @click="scannerFile">扫描
- </span>
- </div>
- </div>
- <div v-else
- style="display: flex;width: 92px;opacity:0.5;height: 32px;justify-content: flex-start;align-items: center;line-height: 18px;">
- <div style="margin-left: 5px;">
- <img src="../../assets/images/scanFile.png" style="width: 24px;height: 24px;" alt="">
- </div>
- <div style="margin-left: 5px;">
- <span style="color: black;cursor: pointer;">扫描
- </span>
- </div>
- </div>
- </div>
- <div class="tip">
- <img src="@/assets/images/mouseRight.png" alt="">
- <span>使用右键进行文件操作</span>
- </div>
- </div>
- <div v-show="leftShowList === 2">
- <!-- 面包屑功能栏 -->
- <div class="breadBox">
- <!-- 左侧 -->
- <div style="display: flex;justify-content: space-around;align-items: center;margin-left: 10px;">
- <!-- 前进后退 -->
- <!-- <div style="display: flex;justify-content: space-around;align-items: center;margin-right: 5px;" >
- <img style="display:block;width: 11px;height: 11px;" :src="blueLeft" alt=""
- @click="arrowLift">
- <img style="display:block;width: 16px;height: 16px;" :src="grayRight" alt="">
- </div> -->
- <!-- 面包屑 -->
- <div class="topPath">
- <span @click="backTopPath">{{ topPath }}</span>
- <PathLabel v-if="!loadingPreview" @folderClick="folderClick" :pathLabelData='pathLabelData'></PathLabel>
- <!-- <BreadMenu></BreadMenu> -->
- </div>
- </div>
- <!-- 右侧 -->
- <div>
- <img
- src="@/assets/images/sort.png"
- @click="changeSort"
- v-if="isAsc == 'asc'"
- alt=""
- />
- <img
- src="@/assets/images/Frame_188.png"
- @click="changeSort"
- v-else
- alt=""
- />
- <!-- //控制宫格展示 -->
- <img
- v-if="fileGrid"
- src="@/assets/images/squre.png"
- class="shouzhi palace-grid"
- alt=""
- @click="changeShow(true)"
- />
- <img
- v-else
- src="@/assets/images/Frame_187.png"
- class="shouzhi palace-grid"
- alt=""
- @click="changeShow(false)"
- />
- <!-- <img :src="squre" alt="" @click="gridChange" class="shouzhi"> -->
- </div>
- </div>
- <!-- </div> -->
- <!-- 展示文件夹盒子 -->
- <!-- 文件夹 -->
- <div class="showBox">
- <div class="detailBox file-jia" @click="mouseClick">
- <el-collapse v-model="folder">
- <el-collapse-item name="1" class="custom-collapse-item">
- <template #title>
- <span class="file-title">文件夹</span>
- </template>
- <el-table v-if="fileGrid == 1" :data="folderList" height="37vh" style="width: 100%" :scrollbar-always-on="true"
- @selection-change="handleSelectionChange1" :single-select="true" @row-click="folderClick"
- @row-contextmenu="folderRClick" ref="taskTableRef">
- <!-- <el-table-column type="selection" width="55" /> -->
- <el-table-column label="名称" :show-overflow-tooltip="true" :tooltip-options="{showAfter: 1000}" width="600">
- <template #default="scope">
- <span class="juzhong">
- <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,true)" class="juli">
- <Star />
- </el-icon>
- <img v-else @click.stop="delCollect(scope.row,true)" src="../../assets/images/yellowstar.png" alt="" class="juli">
- <img :src="scope.row.dirType=='1'?fileBox:ordinary" style="width: 20px;height: 24px;"
- alt="" class="juli">
- <span class="shouzhi"> {{ scope.row.dirName }}</span>
- </span>
- </template>
- </el-table-column>
- <el-table-column prop="createTime" label="时间" width="280" />
- <el-table-column prop="dirType" label="类型">
- <template #default="scope">
- <span v-if="scope.row.dirType == '1'">普通目录</span>
- <span v-else>组织目录</span>
- </template>
- </el-table-column>
- <el-table-column label="加密等级">
- <template #default="scope">
- <span>
- {{setTablelevel(scope.row.encryptLevel)}}
- </span>
- </template>
- </el-table-column>
- </el-table>
- <PlaceGridFolder v-else @folderClick="folderClick" :folderList="folderList" :restName="restName"
- :collectFolder="collectFolder" @collectByStar="collectByStar" @delCollect="delCollect" @setScroll="setScroll" @folderRClick="folderRClick" :getAllTop="getAllTop" @folderBack="folderBack" :thisFolder="thisFolder" :impDirId="impDirId">
- </PlaceGridFolder>
- </el-collapse-item>
- </el-collapse>
- <!-- 右键唤出的菜单 -->
- <div class="right_menu" v-if="folderVisible"
- :style="{ left: folderleft + 'px', top: foldertop + 'px' }">
- <!-- <div class="menu_item" @click="folderClick(null, null)">
- <img src="@/assets/images/trash.png" alt="" />
- <span>打开</span>
- </div> -->
- <div class="menu_item" @click="restName(null, null)">
- <img src="@/assets/images/textbox.png" alt="" />
- <span class="shouzhi">重命名</span>
- </div>
- <div class="menu_item" @click="collectFolder">
- <img src="@/assets/images/collect.png" alt="" />
- <span class="shouzhi">收藏</span>
- </div>
- <div class="menu_item" v-if="thisFolder.dirType ==='1' && clickRow.dirType === '2' && isDept" @click="upFirstFoler(null)">
- <img src="@/assets/images/notePencil.png" alt="" />
- <span class="shouzhi">编辑</span>
- </div>
- <div class="menu_item" v-if="isDept" @click="delFolderMenu">
- <img src="@/assets/images/trash.png" alt="" />
- <span>删除</span>
- </div>
- </div>
- </div>
- <!-- 文件 -->
- <div class="fileTable">
- <el-collapse v-model="files" >
- <el-collapse-item name="2" class="">
- <template #title>
- <span class="file-title">文件</span>
- </template>
- <el-table v-el-table-infinite-scroll="setScroll" :infinite-scroll-distance="30" :infinite-scroll-disabled="tableBeEnd" v-if="fileGrid == 1" :height="fileHeight" :data="fileList" :scrollbar-always-on="true" style="width: 100%"
- @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
- @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
- <el-table-column type="selection" width="55" />
- <el-table-column label="名称" width="600">
- <template #default="scope">
- <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="juzhong">
- <el-icon v-if="scope.row.isFavorite == 'N'" @click.stop="collectByStar(scope.row,false)">
- <Star />
- </el-icon>
- <img v-else @click.stop="delCollect(scope.row,false)" src="../../assets/images/yellowstar.png" alt="" class="juli">
- <img :src="setImg(scope.row.fileType)" style="width:22px;height:22px;" alt="" class="juli">
- <el-tooltip
- class="box-item"
- effect="dark"
- placement="top"
- :show-after="1000"
- :content="scope.row.fileName"
- >
- <!-- <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template> -->
- <span class="shouzhi">{{ scope.row.fileName }}</span>
- </el-tooltip>
- </span>
- </template>
- </el-table-column>
- <el-table-column prop="createTime" label="时间" sortable width="280" />
- <el-table-column prop="fileType" label="类型" />
- <el-table-column label="大小">
- <template #default="scope">
- <span>
- {{ formatFileSize(scope.row.fileSize) }}
- </span>
- </template>
- </el-table-column>
- </el-table>
- <PalaceGridFile v-else :fileHeight="fileHeight" @showFile="showFile" :getAllTop="getAllTop" @navBack="navBack"
- @lastBB="lastBB" @collectByStar="collectByStar" @delCollect="delCollect" @setScroll="setScroll" @handleRowClick="handleRowClick" @onlineCase="onlineCase" @shareBack="shareBack" :thisFolder="thisFolder" :fileList="fileList"></PalaceGridFile>
- </el-collapse-item>
- </el-collapse>
-
- </div>
- </div>
- </div>
- <ListShow v-show="leftShowList === 1" @handleSelectionChange="handleSelectionChange" :fileList="fileList" @changeListSort="changeListSort" @delCollect="delCollect" @collectByStar="collectByStar" @handleRowClick="handleRowClick"></ListShow>
- </div>
- </div>
- <div :class="{'setCli':!noMenuItem}" v-if="cliCC" :style="{ left: xz + 'px', top: yz -100 + 'px' }">
- <template v-for="(item, index) in filterMouseCli()" :key="index">
- <p @click="chooseSet(item, index, 1)" :class="{'hasLine':item.name == '删除'||item.name == '重命名' ||item.name == '文字识别','btmLine':item.name == '收藏'}" v-if="!noMenuItem" class="chooseSet shouzhi">
- <img :src="item.img" alt="">
- <span class="shouzhi"></span>{{ item.name }}
- <span v-if="item.name == '在线编辑' || item.name == '协作' ? true : false"
- style="color: #7084B4;float: right;position: relative;" class="arrow">></span>
- </p>
- </template>
- </div>
- <div class="setCli1" v-if="anyP" :style="{ left: xz + 155 + 'px', top: yz + 'px' }">
- <p @click="chooseSet1(0)" class="chooseSet">
- <img src="../../assets/images/user.png" alt="">
- 选择人员
- </p>
- <p class="chooseSet" @click="goLock">
- <img src="../../assets/images/archiveTray.png" alt="">
- 归档
- </p>
- </div>
- <!-- 扩容弹窗 -->
- <div>
- <SpaceBig v-if="spaces" :spaces="spaces" :impSpaceId="impSpaceId" @getSpaceC="getSpaceC"></SpaceBig>
- </div>
- <!-- 新增文件夹弹窗 -->
- <div>
- <CreateFloder v-if="folderCase" :getFirstFolder="getFirstFolder" :thisType="thisFolder" :thisRole="thisRole" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
- :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId" :upFolderData="upFolderData" :thisFolderRole="thisFolderRole"
- :refreshFile="refreshFile">
- </CreateFloder>
- </div>
- <!-- 文件上传 -->
- <div>
- <el-dialog :close-on-click-modal="false" v-model="uploadModal" title="文件上传" width="30%" @close="closeUpload">
- <el-upload class="upload-demo" :file-list="fileArr" :limit="10" :on-change="upBefore" drag :http-request="onSuccess" multiple
- :on-remove="handleRemove"
- element-loading-text="上传中..."
- element-loading-background="rgba(255, 255, 255, 0.8)"
- v-loading="loadingUpload"
- >
- <el-icon class="el-icon--upload"><upload-filled /></el-icon>
- <div class="el-upload__text">拖入或<em>点击上传</em></div>
- <template #tip>
- <div class="el-upload__tip">请选择或拖入文件(一次最多上传10个文件)</div>
- </template>
- </el-upload>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="closeUpload">取消</el-button>
- <el-button type="primary" @click="sureUpload">确认</el-button>
- </span>
- </template>
- </el-dialog>
- </div>
- <!-- 文件重命名 -->
- <div>
- <el-dialog v-model="fileNameChange" title="重命名" width="30%">
- <el-form :model="nameForm" label-width="120px">
- <el-form-item label="新名字">
- <el-input v-model="nameForm.name" placeholder="请输入不多于32位字符" maxlength="32"></el-input>
- </el-form-item>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="fileNameChange = false">取消</el-button>
- <el-button type="primary" @click="sureChangeName">
- 确认
- </el-button>
- </span>
- </template>
- </el-dialog>
- </div>
- <!-- 文件收藏 -->
- <div>
- <FileCollect v-if="collects" :collects="collects" @getCollects="getCollects" :copyFileName="copyFileName"
- :copyFileId="copyFileId" @refreshFile="refreshFile" :isFolder="isFolder" :clickRow="clickRow"></FileCollect>
- </div>
- <!-- 中栏重命名 -->
- <div>
- <FolderReName v-if="rename" :rename="rename" :selectedBox="selectedBox" :getAllTop="refreshFile"
- :copyFolderName="copyFolderName" @getRename="getRename">
- </FolderReName>
- </div>
- <ImgPreview :previewData="previewData" :copyFileType="copyFileType" :showPreview="showPreview"
- @closeImgPreview="closeImgPreview"></ImgPreview>
- <div>
- <FileTree v-if="fileTrees" :fileTrees="fileTrees" :newSpaceId="newSpaceId" :fileId="clickRowId"
- @getChildren="getChildren" :copyOrMove="copyOrMove"></FileTree>
- </div>
- <!-- 穿梭框 -->
- <div>
- <TransferModal v-if="thanks" :thanks="thanks" :clickRowId="clickRowId" :workOrEdit="workOrEdit"
- @getCback="getCback"></TransferModal>
- </div>
- </div>
- </div>
- <!-- 图片预览 -->
- <!-- 历史版本 -->
- <historyList v-if="openForwardFile" :openFile="openForwardFile" :docId="clickRowId" :name="nameForm.name" :copyRow="copyRow"
- @close="openForwardFile = false" :fileUserTreeData="fileUserTreeData.data" @changeMsgClose="changeMsgClose"
- :historyTotal="historyTotal">
- </historyList>
- <!-- 历史版本 -->
- <!-- 二次密码验证 -->
- <inputPassword v-if="showInputPassword" @sureCode="sureCode" :isCode="isCode" :inputTitle="inputTitle" @surePass="surePass" @closeIptPass="closeIptPass" :showInputPassword="showInputPassword"></inputPassword>
- <div v-loading.fullscreen="loadingPreview" v-if="loadingPreview" class="lodingBox"></div>
- <!-- 扫描文档 -->
- <ScanFile v-if="openScan" :openScan="openScan" :scannerFiles="scannerFiles" @saveScanFile="saveScanFile" @closeOpen="closeOpen"></ScanFile>
- <!-- 可用扫描仪信息 -->
- <div>
- <el-dialog v-model="checkScanner" title="扫描仪" width="30%">
- <div v-for="item in scannerList" :key="item.scannerId" @click="checkScanFn(item)" id="Onescan" :class="{'checkScan':item.scannerId ==checkScanId }">
- <img src="@/assets/images/scanImg.png" alt="">
- {{item.scannerName}}
- </div>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="closeCheckScanner">取消</el-button>
- <el-button type="primary" @click="sureScaner">确认</el-button>
- </span>
- </template>
- </el-dialog>
- </div>
- <!-- 扫描文件移动到 -->
- <MoveTo v-if="openScanMove" :spaceType='2' :scanFileArr="scanFileArr" :thisFolder="thisFolder" :openScanMove="openScanMove" @closeOpenScanMove='closeOpenScanMove'></MoveTo>
- <TreeMenu v-show="showTreeMenu" :spaceType='2' :noEdit="noEdit" :clickRow="clickRow" :isDept="isDept" @upFirstFoler="upFirstFoler" @restName="restName" @delName="delName" :xz="xz" :yz="yz"></TreeMenu>
- </template>
- <script>
- import { ref, toRaw, onMounted,onActivated ,inject,watch} from 'vue'
- import myfile from '../../api/myfile/myfile'
- import { delFavorite } from '@/api/biz/favorite.js'
- import documents from '../../api/document/document'
- import {getInfo,delInfo}from "@/api/biz/info.js"
- import fileCount from '../../api/fileCount/fileCount'
- import FileTree from './components/FileTree.vue'
- import BreadMenu from './components/BreadMenu.vue'
- import FileEdit from '@/views/myfile/components/FileEdit.vue'
- import TransferModal from './modalComponebts/Transfer.vue'
- import CreateFloder from './modalComponebts/CreateFloder.vue'
- import FileCollect from '@/views/myfile/modalComponebts/FileCollect.vue'
- import FolderReName from './modalComponebts/FolderReName.vue'
- import SpaceBig from './modalComponebts/SpaceBig.vue'
- // import PlaceGridFolder from './components/PlaceGridFolder.vue'
- // import PalaceGridFile from './components/PalaceGridFile.vue'
- import PlaceGridFolder from '@/views/myfile/components/PlaceGridFolder.vue'
- import PalaceGridFile from '@/views/myfile/components/PalaceGridFile.vue'
- import ImgFile from "./jsComponents/ImgFile"
- import LeftList from "@/components/LeftList/LeftList.vue"
- import ListShow from "@/components/ListShow/ListShow.vue"
- import { Search } from '@element-plus/icons-vue'
- import blueLeft from '../../assets/images/blueLeft.png'
- import grayRight from "../../assets/images/grayRight.png"
- import sort from '../../assets/images/sort.png'
- import squre from '../../assets/images/squre.png'
- import level1 from "@/assets/images/level1.png";
- import level2 from "@/assets/images/level2.png";
- import level3 from "@/assets/images/level3.png";
- import level4 from "@/assets/images/level4.png";
- import { ElMessage ,ElLoading } from 'element-plus'
- import ImgPreview from '@/components/ImgPreview/ImgPreview.vue'
- import ScanFile from '@/components/ScanFile/ScanFile.vue'
- import MoveTo from '@/components/MoveTo/MoveTo.vue'
- import PathLabel from '@/components/PathLabel/index.vue'
- import { preview } from "@/api/common/common.js";
- import historyList from "@/components/historyList/index.vue"; //选择文件发送的列表,历史版本
- import inputPassword from "./components/inputPassword.vue"; //选择文件发送的列表,历史版本
- import { listVersion } from "@/api/biz/version";
- import useUserStore from "@/store/modules/user";
- import { useRouter, useRoute,onBeforeRouteUpdate } from "vue-router";
- import { canPreviewFile,rightMenuRole,publicRightMenuRole } from "@/utils/index.js"
- import fileSpace from '../../api/filespace/fileSpace';
- import { getLeveldetail } from '../../api/level/level';
- import { encrypt, decrypt } from "@/utils/jsencrypt";
- import ordinaryList from "@/assets/images/ordinaryList.png";
- import ordinary from "@/assets/images/ordinary.png";
- import fileStyle from "@/assets/images/fileStyle.png";fileBox
- import fileBox from "@/assets/images/fileBox.png";
- import { getLevel } from '@/api/level/level.js';
- import { listInfo,selectInfo ,getFileByScanerId} from '@/api/scanner/info.js';
- import Cookies from "js-cookie";
- import elTableInfiniteScroll from 'el-table-infinite-scroll'
- import { getConfigKey } from "@/api/system/config.js"
- import { setIcon } from "@/utils/index.js";
- import uploadApi from '../../api/upload/upload'
- import TreeMenu from '@/components/TreeMenu/TreeMenu.vue'
- export default {
- directives: {
- 'el-table-infinite-scroll': elTableInfiniteScroll
- },
- setup() {
- const { proxy } = getCurrentInstance();
- const levelList = ref()
- let fileTrees = ref(false)//filetree父传子
- let thanks = ref(false)//transfer父传子
- let collects = ref(false)//文件收藏父传子
- let rename = ref(false)//文件夹重命名
- let spaces = ref(false)//空间扩容父传子
- let folderCase = ref(false)
- let fileGrid = ref(sessionStorage.getItem('fileGrid') || 1)
- let folderGrid = ref(true)
- let editOnline = ref(true)
- let searchFire = ref('')
- let selectedIndex = ref(0)
- let folder = ref(['1'])
- let files = ref(['2'])
- let folderList = ref([])
- let cliCC = ref(false)
- let anyP = ref(false)
- let uploadModal = ref(false)
- let collectImg = ref(true)
- let selectedBox = ref(-1)
- let clickRowId = ref(0)
- let trandata = ref()
- let folderId = ref('')
- let fileId = ref('')
- let tranvalue = ref([])
- let useSpace = ref(0)
- let allSpace = ref(0)
- let fileArr = ref([])
- let copyDirId = ref(0)//需要操作的dirid
- let copySpaceId = ref(0)//需要操作的spaceid
- let copyDocId = ref(0)//需要操作的docid
- let copyFileId = ref(0)//需要操作的fileid
- let copyFileSize = ref(0)//需要操作的filesize
- let copyFileType = ref('')//需要操作的文件类型
- let copyFileName = ref("")//需要操作的文件名
- let copyFolderName = ref("")
- let copySpaceCup = ref(0)
- let directoryId = ref('')
- let impSpaceId = ref("")
- let impDirId = ref("")
- let impNum = ref(0)
- let copyParentId = ref("")//文件夹
- let needBag = ref("")
- let copyOrMove = ref(0)//0代表复制,1代表移动
- let oneOrTwo = ref(0)//0代表二级,1代表一级
- let sortNum = ref(0)
- let folderTotal = ref(0)//文件夹total
- let fileTotal = ref(0)//文件total
- const openForwardFile = ref(false) //历史版本展示
- const delMoreFile = ref([]) //删除多个文件夹
- const historyTotal = ref(0)
- const historyPrew = ref(false)
- const leftNewFile = ref(false) //解决左侧点击后不能显示的问题
- let xz = ref(0)
- let yz = ref(0)
- const fileUserTreeData = reactive({ data: {} });
- let fileList = ref()
- let menuList = ref([
- {
- name: "我的空间",
- choose: "我的空间"
- }
- ])
- const fileHeight=ref('38vh')
- const pageSize = ref(10)
- let useMenu = ref([
- // {
- // img: ImgFile.copy,
- // name: "复制"
- // },
- // {
- // img: ImgFile.clipboard,
- // name: "粘贴"
- // },
- // {
- // img: ImgFile.share,
- // name: "分享给"
- // },
- {
- img: ImgFile.trash,
- name: "删除"
- },
- ])
- let arrorMenu = ref([
- {
- img: ImgFile.file,
- name: "文件"
- },
- {
- img: ImgFile.folder,
- name: '文件夹'
- },
- {
- img: ImgFile.image,
- name: "图片"
- },
- {
- img: ImgFile.filmSlate,
- name: "视频"
- },
- {
- img: ImgFile.musicNotes,
- name: "音频"
- }
- ])
- let mouseCli = ref([
- {
- img: ImgFile.previewIcon,
- name: "打开"
- },
- {
- img: ImgFile.downLoad,
- name: "下载"
- },
- {
- img: ImgFile.textbox,
- name: "重命名"
- },
- // {
- // img: ImgFile.goon,
- // name: "发送"
- // },
- {
- img: ImgFile.share,
- name: "分享"
- },
- {
- img: ImgFile.collect,
- name: "收藏"
- },
- {
- img: ImgFile.icc,
- name: "文字识别"
- },
- {
- img: ImgFile.history,
- name: "历史版本"
- },
- {
- img: ImgFile.trash,
- name: "删除"
- }
- ])
- let nameForm = ref({
- name: ""
- })
- let ordinaryFolder = ref([ {
- img: ImgFile.previewIcon,
- name: "预览"
- },
- {
- img: ImgFile.collect,
- name: "收藏"
- },
- {
- img: ImgFile.downLoad,
- name: "下载"
- }
- ])
- let fileNameChange = ref(false)
- let fileMenu = ref([])
- let copyRow = ref({})
- let newDirId = ref('')
- let newSpaceId = ref('')
- let workOrEdit = ref(0)
- const showPreview = ref(false)//控制图片预览组件显示
- const previewData = ref()//需要预览的文件的数据
- const router = useRouter(); //注册路由
- const route = useRoute(); //注册路由
- const folderVisible = ref(false); //显示文件夹右键菜单
- const foldertop = ref(0);
- const folderleft = ref(0);
- const thisFolder = ref({}); //当前右键的文件夹
- const folderCheckout = ref(false)//是否有勾选
- const fileCheckout = ref(false)//是否有勾选
- const haveCheck = ref(false)//是否有勾选
- const onlyView = ref(false) //预览
- const topPath = ref()//顶部路径
- const isFolder = ref('N') //是否为文件夹
- const clickRow = ref()//当前右键的行数据
- const backFolder = ref()//上一级的文件夹
- const thisFolderRole = ref({})//文件夹安全等级
- const thisRole = ref([])//文件夹权限
- const showInputPassword = ref(false)
- const chooseRow = ref()
- const chooseNum = ref()
- const loadingPreview = ref(false)
- const noMenuItem = ref(false)
- const addTab = inject("addTab");
- const addFileTab = inject("addFileTab");
- const upFileData = inject("upFileData");
- const addFolderAdd = inject("addFolderAdd");
- const delFolderDataFn = inject("delFolderDataFn");
- const delFileFn = inject("delFileFn");
- const filePageNum = ref(1) //获取文件分页
- const tableBeEnd = ref(true)//控制下拉是否到底
- const tableTotal = ref(0)//表格数据总数
- const spaceName = ref()
- const isDept = ref(false)// 是否管理员
- const loadingUpload = ref(false);//文件上传加载
- let fileBig = ref(0);
- const maxFileSize = ref()//能上传的最大size
- const scannerList = ref() // 扫描仪数据
- const checkScanId = ref() // 选中的scan的id
- const checkScanner = ref(false) //显示扫描仪选择框
- const scannerFiles = ref([]) //选择的扫描仪的文件
- const openScanMove = ref(false)
- const pathLabelData = ref([
- ])
- //控制宫格展示
- const isList = ref(false); //控制显示方式
- const openScan = ref(false)//控制扫描文档显示
- const scanFileArr = ref([]) //认领的扫描文件数组
- const delMoreFolder = ref([])
- const inputTitle = ref()//验证框标题
- const isCode = ref(false)// 验证的类型
- const isAsc = ref("desc");
- const clickPath = inject("clickPath");
- const leftShowList = ref()
- const thisFirst = ref()
- const ListtreeData = ref()
- const searchFolderTree = ref()
- const showTreeMenu = ref(false)
- const noEdit = ref(false)//树形节点 右键是否可编辑
- const changeSort = async () => {
- isAsc.value == "asc" ? (isAsc.value = "desc") : (isAsc.value = "asc")
- // refreshFile()
- let obj = {
- pageNum: 1,
- pageSize: 9999,
- isAsc: isAsc.value,
- orderByColumn: "createTime"
- }
- documents.getALLdocumentByType({ parentId: thisFolder.value.dirId?thisFolder.value.dirId:impDirId.value, spaceId: impSpaceId.value,isAsc: isAsc.value,orderByColumn: "createTime",pageNum: obj.pageNum, pageSize: obj.pageSize },2).then(res => {
- // fileMenu.value = res.rows
- folderList.value = res.rows
- })
- const query = `${thisFolder.value.dirId?thisFolder.value.dirId:impDirId.value}?isAsc=${isAsc.value}&orderByColumn=createTime&pageSize=9999&pageNum=1`
- myfile.getById(query).then(res => {
- if (res.code === 200) {
- fileList.value = res.rows
- fileTotal.value = res.total
- // console.log('fileList.value',fileList.value);
- }
- // console.log('not200');
- })
- }
- const changeListSort = async (listAsc)=>{
- const query = `${thisFolder.value.dirId}?isAsc=${listAsc}&orderByColumn=createTime&pageSize=9999&pageNum=1`
- myfile.getById(query)
- .then(res => {
- if (res.code === 200) {
- fileList.value = res.rows;
- }
- })
- .catch(error => {
- console.error("myfile.getAllFileMenu 调用失败:", error);
- });
- }
- const changeShow =async (fileGrids) => {
- // console.log('fileGrid',fileGrid.value);
- filePageNum.value = 1
- if(fileGrid.value == 1){
- fileGrid.value = 0 // 变宫格
- pageSize.value = 30+pageSize.value
- if(thisFolder.value.dirId){
- const query = `${thisFolder.value.dirId}?isAsc=${isAsc.value}&orderByColumn=createTime&pageSize=9999&pageNum=${filePageNum.value}`
- const res = await myfile.getById(query)
- console.log('filessetScrollres',res);
- if (res.code === 200) {
- // const newarr = res.rows.concat(toRaw(fileList.value))
- const newarr = res.rows
- console.log('newarr',newarr);
- fileList.value = JSON.parse(JSON.stringify(newarr))
- if(newarr.length < tableTotal.value){
- //获取后的数量<total就可以再次获取
- setTimeout(()=>{
- tableBeEnd.value = false
- },1000)
- }
- }
- }
- }else{
- fileGrid.value = 1
- pageSize.value = 20
- }
- sessionStorage.setItem('fileGrid',fileGrid.value)
- };
- const upFolderData = ref()// 修改的文件夹的数据
- // const isUpFolder = ref(false)
- // 获取文件夹,中栏,文件
- function getAllTop() {
- documents.getTop(2).then(res => {
- console.log('getAllTopres',res);
- if(!res){
- console.log('nores');
- return
- }
- let userMe = [res]
- impDirId.value = userMe[0].dirId//固定
- impSpaceId.value = userMe[0].spaceId//固定
- newSpaceId.value = userMe[0].spaceId//变化
- newDirId.value = userMe[0].dirId//变化
- topPath.value = userMe[0].dirPath
- spaceName.value = userMe[0].dirPath
- let obj = {
- pageNum: 1,
- pageSize: 9999,
- isAsc: isAsc.value,
- orderByColumn: "createTime",
- }
- documents.getALLdocumentByType({ parentId: userMe[0].dirId - 0, spaceId: userMe[0].spaceId,isAsc: isAsc.value,orderByColumn: "createTime", pageNum: obj.pageNum, pageSize: 9999 },2).then(res => {
- fileMenu.value = res.rows
- folderList.value = res.rows
- })
- myfile.getById(userMe[0].dirId - 0, obj).then(res => {
- if (res.code === 200) {
- fileList.value = res.rows
- fileTotal.value = res.total
- if (fileTotal.value / 10 != 1) {
- let x = Math.trunc(fileTotal.value / 10) + 1
- for (var i = 1; i <= x; i++) {
- obj.pageNum = i
- myfile.getById(userMe[0].dirId - 0, obj).then(res => {
- fileList.value = fileList.value.concat(res.rows)
- const uniqueFileList = Array.from(new Set(fileList.value.map(item => item.docId)))
- .map(docId => fileList.value.find(item => item.docId === docId));
- // 合并数组并更新 fileList.value
- fileList.value = uniqueFileList
- })
- }
- }
- // console.log('fileList.value',fileList.value);
- }
- // console.log('not200');
- })
- })
- }
- const getFirstFolder = ()=>{
- let obj = {
- pageNum: 1,
- pageSize: 9999
- }
- documents.getALLdocumentByType({ parentId: impDirId.value, spaceId: impSpaceId.value,isAsc: isAsc.value,orderByColumn: "createTime", pageNum: obj.pageNum, pageSize: obj.pageSize },2).then(res => {
- fileMenu.value = res.rows
- // 如果label没有值说明不在一级目录下
- if(!pathLabelData.value[0]){
- folderList.value = res.rows
- }
- })
- }
- function fileBlur() {
- if (searchFire.value == '') {
- getAllTop()
- } else {
- const searchTerm = searchFire.value.trim().toLowerCase(); // 转换为小写字母并去除首尾空格
- fileMenu.value = fileMenu.value.filter(item => {
- const dirName = item.dirName.trim();
- return dirName.includes(searchTerm);
- });
- }
- }
- function getSpaceList() {
- getFileTree()
- myfile.fileType(2).then(res => {
- useSpace.value = res.data.usedCap
- allSpace.value = res.data.spaceCap
- })
- }
- //获取文件树
- function getFileTree() {
- documents.fileTree(2).then((res) => {
- res.disabled = true;
- ListtreeData.value = [res];
- function getAllNodeIds(nodes) {
- nodes.forEach((node) => {
- if (node.remark) {
- node.remark = JSON.parse(node.remark);
- }
- if (node.children && node.children.length > 0) {
- getAllNodeIds(node.children);
- }
- });
- return nodes;
- }
- // 调用递归函数获取所有节点的 id
- getAllNodeIds(ListtreeData.value);
- // console.log("treedataarr", arr);
- // console.log("treeData", treeData.value);
- });
- }
- function changeFile(row, num) {
- const labelItem = {
- name:row.dirName,
- dirId:row.dirId
- }
- pathLabelData.value = [labelItem]
- const addData = {
- path:'/department'+row.dirId,
- name:row.dirName,
- clickRowId:toRaw(row)
- }
- addFolderAdd(addData) //加了这句代码界面会渲染两次
- thisFolder.value = row
- console.log('row2',row);
- // topPath.value = row.dirPath
- if(row.isEncrypt === "Y" && row.encryptLevel){
- getLeveldetailFn(row.encryptLevel)
- }else{
- thisFolderRole.value = {}
- }
- thisRole.value = row.dirRole?row.dirRole.split(','):[]
- copyParentId.value = row.parentId
- newDirId.value = row.dirId
- newSpaceId.value = row.spaceId
- documents.getALLdocumentByType({ parentId: row.dirId - 0, spaceId: row.spaceId - 0, pageNum: 1, pageSize: 9999 ,isAsc: isAsc.value,orderByColumn: "createTime"},2).then(res => {
- folderList.value = res.rows
- // if (res.code === 200) {
- if (res.rows.length === 0) {
- myfile.getById(`${newDirId.value}?pageNum=1&pageSize=9999&isAsc=${isAsc.value}&orderByColumn=createTime`)
- .then(res => {
- if (res.code === 200) {
- fileList.value = res.rows;
- }
- })
- .catch(error => {
- console.error("myfile.getAllFileMenu 调用失败:", error);
- });
- } else {
- myfile.getById(`${row.dirId - 0}?pageNum=1&pageSize=9999&isAsc=${isAsc.value}&orderByColumn=createTime`)
- .then(res => {
- if (res.code === 200) {
- fileList.value = res.rows;
- }
- })
- .catch(error => {
- console.error("myfile.getAllFileMenu 调用失败:", error);
- });
- }
- // }
- })
- selectedIndex.value = num
- const newItem = {
- name: row.dirName,
- choose: row.dirName,
- dirIds: row.dirId,
- spaceIds: row.spaceId
- };
- // 检查 newItem 是否已存在于 menuList 中
- const isItemExist = menuList.value.some(item => item.choose === newItem.choose);
- // 如果不存在,则添加它
- if (!isItemExist) {
- menuList.value.push(newItem);
- }
- }
- function folderBlur() {
- console.log('searchFolderTree',searchFolderTree.value);
- // if (searchFire.value == '') {
- // getAllTop()
- // } else {
- // const searchTerm = searchFire.value.trim().toLowerCase(); // 转换为小写字母并去除首尾空格
- // fileMenu.value = fileMenu.value.filter(item => {
- // const dirName = item.dirName.trim();
- // return dirName.includes(searchTerm);
- // });
- // }
- }
- // x图标事件
- function shotdown(row) {
- menuList.value = menuList.value.filter(item => item.name !== row.name)
- selectedIndex.value = -1
- if (!editOnline.value) {
- editOnline.value = true
- }
- }
- // 文件名表格每一行点击事件
- function handleRowClick(row, col, e) {
- console.log('row',row);
- // console.log('thisFolder',thisFolder.value);
- isFolder.value = "N"
- clickRow.value = row
- e.preventDefault();
- e.stopPropagation();
- xz.value = e.pageX
- yz.value = e.pageY
- if ((window.innerHeight - e.clientY)<300) {
- yz.value = e.pageY - 100
- }
- //如果带有(重命名)-前缀 只允许进行重命名操作
- const regExp = /^\(重命名\)-/
- if(regExp.test(clickRow.value.fileName)){
- yz.value = e.pageY + 100
- }
- copyRow.value = row
- clickRowId.value = row.docId
- copyDirId.value = row.dirId
- copySpaceId.value = row.spaceId
- copyFileId.value = row.fileId
- copyFileSize.value = row.fileSize
- copyFileType.value = row.fileType
- nameForm.value.name = row.fileName
- copyFileName.value = row.fileName
- if (cliCC.value === true) {
- cliCC.value = false
- } else {
- cliCC.value = true
- }
- }
- // 树节点右键事件
- function treeRClick(row, col, e,Edit) {
- // console.log('row', row);
- // isFolder.value = "N"
- clickRow.value = row
- e.preventDefault();
- e.stopPropagation();
- xz.value = e.pageX
- yz.value = e.pageY
- noEdit.value = Edit
- showTreeMenu.value = true
-
- }
- // 申请扩容
- async function askApply() {
- const res = await fileSpace.querySpace(impSpaceId.value)
- console.log('res',res);
- if(res.data){
- ElMessage({ message: '已存在扩容申请', type: 'error' })
- return
- }
- spaces.value = true
- }
- //mouse弹框
- async function chooseSet(row, index, num) {
- // 权限控制
- if(thisFolderRole.value && thisFolderRole.value.roles){
- if (thisFolderRole.value.roles.l0700) {
- const codeArr = localStorage.getItem('codeArr');
- let codeArrObj
- if(codeArr){
- codeArrObj = JSON.parse(codeArr)
- }
- if ((!codeArrObj) || !codeArrObj.some(item => item === clickRow.value.docId)) {
- chooseRow.value = row
- chooseNum.value = num
- inputTitle.value = '请输入私有安全访问码'
- isCode.value = true
- showInputPassword.value = true
- return
- }
- // console.log('needc');
- }else if(thisFolderRole.value.roles.l0600){
- const passArr = localStorage.getItem('passArr');
- // console.log('passArr',passArr);
- let passArrObj
- if(passArr){
- passArrObj = JSON.parse(passArr)
- }
- if((!passArrObj) || !passArrObj.some(item=>item === clickRow.value.docId)){
- chooseRow.value = row
- chooseNum.value = num
- inputTitle.value = '请输入登录密码'
- isCode.value = false
- showInputPassword.value = true
- return
- }
- // console.log('needc');
- }
- }
- // console.log('chooseSetrow',row);
- // console.log('chooseSetnum',num);
- if (row.name == '在线编辑' || row.name == '协作') {
- cliCC.value = true
- }
- if (row.name == '分享') {
- workOrEdit.value = num
- thanks.value = true
- } else {
- thanks.value = false
- }
- if (row.name == '协作') {
- workOrEdit.value = num
- if (anyP.value) {
- anyP.value = false
- } else {
- anyP.value = true
- }
- } else {
- anyP.value = false
- }
- if (row.name == '删除') {
- const has = delFileFn(clickRowId.value)
- if(has){
- return
- }
- myfile.delMenu(clickRowId.value).then(res => {
- if (res.code === 200) {
- ElMessage({
- type: "success",
- message: "删除成功"
- })
- refreshFile()
- }
- })
- }
- if (row.name === '复制到...') {
- copyOrMove.value = 0
- fileTrees.value = true
- }
- if (row.name === '移动到...') {
- copyOrMove.value = 1
- fileTrees.value = true
- }
- if (row.name === '重命名') {
- fileNameChange.value = true
- }
- if (row.name === "下载") {
- // location.href = `${import.meta.env.VITE_APP_BASE_API}/api/download/${copyFileId.value}`;
- downLoadfile()
- }
- if (row.name === '收藏') {
- if(clickRow.value.isFavorite === "Y"){
- return ElMessage({
- type: "error",
- message: "请勿重复收藏"
- })
- }
- collects.value = true
- }
- if (row.name === '在线编辑') {
- loadingPreview.value = true
- // const filePreview = canPreviewFile(copyFileType.value)
- // if (filePreview) {
- loadingPreview.value = false
- if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
- addFileTab(clickRow.value, 1,1);
- }else{
- addFileTab(clickRow.value, 1,0);
- }
- onlyView.value = false
- // editOnline.value = false
- cliCC.value = false
- // } else {
- // const res = await preview(copyRow.value.docId)
- // showPreview.value = true
- // previewData.value = URL.createObjectURL(res)
- // }
- loadingPreview.value = false
- }
- if (row.name === '文字识别') {
- router.push({
- path: '/identifyFont',
- query: {
- docId: copyRow.value.docId,
- fileId: copyRow.value.fileId,
- fileType: copyFileType.value
- }
- })
- }
- if (row.name === '打开') {
- loadingPreview.value = true
- const filePreview = canPreviewFile(copyFileType.value)
- const canEditArr = ['.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.dps','.et', '.pptx','.pdf','.PDF']
- if (filePreview) {
- // 文件
- getInfo(clickRow.value.docId).then((res)=>{
- // console.log('res',res);
- clickRow.value = res.data
- if(clickRow.value.isFiled === "Y" || !canEditArr.includes(copyFileType.value) || !toRaw(thisRole.value).some(item=>item == "edit")){
- //归档了或者不允许编辑的格式 就是预览
- if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
- addFileTab(clickRow.value, 0,1);
- }else{
- addFileTab(clickRow.value, 0,0);
- }
- }else{ // 编辑
- //--------------------------
- loadingPreview.value = false
- if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
- addFileTab(clickRow.value, 1,1);
- }else{
- addFileTab(clickRow.value, 1,0);
- }
- cliCC.value = false
- loadingPreview.value = false
- //---------------------------
- }
- })
- onlyView.value = true
- // editOnline.value = false
- cliCC.value = false
- } else {
- const res = await preview(copyRow.value.docId)
- showPreview.value = true
- previewData.value = URL.createObjectURL(res)
- }
- loadingPreview.value = false
- // console.log('filePreview', filePreview);
- // // console.log('res',res);
- // const res = await preview(copyFileId.value)
- // showPreview.value = true
- // previewData.value = URL.createObjectURL(res)
- } else if (row.name === "历史版本") {
- const resHistory = await listVersion({ docId: clickRowId.value })
- console.log('resHistory',resHistory);
- historyTotal.value = resHistory.total
- fileUserTreeData.data = resHistory.rows;
- openForwardFile.value = true
- }
- }
- function chooseSet1(num) {
- workOrEdit.value = num
- thanks.value = true
- anyP.value = false
- }
- function createNewMenu(num,leftNewFiles) {
- if (leftNewFiles) {
- leftNewFile.value = true //解决左侧点击文件后不显示的问题
- }else{
- leftNewFile.value = false
- }
- upFolderData.value = null
- oneOrTwo.value = num
- folderCase.value = true
- }
- function cancleHistoryPrew(val) {
- historyPrew.value = false
- }
- const closeOpen = ()=>{
- openScan.value = false
- }
- function createNewFile() {
- addFile.value = true
- }
- function arrowClick(row, num) {
- if (row.name === '文件') {
- uploadModal.value = true
- } else {
- uploadModal.value = false
- }
- }
- // 确认上传
- function sureUpload() {
- loadingUpload.value = true;
- if (useSpace.value * 1024 * 1024 + fileBig.value / 1024 > allSpace.value * 1024 * 1024) {
- ElMessage({
- message: "超过最大容量,请联系管理员扩容",
- type: "error",
- })
- loadingUpload.value = false;
- return
- }
- if (fileArr.value.length > 0) {
- let form=new FormData();
- for (var i = 0; i < fileArr.value.length; i++) {
- form.append("files",fileArr.value[i]);
- }
- form.append("spaceId",newSpaceId.value)
- form.append("dirId",newDirId.value)
- // console.error(fileArr.value);
- uploadApi.uploadFileMany(form).then(res => {
- if (res.code === 200) {
- ElMessage({
- message: "上传文件成功",
- type: "success"
- })
- // getAllTop()
- refreshFile()
- uploadModal.value = false
- loadingUpload.value = false;
- fileArr.value = []
- fileBig.value = 0
- }
- }).catch(err => {
- loadingUpload.value = false;
- fileArr.value = []
- })
- } else {
- loadingUpload.value = false;
- return ElMessage({ message: "请选择文件", type: "error" })
- }
- }
- function onSuccess(files, val) {
- const maxSize = (maxFileSize.value-0)*1024*1024
- if(files.file.size<maxSize){
- fileArr.value.push(files.file)
- }
- }
- //关闭文件上传
- const closeUpload =() =>{
- uploadModal.value = false;
- fileArr.value = [];
- fileBig.value = 0
- loadingUpload.value = false
- }
- // 移除上传的某些文件
- const handleRemove = (file,rawFile) => {
- // fileArr.value = [...rawFile]
- fileBig.value = fileBig.value - file.size
- fileArr.value = rawFile.map(item=>{
- if(item.raw){
- return item.raw
- }else{
- return item
- }
- })
- }
- // 筛选后缀图片
- function getImage(file) {
- if (file === '.txt') {
- return ImgFile.txt
- } else if (file === '.xlxs' || file === '.docx') {
- return ImgFile.xlxs
- } else if (file === '.pptx') {
- return ImgFile.pptx
- } else if (file === '.word') {
- return ImgFile.word
- } else if (file === '.pdf') {
- return ImgFile.pdf
- }
- }
- // 表格多选框
- function handleSelectionChange(val) {
- delMoreFile.value = val //删除多项的数据
- if (val.length) {
- folderCheckout.value = true
- haveCheck.value = true
- } else {
- folderCheckout.value = false
- haveCheck.value = false
- }
- }
- // 文件夹
- function handleSelectionChange1(val) {
- delMoreFolder.value = val //删除多项的数据
- if (val.length) {
- fileCheckout.value = true
- haveCheck.value = true
- }else{
- haveCheck.value = false
- fileCheckout.value = false
- }
- }
- // 重命名
- function restName(row, index) {
- // 判断是点击打开还是右键菜单打开
- row = row ? row : clickRow.value
- copyFolderName.value = row.dirName
- selectedBox.value = row.dirId
- rename.value = true
- }
- async function getMenu(row, num,canDo) {
- // console.log('delMoreFile',delMoreFile.value);
- // if(delMoreFile.value[0].dirType === "2") return ElMessage({
- // message: "删除失败,组织目录不可删除",
- // type: "error"
- // })
- if (row.name === '删除') {
- if(!canDo) return
- const datas = delMoreFile.value.map(item=>{
- return item.docId
- })
- let candel = false
- await datas.forEach(item=>{
- if(delFileFn(item)){//删除的这批里面有打开的
- // ElMessage({
- // message: "相关文件已被打开,请关闭后重试",
- // type: "error"
- // })
- candel = true
- return
- }
- })
- if(candel)return
- const filesStr = datas.join(',')
- loadingPreview.value = true
- delInfo(filesStr).then(res=>{
- if (res.code === 200) {
- ElMessage({
- message: "删除成功",
- type: "success"
- })
- // getAllTop()
- loadingPreview.value = false
- refreshFile()
- }
- })
- const isFile = ref(false)
- delMoreFolder.value.map(i => {//多选删除
- documents.delDocument(i.dirId).then(res => {
- if (res.code === 200) {
- ElMessage({
- message: "删除成功",
- type: "success"
- })
- if(!thisFolder.value?.dirId){
- delFolderDataFn(i)
- }
- // getAllTop()
- refreshFile()
- } else {
- ElMessage({
- message: "删除失败,目录应不为空",
- type: "error"
- })
- }
- })
- })
- }
- }
- function delName(row, num) {
- row = row ? row : clickRow.value
- documents.delDocument(row.dirId).then(res => {
- if (res.code === 200) {
- // 如果当前打开的是要删除的这个文件夹
- if(thisFolder.value.dirId === row.dirId){
- getAllTop()
- pathLabelData.value = []
- }else{
- getFirstFolder()
- }
- getSpaceList()
- ElMessage({
- message: "删除成功",
- type: "success"
- })
- delFolder(row)
- }
- })
- }
- const delFolder = (row)=>{
- delFolderDataFn(row)
- // console.log('tableData',tableData);
- }
- // 计算百分比
- function percent() {
- let numP = 0;
- if (useSpace.value && allSpace.value) {
- numP = (useSpace.value / allSpace.value) * 100;
- }
- if(numP<0)return 0
- if(numP>100)return 100
- return numP.toFixed(2) - 0; // 将结果保留两位小数
- }
- // 文件夹每行点击事件
- function folderClick(row, list,e,jump) {
- if(!pathLabelData.value[0]&& leftShowList.value === 2){
- // 创建标签
- const addData = {
- path: '/department' + row.dirId,
- name: row.dirName,
- clickRowId: toRaw(row)
- }
- addFolderAdd(addData)
- }
- // 初始化分页数据
- tableBeEnd.value = true
- filePageNum.value = 1
- tableTotal.value = 0
- // 上一级dirId就是下一级的parentId
- // 判断是点击打开还是右键菜单打开
- if(row){
- backFolder.value = thisFolder.value
- thisFolder.value = row;
- if(pathLabelData.value[0]){
- // 有值就说明是二级及以后的数据
- const oldArr = toRaw(pathLabelData.value)
- console.log('oldArr',oldArr);
- let newArr
- console.log('jump',jump);
- if(jump == undefined){
- newArr = oldArr.push({
- name:toRaw(row).dirName,
- dirId:toRaw(row).dirId
- })
- }else{ // jump有值说明是点击过来的 后面的要截取掉
- newArr = oldArr.splice(jump+1)
- }
- console.log('newArr',newArr);
- pathLabelData.value = JSON.parse(JSON.stringify(oldArr))
- }else{
- const labelItem = {
- name:row.dirName,
- dirId:row.dirId
- }
- pathLabelData.value = [labelItem]
- }
- }else{
- row =thisFolder.value
- }
- if(row.isEncrypt === "Y" && row.encryptLevel){
- getLeveldetailFn(row.encryptLevel)
- }else{
- thisFolderRole.value = {}
- }
- thisRole.value = row.dirRole?row.dirRole.split(','):[]
- // console.log('row1', toRaw(row));
- // topPath.value = row.dirPath
- // console.log('topPath',toRaw(topPath.value));
- newDirId.value = row.dirId
- newSpaceId.value = row.spaceId
- const query = `${newDirId.value}?isAsc=${isAsc.value}&orderByColumn=createTime&pageSize=9999&pageNum=${filePageNum.value}`
- documents.getALLdocumentByType({
- parentId: newDirId.value - 0,
- spaceId: newSpaceId.value - 0,
- isAsc: isAsc.value,
- orderByColumn: "createTime"
- },2).then(res => {
- folderList.value = res.rows
- if (res.rows.length === 0) {
- myfile.getById(query).then(res => {
- if (res.code === 200) {
- tableTotal.value =res.total
- if(res.rows.length<res.total){
- //第一次拿到的数据少于总数开启下拉事件
- tableBeEnd.value = false
- }
- fileList.value = res.rows
- }
- })
- } else {
- myfile.getById(query).then(res => {
- console.log('folerFile',res);
- if (res.code === 200) {
- tableTotal.value =res.total
- if(res.rows.length<res.total){
- //第一次拿到的数据少于总数开启下拉事件
- tableBeEnd.value = false
- }
- fileList.value = JSON.parse(JSON.stringify(res.rows))
- // console.log('fileList',toRaw(fileList.value));
- }
- })
- }
- })
- setTimeout(() => {
- sessionStorage.setItem('folderArr','')
- }, 1500);
- }
- // 左边树节点每行点击事件
- function listfolderClick(row,firstData) {
- if(row){
- thisFolder.value = row
- }
- row = row?row:thisFolder.value
-
- if (row.isEncrypt === "Y") {
- getLeveldetailFn(row.encryptLevel)
- } else {
- thisFolderRole.value = null
- }
- console.log('row',row);
- console.log('rowthisFolderRole',thisFolderRole.value);
- newDirId.value = row.dirId
- newSpaceId.value = row.spaceId
- const query = `${newDirId.value}?isAsc=${isAsc.value}&orderByColumn=createTime&pageSize=9999&pageNum=1`
- documents.getALLdocumentByType({
- parentId: newDirId.value - 0,
- spaceId: newSpaceId.value - 0,
- isAsc: isAsc.value,
- orderByColumn: "createTime"
- }, 2).then(res => {
- folderList.value = res.rows
- if (res.rows.length === 0) {
- myfile.getById(query).then(res => {
- // console.log('res = ',res);
- if (res.code === 200) {
- tableTotal.value = res.total
- if (res.rows.length < res.total) {
- //第一次拿到的数据少于总数开启下拉事件
- tableBeEnd.value = false
- }
- fileList.value = JSON.parse(JSON.stringify(res.rows))
- }
- // console.log('folderClickshijian1',tableTotal.value,tableBeEnd.value);
- })
- } else {
- myfile.getById(query).then(res => {
- if (res.code === 200) {
- tableTotal.value = res.total
- if (res.rows.length < res.total) {
- //第一次拿到的数据少于总数开启下拉事件
- tableBeEnd.value = false
- }
- fileList.value = JSON.parse(JSON.stringify(res.rows))
- }
- // console.log('fileList',fileList.value);
- })
- }
- })
- }
- // 确认文件重命名
- function sureChangeName() {
- myfile.editNewMenu({
- dirId: copyDirId.value - 0,
- docId: clickRowId.value - 0,
- fileId: copyFileId.value,
- fileName: nameForm.value.name,
- fileSize: copyFileSize.value - 0,
- fileType: copyFileType.value,
- remark: '',
- spaceId: copySpaceId.value - 0,
- }).then(res => {
- if (res.code === 200) {
- ElMessage({
- message: "重命名成功",
- type: "success"
- })
- upFileData({
- docId:clickRowId.value - 0,
- fileName:nameForm.value.name
- })
- fileNameChange.value = false
- refreshFile()
- }
- })
- }
- // 判断id
- function isId() {
- if (directoryId.value === '') {
- directoryId.value = 0
- getAllTop()
- }
- if (folderId.value === '') {
- folderId.value = 0
- getAllTop()
- }
- }
- //关闭图片预览事件
- const closeImgPreview = () => {
- // console.log('close');
- showPreview.value = false
- }
- function getChildren(data) {
- fileTrees.value = data
- refreshFile()
- }
- function getCback(data) {
- thanks.value = data
- }
- function getChildrenC(data) {
- folderCase.value = data
- }
- function getCollects(data) {
- collects.value = data
- }
- function getRename(data) {
- rename.value = data
- }
- function getSpaceC(data) {
- spaces.value = data
- }
- function navBack(data, name) {
- nameForm.value.name = name
- fileNameChange.value = data
- }
- function onlineCase(data, uid, row) {
- editOnline.value = data
- clickRowId.value = uid
- copyRow = row
- }
- function shareBack(data, num) {
- thanks.value = data
- workOrEdit.value = num
- }
- function showFile(data, e, a) {
- editOnline.value = data
- clickRowId.value = e
- copyRow = a
- }
- function folderBack(dir, spa, nam) {
- selectedBox.value = dir
- copyFolderName.value = nam
- copyFileName.value = spa
- }
- //历史版本
- const forwardTreeData = reactive({ data: {} });
- const historycopyRow = ref({})
- function changeMsgClose(val, item) {
- if (val) {
- historycopyRow.value = item
- editOnline.value = false
- cliCC.value = false
- historyPrew.value = true
- }
- openForwardFile.value = val
- }
- function lastBB(data, row, num) {
- openForwardFile.value = data
- historyTotal.value = row
- fileUserTreeData.data = num
- }
- //对mouseCli数组进行筛选,实现菜单的区分显示
- const filterMouseCli = () => {
- const canPreviewArray = ['.doc','.dps','.et','.wps', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.pdf', '.rtf', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.pot', '.potm', '.potx', '.pps', '.ppsm', '.ppsx', '.ppt', '.pptm', '.pptx']
- const typeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG', '.mp3', '.mp4']
- const imgTypeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG','.webg']
- const canEditArr = ['.doc', '.dps','.et','.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp','.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.pptx','.pdf','.PDF']
- let arr = []
- //如果带有(重命名)-前缀 只允许进行重命名操作
- const regExp = /^\(重命名\)-/
- if(regExp.test(clickRow.value.fileName)){
- return arr = mouseCli.value.filter(item => item.name === "重命名")
- }
- if (!(typeArr.includes(copyFileType.value) || canPreviewArray.includes(copyFileType.value))) {
- arr = mouseCli.value.filter(item => item.name !== "打开")
- } else {
- arr = toRaw(mouseCli.value)
- }
- if (!canEditArr.includes(copyFileType.value)) {
- arr = arr.filter(item => item.name !== "在线编辑" && item.name !== "协作" && item.name !== "历史版本")
- }
- if (!imgTypeArr.includes(copyFileType.value)) {
- arr = arr.filter(item => item.name !== "文字识别")
- }
- // console.log('thisFolderRole',thisFolderRole.value);
- if(thisFolderRole.value?.roles){
- // 加密登记
- // console.log('thisFolderRole',thisFolderRole.value);
- arr = rightMenuRole(toRaw(thisFolderRole.value),arr)
- }
- // console.log('thisRole.value',thisRole.value);
- if(thisRole.value.length){
- //权限
- arr = publicRightMenuRole(toRaw(thisRole.value),arr)
- }
- if(thisFolder.value.dirType == '1' && !isDept.value){
- arr = ordinaryFolder.value
- }
- if(arr.length<1){
- noMenuItem.value = true
- }else{
- noMenuItem.value = false
- }
- console.log('filterArr',arr);
- return arr
- }
- function mouseClick() {
- // console.log(1);
- if (cliCC.value) {
- cliCC.value = false
- }
- if (anyP) {
- anyP.value = false
- }
- }
- // 文件夹右键事件
- const folderRClick = (row, col, e) => {
- e.preventDefault();
- e.stopPropagation();
- // thisFolder.value = '' //先清空
- let thisRow = toRaw(row)
- // console.log('thisFolder',thisFolder.value);
- clickRow.value = thisRow
- copyFolderName.value = row.dirName
- // 唤出右键菜单,思路:获取鼠标位置来定位菜单
- folderVisible.value = true;
- foldertop.value = e.pageY;
- folderleft.value = e.pageX;
- };
- // 关闭文件夹右键菜单
- const closeRMenu = () => {
- // console.log("close");
- folderVisible.value = false;
- };
- // 关闭tree右键菜单
- const closeTreeRMenu = () => {
- // console.log("close");
- showTreeMenu.value = false;
- };
- // 文件夹收藏事件
- const collectFolder = () => {
- if(clickRow.value.isFavorite === "Y"){
- return ElMessage({
- type: "error",
- message: "请勿重复收藏"
- })
- }
- isFolder.value = 'Y'
- // clickRow.value = thisFolder.value
- // thisFolder.value = ''
- copyFileName.value = clickRow.value.dirName
- collects.value = true
- }
- // 左箭头事件
- const arrowLift =async () => {
- // router.go(-1)
- // console.log(1);
- topPath.value = backFolder.value.dirPath
- // console.log('topPath',toRaw(topPath.value));
- newDirId.value = backFolder.value.parentId
- newSpaceId.value = backFolder.value.spaceId
- documents.getALLdocumentByType({
- parentId: newDirId.value - 0,
- spaceId: newSpaceId.value - 0
- },2).then(res => {
- folderList.value = res.rows
- if (res.rows.length === 0) {
- myfile.getById(newDirId.value).then(res => {
- if (res.code === 200) {
- fileList.value = res.rows
- }
- })
- } else {
- myfile.getById(newDirId.value).then(res => {
- if (res.code === 200) {
- fileList.value = JSON.parse(JSON.stringify(res.rows))
- // console.log('fileList',toRaw(fileList.value));
- }
- })
- }
- })
-
- }
- // 归档
- function goLock() {
- fileCount.lockActor(clickRowId.value).then(res => {
- if (res.code === 200) {
- ElMessage({
- type: "success",
- message: "归档成功"
- })
- cliCC.value = false
- anyP.value = false
- }
- })
- }
- function formatFileSize(fileSize) {
- if (fileSize >= 1024 * 1024 * 1024) {
- // 大于等于1GB,显示GB
- return (fileSize / (1024 * 1024 * 1024)).toFixed(2) + 'GB';
- } else if (fileSize >= 1024 * 1024) {
- // 大于等于1MB,显示MB
- return (fileSize / (1024 * 1024)).toFixed(2) + 'MB';
- } else if (fileSize >= 1024) {
- // 大于等于1KB,显示KB
- return (fileSize / 1024).toFixed(2) + 'KB';
- } else {
- // 小于1KB,显示字节
- return fileSize + 'B';
- }
- }
- function formatStorage(sizeInGB) {
- if(sizeInGB<=0) return "0KB"
- if (sizeInGB >= 1) {
- return sizeInGB.toFixed(2) + 'GB';
- } else {
- const sizeInMB = sizeInGB * 1024;
- if (sizeInMB >= 1) {
- return sizeInMB.toFixed(2) + 'MB';
- } else {
- const sizeInKB = sizeInMB * 1024;
- return sizeInKB.toFixed(2) + 'KB';
- }
- }
- }
- //刷新
- const refreshFile = (left,edit)=>{
- // console.log('ref',toRaw(thisFolder.value));
- if(left){
- leftNewFile.value = true
- }
- if(edit){
- getFirstFolder()
- }
- if (toRaw(thisFolder.value)?.dirId && !leftNewFile.value && leftShowList.value === 2 ) {//如果点开了文件夹
- folderClick()
- } else if(toRaw(thisFolder.value)?.dirId && !leftNewFile.value && leftShowList.value === 1){
- listfolderClick()
- }else {
- getAllTop()
- }
- getSpaceList()
- }
- //star收藏事件
- const collectByStar = (row,isfolder)=>{
- // console.log('row',row);
- if(isfolder){
- let thisRow = toRaw(row)
- isFolder.value = 'Y'
- clickRow.value = thisRow
- copyFolderName.value = row.dirName
- copyFileName.value = clickRow.value.dirName
- }else{
- isFolder.value = "N"
- clickRow.value = row
- copyRow.value = row
- clickRowId.value = row.docId
- copyDirId.value = row.dirId
- copyFileName.value = row.fileName
- }
-
- collects.value = true
- }
- const backTopPath = ()=>{
- // pathLabelData.value = ([])
- // getAllTop()
- const addData = {
- path: '/department',
- label: '部门文件'
- }
- clickPath(null,addData)
- }
- // 取消文件收藏
- const delCollect = async (row,isfolder)=>{
- const thisRow = toRaw(row)
- console.log('thisRow',thisRow);
- let query = {}
- if(isfolder){
- query = {
- isFolder:"Y",
- relaId:thisRow.dirId
- }
- }else{
- query = {
- isFolder:"N",
- relaId:thisRow.docId
- }
- }
- const res = await delFavorite(query)
- //TODO 之后需要重新获取数据 并message提示
- console.log('res',res);
- refreshFile()
- }
- //获取安全图标
- const getLevelImg = (level)=>{
- switch (level) {
- case "L1":
- return level1;
- break;
- case "L2":
- return level2;
- break;
- case "L3":
- return level3;
- break;
- case "L4":
- return level4;
- break;
- return level1;
- break;
- }
- }
- const getLevelList = async ()=>{
- console.log('levelList');
- const res = await getLevel()
- if(res.rows){
- levelList.value = res.rows.map(item=>{
- return {
- levelCode:item.levelCode,
- levelName:item.levelName
- }
- })
- console.log('levelList',levelList.value);
- }
- }
- const setImg = (type)=>{
- return setIcon(type)
- }
- const setTablelevel = (level)=>{
- const thisItem = levelList.value.find(item=>item.levelCode == level)
- if(thisItem){
- return thisItem.levelName
- }else{
- return '未加密'
- }
- }
- //获取权限详情
- const getLeveldetailFn =async (data)=>{
- const res = await getLeveldetail(data)
- // console.log('getLeveldetailFn',res);
- if(res.code === 200){
- thisFolderRole.value = res.data
- thisFolderRole.value.accessCode = thisFolder.value.accessCode
- }
- // console.log('thisFolderRole',thisFolderRole.value);
- }
- const closeIptPass = ()=>{
- showInputPassword.value = false
- }
- //输入验证密码后
- const surePass = (pass)=>{
- const passwordCookies = Cookies.get("pass");
- // const oldPass = decrypt(passwordCookies)
- // console.log('pass',pass);
- // console.log('oldPass',oldPass);
- // console.log('clickRow',clickRow);
- showInputPassword.value = false
- if(pass === passwordCookies){
- const passArr = localStorage.getItem('passArr');
- // console.log('passArr',passArr);
- if(!passArr){
- const newArr = []
- newArr.push(clickRow.value.docId)
- localStorage.setItem('passArr',JSON.stringify(newArr))
- }else{
- const passArrObj = JSON.parse(passArr)
- passArrObj.push(clickRow.value.docId)
- localStorage.setItem('passArr',JSON.stringify(passArrObj))
- }
- // 设置销毁
- setTimeout(()=>{
- const passArr = localStorage.getItem('passArr');
- const passArrObj = JSON.parse(passArr)
- console.log('```passArrObj',passArrObj);
- const newArr = passArrObj.filter(item=>item != clickRow.value.docId)
- console.log('```newArr',newArr);
- localStorage.setItem('passArr',JSON.stringify(newArr))
- },1000*30)
- chooseSet(chooseRow.value,null,chooseNum.value)
- }else{
- ElMessage({ message: "验证失败", type: "error" })
- }
- }
- //输入私有码后
- const sureCode =async (pass) => {
- console.log('pass',pass);
- // console.log('oldPass',passwordCookies);
- // console.log('clickRow',clickRow);
- const query={
- code:pass,
- dirId:thisFolder.value.dirId
- }
- const res = await documents.matches(query)
- console.log('res',res);
- showInputPassword.value = false
- if (res.data) {
- const codeArr = localStorage.getItem('codeArr');
- // console.log('passArr',passArr);
- if (!codeArr) {
- const newArr = []
- newArr.push(clickRow.value.docId)
- localStorage.setItem('codeArr', JSON.stringify(newArr))
- } else {
- const codeArrObj = JSON.parse(codeArr)
- codeArrObj.push(clickRow.value.docId)
- localStorage.setItem('codeArr', JSON.stringify(codeArrObj))
- }
- // 设置销毁
- setTimeout(() => {
- const codeArr = localStorage.getItem('codeArr');
- const codeArrObj = JSON.parse(codeArr)
- // console.log('```passArrObj',passArrObj);
- const newArr = codeArrObj.filter(item => item != clickRow.value.docId)
- // console.log('```newArr',newArr);
- localStorage.setItem('codeArr', JSON.stringify(newArr))
- }, 1000 * 30)
- chooseSet(chooseRow.value, null, chooseNum.value)
- } else {
- ElMessage({ message: "验证失败", type: "error" })
- }
- }
- const downLoadfile = ()=>{
- myfile.fileDown(clickRow.value.docId).then(res=>{
- var reader = new FileReader();
- reader.onloadend = function(event){
- //event 就是你要的返回内容
- //因为返回的报错格式是字符串,手动转换成对象,转换成功表示请求失败
- //转换失败就意味着你拿到的result是文件流,那么直接手动下载就好
- try{
- let data = JSON.parse(event.target.result)
- }catch(err){
- const link = document.createElement('a'); // 创建a标签
- let blob = new Blob([res]);
- link.style.display = 'none';
- link.href = URL.createObjectURL(blob); // 创建下载的链接
- link.setAttribute('download', clickRow.value.fileName+clickRow.value.fileType); // 给下载后的文件命名
- document.body.appendChild(link);
- link.click(); // 点击下载
- document.body.removeChild(link); // 完成移除元素
- window.URL.revokeObjectURL(link.href); // 释放blob对象
- }
- };
- reader.readAsText(res);
- })
- }
- // 触底加载事件
- const setScroll =async ()=>{
- if(tableBeEnd.value)return
- console.log('setScroll','到底喽');
- // console.log('tableBeEnd.value',tableBeEnd.value);
- filePageNum.value = filePageNum.value+1
- const query = `${thisFolder.value.dirId}?pageSize=9999&pageNum=${filePageNum.value}`
- // -------------先禁止掉事件 定时器1秒钟后才能再次触发
- tableBeEnd.value = true
-
- // --------------------
- const res = await myfile.getById(query)
- console.log('setScrollres',res);
- if (res.code === 200) {
- // const newarr = res.rows.concat(toRaw(fileList.value))
- const newarr = toRaw(fileList.value).concat(res.rows)
- console.log('newarr',newarr);
- fileList.value = JSON.parse(JSON.stringify(newarr))
- if(newarr.length < tableTotal.value){
- //获取后的数量<total就可以再次获取
- setTimeout(()=>{
- tableBeEnd.value = false
- },1000)
- }
- }
- // console.log('query',query);
- // console.log('fileList',fileList.value);
- }
- // 获取用户信息
- const getUserInfo =async ()=>{
- const userStore = useUserStore();
- const userId = toRaw(userStore.roles)
- if(userId.some(item=>item == 'dept')){
- isDept.value = true
- }else{
- isDept.value = false
- }
- // console.log('isDept',isDept.value);
- }
- //修改文件夹权限
- const upFirstFoler =async (item)=>{
- oneOrTwo.value = item?1:0
- // console.log('upFirstFoler',item);
- item = item || clickRow.value
- const res = await myfile.getDir(item.dirId)
- console.log('upFirstFolerres = ',res);
- upFolderData.value = toRaw(res.data)
- folderCase.value = true
- }
- const upBefore = (file,files)=>{
- // console.log('file',file.size);
- const maxSize = (maxFileSize.value-0)*1024*1024
- // console.log('maxSize',maxSize);
- if(file.size>maxSize){
- files.pop()
- ElMessage({ message: file.name+'上传失败,上传文件大小最大为'+maxFileSize.value+'M', type: 'error' })
- }else{
- fileBig.value = file.size + fileBig.value
- // fileArr.value.push(file.raw)
- }
- }
- //获取扫描仪列表
- const scannerFile =async ()=>{
- const res = await selectInfo()
- scannerList.value = res.rows
- checkScanner.value = true
- checkScanId.value = null
- // console.log('scanner',res);
- }
- // 选择扫描仪
- const checkScanFn = (item)=>{
- checkScanId.value = item.scannerId
- }
- // 确认选择扫描仪 获取扫描仪下文件列表
- const sureScaner =async ()=>{
- if(!checkScanId.value) return
- const res = await getFileByScanerId(checkScanId.value)
- console.log('sureScanerres',res);
- scannerFiles.value = res.data
- checkScanner.value = false
- openScan.value = true
- }
- // 关闭窗口
- const closeCheckScanner = ()=>{
- checkScanner.value = false
- }
- // 移动到事件
- const saveScanFile = (arr)=>{
- console.log('arr',arr);
- openScan.value = false
- scanFileArr.value = arr
- openScanMove.value = true
- }
- // 关闭窗口
- const closeOpenScanMove = ()=>{
- openScanMove.value = false
- refreshFile()
- }
- const changeLeftShow = ()=>{
- leftShowList.value = leftShowList.value == 1?2:1
- if(leftShowList.value == 2){
- getFirstFolder()
- fileList.value = []
- }else{
- refreshFile()
- }
- thisFolder.value = {}
- localStorage.setItem('leftShowList',leftShowList.value)
- if(leftShowList.value === 1){
- console.log('toList');
- // 创建标签
- const addData = {
- path: '/department',
- label: '部门文件'
- }
- clickPath(null,addData)
- }
- }
- // 别处过来需要层层打开的文件夹
- const openFolderPath = ()=>{
- const FolderStr = sessionStorage.getItem('folderArr')
- let foldersArr
- if(FolderStr){
- foldersArr = JSON.parse(FolderStr)
- }else{
- return
- }
- const oldLabelData = []
- foldersArr.forEach((item,index)=>{
- if(index<foldersArr.length - 1){
- oldLabelData.push({
- name:item.dirName,
- dirId:item.dirId
- })
- }
- })
- pathLabelData.value = JSON.parse(JSON.stringify(oldLabelData))
- // 打开文件夹
- folderClick(foldersArr[foldersArr.length - 1])
- // sessionStorage.setItem('folderArr','')
- // console.log('pathLabelData',pathLabelData.value);
- }
- const delFolderMenu = ()=>{
- documents.delDocument(clickRow.value.dirId).then(res => {
- if (res.code === 200) {
- ElMessage({
- message: "删除成功",
- type: "success"
- })
- if(!thisFolder.value?.dirId){
- delFolderDataFn(clickRow.value)
- }
- // getAllTop()
- refreshFile()
- } else {
- ElMessage({
- message: "删除失败,目录应不为空",
- type: "error"
- })
- }
- })
- }
- watch(() => folder.value, async(newValue, oldValue) => {
- // console.log('iFrameData 发生改变了', newValue, oldValue);
- console.log('files',newValue);
- filePageNum.value = 1
- if(!newValue.length){
- fileHeight.value = '75vh'
- if(!thisFolder.value.dirId)return
- if(fileGrid.value == 0){
- pageSize.value = 20
- }else{
- pageSize.value = 80
- }
- const query = `${thisFolder.value.dirId}?pageSize=9999&pageNum=${filePageNum.value}`
- const res = await myfile.getById(query)
- // console.log('filessetScrollres',res);
- if (res.code === 200) {
- // const newarr = res.rows.concat(toRaw(fileList.value))
- const newarr = res.rows
- console.log('newarr',newarr);
- fileList.value = JSON.parse(JSON.stringify(newarr))
- if(newarr.length < tableTotal.value){
- //获取后的数量<total就可以再次获取
- setTimeout(()=>{
- tableBeEnd.value = false
- },1000)
- }
- }
- }else{
- if(fileGrid.value == 0){
- pageSize.value = 10
- }else{
- pageSize.value = 50
- }
- fileHeight.value = '38vh'
- if(!thisFolder.value.dirId)return
- const query = `${thisFolder.value.dirId}?pageSize=9999&pageNum=${filePageNum.value}`
- const res = await myfile.getById(query)
- // console.log('filessetScrollres',res);
- if (res.code === 200) {
- // const newarr = res.rows.concat(toRaw(fileList.value))
- const newarr = res.rows
- console.log('newarr',newarr);
- fileList.value = JSON.parse(JSON.stringify(newarr))
- if(newarr.length < tableTotal.value){
- //获取后的数量<total就可以再次获取
- setTimeout(()=>{
- tableBeEnd.value = false
- },1000)
- }
- }
- }
- });
- onMounted(() => {
- const hasMsg = localStorage.getItem('leftShowList')
- if(!hasMsg){
- getConfigKey("dir.style.config").then(response => {
- leftShowList.value = response.msg - 0;
- console.log('leftShowList == ',leftShowList.value);
- });
- }else{
- leftShowList.value = hasMsg - 0
- }
- getAllTop()
- getSpaceList()
- getUserInfo()
- getLevelList()
- getConfigKey("file.size.limit").then(response => {
- // console.log('response',response);
- maxFileSize.value = response.msg
- });
- openFolderPath()
- // 添加监听,点击其他地方关闭文件夹右键菜单
- window.addEventListener("click", closeRMenu, true);
- window.addEventListener("mousewheel", mouseClick, true);
- window.addEventListener("click", mouseClick, true);
- window.addEventListener("click", closeTreeRMenu, true);
- })
- onActivated(()=>{
- // console.log('onActivated.query',route.query);
- loadingPreview.value = true
- //给pagesize复制
- if(fileGrid.value == 0){
- pageSize.value = 20
- }else{
- if(!folder.value.length){
- pageSize.value = 80
- }else{
- pageSize.value = 30+pageSize.value
- }
- }
- setTimeout(()=>{
- if(route.query.clickRowId){
- const newRow = JSON.parse(route.query.clickRowId)
- // console.log('newRow',newRow);
- myfile.getDir(newRow).then(res=>{
- // console.log('tores',res);
- thisFolder.value = res.data
- // 这里点的是一级目录 所以重新给pathLabelData赋值
- const labelItem = {
- name:res.data.dirName,
- dirId:res.data.dirId
- }
- pathLabelData.value = [labelItem]
- openFolderPath()
- refreshFile()
- })
- }
- const hasMsg = localStorage.getItem('leftShowList')
- if(!hasMsg){
- getConfigKey("dir.style.config").then(response => {
- leftShowList.value = response.msg - 0;
- console.log('leftShowList == ',leftShowList.value);
- });
- }else{
- leftShowList.value = hasMsg - 0
- }
- loadingPreview.value = false
- },500)
- })
- // 监听路由变化
- // onBeforeRouteUpdate((to,from)=>{
- // console.log('to',to);
- // console.log('from',from);
- // if(to.name == 'department'){
- // loadingPreview.value = true
- // const thisdirId = to.params.dirId
- // console.log('thisdirId',thisdirId);
- // setTimeout(()=>{
- // if(thisdirId){
- // myfile.getDir(thisdirId).then(res=>{
- // console.log('tores',res);
- // thisFolder.value = res.data
- // refreshFile()
- // })
- // }
- // loadingPreview.value = false
- // },500)
- // }
- // // docId = to.query.clickRowId
- // // console.log(docId, "doc");
- // // console.log(copyRow, "row");
- // // edit();
- // })
- return {
- getSpaceList,
- folderList,//文件夹的数据
- fileList,//文件夹的数据
- searchFire,//搜索文件的model
- changeFile,//切换右侧视图的file
- menuList,//右侧切换
- selectedIndex,//当前选中下标
- shotdown,//筛选出当前数据
- useMenu,
- arrorMenu,
- blueLeft,//返回
- ordinaryList,
- ordinary,
- fileStyle,
- fileBox,
- grayRight,//前进
- squre,//视图切换
- sort,//排序
- folder,
- files,
- handleRowClick,
- askApply,//申请扩容
- cliCC,
- mouseCli,//文件点击弹框
- chooseSet,
- trandata,
- tranvalue,
- anyP,
- chooseSet1,
- fileMenu,
- createNewMenu,
- // delBoser,
- clickRowId,
- createNewFile,
- // fileUpload,
- getImage,//筛选文件类型
- handleSelectionChange,
- handleSelectionChange1,
- selectedBox,//重命名相关
- restName,//重命名相关
- getMenu,
- folderId,
- fileId,
- // getAllMiddle,//拿到所有空间信息
- delName,//删除空间信息
- useSpace,//使用空间
- allSpace,//总空间
- percent,
- arrowClick,
- uploadModal,
- sureUpload,
- onSuccess,
- fileArr,
- directoryId,
- folderClick,
- copyDirId,//复制移动需要的↓
- copyDocId,
- copySpaceId,
- copyFileId,
- copyFileName,
- copyFileSize,
- copyFileType,
- sureChangeName,//文件重命名
- fileNameChange,//文件重命名模态框
- nameForm,
- collectImg,//收藏小星星
- sortNum,
- needBag,
- isId,
- editOnline,//在线编辑
- copyParentId,
- copyRow,
- getAllTop,
- newDirId,
- newSpaceId,
- showPreview,//控制图片预览
- closeImgPreview,//关闭预览事件
- previewData,//预览文件数据
- router,
- fileTrees,
- getChildren,//子传父
- copyOrMove,
- impDirId,
- impNum,
- leftNewFile,
- impSpaceId,
- //历史版本=========
- openForwardFile,
- forwardTreeData,
- fileUserTreeData,
- filterMouseCli,
- changeMsgClose,
- historyPrew,
- historycopyRow,
- thanks,
- getCback,
- mouseClick,
- folderVisible,
- foldertop,
- folderleft,
- thisFolder,
- folderRClick,
- closeRMenu,
- cancleHistoryPrew,
- historyTotal,
- //历史版本=========
- fileUserTreeData,
- thanks,
- getCback,
- mouseClick,
- workOrEdit,
- folderCase,//新建文件夹传值
- getChildrenC,
- oneOrTwo,//父传子判断
- folderCheckout,
- fileCheckout,
- haveCheck,
- onlyView,
- goLock,
- collects,//收藏父传子
- getCollects,//收藏子传父
- folderTotal,
- fileTotal,
- delMoreFile,//删除多个文件夹
- topPath,
- xz,//文件右键菜单left
- yz,//文件右键菜单top
- formatFileSize,
- isFolder,
- clickRow,
- rename,
- getRename,//文件夹重命名子传父
- copyFolderName,
- spaces,//空间扩容父传子
- getSpaceC,//空间扩容子传父
- copySpaceCup,
- fileGrid,
- folderGrid,
- collectFolder,
- arrowLift,
- formatStorage,
- showFile,
- navBack,
- onlineCase,
- lastBB,
- shareBack,
- folderBack,
- refreshFile,
- delCollect,
- backFolder,
- collectByStar,
- getLevelImg,
- level1,
- level2,
- level3,
- level4,
- getLeveldetailFn,
- thisFolderRole,
- showInputPassword,
- closeIptPass,
- surePass,
- chooseRow,
- chooseNum,
- loadingPreview,
- thisRole,
- noMenuItem,
- downLoadfile,
- addTab,
- addFileTab,
- addFolderAdd,
- ordinaryFolder,
- filePageNum,
- setScroll,
- tableBeEnd,
- tableTotal,
- spaceName,
- getUserInfo,
- isDept,
- upFirstFoler,
- //控制宫格展示
- changeShow,
- isList,
- upFolderData,
- setTablelevel,
- levelList,
- getLevelList,
- closeUpload,
- handleRemove,
- loadingUpload,
- fileBlur,
- pathLabelData,
- backTopPath,
- maxFileSize,
- upBefore,
- getFirstFolder,
- openScan,
- closeOpen,
- scannerFile,
- scannerList,
- checkScanner,
- checkScanId,
- checkScanFn,
- closeCheckScanner,
- sureScaner,
- scannerFiles,
- saveScanFile,
- openScanMove,
- closeOpenScanMove,
- scanFileArr,
- setImg,
- fileHeight,
- pageSize,
- delMoreFolder,
- inputTitle,
- isCode,
- sureCode,
- upFileData,
- fileBig,
- isAsc,
- changeSort,
- clickPath,
- leftShowList,
- changeLeftShow,
- listfolderClick,
- ListtreeData,
- getFileTree,
- searchFolderTree,
- treeRClick,
- showTreeMenu,
- closeTreeRMenu,
- delFolder,
- changeListSort,
- folderBlur,
- delFolderDataFn,
- openFolderPath,
- delFolderMenu,
- noEdit,
- delFileFn
- }
- },
- watch: {
- },
- components: {
- BreadMenu,
- FileEdit,
- ImgPreview,
- FileTree,
- historyList,
- TransferModal,
- CreateFloder,
- FileCollect,
- FolderReName,
- SpaceBig,
- PlaceGridFolder,
- PalaceGridFile,
- inputPassword,
- PathLabel,
- ScanFile,
- MoveTo,
- LeftList,
- ListShow,
- TreeMenu
- },
- }
- </script>
- <style lang="scss" scoped>
- @import "@/assets/styles/my-common.scss";
- .lodingBox{
- position:absolute;
- top: 0;
- left: 0;
- width: 100vh;
- height: 100vh;
- z-index: 10000000;
- }
- p {
- margin: 0;
- padding: 0;
- }
- .bigBox {
- width: 100%;
- height: 88vh;
- display: flex;
- justify-content: flex-start;
- overflow: hidden;
- }
- .settingBox {
- width: 25vw;
- height: 92vh;
- // border: 1px solid black;
- border-radius: 4px;
- /* margin: 5px 5px; */
- margin-right: 8px;
- background-color: white;
- }
- .topSearch {
- width: 100%;
- height: 48px;
- background-color: #EBEFF6;
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding-left: 16px;
- padding-right: 16px;
- }
- .searchFire {
- // width: 248px;
- width: 100%;
- height: 32px;
- }
- .searchBox{
- display: flex;
- justify-content: space-between;
- align-items: center;
- position: relative;
- padding: 8px 16px;
- .SearchIcon {
- color: gray;
- position: absolute;
- right: calc(5% + 34px);
- top: 35%;
- }
- .left_changeShow{
- margin-left: 10px;
- width: 24px;
- height: 24px;
- img{
- width: 24px;
- height: 24px;
- }
- }
- }
- .setBox {
- width: 88px;
- height: 112px;
- text-align: center;
- margin-left: 5px;
- margin-top: 5px;
- position: relative;
- .left_fileBox{
- position: relative;
- margin-top: 10px;
- .levelImg{
- width: 32px;
- height: 32px;
- position: absolute;
- right: 5%;
- bottom: 20%;
- }
- }
- }
- .setBox:hover {
- background-color: #EEF9FF;
- }
- .setBox:hover .selectChe {
- background-color: #EEF9FF;
- display: block;
- z-index: 1000;
- }
- .selectChe {
- display: none;
- width: 20px;
- height: 20px;
- background: rgba(255, 255, 255, 0.7);
- border-radius: 4px 4px 4px 4px;
- position: absolute;
- top: 2px;
- right: 2px;
- line-height: 10px;
- }
- .mesBox {
- width: 75vw;
- height: 88vh;
- border-radius: 4px;
- background-color: white;
- }
- .checkScan{
- background-color: #eee;
- }
- .useBox {
- width: 100%;
- height: 24px;
- }
- .tables {
- display: inline-block;
- width: 112px;
- height: 22px;
- border-radius: 4px;
- line-height: 21px;
- text-align: center;
- font-size: 12px;
- margin-left: 5px;
- position: relative;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- .tableLis {
- display: inline-block;
- width: 112px;
- height: 22px;
- border-radius: 4px;
- background-color: #EBEFF6;
- line-height: 21px;
- text-align: center;
- font-size: 12px;
- margin-left: 5px;
- position: relative;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- max-width: auto;
- }
- .manyUse {
- width: 100%;
- height: 48px;
- /* background-color: gray; */
- line-height: 48px;
- display: flex;
- justify-content:space-between;
- align-items: center;
- .useMenu{
- height: 100%;
- display: flex;
- align-items: center;
- line-height: 48px;
- }
- .tip{
- display: flex;
- align-items: center;
- margin-right: 24px;
- color: #2E6BC8;
- font-size: 14px;
- }
- }
- .el-dropdown-link {
- color: white;
- cursor: pointer;
- }
- .breadBox {
- width: 100%;
- height: 24px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- background-color: #F6F7F9;
- .topPath {
- display: flex;
- margin-left: 4px;
- align-items: center;
- cursor: pointer;
- color: #6F85B5;
- font-size: 12px;
- }
- }
- :deep(.el-collapse-item__header) {
- height: 24px !important;
- background-color: #EBEFF6 !important;
- }
- .detailBox {
- width: 100%;
- height: 50%;
- // overflow-y: auto;
- }
- .showBox{
- height: calc(100% - 48px - 24px);
- }
- :deep(.el-dialog__header) {
- background-color: #ECEFF7;
- margin-right: 0px;
- }
- :deep(.el-collapse-item__content) {
- // height: 235px;
- overflow-y: auto;
- padding-bottom: 0;
- }
- :deep(.el-scrollbar__wrap) {
- height: 100% !important;
- // overflow-y: auto;
- }
- .fileTable {
- height: 50%;
- // overflow-y: auto;
- // margin-top: 55px;
- }
- .setCli {
- width: 156px;
- max-height: auto;
- position: absolute;
- top: -70px;
- left: 300px;
- flex-wrap: 400;
- background-color: white;
- border: 1px solid gray;
- border-radius: 4px;
- z-index: 3;
- overflow-y: auto;
- // font-size: 16px;
- }
- .setCli1 {
- width: 156px;
- height: auto;
- position: absolute;
- background-color: white;
- border: 1px solid gray;
- border-radius: 4px;
- z-index: 100;
- overflow-y: auto;
- }
- .chooseSet {
- width: 140px;
- height: 30px;
- line-height: 30px;
- margin: 5px auto;
- font-size: 13px;
- cursor: pointer;
- // display: flex;
- // align-items: center;
- // position: relative;
- img {
- margin-right: 4px;
- vertical-align: middle;
- }
- }
- .hasLine{
- border-top: 1px solid #C1CCE3;
- }
- .btmLine{
- border-bottom: 1px solid #C1CCE3;
- }
- .chooseSet:hover {
- width: 140px;
- height: 30px;
- line-height: 30px;
- margin: 5px auto;
- font-size: 13px;
- background-color: #F5F7F9;
- /* color: white; */
- }
- :deep([data-v-69cdaa40] .el-collapse-item__header) {
- padding-left: 10px;
- }
- :deep(.el-collapse-item__content) {
- // height: 235px;
- overflow-y: auto;
- }
- .ellipsis-text {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- max-width: auto;
- }
- .right_menu {
- width: 156px;
- position: absolute;
- padding: 8px;
- box-shadow: 0px 2px 10px 1px rgba(199, 203, 216);
- border-radius: 4px 4px 4px 4px;
- border: 1px solid gray;
- background-color: #fff;
- z-index: 10000;
- .menu_item {
- width: 100%;
- height: 30px;
- border-radius: 4px 4px 4px 4px;
- line-height: 30px;
- display: flex;
- margin: 5px auto;
- align-items: center;
- font-size: 13px;
- &:hover {
- background-color: #f5f7f9;
- }
- span {
- margin-left: 4px;
- }
- }
- }
- // 扩容盒子
- .expansion{
- margin: 0 16px;
- border-top: 1px solid #C1CCE3 ;
- .top_box{
- margin-top: 16px;
- width: 100%;
- display: flex;
- justify-content: space-between;
- }
- }
- #Onescan{
- height: 48px;
- line-height: 48px;
- font-size: 14px;
- display: flex;
- align-items: center;
- }
- .isCheck {
- opacity: 1 !important;
- }
- :deep(.el-tag__content) {
- display: block;
- }
- :deep(.el-icon el-tag__close) {
- display: block;
- }
- :deep(.el-collapse-item__content) {
- height: 100%;
- border-bottom: none;
- }
- // 隐藏全选按钮
- .file-jia {
- :deep(.el-table th.el-table__cell:nth-child(1) .cell) {
- visibility: hidden;
- }
- }
- .file-title{
- color: #2E6BC8;
- margin-left: 3%;
- }
- ::v-deep .el-collapse-item__arrow {
- position: relative;
- color: #2e6bc8;
- right: 97%;
- }
- :deep(.el-collapse-item__header) {
- padding-left: 10px;
- box-sizing: border-box;
- }
- .palace-grid{
- margin-left: 4px;
- margin-right: 20px;
- }
- </style>
|