Commit 085e6935 authored by zhengke's avatar zhengke
parents a9f7a8ca b8052eaf
......@@ -1252,9 +1252,6 @@ vjs.getAbsoluteURL = function(url){
vjs.log = function(){
vjs.log.history = vjs.log.history || []; // store logs to an array for reference
vjs.log.history.push(arguments);
if(window.console){
window.console.log(Array.prototype.slice.call(arguments));
}
};
// Offset Left
......
......@@ -337,11 +337,7 @@
var _stuff_height = _max_y - _min_y + 50
var _final_x = (this.graphSetting.viewSize.width - _stuff_width)/2 - _min_x
var _final_y = (this.graphSetting.viewSize.height - _stuff_height)/2 - _min_y
// if (window.SeeksGraphDebug) console.log('_min_x, _min_y, _stuff_width, _stuff_height:', _min_x, _min_y, _stuff_width, _stuff_height)
// var _final_x = -_min_x
// var _final_y = -_min_y
this.animateGoto(_final_x, _final_y, 500, () => {
// this.graphSetting.checkedNodeId = thisNode.id
this.refreshNVAnalysisInfo()
})
})
......@@ -365,9 +361,7 @@
} else {
this.graphSetting.layouter = SeeksRGLayouters.createLayout(_defaultLayoutSetting, this.graphSetting)
}
} else {
console.log('你需要设置layouts来指定当前图谱可以使用的布局器!')
}
}
this.doLayout()
callback(this)
},
......@@ -788,9 +782,7 @@
} else {
this.graphSetting.layouter = SeeksRGLayouters.createLayout(_defaultLayoutSetting, this.graphSetting)
}
} else {
console.log('你需要设置layouts来指定当前图谱可以使用的布局器!')
}
}
var __root_id = jsonData['rootId']
this.loadGraphJsonData(jsonData)
......@@ -1056,7 +1048,7 @@
this.graphSetting.canvasOffset.y = _origin_offset_y
this.canvasBackgroundColor = 'transparent'
} catch (e) {
console.log('[SEEKS Graph]Create and download image error:', e)
}
})
})
......
......@@ -50,12 +50,19 @@
</div>
</div>
<div class="text-subtitle2 text-weight-bold q-mb-md">
<span>课程信息</span>
<span>
<template v-if="obj.OfferType==1">
课程信息
</template>
<template v-else>
留学就业信息
</template>
</span>
</div>
<div class="q-mt-md">
<q-table :pagination="pageInfo" no-data-label="暂无相关数据" flat
class="sticky-header-table sticky-right-column-table no-bottom-table" separator="none"
:data="chosenCourses" :columns="columns" row-key="name">
class="sticky-header-table sticky-right-column-table no-bottom-table" separator="none" :data="chosenCourses"
:columns="columns" row-key="name" :visible-columns="visibleColumns">
<template v-slot:body-cell-DiscountRemark="props">
<q-td :props="props" class="text-negative">
<div v-for="(x, i) in props.value.split('^')" style="border-bottom:1px dotted #f5f6f7;">
......@@ -66,31 +73,33 @@
<!--设置课程-->
<template v-slot:body-cell-ClassId="props">
<q-td>
<template v-if="props.row.ClassId>0">
{{props.row.ClassName}}
</template>
<template v-else>
选择班级
<template v-if="obj.OfferType==1">
<template v-if="props.row.ClassId>0">
{{props.row.ClassName}}
</template>
<template v-else>
选择班级
</template>
&nbsp;
<i class="iconfont icon-edit" @click.stop="setClass(props.row)" title="选择班级">
<q-popup-proxy>
<q-banner v-if="isShowClass">
<div class="calenderDialog">
<div style="margin:10px 0 15px 0;">选择班级</div>
<q-select standout="bg-primary text-white" option-value="ClassId" option-label="ClassName"
v-model="props.row.ClassId" :options="props.row.ClassList" emit-value map-options label="班级"
@input="changeClass(props.row)" />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" @click="isShowClass=false"
style="font-weight:400 !important" />
<q-btn label="确认" color="accent q-px-md" style="font-weight:400 !important"
@click="isShowClass=false" />
</q-card-actions>
</div>
</q-banner>
</q-popup-proxy>
</i>
</template>
&nbsp;
<i class="iconfont icon-edit" @click.stop="setClass(props.row)" title="选择班级">
<q-popup-proxy>
<q-banner v-if="isShowClass">
<div class="calenderDialog">
<div style="margin:10px 0 15px 0;">选择班级</div>
<q-select standout="bg-primary text-white" option-value="ClassId" option-label="ClassName"
v-model="props.row.ClassId" :options="props.row.ClassList" emit-value map-options label="班级"
@input="changeClass(props.row)" />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" @click="isShowClass=false"
style="font-weight:400 !important" />
<q-btn label="确认" color="accent q-px-md" style="font-weight:400 !important"
@click="isShowClass=false" />
</q-card-actions>
</div>
</q-banner>
</q-popup-proxy>
</i>
</q-td>
</template>
<template v-slot:bottom>
......@@ -106,7 +115,14 @@
}}</span>
</div>
<div class="col text-right">
<span>课程总价:</span>
<span>
<template v-if="obj.OfferType==1">
课程总价:
</template>
<template v-else>
留学就业总价:
</template>
</span>
<span class="q-ml-xs text-weight-bold">¥{{
model.TotalPrice ? model.TotalPrice.toFixed(2) : "0.00"
}}</span>
......@@ -206,6 +222,11 @@
field: row => row.ClassId
},
],
//表格可见列
visibleColumns: [
'CourseName', 'OriginalPrice', 'JoinNum', "DiscountPrice", "DiscountRemark", "ActualPrice",
"ClassId",
], //可见列
pageInfo: {
pageIndex: 1,
pageSize: 12,
......@@ -219,7 +240,9 @@
},
created() {
if (this.obj && this.obj.OfferType != 1) {
this.visibleColumns.splice(this.visibleColumns.length - 1, 1);
}
},
mounted() {
this.initObj();
......@@ -230,7 +253,7 @@
this.isShowClass = true;
getClassDropDownList({
CourseId: item.CourseId,
IsAddDefault:1,//添加默认选项
IsAddDefault: 1, //添加默认选项
}).then(res => {
item.ClassList = [];
if (res.Code == 1) {
......@@ -302,6 +325,7 @@
transOfferToOrder() {
var sMsg = {
OfferId: this.model.Id,
OfferType:this.obj.OfferType,
OfferDetails: this.model.OfferDetails
};
saveOfferToOrder(sMsg).then(res => {
......
......@@ -259,7 +259,7 @@
<div class="col">
<div class="row" style="justify-content: space-between">
<span>收款单据:</span>
<q-btn flat size="xs" icon="edit" v-if="isShowClass" style="font-weight:400;color: #02C499" label="修改"
<q-btn flat size="xs" icon="edit" v-if="AuthorityObj.isShowFinanceBtn" style="font-weight:400;color: #02C499" label="修改"
@click="chanceType(item,1)" />
</div>
<div class="row wrap">
......@@ -272,7 +272,7 @@
</div>
<div class="row" style="justify-content: space-between">
<span>付款单据:</span>
<q-btn flat size="xs" icon="edit" v-if="isShowClass" style="font-weight:400;color: #02C499" label="修改"
<q-btn flat size="xs" icon="edit" v-if="AuthorityObj.isShowFinanceBtn" style="font-weight:400;color: #02C499" label="修改"
@click="chanceType(item,2)" />
</div>
<div class="row wrap">
......@@ -470,7 +470,7 @@
</div>
</div>
<div class="row" style="justify-content: space-between">
<span>付款单据:</span>
<span>付款单据:</span>
<q-btn flat size="xs" icon="edit" v-if="AuthorityObj.isShowFinanceBtn"
style="font-weight:400;color: #02C499" label="修改" @click="chanceType(item,2)" />
</div>
......@@ -660,6 +660,7 @@
this.AuthorityObj.isShowRenewClass = this.authObj.isShowRenewClass;
}
}
console.log(" this.AuthorityObj", this.AuthorityObj)
},
closeQuota() {
this.isShowviewQuo = false;
......
......@@ -256,26 +256,23 @@
this.model.OfferDetails = tempObj.OfferDetails;
this.chosenProductList = tempObj.OfferDetails;
}
console.log("this.model",this.model);
console.log("this.tempObj",tempObj);
console.log("this.chosenProductList",this.chosenProductList );
}
})
} else {
this.model = {
Id: 0,
Name: "测试",
Name: "",
OfferType: 2, //默认留学(2-留学,3-就业)
EffectiveStart: "",
EffectiveEnd: "2021-04-04",
EffectiveEnd: "",
CustomerType: 1,
CustomerSource: 1,
TotalOriginalPrice: 0.0,
TotalPrice: 0.0,
TotalDiscountPrice: 0.0,
CustomerInfo: "客户信息",
CustomerName: "客户姓名",
CustomerTel: "电话",
CustomerInfo: "",
CustomerName: "",
CustomerTel: "",
OfferDetails: [],
JoinNum: 1
};
......
......@@ -132,8 +132,8 @@
@click="EditCourse(props.row, 1)" />
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="价格设置"
@click="EditCourse(props.row, 2)" v-if="isHavePriceAction" />
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400;" label="详情"
@click="goMycourse(props.row)" />
<!-- <q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400;" label="详情"
@click="goMycourse(props.row)" /> -->
</q-td>
</template>
</q-table>
......
......@@ -130,7 +130,7 @@
<div class="col-3">
<q-select filled stack-label use-input input-debounce="0" option-value="Id" clearable @input="resetSearch"
option-label="EmployeeName" v-model="msg.CreateBy" :options="EmployeeList" label="员工" :dense="false"
emit-value map-options @filter="filterFn" >
emit-value map-options @filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
......@@ -231,6 +231,12 @@
field: "Name",
align: "left"
},
{
name: "OfferTypeName",
label: "类型",
field: "OfferTypeName",
align: "left"
},
{
name: "CustomerName",
required: true,
......@@ -313,7 +319,8 @@
},
computed: mapState({
isHavePriceAction(state) {
if (state.user.userInfo&&state.user.userInfo.ActionMenuList&&state.user.userInfo.ActionMenuList.length>0) {
if (state.user.userInfo && state.user.userInfo.ActionMenuList && state.user.userInfo.ActionMenuList.length >
0) {
let action = state.user.userInfo.ActionMenuList.find(x => {
if (x.FunctionCode == "Edit_Offer_Price") {
return x;
......@@ -352,10 +359,6 @@
if (res.Code == 1) {
var jsonData = res.Data;
if (jsonData && jsonData.length > 0) {
// jsonData.unshift({
// Id: 0,
// EmployeeName: "请选择"
// });
this.AllemployeeList = JSON.parse(JSON.stringify(jsonData));
this.EmployeeList = JSON.parse(JSON.stringify(jsonData));;
}
......@@ -366,8 +369,12 @@
},
//跳转到订单列表
goOrderList(item) {
var url = "/sale/myOrder";
if (item.OfferType != 1) {
url = "/sale/studyOrder";
}
this.$router.push({
path: "/sale/myOrder",
path: url,
query: {
OrderId: item
}
......
......@@ -400,8 +400,12 @@
},
//跳转到订单列表
goOrderList(item) {
var url = "/sale/myOrder";
if (item.OfferType != 1) {
url = "/sale/studyOrder";
}
this.$router.push({
path: "/sale/myOrder",
path: url,
query: {
OrderId: item
}
......
......@@ -80,7 +80,7 @@
</div>
</div>
<div class="page-content">
<orderlist :dataList="data.List" :isShowClass="false" :authObj="authObj" @success="refreshClassOrder" ref="orderL">
<orderlist :dataList="data.List" :authObj="authObj" @success="refreshClassOrder" ref="orderL">
</orderlist>
<div class="row" style="justify-content: flex-end;padding: 5px 20px">
<q-pagination v-model="msg.pageIndex" :max="pageCount" @input="changePage" class="full-width justify-end"
......
......@@ -267,7 +267,6 @@
methods: {
//显示下单弹窗
showOrderForm(item) {
console.log("item",item)
this.isShowOrderForm = true;
this.studyObj = item;
},
......
......@@ -27,6 +27,10 @@
</template>
<template v-slot:body="props">
<q-tr :props="props">
<q-td auto-width>
<q-btn size="sm" color="accent" round dense @click="props.row.expand = !props.row.expand"
:icon="props.row.expand ? 'remove' : 'add'" />
</q-td>
<template v-for="col in props.cols">
<q-td v-if="col.name == 'Name'" style="width:200px;">
{{col.value}}
......@@ -56,7 +60,7 @@
<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......@@ -65,7 +69,7 @@
双人报名享<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......@@ -74,7 +78,7 @@
续费享<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......@@ -146,14 +150,35 @@
<q-td v-else-if="col.name == 'Id'" style="width:200px;">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="EditStudy(props.row)" />
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="价格设置"
@click="EditStudyPrice(props.row)" />
<q-btn v-if="props.row.SaleState==1||props.row.SaleState==4" flat size="xs" icon="edit" color="accent"
style="font-weight:400" label="申请审核" @click="applyApply(props.row)" />
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup @click="EditStudyPrice(props.row)">
<q-item-section>
<q-item-label>价格设置</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup v-if="props.row.SaleState==1||props.row.SaleState==4"
@click="applyApply(props.row)">
<q-item-section>
<q-item-label>申请审核</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="GoToOrder(props.row)">
<q-item-section>
<q-item-label>订单中心</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="GoToPayment(props.row)">
<q-item-section>
<q-item-label>收支明细</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</q-td>
</template>
</q-tr>
<q-tr :props="props">
<q-tr v-show="props.row.expand" :props="props">
<q-td colspan="100%" class="bg-grey-2">
<div style="display:flex;">
<div style="flex-shrink:0">备注:</div>
......@@ -214,6 +239,12 @@
dataList: [],
loading: true,
columns: [{
name: 'Remark',
label: '备注',
field: 'Remark',
align: 'left'
},
{
name: 'Name',
label: '项目名称',
field: 'Name',
......@@ -281,7 +312,7 @@
],
//表格可见列
visibleColumns: [
'Name', 'SuggestPrice', 'SellPrice', "PreferentialList", "PreferentialListSellCommission",
'Remark', 'Name', 'SuggestPrice', 'SellPrice', "PreferentialList", "PreferentialListSellCommission",
"PreferentialListB2BCommission",
"EducationCommission", 'SaleStateName', 'Id', 'SupplierName',
], //可见列
......@@ -331,6 +362,23 @@
}
},
methods: {
//跳转到留学就业订单中心
GoToOrder(item) {
var tempStr = '/studyAbroad/studyemploymentorder?SourceId=' + item.Id;
this.$router.push({
path: tempStr
});
},
//跳转到收支明细
GoToPayment(item) {
this.$router.push({
path: '/studyAbroad/studypayment',
query: {
SourceId: item.Id,
blank: 'y'
}
})
},
//显示详情
ShowInfo(item) {
this.studyObj = item;
......@@ -352,7 +400,13 @@
this.loading = true;
queryStudyAbroadPage(this.msg).then(res => {
this.loading = false;
this.dataList = res.Data.PageData;
var tempArray = res.Data.PageData;
if (tempArray && tempArray.length > 0) {
tempArray.forEach(item => {
item.expand = false;
})
}
this.dataList = tempArray;
this.PageCount = res.Data.PageCount;
})
.catch(() => {
......
......@@ -55,7 +55,7 @@
<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......@@ -64,7 +64,7 @@
双人报名享<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......@@ -73,7 +73,7 @@
续费享<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......
......@@ -27,6 +27,10 @@
</template>
<template v-slot:body="props">
<q-tr :props="props">
<q-td auto-width>
<q-btn size="sm" color="accent" round dense @click="props.row.expand = !props.row.expand"
:icon="props.row.expand ? 'remove' : 'add'" />
</q-td>
<template v-for="col in props.cols">
<q-td v-if="col.name == 'Name'" style="width:200px;">
{{col.value}}
......@@ -56,7 +60,7 @@
<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......@@ -65,7 +69,7 @@
双人报名享<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......@@ -74,7 +78,7 @@
续费享<template v-if="x.PriceType==0">
{{ 100 - x.PriceMoney }}
</template>
<template>
<template v-else>
{{x.PriceMoney}}
</template>
优惠
......@@ -146,14 +150,35 @@
<q-td v-else-if="col.name == 'Id'" style="width:200px;">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="EditStudy(props.row)" />
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="价格设置"
@click="EditStudyPrice(props.row)" />
<q-btn v-if="props.row.SaleState==1||props.row.SaleState==4" flat size="xs" icon="edit" color="accent"
style="font-weight:400" label="申请审核" @click="applyApply(props.row)" />
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup @click="EditStudyPrice(props.row)">
<q-item-section>
<q-item-label>价格设置</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup v-if="props.row.SaleState==1||props.row.SaleState==4"
@click="applyApply(props.row)">
<q-item-section>
<q-item-label>申请审核</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="GoToOrder(props.row)">
<q-item-section>
<q-item-label>订单中心</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="GoToPayment(props.row)">
<q-item-section>
<q-item-label>收支明细</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</q-td>
</template>
</q-tr>
<q-tr :props="props">
<q-tr v-show="props.row.expand" :props="props">
<q-td colspan="100%" class="bg-grey-2">
<div style="display:flex;">
<div style="flex-shrink:0">备注:</div>
......@@ -215,6 +240,12 @@
dataList: [],
loading: true,
columns: [{
name: 'Remark',
label: '备注',
field: 'Remark',
align: 'left'
},
{
name: 'Name',
label: '项目名称',
field: 'Name',
......@@ -282,7 +313,7 @@
],
//表格可见列
visibleColumns: [
'Name', 'SuggestPrice', 'SellPrice', "PreferentialList", "PreferentialListSellCommission",
'Remark', 'Name', 'SuggestPrice', 'SellPrice', "PreferentialList", "PreferentialListSellCommission",
"PreferentialListB2BCommission",
"EducationCommission", 'SaleStateName', 'Id', 'SupplierName',
], //可见列
......@@ -332,6 +363,23 @@
}
},
methods: {
//跳转到留学就业订单中心
GoToOrder(item) {
var tempStr = '/studyAbroad/studyemploymentorder?SourceId=' + item.Id;
this.$router.push({
path: tempStr
});
},
//跳转到收支明细
GoToPayment(item) {
this.$router.push({
path: '/studyAbroad/studypayment',
query: {
SourceId: item.Id,
blank: 'y'
}
})
},
//显示详情
ShowInfo(item) {
this.studyObj = item;
......@@ -353,7 +401,13 @@
this.loading = true;
queryStudyAbroadPage(this.msg).then(res => {
this.loading = false;
this.dataList = res.Data.PageData;
var tempArray = res.Data.PageData;
if (tempArray && tempArray.length > 0) {
tempArray.forEach(item => {
item.expand = false;
})
}
this.dataList = tempArray;
this.PageCount = res.Data.PageCount;
})
.catch(() => {
......
<template>
<div class="page-body myOrder">
<div class="row col" style="height: 40px">
<div class="row col" style="justify-content: space-between;align-items: center;margin-bottom: 10px">
<div>
<template v-if="data&& data.ClassInfo">
{{data.ClassInfo.StudyName}}
</template>
</div>
</div>
</div>
<div class="page-content">
<orderlist :dataList="dataList" ref="orderL" :authObj="authObj" :cancelList="CancelList"
@success="refreshClassOrder"></orderlist>
</div>
</div>
</template>
<script>
import {
quertClassOrderList
} from '../../api/sale/sale';
import orderlist from '../../components/sale/orderlist'
export default {
components: {
orderlist
},
data() {
return {
data: {},
msg: {
SourceId: 0
},
//正常订单
dataList: [],
//取消订单
CancelList: [],
//权限判断
authObj: {
isShowName: false, //不显示班级名称
isShowEditSale: true, //显示修改销售按钮
isShowEducationRemark: true, //显示修改教务备注
isShowPrincipalRemark: true, //显示校长备注
isShowManagerRemark: true, //显示总经理备注
isShowCommissionEdit: true, //显示修改提成按钮
isShowRewardEdit: true, //显示修改额外提成按钮
}
}
},
created() {
if (this.$route.query.SourceId) {
this.msg.SourceId = this.$route.query.SourceId;
}
this.getList();
},
mounted() {
},
methods: {
//获取菜单分页列表
getList() {
this.loading = true;
quertClassOrderList(this.msg).then(res => {
this.data = res.Data;
if (this.data && this.data.OrderList && this.data.OrderList.NorList) {
this.dataList = this.data.OrderList.NorList;
let OrderIds = []
this.dataList.forEach(x => {
OrderIds.push(x.OrderId)
})
if (OrderIds.length > 0) {
OrderIds = OrderIds.join(',')
if (this.dataList.length > 0) {
this.$refs.orderL.getOrderFinanceList(OrderIds, 1)
}
}
}
if (this.data && this.data.OrderList && this.data.OrderList.CancelList) {
this.CancelList = this.data.OrderList.CancelList;
let OrderIds = []
this.CancelList.forEach(x => {
OrderIds.push(x.OrderId)
})
if (OrderIds.length > 0) {
OrderIds = OrderIds.join(',')
if (this.CancelList.length > 0) {
this.$refs.orderL.getOrderFinanceList(OrderIds, 2)
}
}
}
this.loading = false
}).catch(() => {
this.loading = false
})
},
//刷新页面
refreshClassOrder() {
this.getList();
}
}
}
</script>
<style>
</style>
<style>
.studyPayment .p_title {
font-weight: bold;
color: #000000;
font-size: 14px;
margin-bottom: 20px;
}
.studyPayment .paymentList {
height: 170px;
border-radius: 3px;
box-shadow: 0 0 5px #d1d1d1;
margin-right: 10px;
padding: 12px;
}
.studyPayment .paymentList:last-child {
margin-right: 0;
}
.studyPayment .pay_topList {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.studyPayment .pay_Title {
margin-left: 5px;
color: #111111;
font-size: 13px;
font-weight: bold;
}
.studyPayment .pay_ListMent {
display: flex;
font-size: 12px;
margin-bottom: 6px;
}
.studyPayment .pay_ListOne {
width: 50px;
color: #999999;
text-align: left;
}
.studyPayment .pay_Inner {
margin-left: 10px;
color: #111111;
font-weight: bold;
}
.studyPayment .orangeStyle {
color: #F28C1D;
}
.studyPayment .pay_ListTwo {
width: 25px;
color: #999999;
text-align: left;
}
.studyPayment .pay_InorOut {
margin-top: 20px;
}
.studyPayment .Pay_Line {
width: 3px;
height: 11px;
margin-right: 10px;
background-color: #3FC4FF;
display: inline-block;
}
.studyPayment .pay_TopTitle {
font-weight: bold;
color: #000000;
font-size: 13px;
}
.studyPayment .payTable {
width: 100%;
border-collapse: collapse;
}
.studyPayment .payTable tr th {
background: #fff;
height: 40px;
font-size: 12px;
font-weight: bold;
color: #2D2D2D;
background: #DDDEE0;
}
.studyPayment .payTable tr {
background: #fff;
text-align: center;
height: 40px;
}
.studyPayment .payTable tr td {
font-size: 13px;
text-align: center;
color: #2D2D2D;
padding: 10px 0;
font-weight: bold;
border-bottom: 1px solid #E5E5E5;
}
.studyPayment .finince_Order {
color: #2961FE;
text-decoration: underline;
cursor: pointer;
font-weight: bold;
}
.studyPayment .finice_pass {
display: inline-block;
width: 50px;
height: 25px;
line-height: 25px;
background: #ccf3eb;
color: #02C499;
border-radius: 2px;
}
.studyPayment .financeYing {
width: 110px;
text-align: left;
margin: auto;
}
.p_titleList {
position: relative;
}
</style>
<template>
<div class="page-body studyPayment">
<div class="page-search items-center">
<div class="p_titleList">
<div class="p_title">留学就业收支明细</div>
<q-btn label="导出" color="accent q-px-md" size="sm"
style="font-weight:400 !important;position:absolute;right:0;top:0" @click="exportOrder" />
</div>
<div class="row">
<div class="col paymentList" v-if="dataList&&dataList.ClassInfo">
<div class="pay_topList">
<img src="../../assets/images/myimg/bjqk.png" alt="" />
<span class="pay_Title">项目情况</span>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne">项目名称</div>
<div class="pay_Inner">{{dataList.ClassInfo.ClassName}}</div>
</div>
</div>
<div class="col paymentList">
<div class="pay_topList">
<img src="../../assets/images/myimg/bjsr.png" alt="" />
<span class="pay_Title">收入</span>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">应收</div>
<div class="pay_Inner">¥{{dataList.IncomeReceive}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">实收</div>
<div class="pay_Inner orangeStyle">¥{{dataList.IncomeActual}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">待收</div>
<div class="pay_Inner orangeStyle">¥{{getShiShou(dataList.IncomeReceive,dataList.IncomeActual)}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo"></div>
<div class="pay_Inner">应收=订单应收总额,实收=订单 实收总额</div>
</div>
</div>
<div class="col paymentList">
<div class="pay_topList">
<img src="../../assets/images/myimg/qt.png" alt="" />
<span class="pay_Title">其他</span>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">应收</div>
<div class="pay_Inner">¥{{dataList.OtherIncomeReceive}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">实收</div>
<div class="pay_Inner orangeStyle">¥{{dataList.OtherIncomeActual}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">待收</div>
<div class="pay_Inner orangeStyle">¥{{getShiShou(dataList.OtherIncomeReceive,dataList.OtherIncomeActual)}}
</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo"></div>
<div class="pay_Inner">此处不进入"利润"计算,单纯只统计除班级费外的其他总收入</div>
</div>
</div>
<div class="col paymentList">
<div class="pay_topList">
<img src="../../assets/images/myimg/zc.png" alt="" />
<span class="pay_Title">支出</span>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">应付</div>
<div class="pay_Inner">¥{{dataList.PayReceive}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">实付</div>
<div class="pay_Inner orangeStyle">¥{{dataList.PayActual}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo">待付</div>
<div class="pay_Inner orangeStyle ">¥{{getShiShou(dataList.PayReceive,dataList.PayActual)}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListTwo"></div>
<div class="pay_Inner">成本单据总额(含退款)+销售提成+ 课时费</div>
</div>
</div>
<div class="col paymentList">
<div class="pay_topList">
<img src="../../assets/images/myimg/lr.png" alt="" />
<span class="pay_Title">利润</span>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne">实际利润</div>
<div class="pay_Inner">¥{{dataList.ProfitActual}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne">当前利润</div>
<div class="pay_Inner orangeStyle">¥{{dataList.ProfitNow}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne"></div>
<div class="pay_Inner">实收-(应付/实付)+其他收入-总支出</div>
</div>
</div>
<div class="col paymentList">
<div class="pay_topList">
<img src="../../assets/images/myimg/tc.png" alt="" />
<span class="pay_Title">提成</span>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne">销售提成</div>
<div class="pay_Inner">¥{{dataList.SaleCommission}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne">课时费</div>
<div class="pay_Inner">¥{{dataList.TeacherProfitNow}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne">绩效奖励</div>
<div class="pay_Inner orangeStyle ">¥{{dataList.MeritsProfit}}</div>
</div>
</div>
</div>
<div class="pay_InorOut">
<div class="pay_TopTitle" style="display:flex;justify-content: space-between;align-items:center;">
<div><span class="Pay_Line"></span>收入</div>
<q-btn label="新增收款" color="accent q-px-md" size="sm" style="font-weight:400 !important;"
@click="goShoukuan(1)" />
</div>
<div class="pay_TopTitle" style="margin:15px 0 15px 20px;font-size:12px;">
<span class="Pay_Line" style="background-color:#02C499;"></span>学费收入
</div>
<table class="payTable">
<tr>
<th width="180">单号</th>
<th width="200">费用类型</th>
<th width="500">交易明细</th>
<th width="300">金额</th>
<th width="200">交易日期</th>
<th width="250">制单人员</th>
<th width='180'>审核状态</th>
<th width="200">当前审核人</th>
</tr>
<tr v-if="dataList && dataList.FiniceReciveList==0">
<td :colspan="8" align="center">暂无数据</td>
</tr>
<tr v-for="(item,index) in dataList.FiniceReciveList" :key="index">
<td>
<span class="finince_Order" @click="goOrderDetail('FinancialDocumentsDetail',item)">{{item.FrID}}</span>
</td>
<td><span v-for="subItem in item.CostTypeList" :key="subItem.subCode">{{subItem}}</span></td>
<td style="text-align:left;">
<div v-for="childItem in item.TradeWayList">
支付方式:{{childItem.Alias}}<span class="TB_Rate"> 币种:{{childItem.CurrencyName}}</span>
<span class="Team_Coins orangeStyle">{{childItem.OriginalMoney}}*{{childItem.Rate}}</span>
<span class="TB_Rate" style="margin-left:10px;">汇率:{{childItem.Rate}}</span>
</div>
</td>
<td>
<div class="financeYing">
应收:{{item.Money}}<br />
实收:{{item.PayMoney}}
</div>
</td>
<td>{{item.TradeDate}}</td>
<td>
<div>{{item.RB_CreateByName}}</div>
<div>{{item.CreateDate}}</div>
</td>
<td>
<div class="finice_pass">{{item.StatusStr}}</div>
</td>
<td>
<div v-for="AuditItem in item.AuditList">
{{AuditItem.AuditEmName}}
<span class="TB_Rate">{{AuditItem.AuditDate}}</span>
</div>
</td>
</tr>
</table>
<div class="pay_TopTitle" style="margin:30px 0 15px 20px;font-size:12px;">
<span class="Pay_Line" style="background-color:#02C499;"></span>其他收入
</div>
<table class="payTable">
<tr>
<th width="180">单号</th>
<th width="200">费用类型</th>
<th width="500">交易明细</th>
<th width="300">金额</th>
<th width="200">交易日期</th>
<th width="250">制单人员</th>
<th width='180'>审核状态</th>
<th width="200">当前审核人</th>
</tr>
<tr v-if="dataList && dataList.OtherFiniceReciveList==0">
<td :colspan="8" align="center">暂无数据</td>
</tr>
<tr v-for="(item,index) in dataList.OtherFiniceReciveList" :key="index">
<td>
<span class="finince_Order">{{item.FrID}}</span>
</td>
<td><span v-for="subItem in item.CostTypeList" :key="subItem.subCode">{{subItem}}</span></td>
<td style="text-align:left;">
<div v-for="childItem in item.TradeWayList">
支付方式:{{childItem.Alias}}<span class="TB_Rate"> 币种:{{childItem.CurrencyName}}</span>
<span class="Team_Coins orangeStyle">{{childItem.OriginalMoney}}*{{childItem.Rate}}</span>
<span class="TB_Rate" style="margin-left:10px;">汇率:{{childItem.Rate}}</span>
</div>
</td>
<td>
<div class="financeYing">
应收:{{item.Money}}<br />
实收:{{item.PayMoney}}
</div>
</td>
<td>{{item.TradeDate}}</td>
<td>
<div>{{item.RB_CreateByName}}</div>
<div>{{item.CreateDate}}</div>
</td>
<td>
<div class="finice_pass">{{item.StatusStr}}</div>
</td>
<td>
<div v-for="AuditItem in item.AuditList">
{{AuditItem.AuditEmName}}
<span class="TB_Rate">{{AuditItem.AuditDate}}</span>
</div>
</td>
</tr>
</table>
<div class="pay_TopTitle"
style="margin-top:30px;display:flex;justify-content: space-between;align-items:center;">
<div><span class="Pay_Line" style="background:#F72E52;"></span>支出</div>
<q-btn label="新增付款" color="accent q-px-md" size="sm" style="font-weight:400 !important;"
@click="goShoukuan(2)" />
</div>
<div class="pay_TopTitle" style="margin:15px 0 15px 20px;font-size:12px;">
<span class="Pay_Line" style="background-color:#F28C1D;"></span>其他支出
</div>
<table class="payTable">
<tr>
<th width="180">单号</th>
<th width="200">费用类型</th>
<th width="500">交易明细</th>
<th width="300">金额</th>
<th width="200">交易日期</th>
<th width="250">制单人员</th>
<th width='180'>审核状态</th>
<th width="200">当前审核人</th>
</tr>
<tr v-if="dataList && dataList.OtherFinicePayList==0">
<td :colspan="8" align="center">暂无数据</td>
</tr>
<tr v-for="(item,index) in dataList.OtherFinicePayList" :key="index">
<td>
<span class="finince_Order" @click="goOrderDetail('FinancialDocumentsDetail',item)">{{item.FrID}}</span>
</td>
<td><span v-for="subItem in item.CostTypeList" :key="subItem.subCode">{{subItem}}</span></td>
<td style="text-align:left;">
<div v-for="childItem in item.TradeWayList">
支付方式:{{childItem.Alias}}<span class="TB_Rate">币种:{{childItem.CurrencyName}}</span>
<span class="Team_Coins orangeStyle">-{{childItem.OriginalMoney}}*{{childItem.Rate}}</span>
<span class="TB_Rate" style="margin-left:10px;">汇率:{{childItem.Rate}}</span>
</div>
</td>
<td>
<div class="financeYing">
应付:{{item.Money}}<br />
实付:{{item.PayMoney}}
</div>
</td>
<td>{{item.TradeDate}}</td>
<td>
<div>{{item.RB_CreateByName}}</div>
<div>{{item.CreateDate}}</div>
</td>
<td>
<div class="finice_pass">{{item.StatusStr}}</div>
</td>
<td>
<div v-for="AuditItem in item.AuditList">
{{AuditItem.AuditEmName}}
<span class="TB_Rate">{{AuditItem.AuditDate}}</span>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</template>
<script>
import {
GetClassBalanceSheet,
} from '../../api/finance/index';
import {
EduDownLoad,
} from '../../api/common/common';
export default {
props: {},
components: {},
data() {
return {
dataList: [], //数据
msg: {
SourceId: 0,
},
}
},
created() {
},
mounted() {
if (this.$route.query.SourceId && this.$route.query.SourceId) {
this.msg.SourceId = this.$route.query.SourceId;
}
this.getData();
},
methods: {
getData() {
GetClassBalanceSheet(this.msg).then(res => {
if (res.Code == 1) {
this.dataList = res.Data;
}
})
},
//减法 得实收
getShiShou(num1, num2) {
if (num1 !== '' && num2 !== '') {
return parseInt(num1) - parseInt(num2);
} else {
return 0;
}
},
//跳转到订单详情
goOrderDetail(path, item) {
this.$router.push({
path: '/financial/financalDocument/' + path,
query: {
"id": item.FrID,
blank: 'y',
tab: '单据详情'
}
})
},
//导出单据
exportOrder() {
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/Finance/GetClassBalanceSheetToExcel", msg, "收支明细.xls")
},
//跳转到收款单
goShoukuan(type) {
let TCIDARR = []
TCIDARR.push(this.msg.ClassId)
let orderObj = {
OrderID: 0,
OrderSource: 17,
Obj: {},
SourceID: 0,
TCIDList: TCIDARR
}
this.$router.push({
path: '/financial/financalDocument/ChoiceAddFinancialDocuments',
query: {
"Type": type,
"companyID": this.msg.School_Id,
"path": "",
'blank': 'y',
'orderObj': JSON.stringify(orderObj),
'tradeWay': '',
}
});
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
......@@ -127,7 +127,6 @@ const routes = [{
component: () =>
import("pages/course/classorder.vue")
},
{
path: "/course/socialclass", //教学奖励-社会班设置
component: () =>
......@@ -552,6 +551,16 @@ const routes = [{
component: () =>
import("pages/studyAbroad/employment.vue")
},
{
path: "/studyAbroad/studyemploymentorder", //留学就业订单中心
component: () =>
import("pages/studyAbroad/studyemploymentorder.vue")
},
{
path: "/studyAbroad/studypayment", //留学就业收支明细
component: () =>
import("pages/studyAbroad/studypayment.vue")
},
{
path: "/studyAbroad/supplier", //供应商
component: () =>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment