Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
confucius
Commits
dba9f147
Commit
dba9f147
authored
Dec 20, 2021
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
ecbf1b2a
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
592 additions
and
5 deletions
+592
-5
user.js
src/api/users/user.js
+64
-0
enterprise-form.vue
src/components/sale/enterprise-form.vue
+104
-0
courseConsultant.vue
src/pages/financial/market/courseConsultant.vue
+204
-0
enterpriseManage.vue
src/pages/sale/enterpriseManage.vue
+205
-0
routes.js
src/router/routes.js
+15
-5
No files found.
src/api/users/user.js
View file @
dba9f147
...
@@ -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
})
}
src/components/sale/enterprise-form.vue
0 → 100644
View file @
dba9f147
<
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
>
src/pages/financial/market/courseConsultant.vue
0 → 100644
View file @
dba9f147
<
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
>
src/pages/sale/enterpriseManage.vue
0 → 100644
View file @
dba9f147
<
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
>
src/router/routes.js
View file @
dba9f147
...
@@ -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
:
()
=>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment