index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702
  1. <template>
  2. <div class="app-container">
  3. <el-form v-show="showSearch" ref="queryForm" :model="queryParams" size="small" :inline="true" label-width="68px">
  4. <el-form-item label="机型" prop="aircraftTypeId">
  5. <el-select v-model="queryParams.aircraftTypeId" placeholder="请选择" @change="handleaircraftChange">
  6. <el-option
  7. v-for="item in typeOption"
  8. :key="item.id"
  9. :label="item.name"
  10. :value="item.id"
  11. />
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="系统" prop="aircraftSystemId">
  15. <el-select v-model="queryParams.aircraftSystemId" placeholder="请选择" @change="handlesystemChange">
  16. <el-option
  17. v-for="item in systemOption"
  18. :key="item.id"
  19. :label="item.aircraftSystemName"
  20. :value="item.id"
  21. />
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="分系统" prop="aircraftSubsystemId">
  25. <el-select v-model="queryParams.aircraftSubsystemId" placeholder="请选择">
  26. <el-option
  27. v-for="item in subSystemOption"
  28. :key="item.id"
  29. :label="item.aircraftSubsystemName"
  30. :value="item.id"
  31. />
  32. </el-select>
  33. </el-form-item>
  34. <el-form-item label="故障现象" prop="faultPhenomenon">
  35. <el-input
  36. v-model="queryParams.faultPhenomenon"
  37. placeholder="请输入故障现象"
  38. clearable
  39. @keyup.enter.native="handleQuery"
  40. />
  41. </el-form-item>
  42. <el-form-item label="排序" prop="orderBy">
  43. <el-select v-model="queryParams.orderBy" placeholder="请选择">
  44. <el-option
  45. v-for="item in orderByOption"
  46. :key="item.id"
  47. :label="item.name"
  48. :value="item.id"
  49. />
  50. </el-select>
  51. </el-form-item>
  52. <el-form-item>
  53. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  54. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  55. </el-form-item>
  56. </el-form>
  57. <el-row :gutter="10" class="mb8">
  58. <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
  59. </el-row>
  60. <el-row>
  61. <el-col v-for="varCase in caseList" :key="varCase.id" :span="8">
  62. <el-card class="box-card" style="margin:10px">
  63. <div class="rounded-corners">
  64. <el-row style="background: #d3dce6;">
  65. <el-col :span="6"><div class="grid-content bg-purple" style="background-color: dodgerblue;text-align: center"><img :src="require('@/assets/icons/aircraft.png')" style="width: 1rem"><br>机型</div></el-col>
  66. <el-col :span="18"><div class="grid-content bg-purple-light flex-center">{{ varCase.aircraftTypeName }}</div></el-col>
  67. </el-row>
  68. <el-row style="background: #e5e9f2;">
  69. <el-col :span="6"><div class="grid-content bg-purple" style="background-color: dodgerblue;text-align: center"><img :src="require('@/assets/icons/system.png')" style="width: 1rem"><br>系统</div></el-col>
  70. <el-col :span="18"><div class="grid-content bg-purple-light flex-center">{{ varCase.aircraftSystemName }}</div></el-col>
  71. </el-row>
  72. <el-row style="background: #d3dce6;">
  73. <el-col :span="6"><div class="grid-content bg-purple" style="background-color: dodgerblue;text-align: center"><img :src="require('@/assets/icons/subsystem.png')" style="width: 1rem"><br>分系统</div></el-col>
  74. <el-col :span="18"><div class="grid-content bg-purple-light flex-center"> {{ varCase.aircraftSubsystemName }}</div></el-col>
  75. </el-row>
  76. <el-row style="background: #e5e9f2;">
  77. <el-col :span="6"><div class="grid-content bg-purple" style="background-color: dodgerblue;text-align: center"><img :src="require('@/assets/icons/fault.png')" style="width: 1rem"><br>故障现象</div></el-col>
  78. <el-col :span="18"><div class="grid-content bg-purple-light flex-center"> {{ truncatedText(varCase.faultPhenomenon) }}</div></el-col>
  79. </el-row>
  80. </div>
  81. <el-divider style="margin: 12px 0;" />
  82. <div class="container">
  83. <div class="left"><el-button type="text" class="button" @click="handleUpdate(varCase.id)">查看详情</el-button></div>
  84. <div class="right"><time class="time">{{ varCase.createTime }}</time> <img :src="require('@/assets/icons/hot.png')" style="width: 1rem"> {{ varCase.viewCount }}</div>
  85. </div>
  86. </el-card>
  87. </el-col>
  88. </el-row>
  89. <pagination
  90. v-show="total>0"
  91. :total="total"
  92. :page.sync="queryParams.pageNum"
  93. :limit.sync="queryParams.pageSize"
  94. :page-sizes="[12,24,36,48]"
  95. @pagination="getList"
  96. />
  97. <!-- 添加或修改故障案例管理对话框 -->
  98. <el-dialog :title="title" :visible.sync="open" width="80%" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
  99. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  100. <el-row>
  101. <el-col :span="6"><div class="grid-content bg-purple">
  102. <el-form-item label="机型" prop="faultPhenomenon">
  103. <el-select v-model="form.aircraftTypeId" placeholder="请选择" @change="handleaircraftChange1" readonly>
  104. <el-option
  105. v-for="item in typeOption1"
  106. :key="item.id"
  107. :label="item.name"
  108. :value="item.id"
  109. />
  110. </el-select>
  111. </el-form-item>
  112. </div></el-col>
  113. <el-col :span="6"><div class="grid-content bg-purple">
  114. <el-form-item label="系统" prop="aircraftSystemId">
  115. <el-select v-model="form.aircraftSystemId" placeholder="请选择" @change="handlesystemChange1" readonly>
  116. <el-option
  117. v-for="item in systemOption1"
  118. :key="item.id"
  119. :label="item.aircraftSystemName"
  120. :value="item.id"
  121. />
  122. </el-select>
  123. </el-form-item>
  124. </div></el-col>
  125. <el-col :span="6"><div class="grid-content bg-purple">
  126. <el-form-item label="分系统" prop="aircraftSubsystemId">
  127. <el-select v-model="form.aircraftSubsystemId" placeholder="请选择" readonly>
  128. <el-option
  129. v-for="item in subSystemOption1"
  130. :key="item.id"
  131. :label="item.aircraftSubsystemName"
  132. :value="item.id"
  133. />
  134. </el-select>
  135. </el-form-item>
  136. </div>
  137. </el-col>
  138. <el-col :span="6"><div class="grid-content bg-purple" /></el-col>
  139. </el-row>
  140. <el-row>
  141. <el-col :span="12">
  142. <el-card class="box-card" style="margin:5px">
  143. <div slot="header" class="clearfix">
  144. <span>故障现象</span>
  145. </div>
  146. <div>
  147. <el-input v-model="form.faultPhenomenon" type="textarea" :rows="5" placeholder="请输入内容" readonly/>
  148. </div>
  149. </el-card>
  150. </el-col>
  151. <el-col :span="12">
  152. <el-card class="box-card" style="margin:5px">
  153. <div slot="header" class="clearfix">
  154. <span>故障原因</span>
  155. </div>
  156. <div>
  157. <el-input v-model="form.faultCause" type="textarea" :rows="5" placeholder="请输入内容" readonly/>
  158. </div>
  159. </el-card>
  160. </el-col>
  161. </el-row>
  162. <el-row>
  163. <el-card class="box-card" style="margin:5px">
  164. <div slot="header" class="clearfix">
  165. <span>故障树</span>
  166. </div>
  167. <div>
  168. <div v-if="form.faultTreePath">
  169. <img :src="baseUrl+form.faultTreePath" style="max-width: 100%;" @load="showResetBtn = true;">
  170. <div style="flex: 1;" /> <!-- 占位符,用于将重置按钮推到最右侧 -->
  171. </div>
  172. </div>
  173. </el-card>
  174. </el-row>
  175. <el-row>
  176. <el-card class="box-card" style="margin:5px">
  177. <div slot="header" class="clearfix">
  178. <span>排故方法</span>
  179. </div>
  180. <el-row>
  181. <el-col :span="4">
  182. <span>故障图</span>
  183. <div>
  184. <div v-if="form.faultPicturePath">
  185. <img :src="baseUrl+form.faultPicturePath" style="max-width: 100px;" @load="showResetBtnpic = true" @click="showModal = true;imageSrc=form.faultPicturePath">
  186. <div style="flex: 1;" /> <!-- 占位符,用于将重置按钮推到最右侧 -->
  187. </div>
  188. </div>
  189. </el-col>
  190. <el-col :span="20">
  191. <span>文档</span>
  192. <div>
  193. <div v-if="form.troubleshootingMethodPath">
  194. <div ref="troubleshootingMethodFile" />
  195. <div style="flex: 1;" /> <!-- 占位符,用于将重置按钮推到最右侧 -->
  196. </div>
  197. </div>
  198. </el-col>
  199. </el-row>
  200. </el-card>
  201. </el-row>
  202. <div v-if="showModal" class="modal" @click="showModal = false">
  203. <img :src="baseUrl+imageSrc" class="full-image">
  204. </div>
  205. </el-form>
  206. <div slot="footer" class="dialog-footer">
  207. <el-button @click="cancel">取 消</el-button>
  208. </div>
  209. </el-dialog>
  210. </div>
  211. </template>
  212. <script>
  213. import { listCase, getCase, countPlus } from '@/api/system/case'
  214. import { getTypeOption } from '@/api/system/type'
  215. import { getSystemOption } from '@/api/system/system'
  216. import { getSubSystemOption } from '@/api/system/subsystem'
  217. import { renderAsync } from 'docx-preview'
  218. import { getToken } from '@/utils/auth'
  219. import axios from 'axios'
  220. export default {
  221. name: 'Index',
  222. data() {
  223. return {
  224. wordText: '',
  225. wordURL: 'test.docx', // 文件地址,看你对应怎末获取、赋值
  226. showResetBtn: false,
  227. showResetBtnpic: false,
  228. name: '',
  229. fileList: [],
  230. hideUpload: false,
  231. // 遮罩层
  232. loading: true,
  233. // 选中数组
  234. ids: [],
  235. // 非单个禁用
  236. single: true,
  237. // 非多个禁用
  238. multiple: true,
  239. // 显示搜索条件
  240. showSearch: true,
  241. // 总条数
  242. total: 0,
  243. // 故障案例管理表格数据
  244. caseList: [],
  245. // 弹出层标题
  246. title: '',
  247. // 是否显示弹出层
  248. open: false,
  249. picUrl_tree: '',
  250. faultTreePath: '',
  251. // 查询参数
  252. queryParams: {
  253. pageNum: 1,
  254. pageSize: 10,
  255. aircraftTypeId: null,
  256. aircraftSystemId: null,
  257. aircraftSubsystemId: null,
  258. faultPhenomenon: null,
  259. faultCause: null,
  260. faultTreePath: null,
  261. faultPicturePath: null,
  262. troubleshootingMethodPath: null,
  263. viewCount: null,
  264. orderBy: 'createTimeAsc'
  265. },
  266. // 表单参数
  267. form: {
  268. aircraftTypeId: null,
  269. aircraftSystemId: null,
  270. aircraftSubsystemId: null,
  271. faultPhenomenon: null,
  272. faultCause: null,
  273. id: null,
  274. faultTreePath: null, // 存储上传成功后的文件路径
  275. faultPicturePath: null,
  276. troubleshootingMethodPath: null,
  277. viewCount: null,
  278. createBy: null,
  279. createTime: null,
  280. updateBy: null,
  281. updateTime: null
  282. },
  283. // 表单校验
  284. rules: {
  285. },
  286. fileList: [], // 存储上传文件列表
  287. typeOption: [],
  288. typeOption1: [],
  289. systemOption: [],
  290. subSystemOption: [],
  291. systemOption1: [],
  292. subSystemOption1: [],
  293. showModal: false, // 控制模态框显示的变量
  294. imageSrc: '', // 图片路径
  295. showResetBtnMethod: false,
  296. // file upload
  297. baseUrl: process.env.VUE_APP_BASE_API,
  298. uploadFileUrl: process.env.VUE_APP_BASE_API + '/common/upload', // 上传文件服务器地址
  299. headers: {
  300. Authorization: 'Bearer ' + getToken()
  301. },
  302. orderByOption: [
  303. {
  304. 'id': 'createTimeAsc',
  305. 'name': '按创建时间升序'
  306. },
  307. {
  308. 'id': 'createTimeDesc',
  309. 'name': '按创建时间降序'
  310. },
  311. {
  312. 'id': 'countAsc',
  313. 'name': '按点击量升序'
  314. },
  315. {
  316. 'id': 'countDesc',
  317. 'name': '按点击量降序'
  318. }
  319. ]
  320. }
  321. },
  322. created() {
  323. // this.getList()
  324. this.getOption()
  325. this.getOption1()
  326. },
  327. methods: {
  328. getOption() {
  329. getTypeOption().then(resp => {
  330. this.typeOption = resp.data
  331. })
  332. },
  333. // 用于获取飞机机型(放到添加功能中)
  334. getOption1() {
  335. getTypeOption().then(resp => {
  336. this.typeOption1 = resp.data
  337. })
  338. },
  339. // 故障树
  340. beforeTreeUpload(file) {
  341. const fileName = file.name
  342. const fileType = fileName.substring(fileName.lastIndexOf('.'))
  343. const isOKType =
  344. fileType === '.jpg' ||
  345. fileType === '.png' ||
  346. fileType === '.jpeg' ||
  347. fileType === '.bmp' ||
  348. fileType === '.gif'
  349. if (!isOKType) {
  350. this.$message.error('图片格式只能为jpeg/png/jpg/bmp/gif')
  351. }
  352. const isLt2M = file.size / 1024 / 1024 < 2
  353. if (!isLt2M) {
  354. this.$message.error('图片大小不能超过 2MB!')
  355. }
  356. return isLt2M && isOKType
  357. },
  358. afterTreeUpload(response, file) {
  359. // 上传完成后的处理逻辑
  360. console.log('上传完成', response, file)
  361. if (response.code === 200) {
  362. this.form.faultTreePath = response.fileName
  363. }
  364. },
  365. reuploadTree() {
  366. this.form.faultTreePath = ''
  367. this.showResetBtn = false
  368. },
  369. // 故障图
  370. beforePicUpload(file) {
  371. const fileName = file.name
  372. const fileType = fileName.substring(fileName.lastIndexOf('.'))
  373. const isOKType =
  374. fileType === '.jpg' ||
  375. fileType === '.png' ||
  376. fileType === '.jpeg' ||
  377. fileType === '.bmp' ||
  378. fileType === '.gif'
  379. if (!isOKType) {
  380. this.$message.error('图片格式只能为jpeg/png/jpg/bmp/gif')
  381. }
  382. const isLt2M = file.size / 1024 / 1024 < 2
  383. if (!isLt2M) {
  384. this.$message.error('图片大小不能超过 2MB!')
  385. }
  386. return isLt2M && isOKType
  387. },
  388. afterPicUpload(response, file) {
  389. if (response.code === 200) {
  390. this.form.faultPicturePath = response.fileName
  391. }
  392. // 上传完成后的处理逻辑
  393. console.log('上传完成', response, file)
  394. },
  395. reuploadPic() {
  396. this.form.faultPicturePath = ''
  397. // this.$refs.loadtree.clearFiles();
  398. this.showResetBtnpic = false
  399. },
  400. // 排故流程word文档
  401. beforeMethodUpload(file) {
  402. const fileName = file.name
  403. const fileType = fileName.substring(fileName.lastIndexOf('.'))
  404. const isOKType =
  405. fileType === '.doc' ||
  406. fileType === '.docx'
  407. if (!isOKType) {
  408. this.$message.error('文件格式只能为doc/docx')
  409. }
  410. const isLt2M = file.size / 1024 / 1024 < 5
  411. if (!isLt2M) {
  412. this.$message.error('图片大小不能超过 5MB!')
  413. }
  414. return isLt2M && isOKType
  415. },
  416. afterMethodUpload(response, file) {
  417. if (response.code === 200) {
  418. this.form.troubleshootingMethodPath = response.fileName
  419. axios({
  420. method: 'get',
  421. responseType: 'blob',
  422. url: this.baseUrl + this.form.troubleshootingMethodPath
  423. }).then((response) => {
  424. renderAsync(response.data, this.$refs.troubleshootingMethodFile)
  425. })
  426. }
  427. // 上传完成后的处理逻辑
  428. console.log('上传完成', response, file)
  429. },
  430. reuploadMethod() {
  431. this.form.troubleshootingMethodPath = ''
  432. // this.$refs.loadtree.clearFiles();
  433. this.showResetBtnMethod = false
  434. },
  435. // 机型变化后更新系统下拉框
  436. handleaircraftChange() {
  437. this.queryParams.aircraftSystemId = ''
  438. this.queryParams.aircraftSubsystemId = ''
  439. // alert(this.queryParams.aircraftTypeId)
  440. getSystemOption(this.queryParams.aircraftTypeId).then(resp => {
  441. this.systemOption = resp.data
  442. })
  443. },
  444. // 系统变化后更新分系统
  445. handlesystemChange() {
  446. this.queryParams.aircraftSubsystemId = ''
  447. getSubSystemOption(this.queryParams.aircraftSystemId).then(resp => {
  448. this.subSystemOption = resp.data
  449. })
  450. },
  451. // 添加或修改对话框中机型变化后,修改系统
  452. handleaircraftChange1(isClear = true) {
  453. if (isClear) {
  454. this.form.aircraftSystemId = ''
  455. this.form.aircraftSubsystemId = ''
  456. }
  457. if (this.form.aircraftTypeId) {
  458. getSystemOption(this.form.aircraftTypeId).then(resp => {
  459. this.systemOption1 = resp.data
  460. })
  461. }
  462. },
  463. // 添加或修改对话框中系统变化后,修改分系统
  464. handlesystemChange1(isClear = true) {
  465. if (isClear) {
  466. this.form.aircraftSubsystemId = ''
  467. }
  468. if (this.form.aircraftSystemId) {
  469. getSubSystemOption(this.form.aircraftSystemId).then(resp => {
  470. this.subSystemOption1 = resp.data
  471. })
  472. }
  473. },
  474. /** 查询故障案例管理列表 */
  475. getList() {
  476. this.loading = true
  477. listCase(this.queryParams).then(response => {
  478. this.caseList = response.rows
  479. this.total = response.total
  480. this.loading = false
  481. })
  482. },
  483. // 取消按钮
  484. cancel() {
  485. this.open = false
  486. this.reset()
  487. },
  488. // 表单重置
  489. reset() {
  490. this.form = {
  491. id: null,
  492. aircraftTypeId: null,
  493. aircraftSystemId: null,
  494. aircraftSubsystemId: null,
  495. faultPhenomenon: null,
  496. faultCause: null,
  497. faultTreePath: null,
  498. faultPicturePath: null,
  499. troubleshootingMethodPath: null,
  500. viewCount: null,
  501. createBy: null,
  502. createTime: null,
  503. updateBy: null,
  504. updateTime: null
  505. }
  506. this.resetForm('form')
  507. },
  508. /** 搜索按钮操作 */
  509. handleQuery() {
  510. this.queryParams.pageNum = 1
  511. this.getList()
  512. },
  513. /** 重置按钮操作 */
  514. resetQuery() {
  515. this.resetForm('queryForm')
  516. this.handleQuery()
  517. },
  518. // 多选框选中数据
  519. handleSelectionChange(selection) {
  520. this.ids = selection.map(item => item.id)
  521. this.single = selection.length !== 1
  522. this.multiple = !selection.length
  523. },
  524. /** 新增按钮操作 */
  525. handleAdd() {
  526. this.reset()
  527. this.open = true
  528. this.title = '添加故障案例管理'
  529. },
  530. /** 修改按钮操作 */
  531. handleUpdate(id) {
  532. getCase(id).then(response => {
  533. this.form = response.data
  534. this.open = true
  535. this.title = '修改故障案例管理'
  536. if (this.form.troubleshootingMethodPath) {
  537. axios({
  538. method: 'get',
  539. responseType: 'blob',
  540. url: this.baseUrl + this.form.troubleshootingMethodPath
  541. }).then((response) => {
  542. renderAsync(response.data, this.$refs.troubleshootingMethodFile)
  543. })
  544. }
  545. this.handleaircraftChange1(false)
  546. this.handlesystemChange1(false)
  547. })
  548. countPlus(id).then(response =>{
  549. })
  550. },
  551. /** 提交按钮 */
  552. submitForm() {
  553. this.$refs['form'].validate(valid => {
  554. if (valid) {
  555. if (this.form.id != null) {
  556. updateCase(this.form).then(response => {
  557. this.$modal.msgSuccess('修改成功')
  558. this.open = false
  559. this.queryParams.aircraftTypeId = null
  560. this.queryParams.aircraftSystemId = null
  561. this.queryParams.aircraftSubsystemId = null
  562. this.getList()
  563. })
  564. } else {
  565. addCase(this.form).then(response => {
  566. this.$modal.msgSuccess('新增成功')
  567. this.open = false
  568. this.queryParams.aircraftTypeId = null
  569. this.queryParams.aircraftSystemId = null
  570. this.queryParams.aircraftSubsystemId = null
  571. this.getList()
  572. })
  573. }
  574. }
  575. })
  576. },
  577. /** 删除按钮操作 */
  578. handleDelete(row) {
  579. const ids = row.id || this.ids
  580. this.$modal.confirm('是否确认删除故障案例管理编号为"' + ids + '"的数据项?').then(function() {
  581. return delCase(ids)
  582. }).then(() => {
  583. this.getList()
  584. this.$modal.msgSuccess('删除成功')
  585. }).catch(() => {})
  586. },
  587. /** 导出按钮操作 */
  588. handleExport() {
  589. this.download('system/case/export', {
  590. ...this.queryParams
  591. }, `case_${new Date().getTime()}.xlsx`)
  592. },
  593. truncatedText(text) {
  594. const maxLength = 30 // 你希望的最大字符数
  595. if (text.length > maxLength) {
  596. return text.substring(0, maxLength) + '...'
  597. }
  598. return text
  599. }
  600. }
  601. }
  602. </script>
  603. <style scoped>
  604. .avatar-uploader {
  605. display: inline-block;
  606. text-align: center;
  607. position: relative;
  608. overflow: hidden;
  609. }
  610. .avatar {
  611. width: 100px;
  612. height: 100px;
  613. display: block;
  614. }
  615. .avatar-uploader-icon {
  616. font-size: 28px;
  617. color: #8c939d;
  618. display: block;
  619. width: 100px;
  620. height: 100px;
  621. line-height: 100px;
  622. }
  623. .modal {
  624. position: fixed;
  625. top: 0;
  626. left: 0;
  627. width: 100%;
  628. height: 100%;
  629. background-color: rgba(0, 0, 0, 0.8);
  630. display: flex;
  631. justify-content: center;
  632. align-items: center;
  633. z-index: 9999;
  634. }
  635. .full-image {
  636. max-width: 80%;
  637. max-height: 80%;
  638. }
  639. .el-divider--horizontal{
  640. display: block;
  641. height: 1px;
  642. width: 100%;
  643. margin: 12px 0;
  644. }
  645. .rounded-corners {
  646. border-radius: 10px; /* 你可以根据需要调整这个值 */
  647. }
  648. .flex-center {
  649. display: flex;
  650. align-items: center; /* 垂直居中 */
  651. height: 2.5rem; /* 你需要一个确定的高度 */
  652. }
  653. .ellipsis {
  654. white-space: nowrap; /* 防止文本换行 */
  655. overflow: hidden; /* 隐藏超出容器的文本 */
  656. text-overflow: ellipsis; /* 使用省略号表示被截断的文本 */
  657. max-width: 200px;
  658. }
  659. .left {
  660. float: left;
  661. /* 左边的样式 */
  662. }
  663. .right {
  664. float: right;
  665. padding: 10px 20px
  666. /* 右边的样式 */
  667. }
  668. .container::after {
  669. content: "";
  670. display: table;
  671. clear: both;
  672. }
  673. </style>