vipEvaluateList.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. <!-- -->
  2. <template>
  3. <div>
  4. <save-form
  5. :inline="true"
  6. save-key="commentManager-vipEvaluateList"
  7. class="searchForm"
  8. :model="searchForm"
  9. @submit="search"
  10. @reset="onReSet"
  11. ref="searchForm"
  12. >
  13. <!-- 状态 指导老师 活动方案-->
  14. <el-form-item>
  15. <el-input
  16. v-model.trim="searchForm.search"
  17. @keyup.enter.native="
  18. (e) => {
  19. e.target.blur();
  20. $refs.searchForm.save();
  21. search();
  22. }
  23. "
  24. clearable
  25. placeholder="请输入课程组名称 ID"
  26. ></el-input>
  27. </el-form-item>
  28. <el-form-item>
  29. <el-select
  30. placeholder="请选择分部"
  31. v-model="searchForm.organId"
  32. clearable
  33. >
  34. <el-option
  35. v-for="(item, index) in selects.branchs"
  36. :label="item.name"
  37. :value="item.id"
  38. :key="index"
  39. ></el-option>
  40. </el-select>
  41. </el-form-item>
  42. <el-form-item>
  43. <!-- <el-select
  44. placeholder="指导老师"
  45. v-model="searchForm.teacherId"
  46. clearable
  47. filterable
  48. >
  49. <el-option
  50. v-for="(item, index) in teacherList"
  51. :label="item.realName"
  52. :value="item.id"
  53. :key="index"
  54. ></el-option>
  55. </el-select> -->
  56. <remote-search
  57. :commit="'setTeachers'"
  58. aria-placeholder="请选择指导老师"
  59. v-model="searchForm.teacherId"
  60. :isForzenWithQueryCondition="true"
  61. />
  62. </el-form-item>
  63. <el-form-item>
  64. <el-select
  65. v-model.trim="searchForm.eduTeacherId"
  66. filterable
  67. clearable
  68. placeholder="乐团主管"
  69. >
  70. <el-option
  71. v-for="(item, index) in selects.roles.EDUCATION"
  72. :key="index"
  73. :value="item.userId"
  74. :label="item.userName"
  75. >
  76. <span style="float: left">{{ item.userName }}</span>
  77. <span style="float: right; color: #8492a6; font-size: 13px">{{
  78. item.userId
  79. }}</span>
  80. </el-option>
  81. </el-select>
  82. </el-form-item>
  83. <el-form-item>
  84. <el-select
  85. placeholder="老师评价"
  86. v-model="searchForm.hasReview"
  87. clearable
  88. >
  89. <el-option label="评价" value="1"></el-option>
  90. <el-option label="未评价" value="0"></el-option>
  91. </el-select>
  92. </el-form-item>
  93. <el-form-item>
  94. <el-select
  95. placeholder="布置训练"
  96. v-model="searchForm.assignHomework"
  97. clearable
  98. >
  99. <el-option label="是" value="1"></el-option>
  100. <el-option label="否" value="0"></el-option>
  101. </el-select>
  102. </el-form-item>
  103. <el-form-item>
  104. <el-date-picker
  105. :clearable="false"
  106. v-model="searchForm.month"
  107. type="daterange"
  108. value-format="yyyy-MM-dd"
  109. format="yyyy-MM-dd"
  110. :picker-options="{
  111. firstDayOfWeek: 1,
  112. }"
  113. range-separator="-"
  114. start-placeholder="开始日期"
  115. end-placeholder="结束日期"
  116. >
  117. ></el-date-picker
  118. >
  119. </el-form-item>
  120. <br />
  121. <el-form-item>
  122. <el-button native-type="submit" type="danger">搜索</el-button>
  123. <el-button native-type="reset" type="primary">重置</el-button>
  124. <el-button
  125. type="primary"
  126. v-if="tableData.length > 0"
  127. v-permission="'export/courseReviews'"
  128. @click="netWorkExport"
  129. >导出</el-button
  130. >
  131. </el-form-item>
  132. </save-form>
  133. <div class="tableWrap">
  134. <el-table
  135. style="width: 100%"
  136. :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
  137. :data="tableData"
  138. >
  139. <el-table-column align="center" prop="organName" label="分部名称">
  140. <template slot-scope="scope">
  141. <copy-text>
  142. {{ scope.row.organName }}
  143. </copy-text>
  144. </template>
  145. </el-table-column>
  146. <el-table-column align="center" prop="id" label="课程编号">
  147. <template slot-scope="scope">
  148. <copy-text>
  149. {{ scope.row.id }}
  150. </copy-text>
  151. </template>
  152. </el-table-column>
  153. <el-table-column align="center" prop="courseName" label="课程名称">
  154. <template slot-scope="scope">
  155. <copy-text>
  156. {{ scope.row.courseName }}
  157. </copy-text>
  158. </template>
  159. </el-table-column>
  160. <el-table-column align="center" prop="courseName" label="上课日期">
  161. <template slot-scope="scope">
  162. <div>
  163. {{ scope.row.classDate | formatTimer }}
  164. </div>
  165. </template>
  166. </el-table-column>
  167. <el-table-column
  168. align="center"
  169. prop="subjectName"
  170. label="声部"
  171. ></el-table-column>
  172. <el-table-column align="center" prop="teacherName" label="指导老师">
  173. <template slot-scope="scope">
  174. <copy-text>{{ scope.row.teacherName }}</copy-text>
  175. </template>
  176. </el-table-column>
  177. <el-table-column align="center" prop="eduTeacherName" label="乐团主管">
  178. <template slot-scope="scope">
  179. <copy-text>{{ scope.row.eduTeacherName }}</copy-text>
  180. </template>
  181. </el-table-column>
  182. <el-table-column align="center" label="老师评价">
  183. <template slot-scope="scope">
  184. <div>{{ scope.row.reviewId > 0 ? "评价" : "未评价" }}</div>
  185. </template>
  186. </el-table-column>
  187. <el-table-column align="center" label="布置训练">
  188. <template slot-scope="scope">
  189. <div>{{ scope.row.assignHomework ? "是" : "否" }}</div>
  190. </template>
  191. </el-table-column>
  192. <!-- <el-table-column align="center"
  193. label="是否到课">
  194. <template slot-scope="scope">
  195. <div>{{scope.row.attendanceId>0?'到课':'未到'}}</div>
  196. </template>
  197. </el-table-column> -->
  198. <el-table-column align="center" label="操作">
  199. <!-- v-permission="'evaluateList/look'" -->
  200. <template slot-scope="scope">
  201. <div>
  202. <el-button
  203. type="text"
  204. v-if="scope.row.reviewId"
  205. @click="lookDetail(scope.row)"
  206. >查看</el-button
  207. >
  208. </div>
  209. </template>
  210. </el-table-column>
  211. </el-table>
  212. <pagination
  213. save-key="commentManager-vipEvaluateList"
  214. sync
  215. :total.sync="rules.total"
  216. :page.sync="rules.page"
  217. :limit.sync="rules.limit"
  218. :page-sizes="rules.page_size"
  219. @pagination="getList"
  220. />
  221. </div>
  222. <el-dialog title="vip评价详情" :visible.sync="netWorkVisible" width="800px">
  223. <div class="wrap">
  224. <div class="commitLeft">
  225. <div class="leftCell" v-if="teacherClassHeadInfo">
  226. <p>课程班名称</p>
  227. <p>{{ teacherClassHeadInfo.classGroupName }}</p>
  228. </div>
  229. <div class="leftCell" v-if="teacherClassHeadInfo">
  230. <p>上课时间</p>
  231. <p>
  232. {{
  233. teacherClassHeadInfo.classDate +
  234. " " +
  235. teacherClassHeadInfo.startClassTime +
  236. "-" +
  237. teacherClassHeadInfo.endClassTime
  238. }}
  239. </p>
  240. </div>
  241. <div class="leftCell" v-if="teacherClassHeadInfo">
  242. <p>乐器</p>
  243. <p>{{ teacherClassHeadInfo.subjectNames }}</p>
  244. </div>
  245. <div class="leftCell" v-if="teacherClassHeadInfo">
  246. <p>指导老师</p>
  247. <p>{{ teacherClassHeadInfo.bishopTeacher }}</p>
  248. </div>
  249. <div class="leftCell" v-if="teacherClassHeadInfo">
  250. <p>学员</p>
  251. <p>{{ teacherClassHeadInfo.studentNames }}</p>
  252. </div>
  253. <div class="leftCell" v-if="courseScheduleReview">
  254. <p>回访日期</p>
  255. <p>{{ courseScheduleReview.createTime.substring(0, 10) }}</p>
  256. </div>
  257. <!-- <div class="leftCell"
  258. v-if="courseScheduleReview">
  259. <p>是否双向沟通</p>
  260. <p>{{courseScheduleReview.hasLiaison?'是':'否'}}</p>
  261. </div> -->
  262. <div class="leftCell" v-if="courseScheduleReview">
  263. <p>是否提交训练</p>
  264. <p>{{ courseScheduleReview.handHomework ? "是" : "否" }}</p>
  265. </div>
  266. <div class="leftCell" v-if="courseScheduleReview">
  267. <p>乐团主管</p>
  268. <p>{{ courseScheduleReview.eduTeacherName }}</p>
  269. </div>
  270. <div class="leftCell">
  271. <p>课程评价</p>
  272. <div class="chioseWrap">
  273. <el-tag
  274. :type="mychiose == '好' ? 'danger' : 'info'"
  275. @click="courseScheduleReview.courseReview = '好'"
  276. >好</el-tag
  277. >
  278. <el-tag
  279. :type="mychiose == '中' ? 'danger' : 'info'"
  280. @click="courseScheduleReview.courseReview = '中'"
  281. >中</el-tag
  282. >
  283. <el-tag
  284. :type="mychiose == '差' ? 'danger' : 'info'"
  285. @click="courseScheduleReview.courseReview = '差'"
  286. >差</el-tag
  287. >
  288. </div>
  289. </div>
  290. </div>
  291. <div class="commitRight">
  292. <div v-if="courseScheduleComplaints">
  293. <div v-for="(item, index) in courseScheduleComplaints" :key="index">
  294. <div class="rightCell">
  295. <p>{{ item.username }}</p>
  296. <div class="chioseWrap">
  297. <el-rate
  298. v-model="item.score"
  299. disabled
  300. text-color="#ff9900"
  301. ></el-rate>
  302. </div>
  303. </div>
  304. <el-input
  305. type="textarea"
  306. v-model="item.reason"
  307. disabled
  308. ></el-input>
  309. </div>
  310. </div>
  311. <div v-if="courseScheduleReview">
  312. <div class="rightCell" v-if="courseScheduleReview">
  313. <p>教材内容</p>
  314. </div>
  315. <el-input
  316. type="textarea"
  317. disabled
  318. v-model="teachingMaterial"
  319. ></el-input>
  320. <div class="leftCell" v-if="courseScheduleReview">
  321. <p>曲目</p>
  322. <p>{{ courseScheduleReview.song }}</p>
  323. </div>
  324. <div class="rightCell" v-if="courseScheduleReview">
  325. <p>发音</p>
  326. <div class="chioseWrap">
  327. <el-rate
  328. v-model="courseScheduleReview.pronunciation"
  329. disabled
  330. text-color="#ff9900"
  331. ></el-rate>
  332. </div>
  333. </div>
  334. <div class="rightCell" v-if="courseScheduleReview">
  335. <p>节奏</p>
  336. <div class="chioseWrap">
  337. <el-rate
  338. v-model="courseScheduleReview.tempo"
  339. disabled
  340. text-color="#ff9900"
  341. ></el-rate>
  342. </div>
  343. </div>
  344. <div class="rightCell" v-if="courseScheduleReview">
  345. <p>乐理</p>
  346. <div class="chioseWrap">
  347. <el-rate
  348. v-model="courseScheduleReview.musicTheory"
  349. disabled
  350. text-color="#ff9900"
  351. ></el-rate>
  352. </div>
  353. </div>
  354. <div class="rightCell">
  355. <p>评价备注</p>
  356. </div>
  357. <el-input
  358. type="textarea"
  359. disabled
  360. v-model="courseScheduleReview.memo"
  361. v-if="courseScheduleReview"
  362. ></el-input>
  363. </div>
  364. </div>
  365. </div>
  366. <div slot="footer" class="dialog-footer">
  367. <el-button @click="netWorkVisible = false">取 消</el-button>
  368. <el-button type="primary" @click="submitNetwork">确定</el-button>
  369. </div>
  370. </el-dialog>
  371. </div>
  372. </template>
  373. <script>
  374. import { getToken, getTenantId } from "@/utils/auth";
  375. import qs from "qs";
  376. import axios from "axios";
  377. import pagination from "@/components/Pagination/index";
  378. import { practiceGroupType } from "@/utils/searchArray";
  379. import {
  380. getReviewInfo,
  381. updateReviewInfo,
  382. getVipGroup,
  383. } from "@/api/buildTeam";
  384. export default {
  385. components: { pagination },
  386. data() {
  387. return {
  388. netWorkVisible: false,
  389. searchForm: {
  390. organId: null,
  391. teacherId: null,
  392. eduTeacherId: null,
  393. isFree: null,
  394. studentReview: null,
  395. hasHandHomework: null,
  396. hasReview: null,
  397. courseReview: null,
  398. hasArrived: null,
  399. homeWorkReplied: null,
  400. assignHomework: null,
  401. month: [],
  402. practiceGroupType: null,
  403. },
  404. practiceGroupType: practiceGroupType,
  405. organList: [],
  406. teacherList: [],
  407. educationList: [],
  408. tableData: [],
  409. rules: {
  410. // 分页规则
  411. limit: 10, // 限制显示条数
  412. page: 1, // 当前页
  413. total: 0, // 总条数
  414. page_size: [10, 20, 40, 50], // 选择限制显示条数
  415. },
  416. value: null,
  417. teacherClassHeadInfo: null,
  418. courseScheduleReview: null,
  419. courseScheduleComplaints: null,
  420. activeId: null,
  421. };
  422. },
  423. //生命周期 - 创建完成(可以访问当前this实例)
  424. created() {},
  425. //生命周期 - 挂载完成(可以访问DOM元素)
  426. async mounted() {
  427. this.$store.dispatch("setBranchs");
  428. await this.$store.dispatch("setOrganRole");
  429. this.init();
  430. },
  431. activated() {
  432. this.init();
  433. },
  434. methods: {
  435. init() {
  436. // 获取默认月份
  437. if (this.searchForm.month.length <= 0) {
  438. var now = new Date();
  439. var startDate = new Date(
  440. Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
  441. )
  442. .toISOString()
  443. .slice(0, 10);
  444. // + " 00:00:00" + " 23:59:59"
  445. var endDate = new Date(
  446. Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
  447. )
  448. .toISOString()
  449. .slice(0, 10);
  450. this.searchForm.month = [];
  451. this.searchForm.month.push(startDate);
  452. this.searchForm.month.push(endDate);
  453. console.log(this.searchForm.month);
  454. }
  455. this.getList();
  456. },
  457. getList() {
  458. let obj = {};
  459. obj.organId = this.searchForm.organId || null;
  460. obj.teacherId = this.searchForm.teacherId || null;
  461. obj.eduTeacherId = this.searchForm.eduTeacherId || null;
  462. obj.isFree = this.searchForm.isFree || null;
  463. obj.studentReview = this.searchForm.studentReview || null;
  464. obj.hasHandHomework = this.searchForm.hasHandHomework || null;
  465. obj.hasReview = this.searchForm.hasReview || null;
  466. obj.courseReview = this.searchForm.courseReview || null;
  467. obj.hasArrived = this.searchForm.hasArrived || null;
  468. obj.homeWorkReplied = this.searchForm.homeWorkReplied || null;
  469. obj.assignHomework = this.searchForm.assignHomework || null;
  470. obj.search = this.searchForm.search;
  471. obj.practiceGroupType = this.searchForm.practiceGroupType || null;
  472. if (this.searchForm.month && this.searchForm.month.length > 0) {
  473. obj.startTime = this.searchForm.month[0];
  474. obj.endTime = this.searchForm.month[1];
  475. } else {
  476. this.$message.error("请选择时间范围");
  477. return;
  478. }
  479. obj.page = this.rules.page;
  480. obj.rows = this.rules.limit;
  481. getVipGroup(obj).then((res) => {
  482. if (res.code == 200) {
  483. this.tableData = res.data.rows;
  484. this.rules.total = res.data.total;
  485. }
  486. });
  487. },
  488. lookDetail(row) {
  489. this.activeId = row.reviewId;
  490. getReviewInfo({ id: this.activeId }).then((res) => {
  491. if (res.code == 200) {
  492. this.teacherClassHeadInfo = res.data.teacherClassHeadInfo;
  493. this.courseScheduleReview = res.data.courseScheduleReview;
  494. this.courseScheduleComplaints = res.data.courseScheduleComplaints;
  495. // 教务评价详情
  496. // eduCourseReviewGetReviewInfo({id}).then(res=>{
  497. // if(res.code == 200){
  498. // }
  499. // })
  500. this.netWorkVisible = true;
  501. }
  502. });
  503. },
  504. submitNetwork() {
  505. if (!this.courseScheduleReview.courseReview) {
  506. this.$message.error("请评价课程");
  507. return;
  508. }
  509. updateReviewInfo({
  510. id: this.activeId,
  511. courseReview: this.courseScheduleReview.courseReview,
  512. }).then((res) => {
  513. if (res.code == 200) {
  514. this.$message.success("评价成功");
  515. this.netWorkVisible = false;
  516. this.getList();
  517. }
  518. });
  519. },
  520. search() {
  521. this.rules.page = 1;
  522. this.getList();
  523. },
  524. onReSet() {
  525. this.rules.page = 1;
  526. this.searchForm = {
  527. organId: null,
  528. teacherId: null,
  529. educationalTeacherId: null,
  530. isFree: null,
  531. studentReview: null,
  532. hasHandHomework: null,
  533. hasReview: null,
  534. courseReview: null,
  535. month: null,
  536. hasArrived: null,
  537. homeWorkReplied: null,
  538. assignHomework: null,
  539. practiceGroupType: null,
  540. };
  541. var now = new Date();
  542. var startDate = new Date(
  543. Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
  544. )
  545. .toISOString()
  546. .slice(0, 10);
  547. // + " 00:00:00" + " 23:59:59"
  548. var endDate = new Date(
  549. Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
  550. )
  551. .toISOString()
  552. .slice(0, 10);
  553. this.searchForm.month = [];
  554. this.searchForm.month.push(startDate);
  555. this.searchForm.month.push(endDate);
  556. this.getList();
  557. },
  558. netWorkExport() {
  559. let url = "/api-web/export/courseReviews";
  560. let obj = {};
  561. this.searchForm.organId ? (obj.organId = this.searchForm.organId) : null;
  562. this.searchForm.teacherId
  563. ? (obj.teacherId = this.searchForm.teacherId)
  564. : null;
  565. this.searchForm.eduTeacherId
  566. ? (obj.eduTeacherId = this.searchForm.eduTeacherId)
  567. : null;
  568. this.searchForm.isFree ? (obj.isFree = this.searchForm.isFree) : null;
  569. this.searchForm.studentReview
  570. ? (obj.studentReview = this.searchForm.studentReview)
  571. : null;
  572. this.searchForm.hasHandHomework
  573. ? (obj.hasHandHomework = this.searchForm.hasHandHomework)
  574. : null;
  575. this.searchForm.hasReview
  576. ? (obj.hasReview = this.searchForm.hasReview)
  577. : null;
  578. this.searchForm.courseReview
  579. ? (obj.courseReview = this.searchForm.courseReview)
  580. : null;
  581. this.searchForm.search ? (obj.search = this.searchForm.search) : null;
  582. this.searchForm.hasArrived
  583. ? (obj.hasArrived = this.searchForm.hasArrived)
  584. : null;
  585. this.searchForm.homeWorkReplied
  586. ? (obj.homeWorkReplied = this.searchForm.homeWorkReplied)
  587. : null;
  588. this.searchForm.assignHomework
  589. ? (obj.assignHomework = this.searchForm.assignHomework)
  590. : null;
  591. if (this.searchForm.month && this.searchForm.month.length > 0) {
  592. obj.startTime = this.searchForm.month[0];
  593. obj.endTime = this.searchForm.month[1];
  594. } else {
  595. this.$message.error("请选择时间范围");
  596. return;
  597. }
  598. this.searchForm.practiceGroupType
  599. ? (obj.practiceGroupType = this.searchForm.practiceGroupType)
  600. : null;
  601. const options = {
  602. method: "POST",
  603. headers: {
  604. Authorization: getToken(),
  605. tenantId: getTenantId()
  606. },
  607. data: qs.stringify(obj),
  608. url,
  609. responseType: "blob",
  610. };
  611. this.$confirm("您确定导出评价列表", "提示", {
  612. confirmButtonText: "确定",
  613. cancelButtonText: "取消",
  614. type: "warning",
  615. })
  616. .then(() => {
  617. axios(options).then((res) => {
  618. let blob = new Blob([res.data], {
  619. // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
  620. type: "application/vnd.ms-excel;charset=utf-8",
  621. //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
  622. });
  623. let objectUrl = URL.createObjectURL(blob);
  624. let link = document.createElement("a");
  625. let nowTime = new Date();
  626. let ymd =
  627. nowTime.getFullYear() +
  628. "" +
  629. (nowTime.getMonth() + 1) +
  630. "" +
  631. nowTime.getDate() +
  632. "" +
  633. nowTime.getHours() +
  634. "" +
  635. nowTime.getMinutes();
  636. let fname = +ymd + "网管评价.xls"; //下载文件的名字
  637. link.href = objectUrl;
  638. link.setAttribute("download", fname);
  639. document.body.appendChild(link);
  640. link.click();
  641. });
  642. })
  643. .catch(() => {});
  644. },
  645. },
  646. filters: {
  647. studentReviewFilter(val) {
  648. let arr = ["未评价", "1星", "2星", "3星", "4星", "5星"];
  649. return arr[val];
  650. },
  651. },
  652. computed: {
  653. teachingMaterial() {
  654. if (
  655. this.courseScheduleReview &&
  656. this.courseScheduleReview.teachingMaterial
  657. ) {
  658. return this.courseScheduleReview.teachingMaterial;
  659. } else {
  660. return "";
  661. }
  662. },
  663. mychiose() {
  664. if (this.courseScheduleReview && this.courseScheduleReview.courseReview) {
  665. return this.courseScheduleReview.courseReview;
  666. } else {
  667. return "";
  668. }
  669. },
  670. },
  671. };
  672. </script>
  673. <style lang='scss' scoped>
  674. .wrap {
  675. display: flex;
  676. flex-direction: row;
  677. justify-content: space-between;
  678. .leftCell {
  679. width: 300px;
  680. display: flex;
  681. flex-direction: row;
  682. justify-content: space-between;
  683. align-items: center;
  684. line-height: 50px;
  685. // border-bottom: 1px solid #ccc;
  686. }
  687. .rightCell {
  688. width: 300px;
  689. display: flex;
  690. flex-direction: row;
  691. justify-content: flex-start;
  692. align-items: center;
  693. line-height: 50px;
  694. p {
  695. margin-right: 30px;
  696. }
  697. }
  698. }
  699. ::v-deep .el-tag {
  700. cursor: pointer;
  701. }
  702. </style>