list.vue 28 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214
  1. <template>
  2. <div
  3. class="main-content"
  4. :style="{
  5. width: '100%',
  6. padding: '20px 30px',
  7. fontSize: '15px',
  8. }"
  9. >
  10. <!-- 列表页 -->
  11. <template v-if="!addOrUpdateOrDetailFlag">
  12. <el-form
  13. class="center-form-pv"
  14. :style="{
  15. border: '0px solid #fff',
  16. padding: '10px',
  17. margin: '0',
  18. flexWrap: 'wrap',
  19. background: '#ffffff',
  20. display: 'flex',
  21. width: '100%',
  22. }"
  23. :inline="true"
  24. :model="searchForm"
  25. >
  26. <el-row
  27. :style="{
  28. padding: '10px',
  29. alignItems: 'center',
  30. flexWrap: 'wrap',
  31. background: 'none',
  32. display: 'flex',
  33. }"
  34. >
  35. <div
  36. :style="{
  37. alignItems: 'center',
  38. margin: '0 10px 0 0',
  39. display: 'flex',
  40. }"
  41. >
  42. <label
  43. :style="{
  44. margin: '0 10px 0 0',
  45. whiteSpace: 'nowrap',
  46. color: '#666',
  47. display: 'inline-block',
  48. lineHeight: '40px',
  49. fontSize: 'inherit',
  50. fontWeight: '500',
  51. height: '40px',
  52. }"
  53. class="item-label"
  54. >变电站名称</label
  55. >
  56. <el-input
  57. v-model="searchForm.subName"
  58. placeholder="变电站名称"
  59. @keydown.enter.native="search()"
  60. clearable
  61. ></el-input>
  62. </div>
  63. <div
  64. :style="{
  65. alignItems: 'center',
  66. margin: '0 10px 0 0',
  67. display: 'flex',
  68. }"
  69. >
  70. <label
  71. :style="{
  72. margin: '0 10px 0 0',
  73. whiteSpace: 'nowrap',
  74. color: '#666',
  75. display: 'inline-block',
  76. lineHeight: '40px',
  77. fontSize: 'inherit',
  78. fontWeight: '500',
  79. height: '40px',
  80. }"
  81. class="item-label"
  82. >归属市名称</label
  83. >
  84. <el-select
  85. style="width: 100%"
  86. v-model="searchForm.cityId"
  87. placeholder="归属市名称"
  88. @keydown.enter.native="search()"
  89. @change="getCompList()"
  90. clearable
  91. >
  92. <el-option
  93. v-for="item in cityList"
  94. :key="item.value"
  95. :label="item.label"
  96. :value="item.value"
  97. />
  98. </el-select>
  99. </div>
  100. <div
  101. :style="{
  102. alignItems: 'center',
  103. margin: '0 10px 0 0',
  104. display: 'flex',
  105. }"
  106. >
  107. <label
  108. :style="{
  109. margin: '0 10px 0 0',
  110. whiteSpace: 'nowrap',
  111. color: '#666',
  112. display: 'inline-block',
  113. lineHeight: '40px',
  114. fontSize: 'inherit',
  115. fontWeight: '500',
  116. height: '40px',
  117. }"
  118. class="item-label"
  119. >归属县旗</label
  120. >
  121. <el-select
  122. style="width: 100%"
  123. v-model="searchForm.compId"
  124. placeholder="归属县旗名称"
  125. @keydown.enter.native="search()"
  126. clearable
  127. >
  128. <el-option
  129. v-for="item in compList"
  130. :key="item.value"
  131. :label="item.label"
  132. :value="item.value"
  133. />
  134. </el-select>
  135. </div>
  136. <el-button class="search" type="success" @click="search()">
  137. <span
  138. class="icon iconfont icon-fangdajing07"
  139. :style="{
  140. margin: '0 2px',
  141. fontSize: '16px',
  142. color: '#fff',
  143. display: 'none',
  144. height: '40px',
  145. }"
  146. ></span>
  147. 搜索
  148. </el-button>
  149. </el-row>
  150. <el-row
  151. class="actions"
  152. :style="{
  153. padding: '10px',
  154. margin: '0px 0',
  155. flexWrap: 'wrap',
  156. background: 'none',
  157. display: 'flex',
  158. }"
  159. >
  160. <el-button class="add" type="success" @click="addOrUpdateHandler(null, 'add')">
  161. <span
  162. class="icon iconfont icon-xihuan"
  163. :style="{
  164. margin: '0 2px',
  165. fontSize: '14px',
  166. color: '#fff',
  167. display: 'none',
  168. height: '34px',
  169. }"
  170. ></span>
  171. 添加
  172. </el-button>
  173. <el-button
  174. class="del"
  175. :disabled="dataListSelections.length ? false : true"
  176. type="danger"
  177. @click="deleteHandler()"
  178. >
  179. <span
  180. class="icon iconfont icon-xihuan"
  181. :style="{
  182. margin: '0 2px',
  183. fontSize: '14px',
  184. color: '#fff',
  185. display: 'none',
  186. height: '34px',
  187. }"
  188. ></span>
  189. 批量删除
  190. </el-button>
  191. </el-row>
  192. </el-form>
  193. <div
  194. :style="{
  195. border: '0px solid #fff',
  196. width: '100%',
  197. padding: '0 20px 20px',
  198. fontSize: '14px',
  199. color: '#000',
  200. background: '#fff',
  201. }"
  202. >
  203. <el-table
  204. class="tables"
  205. :stripe="false"
  206. :style="{
  207. padding: '0px 0',
  208. borderColor: '#f0f0f0',
  209. borderRadius: '0',
  210. borderWidth: '0px 0 0 1px',
  211. background: '#fff',
  212. width: '100%',
  213. fontSize: 'inherit',
  214. borderStyle: 'solid',
  215. }"
  216. :border="true"
  217. :data="dataList"
  218. v-loading="dataListLoading"
  219. @selection-change="selectionChangeHandler"
  220. >
  221. <el-table-column
  222. :resizable="true"
  223. type="selection"
  224. align="center"
  225. width="50"
  226. ></el-table-column>
  227. <el-table-column
  228. :resizable="true"
  229. :sortable="true"
  230. label="序号"
  231. type="index"
  232. width="50"
  233. />
  234. <el-table-column :resizable="true" :sortable="true" prop="subName" label="变电站名称">
  235. <template slot-scope="scope">
  236. {{ scope.row.subName }}
  237. </template>
  238. </el-table-column>
  239. <el-table-column :resizable="true" :sortable="true" prop="cityName" label="归属市名称">
  240. <template slot-scope="scope">
  241. {{ scope.row.cityName }}
  242. </template>
  243. </el-table-column>
  244. <el-table-column :resizable="true" :sortable="true" prop="compName" label="归属旗县">
  245. <template slot-scope="scope">
  246. {{ scope.row.compName }}
  247. </template>
  248. </el-table-column>
  249. <el-table-column :resizable="true" :sortable="true" prop="voltageLevel" label="电压等级">
  250. <template slot-scope="scope">
  251. {{ scope.row.voltageLevel }}
  252. </template>
  253. </el-table-column>
  254. <el-table-column :resizable="true" :sortable="true" prop="mainNum" label="主变台数">
  255. <template slot-scope="scope">
  256. {{ scope.row.mainNum }}
  257. </template>
  258. </el-table-column>
  259. <el-table-column
  260. :resizable="true"
  261. :sortable="true"
  262. prop="mainCapacity"
  263. label="主变容量(MVA)"
  264. >
  265. <template slot-scope="scope">
  266. {{ scope.row.mainCapacity }}
  267. </template>
  268. </el-table-column>
  269. <el-table-column
  270. :resizable="true"
  271. :sortable="true"
  272. prop="alarmThreshold"
  273. label="负荷报警阀值"
  274. >
  275. <template slot-scope="scope">
  276. {{ scope.row.alarmThreshold }}
  277. </template>
  278. </el-table-column>
  279. <el-table-column
  280. :resizable="true"
  281. :sortable="true"
  282. prop="growRate"
  283. label="用户增长率(%)"
  284. />
  285. <el-table-column :resizable="true" :sortable="true" prop="remark" label="备注">
  286. <template slot-scope="scope">
  287. {{ scope.row.remark }}
  288. </template>
  289. </el-table-column>
  290. <el-table-column width="260" label="操作">
  291. <template slot-scope="scope">
  292. <el-button
  293. class="view"
  294. type="success"
  295. @click="addOrUpdateHandler(scope.row.id, 'view')"
  296. >
  297. <span
  298. class="icon iconfont icon-xihuan"
  299. :style="{
  300. margin: '0 2px',
  301. fontSize: '14px',
  302. color: '#fff',
  303. display: 'none',
  304. height: '40px',
  305. }"
  306. ></span>
  307. 查看
  308. </el-button>
  309. <el-button
  310. class="edit"
  311. type="success"
  312. @click="addOrUpdateHandler(scope.row.id, 'edit')"
  313. >
  314. <span
  315. class="icon iconfont icon-xihuan"
  316. :style="{
  317. margin: '0 2px',
  318. fontSize: '14px',
  319. color: '#fff',
  320. display: 'none',
  321. height: '40px',
  322. }"
  323. ></span>
  324. 修改
  325. </el-button>
  326. <el-button class="del" type="primary" @click="deleteHandler(scope.row.id)">
  327. <span
  328. class="icon iconfont icon-xihuan"
  329. :style="{
  330. margin: '0 2px',
  331. fontSize: '14px',
  332. color: '#fff',
  333. display: 'none',
  334. height: '40px',
  335. }"
  336. ></span>
  337. 删除
  338. </el-button>
  339. <el-button v-if="false" class="view" type="primary" @click="lineHandler(scope.row)">
  340. <span
  341. class="icon iconfont icon-xihuan"
  342. :style="{
  343. margin: '0 2px',
  344. fontSize: '14px',
  345. color: '#fff',
  346. display: 'none',
  347. height: '40px',
  348. }"
  349. ></span>
  350. 线路
  351. </el-button>
  352. </template>
  353. </el-table-column>
  354. </el-table>
  355. </div>
  356. <el-pagination
  357. @size-change="sizeChangeHandle"
  358. @current-change="currentChangeHandle"
  359. :current-page="pageIndex"
  360. background
  361. :page-sizes="[10, 50, 100, 200]"
  362. :page-size="pageSize"
  363. :layout="layouts.join()"
  364. :total="totalPage"
  365. prev-text="< "
  366. next-text="> "
  367. :hide-on-single-page="false"
  368. :style="{
  369. padding: '0 20px 20px',
  370. margin: '0px auto',
  371. whiteSpace: 'nowrap',
  372. color: '#333',
  373. textAlign: 'left',
  374. background: '#fff',
  375. width: '100%',
  376. fontSize: 'inherit',
  377. position: 'relative',
  378. fontWeight: '500',
  379. }"
  380. ></el-pagination>
  381. </template>
  382. <!-- 添加/修改页面 将父组件的search方法传递给子组件-->
  383. <add-or-update v-if="addOrUpdateOrDetailFlag" :parent="this" ref="addOrUpdate"></add-or-update>
  384. <!-- 线路页面 -->
  385. <line-list :parent="this" ref="line"></line-list>
  386. </div>
  387. </template>
  388. <script>
  389. import AddOrUpdate from './components/add-or-update';
  390. import LineList from './components/line-list';
  391. import { myMixin } from './selectMixin';
  392. export default {
  393. mixins: [myMixin],
  394. data() {
  395. return {
  396. searchForm: {
  397. subName: '',
  398. cityId: '',
  399. compId: '',
  400. },
  401. form: {},
  402. dataList: [],
  403. pageIndex: 1,
  404. pageSize: 10,
  405. totalPage: 0,
  406. dataListLoading: false,
  407. dataListSelections: [],
  408. layouts: ['prev', 'pager', 'next', 'sizes'],
  409. compList: [],
  410. addOrUpdateOrDetailFlag: false,
  411. };
  412. },
  413. created() {
  414. this.getCityList();
  415. this.getDataList();
  416. },
  417. components: {
  418. AddOrUpdate,
  419. LineList,
  420. },
  421. methods: {
  422. // 获取公司列表
  423. async getCompList() {
  424. this.searchForm.compName = undefined;
  425. this.compList = [];
  426. const { data } = await this.$http({
  427. url: `/company/lists`,
  428. method: 'get',
  429. params: {
  430. cityId: this.searchForm.cityId,
  431. },
  432. });
  433. if (data && data.code === 0) {
  434. this.compList = data.data.map(item => ({
  435. label: item.compName,
  436. value: String(item.id),
  437. }));
  438. }
  439. },
  440. search() {
  441. this.pageIndex = 1;
  442. this.getDataList();
  443. },
  444. lineHandler(info) {
  445. this.$refs.line.openDrawer(info);
  446. },
  447. // 获取数据列表
  448. getDataList() {
  449. this.dataListLoading = true;
  450. let params = {
  451. page: this.pageIndex,
  452. limit: this.pageSize,
  453. sort: 'id',
  454. order: 'desc',
  455. };
  456. if (this.searchForm.subName != '' && this.searchForm.subName != undefined) {
  457. params['subName'] = '%' + this.searchForm.subName + '%';
  458. }
  459. if (this.searchForm.cityId != '' && this.searchForm.cityId != undefined) {
  460. params['cityId'] = Number(this.searchForm.cityId);
  461. }
  462. if (this.searchForm.compId != '' && this.searchForm.compId != undefined) {
  463. params['compId'] = Number(this.searchForm.compId);
  464. }
  465. this.$http({
  466. url: '/sub/page',
  467. method: 'get',
  468. params: params,
  469. }).then(({ data }) => {
  470. if (data && data.code === 0) {
  471. this.dataList = data.data.list;
  472. this.totalPage = data.data.total;
  473. } else {
  474. this.dataList = [];
  475. this.totalPage = 0;
  476. }
  477. this.dataListLoading = false;
  478. });
  479. },
  480. // 每页数
  481. sizeChangeHandle(val) {
  482. this.pageSize = val;
  483. this.pageIndex = 1;
  484. this.getDataList();
  485. },
  486. // 当前页
  487. currentChangeHandle(val) {
  488. this.pageIndex = val;
  489. this.getDataList();
  490. },
  491. // 多选
  492. selectionChangeHandler(val) {
  493. this.dataListSelections = val;
  494. },
  495. // 添加/修改
  496. addOrUpdateHandler(id, type) {
  497. this.addOrUpdateOrDetailFlag = true;
  498. this.$nextTick(() => {
  499. this.$refs.addOrUpdate.openDialog(id, type);
  500. });
  501. },
  502. // 删除
  503. async deleteHandler(id) {
  504. var ids = id
  505. ? [Number(id)]
  506. : this.dataListSelections.map(item => {
  507. return Number(item.id);
  508. });
  509. await this.$confirm(`确定进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
  510. confirmButtonText: '确定',
  511. cancelButtonText: '取消',
  512. type: 'warning',
  513. }).then(async () => {
  514. await this.$http({
  515. url: 'sub/delete',
  516. method: 'post',
  517. data: ids,
  518. }).then(async ({ data }) => {
  519. if (data && data.code === 0) {
  520. this.$message({
  521. message: '操作成功',
  522. type: 'success',
  523. });
  524. this.search();
  525. } else {
  526. this.$message.error(data.msg);
  527. }
  528. });
  529. });
  530. },
  531. },
  532. };
  533. </script>
  534. <style lang="scss" scoped>
  535. .center-form-pv {
  536. .el-date-editor.el-input {
  537. width: auto;
  538. }
  539. }
  540. .el-input {
  541. width: auto;
  542. }
  543. // form
  544. .center-form-pv .el-input {
  545. width: auto;
  546. }
  547. .center-form-pv .el-input ::v-deep .el-input__inner {
  548. border: 1px solid #ddd;
  549. border-radius: 0px;
  550. padding: 0 12px;
  551. color: #666;
  552. width: 150px;
  553. font-size: 15px;
  554. height: 40px;
  555. }
  556. .center-form-pv .el-select {
  557. width: auto;
  558. }
  559. .center-form-pv .el-select ::v-deep .el-input__inner {
  560. border: 1px solid #ddd;
  561. border-radius: 0px;
  562. padding: 0 10px;
  563. color: #666;
  564. width: 150px;
  565. font-size: 15px;
  566. height: 40px;
  567. }
  568. .center-form-pv .el-date-editor {
  569. width: auto;
  570. }
  571. .center-form-pv .el-date-editor ::v-deep .el-input__inner {
  572. border: 1px solid #ddd;
  573. border-radius: 0px;
  574. padding: 0 10px 0 30px;
  575. color: #666;
  576. width: 150px;
  577. font-size: 15px;
  578. height: 40px;
  579. }
  580. .center-form-pv .search {
  581. border: 0;
  582. cursor: pointer;
  583. border-radius: 0px;
  584. padding: 0 20px;
  585. color: #fff;
  586. background: #0977fd;
  587. width: auto;
  588. font-size: 16px;
  589. min-width: 90px;
  590. height: 40px;
  591. }
  592. .center-form-pv .search:hover {
  593. opacity: 0.8;
  594. }
  595. .center-form-pv .actions .add {
  596. border: 1px solid #0977fd60;
  597. cursor: pointer;
  598. border-radius: 0px;
  599. padding: 0 10px;
  600. margin: 4px;
  601. color: #0977fd;
  602. background: #fff;
  603. width: auto;
  604. font-size: inherit;
  605. height: 34px;
  606. }
  607. .center-form-pv .actions .add:hover {
  608. opacity: 0.8;
  609. }
  610. .center-form-pv .actions .del {
  611. border: 1px solid #cc000060;
  612. cursor: pointer;
  613. border-radius: 0px;
  614. padding: 0 10px;
  615. margin: 4px;
  616. color: #c00;
  617. background: #fff;
  618. width: auto;
  619. font-size: inherit;
  620. height: 34px;
  621. }
  622. .center-form-pv .actions .del:hover {
  623. opacity: 0.8;
  624. }
  625. .center-form-pv .actions .statis {
  626. border: 1px solid #e0970460;
  627. cursor: pointer;
  628. border-radius: 0px;
  629. padding: 0 20px;
  630. margin: 4px;
  631. color: #e09704;
  632. background: #fff;
  633. width: auto;
  634. font-size: inherit;
  635. height: 34px;
  636. }
  637. .center-form-pv .actions .statis:hover {
  638. opacity: 0.8;
  639. }
  640. .center-form-pv .actions .btn18 {
  641. border: 1px solid #ed9a0d60;
  642. cursor: pointer;
  643. border-radius: 0px;
  644. padding: 0 10px;
  645. margin: 4px;
  646. color: #ed9a0d;
  647. background: #fff;
  648. width: auto;
  649. font-size: inherit;
  650. height: 34px;
  651. }
  652. .center-form-pv .actions .btn18:hover {
  653. opacity: 0.8;
  654. }
  655. // table
  656. .el-table ::v-deep .el-table__header-wrapper thead {
  657. color: #999;
  658. background: #fff;
  659. font-weight: 500;
  660. width: 100%;
  661. }
  662. .el-table ::v-deep .el-table__header-wrapper thead tr {
  663. background: #cae2ff;
  664. }
  665. .el-table ::v-deep .el-table__header-wrapper thead tr th {
  666. padding: 8px 0;
  667. background: none;
  668. border-color: #f6f6f6;
  669. border-width: 0 0px 0px 0;
  670. border-style: solid;
  671. text-align: left;
  672. }
  673. .el-table ::v-deep .el-table__header-wrapper thead tr th .cell {
  674. padding: 0 0 0 5px;
  675. word-wrap: normal;
  676. color: #0977fd;
  677. white-space: normal;
  678. font-weight: bold;
  679. display: flex;
  680. vertical-align: middle;
  681. font-size: 14px;
  682. line-height: 24px;
  683. text-overflow: ellipsis;
  684. word-break: break-all;
  685. width: 100%;
  686. align-items: center;
  687. position: relative;
  688. min-width: 110px;
  689. }
  690. .el-table ::v-deep .el-table__body-wrapper {
  691. position: relative;
  692. }
  693. .el-table ::v-deep .el-table__body-wrapper tbody {
  694. width: 100%;
  695. }
  696. .el-table ::v-deep .el-table__body-wrapper tbody tr {
  697. background: #fff;
  698. }
  699. .el-table ::v-deep .el-table__body-wrapper tbody tr td {
  700. padding: 4px 0;
  701. color: #333;
  702. background: #fff;
  703. font-size: inherit;
  704. border-color: #0977fd30;
  705. border-width: 0 0px 1px 0;
  706. border-style: solid;
  707. text-align: left;
  708. }
  709. .el-table ::v-deep .el-table__body-wrapper tbody tr:hover td {
  710. padding: 4px 0;
  711. color: #333;
  712. background: #f4f9ff;
  713. border-color: #0977fd30;
  714. border-width: 0 0px 1px 0;
  715. border-style: solid;
  716. text-align: left;
  717. }
  718. .el-table ::v-deep .el-table__body-wrapper tbody tr td {
  719. padding: 4px 0;
  720. color: #333;
  721. background: #fff;
  722. font-size: inherit;
  723. border-color: #0977fd30;
  724. border-width: 0 0px 1px 0;
  725. border-style: solid;
  726. text-align: left;
  727. }
  728. .el-table ::v-deep .el-table__body-wrapper tbody tr td .cell {
  729. padding: 0 0 0 5px;
  730. overflow: hidden;
  731. word-break: break-all;
  732. white-space: normal;
  733. font-size: inherit;
  734. line-height: 24px;
  735. text-overflow: ellipsis;
  736. }
  737. .el-table ::v-deep .el-table__body-wrapper tbody tr td .view {
  738. border: 1px solid #0977fd60;
  739. cursor: pointer;
  740. border-radius: 0px;
  741. padding: 0 10px;
  742. margin: 0 5px 5px 0;
  743. color: #0977fd;
  744. background: #fff;
  745. width: auto;
  746. font-size: 14px;
  747. height: 32px;
  748. }
  749. .el-table ::v-deep .el-table__body-wrapper tbody tr td .view:hover {
  750. opacity: 0.8;
  751. }
  752. .el-table ::v-deep .el-table__body-wrapper tbody tr td .add {
  753. }
  754. .el-table ::v-deep .el-table__body-wrapper tbody tr td .add:hover {
  755. }
  756. .el-table ::v-deep .el-table__body-wrapper tbody tr td .edit {
  757. border: 1px solid #21c79260;
  758. cursor: pointer;
  759. border-radius: 0px;
  760. padding: 0 10px;
  761. margin: 0 5px 5px 0;
  762. color: #21c792;
  763. background: #fff;
  764. width: auto;
  765. font-size: 14px;
  766. height: 32px;
  767. }
  768. .el-table ::v-deep .el-table__body-wrapper tbody tr td .edit:hover {
  769. opacity: 0.8;
  770. }
  771. .el-table ::v-deep .el-table__body-wrapper tbody tr td .del {
  772. border: 1px solid #cc000060;
  773. cursor: pointer;
  774. border-radius: 0px;
  775. padding: 0 10px;
  776. margin: 0 5px 5px 0;
  777. color: #c00;
  778. background: #fff;
  779. width: auto;
  780. font-size: 14px;
  781. height: 32px;
  782. }
  783. .el-table ::v-deep .el-table__body-wrapper tbody tr td .del:hover {
  784. opacity: 0.8;
  785. }
  786. .el-table ::v-deep .el-table__body-wrapper tbody tr td .btn8 {
  787. border: 1px solid #ed9a0d60;
  788. cursor: pointer;
  789. border-radius: 0px;
  790. padding: 0 10px;
  791. margin: 0 5px 5px 0;
  792. color: #ed9a0d;
  793. background: #fff;
  794. width: auto;
  795. font-size: 14px;
  796. height: 32px;
  797. }
  798. .el-table ::v-deep .el-table__body-wrapper tbody tr td .btn8:hover {
  799. opacity: 0.8;
  800. }
  801. // pagination
  802. .main-content .el-pagination ::v-deep .el-pagination__total {
  803. margin: 0 10px 0 0;
  804. color: #666;
  805. font-weight: 400;
  806. display: inline-block;
  807. vertical-align: top;
  808. font-size: inherit;
  809. line-height: 28px;
  810. height: 28px;
  811. }
  812. .main-content .el-pagination ::v-deep .btn-prev {
  813. border: none;
  814. border-radius: 100px;
  815. padding: 0;
  816. margin: 0 5px;
  817. color: #fff;
  818. background: #000;
  819. display: inline-block;
  820. vertical-align: top;
  821. width: 28px;
  822. font-size: 16px;
  823. line-height: auto;
  824. height: 28px;
  825. }
  826. .main-content .el-pagination ::v-deep .btn-next {
  827. border: none;
  828. border-radius: 100%;
  829. padding: 0;
  830. margin: 0 5px;
  831. color: #fff;
  832. background: #000;
  833. display: inline-block;
  834. vertical-align: top;
  835. width: 28px;
  836. font-size: 16px;
  837. line-height: auto;
  838. height: 28px;
  839. }
  840. .main-content .el-pagination ::v-deep .btn-prev:disabled {
  841. border: none;
  842. cursor: not-allowed;
  843. padding: 0;
  844. margin: 0 5px;
  845. color: #666;
  846. display: inline-block;
  847. vertical-align: top;
  848. font-size: 16px;
  849. line-height: auto;
  850. border-radius: 100px;
  851. background: #ccc;
  852. width: 28px;
  853. height: 28px;
  854. }
  855. .main-content .el-pagination ::v-deep .btn-next:disabled {
  856. border: none;
  857. cursor: not-allowed;
  858. padding: 0;
  859. margin: 0 5px;
  860. color: #666;
  861. display: inline-block;
  862. vertical-align: top;
  863. font-size: 16px;
  864. line-height: auto;
  865. border-radius: 100px;
  866. background: #ccc;
  867. width: 28px;
  868. height: 28px;
  869. }
  870. .main-content .el-pagination ::v-deep .el-pager {
  871. padding: 0;
  872. margin: 0;
  873. display: inline-block;
  874. vertical-align: top;
  875. }
  876. .main-content .el-pagination ::v-deep .el-pager .number {
  877. cursor: pointer;
  878. border-radius: 100%;
  879. padding: 0 10px;
  880. margin: 0 2px;
  881. color: #fff;
  882. background: #b9b9b9;
  883. display: inline-block;
  884. vertical-align: top;
  885. font-size: 16px;
  886. line-height: 28px;
  887. text-align: center;
  888. height: 28px;
  889. }
  890. .main-content .el-pagination ::v-deep .el-pager .number:hover {
  891. cursor: pointer;
  892. border-radius: 100%;
  893. padding: 0 10px;
  894. margin: 0 2px;
  895. color: #fff;
  896. background: #0977fd;
  897. display: inline-block;
  898. vertical-align: top;
  899. font-size: 16px;
  900. line-height: 28px;
  901. text-align: center;
  902. height: 28px;
  903. }
  904. .main-content .el-pagination ::v-deep .el-pager .number.active {
  905. cursor: default;
  906. border-radius: 100%;
  907. padding: 0 10px;
  908. margin: 0 2px;
  909. color: #fff;
  910. background: #0977fd;
  911. display: inline-block;
  912. vertical-align: top;
  913. font-size: 16px;
  914. line-height: 28px;
  915. text-align: center;
  916. height: 28px;
  917. }
  918. .main-content .el-pagination ::v-deep .el-pagination__sizes {
  919. display: inline-block;
  920. vertical-align: top;
  921. font-size: 15px;
  922. line-height: 28px;
  923. height: 28px;
  924. }
  925. .main-content .el-pagination ::v-deep .el-pagination__sizes .el-input {
  926. margin: 0 5px;
  927. width: 100px;
  928. position: relative;
  929. }
  930. .main-content .el-pagination ::v-deep .el-pagination__sizes .el-input .el-input__inner {
  931. border: 1px solid #dcdfe6;
  932. cursor: pointer;
  933. padding: 0 25px 0 8px;
  934. color: #606266;
  935. display: inline-block;
  936. font-size: 15px;
  937. line-height: 28px;
  938. border-radius: 10px;
  939. outline: 0;
  940. background: #fff;
  941. width: 100%;
  942. text-align: center;
  943. height: 28px;
  944. }
  945. .main-content .el-pagination ::v-deep .el-pagination__sizes .el-input span.el-input__suffix {
  946. top: 0;
  947. position: absolute;
  948. right: 0;
  949. height: 100%;
  950. }
  951. .main-content
  952. .el-pagination
  953. ::v-deep
  954. .el-pagination__sizes
  955. .el-input
  956. .el-input__suffix
  957. .el-select__caret {
  958. cursor: pointer;
  959. color: #c0c4cc;
  960. width: 25px;
  961. font-size: 14px;
  962. line-height: 28px;
  963. text-align: center;
  964. }
  965. .main-content .el-pagination ::v-deep .el-pagination__jump {
  966. margin: 0 0 0 24px;
  967. color: #606266;
  968. display: inline-block;
  969. vertical-align: top;
  970. font-size: 15px;
  971. line-height: 28px;
  972. height: 28px;
  973. }
  974. .main-content .el-pagination ::v-deep .el-pagination__jump .el-input {
  975. border-radius: 3px;
  976. padding: 0 2px;
  977. margin: 0 2px;
  978. display: inline-block;
  979. width: 50px;
  980. font-size: 15px;
  981. line-height: 18px;
  982. position: relative;
  983. text-align: center;
  984. height: 28px;
  985. }
  986. .main-content .el-pagination ::v-deep .el-pagination__jump .el-input .el-input__inner {
  987. border: 1px solid #dcdfe6;
  988. cursor: pointer;
  989. padding: 0 3px;
  990. color: #606266;
  991. display: inline-block;
  992. font-size: 15px;
  993. line-height: 28px;
  994. border-radius: 3px;
  995. outline: 0;
  996. background: #fff;
  997. width: 100%;
  998. text-align: center;
  999. height: 28px;
  1000. }
  1001. // list one
  1002. .one .list1-view {
  1003. border: 0;
  1004. cursor: pointer;
  1005. border-radius: 4px;
  1006. padding: 0 15px;
  1007. margin: 0 5px 5px 0;
  1008. outline: none;
  1009. color: #fff;
  1010. background: #157ed2;
  1011. width: auto;
  1012. font-size: 14px;
  1013. height: 32px;
  1014. }
  1015. .one .list1-view:hover {
  1016. opacity: 0.8;
  1017. }
  1018. .one .list1-edit {
  1019. border: 0;
  1020. cursor: pointer;
  1021. border-radius: 4px;
  1022. padding: 0 15px;
  1023. margin: 0 5px 5px 0;
  1024. outline: none;
  1025. color: #fff;
  1026. background: #409eff;
  1027. width: auto;
  1028. font-size: 14px;
  1029. height: 32px;
  1030. }
  1031. .one .list1-edit:hover {
  1032. opacity: 0.8;
  1033. }
  1034. .one .list1-del {
  1035. border: 0;
  1036. cursor: pointer;
  1037. border-radius: 4px;
  1038. padding: 0 15px;
  1039. margin: 0 5px 5px 0;
  1040. outline: none;
  1041. color: #fff;
  1042. background: rgba(255, 0, 0, 1);
  1043. width: auto;
  1044. font-size: 14px;
  1045. height: 32px;
  1046. }
  1047. .one .list1-del:hover {
  1048. opacity: 0.8;
  1049. }
  1050. .one .list1-btn8 {
  1051. border: 0;
  1052. cursor: pointer;
  1053. border-radius: 4px;
  1054. padding: 0 24px;
  1055. margin: 0 5px 5px 0;
  1056. outline: none;
  1057. color: #fff;
  1058. background: rgba(255, 128, 0, 1);
  1059. width: auto;
  1060. font-size: 14px;
  1061. height: 32px;
  1062. }
  1063. .one .list1-btn8:hover {
  1064. opacity: 0.8;
  1065. }
  1066. .main-content .el-table .el-switch {
  1067. display: inline-flex;
  1068. vertical-align: middle;
  1069. line-height: 30px;
  1070. position: relative;
  1071. align-items: center;
  1072. height: 30px;
  1073. }
  1074. .main-content .el-table .el-switch ::v-deep .el-switch__label--left {
  1075. cursor: pointer;
  1076. margin: 0 10px 0 0;
  1077. color: #333;
  1078. font-weight: 500;
  1079. display: inline-block;
  1080. vertical-align: middle;
  1081. font-size: 16px;
  1082. transition: 0.2s;
  1083. height: 30px;
  1084. }
  1085. .main-content .el-table .el-switch ::v-deep .el-switch__label--right {
  1086. cursor: pointer;
  1087. margin: 0 0 0 10px;
  1088. color: #333;
  1089. font-weight: 500;
  1090. display: inline-block;
  1091. vertical-align: middle;
  1092. font-size: 16px;
  1093. transition: 0.2s;
  1094. height: 30px;
  1095. }
  1096. .main-content .el-table .el-switch ::v-deep .el-switch__core {
  1097. border: 1px solid #75c0d6;
  1098. cursor: pointer;
  1099. border-radius: 15px;
  1100. margin: 0;
  1101. background: #75c0d6;
  1102. display: inline-block;
  1103. width: 42px;
  1104. box-sizing: border-box;
  1105. transition: border-color 0.3s, background-color 0.3s;
  1106. height: 20px;
  1107. }
  1108. .main-content .el-table .el-switch ::v-deep .el-switch__core::after {
  1109. border-radius: 100%;
  1110. top: 1px;
  1111. left: 1px;
  1112. background: #fff;
  1113. width: 16px;
  1114. position: absolute;
  1115. transition: all 0.3s;
  1116. height: 16px;
  1117. }
  1118. .main-content .el-table .el-switch.is-checked ::v-deep .el-switch__core::after {
  1119. margin: 0 0 0 -18px;
  1120. left: 100%;
  1121. }
  1122. .main-content .el-table .el-rate ::v-deep .el-rate__item {
  1123. cursor: pointer;
  1124. display: inline-block;
  1125. vertical-align: middle;
  1126. font-size: 0;
  1127. position: relative;
  1128. }
  1129. .main-content .el-table .el-rate ::v-deep .el-rate__item .el-rate__icon {
  1130. margin: 0 3px;
  1131. display: inline-block;
  1132. font-size: 18px;
  1133. position: relative;
  1134. transition: 0.3s;
  1135. }
  1136. </style>