Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
lanbaoming
jiedao-app-operator-master
Commits
208bd0fe
Commit
208bd0fe
authored
Apr 30, 2024
by
lanbaoming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2024-04-30 报表修改
parent
d526af81
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
466 additions
and
155 deletions
+466
-155
index.vue
src/views/report/customer_analysis/index.vue
+8
-7
index.vue
src/views/report/customerreport/index.vue
+3
-1
index.vue
src/views/report/sales_analysis/index.vue
+125
-57
index.vue
src/views/report/salesreport/index.vue
+330
-90
No files found.
src/views/report/customer_analysis/index.vue
View file @
208bd0fe
...
...
@@ -271,12 +271,7 @@
<el-table-column
label=
"控货总V值"
align=
"center"
prop=
"khSumV"
/>
<el-table-column
label=
"控货占比"
align=
"center"
prop=
"khSumZb"
/>
<el-table-column
label=
"是否首次成交"
align=
"center"
prop=
"isFirst"
/>
<el-table-column
label=
"首次成交时间"
align=
"center"
prop=
"firstDate"
width=
"200px"
>
<el-table-column
label=
"首次成交时间"
align=
"center"
prop=
"firstDate"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
firstDate
)
}}
</span>
</
template
>
...
...
@@ -287,7 +282,7 @@
<el-table-column
label=
"客户角色"
align=
"center"
prop=
"customerrole"
/>
<el-table-column
label=
"客户国家"
align=
"center"
prop=
"country"
/>
<el-table-column
label=
"客户
户
创建时间"
label=
"客户创建时间"
align=
"center"
prop=
"createtime"
width=
"200px"
...
...
@@ -504,6 +499,8 @@ export default {
let
s
=
this
.
$route
.
query
.
sDate
;
let
e
=
this
.
$route
.
query
.
eDate
;
let
bd
=
this
.
$route
.
query
.
duibiYear
;
//客户编号
let
number
=
this
.
$route
.
query
.
number
;
if
(
sSalesmanid
!=
undefined
&&
sSalesmanid
!=
null
)
{
this
.
queryParams
.
salesmanid
=
parseInt
(
sSalesmanid
);
}
...
...
@@ -520,6 +517,10 @@ export default {
if
(
bd
!=
undefined
&&
bd
!=
null
)
{
this
.
queryParams
.
duibiYear
=
bd
;
}
if
(
number
!=
undefined
&&
number
!=
null
)
{
this
.
queryParams
.
searchtype
=
"
eq
"
;
this
.
queryParams
.
name
=
number
;
}
this
.
getTreeselect
();
this
.
getList
();
});
...
...
src/views/report/customerreport/index.vue
View file @
208bd0fe
...
...
@@ -179,6 +179,7 @@ export default {
duibiYear
:
getLastYear
(),
//对比年份
deptid
:
undefined
,
//部门
salesmanid
:
undefined
,
//客户经理
number
:
undefined
,
//客户编号
pageNo
:
1
,
pageSize
:
30
,
},
...
...
@@ -235,6 +236,7 @@ export default {
this
.
queryParams
.
salesmanid
=
parseInt
(
this
.
resultList
[
params
.
dataIndex
].
salesmanid
);
this
.
queryParams
.
number
=
this
.
resultList
[
params
.
dataIndex
].
number
;
Object
.
assign
(
p
,
this
.
queryParams
);
this
.
$router
.
push
({
path
:
"
/report/customer_analysis
"
,
...
...
@@ -270,7 +272,7 @@ export default {
//在数据中查询
let
sN
=
item
.
name
;
var
arr
=
sN
.
split
(
"
_
"
);
let
vR
=
resultList2
.
filter
((
r
)
=>
r
.
n
ame
===
arr
[
1
]);
let
vR
=
resultList2
.
filter
((
r
)
=>
r
.
n
umber
===
arr
[
1
]);
result
+=
"
客户:
"
+
item
.
name
+
"
<br/>
"
;
result
+=
"
客户编号:
"
+
vR
[
0
].
number
+
"
<br/>
"
;
result
+=
"
客户经理:
"
+
vR
[
0
].
salesman
+
"
<br/>
"
;
...
...
src/views/report/sales_analysis/index.vue
View file @
208bd0fe
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
...
...
@@ -30,7 +29,7 @@
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"提单号"
prop=
"
empGender
"
>
<el-form-item
label=
"提单号"
prop=
"
tidanNo
"
>
<el-select
v-model=
"queryParams.SearchType2"
clearable
...
...
@@ -52,7 +51,11 @@
/>
</el-form-item>
<el-form-item
label=
"发货人编号"
>
<el-select
v-model=
"queryParams.status"
clearable
style=
"width: 100px"
>
<el-select
v-model=
"queryParams.SearchType3"
clearable
style=
"width: 100px"
>
<el-option
v-for=
"dict in SearchType"
:key=
"dict.value"
...
...
@@ -62,14 +65,18 @@
</el-select>
<el-input
style=
"width: 200px"
v-model=
"queryParams.
name
"
v-model=
"queryParams.
fhNumber
"
placeholder=
"请输入发货人编号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"收货人编号"
prop=
"delFlag"
>
<el-select
v-model=
"queryParams.status"
clearable
style=
"width: 100px"
>
<el-select
v-model=
"queryParams.SearchType4"
clearable
style=
"width: 100px"
>
<el-option
v-for=
"dict in SearchType"
:key=
"dict.value"
...
...
@@ -79,7 +86,7 @@
</el-select>
<el-input
style=
"width: 200px"
v-model=
"queryParams.
delFlag
"
v-model=
"queryParams.
fhNumber
"
placeholder=
"请输入收货人编号"
clearable
@
keyup.enter.native=
"handleQuery"
...
...
@@ -93,10 +100,10 @@
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"客户经理"
prop=
"
remark
"
>
<el-form-item
label=
"客户经理"
prop=
"
salesmanId
"
>
<user-selector
manage
v-model=
"queryParams.salesman
i
d"
v-model=
"queryParams.salesman
I
d"
clearable
@
change=
"handleQuery"
:prepend=
"
{ id: 0, nickname: $t('未分配客户经理') }"
...
...
@@ -146,10 +153,10 @@
</el-select>
</el-form-item>
<el-form-item
label=
"目的国"
prop=
"
remark
"
>
<el-form-item
label=
"目的国"
prop=
"
muDiGuo
"
>
<el-select
clearable
v-model=
"queryParams.
country
"
v-model=
"queryParams.
muDiGuo
"
:placeholder=
"$t('请选择国家')"
>
<el-option
...
...
@@ -160,9 +167,9 @@
/>
</el-select>
</el-form-item>
<el-form-item
label=
"目的城市"
prop=
"
remark
"
>
<el-form-item
label=
"目的城市"
prop=
"
muDiShi
"
>
<el-input
v-model=
"queryParams.
remark
"
v-model=
"queryParams.
muDiShi
"
placeholder=
"选择目的城市"
clearable
@
keyup.enter.native=
"handleQuery"
...
...
@@ -191,14 +198,12 @@
clearable
/>
</el-form-item>
<el-form-item
label=
"重泡类型"
prop=
"remark"
>
<el-input
v-model=
"queryParams.remark"
placeholder=
"请输入备注信息"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-select
v-model=
"queryParams.zpType"
clearable
>
<el-option
label=
"重货"
value=
"2"
></el-option>
<el-option
label=
"泡货"
value=
"3"
></el-option>
<el-option
label=
"普货"
value=
"1"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"付款方"
prop=
"remark"
>
<el-select
v-model=
"queryParams.drawee"
clearable
>
...
...
@@ -217,36 +222,57 @@
/>
</el-select>
</el-form-item>
<el-form-item
label=
"资源类型"
prop=
"remark"
>
<el-input
v-model=
"queryParams.remark"
placeholder=
"选择资源类型"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
label=
"资源类型"
prop=
"ResourceType"
>
<el-select
v-model=
"queryParams.ResourceType"
clearable
>
<el-option
label=
"开发客户"
value=
"1"
></el-option>
<el-option
label=
"公司客户"
value=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"业绩类型"
prop=
"remark"
>
<el-input
v-model=
"queryParams.remark"
placeholder=
"选择业绩类型"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
label=
"业绩类型"
prop=
"YeJiType"
>
<el-select
v-model=
"queryParams.YeJiType"
clearable
>
<el-option
label=
"新客户"
value=
"1"
></el-option>
<el-option
label=
"老客户"
value=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"数据筛选"
prop=
"remark"
>
<el-input
v-model=
"queryParams.remark"
placeholder=
"请输入备注信息"
<el-select
v-model=
"queryParams.dataSearch1"
clearable
style=
"width: 150px"
>
<el-option
label=
"入仓箱数"
value=
"1"
></el-option>
<el-option
label=
"入仓体积"
value=
"2"
></el-option>
<el-option
label=
"入仓重量"
value=
"3"
></el-option>
<el-option
label=
"重/泡标准"
value=
"3"
></el-option>
<el-option
label=
"提货率"
value=
"4"
></el-option>
</el-select>
<el-select
v-model=
"queryParams.dataSearch2"
clearable
style=
"width: 150px"
>
<el-option
label=
"大于等于"
value=
"1"
></el-option>
<el-option
label=
"等于"
value=
"2"
></el-option>
<el-option
label=
"小于等于"
value=
"3"
></el-option>
</el-select>
<el-input
style=
"width: 100px"
v-model=
"queryParams.dataSearch3"
placeholder=
"请输入数值"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"时间筛选"
prop=
"remark"
>
<el-input
v-model=
"queryParams.remark"
placeholder=
"请输入备注信息"
<el-form-item
label=
"时间筛选"
prop=
"dateSearch"
>
<el-select
v-model=
"queryParams.dateSearch1"
clearable
>
<el-option
label=
"订单创建时间"
value=
"1"
></el-option>
<el-option
label=
"业绩创建时间"
value=
"2"
></el-option>
<el-option
label=
"首次入仓时间"
value=
"3"
></el-option>
</el-select>
<el-date-picker
v-model=
"queryParams.sdate1"
type=
"date"
value-format=
"yyyy-MM-dd"
clearable
@
keyup.enter.native=
"handleQuery"
placeholder=
"请输入起始日期"
/>
<el-date-picker
v-model=
"queryParams.edate1"
type=
"date"
value-format=
"yyyy-MM-dd"
clearable
placeholder=
"请输截止日期"
/>
</el-form-item>
<el-form-item>
...
...
@@ -310,12 +336,12 @@
</router-link>
</
template
>
</el-table-column>
<el-table-column
label=
"发货人编号"
align=
"center"
prop=
"
cf
Number"
>
<el-table-column
label=
"发货人编号"
align=
"center"
prop=
"
fh
Number"
>
<
template
slot-scope=
"{ row }"
>
<el-link
type=
"primary"
@
click.native=
"$router.push('/customer/query/' + row.cfCustomerId)"
>
{{
row
.
cf
Number
}}
</el-link
>
{{
row
.
fh
Number
}}
</el-link
>
</
template
>
</el-table-column>
...
...
@@ -328,16 +354,15 @@
>
</
template
>
</el-table-column>
<el-table-column
label=
"客户经理"
align=
"center"
prop=
"salesmanidName"
width=
"180"
>
<el-table-column
label=
"客户经理"
align=
"center"
prop=
"salesmanidName"
>
</el-table-column>
<el-table-column
label=
"订单状态"
align=
"center"
prop=
"statusName"
/>
<el-table-column
label=
"运输方式"
align=
"center"
prop=
"transportIdName"
/>
<el-table-column
label=
"始发仓"
align=
"center"
prop=
"startwarehousename"
/>
<el-table-column
label=
"始发仓"
align=
"center"
prop=
"startwarehousename"
/>
<el-table-column
label=
"目的国"
align=
"center"
prop=
"muDiGuo"
/>
<el-table-column
label=
"目的城市"
align=
"center"
prop=
"muDiShi"
/>
<el-table-column
label=
"目的仓"
align=
"center"
prop=
"dstwarehousename"
/>
...
...
@@ -348,7 +373,11 @@
align=
"center"
prop=
"businesstime"
/>
<el-table-column
label=
"资源类型"
align=
"center"
prop=
"showResourceType"
/>
<el-table-column
label=
"资源类型"
align=
"center"
prop=
"showResourceType"
/>
<el-table-column
label=
"业绩类型"
align=
"center"
prop=
"showYeJiType"
/>
<el-table-column
label=
"唛头"
align=
"center"
prop=
"marks"
/>
<el-table-column
label=
"入仓箱数"
align=
"center"
prop=
"sumquantity"
/>
...
...
@@ -358,9 +387,16 @@
<el-table-column
label=
"重货/泡货"
align=
"center"
prop=
"ordertypeShow"
/>
<el-table-column
label=
"重货/泡货标准"
align=
"center"
prop=
"zpUnitShow"
/>
<el-table-column
label=
"付款方"
align=
"center"
prop=
"draweeName"
/>
<el-table-column
label=
"首次入仓时间"
align=
"center"
prop=
"deleted"
/>
<el-table-column
label=
"提货率"
align=
"center"
prop=
"deleted"
/>
<el-table-column
label=
"入仓记录"
align=
"center"
prop=
"deleted"
/>
<el-table-column
label=
"首次入仓时间"
align=
"center"
prop=
"firstInTime"
/>
<el-table-column
label=
"提货率"
align=
"center"
prop=
"showThl"
>
</el-table-column>
<el-table-column
label=
"入仓记录"
align=
"center"
prop=
"orderId"
>
<
template
slot-scope=
"{ row }"
>
<el-link
type=
"primary"
@
click.native=
"showWarehouseLogs(row, 1)"
>
入仓记录
</el-link>
</
template
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
...
...
@@ -370,6 +406,12 @@
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<WarehouseDetail
:orderId=
"showWarehouseInItemId"
:type=
"type"
v-if=
"showWarehouseInItemId"
@
close=
"showWarehouseInItemId = null"
></WarehouseDetail>
</div>
</template>
...
...
@@ -377,13 +419,14 @@
import
UserSelector
from
"
@/components/UserSelector
"
;
import
{
getCountryListAll
}
from
"
@/api/ecw/country
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
//自定义目录数样式
import
"
@/assets/styles/vue-treeselect.css
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
;
import
{
getListPage
,
exportExcel
}
from
"
@/api/report/salesanalysis
"
;
import
{
getCurUserPermission
}
from
"
@/api/report/EcwReportPermission
"
;
import
{
getAllChannelList
,
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
{
listSimpleDepts
}
from
"
@/api/system/dept
"
;
//入仓记录页面
import
WarehouseDetail
from
"
@/views/ecw/order/components/WarehouseDetail
"
;
//2024-04-27
export
default
{
...
...
@@ -391,6 +434,7 @@ export default {
components
:
{
UserSelector
,
Treeselect
,
WarehouseDetail
,
},
data
()
{
return
{
...
...
@@ -420,17 +464,33 @@ export default {
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
startWarehouseId
:
undefined
,
SearchType3
:
undefined
,
fhNumber
:
undefined
,
//发货客户编号
SearchType3
:
undefined
,
shNumber
:
undefined
,
//收货客户编号
startWarehouseId
:
undefined
,
//始发仓
muDiGuo
:
undefined
,
//目的国
muDiShi
:
undefined
,
//目的城市
dstwarehousename
:
undefined
,
//目的仓
transportId
:
undefined
,
//运输方式
SearchType1
:
undefined
,
//订单编号查询类型
orderNo
:
undefined
,
//订单编号
SearchType2
:
undefined
,
//提单号的查询类别
tidanNo
:
undefined
,
//提单号
marks
:
undefined
,
//唛头
salesmanid
:
undefined
,
//客户经理
status
:
undefined
,
//订单状态
salesmanId
:
undefined
,
//客户经理
isCargoControl
:
undefined
,
//是否控货
deptid
:
undefined
,
//部门
drawee
:
undefined
,
//付款方
zpType
:
undefined
,
//货物类型,1普货,2重货,3泡货
YeJiType
:
undefined
,
//业绩类型 新客户,老客户
dateSearch1
:
undefined
,
//时间筛选类型
sdate1
:
undefined
,
//开始时间
edate2
:
undefined
,
//结束时间
dataSearch1
:
undefined
,
//数据类型筛选
dataSearch2
:
undefined
,
//比较符号设置
dataSearch3
:
undefined
,
//数据值
},
channelList
:
[],
countryList
:
[],
...
...
@@ -442,6 +502,8 @@ export default {
//报表权限信息
objEcwReportPermission
:
{},
DeptEx
:
{
id
:
undefined
,
name
:
undefined
,
parentId
:
undefined
},
showWarehouseInItemId
:
undefined
,
type
:
1
,
};
},
created
()
{
...
...
@@ -540,6 +602,12 @@ export default {
})
.
catch
(()
=>
{});
},
// 显示入仓记录
showWarehouseLogs
(
row
,
type
)
{
debugger
;
this
.
type
=
type
;
this
.
showWarehouseInItemId
=
row
.
orderId
;
},
/** 查询部门下拉树结构 + 岗位下拉 */
getTreeselect
()
{
if
(
this
.
objEcwReportPermission
.
permissionFw
==
3
)
{
...
...
src/views/report/salesreport/index.vue
View file @
208bd0fe
...
...
@@ -10,38 +10,37 @@
>
<el-form-item
label=
"选择日期"
prop=
"testName"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
v-model=
"queryParams.sDate"
type=
"month"
value-format=
"yyyy-MM"
clearable
placeholder=
"请输起始月"
/>
<el-date-picker
v-model=
"queryParams.eDate"
type=
"month"
value-format=
"yyyy-MM"
clearable
placeholder=
"请输截止月"
/>
</el-form-item>
<el-form-item
label=
"同比年份"
prop=
"duibiYear"
>
<el-
input
<el-
date-picker
v-model=
"queryParams.duibiYear"
placeholder=
"请输入排序
"
clearable
@
keyup.enter.native=
"handleQuery
"
type=
"year
"
value-format=
"yyyy"
placeholder=
"请选择同比年份
"
/>
</el-form-item>
<el-form-item
label=
"部门"
prop=
"deptid"
>
<el-select
v-model=
"queryParams.deptId"
style=
"width: 300px"
<treeselect
v-model=
"queryParams.deptid"
:options=
"deptOptions"
:show-count=
"true"
:placeholder=
"$t('请选择部门')"
clearable
>
<el-option
v-for=
"item in this.deptData"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
:normalizer=
"normalizer"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"客户经理"
prop=
"salesmanid"
>
<user-selector
...
...
@@ -59,51 +58,114 @@
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row>
<el-form
size=
"small"
:inline=
"true"
label-width=
"100px"
>
<el-form-item
label=
"客业绩总览"
prop=
"allsumvolume"
>
<el-input
v-model=
"allsumvolume"
placeholder=
""
:readonly=
"true"
clearable
<el-row
:gutter=
"40"
class=
"panel-group"
>
<el-col
:xs=
"12"
:sm=
"12"
:lg=
"6"
class=
"card-panel-col"
>
<div
class=
"card-panel"
@
click=
"
checkPermi(['member:user'])
? $router.push('/member/member-user')
: $alert($t('暂无权限'))
"
>
<div
class=
"card-panel-icon-wrapper icon-people"
>
<svg-icon
icon-class=
"peoples"
class-name=
"card-panel-icon"
/>
</div>
<div
class=
"card-panel-description"
>
<div
class=
"card-panel-text"
>
{{
$t
(
"
业绩总览
"
)
}}
</div>
<count-to
:start-val=
"0"
:end-val=
"100"
:duration=
"2600"
class=
"card-panel-num"
/>
</el-form-item>
<el-form-item
label=
"海运拼柜"
prop=
"sumvolume1"
>
<el-input
v-model=
"sumvolume1"
placeholder=
""
:readonly=
"true"
clearable
</div>
</div>
</el-col>
<el-col
:xs=
"12"
:sm=
"12"
:lg=
"6"
class=
"card-panel-col"
>
<div
class=
"card-panel"
@
click=
"
$router.push('/system/internalMessage/my-internal-message?status=0')
"
>
<div
class=
"card-panel-icon-wrapper icon-message"
>
<svg-icon
icon-class=
"message"
class-name=
"card-panel-icon"
/>
</div>
<div
class=
"card-panel-description"
>
<div
class=
"card-panel-text"
>
{{
$t
(
"
海运拼柜
"
)
}}
</div>
<count-to
:start-val=
"0"
:end-val=
"200"
:duration=
"3000"
class=
"card-panel-num"
/>
</el-form-item>
<el-form-item
label=
"专线空运"
prop=
"sumweight3"
>
<el-input
v-model=
"sumweight3"
placeholder=
""
:readonly=
"true"
clearable
</div>
</div>
</el-col>
<el-col
:xs=
"12"
:sm=
"12"
:lg=
"6"
class=
"card-panel-col"
>
<div
class=
"card-panel"
@
click=
"$router.push('/task/todo')"
>
<div
class=
"card-panel-icon-wrapper icon-money"
>
<svg-icon
icon-class=
"date"
class-name=
"card-panel-icon"
/>
</div>
<div
class=
"card-panel-description"
>
<div
class=
"card-panel-text"
>
{{
$t
(
"
专线空运
"
)
}}
</div>
<count-to
:start-val=
"0"
:end-val=
"500"
:duration=
"3200"
class=
"card-panel-num"
/>
</el-form-item>
<el-form-item
label=
"成交客户总览"
prop=
"sumCustomerCount"
>
<el-input
v-model=
"sumCustomerCount"
placeholder=
""
:readonly=
"true"
clearable
</div>
</div>
</el-col>
</el-row>
<el-row
:gutter=
"40"
class=
"panel-group"
>
<el-col
:xs=
"12"
:sm=
"12"
:lg=
"6"
class=
"card-panel-col"
>
<div
class=
"card-panel"
@
click=
"$router.push('/order/mine')"
>
<div
class=
"card-panel-icon-wrapper icon-shopping"
>
<svg-icon
icon-class=
"shopping"
class-name=
"card-panel-icon"
/>
</div>
<div
class=
"card-panel-description"
>
<div
class=
"card-panel-text"
>
{{
$t
(
"
成交总览
"
)
}}
</div>
<count-to
:start-val=
"0"
:end-val=
"700"
:duration=
"3600"
class=
"card-panel-num"
/>
</el-form-item>
<el-form-item
label=
"首次成交"
prop=
"fisCustomerCount"
>
<el-input
v-model=
"fisCustomerCount"
placeholder=
""
:readonly=
"true"
clearable
</div>
</div>
</el-col>
<el-col
:xs=
"12"
:sm=
"12"
:lg=
"6"
class=
"card-panel-col"
>
<div
class=
"card-panel"
@
click=
"$router.push('/member/member/under-review')"
>
<div
class=
"card-panel-icon-wrapper icon-shopping"
>
<svg-icon
icon-class=
"time-range"
class-name=
"card-panel-icon"
/>
</div>
<div
class=
"card-panel-description"
>
<div
class=
"card-panel-text"
>
{{
$t
(
"
首次成交
"
)
}}
</div>
<count-to
:start-val=
"0"
:end-val=
"100"
:duration=
"3600"
class=
"card-panel-num"
/>
</el-form-item>
</el-form>
</div>
</div>
</el-col>
</el-row>
<div
ref=
"mainBar"
...
...
@@ -113,15 +175,19 @@
</div>
</
template
>
<
script
>
<
script
>
import
UserSelector
from
"
@/components/UserSelector
"
;
import
Treeselect
from
"
@riophae/vue-treeselect
"
;
//自定义目录数样式
import
"
@/assets/styles/vue-treeselect.css
"
;
import
{
listSimpleDepts
}
from
"
@/api/system/dept
"
;
//报表权限接口
import
{
getCurUserPermission
}
from
"
@/api/report/EcwReportPermission
"
;
import
{
SalesReportCount
,
FirstCustomerCount
}
from
"
@/api/report/salesreport
"
;
import
{
getCurUserPermission
}
from
"
@/api/report/EcwReportPermission
"
;
import
{
SalesReportCount
,
FirstCustomerCount
,
getEChartData
,
}
from
"
@/api/report/salesreport
"
;
import
*
as
echarts
from
"
echarts
"
;
require
(
"
echarts/theme/macarons
"
);
import
resize
from
"
../../dashboard/mixins/resize
"
;
...
...
@@ -147,7 +213,7 @@ export default {
},
height
:
{
type
:
String
,
default
:
"
35
0px
"
,
default
:
"
50
0px
"
,
},
autoResize
:
{
type
:
Boolean
,
...
...
@@ -162,6 +228,8 @@ export default {
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
showCustomsManage
:
true
,
showDept
:
true
,
chart
:
null
,
allsumvolume
:
undefined
,
sumvolume1
:
undefined
,
...
...
@@ -172,18 +240,41 @@ export default {
queryParams
:
{
salesmanid
:
undefined
,
//销售经理
deptid
:
undefined
,
//部门
sDate
:
undefined
,
//开始日期
eDate
:
undefined
,
//结束日期
duibiYear
:
undefined
,
//对比年份
},
deptOptions
:
[],
deptData
:
[],
//报表权限信息
objEcwReportPermission
:
{},
};
},
watch
:
{},
mounted
()
{
this
.
getSalesReportCount
();
this
.
getFirstCustomerCount
();
mounted
()
{},
created
()
{
//获取当前用户报表权限
getCurUserPermission
().
then
((
response
)
=>
{
this
.
objEcwReportPermission
=
response
.
data
;
if
(
this
.
objEcwReportPermission
.
permissionFw
==
1
)
{
//本人权限
this
.
showCustomsManage
=
false
;
this
.
showDept
=
false
;
this
.
queryParams
.
salesmanid
=
this
.
objEcwReportPermission
.
userId
;
}
else
if
(
this
.
objEcwReportPermission
.
permissionFw
==
2
)
{
this
.
showCustomsManage
=
true
;
this
.
showDept
=
true
;
this
.
queryParams
.
deptid
=
parseInt
(
this
.
objEcwReportPermission
.
deptId
);
}
else
if
(
this
.
objEcwReportPermission
.
permissionFw
==
3
)
{
//全公司权限
this
.
showCustomsManage
=
true
;
this
.
showDept
=
true
;
}
this
.
getTreeselect
();
this
.
$nextTick
(()
=>
{
//this.getSalesReportCount();
// this.getFirstCustomerCount();
//获取权限后再初始化统计图表
this
.
initChart
();
});
},
...
...
@@ -224,28 +315,177 @@ export default {
this
.
setOptions
();
},
setOptions
()
{
this
.
loading
=
true
;
getEChartData
(
this
.
queryParams
).
then
((
response
)
=>
{
this
.
chart
.
setOption
({
xAxis
:
{
type
:
"
category
"
,
data
:
[
"
Mon1
"
,
"
Tue
"
,
"
Wed
"
,
"
Thu
"
,
"
Fri
"
,
"
Sat
"
,
"
Sun
"
],
title
:
{
text
:
"
月度业绩分布
"
,
},
yAxis
:
{
type
:
"
value
"
,
legend
:
{},
grid
:
{
left
:
"
3%
"
,
right
:
"
4%
"
,
bottom
:
"
3%
"
,
containLabel
:
true
,
},
series
:
[
{
data
:
[
200
,
230
,
224
,
218
,
135
,
147
,
260
],
type
:
"
line
"
,
xAxis
:
{
type
:
"
value
"
,
boundaryGap
:
[
0
,
0.5
],
},
],
yAxis
:
response
.
data
.
objyAxis
,
series
:
response
.
data
.
obSseries
,
});
});
},
handleQuery
()
{},
getList
()
{},
resetQuery
()
{},
resetQuery
()
{
this
.
queryParams
=
{
salesmanid
:
undefined
,
//销售经理
deptid
:
undefined
,
//部门
sDate
:
undefined
,
//开始日期
eDate
:
undefined
,
//结束日期
duibiYear
:
undefined
,
//对比年份
};
},
handleAdd
()
{},
handleExport
()
{},
/** 查询部门下拉树结构 + 岗位下拉 */
getTreeselect
()
{
if
(
this
.
objEcwReportPermission
.
permissionFw
==
3
)
{
listSimpleDepts
().
then
((
response
)
=>
{
// 处理deptOptions 参数
this
.
deptOptions
=
[];
this
.
deptOptions
.
push
(...
this
.
handleTree
(
response
.
data
,
"
id
"
));
});
}
else
if
(
this
.
objEcwReportPermission
.
permissionFw
==
2
)
{
this
.
DeptEx
.
id
=
this
.
objEcwReportPermission
.
deptId
;
getDeptChild
(
this
.
DeptEx
).
then
((
response
)
=>
{
// 处理deptOptions 参数
this
.
deptOptions
=
[];
this
.
deptOptions
.
push
(...
this
.
handleTree
(
response
.
data
,
"
id
"
));
});
}
},
//格式化部门的下拉框
normalizer
(
node
)
{
return
{
id
:
node
.
id
,
label
:
node
.
name
,
children
:
node
.
children
,
};
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.panel-group
{
margin-top
:
18px
;
.card-panel-col
{
margin-bottom
:
32px
;
}
.card-panel
{
display
:
flex
;
justify-content
:
space-between
;
height
:
108px
;
cursor
:
pointer
;
font-size
:
12px
;
position
:
relative
;
overflow
:
hidden
;
color
:
#666
;
background
:
#fff
;
box-shadow
:
4px
4px
40px
rgba
(
0
,
0
,
0
,
0
.05
);
border-color
:
rgba
(
0
,
0
,
0
,
0
.05
);
&
:hover
{
.card-panel-icon-wrapper
{
color
:
#fff
;
}
.icon-people
{
background
:
#40c9c6
;
}
.icon-message
{
background
:
#36a3f7
;
}
.icon-money
{
background
:
#f4516c
;
}
.icon-shopping
{
background
:
#34bfa3
;
}
}
.icon-people
{
color
:
#40c9c6
;
}
.icon-message
{
color
:
#36a3f7
;
}
.icon-money
{
color
:
#f4516c
;
}
.icon-shopping
{
color
:
#34bfa3
;
}
.card-panel-icon-wrapper
{
margin
:
14px
0
0
14px
;
padding
:
16px
;
transition
:
all
0
.38s
ease-out
;
border-radius
:
6px
;
}
.card-panel-icon
{
font-size
:
48px
;
}
.card-panel-description
{
font-weight
:
bold
;
margin
:
26px
;
margin-left
:
0px
;
.card-panel-text
{
line-height
:
18px
;
color
:
rgba
(
0
,
0
,
0
,
0
.45
);
font-size
:
16px
;
margin-bottom
:
12px
;
}
.card-panel-num
{
font-size
:
20px
;
}
}
}
}
@media
(
max-width
:
550px
)
{
.card-panel-description
{
display
:
none
;
}
.card-panel-icon-wrapper
{
float
:
none
!
important
;
width
:
100%
;
height
:
100%
;
margin
:
0
!
important
;
.svg-icon
{
display
:
block
;
margin
:
14px
auto
!
important
;
float
:
none
!
important
;
}
}
}
</
style
>
\ No newline at end of file
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