organOperation.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <!-- -->
  2. <template>
  3. <div class="m-container">
  4. <h2>
  5. <el-page-header @back="onCancel" :content="(payType == 'create' ? '新增机构' : '修改机构')"></el-page-header>
  6. </h2>
  7. <div class="m-core" style="overflow: hidden">
  8. <div style="display: block;overflow: hidden;">
  9. <el-col :span="8" :lg="10" :md="18" :sm="18" :xs="24">
  10. <el-steps :active="active" finish-status="success" simple align-center>
  11. <el-step title="机构信息" ></el-step>
  12. <el-step title="产品定价" ></el-step>
  13. <el-step title="确认设置" ></el-step>
  14. </el-steps>
  15. </el-col>
  16. </div>
  17. <!-- 机构基本信息 -->
  18. <organInfo ref="organInfo" v-show="active == 0" />
  19. <!-- 产品定价 确认设置 -->
  20. <div v-show="[1, 2].includes(active)">
  21. <openService ref="openService" :type="getType" />
  22. <memberSetting ref="memberSetting" :type="getType" />
  23. <roomRules ref="roomRules" :type="getType" />
  24. <rateSetting ref="rateSetting" :type="getType" />
  25. </div>
  26. <div style="padding-left: 120px;display: flex;width: 100%;">
  27. <el-button type="primary" size="small" v-if="active > 0" @click="active -= 1">上一步</el-button>
  28. <el-button type="primary" size="small" @click="onNext">{{ active >= 2 ? '提交' : '下一步' }}</el-button>
  29. </div>
  30. </div>
  31. </div>
  32. </template>
  33. <script>
  34. import organInfo from './components/organInfo'
  35. import openService from './components/openService'
  36. import memberSetting from './components/memberSetting'
  37. import roomRules from './components/roomRules'
  38. import rateSetting from './components/rateSetting'
  39. import { tenantInfoAdd } from './api'
  40. export default {
  41. name: 'serviceManger',
  42. components: { organInfo, openService, memberSetting, roomRules, rateSetting },
  43. data () {
  44. const query = this.$route.query
  45. return {
  46. payType: query.type,
  47. active: 0, // 当前第几步
  48. };
  49. },
  50. mounted () {
  51. },
  52. computed: {
  53. getType() {
  54. return this.active == 2 ? 'setting' : null
  55. }
  56. },
  57. methods: {
  58. async onNext() {
  59. if(this.active == 0) {
  60. const organStatus = await this.$refs.organInfo.onSubmit()
  61. console.log(organStatus)
  62. if(organStatus) {
  63. this.active += 1
  64. }
  65. } else if(this.active == 1) {
  66. const openStatus = await this.$refs.openService.onSubmit()
  67. const memberStatus = await this.$refs.memberSetting.onSubmit()
  68. const ruleStatus = await this.$refs.roomRules.onSubmit()
  69. const rateStatus = await this.$refs.rateSetting.onSubmit()
  70. console.log('验证中')
  71. if(openStatus && memberStatus && ruleStatus && rateStatus) {
  72. this.active += 1
  73. }
  74. } else if(this.active == 2) {
  75. // 处理提交
  76. const organData = await this.$refs.organInfo.getValues()
  77. const openData = await this.$refs.openService.getValues()
  78. const memberData = await this.$refs.memberSetting.getValues()
  79. const ruleData = await this.$refs.roomRules.getValues()
  80. const rateData = await this.$refs.rateSetting.getValues()
  81. const { member_config, teachingMaterialId } = memberData
  82. let config = {
  83. member_config,
  84. ruleData
  85. }
  86. let params = {
  87. ...organData,
  88. productInfo: openData,
  89. config: {
  90. config: JSON.stringify(config),
  91. teachingMaterialId: teachingMaterialId.join(','),
  92. ...rateData
  93. }
  94. }
  95. console.log(params)
  96. try {
  97. const res = await tenantInfoAdd(params)
  98. console.log(res)
  99. } catch(e) {}
  100. }
  101. },
  102. onCancel () {
  103. this.$store.dispatch('delVisitedViews', this.$route)
  104. this.$router.push({
  105. path: "/organManager/organList"
  106. });
  107. }
  108. },
  109. };
  110. </script>
  111. <style lang='scss' scoped>
  112. </style>