Browse Source

vip分部阶梯

lex-xin 5 years ago
parent
commit
2f12e24386

+ 9 - 0
src/api/systemManage.js

@@ -287,4 +287,13 @@ export function paymentConfigDel(data) {
     url: api + '/paymentConfig/del/' + data.id,
     method: 'post'
   })
+}
+
+// 根据分部查询老师
+export function findTeacherByOrganId(data) {
+  return request({
+    url: api + '/teacher/findTeacherByOrganId',
+    method: 'get',
+    params: data
+  })
 }

+ 78 - 9
src/views/categroyManager/insideSetting/branchActive.vue

@@ -8,7 +8,44 @@
            v-permission="'/branchActiveOperationAdd'"
            class='newBand'>新建</div>
       <!-- 搜索类型 -->
-
+      <el-form :inline="true"
+               class="searchForm"
+               @submit.native.prevent
+               v-model="searchForm">
+        <el-form-item>
+          <el-input type="text"
+                    v-model="searchForm.search"
+                    @keyup.enter.native='getList'
+                    placeholder="分部活动名"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-select v-model="searchForm.rewardMode" clearable placeholder="分部活动类型">
+            <el-option label="累计奖励" value="PER"></el-option>
+            <el-option label="阶梯奖励" value="STAIR"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select v-model="searchForm.teacherId" 
+                     clearable placeholder="适用老师">
+            <el-option v-for="item in teacherList"
+                       :key="item.value"
+                       :label="item.label"
+                       :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select v-model="searchForm.vipGroupCategoryId" clearable placeholder="课程类型">
+            <el-option v-for="item in vipGroupCategoryList"
+                       :key="item.value"
+                       :label="item.label"
+                       :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="getList"
+                     type="danger">搜索</el-button>
+        </el-form-item>
+      </el-form>
       <!-- 列表 -->
       <div class="tableWrap">
         <el-table :data='tableList'
@@ -25,8 +62,12 @@
             </template>
           </el-table-column>
           <el-table-column align='center'
-                           prop='organNameList'
-                           label="适用分部">
+                           prop='teacherNames'
+                           label="适用老师">
+          </el-table-column>
+          <el-table-column align='center'
+                           prop='vipGroupCategoryNameList'
+                           label="课程类型">
           </el-table-column>
           <el-table-column align='center'
                            label="操作"
@@ -51,17 +92,24 @@
 <script>
 import pagination from '@/components/Pagination/index'
 import { courseScheduleRewards } from '@/api/systemManage'
+import { vipGroupCategory } from "@/api/vipSeting"
+import { getTeacher } from '@/api/buildTeam'
 import store from '@/store'
 export default {
   components: { pagination },
   data () {
     return {
       searchForm: {
-        status: ''
+        search: null,
+        rewardMode: null,
+        vipGroupCategoryId: null,
+        teacherId: null,
       },
       organId: null,
       searchLsit: [],
       tableList: [],
+      vipGroupCategoryList: [],
+      teacherList: [],
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -82,14 +130,35 @@ export default {
   },
   mounted () {
     this.getList() // 获取列表数据
+    this.__init()
   },
   methods: {
+    async __init() {
+      let vipGroupCategoryList = await vipGroupCategory({ page:1, rows: 9999 })
+      if(vipGroupCategoryList.code == 200) {
+        vipGroupCategoryList.data.forEach(item => {
+          this.vipGroupCategoryList.push({
+            label: item.name,
+            value: item.id
+          })
+        })
+      }
+
+      let teacherList = await getTeacher()
+      if(teacherList.code == 200) {
+        teacherList.data.forEach(item => {
+          this.teacherList.push({
+            label: item.realName,
+            value: item.id
+          })
+        })
+      }
+    },
     getList () {
-      courseScheduleRewards({
-        organId: this.organId,
-        rows: this.pageInfo.limit,
-        page: this.pageInfo.page
-      }).then(res => {
+      let params = this.searchForm
+      params.rows = this.pageInfo.limit
+      params.page = this.pageInfo.page
+      courseScheduleRewards(params).then(res => {
         if (res.code == 200 && res.data) {
           this.tableList = res.data.rows
           this.pageInfo.total = res.data.total

+ 41 - 31
src/views/categroyManager/insideSetting/branchActiveOperation.vue

@@ -59,31 +59,31 @@
                      @click="addDomain(result)">新增梯度</el-button>
         </el-form-item>
 
-        <el-form-item prop="vipGroupCategoryIds"
+        <el-form-item prop="vipGroupCategoryIdList"
                       label="课程类型"
                       style="width: 500px">
           <el-select style="width: 100% !important;"
-                     v-model="result.vipGroupCategoryIds"
+                     v-model="result.vipGroupCategoryIdList"
                      multiple
                      placeholder="请选择">
             <el-option v-for="item in vipGroupCategoryList"
                        :key="item.value"
                        :label="item.label"
-                       :value="item.value"> </el-option>
+                       :value="item.value.toString()"> </el-option>
           </el-select>
         </el-form-item>
 
-        <el-form-item prop="organIdList"
-                      label="适用分部"
+        <el-form-item prop="organId"
+                      label="所属分部"
                       style="width: 500px">
           <el-select style="width: 100% !important;"
-                     v-model="result.organIdList"
-                     multiple
+                     @change="onBranchChange"
+                     v-model="result.organId"
                      placeholder="请选择">
             <el-option v-for="item in branchList"
                        :key="item.value"
                        :label="item.label"
-                       :value="item.value"> </el-option>
+                       :value="item.value.toString()"> </el-option>
           </el-select>
         </el-form-item>
 
@@ -94,10 +94,10 @@
                      v-model="result.teacherId"
                      multiple
                      placeholder="请选择">
-            <el-option v-for="item in branchList"
+            <el-option v-for="item in teacherList"
                        :key="item.value"
                        :label="item.label"
-                       :value="item.value"> </el-option>
+                       :value="item.value.toString()"> </el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
@@ -111,8 +111,8 @@
 </template>
 <script>
 import store from '@/store'
-import { branchQueryPage } from '@/api/specialSetting'
-import { courseScheduleRewardsQuery, getUserRole, courseScheduleRewardsAdd, courseScheduleRewardsUpdate } from '@/api/systemManage'
+import { getEmployeeOrgan } from '@/api/buildTeam'
+import { courseScheduleRewardsQuery, getUserRole, courseScheduleRewardsAdd, courseScheduleRewardsUpdate, findTeacherByOrganId } from '@/api/systemManage'
 import { vipGroupCategory } from "@/api/vipSeting"
 export default {
   data () {
@@ -122,13 +122,13 @@ export default {
       id: this.$route.query.id,
       pageInfo: this.$route.query.pageInfo,
       branchList: [],
-      useBranchId: [], // 使用的分部编号
+      teacherList: [], // 老师列表
       vipGroupCategoryList: [],
       result: {
         name: null,
         rewardMode: null,
-        vipGroupCategoryIds: null,
-        organIdList: null,
+        vipGroupCategoryIdList: null,
+        organId: null,
         teacherId: null,
         courseScheduleType: 'VIP',
         domains: [{
@@ -143,7 +143,9 @@ export default {
       rules: {
         name: [{ required: true, message: '请输入活动名称', trigger: 'blur' }],
         rewardMode: [{ required: true, message: '请选择活动类型', trigger: 'change' }],
-        organIdList: [{ type: 'array', required: true, message: '请选择适用分部', trigger: 'change' }]
+        vipGroupCategoryIdList: [{ type: 'array', required: true, message: '请选择课程类型', trigger: 'change' }],
+        organId: [{ required: true, message: '请选择所属分部', trigger: 'change' }],
+        teacherId: [{ type: 'array', required: true, message: '请选择老师', trigger: 'change' }]
       }
     }
   },
@@ -163,9 +165,9 @@ export default {
         })
       }
 
-      let branchList = await branchQueryPage({ delFlag: 0, rows: 9999 })
+      let branchList = await getEmployeeOrgan({ delFlag: 0, rows: 9999 })
       if (branchList.code == 200) {
-        branchList.data.rows.forEach(item => {
+        branchList.data.forEach(item => {
           let tempArr = {}
           tempArr = {
             label: item.name,
@@ -179,17 +181,14 @@ export default {
         let courseScheduleRewards = await courseScheduleRewardsQuery({ id: this.id })
         if (courseScheduleRewards.code == 200) {
           let data = courseScheduleRewards.data
-          let tempList = []
-          if (data.organIdList) {
-            data.organIdList.split(',').forEach(item => {
-              tempList.push(parseInt(item))
-            })
-          }
+          this.onBranchChange(data.organId)
           this.result = {
             id: data.id,
             name: data.name,
             rewardMode: data.rewardMode,
-            organIdList: tempList,
+            organId: data.organId,
+            vipGroupCategoryIdList: data.vipGroupCategoryIdList ? data.vipGroupCategoryIdList.split(',') : data.vipGroupCategoryIdList,
+            teacherId: data.teacherId ? data.teacherId.split(',') : data.teacherId,
             courseScheduleType: data.courseScheduleType,
             domains: data.rewardsRulesJson ?
               JSON.parse(data.rewardsRulesJson) : [{
@@ -203,22 +202,33 @@ export default {
           }
         }
       }
-
-
+    },
+    onBranchChange(value) {
+      findTeacherByOrganId({ organId: value }).then(res => {
+        if(res.code == 200) {
+          res.data.forEach(item => {
+            this.teacherList.push({
+              label: item.realName,
+              value: item.id
+            })
+          })
+        }
+      })
     },
     onSubmit (formName) {
       this.$refs[formName].validate((valid) => {
-        let result = this.result
+        let result = JSON.parse(JSON.stringify(this.result))
         this.addDomain(result, true)
         if (valid && !result.errorText) {
           let params = {
-            organIdList: result.organIdList.join(','),
+            organId: result.organId,
+            vipGroupCategoryIdList: result.vipGroupCategoryIdList.join(','),
+            teacherId: result.teacherId.join(','),
             courseScheduleType: result.courseScheduleType,
             rewardMode: result.rewardMode,
             rewardsRulesJson: JSON.stringify(result.domains),
             name: result.name
           }
-
           if (this.pageType == 'update') {
             params.id = result.id
             courseScheduleRewardsUpdate(params).then(res => {
@@ -251,7 +261,7 @@ export default {
       this.result = {
         name: null,
         rewardMode: null,
-        organIdList: [],
+        organId: [],
         courseScheduleType: 'VIP',
         domains: [{
           min: null,