Bläddra i källkod

02/22 21:12

提交测试
261568008@qq.com 5 år sedan
förälder
incheckning
c350a8bff3

+ 9 - 0
src/api/buildTeam.js

@@ -958,4 +958,13 @@ export function practiceCourseTeacherAdjust(data) {
     method: 'post',
     data: qs.stringify(data)
   })
+}
+
+// 清除考情记录
+export function cleanAttendance(data) {
+  return request({
+    url: api + '/courseSchedule/cleanAttendance',
+    method: 'post',
+    data: qs.stringify(data)
+  })
 }

+ 27 - 0
src/api/systemManage.js

@@ -296,4 +296,31 @@ export function findTeacherByOrganId(data) {
     method: 'get',
     params: data
   })
+}
+
+// 获取版本控制列表
+export function appVersionInfo(data) {
+  return request({
+    url: api + '/appVersionInfo/list',
+    method: 'get',
+    params: data
+  })
+}
+
+// 新增版本管理
+export function addAppVersionInfo(data) {
+  return request({
+    url: api + '/appVersionInfo/add',
+    method: 'post',
+    data: qs.stringify(data)
+  })
+}
+
+// 修改版本管理
+export function resetAppVersionInfo(data) {
+  return request({
+    url: api + '/appVersionInfo/update',
+    method: 'post',
+    data: qs.stringify(data)
+  })
 }

+ 18 - 0
src/api/teacherManager.js

@@ -179,3 +179,21 @@ export function resetTeacherFreeTime (data) {
      data:qs.stringify(data)
   })
 }
+
+// 查询默认网管课课酬 teacherDefaultPracticeGroupSalary/queryByTeacherId
+export function teacherDefaultPracticeGroupSalary (data) {
+  return request({
+    url: api + '/teacherDefaultPracticeGroupSalary/queryPageByTeacherId',
+    method: 'get',
+    params: data
+  })
+}
+
+// 修改网管课课酬
+export function PracticeGroupSalaryUpdate (data) {
+  return request({
+    url: api + '/teacherDefaultPracticeGroupSalary/update',
+    method: 'post',
+     data
+  })
+}

+ 3 - 1
src/router/index.js

@@ -241,6 +241,8 @@ export const asyncRoutes = {
   // 网管课列表
   accompanyList:()=> import('@/views/accompanyManager/accompanyList'),
   // 网管课详情
-  accompanys:()=> import('@/views/accompanyManager/accompanys')
+  accompanys:()=> import('@/views/accompanyManager/accompanys'),
+  // 版本控制
+  editionList:()=> import('@/views/editionManager/editionList')
 }
 export default router

+ 13 - 0
src/utils/vueFilter.js

@@ -360,4 +360,17 @@ Vue.filter('paymentChannelStatus', value => {
     BALANCE: "余额"
   }
   return template[value]
+})
+
+// edition
+Vue.filter('editionFilter', value => {
+  let template = {
+    'ios-teacher':'苹果-老师端',
+        'ios-student':'苹果-学生端',
+        'ios-education':'苹果-教务端',
+        'android-teacher':'安卓-老师端',
+        'android-student':'安卓-学生端',
+        'android-education':'安卓-教务端',
+  }
+  return template[value]
 })

+ 5 - 2
src/views/accompanyManager/accompanys.vue

@@ -230,7 +230,8 @@ export default {
       teacherForm: {
         teacher: null
       },
-      courseOption:null
+      courseOption:null,
+      coursesExpireDate:null
     };
   },
   created() {
@@ -333,6 +334,7 @@ export default {
       this.startTime = row.startClassTimeStr;
       // this.maskForm.endTime = row.endClassTimeStr;
       this.maskForm.id = row.id;
+      this.coursesExpireDate = row.coursesExpireDate;
       // 修改课时
       this.courseVisible = true;
     },
@@ -400,7 +402,8 @@ export default {
         disabledDate: time => {
           // if (self.leftForm.courseStart) {
             // let date = new Date(self.leftForm.courseStart.replace(/-/, "/"));
-            let date = new Date('2020-3-31'.replace(/-/, "/"))
+            // coursesExpireDate
+            let date = new Date(this.coursesExpireDate.replace(/-/, "/"))
             
             return time.getTime() > date.getTime();
           // }

+ 219 - 0
src/views/editionManager/editionList.vue

@@ -0,0 +1,219 @@
+<template>
+  <div class="m-container">
+    <h2>
+      <div class="squrt"></div>版本控制
+    </h2>
+    <div class="m-core">
+      <!--  v-permission="'cooperationOrgan/add'" -->
+      <div class="newBand" @click="createEdi">新建</div>
+      <div class="tableWrap">
+        <el-table :data="tableList" :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+          <el-table-column align="center" prop="id" label="编号"></el-table-column>
+          <el-table-column align="center" prop="platform" label="客户端">
+            <template slot-scope="scope">
+              <div>{{ scope.row.platform|editionFilter }}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="version" label="版本号"></el-table-column>
+          <el-table-column align="center" prop="isForceUpdate" label="强制更新">
+            <template slot-scope="scope">
+              <div>{{ scope.row.isForceUpdate?'是':'否'}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="status" label="状态">
+            <template slot-scope="scope">
+              <div>{{scope.row.status | statusFilter}}</div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="description" label="描述"></el-table-column>
+          <el-table-column align="center" prop="downloadUrl" label="下载链接"></el-table-column>
+          <el-table-column align="center" label="操作">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="text"@click="resetEdit(scope.row)">修改</el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          :total="rules.total"
+          :page.sync="rules.page"
+          :limit.sync="rules.limit"
+          :page-sizes="rules.page_size"
+          @pagination="getList"
+        />
+      </div>
+    </div>
+    <el-dialog title="版本修改" width="400px" :visible.sync="sectionVisible" :before-close="reserForm">
+      <el-form
+        :model="sectionForm"
+        ref="sectionForm"
+        :rules="sectionRules"
+        label-position="right"
+        label-width="80px"
+        :inline="true"
+      >
+      <el-form-item label="客户端" prop="platform" >
+        <el-select v-model="sectionForm.platform" clearable>
+          <el-option v-for="(item,index) in sectionList" :key="index" :label="item.label" :value="item.value"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="版本号" prop="version" v-if="isNew">
+        <el-input v-model.trim="sectionForm.version" type="number"  @mousewheel.native.prevent></el-input>
+      </el-form-item>
+      <el-form-item label="强制更新" prop="isForceUpdate">
+        <el-select clearable v-model="sectionForm.isForceUpdate">
+          <el-option label="是" :value="true"></el-option>
+          <el-option label="否" :value="false"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="状态" prop="status">
+           <el-select clearable v-model="sectionForm.status">
+          <el-option label="最新" value="newest"></el-option>
+          <el-option label="历史" value="history"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="下载链接" prop="downloadUrl">
+        <el-input v-model.trim="sectionForm.downloadUrl" type="textarea"></el-input>
+      </el-form-item>
+       <el-form-item label="描述" prop="description">
+         <el-input type="textarea" v-model="sectionForm.description"></el-input>
+       </el-form-item>
+      </el-form>
+        <div slot="footer" class="dialog-footer">
+        <el-button @click="sectionVisible = false">取 消</el-button>
+        <el-button v-if="isNew" type="primary" @click="createEdition">确 定</el-button>
+        <el-button v-if="!isNew" type="primary" @click="resetEdition">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { appVersionInfo,addAppVersionInfo,resetAppVersionInfo } from "@/api/systemManage";
+import pagination from "@/components/Pagination/index";
+export default {
+  components: {
+    pagination
+  },
+  data() {
+    return {
+      sectionVisible: false,
+      tableList: [],
+      rules: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      },
+      sectionList: [{value:'ios-teacher',label:'苹果-老师端'},
+      {value:'ios-student',label:'苹果-学生端'},{value:'ios-education',label:'苹果-教务端'},{value:'android-teacher',label:'安卓-老师端'},
+      {value:'android-student',label:'安卓-学生端'},{value:'android-education',label:'安卓-教务端'}],
+      sectionForm: {
+        platform:'',
+        version:'',
+        isForceUpdate:'',
+        downloadUrl:'',
+        status:'',
+        id:''
+      },
+      sectionRules: {
+         platform: [
+          { required: true, message: "请选择客户端", trigger: "blur" }
+        ],
+         version: [
+          { required: true, message: "请输入版本号", trigger: "blur" }
+        ],
+          isForceUpdate: [
+          { required: true, message: "请选择是否强更", trigger: "blur" }
+        ],
+        status: [
+          { required: true, message: "请选择版本状态", trigger: "blur" }
+        ],
+      },
+      isNew:false
+    };
+  },
+  activated() {
+    this.init();
+  },
+  created() {
+    this.init();
+  },
+  methods: {
+    init() {
+      this.getList();
+    },
+    getList() {
+      appVersionInfo().then(res => {
+        if (res.code == 200) {
+          this.tableList = res.data.rows;
+          this.rules.total = res.data.total;
+        }
+      });
+    },
+    createEdi(){
+      this.isNew = true;
+      this.sectionVisible = true;
+    },
+    createEdition(){
+      this.$refs.sectionForm.validate(v=>{
+        if(v){
+           addAppVersionInfo(this.sectionForm).then(res=>{
+        if(res.code == 200){
+          this.$message.success('新增成功')
+          this.sectionVisible = false;
+      
+          this.getList()
+        }
+      })
+        }
+      })
+     
+    },
+    resetEdit(row){
+       this.isNew = false;
+      //  console.log(row)
+       this.sectionForm =   row;
+       this.sectionVisible = true;
+    },
+    resetEdition(){
+      // 修改
+      resetAppVersionInfo(this.sectionForm).then(res=>{
+        if(res.code == 200){
+           this.$message.success('修改成功')
+          this.sectionVisible = false;
+      
+          this.getList()
+        }
+      })
+    },
+    reserForm(){
+      this.sectionForm = {
+        platform:'',
+        version:'',
+        isForceUpdate:'',
+        downloadUrl:'',
+        status:'',
+        id:''
+      }
+    this.$refs.sectionForm.resetFields();
+    this.sectionVisible = false;
+    }
+  },
+  filters: {
+    statusFilter(val) {
+      if (val == "newest") {
+        return "最新";
+      }
+      if (val == "history") {
+        return "历史";
+      }
+      return "";
+    }
+  }
+};
+</script>
+<style lang="sass">
+    
+</style>

+ 39 - 6
src/views/teacherManager/teacherOperation/components/salarySet.vue

@@ -104,6 +104,19 @@
 
           </el-table-column>
         </el-table>
+        <el-table  :data='accompanyTable'  style="width: 35%; margin-top: 15px;"  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+               <el-table-column label="网管课">
+            <template slot-scope="scope">
+              <el-input type="number"
+                        style="width:195px"
+                        @mousewheel.native.prevent
+                        v-model.trim="scope.row.mainTeacherSalary"
+                        placeholder="请输入内容">
+                <template slot="append">元/{{scope.row.minutes}}分钟</template>
+              </el-input>
+            </template>
+          </el-table-column>
+        </el-table>
 
         <el-form style="margin-top: 20px;">
           <el-form-item label="生效日期">
@@ -125,7 +138,7 @@
   </div>
 </template>
 <script>
-import { vipGroupSalaryList, vipGroupSalarySet, teacherSalaryList, teacherSalaryBatchUpset } from '@/api/teacherManager'
+import { vipGroupSalaryList, vipGroupSalarySet, teacherSalaryList, teacherSalaryBatchUpset,teacherDefaultPracticeGroupSalary,PracticeGroupSalaryUpdate } from '@/api/teacherManager'
 import { sysConfigList } from '@/api/generalSettings'
 import { findTeacherDefaultSalary } from '@/api/vipSeting'
 let nowTime = new Date()
@@ -191,7 +204,8 @@ export default {
       musicGroupTable: [],
       ruleList: [],
       vipList: [],
-      startDate: null
+      startDate: null,
+      accompanyTable:[{assistantTeacherSalary:30,minutes:25,userId:this.teacherId,mainTeacherSalary:null}]
     }
   },
   created () {
@@ -251,7 +265,12 @@ export default {
           this.teacherSalaryMoney(rows)
         }
       })
-
+      // 网管课
+      teacherDefaultPracticeGroupSalary({teacherId:this.teacherId}).then(res=>{
+        if(res.code == 200&&res.data){
+          this.accompanyTable = res.data;
+        }
+      })
     },
     vipListCompare (vipData, rows) { // vip 做对比
       if (!rows) { // 判断是否有数据
@@ -332,6 +351,12 @@ export default {
           checkStatus = false
         }
       })
+         this.accompanyTable.forEach(item => {
+        if (item.mainTeacherSalary < 0) {
+          this.$message('输入课酬不能为负数')
+          checkStatus = false
+        }
+      })
       // 判断输入的值是否正确
       if (!this.startDate) {
         this.$message.error('请填写生效日期')
@@ -354,10 +379,18 @@ export default {
               startDate: this.startDate
             }).then(res => {
               if (res.code == 200) {
-                this.$message.success('保存成功')
-
+                
+                PracticeGroupSalaryUpdate({
+                   startDate: this.startDate,
+                   teacherDefaultPracticeGroupSalaries:this.accompanyTable
+                }).then(res=>{
+                  if(res.code == 200){
+                    this.$message.success('保存成功')
+                     this.$router.push({ path: '/business/teacherList', query: { rules: this.Frules, search: this.Fsearch } })
+                  }
+                })
                 // if(this.$route.query.type == 'create') {
-                this.$router.push({ path: '/business/teacherList', query: { rules: this.Frules, search: this.Fsearch } })
+               
                 // }
               }
             })

+ 1 - 0
src/views/teacherManager/teacherOperation/components/teacherOperation.vue

@@ -663,6 +663,7 @@ export default {
       img {
         width: 150px;
         height: 150px;
+        object-fit: cover;
       }
     }
   }

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 518 - 426
src/views/teamDetail/components/courseList.vue


+ 1 - 0
vue.config.js

@@ -23,6 +23,7 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // let target = 'http://192.168.3.8:8000' //勇哥
 let target = 'http://admin.dayaedu.com' // 测试服
 // let target = 'http://192.168.3.48:8080' // 乔
+// let target = 'http://dyme.cn1.utools.club'// 乔家
 // let target = 'http://195s22s709.imwork.net/' // 邹璇家
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {

Vissa filer visades inte eftersom för många filer har ändrats