teamBaseInfo.vue 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
  1. <template>
  2. <div class='base-container'>
  3. <div class="banseLeft">
  4. <div class="head">乐团基本信息:</div>
  5. <!-- <div class="num">乐团编号:dywh01</div> -->
  6. <el-form :model="topFrom"
  7. :inline="true"
  8. ref='topinfo'
  9. style="margin-left:11px;">
  10. <el-form-item label="收费类型"
  11. prop="type"
  12. :rules="[{ required: true, message: '收费类型不能为空'}]">
  13. <el-select v-model="topFrom.type"
  14. clearable>
  15. <el-option v-for="(item,index) in typeList"
  16. :key='index'
  17. :label="item.name"
  18. :value="item.id"></el-option>
  19. </el-select>
  20. </el-form-item>
  21. <el-form-item label="所属分部"
  22. prop="section"
  23. :rules="[{ required: true, message: '所属分部不能为空'},]">
  24. <el-select v-model="topFrom.section"
  25. clearable>
  26. <el-option v-for="(item,index) in sectionList"
  27. :key='index'
  28. :label="item.name"
  29. :value="item.id"></el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="合作单位"
  33. prop="school"
  34. :rules="[{ required: true, message: '合作单位不能为空'},]">
  35. <el-select v-model="topFrom.school"
  36. clearable>
  37. <el-option v-for="(item,index) in cooperationList"
  38. :key='index'
  39. :label="item.name"
  40. :value="item.id"></el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item label="教学地点"
  44. prop="address"
  45. :rules="[{ required: true, message: '教学地点不能为空'},]">
  46. <el-select v-model="topFrom.address"
  47. clearable>
  48. <el-option v-for="(item,index) in addList"
  49. :key='index'
  50. :label="item.name"
  51. :value="item.id"></el-option>
  52. </el-select>
  53. </el-form-item>
  54. <el-form-item label="乐团名称"
  55. prop='name'
  56. :rules="[{ required: true, message: '乐团名称不能为空'},]">
  57. <el-input placeholder="请输入乐团名称"
  58. v-model="topFrom.name"></el-input>
  59. </el-form-item>
  60. <el-form-item label="运营主管"
  61. prop='boss'
  62. :rules="[{ required: true, message: '运营主管不能为空'},]">
  63. <el-select v-model="topFrom.boss"
  64. clearable>
  65. <el-option v-for="(item,index) in teacherList"
  66. :key='index'
  67. :label="item.username"
  68. :value="item.id"></el-option>
  69. </el-select>
  70. </el-form-item>
  71. <el-form-item label="教务老师"
  72. prop='teacher'
  73. :rules="[{ required: true, message: '教育老师不能为空'},]">
  74. <el-select v-model="topFrom.teacher"
  75. clearable>
  76. <el-option v-for="(item,index) in teacherList"
  77. :key='index'
  78. :label="item.username"
  79. :value="item.id"></el-option>
  80. </el-select>
  81. </el-form-item>
  82. <el-form-item label="报名截止时间"
  83. prop='time'
  84. :rules="[{ required: true, message: '请输入报名截止时间'},]">
  85. <el-date-picker v-model="topFrom.time"
  86. style="width:100%!important"
  87. type="date"
  88. value-format="yyyy-MM-dd"
  89. placeholder="选择日期">
  90. </el-date-picker>
  91. </el-form-item>
  92. <el-form-item label="招生年级"
  93. prop='startClass'
  94. :rules="[{ required: true, message: '请选择招生年纪'},]">
  95. <el-select placeholder="起始年级"
  96. clearable
  97. multiple
  98. collapse-tags
  99. v-model="topFrom.startClass">
  100. <el-option value="1"
  101. label="一年级"></el-option>
  102. <el-option value="2"
  103. label="二年级"></el-option>
  104. <el-option value="3"
  105. label="三年级"></el-option>
  106. <el-option value="4"
  107. label="四年级"></el-option>
  108. <el-option value="5"
  109. label="五年级"></el-option>
  110. <el-option value="6"
  111. label="六年级"></el-option>
  112. <el-option value="7"
  113. label="初一"></el-option>
  114. <el-option value="8"
  115. label="初二"></el-option>
  116. <el-option value="9"
  117. label="初三"></el-option>
  118. <el-option value="10"
  119. label="高一"></el-option>
  120. <el-option value="11"
  121. label="高二"></el-option>
  122. <el-option value="12"
  123. label="高三"></el-option>
  124. </el-select>
  125. </el-form-item>
  126. <el-form-item label="课酬结算标准"
  127. :rules="[{ required: true, message: '请选择课酬结算标准'},]"
  128. prop="salary">
  129. <el-select v-model="topFrom.salary">
  130. <el-option label="默认课酬"
  131. value="TEACHER_DEFAULT"></el-option>
  132. <el-option label="3.0课酬"
  133. value="GRADIENT_SALARY"></el-option>
  134. <!-- <el-option label="课堂课酬"
  135. value="CLASSROOM_SALARY"></el-option> -->
  136. </el-select>
  137. </el-form-item>
  138. <el-form-item label=""
  139. prop="isClass">
  140. <el-checkbox v-model="topFrom.isClass">课堂课乐团</el-checkbox>
  141. </el-form-item>
  142. <el-form-item label="教学主任"
  143. v-if="activeTeam.length > 0"
  144. prop='head'>
  145. <el-select v-model="topFrom.head"
  146. clearable>
  147. <el-option v-for="(item,index) in teacherList"
  148. :key='index'
  149. :label="item.username"
  150. :value="item.id"></el-option>
  151. </el-select>
  152. </el-form-item>
  153. </el-form>
  154. <div class="checkList">
  155. <div class="head noMargin">课程组成形态:</div>
  156. <div class="checkRow">
  157. <el-checkbox label="乐团声部训练"
  158. v-model="checkList.soundInfo.ischeck"></el-checkbox>
  159. <div class="inputWrap">
  160. 单价: <input type="text"
  161. placeholder="请输入"
  162. v-model="checkList.soundInfo.value">
  163. </div>
  164. </div>
  165. <div class="checkRow">
  166. <el-checkbox label="乐团合奏训练"
  167. v-model="checkList.allInfo.ischeck"></el-checkbox>
  168. <div class="inputWrap">
  169. 单价: <input type="text"
  170. placeholder="请输入"
  171. v-model="checkList.allInfo.value">
  172. </div>
  173. </div>
  174. <div class="checkRow">
  175. <el-checkbox label="基础技能训练"
  176. v-model="checkList.baseInfo.ischeck"></el-checkbox>
  177. <div class="inputWrap">
  178. 单价: <input type="number"
  179. placeholder="请输入"
  180. v-model="checkList.baseInfo.value">
  181. </div>
  182. </div>
  183. <div class="checkRow">
  184. <el-checkbox label="假期集中训练"
  185. v-model="checkList.holidayInfo.ischeck"></el-checkbox>
  186. <div class="inputWrap">
  187. 单价: <input type="number"
  188. placeholder="请输入"
  189. v-model="checkList.holidayInfo.value">
  190. </div>
  191. </div>
  192. <div class="checkRow">
  193. <el-checkbox label="课程提示"
  194. class='classCheckBox'
  195. v-model="checkList.submit.ischeck"></el-checkbox>
  196. <div class="textWrap"
  197. v-if="checkList.submit.ischeck">
  198. <el-input type='textarea'
  199. :rows="1"
  200. style="width:500px"
  201. v-model="checkList.submit.value"></el-input>
  202. </div>
  203. </div>
  204. <div class="head noMargin">付费方式:</div>
  205. <div class="checkRow">
  206. <el-checkbox label="学校"
  207. class='classCheckBox'
  208. v-model="payList.school.ischeck"></el-checkbox>
  209. <div class="chioseList">
  210. <div class="chioseItem"
  211. :class="payList.school.chiose == 'ONE_OFF'?'active':''"
  212. @click="payList.school.chiose='ONE_OFF'">一次性</div>
  213. <div class="chioseItem"
  214. :class="payList.school.chiose == 'MONTHLY'?'active':''"
  215. @click="payList.school.chiose='MONTHLY'">一个月</div>
  216. <div class="chioseItem "
  217. :class="payList.school.chiose == 'TERM'?'active':''"
  218. @click="payList.school.chiose='TERM'">一学期</div>
  219. <div class="chioseItem"
  220. :class="payList.school.chiose == 'YEAR'?'active':''"
  221. @click="payList.school.chiose='YEAR'">一学年</div>
  222. </div>
  223. <div class="inputWrap">
  224. 预计收费: <input type="textarea"
  225. v-model="payList.school.price"
  226. placeholder="请输入">
  227. </div>
  228. <div class="inputWrap">
  229. 备注: <input type="textarea"
  230. v-model="payList.school.value"
  231. placeholder="请输入">
  232. </div>
  233. </div>
  234. <div class="checkRow">
  235. <el-checkbox label="公司"
  236. class='classCheckBox'
  237. v-model="payList.company.ischeck"></el-checkbox>
  238. <div class="chioseList">
  239. <div class="chioseItem"
  240. :class="payList.company.chiose == 'ONE_OFF'?'active':''"
  241. @click="payList.company.chiose='ONE_OFF'">一次性</div>
  242. <div class="chioseItem"
  243. :class="payList.company.chiose == 'MONTHLY'?'active':''"
  244. @click="payList.company.chiose='MONTHLY'">一个月</div>
  245. <div class="chioseItem "
  246. :class="payList.company.chiose == 'TERM'?'active':''"
  247. @click="payList.company.chiose='TERM'">一学期</div>
  248. <div class="chioseItem"
  249. :class="payList.company.chiose == 'YEAR'?'active':''"
  250. @click="payList.company.chiose='YEAR'">一学年</div>
  251. </div>
  252. <div class="inputWrap">
  253. 预计收费: <input type="textarea"
  254. placeholder="请输入"
  255. v-model="payList.company.price">
  256. </div>
  257. <div class="inputWrap">
  258. 备注: <input type="textarea"
  259. placeholder="请输入"
  260. v-model="payList.company.value">
  261. </div>
  262. </div>
  263. <div class="checkRow">
  264. <el-checkbox label="学员"
  265. class='classCheckBox'
  266. v-model="payList.student.ischeck"></el-checkbox>
  267. <div class="chioseList">
  268. <div class="chioseItem"
  269. :class="payList.student.chiose == 'ONE_OFF'?'active':''"
  270. @click="payList.student.chiose='ONE_OFF'">一次性</div>
  271. <div class="chioseItem"
  272. :class="payList.student.chiose == 'loop'?'active':''"
  273. @click="payList.student.chiose='loop'">周期循环</div>
  274. </div>
  275. </div>
  276. <p class="subTitle"
  277. v-if='payList.student.chiose == "loop"'>按月缴费时,将在所选月份的1号的前一周提醒用户缴费操作,单次的缴费金额为当前列表「预计收费」的设置金额</p>
  278. <div class="chioseWrap"
  279. v-if='payList.student.chiose == "loop"'>
  280. <p>请选择缴费月份:</p>
  281. <el-checkbox-group v-model="payList.chioseMonth"
  282. fill="#14928A"
  283. text-color='#474747'>
  284. <el-checkbox :label="1">一月</el-checkbox>
  285. <el-checkbox :label="2">二月</el-checkbox>
  286. <el-checkbox :label="3">三月</el-checkbox>
  287. <el-checkbox :label="4">四月</el-checkbox>
  288. <el-checkbox :label="5">五月</el-checkbox>
  289. <el-checkbox :label="6">六月</el-checkbox>
  290. <el-checkbox :label="7">七月</el-checkbox>
  291. <el-checkbox :label="8">八月</el-checkbox>
  292. <el-checkbox :label="9">九月</el-checkbox>
  293. <el-checkbox :label="10">十月</el-checkbox>
  294. <el-checkbox :label="11">十一月</el-checkbox>
  295. <el-checkbox :label="12">十二月</el-checkbox>
  296. </el-checkbox-group>
  297. </div>
  298. </div>
  299. </div>
  300. <div class="btnWrap">
  301. <div class="nextBtn"
  302. v-if="teamStatus=='乐团修改'"
  303. @click="resetSubmit">
  304. 修改
  305. </div>
  306. <!-- 审批或者草稿的下一步 -->
  307. <div class="nextBtn"
  308. @click="gotoNext(1)"
  309. v-if="teamStatus=='newTeam' || teamStatus=='teamDraft'">
  310. 下一步
  311. </div>
  312. <!-- 跨团调整的下一步 -->
  313. <div class="nextBtn"
  314. v-if="teamStatus=='teamList'"
  315. @click="gotoNext(2)">
  316. 下一步
  317. </div>
  318. </div>
  319. <!-- <div class="baseRight">
  320. <header>乐团注册</header>
  321. <div class="section">
  322. <h2 class="title line_bottom">课程</h2>
  323. <p class="indate line_bottom"
  324. key="indate-price">有效期至:2019年9月1号 <span>现价:¥580</span></p>
  325. <div class="options"
  326. key="class-list">
  327. <div class="option">
  328. <div class="0_hd"><i class="check_default check_active"></i></div>
  329. <div class="o_bd">乐团声部训练</div>
  330. </div>
  331. <div class="option">
  332. <div class="0_hd"><i class="check_default check_active"></i></div>
  333. <div class="o_bd">乐团合奏训练</div>
  334. </div>
  335. <div class="option">
  336. <div class="0_hd"><i class="check_default check_active"></i></div>
  337. <div class="o_bd">基础技能训练</div>
  338. </div>
  339. <div class="option">
  340. <div class="0_hd"><i class="check_default check_active"></i></div>
  341. <div class="o_bd">假期集中训练</div>
  342. </div>
  343. </div>
  344. <div class="coutInfo">
  345. <i class="trumpet_icon"></i>年度安排十个月训练,共计168课时,120元/课时,原价20160元,现仅支付560元/月(约合34.5元/课时)
  346. </div>
  347. <div class="buy">
  348. <div class="price">
  349. <p class="oldprice">
  350. <del class="text">原价</del>
  351. <del>{{ orderInfo.marketPrice }}¥</del>
  352. </p>
  353. <p class="now_price">
  354. <span class="text">仅需支付</span>
  355. <span>{{ orderInfo.referencePrice }}¥</span>
  356. </p>
  357. </div>
  358. <a>购买</a>
  359. </div>
  360. </div>
  361. </div> -->
  362. </div>
  363. </template>
  364. <script>
  365. import { getSection, getType, getCooperation, getTeacher, getAddress, getPayMaster, getPayStatus, getTeamBaseInfo, resetTeamBaseInfo } from '@/api/buildTeam'
  366. import { scrollTo } from '@/utils/scroll-to'
  367. import axios from 'axios'
  368. import store from '@/store'
  369. import qs from 'qs'
  370. export default {
  371. props: ['getTeamList'],
  372. data () {
  373. return {
  374. organId: store.getters.organ,
  375. topFrom: {
  376. type: '', // 收费类型
  377. section: '', //所属分部
  378. school: '', // 合作单位
  379. teacher: '', // 教务老师
  380. name: '', //乐团名称
  381. boss: '', // 运营主管
  382. time: '', // 报名截止时间
  383. startClass: [], // 招生年级起始
  384. address: '', // 教学地点
  385. salary: '', // 收费模式
  386. head: '',
  387. isClass: false, //是否为课堂课
  388. },
  389. checkList: {
  390. soundInfo: { // 声部
  391. ischeck: false,
  392. value: ''
  393. },
  394. allInfo: { // 合奏
  395. ischeck: false,
  396. value: ''
  397. },
  398. baseInfo: { // 基础
  399. ischeck: false,
  400. value: ''
  401. },
  402. holidayInfo: { // 假期
  403. ischeck: false,
  404. value: ''
  405. },
  406. submit: {
  407. ischeck: false,
  408. value: '年度安排个月共xxx课时,课时,原价xxx元,现价xxxx元/月(约 xxxx元/月 )'
  409. }
  410. }, // 选中的集合
  411. baseInfo: {},
  412. money: 580,
  413. orderInfo: {
  414. marketPrice: 0, // 原价总金额
  415. referencePrice: 0, // 现价总金额
  416. }, // 金额列表,金额计算
  417. sectionList: [], // 分部列表
  418. typeList: [], // 收费类型列表
  419. cooperationList: [], // 教学点列表
  420. teacherList: [], // 获取老师列表
  421. addList: [], // 教学地点列表
  422. payList: {
  423. school: {
  424. ischeck: false,
  425. value: '',
  426. price: '',
  427. chiose: ''
  428. },
  429. company: {
  430. ischeck: false,
  431. value: '',
  432. price: '',
  433. chiose: ''
  434. },
  435. student: {
  436. ischeck: true,
  437. chiose: 'loop'
  438. },
  439. chioseMonth: [], // 选中的月份
  440. },
  441. activeTeam: [],
  442. teamid: '',
  443. teamStatus: ''
  444. }
  445. },
  446. created () {
  447. // 分为3种 this.teamStatus
  448. // 1.resetTeam 乐团修改
  449. // 2. newTeam 新建乐团
  450. // 3.teamList 跨团修改
  451. // 4.teamDraft 乐团草稿
  452. let year = new Date().getFullYear();
  453. axios.post('/jiari/', qs.stringify({ d: year })).then(res => {
  454. // this.holidayList = Object.keys(res.data[year])
  455. })
  456. this.teamStatus = this.$route.query.type;
  457. // 传过来的乐团信息
  458. this.activeTeam = this.getTeamList;
  459. if (this.teamStatus == 'resetTeam' || this.teamStatus == 'teamDraft') {
  460. // 单团修改
  461. this.teamid = this.$route.query.id;
  462. getTeamBaseInfo({ musicGroupId: this.teamid }).then(res => {
  463. if (res.code == 200) {
  464. // 头部
  465. this.topFrom.name = res.data.musicGroup.name;
  466. this.topFrom.time = res.data.musicGroup.applyExpireDate;
  467. this.topFrom.type = res.data.musicGroup.chargeTypeId;
  468. this.topFrom.startClass = res.data.musicGroup.enrollClasses.split(',');
  469. this.topFrom.section = res.data.musicGroup.organId;
  470. this.topFrom.school = res.data.musicGroup.cooperationOrganId;
  471. this.topFrom.teacher = res.data.musicGroup.educationalTeacherId;
  472. this.topFrom.boss = res.data.musicGroup.teamTeacherId;
  473. this.topFrom.address = res.data.musicGroup.schoolId;
  474. this.topFrom.salary = res.data.musicGroup.settlementType;
  475. this.topFrom.head = res.data.musicGroup.directorUserId;
  476. this.topFrom.isClass = res.data.musicGroup.isClassroomLessons
  477. // 课程组成形式
  478. this.checkList = JSON.parse(res.data.musicGroup.courseForm);
  479. // 付费方式和周期
  480. for (let i in res.data.musicGroupPaymentEntities) {
  481. if (res.data.musicGroupPaymentEntities[i].name == '学校') {
  482. this.payList.school.ischeck = true;
  483. /**
  484. * value: '',
  485. price: '',
  486. chiose: ''
  487. */
  488. this.payList.school.value = res.data.musicGroupPaymentEntities[i].memo;
  489. this.payList.school.price = res.data.musicGroupPaymentEntities[i].amount;
  490. this.payList.school.chiose = res.data.musicGroupPaymentEntities[i].paymentMethod;
  491. }
  492. if (res.data.months.length > 0) {
  493. this.payList.student.ischeck = true;
  494. this.payList.student.chiose = 'loop'
  495. this.chioseMonth = res.data.months;
  496. console.log(this.chioseMonth)
  497. } else {
  498. this.payList.student.ischeck = true;
  499. this.payList.student.chiose = 'ONE_OFF'
  500. }
  501. }
  502. // 循环缴费月
  503. this.payList.chioseMonth = res.data.months;
  504. }
  505. })
  506. }
  507. },
  508. mounted () {
  509. // 1.获取各个选项卡的数据内容
  510. getSection({ 'delFlag': 0, 'rows': 1000 }).then(res => {
  511. if (res.code == 200) {
  512. this.sectionList = res.data.rows;
  513. }
  514. }).catch()
  515. // 2.获取收费类型选项卡
  516. getType({ 'rows': 1000, organId: this.organId }).then(res => {
  517. if (res.code == 200) {
  518. this.typeList = res.data.rows;
  519. }
  520. })
  521. // 3.获取合作单位选项卡
  522. getCooperation({ 'rows': 1000, organId: this.organId }).then(res => {
  523. if (res.code == 200) {
  524. this.cooperationList = res.data.rows;
  525. }
  526. })
  527. // 4.获取老师选项卡
  528. getTeacher({ 'rows': 1000, organId: this.organId }).then(res => {
  529. if (res.code == 200) {
  530. this.teacherList = res.data;
  531. }
  532. })
  533. // 5.获取教学地点选项卡
  534. getAddress({ 'rows': 1000, organId: this.organId }).then(res => {
  535. if (res.code == 200) {
  536. this.addList = res.data.rows;
  537. }
  538. })
  539. // 6.默认支付主体
  540. // getPayMaster({ 'rows': 1000 }).then(res => {
  541. // console.log(res);
  542. // if (res.code == 200) {
  543. // this.payList = res.data.map(item => {
  544. // let obj = {};
  545. // obj.id = item.id;
  546. // obj.ischios
  547. // })
  548. // }
  549. // })
  550. },
  551. methods: {
  552. gotoNext (num) {
  553. // 1.效验数据 判断是否数据正常=> 正常放入store存储
  554. // 不正常=> 进行效验提示
  555. this.$refs['topinfo'].validate((valid, object) => {
  556. if (!valid) {
  557. this.$message.error('请填写建团必要参数')
  558. } else {
  559. // 验证通过
  560. if (this.teamStatus == 'teamDraft') {
  561. // 获取数据提交
  562. this.resetSubmit();
  563. } else {
  564. this.$store.dispatch('topinfo', this.topFrom);
  565. this.$store.dispatch('checkinfo', this.checkList);
  566. this.$store.dispatch('getpayInfo', this.payList);
  567. this.$emit('chiosetab', num);
  568. }
  569. }
  570. })
  571. },
  572. resetSubmit () {
  573. this.$refs['topinfo'].validate((valid, object) => {
  574. if (!valid) {
  575. this.$message.error('请填写必要参数')
  576. } else {
  577. let status = null;
  578. // 1.resetTeam 乐团修改
  579. // 2. newTeam 新建乐团
  580. // 3.teamList 跨团修改
  581. // 4.teamDraft 乐团草稿
  582. switch (this.teamStatus) {
  583. case 'resetTeam': {
  584. status = 'PROGRESS'
  585. break
  586. }
  587. case 'newTeam': {
  588. status = null
  589. break
  590. }
  591. case 'teamList': {
  592. status = null
  593. break
  594. }
  595. case 'teamDraft': {
  596. status = 'DRAFT'
  597. break
  598. }
  599. }
  600. let obj = {};
  601. this.payList.student.chiose == 'loop' ? obj.months = this.payList.chioseMonth : obj.months = [];
  602. obj.musicGroup = {
  603. settlementType: this.topFrom.salary,
  604. applyExpireDate: this.topFrom.time + ' 00:00:01',
  605. chargeTypeId: this.topFrom.type,
  606. cooperationOrganId: this.topFrom.school,
  607. teamTeacherId: this.topFrom.boss,
  608. educationalTeacherId: this.topFrom.teacher,
  609. enrollClasses: this.topFrom.startClass.join(','),
  610. name: this.topFrom.name,
  611. organId: this.topFrom.section,
  612. // paymentMonths:obj.months 有待确认
  613. schoolId: this.topFrom.address,
  614. courseForm: JSON.stringify(this.checkfor),
  615. id: this.teamid,
  616. directorUserId: this.topFrom.head,
  617. isClassroomLessons: this.topFrom.isClass,
  618. status
  619. }
  620. obj.musicGroupPaymentEntities = []
  621. // 添加学校主体付费方式
  622. // console.log(this.payfor.company.ischeck)
  623. if (this.payList.school.ischeck) {
  624. obj.musicGroupPaymentEntities.push({
  625. 'amount': this.payList.school.price,
  626. 'memo': this.payList.school.value,
  627. 'paymentMethod': this.payList.school.chiose,
  628. 'name': '学校'
  629. })
  630. }
  631. // 添加公司主体付费方式
  632. if (this.payList.company.ischeck) {
  633. obj.musicGroupPaymentEntities.push({
  634. 'amount': this.payList.company.price,
  635. 'memo': this.payList.company.value,
  636. 'paymentMethod': this.payList.company.chiose,
  637. 'name': '公司'
  638. })
  639. }
  640. // 发请求
  641. resetTeamBaseInfo(obj).then(res => {
  642. if (res.code == 200) {
  643. this.$message.success('保存成功')
  644. if (this.teamStatus == 'teamDraft') {
  645. // 跳到第二页
  646. // 这里要删掉
  647. this.$store.dispatch('topinfo', this.topFrom);
  648. this.$store.dispatch('checkinfo', this.checkList);
  649. this.$store.dispatch('getpayInfo', this.payList);
  650. // 删掉结束
  651. this.$emit('chiosetab', 1);
  652. } else {
  653. this.$message.success('修改乐团成功')
  654. this.$router.push({ path: '/business/teamDetails', query: { id: this.teamid, name: this.topFrom.name } })
  655. }
  656. }
  657. })
  658. }
  659. })
  660. }
  661. },
  662. computed: {
  663. },
  664. }
  665. </script>
  666. <style lang="scss">
  667. .base-container {
  668. overflow: auto;
  669. // display: flex;
  670. // flex-direction: row;
  671. // justify-content: flex-start;
  672. // flex-wrap: nowrap;
  673. font-size: 14px;
  674. color: #444;
  675. // width: fill-available;
  676. .banseLeft {
  677. // width: 1050px;
  678. .head {
  679. height: 48px;
  680. line-height: 48px;
  681. background-color: #edeef0;
  682. font-size: 14px;
  683. font-weight: bold;
  684. color: #444;
  685. padding: 0 11px;
  686. margin-bottom: 20px;
  687. }
  688. .noMargin.head {
  689. margin-bottom: 0;
  690. }
  691. .num {
  692. padding: 15px 11px;
  693. }
  694. .checkRow {
  695. // width: 1050px;
  696. padding-left: 28px;
  697. display: flex;
  698. flex-direction: row;
  699. justify-content: flex-start;
  700. flex-wrap: nowrap;
  701. overflow: auto;
  702. .el-checkbox {
  703. line-height: 72px;
  704. }
  705. .inputWrap {
  706. line-height: 72px;
  707. font-size: 14px;
  708. color: #777;
  709. margin-left: 65px;
  710. input {
  711. border: none;
  712. width: 80px;
  713. margin-right: 10px;
  714. outline: none;
  715. }
  716. }
  717. .inputWrap.rightFirst {
  718. margin-left: 245px;
  719. }
  720. .textWrap {
  721. display: flex;
  722. flex-direction: row;
  723. justify-content: flex-start;
  724. font-size: 14px;
  725. color: #777;
  726. align-items: center;
  727. span {
  728. color: #f97215;
  729. }
  730. }
  731. .selectWrap {
  732. font-size: 14px;
  733. padding-top: 5px;
  734. margin-left: 100px;
  735. margin-right: 52px;
  736. .rowSelect {
  737. .el-input__inner {
  738. min-height: 69px;
  739. }
  740. }
  741. }
  742. .chioseList {
  743. display: flex;
  744. flex-direction: row;
  745. justify-content: flex-start;
  746. align-items: center;
  747. font-size: 14px;
  748. color: #777;
  749. margin-left: 64px;
  750. .chioseItem {
  751. width: 80px;
  752. height: 30px;
  753. border-radius: 15px;
  754. border: 1px solid #979797;
  755. margin-right: 10px;
  756. line-height: 30px;
  757. text-align: center;
  758. cursor: pointer;
  759. }
  760. .chioseItem.active {
  761. background-color: #14928a;
  762. border: 1px solid #14928a;
  763. color: #fff;
  764. }
  765. }
  766. // &:nth-child(even) {
  767. // background-color: #c6cbd4;
  768. // input {
  769. // background-color: #c6cbd4;
  770. // }
  771. // }
  772. }
  773. }
  774. .btnWrap {
  775. margin-top: 30px;
  776. }
  777. .el-checkbox__input.is-checked + .el-checkbox__label {
  778. color: #606266;
  779. }
  780. // .baseRight {
  781. // width: 375px;
  782. // margin-left: 25px;
  783. // header {
  784. // width: 375px;
  785. // height: 40px;
  786. // line-height: 40px;
  787. // color: #000;
  788. // font-size: 14px;
  789. // background: #fff;
  790. // box-shadow: 0px 1px 8px 0px rgba(0, 0, 0, 0.07);
  791. // text-align: center;
  792. // margin-bottom: 6px;
  793. // }
  794. // .section {
  795. // width: 375px;
  796. // padding: 16px 22px 10px;
  797. // background: #fff;
  798. // margin-bottom: 10px;
  799. // .line_bottom {
  800. // border-bottom: 1px solid #ededed;
  801. // }
  802. // > .title {
  803. // font-size: 20px;
  804. // line-height: 28px;
  805. // font-weight: bold;
  806. // }
  807. // .indate {
  808. // font-size: 12px;
  809. // padding: 5px 0;
  810. // display: flex;
  811. // justify-content: space-between;
  812. // span {
  813. // color: #fa101d;
  814. // }
  815. // }
  816. // .coutInfo {
  817. // font-size: 14px;
  818. // color: #f85043;
  819. // text-align: left;
  820. // border-top: 1px solid #ededed;
  821. // padding: 12px 0 0 25px;
  822. // margin-top: 10px;
  823. // position: relative;
  824. // .trumpet_icon {
  825. // width: 14px;
  826. // height: 12px;
  827. // background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAYCAYAAADpnJ2CAAAAAXNSR0IArs4c6QAAAyZJREFUSA21Vk1IVFEUPufOezNilJXQD2UQRERamWhBaUWOSS3U0SawdgZai2gR0aoQXPSDm3JRCbm0xZBjbkQZS0KDjKywDCIIkoKKEIkm35uZezr32X0jQ+bY2IU359xzzj3fPXe++4PwDy0W8JdKgjYCWOkzzWIM9X5NN42RbqCKoxOHl1nR2FVJ1MRgqGzxhCxg8VDp6TSRTpCKsQL+aitqjwPRKQ3mjCVygFPz2MGKQqvG/zxW56+c7ZsXkIJH1liB8hARdQPButmD59WR8mUCuqy6ynwd686OmpsN++XjLUiYrZ0g5E6SdJmAVri2FMWDnnIz3P8gxex07Rp/owS6jQij3h1lu7G5Oe5UOF1bcc5+MTRFlBiTEH/iflLe+htYKsh0oHwzBcpztd3bHWlHxPtEUMTFHFV2YdceOglStnLiZGV6xEIlwbBF+JQaqpa6Qw246OiUOKOkICnPus4MFYGik7m80Z6MXtCpfKHIGBN6kIm2x66tLBJM7q3amak0DbqEgD84eQNzwiUkE+Wmk1vGjwtmnydTID0eQ5EpLoDZTGvjr4b2absXzGdKlwC73FloZ6aSSTKocjC7kyu3Ku8D2xOAuOk/ANKEAwhivZKqYXt7jFdyAnl7LTrgDMTcv4sOyCddnlOVnKlU6dTYaPKS5hHg5IIO77nnnfTw0h1QPTTgjWv9MrGB97ki5zvh/JmuJzOFgv4cPm9rGO6TUVD6SGezhV2sdF7OEcEB49qRqbRi0MKVLEEBHXxu8i6YabzMpx1NGJ18OIjr2pG5pHqu7r13efY1ncsK+rfxvtzPW2LY29U3Krxd/Xe4c55PiKgO+meJsNeHVIIdPd/dHHFoUToitSnpsDQrHGn1FpbmoMcoEIJPA/0BNvFEJlVgOi0rPPAWwwPfdKy6nphE1c71tL3snrK796EOSpVUX7Xano628cBgqk/157oP1Y1PcTkChDEwzRJfqNfhyrz7EO/2fPaFI8dAiGqe3sc/gc5pI3wtPFCrwVTcvBXOTuY8on7GrqBMvms8wjhodvWl/YhaEKAG//1MvMHXUO5Cn4m/ACXBMJBwQaFpAAAAAElFTkSuQmCC)
  828. // no-repeat center;
  829. // background-size: contain;
  830. // position: absolute;
  831. // left: 0;
  832. // top: 14px;
  833. // }
  834. // }
  835. // }
  836. // .options {
  837. // padding-top: 8px;
  838. // .oc {
  839. // &:last-child {
  840. // border-top: 1px solid #ededed;
  841. // margin-top: 8px;
  842. // padding-top: 9px;
  843. // }
  844. // }
  845. // .protocol {
  846. // padding-left: 20px;
  847. // font-size: 10px;
  848. // line-height: 14px;
  849. // }
  850. // .option {
  851. // line-height: 26px;
  852. // font-size: 15px;
  853. // display: flex;
  854. // align-items: center;
  855. // position: relative;
  856. // .o_bd {
  857. // flex: 1;
  858. // .c {
  859. // font-size: 12px;
  860. // }
  861. // }
  862. // .o_ft {
  863. // font-size: 12px;
  864. // color: #fa101d;
  865. // del {
  866. // color: #aaaaaa;
  867. // font-size: 11px;
  868. // }
  869. // }
  870. // .check_default {
  871. // margin-right: 8px;
  872. // display: block;
  873. // width: 14px;
  874. // height: 14px;
  875. // background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABK0lEQVQ4T6WSP0vDQBjGn3MIiYX+CbhYG7BR7CL5ANmS2SWQ7H4DZ3ed/QbuOcjinGz5ANGloqmQ2i5CmhZqQgZPLjRQFYS2N9297/t73+fuHoK15bruASHkijF2AeB0lXohhDwwxu4cx/moy0m9oZRaAO5VVW0qioJ2u12lsixDkiSI43gB4NK2bY/HK5BDoihSXdf3Wq0WZrMZPpfLCtxvNNDpdDCfzxGG4VdRFDaHyUreq2maTUmS8DYaoSzL9RtAEAQc9/vI8xy+7y8YYyeEUnqjquq1pml4Hg7/QHUHDp8NBoiiiMu+5RMfDcM45wXv4/GPSb8PR71eFQqC4ImDuWVZ4nQyQZqm/4KyLOOw24XnecVO4HZSd3kc7pbNv2NrA+xkuRrexOTfqpPUy7sW3D4AAAAASUVORK5CYII=)
  876. // no-repeat center;
  877. // background-size: contain;
  878. // &.check_active {
  879. // background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABaUlEQVQ4T2NkQAKHPD1F2TmYChgZGHwZGBlUwVL/GW7/Z2DY/PPHvwl227e/hilnhDFOBXoHMbKxzhd18eATtnNg4FJQBEt9e3Cf4e2hAwyv9+z49P/X70Sz9VvXgcTBGkGa2EREVqtU1jFxSUgy/F+1geHf6bNgjUymxgyMYQEM3148Z7jT3vTv15s3oSDNjCDncfKx39Fs7+Xj+vWX4U9YAgPDo8fIPmBgkJNlYFm1gOEbGzPD9criT98//VRhPB3o2yrq5V0lFx3H8MfCBVMTzAiQ5hN7GB4tXcTwctvmNsZTgd6XNDt6dbmOn2X4W1CBahMaj3lCB8M3S2OG6xXFlxlPBXl/N16+juNfURXD/6Wr8GpkjA5jYOprYzgbGfSDAo1wp55j+FtQTsCpnQzfLI0gTiU7cMiODuwJYD3Dv9PnoAnAiIExLBAzAVCU5GCawc7mYCn4z/APJZEzMjBt/v7jD0oiBwAFDdbhAm8qEQAAAABJRU5ErkJggg==)
  880. // no-repeat center;
  881. // background-size: contain;
  882. // }
  883. // }
  884. // }
  885. // }
  886. // .configuration {
  887. // padding-right: 5px;
  888. // padding-bottom: 9px;
  889. // .title {
  890. // background: rgba(246, 246, 246, 1);
  891. // height: 1px;
  892. // position: relative;
  893. // margin: 15px 0;
  894. // span {
  895. // position: absolute;
  896. // left: 12px;
  897. // top: -9px;
  898. // display: inline-block;
  899. // background-color: #fff;
  900. // font-size: 10px;
  901. // padding: 0 4px;
  902. // }
  903. // }
  904. // .content {
  905. // font-size: 12px;
  906. // padding-left: 16px;
  907. // line-height: 22px;
  908. // color: #acacac;
  909. // }
  910. // .options {
  911. // padding-top: 0;
  912. // padding-left: 16px;
  913. // .option {
  914. // font-size: 14px;
  915. // color: #6f6f6f;
  916. // }
  917. // }
  918. // }
  919. // .buy {
  920. // margin-top: 200px;
  921. // bottom: 0;
  922. // left: 0;
  923. // right: 0;
  924. // height: 60px;
  925. // display: flex;
  926. // align-items: center;
  927. // padding: 0 20px;
  928. // border-top: 1px solid #ffe9e9e9;
  929. // color: #000000;
  930. // font-size: 12px;
  931. // background: #fff;
  932. // .price {
  933. // flex: 1;
  934. // font-size: 14px;
  935. // }
  936. // font-size: 14px;
  937. // span {
  938. // color: #fa101d;
  939. // }
  940. // .text {
  941. // font-size: 12px;
  942. // width: 60px;
  943. // display: inline-block;
  944. // color: #000;
  945. // }
  946. // del {
  947. // color: #b5b5b5;
  948. // &.text {
  949. // color: #b5b5b5;
  950. // }
  951. // }
  952. // a {
  953. // display: inline-block;
  954. // font-size: 18px;
  955. // color: #fff;
  956. // background: #f1111b;
  957. // border-radius: 4px;
  958. // box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.19);
  959. // padding: 8px 28px;
  960. // }
  961. // }
  962. // }
  963. .classCheckBox {
  964. margin-right: 10px;
  965. }
  966. }
  967. </style>