Commit 0354312c authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/luochao/confucius into master

# Conflicts:
#	src/pages/financial/CommissionDetail.vue
#	src/pages/financial/CompanyAccount.vue
#	src/pages/financial/salesCommission.vue
#	src/router/routes.js
parents 359e5a46 aa2407f4
<style>
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.CommissionDetail .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.CommissionDetail .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
}
.CommissionDetail ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.CommissionDetail ._icon_btn i {
width: 26px;
height: 26px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 26px;
margin-right: 10px;
cursor: pointer;
outline: none;
}
.CommissionDetail .el-table td,.el-table th{
padding: 5px 0;
}
</style>
<template>
<div class="page-body CommissionDetail">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-select filled stack-label use-input input-debounce="0" option-value="ClassId" clearable @input="getList"
option-label="ClassName" v-model="msg.ClassId" :options="ClassList" label="班级" :dense="false"
emit-value map-options @filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<div class="col-3">
<q-input filled v-model="msg.OrderId" @keyup.enter.native="getList()" label="订单号" />
</div>
</div>
</div>
<template >
<el-table
ref="filterTable"
:data="tableData"
border
style="width: 100%">
<el-table-column prop="SchoolName" label="校区" ></el-table-column>
<el-table-column prop="DeptName" label="部门" ></el-table-column>
<el-table-column prop="UserName" label="用户" > </el-table-column>
<el-table-column prop="StudentCount" label="学生数量" sortable :sort-method="StudentCount"> </el-table-column>
<el-table-column prop="CurrentPeriodMoney" label="提成金额" sortable :sort-method="CurrentPeriodMoney"> </el-table-column>
<el-table-column prop="CurrentExtraMoney" label="奖励金额" sortable :sort-method="CurrentExtraMoney"> </el-table-column>
<el-table-column prop="CommissionMoney" label="最终提成" sortable :sort-method="CommissionMoney"> </el-table-column>
<el-table-column prop="Periods" label="周期"> </el-table-column>
<el-table-column label="操作" >
<template slot-scope="scope">
<div class="_icon_btn">
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('userCommissionDetails',scope.row.UserId)"></i>
</el-tooltip>
</div>
</template>
</el-table-column>
</el-table>
</template>
</div>
</template>
<script>
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
getSellCommissionUserList,
} from '../../api/finance/index'
import {
getClassDropDownList,
} from "../../api/school/index";
export default {
meta: {
title: "销售提成详情"
},
props: {},
components: {},
data() {
return {
loading: false,
//列表数据参数
msg: {
PeriodId: 0,
UserId: 0,
ClassId:0,
OrderId:'',
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[],
company:[],
department:[],
ClassList:[],
allClassList:[],
see_tcdetailed:false
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x=>{//判断权限
if(x.FunctionCode == "see_tcdetailed"){//判断是否可以查看其他明细
this.see_tcdetailed = true;
}
})
if(this.see_tcdetailed == false){
console.log(userinfo)
this.msg.UserId = userinfo.Id
}
},
mounted() {
console.log(this.$route.query)
if(this.$route.query && this.$route.query.id){
this.msg.PeriodId = this.$route.query.id
}
this.getList()
this.setClass()
},
methods: {
getList(){
if(this.msg)
this.loading = true;
getSellCommissionUserList(this.msg).then(res => {
if (res.Code == 1) {
this.tableData = res.Data
}
})
},
//选择班级
setClass(item) {
this.isShowClass = true;
getClassDropDownList({
CourseId: 0,
IsAddDefault: 1, //添加默认选项
}).then(res => {
if (res.Code == 1) {
var jsonData = res.Data;
if (jsonData && jsonData.length > 0) {
this.ClassList = JSON.parse(JSON.stringify(jsonData));
this.allClassList = JSON.parse(JSON.stringify(jsonData));;
}
}
});
},
//筛选员工
filterFn(val, update) {
update(() => {
if (val === '') {
this.ClassList = JSON.parse(JSON.stringify(this.allClassList))
} else {
const needle = val.toLowerCase()
this.ClassList = this.allClassList.filter(v => v.ClassName.toLowerCase().indexOf(needle) > -1)
}
})
},
goUrl(path, id ) {
this.$router.push({
path: '/financial/' + path,
query: {
userId: id,
preriodId:this.$route.query.id,
blank: 'y',
}
})
},
filterHandler(value, row, column) {
const property = column['property'];
return row[property] === value;
},
StudentCount(a,b,c){
console.log(a,b,c)
return a.StudentCount - b.StudentCount;
},
CurrentPeriodMoney(a,b){
return a.CurrentPeriodMoney - b.CurrentPeriodMoney;
},
CurrentExtraMoney(a,b){
return a.CurrentExtraMoney - b.CurrentExtraMoney;
},
CommissionMoney(a,b){
return a.CommissionMoney - b.CommissionMoney;
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
<style scoped>
@import "css/cssReset.css";
.page_CompanyAccount .query-box li label {
display: inline-block;
min-width: 80px;
text-align: right;
font-style: normal;
margin: 0 20px 0 0;
}
._scrollbar::-webkit-scrollbar {
width: 4px;
height: 8px;
}
._scrollbar::-webkit-scrollbar-thumb {
border-radius: 4px;
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
._scrollbar::-webkit-scrollbar-track {
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #EDEDED;
}
.page_CompanyAccount ._vMG_edit {
overflow: auto;
display: none;
position: absolute;
bottom: 0;
left: 0;
font-family: 'PingFangSc-Fine';
border-top: 3px solid #38425d;
background-color: #FFFFFF;
padding: 10px;
margin: 15px;
width: calc(100% - 30px);
}
.page_CompanyAccount ._vMG_edit ._tit {
padding-left: 10px;
border-left: 3px solid #E95252;
font-size: 16px;
color: #000000
}
.page_CompanyAccount ._vMG_edit ._tit span {
color: #666666
}
.cm_content {
margin: 0;
padding: 0;
overflow-x: auto;
}
._edHeight {
height: 400px;
}
.edHeight {
display: block !important;
height: 230px;
}
.page_CompanyAccount ._info_box ul {
margin-top: 15px
}
.page_CompanyAccount ._info_box ul li {
float: left;
margin-right: 12px;
}
.instMg_list_item {
width: 296px;
height: auto;
border-radius: 4px;
border: 1px solid #ebebeb;
float: left;
background: rgba(255, 255, 255, 1);
overflow: hidden;
margin-right: 15px;
margin-bottom: 15px;
}
.instMg_list_item:hover {
box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
transition: all linear 0.5s;
}
._tips {
font-size: 12px;
color: #666666;
padding: 15px 0
}
._top {
text-align: center;
height: 50px;
border-bottom: 1px solid #EEEEEE;
overflow: hidden;
padding: 10px 0;
}
._top img {
height: 100%;
}
._bt {
padding: 20px;
font-size: 14px;
}
._bt_t {
border-radius: 4px;
background-color: #2AAEF2;
color: #FFFFFF
}
._bt_t>p {
padding: 10px 0;
text-align: center
}
._bt_t>p>span {
display: inline-block;
padding: 3px 10px;
background-color: #FFA200;
border-radius: 4px
}
._bt_t ._btt_b {
padding: 14px;
background-color: #0F98DE
}
._bt_t ._btt_b>div {
display: flex;
text-align: center;
padding: 0 0 9px 0
}
._bt_t ._btt_b>div>p {
flex: 1
}
._bt_t ._btt_b>div>p:nth-child(2) {
border-left: 2px solid #179FE5;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding: 0 5px
}
.icon-img-ren {
color: #2AAEF2
}
._bt_t ._btt_b .PingFangSC {
font-weight: bold;
text-align: center;
padding: 8px 0;
border: 1px solid #2AAEF2;
border-radius: 4px
}
.icon-qiehuan,
.icon-ico-renwuyaoqiu {
background-color: #E7E7E7;
border-radius: 50%;
color: #999999;
font-size: 12px;
width: 18px;
height: 18px;
display: inline-block;
text-align: center;
line-height: 19px;
cursor: pointer;
}
.icon-ico-renwuyaoqiu {
font-size: 10px
}
.icon-qiehuan:hover,
.icon-ico-renwuyaoqiu:hover {
background-color: #E95252;
color: white;
}
._bt_b {
padding: 15px 0 0 0;
border-bottom: 1px solid #EEEEEE
}
._bt_b>p {
display: flex;
justify-content: space-between;
padding-bottom: 10px
}
._bt_b>P span._name {
color: #333333;
font-size: 12px;
}
._btn {
padding: 20px 30px 0 30px;
text-align: center;
border-left: none
}
._btn span {
display: inline-block;
font-size: 12px;
background-color: #E7E7E7;
color: #333333;
padding: 5px 20px;
border-radius: 14px;
cursor: pointer;
margin-left: 10px
}
._btn span:hover {
background-color: #E95252;
color: white
}
.fc_green {
color: #47BF8C !important
}
.fc_red {
color: #E95252 !important
}
.page_CompanyAccount .PingFangSC,
._bold {
font-weight: bold
}
._no_bold {
font-weight: normal
}
._max_wd {
max-width: 80px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: top;
display: inline-block
}
._btt_b .over_ellipsis {
max-width: 107px;
}
._add_saveBtn {
text-align: right;
margin-bottom: 10px
}
._cp_name {
width: 185px;
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
display: inline-block;
overflow: hidden;
text-align: right
}
._underline {
text-decoration: underline;
cursor: pointer;
}
.page_CompanyAccount .el-button-group .el-button {
padding: 4px;
}
._yingkui {
height: 40px;
line-height: 40px;
font-size: 12px;
color: #666666;
padding-left: 20px;
}
.page_CompanyAccount .query-box {
padding: 0;
}
.page_PlatformAccount ._wAuto {
width: auto;
}
.edHeight_t {
display: block !important;
height: 152px;
}
.el-date-editor.el-input {
width: 100% !important;
}
</style>
<template>
<div class='flexOne page_CompanyAccount page-body'>
<div class='query-box' style="padding-bottom:20px;">
<ul>
<li>
<em>{{$t('fnc.accBming')}}</em>
<el-input v-model="msg.Alias"></el-input>
</li>
<li>
<em>{{$t('fnc.ssjigou')}}</em>
<el-select filterable v-model='msg.BackId'>
<el-option :label='$t("pub.unlimitedSel")' value='-1'></el-option>
<el-option v-for='item in FinancialList' v-if="item.Type == 0" :label='item.Name' :value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</li>
<li>
<em>{{$t('fnc.accType')}}</em>
<el-select filterable v-model='msg.TypeId'>
<el-option :label='$t("pub.unlimitedSel")' value='-1'></el-option>
<el-option v-for='item in AccountTypeList' :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</li>
<li>
<em>校区:</em>
<el-select filterable v-model='msg.RB_Branch_Id'>
<el-option :label='$t("pub.unlimitedSel")' value='-1'></el-option>
<!-- <el-option label='通用' value='-1'></el-option> -->
<el-option v-for='item in CompanyList' :label='item.SName' :value='item.SId' :key='item.SId'>
</el-option>
</el-select>
</li>
<li>
<!-- <input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')"
@click="resetPageIndex(),getList()" /> -->
 <q-btn color="primary" size="11px" :label="$t('pub.searchBtn')"  @click="resetPageIndex(),getList()" style="marginRight:10px"/>
<!-- <input type="button" class="normalBtn" :value="$t('pub.addBtn')"
@click="addShow=true,text=$t('pub.addBtn'),ed=false" /> -->
<q-btn color="primary" size="11px" :label="$t('pub.addBtn')"  @click="addShow=true,text=$t('pub.addBtn'),ed=false"/>
</li>
</ul>
</div>
<div class="cm_content _scrollbar" :class="addShow==true||addCuren==false?'_edHeight':''">
<p class="_tips">{{$t('tips.sxhuilv')}}</p>
<div class="clearfix" v-loading='loading'>
<div class="instMg_list_item" v-for="(item,index) in DataList">
<div class="_top">
<img v-if="!item.LogoStr" style="width:100%" src="../financial/image/bg_c1@2x.png" alt="">
<img v-else :src="item.LogoStr" alt="">
</div>
<div class="_bt">
<div class="_bt_t">
<p>
<el-tooltip class="item" effect="dark" :content="item.Alias" placement="top-start">
<span class="max_w200">{{item.Alias}}</span>
</el-tooltip>
</p>
<div class="_btt_b">
<div>
<p class="over_ellipsis"> <i class="iconfont icon-img-ren"></i>
<el-tooltip class="item" effect="dark" :content="item.Accountholder" placement="top-start">
<span> {{item.Accountholder}}</span>
</el-tooltip>
</p>
<p>{{item.TypeName}}</p>
</div>
<p class="PingFangSC">
{{item.BackNo}}
</p>
</div>
</div>
<div class="_bt_b">
<p>
<span class="_name">{{$t('fnc.zhyue')}}</span>
<span>
<span
v-if="item.IsStandardCurrency!=1">{{item.showB?item.StandardCurrencyCode:item.CurrencyCode}}</span>
<span v-else>{{item.StandardCurrencyCode}}</span>
<!-- <span class="fc_green PingFangSC _underline" @click="item.IsStandardCurrency!=1?goUrl('FineBalance',item.ID,item.Alias):''">{{item.showB?moneyFormat(item.benBalance):moneyFormat(item.Initialbalance)}}</span> -->
<span class="fc_green PingFangSC _underline"
@click="goUrlNew(item)">{{item.showB?moneyFormat(item.benBalance):moneyFormat(item.Initialbalance)}}</span>
<span class="iconfont icon-qiehuan" @click="item.showB=!item.showB"
v-if="item.IsStandardCurrency!=1"></span>
<span v-if="item.IsStandardCurrency!=1" class="iconfont icon-ico-renwuyaoqiu"></span>
</span>
</p>
<p><span class="_name">{{$t('fnc.zhubizhong')}}</span><span class="_bold">
<el-tooltip class="item" effect="dark" :content="item.CurrencyName" placement="top-start">
<span class="_max_wd">{{item.CurrencyName}}</span>
</el-tooltip>
(<span class="_bold"
:class="item.IsStandardCurrency==1?'fc_green':'fc_red'">{{item.IsStandardCurrency==1?'本位币':'外币'}}</span>)
<span class="_no_bold" v-if="item.IsStandardCurrency!=1">{{item.CurrentRate}}</span>
</span></p>
<p><span class="_name">校区</span>
<el-tooltip class="item" effect="dark" :content="item.allName" placement="top-end">
<span class="_cp_name"><span class="_bold" v-for="(b,bi) in item.BranchName">{{b.BranchName}}
</span></span>
</el-tooltip>
</p>
<p v-if="item.IsStandardCurrency!=1">
<span class="_name">{{$t('fnc.sqisunyi')}}</span>
<span class="fr" v-if="item.ProfitLossMoney&&item.ProfitLossMoney!=0"
:class="item.ProfitLossMoney>0?'fc_green':'fc_red'">{{item.ProfitLossMoney}}</span>
<span class="fr" v-else>-</span>
</p>
<p v-else>&nbsp;</p>
</div>
<p class="_btn">
<el-button-group>
<el-button type="primary"
@click="editCurency(item.ID),text=$t('pub.updateMsg'),addShow=true,addCuren=true">
{{$t('pub.updateMsg')}}</el-button>
<el-button type="success" v-if="item.IsStandardCurrency===0"
@click="moneyDate.ProfitLoss=0,cancelEdit(2),addShow=false,addCuren=false,SetProfitLossMsg.AccountID = item.ID,SetProfitLossMsg.CurrencyId=item.CurrencyId,SetProfitLossMsg.initRate=item.CurrentRate,SetProfitLossMsg.Money = item.Initialbalance">
{{$t('fnc.tiaohui')}}</el-button>
<el-button type="info" v-if="item.IsStandardCurrency===0"
@click="goUrl('RemittanceRecord',item.ID,item.Alias,1,item.CurrencyId)">{{$t('fnc.jilu')}}</el-button>
<el-button type="danger" @click="financeinfoRemove(item.ID,item.Alias)">{{$t('fnc.xiaohu')}}</el-button>
</el-button-group>
</p>
</div>
</div>
</div>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
<div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="prev, pager, next" :page-size=msg.pageSize :total=total>
</el-pagination>
</div>
</div>
<div class="_vMG_edit _scrollbar" v-if="addShow" :class="addShow==true?'edHeight':''">
<el-row>
<el-col :span="20">
<p class="_tit">{{text}}{{$t('fnc.acc')}}</p>
</el-col>
<el-col :span="4" class="_add_saveBtn">
<!-- <button type="button" class="normalBtn" @click="submitForm('addMsg',1)">{{$t('pub.saveBtn')}}</button> -->
 <q-btn color="primary" size="11px" :label="$t('pub.saveBtn')"  @click="submitForm('addMsg',1)" style="marginRight:10px"/>
<!-- <button class="hollowFixedBtn" type="button"
@click="cancelEdit(),resetForm('addMsg'),addShow=false">{{$t('pub.cancelBtn')}}</button> -->
 <q-btn text-color="primary" size="11px" :label="$t('pub.cancelBtn')"  @click="cancelEdit(),resetForm('addMsg'),addShow=false"/>
</el-col>
</el-row>
<el-form class="_info_box clearfix" :model="addMsg" ref="addMsg" :rules="rules" label-width="110px">
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.accBming')" prop="Alias">
<el-input v-model="addMsg.Alias" class="" maxlength="10"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.accType')" prop="TypeId">
<el-select filterable v-model='addMsg.TypeId' class="">
<el-option v-for='item in AccountTypeList' :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.yhjigou')" prop="BackId">
<el-select filterable v-model='addMsg.BackId' class="">
<el-option v-for='item in FinancialList' v-if="item.Type == 0" :label='item.Name' :value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.khuren')" prop="Accountholder">
<el-input v-model="addMsg.Accountholder" class="" maxlength="50"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.khuhang')" prop="Openingbank">
<el-input v-model="addMsg.Openingbank" class="" maxlength="50"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.yhkahao')" prop="BackNo">
<el-input v-model="addMsg.BackNo" class="" maxlength="50"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.csyue')" prop="Initialbalance">
<el-input v-model="addMsg.Initialbalance" class=""></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.zhbizhong')" prop="CurrencyId">
<el-select filterable v-model='addMsg.CurrencyId' class="">
<el-option v-for='item in financeinfoList' :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35" class="_BranchIdS">
<el-form-item label="校区" prop="BranchIdS">
<el-select filterable v-model='addMsg.BranchIdS'>
<el-option v-for='item in CompanyList' :label='item.SName' :value='item.SId' :key='item.SId'
:disabled="item.disabled">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.fxshangxian')">
<el-input v-model="addMsg.RiskLimitMoney" type="number" class=""></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.fxxiaxian')">
<el-input v-model="addMsg.RiskLowerLimitMoney" type="number" class=""></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="初始本位币金额">
<el-input v-model="addMsg.AccountStartWBMoney" type="number" class></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="初始原币金额">
<el-input v-model="addMsg.AccountStartMoney" type="number" class></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="期初应用日期">
<el-date-picker type="date" v-model="addMsg.BeginTimeStr" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="_vMG_edit _scrollbar" v-if="addCuren == false" :class="addCuren==false?'edHeight_t':''">
<el-row>
<el-col :span="20">
<p class="_tit">{{$t('fnc.qmtiaohui')}}</p>
</el-col>
<el-col :span="4" class="_add_saveBtn">
<button type="button" class="normalBtn"
@click="submitForm('SetProfitLossMsg',2)">{{$t('fnc.qrtijiao')}}</button>
<button class="hollowFixedBtn" type="button"
@click="cancelEdit(),resetForm('SetProfitLossMsg')">{{$t('pub.cancelBtn')}}</button>
</el-col>
</el-row>
<el-form class="_info_box clearfix" :model="SetProfitLossMsg" ref="SetProfitLossMsg" :rules="rules"
label-width="100px">
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.sqhuilv')">
<el-input v-model="SetProfitLossMsg.initRate" disabled=""></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.qmhuilv')" prop="EndRate">
<el-input v-model="SetProfitLossMsg.EndRate" type="number" @change="Calculation()"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.xzqishu')" prop="TermNum">
<el-date-picker v-model="SetProfitLossMsg.TermNum" value-format="yyyy-MM-dd" type="month" class="_wAuto"
:placeholder="$t('admin.admin_choDate')">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35" v-if="costType.length">
<el-form-item :label="$t('fnc.fyleixing')" prop="CostTypeID">
<el-select filterable v-model='SetProfitLossMsg.CostTypeID'>
<el-option v-for='item in costType' :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35" class="_yingkui">
<p v-if="moneyDate.ProfitLoss<0">{{$t('fnc.yingkui')}}<span class="fc_red">{{moneyDate.ProfitLoss}}</span>
</p>
<p v-if="moneyDate.ProfitLoss>0">{{$t('fnc.yingli')}}<span class="fc_green">{{moneyDate.ProfitLoss}}</span>
</p>
<p v-if="moneyDate.ProfitLoss==0">{{$t('fnc.yingkui')}}<span class="fc_green">0</span></p>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import {
getSchoolDropdown
} from '../../api/school/index'
export default {
data() {
return {
msg: {
pageIndex: 1,
pageSize: 5,
BackId: '-1',
TypeId: '-1',
RB_Branch_Id: '-1',
Alias: ''
},
addMsg: {
ID: 0,
Alias: '',
TypeId: '',
BackId: '',
Accountholder: '',
Openingbank: '',
BackNo: '',
Initialbalance: '',
RiskLimitMoney: '',
BranchList: [],
BranchIdS: 0,
OutCharge: 0,
InCharge: 0,
RiskLowerLimitMoney: '',
AccountStartMoney: 0,
AccountStartWBMoney: 0,
BeginTimeStr: '',
},
getCompanyMsg: {
RB_Group_Id: '0',
Status: '0',
},
DataList: [],
total: 0,
currentPage: 1,
loading: true,
text: '',
dialogTitle: '',
AccountTypeList: [],
CompanyList: [],
FinancialList: [],
financeinfoList: [],
addShow: false,
noData: false,
ed: false,
rules: { //表单必填验证
Alias: [{
required: true,
message: this.$t('rule.qsrzhbieming'),
trigger: 'blur'
}],
TypeId: [{
required: true,
message: this.$t('rule.qxzzhleixing'),
trigger: 'change'
}],
BackId: [{
required: true,
message: this.$t('rule.qxzyhjigou'),
trigger: 'change'
}],
Accountholder: [{
required: true,
message: this.$t('rule.qsrkhuren'),
trigger: 'blur'
}],
Openingbank: [{
required: true,
message: this.$t('rule.qsrkhuhang'),
trigger: 'blur'
}],
BackNo: [{
required: true,
message: this.$t('rule.qssrzhhaoma'),
trigger: 'blur'
}
// {pattern:/^[0-9]*$/, message: this.$t('rule.qsrzqdzhhaoma')}
],
BranchIdS: [{
required: true,
message: this.$t('rule.qszssgongsi'),
trigger: 'change'
}],
CurrencyId: [{
required: true,
message: this.$t('rule.qxzzhbizhong'),
trigger: 'change'
}],
Initialbalance: [{
required: true,
message: this.$t('rule.qsrcsyue'),
trigger: 'blur'
},
{
pattern: this.$commonUtils.Regex.el_IsInventer,
message: this.$t('rule.qsrzqdyue')
}
],
OutCharge: [{
required: true,
message: this.$t('rule.szfzeren'),
trigger: 'change'
}, ],
InCharge: [{
required: true,
message: this.$t('rule.fkfzeren'),
trigger: 'change'
}, ],
CostTypeID: [{
required: true,
message: this.$t('rule.qxzfyleixing'),
trigger: 'change'
}, ]
},
addCuren: true,
ed: false,
loading2: false,
moneyDate: {
Money: 0,
LastR: 0,
currentR: 0,
LastM: 0,
currentM: 0,
ProfitLoss: 0
},
EmployeeMsg: {
GroupId: '',
BranchId: 0,
DepartmentId: 0,
PostId: 0,
IsLeave: 0,
},
EmployeeList: [],
EmployeeList2: [],
showEmployeeList: [],
showEmployeeList2: [],
Charge: 1,
SetProfitLossMsg: {
ID: 0,
AccountID: 0,
EndRate: '',
TermNum: '',
CurrencyId: '',
initRate: '',
Money: '',
ProfitLoss: 0,
Source: 1,
CostTypeID: ''
},
costType: [],
schoolMsg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
SName: "",
Status: '-1'
}
}
},
methods: {
regNum(n, t) { // 判断数字 n 值 t 类型
let reg = /^\d+(\.\d{0,6})?$/
if (!n) return 0
if (t == 2) {
if (reg.test(n)) {
return Number(n)
}
return 0;
} else if (t == 1) {
if (reg.test(n)) {
return Number(n)
}
return 0
}
},
Calculation() { // 计算盈亏
this.SetProfitLossMsg.CostTypeID = '';
this.moneyDate.Money = this.regNum(this.SetProfitLossMsg.Money, 1)
this.moneyDate.LastR = this.regNum(this.SetProfitLossMsg.initRate, 1)
this.moneyDate.currentR = this.regNum(this.SetProfitLossMsg.EndRate, 2)
this.moneyDate.LastM = 0
this.moneyDate.currentM = 0
this.moneyDate.ProfitLoss = ((this.moneyDate.currentR - this.moneyDate.LastR) * this.moneyDate.Money).toFixed(
2);
if (this.moneyDate.ProfitLoss > 0) {
this.getTemplateCostTypeList(1)
} else if (this.moneyDate.ProfitLoss < 0) {
this.getTemplateCostTypeList(2)
} else {
this.costType = [];
}
},
getTemplateCostTypeList(t) {
this.apipost('financeinfo_post_GetCostTypeList', {
Type: t
}, res => {
if (res.data.resultCode == 1) {
this.costType = res.data.data;
} else {}
}, err => {})
},
remoteMethod(query) {
if (query !== '') {
this.loadingPeople = true
this.apipost('admin_Get_Chat_All_SelectEmpName', {
EmName: query
}, res => {
if (res.data.resultCode == 1) {
this.showEmployeeList = res.data.data
}
this.loadingPeople = false
}, err => {})
} else {
this.showEmployeeList = [];
}
},
remoteMethod2(query) {
if (query !== '') {
this.loadingPeople = true
this.apipost('admin_Get_Chat_All_SelectEmpName', {
EmName: query
}, res => {
if (res.data.resultCode == 1) {
this.showEmployeeList2 = res.data.data
}
this.loadingPeople = false
}, err => {})
} else {
this.showEmployeeList2 = [];
}
},
goUrlNew(item) {
let path = "CompanyAccDetail";
this.$router.push({
name: path,
query: {
"TypeId": item.TypeId,
'ID': item.ID,
blank: "y",
}
})
},
goUrl(path, id, name, source, CurrencyId) {
this.$router.push({
name: path,
query: {
"id": id,
'name': name,
'source': source,
'CurrencyId': CurrencyId
}
})
},
disabledOption() { // 选择公司 如果选择通用则禁用其它选项
if (this.addMsg.BranchIdS && this.addMsg.BranchIdS.length == 0) {
this.CompanyList.forEach(y => {
y.disabled = false
})
return
}
this.addMsg.BranchIdS.forEach(x => {
if (x == '-1') {
this.addMsg.BranchIdS = []
this.addMsg.BranchIdS.push('-1')
this.CompanyList.forEach(y => {
y.disabled = true
})
}
})
},
getCurrentRate(id, index) { // 更新汇率
this.apipost('financeinfo_post_GetCurrentRate', {
ID: id
}, res => {
if (res.data.resultCode == 1) {
this.tips(res.data.message, 'success');
} else {
this.tips(res.data.message, 'error');
}
}, err => {})
},
getfinanceinfoList() { //获取币种列表
this.apipost('financeinfo_post_GetList', {
Name: ''
}, res => {
if (res.data.resultCode == 1) {
this.financeinfoList = res.data.data;
} else {}
}, err => {})
},
getFinancialList() { //获取机构列表
this.apipost('FinancialInstitutions_post_GetList', {}, res => {
if (res.data.resultCode == 1) {
this.FinancialList = res.data.data;
} else {}
}, err => {})
},
getCompanyList() { //获取公司列表
getSchoolDropdown({}).then(res => {
this.CompanyList = res.Data;
}).catch(() => {
})
},
editCurency(id) { // 修改根据ID 获取信息
this.apipost('bankaccount_post_Get', {
ID: id
}, res => {
if (res.data.resultCode == 1) {
let data = res.data.data;
data.BranchIdS = data.BranchList[0].RB_Branch_Id;
this.addMsg = data;
// this.disabledOption();
} else {
this.tips(res.data.message, 'error');
}
}, err => {})
},
cancelEdit(t) { // 取消修改、新增
this.addMsg = {
ID: 0,
Alias: '',
TypeId: '',
BackId: '',
Accountholder: '',
Openingbank: '',
BackNo: '',
Initialbalance: '',
RiskLimitMoney: '',
BranchList: [],
BranchIdS: 0,
OutCharge: 0,
InCharge: 0,
RiskLowerLimitMoney: '',
AccountStartMoney: 0,
AccountStartWBMoney: 0,
BeginTimeStr: '',
}
this.SetProfitLossMsg = {
ID: 0,
EndRate: '',
TermNum: '',
CurrencyId: '',
initRate: '',
Money: '',
AccountID: 0,
Source: 1,
CostTypeID: ''
}
if (!t) {
this.addShow = false
this.ed = false
this.addCuren = true
}
this.Charge = 3;
},
getAccountTypeList() { //获取账户类型
this.apipost('AccountType_post_GetList', {}, res => {
if (res.data.resultCode == 1) {
this.AccountTypeList = res.data.data;
}
}, err => {})
},
getList() { //获取列表
this.loading = true
this.apipost('bankaccount_post_GetPageList', this.msg, res => {
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
let data = res.data.data.pageData;
if (this.total > 0) {
this.noData = false;
} else {
this.noData = true;
}
data.forEach(x => {
x.showB = false
if (x.Initialbalance) {
x.benBalance = (Number(x.CurrentRate) * x.Initialbalance).toFixed(2)
}
let allName = '';
x.BranchName.forEach(y => {
allName = allName + y.BranchName;
})
x.allName = allName
});
this.DataList = data
this.loading = false;
} else {
this.$message.error(res.data.message)
this.loading = false;
}
}, err => {})
},
addInstitutions() { // 保存 修改、新增
this.addMsg.BranchList = [];
if (!this.addMsg.RiskLimitMoney) {
this.addMsg.RiskLimitMoney = 0;
}
let obj = {};
obj = this.CompanyList.find(item => {
return item.SId === this.addMsg.BranchIdS; //筛选出匹配数据
});
let msg = {
ID: 0,
Type: 2,
RB_Branch_Id: this.addMsg.BranchIdS,
RB_BranchName: obj.SName
}
this.addMsg.BranchList.push(msg);
this.apipost('bankaccount_post_Set', this.addMsg, res => {
if (res.data.resultCode == 1) {
this.tips(this.$t('tips.saveYes'), "success");
this.getList();
this.initAddMsg();
this.addShow = false
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
financeinfoRemove(id, text) { //删除
this.$confirm(this.$t('tips.shifoudui') + '“' + text + '”' + this.$t('tips.zhshanchu'),
this.$t('tips.tips'), {
confirmButtonText: this.$t('pub.sureBtn'),
cancelButtonText: this.$t('pub.cancelBtn'),
type: 'warning'
}).then(() => {
this.deletInstitutions(id)
}).catch(() => {
this.$message({
type: 'info',
message: this.$t('tips.cancleDelete')
});
});
},
deletInstitutions(id) {
this.apipost('bankaccount_post_Remove', {
ID: id
}, res => {
if (res.data.resultCode == 1) {
this.innerVisible = false;
this.$message.success(res.data.message)
} else {
this.$message.error(res.data.message)
}
this.getList();
}, err => {})
},
initAddMsg() { //初始化添加、修改数据
let newMsg = {
ID: 0,
Alias: '',
TypeId: '',
BackId: '',
Accountholder: '',
Openingbank: '',
BackNo: '',
Initialbalance: '',
RiskLimitMoney: '',
BranchList: [],
BranchIdS: 0,
OutCharge: 0,
InCharge: 0,
RiskLowerLimitMoney: ''
}
this.addMsg = newMsg;
},
SetProfitLoss() { //币种调汇
this.apipost('FinanceInfo_post_SetProfitLoss', this.SetProfitLossMsg, res => {
if (res.data.resultCode == 1) {
this.tips(res.data.message, 'success');
this.addShow = false
this.addCuren = true
this.ed = 0
} else {
this.tips(res.data.message, 'error');
}
}, err => {})
},
submitForm(addMsg, type) { //提交创建、修改表单
this.$refs[addMsg].validate((valid) => {
if (valid) {
if (type == 1) {
this.addInstitutions()
} else {
this.SetProfitLoss()
}
} else {
return false;
}
});
},
resetPageIndex() { //查询初始化页码
this.msg.pageIndex = 1;
this.currentPage = 1
},
handleCurrentChange(val) { //翻页功能按钮
this.msg.pageIndex = val;
this.getList();
},
tips(msg, type) {
this.$message({
message: msg,
duration: 2000,
type: type
});
},
closeChangeMachie(done) {
done();
this.resetForm('addMsg');
},
resetForm(formName) {
this.initAddMsg();
this.$refs[formName].resetFields();
},
},
mounted() {
this.getList()
this.getAccountTypeList()
let userInfo = this.getLocalStorage();
this.getCompanyMsg.RB_Group_Id = userInfo.Group_Id; //集团ID
this.getCompanyList()
this.getFinancialList()
this.getfinanceinfoList()
}
}
</script>
<style>
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.salesCommission .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.salesCommission .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
}
.salesCommission ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.salesCommission ._icon_btn .icon-add{
background-color: #47BF8C;
}
.salesCommission ._icon_btn i {
width: 26px;
height: 26px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 26px;
margin-right: 10px;
cursor: pointer;
outline: none;
}
.salesCommission .el-table td,.el-table th{
padding: 5px 0;
}
</style>
<template>
<div class="page-body salesCommission">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div style="margin-right: 20px;" v-if='iscMaker==true'>
<div class="block">
<span style="margin-right: 5px;">校区</span>
<el-select v-model="msg.SchoolId" filterable @change="handleCurrentChanges(1)">
<el-option value="-1" label="不限"></el-option>
<el-option v-for='item in CompanyList' :label='item.SName' :value='item.SId' :key='item.SId'></el-option>
</el-select>
</div>
</div>
<div class="col-3" v-if='isgenerate==true'>
<div class="block" style="display:flex">
<span style="margin-right: 5px;">选择月份</span>
<el-date-picker
v-model="value2"
type="month"
placeholder="选择月">
</el-date-picker>
<q-btn :loading="loading1" color="primary" size="11px" label="生成提成" @click="scCommission" style="margin-left:10px"/>
</div>
</div>
</div>
</div>
<template >
<el-table
ref="filterTable"
:data="tableData"
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border
style="width: 100%">
<el-table-column prop="Id" label="ID" ></el-table-column>
<el-table-column prop="Periods" label="周期" ></el-table-column>
<el-table-column prop="SumPrice" label="提成总金额" > </el-table-column>
<el-table-column prop="SchooldCommission" label="校区提成总金额" >
<template slot-scope="scope">
<div style="display: flex;flex-wrap: wrap;" v-if='scope.row.SchooldCommission>=0'>
{{scope.row.SchooldCommission>=0?scope.row.SchooldCommission:'-'}}
</div>
</template>
</el-table-column>
<el-table-column prop="FrIdList" label="财务单据" >
<template slot-scope="scope">
<div style="display: flex;flex-wrap: wrap;" v-if='scope.row.FrIdList.length>0'>
<span v-for="(x,y) in scope.row.FrIdList" @click="gocaiwuxiangq(x)" style="cursor: pointer;text-decoration: underline;margin-right: 5px; color: #409EFF;">{{x}}</span>
</div>
<div v-else></div>
</template>
</el-table-column>
<el-table-column prop="CreateByName" label="创建人" > </el-table-column>
<el-table-column prop="CreateTime" label="创建时间" > </el-table-column>
<el-table-column label="操作" >
<template slot-scope="scope">
<div class="_icon_btn">
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('CommissionDetail',scope.row.Id)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="制单" placement="top" v-if='iscMaker==true'>
<i class="iconfont icon-add" v-if='iscMaker==true'
@click="generalFinancacls(scope.row)"></i>
</el-tooltip>
</div>
</template>
</el-table-column>
</el-table>
<div style="margin-top: 10px;text-align: center;">
<el-pagination background @current-change="handleCurrentChanges" layout="total,prev, pager, next, jumper" :current-page.sync="msg.PageSize"
:page-size="msg.PageSize" :total='total'>
</el-pagination>
</div>
</template>
</div>
</template>
<script>
import {
getSchoolDropdown
} from '../../api/school/index'
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
getSellCommissionPeriodsPageList,
setSellCommissionRule,
setSellCommissionInfo
} from '../../api/finance/index'
export default {
meta: {
title: "销售提成列表"
},
props: {},
components: {},
data() {
return {
loading: false,
loading1: false,
value2:'',
//列表数据参数
msg: {
PageIndex: 1,
PageSize: 20,
Name:'',
SchoolId:'-1'
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[],
total:0,
CompanyList:[],
isgenerate:false,//是否有生成的权限
iscMaker:false,//是否有制单的权限
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x=>{//判断权限
if(x.FunctionCode == "Generate_Commission"){//判断是否有生成的权限
this.isgenerate = true;
}
if(x.FunctionCode == "Commission_maker"){//判断是否有制单的权限
this.iscMaker = true;
}
})
var myDate=new Date();
myDate.setMonth(myDate.getMonth()-1);
this.value2 = myDate.getFullYear() + "-" + (myDate.getMonth()+1)
},
mounted() {
this.getList();//获取提成周期列表
this.getBranchList()
},
methods: {
getList(){
this.loading = true;
getSellCommissionPeriodsPageList(this.msg).then(res => {
if (res.Code == 1) {
this.tableData = res.Data.PageData
this.total = res.Data.Count
}
})
},
scCommission(){//生成提成
if(this.loading1 == false){
this.loading1= true;
setSellCommissionInfo({Month:this.value2}).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '生成提成成功',
position: 'top'
})
this.getList()
}
this.loading1= false;
}).catch(err=>{
this.loading1= false;
})
}
},
getBranchList(){//获取校区
getSchoolDropdown({}).then(res => {
this.CompanyList = res.Data;
}).catch(() => {
})
},
goUrl(path, id ) {
this.$router.push({
path: '/financial/' + path,
query: {
"id": id,
blank: 'y',
}
})
},
gocaiwuxiangq(id){
this.$router.push({
path: '/financial/financalDocument/FinancialDocumentsDetail',
query: {
"id": id,
blank: 'y',
}
})
},
generalFinancacls(item) {
if(this.msg.SchoolId == -1){
if(item.SumPrice>0){
this.tishi(item.SumPrice)
}else{
this.$message.error('提成总金额为0')
}
}else{
if(item.SchooldCommission>0){
this.goaddFinancial(item.SchooldCommission)
}else{
this.$message.error('校区提成总金额为0')
}
}
},
goaddFinancial(Money){
let School_Id = 0;
let obj = {
CostType: 316,
Money: Money,
CurrencyId: 21,
XSTC: 1,
School_Id:this.msg.SchoolId == -1?0:this.msg.SchoolId,
}
let query = {
blank: "y",
tab: "新增付款单据",
Type: 2,
IsUploadPic: 1,
Name:'销售提成单',
id:143,
orderObj: JSON.stringify(obj)
}
this.$router.push({
path: "/financial/financalDocument/addFinancialDocuments",
query
});
},
tishi(Money){
let that = this
this.$q.dialog({
title: "销售制单",
message: "你正在进行所有校区一起制单操作?",
persistent: true,
cancel: {
label: "取消",
flat: true
},
ok: {
label: "确认",
flat: true,
focus: true
}
}).onOk(() => {
this.goaddFinancial(Money)
});
},
handleCurrentChanges(val){
this.msg.PageIndex= val;
this.getList()
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
......@@ -243,15 +243,25 @@ const routes = [{
import("pages/financial/salesRules.vue")
},
{
path: "/financial/salesCommission", //销售提成列表
path: "/financial/salesCommission", //提成周期列表
component: () =>
import("pages/financial/salesCommission.vue")
},
{
path: "/financial/CommissionDetail", //销售提成详情
path: "/financial/CommissionDetail", //周期提成 用户统计列表
component: () =>
import("pages/financial/CommissionDetail.vue")
},
{
path: "/financial/userCommissionDetails", //周期提成 用户提成明细
component: () =>
import("pages/financial/userCommissionDetails.vue")
},
{
path: "/financial/cycleOrderList", //周期提成 订单提成查询
component: () =>
import("pages/financial/cycleOrderList.vue")
},
{
......
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