contract.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. <template>
  2. <div class="record-warp">
  3. <div class="record-main">
  4. <div class="compare_out">
  5. <div class="user" @click="isClikcObj(true)">
  6. <img style="width: 100px" :src="userImg" /><span style="position: absolute"
  7. >用户对比</span
  8. >
  9. </div>
  10. <div class="user" @click="isClikcObj(false)">
  11. <img style="width: 100px" :src="planImg" /><span style="position: absolute"
  12. >计划对比</span
  13. >
  14. </div>
  15. </div>
  16. <!-- <img src="../../../assets/report/lv.png" alt=""> -->
  17. <el-row>
  18. <el-col :span="24">
  19. <div class="search-head">
  20. <el-input
  21. v-show="isUser"
  22. v-model="name"
  23. clearable
  24. placeholder="请输入姓名"
  25. ></el-input>
  26. <div v-show="isUser">&nbsp;&nbsp;&nbsp;&nbsp;</div>
  27. <el-input
  28. v-show="isUser"
  29. v-model="studentNumber"
  30. clearable
  31. placeholder="请输入学号"
  32. ></el-input>
  33. <div v-show="isUser">&nbsp;&nbsp;&nbsp;&nbsp;</div>
  34. <el-input
  35. v-show="!isUser"
  36. v-model="planName"
  37. clearable
  38. placeholder="请输入计划名称"
  39. ></el-input>
  40. <div v-show="!isUser">&nbsp;&nbsp;&nbsp;&nbsp;</div>
  41. <el-cascader
  42. placeholder="请选择组织架构"
  43. v-model="group"
  44. :options="groupData"
  45. :props="{ checkStrictly: true }"
  46. clearable
  47. ></el-cascader>
  48. &nbsp;&nbsp;&nbsp;&nbsp;
  49. <el-button type="primary" round icon="el-icon-search" @click="searchTarget"
  50. >搜索</el-button
  51. >
  52. <el-button type="info" round @click="clearSearch">清空</el-button>
  53. </div>
  54. </el-col>
  55. </el-row>
  56. <el-row class="add_user_class">
  57. <el-col :span="24">
  58. <div class="search-head"></div>
  59. </el-col>
  60. </el-row>
  61. <div class="table-content">
  62. <el-table
  63. v-show="isUser"
  64. :data="tableData"
  65. :row-style="{ height: '0px' }"
  66. :cell-style="{ padding: '5px' }"
  67. :header-cell-style="{ background: '#F8F8F8', color: '#606266' }"
  68. >
  69. <el-table-column
  70. v-if="isUser"
  71. show-overflow-tooltip
  72. prop="userName"
  73. label="姓名"
  74. align="center"
  75. width=""
  76. >
  77. </el-table-column>
  78. <el-table-column
  79. v-if="isUser"
  80. prop="userNo"
  81. label="学号"
  82. align="center"
  83. width=""
  84. >
  85. </el-table-column>
  86. <el-table-column
  87. v-if="isUser"
  88. prop="totalScore"
  89. label="总分"
  90. align="center"
  91. width=""
  92. >
  93. </el-table-column>
  94. <el-table-column
  95. v-if="isUser"
  96. prop="gender"
  97. label="性别"
  98. align="center"
  99. width=""
  100. :formatter="genderFun"
  101. >
  102. </el-table-column>
  103. <el-table-column
  104. v-if="isUser"
  105. prop="orgName"
  106. label="所属组织架构"
  107. align="center"
  108. width=""
  109. >
  110. </el-table-column>
  111. <el-table-column label="操作" width="400" align="center">
  112. <template slot-scope="scope">
  113. <div style="display: flex; align-items: center">
  114. <div class="detail_button_out" v-if="isUser">
  115. <div class="detail_button" @click="addUser(scope.row)">
  116. <img src="../../../assets/img/table/search.png" />
  117. <span> 个人报告列表 </span>
  118. </div>
  119. </div>
  120. <div class="detail_button_out" v-if="!isUser">
  121. <div class="detail_button" @click="planReport(scope.row)">
  122. <img src="../../../assets/img/table/search.png" />
  123. <span> 专业报告对比 </span>
  124. </div>
  125. </div>
  126. <div class="detail_button_out" v-if="!isUser">
  127. <div class="detail_button" @click="planUser(scope.row)">
  128. <img src="../../../assets/img/table/search.png" />
  129. <span> 个人报告列表 </span>
  130. </div>
  131. </div>
  132. </div>
  133. </template>
  134. </el-table-column>
  135. </el-table>
  136. </div>
  137. <div class="table-content">
  138. <el-table
  139. v-show="!isUser"
  140. :data="tableData"
  141. :row-style="{ height: '0px' }"
  142. :cell-style="{ padding: '5px' }"
  143. :header-cell-style="{ background: '#F8F8F8', color: '#606266' }"
  144. >
  145. <!-- <el-table-column prop="name" label="姓名" align="center" width="" show-overflow-tooltip>
  146. </el-table-column> -->
  147. <!-- <el-table-column
  148. v-if="isUser"
  149. show-overflow-tooltip
  150. prop="userName"
  151. label="姓名"
  152. align="center"
  153. width=""
  154. >
  155. </el-table-column>
  156. <el-table-column v-if="isUser" prop="userNo" label="学号" align="center" width="">
  157. </el-table-column>
  158. <el-table-column v-if="isUser" prop="totalScore" label="总分" align="center" width="">
  159. </el-table-column>
  160. <el-table-column
  161. v-if="isUser"
  162. prop="gender"
  163. label="性别"
  164. align="center"
  165. width=""
  166. :formatter="genderFun"
  167. >
  168. </el-table-column>
  169. <el-table-column
  170. v-if="isUser"
  171. prop="orgName"
  172. label="所属组织架构"
  173. align="center"
  174. width=""
  175. >
  176. </el-table-column> -->
  177. <el-table-column
  178. v-if="!isUser"
  179. show-overflow-tooltip
  180. prop="planName"
  181. label="计划名称"
  182. align="center"
  183. width=""
  184. >
  185. </el-table-column>
  186. <el-table-column
  187. v-if="!isUser"
  188. prop="createDate"
  189. label="创建时间"
  190. align="center"
  191. width=""
  192. >
  193. </el-table-column>
  194. <el-table-column
  195. v-if="!isUser"
  196. prop="planEndTime"
  197. label="结束时间"
  198. align="center"
  199. width=""
  200. >
  201. </el-table-column>
  202. <el-table-column
  203. v-if="!isUser"
  204. prop="createUserName"
  205. label="创建人"
  206. align="center"
  207. width=""
  208. >
  209. </el-table-column>
  210. <el-table-column
  211. v-if="!isUser"
  212. prop="planStatus"
  213. label="状态"
  214. :formatter="forMaPlan"
  215. align="center"
  216. width=""
  217. >
  218. </el-table-column>
  219. <el-table-column label="操作" width="400" align="center">
  220. <template slot-scope="scope">
  221. <div style="display: flex; align-items: center">
  222. <div class="detail_button_out" v-if="isUser">
  223. <div class="detail_button" @click="addUser(scope.row)">
  224. <img src="../../../assets/img/table/search.png" />
  225. <span> 个人报告列表 </span>
  226. </div>
  227. </div>
  228. <div class="detail_button_out" v-if="!isUser &&scope.row.planStatus=='3'">
  229. <div class="detail_button" @click="planReport(scope.row)">
  230. <img src="../../../assets/img/table/search.png" />
  231. <span> 专业报告对比 </span>
  232. </div>
  233. </div>
  234. <div class="detail_button_out" v-if="!isUser">
  235. <div class="detail_button" @click="planUser(scope.row)">
  236. <img src="../../../assets/img/table/search.png" />
  237. <span> 个人报告列表 </span>
  238. </div>
  239. </div>
  240. </div>
  241. </template>
  242. </el-table-column>
  243. </el-table>
  244. </div>
  245. <!-- small -->
  246. <el-pagination
  247. class="pag_class"
  248. background
  249. @size-change="handleSizeChange"
  250. @current-change="handleCurrentChange"
  251. :current-page.sync="pageNum"
  252. layout="total, sizes, prev, pager, next"
  253. :page-size="pageSize"
  254. :page-sizes="[10, 20, 50, 100]"
  255. :total="total"
  256. >
  257. </el-pagination>
  258. <!-- <el-pagination small background layout="total prev, pager, next" :total="36">
  259. </el-pagination> -->
  260. </div>
  261. <CompareUser ref="register" @search="searchTarget" />
  262. <ComparePlanUser ref="planUser" @search="searchTarget" />
  263. <ComparePlanProfession ref="planProfession" @search="searchTarget" />
  264. </div>
  265. </template>
  266. <script>
  267. import { oSessionStorage } from "../../../utils/utils";
  268. import compareUser from "../../../components/CompareUser.vue";
  269. import comparePlanUser from "../../../components/ComparePlanUser.vue";
  270. import comparePlanProfession from "../../../components/ComparePlanProfession.vue";
  271. import { basePath } from "../../../utils/http";
  272. import userImgActive from "../../../assets/report/lv.png";
  273. import userImgDefault from "../../../assets/report/white.png";
  274. export default {
  275. name: "userManage",
  276. components: {
  277. CompareUser: compareUser,
  278. ComparePlanUser: comparePlanUser,
  279. ComparePlanProfession: comparePlanProfession,
  280. },
  281. data() {
  282. return {
  283. //判断是用户还是计划对比
  284. isUser: true,
  285. //用户背景图
  286. userImg: userImgActive,
  287. //计划背景图
  288. planImg: userImgDefault,
  289. basePath: basePath,
  290. //上传文件的弹出款的标志
  291. fileVisible: false,
  292. //判断点击的是重置密码还是点击删除
  293. isDelete: false,
  294. //重置密码需要调用个userId
  295. userId: "",
  296. //充值密码使用userName
  297. userName: "",
  298. //重置密码弹出框
  299. resetVisible: false,
  300. //根据名称搜索
  301. planName: "",
  302. name: "",
  303. //搜索的用户编号
  304. studentNumber: "",
  305. //搜索的组织架构
  306. // 搜索需要的性别
  307. sex: "",
  308. group: "",
  309. ppData: [],
  310. groupData: [],
  311. options: [
  312. {
  313. value: "1",
  314. label: "选项1",
  315. children: [
  316. {
  317. value: "11",
  318. label: "选项11",
  319. children: [{ value: "111", label: "选项111" }],
  320. },
  321. ],
  322. },
  323. ],
  324. centerDialogVisible: false,
  325. editUserFlag: false,
  326. startTime: "",
  327. endTime: "",
  328. value1: null,
  329. total: 0,
  330. pageSize: 10,
  331. pageNum: 1,
  332. keyword: "",
  333. tableData: [],
  334. userInfo: {}, //用户信息
  335. invitationCode: "",
  336. roleType: "0",
  337. type: 0,
  338. view: {
  339. name: "",
  340. studentNumber: "",
  341. sex: "",
  342. orgName: "",
  343. },
  344. channel: "",
  345. channelList: [{ name: "渠道天成", id: "1" }],
  346. };
  347. },
  348. created() {},
  349. mounted() {
  350. this.userInfo = JSON.parse(oSessionStorage.getItem("userInfo"));
  351. this.getChannel();
  352. if (!this.userInfo) {
  353. //如果用户信息不存在跳转登陆页
  354. this.$router.push({ path: "/" });
  355. }
  356. this.searchTarget();
  357. },
  358. methods: {
  359. isClikcObj(val) {
  360. this.isUser = val;
  361. if (val) {
  362. this.userImg = userImgActive;
  363. this.planImg = userImgDefault;
  364. } else {
  365. this.planImg = userImgActive;
  366. this.userImg = userImgDefault;
  367. }
  368. this.searchTarget();
  369. },
  370. planReport(val) {
  371. this.$refs.planProfession.open(val);
  372. },
  373. forMaPlan(val) {
  374. if (val.planStatus == "1") {
  375. return "未开始";
  376. //
  377. } else if (val.planStatus == "2") {
  378. //
  379. return "进行中";
  380. } else if (val.planStatus == "3") {
  381. //
  382. return "已完成";
  383. }
  384. },
  385. //文件上传成功
  386. fileSuccess(res) {
  387. if (res.code == 200) {
  388. this.searchTarget();
  389. this.$message({
  390. message: res.msg,
  391. type: "success",
  392. });
  393. } else {
  394. this.$message({
  395. message: res.msg,
  396. type: "error",
  397. });
  398. }
  399. //查询列表
  400. },
  401. //文件上传失败
  402. fileError() {
  403. this.$message({
  404. message: "上传失败",
  405. type: "error",
  406. });
  407. },
  408. cancle() {
  409. this.resetVisible = false;
  410. },
  411. //提交文本
  412. submitCom() {
  413. //判断当前是否是
  414. if (this.isDelete) {
  415. this.deleteUser();
  416. //调用删除方法
  417. } else {
  418. this.resetFun();
  419. // 调用重置密码方法
  420. }
  421. },
  422. //性别---
  423. genderFun(val) {
  424. let sex = val.gender;
  425. if (sex == "1") {
  426. return "男";
  427. } else if (sex == "0") {
  428. return "女";
  429. } else {
  430. return sex;
  431. }
  432. },
  433. //每页多少条
  434. handleSizeChange(val) {
  435. this.pageSize=val;
  436. this.searchTarget();
  437. console.log(`每页 ${val} 条`);
  438. //将首页重置为1时---且总条数变化
  439. //设置为当前总条数
  440. },
  441. //获取组织架构方法--------------------开始-----------------------
  442. getChannel() {
  443. this.$http.get(`/org/findAllOrgByPOrgNo`, {}, (res) => {
  444. // this.$toast.success({message:'成功'});
  445. if (res && res.code == 200) {
  446. //将值赋值给list
  447. if (res.data.length > 0) {
  448. let resAdd = this.addPro(res.data);
  449. this.ppData = JSON.parse(JSON.stringify(resAdd));
  450. let forRes = this.arrToTree(resAdd);
  451. // console.log('格式化的结构')
  452. // console.log(forRes)
  453. let resultRes = this.deleteChildren(forRes);
  454. console.log("格式化的结构且去掉children");
  455. console.log(resultRes);
  456. this.groupData = resultRes;
  457. } else {
  458. this.groupData = [];
  459. }
  460. // this.channelList = res.data;
  461. } else {
  462. this.$message.error(res.msg);
  463. }
  464. });
  465. },
  466. //z增加
  467. addPro(val) {
  468. let data = JSON.parse(JSON.stringify(val));
  469. for (let i = 0; i < val.length; i++) {
  470. data[i].value = val[i].orgNo;
  471. data[i].label = val[i].orgName;
  472. }
  473. return data;
  474. },
  475. //非递归方式:将平铺数据转换为树形结构数据
  476. arrToTree(arr) {
  477. let data = arr.filter((item) => {
  478. item.children = arr.filter((e) => {
  479. return item.orgNo === e.parentOrgNo;
  480. });
  481. return this.userInfo.orgNo == item.orgNo
  482. // return !item.parentOrgNo;
  483. });
  484. return data;
  485. },
  486. //去除转换树形结构数据后存在的空children
  487. deleteChildren(arr) {
  488. let childs = arr;
  489. for (let i = childs.length; i--; i > 0) {
  490. if (childs[i].children) {
  491. if (childs[i].children.length) {
  492. this.deleteChildren(childs[i].children);
  493. } else {
  494. delete childs[i].children;
  495. }
  496. }
  497. }
  498. return arr;
  499. },
  500. //获取组织架构方法--------------------结束-----------------------
  501. formatterDelete(row) {
  502. if (row.state == 0) {
  503. return "已删除";
  504. } else {
  505. return "正常";
  506. }
  507. },
  508. resetUser(flag, val) {
  509. this.resetVisible = true;
  510. this.isDelete = flag;
  511. this.userId = val.id;
  512. this.userName = val.userName;
  513. //当前用户id
  514. //重置密码
  515. },
  516. editUser(row) {
  517. this.editRegisterUser(row);
  518. },
  519. viewUser(row) {
  520. this.view.name = row.userName;
  521. this.view.studentNumber = row.userNo;
  522. this.view.sex = row.gender == "0" ? "女" : "男";
  523. this.view.orgName = row.orgName;
  524. this.centerDialogVisible = true;
  525. },
  526. planUser(val) {
  527. this.$refs.planUser.open(val);
  528. },
  529. addUser(val) {
  530. this.addRegisterUser(val);
  531. },
  532. clearSearch() {
  533. this.name = "";
  534. //搜索的用户编号
  535. this.studentNumber = "";
  536. //搜索的组织架构
  537. // 搜索需要的性别
  538. this.planName = "";
  539. this.group = "";
  540. this.searchTarget();
  541. },
  542. addRegisterUser(val) {
  543. this.$refs.register.open(val);
  544. },
  545. editRegisterUser(val) {
  546. this.$refs.register.edit(val);
  547. },
  548. handleCurrentChange(val) {
  549. this.pageNum = val;
  550. this.searchList();
  551. },
  552. //根据现有情况进行搜索
  553. searchList() {
  554. let url;
  555. if (this.isUser) {
  556. url = `/user/findUserListByPage?pageSize=${this.pageSize}&pageNum=${
  557. this.pageNum
  558. }${this.group.length == 0 ? `&orgNo=${this.userInfo.orgNo}` : `&orgNo=${this.group[this.group.length - 1]}`}${
  559. this.name == "" ? "" : `&userName=${this.name}`
  560. }${this.studentNumber == "" ? "" : `&userNo=${this.studentNumber}`}`;
  561. } else {
  562. url = `/plan/findListByPage?pageSize=${this.pageSize}&pageNum=${this.pageNum}${
  563. this.planName == "" ? "" : `&planName=${this.planName}`
  564. }${this.group.length == 0 ? `&orgNo=${this.userInfo.orgNo}` : `&orgNo=${this.group[this.group.length - 1]}`}`;
  565. }
  566. this.$http.get(url, {}, (res) => {
  567. console.log(res);
  568. if (res && res.code == 200) {
  569. console.log(res.data.content);
  570. this.tableData = res.data.content;
  571. this.total = res.data.totalElements;
  572. } else {
  573. // this.$toast.fail(res.msg);
  574. this.$message.error(res.msg);
  575. }
  576. });
  577. },
  578. searchTarget() {
  579. this.pageNum = 1;
  580. this.searchList();
  581. },
  582. //跳转首页
  583. goHome() {
  584. this.$router.push({ path: "/home" });
  585. },
  586. //跳转记录页
  587. goRecord() {
  588. this.$router.push({ path: "/record" });
  589. },
  590. //退出登陆
  591. logout() {
  592. oSessionStorage.removeItem("userInfo");
  593. oSessionStorage.removeItem("token");
  594. this.$router.push({ path: "/" });
  595. },
  596. //点击获取月出勤次数
  597. getTimes(param) {
  598. this.monthTimes = param;
  599. },
  600. },
  601. };
  602. </script>
  603. <style lang="less" scoped>
  604. @import "../../../styles/theme.less";
  605. .pag_class {
  606. text-align: end;
  607. }
  608. .pag_class /deep/.el-input__inner {
  609. width: 100% !important;
  610. }
  611. .pag_class /deep/.el-pagination--small span:not([class*="suffix"]) {
  612. height: 22px;
  613. line-height: 28px !important;
  614. }
  615. .record-warp {
  616. position: relative;
  617. width: 100%;
  618. height: 80vh;
  619. .compare_out {
  620. line-height: 40px;
  621. position: absolute;
  622. top: -42px;
  623. display: flex;
  624. // background-color: #00bf78;
  625. .user {
  626. cursor: pointer;
  627. position: relative;
  628. span {
  629. top: -5px;
  630. left: 19px;
  631. font-weight: 700;
  632. }
  633. // background-image: image("../.");
  634. // background-color: #00bf78;
  635. // background-image: url("../../../assets/report/lv.png");
  636. // background-size: cover;
  637. // background-repeat: no-repeat;
  638. }
  639. }
  640. .record-main {
  641. width: 100%;
  642. height: 100%;
  643. box-sizing: border-box;
  644. overflow-y: auto;
  645. .search-head {
  646. width: 100%;
  647. display: flex;
  648. flex-direction: row;
  649. justify-content: flex-start;
  650. align-items: center;
  651. .zc-title {
  652. color: #606266;
  653. font-size: 14px;
  654. }
  655. }
  656. .table-content {
  657. margin: 10px 0;
  658. }
  659. }
  660. }
  661. .add_user_class {
  662. margin-top: 10px;
  663. }
  664. .user_out {
  665. display: flex;
  666. width: 100%;
  667. align-items: center;
  668. border: 1px solid #eeeeef;
  669. line-height: 50px;
  670. margin-top: 10px;
  671. }
  672. .user_out_sub {
  673. flex: 1;
  674. background-color: #fafafa;
  675. text-align: center;
  676. // color:#ffffff
  677. }
  678. .user_out_subNext {
  679. padding-left: 10px;
  680. flex: 3;
  681. }
  682. .detail_button_out {
  683. flex: 1;
  684. display: flex;
  685. justify-content: space-around;
  686. .detail_button {
  687. display: flex;
  688. align-items: center;
  689. cursor: pointer;
  690. letter-spacing: 2px;
  691. img {
  692. width: 15px;
  693. margin-right: 5px;
  694. }
  695. span {
  696. color: #00bf78;
  697. // font-weight: 600;
  698. }
  699. }
  700. }
  701. //弹出框样式
  702. .dig_update /deep/.el-cascader {
  703. position: relative;
  704. font-size: 14px;
  705. line-height: 40px;
  706. width: 100%;
  707. }
  708. .dig_update /deep/.el-dialog {
  709. box-shadow: none !important;
  710. background: transparent !important;
  711. }
  712. .demo-ruleForm /deep/ .el-form-item {
  713. margin-right: 10px;
  714. vertical-align: top;
  715. display: flex !important;
  716. flex-direction: column;
  717. }
  718. .demo-ruleForm /deep/.el-dialog__header {
  719. background-color: #ffffff;
  720. padding-left: 140px !important;
  721. }
  722. .demo-ruleForm /deep/.el-form-item__label {
  723. text-align: left;
  724. vertical-align: middle;
  725. float: left;
  726. font-size: 14px;
  727. color: #606266;
  728. line-height: 40px;
  729. padding: 0 12px 0 0;
  730. -webkit-box-sizing: border-box;
  731. box-sizing: border-box;
  732. }
  733. .demo-ruleForm /deep/.el-input {
  734. width: 100% !important;
  735. }
  736. .demo-ruleForm /deep/.el-input__inner {
  737. width: 100% !important;
  738. background-color: #f7f7f7;
  739. border: 0px;
  740. }
  741. .dig_button {
  742. margin-top: 40px;
  743. display: flex;
  744. width: 100%;
  745. justify-content: space-around;
  746. }
  747. .demo-ruleForm {
  748. background-color: #ffffff;
  749. // border-radius: 20px;
  750. margin-right: -10px;
  751. margin-top: -10px;
  752. padding-right: 100px;
  753. padding-left: 100px;
  754. border-radius: 20px;
  755. padding-top: 20px;
  756. padding-bottom: 20px;
  757. .dig_title {
  758. margin-bottom: 30px;
  759. text-align: center;
  760. font-weight: 700;
  761. }
  762. }
  763. </style>