Commit 208bd0fe authored by lanbaoming's avatar lanbaoming

2024-04-30 报表修改

parent d526af81
...@@ -271,12 +271,7 @@ ...@@ -271,12 +271,7 @@
<el-table-column label="控货总V值" align="center" prop="khSumV" /> <el-table-column label="控货总V值" align="center" prop="khSumV" />
<el-table-column label="控货占比" align="center" prop="khSumZb" /> <el-table-column label="控货占比" align="center" prop="khSumZb" />
<el-table-column label="是否首次成交" align="center" prop="isFirst" /> <el-table-column label="是否首次成交" align="center" prop="isFirst" />
<el-table-column <el-table-column label="首次成交时间" align="center" prop="firstDate">
label="首次成交时间"
align="center"
prop="firstDate"
width="200px"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.firstDate) }}</span> <span>{{ parseTime(scope.row.firstDate) }}</span>
</template> </template>
...@@ -287,7 +282,7 @@ ...@@ -287,7 +282,7 @@
<el-table-column label="客户角色" align="center" prop="customerrole" /> <el-table-column label="客户角色" align="center" prop="customerrole" />
<el-table-column label="客户国家" align="center" prop="country" /> <el-table-column label="客户国家" align="center" prop="country" />
<el-table-column <el-table-column
label="客户创建时间" label="客户创建时间"
align="center" align="center"
prop="createtime" prop="createtime"
width="200px" width="200px"
...@@ -504,6 +499,8 @@ export default { ...@@ -504,6 +499,8 @@ export default {
let s = this.$route.query.sDate; let s = this.$route.query.sDate;
let e = this.$route.query.eDate; let e = this.$route.query.eDate;
let bd = this.$route.query.duibiYear; let bd = this.$route.query.duibiYear;
//客户编号
let number = this.$route.query.number;
if (sSalesmanid != undefined && sSalesmanid != null) { if (sSalesmanid != undefined && sSalesmanid != null) {
this.queryParams.salesmanid = parseInt(sSalesmanid); this.queryParams.salesmanid = parseInt(sSalesmanid);
} }
...@@ -520,6 +517,10 @@ export default { ...@@ -520,6 +517,10 @@ export default {
if (bd != undefined && bd != null) { if (bd != undefined && bd != null) {
this.queryParams.duibiYear = bd; this.queryParams.duibiYear = bd;
} }
if (number != undefined && number != null) {
this.queryParams.searchtype = "eq";
this.queryParams.name = number;
}
this.getTreeselect(); this.getTreeselect();
this.getList(); this.getList();
}); });
......
...@@ -179,6 +179,7 @@ export default { ...@@ -179,6 +179,7 @@ export default {
duibiYear: getLastYear(), //对比年份 duibiYear: getLastYear(), //对比年份
deptid: undefined, //部门 deptid: undefined, //部门
salesmanid: undefined, //客户经理 salesmanid: undefined, //客户经理
number: undefined, //客户编号
pageNo: 1, pageNo: 1,
pageSize: 30, pageSize: 30,
}, },
...@@ -235,6 +236,7 @@ export default { ...@@ -235,6 +236,7 @@ export default {
this.queryParams.salesmanid = parseInt( this.queryParams.salesmanid = parseInt(
this.resultList[params.dataIndex].salesmanid this.resultList[params.dataIndex].salesmanid
); );
this.queryParams.number = this.resultList[params.dataIndex].number;
Object.assign(p, this.queryParams); Object.assign(p, this.queryParams);
this.$router.push({ this.$router.push({
path: "/report/customer_analysis", path: "/report/customer_analysis",
...@@ -270,7 +272,7 @@ export default { ...@@ -270,7 +272,7 @@ export default {
//在数据中查询 //在数据中查询
let sN = item.name; let sN = item.name;
var arr = sN.split("_"); var arr = sN.split("_");
let vR = resultList2.filter((r) => r.name === arr[1]); let vR = resultList2.filter((r) => r.number === arr[1]);
result += "客户:" + item.name + "<br/>"; result += "客户:" + item.name + "<br/>";
result += "客户编号:" + vR[0].number + "<br/>"; result += "客户编号:" + vR[0].number + "<br/>";
result += "客户经理:" + vR[0].salesman + "<br/>"; result += "客户经理:" + vR[0].salesman + "<br/>";
......
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 -->
<el-form <el-form
:model="queryParams" :model="queryParams"
ref="queryForm" ref="queryForm"
...@@ -30,7 +29,7 @@ ...@@ -30,7 +29,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="提单号" prop="empGender"> <el-form-item label="提单号" prop="tidanNo">
<el-select <el-select
v-model="queryParams.SearchType2" v-model="queryParams.SearchType2"
clearable clearable
...@@ -52,7 +51,11 @@ ...@@ -52,7 +51,11 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="发货人编号"> <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 <el-option
v-for="dict in SearchType" v-for="dict in SearchType"
:key="dict.value" :key="dict.value"
...@@ -62,14 +65,18 @@ ...@@ -62,14 +65,18 @@
</el-select> </el-select>
<el-input <el-input
style="width: 200px" style="width: 200px"
v-model="queryParams.name" v-model="queryParams.fhNumber"
placeholder="请输入发货人编号" placeholder="请输入发货人编号"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="收货人编号" prop="delFlag"> <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 <el-option
v-for="dict in SearchType" v-for="dict in SearchType"
:key="dict.value" :key="dict.value"
...@@ -79,7 +86,7 @@ ...@@ -79,7 +86,7 @@
</el-select> </el-select>
<el-input <el-input
style="width: 200px" style="width: 200px"
v-model="queryParams.delFlag" v-model="queryParams.fhNumber"
placeholder="请输入收货人编号" placeholder="请输入收货人编号"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
...@@ -93,10 +100,10 @@ ...@@ -93,10 +100,10 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="客户经理" prop="remark"> <el-form-item label="客户经理" prop="salesmanId">
<user-selector <user-selector
manage manage
v-model="queryParams.salesmanid" v-model="queryParams.salesmanId"
clearable clearable
@change="handleQuery" @change="handleQuery"
:prepend="{ id: 0, nickname: $t('未分配客户经理') }" :prepend="{ id: 0, nickname: $t('未分配客户经理') }"
...@@ -146,10 +153,10 @@ ...@@ -146,10 +153,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="目的国" prop="remark"> <el-form-item label="目的国" prop="muDiGuo">
<el-select <el-select
clearable clearable
v-model="queryParams.country" v-model="queryParams.muDiGuo"
:placeholder="$t('请选择国家')" :placeholder="$t('请选择国家')"
> >
<el-option <el-option
...@@ -160,9 +167,9 @@ ...@@ -160,9 +167,9 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="目的城市" prop="remark"> <el-form-item label="目的城市" prop="muDiShi">
<el-input <el-input
v-model="queryParams.remark" v-model="queryParams.muDiShi"
placeholder="选择目的城市" placeholder="选择目的城市"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
...@@ -191,14 +198,12 @@ ...@@ -191,14 +198,12 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="重泡类型" prop="remark"> <el-form-item label="重泡类型" prop="remark">
<el-input <el-select v-model="queryParams.zpType" clearable>
v-model="queryParams.remark" <el-option label="重货" value="2"></el-option>
placeholder="请输入备注信息" <el-option label="泡货" value="3"></el-option>
clearable <el-option label="普货" value="1"></el-option>
@keyup.enter.native="handleQuery" </el-select>
/>
</el-form-item> </el-form-item>
<el-form-item label="付款方" prop="remark"> <el-form-item label="付款方" prop="remark">
<el-select v-model="queryParams.drawee" clearable> <el-select v-model="queryParams.drawee" clearable>
...@@ -217,36 +222,57 @@ ...@@ -217,36 +222,57 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="资源类型" prop="remark"> <el-form-item label="资源类型" prop="ResourceType">
<el-input <el-select v-model="queryParams.ResourceType" clearable>
v-model="queryParams.remark" <el-option label="开发客户" value="1"></el-option>
placeholder="选择资源类型" <el-option label="公司客户" value="2"></el-option>
clearable </el-select>
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="业绩类型" prop="remark"> <el-form-item label="业绩类型" prop="YeJiType">
<el-input <el-select v-model="queryParams.YeJiType" clearable>
v-model="queryParams.remark" <el-option label="新客户" value="1"></el-option>
placeholder="选择业绩类型" <el-option label="老客户" value="2"></el-option>
clearable </el-select>
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="数据筛选" prop="remark"> <el-form-item label="数据筛选" prop="remark">
<el-input <el-select v-model="queryParams.dataSearch1" clearable style="width: 150px">
v-model="queryParams.remark" <el-option label="入仓箱数" value="1"></el-option>
placeholder="请输入备注信息" <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 clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="时间筛选" prop="remark"> <el-form-item label="时间筛选" prop="dateSearch">
<el-input <el-select v-model="queryParams.dateSearch1" clearable>
v-model="queryParams.remark" <el-option label="订单创建时间" value="1"></el-option>
placeholder="请输入备注信息" <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 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>
<el-form-item> <el-form-item>
...@@ -310,12 +336,12 @@ ...@@ -310,12 +336,12 @@
</router-link> </router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="发货人编号" align="center" prop="cfNumber"> <el-table-column label="发货人编号" align="center" prop="fhNumber">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-link <el-link
type="primary" type="primary"
@click.native="$router.push('/customer/query/' + row.cfCustomerId)" @click.native="$router.push('/customer/query/' + row.cfCustomerId)"
>{{ row.cfNumber }}</el-link >{{ row.fhNumber }}</el-link
> >
</template> </template>
</el-table-column> </el-table-column>
...@@ -328,16 +354,15 @@ ...@@ -328,16 +354,15 @@
> >
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="客户经理" align="center" prop="salesmanidName">
label="客户经理"
align="center"
prop="salesmanidName"
width="180"
>
</el-table-column> </el-table-column>
<el-table-column label="订单状态" align="center" prop="statusName" /> <el-table-column label="订单状态" align="center" prop="statusName" />
<el-table-column label="运输方式" align="center" prop="transportIdName" /> <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="muDiGuo" />
<el-table-column label="目的城市" align="center" prop="muDiShi" /> <el-table-column label="目的城市" align="center" prop="muDiShi" />
<el-table-column label="目的仓" align="center" prop="dstwarehousename" /> <el-table-column label="目的仓" align="center" prop="dstwarehousename" />
...@@ -348,7 +373,11 @@ ...@@ -348,7 +373,11 @@
align="center" align="center"
prop="businesstime" 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="showYeJiType" />
<el-table-column label="唛头" align="center" prop="marks" /> <el-table-column label="唛头" align="center" prop="marks" />
<el-table-column label="入仓箱数" align="center" prop="sumquantity" /> <el-table-column label="入仓箱数" align="center" prop="sumquantity" />
...@@ -358,9 +387,16 @@ ...@@ -358,9 +387,16 @@
<el-table-column label="重货/泡货" align="center" prop="ordertypeShow" /> <el-table-column label="重货/泡货" align="center" prop="ordertypeShow" />
<el-table-column label="重货/泡货标准" align="center" prop="zpUnitShow" /> <el-table-column label="重货/泡货标准" align="center" prop="zpUnitShow" />
<el-table-column label="付款方" align="center" prop="draweeName" /> <el-table-column label="付款方" align="center" prop="draweeName" />
<el-table-column label="首次入仓时间" align="center" prop="deleted" /> <el-table-column label="首次入仓时间" align="center" prop="firstInTime" />
<el-table-column label="提货率" align="center" prop="deleted" /> <el-table-column label="提货率" align="center" prop="showThl">
<el-table-column label="入仓记录" align="center" prop="deleted" /> </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> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <pagination
...@@ -370,6 +406,12 @@ ...@@ -370,6 +406,12 @@
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<WarehouseDetail
:orderId="showWarehouseInItemId"
:type="type"
v-if="showWarehouseInItemId"
@close="showWarehouseInItemId = null"
></WarehouseDetail>
</div> </div>
</template> </template>
...@@ -377,13 +419,14 @@ ...@@ -377,13 +419,14 @@
import UserSelector from "@/components/UserSelector"; import UserSelector from "@/components/UserSelector";
import { getCountryListAll } from "@/api/ecw/country"; import { getCountryListAll } from "@/api/ecw/country";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
//自定义目录数样式
import "@/assets/styles/vue-treeselect.css"; import "@/assets/styles/vue-treeselect.css";
import { getWarehouseList } from "@/api/ecw/warehouse"; import { getWarehouseList } from "@/api/ecw/warehouse";
import { getListPage, exportExcel } from "@/api/report/salesanalysis"; import { getListPage, exportExcel } from "@/api/report/salesanalysis";
import { getCurUserPermission } from "@/api/report/EcwReportPermission"; import { getCurUserPermission } from "@/api/report/EcwReportPermission";
import { getAllChannelList, getChannelList } from "@/api/ecw/channel"; import { getAllChannelList, getChannelList } from "@/api/ecw/channel";
import { listSimpleDepts } from "@/api/system/dept"; import { listSimpleDepts } from "@/api/system/dept";
//入仓记录页面
import WarehouseDetail from "@/views/ecw/order/components/WarehouseDetail";
//2024-04-27 //2024-04-27
export default { export default {
...@@ -391,6 +434,7 @@ export default { ...@@ -391,6 +434,7 @@ export default {
components: { components: {
UserSelector, UserSelector,
Treeselect, Treeselect,
WarehouseDetail,
}, },
data() { data() {
return { return {
...@@ -420,17 +464,33 @@ export default { ...@@ -420,17 +464,33 @@ export default {
queryParams: { queryParams: {
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
startWarehouseId: undefined, SearchType3: undefined,
fhNumber: undefined, //发货客户编号
SearchType3: undefined,
shNumber: undefined, //收货客户编号
startWarehouseId: undefined, //始发仓
muDiGuo: undefined, //目的国
muDiShi: undefined, //目的城市
dstwarehousename: undefined, //目的仓
transportId: undefined, //运输方式 transportId: undefined, //运输方式
SearchType1: undefined, //订单编号查询类型 SearchType1: undefined, //订单编号查询类型
orderNo: undefined, //订单编号 orderNo: undefined, //订单编号
SearchType2: undefined, //提单号的查询类别 SearchType2: undefined, //提单号的查询类别
tidanNo: undefined, //提单号 tidanNo: undefined, //提单号
marks: undefined, //唛头 marks: undefined, //唛头
salesmanid: undefined, //客户经理 status: undefined, //订单状态
salesmanId: undefined, //客户经理
isCargoControl: undefined, //是否控货 isCargoControl: undefined, //是否控货
deptid: undefined, //部门 deptid: undefined, //部门
drawee: undefined, //付款方 drawee: undefined, //付款方
zpType: undefined, //货物类型,1普货,2重货,3泡货
YeJiType: undefined, //业绩类型 新客户,老客户
dateSearch1: undefined, //时间筛选类型
sdate1: undefined, //开始时间
edate2: undefined, //结束时间
dataSearch1:undefined,//数据类型筛选
dataSearch2:undefined,//比较符号设置
dataSearch3:undefined,//数据值
}, },
channelList: [], channelList: [],
countryList: [], countryList: [],
...@@ -442,6 +502,8 @@ export default { ...@@ -442,6 +502,8 @@ export default {
//报表权限信息 //报表权限信息
objEcwReportPermission: {}, objEcwReportPermission: {},
DeptEx: { id: undefined, name: undefined, parentId: undefined }, DeptEx: { id: undefined, name: undefined, parentId: undefined },
showWarehouseInItemId: undefined,
type: 1,
}; };
}, },
created() { created() {
...@@ -540,6 +602,12 @@ export default { ...@@ -540,6 +602,12 @@ export default {
}) })
.catch(() => {}); .catch(() => {});
}, },
// 显示入仓记录
showWarehouseLogs(row, type) {
debugger;
this.type = type;
this.showWarehouseInItemId = row.orderId;
},
/** 查询部门下拉树结构 + 岗位下拉 */ /** 查询部门下拉树结构 + 岗位下拉 */
getTreeselect() { getTreeselect() {
if (this.objEcwReportPermission.permissionFw == 3) { if (this.objEcwReportPermission.permissionFw == 3) {
......
...@@ -10,38 +10,37 @@ ...@@ -10,38 +10,37 @@
> >
<el-form-item label="选择日期" prop="testName"> <el-form-item label="选择日期" prop="testName">
<el-date-picker <el-date-picker
v-model="dateRangeCreateTime" v-model="queryParams.sDate"
style="width: 240px" type="month"
value-format="yyyy-MM-dd" value-format="yyyy-MM"
type="daterange" clearable
range-separator="-" placeholder="请输起始月"
start-placeholder="开始日期" />
end-placeholder="结束日期" <el-date-picker
v-model="queryParams.eDate"
type="month"
value-format="yyyy-MM"
clearable
placeholder="请输截止月"
/> />
</el-form-item> </el-form-item>
<el-form-item label="同比年份" prop="duibiYear"> <el-form-item label="同比年份" prop="duibiYear">
<el-input <el-date-picker
v-model="queryParams.duibiYear" v-model="queryParams.duibiYear"
placeholder="请输入排序" type="year"
clearable value-format="yyyy"
@keyup.enter.native="handleQuery" placeholder="请选择同比年份"
/> />
</el-form-item> </el-form-item>
<el-form-item label="部门" prop="deptid"> <el-form-item label="部门" prop="deptid">
<el-select <treeselect
v-model="queryParams.deptId" v-model="queryParams.deptid"
style="width: 300px" :options="deptOptions"
:show-count="true"
:placeholder="$t('请选择部门')" :placeholder="$t('请选择部门')"
clearable :normalizer="normalizer"
> />
<el-option
v-for="item in this.deptData"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户经理" prop="salesmanid"> <el-form-item label="客户经理" prop="salesmanid">
<user-selector <user-selector
...@@ -59,51 +58,114 @@ ...@@ -59,51 +58,114 @@
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row> <el-row :gutter="40" class="panel-group">
<el-form size="small" :inline="true" label-width="100px"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<el-form-item label="客业绩总览" prop="allsumvolume"> <div
<el-input class="card-panel"
v-model="allsumvolume" @click="
placeholder="" checkPermi(['member:user'])
:readonly="true" ? $router.push('/member/member-user')
clearable : $alert($t('暂无权限'))
/> "
</el-form-item> >
<div class="card-panel-icon-wrapper icon-people">
<el-form-item label="海运拼柜" prop="sumvolume1"> <svg-icon icon-class="peoples" class-name="card-panel-icon" />
<el-input </div>
v-model="sumvolume1" <div class="card-panel-description">
placeholder="" <div class="card-panel-text">
:readonly="true" {{ $t("业绩总览") }}
clearable </div>
/> <count-to
</el-form-item> :start-val="0"
:end-val="100"
<el-form-item label="专线空运" prop="sumweight3"> :duration="2600"
<el-input class="card-panel-num"
v-model="sumweight3" />
placeholder="" </div>
:readonly="true" </div>
clearable </el-col>
/> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
</el-form-item> <div
<el-form-item label="成交客户总览" prop="sumCustomerCount"> class="card-panel"
<el-input @click="
v-model="sumCustomerCount" $router.push('/system/internalMessage/my-internal-message?status=0')
placeholder="" "
:readonly="true" >
clearable <div class="card-panel-icon-wrapper icon-message">
/> <svg-icon icon-class="message" class-name="card-panel-icon" />
</el-form-item> </div>
<el-form-item label="首次成交" prop="fisCustomerCount"> <div class="card-panel-description">
<el-input <div class="card-panel-text">
v-model="fisCustomerCount" {{ $t("海运拼柜") }}
placeholder="" </div>
:readonly="true" <count-to
clearable :start-val="0"
/> :end-val="200"
</el-form-item> :duration="3000"
</el-form> class="card-panel-num"
/>
</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"
/>
</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"
/>
</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"
/>
</div>
</div>
</el-col>
</el-row> </el-row>
<div <div
ref="mainBar" ref="mainBar"
...@@ -113,15 +175,19 @@ ...@@ -113,15 +175,19 @@
</div> </div>
</template> </template>
<script> <script>
import UserSelector from "@/components/UserSelector"; import UserSelector from "@/components/UserSelector";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
//自定义目录数样式 //自定义目录数样式
import "@/assets/styles/vue-treeselect.css"; import "@/assets/styles/vue-treeselect.css";
import { listSimpleDepts } from "@/api/system/dept"; import { listSimpleDepts } from "@/api/system/dept";
//报表权限接口 //报表权限接口
import {getCurUserPermission} from "@/api/report/EcwReportPermission"; import { getCurUserPermission } from "@/api/report/EcwReportPermission";
import { SalesReportCount, FirstCustomerCount } from "@/api/report/salesreport"; import {
SalesReportCount,
FirstCustomerCount,
getEChartData,
} from "@/api/report/salesreport";
import * as echarts from "echarts"; import * as echarts from "echarts";
require("echarts/theme/macarons"); require("echarts/theme/macarons");
import resize from "../../dashboard/mixins/resize"; import resize from "../../dashboard/mixins/resize";
...@@ -147,7 +213,7 @@ export default { ...@@ -147,7 +213,7 @@ export default {
}, },
height: { height: {
type: String, type: String,
default: "350px", default: "500px",
}, },
autoResize: { autoResize: {
type: Boolean, type: Boolean,
...@@ -162,6 +228,8 @@ export default { ...@@ -162,6 +228,8 @@ export default {
exportLoading: false, exportLoading: false,
// 显示搜索条件 // 显示搜索条件
showSearch: true, showSearch: true,
showCustomsManage: true,
showDept: true,
chart: null, chart: null,
allsumvolume: undefined, allsumvolume: undefined,
sumvolume1: undefined, sumvolume1: undefined,
...@@ -172,18 +240,41 @@ export default { ...@@ -172,18 +240,41 @@ export default {
queryParams: { queryParams: {
salesmanid: undefined, //销售经理 salesmanid: undefined, //销售经理
deptid: undefined, //部门 deptid: undefined, //部门
sDate: undefined, //开始日期
eDate: undefined, //结束日期
duibiYear: undefined, //对比年份
}, },
deptOptions: [],
deptData: [], deptData: [],
//报表权限信息 //报表权限信息
objEcwReportPermission: {}, objEcwReportPermission: {},
}; };
}, },
watch: {}, watch: {},
mounted() { mounted() {},
this.getSalesReportCount(); created() {
this.getFirstCustomerCount(); //获取当前用户报表权限
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(); this.initChart();
}); });
}, },
...@@ -224,28 +315,177 @@ export default { ...@@ -224,28 +315,177 @@ export default {
this.setOptions(); this.setOptions();
}, },
setOptions() { setOptions() {
this.chart.setOption({ this.loading = true;
xAxis: { getEChartData(this.queryParams).then((response) => {
type: "category", this.chart.setOption({
data: ["Mon1", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], title: {
}, text: "月度业绩分布",
yAxis: {
type: "value",
},
series: [
{
data: [200, 230, 224, 218, 135, 147, 260],
type: "line",
}, },
], legend: {},
grid: {
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true,
},
xAxis: {
type: "value",
boundaryGap: [0, 0.5],
},
yAxis: response.data.objyAxis,
series: response.data.obSseries,
});
}); });
}, },
handleQuery() {}, handleQuery() {},
getList() {}, getList() {},
resetQuery() {}, resetQuery() {
this.queryParams = {
salesmanid: undefined, //销售经理
deptid: undefined, //部门
sDate: undefined, //开始日期
eDate: undefined, //结束日期
duibiYear: undefined, //对比年份
};
},
handleAdd() {}, handleAdd() {},
handleExport() {}, 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> </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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment