|
@@ -45,6 +45,7 @@
|
|
|
class="organSelect"
|
|
|
style="width:100%"
|
|
|
filterable
|
|
|
+ placeholder="请选择分部"
|
|
|
multiple
|
|
|
clearable>
|
|
|
<el-option v-for="(item,index) in organList"
|
|
@@ -76,6 +77,7 @@
|
|
|
class="organSelect"
|
|
|
style="width:100%"
|
|
|
filterable
|
|
|
+ placeholder="请选择分部"
|
|
|
multiple
|
|
|
clearable>
|
|
|
<el-option v-for="(item,index) in organList"
|
|
@@ -98,6 +100,41 @@
|
|
|
</el-tooltip>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <div class="m-core">
|
|
|
+ <div class="m-wrap">
|
|
|
+ <div class="title">回款统计:
|
|
|
+ </div>
|
|
|
+ <el-select v-model.trim="studentOrganId"
|
|
|
+ class="organSelect"
|
|
|
+ style="width:100%"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择分部"
|
|
|
+ multiple
|
|
|
+ clearable>
|
|
|
+ <el-option v-for="(item,index) in organList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-date-picker style="margin-left: 15px;" v-model="studentMonth"
|
|
|
+ type="month"
|
|
|
+ placeholder="选择月"
|
|
|
+ value-format="yyyy-MM-dd"></el-date-picker>
|
|
|
+ <div class="newBand"
|
|
|
+ @click="exportStudent"
|
|
|
+ v-permission="'export/studentOrder'">导出</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"
|
|
|
+ v-permission="'export/studentOrder'"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -121,7 +158,9 @@ export default {
|
|
|
organIdList: [],
|
|
|
teacherDefaultSalaryOrganId: '',
|
|
|
courseArray: courseType,
|
|
|
- courseScheduleType: []
|
|
|
+ courseScheduleType: [],
|
|
|
+ studentOrganId: '',
|
|
|
+ studentMonth: ''
|
|
|
// imageIcon: require("@/assets/images/base/warning.png")
|
|
|
};
|
|
|
},
|
|
@@ -293,7 +332,62 @@ export default {
|
|
|
load.endLoading();
|
|
|
})
|
|
|
}).catch(() => { })
|
|
|
- }
|
|
|
+ },
|
|
|
+ exportStudent () {
|
|
|
+ if (!this.studentMonth) {
|
|
|
+ this.$message.error('请选择导出月份')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let studentOrganId = this.studentOrganId.join(',')
|
|
|
+ let url = '/api-web/export/studentOrder'
|
|
|
+ let data = { organIds: studentOrganId, date: this.studentMonth }
|
|
|
+ const options = {
|
|
|
+ method: 'POST',
|
|
|
+ headers: {
|
|
|
+ 'Authorization': getToken()
|
|
|
+ },
|
|
|
+ data: qs.stringify(cleanDeep(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(() => { })
|
|
|
+ },
|
|
|
}
|
|
|
|
|
|
};
|