teamSoundMoney.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  1. <template>
  2. <div class='sound-container'>
  3. <div class="topMsg">
  4. <p>当前选择声部数(个):{{chioseSoundNum}}</p>
  5. <p style='margin-left:30px;'>计划招生人数(个):{{PlannedCount}}</p>
  6. </div>
  7. <div class="listWrap">
  8. <el-table :data='activeSoundList'
  9. ref="multipleTable"
  10. :header-cell-style="{background:'#EDEEF0',color:'#444'}"
  11. highlight-current-row
  12. @selection-change='handleSelectionChange'
  13. @row-click='handleclick'>
  14. <el-table-column type="selection"
  15. width="55">
  16. </el-table-column>
  17. <el-table-column label="声部"
  18. align="center"
  19. width="80"
  20. prop="sound">
  21. </el-table-column>
  22. <el-table-column label="计划招生"
  23. align="center"
  24. width="100"
  25. prop="jihua">
  26. <template slot-scope="scope"
  27. width="100">
  28. <div>
  29. <el-input v-if='scope.row.type == 1'
  30. type='number'
  31. style="width:80px"
  32. size='mini'
  33. v-model="scope.row.jihua"
  34. placeholder="请输入"></el-input>
  35. <!-- <p v-if='scope.row.type == 2'>{{scope.row.jihua}}</p> -->
  36. </div>
  37. </template>
  38. </el-table-column>
  39. <el-table-column label="预计收费"
  40. width="100"
  41. align="center"
  42. prop="yuji">
  43. <template slot-scope="scope">
  44. <div>
  45. <el-input v-if='scope.row.type == 1'
  46. type='number'
  47. style="width:80px"
  48. size='mini'
  49. v-model="scope.row.yuji"
  50. placeholder="请输入"></el-input>
  51. <!-- <p v-if='scope.row.type == 2'>{{scope.row.yuji}}</p> -->
  52. </div>
  53. </template>
  54. </el-table-column>
  55. <el-table-column label="可选乐器规格"
  56. align="center"
  57. prop="zhonglei"
  58. width="300">
  59. <template slot-scope="scope">
  60. <!-- 'typeVisible':false,'provideVisible':false,'markVisible':false -->
  61. <div>
  62. <span>{{scope.row.zhonglei | zhongleiFilter(scope.row.goodsList)}}</span>
  63. <el-popover placement="bottom"
  64. @show='chioseType(scope.row)'
  65. v-model="scope.row.typeVisible"
  66. v-if='scope.row.type == 1'>
  67. <el-button type="text"
  68. slot='reference'>
  69. 修改
  70. </el-button>
  71. <!-- zhonglei -->
  72. <el-select v-model="scope.row.zhonglei"
  73. multiple
  74. clearable
  75. collapse-tags>
  76. <el-option v-for="(item,index) in scope.row.goodsList"
  77. :key='index'
  78. :label="item.name"
  79. :value="item.id"></el-option>
  80. </el-select>
  81. <div style="text-align: right; margin-top: 20px">
  82. <!-- <el-button size="mini"
  83. type="text"
  84. @click="closechioseType(scope.row)">取消</el-button> -->
  85. <el-button type="primary"
  86. size="mini"
  87. @click="scope.row.typeVisible = false">确定</el-button>
  88. </div>
  89. </el-popover>
  90. </div>
  91. </template>
  92. </el-table-column>
  93. <el-table-column label="乐器提供方式"
  94. align="center"
  95. prop="fangshi"
  96. width="180">
  97. <template slot-scope="scope">
  98. <div>
  99. <!-- <div class="chiose"
  100. >选择</div> -->
  101. <span v-if="scope.row.fangshi">{{scope.row.fangshi | fangshiFilter(scope.row.fangshiprice)}}</span>
  102. <el-popover placement="bottom"
  103. v-model="scope.row.provideVisible"
  104. v-if='scope.row.type == 1'>
  105. <i class='el-icon-edit'
  106. slot='reference'>
  107. </i>
  108. <el-select v-model="scope.row.fangshi"
  109. clearable>
  110. <el-option label="免费"
  111. value="FREE"></el-option>
  112. <el-option label="租赁"
  113. value="GROUP"></el-option>
  114. <el-option label="借用"
  115. value="LEASE"></el-option>
  116. </el-select>
  117. <el-input placeholder="请输入费用"
  118. v-model="scope.row.fangshiprice"
  119. style='width:180px; margin-top:20px'></el-input>
  120. <div style="text-align: right; margin-top: 20px">
  121. <!-- <el-button size="mini"
  122. type="text"
  123. @click="scope.row.provideVisible = false">取消</el-button> -->
  124. <el-button type="primary"
  125. size="mini"
  126. @click="scope.row.provideVisible = false">确定</el-button>
  127. </div>
  128. </el-popover>
  129. </div>
  130. </template>
  131. </el-table-column>
  132. <el-table-column label="教辅组合"
  133. align="center"
  134. prop="jiaopu">
  135. <template slot-scope="scope">
  136. <div>
  137. <!-- <el-popover placement="bottom"
  138. v-model="scope.row.markVisible"
  139. @show="chioseMark"
  140. v-if='scope.row.type == 1'>
  141. <div slot='reference'
  142. class='chiose'>
  143. 操作
  144. </div>
  145. <el-input v-model="scope.row.fangshi"></el-input>
  146. 1111
  147. <div style="text-align: right; margin: 0">
  148. <el-button size="mini"
  149. type="text"
  150. @click="scope.row.provideVisible = false">取消</el-button>
  151. <el-button type="primary"
  152. size="mini"
  153. @click="scope.row.provideVisible = false">确定</el-button>
  154. </div>
  155. </el-popover> -->
  156. <!-- scope.row.markVisible = true -->
  157. <el-dialog :visible.sync="scope.row.markVisible"
  158. style="text-align:left;"
  159. width="60%">
  160. <el-button type='text'
  161. @click="addMark(scope.row)">添加教辅</el-button>
  162. <div class="markWrap">
  163. <div class="markItem"
  164. v-for="(item, index) in scope.row.markList"
  165. :key='index'>
  166. <el-form :model="item"
  167. :inline="true">
  168. <el-form-item label="教辅名称">
  169. <el-input type="text"
  170. v-model="item.name"></el-input>
  171. </el-form-item>
  172. <el-form-item label="教辅商品">
  173. <el-select v-model="item.goods"
  174. multiple
  175. collapse-tags>
  176. <el-option v-for='(item,index) in scope.row.markChioseList'
  177. :key='index'
  178. :label="item.name"
  179. :value="item.id"></el-option>
  180. </el-select>
  181. </el-form-item>
  182. <el-form-item label="教辅打包价">
  183. <el-input type='number'
  184. v-model="item.price"></el-input>
  185. </el-form-item>
  186. <el-form-item>
  187. <el-button type="danger"
  188. icon="el-icon-delete"
  189. circle
  190. @click='removeMartItem(scope.row,index)'>
  191. </el-button>
  192. </el-form-item>
  193. </el-form>
  194. </div>
  195. </div>
  196. <span slot="footer"
  197. class="dialog-footer">
  198. <!-- <el-button @click="scope.row.markVisible = false">取 消</el-button> -->
  199. <el-button type="primary"
  200. @click="scope.row.markVisible = false">确 定</el-button>
  201. </span>
  202. </el-dialog>
  203. <span>
  204. <span v-for='(item,index) in scope.row.markList'
  205. v-if="item.name"
  206. :key='index'>{{item.name+':'}}{{item.goods|goodsFilter(scope.row.markChioseList)}}{{' 价格 '+item.price }} </span>
  207. </span>
  208. <i class='el-icon-edit'
  209. slot='reference'
  210. @click="chioseMark(scope.row)">
  211. </i>
  212. </div>
  213. </template>
  214. </el-table-column>
  215. <!-- <el-table-column label="操作">
  216. <template slot-scope="scope">
  217. <div>
  218. <el-button v-if='scope.row.type == 2'
  219. type="text"
  220. @click="savecolumn(scope.row)">编辑</el-button>
  221. <el-button v-if='scope.row.type == 1'
  222. type="text"
  223. @click="savecolumn(scope.row)">保存</el-button>
  224. </div>
  225. </template>
  226. </el-table-column> -->
  227. </el-table>
  228. <div class="floor">
  229. <div class="remove"
  230. @click="removeListItem">删除</div>
  231. <div class='add'
  232. @click="addListItem">添加</div>
  233. </div>
  234. </div>
  235. <el-dialog title="声部选择"
  236. :visible.sync="dialogTableVisible"
  237. :modal-append-to-body="false">
  238. <div class="soundWrap">
  239. <div class="itemList">
  240. <div class="categroy"
  241. v-for="(item,index) in soundList"
  242. :key="index">
  243. <p>{{item.name }}</p>
  244. <el-checkbox-group v-model="soundLists[index]"
  245. @change='changeList'>
  246. <!-- sound: this.activeSoundList[item].name, // id
  247. jihua: '10', //计划招生人数
  248. yuji: '10', // 预计收费
  249. zhonglei: [], // 可选乐器种类
  250. fangshi: 2, // 乐器提供方式
  251. jiaopu: 'jiaopu1', // 教辅组合
  252. type: 1, // 操作
  253. id: this.activeSoundList[item].id, //声部id
  254. visible: false, // 当前乐器提供方式的pop提示框显示隐藏 -->
  255. <el-checkbox :label="sound.id"
  256. @change="checkinlist({'id':sound.id,'sound':sound.name,'jihua':0,'yuji':0,'zhonglei':[],'fangshi':'','fangshiprice':0,'jiaopu':'','type':1,'typeVisible':false,'provideVisible':false,'markVisible':false,'goodsList':[],'markList':[{'name':'','goods':[],'price':''}],'markChioseList':[]})"
  257. v-for="(sound,indexs) in item.subjects"
  258. :key="indexs">{{sound.name }}</el-checkbox>
  259. </el-checkbox-group>
  260. </div>
  261. </div>
  262. </div>
  263. <p class='soundSubP'>当前选择声部数:{{chioseSoundNum}}</p>
  264. <div class="btnWraps">
  265. <div class="dialogBtn"
  266. @click="generates">确定</div>
  267. </div>
  268. </el-dialog>
  269. <div class="btnWrap">
  270. <div class="PrevBtn"
  271. @click="goback">上一步</div>
  272. <div class="submitBtn"
  273. @click="submitInfo">提交</div>
  274. </div>
  275. </div>
  276. </template>
  277. <script>
  278. import store from '@/store'
  279. import { getSubject, getDefaultSubject, getGoods, createTeam, getSoundTree } from '@/api/buildTeam'
  280. export default {
  281. data () {
  282. return {
  283. dialogTableVisible: false,
  284. soundList: [],
  285. soundLists: [], // 存储选中项的声部id 记录变量
  286. activeSoundList: [], // 记录存储后的所选中的声部列表
  287. checkList: [],
  288. multipleSelection: [], // 列表选择的集合
  289. isLoop: '', // 是否显示周期循环
  290. payfor: {},
  291. topfor: {},
  292. checkfor: {}
  293. }
  294. },
  295. methods: {
  296. // 改变checkbox
  297. changeList (e) {
  298. // console.log(e);
  299. },
  300. handleSelectionChange (e) {
  301. // 点击改变勾选
  302. this.multipleSelection = e;
  303. },
  304. handleclick (e) { },
  305. handleStatus (data) {
  306. },
  307. // 点击添加按钮
  308. addListItem () {
  309. this.dialogTableVisible = true;
  310. },
  311. // 点击确认按钮生成表单
  312. generates () {
  313. this.dialogTableVisible = false;
  314. },
  315. removeListItem () {
  316. for (let i = 0; i < this.activeSoundList.length; i++) {
  317. for (let j = 0; j < this.multipleSelection.length; j++) {
  318. if (this.activeSoundList[i].id == this.multipleSelection[j].id) {
  319. this.activeSoundList.splice(i, 1);
  320. // 遍历循环所有的group 删除所选id
  321. for (let key in this.soundLists) {
  322. if (this.soundLists[key].indexOf(this.multipleSelection[j].id) != -1) {
  323. // console.log(this.soundLists[key], this.multipleSelection[j].id, this.soundLists[key].indexOf(this.multipleSelection[j].id));
  324. this.soundLists[key].splice(this.soundLists[key].indexOf(this.multipleSelection[j].id), 1)
  325. }
  326. }
  327. }
  328. }
  329. }
  330. },
  331. // 勾选选中框处理数据,存储勾选过的checkbox值
  332. checkinlist (obj) {
  333. let flag = false;
  334. this.activeSoundList.map(item => {
  335. if (item.id == obj.id) {
  336. flag = true
  337. }
  338. })
  339. if (!flag) {
  340. this.activeSoundList.push(obj)
  341. } else {
  342. for (let i = 0; i < this.activeSoundList.length; i++) {
  343. if (this.activeSoundList[i].id == obj.id) {
  344. this.activeSoundList.splice(i, 1);
  345. }
  346. }
  347. }
  348. },
  349. // 根据声部id获取可选乐器种类
  350. chioseType (row) {
  351. // 根据id查询可选类型种类
  352. let id = row.id;
  353. // console.log(row.id);
  354. // 'subjectId': id, ' type'='INSTRUMENT'
  355. getGoods({ 'subjectId': id, 'type': 'INSTRUMENT' }).then(res => {
  356. if (res.code == 200) {
  357. row.goodsList = res.data;
  358. // console.log(row);
  359. }
  360. })
  361. },
  362. // 点击关闭乐器种类
  363. closechioseType (row) {
  364. row.typeVisible = false;
  365. },
  366. // 根据声部id查询可选教辅
  367. chioseMark (row) {
  368. row.markVisible = true
  369. let id = row.id;
  370. getGoods({ 'subjectId': id, 'type': 'ACCESSORIES' }).then(res => {
  371. if (res.code == 200) {
  372. console.log(res);
  373. row.markChioseList = res.data;
  374. // console.log(row);
  375. }
  376. })
  377. },
  378. // 添加教辅
  379. addMark (row) {
  380. row.markList.push({ 'name': '', 'goods': [], 'price': '' })
  381. },
  382. // 删除教辅
  383. removeMartItem (row, index) {
  384. // console.log(index);
  385. row.markList.splice(index, 1);
  386. },
  387. // 点击保存或编辑
  388. savecolumn (row) {
  389. row.type == 1 ? row.type = 2 : row.type = 1
  390. },
  391. // 返回上一步
  392. goback () {
  393. this.$emit('chiosetab', 0);
  394. },
  395. submitInfo () {
  396. // 整理数据提交
  397. let obj = {};
  398. this.payfor.student.chiose == 'loop' ? obj.months = this.payfor.chioseMonth : obj.months = [];
  399. obj.musicGroup = {
  400. settlementType: this.topfor.salary,
  401. applyExpireDate: this.topfor.time + ' 00:00:01',
  402. chargeTypeId: this.topfor.type,
  403. cooperationOrganId: this.topfor.school,
  404. teamTeacherId: this.topfor.boss,
  405. educationalTeacherId: this.topfor.teacher,
  406. enrollClasses: this.topfor.startClass.join(','),
  407. name: this.topfor.name,
  408. organId: this.topfor.section,
  409. // paymentMonths:obj.months 有待确认
  410. schoolId: this.topfor.address,
  411. courseForm: JSON.stringify(this.checkfor)
  412. }
  413. obj.musicGroupPaymentEntities = []
  414. // 添加学校主体付费方式
  415. // console.log(this.payfor.company.ischeck)
  416. if (this.payfor.school.ischeck) {
  417. obj.musicGroupPaymentEntities.push({
  418. 'amount': this.payfor.school.price,
  419. 'memo': this.payfor.school.value,
  420. 'paymentMethod': this.payfor.school.chiose,
  421. 'name': '学校'
  422. })
  423. }
  424. // 添加公司主体付费方式
  425. if (this.payfor.company.ischeck) {
  426. obj.musicGroupPaymentEntities.push({
  427. 'amount': this.payfor.company.price,
  428. 'memo': this.payfor.company.value,
  429. 'paymentMethod': this.payfor.company.chiose,
  430. 'name': '公司'
  431. })
  432. }
  433. // 添加商品以及教辅
  434. obj.musicGroupSubjectGoodsGroups = [];
  435. for (let i in this.activeSoundList) {
  436. // 遍历声部里的乐器
  437. let some = {};
  438. some.subjectId = this.activeSoundList[i].id;
  439. some.type = 'INSTRUMENT';
  440. some.goodsIdList = this.activeSoundList[i].zhonglei.join(',');
  441. obj.musicGroupSubjectGoodsGroups.push(some);
  442. }
  443. // 遍历声部里的教辅
  444. for (let i in this.activeSoundList) {
  445. // 遍历声部里的乐器
  446. for (let j in this.activeSoundList[i].markList) {
  447. let some = {};
  448. some.subjectId = this.activeSoundList[i].id;
  449. some.type = 'ACCESSORIES';
  450. some.goodsIdList = this.activeSoundList[i].markList[j].goods.join(',');
  451. some.name = this.activeSoundList[i].markList[j].name;
  452. some.price = this.activeSoundList[i].markList[j].price;
  453. obj.musicGroupSubjectGoodsGroups.push(some);
  454. }
  455. }
  456. // 添加声部
  457. obj.musicGroupSubjectPlans = [];
  458. for (let i in this.activeSoundList) {
  459. let item = {};
  460. // expectedStudentNum
  461. item.expectedStudentNum = this.activeSoundList[i].jihua;
  462. item.fee = this.activeSoundList[i].yuji;
  463. item.kitGroupPurchaseType = this.activeSoundList[i].fangshi;
  464. item.subName = this.activeSoundList[i].sound;
  465. item.subjectId = this.activeSoundList[i].id;
  466. obj.musicGroupSubjectPlans.push(item);
  467. }
  468. console.log(obj)
  469. // createTeam(obj).then(res => {
  470. // if (res.code == 200) {
  471. // // 成功 跳转到乐团报名详情
  472. // this.$router.push({ path: '/business/teamDetail' })
  473. // }
  474. // })
  475. }
  476. },
  477. filters: {
  478. zhongleiFilter (val, list) {
  479. let arr = []
  480. for (let i = 0; i < list.length; i++) {
  481. for (let j = 0; j < val.length; j++) {
  482. if (val[j] == list[i].id) {
  483. arr.push(list[i].name)
  484. }
  485. }
  486. }
  487. return arr.join(',')
  488. },
  489. fangshiFilter (val, price) {
  490. let str = ''
  491. if (val == 'FREE') {
  492. str = '免费'
  493. } else if (val == 'GROUP') {
  494. str = '租赁'
  495. } else if (val == 'LEASE') {
  496. str = '借用'
  497. }
  498. return str + '费用:' + price
  499. },
  500. goodsFilter (val, list) {
  501. let arr = [];
  502. for (let i = 0; i < val.length; i++) {
  503. for (let j = 0; j < list.length; j++) {
  504. if (val[i] == list[j].id) {
  505. arr.push(list[j].name);
  506. }
  507. }
  508. }
  509. return arr.join(',');
  510. }
  511. // markFilter(val){
  512. // for
  513. // let name = val.name;
  514. // let goods = val.goods.join(',');
  515. // let price = val.price
  516. // }
  517. },
  518. mounted () {
  519. getSoundTree().then(res => {
  520. // console.log(res);
  521. if (res.code == 200) {
  522. this.soundList = res.data.rows;
  523. // // 生成动态的checkList
  524. for (let key in this.soundList) {
  525. this.$set(this.soundLists, key, [])
  526. }
  527. getDefaultSubject({ chargeTypeId: type }).then(res => {
  528. if (res.code == 200) {
  529. this.activeSoundList = res.data.map(item => {
  530. this.soundLists[0].push(item.id)
  531. let obj = { 'id': item.id, 'sound': item.name, 'jihua': 0, 'yuji': 0, 'zhonglei': [], 'fangshi': '', 'fangshiprice': 0, 'jiaopu': '', 'type': 1, 'typeVisible': false, 'provideVisible': false, 'markVisible': false, 'goodsList': [], 'markList': [{ 'name': '', 'goods': [], 'price': '' }], 'markChioseList': [] }
  532. return obj;
  533. })
  534. // 并且把所有soundLists 里面
  535. }
  536. });
  537. }
  538. })
  539. // 拿到刚才的存储的信息
  540. this.payfor = this.$store.getters.payList;
  541. this.topfor = this.$store.getters.topinfo;
  542. this.checkfor = this.$store.getters.checkinfo;
  543. let type = this.topfor.type;
  544. // console.log(this.topfor);
  545. // console.log(this.checkfor);
  546. // console.log(this.payfor);
  547. },
  548. watch: {
  549. },
  550. computed: {
  551. // 返回当前选中声部数量
  552. chioseSoundNum () {
  553. let num = 0;
  554. for (let key in this.soundList) {
  555. // console.log(this.soundLists[key])
  556. num += this.soundLists[key].length;
  557. }
  558. return num;
  559. },
  560. // 计划招生人数
  561. PlannedCount () {
  562. let Count = 0;
  563. for (let item in this.activeSoundList) {
  564. Count += parseInt(this.activeSoundList[item].jihua)
  565. }
  566. return Count
  567. }
  568. },
  569. }
  570. </script>
  571. <style lang="scss" >
  572. // .el-table__body tr.current-row > td {
  573. // background-color: #c6cbd4 !important;
  574. // }
  575. .el-checkbox__input.is-checked .el-checkbox__inner,
  576. .el-checkbox__input.is-indeterminate .el-checkbox__inner {
  577. background-color: #14928a;
  578. border-color: #14928a;
  579. }
  580. .el-select__tags .el-tag__close.el-icon-close {
  581. display: inline-block;
  582. }
  583. // .el-dialog__header {
  584. // padding: 0 32px !important;
  585. // height: 40px;
  586. // line-height: 40px;
  587. // background-color: #14928a;
  588. // .el-dialog__title {
  589. // color: #fff;
  590. // font-size: 16px;
  591. // }
  592. // }
  593. .el-checkbox__input.is-checked + .el-checkbox__label {
  594. color: #606266;
  595. }
  596. .sound-container {
  597. .chioseWrap {
  598. margin-bottom: 30px;
  599. display: flex;
  600. flex-direction: row;
  601. padding: 0 25px;
  602. p {
  603. font-size: 14px;
  604. margin-right: 30px;
  605. }
  606. }
  607. .topMsg {
  608. padding: 0 25px;
  609. display: flex;
  610. flex-direction: row;
  611. justify-content: flex-start;
  612. font-size: 14px;
  613. color: #444;
  614. margin-bottom: 15px;
  615. }
  616. .subTitle {
  617. width: 1203px;
  618. height: 40px;
  619. line-height: 40px;
  620. background-color: #fefceb;
  621. padding: 0 25px;
  622. box-sizing: border-box;
  623. font-size: 16px;
  624. color: #474747;
  625. margin-bottom: 20px;
  626. }
  627. .floor {
  628. display: flex;
  629. flex-direction: row;
  630. justify-content: flex-start;
  631. width: 100%;
  632. height: 48px;
  633. line-height: 48px;
  634. background: rgba(237, 238, 240, 1);
  635. font-size: 14px;
  636. color: #444;
  637. align-items: center;
  638. position: relative;
  639. z-index: 1;
  640. .remove {
  641. width: 98px;
  642. height: 32px;
  643. background: rgba(248, 80, 67, 1);
  644. border-radius: 3px;
  645. color: #fff;
  646. line-height: 32px;
  647. text-align: center;
  648. margin-left: 164px;
  649. cursor: pointer;
  650. }
  651. .add {
  652. width: 98px;
  653. height: 32px;
  654. background: rgba(20, 146, 138, 1);
  655. border-radius: 3px;
  656. color: #fff;
  657. line-height: 32px;
  658. text-align: center;
  659. margin-left: 20px;
  660. cursor: pointer;
  661. }
  662. }
  663. .xuanze {
  664. width: 71px;
  665. }
  666. .chiose {
  667. width: 65px;
  668. height: 24px;
  669. line-height: 24px;
  670. border: 1px solid rgba(151, 151, 151, 1);
  671. border-radius: 12px;
  672. text-align: center;
  673. cursor: pointer;
  674. }
  675. }
  676. .soundWrap {
  677. width: 100%;
  678. overflow: auto;
  679. .itemList {
  680. display: flex;
  681. flex-direction: row;
  682. justify-content: flex-start;
  683. flex-wrap: nowrap;
  684. flex-grow: 1;
  685. height: 300px;
  686. max-height: 300px;
  687. overflow: auto;
  688. .categroy {
  689. width: 150px;
  690. min-width: 150px;
  691. .el-checkbox {
  692. height: 30px;
  693. line-height: 30px;
  694. display: block;
  695. padding-left: 20px;
  696. }
  697. p {
  698. height: 40px;
  699. line-height: 40px;
  700. background-color: #edeef0;
  701. margin-bottom: 15px;
  702. text-align: center;
  703. }
  704. }
  705. }
  706. }
  707. .soundSubP {
  708. height: 40px;
  709. line-height: 40px;
  710. background-color: #edeef0;
  711. padding-left: 25px;
  712. }
  713. .btnWraps {
  714. display: flex;
  715. flex-direction: column;
  716. align-items: center;
  717. margin-top: 150px;
  718. .dialogBtn {
  719. width: 188px;
  720. height: 40px;
  721. background: rgba(249, 114, 21, 1);
  722. border-radius: 4px;
  723. line-height: 40px;
  724. color: #fff;
  725. text-align: center;
  726. cursor: pointer;
  727. }
  728. }
  729. .btnWrap {
  730. margin-top: 40px;
  731. .PrevBtn {
  732. background-color: #444444;
  733. width: 120px;
  734. }
  735. .submitBtn {
  736. background-color: #f85043;
  737. width: 120px;
  738. }
  739. }
  740. .el-icon-plus {
  741. cursor: pointer;
  742. }
  743. </style>