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
a22c66c7
Commit
a22c66c7
authored
Dec 20, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
b6cccc4c
1a9370b1
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 @
a22c66c7
...
@@ -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 @
a22c66c7
<
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 @
a22c66c7
<
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 @
a22c66c7
<
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 @
a22c66c7
...
@@ -714,6 +714,11 @@ const routes = [{
...
@@ -714,6 +714,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"
)
},
...
@@ -894,11 +899,16 @@ const routes = [{
...
@@ -894,11 +899,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