Commit e90a3643 authored by Mac's avatar Mac
parents 2bc988ed 4119b68b
......@@ -147,14 +147,22 @@
</div>
</q-td>
</template> -->
<template v-slot:body-cell-Money="props">
<template v-slot:body-cell-Status="props">
<q-td :props="props">
<span v-if="props.row.PaymentWay == 6"
>星星支付:{{ props.row.TotalPoint }}</span
>
<span v-if="props.row.PaymentWay == 1"
>现金支付:{{ props.row.Money }}</span
>
<span v-if="props.row.Status===0">正常</span>
<span v-if="props.row.Status===1">删除</span>
</q-td>
</template>
<template v-slot:body-cell-OrderStatus="props">
<q-td :props="props">
<span v-if="props.row.OrderStatus===0">未支付</span>
<span v-if="props.row.OrderStatus===1">已支付</span>
</q-td>
</template>
<template v-slot:body-cell-IsApplyForCancel="props">
<q-td :props="props">
<span v-if="props.row.IsApplyForCancel===1"></span>
<span v-if="props.row.IsApplyForCancel===2"></span>
</q-td>
</template>
<!-- <template v-slot:body-cell-optioned="props">
......@@ -186,14 +194,14 @@
data: [],
loading: true,
msg: {
// pageIndex: 1,
// pageSize: 10,
LinkMan: '',
EnrollState: 1,
ActivityId: 0
pageIndex: 1,
pageSize: 10,
ActivityName:""
},
pageCount: 0,
columns: [{
columns: [
{
name: "LinkMan",
label: "联系人",
field: "LinkMan",
......@@ -206,16 +214,47 @@
align: "left"
},
{
name: "PeopleNum",
required: true,
label: "人数",
field:"PeopleNum",
name: "UnitPrice",
label: "单价",
field:"UnitPrice",
align: "left",
},
{
{
name: "Money",
label: "付款方式",
label: "应收",
field:"Money",
align: "left",
},
{
name: "Status",
label: "状态",
field:"Status",
align: "left"
},
{
name: "OrderNo",
required: true,
label: "订单号",
field:"OrderNo",
align: "left",
},
{
name: "OrderStatus",
required: true,
label: "订单状态",
field:"OrderStatus",
align: "left",
},
{
name: "PaymentTime",
label: "支付时间",
field:"PaymentTime",
align: "left"
},
{
name: " IsApplyForCancel",
label: "是否申请取消",
field:" IsApplyForCancel",
align: "left"
},
{
......@@ -224,12 +263,8 @@
field:"Remark",
align: "left"
},
{
name: "CreateTimeStr",
label: "报名时间",
field:"CreateTimeStr",
align: "left"
},
// {
// name: 'optioned',
// label: '操作',
......@@ -242,15 +277,15 @@
},
mounted() {
if(this.$route.query.Id){
this.msg.ActivityId = this.$route.query.Id;
if(this.$route.query.ActivityName){
this.msg.ActivityName = this.$route.query.name;
}
this.getList();
},
methods: {
getList(){
this.loading = true;
this.apipostDS("/api/Education/GetCommerceConsultPage",this.msg,(res)=>{
this.apipostDS("/api/Education/GetCommerceConsultAndFinancePage",this.msg,(res)=>{
this.loading = false
if(res.data.resultCode===1){
this.data = res.data.data;
......
......@@ -199,7 +199,7 @@
color="accent" style="font-weight:400" label="删除" @click="delActive(props.row)" />
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup @click="goUrl('/activity/activeSignUpList',props.row)">
<q-item clickable v-close-popup @click="goUrl('/activity/activeSignUpList',props.row,1)">
<q-item-section>
<q-item-label>报名列表</q-item-label>
</q-item-section>
......@@ -471,13 +471,23 @@ import ActiveForm from '../../components/activity/active-from'
closeruleset() {
this.showForm = false;
},
goUrl(url,item){
this.$router.push({
goUrl(url,item,type=0){
if(type===1){
this.$router.push({
path:url,
query:{
name:item.ActivityName
}
})
}else{
this.$router.push({
path:url,
query:{
Id:item.Id
}
})
}
}
}
}
......
......@@ -28,12 +28,8 @@
<span>{{item.Name}}</span>
</el-col>
<el-col class="blue" :span="6">
<span v-if="scgroupMsg.Recycled==1" @click.prevent="EditGroup(item)">编辑 |</span>
<span v-if="scgroupMsg.Recycled==2" @click.prevent="HYGroup(item)">还原 |</span>
<!-- 回收 -->
<span v-if="scgroupMsg.Recycled==1" @click.prevent="HsGroup(item)">删除</span>
<!--回收站删除 -->
<span v-if="scgroupMsg.Recycled==2" @click.prevent="DeleteGroup(item)">删除</span>
<span @click.prevent="EditGroup(item)">编辑 |</span>
<span @click.prevent="delGroup(item)">删除</span>
</el-col>
</div>
</li>
......@@ -42,7 +38,7 @@
</div>
</div>
</div>
<div flex="dir:top" class="box">
<div flex="dir:top" class="box" style="width:100%">
<div>
<div class="basefix" style="margin-bottom:12px">
<span>全部</span>
......@@ -55,19 +51,16 @@
</div>
<el-checkbox style="margin-left:12px" :indeterminate="isIndeterminate" v-model="checkAll"
@change="CheckAllChange">全选</el-checkbox>
<el-button v-if="PageMsg.Recycled==1" @click="HsPage" style="margin:0 12px" size="small">删除
<el-button @click="DeletePage" style="margin:0 12px" size="small">删除
</el-button>
<el-button v-if="PageMsg.Recycled==2" @click="HYPage" style="margin-left:12px" size="small">还原
</el-button>
<el-button v-if="PageMsg.Recycled==2" @click="DeletePage" size="small">删除</el-button>
<el-dropdown v-if="scgroupMsg.Recycled==1" size="small" split-button>
<!-- <el-dropdown v-if="scgroupMsg.Recycled==1" size="small" split-button>
移动至
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(item,index) in groupList" :key="index">
<div @click="SelectPageId(item)">{{item.Name}}</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown> -->
</div>
</div>
......@@ -77,7 +70,7 @@
<div class="material-item material-upload">
<el-upload class="avatar-uploader" action="" accept="image/jpeg,image/gif,image/png,image/bmp"
:show-file-list="false" :http-request="UploadImage" multiple>
<div class="app-upload" flex="main:center cross:center" style="width: 140px; height: 140px;">
<div class="app-upload" flex="main:center cross:center" style="width: 140px; height: 140px;display:flex;justify-content:center;align-items:center">
<i class="el-icon-upload"></i>
</div>
</el-upload>
......@@ -87,7 +80,7 @@
<div @click="PageSelect(item,index)" :class="item.Selected ? 'selected' :''"
class="el-tooltip item material-item ">
<img :src="getIconLink(item.Path)" class="material-img" style="width: 140px; height: 140px;">
<div flex="dir:left" style="margin-top: 5px;">
<div flex="dir:left" style="margin-top: 5px; display:flex">
<div class="material-name">{{item.Name}}</div>
<div style="margin: 0px 5px;">|</div>
<div>
......@@ -104,7 +97,7 @@
<el-upload class="avatar-uploader" action="" :before-upload="beforeAvatarUpload"
accept="video/mp4,video/ogg,video/webm" :show-file-list="false" :http-request="UploadVideo"
multiple>
<div class="app-upload" flex="main:center cross:center" style="width: 140px; height: 140px;">
<div class="app-upload" flex="main:center cross:center" style="width: 140px; height: 140px;display:flex;justify-content:center;align-items:center">
<i class="el-icon-upload"></i>
</div>
</el-upload>
......@@ -116,7 +109,7 @@
<img :src="getIconLink(item.Image)" class="material-img" style="width: 140px; height: 140px;">
<div class="material-video-info"><i class="el-icon-video-play"></i>
<span>{{Time(item.VideoTime)}}</span></div>
<div flex="dir:left" style="margin-top: 5px;">
<div flex="dir:left" style="margin-top: 5px;display:flex">
<div class="material-name">{{item.Name}}</div>
<div style="margin: 0px 5px;">|</div>
<div>
......@@ -133,7 +126,7 @@
<div class="material-item material-upload">
<el-upload class="avatar-uploader" action="" accept=".pdf,.PDF,.ppt,.PPT,.doc,.docx"
:show-file-list="false" :http-request="UploadpdfFile" multiple>
<div class="app-upload" flex="main:center cross:center" style="width: 140px; height: 140px;">
<div class="app-upload" flex="main:center cross:center" style="width: 140px; height: 140px;display:flex;justify-content:center;align-items:center">
<i class="el-icon-upload"></i>
</div>
</el-upload>
......@@ -151,7 +144,7 @@
<div class="mater_MyFileType" v-if="getFileType(item.Name)==3">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/pdf.png" alt="">
</div>
<div flex="dir:left" style="margin-top: 5px;">
<div flex="dir:left" style="margin-top: 5px;display:flex">
<div class="material-name">{{item.Name}}</div>
<div style="margin: 0px 5px;">|</div>
<div>
......@@ -227,7 +220,11 @@
Id: 0,
Name: '',
Type: 1,
Recycled: 1,
// Recycled: 1,
ActivityId:0,
pageIndex:1,
pageSize:10,
},
isIndeterminate: false,
groupList: [],
......@@ -236,6 +233,7 @@
Name: '',
Type: '',
Sort: '',
ActivityId:0
},
addGroupMsgrules: {
Name: [{
......@@ -254,7 +252,8 @@
Id: 0,
Name: '',
Type: 1,
Recycled: 1,
// Recycled: 1,
ActivityId:0,
pageIndex: 1,
pageSize: 20,
GroupId: 0,
......@@ -270,7 +269,8 @@
Image: '',
VideoTime: 0,
WithHeight: 0,
PathType:0
PathType:0,
ActivityId:0,
},
pageMsgDig: false,
checkList: [],
......@@ -280,6 +280,12 @@
}
},
created() {
if(this.$route.query.Id){
this.scgroupMsg.ActivityId=this.$route.query.Id
this.addGroupMsg.ActivityId=this.$route.query.Id
this.PageMsg.ActivityId=this.$route.query.Id
this.addpageMsg.ActivityId=this.$route.query.Id
}
this.GetMemberGradeList();
this.GetPageList();
localStorage.removeItem("uploadInfo");
......@@ -292,8 +298,10 @@
methods: {
//登录后获取上传配置
getUpConfig(){
this.apipostDS("/api/MallBase/GetDefaultFileStore", {}, res => {
if(res.data.resultCode == 1){
console.log(312,res)
var upData = res.data.data;
localStorage.uploadInfo = JSON.stringify(upData);
}else{
......@@ -328,30 +336,30 @@
}
return result;
},
SelectPageId(item) {
this.PageList.forEach(item => {
if (item.Selected) {
this.checkList.push(item.Id)
}
})
if (this.checkList.length == 0) {
this.Error("至少选择一项!");
return;
}
let MaterialIds = this.checkList.join(",");
let msg = {
MaterialIds: MaterialIds,
GroupId: item.Id,
Type: this.commonType
}
this.apipostDS("/api/product/SetMaterialInfoTransfer", msg, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.GetPageList();
this.checkList = [];
}
})
},
// SelectPageId(item) {
// this.PageList.forEach(item => {
// if (item.Selected) {
// this.checkList.push(item.Id)
// }
// })
// if (this.checkList.length == 0) {
// this.Error("至少选择一项!");
// return;
// }
// let MaterialIds = this.checkList.join(",");
// let msg = {
// MaterialIds: MaterialIds,
// GroupId: item.Id,
// Type: this.commonType
// }
// this.apipostDS("/api/product/SetMaterialInfoTransfer", msg, res => {
// this.loading = false;
// if (res.data.resultCode == 1) {
// this.GetPageList();
// this.checkList = [];
// }
// })
// },
// 全选
CheckAllChange(val) {
this.PageList.forEach(item => {
......@@ -363,8 +371,9 @@
}
})
},
// 删除
// 删除素材
DeletePage() {
let that=this
this.checkList = [];
this.PageList.forEach(item => {
if (item.Selected) {
......@@ -375,9 +384,15 @@
this.Error("至少选择一项!");
return;
}
let MaterialIds = this.checkList.join(",");
this.loading = true;
this.apipostDS("/api/product/DelMaterialInfo", {
that.$confirm('是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let MaterialIds = this.checkList.join(",");
this.loading = true;
this.apipostDS("/api/Education/DelMaterialInfo", {
MaterialIds: MaterialIds
}, res => {
this.loading = false;
......@@ -386,54 +401,56 @@
this.checkList = [];
}
})
}).catch(() => {});
},
// 还原
HYPage() {
this.checkList = [];
this.PageList.forEach(item => {
if (item.Selected) {
this.checkList.push(item.Id)
}
})
if (this.checkList.length == 0) {
this.Error("至少选择一项!");
return;
}
let MaterialIds = this.checkList.join(",");
this.loading = true;
this.apipostDS("/api/product/SetMaterialInfoRestore", {
MaterialIds: MaterialIds
}, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.GetPageList();
this.checkList = [];
}
})
// this.checkList = [];
// this.PageList.forEach(item => {
// if (item.Selected) {
// this.checkList.push(item.Id)
// }
// })
// if (this.checkList.length == 0) {
// this.Error("至少选择一项!");
// return;
// }
// let MaterialIds = this.checkList.join(",");
// this.loading = true;
// this.apipostDS("/api/product/SetMaterialInfoRestore", {
// MaterialIds: MaterialIds
// }, res => {
// this.loading = false;
// if (res.data.resultCode == 1) {
// this.GetPageList();
// this.checkList = [];
// }
// })
},
// 回收
// // 回收
HsPage() {
this.checkList = [];
this.PageList.forEach(item => {
if (item.Selected) {
this.checkList.push(item.Id)
}
})
if (this.checkList.length == 0) {
this.Error("至少选择一项!");
return;
}
let MaterialIds = this.checkList.join(",");
this.loading = true;
this.apipostDS("/api/product/SetMaterialInfoRecycled", {
MaterialIds: MaterialIds
}, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.GetPageList();
this.checkList = [];
}
})
// this.checkList = [];
// this.PageList.forEach(item => {
// if (item.Selected) {
// this.checkList.push(item.Id)
// }
// })
// if (this.checkList.length == 0) {
// this.Error("至少选择一项!");
// return;
// }
// let MaterialIds = this.checkList.join(",");
// this.loading = true;
// this.apipostDS("/api/product/SetMaterialInfoRecycled", {
// MaterialIds: MaterialIds
// }, res => {
// this.loading = false;
// if (res.data.resultCode == 1) {
// this.GetPageList();
// this.checkList = [];
// }
// })
},
// 单个删除
......@@ -468,7 +485,7 @@
pagesubmitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.apipostDS('/api/product/SetGetMaterialInfo', this.addpageMsg,
this.apipostDS('/api/Education/SetGetMaterialInfo', this.addpageMsg,
res => {
if (res.data.resultCode === 1) {
this.GetPageList();
......@@ -513,7 +530,8 @@
//上传视频
UploadVideo(file) {
var that = this;
this.UploadSelfFile(this.FileType().Video, file.file, res => {
this.UploadFileToTencent(this.FileType().Video, file.file, res => {
console.log(526,res)
if (res.resultCode == 1) {
that.addpageMsg.Image = res.VideoCoverImg;
that.addpageMsg.Path = res.FileUrl;
......@@ -547,7 +565,7 @@
if(upInfo){
this.addpageMsg.PathType=upInfo.StoreType;
}
this.apipostDS("/api/product/SetGetMaterialInfo", this.addpageMsg, res => {
this.apipostDS("/api/Education/SetGetMaterialInfo", this.addpageMsg, res => {
if (res.data.resultCode == 1) {
this.GetPageList();
this.$forceUpdate();
......@@ -560,6 +578,7 @@
this.GetMemberGradeList();
this.GetPageList();
},
// 修改分组
EditGroup(item) {
this.addGroupMsgDig = true;
this.addGroupMsg = {
......@@ -569,14 +588,15 @@
Sort: item.Sort,
}
},
HYGroup(item) {
let that = this;
that.$confirm('是否还原?', '提示', {
// 删除分组
delGroup(item){
let that = this;
that.$confirm('是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipostDS('/api/product/SetMaterialGroupRestore', {
this.apipostDS('/api/Education/DelMaterialGroupInfo', {
GroupId: item.Id
},
res => {
......@@ -591,65 +611,92 @@
);
}).catch(() => {});
},
// HYGroup(item) {
// let that = this;
// that.$confirm('是否还原?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// this.apipostDS('/api/product/SetMaterialGroupRestore', {
// GroupId: item.Id
// },
// res => {
// if (res.data.resultCode === 1) {
// this.GetMemberGradeList();
// this.Success(res.data.message)
// } else {
// this.Error(res.data.message);
// }
// },
// null
// );
// }).catch(() => {});
// },
HsGroup(item) {
let that = this;
that.$confirm('是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipostDS('/api/product/SetMaterialGroupRecycled', {
GroupId: item.Id
},
res => {
if (res.data.resultCode === 1) {
this.GetMemberGradeList();
this.Success(res.data.message)
// let that = this;
// that.$confirm('是否删除?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// this.apipostDS('/api/product/SetMaterialGroupRecycled', {
// GroupId: item.Id
// },
// res => {
// if (res.data.resultCode === 1) {
// this.GetMemberGradeList();
// this.Success(res.data.message)
} else {
this.Error(res.data.message);
}
},
null
);
}).catch(() => {});
// } else {
// this.Error(res.data.message);
// }
// },
// null
// );
// }).catch(() => {});
},
DeleteGroup(item) {
let that = this;
that.$confirm('是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipostDS('/api/product/DelMaterialGroupInfo', {
GroupId: item.Id
},
res => {
if (res.data.resultCode === 1) {
this.GetMemberGradeList();
this.Success(res.data.message)
// let that = this;
// that.$confirm('是否删除?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// this.apipostDS('/api/product/DelMaterialGroupInfo', {
// GroupId: item.Id
// },
// res => {
// if (res.data.resultCode === 1) {
// this.GetMemberGradeList();
// this.Success(res.data.message)
} else {
this.Error(res.data.message);
}
},
null
);
}).catch(() => {});
// } else {
// this.Error(res.data.message);
// }
// },
// null
// );
// }).catch(() => {});
},
addGroup() {
this.addGroupMsgDig = true;
this.addGroupMsg = {
Id: 0,
Name: '',
Type: this.commonType,
Sort: '',
}
// this.addGroupMsg = {
// Id: 0,
// Name: '',
// Type: this.commonType,
// Sort: '',
// }
this.addGroupMsg.Id=0
this.addGroupMsg.Name=""
this.addGroupMsg.Type=this.commonType
this.addGroupMsg.Sort=""
},
// 修改图片视频分组
GroupsubmitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.apipostDS('/api/product/SetMaterialGroupInfo', this.addGroupMsg,
this.apipostDS('/api/Education/SetMaterialGroupInfo', this.addGroupMsg,
res => {
if (res.data.resultCode === 1) {
this.GetMemberGradeList();
......@@ -667,17 +714,22 @@
}
});
},
//获取图片视频分组
GetMemberGradeList() {
this.loading = true;
this.apipostDS("/api/product/GetMaterialGroupList", this.scgroupMsg, res => {
this.apipostDS("/api/Education/GetMaterialGroupList", this.scgroupMsg, res => {
this.loading = false;
this.groupList = res.data.data;
if(res.data.resultCode===1){
this.groupList = res.data.data;
}
})
},
// 获取素材列表
GetPageList() {
this.loading = true;
this.PageList = [];
this.apipostDS("/api/product/GetMaterialInfoPageList", this.PageMsg, res => {
this.apipostDS("/api/Education/GetMaterialInfoPageList", this.PageMsg, res => {
this.loading = false;
this.total = res.data.data.count;
let data = res.data.data.pageData;
......
<style>
.paymentDetail .p_title {
font-weight: bold;
color: #000000;
font-size: 14px;
margin-bottom: 20px;
}
.paymentDetail .paymentList {
height: 170px;
border-radius: 3px;
box-shadow: 0 0 5px #d1d1d1;
margin-right: 10px;
padding: 12px;
}
.paymentDetail .paymentList:last-child {
margin-right: 0;
}
.paymentDetail .pay_topList {
display: flex;
align-items: center;
margin-bottom: 10px;
}
.paymentDetail .pay_Title {
margin-left: 5px;
color: #111111;
font-size: 13px;
font-weight: bold;
}
.paymentDetail .pay_ListMent {
display: flex;
font-size: 12px;
margin-bottom: 6px;
}
.paymentDetail .pay_ListOne {
width: 50px;
color: #999999;
text-align: left;
}
.paymentDetail .pay_Inner {
margin-left: 10px;
color: #111111;
font-weight: bold;
}
.paymentDetail .orangeStyle {
color: #F28C1D;
}
.paymentDetail .pay_ListTwo {
width: 25px;
color: #999999;
text-align: left;
}
.paymentDetail .pay_InorOut {
margin-top: 20px;
}
.paymentDetail .Pay_Line {
width: 3px;
height: 11px;
margin-right: 10px;
background-color: #3FC4FF;
display: inline-block;
}
.paymentDetail .pay_TopTitle {
font-weight: bold;
color: #000000;
font-size: 13px;
}
.paymentDetail .payTable {
width: 100%;
border-collapse: collapse;
}
.paymentDetail .payTable tr th {
background: #fff;
height: 40px;
font-size: 12px;
font-weight: bold;
color: #2D2D2D;
background: #DDDEE0;
}
.paymentDetail .payTable tr {
background: #fff;
text-align: center;
height: 40px;
}
.paymentDetail .payTable tr td {
font-size: 13px;
text-align: center;
color: #2D2D2D;
padding: 10px 0;
font-weight: bold;
border-bottom: 1px solid #E5E5E5;
}
.paymentDetail .finince_Order {
color: #2961FE;
text-decoration: underline;
cursor: pointer;
font-weight: bold;
}
.paymentDetail .finice_pass {
display: inline-block;
width: 50px;
height: 25px;
line-height: 25px;
background: #ccf3eb;
color: #02C499;
border-radius: 2px;
}
.paymentDetail .financeYing {
width: 110px;
text-align: left;
margin: auto;
}
.p_titleList {
position: relative;
}
</style>
<template>
<div class="page-body paymentDetail">
<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 class="pay_ListMent">
<div class="pay_ListOne">课程名称</div>
<div class="pay_Inner">{{dataList.ClassInfo.CourseName}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne">开课时间</div>
<div class="pay_Inner">{{dataList.ClassInfo.OpenTime}}</div>
</div>
<div class="pay_ListMent">
<div class="pay_ListOne">带课老师</div>
<div class="pay_Inner">{{dataList.ClassInfo.TeacherName}}</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: {
ClassId: 0,
School_Id: 0
},
}
},
created() {},
mounted() {
if (this.$route.query.ClassId && this.$route.query.School_Id) {
this.msg.ClassId = this.$route.query.ClassId;
this.msg.School_Id = this.$route.query.School_Id;
}
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>
......@@ -675,6 +675,11 @@ const routes = [{
component: () =>
import("pages/activity/materialMan.vue")
},
{
path: "/activity/payment", //活动 活动收支
component: () =>
import("pages/activity/payment.vue")
},
{
path: "/sale/appointManagement", //销售 约课管理
component: () =>
......
......@@ -83,15 +83,21 @@ export default {
let domainUrl = 'http://192.168.20.24';
let viewFileUrl = 'http://192.168.20.214:8120';
let mallUrl = "http://192.168.20.17:8014";
let vtUploadUrl = "http://192.168.20.214:8120";
let vtViewUrl = "http://192.168.20.214:8130";
let locationName = window.location.hostname;
if (locationName.indexOf('testerp.oytour') !== -1) {
domainUrl = "http://testapi.oytour.com";
viewFileUrl = "http://upload.oytour.com";
mallUrl = "https://mallapi.oytour.com";
vtUploadUrl = "http://upload.oytour.com";
vtViewUrl = "https://imgfile.oytour.com";
} else if (locationName.indexOf('oytour') !== -1) {
domainUrl = "http://reborn.oytour.com";
viewFileUrl = "http://upload.oytour.com";
mallUrl = "https://mallapi.oytour.com";
vtUploadUrl = "http://upload.oytour.com";
vtViewUrl = "https://imgfile.oytour.com";
}
var obj = {
//主地址
......@@ -106,7 +112,9 @@ export default {
LocalFileStreamDownLoadUrl: domainUrl + "/api/file/GetFileFromWebApi",
//文件预览地址
ViewFileUrl: viewFileUrl,
mallUrl: mallUrl
mallUrl: mallUrl,
VTUploadUrl: vtUploadUrl,
vtViewUrl: vtViewUrl
};
return obj;
},
......@@ -390,6 +398,125 @@ export default {
});
window.open(newUrl.href, '_blank');
},
//文件类型数组
Vue.prototype.FileType = function () {
var fileTypeJson = {
//主地址npm
UserImg: "User", //用户相图片
//常用提交数据URL
GoodsImg: "Goods", //素材相关文件
SetImg: "Set", //用户相图片
Video: "Video", //视频
};
return fileTypeJson;
},
//上传文件到云存储
Vue.prototype.UploadFileToTencent = function (path, fileObj, callback) {
// debugger;
var upInfo = JSON.parse(localStorage.uploadInfo);
let maxSize = 500 * 1024
if ((fileObj.type == "image/png" || fileObj.type == "image/jpeg") && fileObj.size > maxSize) {
let that = this
lrz(fileObj, {
width: 750,
quality: 0.8
})
.then(function (rst) {
//成功时执行
var arr = rst.base64.split(',');
var mime = arr[0].match(/:(.*?);/)[1];
var bstr = atob(arr[1]);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
var newFile = new File([u8arr], fileObj.name, {
type: mime
});
if (upInfo && upInfo.IsDefault == 1) {
if (upInfo.StoreType == 1) {
that.uploadStart(path, newFile, callback)
}
if (upInfo.StoreType == 2) {
that.uploadToAli(path, newFile, callback)
}
} else {
that.Error('请先配置上传');
}
}).catch(function (error) {
if (upInfo && upInfo.IsDefault == 1) {
if (upInfo.StoreType == 1) {
that.uploadStart(path, fileObj, callback)
}
if (upInfo.StoreType == 2) {
that.uploadToAli(path, fileObj, callback)
}
} else {
that.Error('请先配置上传');
}
}).always(function () {
//不管成功或失败,都会执行
})
} else {
if (upInfo && upInfo.IsDefault == 1) {
if (upInfo.StoreType == 1) {
this.uploadStart(path, fileObj, callback)
}
if (upInfo.StoreType == 2) {
this.uploadToAli(path, fileObj, callback)
}
} else {
this.Error('请先配置上传');
}
}
},
Vue.prototype.uploadStart = function (path, fileObj, callback) {
var upInfo = JSON.parse(localStorage.uploadInfo);
//获取文件扩展名
var filename = fileObj.name;
var index = filename.lastIndexOf(".");
var suffix = filename.substr(index);
var timestamp1 = Date.parse(new Date()) + "_" + (Math.ceil(Math.random() * 1000));
let str = '';
if (this.isOnline()) {
str = "/Test"
}
var newFileName = str + '/Upload/' + path + "/" + timestamp1 + "" + suffix;
var uploadMsg = {
Bucket: upInfo.Bucket,
Region: upInfo.Region,
SecretId: upInfo.SecretId,
SecretKey: upInfo.SecretKey,
};
var COS = require('cos-js-sdk-v5');
var cos = new COS({
SecretId: uploadMsg.SecretId,
SecretKey: uploadMsg.SecretKey,
});
cos.putObject({
Bucket: uploadMsg.Bucket,
Region: uploadMsg.Region, //存储桶所在地域,必须字段
Key: newFileName, //文件名
StorageClass: 'STANDARD',
Body: fileObj, // 上传文件对象
onProgress: function (progressData) { }
}, function (err, data) {
if (data && data.statusCode == 200) {
var uploadResult = {
resultCode: 1,
FileName: fileObj.name,
FileUrl: "https://" + data.Location
}
if (callback) {
callback(uploadResult);
}
} else {
/*上传文件异常*/
console.log(err || data);
}
});
},
//公用判断图片地址 判断是否包含http
Vue.prototype.getIconLink = function (url) {
let str = ''
......@@ -401,6 +528,35 @@ export default {
}
return str;
}
},
//是否是线上环境【发布时修改为true】
Vue.prototype.isOnline = function () {
return process.env.NODE_ENV !== 'development';
},
//上传文件到本地服务器
Vue.prototype.UploadSelfFile = function (path, file, callback) {
var that = this;
that.Info('上传中...')
var newPath = '/Upload/' + path + "/";
var formData = new FormData();
var uploadUrl = that.domainManager().VTUploadUrl + "/Upload?filePath=" + newPath + "&isCreateCover=1";
formData.append("myfile", file);
that.$http.post(uploadUrl, formData, {})
.then(res => {
if (res && res.status == 200 && res.data && res.data.FilePath) {
var uploadResult = {
resultCode: 1,
FileName: file.name,
FileUrl: that.domainManager().VTViewUrl + res.data.FilePath,
VideoCoverImg: that.domainManager().VTViewUrl + res.data.VideoCoverImg
}
if (callback) {
callback(uploadResult);
}
}
}).catch(function (reason) {
console.log(reason)
});
}
}
}
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