Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform-ui
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
youjj
cloud-platform-ui
Commits
a64306eb
Commit
a64306eb
authored
Dec 30, 2019
by
jiaorz
Browse files
Options
Browse Files
Download
Plain Diff
1
parents
006672e5
09484cbc
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1111 additions
and
104 deletions
+1111
-104
App.vue
src/App.vue
+4
-1
index.js
src/api/admin/userManagement/index.js
+64
-1
vehicleStatistics.js
src/api/statistics/vehicleStatistics.js
+21
-1
index.js
src/router/index.js
+12
-6
index.vue
src/views/appManagement/pushManagement/index.vue
+2
-0
branchCompany.vue
src/views/financial/branchCompany.vue
+9
-1
employeesInput.vue
src/views/interior/employeesInput.vue
+123
-68
shareholder.vue
src/views/interior/shareholder.vue
+550
-0
index.vue
src/views/order/memberOrderInfo/index.vue
+3
-1
orderStatistics.vue
src/views/statistics/orderStatistics.vue
+310
-20
index.vue
src/views/userManagement/userList/index.vue
+9
-5
index.vue
src/views/vehicle/vehicleInfo/index.vue
+4
-0
No files found.
src/App.vue
View file @
a64306eb
<
template
>
<div
id=
"app"
>
<router-view></router-view>
<keep-alive>
<router-view
/>
</keep-alive>
<!--
<router-view></router-view>
-->
</div>
</
template
>
...
...
src/api/admin/userManagement/index.js
View file @
a64306eb
...
...
@@ -112,7 +112,7 @@ export function jobs(obj) {
// 添加员工
export
function
addEditor
(
obj
)
{
return
fetch
({
url
:
'/api/admin/postion/admin/
ad
dUserPostion'
,
url
:
'/api/admin/postion/admin/
up
dUserPostion'
,
method
:
'post'
,
data
:
obj
});
...
...
@@ -177,4 +177,67 @@ export function updUserChange(params) {
method
:
'post'
,
data
:
params
});
}
// 离职后在职
export
function
updAddPositionChangeRecord
(
params
)
{
return
fetch
({
url
:
'api/admin/postion/admin/updAddPositionChangeRecord'
,
method
:
'post'
,
data
:
params
});
}
// 信息修改
// export function updUserPostion(params) {
// return fetch({
// url: 'api/admin/postion/admin/updUserPostion',
// method: 'post',
// data: params
// });
// }
// 股东列表
export
function
stockholderList
(
query
)
{
return
fetch
({
url
:
'api/admin/appShareholder/page'
,
method
:
'post'
,
data
:
query
});
}
// 新增股东
export
function
addUserPostion
(
query
)
{
return
fetch
({
url
:
'api/admin/appShareholder/addUserPostion'
,
method
:
'post'
,
data
:
query
});
}
// 批量导入股东
export
function
exports
(
query
)
{
return
fetch
({
url
:
'api/admin/appShareholder/export'
,
method
:
'post'
,
data
:
query
});
}
// 编辑股东信息
export
function
updUserPostionEditor
(
query
)
{
return
fetch
({
url
:
'api/admin/appShareholder/updUserPostion'
,
method
:
'post'
,
data
:
query
});
}
// 股东信息变更记录
export
function
findShareholderChangeRecord
(
query
)
{
return
fetch
({
url
:
'api/admin/appShareholder/findShareholderChangeRecord'
,
method
:
'get'
,
params
:
query
});
}
\ No newline at end of file
src/api/statistics/vehicleStatistics.js
View file @
a64306eb
...
...
@@ -17,4 +17,24 @@ export function vehicleInfoExcel(params) {
params
:
params
,
responseType
:
'blob'
});
}
\ No newline at end of file
}
//订单统计
export
function
received_statistics
(
params
)
{
return
fetch
({
url
:
'api/order/admin/order/received_statistics'
,
method
:
'post'
,
timeout
:
'50000'
,
data
:
params
});
}
// 订单统计导出
export
function
excelExport
(
query
)
{
return
fetch
({
url
:
'api/order/admin/order/received_statistics/export'
,
method
:
'post'
,
data
:
query
,
responseType
:
'blob'
});
}
\ No newline at end of file
src/router/index.js
View file @
a64306eb
...
...
@@ -582,13 +582,13 @@ export const asyncRouterMap = [{
component
:
_import
(
'appManagement/selectedActivities/index'
),
name
:
'首页精选活动'
,
authority
:
'selectedActivities'
},
{
path
:
'pushManagement'
,
component
:
_import
(
'appManagement/pushManagement/index'
),
name
:
'消息推送'
,
authority
:
'pushManagement'
}
// {
// path: 'pushManagement',
// component: _import('appManagement/pushManagement/index'),
// name: '消息推送',
// authority: 'pushManagement'
// }
]
},
{
...
...
@@ -801,6 +801,12 @@ export const asyncRouterMap = [{
component
:
_import
(
'interior/employeesInput'
),
name
:
'员工录入'
,
authority
:
'employeesInput'
},
{
path
:
'shareholder'
,
component
:
_import
(
'interior/shareholder'
),
name
:
'股东列表'
,
authority
:
'shareholder'
}
]
}
...
...
src/views/appManagement/pushManagement/index.vue
View file @
a64306eb
...
...
@@ -399,6 +399,8 @@
const
set
=
this
.
$refs
;
set
[
formName
].
validate
(
valid
=>
{
if
(
valid
)
{
console
.
log
(
this
.
form
);
editObj
(
this
.
form
).
then
(
response
=>
{
if
(
response
.
status
===
200
)
{
this
.
bannerDialogVisible
=
false
;
...
...
src/views/financial/branchCompany.vue
View file @
a64306eb
...
...
@@ -53,13 +53,21 @@
<el-table-column
prop=
"companyName"
label=
"公司"
align=
"center"
></el-table-column>
<el-table-column
prop=
"memberAmount"
label=
"会员费"
align=
"center"
></el-table-column>
<el-table-column
prop=
"rentVehilceAmount"
label=
"租车费"
align=
"center"
></el-table-column>
<el-table-column
prop=
"depositAmount"
label=
"押金"
align=
"center"
></el-table-column>
<el-table-column
prop=
"noDeductibleAmount"
label=
"不计免赔费"
align=
"center"
></el-table-column>
<el-table-column
prop=
"travelAmount"
label=
"旅游费"
align=
"center"
></el-table-column>
<el-table-column
prop=
"rentDays"
label=
"租借天数"
align=
"center"
></el-table-column>
<!--
<el-table-column
prop=
"extralAmount"
label=
"其他费用"
align=
"center"
></el-table-column>
-->
<el-table-column
prop=
"departureNum"
label=
"出车服务次数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"arrivalNum"
label=
"收车服务次数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"lossSpecifiedAmount"
label=
"定损金额"
align=
"center"
></el-table-column>
<el-table-column
prop=
"lateFeeAmount"
label=
"违约金额"
align=
"center"
></el-table-column>
<el-table-column
label=
"押金"
align=
"center"
>
<template
scope=
"scope"
>
<span>
{{
Math
.
round
((
scope
.
row
.
depositAmount
+
scope
.
row
.
depositRefundAmount
)
*
100
)
/
100
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"depositRefundAmount"
label=
"已退押金"
align=
"center"
></el-table-column>
</el-table>
<el-pagination
...
...
src/views/interior/employeesInput.vue
View file @
a64306eb
<
template
>
<div
class=
"app-container calendar-list-container"
>
<div
class=
"filter-container"
>
<div
class=
"filter-container"
v-loading=
"loading"
>
<el-form
ref=
"queryForm"
:model=
"listQuery"
label-width=
"100px"
>
<el-row>
<el-col
:span=
"4"
>
<el-form-item
label=
"姓名"
>
<el-input
v-model
.
number
=
"listQuery.name"
placeholder=
"请输入姓名"
></el-input>
<el-input
v-model=
"listQuery.name"
placeholder=
"请输入姓名"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"手机号"
>
<el-input
v-model
.
number
=
"listQuery.phone"
placeholder=
"请输入手机号"
></el-input>
<el-input
v-model=
"listQuery.phone"
placeholder=
"请输入手机号"
></el-input>
</el-form-item>
</el-col>
...
...
@@ -28,10 +28,10 @@
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"身份"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.
status
"
placeholder=
"请选员工身份"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.
positionId
"
placeholder=
"请选员工身份"
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(item,index) in statusList
"
v-for=
"(item,index) in statusList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
...
...
@@ -68,7 +68,7 @@
<el-table-column
prop=
"positionName"
label=
"身份"
align=
"center"
></el-table-column>
<el-table-column
label=
"状态"
align=
"center"
>
<
template
scope=
"scope"
>
<span
v-if=
"scope.row.
status
== 1"
style=
"color:#20a0ff"
>
离职
</span>
<span
v-if=
"scope.row.
isQuit
== 1"
style=
"color:#20a0ff"
>
离职
</span>
<span
v-else
style=
"color:red"
>
在职
</span>
</
template
>
</el-table-column>
...
...
@@ -103,10 +103,10 @@
<el-dialog
:title=
"staffTitle"
:visible
.
sync=
"bulkUploadMember"
class=
"member"
@
close=
"closeAdd"
>
<el-form
:model=
"staffTitleFrom"
ref=
"userMembership"
:rules=
"rules"
label-width=
"100px"
>
<el-form-item
label=
"员工姓名"
>
<el-input
v-model
.
number
=
"staffTitleFrom.name"
placeholder=
"请输入姓名"
></el-input>
<el-input
v-model=
"staffTitleFrom.name"
placeholder=
"请输入姓名"
></el-input>
</el-form-item>
<el-form-item
label=
"手机号"
>
<el-input
v-model
.
number
=
"staffTitleFrom.phone"
placeholder=
"请输入手机号"
></el-input>
<el-input
v-model=
"staffTitleFrom.phone"
placeholder=
"请输入手机号"
></el-input>
</el-form-item>
<el-form-item
label=
"入职日期"
v-show=
"staffTitle == '新增员工'"
>
<el-date-picker
...
...
@@ -147,7 +147,7 @@
<el-button
type=
"text"
v-show=
"whether == 2"
@
click=
"amend(3)"
>
修改
</el-button>
</el-form-item>
<el-form-item
label=
"状态"
v-show=
"whether == 2"
>
<el-input
v-model=
"staffTitleFrom.
status
"
disabled
style=
"width:90%"
></el-input>
<el-input
v-model=
"staffTitleFrom.
isQuit
"
disabled
style=
"width:90%"
></el-input>
<el-button
type=
"text"
@
click=
"amend(5)"
>
修改
</el-button>
</el-form-item>
<el-form-item
label=
"职位"
>
...
...
@@ -177,7 +177,7 @@
</el-dialog>
<!--批量导入会员窗口-->
<el-dialog
title=
"导入
会员
"
:visible
.
sync=
"tolead"
>
<el-dialog
title=
"导入
员工
"
:visible
.
sync=
"tolead"
>
<el-form
:model=
"fileForm"
>
<el-form-item
label=
"上传文件"
label-width=
"80px"
>
<el-button
type=
"primary"
icon=
"el-icon-download"
>
...
...
@@ -223,7 +223,7 @@
</span>
<span>
<b>
状态:
</b>
{{staffInfo.info.
status
== 1?"离职":'在职'}}
{{staffInfo.info.
isQuit
== 1?"离职":'在职'}}
</span>
<span>
<b>
当前所属分公司:
</b>
...
...
@@ -241,12 +241,14 @@
<p
class=
"title"
style=
"margin-top:20px"
>
人事变动记录
</p>
<p
v-for=
"(item,index) in staffInfo.record"
:key=
"index"
>
<b>
{{item.relTime}}
</b>
<span
v-if=
"item.jobRemark == 1"
>
入职
</span>
<span
v-if=
"item.jobRemark == 4"
>
(人事调动) {{item.newCompanyName}} => {{item.oldCompanyName}}
</span>
<span
v-if=
"item.jobRemark == 2"
>
(职位变更) {{item.newJobName}} => {{item.oldJobName}}
</span>
<span
v-if=
"item.jobRemark == 3"
>
(身份变更) {{item.newPositionName}} => {{item.oldPositionName}}
</span>
<span
v-if=
"item.jobRemark == 5"
>
离职
</span>
<b
v-show=
"!!item.jobRemark"
>
{{item.relTime}}
</b>
<span
v-if=
"item.jobRemark == 1"
v-show=
"!!item.relTime"
>
入职
</span>
<span
v-else-if=
"item.jobRemark == 4"
>
(人事调动) {{item.oldCompanyName}} => {{item.newCompanyName}}
</span>
<span
v-else-if=
"item.jobRemark == 2"
>
(职位变更) {{item.oldJobName}} => {{item.newJobName}}
</span>
<span
v-else-if=
"item.jobRemark == 3"
>
(身份变更) {{item.oldPositionName}} => {{item.newPositionName}}
</span>
<span
v-else-if=
"item.jobRemark == 5"
>
离职
</span>
<span
v-else-if=
"item.jobRemark == 6"
>
复职
</span>
<!-- <span v-else></span> -->
</p>
</el-dialog>
<!-- 员工详情 E -->
...
...
@@ -257,12 +259,12 @@
<div
v-if=
"isShow == 4"
>
<el-form
:model=
"amendCompany"
ref=
"amendCompany"
label-width=
"80px"
>
<el-form-item
label=
"修改原因"
style=
"width:80%"
>
<el-radio-group
v-model=
"amend
Company.change
Status"
prop=
"changeStatus"
>
<el-radio-button
label=
"
3
"
>
人事调动
</el-radio-button>
<el-radio-button
label=
"
2
"
>
信息修改
</el-radio-button>
<el-radio-group
v-model=
"amendStatus"
prop=
"changeStatus"
>
<el-radio-button
label=
"
0
"
>
人事调动
</el-radio-button>
<el-radio-button
label=
"
1
"
>
信息修改
</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"调动日期"
v-show=
"amend
Company.changeStatus == 3
"
prop=
"relTime"
>
<el-form-item
label=
"调动日期"
v-show=
"amend
Status == 0
"
prop=
"relTime"
>
<el-date-picker
v-model=
"amendCompany.relTime"
type=
"datetime"
placeholder=
"选择日期时间"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"分公司"
prop=
"companyId"
>
...
...
@@ -365,7 +367,8 @@ import {
jobs
,
editorUpd
,
findPositionChangeRecord
,
updUserChange
updUserChange
,
updAddPositionChangeRecord
}
from
'src/api/admin/userManagement/index'
import
{
getToken
}
from
'src/utils/auth'
import
{
mapGetters
}
from
'vuex'
...
...
@@ -401,11 +404,11 @@ export default {
position
:{
relTime
:
null
,
//修改时间
jobId
:
null
,
//职位
},
loading
:
true
,
amendStatus
:
0
,
//0人事调动 1信息修改
//修改分公司
amendCompany
:
{
changeStatus
:
3
,
companyId
:
null
,
//公司id
relTime
:
null
//修改时间
},
...
...
@@ -440,7 +443,7 @@ export default {
listQuery
:
{
name
:
''
,
phone
:
''
,
status
:
null
,
positionId
:
null
,
page
:
1
,
limit
:
10
,
companyId
:
''
,
...
...
@@ -483,7 +486,6 @@ export default {
this
.
amendContent
=
'修改所属公司'
this
.
isShow
=
val
this
.
amendCompany
=
{
changeStatus
:
3
,
companyId
:
null
,
//公司id
relTime
:
null
//修改时间
}
...
...
@@ -495,7 +497,7 @@ export default {
relTime
:
null
,
//变更日期
}
}
else
if
(
val
==
5
)
{
this
.
amendContent
=
this
.
staffTitleFrom
.
status
==
'在职'
?
'离职时间'
:
'入职时间'
this
.
amendContent
=
this
.
staffTitleFrom
.
isQuit
==
'在职'
?
'离职时间'
:
'入职时间'
this
.
isShow
=
val
this
.
isJobForm
=
{
relTime
:
null
,
//变更日期
...
...
@@ -514,7 +516,7 @@ export default {
if
(
!
this
.
amendCompany
.
companyId
)
{
this
.
$message
(
'分公司不能为空'
)
return
false
}
else
if
(
this
.
amend
Company
.
changeStatus
==
3
)
{
}
else
if
(
this
.
amend
Status
==
0
)
{
if
(
!
this
.
amendCompany
.
relTime
)
{
this
.
$message
(
'调动日期不能为空'
)
return
false
...
...
@@ -524,22 +526,38 @@ export default {
this
.
amendCompany
.
companyName
=
name
[
0
].
name
this
.
amendCompany
.
jobId
=
this
.
staffTitleFrom
.
jobId
this
.
amendCompany
.
positionId
=
this
.
staffTitleFrom
.
positionId
this
.
amendCompany
.
isDel
=
0
this
.
amendCompany
.
changeStatus
=
4
this
.
amendCompany
.
isQuit
=
this
.
staffTitleFrom
.
isQuit
==
'在职'
?
0
:
1
this
.
setApi
(
this
.
amendCompany
)
}
}
else
{
//信息修改
let
params
=
{};
let
name
=
this
.
companyList
.
filter
(
item
=>
item
.
id
==
this
.
amendCompany
.
companyId
)
this
.
amendCompany
.
companyName
=
name
[
0
].
name
this
.
amendCompany
.
jobId
=
this
.
staffTitleFrom
.
jobId
this
.
amendCompany
.
positionId
=
this
.
staffTitleFrom
.
positionId
this
.
amendCompany
.
isDel
=
0
this
.
setApi
(
this
.
amendCompany
)
params
.
companyName
=
name
[
0
].
name
params
.
companyId
=
name
[
0
].
id
params
.
positionId
=
this
.
staffTitleFrom
.
positionId
params
.
name
=
this
.
staffTitleFrom
.
name
params
.
phone
=
this
.
staffTitleFrom
.
phone
params
.
id
=
this
.
staffTitleFrom
.
id
params
.
userId
=
this
.
staffTitleFrom
.
userId
editorUpd
(
params
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$message
.
success
(
'编辑成功'
)
this
.
amendPop
=
false
;
this
.
bulkUploadMember
=
false
this
.
getList
()
}
else
{
this
.
$message
.
error
(
data
.
message
)
}
})
}
},
setApi
(
params
){
params
.
phone
=
this
.
staffTitleFrom
.
phone
params
.
id
=
this
.
staffTitleFrom
.
id
params
.
name
=
this
.
staffTitleFrom
.
name
params
.
userId
=
this
.
staffTitleFrom
.
userId
updUserChange
(
params
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$message
.
success
(
'编辑成功'
)
...
...
@@ -553,7 +571,7 @@ export default {
},
//身份修改
amendIdentityBtn
()
{
this
.
amendIdentity
.
changeStatus
=
2
this
.
amendIdentity
.
changeStatus
=
3
if
(
!
this
.
amendIdentity
.
positionId
||
!
this
.
amendIdentity
.
relTime
)
{
this
.
$message
(
'身份和变更日期不能为空'
)
return
false
...
...
@@ -562,7 +580,7 @@ export default {
this
.
amendIdentity
.
companyName
=
this
.
staffTitleFrom
.
companyName
this
.
amendIdentity
.
jobId
=
this
.
staffTitleFrom
.
jobId
this
.
amendIdentity
.
companyId
=
this
.
staffTitleFrom
.
companyId
this
.
amendIdentity
.
is
Del
=
0
this
.
amendIdentity
.
is
Quit
=
this
.
staffTitleFrom
.
isQuit
==
'在职'
?
0
:
1
this
.
setApi
(
this
.
amendIdentity
)
}
...
...
@@ -578,16 +596,44 @@ export default {
this
.
isJobForm
.
companyName
=
this
.
staffTitleFrom
.
companyName
this
.
isJobForm
.
positionId
=
this
.
staffTitleFrom
.
positionId
this
.
isJobForm
.
companyId
=
this
.
staffTitleFrom
.
companyId
this
.
isJobForm
.
is
Del
=
1
this
.
isJobForm
.
changeStatus
=
2
this
.
isJobForm
.
is
Quit
=
1
this
.
isJobForm
.
changeStatus
=
5
this
.
isJobForm
.
jobId
=
this
.
staffTitleFrom
.
jobId
this
.
setApi
(
this
.
isJobForm
)
if
(
val
==
'离职时间'
){
this
.
setApi
(
this
.
isJobForm
)
}
else
{
//复职
// this.isJobForm.isQuit = 2
// this.isJobForm.changeStatus = 6
// this.setApi(this.isJobForm)
let
params
=
{}
params
.
phone
=
this
.
staffTitleFrom
.
phone
params
.
relTime
=
formatDate
(
new
Date
(
this
.
isJobForm
.
relTime
),
'yyyy-MM-dd hh:mm:ss'
)
params
.
id
=
this
.
staffTitleFrom
.
id
params
.
companyName
=
this
.
staffTitleFrom
.
companyName
params
.
positionId
=
this
.
staffTitleFrom
.
positionId
params
.
companyId
=
this
.
staffTitleFrom
.
companyId
params
.
isQuit
=
0
params
.
changeStatus
=
6
params
.
jobId
=
this
.
staffTitleFrom
.
jobId
params
.
name
=
this
.
staffTitleFrom
.
name
params
.
userId
=
this
.
staffTitleFrom
.
userId
updAddPositionChangeRecord
(
params
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$message
.
success
(
'编辑成功'
)
this
.
amendPop
=
false
;
this
.
bulkUploadMember
=
false
this
.
getList
()
}
else
{
this
.
$message
.
error
(
data
.
message
)
}
})
}
}
},
//职位变更
positionBtn
(){
if
(
!
this
.
position
.
jobId
||
!
this
.
position
.
relTime
){
this
.
$message
(
'日期不能为空'
)
this
.
$message
(
'
身份和变更
日期不能为空'
)
return
false
}
else
{
this
.
position
.
changeStatus
=
2
...
...
@@ -595,7 +641,7 @@ export default {
this
.
position
.
companyName
=
this
.
staffTitleFrom
.
companyName
this
.
position
.
positionId
=
this
.
staffTitleFrom
.
positionId
this
.
position
.
companyId
=
this
.
staffTitleFrom
.
companyId
this
.
position
.
is
Del
=
0
this
.
position
.
is
Quit
=
this
.
staffTitleFrom
.
isQuit
==
'在职'
?
0
:
1
this
.
setApi
(
this
.
position
)
}
},
...
...
@@ -720,6 +766,7 @@ export default {
},
//员工列表
getList
()
{
this
.
loading
=
true
staffList
(
this
.
listQuery
).
then
(
data
=>
{
this
.
listLoading
=
true
if
(
data
.
status
==
200
)
{
...
...
@@ -728,6 +775,9 @@ export default {
this
.
listLoading
=
false
}
})
setTimeout
(()
=>
{
this
.
loading
=
false
},
300
);
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
...
...
@@ -765,7 +815,7 @@ export default {
this
.
listQuery
=
{
name
:
''
,
phone
:
''
,
status
:
null
,
positionId
:
null
,
page
:
1
,
limit
:
10
,
companyId
:
''
,
...
...
@@ -803,47 +853,52 @@ export default {
companyName
:
row
.
companyName
,
relTime
:
row
.
relTime
,
id
:
row
.
id
,
jobId
:
row
.
jobId
,
status
:
row
.
status
==
1
?
'离职'
:
'在职'
userId
:
row
.
userId
,
jobId
:
row
.
jobId
==
0
?
null
:
row
.
jobId
,
isQuit
:
row
.
isQuit
==
1
?
'离职'
:
'在职'
}
},
//员工详情
infoStaff
(
row
)
{
this
.
infoPop
=
true
this
.
staffInfo
.
info
=
row
console
.
log
(
row
.
phone
)
findPositionChangeRecord
({
phone
:
row
.
phone
}).
then
(
data
=>
{
findPositionChangeRecord
({
id
:
row
.
id
}).
then
(
data
=>
{
if
(
data
.
status
==
200
){
this
.
staffInfo
.
record
=
data
.
data
}
})
},
//确定
confirm
(
formName
)
{
if
(
!!
this
.
staffTitleFrom
.
relTime
)
this
.
staffTitleFrom
.
relTime
=
formatDate
(
this
.
staffTitleFrom
.
relTime
,
'yyyy-MM-dd hh:mm:ss'
)
if
(
this
.
staffTitle
==
'新增员工'
)
{
addEditor
(
this
.
staffTitleFrom
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$notify
({
title
:
'成功'
,
message
:
'新增成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
bulkUploadMember
=
false
this
.
getList
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
data
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
if
(
!
this
.
staffTitleFrom
.
jobId
){
this
.
$message
(
'职位不能为空'
)
}
else
{
if
(
!!
this
.
staffTitleFrom
.
relTime
)
this
.
staffTitleFrom
.
relTime
=
formatDate
(
new
Date
(
this
.
staffTitleFrom
.
relTime
),
'yyyy-MM-dd hh:mm:ss'
)
addEditor
(
this
.
staffTitleFrom
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$notify
({
title
:
'成功'
,
message
:
'新增成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
bulkUploadMember
=
false
this
.
getList
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
data
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
}
}
else
{
this
.
staffTitleFrom
.
id
=
this
.
activeId
delete
this
.
staffTitleFrom
.
isQuit
editorUpd
(
this
.
staffTitleFrom
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$notify
({
...
...
@@ -876,7 +931,7 @@ export default {
},
jobsFn
()
{
jobs
().
then
(
data
=>
{
//console.log(data);
//
console.log(data);
if
(
data
.
status
==
200
)
{
this
.
jobsList
=
data
.
data
}
...
...
src/views/interior/shareholder.vue
0 → 100644
View file @
a64306eb
<
template
>
<div
class=
"app-container calendar-list-container"
>
<div
class=
"filter-container"
v-loading=
"loading"
>
<el-form
ref=
"queryForm"
:model=
"listQuery"
label-width=
"100px"
>
<el-row>
<el-col
:span=
"4"
>
<el-form-item
label=
"姓名"
>
<el-input
v-model=
"listQuery.name"
placeholder=
"请输入股东姓名"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"手机号"
>
<el-input
v-model=
"listQuery.phone"
placeholder=
"请输入手机号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"分公司"
>
<el-select
v-model=
"listQuery.companyId"
clearable
filterable
placeholder=
"请选择"
>
<el-option
v-for=
"item in companyList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"身份"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.positionId"
placeholder=
"请选员工身份"
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(item,index) in statusList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-button
class=
"filter-item"
type=
"primary"
v-waves
icon=
"search"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
class=
"filter-item"
type=
"primary"
@
click=
"cleaningQuery"
>
清除搜索条件
</el-button>
<el-button
class=
"filter-item"
type=
"primary"
v-waves
icon=
"search"
@
click=
"addData"
>
新增股东
</el-button>
<el-button
class=
"filter-item"
type=
"primary"
@
click=
"toLoad"
>
批量导入股东
</el-button>
</el-form>
<!--批量导入会员窗口-->
<el-dialog
title=
"导入股东"
:visible
.
sync=
"tolead"
>
<el-form
:model=
"fileForm"
>
<el-form-item
label=
"上传文件"
label-width=
"80px"
>
<el-button
type=
"primary"
icon=
"el-icon-download"
@
click=
"download"
>
下载模板
<!--
<a
class=
"el-icon-download"
href=
"https://mgmt.dfangche.com/axshare/gudongdaoru.xlsx"
>
下载模板
</a>
-->
</el-button>
<el-upload
ref=
"uploadExcel"
:limit=
"limitNum"
action
:headers=
"getHeaderWithToken"
accept=
".xlsx"
:http-request=
"upLoad"
:on-remove=
"handleRemove"
:before-remove=
"beforeRemove"
:before-upload=
"beforeUploadFile"
:on-change=
"fileChange"
:on-exceed=
"exceedFile"
:file-list=
"fileList"
>
<el-button
size=
"small"
type=
"primary"
icon=
"el-icon-edit"
>
上传文件
<i
class=
"el-icon-upload el-icon--right"
></i>
</el-button>
<div
slot=
"tip"
class=
"el-upload__tip"
>
只能上传xlsx(Excel2007以上版本)文件,且不超过10M
</div>
</el-upload>
<el-button
size=
"small"
class=
"filter-item"
type=
"primary"
@
click=
"cancelNotDeleteForm"
>
取消
</el-button>
</el-form-item>
</el-form>
</el-dialog>
<!-- 提示 -->
<el-dialog
title=
"上传提示"
:visible
.
sync=
"uploadHiut"
>
<p>
上传成功:
<b>
{{
uploadListHiut
.
success
}}
</b>
条,上传失败:
<b>
{{
uploadListHiut
.
error
}}
</b>
条,重复:
<b>
{{
uploadListHiut
.
exist
}}
</b>
</p>
<ul
class=
"defeated"
>
<li
v-for=
"(item,index) in uploadListHiut.uploadList"
:key=
"index"
>
<p>
失败行数:
<span>
{{
item
.
num
}}
</span>
,失败原因:
<span>
{{
item
.
msg
}}
</span>
</p>
</li>
</ul>
</el-dialog>
<!-- 新增 || 编辑股东 -->
<el-dialog
:title=
"addPopTitle"
:visible
.
sync=
"addPop"
class=
"member"
@
close=
"closeAdd"
>
<el-form
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"姓名"
>
<el-input
v-model=
"ruleForm.name"
placeholder=
"请输入股东姓名"
></el-input>
</el-form-item>
<el-form-item
label=
"手机号"
>
<el-input
v-model=
"ruleForm.phone"
placeholder=
"请输入股东手机号"
></el-input>
</el-form-item>
<el-form-item
label=
"入股日期"
v-show=
"addPopTitle == '新增'"
>
<el-date-picker
v-model=
"time"
type=
"date"
placeholder=
"选择日期"
style=
"width:100%"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"入股公司"
>
<el-select
v-model=
"ruleForm.companyList"
filterable
multiple
placeholder=
"请选择"
style=
"width:100%"
>
<el-option
v-for=
"item in companyList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"状态"
v-show=
"addPopTitle == '编辑'"
>
<el-input
:placeholder=
"ruleForm.isQuit == 0 ? '持股中' : '已退股'"
style=
"width:90%"
disabled
></el-input>
<el-button
type=
"text"
@
click=
"amend"
>
修改
</el-button>
</el-form-item>
<el-row
style=
"text-align:center"
>
<el-button
type=
"primary"
@
click=
"submitBtn"
>
确定
</el-button>
<el-button
type=
"primary"
@
click=
"addPop = false"
>
取消
</el-button>
</el-row>
</el-form>
</el-dialog>
<el-dialog
:title=
"ruleForm.isQuit == 1 ? '入股时间' : '退股时间'"
:visible
.
sync=
"sharePop"
class=
"member"
@
close=
"closeShare"
>
<el-date-picker
v-model=
"times"
type=
"date"
:placeholder=
"ruleForm.isQuit == 1 ? '请选择入股时间' : '请选择退股时间'"
style=
"width:100%"
></el-date-picker>
<el-row
style=
"text-align:center;margin-top:20px"
>
<el-button
type=
"primary"
@
click=
"shareBtn"
>
确定
</el-button>
<el-button
type=
"primary"
@
click=
"sharePop = false"
>
取消
</el-button>
</el-row>
</el-dialog>
<!-- 表格数据 -->
<el-table
:key=
"tableKey"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
label=
"序号"
align=
"center"
width=
"70"
>
<template
scope=
"scope"
>
<span>
{{
scope
.
$index
+
(
listQuery
.
page
-
1
)
*
listQuery
.
limit
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"姓名"
width=
"180"
align=
"center"
></el-table-column>
<el-table-column
prop=
"phone"
label=
"手机号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"companyName"
label=
"入股公司"
align=
"center"
></el-table-column>
<el-table-column
prop=
"positionName"
label=
"身份"
align=
"center"
></el-table-column>
<el-table-column
prop=
"isQuit"
label=
"状态"
align=
"center"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
isQuit
==
0
?
'持股中'
:
'已退股'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
fixed=
"right"
>
<
template
scope=
"scope"
>
<el-button
size=
"small"
class=
"el-button el-button--text el-button--small"
@
click=
"infoStaff(scope.row)"
>
详情
</el-button>
<el-button
size=
"small"
class=
"el-button el-button--text el-button--small"
@
click=
"editorStaff(scope.row)"
>
编辑
</el-button>
</
template
>
</el-table-column>
</el-table>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
style=
"margin-top:20px"
></el-pagination>
<!-- 股东详情 S -->
<el-dialog
title=
"股东信息详情"
:visible
.
sync=
"infoPop"
class=
"member"
>
<p
class=
"title"
>
基础信息
</p>
<p
class=
"staff-info"
>
<span>
<b>
姓名:
</b>
{{staffInfo.info.name}}
</span>
<span>
<b>
手机号:
</b>
{{staffInfo.info.phone}}
</span>
<span>
<b>
状态:
</b>
{{staffInfo.info.isQuit == 1?"已退股":'持股中'}}
</span>
<span>
<b>
入股公司:
</b>
{{staffInfo.info.companyName}}
</span>
</p>
<p
class=
"title"
style=
"margin-top:20px"
>
股权变动
</p>
<p
v-for=
"(item,index) in staffInfo.record"
:key=
"index"
>
<b>
{{item.relTime}}
</b>
<span
style=
"margin-left:10px"
>
{{item.isQuit == 0 ? '(入股)' : "(退股)"}}
</span>
<span>
{{item.companyName}}
</span>
</p>
</el-dialog>
<!-- 股东详情 E -->
</div>
</div>
</template>
<
script
>
import
{
getAll
}
from
'api/base_info/branch_company'
import
{
getrewardSetting
}
from
'api/purseManage'
import
{
getToken
}
from
'src/utils/auth'
import
{
stockholderList
,
addUserPostion
,
exports
,
updUserPostionEditor
,
findShareholderChangeRecord
}
from
'src/api/admin/userManagement/index'
import
{
formatDate
}
from
'utils/dateFormattor'
export
default
{
created
()
{
this
.
getList
()
this
.
getAllFn
()
this
.
getRank
()
},
computed
:
{
getHeaderWithToken
()
{
return
{
Authorization
:
getToken
()
}
}
},
data
()
{
return
{
times
:
null
,
infoPop
:
false
,
time
:
null
,
sharePop
:
false
,
shareTitle
:
1
,
BASE_API
:
process
.
env
.
BASE_API
,
tableKey
:
0
,
total
:
null
,
list
:
[],
ruleForm
:
{
name
:
null
,
phone
:
null
,
companyList
:
[],
relTime
:
null
,
isQuit
:
0
},
rules
:
{},
addPopTitle
:
'新增'
,
addPop
:
false
,
uploadListHiut
:
{
uploadList
:
[],
success
:
''
,
error
:
''
,
exist
:
''
},
uploadHiut
:
false
,
limitNum
:
1
,
fileList
:
[],
tolead
:
false
,
//批量导入
loading
:
false
,
companyList
:
[],
//分公司
statusList
:
[],
//身份
listQuery
:
{
name
:
null
,
phone
:
null
,
companyId
:
null
,
positionId
:
null
,
page
:
1
,
limit
:
10
},
fileForm
:
{
file
:
''
},
staffInfo
:
{
info
:
{},
record
:
[]
}
}
},
methods
:
{
closeShare
(){
this
.
times
=
null
},
//下载模板
download
()
{
window
.
location
.
href
=
'https://mgmt.dfangche.com/axshare/gudongdaoru.xlsx'
},
closeAdd
()
{
this
.
time
=
null
this
.
ruleForm
=
{
name
:
null
,
phone
:
null
,
companyList
:
[],
relTime
:
null
}
},
//入股 退股时间
shareBtn
()
{
this
.
ruleForm
.
isQuit
==
1
?
this
.
ruleForm
.
changeState
=
3
:
this
.
ruleForm
.
changeState
=
2
this
.
ruleForm
.
relTime
=
formatDate
(
this
.
times
,
'yyyy-MM-dd'
)
+
' 00:00:00'
updUserPostionEditor
(
this
.
ruleForm
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$message
.
success
(
'编辑成功'
)
this
.
addPop
=
false
this
.
sharePop
=
false
this
.
getList
()
}
else
{
this
.
$message
(
data
.
message
)
}
})
},
//详情
infoStaff
(
row
)
{
this
.
infoPop
=
true
this
.
staffInfo
.
info
=
row
findShareholderChangeRecord
({
id
:
row
.
id
,
phone
:
row
.
phone
}).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
staffInfo
.
record
=
data
.
data
}
})
},
//编辑
editorStaff
(
row
)
{
this
.
addPopTitle
=
'编辑'
this
.
$nextTick
(()
=>
{
this
.
ruleForm
=
{
name
:
row
.
name
,
phone
:
row
.
phone
,
isQuit
:
row
.
isQuit
,
companyList
:
row
.
companyIdArray
.
split
(
','
).
map
(
Number
),
// companyList:['1,1'],
id
:
row
.
id
}
this
.
addPop
=
true
})
},
//新增,编辑
submitBtn
()
{
if
(
this
.
addPopTitle
==
'新增'
)
{
if
(
!
this
.
ruleForm
.
name
||
!
this
.
ruleForm
.
phone
||
!
this
.
ruleForm
.
companyList
||
!
this
.
time
)
{
this
.
$message
(
'必填项不能为空'
)
}
else
{
this
.
ruleForm
.
relTime
=
formatDate
(
this
.
time
,
'yyyy-MM-dd'
)
+
' 00:00:00'
addUserPostion
(
this
.
ruleForm
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$message
.
success
(
'新增成功'
)
this
.
addPop
=
false
this
.
getList
()
}
else
{
this
.
$message
.
error
(
data
.
message
)
}
})
}
}
else
{
if
(
!
this
.
ruleForm
.
name
||
!
this
.
ruleForm
.
phone
||
!
this
.
ruleForm
.
companyList
)
{
this
.
$message
(
'必填项不能为空'
)
}
else
{
this
.
ruleForm
.
changeState
=
1
updUserPostionEditor
(
this
.
ruleForm
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
$message
.
success
(
'编辑成功'
)
this
.
addPop
=
false
this
.
getList
()
}
else
{
this
.
$message
(
data
.
message
)
}
})
}
}
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
this
.
getList
()
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
this
.
getList
()
},
//修改分公司
amend
()
{
this
.
sharePop
=
true
},
//新增股东
addData
()
{
this
.
addPopTitle
=
'新增'
this
.
addPop
=
true
},
//分公司
getAllFn
()
{
getAll
().
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
companyList
=
data
.
data
this
.
companyList
.
unshift
({
name
:
'全部'
,
id
:
''
})
}
})
},
//搜索
handleFilter
()
{
this
.
listQuery
.
page
=
1
this
.
getList
()
},
//清空搜索
cleaningQuery
()
{
this
.
listQuery
=
{
name
:
null
,
phone
:
null
,
companyId
:
null
,
positionId
:
null
,
page
:
1
,
limit
:
10
}
this
.
getList
()
},
getList
()
{
this
.
loading
=
true
stockholderList
(
this
.
listQuery
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
list
=
data
.
data
.
data
this
.
total
=
data
.
data
.
totalCount
}
setTimeout
(()
=>
{
this
.
loading
=
false
},
300
)
})
},
//获取身份
getRank
()
{
getrewardSetting
().
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
this
.
statusList
=
data
.
data
}
})
},
upLoad
(
file
)
{
var
form
=
new
FormData
()
// 文件对象
form
.
append
(
'file'
,
file
.
file
)
exports
(
form
).
then
(
res
=>
{
this
.
uploadHiut
=
true
;(
this
.
uploadListHiut
=
{
uploadList
:
res
.
data
.
data
,
success
:
res
.
data
.
success
,
error
:
res
.
data
.
error
,
exist
:
res
.
data
.
exist
}),
this
.
getList
()
})
},
// 文件超出个数限制时的钩子
exceedFile
(
files
,
fileList
)
{
this
.
$notify
.
warning
({
title
:
'警告'
,
message
:
`只能选择
${
this
.
limitNum
}
个文件,当前共选择了
${
files
.
length
+
fileList
.
length
}
个`
})
},
cancelNotDeleteForm
()
{
this
.
tolead
=
false
this
.
$refs
.
uploadExcel
.
clearFiles
()
},
//批量导入员工
toLoad
()
{
this
.
tolead
=
true
},
fileChange
(
file
,
fileList
)
{
//console.log("change");
//console.log(file);
this
.
fileForm
.
file
=
file
.
raw
//console.log(this.fileForm.file);
// console.log(fileList);
},
//excel上传
handleRemove
(
file
,
fileList
)
{
//console.log(file, fileList);
},
handlePreview
(
file
)
{
//console.log(file);
},
beforeRemove
(
file
,
fileList
)
{
return
this
.
$confirm
(
`确定移除
${
file
.
name
}
?`
)
},
// 上传文件之前的钩子, 参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传
beforeUploadFile
(
file
)
{
//console.log("before upload");
//console.log(file);
let
extension
=
file
.
name
.
substring
(
file
.
name
.
lastIndexOf
(
'.'
)
+
1
)
let
size
=
file
.
size
/
1024
/
1024
if
(
extension
!==
'xlsx'
)
{
this
.
$notify
.
warning
({
title
:
'警告'
,
message
:
`只能上传Excel 2007以上版本(即后缀是.xlsx)的文件`
})
}
if
(
size
>
10
)
{
this
.
$notify
.
warning
({
title
:
'警告'
,
message
:
`文件大小不得超过10M`
})
}
}
}
}
</
script
>
<
style
>
.title
{
color
:
#666
;
border-bottom
:
1px
solid
#d9d9d9
;
padding-bottom
:
10px
;
}
.staff-info
span
{
display
:
inline-block
;
margin
:
10px
20px
0
0
;
}
.member
.el-dialog--small
{
width
:
500px
;
}
.defeated
{
padding
:
0
;
}
.defeated
li
{
list-style
:
none
;
}
</
style
>
\ No newline at end of file
src/views/order/memberOrderInfo/index.vue
View file @
a64306eb
...
...
@@ -253,7 +253,9 @@
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"注册终端:"
>
<span>
{{userDetails.channel == 1 ? 'app' : '小程序'}}
</span>
<span
v-if=
"userDetails.channel == 1"
>
安卓
</span>
<span
v-else-if=
"userDetails.channel == 2"
>
小程序
</span>
<span
v-else-if=
"userDetails.channel == 3"
>
ios
</span>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
...
...
src/views/statistics/orderStatistics.vue
View file @
a64306eb
<
template
>
<ve-line
:data=
"chartData"
></ve-line>
<div
class=
"app-container calendar-list-container"
>
<div
class=
"filter-container"
v-loading=
"loading"
>
<el-form
ref=
"listQuery"
:model=
"listQuery"
label-width=
"100px"
:inline=
"true"
>
<el-row>
<el-form-item
label=
"时间"
>
<!--
<el-date-picker
v-model=
"time"
placeholder=
"请选择时间"
type=
"datetimerange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
></el-date-picker>
-->
<el-date-picker
v-model=
"time"
type=
"daterange"
placeholder=
"请选择时间范围"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
@
change=
"changeTime"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"统计周期"
>
<el-radio-group
v-model=
"listQuery.statisticalWay"
>
<el-radio-button
:label=
"1"
>
日
</el-radio-button>
<el-radio-button
:label=
"2"
>
周
</el-radio-button>
<el-radio-button
:label=
"3"
>
月
</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"订单状态"
>
<el-select
v-model=
"listQuery.orderState"
clearable
placeholder=
"请选择"
>
<!--
<el-option
:value=
'null'
>
全部
</el-option>
-->
<el-option
v-for=
"item in orderArr"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"订单来源"
>
<el-select
v-model=
"listQuery.orderOrigin"
clearable
placeholder=
"请选择"
>
<el-option
label=
"全部"
:value=
"null"
></el-option>
<el-option
v-for=
"item in orderOriginArr"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"支付方式"
>
<el-select
v-model=
"listQuery.payWay"
clearable
placeholder=
"请选择"
>
<el-option
label=
"全部"
:value=
"null"
></el-option>
<el-option
v-for=
"item in payWayArr"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<p
style=
"border-top:1px solid #d9d9d9;padding:30px 0 10px 0"
>
统计项目
</p>
<div
style=
"margin-bottom:20px"
>
<el-checkbox-group
v-model=
"listQuery.statisticalSigns"
>
<span
v-for=
"(item,index) in checkArr"
:key=
"index"
class=
"checkStyle"
>
<el-checkbox
:label=
"item.id"
>
{{
item
.
name
}}
</el-checkbox>
<p
v-show=
"item.id== 'ad_oavga' || item.id== 'ce_tavga' || item.id== 'bd_rvavga'"
></p>
</span>
</el-checkbox-group>
</div>
<el-button
type=
"primary"
@
click=
"search"
>
搜索
</el-button>
<el-button
type=
"primary"
@
click=
"clearSearch"
>
清空搜索
</el-button>
<el-button
type=
"primary"
:loading=
"excelLoading"
@
click=
"downloadExcel"
>
导出报表
</el-button>
</el-row>
</el-form>
<div
v-for=
"(item,index) in chartArr"
:key=
"index"
>
<p
style=
"text-align:center"
>
{{
checkArr
.
filter
(
val
=>
val
.
id
==
item
.
title
)[
0
].
name
}}
</p>
<ve-line
:data=
"item"
:extend=
"extend"
:settings=
"chartSettings"
:legend-visible=
"false"
:data-zoom=
"dataZoom"
></ve-line>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
:
function
()
{
return
{
chartData
:
{
columns
:
[
'日期'
,
'访问用户'
,
'下单用户'
,
'下单率'
],
rows
:
[
{
'日期'
:
'1/0'
,
'访问用户'
:
1393
,
'下单用户'
:
1093
,
'下单率'
:
0.32
},
{
'日期'
:
'1/1'
,
'访问用户'
:
1393
,
'下单用户'
:
1093
,
'下单率'
:
0.32
},
{
'日期'
:
'1/2'
,
'访问用户'
:
3530
,
'下单用户'
:
3230
,
'下单率'
:
0.26
},
{
'日期'
:
'1/3'
,
'访问用户'
:
2923
,
'下单用户'
:
2623
,
'下单率'
:
0.76
},
{
'日期'
:
'1/4'
,
'访问用户'
:
1723
,
'下单用户'
:
1423
,
'下单率'
:
0.49
},
{
'日期'
:
'1/5'
,
'访问用户'
:
3792
,
'下单用户'
:
3492
,
'下单率'
:
0.323
},
{
'日期'
:
'1/6'
,
'访问用户'
:
4593
,
'下单用户'
:
4293
,
'下单率'
:
0.78
}
]
}
}
}
}
</
script
>
\ No newline at end of file
import
{
received_statistics
,
excelExport
}
from
'api/statistics/vehicleStatistics'
import
{
formatDate
}
from
'utils/dateFormattor'
import
{
objDeepCopy
}
from
'../../utils'
export
default
{
data
:
function
()
{
this
.
extend
=
{
// 'xAxis.0.axisLabel.rotate': 45
}
this
.
dataZoom
=
[
{
type
:
'slider'
,
start
:
0
,
end
:
30
}
]
this
.
chartSettings
=
{
labelMap
:
{
orderAmount
:
'金额'
,
orderNum
:
'订单量'
}
}
return
{
excelLoading
:
false
,
loading
:
true
,
time
:
null
,
checkArr
:
[
{
name
:
'订单总额 '
,
id
:
'aa_ota'
},
{
name
:
'订单量 '
,
id
:
'ab_otq'
},
{
name
:
'订单平均量 '
,
id
:
'ac_oavgq'
},
{
name
:
'订单平均金额 '
,
id
:
'ad_oavga'
},
{
name
:
'租车订单总额 '
,
id
:
'ba_rvta'
},
{
name
:
'租车订单量'
,
id
:
'bb_rvtq'
},
{
name
:
'租车订单平均量 '
,
id
:
'bc_rvavgq'
},
{
name
:
'租车平均金额 '
,
id
:
'bd_rvavga'
},
{
name
:
'旅游订单总额'
,
id
:
'ca_tta'
},
{
name
:
'旅游订单量 '
,
id
:
'cb_ttq'
},
{
name
:
'旅游订单平均量 '
,
id
:
'cd_tavgq'
},
{
name
:
'旅游平均金额 '
,
id
:
'ce_tavga'
},
{
name
:
'会员订单总额 '
,
id
:
'da_mta'
},
{
name
:
'普通会员订单总额 '
,
id
:
'db_cmta'
},
{
name
:
'普通会员订单量 '
,
id
:
'dc_cmtq'
},
{
name
:
'黄金会员订单总额 '
,
id
:
'dd_gmta'
},
{
name
:
'黄金会员订单量 '
,
id
:
'de_mgtq'
},
{
name
:
'钻石会员订单总额 '
,
id
:
'df_dmta'
},
{
name
:
'钻石会员订单量 '
,
id
:
'dg_dmtq'
},
{
name
:
'会员平均金额 '
,
id
:
'dh_mavga'
},
],
//快捷筛选
listQuery
:
{
startDate
:
null
,
//开始时间
endDate
:
null
,
//结束时间
page
:
1
,
//当前页
limit
:
10
,
//每页条数
statisticalWay
:
1
,
//统计方式
orderState
:
''
,
//订单状态
orderOrigin
:
null
,
//来源
payWay
:
null
,
//支付方式
statisticalSigns
:
[
'aa_ota'
]
//筛选
},
//订单状态
orderArr
:
[
{
name
:
'全部'
,
id
:
''
},
{
name
:
'未支付'
,
id
:
0
},
{
name
:
'已支付'
,
id
:
1
}
],
//订单来源
orderOriginArr
:
[
{
name
:
'APP'
,
id
:
1
},
{
name
:
'小程序'
,
id
:
2
},
{
name
:
'后台'
,
id
:
3
}
],
//支付方式
payWayArr
:
[
{
name
:
'微信公众号支付'
,
id
:
1
},
{
name
:
'支付宝即时到账'
,
id
:
2
}
],
chartData
:
{
columns
:
[
'dateStr'
,
'orderAmount'
],
rows
:
[]
},
chartArr
:
{}
}
},
created
()
{
this
.
getList
()
},
methods
:
{
//时间关闭
changeTime
(
val
)
{
if
(
!
val
)
{
this
.
time
=
null
this
.
listQuery
.
endDate
=
null
this
.
listQuery
.
startDate
=
null
}
},
//导出
downloadExcel
()
{
this
.
excelLoading
=
true
var
u
=
navigator
.
userAgent
,
app
=
navigator
.
appVersion
excelExport
(
this
.
listQuery
,
{
responseType
:
'arraybuffer'
}).
then
(
res
=>
{
const
content
=
res
const
blob
=
new
Blob
([
content
],
{
type
:
'application/vnd.ms-excel'
})
const
fileName
=
'订单统计.xlsx'
if
(
u
.
indexOf
(
'Edge'
)
>
-
1
)
{
window
.
navigator
.
msSaveBlob
(
blob
,
fileName
)
}
else
{
const
elink
=
document
.
createElement
(
'a'
)
elink
.
download
=
fileName
elink
.
style
.
display
=
'none'
elink
.
href
=
URL
.
createObjectURL
(
blob
)
document
.
body
.
appendChild
(
elink
)
elink
.
click
()
URL
.
revokeObjectURL
(
elink
.
href
)
// 释放URL 对象
document
.
body
.
removeChild
(
elink
)
}
this
.
excelLoading
=
false
}
)
},
//搜索
search
()
{
if
(
!!
this
.
time
&&
!!
this
.
time
[
0
])
{
this
.
listQuery
.
startDate
=
formatDate
(
new
Date
(
this
.
time
[
0
]),
'yyyy-MM-dd'
)
+
' 00:00:00'
this
.
listQuery
.
endDate
=
formatDate
(
new
Date
(
this
.
time
[
1
]),
'yyyy-MM-dd'
)
+
' 23:59:59'
}
this
.
getList
()
},
//清空搜索
clearSearch
()
{
this
.
listQuery
=
{
startDate
:
null
,
//开始时间
endDate
:
null
,
//结束时间
page
:
1
,
//当前页
limit
:
10
,
//每页条数
statisticalWay
:
1
,
//统计方式
orderState
:
''
,
//订单状态
orderOrigin
:
null
,
//来源
payWay
:
null
,
//支付方式
statisticalSigns
:
[
'aa_ota'
]
//筛选
}
this
.
time
=
null
this
.
getList
()
},
getList
()
{
this
.
loading
=
true
received_statistics
(
this
.
listQuery
).
then
(
data
=>
{
if
(
data
.
status
==
200
)
{
let
info
=
data
.
data
let
params
=
{}
let
choose
=
this
.
listQuery
.
statisticalSigns
let
way
=
this
.
listQuery
.
statisticalWay
var
x
var
y
let
dateIndex
=
way
==
1
?
2
:
way
==
2
?
1
:
1
let
orderIndex
=
way
==
1
?
3
:
way
==
2
?
2
:
2
for
(
let
i
=
0
;
i
<
choose
.
length
;
i
++
)
{
if
(
info
[
choose
[
i
]]
!=
''
)
{
params
[
choose
[
i
]]
=
{
columns
:
[
Object
.
keys
(
info
[
choose
[
i
]][
0
])[
dateIndex
],
//年费
Object
.
keys
(
info
[
choose
[
i
]][
0
])[
orderIndex
]
//金额
],
rows
:
info
[
choose
[
i
]].
sort
(
function
(
a
,
b
)
{
if
(
way
===
1
)
{
x
=
a
.
date
y
=
b
.
date
}
if
(
way
===
2
)
{
x
=
a
.
weekOfYear
y
=
b
.
weekOfYear
}
if
(
way
===
3
)
{
x
=
a
.
month
y
=
b
.
month
}
return
x
<
y
?
-
1
:
x
>
y
?
1
:
0
}),
title
:
choose
[
i
]
}
}
}
this
.
chartArr
=
params
}
setTimeout
(()
=>
{
this
.
loading
=
false
},
300
)
})
}
}
}
</
script
>
<
style
scoped
>
.checkStyle
{
margin-right
:
30px
;
/* display: inline-block; */
line-height
:
40px
;
}
</
style
>
\ No newline at end of file
src/views/userManagement/userList/index.vue
View file @
a64306eb
...
...
@@ -92,7 +92,9 @@
</el-table-column>
<el-table-column
width=
"110"
align=
"center"
label=
"注册终端"
>
<
template
scope=
"scope"
>
<span>
{{
scope
.
row
.
channel
}}
</span>
<span
v-if=
"scope.row.channel == 1"
>
安卓
</span>
<span
v-else-if=
"scope.row.channel == 2"
>
小程序
</span>
<span
v-else-if=
"scope.row.channel == 3"
>
ios
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"90"
align=
"center"
label=
"来源"
>
...
...
@@ -148,9 +150,9 @@
<el-button
size=
"small"
class=
"el-button el-button--text el-button--small"
@
click=
"viewDetails(scope.row)"
>
查看详情
</el-button>
<el-button
size=
"small"
class=
"el-button el-button--text el-button--small"
v-if=
"admin_btn_user_postion_put"
<
!--
<
el-button
size=
"small"
class=
"el-button el-button--text el-button--small"
v-if=
"admin_btn_user_postion_put"
@
click=
"peopleSetting(scope.row)"
>
身份设置
</el-button>
</el-button>
-->
<el-button
class=
"el-button el-button--text el-button--small"
v-if=
"scope.row.status!=1&&userList_btn_edit"
size=
"small"
@
click=
" setMember(scope.row)"
>
设置会员信息
</el-button>
...
...
@@ -226,7 +228,9 @@
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"注册终端:"
>
<span>
{{userDetails.channel == 1 ? 'app' : '小程序'}}
</span>
<span
v-if=
"userDetails.channel == 1"
>
安卓
</span>
<span
v-else-if=
"userDetails.channel == 2"
>
小程序
</span>
<span
v-else-if=
"userDetails.channel == 3"
>
ios
</span>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
...
...
@@ -1127,7 +1131,7 @@
listKey
.
lastTime
=
listKey
.
lastTime
?
timestamp2Date
(
listKey
.
lastTime
)
:
''
;
listKey
.
createTime
=
listKey
.
createTime
?
timestamp2Date
(
listKey
.
createTime
*
1000
)
:
''
;
listKey
.
buyCount
=
listKey
.
buyCount
?
listKey
.
buyCount
:
0
;
listKey
.
channel
=
this
.
terminal
[
listKey
.
channel
];
//
listKey.channel = this.terminal[listKey.channel];
listKey
.
source
=
this
.
source
[
listKey
.
source
];
listKey
.
validTime
=
listKey
.
validTime
?
((
listKey
.
validTime
==
0
)
?
'永久'
:
listKey
.
validTime
)
:
'无'
;
listKey
.
visible2
=
false
...
...
src/views/vehicle/vehicleInfo/index.vue
View file @
a64306eb
...
...
@@ -681,6 +681,7 @@
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"交强险单号"
prop=
"strongInsuranceNo"
>
<el-input
v-model
.
number=
"form.strongInsuranceNo"
placeholder=
"请输入交强险单号"
></el-input>
<el-input
v-model
.
text=
"form.strongInsuranceNo"
@
input=
"handleInput"
placeholder=
"请输入交强险单号"
></el-input>
</el-form-item>
</el-col>
...
...
@@ -1094,6 +1095,7 @@ export default {
strongInsuranceCompany
:
undefined
,
strongInsuranceEndDate
:
undefined
,
strongInsuranceNo
:
undefined
,
strongInsuranceCompany
:
undefined
strongInsuranceCompany
:
undefined
,
insurancePDF
:
undefined
},
...
...
@@ -1862,6 +1864,7 @@ export default {
}
},
methods
:
{
handleInput
(
e
){
this
.
form
.
strongInsuranceNo
=
e
.
target
.
value
.
replace
(
/
[^\d]
/g
,
''
);
},
...
...
@@ -2455,6 +2458,7 @@ export default {
},
beforeAvatarUpload
(
file
)
{
const
isJPG
=
file
.
type
===
'image/jpeg'
||
file
.
type
===
'image/gif'
file
.
type
===
'image/jpeg'
||
file
.
type
===
'image/gif'
||
file
.
type
===
'image/pdf'
const
isLt2M
=
file
.
size
/
1024
/
1024
<
10
...
...
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