coursePlan.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760
  1. <template>
  2. <div class='course-container'>
  3. <div class="left">
  4. <el-form :model="leftFrom"
  5. ref='leftFrom'
  6. :rules="leftRules"
  7. :inline="true">
  8. <el-form-item label="合奏班"
  9. prop='all'>
  10. <el-select v-model="leftFrom.all"
  11. @change="changeMixClass">
  12. <el-option v-for="(item,index) in maxClassList"
  13. :key='index'
  14. :value="item.id"
  15. :label="item.name"></el-option>
  16. </el-select>
  17. </el-form-item>
  18. <el-form-item label="排课时间"
  19. prop="time">
  20. <!-- value-format="yyyy-MM-dd" -->
  21. <el-date-picker v-model="leftFrom.time"
  22. style="width:180px;"
  23. align="right"
  24. type="date"
  25. placeholder="选择日期">
  26. </el-date-picker>
  27. </el-form-item>
  28. <el-form-item label="排课次数"
  29. prop="num">
  30. <el-input type="number"
  31. v-model="leftFrom.num"></el-input>
  32. </el-form-item>
  33. </el-form>
  34. <p>周次循环<span style="margin-left:10px;">上课时间</span></p>
  35. <div class="checkWrap">
  36. <el-checkbox-group v-model="checkList">
  37. <div class="chioseday"
  38. v-for="(item,index) in week"
  39. :key="index">
  40. <el-checkbox :label="index"
  41. v-model="item.isCheck">{{item.name}}</el-checkbox>
  42. <el-time-select placeholder="起始"
  43. v-model="item.startTime"
  44. :picker-options="{
  45. start: '06:30',
  46. step: '00:05',
  47. end: '18:30'
  48. }">
  49. </el-time-select>
  50. <el-time-select placeholder="结束"
  51. v-model="item.endTime"
  52. :picker-options="{
  53. start: '06:30',
  54. step: '00:15',
  55. end: '23:30',
  56. minTime: item.startTime
  57. }">
  58. </el-time-select>
  59. </div>
  60. </el-checkbox-group>
  61. <div class="holidayWrap">
  62. <el-checkbox v-model="isholiday">跳过节假日</el-checkbox>
  63. <div class="quickBtn"
  64. @click="classCard">一件排课</div>
  65. </div>
  66. <div class="btnWrap">
  67. <div class="closeBtn"
  68. @click='resetaLL'>取消排课</div>
  69. <div class="okBtn"
  70. @click="submitCardList">确定</div>
  71. </div>
  72. </div>
  73. </div>
  74. <div class="right">
  75. <el-table :data='tableList'>
  76. <el-table-column label="课次">
  77. <template slot-scope="scope">
  78. <div>
  79. {{ scope.$index+1 }}
  80. </div>
  81. </template>
  82. </el-table-column>
  83. <el-table-column prop="classDate"
  84. label="日期"
  85. width="180">
  86. </el-table-column>
  87. <el-table-column prop="week"
  88. label="星期"
  89. width="180">
  90. </el-table-column>
  91. <el-table-column label="课程类型"
  92. width="180">
  93. <template slot-scope="scope">
  94. <div>
  95. {{scope.row.type |coursesType }}
  96. </div>
  97. </template>
  98. </el-table-column>
  99. <el-table-column prop="name"
  100. label="课程名称"
  101. width="180">
  102. </el-table-column>
  103. <el-table-column prop="classTime"
  104. label="上课时间"
  105. width="180">
  106. </el-table-column>
  107. <el-table-column label="操作"
  108. width="180">
  109. <template slot-scope="scope">
  110. <div>
  111. <el-button type="text"
  112. @click="OpenSign(scope.row)">展开</el-button>
  113. <el-button type="text"
  114. @click='resetMixCourse(scope.row)'>修改</el-button>
  115. </div>
  116. </template>
  117. </el-table-column>
  118. </el-table>
  119. <div class="btnWrap"
  120. style="margin-top:40px;">
  121. <div class="nextBtn"
  122. @click='gotoNext'>下一步</div>
  123. <div class="okBtn">返回</div>
  124. </div>
  125. </div>
  126. <el-dialog :visible.sync="resetAllClassVisible"
  127. width="450px">
  128. <p style='margin-bottom:20px'>{{resetAllTitle}}</p>
  129. <div class="resetWrap">
  130. <!-- signBtnActive: false,
  131. skipBtnActive: false -->
  132. <div class="restBtn"
  133. :class="signBtnActive?'active':''"
  134. v-if='buttonType == "SINGLE"'
  135. @click="resetClass">修改为合奏课</div>
  136. <!-- -->
  137. <div class="restBtn"
  138. v-if='buttonType == "MIX"'
  139. :class="signBtnActive?'active':''"
  140. @click="resetClass">修改为单技课</div>
  141. <div class="restBtn"
  142. @click='skipClass'
  143. :class="skipBtnActive?'active':''">跳过此天</div>
  144. </div>
  145. <span slot="footer"
  146. class="dialog-footer">
  147. <div class="okBtns"
  148. @click="resetMix">确定</div>
  149. </span>
  150. </el-dialog>
  151. <el-dialog :visible.sync="openSignListVisible"
  152. width="450px">
  153. <el-table :data='SignList'>
  154. <el-table-column prop="name"
  155. label="班级">
  156. </el-table-column>
  157. <el-table-column prop="startClassTime"
  158. label="开始时间">
  159. <template slot-scope="scope">
  160. <div>
  161. <p v-if="scope.row.option == 1">{{scope.row.startClassTimeStr }}</p>
  162. <el-input v-if="scope.row.option == 2"
  163. v-model="scope.row.startClassTimeStr"></el-input>
  164. </div>
  165. </template>
  166. </el-table-column>
  167. <el-table-column prop="endClassTimeStr"
  168. label="结束时间">
  169. <template slot-scope="scope">
  170. <div>
  171. <p v-if="scope.row.option == 1">{{scope.row.endClassTimeStr }}</p>
  172. <el-input v-if="scope.row.option == 2"
  173. v-model="scope.row.endClassTimeStr"></el-input>
  174. </div>
  175. </template>
  176. </el-table-column>
  177. <el-table-column prop="date"
  178. label="操作">
  179. <template slot-scope="scope">
  180. <div>
  181. <el-button type="text"
  182. v-if="scope.row.option == 2"
  183. @click="savecolumn(scope.row)">保存</el-button>
  184. <el-button type="text"
  185. v-if="scope.row.option == 1"
  186. @click="savecolumn(scope.row)">修改</el-button>
  187. </div>
  188. </template>
  189. </el-table-column>
  190. </el-table>
  191. <span slot="footer"
  192. class="dialog-footer">
  193. <div class="okBtns"
  194. @click="resetSiginClass">确定</div>
  195. </span>
  196. </el-dialog>
  197. </div>
  198. </template>
  199. <script>
  200. import { getAllClass, getAllSignClass, workOut, checkCourse } from '@/api/buildTeam'
  201. import axios from 'axios'
  202. import qs from 'qs'
  203. export default {
  204. props: {
  205. teamid: {
  206. type: String,
  207. required: true
  208. }
  209. },
  210. data () {
  211. return {
  212. resetAllClassVisible: false, //修改合奏课弹窗
  213. openSignListVisible: false, // 修改单个单技课的弹窗
  214. first: true,
  215. leftFrom: {
  216. all: '',
  217. time: '',
  218. num: ''
  219. },
  220. tableList: [],
  221. checkList: [],
  222. week: [
  223. {
  224. startTime: '',
  225. endTime: '',
  226. isCheck: false,
  227. name: '星期日'
  228. },
  229. {
  230. startTime: '',
  231. endTime: '',
  232. isCheck: false,
  233. name: '星期一'
  234. },
  235. {
  236. startTime: '',
  237. endTime: '',
  238. isCheck: false,
  239. name: '星期二'
  240. },
  241. {
  242. startTime: '',
  243. endTime: '',
  244. isCheck: false,
  245. name: '星期三'
  246. },
  247. {
  248. startTime: '',
  249. endTime: '',
  250. isCheck: false,
  251. name: '星期四'
  252. },
  253. {
  254. startTime: '',
  255. endTime: '',
  256. isCheck: false,
  257. name: '星期五'
  258. },
  259. {
  260. startTime: '',
  261. endTime: '',
  262. isCheck: false,
  263. name: '星期六'
  264. },
  265. ],
  266. weekDay: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
  267. maxClassList: [], // 所有的合奏班
  268. activeSingleList: [], // 合奏班下的所有单技班
  269. isholiday: false,
  270. classCardList: [], //这个是传给后台的真正数据集合
  271. allChioseDate: [], // 记录所有准备排课的日期
  272. holidayList: [],
  273. leftRules: {
  274. all: [{ required: true, message: '请输选择合奏班', trigger: 'blur' }],
  275. time: [{ required: true, message: '请选择排课时间', trigger: 'blur' }],
  276. num: [{ required: true, message: '请输入排课次数', trigger: 'blur' }]
  277. },
  278. resetAllTitle: '', // 弹窗名
  279. buttonType: '',
  280. activeTime: '', // 选中的当前时间课
  281. signBtnActive: false,
  282. skipBtnActive: false,
  283. SignList: [] // 存储当前合奏课里当天的所有单机课
  284. }
  285. },
  286. mounted () {
  287. // 根据乐团id 查询 此乐团所有的合奏班
  288. getAllClass({ musicGroupId: this.teamid }).then(res => {
  289. if (res.code == 200) {
  290. this.maxClassList = res.data;
  291. }
  292. })
  293. let year = new Date().getFullYear();
  294. axios.post('/jiari/', qs.stringify({ d: year })).then(res => {
  295. if (res) {
  296. this.holidayList = Object.keys(res.data[year])
  297. }
  298. })
  299. },
  300. methods: {
  301. classCard () {
  302. let flag = false
  303. this.$refs['leftFrom'].validate(val => {
  304. if (val) {
  305. flag = true
  306. }
  307. })
  308. if (!flag) {
  309. this.$message.error('请填写必要参数在进行排课')
  310. return;
  311. }
  312. let classCount = parseInt(this.leftFrom.num);
  313. let date = this.leftFrom.time;
  314. console.log(date);
  315. this.workOut(date, classCount, this.checkList, this.leftFrom.all);
  316. this.$refs['leftFrom'].resetFields();
  317. this.week = this.$options.data().week;
  318. this.checkList = [];
  319. },
  320. chioseWeek (val) {
  321. },
  322. getThinkDate (date, num, type = 1) {
  323. let Stamp = new Date(date.getTime());
  324. console.log(num);
  325. // console.log(Stamp.getDate() + parseInt(num))
  326. Stamp.setDate(Stamp.getDate() + parseInt(num)) // 获取当前月数的第几天
  327. var year = Stamp.getFullYear(); //获取完整的年份(4位,1970-????)
  328. var month = Stamp.getMonth() + 1; //获取当前月份(0-11,0代表1月)
  329. var mvar = '';
  330. if (month < 10) {
  331. mvar = '0' + month;
  332. } else {
  333. mvar = month + '';
  334. }
  335. var day = Stamp.getDate();
  336. var dvar = '';
  337. if (day < 10) {
  338. dvar = '0' + day;
  339. } else {
  340. dvar = day + '';
  341. }
  342. if (type == 2) {
  343. return mvar + dvar;
  344. } else {
  345. return year + "-" + mvar + '-' + dvar;
  346. }
  347. },
  348. changeMixClass (val) {
  349. // 根据合奏班id获取合奏班下的所有单技班
  350. console.log(this.first);
  351. let activeVal = val;
  352. if (!this.first) {
  353. Object.assign(this.$data, this.$options.data());
  354. getAllClass({ musicGroupId: this.teamid }).then(res => {
  355. if (res.code == 200) {
  356. this.maxClassList = res.data;
  357. }
  358. })
  359. this.leftFrom.all = activeVal
  360. }
  361. this.first = false;
  362. this.activeSingleList = [];
  363. getAllSignClass({ musicGroupId: this.teamid, mixClassGroupId: val }).then(res => {
  364. if (res.code == 200) {
  365. this.activeSingleList = res.data.map(item => {
  366. item.mixid = val
  367. return item;
  368. });
  369. }
  370. })
  371. },
  372. resetMixCourse (row) {
  373. this.resetAllClassVisible = true;
  374. this.resetAllTitle = `将${row.classDate} ,${row.week}修改`;
  375. this.buttonType = row.type;
  376. this.activeTime = row.classDate;
  377. // console.log(row)
  378. },
  379. resetClass () {
  380. this.signBtnActive = !this.signBtnActive;
  381. },
  382. skipClass () {
  383. this.skipBtnActive = !this.skipBtnActive;
  384. // 选中跳过此天
  385. },
  386. resetMix () {
  387. // 修改
  388. if (this.signBtnActive) {
  389. // 点击了修改单技课或者合奏课
  390. let startClassTime;
  391. let endClassTime;
  392. if (this.buttonType == 'SINGLE') {
  393. // 单技改合奏
  394. for (let i = 0; i < this.classCardList.length; i++) {
  395. if (this.activeTime == this.classCardList[i].classDate) {
  396. this.classCardList.splice(i, 1);
  397. i--;
  398. }
  399. }
  400. // 修改提交表里的时间
  401. // 单技改合奏
  402. for (let i in this.tableList) {
  403. if (this.activeTime == this.tableList[i].classDate) {
  404. this.tableList[i].type = "MIX";
  405. startClassTime = this.tableList[i].startClassTime;
  406. endClassTime = this.tableList[i].endClassTime;
  407. // this.tableList[i].classGroupId = this.tableList[i].id;
  408. this.classCardList.push(this.tableList[i]);
  409. }
  410. }
  411. } else if (this.buttonType == 'MIX') {
  412. // 合奏改单技
  413. for (let i in this.tableList) {
  414. // console.log(this.activeTime)
  415. if (this.activeTime == this.tableList[i].classDate) {
  416. // console.log(this.tableList[i])
  417. this.tableList[i].type = "SINGLE";
  418. startClassTime = this.tableList[i].startClassTime;
  419. endClassTime = this.tableList[i].endClassTime;
  420. }
  421. }
  422. let activeTableItem = {};
  423. // 修改提交表里的状态
  424. for (let j = 0; j < this.classCardList.length; j++) {
  425. for (let i in this.tableList) {
  426. console.log(this.classCardList[j].classDate, this.tableList[i].classDate)
  427. if (this.activeTime == this.classCardList[j].classDate && this.activeTime == this.tableList[i].classDate) {
  428. // this.classCardList[j].type = "SINGLE";
  429. // this.classCardList[j].startClassTime = startClassTime;
  430. // this.classCardList[j].endClassTime = endClassTime;
  431. activeTableItem = this.tableList[i];
  432. this.classCardList.splice(j, 1);
  433. j--
  434. }
  435. }
  436. }
  437. //添加单机班课
  438. for (let z in this.activeSingleList) {
  439. let obj = {
  440. 'classDate': activeTableItem.classDate,
  441. 'week': activeTableItem.week,
  442. 'type': 'SINGLE',
  443. 'id': this.activeSingleList[z].id,
  444. 'date': activeTableItem.date,
  445. 'name': this.activeSingleList[z].name,
  446. 'classTime': activeTableItem.classTime,
  447. 'startClassTimeStr': activeTableItem.startClassTimeStr,
  448. 'endClassTimeStr': activeTableItem.endClassTimeStr,
  449. 'weekNum': activeTableItem.weekNum,
  450. 'classGroupId': this.activeSingleList[z].id,
  451. }
  452. this.classCardList.push(obj);
  453. }
  454. console.log(this.classCardList)
  455. }
  456. }
  457. if (this.skipBtnActive) {
  458. // 这里是跳过此天
  459. let lastTime = this.tableList[this.tableList.length - 1].date;
  460. let weekNum = this.tableList[this.tableList.length - 1].weekNum;
  461. let id = this.tableList[this.tableList.length - 1].id;
  462. let startClassTime = this.tableList[this.tableList.length - 1].startClassTimeStr;
  463. let endClassTime = this.tableList[this.tableList.length - 1].endClassTimeStr;
  464. for (let i in this.tableList) {
  465. if (this.tableList[i].classDate == this.activeTime) {
  466. this.tableList.splice(i, 1);
  467. }
  468. }
  469. for (let j in this.classCardList) {
  470. if (this.classCardList[j].classDate == this.activeTime) {
  471. console.log(this.classCardList[j].classDate, this.activeTime)
  472. this.classCardList.splice(j, 1);
  473. }
  474. }
  475. // console.log(lastTime, weekNum, id);
  476. this.workOut(lastTime, 1, [weekNum], id, startClassTime, endClassTime);
  477. this.$message.success('修改成功');
  478. }
  479. this.resetAllClassVisible = false;
  480. },
  481. // 排课逻辑
  482. workOut (date, classCount, weekArr, id, startTime = '', endTime = '') {
  483. while (classCount && classCount > 0) {
  484. for (let i in weekArr) {
  485. let date1 = new Date(date.getTime());
  486. let num; // 下次上课上几天后
  487. weekArr[i] - date.getDay() >= 0 ? num = weekArr[i] : num = weekArr[i] - date.getDay() + 7
  488. // console.log(num);
  489. // return
  490. let dataStr = this.getThinkDate(date, num);
  491. let monthDay = this.getThinkDate(date1, num, 2)
  492. if (this.isholiday) {
  493. if (this.holidayList.indexOf(monthDay) != -1) {
  494. // 这里说明有节假日
  495. continue
  496. }
  497. }
  498. let className;
  499. this.maxClassList.map(item => {
  500. if (item.id == id) {
  501. className = item.name;
  502. return item.name
  503. }
  504. })
  505. // 排的是合奏班
  506. if (!startTime) {
  507. // 有这个说明是修改=> 没有说明是添加
  508. if (!this.week[weekArr[i]].startTime || !this.week[weekArr[i]].endTime) {
  509. // 提示 上课时间必填
  510. // console.log('进入时间判断')
  511. this.$message.error('勾选日期的上课时间段必填');
  512. return;
  513. }
  514. }
  515. let nowStartTime = this.week[weekArr[i]].startTime || startTime;
  516. let nowEndTime = this.week[weekArr[i]].endTime || endTime;
  517. this.tableList.push({
  518. 'classDate': dataStr,
  519. 'week': this.week[weekArr[i]].name,
  520. 'type': 'SINGLE',
  521. 'id': id,
  522. date,
  523. 'name': className,
  524. 'classTime': nowStartTime + '-' + nowEndTime,
  525. 'startClassTimeStr': nowStartTime,
  526. 'endClassTimeStr': nowEndTime,
  527. 'weekNum': weekArr[i],
  528. 'classGroupId': id
  529. })
  530. // 这里我排单技课
  531. for (let j in this.activeSingleList) {
  532. this.classCardList.push({
  533. 'classDate': dataStr,
  534. 'classGroupId': this.activeSingleList[j].id,
  535. 'startClassTimeStr': nowStartTime,
  536. 'endClassTimeStr': nowEndTime,
  537. 'type': 'SINGLE',
  538. 'mixid': this.activeSingleList[j].mixid,
  539. date,
  540. 'weekNum': weekArr[i],
  541. 'name': this.activeSingleList[j].name,
  542. 'option': 1
  543. })
  544. }
  545. classCount--
  546. if (classCount == 0) break
  547. }
  548. date.setDate(date.getDate() + 7);
  549. }
  550. },
  551. // 取消排课
  552. resetaLL () {
  553. Object.assign(this.$data, this.$options.data());
  554. getAllClass({ musicGroupId: this.teamid }).then(res => {
  555. if (res.code == 200) {
  556. this.maxClassList = res.data;
  557. }
  558. })
  559. let year = new Date().getFullYear();
  560. axios.post('/jiari/', qs.stringify({ d: year })).then(res => {
  561. this.holidayList = Object.keys(res.data[year])
  562. })
  563. },
  564. // 点击展开
  565. OpenSign (row) {
  566. let id = row.id;
  567. this.SignList = [];
  568. for (let i in this.classCardList) {
  569. if (this.classCardList[i].mixid == row.id && this.classCardList[i].classDate == row.classDate) {
  570. console.log(this.classCardList[i])
  571. this.SignList.push(this.classCardList[i])
  572. }
  573. }
  574. console.log(this.SignList);
  575. this.openSignListVisible = true;
  576. },
  577. savecolumn (row) {
  578. // console.log(row);
  579. row.option == 1 ? row.option = 2 : row.option = 1
  580. console.log(this.SignList);
  581. },
  582. // 重置单技课
  583. resetSiginClass () {
  584. for (let i in this.classCardList) {
  585. for (let j in this.SignList) {
  586. if (this.SignList[j].classDate == this.classCardList[i].classDate && this.SignList[j].classGroupId == this.classCardList[i].classGroupId) {
  587. this.classCardList[i] = this.SignList[j];
  588. this.$message.success('修改成功');
  589. this.openSignListVisible = false;
  590. }
  591. }
  592. }
  593. },
  594. submitCardList () {
  595. workOut({ musicGroupID: this.teamid, courseSchedules: this.classCardList }).then(res => {
  596. if (res.code == 200) {
  597. this.$message.success('恭喜您排课成功')
  598. this.classCardList = [];
  599. }
  600. })
  601. },
  602. gotoNext () {
  603. checkCourse({ musicGroupId: this.teamid }).then(res => {
  604. if (res.code == 200) {
  605. // ...跳转
  606. }
  607. }).catch(res => {
  608. this.$message.error(res.msg)
  609. })
  610. }
  611. },
  612. watch: {
  613. resetAllClassVisible (val) {
  614. if (!val) {
  615. this.signBtnActive = false;
  616. this.skipBtnActive = false;
  617. }
  618. }
  619. }
  620. }
  621. </script>
  622. <style lang="scss" scoped>
  623. .course-container {
  624. padding: 47px 58px;
  625. background-color: #fff;
  626. display: flex;
  627. flex-direction: row;
  628. justify-content: flex-start;
  629. .left {
  630. width: 330px;
  631. min-width: 330px;
  632. margin-right: 90px;
  633. .chioseday {
  634. margin-top: 20px;
  635. .el-date-editor.el-input,
  636. .el-date-editor.el-input__inner {
  637. width: 100px;
  638. margin-left: 20px;
  639. }
  640. }
  641. .holidayWrap {
  642. margin-top: 34px;
  643. margin-bottom: 40px;
  644. display: flex;
  645. flex-direction: row;
  646. justify-content: space-between;
  647. align-items: center;
  648. .quickBtn {
  649. font-size: 16px;
  650. color: #f85043;
  651. text-decoration: underline;
  652. padding-right: 25px;
  653. cursor: pointer;
  654. }
  655. }
  656. .btnWrap {
  657. display: flex;
  658. flex-direction: row;
  659. justify-content: space-around;
  660. div {
  661. width: 120px;
  662. height: 40px;
  663. border-radius: 4px;
  664. text-align: center;
  665. line-height: 40px;
  666. cursor: pointer;
  667. color: #fff;
  668. }
  669. .closeBtn {
  670. background-color: #777;
  671. }
  672. }
  673. }
  674. .right {
  675. .is-selected {
  676. color: #1989fa;
  677. }
  678. .el-calendar {
  679. max-width: 950px;
  680. }
  681. .btnWrap {
  682. display: flex;
  683. flex-direction: row;
  684. justify-content: flex-end;
  685. div {
  686. width: 120px;
  687. height: 40px;
  688. line-height: 40px;
  689. text-align: center;
  690. color: #fff;
  691. border-radius: 4px;
  692. margin-right: 20px;
  693. cursor: pointer;
  694. }
  695. .nextBtn {
  696. background-color: #444;
  697. }
  698. .okBtn {
  699. background-color: #f97215;
  700. }
  701. }
  702. }
  703. .resetWrap {
  704. display: flex;
  705. flex-direction: row;
  706. justify-content: space-around;
  707. .restBtn {
  708. width: 150px;
  709. height: 50px;
  710. background: rgba(255, 255, 255, 1);
  711. border-radius: 5px;
  712. border: 1px solid rgba(20, 146, 138, 1);
  713. text-align: center;
  714. cursor: pointer;
  715. line-height: 50px;
  716. color: #14928a;
  717. }
  718. .restBtn.active {
  719. background-color: #14928a;
  720. color: #fff;
  721. }
  722. }
  723. .okBtns {
  724. background-color: #f97215;
  725. width: 120px;
  726. height: 40px;
  727. line-height: 40px;
  728. text-align: center;
  729. color: #fff;
  730. border-radius: 4px;
  731. margin-right: 20px;
  732. cursor: pointer;
  733. margin: 0 auto;
  734. }
  735. }
  736. </style>