teamBaseInfo.vue 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490
  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. label-width="120px"
  10. style="margin-left: 11px">
  11. <el-form-item label="收费类型"
  12. prop="type"
  13. :rules="[{ required: true, message: '收费类型不能为空' }]">
  14. <el-select v-model.trim="topFrom.type"
  15. filterable
  16. :disabled="basdisabled"
  17. clearable>
  18. <el-option v-for="(item, index) in typeList"
  19. :key="index"
  20. :label="item.name"
  21. :value="item.id"></el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="所属分部"
  25. prop="section"
  26. :rules="[{ required: true, message: '所属分部不能为空' }]">
  27. <el-select v-model.trim="topFrom.section"
  28. filterable
  29. :disabled="basdisabled"
  30. @change="changeSection"
  31. clearable>
  32. <el-option v-for="(item, index) in sectionList"
  33. :key="index"
  34. :label="item.name"
  35. :value="item.id"></el-option>
  36. </el-select>
  37. </el-form-item>
  38. <el-form-item label="合作单位"
  39. prop="school"
  40. :rules="[{ required: true, message: '合作单位不能为空' }]">
  41. <el-select v-model.trim="topFrom.school"
  42. :disabled="!topFrom.section || basdisabled"
  43. @change="chioseSchool"
  44. filterable
  45. clearable>
  46. <el-option v-for="(item, index) in cooperationList"
  47. :key="index"
  48. :label="item.name"
  49. :value="item.id"></el-option>
  50. </el-select>
  51. </el-form-item>
  52. <el-form-item label="教学地点"
  53. prop="address"
  54. :rules="[{ required: true, message: '教学地点不能为空' }]">
  55. <el-select v-model.trim="topFrom.address"
  56. filterable
  57. clearable
  58. :disabled="!topFrom.section || basdisabled">
  59. <el-option v-for="(item, index) in addList"
  60. :key="index"
  61. :label="item.name"
  62. :value="item.id"></el-option>
  63. </el-select>
  64. </el-form-item>
  65. <el-form-item label="乐团名称"
  66. prop="name"
  67. :rules="[{ required: true, message: '乐团名称不能为空' }]">
  68. <el-input placeholder="请输入乐团名称"
  69. v-model.trim="topFrom.name"
  70. :disabled="basdisabled"></el-input>
  71. </el-form-item>
  72. <el-form-item label="运营主管"
  73. prop="boss"
  74. :rules="[{ required: true, message: '运营主管不能为空' }]">
  75. <el-select v-model.trim="topFrom.boss"
  76. :disabled="!topFrom.section || basdisabled"
  77. filterable
  78. clearable>
  79. <el-option v-for="(item, index) in orgianList"
  80. :key="index"
  81. :label="item.realName"
  82. :value="item.id"></el-option>
  83. </el-select>
  84. </el-form-item>
  85. <el-form-item label="教务老师"
  86. prop="teacher"
  87. :rules="[{ required: true, message: '教务老师不能为空' }]">
  88. <el-select v-model.trim="topFrom.teacher"
  89. :disabled="!topFrom.section || basdisabled"
  90. filterable
  91. clearable>
  92. <el-option v-for="(item, index) in orgianList"
  93. :key="index"
  94. :label="item.realName"
  95. :value="item.id"></el-option>
  96. </el-select>
  97. </el-form-item>
  98. <el-form-item label="维修技师"
  99. prop="repairUserId">
  100. <el-select v-model.trim="topFrom.repairUserId"
  101. :disabled="!topFrom.section || basdisabled"
  102. filterable
  103. clearable>
  104. <el-option v-for="(item, index) in technician"
  105. :key="index"
  106. :label="item.userName"
  107. :value="item.userId"></el-option>
  108. </el-select>
  109. </el-form-item>
  110. <el-form-item label="报名截止时间"
  111. prop="time"
  112. :rules="[{ required: true, message: '请输入报名截止时间' }]">
  113. <el-date-picker v-model.trim="topFrom.time"
  114. :disabled="basdisabled"
  115. type="date"
  116. value-format="yyyy-MM-dd"
  117. :picker-options="{
  118. firstDayOfWeek: 1,
  119. }"
  120. placeholder="选择日期"></el-date-picker>
  121. </el-form-item>
  122. <el-form-item label="预计开团时间"
  123. prop="startTime"
  124. :rules="[{ required: true, message: '请输入预计开团时间' }]">
  125. <el-date-picker v-model.trim="topFrom.startTime"
  126. :disabled="basdisabled"
  127. type="date"
  128. value-format="yyyy-MM-dd"
  129. :picker-options="{
  130. firstDayOfWeek: 1,
  131. }"
  132. placeholder="选择日期"></el-date-picker>
  133. </el-form-item>
  134. <el-form-item label="缴费方式"
  135. prop="paymentPattern"
  136. :rules="[{ required: !isNotEditing(), message: '请选择缴费方式' }]">
  137. <el-select placeholder="缴费方式"
  138. :disabled="isNotEditing() || basdisabled"
  139. clearable
  140. @change="changePaymentPattern"
  141. filterable
  142. v-model.trim="topFrom.paymentPattern">
  143. <el-option :value="0"
  144. label="按月"></el-option>
  145. <el-option :value="1"
  146. label="按季"></el-option>
  147. <el-option :value="2"
  148. label="一次性"></el-option>
  149. </el-select>
  150. </el-form-item>
  151. <el-form-item label="缴费有效期开始"
  152. prop="paymentValidStartDate"
  153. :rules="[
  154. { required: !isNotEditing(), message: '请选择缴费有效期开始' },
  155. ]">
  156. <el-date-picker :disabled="isNotEditing() || basdisabled "
  157. v-model="topFrom.paymentValidStartDate"
  158. @change="changePaymentValidStartDate"
  159. placeholder="开始日期"
  160. :picker-options="beginDate(topFrom.time)">
  161. </el-date-picker>
  162. </el-form-item>
  163. <el-form-item label="缴费有效期结束"
  164. prop="paymentValidEndDate"
  165. :rules="[
  166. {
  167. required: !(isNotEditing() || topFrom.paymentPattern === 2),
  168. message: '请选择缴费有效期结束',
  169. },
  170. ]">
  171. <el-date-picker :disabled="
  172. isNotEditing() || topFrom.paymentPattern === 2 || basdisabled || !topFrom.paymentValidStartDate
  173. "
  174. v-model="topFrom.paymentValidEndDate"
  175. :picker-options="beginDate(topFrom.paymentValidStartDate)"
  176. placeholder="结束日期">
  177. </el-date-picker>
  178. </el-form-item>
  179. <el-form-item label="招生年级"
  180. v-if="basdisabled">
  181. <el-tooltip class="item"
  182. effect="dark"
  183. :content="startClassString"
  184. placement="top-start">
  185. <div style="width: 180px; overflow: hidden">
  186. {{ startClassString }}
  187. </div>
  188. </el-tooltip>
  189. </el-form-item>
  190. <el-form-item label="招生年级"
  191. v-else
  192. prop="startClass"
  193. :rules="[{ required: true, message: '请选择招生年纪' }]">
  194. <el-select placeholder="起始年级"
  195. clearable
  196. multiple
  197. collapse-tags
  198. filterable
  199. v-model.trim="topFrom.startClass">
  200. <el-option v-for="item in classStatus"
  201. :value="item.value"
  202. :label="item.label"
  203. :key="item.value"></el-option>
  204. </el-select>
  205. </el-form-item>
  206. <el-form-item label="课酬结算标准"
  207. :rules="[{ required: true, message: '请选择课酬结算标准' }]"
  208. prop="salary">
  209. <el-select v-model.trim="topFrom.salary"
  210. clearable
  211. :disabled="basdisabled"
  212. filterable>
  213. <el-option label="默认课酬"
  214. value="TEACHER_DEFAULT"></el-option>
  215. <el-option label="3.0课酬"
  216. value="GRADIENT_SALARY"></el-option>
  217. <!-- <el-option label="课堂课酬"
  218. value="CLASSROOM_SALARY"></el-option>-->
  219. </el-select>
  220. </el-form-item>
  221. <el-form-item label="机构类型"
  222. prop="ownershipType">
  223. <el-select v-model.trim="topFrom.ownershipType"
  224. :disabled="basdisabled">
  225. <el-option label="自有"
  226. value="OWN"></el-option>
  227. <el-option label="三方"
  228. value="COOPERATION"></el-option>
  229. <!-- <el-option label="租赁"
  230. value="LEASE"></el-option>-->
  231. </el-select>
  232. </el-form-item>
  233. <el-form-item label="乐队指导"
  234. v-if="teamStatus == 'resetTeam' || teamStatus == 'teamList'"
  235. prop="head">
  236. <el-select v-model.trim="topFrom.head"
  237. filterable
  238. clearable>
  239. <el-option v-for="(item, index) in orgianList"
  240. :key="index"
  241. :label="item.realName"
  242. :value="item.id"></el-option>
  243. </el-select>
  244. </el-form-item>
  245. <el-form-item label="乐团网管课"
  246. :rules="[{ required: true, message: '请选择是否排乐团网管课' }]"
  247. prop="feeType">
  248. <el-select v-model="topFrom.feeType"
  249. placeholder="是否排乐团网管课"
  250. :disabled="basdisabled"
  251. @change="changeFeeType">
  252. <el-option label="需要排一次线上课"
  253. value="ONLINE"></el-option>
  254. <el-option label="只排线下课"
  255. value="OFFLINE"></el-option>
  256. </el-select>
  257. </el-form-item>
  258. <el-form-item label
  259. prop="isClass">
  260. <el-checkbox v-model.trim="topFrom.isClass"
  261. :disabled="basdisabled">课堂课乐团</el-checkbox>
  262. </el-form-item>
  263. </el-form>
  264. <div class="checkList">
  265. <div class="head noMargin">乐团课程:</div>
  266. <div class="checkRow">
  267. <el-checkbox label="乐团声部训练"
  268. :disabled="basdisabled"
  269. v-model.trim="checkList.soundInfo.ischeck"></el-checkbox>
  270. <div class="inputWrap">
  271. 原价:
  272. <el-input type="text"
  273. placeholder="请输入"
  274. :disabled="basdisabled"
  275. v-model.trim="checkList.soundInfo.value" />
  276. </div>
  277. <!-- <div class="inputWrap">
  278. <el-checkbox v-model="checkList.soundInfo.checkBuy">是否可选择购买</el-checkbox>
  279. </div> -->
  280. </div>
  281. <div class="checkRow">
  282. <el-checkbox label="乐团合奏训练"
  283. :disabled="basdisabled"
  284. v-model.trim="checkList.allInfo.ischeck"></el-checkbox>
  285. <div class="inputWrap">
  286. 原价:
  287. <el-input type="text"
  288. placeholder="请输入"
  289. :disabled="basdisabled"
  290. v-model.trim="checkList.allInfo.value" />
  291. </div>
  292. <!-- <div class="inputWrap">
  293. <el-checkbox v-model="checkList.allInfo.checkBuy">是否可选择购买</el-checkbox>
  294. </div> -->
  295. </div>
  296. <div class="checkRow">
  297. <el-checkbox label="假期集中训练"
  298. :disabled="basdisabled"
  299. v-model.trim="checkList.holidayInfo.ischeck"></el-checkbox>
  300. <div class="inputWrap">
  301. 原价:
  302. <el-input type="number"
  303. @mousewheel.native.prevent
  304. :disabled="basdisabled"
  305. placeholder="请输入"
  306. v-model.trim="checkList.holidayInfo.value" />
  307. </div>
  308. <!-- <div class="inputWrap">
  309. <el-checkbox v-model="checkList.holidayInfo.checkBuy">是否可选择购买</el-checkbox>
  310. </div> -->
  311. </div>
  312. <div class="checkRow"
  313. v-if="checkList.networkInfo">
  314. <el-checkbox label="乐团云课堂"
  315. :disabled="basdisabled"
  316. v-model="checkList.networkInfo.ischeck"></el-checkbox>
  317. <div class="inputWrap">
  318. 原价:
  319. <el-input type="number"
  320. :disabled="basdisabled"
  321. @mousewheel.native.prevent
  322. placeholder="请输入"
  323. v-model.trim="checkList.networkInfo.value" />
  324. </div>
  325. <!-- <div class="inputWrap">
  326. <el-checkbox v-model="checkList.networkInfo.checkBuy">是否可选择购买</el-checkbox>
  327. </div> -->
  328. </div>
  329. <div class="checkRow">
  330. <el-checkbox label="网络基础训练"
  331. :disabled="basdisabled"
  332. v-model.trim="checkList.baseInfo.ischeck"></el-checkbox>
  333. <div class="inputWrap">
  334. 原价:
  335. <el-input type="number"
  336. :disabled="basdisabled"
  337. @mousewheel.native.prevent
  338. placeholder="请输入"
  339. v-model.trim="checkList.baseInfo.value" />
  340. </div>
  341. <!-- <div class="inputWrap">
  342. <el-checkbox v-model="checkList.baseInfo.checkBuy">是否可选择购买</el-checkbox>
  343. </div> -->
  344. </div>
  345. <div class="checkRow">
  346. <el-checkbox label="课程提示"
  347. :disabled="basdisabled"
  348. class="classCheckBox"
  349. v-model.trim="checkList.submit.ischeck"></el-checkbox>
  350. <div class="textWrap"
  351. v-if="checkList.submit.ischeck">
  352. <el-input type="textarea"
  353. :disabled="basdisabled"
  354. :rows="1"
  355. style="width: 500px"
  356. v-model.trim="checkList.submit.value"></el-input>
  357. </div>
  358. </div>
  359. <div class="head noMargin">新生专享:</div>
  360. <div class="checkRow"
  361. v-if="newStudentList.baseInfo">
  362. <el-checkbox label="网络基础训练"
  363. :disabled="basdisabled"
  364. v-model="newStudentList.baseInfo.ischeck"></el-checkbox>
  365. <div class="inputWrap">
  366. 原价:
  367. <el-input type="number"
  368. @mousewheel.native.prevent
  369. :disabled="basdisabled"
  370. placeholder="请输入"
  371. v-model.trim="newStudentList.baseInfo.nowValue" />
  372. </div>
  373. <div class="inputWrap">
  374. 现价:
  375. <el-input type="number"
  376. :disabled="basdisabled"
  377. @mousewheel.native.prevent
  378. placeholder="请输入"
  379. v-model.trim="newStudentList.baseInfo.value" />
  380. </div>
  381. <!-- <div class="inputWrap">
  382. <el-checkbox v-model="newStudentList.baseInfo.checkBuy">是否可选择购买</el-checkbox>
  383. </div> -->
  384. </div>
  385. <div class="head noMargin">付费方式:</div>
  386. <div class="checkRow">
  387. <el-checkbox label="学校"
  388. :disabled="basdisabled"
  389. class="classCheckBox"
  390. v-model.trim="payList.school.ischeck"></el-checkbox>
  391. <div class="chioseList">
  392. <el-radio-group v-model="payList.school.chiose"
  393. size="small">
  394. <el-radio-button label="ONE_OFF">一次性</el-radio-button>
  395. <el-radio-button label="MONTHLY">一个月</el-radio-button>
  396. <el-radio-button label="TERM">一学期</el-radio-button>
  397. <el-radio-button label="YEAR">一学年</el-radio-button>
  398. </el-radio-group>
  399. <!-- <el-tag :effect="payList.school.chiose == 'ONE_OFF' ? 'dark' : 'plain'"
  400. @click="!basdisabled ? (payList.school.chiose = 'ONE_OFF') : null">一次性</el-tag>
  401. <el-tag :effect="payList.school.chiose == 'MONTHLY' ? 'dark' : 'plain'"
  402. @click="!basdisabled ? (payList.school.chiose = 'MONTHLY') : null">一个月</el-tag>
  403. <el-tag :effect="payList.school.chiose == 'TERM' ? 'dark' : 'plain'"
  404. @click="!basdisabled ? (payList.school.chiose = 'TERM') : null">一学期</el-tag>
  405. <el-tag :effect="payList.school.chiose == 'YEAR' ? 'dark' : 'plain'"
  406. @click="!basdisabled ? (payList.school.chiose = 'YEAR') : null">一学年</el-tag> -->
  407. <!-- <div class="chioseItem"
  408. :class="">
  409. </div> -->
  410. <!-- <div class="chioseItem"
  411. :class="payList.school.chiose == 'MONTHLY' ? 'active' : ''"
  412. @click="!basdisabled ? (payList.school.chiose = 'MONTHLY') : null">
  413. 一个月
  414. </div>
  415. <div class="chioseItem"
  416. :class="payList.school.chiose == 'TERM' ? 'active' : ''"
  417. @click="!basdisabled ? (payList.school.chiose = 'TERM') : null">
  418. 一学期
  419. </div>
  420. <div class="chioseItem"
  421. :class="payList.school.chiose == 'YEAR' ? 'active' : ''"
  422. @click="!basdisabled ? (payList.school.chiose = 'YEAR') : null">
  423. 一学年
  424. </div> -->
  425. </div>
  426. <div class="inputWrap">
  427. <div>
  428. 预计收费:
  429. <el-input v-model.trim="payList.school.price"
  430. :disabled="basdisabled"
  431. placeholder="请输入" />
  432. </div>
  433. </div>
  434. <div class="inputWrap">
  435. <div>
  436. 备注:
  437. <el-input v-model.trim="payList.school.value"
  438. :disabled="basdisabled"
  439. placeholder="请输入" />
  440. </div>
  441. </div>
  442. </div>
  443. <div class="checkRow">
  444. <el-checkbox label="公司"
  445. class="classCheckBox"
  446. :disabled="basdisabled"
  447. v-model.trim="payList.company.ischeck"></el-checkbox>
  448. <div class="chioseList">
  449. <el-radio-group v-model="payList.company.chiose"
  450. size="small">
  451. <el-radio-button label="ONE_OFF">一次性</el-radio-button>
  452. <el-radio-button label="MONTHLY">一个月</el-radio-button>
  453. <el-radio-button label="TERM">一学期</el-radio-button>
  454. <el-radio-button label="YEAR">一学年</el-radio-button>
  455. </el-radio-group>
  456. <!-- <div class="chioseItem"
  457. :class="payList.company.chiose == 'ONE_OFF' ? 'active' : ''"
  458. @click="
  459. !basdisabled ? (payList.company.chiose = 'ONE_OFF') : null
  460. ">
  461. 一次性
  462. </div>
  463. <div class="chioseItem"
  464. :class="payList.company.chiose == 'MONTHLY' ? 'active' : ''"
  465. @click="
  466. !basdisabled ? (payList.company.chiose = 'MONTHLY') : null
  467. ">
  468. 一个月
  469. </div>
  470. <div class="chioseItem"
  471. :class="payList.company.chiose == 'TERM' ? 'active' : ''"
  472. @click="!basdisabled ? (payList.company.chiose = 'TERM') : null">
  473. 一学期
  474. </div>
  475. <div class="chioseItem"
  476. :class="payList.company.chiose == 'YEAR' ? 'active' : ''"
  477. @click="!basdisabled ? (payList.company.chiose = 'YEAR') : null">
  478. 一学年
  479. </div> -->
  480. </div>
  481. <div class="inputWrap">
  482. <div>
  483. 预计收费:
  484. <el-input placeholder="请输入"
  485. :disabled="basdisabled"
  486. v-model.trim="payList.company.price" />
  487. </div>
  488. </div>
  489. <div class="inputWrap">
  490. <div>
  491. 备注:
  492. <el-input placeholder="请输入"
  493. :disabled="basdisabled"
  494. v-model.trim="payList.company.value" />
  495. </div>
  496. </div>
  497. </div>
  498. </div>
  499. <div class="btnWrap">
  500. <div class="nextBtn"
  501. v-if="teamStatus == 'resetTeam'"
  502. v-permission="{
  503. child: 'musicGroup/update',
  504. parent: '/resetTeaming/teamBaseInfo',
  505. }"
  506. @click="resetSubmit">
  507. 修改
  508. </div>
  509. <!-- 审批或者草稿的下一步 -->
  510. <div class="nextBtn"
  511. @click="gotoNext(1)"
  512. v-if="
  513. teamStatus == 'newTeam' ||
  514. teamStatus == 'teamDraft' ||
  515. teamStatus == 'teamAudit'
  516. ">
  517. 下一步
  518. </div>
  519. <!-- 跨团调整的下一步 -->
  520. <div class="nextBtn"
  521. v-if="teamStatus == 'teamList'"
  522. @click="gotoNext(2)">
  523. 下一步
  524. </div>
  525. </div>
  526. </div>
  527. </div>
  528. </template>
  529. <script>
  530. import {
  531. getSection,
  532. getType,
  533. getCooperation,
  534. getTeacher,
  535. getAddress,
  536. getPayMaster,
  537. getPayStatus,
  538. getTeamBaseInfo,
  539. resetTeamBaseInfo,
  540. getEmployeeOrgan,
  541. } from "@/api/buildTeam";
  542. import { findTechnician } from "@/api/repairManager";
  543. import dayjs from 'dayjs'
  544. import {
  545. queryEmployByOrganId,
  546. queryByOrganId,
  547. getSchool,
  548. } from "@/api/systemManage";
  549. import { classStatus } from "@/utils/searchArray";
  550. import { scrollTo } from "@/utils/scroll-to";
  551. import axios from "axios";
  552. import store from "@/store";
  553. import numeral from "numeral";
  554. import { formatData } from "@/utils/utils";
  555. import qs from "qs";
  556. export default {
  557. name: "teamBaseInfo",
  558. props: ["getTeamList"],
  559. data () {
  560. return {
  561. classStatus,
  562. organId: null,
  563. topFrom: {
  564. type: "", // 收费类型
  565. section: "", //所属分部
  566. school: "", // 合作单位
  567. teacher: "", // 教务老师
  568. name: "", //乐团名称
  569. boss: "", // 运营主管
  570. time: "", // 报名截止时间
  571. startClass: [], // 招生年级起始
  572. address: "", // 教学地点
  573. salary: "", // 收费模式
  574. head: "",
  575. isClass: false, //是否为课堂课
  576. startTime: "",
  577. feeType: null,
  578. paymentPattern: "", // 缴费方式
  579. paymentValid: [], // 缴费有效期
  580. paymentValidStartDate: null, // 缴费有效期开始
  581. paymentValidEndDate: null, // 缴费有效期结束
  582. ownershipType: "OWN", // 合作机构类型
  583. repairUserId: null, // 维修技师
  584. },
  585. checkList: {
  586. soundInfo: {
  587. // 声部
  588. ischeck: false,
  589. value: "",
  590. checkBuy: false,
  591. isNew: 0,
  592. isStatus: false,
  593. },
  594. allInfo: {
  595. // 合奏
  596. ischeck: false,
  597. value: "",
  598. checkBuy: false,
  599. isNew: 0,
  600. isStatus: false,
  601. },
  602. baseInfo: {
  603. // 基础
  604. ischeck: false,
  605. value: "",
  606. checkBuy: false,
  607. isNew: 0,
  608. isStatus: false,
  609. },
  610. holidayInfo: {
  611. // 假期
  612. ischeck: false,
  613. value: "",
  614. checkBuy: false,
  615. isNew: 0,
  616. isStatus: false,
  617. },
  618. networkInfo: {
  619. ischeck: false,
  620. value: "",
  621. checkBuy: false,
  622. isNew: 0,
  623. isStatus: false,
  624. },
  625. submit: {
  626. ischeck: false,
  627. value:
  628. "年度安排个月共xxx课时,课时,原价xxx元,现价xxxx元/月(约 xxxx元/课时 )",
  629. },
  630. }, // 选中的集合
  631. newStudentList: {
  632. baseInfo: {
  633. ischeck: false,
  634. value: "",
  635. checkBuy: true,
  636. nowValue: "",
  637. isNew: 1,
  638. isStatus: false,
  639. },
  640. },
  641. baseInfo: {},
  642. money: 580,
  643. orderInfo: {
  644. marketPrice: 0, // 原价总金额
  645. referencePrice: 0, // 现价总金额
  646. }, // 金额列表,金额计算
  647. sectionList: [], // 分部列表
  648. typeList: [], // 收费类型列表
  649. cooperationList: [], // 教学点列表
  650. teacherList: [], // 获取老师列表
  651. addList: [], // 教学地点列表
  652. payList: {
  653. school: {
  654. ischeck: false,
  655. value: "",
  656. price: "",
  657. chiose: "",
  658. },
  659. company: {
  660. ischeck: false,
  661. value: "",
  662. price: "",
  663. chiose: "",
  664. },
  665. student: {
  666. ischeck: true,
  667. chiose: "loop",
  668. },
  669. chioseMonth: [], // 选中的月份
  670. },
  671. activeTeam: [],
  672. teamid: "",
  673. teamStatus: "",
  674. orgianList: [],
  675. isInit: false,
  676. technician: [],
  677. basdisabled: false,
  678. };
  679. },
  680. created () { },
  681. activated () {
  682. console.log(dayjs('2014-12-03').format('YYYY-MM-DD HH:mm:ss'))
  683. this.payList = {
  684. school: {
  685. ischeck: false,
  686. value: "",
  687. price: "",
  688. chiose: "",
  689. },
  690. company: {
  691. ischeck: false,
  692. value: "",
  693. price: "",
  694. chiose: "",
  695. },
  696. student: {
  697. ischeck: true,
  698. chiose: "loop",
  699. },
  700. chioseMonth: [], // 选中的月份
  701. };
  702. this.init();
  703. },
  704. mounted () {
  705. this.init();
  706. this.$forceUpdate()
  707. // 获取分部下的员工
  708. },
  709. beforeDestroy () { },
  710. methods: {
  711. isNotEditing: function () {
  712. return !(this.teamStatus === 'teamDraft' || this.teamStatus === 'teamAudit' || this.teamStatus === 'newTeam' || this.teamStatus === 'teamList')
  713. },
  714. changeFeeType (val) {
  715. // console.log(val == "ONLINE");
  716. },
  717. changePaymentValidStartDate (val) {
  718. if (val) {
  719. this.$set(this.topFrom, "paymentValidEndDate", "");
  720. }
  721. },
  722. changePaymentPattern (val) {
  723. if (val === 2) {
  724. // this.topFrom.paymentValidStartDate = null
  725. this.$set(this.topFrom, 'paymentValidEndDate', '')
  726. }
  727. },
  728. beginDate (end) {
  729. return {
  730. firstDayOfWeek: 1,
  731. disabledDate (time) {
  732. if (end) {
  733. return new Date(end).getTime() - 86400000 >= time.getTime();
  734. } else {
  735. return time.getTime() + 86400000 < Date.now();
  736. //开始时间不选时,结束时间最大值小于等于当天
  737. }
  738. },
  739. };
  740. },
  741. init () {
  742. (this.checkList = {
  743. soundInfo: {
  744. // 声部
  745. ischeck: false,
  746. value: "",
  747. checkBuy: false,
  748. isNew: 0,
  749. isStatus: false,
  750. },
  751. allInfo: {
  752. // 合奏
  753. ischeck: false,
  754. value: "",
  755. checkBuy: false,
  756. isNew: 0,
  757. isStatus: false,
  758. },
  759. baseInfo: {
  760. // 基础
  761. ischeck: false,
  762. value: "",
  763. checkBuy: false,
  764. isNew: 0,
  765. isStatus: false,
  766. },
  767. holidayInfo: {
  768. // 假期
  769. ischeck: false,
  770. value: "",
  771. checkBuy: false,
  772. isNew: 0,
  773. isStatus: false,
  774. },
  775. networkInfo: {
  776. ischeck: false,
  777. value: "",
  778. checkBuy: false,
  779. isNew: 0,
  780. isStatus: false,
  781. },
  782. submit: {
  783. ischeck: false,
  784. value:
  785. "年度安排个月共xxx课时,课时,原价xxx元,现价xxxx元/月(约 xxxx元/课时 )",
  786. },
  787. }),
  788. (this.newStudentList = {
  789. baseInfo: {
  790. // 基础
  791. ischeck: false,
  792. value: "",
  793. checkBuy: true,
  794. nowValue: "",
  795. isNew: 1,
  796. isStatus: false,
  797. },
  798. });
  799. this.isInit = true;
  800. // 分为3种 this.teamStatus
  801. // 1.resetTeam 乐团修改
  802. // 2. newTeam 新建乐团
  803. // 3.teamList 跨团修改
  804. // 4.teamDraft 乐团草稿
  805. this.teamStatus = this.$route.query.type;
  806. // 传过来的乐团信息
  807. this.activeTeam = this.getTeamList;
  808. if (this.teamStatus == "look") {
  809. this.basdisabled = true;
  810. } else {
  811. this.basdisabled = false;
  812. }
  813. if (
  814. this.teamStatus == "resetTeam" ||
  815. this.teamStatus == "teamDraft" ||
  816. this.teamStatus == "teamAudit" ||
  817. this.teamStatus == "look"
  818. ) {
  819. // 单团修改
  820. this.teamid = this.$route.query.id;
  821. getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
  822. if (res.code == 200) {
  823. // 头部
  824. this.topFrom.name = res.data.musicGroup.name;
  825. this.$emit("getName", this.topFrom.name);
  826. this.topFrom.time = res.data.musicGroup.applyExpireDate;
  827. this.topFrom.type = res.data.musicGroup.chargeTypeId;
  828. this.topFrom.startClass = res.data.musicGroup.enrollClasses.split(
  829. ","
  830. );
  831. this.topFrom.paymentPattern = res.data.musicGroup.paymentPattern;
  832. this.topFrom.paymentValidStartDate =
  833. res.data.musicGroup.paymentValidStartDate;
  834. this.topFrom.paymentValidEndDate =
  835. res.data.musicGroup.paymentValidEndDate;
  836. this.topFrom.section = res.data.musicGroup.organId;
  837. this.topFrom.school = res.data.musicGroup.cooperationOrganId;
  838. this.topFrom.teacher = res.data.musicGroup.educationalTeacherId;
  839. this.topFrom.boss = res.data.musicGroup.teamTeacherId;
  840. this.topFrom.address = res.data.musicGroup.schoolId;
  841. this.topFrom.salary = res.data.musicGroup.settlementType;
  842. this.topFrom.head = res.data.musicGroup.directorUserId ? res.data.musicGroup.directorUserId : null;
  843. this.topFrom.isClass = res.data.musicGroup.isClassroomLessons;
  844. this.topFrom.startTime = res.data.musicGroup.expectStartGroupDate;
  845. this.topFrom.ownershipType = res.data.musicGroup.ownershipType;
  846. this.topFrom.repairUserId = res.data.musicGroup.repairUserId
  847. ? res.data.musicGroup.repairUserId
  848. : null;
  849. this.topFrom.feeType = res.data.musicGroup.feeType
  850. ? res.data.musicGroup.feeType
  851. : null;
  852. // 课程组成形式
  853. this.checkList;
  854. let list = JSON.parse(res.data.musicGroup.courseForm);
  855. for (let i in this.checkList) {
  856. if (list[i] && !list[i].isNew) {
  857. this.checkList[i] = list[i];
  858. } else if (list[i] && list[i].isNew) {
  859. this.newStudentList[i] = list[i];
  860. this.newStudentList[i].checkBuy = true;
  861. }
  862. }
  863. // 付费方式和周期
  864. for (let i in res.data.musicGroupPaymentEntities) {
  865. if (res.data.musicGroupPaymentEntities[i].name == "学校") {
  866. this.payList.school.ischeck = true;
  867. this.payList.school.value =
  868. res.data.musicGroupPaymentEntities[i].memo;
  869. this.payList.school.price =
  870. res.data.musicGroupPaymentEntities[i].amount;
  871. this.payList.school.chiose =
  872. res.data.musicGroupPaymentEntities[i].paymentMethod;
  873. }
  874. if (res.data.musicGroupPaymentEntities[i].name == "公司") {
  875. this.payList.company.ischeck = true;
  876. this.payList.company.value =
  877. res.data.musicGroupPaymentEntities[i].memo;
  878. this.payList.company.price =
  879. res.data.musicGroupPaymentEntities[i].amount;
  880. this.payList.company.chiose =
  881. res.data.musicGroupPaymentEntities[i].paymentMethod;
  882. }
  883. if (res.data.months.length > 0) {
  884. this.payList.student.ischeck = true;
  885. this.payList.student.chiose = "loop";
  886. this.chioseMonth = res.data.months;
  887. } else {
  888. this.payList.student.ischeck = true;
  889. this.payList.student.chiose = "ONE_OFF";
  890. }
  891. }
  892. // 循环缴费月
  893. this.payList.chioseMonth = res.data.months;
  894. if (res.data.musicGroup.organId) {
  895. // 获取员工
  896. queryEmployByOrganId({
  897. organId: res.data.musicGroup.organId,
  898. rows: 1000,
  899. }).then((res) => {
  900. if (res.code == 200) {
  901. this.orgianList = res.data.rows;
  902. }
  903. });
  904. // 获取合作单位
  905. queryByOrganId({ organId: res.data.musicGroup.organId }).then(
  906. (res) => {
  907. if (res.code == 200) {
  908. this.cooperationList = res.data;
  909. }
  910. }
  911. );
  912. // 获取教学点
  913. getSchool({ organId: res.data.musicGroup.organId }).then(
  914. (res) => {
  915. if (res.code == 200) {
  916. this.addList = res.data;
  917. this.isInit = false;
  918. }
  919. }
  920. );
  921. // 获取维修技师
  922. findTechnician().then((res) => {
  923. if (res.code == 200) {
  924. this.technician = res.data;
  925. }
  926. });
  927. }
  928. }
  929. });
  930. } else {
  931. (this.topFrom = {
  932. type: "", // 收费类型
  933. section: "", //所属分部
  934. school: "", // 合作单位
  935. teacher: "", // 教务老师
  936. name: "", //乐团名称
  937. boss: "", // 运营主管
  938. time: "", // 报名截止时间
  939. startClass: [], // 招生年级起始
  940. paymentValid: [], // 缴费有效期时间起始
  941. address: "", // 教学地点
  942. salary: "", // 收费模式
  943. head: "",
  944. paymentPattern: "", // 缴费方式
  945. isClass: false, //是否为课堂课
  946. startTime: "",
  947. ownershipType: "OWN", // 合作机构类型
  948. feeType: null,
  949. }),
  950. this.$refs["topinfo"].resetFields();
  951. }
  952. // 1.获取各个选项卡的数据内容
  953. // getSection({ 'delFlag': 0, 'rows': 1000 }).then(res => {
  954. // if (res.code == 200) {
  955. // this.sectionList = res.data.rows;
  956. // }
  957. // }).catch()
  958. getEmployeeOrgan().then((res) => {
  959. if (res.code == 200) {
  960. this.sectionList = res.data;
  961. }
  962. });
  963. // 2.获取收费类型选项卡
  964. getType({ rows: 1000 }).then((res) => {
  965. if (res.code == 200) {
  966. this.typeList = res.data.rows;
  967. }
  968. });
  969. // 3.获取合作单位选项卡
  970. // getCooperation({ 'rows': 1000, search: this.organId }).then(res => {
  971. // if (res.code == 200) {
  972. // this.cooperationList = res.data.rows;
  973. // }
  974. // })
  975. // 4.获取老师选项卡
  976. // getTeacher({ 'rows': 1000, organId: this.organId }).then(res => {
  977. // if (res.code == 200) {
  978. // this.teacherList = res.data;
  979. // }
  980. // })
  981. // 5.获取教学地点选项卡
  982. // getAddress({ 'rows': 1000, }).then(res => {
  983. // if (res.code == 200) {
  984. // this.addList = res.data.rows;
  985. // }
  986. // })
  987. // 6.默认支付主体
  988. // getPayMaster({ 'rows': 1000 }).then(res => {
  989. // if (res.code == 200) {
  990. // this.payList = res.data.map(item => {
  991. // let obj = {};
  992. // obj.id = item.id;
  993. // obj.ischios
  994. // })
  995. // }
  996. // })
  997. // 缓存设置时的状态
  998. sessionStorage.setItem("resetCode", "1");
  999. },
  1000. changeSection (val) {
  1001. // 修改分部的时候 重置运营主管 重置教务老师 重置乐队指导 合作单位 教学点
  1002. this.topFrom.teacher = "";
  1003. this.topFrom.boss = "";
  1004. this.topFrom.head = "";
  1005. this.topFrom.school = "";
  1006. this.topFrom.address = "";
  1007. // 发请求 根据分部id 查询所有员工
  1008. queryEmployByOrganId({ organId: val, rows: 1000 }).then((res) => {
  1009. if (res.code == 200) {
  1010. this.orgianList = res.data.rows;
  1011. }
  1012. });
  1013. // 合作单位
  1014. queryByOrganId({ organId: val }).then((res) => {
  1015. if (res.code == 200) {
  1016. this.cooperationList = res.data;
  1017. }
  1018. });
  1019. // 教学点=>学校
  1020. getSchool({ organId: val }).then((res) => {
  1021. if (res.code == 200) {
  1022. this.addList = res.data;
  1023. }
  1024. });
  1025. // 获取维修技师
  1026. findTechnician().then((res) => {
  1027. if (res.code == 200) {
  1028. this.technician = res.data;
  1029. }
  1030. });
  1031. },
  1032. chioseSchool (val) { },
  1033. gotoNext (num) {
  1034. // 1.效验数据 判断是否数据正常=> 正常放入store存储
  1035. // 不正常=> 进行效验提示
  1036. let check = [];
  1037. for (let i in this.checkList) {
  1038. if (this.checkList[i] && i != "submit") {
  1039. check.push(this.checkList[i].ischeck);
  1040. }
  1041. }
  1042. let checkFlag = false;
  1043. check.forEach((item) => {
  1044. checkFlag = checkFlag || item;
  1045. });
  1046. if (!checkFlag) {
  1047. this.$message.error("请至少选择一种乐团课程类型");
  1048. return;
  1049. }
  1050. this.$refs["topinfo"].validate((valid, object) => {
  1051. if (!valid) {
  1052. this.$message.error("请填写建团必要参数");
  1053. } else {
  1054. // 判断一下是否勾选了课程类型而没有输入金额
  1055. let flagList = [];
  1056. for (let i in this.checkList) {
  1057. if (this.checkList[i].ischeck && !this.checkList[i].value) {
  1058. flagList.push(false);
  1059. } else {
  1060. flagList.push(true);
  1061. }
  1062. }
  1063. for (let i in this.newStudentList) {
  1064. if (
  1065. (this.newStudentList[i].ischeck &&
  1066. !this.newStudentList[i].value) ||
  1067. (this.newStudentList[i].ischeck &&
  1068. !this.newStudentList[i].nowValue)
  1069. ) {
  1070. flagList.push(false);
  1071. } else {
  1072. flagList.push(true);
  1073. }
  1074. }
  1075. let flag = flagList.every((item) => {
  1076. return item == true;
  1077. });
  1078. if (!flag) {
  1079. this.$message.error("课程价格不能为空");
  1080. return;
  1081. }
  1082. // 验证通过
  1083. this.$store.dispatch("topinfo", this.topFrom);
  1084. this.$store.dispatch("checkinfo", this.checkList);
  1085. this.$store.dispatch("getpayInfo", this.payList);
  1086. this.$store.dispatch("newStudentinfo", this.newStudentList);
  1087. if (this.teamStatus == "teamDraft") {
  1088. // 获取数据提交
  1089. this.resetSubmit();
  1090. } else {
  1091. // this.resetSubmit();
  1092. this.$emit("chiosetab", num);
  1093. }
  1094. }
  1095. });
  1096. },
  1097. resetSubmit () {
  1098. let check = [];
  1099. for (let i in this.checkList) {
  1100. if (this.checkList[i] && i != "submit") {
  1101. check.push(this.checkList[i].ischeck);
  1102. }
  1103. }
  1104. let checkFlag = false;
  1105. check.forEach((item) => {
  1106. checkFlag = checkFlag || item;
  1107. });
  1108. if (!checkFlag) {
  1109. this.$message.error("请至少选择一种乐团课程类型");
  1110. return;
  1111. }
  1112. this.$refs["topinfo"].validate((valid, object) => {
  1113. if (!valid) {
  1114. this.$message.error("请填写必要参数");
  1115. } else {
  1116. let flagList = [];
  1117. for (let i in this.checkList) {
  1118. if (this.checkList[i].ischeck && !this.checkList[i].value) {
  1119. flagList.push(false);
  1120. } else {
  1121. flagList.push(true);
  1122. }
  1123. }
  1124. for (let i in this.newStudentList) {
  1125. if (
  1126. (this.newStudentList[i].ischeck &&
  1127. !this.newStudentList[i].value) ||
  1128. (this.newStudentList[i].ischeck &&
  1129. !this.newStudentList[i].nowValue)
  1130. ) {
  1131. flagList.push(false);
  1132. } else {
  1133. flagList.push(true);
  1134. }
  1135. }
  1136. let flag = flagList.every((item) => {
  1137. return item == true;
  1138. });
  1139. if (!flag) {
  1140. this.$message.error("课程价格不能为空");
  1141. return;
  1142. }
  1143. let status = null;
  1144. // 1.resetTeam 乐团修改
  1145. // 2.newTeam 新建乐团
  1146. // 3.teamList 跨团修改
  1147. // 4.teamDraft 乐团草稿
  1148. switch (this.teamStatus) {
  1149. case "resetTeam": {
  1150. status = "PROGRESS";
  1151. break;
  1152. }
  1153. case "newTeam": {
  1154. status = null;
  1155. break;
  1156. }
  1157. case "teamList": {
  1158. status = null;
  1159. break;
  1160. }
  1161. case "teamDraft": {
  1162. status = "DRAFT";
  1163. break;
  1164. }
  1165. }
  1166. let obj = {};
  1167. // topFrom.ownershipType
  1168. // 修改 合并对象
  1169. let courseJson = {};
  1170. for (let i in this.checkList) {
  1171. if (this.checkList[i].ischeck) {
  1172. courseJson[i] = this.checkList[i];
  1173. }
  1174. }
  1175. for (let j in this.newStudentList) {
  1176. if (this.newStudentList[j].ischeck) {
  1177. courseJson[j] = this.newStudentList[j];
  1178. }
  1179. }
  1180. this.payList.student.chiose == "loop"
  1181. ? (obj.months = this.payList.chioseMonth)
  1182. : (obj.months = []);
  1183. obj.musicGroup = {
  1184. settlementType: this.topFrom.salary,
  1185. applyExpireDate: dayjs(this.topFrom.time).format('YYYY-MM-DD HH:mm:ss'),
  1186. chargeTypeId: this.topFrom.type,
  1187. cooperationOrganId: this.topFrom.school,
  1188. teamTeacherId: this.topFrom.boss,
  1189. educationalTeacherId: this.topFrom.teacher,
  1190. enrollClasses: this.topFrom.startClass.join(","),
  1191. name: this.topFrom.name,
  1192. paymentPattern: this.topFrom.paymentPattern,
  1193. paymentValidStartDate: this.topFrom.paymentValidStartDate
  1194. ? dayjs(this.topFrom.paymentValidStartDate).format("YYYY-MM-DD")
  1195. : this.topFrom.paymentValidStartDate,
  1196. paymentValidEndDate: this.topFrom.paymentValidEndDate
  1197. ? dayjs(this.topFrom.paymentValidEndDate).format("YYYY-MM-DD")
  1198. : this.topFrom.paymentValidEndDate,
  1199. organId: this.topFrom.section,
  1200. // paymentMonths:obj.months 有待确认
  1201. schoolId: this.topFrom.address,
  1202. courseForm: JSON.stringify(courseJson),
  1203. id: this.teamid,
  1204. directorUserId: this.topFrom.head,
  1205. isClassroomLessons: this.topFrom.isClass,
  1206. status,
  1207. expectStartGroupDate: this.topFrom.startTime,
  1208. ownershipType: this.topFrom.ownershipType,
  1209. repairUserId: this.topFrom.repairUserId || null,
  1210. feeType: this.topFrom.feeType,
  1211. };
  1212. obj.musicGroupPaymentEntities = [];
  1213. // 添加学校主体付费方式
  1214. if (this.payList.school.ischeck) {
  1215. obj.musicGroupPaymentEntities.push({
  1216. amount: this.payList.school.price,
  1217. memo: this.payList.school.value,
  1218. paymentMethod: this.payList.school.chiose,
  1219. name: "学校",
  1220. });
  1221. }
  1222. // 添加公司主体付费方式
  1223. if (this.payList.company.ischeck) {
  1224. obj.musicGroupPaymentEntities.push({
  1225. amount: this.payList.company.price,
  1226. memo: this.payList.company.value,
  1227. paymentMethod: this.payList.company.chiose,
  1228. name: "公司",
  1229. });
  1230. }
  1231. if (this.payList.student.ischeck) {
  1232. obj.musicGroupPaymentEntities.push({
  1233. paymentMethod: this.payList.student.chiose,
  1234. name: "学生",
  1235. });
  1236. }
  1237. // 发请求
  1238. resetTeamBaseInfo(obj).then((res) => {
  1239. if (res.code == 200) {
  1240. if (this.teamStatus == "teamDraft") {
  1241. this.$message.success("保存成功");
  1242. // 跳到第二页
  1243. // 删掉结束
  1244. this.$emit("chiosetab", 1);
  1245. } else {
  1246. this.$message.success("修改乐团成功");
  1247. // this.$router.push({ path: '/business/teamDetails', query: { id: this.teamid, name: this.topFrom.name } })
  1248. }
  1249. }
  1250. });
  1251. }
  1252. });
  1253. },
  1254. changeApplyTime (val) {
  1255. this.$set(this.topFrom, "paymentValidStartDate", "");
  1256. this.$set(this.topFrom, "paymentValidEndDate", "");
  1257. // this.topFrom.paymentValidStartDate = ''
  1258. // this.topFrom.paymentValidEndDate = ''
  1259. }
  1260. },
  1261. computed: {
  1262. startClassString () {
  1263. return this.topFrom.startClass
  1264. .map((item) => {
  1265. for (let i in this.classStatus) {
  1266. if (item == this.classStatus[i].value) {
  1267. return this.classStatus[i].label;
  1268. }
  1269. }
  1270. // return this.classStatus[item]
  1271. })
  1272. .join(",");
  1273. },
  1274. },
  1275. watch: {
  1276. newStudentList: {
  1277. handler: function (val) {
  1278. if (val.baseInfo.ischeck) {
  1279. this.checkList.baseInfo.ischeck = false;
  1280. }
  1281. },
  1282. deep: true,
  1283. },
  1284. checkList: {
  1285. handler: function (val) {
  1286. if (val.baseInfo.ischeck) {
  1287. this.newStudentList.baseInfo.ischeck = false;
  1288. }
  1289. },
  1290. deep: true,
  1291. },
  1292. },
  1293. };
  1294. </script>
  1295. <style lang="scss" >
  1296. .base-container {
  1297. overflow: auto;
  1298. // display: flex;
  1299. // flex-direction: row;
  1300. // justify-content: flex-start;
  1301. // flex-wrap: nowrap;
  1302. font-size: 14px;
  1303. color: #444;
  1304. // width: fill-available;
  1305. .banseLeft {
  1306. // width: 1050px;
  1307. .head {
  1308. height: 48px;
  1309. line-height: 48px;
  1310. background-color: #edeef0;
  1311. font-size: 14px;
  1312. font-weight: bold;
  1313. color: #444;
  1314. padding: 0 11px;
  1315. margin-bottom: 20px;
  1316. }
  1317. .noMargin.head {
  1318. margin-bottom: 0;
  1319. }
  1320. .num {
  1321. padding: 15px 11px;
  1322. }
  1323. .checkRow {
  1324. min-width: 1200px;
  1325. padding-left: 28px;
  1326. display: flex;
  1327. flex-direction: row;
  1328. justify-content: flex-start;
  1329. flex-wrap: nowrap;
  1330. overflow: auto;
  1331. .el-checkbox {
  1332. line-height: 72px;
  1333. width: 120px;
  1334. }
  1335. .inputWrap {
  1336. line-height: 72px;
  1337. font-size: 14px;
  1338. color: #777;
  1339. margin-left: 65px;
  1340. input {
  1341. // border: none;
  1342. // width: 80px;
  1343. // margin-right: 10px;
  1344. // outline: none;
  1345. }
  1346. }
  1347. .inputWrap.rightFirst {
  1348. margin-left: 245px;
  1349. }
  1350. .textWrap {
  1351. display: flex;
  1352. flex-direction: row;
  1353. justify-content: flex-start;
  1354. font-size: 14px;
  1355. color: #777;
  1356. align-items: center;
  1357. span {
  1358. color: #f97215;
  1359. }
  1360. }
  1361. .selectWrap {
  1362. font-size: 14px;
  1363. padding-top: 5px;
  1364. margin-left: 100px;
  1365. margin-right: 52px;
  1366. .rowSelect {
  1367. .el-input__inner {
  1368. min-height: 69px;
  1369. }
  1370. }
  1371. }
  1372. .chioseList {
  1373. display: flex;
  1374. flex-direction: row;
  1375. justify-content: flex-start;
  1376. align-items: center;
  1377. font-size: 14px;
  1378. color: #777;
  1379. margin-left: 64px;
  1380. .chioseItem {
  1381. width: 80px;
  1382. height: 30px;
  1383. border-radius: 15px;
  1384. border: 1px solid #979797;
  1385. margin-right: 10px;
  1386. line-height: 30px;
  1387. text-align: center;
  1388. cursor: pointer;
  1389. }
  1390. .chioseItem.active {
  1391. background-color: #14928a;
  1392. border: 1px solid #14928a;
  1393. color: #fff;
  1394. }
  1395. }
  1396. // &:nth-child(even) {
  1397. // background-color: #c6cbd4;
  1398. // input {
  1399. // background-color: #c6cbd4;
  1400. // }
  1401. // }
  1402. }
  1403. }
  1404. .btnWrap {
  1405. margin-top: 30px;
  1406. }
  1407. .el-checkbox__input.is-checked + .el-checkbox__label {
  1408. color: #606266;
  1409. }
  1410. .subTitle {
  1411. // width: 1203px;
  1412. height: 40px;
  1413. line-height: 40px;
  1414. background-color: #fefceb;
  1415. padding: 0 25px;
  1416. box-sizing: border-box;
  1417. font-size: 16px;
  1418. color: #474747;
  1419. margin-bottom: 20px;
  1420. }
  1421. .chioseWrap {
  1422. margin-bottom: 30px;
  1423. display: flex;
  1424. flex-direction: row;
  1425. padding: 0 25px;
  1426. p {
  1427. width: 80px;
  1428. font-size: 14px;
  1429. // margin-right: 30px;
  1430. }
  1431. }
  1432. .classCheckBox {
  1433. margin-right: 10px;
  1434. }
  1435. }
  1436. </style>
  1437. <style lang="scss" scoped>
  1438. /deep/.el-date-editor {
  1439. width: 180px !important;
  1440. }
  1441. /deep/.el-checkbox {
  1442. margin-left: 15px !important;
  1443. }
  1444. /deep/.el-input {
  1445. position: relative;
  1446. font-size: 14px;
  1447. display: inline-block;
  1448. width: 180px;
  1449. }
  1450. input[disabled] {
  1451. background-color: #fff;
  1452. border-color: #b3b3b3;
  1453. color: #606266;
  1454. }
  1455. /deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner {
  1456. background-color: rgb(19, 129, 122);
  1457. border-color: rgb(19, 129, 122);
  1458. // -webkit-box-shadow: -1px 0 0 0 rgb (19, 129, 122);
  1459. box-shadow: -1px 0 0 rgb(19, 129, 122);
  1460. color: #fff;
  1461. outline: none;
  1462. }
  1463. /deep/.el-radio-button__inner {
  1464. &:hover {
  1465. color: rgb(19, 129, 122);
  1466. }
  1467. outline: none;
  1468. }
  1469. /deep/.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled) {
  1470. -webkit-box-shadow: none;
  1471. box-shadow: none;
  1472. }
  1473. </style>