lex-xin 4 år sedan
förälder
incheckning
dd268a49e1
32 ändrade filer med 571 tillägg och 315 borttagningar
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/css/app.50c8c958.css
  3. 0 0
      dist/static/css/app.e9492c7d.css
  4. 1 1
      dist/static/css/chunk-0cc36373.892c1348.css
  5. 0 0
      dist/static/css/chunk-1d51b9b4.42bfc92e.css
  6. 1 0
      dist/static/css/chunk-20a571ef.ea6b24f7.css
  7. 1 0
      dist/static/css/chunk-24b84bca.12313a1f.css
  8. 0 1
      dist/static/css/chunk-4588f2f6.cdce1471.css
  9. 0 1
      dist/static/css/chunk-70721e96.9e62143d.css
  10. 1 1
      dist/static/css/chunk-a899d89c.51838dc4.css
  11. 0 0
      dist/static/css/chunk-libs.5cf311f0.css
  12. 0 0
      dist/static/js/app.79a84cf6.js
  13. 0 0
      dist/static/js/chunk-0826bf59.45dada2f.js
  14. 0 0
      dist/static/js/chunk-0cc36373.9619b939.js
  15. 0 0
      dist/static/js/chunk-1d51b9b4.4d91dc68.js
  16. 0 0
      dist/static/js/chunk-20a571ef.9da54c7d.js
  17. 0 0
      dist/static/js/chunk-24b84bca.f38722da.js
  18. 0 0
      dist/static/js/chunk-3ef4c526.e427a172.js
  19. 0 0
      dist/static/js/chunk-4588f2f6.65085cdf.js
  20. 0 0
      dist/static/js/chunk-70721e96.662c13a2.js
  21. 0 0
      dist/static/js/chunk-7212fea1.1ab733d8.js
  22. 0 0
      dist/static/js/chunk-a899d89c.df43dbb0.js
  23. 0 0
      dist/static/js/chunk-libs.8930b02d.js
  24. 1 0
      package.json
  25. 3 1
      src/App.vue
  26. 5 2
      src/utils/request.js
  27. 135 27
      src/views/categroyManager/insideSetting/branchManager.vue
  28. 148 32
      src/views/reportForm/index.vue
  29. 263 238
      src/views/studentManager/studentList.vue
  30. 9 8
      src/views/teamDetail/components/studentList.vue
  31. 1 1
      src/views/vipClass/vipList.vue
  32. 2 2
      vue.config.js

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/index.html


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.50c8c958.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.e9492c7d.css


+ 1 - 1
dist/static/css/chunk-0826bf59.2d8ba49d.css → dist/static/css/chunk-0cc36373.892c1348.css

@@ -1 +1 @@
-.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.m-container[data-v-323e4114]{-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.newBand[data-v-323e4114]{display:inline-block}
+.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.m-container[data-v-b2bcd56e]{-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.newBand[data-v-b2bcd56e]{display:inline-block}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/chunk-1d51b9b4.42bfc92e.css


+ 1 - 0
dist/static/css/chunk-20a571ef.ea6b24f7.css

@@ -0,0 +1 @@
+.m-container .m-core[data-v-6b4bc0e4]{margin-top:20px}.m-container .m-core .m-wrap[data-v-6b4bc0e4]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.m-container .m-core .m-wrap .newBand[data-v-6b4bc0e4]{margin:0 5px 0 10px}.m-container .m-core .m-wrap .title[data-v-6b4bc0e4]{width:120px;height:40px;line-height:40px;text-align:right;color:#606266}.m-container .m-core .m-wrap .organSelect[data-v-6b4bc0e4]{width:220px!important}.m-container .m-core .m-wrap .el-tooltip.micon[data-v-6b4bc0e4]{width:20px;height:20px;position:relative;top:12px}[data-v-6b4bc0e4] .el-input__icon.el-icon-date{height:40px!important}

+ 1 - 0
dist/static/css/chunk-24b84bca.12313a1f.css

@@ -0,0 +1 @@
+.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.newBand[data-v-470f1c9f]{display:inline-block;margin-right:10px}.right-code .title[data-v-470f1c9f]{font-size:18px;text-align:center;padding-bottom:8px}[data-v-470f1c9f] .studentInfo .el-dialog__body{padding-top:0;padding-bottom:0}[data-v-470f1c9f] .studentInfo .multiple.el-select{width:185px!important}

+ 0 - 1
dist/static/css/chunk-4588f2f6.cdce1471.css

@@ -1 +0,0 @@
-.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.newBand[data-v-4ec01fac]{display:inline-block;margin-right:10px}.right-code .title[data-v-4ec01fac]{font-size:18px;text-align:center;padding-bottom:8px}[data-v-4ec01fac] .studentInfo .el-dialog__body{padding-top:0;padding-bottom:0}[data-v-4ec01fac] .studentInfo .multiple.el-select{width:185px!important}

+ 0 - 1
dist/static/css/chunk-70721e96.9e62143d.css

@@ -1 +0,0 @@
-.m-container .m-wrap[data-v-c124d984]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.m-container .m-wrap .newBand[data-v-c124d984]{margin:0 5px 0 10px}.m-container .m-wrap .el-tooltip.micon[data-v-c124d984]{width:20px;height:20px;position:relative;top:12px}[data-v-c124d984] .el-input__icon.el-icon-date{height:40px!important}

+ 1 - 1
dist/static/css/chunk-7212fea1.f612625a.css → dist/static/css/chunk-a899d89c.51838dc4.css

@@ -1 +1 @@
-.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.el-button--primary[data-v-0416a23e],.el-button--primary[data-v-0416a23e]:active,.el-button--primary[data-v-0416a23e]:focus,.el-button--primary[data-v-0416a23e]:hover{background:#14928a;border-color:#14928a;color:#fff}[data-v-0416a23e] .el-select{width:100%!important}.el-vue-search-box-container[data-v-0416a23e]{position:absolute!important;left:10px;margin-top:10px;z-index:99999!important}
+.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.el-button--primary[data-v-3a025426],.el-button--primary[data-v-3a025426]:active,.el-button--primary[data-v-3a025426]:focus,.el-button--primary[data-v-3a025426]:hover{background:#14928a;border-color:#14928a;color:#fff}[data-v-3a025426] .el-select{width:100%!important}.el-vue-search-box-container[data-v-3a025426]{position:absolute!important;left:10px;margin-top:10px;z-index:99999!important}

+ 0 - 0
dist/static/css/chunk-libs.3dfb7769.css → dist/static/css/chunk-libs.5cf311f0.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.79a84cf6.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-0826bf59.45dada2f.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-0cc36373.9619b939.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-1d51b9b4.4d91dc68.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-20a571ef.9da54c7d.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-24b84bca.f38722da.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-3ef4c526.e427a172.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-4588f2f6.65085cdf.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-70721e96.662c13a2.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-7212fea1.1ab733d8.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-a899d89c.df43dbb0.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/chunk-libs.8930b02d.js


+ 1 - 0
package.json

@@ -17,6 +17,7 @@
     "axios": "0.18.1",
     "browserslist": "^4.8.3",
     "caniuse-lite": "^1.0.30001021",
+    "clean-deep": "^3.3.0",
     "default-passive-events": "^1.0.10",
     "element-ui": "^2.12.0",
     "i": "^0.3.6",

+ 3 - 1
src/App.vue

@@ -116,7 +116,9 @@ input[type="number"] {
   cursor: pointer;
 }
 .newBand {
-  width: 100px;
+  min-width: 100px;
+  max-width: 120px;
+  padding: 0 10px;
   height: 36px;
   line-height: 36px;
   margin-bottom: 20px;

+ 5 - 2
src/utils/request.js

@@ -3,6 +3,7 @@ import axios from 'axios'
 import { Message } from 'element-ui'
 import store from '@/store'
 import { getToken } from '@/utils/auth'
+import cleanDeep from 'clean-deep'
 // import { Loading } from 'element-ui'
 import load from '@/utils/loading'
 import router from '@/router/index'
@@ -82,7 +83,7 @@ function tryHideFullScreenLoading () {
 const service = axios.create({
   baseURL: '', // url = base url + request url
   // withCredentials: true, // send cookies when cross-domain requests
-  timeout: 180000 // request timeout
+  timeout: 180000, // request timeout
 })
 // { fullscreen: true, text: '努力加载中', spinner: 'el-icon-loading' }
 // request interceptor
@@ -97,6 +98,8 @@ service.interceptors.request.use(
       config.headers['Authorization'] = getToken()
       // config.headers['content-type'] = "application/x-www-form-urlencoded"
     }
+    config.params = cleanDeep(config.params)
+    //  params: cleanDeep(options.params),
     return config
   },
   error => {
@@ -155,7 +158,7 @@ service.interceptors.response.use(
     }
   },
   error => {
-    if(error.message == 'Network Error') {
+    if (error.message == 'Network Error') {
       vue.$message.error('网络异常,请检查网络连接')
     } else {
       vue.$message.error(error.message)

+ 135 - 27
src/views/categroyManager/insideSetting/branchManager.vue

@@ -4,34 +4,47 @@
       <div class="squrt"></div>合作单位
     </h2>
     <div class="m-core">
-      <div @click="openTeaching('create')"
-           v-permission="'cooperationOrgan/add'"
-           class='newBand'>新建</div>
       <!-- 搜索类型 -->
-      <!-- <el-form :inline="true"
+      <el-form :inline="true"
                class="searchForm"
                v-model.trim="searchForm">
         <el-form-item>
-          <el-select v-model.trim="searchForm.status"
-                     placeholder="工作类型">
-            <el-option label="哈哈哈"
-                       value="1"></el-option>
+          <el-select v-model.trim="searchForm.organId"
+                     placeholder="请选择分部"
+                     filterable
+                     clearable>
+            <el-option v-for="item in userBranchList"
+                       :key="item.value"
+                       :label="item.label"
+                       :value="item.value"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-input suffix-icon="el-icon-search"
-                    placeholder="请输入搜索内容"></el-input>
+          <el-select v-model.trim="searchForm.isEnable"
+                     placeholder="请选择状态"
+                     filterable
+                     clearable>
+            <el-option label="开启"
+                       :value="true"></el-option>
+            <el-option label="关闭"
+                       :value="false"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="search"
+                     type="danger">搜索</el-button>
+          <el-button @click="onReSet"
+                     type="primary">重置</el-button>
+          <!-- export/isSettlementCourseSalarys  -->
+          <el-button @click="onExport"
+                     v-permission="'export/cooperationOrgan'"
+                     type="primary">导出</el-button>
         </el-form-item>
       </el-form>
-      <div class="searchWrap">
-        <p>查询条件:</p>
-        <div class="searchItem"
-             @click="closeSearch(item)"
-             v-for="(item,index) in searchLsit">
-          {{ item.key }}
-          <i class="el-icon-close"></i>
-        </div>
-      </div> -->
+      <div @click="openTeaching('create')"
+           v-permission="'cooperationOrgan/add'"
+           class='newBand'>新建</div>
+
       <!-- 列表 -->
       <div class="tableWrap">
         <el-table :data='tableList'
@@ -45,6 +58,15 @@
                            label="单位名称">
           </el-table-column>
           <el-table-column align='center'
+                           prop='name'
+                           label="所属分部">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.organization.name }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align='center'
                            prop='linkman'
                            label="联系人">
           </el-table-column>
@@ -56,6 +78,14 @@
                            prop='mobileNo'
                            label="手机号">
           </el-table-column>
+          <el-table-column align='center'
+                           label="状态">
+            <template slot-scope="scope">
+              <div>
+                {{scope.row.isEnable?'开启':'关闭'}}
+              </div>
+            </template>
+          </el-table-column>
           <!-- <el-table-column align='center' prop='ownershipType'
                            label="权属类型">
             <template slot-scope="scope">
@@ -108,6 +138,18 @@
                        :value="item.value"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="状态"
+                      prop="isEnable"
+                      :label-width="formLabelWidth">
+          <el-select v-model.trim="form.isEnable"
+                     filterable
+                     clearable>
+            <el-option label="开启"
+                       :value="true"></el-option>
+            <el-option label="关闭"
+                       :value="false"></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="联系人"
                       prop="linkman"
                       :label-width="formLabelWidth">
@@ -147,8 +189,12 @@
 import pagination from '@/components/Pagination/index'
 import { cooperationOrganAdd, cooperationOrganUpdate, cooperationOrganDel, queryPage } from '@/api/systemManage'
 import { getEmployeeOrgan } from '@/api/buildTeam'
+import cleanDeep from 'clean-deep'
 import store from '@/store'
 import { isvalidPhone } from '@/utils/validate'
+import { getToken } from "@/utils/auth";
+import qs from "qs";
+import axios from "axios";
 let validPhone = (rule, value, callback) => {
   if (!value) {
     callback(new Error('请输入电话号码'))
@@ -156,7 +202,7 @@ let validPhone = (rule, value, callback) => {
     callback(new Error('请输入正确的11位手机号码'))
   } else {
     callback()
-  } 
+  }
 }
 export default {
   name: 'branchManager',
@@ -164,7 +210,8 @@ export default {
   data () {
     return {
       searchForm: {
-        status: ''
+        organId: null,
+        isEnable: null
       },
       searchLsit: [],
       tableList: [],
@@ -196,9 +243,10 @@ export default {
         name: [{ required: true, message: '请输入教学点名称', trigger: 'blur' }],
         linkman: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
         job: [{ required: true, message: '请输入职位', trigger: 'blur' }],
-        mobileNo: [{ required: true, validator: validPhone, trigger: 'blur' },,{pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号',trigger: 'blur' }],
-        organId: [{ required: true, message: '请选择所属分部', trigger: 'change' }]
+        mobileNo: [{ required: true, validator: validPhone, trigger: 'blur' }, , { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }],
+        organId: [{ required: true, message: '请选择所属分部', trigger: 'change' }],
         // ownershipType: [{ required: true, message: '请选择权属类型', trigger: 'change' }]
+        isEnable: [{ required: true, message: '请选择状态', trigger: 'change' }]
       },
 
     }
@@ -237,6 +285,63 @@ export default {
       }).catch(() => { });
 
     },
+    search () {
+      this.pageInfo.page = 1;
+      this.getList()
+    },
+    onReSet () {
+      this.searchForm = {
+        organId: null,
+        isEnable: null
+      }
+      this.search()
+    },
+    onExport () {
+      let url = "/api-web/export/cooperationOrgan";
+
+      const options = {
+        method: "POST",
+        headers: {
+          Authorization: getToken()
+        },
+        data: qs.stringify(cleanDeep(this.searchForm)),
+        url,
+        responseType: "blob"
+      };
+      this.$confirm("您确定导出合作单位", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          axios(options).then(res => {
+            let blob = new Blob([res.data], {
+              // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
+              type: "application/vnd.ms-excel;charset=utf-8"
+              //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
+            });
+            let objectUrl = URL.createObjectURL(blob);
+            let link = document.createElement("a");
+            let nowTime = new Date();
+            let ymd =
+              nowTime.getFullYear() +
+              "" +
+              (nowTime.getMonth() + 1) +
+              "" +
+              nowTime.getDate() +
+              "" +
+              nowTime.getHours() +
+              "" +
+              nowTime.getMinutes();
+            let fname = +ymd + "合作单位"; //下载文件的名字
+            link.href = objectUrl;
+            link.setAttribute("download", fname);
+            document.body.appendChild(link);
+            link.click();
+          });
+        })
+        .catch(() => { });
+    },
     onTeachingSubmit (formName) { // 添加数据
       this.$refs[formName].validate((valid) => {
         if (valid) {
@@ -246,7 +351,7 @@ export default {
             }
             cooperationOrganAdd(this.form).then(res => {
               if (res.code == 200) {
-                this.$message.success('修改成功')
+                this.$message.success('创建成功')
                 this.teachingStatus = false
                 this.getList()
               } else {
@@ -272,7 +377,8 @@ export default {
     getList () {
       queryPage({
         rows: this.pageInfo.limit,
-        page: this.pageInfo.page
+        page: this.pageInfo.page,
+        ...this.searchForm
       }).then(res => {
         if (res.code == 200 && res.data) {
           this.tableList = res.data.rows
@@ -293,7 +399,8 @@ export default {
           job: rows.job,  // 费用
           mobileNo: rows.mobileNo ? rows.mobileNo : null,
           ownershipType: rows.ownershipType,
-          organId: rows.organId
+          organId: rows.organId,
+          isEnable: rows.isEnable
         }
       }
     },
@@ -306,7 +413,8 @@ export default {
         job: null,  // 费用
         mobileNo: null,
         // ownershipType: null,
-        organId: null
+        organId: null,
+        isEnable: null
       }
       this.$refs[formName].resetFields()
     }

+ 148 - 32
src/views/reportForm/index.vue

@@ -5,22 +5,61 @@
     </h2>
     <div class="m-core">
       <div class="m-wrap">
-        <el-date-picker v-model="mouth" type="month" placeholder="选择月" value-format="yyyy-MM-dd"></el-date-picker>
+        <div class="title">课酬导出:</div>
+        <el-date-picker v-model="mouth"
+                        type="month"
+                        placeholder="选择月"
+                        value-format="yyyy-MM-dd"></el-date-picker>
 
-        <div class="newBand" @click="exportSalar" v-permission="'export/teacherSalary'">导出课酬</div>
-        <el-tooltip placement="top" popper-class="mTooltip">
+        <div class="newBand"
+             @click="exportSalar"
+             v-permission="'export/teacherSalary'">导出</div>
+        <el-tooltip placement="top"
+                    popper-class="mTooltip">
           <div slot="content">
             将只导出当前选择月份已结算的课程课酬。
           </div>
           <!-- <img :src="imageIcon" class="micon el-tooltip" style="width:8px height:8px" alt /> -->
-          <i class="el-icon-question micon el-tooltip" style="font-size: 18px; color: #F56C6C"></i>
+          <i class="el-icon-question micon el-tooltip"
+             style="font-size: 18px; color: #F56C6C"></i>
         </el-tooltip>
       </div>
+      <el-divider></el-divider>
+      <div class="m-core">
+        <div class="m-wrap">
+          <div class="title">乐团招生汇总:
+          </div>
+          <el-select v-model.trim="organIdList"
+                     class="organSelect"
+                     style="width:100%"
+                     filterable
+                     multiple
+                     clearable>
+            <el-option v-for="(item,index) in organList"
+                       :key="index"
+                       :label="item.name"
+                       :value="item.id"></el-option>
+          </el-select>
+
+          <div class="newBand"
+               @click="exportMusicGroup"
+               v-permission="'export/musicGroupRegister'">导出</div>
+          <el-tooltip placement="top"
+                      popper-class="mTooltip">
+            <div slot="content">
+              请选择分部后,导出招生情况汇总表,分部可多选
+            </div>
+            <i class="el-icon-question micon el-tooltip"
+               style="font-size: 18px; color: #F56C6C"></i>
+          </el-tooltip>
+        </div>
+      </div>
     </div>
   </div>
 </template>
 <script>
-import {exportTeacherSalary} from '@/api/generalSettings'
+import { exportTeacherSalary } from '@/api/generalSettings'
+import { getEmployeeOrgan } from "@/api/buildTeam";
 import axios from 'axios'
 import {
   getToken
@@ -29,20 +68,29 @@ import load from '@/utils/loading'
 import qs from 'qs'
 export default {
   name: "reportForm",
-  data() {
+  data () {
     return {
       mouth: "",
+      organList: [],
+      organIdList: []
       // imageIcon: require("@/assets/images/base/warning.png")
     };
   },
-  methods:{
-    exportSalar(){
-      if(!this.mouth){
+  mounted () {
+    getEmployeeOrgan().then(res => {
+      if (res.code == 200) {
+        this.organList = res.data;
+      }
+    });
+  },
+  methods: {
+    exportSalar () {
+      if (!this.mouth) {
         this.$message.error('请选择导出月份')
         return
       }
-       let url = '/api-web/export/teacherSalary'
-      let data = {date:this.mouth}
+      let url = '/api-web/export/teacherSalary'
+      let data = { date: this.mouth }
       const options = {
         method: 'POST',
         headers: {
@@ -64,11 +112,11 @@ export default {
             type: 'application/vnd.ms-excel;charset=utf-8'
             //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
           })
-          
+
           let text = (new Response(blob)).text()
           text.then(res => {
             // 判断是否报错
-            if(res.indexOf('code') != -1) {
+            if (res.indexOf('code') != -1) {
               let json = JSON.parse(res)
               this.$message.error(json.msg)
             } else {
@@ -76,7 +124,7 @@ export default {
               let link = document.createElement("a")
               let nowTime = new Date()
               let ymd = nowTime.getFullYear() + '' + (nowTime.getMonth() + 1) + '' + nowTime.getDate()
-              let fname =  ymd + '课酬' //下载文件的名字
+              let fname = ymd + '课酬' //下载文件的名字
               link.href = objectUrl
               link.setAttribute("download", fname)
               document.body.appendChild(link)
@@ -85,31 +133,99 @@ export default {
           })
           load.endLoading();
         }).catch(error => {
-            this.$message.error('导出数据失败,请联系管理员');
-            load.endLoading();
+          this.$message.error('导出数据失败,请联系管理员');
+          load.endLoading();
+        })
+      }).catch(() => { })
+    },
+    exportMusicGroup () {
+      if (this.organIdList.length < 1) {
+        this.$message.error('请至少选择一个分部')
+        return
+      }
+
+      let url = '/api-web/export/musicGroupRegister'
+      let data = { date: this.organIdList.join(',') }
+      const options = {
+        method: 'POST',
+        headers: {
+          'Authorization': getToken()
+        },
+        data: qs.stringify(data),
+        url,
+        responseType: 'blob'
+      }
+      this.$confirm('您确定导出招生情况汇总表', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        load.startLoading()
+        axios(options).then(res => {
+          let blob = new Blob([res.data], {
+            // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
+            type: 'application/vnd.ms-excel;charset=utf-8'
+            //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
           })
+
+          let text = (new Response(blob)).text()
+          text.then(res => {
+            // 判断是否报错
+            if (res.indexOf('code') != -1) {
+              let json = JSON.parse(res)
+              this.$message.error(json.msg)
+            } else {
+              let objectUrl = URL.createObjectURL(blob)
+              let link = document.createElement("a")
+              let nowTime = new Date()
+              let ymd = nowTime.getFullYear() + '' + (nowTime.getMonth() + 1) + '' + nowTime.getDate()
+              let fname = ymd + '招生情况汇总表' //下载文件的名字
+              link.href = objectUrl
+              link.setAttribute("download", fname)
+              document.body.appendChild(link)
+              link.click()
+            }
+          })
+          load.endLoading();
+        }).catch(error => {
+          this.$message.error('导出数据失败,请联系管理员');
+          load.endLoading();
+        })
       }).catch(() => { })
+    }
   }
-  }
-  
+
 };
 </script>
 <style lang="scss" scoped>
 .m-container {
-  .m-wrap {
-    display: flex;
-    flex-direction: row;
-    justify-content: flex-start;
-    width: 100%;
-    // align-items: center;
-    .newBand {
-      margin: 0 5px 0 10px;
-    }
-    .el-tooltip.micon {
-      width: 20px;
-      height: 20px;
-      position: relative;
-      top: 12px;
+  .m-core {
+    margin-top: 20px;
+    .m-wrap {
+      display: flex;
+      flex-direction: row;
+      justify-content: flex-start;
+      width: 100%;
+      // align-items: center;
+      .newBand {
+        margin: 0 5px 0 10px;
+      }
+      .title {
+        width: 120px;
+        height: 40px;
+        line-height: 40px;
+        text-align: right;
+        color: #606266;
+      }
+      .organSelect {
+        width: 220px !important;
+      }
+      .el-tooltip.micon {
+        width: 20px;
+        height: 20px;
+        position: relative;
+        top: 12px;
+      }
     }
   }
 }

+ 263 - 238
src/views/studentManager/studentList.vue

@@ -4,64 +4,64 @@
       <div class="squrt"></div>学员列表
     </h2>
     <div class="m-core">
-      <div class="newBand" v-permission="'studentManage/register'" @click="addStudent">新增学员</div>
-      <div class="newBand" @click="onCreateQRCode">学员激活列表</div>
+      <div class="newBand"
+           v-permission="'studentManage/register'"
+           @click="addStudent">新增学员</div>
+      <div class="newBand"
+           @click="onCreateQRCode">学员激活列表</div>
       <!-- 搜索标题 -->
-      <el-form :inline="true" class="searchForm" v-model.trim="searchForm">
+      <el-form :inline="true"
+               class="searchForm"
+               v-model.trim="searchForm">
         <el-form-item>
-          <el-input
-            placeholder="学生姓名或电话"
-            @keyup.enter.native="onSearch"
-            v-model.trim="searchForm.search"
-          ></el-input>
+          <el-input placeholder="学生姓名或电话"
+                    @keyup.enter.native="onSearch"
+                    v-model.trim="searchForm.search"></el-input>
         </el-form-item>
         <el-form-item prop="organId">
-          <el-select
-            class="multiple"
-            filterable
-            v-model.trim="searchForm.organId"
-            clearable
-            placeholder="请选择分部"
-          >
-            <el-option
-              v-for="(item,index) in organList"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
+          <el-select class="multiple"
+                     filterable
+                     v-model.trim="searchForm.organId"
+                     clearable
+                     placeholder="请选择分部">
+            <el-option v-for="(item,index) in organList"
+                       :key="index"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
 
         <el-form-item>
-          <el-select placeholder="指导老师" v-model="searchForm.teacherId" clearable filterable>
-            <el-option
-              v-for="(item,index) in teacherList"
-              :label="item.realName"
-              :value="item.id"
-              :key="index"
-            ></el-option>
+          <el-select placeholder="指导老师"
+                     v-model="searchForm.teacherId"
+                     clearable
+                     filterable>
+            <el-option v-for="(item,index) in teacherList"
+                       :label="item.realName"
+                       :value="item.id"
+                       :key="index"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="isActive">
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.isActive"
-            clearable
-            placeholder="是否激活"
-          >
-            <el-option label="是" value="true"></el-option>
-            <el-option label="否" value="false"></el-option>
+          <el-select class="multiple"
+                     v-model.trim="searchForm.isActive"
+                     clearable
+                     placeholder="是否激活">
+            <el-option label="是"
+                       value="true"></el-option>
+            <el-option label="否"
+                       value="false"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="hasCourse">
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.hasCourse"
-            clearable
-            placeholder="是否有课"
-          >
-            <el-option label="是" value="1"></el-option>
-            <el-option label="否" value="0"></el-option>
+          <el-select class="multiple"
+                     v-model.trim="searchForm.hasCourse"
+                     clearable
+                     placeholder="未上课时">
+            <el-option label="有"
+                       value="1"></el-option>
+            <el-option label="无"
+                       value="0"></el-option>
           </el-select>
         </el-form-item>
         <!-- <el-form-item prop="isMake">
@@ -76,188 +76,210 @@
           </el-select>
         </el-form-item> -->
         <el-form-item prop="hasPracticeCourse">
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.hasPracticeCourse"
-            clearable
-            placeholder="是否有网管课"
-          >
-            <el-option label="是" value="true"></el-option>
-            <el-option label="否" value="false"></el-option>
+          <el-select class="multiple"
+                     v-model.trim="searchForm.hasPracticeCourse"
+                     clearable
+                     placeholder="是否有网管课">
+            <el-option label="是"
+                       value="true"></el-option>
+            <el-option label="否"
+                       value="false"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="hasCourse">
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.operatingTag"
-            clearable
-            placeholder="是否运营"
-          >
-            <el-option label="是" :value="1"></el-option>
-            <el-option label="否" :value="0"></el-option>
+          <el-select class="multiple"
+                     v-model.trim="searchForm.operatingTag"
+                     clearable
+                     placeholder="是否运营">
+            <el-option label="是"
+                       :value="1"></el-option>
+            <el-option label="否"
+                       :value="0"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item prop="hasCourse">
-          <el-select
-            class="multiple"
-            v-model.trim="searchForm.serviceTag"
-            clearable
-            placeholder="是否服务"
-          >
-            <el-option label="是" :value="1"></el-option>
-            <el-option label="否" :value="0"></el-option>
+          <el-select class="multiple"
+                     v-model.trim="searchForm.serviceTag"
+                     clearable
+                     placeholder="是否服务">
+            <el-option label="是"
+                       :value="1"></el-option>
+            <el-option label="否"
+                       :value="0"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button @click="onSearch" type="danger">搜索</el-button>
-          <el-button @click="onReSet" type="primary">重置</el-button>
-          <el-button
-            type="primary"
-            v-permission="'export/studentHasCourse'"
-            @click="downLoadStudent"
-          >导出名单</el-button>
+          <el-button @click="onSearch"
+                     type="danger">搜索</el-button>
+          <el-button @click="onReSet"
+                     type="primary">重置</el-button>
+          <el-button type="primary"
+                     v-permission="'export/studentHasCourse'"
+                     @click="downLoadStudent">导出名单</el-button>
         </el-form-item>
       </el-form>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data="tableList" :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align="center" prop="userId" label="学员编号"></el-table-column>
-          <el-table-column align="center" prop="username" label="学员姓名"></el-table-column>
-          <el-table-column align="center" prop="organName" label="所属分部"></el-table-column>
-          <el-table-column align="center" prop="teacherName" label="指导老师"></el-table-column>
-          <el-table-column align="center" label="性别">
+        <el-table :data="tableList"
+                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+          <el-table-column align="center"
+                           prop="userId"
+                           label="学员编号"></el-table-column>
+          <el-table-column align="center"
+                           prop="username"
+                           label="学员姓名"></el-table-column>
+          <el-table-column align="center"
+                           prop="organName"
+                           label="所属分部"></el-table-column>
+          <el-table-column align="center"
+                           prop="teacherName"
+                           label="指导老师"></el-table-column>
+          <el-table-column align="center"
+                           label="性别">
             <template slot-scope="scope">{{ scope.row.gender ? '男': '女' }}</template>
           </el-table-column>
-          <el-table-column align="center" prop="realName" label="家长姓名"></el-table-column>
-          <el-table-column align="center" width="120px" prop="parentsPhone" label="家长联系电话"></el-table-column>
-          <el-table-column align="center" label="是否激活">
+          <el-table-column align="center"
+                           prop="realName"
+                           label="家长姓名"></el-table-column>
+          <el-table-column align="center"
+                           width="120px"
+                           prop="parentsPhone"
+                           label="家长联系电话"></el-table-column>
+          <el-table-column align="center"
+                           label="是否激活">
             <template slot-scope="scope">{{ scope.row.isActive ? '是' : '否' }}</template>
           </el-table-column>
-          <el-table-column align="center" label="是否有课">
-            <template slot-scope="scope">{{ scope.row.hasCourse ? '是' : '否' }}</template>
+          <el-table-column align="center"
+                           label="未上课时">
+            <template slot-scope="scope">{{ scope.row.hasCourse ? '有' : '无' }}</template>
           </el-table-column>
           <!-- <el-table-column align="center" label="预约网管课">
             <template slot-scope="scope">{{ scope.row.isMake ? '是' : '否' }}</template>
           </el-table-column> -->
-          <el-table-column align="center" label="是否有网管课">
+          <el-table-column align="center"
+                           label="是否有网管课">
             <template slot-scope="scope">{{ scope.row.hasPracticeCourse ? '是' : '否' }}</template>
           </el-table-column>
-          <el-table-column align="center" label="是否运营">
+          <el-table-column align="center"
+                           label="是否运营">
             <template slot-scope="scope">{{ scope.row.operatingTag ? '是' : '否' }}</template>
           </el-table-column>
-          <el-table-column align="center" label="是否服务">
+          <el-table-column align="center"
+                           label="是否服务">
             <template slot-scope="scope">{{ scope.row.serviceTag ? '是' : '否' }}</template>
           </el-table-column>
 
-          <el-table-column align="center" prop="courseBalance" label="课程余额(元)"></el-table-column>
-          <el-table-column align="center" fixed="right" width="180px" label="操作">
+          <el-table-column align="center"
+                           prop="courseBalance"
+                           label="课程余额(元)"></el-table-column>
+          <el-table-column align="center"
+                           fixed="right"
+                           width="180px"
+                           label="操作">
             <template slot-scope="scope">
-              <router-link
-                style="color:#409EFF"
-                v-permission="'/studentDetail'"
-                :to="{path:`/business/studentDetail?userId=${scope.row.userId}`,query:{search:JSON.stringify(searchForm),rules:JSON.stringify(pageInfo),studentName:scope.row.username}}"
-              >查看</router-link>
-              <el-button
-                type="text"
-                v-permission="'studentManage/studentUpdate'"
-                @click="resetStudent(scope.row)"
-              >修改</el-button>
+              <router-link style="color:#409EFF"
+                           v-permission="'/studentDetail'"
+                           :to="{path:`/business/studentDetail?userId=${scope.row.userId}`,query:{search:JSON.stringify(searchForm),rules:JSON.stringify(pageInfo),studentName:scope.row.username}}">查看</router-link>
+              <el-button type="text"
+                         v-permission="'studentManage/studentUpdate'"
+                         @click="resetStudent(scope.row)">修改</el-button>
               <!-- api-auth/user/updatePassword2 -->
-              <el-button
-                v-permission="'api-auth/user/updatePassword2'"
-                @click="resetPassWrod(scope.row)"
-                type="text"
-              >修改密码</el-button>
+              <el-button v-permission="'api-auth/user/updatePassword2'"
+                         @click="resetPassWrod(scope.row)"
+                         type="text">修改密码</el-button>
             </template>
           </el-table-column>
         </el-table>
-        <pagination
-          :total="pageInfo.total"
-          :page.sync="pageInfo.page"
-          :limit.sync="pageInfo.limit"
-          :page-sizes="pageInfo.page_size"
-          @pagination="getList"
-        />
+        <pagination :total="pageInfo.total"
+                    :page.sync="pageInfo.page"
+                    :limit.sync="pageInfo.limit"
+                    :page-sizes="pageInfo.page_size"
+                    @pagination="getList" />
       </div>
     </div>
-    <el-dialog
-      :title="maskName"
-      width="700px"
-      label-width="100px"
-      label-position="right"
-      class="studentInfo"
-      :visible.sync="studentVisible"
-    >
+    <el-dialog :title="maskName"
+               width="700px"
+               label-width="100px"
+               label-position="right"
+               class="studentInfo"
+               :visible.sync="studentVisible">
       <el-divider>基本信息</el-divider>
-      <el-form
-        :model="studentForm"
-        :inline="true"
-        label-width="80px"
-        label-position="right"
-        ref="studentForm"
-        :rules="studentRules"
-      >
-        <el-form-item
-          label="联系电话"
-          prop="phone"
-          :rules="[{ required: true, message: '请输入手机号' }, { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }]"
-        >
+      <el-form :model="studentForm"
+               :inline="true"
+               label-width="80px"
+               label-position="right"
+               ref="studentForm"
+               :rules="studentRules">
+        <el-form-item label="联系电话"
+                      prop="phone"
+                      :rules="[{ required: true, message: '请输入手机号' }, { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }]">
           <!--   @blur="checkPhone(studentForm.phone)" -->
           <el-input v-model.trim="studentForm.phone"></el-input>
         </el-form-item>
-        <el-form-item label="所属分部" prop="organId">
-          <el-select
-            class="multiple"
-            v-model.trim="studentForm.organId"
-            filterable
-            clearable
-            placeholder="请选择分部"
-            @change="changeStudentOrgan"
-          >
-            <el-option
-              v-for="(item,index) in organList"
-              :key="index"
-              :label="item.name"
-              :value="item.id"
-            ></el-option>
+        <el-form-item label="所属分部"
+                      prop="organId">
+          <el-select class="multiple"
+                     v-model.trim="studentForm.organId"
+                     filterable
+                     clearable
+                     placeholder="请选择分部"
+                     @change="changeStudentOrgan">
+            <el-option v-for="(item,index) in organList"
+                       :key="index"
+                       :label="item.name"
+                       :value="item.id"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="学生姓名" prop="name">
+        <el-form-item label="学生姓名"
+                      prop="name">
           <el-input v-model.trim="studentForm.name"></el-input>
         </el-form-item>
-        <el-form-item label="学生性别" prop="sex">
-          <el-select
-            class="multiple"
-            filterable
-            v-model.trim="studentForm.sex"
-            clearable
-            placeholder="请选择性别"
-          >
-            <el-option :value="0" label="女"></el-option>
-            <el-option :value="1" label="男"></el-option>
+        <el-form-item label="学生性别"
+                      prop="sex">
+          <el-select class="multiple"
+                     filterable
+                     v-model.trim="studentForm.sex"
+                     clearable
+                     placeholder="请选择性别">
+            <el-option :value="0"
+                       label="女"></el-option>
+            <el-option :value="1"
+                       label="男"></el-option>
           </el-select>
         </el-form-item>
 
-        <el-form-item label="是否运营" prop="operatingTag">
-          <el-select class="multiple" v-model.trim="studentForm.operatingTag" clearable>
-            <el-option :value="1" label="是"></el-option>
-            <el-option :value="0" label="否"></el-option>
+        <el-form-item label="是否运营"
+                      prop="operatingTag">
+          <el-select class="multiple"
+                     v-model.trim="studentForm.operatingTag"
+                     clearable>
+            <el-option :value="1"
+                       label="是"></el-option>
+            <el-option :value="0"
+                       label="否"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="是否服务" prop="serviceTag">
-          <el-select class="multiple" v-model.trim="studentForm.serviceTag" clearable>
-            <el-option :value="1" label="是"></el-option>
-            <el-option :value="0" label="否"></el-option>
+        <el-form-item label="是否服务"
+                      prop="serviceTag">
+          <el-select class="multiple"
+                     v-model.trim="studentForm.serviceTag"
+                     clearable>
+            <el-option :value="1"
+                       label="是"></el-option>
+            <el-option :value="0"
+                       label="否"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="指导老师" prop="teacherId">
-          <el-select class="multiple" v-model.trim="studentForm.teacherId" clearable filterable>
-            <el-option
-              v-for="(item,index) in maskTeacherList"
-              :label="item.realName"
-              :value="item.id"
-              :key="index"
-            ></el-option>
+        <el-form-item label="指导老师"
+                      prop="teacherId">
+          <el-select class="multiple"
+                     v-model.trim="studentForm.teacherId"
+                     clearable
+                     filterable>
+            <el-option v-for="(item,index) in maskTeacherList"
+                       :label="item.realName"
+                       :value="item.id"
+                       :key="index"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="家长姓名">
@@ -265,64 +287,67 @@
         </el-form-item>
 
         <el-form-item label="出生日期">
-          <el-date-picker
-            v-model.trim="studentForm.date"
-            value-format="yyyy-MM-dd"
-            type="date"
-            placeholder="选择日期"
-          ></el-date-picker>
+          <el-date-picker v-model.trim="studentForm.date"
+                          value-format="yyyy-MM-dd"
+                          type="date"
+                          placeholder="选择日期"></el-date-picker>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer"
+           class="dialog-footer">
         <el-button @click="studentVisible = false">取 消</el-button>
-        <el-button type="primary" v-if="isNew" @click="submitAddStudent">确 定</el-button>
-        <el-button type="primary" v-if="!isNew" @click="resetStudentSubmie">确 定</el-button>
+        <el-button type="primary"
+                   v-if="isNew"
+                   @click="submitAddStudent">确 定</el-button>
+        <el-button type="primary"
+                   v-if="!isNew"
+                   @click="resetStudentSubmie">确 定</el-button>
       </div>
     </el-dialog>
 
-    <el-dialog :visible.sync="qrcodeStatus" center width="300px">
+    <el-dialog :visible.sync="qrcodeStatus"
+               center
+               width="300px">
       <div class="right-code">
         <h2 class="title">学员激活列表</h2>
-        <div id="qrcode" class="qrcode code" ref="qrCodeUrl"></div>
+        <div id="qrcode"
+             class="qrcode code"
+             ref="qrCodeUrl"></div>
         <!-- <p class="code-url"
         v-if="codeUrl2">{{ codeUrl2 }}</p>-->
       </div>
     </el-dialog>
-    <el-dialog
-      title="修改密码"
-      :visible.sync="passwrodVisiable"
-      :before-close="closePassWord"
-      width="400px"
-    >
-      <el-form :model="passwrodForm" ref="passwrodForm" :inline="true">
-        <el-form-item
-          label="手机号"
-          prop="phone"
-          label-width="80px"
-          :rules="[{ required: true, message: '手机号不能为空',trigger: 'blur'},{pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号',trigger: 'blur' }]"
-        >
+    <el-dialog title="修改密码"
+               :visible.sync="passwrodVisiable"
+               :before-close="closePassWord"
+               width="400px">
+      <el-form :model="passwrodForm"
+               ref="passwrodForm"
+               :inline="true">
+        <el-form-item label="手机号"
+                      prop="phone"
+                      label-width="80px"
+                      :rules="[{ required: true, message: '手机号不能为空',trigger: 'blur'},{pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号',trigger: 'blur' }]">
           <el-input v-model.trim="passwrodForm.phone"></el-input>
         </el-form-item>
-        <el-form-item
-          label="输入密码"
-          prop="password"
-          label-width="80px"
-          :rules="[{ required: true, message: '密码不能为空',trigger: 'blur'},{pattern:/^[\w]{6,20}$/,message:'密码为6-20位',trigger: 'blur'}]"
-        >
+        <el-form-item label="输入密码"
+                      prop="password"
+                      label-width="80px"
+                      :rules="[{ required: true, message: '密码不能为空',trigger: 'blur'},{pattern:/^[\w]{6,20}$/,message:'密码为6-20位',trigger: 'blur'}]">
           <el-input v-model.trim="passwrodForm.password"></el-input>
         </el-form-item>
-        <el-form-item
-          label="再次输入"
-          prop="password2"
-          label-width="80px"
-          :rules="[{ required: true, message: '密码不能为空',trigger: 'blur'},{pattern:/^[\w]{6,20}$/,message:'密码为6-20位',trigger: 'blur'}]"
-        >
+        <el-form-item label="再次输入"
+                      prop="password2"
+                      label-width="80px"
+                      :rules="[{ required: true, message: '密码不能为空',trigger: 'blur'},{pattern:/^[\w]{6,20}$/,message:'密码为6-20位',trigger: 'blur'}]">
           <el-input v-model.trim="passwrodForm.password2"></el-input>
         </el-form-item>
       </el-form>
-      <span slot="footer" class="dialog-footer">
+      <span slot="footer"
+            class="dialog-footer">
         <el-button @click="passwrodVisiable = false">取 消</el-button>
-        <el-button type="primary" @click="submitResetPassWord">确 定</el-button>
+        <el-button type="primary"
+                   @click="submitResetPassWord">确 定</el-button>
       </span>
     </el-dialog>
   </div>
@@ -348,7 +373,7 @@ import { permission } from "@/utils/directivePage";
 export default {
   name: "studentList",
   components: { pagination },
-  data() {
+  data () {
     return {
       studentVisible: false,
       searchForm: {
@@ -367,7 +392,7 @@ export default {
       tableList: [],
       organList: [],
       teacherList: [],
-      maskTeacherList:[],
+      maskTeacherList: [],
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -412,7 +437,7 @@ export default {
       activatedRow: null
     };
   },
-  mounted() {
+  mounted () {
     if (this.$route.query.search) {
       this.$route.query.search instanceof Object
         ? (this.searchForm = this.$route.query.search)
@@ -436,11 +461,11 @@ export default {
     this.getList();
   },
   methods: {
-    onSearch() {
+    onSearch () {
       this.pageInfo.page = 1;
       this.getList();
     },
-    onCreateQRCode() {
+    onCreateQRCode () {
       // 生成报名二维码
       this.qrcodeStatus = true;
       // let id = this.$route.query.id
@@ -463,7 +488,7 @@ export default {
         // this.codeUrl = vaildStudentUrl() + '/#/login?musicGroupId=' + id
       }, 500);
     },
-    getList() {
+    getList () {
       let params = this.searchForm;
       params.rows = this.pageInfo.limit;
       params.page = this.pageInfo.page;
@@ -475,7 +500,7 @@ export default {
         }
       });
     },
-    onReSet() {
+    onReSet () {
       this.searchForm = {
         organId: null,
         search: null,
@@ -489,7 +514,7 @@ export default {
         teacherId: null
       };
     },
-    downLoadStudent() {
+    downLoadStudent () {
       let url = "/api-web/export/studentHasCourse";
       let searchForm = this.searchForm;
       let data = {
@@ -558,9 +583,9 @@ export default {
               load.endLoading();
             });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
-    checkPhone(val) {
+    checkPhone (val) {
       var regu = /^1[3456789]\d{9}$/;
       var re = new RegExp(regu);
       if (re.test(val)) {
@@ -580,7 +605,7 @@ export default {
         });
       }
     },
-    submitAddStudent() {
+    submitAddStudent () {
       // 效验  然后组数据提交
       this.$refs["studentForm"].validate(item => {
         if (item) {
@@ -607,7 +632,7 @@ export default {
       });
     },
     // 修改学生信息
-    resetStudentSubmie() {
+    resetStudentSubmie () {
       this.$refs["studentForm"].validate(item => {
         if (item) {
           let obj = {
@@ -633,7 +658,7 @@ export default {
         }
       });
     },
-    addStudent() {
+    addStudent () {
       getTeacher().then(res => {
         if (res.code == 200) {
           this.maskTeacherList = res.data;
@@ -643,7 +668,7 @@ export default {
         }
       });
     },
-    resetStudent(row) {
+    resetStudent (row) {
       let organId = row.organId;
       getTeacher({ organId }).then(res => {
         if (res.code == 200) {
@@ -669,12 +694,12 @@ export default {
         }
       });
     },
-    resetPassWrod(row) {
+    resetPassWrod (row) {
       this.activatedRow = row;
       this.passwrodForm.phone = row.parentsPhone;
       this.passwrodVisiable = true;
     },
-    closePassWord() {
+    closePassWord () {
       this.activatedRow = null;
       this.passwrodForm = {
         phone: "",
@@ -684,7 +709,7 @@ export default {
       this.$refs["passwrodForm"].resetFields();
       this.passwrodVisiable = false;
     },
-    submitResetPassWord() {
+    submitResetPassWord () {
       if (this.passwrodForm.password !== this.passwrodForm.password2) {
         this.$message.error("两次密码必须相同");
         return;
@@ -706,16 +731,16 @@ export default {
         }
       });
     },
-    changeStudentOrgan(val){
-        getTeacher({organId:val}).then(res => {
-      if (res.code == 200) {
-        this.maskTeacherList = res.data;
-      }
-    });
+    changeStudentOrgan (val) {
+      getTeacher({ organId: val }).then(res => {
+        if (res.code == 200) {
+          this.maskTeacherList = res.data;
+        }
+      });
     }
   },
   watch: {
-    studentVisible(val) {
+    studentVisible (val) {
       if (!val) {
         this.studentForm = {
           phone: "",

+ 9 - 8
src/views/teamDetail/components/studentList.vue

@@ -31,7 +31,9 @@
              style="margin-bottom:10px;"
              v-permission="'teamDetails/studentList/QRCode/822'"
              @click="onCreateQRCode">报名连接</div>
-        <div class="newStudent" v-permission="'/studentSignin'" @click="gotoSignin">点名总览</div>
+        <div class="newStudent"
+             v-permission="'/studentSignin'"
+             @click="gotoSignin">点名总览</div>
       </div>
     </div>
 
@@ -86,12 +88,12 @@
                    clearable
                    filterable
                    placeholder="报名缴费">
-          <el-option label="已开启"
-                     value="1"></el-option>
-          <el-option label="未开启"
+          <!-- <el-option label="已开启"
+                     value="1"></el-option> -->
+          <el-option label="未缴费"
                      value="0"></el-option>
           <el-option label="已缴费"
-                     value="2"></el-option>
+                     value="1"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -808,9 +810,8 @@ export default {
   filters: {
     studentPays (val) {
       let template = {
-        0: "未开启",
-        1: "已开启",
-        2: "已缴费"
+        0: "未缴费",
+        1: "已缴费"
       };
       return template[val];
     }

+ 1 - 1
src/views/vipClass/vipList.vue

@@ -12,7 +12,7 @@
     <div class="newBand"
          v-permission="'export/vipGroup'"
          @click="onStudentExport"
-         style="width: 120px;">VIP课程续费提醒</div>
+         style="max-width: inherit;">VIP课程续费提醒</div>
     <div class="m-core">
       <!-- 搜索类型 -->
       <el-form :inline="true"

+ 2 - 2
vue.config.js

@@ -18,10 +18,10 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // //  https://online.dayaedu.com
 // let target = 'https://online.dayaedu.com' //线上
 // let target = 'http://dyme.utools.club' //test环境
-let target = 'http://192.168.3.139:8000' // 箭河
+// let target = 'http://192.168.3.139:8000' // 箭河
 // let target = 'http://192.168.3.28:8000' //邹璇
 // let target = 'http://192.168.3.8:8000' //勇哥
-// let target = 'http://dev.dayaedu.com' // 测试服
+let target = 'http://dev.dayaedu.com' // 测试服
 // let target = 'http://dev.dayaedu.com' // 乔
 // 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