teamBaseInfo.vue 47 KB

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