index.vue 33 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247
  1. <template>
  2. <div class="inform">
  3. <el-card class="box-card">
  4. <!-- 标题区域 -->
  5. <div slot="header" class="clearfix">
  6. <div class="inform-title">公告管理</div>
  7. </div>
  8. <!-- 主体内容区域 -->
  9. <div class="inform-body">
  10. <!-- 筛选条件区域 -->
  11. <div class="order-top">
  12. <div style="display: flex">
  13. <!-- 车牌号筛选 -->
  14. <div class="plateNum">
  15. <span>关键字:</span>
  16. <el-input
  17. placeholder=" 请输入关键字"
  18. style="width: 208px; margin-right: 53px"
  19. clearable
  20. v-model="value"
  21. @change="keyword"
  22. >
  23. <i slot="prefix" class="el-input__icon el-icon-search"></i>
  24. </el-input>
  25. </div>
  26. <!--时间筛选 -->
  27. <div class="paydate">
  28. <span>时间筛选:</span>
  29. <el-date-picker
  30. v-model="timeValue"
  31. align="center"
  32. type="datetimerange"
  33. format="yyyy-MM-dd HH:mm:ss"
  34. value-format="yyyy-MM-dd HH:mm:ss"
  35. range-separator="至"
  36. start-placeholder="开始日期"
  37. end-placeholder="结束日期"
  38. @change="getStartTime"
  39. ></el-date-picker>
  40. </div>
  41. </div>
  42. <div style="display: flex" class="addblock">
  43. <div class="addcar export" @click="addCar">新增公告</div>
  44. <!-- 详情弹窗区域 -->
  45. <el-dialog
  46. :title="addTitle"
  47. :visible.sync="dialogVisible"
  48. width="30%"
  49. >
  50. <div class="affiche-centent">
  51. <div class="title">内容:</div>
  52. <div class="content">
  53. <el-input
  54. type="textarea"
  55. placeholder="请输入公告内容"
  56. v-model="content"
  57. maxlength="100"
  58. show-word-limit
  59. ></el-input>
  60. </div>
  61. </div>
  62. <div class="btn">
  63. <el-button @click="resetForm('ruleForm')" plain>取消</el-button>
  64. <el-button type="primary" @click="submitForm">确认</el-button>
  65. </div>
  66. </el-dialog>
  67. <div class="export" @click="exportExcel">导出表单</div>
  68. </div>
  69. </div>
  70. <!-- 表格区域 -->
  71. <div class="inform-table">
  72. <!-- 表格区域 -->
  73. <el-table
  74. v-loading="loading"
  75. element-loading-text="拼命加载中"
  76. element-loading-spinner="el-icon-loading"
  77. element-loading-background="rgba(0, 0, 0, 0.8)"
  78. :data="tableData"
  79. @selection-change="handleSelectionChange"
  80. max-height="550"
  81. style="width: 100%; height: 550px"
  82. stripe
  83. class="Devicetable"
  84. :cell-style="rowbg"
  85. :header-cell-style="{
  86. color: ' rgba(0, 0, 0, 1)',
  87. background: 'rgba(230, 236, 254, 1)'
  88. }"
  89. >
  90. <el-table-column
  91. width="120"
  92. label="序号"
  93. type="index"
  94. align="center"
  95. ></el-table-column>
  96. <el-table-column
  97. prop="create_time"
  98. align="center"
  99. label="时间"
  100. width="350"
  101. ></el-table-column>
  102. <el-table-column
  103. prop="content"
  104. align="center"
  105. label="内容"
  106. width="500"
  107. :show-overflow-tooltip="true"
  108. ></el-table-column>
  109. <el-table-column align="center" label="当前显示" width="300">
  110. <template slot-scope="{ row }">
  111. <div class="lookIcon">
  112. <img
  113. src="../../assets/images/eye1.png"
  114. alt
  115. v-if="row.state == 0"
  116. @click="look(row)"
  117. />
  118. <img src="../../assets/images/eye_active.png" alt v-else />
  119. </div>
  120. </template>
  121. </el-table-column>
  122. <el-table-column align="center" label="操作" width="200">
  123. <template slot-scope="{ row }">
  124. <!-- 详情按钮 -->
  125. <span
  126. @click="amendCar(row)"
  127. class="operate"
  128. style="margin-right: 5px"
  129. >修改</span
  130. >
  131. <!-- 删除按钮 -->
  132. <span @click="handleDelete(row)" class="operate">删除</span>
  133. </template>
  134. </el-table-column>
  135. </el-table>
  136. </div>
  137. <!-- 分页器区域 -->
  138. <div class="block">
  139. <!-- <el-pagination
  140. background
  141. :page-sizes="[100, 200, 300, 400]"
  142. :page-size="100"
  143. layout="prev, pager, next"
  144. :total="1000"
  145. >
  146. </el-pagination>-->
  147. <el-pagination
  148. @current-change="handleCurrentChange"
  149. :page-size="9"
  150. :current-page="curPage"
  151. layout="total, prev, pager, next, jumper"
  152. :total="total"
  153. ></el-pagination>
  154. </div>
  155. </div>
  156. </el-card>
  157. </div>
  158. </template>
  159. <script>
  160. import FileSaver from "file-saver";
  161. import * as XLSX from "xlsx";
  162. import { nextTick } from "vue";
  163. export default {
  164. name: "role",
  165. data() {
  166. return {
  167. loading: false,
  168. // 显示的总数据
  169. tableData: [],
  170. // 状态数组
  171. options: [
  172. {
  173. value: 0,
  174. label: "超级管理员"
  175. },
  176. {
  177. value: 1,
  178. label: "管理员"
  179. }
  180. ],
  181. timeValue: "", // 时间筛选
  182. value: "", // 车牌号
  183. state: "超级管理员", // 车辆类型
  184. curPage: 1, // 当前页
  185. total: 1,
  186. dialogVisible: false, // 新增车辆窗口显示
  187. roleState: "管理员",
  188. addTitle: "", // 弹框标题
  189. roleType: [
  190. {
  191. value: 0,
  192. label: "管理员"
  193. },
  194. {
  195. value: 1,
  196. label: "超级管理员"
  197. }
  198. ],
  199. content: "", // 公告内容
  200. id: "", // 列表id
  201. src: "", // 使用当前公告的图片
  202. type: "", // 当前修改的列表是否为选中状态
  203. select: {
  204. id: ""
  205. }
  206. };
  207. },
  208. mounted() {
  209. document.getElementsByClassName(
  210. "el-pagination__jump"
  211. )[0].childNodes[0].nodeValue = "跳转";
  212. this.getData(1);
  213. },
  214. methods: {
  215. // 获取表格数据
  216. async getData(page) {
  217. let data;
  218. // 判断关键字
  219. if (this.value && !this.timeValue) {
  220. let params = { page: page, rows: 9, content: this.value };
  221. data = await this.API.affiche.adverquery(params);
  222. }
  223. // 判断日期
  224. else if (!this.value && this.timeValue) {
  225. let params = {
  226. page: page,
  227. rows: 9,
  228. start_time: this.timeValue[0],
  229. end_time: this.timeValue[1]
  230. };
  231. data = await this.API.affiche.adverquery(params);
  232. }
  233. // 判断关键字和日期
  234. else if (this.value && this.timeValue) {
  235. let params = {
  236. page: page,
  237. rows: 9,
  238. content: this.value,
  239. start_time: this.timeValue[0],
  240. end_time: this.timeValue[1]
  241. };
  242. data = await this.API.affiche.adverquery(params);
  243. } else {
  244. data = await this.API.affiche.adverquery({ page: page, rows: 9 });
  245. }
  246. if (data.total == 0) {
  247. this.tableData = [];
  248. this.total = 0;
  249. } else {
  250. this.tableData = data.rows;
  251. this.total = data.total;
  252. }
  253. this.tableData.forEach(item => {
  254. if (item.state == 1) {
  255. this.select.id = item.id;
  256. }
  257. });
  258. this.$nextTick(() => {
  259. let active = document.getElementsByClassName("el-table__row");
  260. // console.log(active[0]);
  261. if (data.rows[0].state == 1) {
  262. active[0].style.color = "rgba(52, 92, 254, 1)";
  263. } else {
  264. active[0].style.color = "#000";
  265. }
  266. });
  267. // console.log(data);
  268. },
  269. // 新增公告
  270. addCar() {
  271. this.addTitle = "新增公告";
  272. this.content = "";
  273. this.dialogVisible = true;
  274. },
  275. async submitForm() {
  276. if (this.addTitle === "新增公告") {
  277. let params = {
  278. content: this.content
  279. };
  280. let data = await this.API.affiche.adveradd(params);
  281. // console.log(data);
  282. if (data.code == 200) {
  283. this.$message({
  284. showClose: true,
  285. message: data.message,
  286. type: "success"
  287. });
  288. } else {
  289. this.$message({
  290. showClose: true,
  291. message: data.message,
  292. type: "error"
  293. });
  294. }
  295. this.getData(1);
  296. } else if (this.addTitle === "修改公告") {
  297. let params = {
  298. id: this.id,
  299. content: this.content
  300. };
  301. let data = await this.API.affiche.adverupdate(params);
  302. // console.log(data);
  303. if (data.code == 200) {
  304. this.$message({
  305. showClose: true,
  306. message: data.message,
  307. type: "success"
  308. });
  309. } else {
  310. this.$message({
  311. showClose: true,
  312. message: data.message,
  313. type: "error"
  314. });
  315. }
  316. if (this.id == this.select.id) {
  317. let row = { id: this.id };
  318. this.look(row);
  319. } else {
  320. this.getData(this.curPage);
  321. }
  322. }
  323. this.dialogVisible = false;
  324. },
  325. resetForm(formName) {
  326. this.dialogVisible = false;
  327. this.content = "";
  328. },
  329. // 关键字搜索
  330. keyword() {
  331. // console.log("关键字搜索触发");
  332. this.getData(1);
  333. this.curPage = 1;
  334. },
  335. // 时间筛选车辆
  336. getStartTime() {
  337. // console.log("时间筛选触发");
  338. this.getData(1);
  339. this.curPage = 1;
  340. },
  341. // 修改公告
  342. amendCar(row) {
  343. this.addTitle = "修改公告";
  344. this.dialogVisible = true;
  345. this.content = row.content;
  346. this.id = row.id;
  347. },
  348. notarize(formName) {
  349. this.$refs[formName].validate(valid => {
  350. if (valid) {
  351. alert("submit!");
  352. } else {
  353. // console.log("error submit!!");
  354. return false;
  355. }
  356. });
  357. },
  358. cancel(formName) {
  359. this.dialogVisible = false;
  360. this.$refs[formName].resetFields();
  361. },
  362. // 使用当前公告
  363. async look(row) {
  364. // console.log(row);
  365. // this.tableData.forEach((item, index) => {
  366. // if (item.state == 1) {
  367. // let active = document.getElementsByClassName("el-table__row");
  368. // console.log(active[0]);
  369. // active[0].style.color = "rgba(52, 92, 254, 1)";
  370. // }
  371. // });
  372. this.loading = true;
  373. let data = await this.API.affiche.adverupdateState({ id: row.id });
  374. if (data.code == 200) {
  375. this.$message({
  376. showClose: true,
  377. message: data.message,
  378. type: "success"
  379. });
  380. } else {
  381. this.$message({
  382. showClose: true,
  383. message: data.message,
  384. type: "error"
  385. });
  386. }
  387. this.getData(1);
  388. this.curPage = 1;
  389. this.loading = false;
  390. },
  391. // 导出订单按钮回调
  392. async exportExcel() {
  393. let params;
  394. // 关键字搜索
  395. if (this.value && !this.timeValue) {
  396. params = {
  397. content: this.value
  398. };
  399. }
  400. // 判断筛选时间
  401. else if (!this.value && this.timeValue) {
  402. params = {
  403. start_time: this.timeValue[0],
  404. end_time: this.timeValue[1]
  405. };
  406. }
  407. // 当关键字搜索和筛选时间同时存在
  408. else if (this.value && this.timeValue) {
  409. params = {
  410. content: this.value,
  411. start_time: this.timeValue[0],
  412. end_time: this.timeValue[1]
  413. };
  414. } else {
  415. params = {};
  416. }
  417. let data = await this.API.affiche.advertoExcel(params);
  418. // console.log(data);
  419. if (data.code == 200) {
  420. let url = data.downurl.slice(11);
  421. // console.log(url);
  422. window.open("https://chtech.ncjti.edu.cn/carstop/carMonitor" + url);
  423. this.$message({
  424. showClose: true,
  425. message: data.message,
  426. type: "success"
  427. });
  428. } else {
  429. this.$message({
  430. showClose: true,
  431. message: data.message,
  432. type: "error"
  433. });
  434. }
  435. },
  436. //删除按钮回调
  437. async handleDelete(row) {
  438. this.$confirm("此操作将永久删除该条公告, 是否继续?", "提示", {
  439. confirmButtonText: "确定",
  440. cancelButtonText: "取消",
  441. type: "warning"
  442. })
  443. .then(async () => {
  444. if (this.tableData.length == 1) {
  445. this.curPage = this.curPage - 1;
  446. }
  447. let data = await this.API.affiche.adverdel({ id: row.id });
  448. this.getData(this.curPage);
  449. if (data.code == 200) {
  450. this.$message({
  451. showClose: true,
  452. message: data.message,
  453. type: "success"
  454. });
  455. } else {
  456. this.$message({
  457. showClose: true,
  458. message: data.message,
  459. type: "error"
  460. });
  461. }
  462. })
  463. .catch(() => {
  464. this.$message({
  465. type: "info",
  466. message: "已取消删除"
  467. });
  468. });
  469. },
  470. // 翻页逻辑回调
  471. handleCurrentChange(val) {
  472. // console.log(val);
  473. this.getData(val);
  474. this.curPage = val;
  475. },
  476. // 多选框按钮操作
  477. handleSelectionChange(list) {
  478. // console.log(list);
  479. },
  480. // 表格样式设置
  481. rowbg(row) {
  482. if (row.rowIndex % 2 != 0) {
  483. return { background: "rgba(245, 248, 252, 1)", "border-radius": "5px" };
  484. }
  485. }
  486. }
  487. };
  488. </script>
  489. <style lang="scss" scoped>
  490. .inform {
  491. display: flex;
  492. justify-content: center;
  493. align-items: center;
  494. height: 100%;
  495. }
  496. .inform /deep/ .el-card {
  497. width: 97.5%;
  498. height: 95%;
  499. box-shadow: 0px 3px 21px 0px rgba(60, 108, 254, 0.16) !important;
  500. border-radius: 8px;
  501. .el-card__header {
  502. border-bottom: none;
  503. }
  504. .clearfix {
  505. height: 66px;
  506. box-sizing: border-box;
  507. display: flex;
  508. margin: 0 36px;
  509. border-block: 1px solid rgba(230, 230, 230, 1);
  510. border-top: none;
  511. justify-content: space-between;
  512. align-items: center;
  513. .inform-title {
  514. width: 96px;
  515. height: 36px;
  516. color: rgba(0, 0, 0, 1);
  517. font-size: 24px;
  518. font-weight: 600;
  519. }
  520. .inform-header {
  521. display: flex;
  522. margin-right: 29px;
  523. .el-button {
  524. margin-left: 9px;
  525. background-color: rgba(41, 109, 227, 1);
  526. }
  527. }
  528. }
  529. .carNum {
  530. display: flex;
  531. margin: 0 36px;
  532. padding: 31px 0 22px 0;
  533. border-bottom: 1px dashed rgba(217, 217, 217, 1);
  534. flex-wrap: wrap;
  535. .carType {
  536. width: 288px;
  537. height: 84px;
  538. background: #f4f6fa;
  539. border-radius: 10px;
  540. margin: 0 25px 15px 0;
  541. display: flex;
  542. align-items: center;
  543. justify-content: center;
  544. &:nth-of-type(5n) {
  545. margin: 0 0 15px 0;
  546. }
  547. .type {
  548. height: 24px;
  549. border-right: 2px solid rgba(186, 186, 186, 1);
  550. padding: 0 22px 0 0;
  551. font-size: 18px;
  552. font-family: Microsoft YaHei-3970(82674968);
  553. font-weight: 400;
  554. color: #292b34;
  555. }
  556. .num {
  557. width: 60px;
  558. height: 29px;
  559. font-size: 34px;
  560. font-family: Microsoft YaHei-3970(82674968);
  561. font-weight: 600;
  562. color: #292b34;
  563. margin: 0 5px 0 29px;
  564. transform: translateY(-7px);
  565. }
  566. }
  567. }
  568. .inform-body {
  569. margin: 0 36px;
  570. .order-top {
  571. display: flex;
  572. align-items: center;
  573. justify-content: space-between;
  574. padding: 15px 0 15px 0;
  575. font-size: 16px;
  576. font-weight: 400;
  577. color: #000;
  578. .el-button {
  579. background-color: rgba(41, 109, 227, 1);
  580. color: #fff;
  581. margin-left: 9px;
  582. }
  583. .paydate {
  584. margin: 0 51px 0 0;
  585. .el-date-editor {
  586. margin-left: 7px;
  587. width: 373px;
  588. .el-range__icon {
  589. display: block;
  590. }
  591. }
  592. }
  593. .state {
  594. margin-left: 51px;
  595. .el-input {
  596. width: 150px;
  597. }
  598. }
  599. .export {
  600. width: 94px;
  601. height: 42px;
  602. color: #fff;
  603. text-align: center;
  604. line-height: 42px;
  605. background: rgba(65, 106, 165, 1);
  606. cursor: pointer;
  607. border-radius: 5px;
  608. }
  609. .addblock {
  610. .addcar {
  611. background: rgba(43, 76, 254, 1);
  612. margin-right: 15px;
  613. }
  614. .el-dialog__wrapper {
  615. overflow: hidden;
  616. .el-dialog {
  617. width: 600px !important;
  618. height: 497px;
  619. background: #ffffff;
  620. box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.29);
  621. border-radius: 10px;
  622. margin-top: 230px !important;
  623. .el-dialog__header {
  624. height: 60px;
  625. padding: 0;
  626. border-top-left-radius: 10px;
  627. border-top-right-radius: 10px;
  628. border-bottom: 1px solid rgba(230, 230, 230, 1);
  629. background-color: rgba(230, 235, 254, 1);
  630. span {
  631. float: left;
  632. font-size: 20px;
  633. font-weight: 500;
  634. color: #000;
  635. line-height: 60px;
  636. margin-left: 30px;
  637. }
  638. .el-dialog__close {
  639. width: 35px;
  640. height: 35px;
  641. &::before {
  642. font-size: 24px;
  643. color: #000;
  644. }
  645. }
  646. }
  647. .el-dialog__body {
  648. padding: 0;
  649. display: flex;
  650. flex-direction: column;
  651. align-items: center;
  652. margin-top: 40px;
  653. .affiche-centent {
  654. .title {
  655. font-size: 18px;
  656. font-family: Microsoft YaHei-3970(82674968);
  657. font-weight: 400;
  658. color: #53575a;
  659. margin-bottom: 8px;
  660. }
  661. .content {
  662. .el-textarea {
  663. width: 437px;
  664. height: 188px;
  665. border-radius: 6px;
  666. .el-textarea__inner {
  667. width: 437px;
  668. height: 188px;
  669. font-size: 17px;
  670. }
  671. .el-input__count {
  672. font-size: 17px;
  673. }
  674. }
  675. }
  676. }
  677. // 输入框
  678. .btn {
  679. margin-top: 36px;
  680. .el-button--default {
  681. background-color: #fff;
  682. border: 1px solid rgba(43, 76, 254, 1);
  683. color: rgba(43, 76, 254, 1);
  684. margin: 15px 36px 0 191px;
  685. }
  686. .el-button--primary {
  687. background-color: rgba(43, 76, 254, 1);
  688. }
  689. .el-input {
  690. width: 222px;
  691. }
  692. .el-input__inner {
  693. width: 222px;
  694. height: 47px;
  695. border-radius: 6px;
  696. }
  697. }
  698. .userinfo {
  699. font-size: 20px;
  700. font-weight: 500;
  701. color: rgba(0, 0, 0, 1);
  702. text-align: left;
  703. margin-top: 15px;
  704. }
  705. .info {
  706. display: flex;
  707. .user {
  708. .name {
  709. text-align: left;
  710. }
  711. .el-input {
  712. width: 283px;
  713. height: 38px;
  714. opacity: 1;
  715. margin-right: 81px;
  716. .el-input__inner {
  717. color: #000;
  718. }
  719. }
  720. }
  721. }
  722. .rate {
  723. font-size: 20px;
  724. font-weight: 500;
  725. color: rgba(0, 0, 0, 1);
  726. text-align: left;
  727. margin: 15px 0;
  728. }
  729. .water {
  730. text-align: left;
  731. font-size: 16px;
  732. font-weight: 400;
  733. color: rgba(0, 0, 0, 1);
  734. }
  735. .el-table {
  736. margin: 10px 0;
  737. tr {
  738. height: 48px;
  739. }
  740. .el-table__body-wrapper {
  741. overflow: visible;
  742. }
  743. }
  744. }
  745. }
  746. }
  747. }
  748. }
  749. .inform-table {
  750. .execlTable,
  751. .selectTable {
  752. display: none;
  753. }
  754. .el-table {
  755. font-weight: 400;
  756. font-size: 16px;
  757. color: rgba(0, 0, 0, 1);
  758. margin: 0 auto;
  759. .el-table__header-wrapper {
  760. border-radius: 5px;
  761. .el-table__header {
  762. width: 100% !important;
  763. }
  764. .el-checkbox.is-checked {
  765. .el-checkbox__inner {
  766. background-color: rgba(41, 109, 227, 1);
  767. }
  768. }
  769. .el-checkbox__input.is-checked,
  770. .el-checkbox__input.is-indeterminate {
  771. .el-checkbox__inner {
  772. background-color: rgba(41, 109, 227, 1);
  773. }
  774. }
  775. }
  776. .el-table__body-wrapper {
  777. .el-table__body {
  778. width: 100% !important;
  779. .el-table__row {
  780. .el-table_1_column_7 {
  781. .cell {
  782. .operate {
  783. .el-dialog {
  784. width: 600px !important;
  785. height: 497px;
  786. background: #ffffff;
  787. box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.29);
  788. border-radius: 10px;
  789. .el-dialog__header {
  790. height: 60px;
  791. padding: 0;
  792. border-top-left-radius: 10px;
  793. border-top-right-radius: 10px;
  794. border-bottom: 1px solid rgba(230, 230, 230, 1);
  795. background-color: rgba(230, 235, 254, 1);
  796. span {
  797. float: left;
  798. font-size: 20px;
  799. font-weight: 500;
  800. color: #000;
  801. line-height: 60px;
  802. margin-left: 30px;
  803. }
  804. .el-dialog__close {
  805. width: 35px;
  806. height: 35px;
  807. &::before {
  808. font-size: 24px;
  809. color: #000;
  810. }
  811. }
  812. }
  813. .el-dialog__body {
  814. padding: 0;
  815. .el-form {
  816. margin: 39px 0 0 81px;
  817. .el-form-item {
  818. // 文字
  819. .el-form-item__label {
  820. height: 47px;
  821. font-size: 18px;
  822. line-height: 47px;
  823. font-family: Microsoft YaHei-3970(82674968);
  824. font-weight: 400;
  825. color: #53575a;
  826. }
  827. // 输入框
  828. .el-form-item__content {
  829. .el-button--default {
  830. background-color: #fff;
  831. border: 1px solid rgba(43, 76, 254, 1);
  832. color: rgba(43, 76, 254, 1);
  833. margin: 15px 36px 0 34px;
  834. }
  835. .el-button--primary {
  836. background-color: rgba(43, 76, 254, 1);
  837. }
  838. .el-input {
  839. width: 222px;
  840. }
  841. .el-input__inner {
  842. width: 222px;
  843. height: 47px;
  844. border-radius: 6px;
  845. }
  846. }
  847. }
  848. }
  849. .userinfo {
  850. font-size: 20px;
  851. font-weight: 500;
  852. color: rgba(0, 0, 0, 1);
  853. text-align: left;
  854. margin-top: 15px;
  855. }
  856. .info {
  857. display: flex;
  858. .user {
  859. .name {
  860. text-align: left;
  861. }
  862. .el-input {
  863. width: 283px;
  864. height: 38px;
  865. opacity: 1;
  866. margin-right: 81px;
  867. .el-input__inner {
  868. color: #000;
  869. }
  870. }
  871. }
  872. }
  873. .rate {
  874. font-size: 20px;
  875. font-weight: 500;
  876. color: rgba(0, 0, 0, 1);
  877. text-align: left;
  878. margin: 15px 0;
  879. }
  880. .water {
  881. text-align: left;
  882. font-size: 16px;
  883. font-weight: 400;
  884. color: rgba(0, 0, 0, 1);
  885. }
  886. .el-table {
  887. margin: 10px 0;
  888. tr {
  889. height: 48px;
  890. }
  891. .el-table__body-wrapper {
  892. overflow: visible;
  893. }
  894. }
  895. }
  896. }
  897. }
  898. }
  899. }
  900. }
  901. }
  902. }
  903. tr {
  904. height: 55px;
  905. td {
  906. padding: 0;
  907. .cell {
  908. .lookIcon {
  909. display: flex;
  910. align-items: center;
  911. justify-content: center;
  912. img {
  913. display: inline-block;
  914. cursor: pointer;
  915. width: 39px;
  916. height: 39px;
  917. }
  918. }
  919. .el-checkbox.is-checked {
  920. .el-checkbox__inner {
  921. background-color: rgba(41, 109, 227, 1);
  922. }
  923. }
  924. .is-indeterminate {
  925. .el-checkbox__inner {
  926. background-color: rgba(41, 109, 227, 1);
  927. }
  928. }
  929. .operate {
  930. display: inline-block;
  931. color: rgba(84, 136, 254, 1);
  932. cursor: pointer;
  933. font-size: 16px;
  934. font-weight: 400;
  935. width: 60px;
  936. height: 30px;
  937. line-height: 32px;
  938. border: 1px solid rgba(84, 136, 254, 1);
  939. border-radius: 15px;
  940. }
  941. .el-dialog__wrapper {
  942. overflow: hidden;
  943. .el-dialog {
  944. width: 600px !important;
  945. height: 497px;
  946. background: #ffffff;
  947. box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.29);
  948. border-radius: 10px;
  949. .el-dialog__header {
  950. height: 83px;
  951. border-bottom: 1px solid rgba(230, 230, 230, 1);
  952. span {
  953. float: left;
  954. font-size: 20px;
  955. font-weight: 500;
  956. color: #000;
  957. }
  958. .el-dialog__close {
  959. width: 35px;
  960. height: 35px;
  961. &::before {
  962. font-size: 24px;
  963. color: #000;
  964. }
  965. }
  966. }
  967. .el-dialog__body {
  968. padding: 0 38px;
  969. .userinfo {
  970. font-size: 20px;
  971. font-weight: 500;
  972. color: rgba(0, 0, 0, 1);
  973. text-align: left;
  974. margin-top: 15px;
  975. }
  976. .info {
  977. display: flex;
  978. .user {
  979. .name {
  980. text-align: left;
  981. }
  982. .el-input {
  983. width: 283px;
  984. height: 38px;
  985. opacity: 1;
  986. margin-right: 81px;
  987. .el-input__inner {
  988. color: #000;
  989. }
  990. }
  991. }
  992. }
  993. .rate {
  994. font-size: 20px;
  995. font-weight: 500;
  996. color: rgba(0, 0, 0, 1);
  997. text-align: left;
  998. margin: 15px 0;
  999. }
  1000. .water {
  1001. text-align: left;
  1002. font-size: 16px;
  1003. font-weight: 400;
  1004. color: rgba(0, 0, 0, 1);
  1005. }
  1006. .el-table {
  1007. margin: 10px 0;
  1008. tr {
  1009. height: 48px;
  1010. }
  1011. .el-table__body-wrapper {
  1012. overflow: visible;
  1013. }
  1014. }
  1015. }
  1016. }
  1017. }
  1018. .el-dialog__title {
  1019. color: rgba(41, 109, 227, 1);
  1020. cursor: pointer;
  1021. padding: 10px 18px 0 18px;
  1022. }
  1023. }
  1024. }
  1025. .el-checkbox__inner {
  1026. width: 18px;
  1027. height: 18px;
  1028. &::after {
  1029. transform: rotate(45deg) scaleY(1.5);
  1030. top: 3px;
  1031. left: 5px;
  1032. }
  1033. }
  1034. }
  1035. th {
  1036. font-weight: 400;
  1037. }
  1038. }
  1039. }
  1040. .block {
  1041. height: 36px;
  1042. margin: 40px 0 0 0;
  1043. float: right;
  1044. .el-pagination {
  1045. padding: 0;
  1046. .el-pagination__total {
  1047. font-size: 18px;
  1048. line-height: 36px;
  1049. }
  1050. button {
  1051. width: 36px;
  1052. background: #fff;
  1053. color: rgba(0, 0, 0, 1);
  1054. height: 36px;
  1055. font-size: 14px;
  1056. border: 1px solid rgba(112, 112, 112, 1);
  1057. border-radius: 8px;
  1058. }
  1059. ul {
  1060. .active {
  1061. background: #fff;
  1062. color: rgba(0, 97, 255, 1);
  1063. border: 1px solid rgba(0, 97, 255, 1);
  1064. box-sizing: border-box;
  1065. }
  1066. .el-icon {
  1067. border: none;
  1068. }
  1069. li {
  1070. background: #fff;
  1071. color: rgba(0, 0, 0, 1);
  1072. width: 36px;
  1073. height: 36px;
  1074. font-size: 14px;
  1075. border: 1px solid rgba(112, 112, 112, 1);
  1076. border-radius: 8px;
  1077. line-height: 36px;
  1078. margin-left: 8px;
  1079. }
  1080. }
  1081. .btn-next {
  1082. margin-left: 8px;
  1083. }
  1084. .el-pagination__jump {
  1085. color: rgba(0, 0, 0, 1);
  1086. font-size: 16px;
  1087. margin-left: 10px;
  1088. font-weight: 400;
  1089. height: 36px;
  1090. .el-input {
  1091. width: 65px;
  1092. height: 36px;
  1093. margin: 0 10px;
  1094. input {
  1095. width: 65px;
  1096. height: 36px;
  1097. border: 1px solid rgba(0, 0, 0, 1);
  1098. border-radius: 8px;
  1099. }
  1100. }
  1101. }
  1102. }
  1103. }
  1104. }
  1105. }
  1106. .box-card {
  1107. /deep/ .el-card__header {
  1108. padding: 0;
  1109. }
  1110. /deep/ .el-card__body {
  1111. padding: 0;
  1112. }
  1113. }
  1114. </style>
  1115. <style lang="scss">
  1116. .el-message-box__wrapper {
  1117. .el-button--primary {
  1118. background-color: #296de3;
  1119. }
  1120. }
  1121. </style>