teamBaseInfo.vue 47 KB

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