vipEvaluateList.vue 22 KB

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