index.vue 26 KB

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