Commit cdf965a9 authored by Mac's avatar Mac

1

parent 327f248f
<style>
.CM_look {
padding: 4px !important;
position: relative;
top: 1px;
}
.opUl li {
display: inline-block;
margin: 10px 15px 10px 0;
}
.domesticCommission .singeRowTable tr td {
padding: 8px 5px;
}
.domesticCommission .hoverSpan span:hover {
cursor: pointer;
text-decoration: underline;
color: red;
}
</style>
<template>
<div class="flexOne domesticCommission">
<div>
<ul class="opUl">
<li>
<em>期数</em>
<el-select v-model="msg.Periods" size="mini" @change="handleCurrentChange(1)">
<el-option label="不限" :value="0"></el-option>
<el-option v-for="(item,index) in PeriodsList" :key="item.index" :label="item.Name" :value="item.Id"></el-option>
</el-select>
</li>
</ul>
</div>
<table v-loading="loading" class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>期数</th>
<th>名称</th>
<th>总金额</th>
<th>财务单据</th>
<th>操作信息</th>
<th>操作</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.Periods}}</td>
<td>{{item.Name}}</td>
<td>
<p>{{item.SumPrice}}</p>
</td>
<td>
<span v-for="(x,y) in item.FinanceIdList" style="cursor: pointer;text-decoration: underline;">
{{x}}{{item.FinanceIdList.length == y+1 ?'':'、'}}
</span>
</td>
<td>
<div>{{item.CreateByStr}}</div>
<div>{{item.CreateStr}}</div>
</td>
<td>
<el-tooltip class="item" effect="dark" content="查看用户" placement="top">
<el-button type="primary" class="CM_look" @click="goUrl('domesticCommissionUser',item.Id)"
icon="iconfont icon-chakan" circle></el-button>
</el-tooltip>
</td>
</tr>
<tr v-if="dataList.length==0">
<td style="text-align:center" colspan="6">暂无数据</td>
</tr>
</table>
<!-- 分页 -->
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.pageIndex"
layout="total,prev, pager, next, jumper" :page-size='msg.PageSize' :total='total'>
</el-pagination>
</div>
</template>
<script>
import moment from "moment"
export default {
data() {
return {
Month: moment().format("YYYY-MM"),
msg: {
pageIndex: 1,
pageSize: 20,
Periods: 0,
},
loading: false,
//数据源
dataList: [],
total: 0,
btnShow: false,
PeriodsList:[],
}
},
mounted() {
let userInfo = this.getLocalStorage();
let ActionMenuCode = userInfo.ActionMenuCode;
if (ActionMenuCode.indexOf('P_OPCommissionSend') != -1) {
this.btnShow = true;
}
this.getqishilist()
},
methods: {
getqishilist() {
this.apipost(
"sellcommission_GetGNCommissionPeriodsList",
{ },
res => {
if (res.data.resultCode == 1) {
this.PeriodsList = res.data.data;
if(this.PeriodsList && this.PeriodsList.length>0){
this.msg.Periods = Number(this.PeriodsList[0].Id)
}
this.getList();
} else {
this.Error(res.data.message);
this.getList();
}
},
null
);
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
goUrl(path, id) {
this.$router.push({
path: path,
query: {
PeriodId: id,
blank: 'y',
tab: '期数详情'
}
});
},
//获取数据
getList() {
this.loading = true;
this.apipost(
"sellcommission_GetGNCommissionPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
},
null
);
},
}
}
</script>
\ No newline at end of file
<template>
<div class="rule-box">
<div class="query-box">
<ul>
<li>
<span>
<em>规则名称</em>
<el-input type="text" v-model="msg.RuleName" @keyup.native.enter="handleCurrentChange(1)">
</el-input>
</span>
</li>
<li>
<span>
<em>线路</em>
<el-select v-model="msg.LineId" size="mini" @change="handleCurrentChange(1)">
<el-option label="请选择" :value="0"></el-option>
<el-option v-for="(item,index) in LineList" :key="item.index" :label="item.LineName"
:value="item.LineID"></el-option>
</el-select>
</span>
</li>
<li>
<input type="button" class="normalBtn" value="新增" @click="addNew">
</li>
</ul>
</div>
<div class="commonContent">
<table v-loading="loading" class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th>规则名称</th>
<th>线路</th>
<th>团队类型名称 </th>
<th>类型</th>
<th>金额/比例</th>
<th>修改人</th>
<th>修改时间</th>
<th>操作</th>
</tr>
</thead>
<template v-for="(subItem,subIndex) in DataList">
<tr v-for="(childItem,childIndex) in subItem.TempTypeList">
<td v-if="childIndex==0" :rowspan="subItem.TempTypeList.length">{{subItem.RuleName}}</td>
<td v-if="childIndex==0" :rowspan="subItem.TempTypeList.length">
<span v-for="(x,y) in subItem.LineNameList"
:key="y+'1'">{{x}}{{subItem.LineNameList.length==y+1?'':'、'}}</span>
</td>
<td>{{childItem.Name}}</td>
<td>
<span v-if="childItem.Type == 1">人头</span>
<span v-if="childItem.Type == 2">利润比例</span>
</td>
<td>
<span v-if="childItem.Type == 1">{{childItem.Money}}元/人</span>
<span v-if="childItem.Type == 2">
<div>利润比{{childItem.ProfitRate}}%</div>
<div>利润<=0 {{childItem.ProfitRate}}元/人</div>
</span>
</td>
<td v-if="childIndex==0" :rowspan="subItem.TempTypeList.length">{{subItem.UpdateBy}}</td>
<td v-if="childIndex==0" :rowspan="subItem.TempTypeList.length">{{subItem.UpdateDate}}</td>
<td v-if="childIndex==0" :rowspan="subItem.TempTypeList.length">
<el-button-group size='mini'>
<el-tooltip class="item" effect="dark" :content="$t('system.table_edit')"
placement="top-start">
<el-button type="primary" icon="el-icon-edit"
@click="isShowDIv = true,divTitle='修改提成规则',getEdit(subItem)">
</el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="$t('system.table_delete')"
placement="top-start">
<el-button type="danger" icon="el-icon-delete" @click="DeleteRules(subItem.Id)">
</el-button>
</el-tooltip>
</el-button-group>
</td>
</tr>
</template>
<tr v-if="DataList.length==0">
<td colspan="8" align="center">暂无数据</td>
</tr>
<tfoot>
<tr>
<td colspan="8">
<el-pagination background @current-change="handleCurrentChange"
:current-page.sync="msg.pageIndex" layout="total,prev, pager, next, jumper"
:page-size="msg.pageSize" :total="total">
</el-pagination>
</td>
</tr>
</tfoot>
</table>
</div>
<el-dialog title="国内提成规则" :visible.sync="ruleVisible" width="800px">
<el-form ref="addMsg" :model="addMsg" :rules="rules" label-width="110px">
<el-form-item label="规则名称" prop="RuleName">
<el-input type="text" v-model="addMsg.RuleName"></el-input>
</el-form-item>
<el-form-item label="线路" prop="LineshortIds">
<el-select v-model="addMsg.LineshortIds" multiple style="width: 100%;">
<el-option v-for="(item,index) in LineList" :key="index" :label="item.LineName"
:value="item.LineID"></el-option>
</el-select>
</el-form-item>
<el-form-item label="提成比例表">
<div style="width: 100%;border-bottom: 1px solid #e2e2e2;padding-bottom: 10px;margin-top: 10px;"
v-for="(x,y) in addMsg.TempTypeList" :key='y'>
<div style="display: flex;align-items: center;">
<!-- <span style="line-height: 34px;">团队类型:</span> -->
<el-form-item :prop="'TempTypeList.'+ y +'.Id'" :rules="productGroupRules.Id" label="团队类型">
<el-select v-model="x.Id" style="width: 300px;"
@change="selectdis($event, y),gettdName(x.Id,y)" clearable>
<el-option v-for="item in TeamListArr" :key="item.Id" :label="item.Name"
:disabled="item.disabled" :value="item.Id"></el-option>
</el-select>
</el-form-item>
<el-button style="margin-left: 15px;" type="danger" size="mini" class="el-icon-delete"
circle v-if="addMsg.TempTypeList.length>1"
@click="addMsg.TempTypeList.splice(y,1),selectdis()">
</el-button>
</div>
<div style="display: flex;align-items: center;margin-top: 10px;">
<!-- <span>类型:</span> -->
<el-form-item label="类型">
<el-radio v-model="x.Type" label="1">人头</el-radio>
<el-radio v-model="x.Type" label="2" style="margin-right: 20px;">利润比列</el-radio>
</el-form-item>
</div>
<div style="display: flex;align-items: center;margin-top: 10px;">
<el-form-item v-if="x.Type==1" :prop="'TempTypeList.'+ y +'.Money'"
:rules="productGroupRules.Money" label="人头金额">
<el-input style="width: 200px;" type="Number" v-model="x.Money"
@keyup.native="checkPrice(x,'Money',true)"><template slot="append">元/人</template>
</el-input>
</el-form-item>
<el-form-item v-if="x.Type==2" :prop="'TempTypeList.'+ y +'.ProfitRate'"
:rules="productGroupRules.ProfitRate" label="利润比例">
<el-input style="width: 170px;" type="Number" v-model="x.ProfitRate"
@keyup.native="checkPrice(x,'ProfitRate',true)">
<template slot="append">%</template>
</el-input>
<!-- <span style="margin-left: 15px;" >利润小于等于0:</span>
-->
</el-form-item>
<el-form-item v-if="x.Type==2" :prop="'TempTypeList.'+ y +'.Money'"
:rules="productGroupRules.Money" label="利润<=0时">
<el-input style="width: 170px;" type="Number" v-model="x.Money"
@keyup.native="checkPrice(x,'Money',true)"><template slot="append">元/人</template>
</el-input>
</el-form-item>
<!-- <span v-if="x.Type==1">人头金额:</span>
<span v-if="x.Type==2">利润比例:</span>
-->
</div>
</div>
<el-button v-if="TeamListArr.length>addMsg.TempTypeList.length" size="mini" type="primary"
class="el-icon-circle-plus-outline" circle @click="addTempTypeList"></el-button>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="ruleVisible = false">取 消</el-button>
<el-button size="small" type="danger" @click="RulesOk('addMsg')">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import Vue from "vue";
const addobj = { Id: 0, RuleName: '', LineIds: '', LineshortIds: [], TempTypeList: [{ Id: '', Name: '', Type: '1', Money: '0', ProfitRate: '0' }] }
export default {
data() {
var checkVariable = (rule, value, callback) => {
if (value == null || value.length == 0) {
return callback(new Error("提成比列不能为空"));
}
let a = parseFloat(value);
if (isNaN(a)) {
callback(new Error("提成比例必须是整数"));
} else {
callback();
}
};
return {
msg: {
pageIndex: 1,
pageSize: 10,
RuleName: '',
LineId: 0,
},
loading: false, //加载层
DataList: [],
total: 0,
TeamListArr: [],//团队类型
LineList: [],//线路
ruleVisible: false,//弹窗的显示
addMsg: Object.assign({}, addobj),
rules: {
RuleName: [{
required: true,
message: '请输入规则名称',
trigger: 'change'
}],
LineshortIds: [{
type: 'array',
required: true,
message: '请选择路线',
trigger: 'change'
}],
},
productGroupRules: {
Id: [
{ required: true, message: '请选择团队类型', trigger: 'change' }
],
Money: [
{ required: true, message: '不能为空', trigger: 'change' }
],
ProfitRate: [
{ required: true, message: '不能为空', trigger: 'change' }
],
}
};
},
created() {
this.getList()
this.getTeamList()
this.getLineList()
},
methods: {
handleCurrentChange(val) {
//翻页功能按钮
this.msg.pageIndex = val;
this.getList();
},
getList() {
this.loading = true;
this.apipost(
"sellcommission_GetGNCommissionRuleList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.DataList = res.data.data.pageData;
this.total = res.data.data.count;
}
},
err => { }
);
},
selectdis(val, index) {//团队类型下拉了不能再次选择
this.TeamListArr.forEach((x, y) => {
let ishow = false;
this.addMsg.TempTypeList.map((j, ji) => {
if (ishow == false) {
if (x.Id == j.Id) {
x.disabled = true;
ishow = true;
return;
} else {
x.disabled = false;
}
}
});
});
},
gettdName(id, index) {//获取团队类型名称
this.TeamListArr.map(x => {
if (x.Id == id) {
this.addMsg.TempTypeList[index].Name = x.Name;
return false
}
})
},
//获取线路列表
getLineList() {
this.apipost(
"line_post_GetAllList", {},
res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
}
);
},
getTeamList() {//获取团队类型的列表
this.apipost("travel_get_GetTravelPriceTeamTypeList", {}, res => {
if (res.data.resultCode == 1) {
this.TeamListArr = res.data.data;
this.TeamListArr.forEach(x => {
x.disabled = false
})
} else {
this.Error(res.data.message);
}
},
err => { }
);
},
getEdit(row) {//修改规则
let data = JSON.parse(JSON.stringify(row))
this.addMsg = Object.assign({}, addobj)
this.addMsg.Id = data.Id;
this.addMsg.RuleName = data.RuleName;
this.addMsg.LineIds = data.LineIds;
this.addMsg.LineshortIds = data.LineIds.split(',').map(Number);
this.addMsg.TempTypeList = data.TempTypeList;
this.addMsg.TempTypeList.forEach(x => {
x.Type = x.Type.toString()
})
this.selectdis()
this.ruleVisible = true;
},
DeleteRules(ID) {//删除规则
this.$confirm("是否删除? ", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.apipost('sellcommission_DelGNCommissionRule', {
RuleId: ID
}, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
this.getList()
} else {
this.Error(res.data.message)
}
})
})
.catch(() => { });
},
addNew() {//新增
this.addMsg = { Id: 0, RuleName: '', LineIds: '', LineshortIds: [], TempTypeList: [{ Id: '', Name: '', Type: '1', Money: '0', ProfitRate: '0' }] }
this.selectdis()
this.ruleVisible = true;
},
addTempTypeList() {//新增类型
let obj = { Id: '', Name: '', Type: '1', Money: "0", ProfitRate: "0" }
this.addMsg.TempTypeList.push(obj)
},
RulesOk(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let LineshortIds = JSON.parse(JSON.stringify(this.addMsg.LineshortIds))
this.addMsg.LineIds = LineshortIds.join(',')
console.log(this.addMsg)
this.apipost(
'sellcommission_SetGNCommissionRule', this.addMsg,
res => {
if (res.data.resultCode == 1) {
this.getList();
this.ruleVisible = false;
this.Success(res.data.message)
} else {
this.Error(res.data.message)
}
},
err => { }
)
}
});
},
},
mounted() {
}
};
</script>
<style>
/* .rule-box .el-select__tags{
top: 100%;
} */
</style>
\ No newline at end of file
<style>
.CM_look {
padding: 4px !important;
position: relative;
top: 1px;
}
.opUl li {
display: inline-block;
margin: 10px 15px 10px 0;
}
.domesticCommissionUser .singeRowTable tr td {
padding: 8px 5px;
}
.domesticCommissionUser .hoverSpan span:hover {
cursor: pointer;
text-decoration: underline;
color: red;
}
</style>
<template>
<div class="flexOne domesticCommissionUser">
<div>
<ul class="opUl">
<li>
<em>人员</em>
<el-select v-model="msg.UserId" size="mini" @change="handleCurrentChange(1)" filterable>
<el-option label="不限" :value="-1"></el-option>
<el-option v-for="(item,index) in searchList" :key="item.index" :label="item.name"
:value="item.empId"></el-option>
</el-select>
</li>
<li>
<em>公司</em>
<el-select v-model="msg.RB_Branch_Id" size="mini" @change="handleCurrentChange(1)">
<el-option label="不限" :value="-1"></el-option>
<el-option v-for="(item,index) in BranchList" :key="item.index" :label="item.BName"
:value="item.Id"></el-option>
</el-select>
</li>
<li>
<em>部门</em>
<el-select v-model="msg.RB_Department_Id" size="mini" @change="handleCurrentChange(1)">
<el-option label="不限" :value="-1"></el-option>
<el-option v-for="(item,index) in departMentList" :key="item.index" :label="item.DepartmentName"
:value="item.DepartmentID"></el-option>
</el-select>
</li>
</ul>
</div>
<table v-loading="loading" class="singeRowTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>期数</th>
<th>销售</th>
<th>部门</th>
<th>公司</th>
<th>提成</th>
<th>额外奖励</th>
<th>额外扣除</th>
<th>最终提成</th>
<th>人数</th>
<th>操作</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.Periods}}</td>
<td>{{item.UserName}}</td>
<td>{{item.DeptName}}</td>
<td>{{item.BranchName}}</td>
<td>{{item.CommissionMoney}}</td>
<td>{{item.OtherMoney}}</td>
<td>{{item.BackMoney}}</td>
<td>{{item.YFMoney}}</td>
<td>{{item.PeopleCount}}</td>
<td>
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<el-button type="primary" class="CM_look" @click="goUrl('domesticCommissiondetails',item)"
icon="iconfont icon-chakan" circle></el-button>
</el-tooltip>
</td>
</tr>
<tr v-if="dataList.length==0">
<td style="text-align:center" colspan="10">暂无数据</td>
</tr>
</table>
<!-- 分页 -->
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.pageIndex"
layout="total,prev, pager, next, jumper" :page-size='msg.PageSize' :total='total'>
</el-pagination>
</div>
</template>
<script>
import moment from "moment"
export default {
data() {
return {
Month: moment().format("YYYY-MM"),
msg: {
pageIndex: 1,
pageSize: 20,
PeriodId: 0,
UserId: -1,
RB_Branch_Id: -1,
RB_Department_Id: -1
},
loading: false,
//数据源
dataList: [],
total: 0,
btnShow: false,
PeriodsList: [],
BranchList: [],
searchList: [],
departMentList:[],
}
},
mounted() {
let userInfo = this.getLocalStorage();
let ActionMenuCode = userInfo.ActionMenuCode;
if (ActionMenuCode.indexOf('P_OPCommissionSend') != -1) {
this.btnShow = true;
}
if (this.$route.query && this.$route.query.PeriodId) {
this.msg.PeriodId = this.$route.query.PeriodId
}
this.getList();
this.getqishilist()
this.getCompanyList()//获取公司
this.getEmployee()//人员
this.getDerpartMent()//部门
},
methods: {
getDerpartMent() {
//获取部门
this.apipost(
"admin_get_DepartmentGetList",
this.getDepartmentMsg,
res => {
if (res.data.resultCode == 1) {
this.departMentList = res.data.data;
} else { }
},
err => { }
);
},
getEmployee() {//所有人员下拉
let employeeMsg = {
RB_Group_id: "0",
RB_Branch_id: "-1",
departmentId: "0",
IsLeave: "-1"
}
this.apipost(
"app_get_company_employee",
employeeMsg,
res => {
if (res.data.resultCode == 1) {
this.searchList = res.data.data;
}
},
err => { }
);
},
//初始化公司
getCompanyList() {
let userInfo = this.getLocalStorage();
var RB_Group_id = userInfo.RB_Group_id;
let msg = {
Status: 0,
is_show: 0,
RB_Group_Id: RB_Group_id
};
this.apipost(
"admin_get_BranchGetList",
msg,
res => {
if (res.data.resultCode == 1) {
this.BranchList = res.data.data;
}
},
err => { }
);
},
getqishilist() {
this.apipost(
"sellcommission_GetGNCommissionPeriodsList",
{},
res => {
if (res.data.resultCode == 1) {
this.PeriodsList = res.data.data;
if (this.PeriodsList && this.PeriodsList.length > 0) {
// this.msg.Periods = Number(this.PeriodsList[0].Id)
}
} else {
this.Error(res.data.message);
}
},
null
);
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
goUrl(path, item) {
this.$router.push({
path: path,
query: {
PeriodId: this.$route.query.PeriodId,
UserId:item.UserId,
RB_Branch_Id:item.RB_Branch_Id,
RB_Department_Id:item.RB_Department_Id,
blank: 'y',
tab: '国内提现详情'
}
});
},
//获取数据
getList() {
this.loading = true;
this.apipost(
"sellcommission_GetGNCommissionDetailsListForUser",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
},
null
);
},
}
}
</script>
\ No newline at end of file
<style>
.CM_look {
padding: 4px !important;
position: relative;
top: 1px;
}
.opUl li {
display: inline-block;
margin: 10px 15px 10px 0;
}
.domesticCommissiondetails .singeRowTable tr td {
padding: 8px 5px;
}
.domesticCommissiondetails .hoverSpan span:hover {
cursor: pointer;
text-decoration: underline;
color: red;
}
</style>
<template>
<div class="flexOne domesticCommissiondetails">
<div style="min-height: 70px;">
<ul class="query-box" style="padding: 0;">
<li>
<em>订单号</em>
<el-input maxlength="50" v-model="msg.OrderId" class="permiss-input w200"
@keyup.native.enter="handleCurrentChange(1)" :placeholder="$t('pub.pleaseImport')"></el-input>
</li>
<li>
<em>团号</em>
<el-input maxlength="50" v-model="msg.TCNUM" class="permiss-input w200"
@keyup.native.enter="handleCurrentChange(1)" :placeholder="$t('pub.pleaseImport')"></el-input>
</li>
<li>
<input type="button" class="normalBtn" value="导出" @click="exportExcel">
</li>
</ul>
</div>
<table v-loading="loading" class="singeRowTable" border="0" cellspacing="0" cellpadding="0" style="margin-top: 10px;">
<tr>
<th>期数</th>
<th>团信息</th>
<th>订单号</th>
<th>销售</th>
<th>部门</th>
<th>公司</th>
<th>提成</th>
<th>额外奖励</th>
<th>额外扣除</th>
<th>最终提成</th>
<th>人数</th>
<!-- <th>操作</th> -->
</tr>
<tr v-for="item in dataList">
<td>{{item.Periods}}</td>
<td>{{item.TCNUM}}({{item.TCID}})</td>
<td>{{item.OrderId}}</td>
<td>{{item.UserName}}</td>
<td>{{item.DeptName}}</td>
<td>{{item.BranchName}}</td>
<td>{{item.CommissionMoney}}</td>
<td>{{item.OtherMoney}}</td>
<td>{{item.BackMoney}}</td>
<td>{{item.YFMoney}}</td>
<td>{{item.PeopleCount}}</td>
<!-- <td>
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<el-button type="primary" class="CM_look" @click="goUrl('OPCommissionDetail',item.ID)"
icon="iconfont icon-chakan" circle></el-button>
</el-tooltip>
</td> -->
</tr>
<tr v-if="dataList.length==0">
<td style="text-align:center" colspan="11">暂无数据</td>
</tr>
</table>
<!-- 分页 -->
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.pageIndex"
layout="total,prev, pager, next, jumper" :page-size='msg.PageSize' :total='total'>
</el-pagination>
</div>
</template>
<script>
import moment from "moment"
export default {
data() {
return {
Month: moment().format("YYYY-MM"),
msg: {
pageIndex: 1,
pageSize: 20,
PeriodId: 0,
UserId: -1,
RB_Branch_Id: -1,
RB_Department_Id: -1,
OrderId:'',
TCNUM:'',
},
loading: false,
//数据源
dataList: [],
total: 0,
btnShow: false,
PeriodsList: [],
BranchList: [],
searchList: [],
departMentList:[],
}
},
mounted() {
let userInfo = this.getLocalStorage();
let ActionMenuCode = userInfo.ActionMenuCode;
if (ActionMenuCode.indexOf('P_OPCommissionSend') != -1) {
this.btnShow = true;
}
if (this.$route.query ) {
console.log(this.$route.query)
if(this.$route.query.PeriodId){
this.msg.PeriodId = this.$route.query.PeriodId
}
if(this.$route.query.UserId){
this.msg.UserId = this.$route.query.UserId
}
if(this.$route.query.RB_Branch_Id){
this.msg.RB_Branch_Id = this.$route.query.RB_Branch_Id
}
if(this.$route.query.RB_Department_Id){
this.msg.RB_Department_Id = this.$route.query.RB_Department_Id
}
}
this.getList();
this.getqishilist()
this.getCompanyList()//获取公司
this.getEmployee()//人员
this.getDerpartMent()//部门
},
methods: {
getDerpartMent() {
//获取部门
this.apipost(
"admin_get_DepartmentGetList",
this.getDepartmentMsg,
res => {
if (res.data.resultCode == 1) {
this.departMentList = res.data.data;
} else { }
},
err => { }
);
},
getEmployee() {//所有人员下拉
let employeeMsg = {
RB_Group_id: "0",
RB_Branch_id: "-1",
departmentId: "0",
IsLeave: "-1"
}
this.apipost(
"app_get_company_employee",
employeeMsg,
res => {
if (res.data.resultCode == 1) {
this.searchList = res.data.data;
}
},
err => { }
);
},
//初始化公司
getCompanyList() {
let userInfo = this.getLocalStorage();
var RB_Group_id = userInfo.RB_Group_id;
let msg = {
Status: 0,
is_show: 0,
RB_Group_Id: RB_Group_id
};
this.apipost(
"admin_get_BranchGetList",
msg,
res => {
if (res.data.resultCode == 1) {
this.BranchList = res.data.data;
}
},
err => { }
);
},
getqishilist() {
this.apipost(
"sellcommission_GetGNCommissionPeriodsList",
{},
res => {
if (res.data.resultCode == 1) {
this.PeriodsList = res.data.data;
if (this.PeriodsList && this.PeriodsList.length > 0) {
// this.msg.Periods = Number(this.PeriodsList[0].Id)
}
} else {
this.Error(res.data.message);
}
},
null
);
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
goUrl(path, id) {
this.$router.push({
path: path,
query: {
PeriodsId: id,
blank: 'y',
tab: '期数详情'
}
});
},
//获取数据
getList() {
this.loading = true;
this.apipost(
"sellcommission_GetGNCommissionSingleDetailsList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
},
null
);
},
exportExcel(){//导出
let msg=this.msg;
var fileName = "国内提成明细.xls";
this.GetLocalFile("sellcommission_post_GetGNCommissionSingleDetailsListToExcel", msg, fileName);
},
}
}
</script>
\ No newline at end of file
<template>
<div class="groupApproval">
<div class="query-box">
<ul>
<li>
<span>
<em>团类型</em>
<el-select class="w200" v-model="msg.PriceTeamType" filterable :placeholder="$t('pub.pleaseImport')"
@change="getControlList()">
<el-option label="不限" value="0">
</el-option>
<el-option v-for="item in TeamListArr" :label="item.Name" :value="item.Id"
:key="item.Id"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>团号</em>
<el-input maxlength="50" v-model="msg.TCNUM" class="permiss-input w200"
@keyup.native.enter="getControlList" :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<span>
<em>编号</em>
<el-input maxlength="6" v-model="msg.TCID" class="permiss-input 200"
@keyup.native.enter="getControlList" :placeholder="$t('pub.pleaseImport')"
@keyup.native="checkInteger(msg,'TCID')"></el-input>
</span>
</li>
<li></li>
</ul>
</div>
<ul class="_nav clearfix">
<li :class="active==1?'_active':''" @click="active=1, msg.OutGroupAuditState=1, getControlList()">待审批</li>
<li :class="active==2?'_active':''" @click="active=2, msg.OutGroupAuditState=2, getControlList()">已审批</li>
</ul>
<ul style="overflow: initial!important">
<li style="margin-bottom:10px;width: 100%;">
</li>
</ul>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<thead>
<tr>
<th width="160">团队编号</th>
<th>系列</th>
<th width="400">团名</th>
<th>OP</th>
<th>团队类型</th>
<th>应收</th>
<th>实收</th>
<th>待收</th>
<th>应付</th>
<th>实付</th>
<th>待付</th>
<th>团队利润</th>
<th v-if="active==2">审批结果</th>
<th v-if="active==2">审批信息</th>
<th width="200">操作</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in dataList" :key="index">
<td style="cursor: pointer;text-decoration: underline;" @click="goTravel(item.TCID)">{{item.TCNUM}}({{item.TCID}})</td>
<td>{{item.LtName}}</td>
<td style="padding: 5px;">{{item.Title}}</td>
<td>{{item.OPName}}</td>
<td>{{item.PriceTeamTypeName}}</td>
<td>{{item.ShouldReceive}}</td>
<td>{{item.ActualReceive}}</td>
<td>{{item.WaitRecive}}</td>
<td>{{item.ShouldPay}}</td>
<td>{{item.ActualPay}}</td>
<td>{{item.WaitPay}}</td>
<td>{{item.ActualProfit}}</td>
<td v-if="active==2">
<span v-if="item.OutGroupAuditState == 2" style="color: green;">通过</span>
<span v-if="item.OutGroupAuditState == 3" style="color: red;">拒绝</span>
</td>
<td v-if="active==2">
<div>{{item.AuditEmpName}}</div>
<div>{{item.OutGroupAuditDate}}</div>
</td>
<td class="_icon_btn">
<el-tooltip class="item" effect="dark" content="审核" placement="top" v-if="active==1">
<i class="iconfont icon-ico_commodity_defaul" @click="shenhei(item)" v-if="active==1"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="驳回" placement="top" v-if="active==1">
<i class="iconfont icon-shenhebohui" @click="bohui(item)" v-if="active==1"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="明细" placement="top">
<i class="iconfont icon-mingxi" @click="goTeamBalance(item.TCID)"></i>
</el-tooltip>
</td>
</tr>
</tbody>
<tr v-if="dataList.length==0">
<td colspan="13" align="center">暂无数据</td>
</tr>
</table>
<div style="width: 100%;">
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.pageIndex"
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total">
</el-pagination>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
dataList: [],
active: '1',
msg: {
pageIndex: 1,
pageSize: 5,
PriceTeamType: "0",
TCNUM: '',//团号
TCID: '',
OutGroupAuditState: 1,
OutGroupAuditEmpId: 0,//当前登录用户id , 如果有查询所有的权限 则=0
},
TeamListArr:[],
total:0,
}
},
created() {
this.getTeamList()
let userinfo = this.getLocalStorage();
let ActionMenuCode=userinfo.ActionMenuCode;
if(ActionMenuCode.indexOf('Finance_clumpSeeAll')!=-1){//如果有权限 可以查看所有 如果没有只能看自己审核的
this.msg.OutGroupAuditEmpId = 0
}else{
this.msg.OutGroupAuditEmpId = userinfo.EmployeeId
}
},
mounted() {
this.getList()
},
methods: {
getControlList() {
this.msg.pageIndex = 1;
this.getList()
},
handleCurrentChange(e){
this.msg.pageIndex = e;
this.getList()
},
getList() {
this.loading = true
let msg = JSON.parse(JSON.stringify(this.msg))
if(msg.TCID==''){
msg.TCID = 0
}
this.apipost(
"travel_get_GetOutGroupAuditPageList",
msg,
res => {
this.loading = false
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
}else{
this.Error(res.data.message);
}
},
err => {
}
);
},
shenhei(item) {
let that = this;
that.$confirm('是否审核通过该团?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.groupAudit(2,item.TCID)
}).catch(() => {
});
},
bohui(item) {
let that = this;
that.$confirm('是否驳回该团?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
//掉接口
this.groupAudit(3,item.TCID)
}).catch(() => {
});
},
groupAudit(type,TCID){
this.apipost("travel_post_SetOutGroupAuditInfo", {TCID:TCID,OutGroupAuditState:type}, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.getList()
} else {
this.Error(res.data.message);
}
},
err => { }
);
},
goTeamBalance(id, OutBranchId) {//团队收支明细
this.$router.push({
name: "TeamBalancePayment",
query: {
id: id,
IsHaveAuth: true,
blank: "y",
tab: "团队收支明细"
}
});
},
getTeamList() {
this.apipost("travel_get_GetTravelPriceTeamTypeList", {}, res => {
if (res.data.resultCode == 1) {
this.TeamListArr = res.data.data;
} else {
this.Error(res.data.message);
}
},
err => { }
);
},
goTravel(TCID){//跳转到团队列表
this.$router.push({
path: 'TravelControlList',
query: {
TCID: TCID,
blank: 'y',
tab: '团控列表'
}
});
}
}
}
</script>
<style scoped>
.groupApproval .singeRowTable {
margin-top: 20px;
}
._nav {
margin: 20px 0 0 0;
background-color: #f5f5f5;
}
._nav li {
float: left;
font-size: 14px;
color: #666666;
padding: 15px 20px;
cursor: pointer;
position: relative;
background-color: #f1f1f1;
margin-right: 5px
}
._nav li._active {
background-color: #FFFFFF;
color: #333333
}
._nav li._active::after {
content: "";
width: 20px;
height: 3px;
background-color: #E95252;
display: inline-block;
position: absolute;
bottom: 0;
left: 38%;
}
._icon_btn i {
width: 30px;
height: 30px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
cursor: pointer;
outline: none;
}
._icon_btn i.icon-ico_commodity_defaul {
background-color: #F16C3C;
}
._icon_btn i.icon-ico_commodity_defaul:hover {
background-color: #e87c54
}
._icon_btn i.icon-ico_commodity_defaul:active {
background-color: #f76630
}
._icon_btn i.icon-shenhebohui {
background-color: #E95252
}
._icon_btn i.icon-mingxi {
background-color: rgb(71, 191, 140)
}
</style>
\ No newline at end of file
......@@ -4530,6 +4530,40 @@ export default {
title: '销售提成规则'
}
},
{
path: '/domesticCommissionRule',
name: 'domesticCommissionRule',
component: resolve => require(['@/components/FinancialModule/domesticCommissionRule'], resolve),
meta: {
title: '国内提成规则'
}
},
{
path: '/domesticCommission',
name: 'domesticCommission',
component: resolve => require(['@/components/FinancialModule/domesticCommission'], resolve),
meta: {
title: '国内提成列表'
}
},
{
path: '/domesticCommissionUser',
name: 'domesticCommissionUser',
component: resolve => require(['@/components/FinancialModule/domesticCommissionUser'], resolve),
meta: {
title: '国内提成用户分组'
}
},
{
path: '/domesticCommissiondetails',
name: 'domesticCommissiondetails',
component: resolve => require(['@/components/FinancialModule/domesticCommissiondetails'], resolve),
meta: {
title: '国内提成详情'
}
},
{
path: '/OPRules',
name: 'OPRules',
......@@ -4562,6 +4596,15 @@ export default {
title: '微途提成规则'
}
},
{
path: '/groupApproval',
name: 'groupApproval',
component: resolve => require(['@/components/FinancialModule/groupApproval'], resolve),
meta: {
title: '结团审批'
}
},
{
path: '/Qzcommissions',
name: 'Qzcommissions',
......
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