Commit dba9f147 authored by zhengke's avatar zhengke

1

parent ecbf1b2a
...@@ -199,3 +199,67 @@ export function GetUserRoleList(data) { ...@@ -199,3 +199,67 @@ export function GetUserRoleList(data) {
}) })
} }
/**
* 获取企业分页列表
* @param {查询参数} data
*/
export function GetEnterprisePage(data) {
return request({
url: '/B2BCustomer/GetEnterprisePage',
method: 'post',
data
})
}
/**
* 获取企业下拉数据
* @param {查询参数} data
*/
export function GetEnterpriseList(data) {
return request({
url: '/B2BCustomer/GetEnterpriseList',
method: 'post',
data
})
}
/**
* 新增修改企业信息
* @param {查询参数} data
*/
export function SetEnterprise(data) {
return request({
url: '/B2BCustomer/SetEnterprise',
method: 'post',
data
})
}
/**
* 根据编号获取企业信息详情
* @param {查询参数} data
*/
export function GetEnterprise(data) {
return request({
url: '/B2BCustomer/GetEnterprise',
method: 'post',
data
})
}
/**
* 根据编号删除企业信息
* @param {查询参数} data
*/
export function RemoveEnterprise(data) {
return request({
url: '/B2BCustomer/RemoveEnterprise',
method: 'post',
data
})
}
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 400px;max-width:400px;">
<q-card-section>
<div class="text-h6">{{optionTitle}}</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="row wrap">
<q-input filled stack-label maxlength="30" :dense="false" v-model="objOption.EnterpriseName" ref="EnterpriseName"
class="col-12 q-pb-lg" label="企业名称" :rules="[val => !!val || '请填写企业名称']" />
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="saveEnterprise" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
SetEnterprise,
GetEnterprise,
} from '../../api/users/user'
export default {
props: {
saveObj: {
type: Object,
default: null
}
},
data() {
return {
persistent: true,
saveLoading: false,
objOption: {
Id:0,
EnterpriseName:""
},
optionTitle: "",
}
},
mounted() {
this.initObj();
},
methods: {
//初始化表单
initObj() {
// if (this.saveObj && this.saveObj.Id > 0) {
// this.objOption.Id = this.saveObj.Id;
// this.objOption.EnterpriseName = this.saveObj.EnterpriseName;
// this.objOption.No = this.saveObj.No;
// this.optionTitle = "修改企业信息"
// } else {
// this.optionTitle = "新增企业信息"
// this.objOption.Id = 0;
// this.objOption.StageName = '';
// this.objOption.No = '';
// }
if (this.saveObj && this.saveObj.Id > 0) {
GetEnterprise({
Id: this.saveObj.Id
}).then(res => {
this.objOption.Id = res.Data.Id;
this.objOption.EnterpriseName = res.Data.EnterpriseName;
})
this.optionTitle = "修改企业信息"
} else {
this.optionTitle = "新增企业信息"
this.objOption.Id = 0;
this.objOption.EnterpriseName = '';
}
},
//关闭弹窗
closeSaveForm() {
this.$emit('close')
},
//保存菜单
saveEnterprise() {
this.$refs.EnterpriseName.validate();
if (!this.$refs.EnterpriseName.hasError) {
this.saveLoading = true
SetEnterprise(this.objOption).then(res => {
this.saveLoading = false;
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.$emit("success")
this.closeSaveForm()
}
})
}
}
}
}
</script>
<style>
@import "../css/cssReset.css";
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.salesRules .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.salesRules .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.marketRules .border-bottom {
padding-bottom: 5px;
margin-bottom: 5px;
}
.marketRules .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.marketRules .singeRowTable tr th {
border: 1px solid #d2d2d2;
}
</style>
<template>
<div class="page-body marketRules">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md"></div>
</div>
<template>
<div style="width: 100%;display: flex;justify-content: flex-end;margin: 10px 0;">
<q-btn color="accent" size="sm" icon="add" label="新增规则" @click="AddMsg()" />
<q-btn color="accent" size="sm" label="保存" @click="setMsg()" style="margin-left: 15px;" />
</div>
<div class="cm_content" style="width: 100%;">
<table
class="po_content singeRowTable"
style="border:1px solid #E6E6E6;"
cellspacing="0"
cellpadding="0"
v-loading="loading"
>
<tr>
<th rowspan="2">岗位</th>
<th rowspan="2">基本工资</th>
<th rowspan="2">开单奖金</th>
<th rowspan="2">工龄工资(次年发放)</th>
<th rowspan="2">条数奖金/5条</th>
<th colspan="5">社会班招生人头达标奖金(不包含促销招生)</th>
<th colspan="1">年终奖金</th>
<th rowspan="2" width="100">操作</th>
</tr>
<tr>
<th colspan="6"></th>
</tr>
<tr>
<th>5-7</th>
<th>8-10</th>
<th>11-15</th>
<th>16-20</th>
<th>20以上</th>
<th>12个月达标月份计算(达标月份即发放一次)</th>
</tr>
<!-- <tr v-for=" ( item , index ) in dataList ">
<td>
<span>{{ item.Name }}</span>
</td>
<td>
<span v-if="item.Type == 1">市场</span>
<span v-if="item.Type == 2">顾问</span>
<span v-if="item.Type == 3">教师</span>
</td>
<td>
<span v-if="item.Type == 1">包含</span>
<span v-if="item.Type == 2">不包含</span>
</td>
<td>
<p v-for="( son , sIndex ) in item.CourseList">{{ son.CourseName }}</p>
</td>
<td>
<span v-if="item.CommissionType == 1">课耗提成</span>
<span v-if="item.CommissionType == 2">次月全提</span>
<span v-if="item.CommissionType == 3">课程比例</span>
</td>
<td>
<p v-for="( son , sIndex ) in item.EmpList">{{ son.EmployeeName }}</p>
</td>
<td>
<p v-for="( son , sIndex ) in item.ChildEmpList">{{ son.EmployeeName }}</p>
</td>
<td>
<span>{{ item.CourseRate }}</span>
</td>
<td v-for="( son , sIndex ) in item.RateList">{{ son.StartValue }}</td>
<td v-for="( son , sIndex ) in item.RateList">{{ son.EndValue }}</td>
<td v-for="( son , sIndex ) in item.RateList">{{ son.Rate }}</td>
<td>
<q-btn
flat
size="xs"
icon="edit"
color="accent"
style="font-weight:400"
label="编辑"
@click="EditTask(props.row)"
/>
<q-btn
flat
size="xs"
icon="delete"
color="negative"
style="font-weight:400"
label="删除"
@click="RemoveTask(props.row.Id)"
/>
</td>
</tr> -->
</table>
<div
v-if="dataList.length == 0"
style="width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;"
>暂无数据</div>
</div>
</template>
</div>
</template>
<script>
import {
getSellAchievementsRuleList,
} from '../../../api/finance/index'
export default {
meta: {
title: "销售提成规则"
},
props: {},
components: {},
data() {
return {
loading: false,
dataList: [], //列表数据
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x => {//判断权限
if (x.FunctionCode == "Salerule_preserve") {//判断是否有保存的权限
return
}
})
},
mounted() {
this.getSellAchievementsRuleList(); //获取规则
},
methods: {
getSellAchievementsRuleList() {
this.loading = true;
getSellAchievementsRuleList({}).then(res => {
if (res.Code == 1) {
this.dataList = res.Data
}
this.loading = false
})
},
preservation() { //保存规则
},
AddMsg() {
let obj = {
Id:0,
Name:'',
Type:1,
CourseType:1,
CourseIds:'',
CourseList:[],//课程列表
CommissionType:1,
EmpIds:'',
EmpList:[],
ChildEmpIds:'',
ChildEmpList:[],
CourseRate:'',
}
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<template>
<div class="page-body">
<div class="page-search row items-center">
<div class="col row wrap q-col-gutter-md">
<div class="col-3">
<q-input @input="resetSearch" filled clearable v-model="msg.EnterpriseName" label="企业名称" maxlength="20" />
</div>
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-right-column-table sticky-column-table" separator="none" :data="dataList" :columns="columns"
row-key="name">
<template v-slot:top="props">
<div class="col-2 q-table__title">企业管理</div>
<q-space />
<div class="page-option">
<q-btn color="accent" size="sm" icon="add" label="新增企业" @click="addObj(null)" />
</div>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</template>
<template v-slot:body-cell-Id="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="addObj(props.row)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs" label="删除"
@click="delEnterprise(props.row.Id)" />
</q-td>
</template>
</q-table>
<enterprise-form v-if="isShowEnter" :save-obj="objOption" @close="closeSaveForm" @success="RefreshPage">
</enterprise-form>
</div>
</div>
</template>
<script>
import {
GetEnterprisePage,
RemoveEnterprise
} from '../../api/users/user'
import enterpriseForm from '../../components/sale/enterprise-form'
export default {
meta: {
title: "企业管理"
},
components: {
enterpriseForm
},
data() {
return {
columns: [{
name: 'EnterpriseName',
required: true,
label: '企业名称',
align: 'left',
field: row => row.EnterpriseName
},
{
name: 'CreateByName',
required: true,
label: '创建人',
align: 'left',
field: 'CreateByName'
},
{
name: 'CreateTime',
required: true,
label: '创建时间',
align: 'left',
field: 'CreateTime'
},
{
name: 'Id',
label: '操作',
field: 'Id'
}
],
dataList: [],
loading: true,
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
EnterpriseName: ""
},
pageCount: 0,
isShowEnter: false,
objOption: null,
EnterpriseNameList: [],
}
},
created() {},
mounted() {
this.getList()
},
methods: {
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getList();
},
RefreshPage() {
this.msg.pageIndex = 1;
this.getList();
},
deleteUser(id) {
let that = this
this.$q.dialog({
title: "删除教师",
message: "你正在进行删除教师行为,一旦执行无法找回,是否确认执行?",
persistent: true,
cancel: {
label: "取消",
flat: true
},
ok: {
label: "确认",
flat: true,
focus: true
}
}).onOk(() => {
that.resetLoading = true
deleteTeacher({
TId: id
}).then(res => {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据删除成功!',
position: 'top'
})
this.getList()
})
});
},
changePage(val) {
this.msg.pageIndex = val;
this.getList();
},
getList() {
this.loading = true;
GetEnterprisePage(this.msg).then(res => {
this.loading = false;
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}
}).catch(() => {
this.loading = false
})
},
addObj(obj) {
if (obj) {
this.objOption = obj;
} else {
this.objOption = null
}
this.isShowEnter = true
},
//删除企业
delEnterprise(Id) {
let delMsg = {
Id: Id
};
this.$q.dialog({
title: '提示信息',
message: '是否确定该企业?',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
RemoveEnterprise(delMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '删除成功!',
position: 'top'
})
this.getList();
}
})
}).onCancel(() => {
});
},
closeSaveForm() {
this.isShowEnter = false
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
...@@ -709,6 +709,11 @@ const routes = [{ ...@@ -709,6 +709,11 @@ const routes = [{
component: () => component: () =>
import("pages/financial/market/commissionRule.vue") import("pages/financial/market/commissionRule.vue")
}, },
{
path: "/financial/market/courseConsultant", // 课程顾问 提现规则
component: () =>
import("pages/financial/market/courseConsultant.vue")
},
...@@ -889,11 +894,16 @@ const routes = [{ ...@@ -889,11 +894,16 @@ const routes = [{
component: () => component: () =>
import("pages/sale/b2bcustomer.vue") import("pages/sale/b2bcustomer.vue")
}, },
{ {
path: "/sale/b2bAllCustomer", //销售 同行管理 path: "/sale/b2bAllCustomer", //销售 同行管理
component: () => component: () =>
import("pages/sale/b2bAllCustomer.vue") import("pages/sale/b2bAllCustomer.vue")
}, },
{
path: "/sale/enterpriseManage", //销售 企业管理
component: () =>
import("pages/sale/enterpriseManage.vue")
},
{ {
path: "/sale/b2bcustomerapprove", //销售 同行审批 path: "/sale/b2bcustomerapprove", //销售 同行审批
component: () => component: () =>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment