PageView.vue 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326
  1. <template>
  2. <div class="containe">
  3. <div class="top">
  4. <div class="left">
  5. <div class="left1">
  6. <div class="left-top">
  7. <h3>通知</h3>
  8. <p @click="leftMores">更多</p>
  9. </div>
  10. <ul class="left-main">
  11. <li v-for="item in notices" :key="item.id">
  12. <div class="one">通知标题:{{ item.msgTitle }}</div>
  13. <div class="two">发送时间:{{ item.createTime }}</div>
  14. <div>发<span class="three">送</span>人:{{ item.createBy }}</div>
  15. <div class="four">
  16. <p class="four1">通知内容:</p>
  17. <p class="four2" v-html="item.msgContent"></p>
  18. </div>
  19. <div class="five">
  20. <span @click="looks(item.msgContent)">查看详细</span>
  21. </div>
  22. </li>
  23. </ul>
  24. </div>
  25. </div>
  26. <div class="cen">
  27. <div class="cen—top">
  28. <el-select v-model="type" class="cen—top-left">
  29. <el-option value="1" label="公共文档">公共文档</el-option>
  30. <el-option value="2" label="部门文档">部门文档</el-option>
  31. <el-option value="3" label="个人文档">个人文档</el-option>
  32. </el-select>
  33. <div class="cen—top-right">
  34. <div class="cen—top-div">
  35. <el-input type="text" placeholder="请输入文档信息" v-model="input" class="searchs"
  36. @keyup.enter.native="jumpSearch"></el-input>
  37. <div class="cen—top-but" @click="jumpSearch">快速搜索</div>
  38. <img src="../../assets/img/ri:search-2-line@2x.png" class="cen—top-img" />
  39. </div>
  40. </div>
  41. </div>
  42. <div class="cen—bottom">
  43. <div class="one" @click="checkRouteAndNavigate('/home/doc/personal')" style="cursor: pointer;">
  44. <p>个人文档</p>
  45. <img src="../../assets/img/MMB1.png" alt="" />
  46. </div>
  47. <router-link :to="{ path: '/home/doc/dept' }" class="two">
  48. <p>部门文档</p>
  49. <img src="../../assets/img/MMB2.png" alt="" />
  50. </router-link>
  51. <router-link :to="{ path: '/home/doc/public' }" class="three">
  52. <p>公共文档</p>
  53. <img src="../../assets/img/MMB3.png" alt="" />
  54. </router-link>
  55. <router-link :to="{ path: '/home/setting/ocr' }" class="four">
  56. <p>文字识别</p>
  57. <img src="../../assets/img/MMB4.png" alt="" />
  58. </router-link>
  59. </div>
  60. </div>
  61. <div class="right">
  62. <div class="right1">
  63. <div class="right-top">
  64. <h3>消息</h3>
  65. <p @click="rightMores">更多</p>
  66. </div>
  67. <ul class="right-main">
  68. <li v-for="item in msg" :key="item.id">
  69. <div class="one">消息标题:{{ item.msgTitle }}</div>
  70. <div class="two">消息时间:{{ item.createTime }}</div>
  71. <div>发<span class="three">送</span>人:{{ item.createBy }}</div>
  72. <div class="four">
  73. <p class="four1">消息内容:</p>
  74. <p class="four2" v-html="item.msgContent"></p>
  75. </div>
  76. <div class="five">
  77. <span @click="looks(item.msgContent)">查看详细</span>
  78. </div>
  79. </li>
  80. </ul>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="bottom">
  85. <div class="left">
  86. <div class="left-top">
  87. <h3>最近收到的文件</h3>
  88. <p @click="mores">更多</p>
  89. </div>
  90. <el-table :data="tableData1" stripe style="width: 99%" class="left-main" height="calc(100vh * (230 / 1080))">
  91. <el-table-column prop="docName" label="文件名" width="180">
  92. </el-table-column>
  93. <el-table-column prop="user" label="发件人" width="120">
  94. </el-table-column>
  95. <el-table-column prop="createTime" label="收到时间" width="160">
  96. </el-table-column>
  97. <el-table-column prop="docType" label="文件类型" width="80">
  98. </el-table-column>
  99. <el-table-column prop="docLevel" label="文件级别" width="80" :formatter="fileLevelData">
  100. </el-table-column>
  101. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  102. <template slot-scope="scope">
  103. <el-button size="mini" type="text" icon="el-icon-view" @click="handlePreview(scope.row)">预览</el-button>
  104. </template>
  105. </el-table-column>
  106. </el-table>
  107. </div>
  108. <div class="right">
  109. <div class="right-top">
  110. <h3>最近发送的文件</h3>
  111. <p @click="mores2">更多</p>
  112. </div>
  113. <el-table :data="tableData2" stripe style="width: 99%" class="right-main" height="calc(100vh * (230 / 1080))">
  114. <el-table-column prop="docName" label="文件名" width="180">
  115. </el-table-column>
  116. <el-table-column prop="createTime" label="收到时间" width="180">
  117. </el-table-column>
  118. <el-table-column prop="docType" label="文件类型" width="120">
  119. </el-table-column>
  120. <el-table-column prop="docLevel" label="文件级别" width="80" :formatter="fileLevelData">
  121. </el-table-column>
  122. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  123. <template slot-scope="scope">
  124. <el-button size="mini" type="text" icon="el-icon-view" @click="handlePreview(scope.row)">预览</el-button>
  125. </template>
  126. </el-table-column>
  127. </el-table>
  128. </div>
  129. </div>
  130. <!-- 预览对话框 -->
  131. <div class="dhk" v-if="preview">
  132. <video :src="vid" controls v-if="vid1"></video>
  133. <audio :src="aud" controls v-if="aud1"></audio>
  134. <div class="image-container" v-if="img1">
  135. <el-image :src="imgg" ref="imageRef" style="max-width: 100%" @mousewheel.prevent="gunlun" />
  136. <el-button-group>
  137. <el-button icon="el-icon-refresh-left" @click="rotate(-90)" title="向左旋转"></el-button>
  138. <el-button icon="el-icon-refresh-right" @click="rotate(90)" title="向右旋转"></el-button>
  139. <el-button icon="el-icon-zoom-in" @click="scale(0.1)" title="放大"></el-button>
  140. <el-button icon="el-icon-zoom-out" @click="scale(-0.1)" title="缩小"></el-button>
  141. </el-button-group>
  142. </div>
  143. <el-button class="gb" icon="el-icon-close" circle @click="gb" />
  144. </div>
  145. <!-- 是否机密文件 -->
  146. <!-- <div class="jm" v-if="check">
  147. <el-form
  148. ref="loginForm"
  149. :model="loginForm"
  150. :rules="loginRules"
  151. label-width="100px"
  152. class="login-form"
  153. >
  154. <el-form-item label="用户名" prop="username">
  155. <el-input
  156. type="text"
  157. v-model="loginForm.username"
  158. autocomplete="off"
  159. ></el-input>
  160. </el-form-item>
  161. <el-form-item label="密码" prop="password">
  162. <el-input
  163. type="password"
  164. v-model="loginForm.password"
  165. autocomplete="off"
  166. ></el-input>
  167. </el-form-item>
  168. <el-form-item style="width: 100%">
  169. <el-button
  170. size="medium"
  171. type="primary"
  172. style="width: 30%"
  173. @click="submitForm"
  174. >
  175. 提交
  176. </el-button>
  177. </el-form-item>
  178. </el-form>
  179. <el-button
  180. class="gb1"
  181. icon="el-icon-close"
  182. size="small"
  183. circle
  184. @click="gb1"
  185. />
  186. </div> -->
  187. <!-- 查看详细 -->
  188. <el-dialog title="内容详细" :visible.sync="look1" width="30%" custom-class="el-dialog6">
  189. <div class="main" v-html="details"></div>
  190. <span slot="footer" class="dialog-footer1">
  191. <el-button type="primary" @click="look1 = false">确 定</el-button>
  192. <el-button @click="look1 = false">取 消</el-button>
  193. </span>
  194. </el-dialog>
  195. </div>
  196. </template>
  197. <script>
  198. import Cookies from "js-cookie";
  199. import store from "@/store";
  200. import "@/styles1/element-ui1.scss";
  201. import {
  202. listLevel
  203. } from "@/api/doc/level";
  204. import {
  205. officeType
  206. } from "@/api/doc/info";
  207. import {
  208. delShare1,
  209. delShare2,
  210. notice,
  211. msg
  212. } from "@/api/doc/share1";
  213. export default {
  214. data() {
  215. return {
  216. //文件等级数据
  217. levelOptions: [],
  218. //内容详细弹窗
  219. look1: false,
  220. //内容详细弹窗内容
  221. details: "",
  222. //中间通知列表
  223. notices: [],
  224. //中间消息列表
  225. msg: [],
  226. //搜索
  227. type: "1",
  228. input: "",
  229. //机密文件的账号密码内容
  230. // loginForm: {
  231. // username: "",
  232. // password: "",
  233. // },
  234. //机密文件的账号密码验证规则
  235. // loginRules: {
  236. // username: [
  237. // { required: true, trigger: "blur", message: "请输入您的用户名" },
  238. // ],
  239. // password: [
  240. // { required: true, trigger: "blur", message: "请输入您的密码" },
  241. // ],
  242. // },
  243. //底部左边表格数据
  244. tableData1: [],
  245. //底部右边表格数据
  246. tableData2: [],
  247. //预览图片的旋转
  248. scalePercentage: 1,
  249. //预览图片的缩放
  250. rotationAngle: 0,
  251. // 预览界面
  252. preview: false,
  253. // 机密界面
  254. // check: false,
  255. //视频路径和显示
  256. vid: "",
  257. vid1: false,
  258. //音频路径和显示
  259. aud: "",
  260. aud1: false,
  261. //图片路径和显示
  262. imgg: "",
  263. img1: false,
  264. // 临时保存当前点击行 row
  265. currentRow: {},
  266. };
  267. },
  268. mounted() {
  269. this.getList();
  270. this.noticesList();
  271. this.msgList();
  272. // this.loginForm.username = sessionStorage.getItem("name");
  273. },
  274. methods: {
  275. /**
  276. * 检查权限并导航到指定路由
  277. * @param {string} routePath - 目标路由路径
  278. */
  279. checkRouteAndNavigate(routePath) {
  280. if (this.checkRouteAccess(routePath)) {
  281. this.$router.push(routePath);
  282. }
  283. },
  284. /**
  285. * 检查路由访问权限
  286. * @param {string} routePath - 要检查的路由路径
  287. */
  288. checkRouteAccess(routePath) {
  289. // 获取用户角色
  290. const userRoles = store.getters.roles;
  291. // 定义角色对应的路由权限(根据你的实际业务调整)
  292. const rolePermissions = {
  293. admin: ['/home/doc/personal', '/home/doc/dept', '/home/doc/public', '/home/setting/ocr'],
  294. user: ['/home/doc/personal'],
  295. deptManager: ['/home/doc/personal', '/home/doc/dept']
  296. };
  297. // 检查当前用户的角色是否有访问该路由的权限
  298. const hasPermission = userRoles.some(role => {
  299. const permissions = rolePermissions[role] || [];
  300. return permissions.includes(routePath);
  301. });
  302. if (!hasPermission) {
  303. this.$modal.msgWarning('您没有访问该功能的权限');
  304. return false;
  305. }
  306. return true;
  307. },
  308. //通知内容更多
  309. leftMores() {
  310. this.$router.push("/home/page/leftmores");
  311. },
  312. //消息内容更多
  313. rightMores() {
  314. this.$router.push("/home/page/rightmores");
  315. },
  316. //内容详细
  317. looks(val) {
  318. this.look1 = true;
  319. this.details = val;
  320. },
  321. //中间通知列表
  322. noticesList() {
  323. notice().then((response) => {
  324. this.notices = response.rows;
  325. // console.log(response.rows);
  326. });
  327. },
  328. //中间通知列表
  329. msgList() {
  330. msg().then((response) => {
  331. this.msg = response.rows;
  332. });
  333. },
  334. // 搜索跳转
  335. jumpSearch() {
  336. this.$router.push({
  337. path: "/home/retrieval",
  338. query: {
  339. datas: this.input,
  340. data2: this.type
  341. },
  342. });
  343. // sessionStorage.setItem("suju", this.input);
  344. },
  345. //底部左边表格更多跳转
  346. mores() {
  347. this.$router.push("/home/page/more");
  348. },
  349. //底部右边表格更多跳转
  350. mores2() {
  351. this.$router.push("/home/page/more2");
  352. },
  353. //底部表格数据
  354. getList() {
  355. //左边表格
  356. delShare1(this.queryParams).then((response) => {
  357. // console.log(response.rows,'111111111');
  358. // 给定义的列表空数组赋值
  359. this.tableData1 = response.rows;
  360. //改变是否机密的值
  361. // var newisSecret = this.tableData1.map((item) => item.isSecret);
  362. // // console.log(a);
  363. // newisSecret = response.rows.map(
  364. // (i) => (i.isSecret = i.isSecret == 1 ? "是" : "否")
  365. // );
  366. // console.log(newisSecret);
  367. });
  368. //右边边表格
  369. delShare2(this.queryParams).then((response) => {
  370. // console.log(response.rows,'111111111');
  371. // 给定义的列表空数组赋值
  372. this.tableData2 = response.rows;
  373. // //改变是否机密的值
  374. // var newisSecret = this.tableData2.map((item) => item.isSecret);
  375. // // console.log(a);
  376. // newisSecret = response.rows.map(
  377. // (i) => (i.isSecret = i.isSecret == 1 ? "是" : "否")
  378. // );
  379. // console.log(newisSecret);
  380. });
  381. //获取文件级别数据
  382. listLevel().then((response) => {
  383. this.levelOptions = response.rows;
  384. });
  385. },
  386. /**处理文档级别数据*/
  387. fileLevelData(row, col, value) {
  388. try {
  389. const obj = this.levelOptions.find((item) => item.levelId == value);
  390. return obj.levelName;
  391. } catch (e) {}
  392. },
  393. // 滚轮滑动放大缩小
  394. gunlun(e) {
  395. const image = this.$refs.imageRef.$el.querySelector("img");
  396. if (e.deltaY > 0) {
  397. // console.log("鼠标向下滚动,图片缩小");
  398. this.scalePercentage -= 0.1;
  399. image.style.transform = `scale(${this.scalePercentage})`;
  400. } else {
  401. // console.log("鼠标向上滚动,图片放大");
  402. this.scalePercentage += 0.1;
  403. image.style.transform = `scale(${this.scalePercentage})`;
  404. }
  405. },
  406. //预览图片的缩放
  407. rotate(angle) {
  408. this.rotationAngle += angle;
  409. const image = this.$refs.imageRef.$el.querySelector("img");
  410. image.style.transform = `rotate(${this.rotationAngle}deg)`;
  411. },
  412. //预览图片的旋转
  413. scale(delta) {
  414. this.scalePercentage += delta;
  415. const image = this.$refs.imageRef.$el.querySelector("img");
  416. image.style.transform = `scale(${this.scalePercentage})`;
  417. },
  418. // 预览关闭
  419. gb() {
  420. this.preview = false;
  421. },
  422. // 检验关闭
  423. // gb1() {
  424. // this.check = false;
  425. // },
  426. // 是否机密
  427. // isSecretRole(row) {
  428. // this.currentRow = row;
  429. // // console.log(`row=${row}`);
  430. // if (row.isSecret == "是") {
  431. // this.check = true;
  432. // }else{
  433. // this.handlePreview(row)
  434. // }
  435. // },
  436. //预览
  437. handlePreview(row) {
  438. // row = this.currentRow;
  439. //图片后缀名
  440. var pictures = ["jpeg", "tiff", "raw", "bmp", "gif", "png", "jpg"];
  441. //音频后缀名
  442. var audios = [
  443. "mid",
  444. "mp3",
  445. "wav",
  446. "wma",
  447. "ra",
  448. "ogg",
  449. "flac",
  450. "aac",
  451. "ape",
  452. ];
  453. //视频后缀名
  454. var videos = [
  455. "asf",
  456. "avi",
  457. "mp4",
  458. "ogm",
  459. "ifo",
  460. "mpg",
  461. "mov",
  462. "mpeg",
  463. "mpg",
  464. "vob",
  465. "wmv",
  466. "rm",
  467. "rmvb",
  468. ];
  469. //判断后缀名
  470. if (videos.some((item) => item == row.docType)) {
  471. this.preview = true;
  472. this.vid1 = true;
  473. this.aud1 = false;
  474. this.img1 = false;
  475. this.vid = row.docPath;
  476. } else if (audios.some((item) => item == row.docType)) {
  477. this.preview = true;
  478. this.aud1 = true;
  479. this.vid1 = false;
  480. this.img1 = false;
  481. this.aud = row.docPath;
  482. } else if (pictures.some((item) => item == row.docType)) {
  483. this.preview = true;
  484. this.aud1 = false;
  485. this.vid1 = false;
  486. this.img1 = true;
  487. this.imgg = row.docPath;
  488. } else if (officeType.some(item => item == row.docType)) {
  489. row.isEdit = false;
  490. this.$tab.openPage(
  491. window.open('/individual/Pre/user/' + row.docId + "?row=" + JSON.stringify(row),
  492. '_blank'),
  493. // window.open("/individual/Pre/user/" + row.docId +"/title/"+ row.docName, '_blank'),
  494. );
  495. // console.log(111);
  496. } else {
  497. this.$modal.msgWarning("该文件不支持预览");
  498. }
  499. },
  500. //验证账号密码
  501. // getCookie() {
  502. // const username = Cookies.get("username");
  503. // const password = Cookies.get("password");
  504. // const rememberMe = Cookies.get("rememberMe");
  505. // this.loginForm = {
  506. // username: username === undefined ? this.loginForm.username : username,
  507. // password:
  508. // password === undefined ? this.loginForm.password : decrypt(password),
  509. // rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
  510. // };
  511. // },
  512. //验证账号密码
  513. // submitForm(row) {
  514. // this.$refs.loginForm.validate((valid) => {
  515. // if (valid) {
  516. // if (this.loginForm.rememberMe) {
  517. // Cookies.set("username", this.loginForm.username, { expires: 30 });
  518. // Cookies.set("password", encrypt(this.loginForm.password), {
  519. // expires: 30,
  520. // });
  521. // } else {
  522. // Cookies.remove("username");
  523. // Cookies.remove("password");
  524. // }
  525. // this.$store
  526. // .dispatch("Login", this.loginForm)
  527. // .then(() => {
  528. // // 登录成功
  529. // this.currentLoginStatus = 1;
  530. // // 关闭登录界面
  531. // this.check = false;
  532. // // console.log("登录成功", "关闭登录界面");
  533. // // console.log("预览界面");
  534. // this.handlePreview(row);
  535. // })
  536. // .catch(() => {
  537. // this.currentLoginStatus = 0;
  538. // });
  539. // }
  540. // });
  541. // },
  542. },
  543. };
  544. </script>
  545. <style scoped lang='scss'>
  546. .containe {
  547. color: #7ea4c8ff;
  548. /* font-size: 0.14rem; */
  549. font-family: PingFang SC-Medium, PingFang SC;
  550. background: url(../../assets/img/background.png);
  551. background-size: 100% 100%;
  552. padding-top: calc(100vh * (50 / 1080));
  553. .top {
  554. width: 100%;
  555. height: calc(100vh * (600 / 1080));
  556. padding-left: calc(100vw * (34 / 1920));
  557. padding-right: calc(100vw * (30 / 1920));
  558. display: flex;
  559. justify-content: space-between;
  560. .left {
  561. //滚动条样式
  562. ::-webkit-scrollbar {
  563. width: 3.5px;
  564. }
  565. ::-webkit-scrollbar-track {
  566. background-color: rgba(0, 0, 0, 0);
  567. }
  568. ::-webkit-scrollbar-thumb {
  569. background: #2e8aec;
  570. border-radius: 3px;
  571. }
  572. ::-webkit-scrollbar-thumb:hover {
  573. background: #2e8aec;
  574. }
  575. width: calc(100vw * (395 / 1920));
  576. height: calc(100vh * (568 / 1080));
  577. background: url(../../assets/img/main_BG_left.png);
  578. background-size: calc(100vw * (395 / 1920)) calc(100vh * (568 / 1080));
  579. padding-left: 10px;
  580. padding-top: 5px;
  581. .left1 {
  582. width: calc(100vw * (375 / 1920));
  583. height: calc(100vh * (556 / 1080));
  584. .left-top {
  585. width: calc(100vw * (365 / 1920));
  586. height: calc(100vh * (40 / 1080));
  587. margin-top: 5px;
  588. padding-left: calc(100vw * (20 / 1920));
  589. padding-right: calc(100vw * (20 / 1920));
  590. background: url(../../assets/img/main_left_decorate.png);
  591. background-size: calc(100vw * (365 / 1920)) calc(100vh * (40 / 1080));
  592. display: flex;
  593. justify-content: space-between;
  594. align-items: center;
  595. h3 {
  596. font-weight: bold;
  597. font-family: YouSheBiaoTiHei-Regular, YouSheBiaoTiHei;
  598. color: #ffffff;
  599. }
  600. p {
  601. padding-right: 10px;
  602. color: #2e8aecff;
  603. font-family: PingFang SC-Medium;
  604. &:hover {
  605. cursor: pointer;
  606. }
  607. }
  608. }
  609. }
  610. .left-main {
  611. width: calc(100vw * (365 / 1920));
  612. height: calc(100vh * (480 / 1080));
  613. list-style: none;
  614. padding: 0;
  615. margin-top: calc(100vh * (10 / 1080));
  616. overflow: auto;
  617. li {
  618. width: calc(100vw * (360 / 1920));
  619. height: calc(100vh * (230 / 1080));
  620. background: rgba(18, 32, 80, 0.4);
  621. border-radius: 2px 2px 2px 2px;
  622. opacity: 1;
  623. margin-bottom: calc(100vh * (10 / 1080));
  624. div {
  625. padding-top: 8px;
  626. padding-left: 20px;
  627. padding-right: 5px;
  628. }
  629. .one {
  630. padding-top: 12px;
  631. }
  632. .three {
  633. padding-left: calc(100vw * (6 / 1920));
  634. padding-right: calc(100vw * (6 / 1920));
  635. }
  636. .five {
  637. display: flex;
  638. justify-content: space-evenly;
  639. color: #2e8aecff;
  640. padding-top: calc(100vh * (20 / 1080));
  641. &:hover {
  642. cursor: pointer;
  643. }
  644. }
  645. .four {
  646. display: flex;
  647. padding-top: calc(100vh * (10 / 1080));
  648. .four1 {
  649. width: calc(100vw * (60 / 1920));
  650. }
  651. .four2 {
  652. width: calc(100vw * (250 / 1920));
  653. height: calc(100vh * (55 / 1080));
  654. // background: salmon;
  655. overflow: hidden;
  656. text-overflow: ellipsis;
  657. -webkit-line-clamp: 3;
  658. word-break: break-all;
  659. display: -webkit-box;
  660. -webkit-box-orient: vertical;
  661. }
  662. }
  663. }
  664. }
  665. }
  666. .right {
  667. //滚动条样式
  668. ::-webkit-scrollbar {
  669. width: 3.5px;
  670. }
  671. ::-webkit-scrollbar-track {
  672. background-color: rgba(0, 0, 0, 0);
  673. }
  674. ::-webkit-scrollbar-thumb {
  675. background: #2e8aec;
  676. border-radius: 3px;
  677. }
  678. ::-webkit-scrollbar-thumb:hover {
  679. background: #2e8aec;
  680. }
  681. width: calc(100vw * (395 / 1920));
  682. height: calc(100vh * (568 / 1080));
  683. background: url(../../assets/img/main_BG_left.png);
  684. background-size: calc(100vw * (395 / 1920)) calc(100vh * (568 / 1080));
  685. padding-left: 10px;
  686. padding-top: 5px;
  687. .right1 {
  688. width: calc(100vw * (375 / 1920));
  689. height: calc(100vh * (556 / 1080));
  690. .right-top {
  691. width: calc(100vw * (365 / 1920));
  692. height: calc(100vh * (40 / 1080));
  693. margin-top: 5px;
  694. padding-left: calc(100vw * (20 / 1920));
  695. padding-right: calc(100vw * (20 / 1920));
  696. background: url(../../assets/img/main_left_decorate.png);
  697. background-size: calc(100vw * (365 / 1920)) calc(100vh * (40 / 1080));
  698. display: flex;
  699. justify-content: space-between;
  700. align-items: center;
  701. h3 {
  702. font-weight: bold;
  703. font-family: YouSheBiaoTiHei-Regular, YouSheBiaoTiHei;
  704. color: #ffffff;
  705. }
  706. p {
  707. padding-right: 10px;
  708. color: #2e8aecff;
  709. font-family: PingFang SC-Medium;
  710. &:hover {
  711. cursor: pointer;
  712. }
  713. }
  714. }
  715. }
  716. .right-main {
  717. width: calc(100vw * (365 / 1920));
  718. height: calc(100vh * (480 / 1080));
  719. list-style: none;
  720. padding: 0;
  721. margin-top: calc(100vh * (10 / 1080));
  722. overflow: auto;
  723. li {
  724. width: calc(100vw * (360 / 1920));
  725. height: calc(100vh * (230 / 1080));
  726. background: rgba(18, 32, 80, 0.4);
  727. border-radius: 2px 2px 2px 2px;
  728. opacity: 1;
  729. margin-bottom: calc(100vh * (10 / 1080));
  730. div {
  731. padding-top: 8px;
  732. padding-left: 20px;
  733. padding-right: 5px;
  734. }
  735. .one {
  736. padding-top: 12px;
  737. }
  738. .three {
  739. padding-left: calc(100vw * (6 / 1920));
  740. padding-right: calc(100vw * (6 / 1920));
  741. }
  742. .five {
  743. display: flex;
  744. justify-content: space-evenly;
  745. color: #2e8aecff;
  746. padding-top: calc(100vh * (20 / 1080));
  747. &:hover {
  748. cursor: pointer;
  749. }
  750. }
  751. .four {
  752. display: flex;
  753. padding-top: calc(100vh * (10 / 1080));
  754. .four1 {
  755. width: calc(100vw * (60 / 1920));
  756. }
  757. .four2 {
  758. width: calc(100vw * (250 / 1920));
  759. height: calc(100vh * (55 / 1080));
  760. // background: salmon;
  761. overflow: hidden;
  762. text-overflow: ellipsis;
  763. -webkit-line-clamp: 3;
  764. word-break: break-all;
  765. display: -webkit-box;
  766. -webkit-box-orient: vertical;
  767. }
  768. }
  769. }
  770. }
  771. }
  772. .cen {
  773. width: calc(100vw * (804 / 1920));
  774. height: calc(100vh * (600 / 1080));
  775. // background: aqua;
  776. position: relative;
  777. .cen—top {
  778. width: calc(100vw * (700 / 1920));
  779. height: calc(100vh * (40 / 1080));
  780. // background: salmon;
  781. // overflow: hidden;
  782. margin-left: calc(100vw * (61 / 1920));
  783. display: flex;
  784. align-items: center;
  785. .cen—top-left {
  786. width: calc(100vw * (130 / 1920));
  787. height: calc(100vh * (36 / 1080));
  788. // background: seagreen;
  789. margin-right: calc(100vw * (5 / 1920));
  790. font-size: 12px;
  791. color: #2e8aecff;
  792. display: flex;
  793. align-items: center;
  794. ::v-deep .el-input--medium .el-input__inner {
  795. height: 26px;
  796. line-height: 26px;
  797. font-size: 12px;
  798. }
  799. ::v-deep .el-input__suffix {
  800. height: 120%;
  801. }
  802. .el-dropdown-link {
  803. cursor: pointer;
  804. color: #409eff;
  805. }
  806. .el-icon-arrow-down {
  807. font-size: 12px;
  808. }
  809. }
  810. .cen—top-right {
  811. width: calc(100vw * (526 / 1920));
  812. height: calc(100vh * (36 / 1080));
  813. // margin-left: calc(100vw * (60 / 1920));
  814. // background: skyblue;
  815. .cen—top-div {
  816. position: relative;
  817. .cen—top-img {
  818. // background-size: calc(100vw * (24 / 1920)) calc(100vh * (24/ 1080));
  819. width: calc(100vw * (24 / 1920));
  820. height: calc(100vh * (24 / 1080));
  821. position: absolute;
  822. left: calc(100vw * (15 / 1920));
  823. top: calc(100vh * (7 / 1080));
  824. }
  825. .searchs {
  826. width: calc(100vw * (420 / 1920));
  827. ::v-deep .el-input__inner {
  828. height: calc(100vh * (36 / 1080)) !important;
  829. padding-left: calc(100vw * (50 / 1920));
  830. background: #14265e80;
  831. border: 1px solid #01d1ffff;
  832. color: #7ea4c8ff;
  833. }
  834. }
  835. .cen—top-but {
  836. width: calc(100vw * (100 / 1920));
  837. height: calc(100vh * (36 / 1080));
  838. display: inline-block;
  839. text-align: center;
  840. line-height: calc(100vh * (36 / 1080));
  841. background: #01d1ff80;
  842. color: #ffffffcc;
  843. vertical-align: top;
  844. &:hover {
  845. cursor: pointer;
  846. }
  847. }
  848. }
  849. }
  850. }
  851. .cen—bottom {
  852. width: calc(100vw * (784 / 1920));
  853. height: calc(100vh * (477 / 1080));
  854. background: url(../../assets/img/MMB.png);
  855. background-size: calc(100vw * (784 / 1920)) calc(100vh * (477 / 1080));
  856. margin-top: calc(100vh * (80 / 1080));
  857. position: relative;
  858. /* font-size: 0.18rem; */
  859. color: #ffffffff;
  860. font-weight: 400;
  861. p {
  862. /* font-size: 0.18rem; */
  863. font-family: YouSheBiaoTiHei-Regular, YouSheBiaoTiHei;
  864. font-weight: bold;
  865. color: #ffffff;
  866. }
  867. .one {
  868. position: absolute;
  869. display: flex;
  870. flex-direction: column;
  871. align-items: center;
  872. left: calc(100vw * (172 / 1920));
  873. top: -30px;
  874. width: calc(100vw * (140 / 1920));
  875. height: calc(100vh * (153 / 1080));
  876. img {
  877. width: 100%;
  878. height: calc(100vh * (130 / 1080));
  879. }
  880. }
  881. .two {
  882. position: absolute;
  883. display: flex;
  884. flex-direction: column;
  885. align-items: center;
  886. left: calc(100vw * (442 / 1920));
  887. top: -30px;
  888. width: calc(100vw * (140 / 1920));
  889. height: calc(100vh * (153 / 1080));
  890. img {
  891. width: 100%;
  892. height: calc(100vh * (130 / 1080));
  893. }
  894. }
  895. .three {
  896. display: flex;
  897. flex-direction: column;
  898. align-items: center;
  899. position: absolute;
  900. left: calc(100vw * (36 / 1920));
  901. top: calc(100vh * (150 / 1080));
  902. width: calc(100vw * (140 / 1920));
  903. height: calc(100vh * (153 / 1080));
  904. img {
  905. width: 100%;
  906. height: calc(100vh * (130 / 1080));
  907. }
  908. }
  909. .four {
  910. display: flex;
  911. flex-direction: column;
  912. align-items: center;
  913. position: absolute;
  914. right: calc(100vw * (57 / 1920));
  915. top: calc(100vh * (150 / 1080));
  916. width: calc(100vw * (140 / 1920));
  917. height: calc(100vh * (153 / 1080));
  918. img {
  919. width: 100%;
  920. height: calc(100vh * (130 / 1080));
  921. }
  922. }
  923. }
  924. }
  925. }
  926. .bottom {
  927. width: 100%;
  928. height: calc(100vh * (304 / 1080));
  929. background-size: cover;
  930. margin-top: calc(100vh * (30 / 1080));
  931. padding-left: calc(100vw * (30 / 1920));
  932. padding-right: calc(100vw * (34 / 1920));
  933. display: flex;
  934. justify-content: space-between;
  935. .left {
  936. width: calc(100vw * (920 / 1920));
  937. height: calc(100vh * (304 / 1080));
  938. background: url(../../assets/img/footer.png);
  939. background-size: calc(100vw * (920 / 1920)) calc(100vh * (304 / 1080));
  940. padding-left: 10px;
  941. .left-top {
  942. width: calc(100vw * (880 / 1920));
  943. height: calc(100vh * (40 / 1080));
  944. color: #ffffff;
  945. margin-top: 10px;
  946. background: url(../../assets/img/main_left_decorate.png);
  947. background-size: calc(100vw * (880 / 1920)) calc(100vh * (40 / 1080));
  948. display: flex;
  949. justify-content: space-between;
  950. align-items: center;
  951. h3 {
  952. padding-left: 10px;
  953. /* font-size: 0.2rem; */
  954. font-weight: bold;
  955. font-family: YouSheBiaoTiHei-Regular, YouSheBiaoTiHei;
  956. }
  957. p {
  958. padding-right: 10px;
  959. /* font-size: 0.2rem; */
  960. color: #2e8aecff;
  961. font-family: PingFang SC-Medium;
  962. &:hover {
  963. cursor: pointer;
  964. }
  965. }
  966. }
  967. .left-main {
  968. margin-top: calc(100vh * (8 / 1080));
  969. color: #7ea4c8ff;
  970. background: transparent;
  971. height: calc(100vh * (230 / 1080));
  972. // overflow: auto;
  973. /* font-size: 0.14rem; */
  974. }
  975. //滚动条样式
  976. ::-webkit-scrollbar {
  977. width: 3.5px;
  978. }
  979. ::-webkit-scrollbar-track {
  980. background-color: rgba(0, 0, 0, 0);
  981. }
  982. ::-webkit-scrollbar-thumb {
  983. background: #2e8aec;
  984. border-radius: 3px;
  985. }
  986. ::-webkit-scrollbar-thumb:hover {
  987. background: #2e8aec;
  988. }
  989. }
  990. .right {
  991. width: calc(100vw * (920 / 1920));
  992. height: calc(100vh * (304 / 1080));
  993. background: url(../../assets/img/footer.png);
  994. background-size: calc(100vw * (920 / 1920)) calc(100vh * (304 / 1080));
  995. padding-left: 10px;
  996. .right-top {
  997. width: calc(100vw * (880 / 1920));
  998. height: calc(100vh * (40 / 1080));
  999. color: #ffffff;
  1000. margin-top: 10px;
  1001. background: url(../../assets/img/main_left_decorate.png);
  1002. background-size: calc(100vw * (880 / 1920)) calc(100vh * (40 / 1080));
  1003. display: flex;
  1004. justify-content: space-between;
  1005. align-items: center;
  1006. h3 {
  1007. padding-left: 10px;
  1008. /* font-size: 0.2rem; */
  1009. font-weight: bold;
  1010. font-family: YouSheBiaoTiHei-Regular, YouSheBiaoTiHei;
  1011. }
  1012. p {
  1013. padding-right: 10px;
  1014. /* font-size: 0.2rem; */
  1015. color: #2e8aecff;
  1016. font-family: PingFang SC-Medium;
  1017. &:hover {
  1018. cursor: pointer;
  1019. }
  1020. }
  1021. }
  1022. .right-main {
  1023. margin-top: calc(100vh * (8 / 1080));
  1024. color: #7ea4c8ff;
  1025. background: transparent;
  1026. height: calc(100vh * (230 / 1080));
  1027. // overflow: auto;
  1028. /* font-size: 0.14rem; */
  1029. }
  1030. //滚动条样式
  1031. ::-webkit-scrollbar {
  1032. width: 3.5px;
  1033. }
  1034. ::-webkit-scrollbar-track {
  1035. background-color: rgba(0, 0, 0, 0);
  1036. }
  1037. ::-webkit-scrollbar-thumb {
  1038. background: #2e8aec;
  1039. border-radius: 3px;
  1040. }
  1041. ::-webkit-scrollbar-thumb:hover {
  1042. background: #2e8aec;
  1043. }
  1044. }
  1045. }
  1046. //预览弹窗
  1047. .dhk {
  1048. width: calc(100vw * (1200 / 1920));
  1049. height: calc(100vh * (850 / 1080));
  1050. // background: salmon;
  1051. background: #0f1540ff;
  1052. position: absolute;
  1053. top: 10%;
  1054. left: 20%;
  1055. z-index: 99;
  1056. display: flex;
  1057. justify-content: center;
  1058. align-items: center;
  1059. .gb {
  1060. position: absolute;
  1061. top: 0;
  1062. right: 0;
  1063. }
  1064. video {
  1065. width: calc(100vw * (1440 / 1920));
  1066. height: calc(100vh * (810 / 1080));
  1067. }
  1068. .el-image {
  1069. width: calc(100vw * (960 / 1920));
  1070. height: calc(100vh * (720 / 1080));
  1071. }
  1072. .el-button-group {
  1073. position: absolute;
  1074. bottom: 0;
  1075. left: 35%;
  1076. }
  1077. }
  1078. //机密验证界面
  1079. .jm {
  1080. width: calc(100vw * (530 / 1920));
  1081. height: calc(100vh * (370 / 1080));
  1082. // background: salmon;
  1083. background: url(../../assets/img/Group-585.png);
  1084. background-size: calc(100vw * (530 / 1920)) calc(100vh * (370 / 1080));
  1085. padding-top: calc(100vh * (50 / 1080));
  1086. padding-left: calc(100vw * (30 / 1920));
  1087. position: absolute;
  1088. top: 25%;
  1089. left: 35%;
  1090. z-index: 99;
  1091. display: flex;
  1092. // justify-content: center;
  1093. align-items: center;
  1094. .gb1 {
  1095. position: absolute;
  1096. top: 10%;
  1097. right: 8%;
  1098. }
  1099. .el-button-group {
  1100. position: absolute;
  1101. top: 10%;
  1102. right: 1%;
  1103. }
  1104. }
  1105. }
  1106. ::v-deep .el-icon-arrow-down:before {
  1107. display: none;
  1108. }
  1109. //table样式
  1110. ::v-deep .el-table th {
  1111. background: #016c9aa6;
  1112. color: #2e8aecff;
  1113. }
  1114. ::v-deep .el-table tr {
  1115. background: transparent;
  1116. }
  1117. ::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell {
  1118. background: transparent;
  1119. }
  1120. //table顶部白线消失处理
  1121. ::v-deep .el-table th.el-table__cell.is-leaf {
  1122. border-bottom: 1px solid #006c9aff;
  1123. padding: 0;
  1124. }
  1125. //table底下白线消失处理
  1126. ::v-deep .el-table {
  1127. color: #ffffffff;
  1128. }
  1129. ::v-deep .el-table::before {
  1130. width: 0;
  1131. }
  1132. //tr下面边框
  1133. ::v-deep .el-table td.el-table__cell {
  1134. border-bottom: 1px solid #083b61ff;
  1135. padding: 8px 0;
  1136. }
  1137. ::v-deep .el-table tbody tr:hover>td {
  1138. background-color: #016c9a78 !important;
  1139. }
  1140. //预览弹出框样式
  1141. ::v-deep .el-form-item__label {
  1142. color: #2e8aecff;
  1143. }
  1144. ::v-deep .el-input__inner {
  1145. background-color: transparent;
  1146. border: 1px solid #01d1ffff;
  1147. color: #ffffffcc;
  1148. }
  1149. //底部表格超出显示滚动条
  1150. ::v-deep .el-table--scrollable-x .el-table__body-wrapper {
  1151. overflow: auto;
  1152. }
  1153. //通知内容详细
  1154. ::v-deep .el-dialog6 {
  1155. width: calc(100vw * (800 / 1920)) !important;
  1156. height: calc(100vh * (950 / 1080)) !important;
  1157. background: url(../../assets/img/Group-585.png);
  1158. background-size: calc(100vw * (800 / 1920)) calc(100vh * (950 / 1080));
  1159. .el-dialog__title {
  1160. color: #ffffff;
  1161. }
  1162. .main {
  1163. margin-top: calc(100vh * (40 / 1080));
  1164. width: calc(100vw * (640 / 1920));
  1165. height: calc(100vh * (680 / 1080));
  1166. // background: salmon;
  1167. color: #7ea4c8ff;
  1168. overflow: auto;
  1169. }
  1170. }
  1171. </style>
  1172. <style>
  1173. /* 中间下拉菜单样式 */
  1174. .el-dropdown-menu {
  1175. background-color: #0f1540;
  1176. border: 1px solid #0f1540ff;
  1177. }
  1178. .el-dropdown-menu__item {
  1179. color: #006c9aff;
  1180. }
  1181. .el-dropdown-menu__item:hover {
  1182. background: #01d1ff3b !important;
  1183. }
  1184. </style>