index.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. <template>
  2. <div class="m-container">
  3. <h2>
  4. <el-page-header @back="onCancel" :content="teamName"></el-page-header>
  5. </h2>
  6. <div class="m-core">
  7. <p class="msg" :class="team_status" v-if="team_status">
  8. <img :src="stepImgs[team_status]" alt="" />
  9. {{ musicGroupType[team_status] }}
  10. </p>
  11. <!-- navMenu -->
  12. <tab-router v-model="activeIndex" type="card" ref="tab">
  13. <!-- @tab-click="handleClick" -->
  14. <el-tab-pane
  15. label="基本信息"
  16. lazy
  17. v-if="permission('/teamBaseInfo')"
  18. name="1"
  19. >
  20. <!-- v-if="activeIndex == 'teamBaseInfo'" -->
  21. <teamBaseInfo
  22. v-if="activeIndex == '1'"
  23. @getBaseInfo="getBaseInfo"
  24. :baseInfo="baseInfo"
  25. @getName="getName"
  26. @handleClick="handleClick"
  27. />
  28. </el-tab-pane>
  29. <el-tab-pane
  30. label="声部设置"
  31. lazy
  32. v-if="permission('/teamSoundMoney')"
  33. name="2"
  34. :disabled="!teamid"
  35. >
  36. <resetSound v-if="activeIndex == '2'" />
  37. </el-tab-pane>
  38. <el-tab-pane
  39. lazy
  40. label="预报名信息"
  41. name="9"
  42. :disabled="!teamid"
  43. v-if="permission('/teamForecastName')"
  44. >
  45. <!-- v-if="
  46. team_status == 'PRE_APPLY' ||
  47. team_status == 'PRE_BUILD_FEE' ||
  48. team_status == 'FEE_AUDIT' ||
  49. team_status == 'APPLY'
  50. " -->
  51. <forecastName
  52. v-if="activeIndex == '9'"
  53. :isedit="team_status == 'PRE_APPLY'"
  54. />
  55. </el-tab-pane>
  56. <el-tab-pane
  57. lazy
  58. label="乐器清单"
  59. name="10"
  60. :disabled="!teamid"
  61. v-if="permission('/teamMusicList')"
  62. >
  63. <musicOrder v-if="activeIndex == '10'" />
  64. </el-tab-pane>
  65. <el-tab-pane
  66. label="老师列表"
  67. v-if="permission('/teamTeacherList')"
  68. name="4"
  69. :disabled="!teamid"
  70. >
  71. <teacherList :teamid="teamid" v-if="activeIndex == '4'" />
  72. </el-tab-pane>
  73. <el-tab-pane
  74. label="学生列表"
  75. v-if="permission('/teamStudentList')"
  76. name="7"
  77. :disabled="!teamid"
  78. >
  79. <studentList :teamid="teamid" v-if="activeIndex == '7'" />
  80. </el-tab-pane>
  81. <!-- teamRemainTime -->
  82. <el-tab-pane
  83. label="剩余时长"
  84. lazy
  85. v-if="permission('/teamRemainTime')"
  86. name="12"
  87. :disabled="!teamid"
  88. >
  89. <teamRemainTime
  90. v-if="activeIndex == '12' && musicGroupInfo"
  91. :musicGroupInfo="musicGroupInfo"
  92. />
  93. </el-tab-pane>
  94. <el-tab-pane
  95. label="班级列表"
  96. lazy
  97. v-if="permission('/teamClassListInfo')"
  98. name="5"
  99. :disabled="!teamid"
  100. >
  101. <resetClass
  102. v-if="activeIndex == '5' && musicGroupInfo"
  103. :musicGroupInfo="musicGroupInfo"
  104. />
  105. </el-tab-pane>
  106. <el-tab-pane
  107. label="课表详情"
  108. lazy
  109. v-if="permission('/teamCourseListInfo')"
  110. name="8"
  111. :disabled="!teamid"
  112. >
  113. <courseList v-if="activeIndex == '8'" :teamid="teamid" />
  114. </el-tab-pane>
  115. <el-tab-pane
  116. label="学员缴费设置"
  117. lazy
  118. v-if="permission('/teamStudentPayList')"
  119. name="3"
  120. :disabled="!teamid"
  121. >
  122. <resetPayList
  123. :baseInfo="baseInfo"
  124. v-if="activeIndex == '3' && baseInfo"
  125. @changeActive="handleClick"
  126. />
  127. </el-tab-pane>
  128. <el-tab-pane
  129. label="学校缴费设置"
  130. lazy
  131. v-if="permission('/teamSchoolPayList')"
  132. name="6"
  133. :disabled="!teamid"
  134. >
  135. <resetPayListSchool
  136. :baseInfo="baseInfo"
  137. v-if="activeIndex == '6' && baseInfo"
  138. @changeActive="handleClick"
  139. />
  140. </el-tab-pane>
  141. <!-- v-if="permission('/resetTeaming/coursePlan')" -->
  142. <el-tab-pane
  143. label="乐团日志"
  144. :disabled="!teamid"
  145. name="11"
  146. v-if="permission('/teamJournal')"
  147. >
  148. <teamJournal :teamid="teamid" v-if="activeIndex == 11" />
  149. </el-tab-pane>
  150. <!-- <el-tab-pane label="新增小班课"
  151. name="5">
  152. <improvement :teamid='teamid' />
  153. </el-tab-pane> 1-->
  154. <!-- 啦啦啦 -->
  155. </tab-router>
  156. </div>
  157. </div>
  158. </template>
  159. <script>
  160. import teamBaseInfo from "@/views/teamBuild/components/teamBaseInfo";
  161. // import resetSound from "@/views/resetTeaming/components/resetSoundv2";
  162. import resetSound from "@/views/teamBuild/components/teamSoundSet";
  163. import resetClass from "@/views/teamDetail/components/resetClass";
  164. // import coursePlan from '@/views/teamBuild/teamSeting/components/coursePlan'
  165. // import lookCourse from '@/views/teamBuild/teamSeting/components/lookCourse'
  166. // import improvement from '@/views/teamBuild/teamSeting/components/improvementClass'
  167. import resetPayList from "@/views/resetTeaming/components/resetPayList";
  168. import resetPayListSchool from "@/views/resetTeaming/components/resetPayListSchool";
  169. import studentPayBase from "@/views/resetTeaming/components/studentPayBase";
  170. import studentList from "@/views/teamDetail/components/studentList";
  171. import teacherList from "@/views/teamDetail/components/teacherList";
  172. import courseList from "@/views/teamDetail/components/courseList";
  173. import forecastName from "@/views/teamBuild/forecastName";
  174. import musicOrder from "@/views/teamDetail/teamDetailedList";
  175. import teamJournal from "@/views/teamBuild/components/teamJournal";
  176. import teamRemainTime from "@/views/teamBuild/components/teamRemainTime";
  177. import { permission } from "@/utils/directivePage";
  178. import { getTeamBaseInfo } from "@/api/buildTeam";
  179. import { musicGroupType } from "@/constant";
  180. export default {
  181. components: {
  182. teamBaseInfo,
  183. resetSound,
  184. resetClass,
  185. resetPayList,
  186. resetPayListSchool,
  187. studentPayBase,
  188. studentList,
  189. teacherList,
  190. courseList,
  191. forecastName,
  192. musicOrder,
  193. teamJournal,
  194. teamRemainTime,
  195. },
  196. name: "resetTeaming",
  197. data() {
  198. return {
  199. activeIndex: "1",
  200. teamid: "",
  201. baseInfo: null,
  202. // permissionStatus: {
  203. // teamBaseInfo: true,
  204. // resetSound: true,
  205. // resetClass: true,
  206. // resetSound: true,
  207. // coursePlan: true,
  208. // }
  209. name: null,
  210. teamName: "新建乐团",
  211. musicGroupInfo: null,
  212. musicGroupType,
  213. team_status: "",
  214. stepImgs: {
  215. AUDIT_FAILED: require("@/assets/images/base/end.png"),
  216. CANCELED: require("@/assets/images/base/end.png"),
  217. CLOSE: require("@/assets/images/base/end.png"),
  218. PAUSE: require("@/assets/images/base/end.png"),
  219. PROGRESS: require("@/assets/images/base/ing.png"),
  220. DRAFT: require("@/assets/images/base/ing.png"),
  221. AUDIT: require("@/assets/images/base/ing.png"),
  222. PRE_APPLY: require("@/assets/images/base/ing.png"),
  223. PRE_BUILD_FEE: require("@/assets/images/base/ing.png"),
  224. FEE_AUDIT: require("@/assets/images/base/ing.png"),
  225. APPLY: require("@/assets/images/base/clock.png"),
  226. PAY: require("@/assets/images/base/pay.png"),
  227. PREPARE: require("@/assets/images/base/ing.png"),
  228. },
  229. };
  230. },
  231. created() {
  232. // this.__init()
  233. },
  234. beforeDestroy() {
  235. // localStorage.setItem('setStep', 0)
  236. // localStorage.setItem('resetCode', 1)
  237. },
  238. mounted() {
  239. // let obj = {}
  240. // obj.name = this.activeIndex
  241. // console.log(this.activeIndex)
  242. // this.handleClick(obj)
  243. this.__init();
  244. },
  245. // activated () {
  246. // let obj = {}
  247. // obj.name = this.activeIndex
  248. // this.handleClick(obj)
  249. // this.__init()
  250. // },
  251. methods: {
  252. __init() {
  253. // this.activeIndex = localStorage.getItem('resetCode') || '1';
  254. this.teamid = this.$route.query.id;
  255. this.team_status = this.$route.query.team_status;
  256. if (this.$route.query.tabrouter != 1 && this.teamid) {
  257. getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
  258. if (res.code == 200) {
  259. this.getBaseInfo(res.data);
  260. }
  261. });
  262. }
  263. },
  264. onCancel() {
  265. this.$store.dispatch("delVisitedViews", this.$route);
  266. this.$router.push({ path: "/teamList" });
  267. },
  268. getBaseInfo(baseInfo) {
  269. this.baseInfo = baseInfo;
  270. this.teamName = baseInfo?.musicGroup?.name;
  271. this.musicGroupInfo = baseInfo?.musicGroup;
  272. },
  273. handleClick(val) {
  274. this.teamid = this.$route.query.id;
  275. // this.team_status = this.$route.query.team_status;
  276. // console.log('切换tab',val)
  277. this.$refs.tab.tab(val);
  278. // this.activeIndex = val.name;
  279. },
  280. permission(str) {
  281. return permission(str);
  282. },
  283. getName(val) {
  284. this.teamName = val;
  285. this.teamid = this.$route.query.id;
  286. },
  287. },
  288. };
  289. </script>
  290. <style lang="scss" scoped>
  291. // AUDIT_FAILED: require("@/assets/images/base/end.png"),
  292. // CANCELED: require("@/assets/images/base/end.png"),
  293. // CLOSE: require("@/assets/images/base/end.png"),
  294. // PAUSE: require("@/assets/images/base/end.png"),
  295. // PROGRESS: require("@/assets/images/base/ing.png"),
  296. // DRAFT: require("@/assets/images/base/ing.png"),
  297. // AUDIT: require("@/assets/images/base/ing.png"),
  298. // PRE_APPLY: require("@/assets/images/base/ing.png"),
  299. // PRE_BUILD_FEE: require("@/assets/images/base/ing.png"),
  300. // FEE_AUDIT: require("@/assets/images/base/ing.png"),
  301. // APPLYL: require("@/assets/images/base/clock.png"),
  302. // PAY: require("@/assets/images/base/pay.png"),
  303. // PREPARE: require("@/assets/images/base/ing.png"),
  304. .msg.PAY {
  305. color: #f85043;
  306. }
  307. .msg.APPLY {
  308. color: #f97215;
  309. }
  310. .msg.AUDIT_FAILED,
  311. .msg.CANCELED,
  312. .msg.CLOSE,
  313. .msg.PAUSE {
  314. color: #777;
  315. }
  316. .msg {
  317. color: #14928a;
  318. text-align: right;
  319. // color: #777;
  320. font-size: 32px;
  321. font-weight: bold;
  322. position: absolute;
  323. right: 40px;
  324. top: -55px;
  325. img {
  326. width: 36px;
  327. height: 36px;
  328. position: relative;
  329. top: 5px;
  330. margin-right: 8px;
  331. }
  332. }
  333. </style>