teamList.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655
  1. <template>
  2. <div class="m-container">
  3. <h2>
  4. <div class="squrt"></div>乐团列表
  5. </h2>
  6. <div class="m-core">
  7. <div class="btnList">
  8. <div class='newBand'
  9. v-permission="'/teamBuild'"
  10. @click="createNewTeam">新建乐团</div>
  11. <!-- <div class='newBand'
  12. v-permission="'/teamBuild/trimming'"
  13. @click="resetTeam">乐团调整</div> -->
  14. </div>
  15. <el-form :inline="true"
  16. class="topForm"
  17. ref="topForm"
  18. :model="topForm">
  19. <el-form-item prop='teamName'>
  20. <el-input v-model.trim="topForm.teamName"
  21. @keyup.enter.native='search'
  22. placeholder="请输入乐团名称"></el-input>
  23. </el-form-item>
  24. <el-form-item prop='orgin'>
  25. <el-select class='multiple'
  26. v-model.trim="topForm.orgin"
  27. filterable
  28. clearable
  29. placeholder="请选择分部">
  30. <el-option v-for="(item,index) in organList"
  31. :key="index"
  32. :label="item.name"
  33. :value="item.id"></el-option>
  34. </el-select>
  35. </el-form-item>
  36. <el-form-item prop='status'>
  37. <el-select class='multiple'
  38. v-model.trim="topForm.status"
  39. filterable
  40. clearable
  41. placeholder="请选择乐团状态">
  42. <el-option v-for="(item,index) in nowStatus"
  43. :key="index"
  44. :label="item.text"
  45. :value="item.value"></el-option>
  46. </el-select>
  47. </el-form-item>
  48. <!-- 收费类型 -->
  49. <el-form-item prop='payType'>
  50. <el-select v-model.trim="topForm.payType"
  51. filterable
  52. placeholder="请选择收费类型"
  53. clearable>
  54. <el-option v-for="(item,index) in typeList"
  55. :key='index'
  56. :label="item.name"
  57. :value="item.id"></el-option>
  58. </el-select>
  59. </el-form-item>
  60. <el-form-item>
  61. <el-button type='danger'
  62. @click="search">搜索</el-button>
  63. </el-form-item>
  64. <el-form-item>
  65. <el-button type='primary'
  66. @click="reset">重置</el-button>
  67. </el-form-item>
  68. </el-form>
  69. <div class="tableWrap">
  70. <el-table style="width: 100%"
  71. @selection-change="handleSelectionChange"
  72. :header-cell-style="{background:'#EDEEF0',color:'#444'}"
  73. :data='tableData'>
  74. <!-- <el-table-column type="selection"
  75. :selectable="checkSelectable"
  76. width="50">
  77. </el-table-column> -->
  78. <el-table-column prop="id"
  79. width="100"
  80. align='center'
  81. label="乐团编号">
  82. </el-table-column>
  83. <el-table-column prop="name"
  84. width="200px"
  85. align='center'
  86. label="乐团名称">
  87. </el-table-column>
  88. <el-table-column align='center'
  89. width="200px"
  90. prop="cooperationOrganName"
  91. max-width='274'
  92. label="合作单位">
  93. </el-table-column>
  94. <el-table-column prop="status"
  95. align='center'
  96. label="乐团状态">
  97. <template slot-scope="scope">
  98. <div>
  99. {{ scope.row.status | teamStatus }}
  100. </div>
  101. </template>
  102. </el-table-column>
  103. <el-table-column align='center'
  104. prop="chargeTypeName"
  105. label="收费类型">
  106. </el-table-column>
  107. <el-table-column prop="educationalTeacherName"
  108. align='center'
  109. label="教务老师">
  110. </el-table-column>
  111. <el-table-column prop="teamTeacherName"
  112. align='center'
  113. label="运营主管">
  114. </el-table-column>
  115. <el-table-column prop="groupMemberNum"
  116. align='center'
  117. label="成团人数">
  118. </el-table-column>
  119. <el-table-column prop="payNum"
  120. align='center'
  121. label="在读人数">
  122. </el-table-column>
  123. <!-- <el-table-column prop="course"
  124. align='center'
  125. label="当前课时">
  126. </el-table-column> -->
  127. <el-table-column prop="createTime"
  128. width='100px'
  129. align='center'
  130. label="申请时间">
  131. <template slot-scope="scope">
  132. <div>
  133. {{ scope.row.createTime | formatTimer}}
  134. </div>
  135. </template>
  136. </el-table-column>
  137. <el-table-column align='center'
  138. width='100px'
  139. label="成团时间">
  140. <template slot-scope="scope">
  141. <div>
  142. {{ scope.row.billStartDate | formatTimer}}
  143. </div>
  144. </template>
  145. </el-table-column>
  146. <el-table-column align='center'
  147. width='100px'
  148. label="清单状况">
  149. <template slot-scope="scope">
  150. <div>
  151. {{ scope.row.hasVerifyMusicalList?'已确认':'未确认'}}
  152. </div>
  153. </template>
  154. </el-table-column>
  155. <el-table-column align='center'
  156. width='220px'
  157. fixed="right"
  158. label="操作">
  159. <template slot-scope="scope">
  160. <div>
  161. <!-- <el-button type="text"
  162. v-if="scope.row.status == 'PREPARE' && permission('/setImprovement')"
  163. @click="gotoImprovement(scope.row)">基础技能班</el-button> -->
  164. <el-button type="text"
  165. v-if="scope.row.status == 'PREPARE' && permission('/teamDetailedList')"
  166. @click="gotodetailList(scope.row)">发放清单</el-button>
  167. <!-- <el-button type="text"
  168. v-if="scope.row.status == 'PREPARE'"
  169. @click="lookTeamCourse(scope.row)">查看课表</el-button> -->
  170. <!-- 报名中&缴费中 查看 -->
  171. <el-button type="text"
  172. v-if="(scope.row.status == 'APPLY'|| scope.row.status == 'PAY') && permission('/signupList')"
  173. @click="lookTeamDetail(scope.row)">查看</el-button>
  174. <!-- 报名中缴费中筹备中查看乐团 -->
  175. <el-button type="text"
  176. v-if="(scope.row.status == 'APPLY'|| scope.row.status == 'PAY' || scope.row.status == 'PREPARE') && permission('/teamLookBase')"
  177. @click="lookTeamInfo(scope.row)">乐团信息</el-button>
  178. <el-button v-if="permission('recharge/findAll')"
  179. type="text"
  180. @click="lookSteam(scope.row)">乐团日志</el-button>
  181. <!-- 进行中 查看 -->
  182. <el-button type="text"
  183. v-if="scope.row.status == 'PROGRESS' && permission('/teamDetails')"
  184. @click="lookTeamDetail(scope.row)">查看</el-button>
  185. <!-- 暂停中 查看 -->
  186. <el-button type="text"
  187. v-if="scope.row.status == 'PAUSE' && permission('musicGroup/pauseMusicGroup/look')"
  188. @click="lookTeamDetail(scope.row)">查看</el-button>
  189. <!-- <el-button type="text"
  190. v-if="scope.row.status != 'PROGRESS' && scope.row.status != 'CANCELED' && scope.row.status != 'PAUSE' && scope.row.status != 'APPLY'&& scope.row.status != 'PAY'"
  191. @click="lookTeamDetail(scope.row)">编辑</el-button> -->
  192. <!-- 筹备中 编辑 -->
  193. <el-button type="text"
  194. v-if="scope.row.status == 'PREPARE' && permission('teamDetail/teamSeting/update')"
  195. @click="lookTeamDetail(scope.row)">班级列表</el-button>
  196. <!-- 审核中 编辑 -->
  197. <el-button type="text"
  198. v-if="(scope.row.status == 'AUDIT')&& permission('teamDetail/audit/update')"
  199. @click="lookTeamDetail(scope.row)">审核</el-button>
  200. <!-- 费用审核中 -->
  201. <el-button type="text"
  202. v-if="( scope.row.status == 'FEE_AUDIT')&& permission('teamDetail/audit/update')"
  203. @click="lookTeamDetail(scope.row)">查看</el-button>
  204. <!-- 编辑中 编辑 -->
  205. <el-button type="text"
  206. v-if="scope.row.status == 'DRAFT' && permission('teamDetail/draft/update')"
  207. @click="lookTeamDetail(scope.row)">编辑</el-button>
  208. <el-button type="text"
  209. v-if="(scope.row.status == 'DRAFT' || scope.row.status == 'AUDIT'|| scope.row.status == 'FEE_AUDIT' || (scope.row.status == 'APPLY'|| scope.row.status == 'PAY') && permission('musicGroup/cancelMusicGroup'))"
  210. @click="stopTeam(scope.row)">取消乐团</el-button>
  211. <!-- 审核失败 编辑 -->
  212. <el-button type="text"
  213. v-if="scope.row.status == 'AUDIT_FAILED' && permission('teamDetail/aduitFailed/update')"
  214. @click="lookTeamDetail(scope.row)">编辑</el-button>
  215. <el-button v-if="scope.row.status == 'PREPARE' && permission('musicGroup/action')"
  216. @click="startTeam(scope.row)"
  217. type="text">确认成团</el-button>
  218. <!-- <el-button type="text"
  219. v-if="scope.row.status == 'AUDIT' && permission('musicGroup/cancelMusicGroup')"
  220. @click="stopTeam(scope.row)">取消乐团</el-button> -->
  221. <el-button v-if="scope.row.status == 'PAUSE' && permission('musicGroup/resumeMusicGroup')"
  222. @click="onTeamOpeation('start', scope.row)"
  223. type="text">启动</el-button>
  224. <el-button v-if="scope.row.status == 'PROGRESS' && permission('musicGroup/pauseMusicGroup')"
  225. @click="onTeamOpeation('pause', scope.row)"
  226. type="text">暂停</el-button>
  227. <el-button v-if="scope.row.status == 'PROGRESS' && permission('/resetTeaming')"
  228. @click="resetTeaming(scope.row)"
  229. type="text">修改</el-button>
  230. <el-button v-if="scope.row.status == 'CANCELED' && permission('musicGroup/deleteMusicGroup')"
  231. @click="deteleTeaming(scope.row)"
  232. type="text">删除</el-button>
  233. </div>
  234. </template>
  235. </el-table-column>
  236. </el-table>
  237. <!-- 分页器 -->
  238. <!-- 分页 -->
  239. <pagination :total="rules.total"
  240. :page.sync="rules.page"
  241. :limit.sync="rules.limit"
  242. :page-sizes="rules.page_size"
  243. @pagination="getList" />
  244. </div>
  245. <el-dialog :visible.sync="showSteam"
  246. width="500px"
  247. title="乐团流程">
  248. <teamSteam :activeId='activeId' />
  249. <div slot="footer"
  250. class="dialog-footer">
  251. <el-button type="primary"
  252. @click="showSteam=false">确 定</el-button>
  253. </div>
  254. </el-dialog>
  255. </div>
  256. </div>
  257. </template>
  258. <script>
  259. import pagination from '@/components/Pagination/index'
  260. import { getTeamList, getPayType } from '@/api/teamServer'
  261. import { getCooperation, cancelMusicGroup, startTeam, getEmployeeOrgan, pauseMusicGroup, resumeMusicGroup, deleteMusicGroup } from '@/api/buildTeam'
  262. import { musicGroupStatus } from '@/utils/searchArray'
  263. import { isObject } from 'util'
  264. import { permission } from '@/utils/directivePage'
  265. import teamSteam from './teamListComponent/teamSteam'
  266. export default {
  267. name: "teamList",
  268. data () {
  269. return {
  270. topForm: {
  271. teamName: '',
  272. status: '',
  273. payType: '',
  274. word: '',
  275. orgin: ''
  276. },
  277. organList: [],
  278. typeList: [], // 收费类型
  279. nowStatus: musicGroupStatus,
  280. searchLsit: [], // 存储选择后的数组
  281. tableData: [], // table数据
  282. rules: {
  283. // 分页规则
  284. limit: 10, // 限制显示条数
  285. page: 1, // 当前页
  286. total: 0, // 总条数
  287. page_size: [10, 20, 40, 50] // 选择限制显示条数
  288. },
  289. passed: [], // 传递的参数
  290. showSteam: false,
  291. activeId: null
  292. }
  293. },
  294. components: {
  295. pagination,
  296. teamSteam
  297. },
  298. mounted () {
  299. this.init();
  300. },
  301. activated () {
  302. this.init();
  303. },
  304. methods: {
  305. init () {
  306. if (this.$route.query.search) {
  307. this.$route.query.search instanceof Object ? this.topForm = this.$route.query.search : this.topForm = JSON.parse(this.$route.query.search);
  308. }
  309. if (this.$route.query.rules) {
  310. this.$route.query.rules instanceof Object ? this.rules = this.$route.query.rules : this.rules = JSON.parse(this.$route.query.rules);
  311. }
  312. sessionStorage.setItem('resetCode', '1')
  313. getEmployeeOrgan().then(res => {
  314. if (res.code == 200) {
  315. this.organList = res.data;
  316. }
  317. })
  318. // 获取乐团收费类型
  319. getPayType().then(res => {
  320. if (res.code == 200) {
  321. this.typeList = res.data.rows;
  322. }
  323. })
  324. // 获取乐团合作单位(学校)
  325. // getCooperation().then(res => {
  326. // })
  327. this.getList();
  328. },
  329. permission (str) {
  330. return permission(str)
  331. },
  332. reset () {
  333. this.rules.page = 1;
  334. this.$refs['topForm'].resetFields();
  335. this.getList()
  336. },
  337. search () {
  338. this.rules.page = 1;
  339. this.getList();
  340. },
  341. getList () {
  342. getTeamList({
  343. rows: this.rules.limit,
  344. page: this.rules.page,
  345. organId: this.topForm.orgin || null,
  346. chargeTypeId: this.topForm.payType || null,
  347. musicGroupName: this.topForm.teamName || null,
  348. musicGroupStatus: this.topForm.status || null,
  349. }).then(res => {
  350. if (res.code == 200) {
  351. this.tableData = res.data.rows
  352. this.rules.total = res.data.total
  353. }
  354. })
  355. },
  356. createNewTeam () {
  357. let search = JSON.stringify(this.topForm)
  358. let rules = JSON.stringify(this.rules)
  359. this.$router.push({ path: '/business/teamBuild', query: { type: 'newTeam', search, rules } })
  360. },
  361. resetTeam () {
  362. // 这里还有勾选的乐团信息
  363. if (this.passed && this.passed.length <= 0) {
  364. this.$message.error('请至少选择一个乐团进行调整')
  365. return
  366. }
  367. let search = JSON.stringify(this.topForm)
  368. let rules = JSON.stringify(this.rules)
  369. this.$router.push({ path: '/business/teamBuild', query: { type: 'teamList', teamList: this.passed, search, rules } })
  370. },
  371. resetTeaming (row) {
  372. // 修改进行中的乐团
  373. let search = JSON.stringify(this.topForm)
  374. let rules = JSON.stringify(this.rules)
  375. this.$router.push({ path: '/business/resetTeaming', query: { type: 'resetTeam', id: row.id, search, rules } })
  376. },
  377. setSearchList (obj) {
  378. //
  379. // 没有相同的key=>添加这个对象
  380. // 有相同的key => 替换这个对象
  381. if (obj.type == 1) {
  382. let flag = false;
  383. this.searchLsit = this.searchLsit.map(item => {
  384. if (item.id == obj.id) {
  385. item = obj;
  386. flag = true;
  387. }
  388. return item;
  389. })
  390. if (!flag) {
  391. this.searchLsit.push(obj)
  392. }
  393. } else {
  394. let flag = false;
  395. this.searchLsit = this.searchLsit.map(item => {
  396. if (item.key == obj.key) {
  397. // 多选框的再次点击=> 等于 就是删除
  398. item = obj;
  399. flag = true;
  400. }
  401. return item;
  402. })
  403. if (!flag) {
  404. this.searchLsit.push(obj)
  405. }
  406. }
  407. },
  408. closeSearch (item) {
  409. // 1.删除search里的元素
  410. if (item.type == 1) {
  411. for (let some in this.searchLsit) {
  412. if (this.searchLsit[some].id == item.id) {
  413. this.searchLsit.splice(some, 1);
  414. }
  415. }
  416. // 2.清空对应元素所对应的的值
  417. this.topForm[item.id] = '';
  418. } else {
  419. for (let i = 0; i < this.topForm[item.id].length; i++) {
  420. if (this.topForm[item.id][i] == item.value) {
  421. this.topForm[item.id].splice(i, 1);
  422. }
  423. }
  424. // 处理search
  425. for (let some in this.searchLsit) {
  426. if (this.searchLsit[some].value == item.value && this.searchLsit[some].id == item.id) {
  427. this.searchLsit.splice(some, 1);
  428. }
  429. // id: 'school', key: this.schools[item].text, value: val, type: 1
  430. }
  431. }
  432. },
  433. onTeamOpeation (type, row) {
  434. if (type == 'start') {
  435. this.$confirm('是否确定开启乐团?', '提示', {
  436. confirmButtonText: '确定',
  437. cancelButtonText: '取消',
  438. type: 'warning'
  439. }).then(() => {
  440. resumeMusicGroup({ musicGroupId: row.id }).then(res => {
  441. if (res.code == 200) {
  442. this.$message.success('开启成功')
  443. this.getList()
  444. } else {
  445. this.$message.error(res.msg)
  446. }
  447. })
  448. }).catch(() => { })
  449. } else if (type == 'pause') {
  450. this.$confirm('是否确定暂停乐团?', '提示', {
  451. confirmButtonText: '确定',
  452. cancelButtonText: '取消',
  453. type: 'warning'
  454. }).then(() => {
  455. pauseMusicGroup({ musicGroupId: row.id }).then(res => {
  456. if (res.code == 200) {
  457. this.$message.success('暂停成功')
  458. this.getList()
  459. } else {
  460. this.$message.error(res.msg)
  461. }
  462. })
  463. }).catch(() => { })
  464. }
  465. },
  466. gotoSearch () {
  467. this.$refs['topForm'].resetFields();
  468. this.searchLsit = [];
  469. },
  470. lookTeamCourse (row) {
  471. // 查看课表
  472. let search = JSON.stringify(this.topForm)
  473. let rules = JSON.stringify(this.rules)
  474. this.$router.push({ path: '/business/teamDetailCourse', query: { id: row.id, name: row.name, search, rules } })
  475. },
  476. lookTeamDetail (row) {
  477. let search = JSON.stringify(this.topForm)
  478. let rules = JSON.stringify(this.rules)
  479. switch (row.status) {
  480. case 'DRAFT': {
  481. // 编辑中
  482. this.$router.push({ path: '/business/teamBuild', query: { type: 'teamDraft', id: row.id, search, rules } })
  483. break;
  484. }
  485. case 'AUDIT': {
  486. // 审核中
  487. this.$router.push({ path: '/business/teamBuild', query: { type: 'teamAudit', id: row.id, search, rules } })
  488. break;
  489. }
  490. case 'FEE_AUDIT': {
  491. // 费用审核中
  492. this.$router.push({ path: '/business/teamBuild', query: { type: 'feeAudit', id: row.id, search, rules } })
  493. break;
  494. }
  495. case 'AUDIT_FAILED': {
  496. // 审核失败
  497. this.$router.push({ path: '/business/teamBuild', query: { type: 'teamDraft', id: row.id, search, rules } })
  498. break;
  499. }
  500. case 'APPLY': {
  501. // 报名中
  502. this.$router.push({ path: `/business/signupList`, query: { status: row.status, id: row.id, name: row.name, search, rules } })
  503. break;
  504. }
  505. case 'PAY': {
  506. // 缴费中
  507. this.$router.push({ path: `/business/signupList`, query: { status: row.status, id: row.id, name: row.name, search, rules } })
  508. break;
  509. }
  510. case 'PREPARE': {
  511. // 筹备中 跳转到乐团设置界面
  512. this.$router.push({ path: `/business/teamSeting`, query: { status: row.status, id: row.id, name: row.name, search, rules } })
  513. break;
  514. }
  515. case 'PROGRESS': {
  516. // 进行中
  517. // 调到乐团详情 teamDetails
  518. this.$router.push({ path: `/business/teamDetails`, query: { status: row.status, id: row.id, name: row.name, search, rules, organId: row.organId } })
  519. break
  520. }
  521. case 'CANCELED': {
  522. // 取消
  523. break
  524. }
  525. case 'PAUSE': {
  526. // 暂停
  527. this.$router.push({ path: `/business/teamDetails`, query: { status: row.status, id: row.id, name: row.name, search, rules } })
  528. break;
  529. }
  530. }
  531. },
  532. checkSelectable (row) {
  533. return row.status == 'PROGRESS'
  534. },
  535. handleSelectionChange (arr) {
  536. this.passed = [];
  537. for (let i in arr) {
  538. let obj = {};
  539. obj.id = arr[i].id;
  540. obj.name = arr[i].name;
  541. this.passed.push(obj)
  542. }
  543. },
  544. gotodetailList (row) {
  545. let search = JSON.stringify(this.topForm)
  546. let rules = JSON.stringify(this.rules)
  547. this.$router.push({ path: '/business/teamDetailedList', query: { id: row.id, search, rules } })
  548. },
  549. //
  550. lookTeamInfo (row) {
  551. let search = JSON.stringify(this.topForm)
  552. let rules = JSON.stringify(this.rules)
  553. this.$router.push({ path: '/business/teamLookBase', query: { type: 'look', id: row.id, name: row.name, search, rules } })
  554. },
  555. // setImprovement 设置基础技能班
  556. gotoImprovement (row) {
  557. let search = JSON.stringify(this.topForm)
  558. let rules = JSON.stringify(this.rules)
  559. this.$router.push({ path: '/business/setImprovement', query: { id: row.id, search, rules } })
  560. },
  561. // 停止乐团
  562. stopTeam (row) {
  563. this.$confirm('您确定取消申请乐团?', '提示', {
  564. confirmButtonText: '确定',
  565. cancelButtonText: '取消',
  566. type: 'warning'
  567. }).then(() => {
  568. cancelMusicGroup({
  569. musicGroupId: row.id
  570. }).then(res => {
  571. if (res.code == 200) {
  572. this.$message.success('停止成功')
  573. this.getList()
  574. }
  575. })
  576. }).catch(() => {
  577. })
  578. },
  579. // 确认成团
  580. startTeam (row) {
  581. this.$confirm('是否确定成团?', '提示', {
  582. confirmButtonText: '确定',
  583. cancelButtonText: '取消',
  584. type: 'warning'
  585. }).then(() => {
  586. startTeam({ musicGroupId: row.id }).then(res => {
  587. if (res.code == 200) {
  588. this.$message.success('开启乐团成功')
  589. this.getList();
  590. }
  591. })
  592. }).catch(() => { })
  593. },
  594. deteleTeaming (row) {
  595. this.$confirm('您确定删除该乐团?', '提示', {
  596. confirmButtonText: '确定',
  597. cancelButtonText: '取消',
  598. type: 'warning'
  599. }).then(() => {
  600. deleteMusicGroup({
  601. musicGroupId: row.id
  602. }).then(res => {
  603. if (res.code == 200) {
  604. this.$message.success('删除成功')
  605. this.getList()
  606. }
  607. })
  608. }).catch(() => {
  609. })
  610. },
  611. lookSteam (row) {
  612. this.activeId = row.id
  613. this.showSteam = true
  614. }
  615. },
  616. watch: {
  617. showSteam (val) {
  618. if (!val) {
  619. this.activeId = null
  620. }
  621. }
  622. }
  623. }
  624. </script>
  625. <style lang="scss" scoped>
  626. .select {
  627. font-size: 14px;
  628. }
  629. .btnList {
  630. display: flex;
  631. flex-direction: row;
  632. justify-content: flex-start;
  633. align-items: center;
  634. div {
  635. margin-right: 15px;
  636. }
  637. }
  638. </style>