tableList.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. <template>
  2. <div id="tableList">
  3. <div class="headerNavTool">
  4. <div class="leftIndexText">
  5. {{ navText.title }} <strong>{{ navText.index }}</strong>
  6. {{ navText.ch }}
  7. </div>
  8. <div class="rightBtnBox">
  9. <slot name="customize"></slot>
  10. <el-button
  11. size="medium"
  12. type="primary"
  13. @click="addClick"
  14. v-if="!navText.addHide"
  15. >添加</el-button
  16. >
  17. <el-button
  18. v-if="navText.backFatherBtn.status"
  19. size="medium"
  20. type="warning"
  21. @click="backFather"
  22. >{{ navText.backFatherBtn.title }}</el-button
  23. >
  24. <el-popover
  25. popper-class="slotPopper"
  26. placement="bottom-end"
  27. trigger="click"
  28. >
  29. <div class="popoverDis">
  30. <div class="checkboxHeader">
  31. <el-checkbox
  32. :indeterminate="isIndeterminate"
  33. v-model="checkAll"
  34. @change="handleCheckAllChange"
  35. >列展示</el-checkbox
  36. >
  37. <div class="initbtns" @click="initVue">重置</div>
  38. </div>
  39. <div
  40. style="height: 1px; width: 100%; background-color: #eaeefb"
  41. ></div>
  42. <el-checkbox-group
  43. class="checkboxGroup"
  44. v-model="checkedCities"
  45. @change="handleCheckedCitiesChange"
  46. >
  47. <div
  48. class="checkboxchild"
  49. v-for="(item, index) in cities"
  50. :key="index"
  51. >
  52. <el-checkbox
  53. :label="item"
  54. @change="checkboxChange(item, $event)"
  55. >{{ item }}</el-checkbox
  56. >
  57. <div class="icon-right">
  58. <i class="el-icon-upload2" @click="upMove(item, index)"></i>
  59. <i
  60. class="el-icon-download"
  61. @click="downMove(item, index)"
  62. ></i>
  63. </div>
  64. </div>
  65. </el-checkbox-group>
  66. </div>
  67. <el-button style="margin-left: 10px" size="medium" slot="reference"
  68. >自定义列</el-button
  69. >
  70. </el-popover>
  71. </div>
  72. </div>
  73. <el-table
  74. :data="tableData"
  75. stripe
  76. style="width: 100%"
  77. @select-all="selectAll"
  78. @select="select"
  79. :row-key="rowKey"
  80. :load="load"
  81. :cell-style="timeStyle"
  82. lazy
  83. ref="pagerset"
  84. v-loading="loading"
  85. :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
  86. >
  87. <el-table-column
  88. v-if="navText.choice"
  89. align="center"
  90. type="selection"
  91. width="55"
  92. header-align="center"
  93. >
  94. </el-table-column>
  95. <el-table-column
  96. v-if="navText.num"
  97. type="index"
  98. label="序号"
  99. align="center"
  100. header-align="center"
  101. >
  102. </el-table-column>
  103. <template v-for="(item, index) in tableSet">
  104. <el-table-column
  105. v-if="item.hidden"
  106. :width="item.width"
  107. :key="index"
  108. :label="item.label"
  109. align="center"
  110. :show-overflow-tooltip="true"
  111. header-align="center"
  112. >
  113. <template slot-scope="scope">
  114. <div class="imgboxsq" v-if="item.scope === 'img'">
  115. <el-image
  116. class="el_images"
  117. lazy
  118. :src="$methodsTools.splitImgHost(scope.row[item.prop])"
  119. style="height: 100%"
  120. :preview-src-list="[
  121. $methodsTools.splitImgHost(scope.row[item.prop]),
  122. ]"
  123. alt="加载失败..."
  124. >
  125. </el-image>
  126. </div>
  127. <span v-else-if="item.scope === 'status'">{{
  128. Number(scope.row[item.prop]) === 1
  129. ? "启用"
  130. : Number(scope.row[item.prop]) === 0
  131. ? "关闭"
  132. : Number(scope.row[item.prop]) === -1
  133. ? "已删除"
  134. : "未知"
  135. }}</span>
  136. <span v-else-if="item.scope === 'statusZpFB'">{{
  137. Number(scope.row[item.prop]) === 1
  138. ? "未发布"
  139. : Number(scope.row[item.prop]) === 2
  140. ? "已发布"
  141. : Number(scope.row[item.prop]) === 0
  142. ? "停用"
  143. : Number(scope.row[item.prop]) === -1
  144. ? "已删除"
  145. : "未知"
  146. }}</span>
  147. <span v-else-if="item.scope === 'reStatus'">{{
  148. Number(scope.row[item.prop]) === 1
  149. ? "定时发布"
  150. : Number(scope.row[item.prop]) === 0
  151. ? "手动发布"
  152. : "未知"
  153. }}</span>
  154. <span v-else-if="item.scope === 'ggType'">{{
  155. Number(scope.row[item.prop]) === 1
  156. ? "学习中心"
  157. : Number(scope.row[item.prop]) === 2
  158. ? "求职中心"
  159. : "未知"
  160. }}</span>
  161. <span v-else-if="item.scope === 'statusRe'">{{
  162. Number(scope.row[item.prop]) === 0
  163. ? "已删除"
  164. : Number(scope.row[item.prop]) === 1 &&
  165. Number(scope.row["reStatus"]) === 1
  166. ? "待发布"
  167. : Number(scope.row[item.prop]) === 1 &&
  168. Number(scope.row["reStatus"]) === 0
  169. ? "未发布"
  170. : Number(scope.row[item.prop]) === 2
  171. ? "已撤回"
  172. : Number(scope.row[item.prop]) === 3
  173. ? "已发布"
  174. : Number(scope.row[item.prop]) === 4
  175. ? "已到期"
  176. : "未知"
  177. }}</span>
  178. <span v-else-if="item.scope === 'TimeVoBtn'">
  179. <el-popover placement="left" trigger="click">
  180. <div
  181. v-for="(items, indexs) in scope.row[item.prop]"
  182. :key="indexs"
  183. style="margin-bottom: 6px"
  184. >
  185. {{ $methodsTools.onlyForma(items.startTime) }} ~
  186. {{ $methodsTools.onlyForma(items.endTime) }}
  187. </div>
  188. <el-button slot="reference" size="mini">查看</el-button>
  189. </el-popover>
  190. </span>
  191. <div v-else-if="item.scope === 'video'">
  192. <i v-if="scope.row[item.prop][item.prop1] !== null" class="el-icon-video-play cvideo" @click="openVideo($methodsTools.splitImgHost(scope.row[item.prop][item.prop1]))"></i>
  193. </div>
  194. <div
  195. v-else-if="item.scope === 'PDF'"
  196. style="display: flex; align-items: center"
  197. >
  198. <a
  199. v-if="scope.row[item.prop][item.prop1] !== null"
  200. :href="
  201. $methodsTools.splitImgHost(scope.row[item.prop][item.prop1])
  202. "
  203. target="_blank"
  204. style="
  205. display: block;
  206. width: 35px;
  207. height: 45px;
  208. margin-right: 10px;
  209. "
  210. >
  211. <img class="imgHover" src="@/assets/images/pdf@3x.png" alt="" />
  212. </a>
  213. <div>{{ scope.row[item.prop][item.prop2] }}</div>
  214. </div>
  215. <span v-else-if="item.scope === 'Salary'">
  216. {{ scope.row[item.prop1] === 1 ? "月薪" : "年薪" }}
  217. {{
  218. scope.row[item.prop2] === scope.row[item.prop3]
  219. ? scope.row[item.prop2]
  220. : scope.row[item.prop2] + "~" + scope.row[item.prop3]
  221. }}
  222. </span>
  223. <span v-else-if="item.scope === 'activityType'">{{
  224. Number(scope.row[item.prop]) === 0
  225. ? "优惠券"
  226. : Number(scope.row[item.prop]) === 1
  227. ? "折扣券"
  228. : Number(scope.row[item.prop]) === 2
  229. ? "线上直播"
  230. : Number(scope.row[item.prop]) === 3
  231. ? "定价"
  232. : Number(scope.row[item.prop]) === 4
  233. ? "优惠"
  234. : Number(scope.row[item.prop]) === 5
  235. ? "折扣"
  236. : Number(scope.row[item.prop]) === 6
  237. ? "线下活动"
  238. : "未知"
  239. }}</span>
  240. <span v-else-if="item.scope === 'activityRemarks'">{{
  241. Number(scope.row[item.prop]) === 0
  242. ? "金额:¥" + scope.row["price"]
  243. : Number(scope.row[item.prop]) === 1
  244. ? "折扣:" + scope.row["price"] + "折"
  245. : Number(scope.row[item.prop]) === 2
  246. ? "直播内容:" + scope.row["liveContent"]
  247. : Number(scope.row[item.prop]) === 3
  248. ? "商品金额:¥" + scope.row["price"]
  249. : Number(scope.row[item.prop]) === 4
  250. ? "优惠金额:¥" + scope.row["price"]
  251. : Number(scope.row[item.prop]) === 5
  252. ? "商品折扣:" + scope.row["price"] + "折"
  253. : Number(scope.row[item.prop]) === 6
  254. ? "活动地点:" + scope.row["liveAdress"]
  255. : "未知"
  256. }}</span>
  257. <span v-else-if="item.scope === 'isUrgent'">{{
  258. scope.row[item.prop] === 0
  259. ? "不是"
  260. : scope.row[item.prop] === 1
  261. ? "是"
  262. : "未知"
  263. }}</span>
  264. <span v-else-if="item.scope === 'peopleNum'">{{
  265. scope.row[item.prop] === 0 ? "不限制" : scope.row[item.prop]
  266. }}</span>
  267. <span v-else-if="item.scope === 'address'">{{
  268. scope.row[item.prop1] +
  269. scope.row[item.prop2] +
  270. scope.row[item.prop3] +
  271. scope.row[item.prop4]
  272. }}</span>
  273. <span v-else-if="item.scope === 'statusActivity'">{{
  274. Number(scope.row[item.prop]) === 0
  275. ? "已删除"
  276. : Number(scope.row[item.prop]) === 1
  277. ? "已结束"
  278. : Number(scope.row[item.prop]) === 2
  279. ? "已撤回"
  280. : Number(scope.row[item.prop]) === 3
  281. ? "已开始"
  282. : Number(scope.row[item.prop]) === 4
  283. ? "未开始"
  284. : "未知"
  285. }}</span>
  286. <span v-else-if="item.scope === 'statusFB'">{{
  287. scope.row[item.prop] === 0
  288. ? "删除"
  289. : scope.row[item.prop] === 1
  290. ? "发布"
  291. : scope.row[item.prop] === 2
  292. ? "撤回"
  293. : scope.row[item.prop] === 3
  294. ? "未发布"
  295. : "未知"
  296. }}</span>
  297. <span v-else-if="item.scope === 'typeStatus'">{{
  298. scope.row[item.prop] === 0
  299. ? "报名指引"
  300. : scope.row[item.prop] === 1
  301. ? "打印准考证"
  302. : scope.row[item.prop] === 2
  303. ? "成绩查询指引"
  304. : "未知"
  305. }}</span>
  306. <span v-else-if="item.scope === 'typeId'">{{
  307. scope.row[item.prop] === 1
  308. ? "普通练习"
  309. : scope.row[item.prop] === 2
  310. ? "押题试卷"
  311. : scope.row[item.prop] === 3
  312. ? "真题试卷"
  313. : "未知"
  314. }}</span>
  315. <span v-else-if="item.scope === 'taskType'">{{
  316. scope.row[item.prop] === 0
  317. ? "每日签到"
  318. : scope.row[item.prop] === 1
  319. ? "完善信息"
  320. : scope.row[item.prop] === 2
  321. ? "邀请好友"
  322. : scope.row[item.prop] === 3
  323. ? "每日分享"
  324. : scope.row[item.prop] === 4
  325. ? "视频学习"
  326. : scope.row[item.prop] === 5
  327. ? "模拟考试"
  328. : "未知"
  329. }}</span>
  330. <span v-else-if="item.scope === 'releaseType'">{{
  331. scope.row[item.prop] === 0
  332. ? "手动发布"
  333. : scope.row[item.prop] === 1
  334. ? "定时发布"
  335. : "未知"
  336. }}</span>
  337. <span v-else-if="item.scope === 'releaseStatus'">{{
  338. scope.row[item.prop] === 0
  339. ? "删除"
  340. : scope.row[item.prop] === 1
  341. ? "待发布"
  342. : scope.row[item.prop] === 2
  343. ? "撤回"
  344. : scope.row[item.prop] === 3
  345. ? "发布成功"
  346. : scope.row[item.prop] === 4
  347. ? "未发布"
  348. : scope.row[item.prop] === 5
  349. ? "已结束"
  350. : "未知"
  351. }}</span>
  352. <span
  353. class="editInfoSty"
  354. v-else-if="item.scope === 'isNums'"
  355. @click="editInfo(scope.row)"
  356. >{{ scope.row[item.prop] }}
  357. </span>
  358. <span v-else-if="item.scope === 'numberAll'">{{
  359. scope.row[item.prop1] + scope.row[item.prop2]
  360. }}</span>
  361. <span v-else-if="item.scope === 'moreLists'">{{
  362. scope.row[item.prop1] + " ~ " + scope.row[item.prop2]
  363. }}</span>
  364. <span v-else-if="item.scope === 'TimeLists'"
  365. >{{ $methodsTools.onlyForma(scope.row[item.prop1]) }} ~
  366. {{ $methodsTools.onlyForma(scope.row[item.prop2]) }}</span
  367. >
  368. <span v-else-if="item.scope === 'aTimeList'">{{
  369. scope.row[item.prop] === null
  370. ? "--"
  371. : $methodsTools.onlyForma(scope.row[item.prop])
  372. }}</span>
  373. <span v-else-if="item.scope === 'topic'">{{
  374. scope.row[item.prop] === 1
  375. ? "单选题"
  376. : scope.row[item.prop] === 2
  377. ? "多选题"
  378. : scope.row[item.prop] === 3
  379. ? "判断题"
  380. : scope.row[item.prop] === 4
  381. ? "案例题"
  382. : "未知"
  383. }}</span>
  384. <span v-else-if="item.scope === 'statusOrder'">{{
  385. scope.row[item.prop] === -2
  386. ? "超时关闭"
  387. : scope.row[item.prop] === -1
  388. ? "手动关闭"
  389. : scope.row[item.prop] === 0
  390. ? "待付款"
  391. : scope.row[item.prop] === 1
  392. ? "已付款"
  393. : scope.row[item.prop] === 3
  394. ? "成功"
  395. : "未知"
  396. }}</span>
  397. <span v-else-if="item.scope === 'cType'">
  398. <el-tag
  399. type="success"
  400. v-if="
  401. compType(scope.row[item.prop], scope.row['requestMethod']) ===
  402. '新增'
  403. "
  404. >
  405. {{
  406. compType(scope.row[item.prop], scope.row["requestMethod"])
  407. }}</el-tag
  408. >
  409. <el-tag
  410. v-if="
  411. compType(scope.row[item.prop], scope.row['requestMethod']) ===
  412. '修改'
  413. "
  414. >
  415. {{
  416. compType(scope.row[item.prop], scope.row["requestMethod"])
  417. }}</el-tag
  418. >
  419. <el-tag
  420. type="warning"
  421. v-if="
  422. compType(scope.row[item.prop], scope.row['requestMethod']) ===
  423. '查询'
  424. "
  425. >
  426. {{
  427. compType(scope.row[item.prop], scope.row["requestMethod"])
  428. }}</el-tag
  429. >
  430. </span>
  431. <span v-else-if="item.scope === 'time'">{{
  432. numTime(scope.row[item.prop])
  433. }}</span>
  434. <span v-else-if="item.scope === 'timeBtn'"
  435. >{{ numTime(scope.row[item.prop]) }}
  436. <el-button type="text" @click="getxq(scope.row)">详情</el-button>
  437. </span>
  438. <span v-else-if="item.scope === 'minute'">{{
  439. numTimeminute(scope.row[item.prop])
  440. }}</span>
  441. <span
  442. v-else-if="item.scope === 'jumpPage'"
  443. @click="jumpPage(scope.row)"
  444. style="color: #409eff; cursor: pointer"
  445. >{{ scope.row[item.prop] }}</span
  446. >
  447. <span v-else>{{ scope.row[item.prop] }}</span>
  448. </template>
  449. </el-table-column>
  450. </template>
  451. <el-table-column
  452. label="操作"
  453. align="center"
  454. fixed="right"
  455. width="180px"
  456. v-if="!navText.tableHide"
  457. >
  458. <template slot-scope="scope">
  459. <slot name="btn" :scope="scope"></slot>
  460. <!-- <el-button type="text" @click="edit(scope.row)">删除</el-button> -->
  461. </template>
  462. </el-table-column>
  463. </el-table>
  464. <el-dialog
  465. :visible.sync="diaBox"
  466. width="500px"
  467. :show-close="false"
  468. :destroy-on-close="true"
  469. >
  470. <div slot="title" class="hearders">
  471. <div class="leftTitle">详情</div>
  472. <div class="rightBoxs">
  473. <img
  474. src="@/assets/images/Close@2x.png"
  475. alt=""
  476. @click="closeBeforefs"
  477. />
  478. </div>
  479. </div>
  480. <el-row class="contentBox" :gutter="30">
  481. <div style="width: 100%; height: 100%">
  482. <video
  483. controls
  484. preload
  485. style="width: 100%; height: 100%"
  486. :src="$methodsTools.splitImgHost(videoUrls)"
  487. ></video>
  488. </div>
  489. </el-row>
  490. <div slot="footer" class="dialog-footer">
  491. <el-button @click="closeBeforefs">关闭</el-button>
  492. </div>
  493. </el-dialog>
  494. </div>
  495. </template>
  496. <script>
  497. export default {
  498. props: ["tableSets", "tableData", "navText", "rowKey", "loading"],
  499. data() {
  500. return {
  501. tableSet: this.tableSets,
  502. allCheckData: [], //表格多选
  503. checkAll: true,
  504. checkedCities: [], //自定义列 选中数组
  505. cities: [], //自定义列 总数组
  506. isIndeterminate: false,
  507. videoUrls: '',
  508. diaBox:false,
  509. };
  510. },
  511. computed: {
  512. numTime: function () {
  513. return function (res) {
  514. return Number(res / 3600).toFixed(2);
  515. };
  516. },
  517. numTimeminute: function () {
  518. return function (res) {
  519. return Number(res / 60).toFixed(2);
  520. };
  521. },
  522. compType: function () {
  523. return function (res, data) {
  524. if (data === "POST") {
  525. if (res.indexOf("edit") !== -1 || res.indexOf("update") !== -1) {
  526. return "修改";
  527. } else {
  528. return "新增";
  529. }
  530. } else if (data === "GET") {
  531. return "查询";
  532. }
  533. };
  534. },
  535. },
  536. created() {
  537. this.inittableSet = JSON.stringify(this.tableSet);
  538. this.initTR();
  539. },
  540. mounted() {},
  541. methods: {
  542. editInfo(option) {
  543. this.$emit("editInfo", option);
  544. },
  545. timeStyle(column) {
  546. if (column.columnIndex === 0 && this.navText.firstColLeft) {
  547. return "text-align:left!important; padding-left: 40px;";
  548. }
  549. },
  550. //初始化
  551. initTR() {
  552. this.cities = [];
  553. this.checkedCities = [];
  554. this.checkAll = true;
  555. this.isIndeterminate = false;
  556. this.tableSet.forEach((item, index) => {
  557. this.cities.push(item.label);
  558. if (item.hidden) {
  559. this.checkedCities.push(item.label);
  560. }
  561. });
  562. if (this.checkedCities.length === 0) {
  563. this.isIndeterminate = false;
  564. } else if (this.checkedCities.length === this.cities.length) {
  565. this.isIndeterminate = false;
  566. this.checkAll = true;
  567. } else {
  568. this.isIndeterminate = true;
  569. this.checkAll = false;
  570. }
  571. },
  572. //自定义列全选按钮触发
  573. handleCheckAllChange(val) {
  574. this.checkedCities = val ? this.cities : [];
  575. this.isIndeterminate = false;
  576. if (val) {
  577. this.tableSet.forEach((item, index) => {
  578. item.hidden = true;
  579. });
  580. } else {
  581. this.tableSet.forEach((item, index) => {
  582. item.hidden = false;
  583. });
  584. }
  585. },
  586. // 勾选自定义列子选项
  587. handleCheckedCitiesChange(value) {
  588. let checkedCount = value.length;
  589. this.checkAll = checkedCount === this.cities.length;
  590. this.isIndeterminate =
  591. checkedCount > 0 && checkedCount < this.cities.length;
  592. },
  593. checkboxChange(v, e) {
  594. this.tableSet.forEach((item) => {
  595. if (item.label === v) {
  596. item.hidden = e;
  597. }
  598. });
  599. },
  600. // 下移
  601. downMove(option, index) {
  602. if (index !== this.tableSet.length - 1) {
  603. this.tableSet[index] = this.tableSet.splice(
  604. index + 1,
  605. 1,
  606. this.tableSet[index]
  607. )[0];
  608. this.cities[index] = this.cities.splice(
  609. index + 1,
  610. 1,
  611. this.cities[index]
  612. )[0];
  613. } else {
  614. this.tableSet.unshift(this.tableSet.splice(index, 1)[0]);
  615. this.cities.unshift(this.cities.splice(index, 1)[0]);
  616. }
  617. },
  618. // 上移
  619. upMove(option, index) {
  620. if (index != 0) {
  621. this.tableSet[index] = this.tableSet.splice(
  622. index - 1,
  623. 1,
  624. this.tableSet[index]
  625. )[0];
  626. this.cities[index] = this.cities.splice(
  627. index - 1,
  628. 1,
  629. this.cities[index]
  630. )[0];
  631. } else {
  632. this.tableSet.push(this.tableSet.shift());
  633. this.cities.push(this.cities.shift());
  634. }
  635. },
  636. //跳转页面
  637. jumpPage(options) {
  638. this.$router.push({
  639. path: "/dictData",
  640. query: {
  641. dictId: options.dictId,
  642. dictType: options.dictType,
  643. },
  644. });
  645. },
  646. //新增按钮
  647. addClick() {
  648. this.$emit("addClick");
  649. },
  650. //将选中值传回调用组件
  651. backFather() {
  652. this.$emit("emitData", this.allCheckData);
  653. },
  654. edit() {},
  655. selectAll(value) {
  656. this.allCheckData = value;
  657. },
  658. select(value) {
  659. this.allCheckData = value;
  660. },
  661. //自定义列重置
  662. initVue() {
  663. // this.$emit("initTableset");
  664. this.tableSet = JSON.parse(this.inittableSet);
  665. this.initTR();
  666. },
  667. load(tree, treeNode, resolve) {
  668. this.$emit("load", tree, treeNode, resolve);
  669. },
  670. getxq(option) {
  671. this.$emit("getxq", option.userId);
  672. },
  673. openVideo(url){
  674. this.videoUrls = url
  675. this.diaBox = true
  676. },
  677. closeBeforefs(){
  678. this.diaBox = false
  679. },
  680. },
  681. };
  682. </script>
  683. <style lang="less">
  684. .slotPopper {
  685. padding: 0px !important;
  686. }
  687. </style>
  688. <style lang="less" scoped>
  689. #tableList {
  690. padding: 0px 16px 16px;
  691. border-radius: 8px;
  692. box-shadow: 0px 0px 9px 1px rgba(28, 41, 90, 0.1);
  693. background: #ffffff;
  694. .headerNavTool {
  695. height: 72px;
  696. display: flex;
  697. justify-content: space-between;
  698. align-items: center;
  699. .rightBtnBox {
  700. display: flex;
  701. align-items: center;
  702. }
  703. }
  704. }
  705. .popoverDis {
  706. display: flex;
  707. flex-direction: column;
  708. align-items: flex-start;
  709. font-size: 14px;
  710. .checkboxHeader {
  711. height: 40px;
  712. display: flex;
  713. align-items: center;
  714. justify-content: space-between;
  715. padding-left: 13px;
  716. padding-right: 15px;
  717. width: 100%;
  718. .initbtns {
  719. color: #47a6ff;
  720. cursor: pointer;
  721. }
  722. }
  723. .checkboxGroup {
  724. display: flex;
  725. flex-direction: column;
  726. width: 100%;
  727. .checkboxchild {
  728. width: 100%;
  729. justify-content: space-between;
  730. height: 40px;
  731. display: flex;
  732. align-items: center;
  733. padding: 0px 15px 0px 13px;
  734. transition: all 0.4s;
  735. &:hover {
  736. background-color: #ecf5ff;
  737. }
  738. &:hover .icon-right {
  739. display: flex;
  740. }
  741. .icon-right {
  742. display: flex;
  743. align-items: center;
  744. width: 30px;
  745. height: 30px;
  746. color: #666;
  747. font-size: 14px;
  748. display: none;
  749. i {
  750. cursor: pointer;
  751. margin: 0px 3px;
  752. &:hover {
  753. color: #47a6ff;
  754. }
  755. }
  756. }
  757. }
  758. }
  759. }
  760. /deep/.el-checkbox__input.is-checked + .el-checkbox__label {
  761. color: #666;
  762. }
  763. .imgboxsq {
  764. margin: 0 auto;
  765. height: 60px;
  766. max-height: 60px;
  767. .el_images {
  768. /deep/.el-image__inner {
  769. width: auto;
  770. }
  771. }
  772. }
  773. .imgHover {
  774. width: 100%;
  775. height: 100%;
  776. cursor: pointer;
  777. }
  778. .cvideo{
  779. transition: all 0.2s;
  780. color: #333;
  781. cursor: pointer;
  782. font-size: 30px;
  783. }
  784. .cvideo:hover{
  785. color: #47a6ff;
  786. }
  787. .editInfoSty {
  788. cursor: pointer;
  789. color: blue;
  790. }
  791. </style>