StoView.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864
  1. <template>
  2. <div class="containe">
  3. <div class="header">
  4. <span>文档管理</span>
  5. <img src="../../../assets/img/chevron-down.png" alt="" />
  6. <img src="../../../assets/img/slash.png" alt="" />
  7. <span>分组文档</span>
  8. <img src="../../../assets/img/chevron-down.png" alt="" />
  9. <img src="../../../assets/img/slash.png" alt="" />
  10. <span class="top1">子分组文档</span>
  11. <img src="../../../assets/img/chevron-up.png" alt="" class="top2" />
  12. <img src="../../../assets/img/slash.png" alt="" />
  13. </div>
  14. <div class="title">分组文档</div>
  15. <div class="main">
  16. <div class="app-container">
  17. <el-row :gutter="20">
  18. <!--部门数据-->
  19. <el-col :span="4" :xs="24" class="main-left">
  20. <div class="head-top">部门结构</div>
  21. <div class="head-container">
  22. <el-tree :data="dirList" :props="defaultProps" :expand-on-click-node="false" ref="tree" node-key="id"
  23. default-expand-all highlight-current @node-click="handleNodeClick" />
  24. </div>
  25. </el-col>
  26. <!--用户数据-->
  27. <el-col :span="20" :xs="24" class="main-right">
  28. <p>文档列表</p>
  29. <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
  30. label-width="68px" class="main-right-form">
  31. <el-form-item label="文件名称" prop="docName">
  32. <el-input v-model="queryParams.docName" placeholder="请输入文件名称" clearable @keyup.enter.native="handleQuery" />
  33. </el-form-item>
  34. <el-form-item label="文件年份" prop="createYear">
  35. <el-input v-model="queryParams.createYear" placeholder="请输入文件创建年份" clearable
  36. @keyup.enter.native="handleQuery" />
  37. </el-form-item>
  38. <el-form-item label="标签" prop="params">
  39. <el-select
  40. v-model="queryParams.params.tagId"
  41. placeholder="请输入标签名称"
  42. @change="handleQuery"
  43. style="width: 180px"
  44. >
  45. <el-option
  46. v-for="item in tags"
  47. :key="item.tagId"
  48. :label="item.tagName"
  49. :value="item.tagId"
  50. />
  51. </el-select>
  52. </el-form-item>
  53. <el-form-item>
  54. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  55. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" class="cz">重置</el-button>
  56. </el-form-item>
  57. </el-form>
  58. <el-row
  59. :gutter="10"
  60. class="mb8"
  61. style="
  62. margin-left: calc(100vw * (20 / 1920));
  63. padding-right: calc(100vw * (20 / 1920));
  64. "
  65. >
  66. <el-col :span="1.5">
  67. <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
  68. v-hasRole="['group.manager']">上传</el-button>
  69. </el-col>
  70. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  71. </el-row>
  72. <el-table
  73. v-loading="loading" :data="infoList" @selection-change="handleSelectionChange" class="main-right-table"
  74. >
  75. <el-table-column type="selection" width="55" align="center" />
  76. <el-table-column label="文件名称" align="center" prop="docName" />
  77. <el-table-column label="文件大小" align="center" prop="docSize" :formatter="fileSizeData" />
  78. <el-table-column label="修改时间" align="center" prop="updateTime" />
  79. <el-table-column label="文件年份" align="center" prop="createYear" />
  80. <el-table-column label="文件类型" align="center" prop="docType" />
  81. <el-table-column label="标签" align="center" prop="tagName" />
  82. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  83. <template slot-scope="scope">
  84. <el-button size="mini" type="text" icon="el-icon-view" @click="handlePreview(scope.row)">预览</el-button>
  85. <el-dropdown size="mini">
  86. <el-button
  87. size="mini"
  88. type="text"
  89. icon="el-icon-d-arrow-right"
  90. >更多</el-button
  91. >
  92. <el-dropdown-menu slot="dropdown">
  93. <el-dropdown-item
  94. icon="el-icon-download"
  95. @click.native="handleDownload(scope.row)"
  96. >下载</el-dropdown-item
  97. >
  98. <el-dropdown-item
  99. icon="el-icon-view"
  100. @click.native="handleEdit(scope.row)"
  101. v-hasRole="['group.manager']"
  102. >在线编辑</el-dropdown-item
  103. >
  104. <el-dropdown-item
  105. icon="el-icon-edit"
  106. @click.native="handleUpdate(scope.row)"
  107. v-hasRole="['group.manager']"
  108. >修改</el-dropdown-item
  109. >
  110. <el-dropdown-item
  111. icon="el-icon-delete"
  112. @click.native="handleDelete(scope.row)"
  113. v-hasRole="['group.manager']"
  114. >删除</el-dropdown-item
  115. >
  116. </el-dropdown-menu>
  117. </el-dropdown>
  118. </template>
  119. </el-table-column>
  120. </el-table>
  121. <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
  122. @pagination="getList" />
  123. </el-col>
  124. </el-row>
  125. <!-- 添加或修改用户配置对话框 -->
  126. <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body custom-class="el-dialog5">
  127. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  128. <el-form-item label="" prop="docPath">
  129. <!-- <el-input v-model="form.docPath" placeholder="请输入文件路径" /> -->
  130. <file-upload v-model="form.docPath" />
  131. </el-form-item>
  132. <el-form-item label="文件目录" prop="dirId">
  133. <treeselect v-model="form.dirId" :options="dirList" :normalizer="normalizer" placeholder="请选择文件目录" />
  134. </el-form-item>
  135. <el-form-item label="文件名称" prop="docName">
  136. <el-input v-model="form.docName" placeholder="请输入文件名称" />
  137. </el-form-item>
  138. <el-form-item label="文件描述">
  139. <el-input v-model="form.docDesc" type="textarea" placeholder="请输入内容" />
  140. </el-form-item>
  141. <el-form-item label="选择标签(最多5个)" prop="tagName" color="red">
  142. <el-tag
  143. :key="tag"
  144. v-for="tag in dynamicTags"
  145. closable
  146. :disable-transitions="false"
  147. @close="handleClose(tag)"
  148. >
  149. {{ tag }}
  150. </el-tag>
  151. <el-input
  152. class="input-new-tag"
  153. v-if="inputVisible"
  154. v-model="inputValue"
  155. ref="saveTagInput"
  156. size="small"
  157. @keyup.enter.native="handleInputConfirm"
  158. @blur="handleInputConfirm"
  159. maxlength="5"
  160. placeholder="最多输入五个字"
  161. >
  162. </el-input>
  163. <el-button
  164. v-else
  165. class="button-new-tag"
  166. size="small"
  167. @click="showInput"
  168. >添加标签</el-button
  169. >
  170. </el-form-item>
  171. <el-form-item label="文件标签" color="red">
  172. <el-tag
  173. v-for="tag in tags"
  174. :key="tag.tagName"
  175. :type="tag.type"
  176. @click="handleInputConfirm1(tag)"
  177. >
  178. {{ tag.tagName }}
  179. </el-tag>
  180. </el-form-item>
  181. <el-form-item label="文件描述">
  182. <el-input
  183. v-model="form.docDesc"
  184. type="textarea"
  185. placeholder="请输入内容"
  186. />
  187. </el-form-item>
  188. </el-form>
  189. <div slot="footer" class="dialog-footer">
  190. <el-button type="primary" @click="submitForm">确 定</el-button>
  191. <el-button @click="cancel">取 消</el-button>
  192. </div>
  193. </el-dialog>
  194. </div>
  195. </div>
  196. </div>
  197. </template>
  198. <script>
  199. import "@/styles1/element-ui1.scss";
  200. import { listTag } from "@/api/doc/tag.js";
  201. import {
  202. listInfo,
  203. getInfo,
  204. delInfo,
  205. addInfo,
  206. updateInfo
  207. } from "@/api/doc/info";
  208. import {
  209. groupList
  210. } from "@/api/doc/dir";
  211. import {
  212. listLevel
  213. } from "@/api/doc/level";
  214. import Treeselect from "@riophae/vue-treeselect";
  215. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  216. export default {
  217. name: "Info",
  218. components: {
  219. Treeselect
  220. },
  221. data() {
  222. return {
  223. //标签列表
  224. tags: [
  225. // { name: '十四大', id: 0 },
  226. // { name: '领导讲话', id: 1 },
  227. // { name: '会议精神', id: 2 },
  228. // { name: '党章', id: 3 },
  229. // { name: '212专案', id: 4 }
  230. ],
  231. //选择标签
  232. dynamicTags: [],
  233. inputVisible: false,
  234. inputValue: "",
  235. // 遮罩层
  236. loading: true,
  237. // 选中数组
  238. ids: [],
  239. // 非单个禁用
  240. single: true,
  241. // 非多个禁用
  242. multiple: true,
  243. // 显示搜索条件
  244. showSearch: true,
  245. // 总条数
  246. total: 0,
  247. // 文件基本信息表格数据
  248. infoList: [],
  249. //目录ID
  250. dirId: undefined,
  251. //目录数据
  252. dirList: undefined,
  253. //文件等级数据
  254. levelOptions: [],
  255. // 弹出层标题
  256. title: "",
  257. // 是否显示弹出层
  258. open: false,
  259. groupId: undefined,
  260. // 查询参数
  261. queryParams: {
  262. pageNum: 1,
  263. pageSize: 10,
  264. docName: null,
  265. docLevel: null,
  266. createYear: null,
  267. params: {
  268. tagId: null,
  269. },
  270. },
  271. // 表单参数
  272. form: {},
  273. defaultProps: {
  274. children: "children",
  275. label: "dirName",
  276. id: "dirId"
  277. },
  278. // 表单校验
  279. rules: {
  280. docName: [{
  281. required: true,
  282. message: "文件名称不能为空",
  283. trigger: "blur"
  284. }],
  285. dirId: [{
  286. required: true,
  287. message: "文件目录不能为空",
  288. trigger: "blur"
  289. }],
  290. docLevel: [{
  291. required: true,
  292. message: "文件级别不能为空",
  293. trigger: "blur"
  294. }],
  295. }
  296. }
  297. },
  298. created() {
  299. const groupId = this.$route.params && this.$route.params.groupId;
  300. if (groupId) {
  301. this.groupId = groupId;
  302. this.dirTree();
  303. }
  304. },
  305. watch: {
  306. "form.docPath": function(path, old) {
  307. if (path && path.lastIndexOf("/") > -1) {
  308. let name = path.slice(path.lastIndexOf("/") + 1);
  309. this.form.docName = name.split("_")[0];
  310. }
  311. }
  312. },
  313. methods: {
  314. //选择标签关闭
  315. handleClose(tag) {
  316. this.form.tagList.map((i, index) => {
  317. if (tag == i.tagName) {
  318. this.form.tagList.splice(index, 1);
  319. }
  320. });
  321. this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
  322. },
  323. showInput() {
  324. if(this.dynamicTags.length>=5){
  325. this.inputVisible = false;
  326. alert("标签数不允许超过五个")
  327. }else{
  328. this.inputVisible = true;
  329. this.$nextTick((_) => {
  330. this.$refs.saveTagInput.$refs.input.focus();
  331. });
  332. }
  333. },
  334. //固定的标签
  335. handleInputConfirm1(tag) {
  336. if(this.dynamicTags.indexOf(tag.tagName)==-1){
  337. this.dynamicTags.push(
  338. tag.tagName
  339. );
  340. this.form.tagList.push({
  341. tagId: tag.tagId,
  342. tagName: tag.tagName,
  343. });
  344. }
  345. if(this.dynamicTags.length>5){
  346. alert("标签数不允许超过五个")
  347. this.dynamicTags.pop()
  348. };
  349. },
  350. //自定义标签
  351. handleInputConfirm() {
  352. let inputValue = this.inputValue;
  353. // if (inputValue) {
  354. // this.dynamicTags.push(inputValue);
  355. // }
  356. // this.inputVisible = false;
  357. // this.inputValue = "";
  358. // this.form.tagList.push({
  359. // tagName:inputValue,
  360. // });
  361. //查询输入的标签在固定标签里是否存在
  362. var Newtags = this.tags.find((value) => value.tagName == inputValue);
  363. // console.log(a);
  364. if(this.dynamicTags.indexOf(inputValue)!=-1){
  365. this.dynamicTags.pop()
  366. this.form.tagList.pop()
  367. }
  368. if (inputValue) {
  369. this.dynamicTags.push(inputValue);
  370. }
  371. this.inputVisible = false;
  372. this.inputValue = "";
  373. if (Newtags) {
  374. this.form.tagList.push({
  375. tagId: Newtags.tagId,
  376. tagName: Newtags.tagName,
  377. });
  378. } else {
  379. this.form.tagList.push({
  380. tagName: inputValue,
  381. });
  382. }
  383. // console.log(this.form);
  384. if(this.dynamicTags.length>5){
  385. alert("标签数不允许超过五个")
  386. this.dynamicTags.pop()
  387. };
  388. },
  389. /** 转换目录信息数据结构 */
  390. normalizer(node) {
  391. if (node.children && !node.children.length) {
  392. delete node.children;
  393. }
  394. return {
  395. id: node.dirId,
  396. label: node.dirName,
  397. children: node.children
  398. };
  399. },
  400. // 节点单击事件
  401. handleNodeClick(data) {
  402. this.dirId = data.dirId;
  403. this.queryParams.dirId = this.dirId;
  404. this.queryParams.searchValue = this.spaceId;
  405. this.handleQuery();
  406. },
  407. //分享
  408. handleShare(row) {
  409. this.$router.push("/doc/share-user/user/" + row.docId);
  410. },
  411. /**下载按钮操作*/
  412. handleDownload(row) {
  413. location.href = row.docPath;
  414. },
  415. //预览
  416. handlePreview(row) {
  417. row.isEdit = false;
  418. this.$tab.openPage("文件[" + row.docName + "]预览", '/doc/oo-edit/index/' + row.docId, row);
  419. },
  420. //在线编辑
  421. handleEdit(row) {
  422. row.isEdit = true;
  423. this.$tab.openPage("文件[" + row.docName + "]在线编辑", '/doc/oo-edit/index/' + row.docId, row);
  424. },
  425. //先获取左边目录树,拿到目录ID和spaceId才能查询
  426. dirTree() {
  427. this.loading = true;
  428. groupList(this.groupId).then(response => {
  429. this.dirId = response.data[0].dirId;
  430. this.spaceId = response.data[0].spaceId;
  431. this.dirList = this.handleTree(response.data, "dirId");
  432. this.queryParams.dirId = this.dirId;
  433. this.queryParams.searchValue = this.spaceId;
  434. this.getList();
  435. //获取文件级别数据
  436. listLevel().then(response => {
  437. this.levelOptions = response.rows;
  438. });
  439. this.loading = false;
  440. //标签数据
  441. listTag().then((res) => {
  442. this.tags = res.rows;
  443. });
  444. });
  445. },
  446. /** 查询文件基本信息列表 */
  447. getList() {
  448. this.loading = true;
  449. listInfo(this.queryParams).then(response => {
  450. this.infoList = response.rows;
  451. this.total = response.total;
  452. this.loading = false;
  453. });
  454. },
  455. // 取消按钮
  456. cancel() {
  457. this.open = false;
  458. this.reset();
  459. },
  460. // 表单重置
  461. reset() {
  462. this.form = {
  463. docId: null,
  464. dirId: this.dirId,
  465. docName: null,
  466. docType: null,
  467. docSize: null,
  468. classifyId: null,
  469. docDesc: null,
  470. docPath: null,
  471. docLevel: null,
  472. allowEdit: null,
  473. docOf: null,
  474. owner: null,
  475. createYear: null,
  476. createBy: null,
  477. createTime: null,
  478. updateBy: null,
  479. updateTime: null,
  480. remark: null,
  481. isDel: null,
  482. searchValue: this.spaceId,
  483. tagList: [],
  484. };
  485. this.resetForm("form");
  486. this.dynamicTags=[]
  487. },
  488. /** 搜索按钮操作 */
  489. handleQuery() {
  490. this.queryParams.pageNum = 1;
  491. this.getList();
  492. },
  493. /** 重置按钮操作 */
  494. resetQuery() {
  495. this.resetForm("queryForm");
  496. this.queryParams.dirId = this.dirId;
  497. this.queryParams.searchValue = this.spaceId;
  498. this.queryParams.params.tagId = null;
  499. this.handleQuery();
  500. },
  501. // 多选框选中数据
  502. handleSelectionChange(selection) {
  503. this.ids = selection.map(item => item.docId)
  504. this.single = selection.length !== 1
  505. this.multiple = !selection.length
  506. },
  507. /** 新增按钮操作 */
  508. handleAdd() {
  509. this.reset();
  510. this.open = true;
  511. this.title = "添加文件基本信息";
  512. },
  513. /** 修改按钮操作 */
  514. handleUpdate(row) {
  515. this.reset();
  516. const docId = row.docId || this.ids
  517. getInfo(docId, row.createYear).then(response => {
  518. this.form = response.data;
  519. this.open = true;
  520. this.title = "修改文件基本信息";
  521. this.dynamicTags = this.form.tagList.map(item=>item.tagName);
  522. });
  523. },
  524. /** 提交按钮 */
  525. submitForm() {
  526. this.$refs["form"].validate(valid => {
  527. if (valid) {
  528. if (this.form.docId != null) {
  529. updateInfo(this.form).then(response => {
  530. this.$modal.msgSuccess("修改成功");
  531. this.open = false;
  532. this.getList();
  533. });
  534. } else {
  535. addInfo(this.form).then(response => {
  536. this.$modal.msgSuccess("新增成功");
  537. this.open = false;
  538. this.getList();
  539. });
  540. }
  541. }
  542. });
  543. },
  544. /** 删除按钮操作 */
  545. handleDelete(row) {
  546. const docIds = row.docId || this.ids;
  547. this.$modal.confirm('是否确认删除文件基本信息编号为"' + docIds + '"的数据项?').then(function() {
  548. return delInfo(docIds);
  549. }).then(() => {
  550. this.getList();
  551. this.$modal.msgSuccess("删除成功");
  552. }).catch(() => {});
  553. },
  554. /** 导出按钮操作 */
  555. handleExport() {
  556. this.download('doc/info/export', {
  557. ...this.queryParams
  558. }, `info_${new Date().getTime()}.xlsx`)
  559. },
  560. /**格式化文件大小数据*/
  561. fileSizeData(row, col, value) {
  562. const KB = 1;
  563. const MB = KB * 1024;
  564. const GB = MB * 1024;
  565. if (value < MB) {
  566. return `${(value / KB).toFixed(2)} KB`;
  567. } else if (value < GB) {
  568. return `${(value / MB).toFixed(2)} MB`;
  569. } else {
  570. return `${(value / GB).toFixed(2)} GB`;
  571. }
  572. },
  573. /**处理文档级别数据*/
  574. fileLevelData(row, col, value) {
  575. try {
  576. const obj = this.levelOptions.find(item => item.levelId == value);
  577. return obj.levelName;
  578. } catch (e) {}
  579. },
  580. /**根据文件级别,设置是否显示*/
  581. checkLevel(row, role) {
  582. try {
  583. const obj = this.levelOptions.find(item => item.levelId == row.docLevel);
  584. if (obj.levelRole.indexOf(role) != -1) {
  585. return true;
  586. } else {
  587. return false;
  588. }
  589. } catch (e) {}
  590. }
  591. }
  592. };
  593. </script>
  594. <style scoped lang='scss'>
  595. .containe {
  596. color: #7ea4c8;
  597. font-size: 0.14rem;
  598. font-family: PingFang SC-Medium, PingFang SC;
  599. font-weight: 500;
  600. padding-left: calc(100vw * (20 / 1920));
  601. .header {
  602. // width: calc(100vw * (300 / 1920));
  603. height: calc(100vh * (22 / 1080));
  604. margin-top: calc(100vh * (20 / 1080));
  605. margin-bottom: calc(100vh * (20 / 1080));
  606. display: flex;
  607. align-items: center;
  608. img {
  609. width: calc(100vw * (16 / 1920));
  610. height: calc(100vh * (16 / 1080));
  611. border: 1px dashed grey;
  612. margin-left: 3px;
  613. margin-right: 3px;
  614. }
  615. .top1 {
  616. color: #2e8aecff;
  617. }
  618. }
  619. .title {
  620. height: calc(100vh * (22 / 1080));
  621. margin-top: calc(100vh * (20 / 1080));
  622. margin-bottom: calc(100vh * (20 / 1080));
  623. color: #ffffffff;
  624. font-size: 0.16rem;
  625. font-weight: bold;
  626. line-height: calc(100vh * (22 / 1080));
  627. }
  628. .main {
  629. width: calc(100vw * (1876 / 1920));
  630. height: calc(100vh * (880 / 1080));
  631. .app-container {
  632. width: calc(100vw * (1876 / 1920));
  633. height: calc(100vh * (880 / 1080));
  634. padding: 0;
  635. }
  636. .main-left {
  637. width: calc(100vw * (260 / 1920));
  638. height: calc(100vh * (880 / 1080));
  639. margin-right: calc(100vw * (20 / 1920));
  640. margin-left: calc(100vw * (10 / 1920));
  641. background: url(../../../assets/img/Group-609.png);
  642. background-size: calc(100vw * (260 / 1920)) calc(100vh * (880 / 1080));
  643. .head-top {
  644. color: #ffffffff;
  645. font-size: 0.2rem;
  646. padding-left: calc(100vw * (15 / 1920));
  647. padding-top: calc(100vh * (15 / 1080));
  648. }
  649. }
  650. .el-breadcrumb{
  651. width: calc(100vw * (1600 / 1920));
  652. height: calc(100vh * (44 / 1080));
  653. margin-left: calc(100vw * (290 / 1920));
  654. margin-top: calc(100vh * (10 / 1080));
  655. margin-bottom: calc(100vh * (20 / 1080));
  656. background: #0F143CFF;
  657. display: flex;
  658. align-items: center;
  659. padding-left: calc(100vw * (20 / 1920));
  660. }
  661. .main-right {
  662. width: calc(100vw * (1600 / 1920));
  663. height: calc(100vh * (880 / 1080));
  664. background: url(../../../assets/img/Group-610.png);
  665. background-size: calc(100vw * (1600 / 1920)) calc(100vh * (880 / 1080));
  666. p {
  667. color: #ffffffff;
  668. font-size: 0.16rem;
  669. padding-left: calc(100vw * (15 / 1920));
  670. padding-top: calc(100vh * (20 / 1080));
  671. padding-bottom: calc(100vh * (20 / 1080));
  672. }
  673. //重置按钮
  674. .cz{
  675. color: #2e8aecff;
  676. }
  677. .main-right-form {
  678. width: calc(100vw * (1540 / 1920));
  679. height: calc(100vh * (80 / 1080));
  680. margin-top: calc(100vh * (20 / 1080));
  681. margin-left: calc(100vw * (20 / 1920));
  682. }
  683. .main-right-table {
  684. width: calc(100vw * (1540 / 1920));
  685. height: calc(100vh * (580 / 1080));
  686. margin-left: calc(100vw * (20 / 1920));
  687. background: transparent;
  688. }
  689. //表格底部
  690. .pagination-container {
  691. width: calc(100vw * (1540 / 1920));
  692. height: calc(100vh * (50 / 1080));
  693. background: transparent;
  694. padding: 0 !important;
  695. margin: 0;
  696. margin-left: calc(100vw * (20 / 1920));
  697. margin-top: calc(100vh * (10 / 1080));
  698. }
  699. }
  700. }
  701. }
  702. //左边下拉菜单样式
  703. ::v-deep .el-tree {
  704. width: calc(100vw * (200 / 1920));
  705. margin-top: calc(100vh * (30 / 1080));
  706. background: transparent;
  707. color: #7ea4c8ff;
  708. }
  709. //左边下拉菜单点击样式
  710. ::v-deep .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
  711. background: #293667FF;
  712. }
  713. ::v-deep .el-tree-node {
  714. width: calc(100vw * (232 / 1920));
  715. }
  716. //悬停时的样式
  717. ::v-deep .el-tree-node__content:hover {
  718. background: #293667ff;
  719. }
  720. //右边顶部字体样式
  721. ::v-deep .el-form-item__label {
  722. color: #2e8aecff;
  723. }
  724. //右边顶部搜索框样式
  725. ::v-deep .el-input__inner {
  726. background-color: transparent;
  727. border: 1px solid #01d1ffff;
  728. color: #ffffffcc;
  729. }
  730. ::v-deep .el-form-item--small .el-form-item__content {
  731. width: calc(100vw * (220 / 1920));
  732. }
  733. //右边顶部标签搜索
  734. ::v-deep .el-select > .el-input {
  735. width: calc(100vw * (180 / 1920));
  736. }
  737. //右边表格线条隐藏
  738. ::v-deep .el-table::before {
  739. height: 0;
  740. }
  741. //table样式
  742. ::v-deep .el-table th {
  743. background: #016c9aa6;
  744. color: #2e8aec;
  745. }
  746. ::v-deep .el-table tr {
  747. background: transparent;
  748. color: #7EA4C8FF;
  749. }
  750. ::v-deep .el-table tbody tr:hover > td {
  751. background-color: #016c9a78 !important;
  752. }
  753. ::v-deep .el-table td.el-table__cell {
  754. border-bottom: 1px solid #006c9aff;
  755. }
  756. ::v-deep .el-table th.el-table__cell.is-leaf {
  757. border-bottom: 1px solid #006c9aff;
  758. }
  759. //搜索刷新按钮颜色
  760. ::v-deep .el-button.is-circle {
  761. background: #006c9aff;
  762. color: white;
  763. }
  764. //按钮的样式
  765. ::v-deep .el-button--primary.is-plain {
  766. background-color: #002a5cff;
  767. border: none;
  768. color: #2e8aec;
  769. }
  770. //新增/修改弹窗顶部样式
  771. ::v-deep .el-dialog__title {
  772. color: white;
  773. }
  774. //上传弹窗位置高度
  775. ::v-deep .el-dialog:not(.is-fullscreen) {
  776. margin-top: 1vh !important;
  777. }
  778. //弹窗关闭按钮
  779. ::v-deep .el-dialog__headerbtn {
  780. top: calc(100vh * (45 / 1080));
  781. right: calc(100vw * (20 / 1920));
  782. font-size: 20px;
  783. }
  784. //建议框样式
  785. ::v-deep .el-textarea__inner {
  786. background: transparent;
  787. resize: none;
  788. }
  789. //弹窗底部按钮的位置
  790. ::v-deep .el-dialog__footer {
  791. padding: 0;
  792. }
  793. //弹窗样式
  794. ::v-deep .el-dialog5 {
  795. width: calc(100vw * (800 / 1920)) !important;
  796. height: calc(100vh * (1050 / 1080)) !important;
  797. background: url(../../../assets/img/Group-585.png);
  798. background-size: calc(100vw * (800 / 1920)) calc(100vh * (1050 / 1080));
  799. //弹窗中间内容
  800. .el-dialog__body {
  801. // width: calc(100vw * (620 / 1920)) ;
  802. height: calc(100vh * (780 / 1080));
  803. margin-top: calc(100vh * (50 / 1080));
  804. margin-bottom: calc(100vh * (20 / 1080));
  805. padding-right: 50px;
  806. overflow: auto;
  807. // background: salmon;
  808. }
  809. .el-dialog__header {
  810. padding-bottom: 0;
  811. }
  812. .el-upload__tip {
  813. font-size: 12px;
  814. color: #006c9aff;
  815. margin-top: 0px;
  816. }
  817. .el-upload-list__item {
  818. margin: 0;
  819. }
  820. .el-tag + .el-tag {
  821. margin-left: 10px;
  822. }
  823. .button-new-tag {
  824. margin-left: 10px;
  825. height: 32px;
  826. line-height: 30px;
  827. padding-top: 0;
  828. padding-bottom: 0;
  829. }
  830. .input-new-tag {
  831. width: 90px;
  832. margin-left: 10px;
  833. vertical-align: bottom;
  834. }
  835. }
  836. //重置按钮
  837. // ::v-deep .el-button + .el-button {
  838. // color: #1890ff;
  839. // }
  840. </style>