|
@@ -0,0 +1,351 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="m-container">
|
|
|
|
+ <el-page-header @back="goBack"
|
|
|
|
+ :content="organName">
|
|
|
|
+ </el-page-header>
|
|
|
|
+ <div class="m-core">
|
|
|
|
+ <!-- <el-button @click="downloadFile"
|
|
|
|
+ v-permission="'operatingReport/export'"
|
|
|
|
+ class="btn-primary">导出</el-button> -->
|
|
|
|
+ <!-- 搜索类型 -->
|
|
|
|
+ <el-form :inline="true"
|
|
|
|
+ class="searchForm"
|
|
|
|
+ v-model.trim="searchForm">
|
|
|
|
+ <!-- <el-form-item prop='organId'>
|
|
|
|
+ <el-select class='multiple'
|
|
|
|
+ v-model.trim="searchForm.organIdList"
|
|
|
|
+ clearable
|
|
|
|
+ filterable
|
|
|
|
+ multiple
|
|
|
|
+ collapse-tags
|
|
|
|
+ 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 clearable
|
|
|
|
+ filterable
|
|
|
|
+ placeholder="请选择所属学校"
|
|
|
|
+ v-model="searchForm.cooperationOrganId">
|
|
|
|
+ <el-option v-for="(item,index) in cooperations"
|
|
|
|
+ :key="index"
|
|
|
|
+ :label="item.name"
|
|
|
|
+ :value="item.id"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-date-picker v-model="searchForm.month"
|
|
|
|
+ type="month"
|
|
|
|
+ placeholder="选择月份">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <!-- <el-form-item>
|
|
|
|
+ <el-date-picker style="width:410px;"
|
|
|
|
+ v-model.trim="orderDate"
|
|
|
|
+ type="daterange"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
+ @change="searchOrderDate"
|
|
|
|
+ range-separator="至"
|
|
|
|
+ start-placeholder="开始日期"
|
|
|
|
+ end-placeholder="结束日期"
|
|
|
|
+ :picker-options="{ firstDayOfWeek: 1 }">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ </el-form-item> -->
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button @click="search"
|
|
|
|
+ type="danger">搜索</el-button>
|
|
|
|
+ <el-button @click="onReSet"
|
|
|
|
+ type="primary">重置</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'
|
|
|
|
+ width="150"
|
|
|
|
+ prop="organName"
|
|
|
|
+ label="分部"></el-table-column> -->
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="schoolName"
|
|
|
|
+ label="学校">
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="sellAmount"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="销售收入(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ {{scope.row.sellAmount | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="serviceAmount"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="服务收入(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ {{scope.row.serviceAmount | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="otherIncome"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="不确定收入(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ {{scope.row.otherIncome | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="refundAmount"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="业务退费(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ {{scope.row.refundAmount | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="incomeTotal"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="收入合计(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div class="point">
|
|
|
|
+ {{scope.row.incomeTotal | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="sellCost"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="销售成本(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ {{scope.row.sellCost | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="expensesAmount"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="固定支出(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ {{scope.row.expensesAmount | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="variableCost"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="变动支出(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ {{scope.row.variableCost | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="distributionAmount"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="分摊费用(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ {{scope.row.distributionAmount | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="costAmount"
|
|
|
|
+ width="150px"
|
|
|
|
+ label="成本费用合计(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div class="point">
|
|
|
|
+ {{scope.row.costAmount | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align='center'
|
|
|
|
+ prop="profit"
|
|
|
|
+ label="利润(元)">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div class="point">
|
|
|
|
+ {{scope.row.profit | moneyFormat}}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <!-- <el-table-column label='操作'>
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-button type="text"
|
|
|
|
+ @click="lookDetail(scope.row)">查看</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" />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+<script>
|
|
|
|
+import pagination from '@/components/Pagination/index'
|
|
|
|
+import { Export } from '@/utils/downLoadFile'
|
|
|
|
+import { getOperatingReport, applyRefundAudit } from '@/api/orderManager'
|
|
|
|
+import { getEmployeeOrgan, getCooperation } from '@/api/buildTeam'
|
|
|
|
+import store from '@/store'
|
|
|
|
+import dayjs from 'dayjs'
|
|
|
|
+export default {
|
|
|
|
+ components: { pagination },
|
|
|
|
+ name: 'backMoney',
|
|
|
|
+ data () {
|
|
|
|
+ return {
|
|
|
|
+ orderDate: null,
|
|
|
|
+ searchForm: {
|
|
|
|
+ startTime: null,
|
|
|
|
+ endTime: null,
|
|
|
|
+ organId: null,
|
|
|
|
+ month: '',
|
|
|
|
+ cooperationOrganId: '',
|
|
|
|
+ organIdList: []
|
|
|
|
+ },
|
|
|
|
+ tableList: [],
|
|
|
|
+ organList: [],
|
|
|
|
+ cooperations: [],
|
|
|
|
+ pageInfo: {
|
|
|
|
+ // 分页规则
|
|
|
|
+ limit: 10, // 限制显示条数
|
|
|
|
+ page: 1, // 当前页
|
|
|
|
+ total: 0, // 总条数
|
|
|
|
+ page_size: [10, 20, 40, 50] // 选择限制显示条数
|
|
|
|
+ },
|
|
|
|
+ organId: null,
|
|
|
|
+ organName: null
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ mounted () {
|
|
|
|
+ this.init()
|
|
|
|
+ },
|
|
|
|
+ activated () {
|
|
|
|
+ this.init()
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ init () {
|
|
|
|
+ this.organId = this.$route.query.organId
|
|
|
|
+ this.organName = this.$route.query.organName
|
|
|
|
+ getEmployeeOrgan().then(res => {
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.organList = res.data;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ getCooperation({ 'rows': 1000, organId: this.organId })
|
|
|
|
+ .then(res => {
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.cooperations = res.data.rows;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ const form = { ...this.searchForm }
|
|
|
|
+ form.month = dayjs().format('YYYY-MM')
|
|
|
|
+ this.searchForm = form
|
|
|
|
+ this.getList()
|
|
|
|
+ var now = new Date();
|
|
|
|
+ var startDate = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())).toISOString().slice(0, 10);
|
|
|
|
+ var endDate = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())).toISOString().slice(0, 10);
|
|
|
|
+ this.orderDate = [];
|
|
|
|
+ this.orderDate.push(startDate)
|
|
|
|
+ this.orderDate.push(endDate)
|
|
|
|
+ },
|
|
|
|
+ search () {
|
|
|
|
+ this.pageInfo.page = 1;
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ // downloadFile () {
|
|
|
|
+ // let params = this.searchForm
|
|
|
|
+ // Export(this, {
|
|
|
|
+ // url: '/api-web/operatingReport/export',
|
|
|
|
+ // params: {
|
|
|
|
+ // ...params,
|
|
|
|
+ // month: (params.month ? dayjs(params.month).format('YYYY-MM-DD') : ''),
|
|
|
|
+ // }
|
|
|
|
+ // }, '是否确认导出报表?')
|
|
|
|
+ // },
|
|
|
|
+ onTeachingSubmit (formName, status) { // 添加数据
|
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ this.form.status = status
|
|
|
|
+ applyRefundAudit(this.form).then(res => {
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.$message.success('操作成功')
|
|
|
|
+ this.backStatus = false
|
|
|
|
+ this.getList()
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error(res.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ getList () {
|
|
|
|
+ let params = this.searchForm
|
|
|
|
+ params.rows = this.pageInfo.limit
|
|
|
|
+ params.page = this.pageInfo.page
|
|
|
|
+ getOperatingReport({
|
|
|
|
+ ...params,
|
|
|
|
+ month: (params.month ? dayjs(params.month).format('YYYY-MM-DD') : ''),
|
|
|
|
+ organIdList: this.organId,
|
|
|
|
+ type: 'school'
|
|
|
|
+ }).then(res => {
|
|
|
|
+ let result = res.data
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.tableList = result.rows
|
|
|
|
+ this.pageInfo.total = result.total
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ searchOrderDate (value) {
|
|
|
|
+ if (value) {
|
|
|
|
+ this.searchForm.startTime = value[0] + ' 00:00:00'
|
|
|
|
+ this.searchForm.endTime = value[1] + ' 23:59:59'
|
|
|
|
+ } else {
|
|
|
|
+ this.searchForm.startTime = null
|
|
|
|
+ this.searchForm.endTime = null
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ onReSet () {
|
|
|
|
+ this.orderDate = null
|
|
|
|
+ this.searchForm = {
|
|
|
|
+ startTime: null,
|
|
|
|
+ endTime: null,
|
|
|
|
+ month: '',
|
|
|
|
+ cooperationOrganId: '',
|
|
|
|
+ organIdList: []
|
|
|
|
+ }
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ goBack () {
|
|
|
|
+ // searchForm: this.searchForm,
|
|
|
|
+ // pageInfo: this.pageInfo
|
|
|
|
+ this.$router.push({ path: '/orderList/businessStatement', query: { ...this.$route.query } })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+</script>
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+.point {
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ color: #13817a;
|
|
|
|
+}
|
|
|
|
+</style>
|