index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903
  1. <template>
  2. <div id="stamp">
  3. <search-box-new
  4. ref="searchBox"
  5. :formData="formData"
  6. :formList="formList"
  7. @search="search"
  8. @init="init"
  9. :shType="shType"
  10. >
  11. <template slot="customize">
  12. <el-button size="small" type="success" @click="moreActive"
  13. >批量导出</el-button
  14. >
  15. </template></search-box-new
  16. >
  17. <table-list
  18. :tableSets="tableSet"
  19. :tableData="tableData"
  20. :navText="navText"
  21. @addClick="addClick"
  22. :loading="loading"
  23. @editInfo="editInfo"
  24. >
  25. <template slot="btn" slot-scope="props">
  26. <el-button
  27. type="text"
  28. @click="addClick(props.scope.row, 0)"
  29. :disabled="
  30. !(
  31. props.scope.row.changeStatus === 2 || props.scope.row.status === 2
  32. )
  33. "
  34. >审核</el-button
  35. >
  36. <el-button type="text" @click="openRecord(props.scope.row)"
  37. >审核记录</el-button
  38. >
  39. </template>
  40. </table-list>
  41. <pagination
  42. :total="total"
  43. :pageSize="formData.pageSize"
  44. :currentPage="formData.pageNum"
  45. @handleSizeChange="handleSizeChange"
  46. @handleCurrentChange="handleCurrentChange"
  47. />
  48. <el-dialog
  49. @closed="loadingClose"
  50. :visible.sync="dialogVisible"
  51. width="900px"
  52. :show-close="false"
  53. :close-on-click-modal="false"
  54. >
  55. <div slot="title" class="hearders">
  56. <div class="leftTitle">资料审核</div>
  57. <div class="rightBoxs">
  58. <img src="@/assets/images/Close@2x.png" alt="" @click="close" />
  59. </div>
  60. </div>
  61. <div slot="title" class="topStys">
  62. <div class="btnsTys">学员编码:{{ listData.userAccount }}</div>
  63. <div class="btnsTys">学员姓名:{{ listData.realname }}</div>
  64. <div class="btnsTys">学员身份证号码:{{ listData.idCard }}</div>
  65. <div class="btnsTys">绑定手机号码:{{ listData.telphone }}</div>
  66. <div style="clear: both"></div>
  67. </div>
  68. <div class="heightstybox gdt">
  69. <ul>
  70. <li class="dissty" v-for="(item, index) in listInfos" :key="index">
  71. <div style="width: 60px; color: red; align-self: flex-start">
  72. {{ item.status === 1 ? "有变更" : "" }}
  73. </div>
  74. <div class="stys">{{ item.fieldName }}:</div>
  75. <div v-if="item.fieldKey === 'commitment_seal'" style="width: 100%">
  76. <el-image
  77. v-if="item.value"
  78. style="width: 100%"
  79. :src="$methodsTools.splitImgHost(item.value)"
  80. :preview-src-list="[$methodsTools.splitImgHost(item.value)]"
  81. >
  82. </el-image>
  83. <p v-else>暂无上传图片</p>
  84. </div>
  85. </li>
  86. <li class="dissty" style="border-bottom: none">
  87. <div class="stys">审核结果反馈:</div>
  88. <el-input
  89. v-model="listData.text"
  90. type="textarea"
  91. :rows="5"
  92. ></el-input>
  93. </li>
  94. </ul>
  95. </div>
  96. <span slot="footer" class="dialog-footer">
  97. <el-button @click="close">取 消</el-button>
  98. <el-button :loading="disabledBtn" @click="submitTable(1)" type="success"
  99. >审核通过</el-button
  100. >
  101. <el-button :loading="disabledBtn" @click="submitTable(3)" type="danger"
  102. >审核不通过</el-button
  103. >
  104. </span>
  105. </el-dialog>
  106. <el-dialog
  107. :visible.sync="dialogVisibleRecord"
  108. width="900px"
  109. :show-close="false"
  110. :close-on-click-modal="false"
  111. >
  112. <div slot="title" class="hearders">
  113. <div class="leftTitle">资料审核</div>
  114. <div class="rightBoxs">
  115. <img
  116. src="@/assets/images/Close@2x.png"
  117. alt=""
  118. @click="dialogVisibleRecord = false"
  119. />
  120. </div>
  121. </div>
  122. <div slot="title" class="topStys">
  123. <div class="btnsTys">
  124. 学员编码:{{ recordList[activeIndex].userAccount }}
  125. </div>
  126. <div class="btnsTys">
  127. 学员姓名:{{ recordList[activeIndex].realname }}
  128. </div>
  129. <div class="btnsTys">
  130. 学员身份证号码:{{ recordList[activeIndex].idCard }}
  131. </div>
  132. <div class="btnsTys">
  133. 绑定手机号码:{{ recordList[activeIndex].telphone }}
  134. </div>
  135. <div style="clear: both"></div>
  136. </div>
  137. <el-row :gutter="20">
  138. <el-col :span="6">
  139. <ul class="max_heightAuto">
  140. <li
  141. class="lsTYs"
  142. v-for="(item, index) in recordList"
  143. :key="index"
  144. :class="index === activeIndex ? 'active' : ''"
  145. @click="changeIndex(index)"
  146. >
  147. {{ $methodsTools.onlyForma(item.auditTime) }}
  148. </li>
  149. </ul>
  150. </el-col>
  151. <el-col :span="18">
  152. <transition>
  153. <div class="heightstybox gdt" v-if="showIS">
  154. <ul>
  155. <li>
  156. <div class="float_lefts">
  157. 审核人:{{ recordList[activeIndex].createByName }}
  158. </div>
  159. <div class="float_lefts">
  160. {{
  161. recordList[activeIndex].status === 1
  162. ? "审核通过"
  163. : recordList[activeIndex].status === 2
  164. ? "待审核"
  165. : recordList[activeIndex].status === 3
  166. ? "审核不通过"
  167. : "无审核状态"
  168. }}
  169. </div>
  170. <div style="clear: both"></div>
  171. </li>
  172. <li
  173. class="dissty"
  174. v-for="(item, index) in recordList[activeIndex]
  175. .keyValueArrays"
  176. :key="index"
  177. >
  178. <div class="stys">{{ item.fieldName }}:</div>
  179. <div
  180. v-if="item.fieldKey === 'commitment_seal'"
  181. style="width: 100%"
  182. >
  183. <el-image
  184. v-if="item.value"
  185. style="width: 100%"
  186. :src="$methodsTools.splitImgHost(item.value)"
  187. :preview-src-list="[
  188. $methodsTools.splitImgHost(item.value),
  189. ]"
  190. >
  191. </el-image>
  192. <p v-else>暂无上传图片</p>
  193. </div>
  194. </li>
  195. <li class="dissty" style="border-bottom: none">
  196. <div class="stys">审核结果反馈:</div>
  197. <div>
  198. {{ recordList[activeIndex].text }}
  199. </div>
  200. </li>
  201. </ul>
  202. </div>
  203. </transition>
  204. </el-col>
  205. </el-row>
  206. <span slot="footer" class="dialog-footer">
  207. <el-button @click="dialogVisibleRecord = false">取 消</el-button>
  208. </span>
  209. </el-dialog>
  210. <el-dialog
  211. :visible.sync="dialogDR"
  212. width="660px"
  213. :show-close="false"
  214. :close-on-click-modal="false"
  215. >
  216. <div slot="title" class="hearders">
  217. <div class="leftTitle">批量导出</div>
  218. <div class="rightBoxs">
  219. <img
  220. src="@/assets/images/Close@2x.png"
  221. alt=""
  222. @click="dialogDR = false"
  223. />
  224. </div>
  225. </div>
  226. <div>
  227. <div class="swq">
  228. <img
  229. style="width: 182px; height: 168px"
  230. src="@/assets/images/dc.png"
  231. alt=""
  232. />
  233. </div>
  234. <div style="padding: 40px">
  235. <el-row>
  236. <el-col :span="12"
  237. ><div style="text-align: end; padding-right: 14px">
  238. 填写资料审核状态:
  239. </div></el-col
  240. >
  241. <el-col :span="12">
  242. <el-radio-group v-model="activeDCIndex">
  243. <el-radio
  244. style="display: block; margin-bottom: 16px"
  245. v-for="(items, indexs) in DCLIST"
  246. :key="indexs"
  247. :label="items.value"
  248. >{{ items.label }}</el-radio
  249. >
  250. </el-radio-group>
  251. </el-col>
  252. </el-row>
  253. </div>
  254. </div>
  255. <span slot="footer" class="dialog-footer">
  256. <el-button @click="dialogDR = false">取消</el-button>
  257. <el-button type="primary" @click="exputs">确定</el-button>
  258. </span>
  259. </el-dialog>
  260. </div>
  261. </template>
  262. <script>
  263. import * as baseUrls from "@/utils/request.js";
  264. import searchBoxNew from "@/components/searchBoxNew";
  265. import tableList from "@/components/tableList";
  266. import pagination from "@/components/pagination";
  267. export default {
  268. name: "Stamp",
  269. components: { searchBoxNew, tableList, pagination },
  270. data() {
  271. return {
  272. dialogDR: false,
  273. disabledBtn: false,
  274. dialogVisibleRecord: false,
  275. shType: true,
  276. loading: false, //当前表单加载是否加载动画
  277. navText: {
  278. title: "盖章资料审核",
  279. index: 0,
  280. ch: "条",
  281. num: true,
  282. border: true,
  283. choice: true,
  284. addHide: true,
  285. backFatherBtn: {
  286. status: false,
  287. title: "未定义",
  288. },
  289. },
  290. //搜索
  291. formList: [
  292. {
  293. prop: "educationTypeId",
  294. placeholder: "教育类型",
  295. scope: "educationType",
  296. },
  297. {
  298. prop: "businessId",
  299. placeholder: "业务层次",
  300. scope: "businessLevel",
  301. edu: "educationTypeId",
  302. },
  303. {
  304. prop: "schoolId",
  305. placeholder: "院校",
  306. scope: "schoolList",
  307. edu: "educationTypeId",
  308. },
  309. {
  310. prop: "majorId",
  311. placeholder: "专业",
  312. scope: "Professional",
  313. edu: "educationTypeId",
  314. },
  315. {
  316. prop: "changeStatus",
  317. placeholder: "变更状态",
  318. scope: "select",
  319. options: [
  320. {
  321. label: "正常",
  322. value: 1,
  323. },
  324. {
  325. label: "有变更",
  326. value: 2,
  327. },
  328. ],
  329. },
  330. {
  331. prop1: "searchStartTime",
  332. prop2: "searchEndTime",
  333. placeholder1: "查询开始时间",
  334. placeholder2: "查询结束时间",
  335. scope: "moreDataPicker",
  336. Diszing: true,
  337. },
  338. {
  339. prop: "realname",
  340. placeholder: "请输入学员姓名",
  341. },
  342. ],
  343. formData: {
  344. status: "",
  345. pageSize: 10,
  346. pageNum: 1,
  347. },
  348. showIS: true,
  349. // 表单
  350. tableSet: [
  351. {
  352. label: "填写资料审核状态",
  353. hidden: true,
  354. scope: "isOKs",
  355. },
  356. {
  357. label: "学员编码",
  358. prop: "userAccount",
  359. hidden: true,
  360. },
  361. {
  362. label: "学员姓名",
  363. prop: "realname",
  364. hidden: true,
  365. },
  366. {
  367. label: "学员身份证",
  368. prop: "idCard",
  369. hidden: true,
  370. },
  371. {
  372. label: "绑定手机号",
  373. prop: "telphone",
  374. hidden: true,
  375. },
  376. {
  377. label: "所购商品",
  378. hidden: true,
  379. scope: "getShops",
  380. },
  381. {
  382. label: "盖章资料审核状态",
  383. prop: "status",
  384. hidden: true,
  385. scope: "isOptions",
  386. options: [
  387. {
  388. label: "通过",
  389. value: 1,
  390. },
  391. {
  392. label: "待审核",
  393. value: 2,
  394. },
  395. {
  396. label: "不通过",
  397. value: 3,
  398. },
  399. ],
  400. },
  401. {
  402. label: "盖章资料变更状态",
  403. prop: "changeStatus",
  404. hidden: true,
  405. scope: "isOptions",
  406. options: [
  407. {
  408. label: "正常",
  409. value: 1,
  410. },
  411. {
  412. label: "有变更",
  413. value: 2,
  414. style: "color:red",
  415. },
  416. ],
  417. },
  418. {
  419. label: "第一次提交资料时间",
  420. prop: "oneTime",
  421. hidden: true,
  422. scope: "aTimeList",
  423. },
  424. {
  425. label: "最后一次提交资料时间",
  426. prop: "lastTime",
  427. hidden: true,
  428. scope: "aTimeList",
  429. },
  430. {
  431. label: "最后一次审核人",
  432. prop: "createByName",
  433. hidden: true,
  434. },
  435. {
  436. label: "最后一次审核时间",
  437. prop: "auditTime",
  438. hidden: true,
  439. scope: "aTimeList",
  440. },
  441. ],
  442. tableData: [], //表单数据
  443. total: 0, //一共多少条
  444. // 弹窗数据
  445. listData: {},
  446. statusPop: -1,
  447. dialogVisible: false,
  448. listInfos: [],
  449. recordList: [{ keyValueArrays: [] }], //记录列表
  450. activeIndex: 0,
  451. activeDCIndex: 0, //导出按钮索引
  452. DCLIST: [
  453. { label: "全部", value: 0 },
  454. { label: "待审核", value: 2 },
  455. { label: "审核通过", value: 1 },
  456. { label: "审核不通过", value: 3 },
  457. ], //导出按钮列表
  458. };
  459. },
  460. mounted() {
  461. this.search();
  462. },
  463. activated() {
  464. this.search();
  465. },
  466. methods: {
  467. exputs(data) {
  468. if (!data.businessId) {
  469. this.$message.warning("请选择业务层次");
  470. return;
  471. }
  472. this.$modal.loading("正在导出数据,请稍后...");
  473. this.$api
  474. .inquirebaseprofileStampexport(data)
  475. .then((res) => {
  476. if (res.code === 200) {
  477. let url = baseUrls.baseURL + "common/download?fileName=" + res.msg;
  478. let link = document.createElement("a");
  479. let fileName = "导出数据" + ".xlsx";
  480. document.body.appendChild(link);
  481. link.href = url;
  482. link.dowmload = fileName;
  483. link.click();
  484. link.remove();
  485. this.$message.success("批量导出成功");
  486. this.dialogDR = false;
  487. }
  488. })
  489. .catch((err) => {
  490. let { message } = err;
  491. if (message.includes("timeout")) {
  492. this.$message.error(
  493. "数据体量过大,无法正常导出,请调整导出的日期范围,缩小数据体量"
  494. );
  495. }
  496. })
  497. .finally(() => {
  498. this.$modal.closeLoading();
  499. });
  500. },
  501. moreActive() {
  502. let data = {
  503. changeStatus: this.formData.changeStatus || "",
  504. status: this.formData.status || 0,
  505. educationTypeId: this.formData.educationTypeId || "",
  506. businessId: this.formData.businessId || "",
  507. majorId: this.formData.majorId || "",
  508. schoolId: this.formData.schoolId || "",
  509. realname: this.formData.realname || "",
  510. searchStartTime: this.formData.searchStartTime / 1000 || "",
  511. searchEndTime: this.formData.searchEndTime / 1000 || "",
  512. };
  513. this.exputs(data);
  514. },
  515. changeIndex(v) {
  516. if (this.activeIndex === v) {
  517. return;
  518. }
  519. this.showIS = false;
  520. this.activeIndex = v;
  521. setTimeout(() => {
  522. this.showIS = true;
  523. }, 50);
  524. },
  525. openRecord(v) {
  526. this.$api
  527. .inquirebaseprofileStamplistRecord({
  528. userId: v.userId,
  529. goodsId: v.goodsId,
  530. })
  531. .then((res) => {
  532. if (!res.rows.length) {
  533. this.$message.warning("该条数据无审核记录");
  534. return;
  535. }
  536. res.rows.forEach((item) => {
  537. item.keyValue = JSON.parse(item.keyValue);
  538. var arst = [];
  539. for (let k in item.keyValue) {
  540. if (item.keyValue[k].fieldName) {
  541. arst.push(item.keyValue[k]);
  542. }
  543. }
  544. item.keyValueArrays = arst;
  545. });
  546. this.activeIndex = 0;
  547. this.recordList = res.rows;
  548. this.dialogVisibleRecord = true;
  549. });
  550. },
  551. pdStatus(int) {
  552. if (
  553. int === "recent_photos" ||
  554. int === "idcard_face_photo" ||
  555. int === "idcard_national_photo" ||
  556. int === "commitment_electr_signature"
  557. ) {
  558. return true;
  559. }
  560. },
  561. //1通过 3不通过
  562. submitTable(int) {
  563. this.disabledBtn = true;
  564. var data = JSON.parse(JSON.stringify(this.listData));
  565. for (let k in data.keyValue) {
  566. data.keyValue[k].status = 0;
  567. }
  568. data.keyValue = JSON.stringify(data.keyValue);
  569. data.status = int;
  570. data.changeStatus = 1;
  571. this.$api
  572. .editbaseprofileStampss(data)
  573. .then((res) => {
  574. this.$message.success("提交成功");
  575. this.search();
  576. this.dialogVisible = false;
  577. })
  578. .catch(() => {
  579. this.disabledBtn = false;
  580. });
  581. },
  582. loadingClose() {
  583. this.disabledBtn = false;
  584. },
  585. editInfo(v) {
  586. this.addClick(v, 0);
  587. },
  588. search(int) {
  589. this.loading = true;
  590. if (int === 1) {
  591. this.formData.pageNum = 1;
  592. }
  593. if (int === 2) {
  594. this.formData = {
  595. status: "",
  596. pageSize: 10,
  597. pageNum: 1,
  598. };
  599. }
  600. var data = JSON.parse(JSON.stringify(this.formData));
  601. if (this.formData.searchStartTime) {
  602. data.searchStartTime = data.searchStartTime / 1000;
  603. }
  604. if (this.formData.searchEndTime) {
  605. data.searchEndTime = data.searchEndTime / 1000;
  606. }
  607. this.$api
  608. .inquirebaseprofileStamp(data)
  609. .then((res) => {
  610. this.tableData = res.rows;
  611. this.total = res.total;
  612. this.navText.index = res.total;
  613. })
  614. .finally(() => {
  615. this.loading = false;
  616. });
  617. },
  618. init() {
  619. this.search(2);
  620. },
  621. del(v) {
  622. this.$alert(
  623. "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
  624. "提示",
  625. {
  626. dangerouslyUseHTMLString: true,
  627. }
  628. )
  629. .then(() => {
  630. var data = {
  631. natureId: v.natureId,
  632. status: -1,
  633. };
  634. this.$api.editpaynature(data).then((res) => {
  635. this.$message.success("删除成功");
  636. this.search();
  637. });
  638. })
  639. .catch(() => {
  640. this.$message({
  641. type: "info",
  642. message: "已取消删除",
  643. });
  644. });
  645. },
  646. addClick(v, int) {
  647. if (v === undefined) {
  648. this.listData = {};
  649. } else {
  650. this.$api.obtainbaseprofile(v.id).then((res) => {
  651. res.data.keyValue = JSON.parse(res.data.keyValue);
  652. this.listData = res.data;
  653. var arst = [];
  654. for (let k in res.data.keyValue) {
  655. if (res.data.keyValue[k].fieldName) {
  656. arst.push(res.data.keyValue[k]);
  657. }
  658. }
  659. this.listInfos = arst;
  660. });
  661. }
  662. this.dialogVisible = true;
  663. },
  664. submit() {
  665. this.disabledBtn = true;
  666. return;
  667. if (this.statusPop === 1) {
  668. this.$api
  669. .apppaynature(this.listData)
  670. .then((res) => {
  671. this.$message.success("新增成功");
  672. this.dialogVisible = false;
  673. this.search();
  674. })
  675. .catch(() => {
  676. this.disabledBtn = false;
  677. });
  678. }
  679. if (this.statusPop === 0) {
  680. this.$api
  681. .editpaynature(this.listData)
  682. .then((res) => {
  683. this.$message.success("修改成功");
  684. this.dialogVisible = false;
  685. this.search();
  686. })
  687. .catch(() => {
  688. this.disabledBtn = false;
  689. });
  690. }
  691. },
  692. close() {
  693. this.dialogVisible = false;
  694. },
  695. handleSizeChange(v) {
  696. this.formData.pageSize = v;
  697. this.formData.pageNum = 1;
  698. this.search();
  699. },
  700. handleCurrentChange(v) {
  701. this.formData.pageNum = v;
  702. this.search();
  703. },
  704. },
  705. };
  706. </script>
  707. <style lang="less" scoped>
  708. // 进入前和结束后的状态
  709. .v-enter,
  710. .v-leave-to {
  711. opacity: 0;
  712. // transform: translateX(80px);
  713. }
  714. // 进入和离开的动画时间段
  715. .v-enter-active,
  716. .v-leave-active {
  717. transition: all 0.5s ease;
  718. }
  719. .gdt {
  720. /* 设置滚动条的样式 */
  721. &::-webkit-scrollbar {
  722. width: 8px;
  723. }
  724. /* 滚动槽 */
  725. &::-webkit-scrollbar-track {
  726. -webkit-box-shadow: inset 6px rgba(0, 0, 0, 0.3);
  727. border-radius: 10px;
  728. }
  729. /* 滚动条滑块 */
  730. &::-webkit-scrollbar-thumb {
  731. border-radius: 10px;
  732. background: rgba(0, 0, 0, 0.1);
  733. -webkit-box-shadow: inset 06px rgba(0, 0, 0, 0.5);
  734. }
  735. &::-webkit-scrollbar-thumb:window-inactive {
  736. background: rgba(182, 182, 182, 0.4);
  737. }
  738. }
  739. .max_heightAuto {
  740. padding: 0px 10px;
  741. max-height: 560px;
  742. overflow-y: auto;
  743. }
  744. .float_lefts {
  745. float: left;
  746. padding: 0px 10px;
  747. border-radius: 12px;
  748. background-color: #eee;
  749. height: 35px;
  750. line-height: 35px;
  751. margin-right: 10px;
  752. }
  753. .lsTYs {
  754. height: 40px;
  755. border-top: 1px solid #999;
  756. border-left: 1px solid #999;
  757. border-right: 1px solid #999;
  758. line-height: 40px;
  759. cursor: pointer;
  760. text-align: center;
  761. &:last-child {
  762. border-bottom: 1px solid #999 !important;
  763. }
  764. }
  765. .active {
  766. color: blue;
  767. }
  768. .heightstybox {
  769. padding: 20px;
  770. height: 600px;
  771. overflow-y: auto;
  772. }
  773. .dissty {
  774. display: flex;
  775. align-items: center;
  776. padding: 20px;
  777. border-bottom: 1px dotted #999;
  778. }
  779. .stys {
  780. flex-shrink: 0;
  781. align-self: flex-start;
  782. width: 200px;
  783. padding-left: 50px;
  784. }
  785. .topStys {
  786. padding: 20px;
  787. background-color: rgb(215, 215, 215);
  788. display: flex;
  789. align-items: center;
  790. overflow-x: auto;
  791. .btnsTys {
  792. flex-shrink: 0;
  793. margin-right: 16px;
  794. padding: 0px 7px;
  795. background-color: #fff;
  796. border-radius: 4px;
  797. font-size: 14px;
  798. height: 40px;
  799. line-height: 40px;
  800. }
  801. }
  802. /deep/.el-button {
  803. border-radius: 8px;
  804. }
  805. /deep/ .el-dialog__body {
  806. padding: 10px 0px;
  807. }
  808. /deep/.el-dialog {
  809. border-radius: 8px;
  810. .el-dialog__header {
  811. padding: 0;
  812. .hearders {
  813. height: 40px;
  814. display: flex;
  815. align-items: center;
  816. justify-content: space-between;
  817. padding: 0px 18px 0px 20px;
  818. border-bottom: 1px solid #e2e2e2;
  819. .leftTitle {
  820. font-size: 14px;
  821. font-weight: bold;
  822. color: #2f4378;
  823. }
  824. .rightBoxs {
  825. display: flex;
  826. align-items: center;
  827. img {
  828. width: 14px;
  829. height: 14px;
  830. margin-left: 13px;
  831. cursor: pointer;
  832. }
  833. }
  834. }
  835. }
  836. .el-dialog__footer {
  837. padding: 0;
  838. .dialog-footer {
  839. padding: 0px 40px;
  840. height: 70px;
  841. border-top: 1px solid #e2e2e2;
  842. display: flex;
  843. align-items: center;
  844. justify-content: center;
  845. }
  846. }
  847. }
  848. .swq {
  849. text-align: center;
  850. border-bottom: 1px solid #eee;
  851. }
  852. .imgBox {
  853. width: 100%;
  854. // height: 210px;
  855. border: 1px solid #e2e2e2;
  856. border-radius: 8px;
  857. padding: 8px 8px 3px;
  858. display: flex;
  859. flex-direction: column;
  860. align-items: center;
  861. .imgLabel {
  862. flex: 1;
  863. width: 100%;
  864. border: 1px dotted #e2e2e2;
  865. color: #999;
  866. font-size: 14px;
  867. cursor: pointer;
  868. border-radius: 8px;
  869. .msPhoto {
  870. display: flex;
  871. justify-content: center;
  872. align-items: center;
  873. max-width: 100%;
  874. max-height: 270px;
  875. img {
  876. max-width: 100%;
  877. max-height: 270px;
  878. }
  879. }
  880. .imgbbx {
  881. display: flex;
  882. flex-direction: column;
  883. align-items: center;
  884. justify-content: center;
  885. width: 100%;
  886. height: 100%;
  887. i {
  888. font-weight: bold;
  889. margin: 14px 0;
  890. font-size: 24px;
  891. }
  892. }
  893. }
  894. p {
  895. margin: 5px 0px;
  896. }
  897. }
  898. </style>