|
@@ -5,19 +5,17 @@
|
|
|
<div class="headItem">
|
|
|
<p>
|
|
|
账户余额:
|
|
|
- <span>{{ (dataInfo.balance).toFixed(2) }}</span>
|
|
|
+ <span>{{ dataInfo.balance?(dataInfo.balance).toFixed(2):0.00 }}</span>
|
|
|
</p>
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- v-permission="'userCashAccount/updateBalance'"
|
|
|
- @click="onMoneyOperation('recharge')"
|
|
|
- >修改</el-button>
|
|
|
+ <el-button type="text"
|
|
|
+ v-permission="'userCashAccount/updateBalance'"
|
|
|
+ @click="onMoneyOperation('recharge')">修改</el-button>
|
|
|
</div>
|
|
|
<div class="headItem">
|
|
|
<!-- v-if="amountStatus" -->
|
|
|
<p>
|
|
|
课程余额:
|
|
|
- <span>{{ (dataInfo.courseBalance).toFixed(2) }}</span>
|
|
|
+ <span>{{ dataInfo.courseBalance?(dataInfo.courseBalance).toFixed(2):0.00 }}</span>
|
|
|
</p>
|
|
|
<!-- <p v-else>课程余额:<span>
|
|
|
<el-input style="width: 130px;"
|
|
@@ -25,11 +23,9 @@
|
|
|
placeholder="课程余额"></el-input>
|
|
|
</span></p>-->
|
|
|
|
|
|
- <el-button
|
|
|
- v-permission="'userCashAccount/updateCourseBalance'"
|
|
|
- @click="onMoneyOperation('account')"
|
|
|
- type="text"
|
|
|
- >修改</el-button>
|
|
|
+ <el-button v-permission="'userCashAccount/updateCourseBalance'"
|
|
|
+ @click="onMoneyOperation('account')"
|
|
|
+ type="text">修改</el-button>
|
|
|
<!-- <el-button style="top:0;"
|
|
|
@click="onUpdateCourse"
|
|
|
v-else
|
|
@@ -48,163 +44,212 @@
|
|
|
<p>微信:<span>{{ dataInfo.wxBalance }}</span></p>
|
|
|
</div>-->
|
|
|
</div>
|
|
|
- <el-button @click="onCashAccount" v-permission="'userCashAccountDetail/queryPage'" type="primary">交易明细</el-button>
|
|
|
+ <el-button @click="onCashAccount"
|
|
|
+ v-permission="'userCashAccountDetail/queryPage'"
|
|
|
+ type="primary">交易明细</el-button>
|
|
|
</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-date-picker
|
|
|
- style="width: 400px;"
|
|
|
- v-model.trim="orderDate"
|
|
|
- type="daterange"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- @change="searchCourseDate"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="订单开始日期"
|
|
|
- end-placeholder="订单结束日期"
|
|
|
- ></el-date-picker>
|
|
|
+ <el-date-picker style="width: 400px;"
|
|
|
+ v-model.trim="orderDate"
|
|
|
+ type="daterange"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ @change="searchCourseDate"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="订单开始日期"
|
|
|
+ end-placeholder="订单结束日期"
|
|
|
+ :picker-options="{
|
|
|
+ firstDayOfWeek: 1
|
|
|
+ }"></el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-select
|
|
|
- v-model.trim="searchForm.paymentType"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- @clear="onClear('paymentType')"
|
|
|
- placeholder="交易类型"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item, index) in orderStatus"
|
|
|
- :key="index"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- ></el-option>
|
|
|
+ <el-select v-model.trim="searchForm.paymentType"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ @clear="onClear('paymentType')"
|
|
|
+ placeholder="交易类型">
|
|
|
+ <el-option v-for="(item, index) in orderStatus"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-input
|
|
|
- type="text"
|
|
|
- @keyup.enter.native="search"
|
|
|
- v-model.trim="searchForm.remark"
|
|
|
- placeholder="订单说明"
|
|
|
- ></el-input>
|
|
|
+ <el-input type="text"
|
|
|
+ @keyup.enter.native="search"
|
|
|
+ v-model.trim="searchForm.remark"
|
|
|
+ placeholder="订单说明"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button @click="search" type="danger">搜索</el-button>
|
|
|
- <el-button @click="onReSet" type="primary">重置</el-button>
|
|
|
+ <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 label="订单日期" prop="createTime" align="center" width="150px">
|
|
|
+ <el-table :data="tableList"
|
|
|
+ :header-cell-style="{background:'#EDEEF0',color:'#444'}">
|
|
|
+ <el-table-column label="订单日期"
|
|
|
+ prop="createTime"
|
|
|
+ align="center"
|
|
|
+ width="150px">
|
|
|
<template slot-scope="scope">{{ scope.row.createTime | dateForMinFormat }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="交易类型" align="center" width="180px">
|
|
|
+ <el-table-column label="交易类型"
|
|
|
+ align="center"
|
|
|
+ width="180px">
|
|
|
<template slot-scope="scope">{{ scope.row.type | orderType }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column width="180px" align="center" label="应付金额" prop="expectAmount"></el-table-column>
|
|
|
- <el-table-column width="180px" align="center" label="余额支付" prop="balancePaymentAmount"></el-table-column>
|
|
|
- <el-table-column width="180px" align="center" label="实际金额" prop="actualAmount"></el-table-column>
|
|
|
- <el-table-column width="180px" align="center" label="订单状态" prop="status">
|
|
|
+ <el-table-column width="180px"
|
|
|
+ align="center"
|
|
|
+ label="应付金额"
|
|
|
+ prop="expectAmount"></el-table-column>
|
|
|
+ <el-table-column width="180px"
|
|
|
+ align="center"
|
|
|
+ label="余额支付"
|
|
|
+ prop="balancePaymentAmount"></el-table-column>
|
|
|
+ <el-table-column width="180px"
|
|
|
+ align="center"
|
|
|
+ label="实际金额"
|
|
|
+ prop="actualAmount"></el-table-column>
|
|
|
+ <el-table-column width="180px"
|
|
|
+ align="center"
|
|
|
+ label="订单状态"
|
|
|
+ prop="status">
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{scope.row.status | payStatus}}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="订单说明" align="center" prop="memo"></el-table-column>
|
|
|
+ <el-table-column label="订单说明"
|
|
|
+ align="center"
|
|
|
+ prop="memo"></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>
|
|
|
- <el-dialog title="交易明细" width="850px" :visible.sync="cashAccount.status">
|
|
|
- <el-tabs v-model="activeName" type="border-card">
|
|
|
- <el-tab-pane label="账户余额明细" name="first">
|
|
|
+ <el-dialog title="交易明细"
|
|
|
+ width="850px"
|
|
|
+ :visible.sync="cashAccount.status">
|
|
|
+ <el-tabs v-model="activeName"
|
|
|
+ type="border-card">
|
|
|
+ <el-tab-pane label="账户余额明细"
|
|
|
+ name="first">
|
|
|
<el-table :data="cashAccount.gridData">
|
|
|
<!-- 交易金额,账户可用余额,交易状态,交易类型,操作时间,备注 -->
|
|
|
- <el-table-column align="center" property="amount" label="交易金额"></el-table-column>
|
|
|
- <el-table-column align="center" property="balance" label="账户可用余额"></el-table-column>
|
|
|
- <el-table-column align="center" label="交易状态">
|
|
|
+ <el-table-column align="center"
|
|
|
+ property="amount"
|
|
|
+ label="交易金额"></el-table-column>
|
|
|
+ <el-table-column align="center"
|
|
|
+ property="balance"
|
|
|
+ label="账户可用余额"></el-table-column>
|
|
|
+ <el-table-column align="center"
|
|
|
+ label="交易状态">
|
|
|
<template slot-scope="scope">{{ scope.row.status | payStatus }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" label="交易类型">
|
|
|
+ <el-table-column align="center"
|
|
|
+ label="交易类型">
|
|
|
<template slot-scope="scope">{{ scope.row.type | payType }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" width="160px" property="createTime" label="交易时间"></el-table-column>
|
|
|
- <el-table-column align="center" width="140px" label="备注">
|
|
|
+ <el-table-column align="center"
|
|
|
+ width="160px"
|
|
|
+ property="createTime"
|
|
|
+ label="交易时间"></el-table-column>
|
|
|
+ <el-table-column align="center"
|
|
|
+ width="140px"
|
|
|
+ label="备注">
|
|
|
<template slot-scope="scope">
|
|
|
<span :title="scope.row.comment">{{ scope.row.comment }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <pagination
|
|
|
- :total="cashAccount.total"
|
|
|
- :page.sync="cashAccount.page"
|
|
|
- :limit.sync="cashAccount.limit"
|
|
|
- :page-sizes="cashAccount.page_size"
|
|
|
- @pagination="getCashAccount"
|
|
|
- />
|
|
|
+ <pagination :total="cashAccount.total"
|
|
|
+ :page.sync="cashAccount.page"
|
|
|
+ :limit.sync="cashAccount.limit"
|
|
|
+ :page-sizes="cashAccount.page_size"
|
|
|
+ @pagination="getCashAccount" />
|
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="课程余额明细" name="second">
|
|
|
+ <el-tab-pane label="课程余额明细"
|
|
|
+ name="second">
|
|
|
<el-table :data="courseAccount.gridData">
|
|
|
<!-- 交易金额,账户可用余额,交易状态,交易类型,操作时间,备注 -->
|
|
|
- <el-table-column align="center" property="amount" label="交易金额"></el-table-column>
|
|
|
- <el-table-column align="center" property="balance" label="课程可用余额"></el-table-column>
|
|
|
- <el-table-column align="center" label="交易状态">
|
|
|
+ <el-table-column align="center"
|
|
|
+ property="amount"
|
|
|
+ label="交易金额"></el-table-column>
|
|
|
+ <el-table-column align="center"
|
|
|
+ property="balance"
|
|
|
+ label="课程可用余额"></el-table-column>
|
|
|
+ <el-table-column align="center"
|
|
|
+ label="交易状态">
|
|
|
<template slot-scope="scope">{{ scope.row.status | payStatus }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" label="交易类型">
|
|
|
+ <el-table-column align="center"
|
|
|
+ label="交易类型">
|
|
|
<template slot-scope="scope">{{ scope.row.type | payType }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" width="160px" property="createTime" label="交易时间"></el-table-column>
|
|
|
- <el-table-column align="center" width="140px" label="备注">
|
|
|
+ <el-table-column align="center"
|
|
|
+ width="160px"
|
|
|
+ property="createTime"
|
|
|
+ label="交易时间"></el-table-column>
|
|
|
+ <el-table-column align="center"
|
|
|
+ width="140px"
|
|
|
+ label="备注">
|
|
|
<template slot-scope="scope">
|
|
|
<span :title="scope.row.comment">{{ scope.row.comment }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <pagination
|
|
|
- :total="courseAccount.total"
|
|
|
- :page.sync="courseAccount.page"
|
|
|
- :limit.sync="courseAccount.limit"
|
|
|
- :page-sizes="courseAccount.page_size"
|
|
|
- @pagination="getCourseAccount"
|
|
|
- />
|
|
|
+ <pagination :total="courseAccount.total"
|
|
|
+ :page.sync="courseAccount.page"
|
|
|
+ :limit.sync="courseAccount.limit"
|
|
|
+ :page-sizes="courseAccount.page_size"
|
|
|
+ @pagination="getCourseAccount" />
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</el-dialog>
|
|
|
- <el-dialog
|
|
|
- :title="moneyForm.title"
|
|
|
- width="450px"
|
|
|
- @close="onFormClose('moneyForm')"
|
|
|
- :visible.sync="moneyVisible"
|
|
|
- >
|
|
|
- <el-form ref="moneyForm" :rules="moneyRule" :model="moneyForm" label-width="80px">
|
|
|
- <el-form-item label="操作选择" prop="type">
|
|
|
+ <el-dialog :title="moneyForm.title"
|
|
|
+ width="450px"
|
|
|
+ @close="onFormClose('moneyForm')"
|
|
|
+ :visible.sync="moneyVisible">
|
|
|
+ <el-form ref="moneyForm"
|
|
|
+ :rules="moneyRule"
|
|
|
+ :model="moneyForm"
|
|
|
+ label-width="80px">
|
|
|
+ <el-form-item label="操作选择"
|
|
|
+ prop="type">
|
|
|
<el-radio-group v-model="moneyForm.type">
|
|
|
<el-radio :label="1">充值</el-radio>
|
|
|
<el-radio :label="2">扣除</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="moneyForm.titleType == 'account' ? '课程余额' : '账户余额'">
|
|
|
- <el-input
|
|
|
- type="number"
|
|
|
- disabled
|
|
|
- :value="moneyForm.titleType == 'account' ? dataInfo.courseBalance : dataInfo.balance"
|
|
|
- ></el-input>
|
|
|
+ <el-input type="number"
|
|
|
+ disabled
|
|
|
+ :value="moneyForm.titleType == 'account' ? dataInfo.courseBalance : dataInfo.balance"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="金额" prop="money">
|
|
|
- <el-input type="number" @mousewheel.native.prevent v-model="moneyForm.money"></el-input>
|
|
|
+ <el-form-item label="金额"
|
|
|
+ prop="money">
|
|
|
+ <el-input type="number"
|
|
|
+ @mousewheel.native.prevent
|
|
|
+ v-model="moneyForm.money"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="备注" prop="remark">
|
|
|
- <el-input type="textarea" v-model="moneyForm.remark"></el-input>
|
|
|
+ <el-form-item label="备注"
|
|
|
+ prop="remark">
|
|
|
+ <el-input type="textarea"
|
|
|
+ v-model="moneyForm.remark"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
+ <div slot="footer"
|
|
|
+ class="dialog-footer">
|
|
|
<el-button @click="moneyVisible = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitMoney('moneyForm')">确 定</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ @click="submitMoney('moneyForm')">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<!-- 充值弹窗 -->
|
|
@@ -260,7 +305,7 @@ let validPrice = (rule, value, callback) => {
|
|
|
export default {
|
|
|
name: "studentOrder",
|
|
|
components: { pagination },
|
|
|
- data() {
|
|
|
+ data () {
|
|
|
return {
|
|
|
rechargeVisible: false,
|
|
|
organId: null,
|
|
@@ -322,23 +367,23 @@ export default {
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
- mounted() {
|
|
|
+ mounted () {
|
|
|
this.searchForm.studentId = this.$route.query.userId;
|
|
|
this.getList();
|
|
|
this.__init();
|
|
|
},
|
|
|
- activated() {
|
|
|
+ activated () {
|
|
|
this.searchForm.studentId = this.$route.query.userId;
|
|
|
this.getList();
|
|
|
this.__init();
|
|
|
},
|
|
|
methods: {
|
|
|
- onClear(type) {
|
|
|
+ onClear (type) {
|
|
|
if (type == "paymentType") {
|
|
|
this.searchForm.paymentType = null;
|
|
|
}
|
|
|
},
|
|
|
- __init() {
|
|
|
+ __init () {
|
|
|
getUserCashAccountBaseInfo({ userId: this.$route.query.userId }).then(
|
|
|
res => {
|
|
|
if (res.code == 200) {
|
|
@@ -353,11 +398,11 @@ export default {
|
|
|
}
|
|
|
);
|
|
|
},
|
|
|
- onFormClose(formName) {
|
|
|
+ onFormClose (formName) {
|
|
|
// 关闭弹窗重置验证
|
|
|
this.$refs[formName].resetFields();
|
|
|
},
|
|
|
- onMoneyOperation(type) {
|
|
|
+ onMoneyOperation (type) {
|
|
|
let moneyForm = this.moneyForm;
|
|
|
if (type == "recharge") {
|
|
|
moneyForm.title = "账户余额修改";
|
|
@@ -368,14 +413,14 @@ export default {
|
|
|
}
|
|
|
this.moneyVisible = true;
|
|
|
},
|
|
|
- onCashAccount(item) {
|
|
|
+ onCashAccount (item) {
|
|
|
// 点名表
|
|
|
this.cashAccount.page = 1;
|
|
|
this.getCashAccount();
|
|
|
this.courseAccount.page = 1;
|
|
|
this.getCourseAccount();
|
|
|
},
|
|
|
- getCashAccount() {
|
|
|
+ getCashAccount () {
|
|
|
let cashAccount = this.cashAccount;
|
|
|
let params = {
|
|
|
page: cashAccount.page,
|
|
@@ -391,7 +436,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- getCourseAccount() {
|
|
|
+ getCourseAccount () {
|
|
|
let courseAccount = this.courseAccount;
|
|
|
let params = {
|
|
|
page: courseAccount.page,
|
|
@@ -407,7 +452,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- submitMoney(formName) {
|
|
|
+ submitMoney (formName) {
|
|
|
this.$refs[formName].validate(valid => {
|
|
|
if (valid) {
|
|
|
let moneyForm = this.moneyForm;
|
|
@@ -431,7 +476,7 @@ export default {
|
|
|
} else {
|
|
|
courseBalance = Number(
|
|
|
Number(dataInfo.courseBalance) -
|
|
|
- Number(moneyForm.money).toFixed(2)
|
|
|
+ Number(moneyForm.money).toFixed(2)
|
|
|
);
|
|
|
}
|
|
|
}
|
|
@@ -483,7 +528,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- onUpdateCourse() {
|
|
|
+ onUpdateCourse () {
|
|
|
if (!this.dataInfo.courseBalance) {
|
|
|
this.$message.error("请输入课程余额");
|
|
|
return;
|
|
@@ -512,11 +557,11 @@ export default {
|
|
|
this.amountStatus = true;
|
|
|
});
|
|
|
},
|
|
|
- search() {
|
|
|
+ search () {
|
|
|
this.pageInfo.page = 1;
|
|
|
this.getList();
|
|
|
},
|
|
|
- getList() {
|
|
|
+ getList () {
|
|
|
let params = this.searchForm;
|
|
|
params.rows = this.pageInfo.limit;
|
|
|
params.page = this.pageInfo.page;
|
|
@@ -530,7 +575,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- searchCourseDate(value) {
|
|
|
+ searchCourseDate (value) {
|
|
|
if (value) {
|
|
|
this.searchForm.orderStartDate = value[0];
|
|
|
this.searchForm.orderEndDate = value[1];
|
|
@@ -539,7 +584,7 @@ export default {
|
|
|
this.searchForm.orderEndDate = null;
|
|
|
}
|
|
|
},
|
|
|
- onReSet() {
|
|
|
+ onReSet () {
|
|
|
// 重置搜索
|
|
|
this.orderDate = null;
|
|
|
this.searchForm = {
|
|
@@ -550,7 +595,7 @@ export default {
|
|
|
remark: null
|
|
|
};
|
|
|
},
|
|
|
- submitRecharge() {
|
|
|
+ submitRecharge () {
|
|
|
let money = parseFloat(
|
|
|
this.dataInfo.courseBalance - this.rechargeForm.money
|
|
|
).toFixed(2);
|