vipEvaluateList.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  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 educationList"
  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 } 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. getTeacher,
  373. getEmployeeOrgan,
  374. findEducationUsers,
  375. getReviewInfo,
  376. updateReviewInfo,
  377. getVipGroup,
  378. } from "@/api/buildTeam";
  379. export default {
  380. components: { pagination },
  381. data() {
  382. return {
  383. netWorkVisible: false,
  384. searchForm: {
  385. organId: null,
  386. teacherId: null,
  387. eduTeacherId: null,
  388. isFree: null,
  389. studentReview: null,
  390. hasHandHomework: null,
  391. hasReview: null,
  392. courseReview: null,
  393. hasArrived: null,
  394. homeWorkReplied: null,
  395. assignHomework: null,
  396. month: [],
  397. practiceGroupType: null,
  398. },
  399. practiceGroupType: practiceGroupType,
  400. organList: [],
  401. teacherList: [],
  402. educationList: [],
  403. tableData: [],
  404. rules: {
  405. // 分页规则
  406. limit: 10, // 限制显示条数
  407. page: 1, // 当前页
  408. total: 0, // 总条数
  409. page_size: [10, 20, 40, 50], // 选择限制显示条数
  410. },
  411. value: null,
  412. teacherClassHeadInfo: null,
  413. courseScheduleReview: null,
  414. courseScheduleComplaints: null,
  415. activeId: null,
  416. };
  417. },
  418. //生命周期 - 创建完成(可以访问当前this实例)
  419. created() {},
  420. //生命周期 - 挂载完成(可以访问DOM元素)
  421. mounted() {
  422. this.$store.dispatch("setBranchs");
  423. this.init();
  424. },
  425. activated() {
  426. this.init();
  427. },
  428. methods: {
  429. init() {
  430. // 获取默认月份
  431. if (this.searchForm.month.length <= 0) {
  432. var now = new Date();
  433. var startDate = new Date(
  434. Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
  435. )
  436. .toISOString()
  437. .slice(0, 10);
  438. // + " 00:00:00" + " 23:59:59"
  439. var endDate = new Date(
  440. Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
  441. )
  442. .toISOString()
  443. .slice(0, 10);
  444. this.searchForm.month = [];
  445. this.searchForm.month.push(startDate);
  446. this.searchForm.month.push(endDate);
  447. console.log(this.searchForm.month);
  448. }
  449. // 获取指导老师
  450. // getTeacher({}).then((res) => {
  451. // if (res.code == 200) {
  452. // this.teacherList = res.data;
  453. // }
  454. // });
  455. // 获取分部
  456. getEmployeeOrgan().then((res) => {
  457. if (res.code == 200) {
  458. this.organList = res.data;
  459. }
  460. });
  461. // 获取教务
  462. findEducationUsers().then((res) => {
  463. if (res.code == 200) {
  464. this.educationList = res.data;
  465. }
  466. });
  467. this.getList();
  468. },
  469. getList() {
  470. let obj = {};
  471. obj.organId = this.searchForm.organId || null;
  472. obj.teacherId = this.searchForm.teacherId || null;
  473. obj.eduTeacherId = this.searchForm.eduTeacherId || null;
  474. obj.isFree = this.searchForm.isFree || null;
  475. obj.studentReview = this.searchForm.studentReview || null;
  476. obj.hasHandHomework = this.searchForm.hasHandHomework || null;
  477. obj.hasReview = this.searchForm.hasReview || null;
  478. obj.courseReview = this.searchForm.courseReview || null;
  479. obj.hasArrived = this.searchForm.hasArrived || null;
  480. obj.homeWorkReplied = this.searchForm.homeWorkReplied || null;
  481. obj.assignHomework = this.searchForm.assignHomework || null;
  482. obj.search = this.searchForm.search;
  483. obj.practiceGroupType = this.searchForm.practiceGroupType || null;
  484. if (this.searchForm.month && this.searchForm.month.length > 0) {
  485. obj.startTime = this.searchForm.month[0];
  486. obj.endTime = this.searchForm.month[1];
  487. } else {
  488. this.$message.error("请选择时间范围");
  489. return;
  490. }
  491. obj.page = this.rules.page;
  492. obj.rows = this.rules.limit;
  493. getVipGroup(obj).then((res) => {
  494. if (res.code == 200) {
  495. this.tableData = res.data.rows;
  496. this.rules.total = res.data.total;
  497. }
  498. });
  499. },
  500. lookDetail(row) {
  501. this.activeId = row.reviewId;
  502. getReviewInfo({ id: this.activeId }).then((res) => {
  503. if (res.code == 200) {
  504. this.teacherClassHeadInfo = res.data.teacherClassHeadInfo;
  505. this.courseScheduleReview = res.data.courseScheduleReview;
  506. this.courseScheduleComplaints = res.data.courseScheduleComplaints;
  507. // 教务评价详情
  508. // eduCourseReviewGetReviewInfo({id}).then(res=>{
  509. // if(res.code == 200){
  510. // }
  511. // })
  512. this.netWorkVisible = true;
  513. }
  514. });
  515. },
  516. submitNetwork() {
  517. if (!this.courseScheduleReview.courseReview) {
  518. this.$message.error("请评价课程");
  519. return;
  520. }
  521. updateReviewInfo({
  522. id: this.activeId,
  523. courseReview: this.courseScheduleReview.courseReview,
  524. }).then((res) => {
  525. if (res.code == 200) {
  526. this.$message.success("评价成功");
  527. this.netWorkVisible = false;
  528. this.getList();
  529. }
  530. });
  531. },
  532. search() {
  533. this.rules.page = 1;
  534. this.getList();
  535. },
  536. onReSet() {
  537. this.rules.page = 1;
  538. this.searchForm = {
  539. organId: null,
  540. teacherId: null,
  541. educationalTeacherId: null,
  542. isFree: null,
  543. studentReview: null,
  544. hasHandHomework: null,
  545. hasReview: null,
  546. courseReview: null,
  547. month: null,
  548. hasArrived: null,
  549. homeWorkReplied: null,
  550. assignHomework: null,
  551. practiceGroupType: null,
  552. };
  553. var now = new Date();
  554. var startDate = new Date(
  555. Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
  556. )
  557. .toISOString()
  558. .slice(0, 10);
  559. // + " 00:00:00" + " 23:59:59"
  560. var endDate = new Date(
  561. Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
  562. )
  563. .toISOString()
  564. .slice(0, 10);
  565. this.searchForm.month = [];
  566. this.searchForm.month.push(startDate);
  567. this.searchForm.month.push(endDate);
  568. this.getList();
  569. },
  570. netWorkExport() {
  571. let url = "/api-web/export/courseReviews";
  572. let obj = {};
  573. this.searchForm.organId ? (obj.organId = this.searchForm.organId) : null;
  574. this.searchForm.teacherId
  575. ? (obj.teacherId = this.searchForm.teacherId)
  576. : null;
  577. this.searchForm.eduTeacherId
  578. ? (obj.eduTeacherId = this.searchForm.eduTeacherId)
  579. : null;
  580. this.searchForm.isFree ? (obj.isFree = this.searchForm.isFree) : null;
  581. this.searchForm.studentReview
  582. ? (obj.studentReview = this.searchForm.studentReview)
  583. : null;
  584. this.searchForm.hasHandHomework
  585. ? (obj.hasHandHomework = this.searchForm.hasHandHomework)
  586. : null;
  587. this.searchForm.hasReview
  588. ? (obj.hasReview = this.searchForm.hasReview)
  589. : null;
  590. this.searchForm.courseReview
  591. ? (obj.courseReview = this.searchForm.courseReview)
  592. : null;
  593. this.searchForm.search ? (obj.search = this.searchForm.search) : null;
  594. this.searchForm.hasArrived
  595. ? (obj.hasArrived = this.searchForm.hasArrived)
  596. : null;
  597. this.searchForm.homeWorkReplied
  598. ? (obj.homeWorkReplied = this.searchForm.homeWorkReplied)
  599. : null;
  600. this.searchForm.assignHomework
  601. ? (obj.assignHomework = this.searchForm.assignHomework)
  602. : null;
  603. if (this.searchForm.month && this.searchForm.month.length > 0) {
  604. obj.startTime = this.searchForm.month[0];
  605. obj.endTime = this.searchForm.month[1];
  606. } else {
  607. this.$message.error("请选择时间范围");
  608. return;
  609. }
  610. this.searchForm.practiceGroupType
  611. ? (obj.practiceGroupType = this.searchForm.practiceGroupType)
  612. : null;
  613. const options = {
  614. method: "POST",
  615. headers: {
  616. Authorization: getToken(),
  617. },
  618. data: qs.stringify(obj),
  619. url,
  620. responseType: "blob",
  621. };
  622. this.$confirm("您确定导出评价列表", "提示", {
  623. confirmButtonText: "确定",
  624. cancelButtonText: "取消",
  625. type: "warning",
  626. })
  627. .then(() => {
  628. axios(options).then((res) => {
  629. let blob = new Blob([res.data], {
  630. // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
  631. type: "application/vnd.ms-excel;charset=utf-8",
  632. //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
  633. });
  634. let objectUrl = URL.createObjectURL(blob);
  635. let link = document.createElement("a");
  636. let nowTime = new Date();
  637. let ymd =
  638. nowTime.getFullYear() +
  639. "" +
  640. (nowTime.getMonth() + 1) +
  641. "" +
  642. nowTime.getDate() +
  643. "" +
  644. nowTime.getHours() +
  645. "" +
  646. nowTime.getMinutes();
  647. let fname = +ymd + "网管评价.xls"; //下载文件的名字
  648. link.href = objectUrl;
  649. link.setAttribute("download", fname);
  650. document.body.appendChild(link);
  651. link.click();
  652. });
  653. })
  654. .catch(() => {});
  655. },
  656. },
  657. filters: {
  658. studentReviewFilter(val) {
  659. let arr = ["未评价", "1星", "2星", "3星", "4星", "5星"];
  660. return arr[val];
  661. },
  662. },
  663. computed: {
  664. teachingMaterial() {
  665. if (
  666. this.courseScheduleReview &&
  667. this.courseScheduleReview.teachingMaterial
  668. ) {
  669. return this.courseScheduleReview.teachingMaterial;
  670. } else {
  671. return "";
  672. }
  673. },
  674. mychiose() {
  675. if (this.courseScheduleReview && this.courseScheduleReview.courseReview) {
  676. return this.courseScheduleReview.courseReview;
  677. } else {
  678. return "";
  679. }
  680. },
  681. },
  682. };
  683. </script>
  684. <style lang='scss' scoped>
  685. .wrap {
  686. display: flex;
  687. flex-direction: row;
  688. justify-content: space-between;
  689. .leftCell {
  690. width: 300px;
  691. display: flex;
  692. flex-direction: row;
  693. justify-content: space-between;
  694. align-items: center;
  695. line-height: 50px;
  696. // border-bottom: 1px solid #ccc;
  697. }
  698. .rightCell {
  699. width: 300px;
  700. display: flex;
  701. flex-direction: row;
  702. justify-content: flex-start;
  703. align-items: center;
  704. line-height: 50px;
  705. p {
  706. margin-right: 30px;
  707. }
  708. }
  709. }
  710. /deep/.el-tag {
  711. cursor: pointer;
  712. }
  713. </style>