Commit 10a5299f authored by Mac's avatar Mac

新增

parent 08b30a46
...@@ -247,5 +247,62 @@ export function setActivityConfig(data) { ...@@ -247,5 +247,62 @@ export function setActivityConfig(data) {
}); });
} }
// 工作台 获取提成期数列表
export function getActivityCommissionPeriodsPageList(data) {
return request({
url: '/Activity/GetActivityCommissionPeriodsPageList',
method: 'post',
data
});
}
// 工作台 获取提成明细列表
export function getActivityCommissionUserDetailList(data) {
return request({
url: '/Activity/GetActivityCommissionUserDetailList',
method: 'post',
data
});
}
// 工作台 查询订单活动提成明细
export function getActivityCommissionForOrderList(data) {
return request({
url: '/Activity/GetActivityCommissionForOrderList',
method: 'post',
data
});
}
// 工作台 查询订单活动提成明细
export function getActivityCommissionUserList(data) {
return request({
url: '/Activity/GetActivityCommissionUserList',
method: 'post',
data
});
}
// 活动获取可发放提成的用户
export function getActivityCommissionSendEmployeeList(data) {
return request({
url: '/Activity/GetActivityCommissionSendEmployeeList',
method: 'post',
data
});
}
// 活动设置人员为已发放
export function setActivityCommissionSendEmployee(data) {
return request({
url: '/Activity/SetActivityCommissionSendEmployee',
method: 'post',
data
});
}
This diff is collapsed.
<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 items-center">
<div style="margin-right: 10px;">
<q-btn  color="primary"  size="11px"  label="返回"  @click="goreturn"  style="margin-left:10px" />
</div>
<div class="col-3">
<q-input filled v-model="msg.ActivityName" @keyup.enter.native="getList()" label="活动名称" />
</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" v-loading='loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column prop="SchoolName" label="校区" :filters='SchoolNamelist' :filter-method="filterHandler">
</el-table-column>
<el-table-column prop="DeptName" label="部门" :filters='DeptNamelist' :filter-method="filterHandler">
</el-table-column>
<el-table-column prop="UserName" label="销售" :filters='UserNamelist' :filter-method="filterHandler">
</el-table-column>
<el-table-column prop="OrderId" label="订单号">
<template slot-scope="scope">
<div v-if="scope.row.OrderId" style="cursor: pointer;text-decoration: underline;" @click="goUrlorderList(scope.row)">
{{scope.row.OrderId}}
</div>
</template>
</el-table-column>
<el-table-column prop="ActivityName" label="活动名称" > </el-table-column>
<el-table-column prop="ActivityTime" label="活动日期" > </el-table-column>
<el-table-column prop="CommissionMoney" label="提成金额" sortable :sort-method="CommissionMoney">
<template slot-scope="scope">
<div style="color: rgb(233, 82, 82);">{{scope.row.CommissionMoney}}</div>
</template>
</el-table-column>
<el-table-column prop="DSUserName" label="报名用户" ></el-table-column>
<el-table-column prop="Periods" label="周期"> </el-table-column>
<el-table-column prop="Remark" label="备注" ></el-table-column>
</el-table>
</template>
</div>
</template>
<script>
import {
GetClassTypePageList,
} from '../../../api/system/index';
import {
getActivityCommissionUserDetailList,
} 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,
ActivityName: '',
OrderId: '',
UserIds: '',
},
pageCount: 0,
persistent: false,
listData: {},
tableData: [],
company: [],
department: [],
ClassList: [],
allClassList: [],
see_tcdetailed: false,
SchoolNamelist: [],
DeptNamelist: [],
UserNamelist: [],
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x => { //判断权限
if (x.FunctionCode == "see_tcdetailed") { //判断是否可以查看其他明细
this.see_tcdetailed = true;
}
})
if (this.see_tcdetailed == false) {
this.msg.UserId = userinfo.Id
}
},
mounted() {
if (this.$route.query && this.$route.query.id) {
this.msg.PeriodId = this.$route.query.id
}
if (this.$route.query && this.$route.query.UserId) {
this.msg.UserId = this.$route.query.UserId
}
if (this.$route.query && this.$route.query.School_Id) {
this.msg.School_Id = this.$route.query.School_Id
}
this.getList()
this.setClass()
},
methods: {
getList() {
if (this.msg)
this.loading = true;
getActivityCommissionUserDetailList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data;
this.SchoolNamelist = [];
this.DeptNamelist = [];
this.UserNamelist = [];
this.tableData.forEach(x => {
let obj = {
text: x.SchoolName,
value: x.SchoolName
}
let obj2 = {
text: x.DeptName,
value: x.DeptName
}
let obj3 = {
text: x.UserName,
value: x.UserName
}
this.SchoolNamelist.push(obj)
this.DeptNamelist.push(obj2)
this.UserNamelist.push(obj3)
})
this.SchoolNamelist = this.unique(this.SchoolNamelist)
this.DeptNamelist = this.unique(this.DeptNamelist)
this.UserNamelist = this.unique(this.UserNamelist)
}
})
},
unique(arr, Name) { //数组去重
const res = new Map();
return arr.filter(
(list) => !res.has(list.text) && res.set(list.text, 1)
);
},
//选择班级
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)
}
})
},
goUrlorderList(row) {
this.$router.push({
path: '/financial/reportform/activityCommissionForOrderList',
query: {
OrderId: row.OrderId,
blank: 'y',
}
})
},
filterHandler(value, row, column) {
const property = column['property'];
return row[property] === value;
},
CommissionMoney(a, b) {
return a.CommissionMoney - b.CommissionMoney;
},
goreturn() {
this.$router.go(-1);
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
<style>
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.userCommissionDetails .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.userCommissionDetails .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.userCommissionDetails ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.userCommissionDetails ._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;
}
.userCommissionDetails .el-table td,
.el-table th {
padding: 5px 0;
}
</style>
<template>
<div class="page-body userCommissionDetails">
<div class="page-search row items-center">
<div style="margin-right: 10px;">
<q-btn color="primary"  size="11px"  label="返回"  @click="goreturn"  style="margin-left:10px" />
</div>
</div>
<template>
<el-table ref="filterTable" :data="tableData" v-loading='loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column prop="SchoolName" width='150' 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="OrderId" label="订单号">
<template slot-scope="scope">
<div v-if="scope.row.OrderId" style="cursor: pointer;text-decoration: underline;" @click="goUrlorderList('/sale/orderStatistics',scope.row)">
{{scope.row.OrderId}}
</div>
</template>
</el-table-column>
<el-table-column prop="ActivityName" label="活动名称"></el-table-column>
<el-table-column prop="ActivityTime" label="活动日期"></el-table-column>
<el-table-column prop="CommissionMoney" label="提成金额" sortable :sort-method="CommissionMoney">
<template slot-scope="scope">
<div style="color: rgb(233, 82, 82);">{{scope.row.CommissionMoney}}</div>
</template>
</el-table-column>
<el-table-column prop="DSUserName" label="报名用户" ></el-table-column>
<el-table-column width='90' prop="Periods" label="期数"> </el-table-column>
<el-table-column prop="Remark" width='160' label="备注"> </el-table-column>
</el-table>
</template>
</div>
</template>
<script>
import {
GetClassTypePageList,
} from '../../../api/system/index';
import {
getActivityCommissionForOrderList,
} from '../../../api/finance/index'
import {
getClassDropDownList,
} from "../../../api/school/index";
export default {
meta: {
title: "订单活动提成明细"
},
props: {},
components: {},
data() {
return {
loading: false,
//列表数据参数
msg: {
OrderId: 0,
},
pageCount: 0,
persistent: false,
listData: {},
tableData: [],
company: [],
department: [],
ClassList: [],
allClassList: [],
}
},
created() {},
mounted() {
if (this.$route.query && this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId
}
this.getList()
},
methods: {
getList() {
if (this.msg)
this.loading = true;
getActivityCommissionForOrderList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data
if (this.tableData.length > 0) {
this.getAskfor()
}
}
})
},
getAskfor() { //求值
let obj = {
SchoolName: '合计',
CommissionMoney: 0,
}
this.tableData.forEach((x) => {
if (x.CommissionMoney) {
obj.CommissionMoney = this.accAdd(x.CommissionMoney, obj.CommissionMoney)
};
})
this.tableData.push(obj)
},
accAdd(arg1, arg2) { //js 加法精确计算
var r1, r2, m;
try {
r1 = arg1.toString().split(".")[1].length;
} catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2));
return (arg1 * m + arg2 * m) / m;
},
goorderUrl(row) {
this.$router.push({
path: '/financial/cycleOrderList',
query: {
OrderId: row.OrderId,
UserId:row.UserId,
blank: 'y',
}
})
},
goreturn() {
this.$router.go(-1);
},
goUrlorderList(path,row){//订单跳转
this.OpenNewUrl(path, {
OrderId: row.OrderId,
// EnterID:row.UserId
});
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
<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-btn  color="primary"  size="11px"  label="返回"  @click="goreturn"  style="margin-left:10px" />
</div>
</div>
</div>
<template>
<el-table ref="filterTable" :data="tableData" v-loading='loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column prop="SchoolName" label="校区" :filters='SchoolNamelist' :filter-method="filterHandler">
</el-table-column>
<el-table-column prop="DeptName" label="部门" :filters='DeptNamelist' :filter-method="filterHandler">
</el-table-column>
<el-table-column prop="UserName" label="销售" :filters='UserNamelist' :filter-method="filterHandler">
</el-table-column>
<el-table-column prop="CommissionMoney" label="提成金额" sortable :sort-method="CommissionMoney">
</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(scope.row)"></i>
</el-tooltip>
</div>
</template>
</el-table-column>
</el-table>
</template>
</div>
</template>
<script>
import {
GetClassTypePageList,
} from '../../../api/system/index';
import {
getActivityCommissionUserList,
} 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,
ActivityName: '',
OrderId: '',
School_Id: '-1',
},
pageCount: 0,
persistent: false,
listData: {},
tableData: [],
company: [],
department: [],
ClassList: [],
allClassList: [],
see_tcdetailed: false,
SchoolNamelist: [],
DeptNamelist: [],
UserNamelist: [],
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x => { //判断权限
if (x.FunctionCode == "see_tcdetailed") { //判断是否可以查看其他明细
this.see_tcdetailed = true;
}
})
if (this.see_tcdetailed == false) {
this.msg.UserId = userinfo.Id
}
},
mounted() {
if (this.$route.query && this.$route.query.id) {
this.msg.PeriodId = this.$route.query.id
}
if (this.$route.query && this.$route.query.School_Id) {
this.msg.School_Id = this.$route.query.School_Id
}
this.getList()
this.setClass()
},
methods: {
getList() {
if (this.msg)
this.loading = true;
getActivityCommissionUserList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data;
this.SchoolNamelist = [];
this.DeptNamelist = [];
this.UserNamelist = [];
this.tableData.forEach(x => {
let obj = {
text: x.SchoolName,
value: x.SchoolName
}
let obj2 = {
text: x.DeptName,
value: x.DeptName
}
let obj3 = {
text: x.UserName,
value: x.UserName
}
this.SchoolNamelist.push(obj)
this.DeptNamelist.push(obj2)
this.UserNamelist.push(obj3)
})
this.SchoolNamelist = this.unique(this.SchoolNamelist)
this.DeptNamelist = this.unique(this.DeptNamelist)
this.UserNamelist = this.unique(this.UserNamelist)
}
})
},
unique(arr, Name) { //数组去重
const res = new Map();
return arr.filter(
(list) => !res.has(list.text) && res.set(list.text, 1)
);
},
//选择班级
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(row) {
this.$router.push({
path: '/financial/reportform/activityCommissionDetails',
query: {
UserId: row.UserId,
id:this.$route.query.id,
blank: 'y',
}
})
},
filterHandler(value, row, column) {
const property = column['property'];
return row[property] === value;
},
CommissionMoney(a, b) {
return a.CommissionMoney - b.CommissionMoney;
},
goreturn() {
this.$router.go(-1);
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
...@@ -421,6 +421,12 @@ const routes = [{ ...@@ -421,6 +421,12 @@ const routes = [{
component: () => component: () =>
import("pages/financial/empBankAccount.vue") import("pages/financial/empBankAccount.vue")
}, },
{
path: "/financial/activityCommission", //活动提成
component: () =>
import("pages/financial/activityCommission.vue")
},
{ {
path: "/financial/accDetail/CashAccDetail", //现金账户明细 path: "/financial/accDetail/CashAccDetail", //现金账户明细
component: () => component: () =>
...@@ -562,6 +568,23 @@ const routes = [{ ...@@ -562,6 +568,23 @@ const routes = [{
component: () => component: () =>
import("pages/financial/reportform/activityDeploy.vue") import("pages/financial/reportform/activityDeploy.vue")
}, },
{
path: "/financial/reportform/activityCommissionDetails", //工作台 活动提成明细
component: () =>
import("pages/financial/reportform/activityCommissionDetails.vue")
},
{
path: "/financial/reportform/activityCommissionForOrderList", //工作台 查询订单活动提成明细
component: () =>
import("pages/financial/reportform/activityCommissionForOrderList.vue")
},
{
path: "/financial/reportform/activityCommissionUserList", //工作台 获取活动提成用户列表
component: () =>
import("pages/financial/reportform/activityCommissionUserList.vue")
},
{ {
path: "/administration/document", //行政公告 path: "/administration/document", //行政公告
......
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