source.vue 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066
  1. <template>
  2. <div class="content-box">
  3. <div class="left">
  4. <!-- <el-icon :size="23" class="camera"><VideoCameraFilled /></el-icon> -->
  5. <span class="cameratxt">我的数据源</span>
  6. </div>
  7. <div>
  8. <div class="middle">
  9. <div class="filter">
  10. <div class="condition">
  11. <el-select v-model="value" class="sel" placeholder="数据库类型">
  12. <el-option label="Mariadb 数据库" value="1" />
  13. <el-option label="MySQL6.0 及以下数据库" value="2" />
  14. <el-option label="MySQL8.0 及以下数据库" value="3" />
  15. <el-option label="Oracle 10g、11g 数据库" value="3" />
  16. <el-option label="PostgreSQL 数据库" value="3" />
  17. </el-select>
  18. <el-select v-model="value" class="sel" placeholder="连接状态">
  19. <el-option label="正常" value="1" />
  20. <el-option label="不可用" value="2" />
  21. </el-select>
  22. <el-input
  23. :clearable="true"
  24. @clear="searchBtn"
  25. v-model="searchInput.keyWord"
  26. class="sel"
  27. placeholder="数据源名称"
  28. />
  29. </div>
  30. <el-button
  31. color="rgba(0, 97, 255, 1)"
  32. type="primary"
  33. class="search"
  34. @click="searchBtn"
  35. ><el-icon>
  36. <Search />
  37. </el-icon>
  38. <span>查询</span></el-button
  39. >
  40. </div>
  41. <!-- 按钮列表 -->
  42. <div class="gongneng">
  43. <el-button
  44. type="primary"
  45. color="rgba(0, 97, 255, 1)"
  46. plain
  47. @click="addClick"
  48. >新增</el-button
  49. >
  50. <el-button
  51. type="primary"
  52. color="rgba(0, 97, 255, 1)"
  53. plain
  54. @click="editClick"
  55. >编辑</el-button
  56. >
  57. <el-button
  58. type="primary"
  59. color="rgba(0, 97, 255, 1)"
  60. @click="delClick"
  61. plain
  62. >删除</el-button
  63. >
  64. </div>
  65. </div>
  66. <div class="footer" v-loading="loading">
  67. <el-table
  68. :row-class-name="tableRowClassName"
  69. :data="tableData.list"
  70. @selection-change="handleSelectionChange"
  71. style="width: 100%"
  72. :header-cell-style="{
  73. background: 'rgba(240, 243, 247, 1)',
  74. height: '50px',
  75. border: 0,
  76. }"
  77. >
  78. <el-table-column align="center" type="selection" width="80" />
  79. <el-table-column
  80. align="center"
  81. prop="type"
  82. width="200"
  83. label="类型"
  84. />
  85. <el-table-column align="center" prop="name" label="名称" />
  86. <el-table-column
  87. align="center"
  88. prop="link"
  89. width="320"
  90. label="连接地址"
  91. />
  92. <el-table-column align="center" prop="status" label="连接状态">
  93. <template #default="scope">
  94. <span class="normal">正常</span>
  95. </template>
  96. </el-table-column>
  97. <el-table-column
  98. align="center"
  99. prop="describe"
  100. show-overflow-tooltip
  101. label="描述"
  102. />
  103. <!-- <el-table-column align="center" label="操作" width="200">
  104. <template #default="scope">
  105. <div class="edit">
  106. <div class="look" @click="editClick(scope.row)">编辑</div>
  107. <el-popconfirm
  108. width="220"
  109. confirm-button-text="确认"
  110. cancel-button-text="取消"
  111. :icon="InfoFilled"
  112. icon-color="#f89626"
  113. title="是否删除此房型?"
  114. @confirm="del(scope.row)"
  115. @cancel="cancelEvent"
  116. >
  117. <template #reference>
  118. <div class="del">删除</div>
  119. </template>
  120. </el-popconfirm>
  121. </div>
  122. </template>
  123. </el-table-column> -->
  124. </el-table>
  125. </div>
  126. <!-- 分页组件 -->
  127. <div class="pageSize">
  128. <span></span>
  129. <el-pagination
  130. background
  131. :current-page="currentPage"
  132. :page-size="pageSize"
  133. layout="total, prev, pager, next, jumper, slot"
  134. :total="total"
  135. @update:current-page="handleCurrentChange"
  136. />
  137. </div>
  138. <!-- 编辑按钮 -->
  139. <el-dialog
  140. class="editDialog"
  141. v-model="editVisible"
  142. :close-on-click-modal="false"
  143. :close-on-press-escape="false"
  144. :title="titleDialog"
  145. align-center
  146. width="900"
  147. :before-close="cancelEdit"
  148. >
  149. <el-form
  150. ref="editRef"
  151. :model="editRuleForm"
  152. :rules="editRules"
  153. label-width="100px"
  154. class="demo-ruleForm"
  155. :size="formSize"
  156. label-position="right"
  157. status-icon
  158. >
  159. <el-form-item label="类型 :" prop="type">
  160. <el-select
  161. v-model="editRuleForm.type"
  162. multiple
  163. placeholder="请选择类型"
  164. style="width: 740px"
  165. >
  166. <el-option label="学生肖像" value="1" />
  167. <el-option label="车辆预约" value="2" />
  168. <el-option label="校园打卡" value="3" />
  169. <el-option label="校园报修" value="4" />
  170. </el-select>
  171. </el-form-item>
  172. <el-form-item label="名称 :" prop="yname">
  173. <el-input
  174. v-model="editRuleForm.yname"
  175. placeholder="数据源名称.如: xxx数据库"
  176. clearable
  177. style="width: 740px"
  178. />
  179. </el-form-item>
  180. <div v-if="titleDialog == '新增'">
  181. <span class="typeTitle">使用辅助选项请先选择类型</span>
  182. <el-form-item label="辅助选项 :">
  183. <el-input
  184. v-model="editRuleForm.location"
  185. placeholder="数据库服务IP地址"
  186. clearable
  187. style="width: 300px; margin-right: 10px"
  188. />
  189. <el-input
  190. v-model="editRuleForm.port"
  191. placeholder="数据库服务端口号"
  192. clearable
  193. style="width: 210px; margin-right: 10px"
  194. />
  195. <el-input
  196. v-model="editRuleForm.kname"
  197. placeholder="数据库名称"
  198. clearable
  199. style="width: 210px"
  200. />
  201. </el-form-item>
  202. </div>
  203. <el-form-item label="连接地址 :" prop="link">
  204. <el-input
  205. v-model="editRuleForm.link"
  206. placeholder="数据库连接地址"
  207. clearable
  208. style="width: 740px"
  209. />
  210. </el-form-item>
  211. <div class="account">
  212. <el-form-item label="数据库账号 :" prop="account">
  213. <el-input
  214. v-model="editRuleForm.account"
  215. placeholder="请输入数据库账号"
  216. clearable
  217. />
  218. </el-form-item>
  219. <el-form-item label="数据库密码 :" prop="password">
  220. <el-input
  221. v-model="editRuleForm.password"
  222. placeholder="请输入数据库密码"
  223. clearable
  224. />
  225. </el-form-item>
  226. </div>
  227. <el-form-item label="描述 :" prop="describe">
  228. <el-input
  229. v-model="editRuleForm.describe"
  230. placeholder="请输入该数据库相关简述"
  231. clearable
  232. type="textarea"
  233. :rows="5"
  234. style="width: 740px"
  235. />
  236. </el-form-item>
  237. <el-form-item class="options">
  238. <el-button
  239. color="rgba(41, 109, 227, 1)"
  240. class="queding"
  241. type="primary"
  242. @click="confirmEdit(editRef)"
  243. >
  244. 确认
  245. </el-button>
  246. <el-button @click="cancelEdit(editRef)">取消</el-button>
  247. </el-form-item>
  248. </el-form>
  249. </el-dialog>
  250. <!-- 勾选删除 -->
  251. <el-dialog
  252. class="closeAccount"
  253. v-model="selDelVisible"
  254. :close-on-click-modal="false"
  255. :close-on-press-escape="false"
  256. title="勾选删除"
  257. align-center
  258. width="500"
  259. :before-close="cancelSelDel"
  260. >
  261. <div class="content">
  262. <img src="@/assets/images/warning.png" alt="" />
  263. <span>是否删除勾选的数据库?</span>
  264. </div>
  265. <div class="option">
  266. <el-button
  267. color="rgba(41, 109, 227, 1)"
  268. class="queding"
  269. type="primary"
  270. @click="confirmSelDel"
  271. >
  272. 确认
  273. </el-button>
  274. <el-button @click="cancelSelDel">取消</el-button>
  275. </div>
  276. </el-dialog>
  277. </div>
  278. <div class="bgImg" v-if="bgImg">
  279. <el-carousel
  280. @click="bgImg = false"
  281. ref="bgImgs"
  282. indicator-position
  283. arrow="always"
  284. :autoplay="false"
  285. trigger
  286. >
  287. <el-carousel-item v-for="item in bgImgList" :key="item.id">
  288. <img :src="item.url" alt="" />
  289. </el-carousel-item>
  290. </el-carousel>
  291. </div>
  292. </div>
  293. </template>
  294. <script setup>
  295. import {
  296. ref,
  297. reactive,
  298. watch,
  299. nextTick,
  300. onBeforeMount,
  301. onUnmounted,
  302. } from "vue";
  303. import { useRouter } from "vue-router";
  304. import { ElMessage, ElMessageBox } from "element-plus";
  305. import { Calendar } from "@element-plus/icons-vue";
  306. import vidiconsApi from "@/api/vidicons.js";
  307. import { dayjs } from "element-plus";
  308. import lodash from "lodash";
  309. import axios from "axios";
  310. import { useStore } from "vuex";
  311. const store = useStore();
  312. const api = ref("");
  313. const router = useRouter();
  314. // 表格数据
  315. const loading = ref(false);
  316. const tableData = reactive({
  317. list: [
  318. {
  319. type: "Oracle 10g、11g 数据库",
  320. name: "消息平台",
  321. link: "jdbc:oracle:thin:@172.16.30.21:1408:orcl",
  322. status: 1,
  323. describe: "消息平台",
  324. },
  325. {
  326. type: "Mariadb 数据库",
  327. name: "学工数据库",
  328. link: "jdbc:oracle:thin:@172.16.30.21:1408:orcl",
  329. status: 1,
  330. describe: "学工数据库",
  331. },
  332. {
  333. type: "Oracle 10g、11g 数据库",
  334. name: "教务中间库",
  335. link: "jdbc:oracle:thin:@172.16.30.21:1408:orcl",
  336. status: 1,
  337. describe: "教务中间库",
  338. },
  339. {
  340. type: "MySQL6.0 及以下数据库",
  341. name: "新认证正式库",
  342. link: "jdbc:oracle:thin:@172.16.30.21:1408:orcl",
  343. status: 1,
  344. describe: "新认证正式库",
  345. },
  346. {
  347. type: "PostgreSQL 数据库",
  348. name: "迎新系统",
  349. link: "jdbc:oracle:thin:@172.16.30.21:1408:orcl",
  350. status: 1,
  351. describe: "迎新系统",
  352. },
  353. ],
  354. });
  355. const searchInput = reactive({
  356. keyWord: "",
  357. createTime: "",
  358. }); // 搜索按钮数据
  359. const currentPage = ref(1); // 当前页
  360. const pageSize = ref(10);
  361. const total = ref(5); // 当前总数
  362. const selectData = reactive({ list: [] }); // 表格勾选的数据
  363. // 编辑功能
  364. const titleDialog = ref("");
  365. const editVisible = ref(false);
  366. const editRef = ref();
  367. const editRuleForm = reactive({
  368. type: "", // 类型
  369. yname: "", // 数据源名称
  370. location: "", // 数据库服务IP地址
  371. port: "", // 数据库服务端口号
  372. kname: "", // 数据库名称
  373. link: "", // 数据库连接地址
  374. account: "", // 数据库账号
  375. password: "", // 数据库密码
  376. describe: "", // 描述
  377. id: "",
  378. });
  379. // 表单验证
  380. const editRules = reactive({
  381. type: [{ required: true, message: "类型不能为空", trigger: "blur" }],
  382. yname: [
  383. {
  384. required: true,
  385. message: "数据源名称不能为空",
  386. trigger: "blur",
  387. },
  388. ],
  389. link: [
  390. {
  391. required: true,
  392. message: "数据库连接地址不能为空",
  393. trigger: "blur",
  394. },
  395. ],
  396. account: [
  397. {
  398. required: true,
  399. message: "数据库账号不能为空",
  400. trigger: "blur",
  401. },
  402. ],
  403. password: [
  404. {
  405. required: true,
  406. message: "数据库密码不能为空",
  407. trigger: "blur",
  408. },
  409. ],
  410. describe: [
  411. {
  412. required: true,
  413. message: "描述不能为空",
  414. trigger: "blur",
  415. },
  416. ],
  417. });
  418. // 删除弹窗
  419. const selDelVisible = ref(false);
  420. // 查看房型列表
  421. const getList = async () => {
  422. // loading.value = true;
  423. // let data = {
  424. // page: currentPage.value,
  425. // rows: pageSize.value,
  426. // hName: searchInput.keyWord, // 房型名称
  427. // managerId: sessionStorage.getItem("token"),
  428. // };
  429. // let res = await axios({
  430. // method: "post",
  431. // url: api.value + "/mhotel/housequeryPage.action",
  432. // headers: {
  433. // // token: sessionStorage.getItem("token"),
  434. // // user_head: sessionStorage.getItem("userhead"),
  435. // },
  436. // params: data,
  437. // });
  438. // console.log(res, "房型管理");
  439. // if (res.data.code == 200) {
  440. // loading.value = false;
  441. // tableData.list = res.data.data.pageList;
  442. // total.value = res.data.data.total;
  443. // // ElMessage({
  444. // // type: "success",
  445. // // showClose: true,
  446. // // message: res.data.message,
  447. // // center: true,
  448. // // });
  449. // } else {
  450. // loading.value = false;
  451. // ElMessage({
  452. // type: "error",
  453. // showClose: true,
  454. // message: res.data.message,
  455. // center: true,
  456. // });
  457. // }
  458. };
  459. // 搜索功能
  460. const searchBtn = lodash.debounce(async () => {
  461. getList();
  462. }, 300);
  463. // 添加按钮 (-------------------------------------------)
  464. const addClick = async () => {
  465. titleDialog.value = "新增";
  466. editVisible.value = true;
  467. // let data = {
  468. // linkId: row.id,
  469. // };
  470. // let res = await axios({
  471. // method: "post",
  472. // url: api.value + "/mhotel/uploadgetByLinkId.action",
  473. // headers: {},
  474. // params: data,
  475. // });
  476. // console.log(res, "编辑中查找图片");
  477. // if (res.data.code == 200) {
  478. // // res.data.data.fileInfoList.forEach((item) => {
  479. // // item.uid = item.id;
  480. // // });
  481. // // fileList.list = res.data.data.fileInfoList;
  482. // // ruleForm.fileListJson = fileList.list;
  483. // res.data.data.forEach((item) => {
  484. // item.uid = item.id;
  485. // });
  486. // fileList.list = res.data.data;
  487. // ruleForm.fileListJson = fileList.list;
  488. // // ElMessage({
  489. // // type: "success",
  490. // // showClose: true,
  491. // // message: res.data.message,
  492. // // center: true,
  493. // // });
  494. // } else {
  495. // ElMessage({
  496. // type: "error",
  497. // showClose: true,
  498. // message: res.data.message,
  499. // center: true,
  500. // });
  501. // }
  502. };
  503. //编辑按钮 (-------------------------------------------)
  504. const editClick = async () => {
  505. if (selectData.list.length == 1) {
  506. titleDialog.value = "编辑";
  507. editVisible.value = true;
  508. } else {
  509. ElMessage({
  510. type: "warning",
  511. showClose: true,
  512. message: "请先选定一条记录!",
  513. center: true,
  514. });
  515. }
  516. // let data = {
  517. // linkId: row.id,
  518. // };
  519. // let res = await axios({
  520. // method: "post",
  521. // url: api.value + "/mhotel/uploadgetByLinkId.action",
  522. // headers: {},
  523. // params: data,
  524. // });
  525. // console.log(res, "编辑中查找图片");
  526. // if (res.data.code == 200) {
  527. // // res.data.data.fileInfoList.forEach((item) => {
  528. // // item.uid = item.id;
  529. // // });
  530. // // fileList.list = res.data.data.fileInfoList;
  531. // // ruleForm.fileListJson = fileList.list;
  532. // res.data.data.forEach((item) => {
  533. // item.uid = item.id;
  534. // });
  535. // fileList.list = res.data.data;
  536. // ruleForm.fileListJson = fileList.list;
  537. // // ElMessage({
  538. // // type: "success",
  539. // // showClose: true,
  540. // // message: res.data.message,
  541. // // center: true,
  542. // // });
  543. // } else {
  544. // ElMessage({
  545. // type: "error",
  546. // showClose: true,
  547. // message: res.data.message,
  548. // center: true,
  549. // });
  550. // }
  551. };
  552. const cancelEdit = () => {
  553. editVisible.value = false;
  554. editRef.value.resetFields();
  555. };
  556. // 确定编辑
  557. const confirmEdit = (formEl) => {
  558. if (!formEl) return;
  559. formEl.validate(async (valid, fields) => {
  560. if (valid) {
  561. }
  562. });
  563. };
  564. //删除按钮
  565. const delClick = async () => {
  566. if (selectData.list.length >= 1) {
  567. selDelVisible.value = true;
  568. } else {
  569. ElMessage({
  570. type: "warning",
  571. showClose: true,
  572. message: "请先选定所需要删除的数据库!",
  573. center: true,
  574. });
  575. }
  576. // let data = {
  577. // id: row.id,
  578. // };
  579. // let res = await axios({
  580. // method: "post",
  581. // url: api.value + "/mhotel/housedelHouser.action",
  582. // headers: {
  583. // // token: sessionStorage.getItem("token"),
  584. // // user_head: sessionStorage.getItem("userhead"),
  585. // },
  586. // params: data,
  587. // });
  588. // if (res.data.code == 200) {
  589. // if (tableData.list.length == 1 && currentPage.value != 1) {
  590. // currentPage.value = currentPage.value - 1;
  591. // }
  592. // getList();
  593. // ElMessage({
  594. // type: "success",
  595. // showClose: true,
  596. // message: res.data.message,
  597. // center: true,
  598. // });
  599. // } else {
  600. // ElMessage({
  601. // type: "error",
  602. // showClose: true,
  603. // message: res.data.message,
  604. // center: true,
  605. // });
  606. // }
  607. // console.log(res);
  608. };
  609. const cancelSelDel = () => {
  610. selDelVisible.value = false;
  611. };
  612. // 多选框功能
  613. const handleSelectionChange = (val) => {
  614. console.log(val);
  615. selectData.list = val;
  616. };
  617. //导出功能
  618. // const importExcel = async () => {
  619. // if (searchInput.createTime == null) {
  620. // searchInput.createTime = "";
  621. // }
  622. // let data = new FormData();
  623. // data.set("car_number", searchInput.carnumber);
  624. // data.set("create_time", searchInput.createTime);
  625. // let res = await axios({
  626. // method: "post",
  627. // url: api.value + "/carBook/cinfotoExcel.action",
  628. // headers: {
  629. // token: sessionStorage.getItem("token"),
  630. // },
  631. // data: data,
  632. // });
  633. // // console.log(res, "导出账号");
  634. // if (res.data.code == 200) {
  635. // // const elt = document.createElement("a");
  636. // // elt.setAttribute(
  637. // // "href",
  638. // // "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl
  639. // // );
  640. // // elt.setAttribute("download", "file.png");
  641. // // elt.style.display = "none";
  642. // // document.body.appendChild(elt);
  643. // // elt.click();
  644. // var downloadPath = "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl;
  645. // console.log("获得地址数据:", downloadPath);
  646. // var downloadLink = document.createElement("a");
  647. // downloadLink.style.display = "none"; // 使其隐藏
  648. // downloadLink.href = downloadPath;
  649. // downloadLink.download = "";
  650. // downloadLink.click();
  651. // document.body.appendChild(downloadLink);
  652. // document.body.removeChild(downloadLink);
  653. // ElMessage({
  654. // type: "success",
  655. // showClose: true,
  656. // message: res.data.message,
  657. // center: true,
  658. // });
  659. // } else {
  660. // ElMessage({
  661. // type: "error",
  662. // showClose: true,
  663. // message: res.data.message,
  664. // center: true,
  665. // });
  666. // }
  667. // };
  668. // 表格斑马纹颜色修改
  669. const tableRowClassName = ({ row, rowIndex }) => {
  670. if (rowIndex % 2 === 0) {
  671. return "even";
  672. } else if (rowIndex % 2 !== 0) {
  673. return "odd";
  674. }
  675. return "";
  676. };
  677. // 分页
  678. const handleCurrentChange = (value) => {
  679. // console.log(value);
  680. currentPage.value = value;
  681. getList();
  682. };
  683. onBeforeMount(async () => {
  684. api.value = store.state.user.api;
  685. getList();
  686. });
  687. onUnmounted(() => {
  688. // document.removeEventListener("keyup", Enters);
  689. });
  690. </script>
  691. <style scoped lang="scss">
  692. .content-box {
  693. width: 97.5%;
  694. height: 89%;
  695. margin: 20px auto;
  696. background-color: #fff;
  697. color: #fff;
  698. display: flex;
  699. flex-direction: column;
  700. box-shadow: 0px 3px 10px rgba(0, 97, 255, 0.2);
  701. .left {
  702. // width: calc(100wh - 40px);
  703. display: flex;
  704. align-items: center;
  705. height: 60px;
  706. margin: 0 30px;
  707. border-bottom: 1px solid #ccc;
  708. color: rgb(0, 0, 0);
  709. font-size: 18px;
  710. font-weight: 600;
  711. span {
  712. margin-right: 20px;
  713. cursor: pointer;
  714. }
  715. .is_active {
  716. color: rgba(111, 182, 184, 1);
  717. }
  718. }
  719. .middle {
  720. width: 96%;
  721. margin: 0 auto;
  722. color: #000;
  723. // border-bottom: 1px solid rgb(231, 231, 231);
  724. .filter {
  725. display: flex;
  726. flex-wrap: wrap;
  727. align-items: center;
  728. margin: 10px 0 0 0;
  729. .search {
  730. color: #fff;
  731. }
  732. .condition {
  733. display: flex;
  734. align-items: center;
  735. margin: 10px 30px 10px 0;
  736. .sel {
  737. margin-right: 10px;
  738. }
  739. :deep(.el-input .el-input__inner) {
  740. font-size: 14px;
  741. }
  742. }
  743. }
  744. .gongneng {
  745. margin: 10px 0 20px 0;
  746. span {
  747. color: #fff;
  748. }
  749. .el-button {
  750. margin-right: 10px;
  751. }
  752. }
  753. :deep(.cont) {
  754. width: 60%;
  755. margin: 20px auto;
  756. }
  757. :deep(.download) {
  758. display: flex;
  759. align-items: center;
  760. margin: 10px;
  761. }
  762. :deep(.download span) {
  763. font-size: 16px;
  764. margin-left: 20px;
  765. }
  766. :deep(.cont .el-button) {
  767. margin-left: 60px;
  768. margin-bottom: 30px;
  769. }
  770. :deep(.cont .accomplish) {
  771. width: 100%;
  772. display: flex;
  773. justify-content: center;
  774. }
  775. :deep(.cont .accomplish .el-button) {
  776. width: 50%;
  777. margin: 0;
  778. }
  779. }
  780. .footer {
  781. width: 96%;
  782. height: 550px;
  783. margin: 10px auto 30px;
  784. .el-table--fit {
  785. height: 100%;
  786. :deep(.el-table__header-wrapper) {
  787. background-color: #000;
  788. font-size: 14px;
  789. tr {
  790. // color: #000;
  791. }
  792. }
  793. :deep(.el-table__row) {
  794. height: 50px;
  795. font-size: 14px;
  796. // color: #000;
  797. &:hover {
  798. td {
  799. background-color: rgba(223, 236, 254, 1);
  800. }
  801. }
  802. }
  803. :deep(.el-table__row td) {
  804. padding: 0;
  805. border: 0;
  806. .normal {
  807. background-color: rgba(139, 195, 74, 1);
  808. color: #fff;
  809. padding: 4px;
  810. }
  811. }
  812. .el-button--primary {
  813. margin-left: 5px;
  814. }
  815. :deep(.el-table__body .even) {
  816. background-color: #fff;
  817. }
  818. :deep(.el-table__body .odd) {
  819. background-color: rgba(240, 243, 247, 1);
  820. }
  821. :deep(.edit) {
  822. display: flex;
  823. align-items: center;
  824. justify-content: center;
  825. color: rgba(111, 182, 184, 1);
  826. }
  827. :deep(.look) {
  828. padding: 0 10px;
  829. cursor: pointer;
  830. color: rgba(30, 125, 251, 1);
  831. }
  832. .del {
  833. padding: 0 10px;
  834. color: rgba(212, 48, 48, 1);
  835. cursor: pointer;
  836. }
  837. // :deep(.look):hover {
  838. // color: red;
  839. // }
  840. // :deep(.del):hover {
  841. // color: red;
  842. // }
  843. }
  844. }
  845. // 编辑按钮
  846. :deep(.editDialog) {
  847. // height: 420px;
  848. border-radius: 11px;
  849. .el-dialog__header {
  850. border-radius: 11px 11px 0 0;
  851. background: rgba(237, 241, 245, 1);
  852. font-weight: 600;
  853. margin: 0;
  854. .el-dialog__headerbtn {
  855. outline: none;
  856. }
  857. }
  858. .el-dialog__body {
  859. padding: 30px 30px 10px 30px;
  860. .el-form-item__content {
  861. width: 200px;
  862. .el-input-group__append {
  863. background-color: rgba(222, 234, 252, 1);
  864. color: rgba(0, 97, 255, 1);
  865. cursor: pointer;
  866. user-select: none;
  867. }
  868. }
  869. .el-form {
  870. .typeTitle {
  871. display: block;
  872. color: red;
  873. margin: 0 0 6px 100px;
  874. }
  875. .account {
  876. display: flex;
  877. justify-content: space-between;
  878. .el-form-item {
  879. .el-form-item__content {
  880. width: 300px;
  881. }
  882. .el-input {
  883. width: 300px;
  884. }
  885. }
  886. }
  887. }
  888. .options {
  889. margin: 50px 20px 20px 0;
  890. width: 100%;
  891. .el-form-item__content {
  892. display: flex;
  893. flex-direction: row-reverse;
  894. }
  895. .queding {
  896. color: #fff;
  897. margin-left: 15px;
  898. }
  899. }
  900. }
  901. }
  902. // 删除数据库
  903. :deep(.closeAccount) {
  904. // height: 600px;
  905. overflow: hidden;
  906. border-radius: 11px;
  907. .el-dialog__header {
  908. border-radius: 11px 11px 0 0;
  909. background: rgba(245, 249, 255, 1);
  910. font-weight: 600;
  911. height: 60px;
  912. padding: 0 20px;
  913. line-height: 60px;
  914. margin: 0;
  915. border-bottom: 1px solid rgba(230, 230, 230, 1);
  916. .el-dialog__headerbtn {
  917. outline: none;
  918. }
  919. }
  920. .el-dialog__body {
  921. padding: 0px 20px 20px 20px;
  922. // height: 200px;
  923. // display: flex;
  924. // flex-direction: column-reverse;
  925. .content {
  926. height: 80px;
  927. font-size: 16px;
  928. padding: 20px 30px;
  929. display: flex;
  930. img {
  931. width: 25px;
  932. height: 25px;
  933. margin: 0 8px 0 0;
  934. }
  935. }
  936. .option {
  937. display: flex;
  938. flex-direction: row-reverse;
  939. align-items: center;
  940. margin: 10px 0;
  941. .queding {
  942. margin-left: 20px;
  943. }
  944. }
  945. }
  946. }
  947. .pageSize {
  948. display: flex;
  949. align-items: center;
  950. justify-content: space-between;
  951. margin: 0 30px;
  952. span {
  953. color: #000;
  954. }
  955. .el-pagination {
  956. // width: 1600px;
  957. :deep(.el-pagination__total) {
  958. color: #000;
  959. }
  960. :deep(.el-pagination__goto) {
  961. color: #000;
  962. }
  963. :deep(.el-pagination__classifier) {
  964. color: #000;
  965. }
  966. :deep(.el-input__wrapper) {
  967. border: 1px solid rgba(0, 0, 0, 1);
  968. border-radius: 5px;
  969. box-shadow: none;
  970. }
  971. :deep(.el-pager li) {
  972. margin: 0 5px;
  973. border: 1px solid rgba(0, 0, 0, 1);
  974. border-radius: 5px;
  975. background-color: transparent;
  976. }
  977. :deep(.el-pager li.is-active) {
  978. // background-color: rgba(0, 97, 255, 0.8);
  979. border: 1px solid rgba(0, 97, 255, 1);
  980. color: rgba(0, 97, 255, 1);
  981. }
  982. :deep(.btn-prev) {
  983. margin-right: 5px;
  984. border: 1px solid rgba(0, 0, 0, 1);
  985. border-radius: 5px;
  986. background-color: transparent;
  987. }
  988. :deep(.btn-next) {
  989. margin-left: 5px;
  990. border: 1px solid rgba(0, 0, 0, 1);
  991. border-radius: 5px;
  992. background-color: transparent;
  993. }
  994. }
  995. }
  996. }
  997. .el-input {
  998. width: 192px;
  999. }
  1000. </style>