Commit b383e324 authored by liuzeheng's avatar liuzeheng

Merge branch 'dev'

# Conflicts:
#	src/i18n/languages/zh_CN.json
#	src/views/ecw/order/feeApplication.vue
parents 39f4974a 7d155129
......@@ -1056,3 +1056,11 @@ export function getOrderWarehouseDeleted(orderId,orderItem){
})
}
export function getRegionList(type,regionId){
return request({
url:'/ecw/warehouse/getRegionList?type='+type+'&regionId='+regionId,
method: 'get',
})
}
\ No newline at end of file
......@@ -159,3 +159,13 @@ export function batchAddPriceAir(data) {
data
})
}
//从商品列表中某一商品进入复制价格
export function copyPriceByProductIds(data){
return request({
url:'/ecw/product-price/copyPriceByProductIds',
method:'post',
data:data
})
}
import request from '@/utils/request'
//报表权限 lanbm 2024-04-15 add
export function create(data) {
return request({
url: '/Report/EcwReportPermission/create',
method: 'post',
data: data
})
}
export function update(data) {
return request({
url: '/Report/EcwReportPermission/update',
method: 'post',
data: data
})
}
export function del(id) {
return request({
url: '/Report/EcwReportPermission/delete?id=' + id,
method: 'get'
})
}
export function getModel(id) {
return request({
url: '/Report/EcwReportPermission/get?id=' + id,
method: 'get'
})
}
//获取当前用户的报表权限 lanbm 2024-05-15 add
export function getCurUserPermission() {
return request({
url: '/Report/EcwReportPermission/getCurUserPermission',
method: 'get'
})
}
export function getPageList(query) {
return request({
url: '/Report/EcwReportPermission/page',
method: 'get',
params: query
})
}
export function exportExcel(query) {
return request({
url: '/Report/EcwReportPermission/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
//lanbm 2024-04-19 add
//获取指定部门的子部门
export function getDeptChild(query) {
return request({
url: '/Report/SysDeptEx/getDeptChild',
method: 'get',
params: query
})
}
//根据部门过滤客户经理 2024-04-27
export function listServiceUser(query) {
return request({
url: '/Report/SysDeptEx/listServiceUser',
method: 'get',
params: query
})
}
import request from '@/utils/request'
// 获得测试分页
export function getListPage(data) {
return request({
url: '/Report/CustomerAnalysis/getListPage',
method: 'post',
data
})
}
// 导出测试 Excel -2024-04-27
export function exportExcel(data) {
return request({
url: '/Report/CustomerAnalysis/exportExcel',
method: 'get',
params: data,
responseType: 'blob'
})
}
import request from '@/utils/request'
//lanbm 2024-03-31 add
//获取报表统计结果
export function getReportResult(data) {
return request({
url: '/Report/CustomerReport/getPageList',
method: 'post',
data
})
}
export function getBarData(data) {
return request({
url: '/Report/CustomerReport/getBarData',
method: 'post',
data: data
})
}
// 导出测试 Excel 2024-04-27
export function exportExcel(query) {
return request({
url: '/Report/CustomerReport/exportExcel',
method: 'get',
params: query,
responseType: 'blob'
})
}
import request from '@/utils/request'
export function getListPage(query) {
return request({
url: '/Report/SalesAnalysis/getListPage',
method: 'get',
params: query
})
}
//销售分析数据导出 Excel 2024-04-27
export function exportExcel(query) {
return request({
url: '/Report/SalesAnalysis/exportExcel',
method: 'get',
params: query,
responseType: 'blob'
})
}
import request from '@/utils/request'
//查询运输方式体积货重量 lanbm 2024-04-01 add
export function SalesReportCount(data) {
return request({
url: '/Report/SalesReport/SalesReportCount',
method: 'post',
data: data
})
}
//查询首次成交客户数量 lanbm 2024-04-01 add
export function FirstCustomerCount(data) {
return request({
url: '/Report/SalesReport/FirstCustomerCount',
method: 'post',
data: data
})
}
//销售分析统计列表 lanbm 2024-04-01 add
export function SalesReportList(data) {
return request({
url: '/Report/SalesReport/SalesReportList',
method: 'post',
data: data
})
}
// 导出测试 Excel 2024-04-27
export function exportTestExcel(query) {
return request({
url: '/SalesReport/test/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
import request from '@/utils/request'
//报表V值设置参数 lanbm 2024-04-03 add
export function create(data) {
return request({
url: '/ecwVz/vz/create',
method: 'post',
data: data
})
}
export function update(data) {
return request({
url: '/ecwVz/vz/update',
method: 'post',
data: data
})
}
export function del(id) {
return request({
url: '/ecwVz/vz/delete?id=' + id,
method: 'get'
})
}
export function getModel(id) {
return request({
url: '/ecwVz/vz/get?id=' + id,
method: 'get'
})
}
//2024-04-27
export function getPageList(query) {
return request({
url: '/ecwVz/vz/page',
method: 'get',
params: query
})
}
export function exportExcel(query) {
return request({
url: '/ecwVz/vz/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
This diff is collapsed.
<template>
<el-row :gutter="40" class="panel-group" v-if="data">
<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="data.memberCount" :duration="2600" 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('/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="data.messageCount" :duration="3000" 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('/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="data.messageCount" :duration="3000" 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="todoCount" :duration="3200" 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('/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="data.messageCount" :duration="3600" class="card-panel-num" />
</div>
</div>
</el-col>
</el-row>
</template>
<script>
import CountTo from 'vue-count-to'
import {panelData} from '@/api/system/pannel'
import {checkPermi} from '@/utils/permission'
import {taskTodoCount} from '@/api/bpm/task'
export default {
components: {
CountTo
},
props:['data1', 'data2'],
data(){
return {
data: null,
todoCount: 0
}
},
methods: {
handleSetLineChartData(type) {
this.$emit('handleSetLineChartData', type)
},
checkPermi
},
created(){
panelData().then(res => {
this.data = res.data
})
taskTodoCount().then(res => {
this.todoCount = res.data
})
}
}
</script>
<style lang="scss" scoped>
.panel-group {
margin-top: 5px;
.card-panel-col {
margin-bottom: 8px;
}
.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, .05);
border-color: rgba(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: 5px;
transition: all 0.38s ease-out;
border-radius: 6px;
}
.card-panel-icon {
font-size: 48px;
}
.card-panel-description {
font-weight: bold;
margin: 5px;
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>
......@@ -232,7 +232,7 @@ import updateError from "./updateError.vue";
import { listUser } from "@/api/system/user";
export default {
name: "boxDetail",
name: "EcwBoxQuery",
props: {
shipmentId: String,
},
......
......@@ -176,6 +176,8 @@
<el-button :disabled="scope.row.isInOpenSea" v-has-permi="[selectAuthorityFn('ecw:customer:postpone')]" size="mini" type="text" icon="el-icon-user" @click="delay(scope.row)">{{$t('延期')}}</el-button>
<el-button v-has-permi="['ecw:customer:treat-recovery']" v-if="scope.row.customerService !== null && scope.row.customerServiceAssignedTime !== null && !scope.row.isCustomerServiceConfirmed && !scope.row.isInOpenSea && path === '/customer/customer'" size="mini" type="text" @click="recovery(scope.row)" > {{$t('回收客户')}} </el-button>
<el-button v-has-permi="['ecw:customer:performanceType']" v-if="path === '/customer/customer'" size="mini" type="text" @click="dialogVisible = true; customData = scope.row;currentisNew = scope.row.isNew" > {{$t('业绩类型')}} </el-button>
<el-button v-has-permi="[selectAuthorityFn('ecw:customer:treat-quoted-price')]" size="mini" type="text" icon="el-icon-user" @click="quote(scope.row)">{{$t('报价')}}</el-button>
</template>
</el-table-column>
</el-table>
......@@ -786,6 +788,16 @@ export default {
this.$refs.CustomerFollowList.customerFollow.dialogVisible = true;
})
},
//报价
quote(row){
//this.$router.push({path:'/offer/create',query:{id:row.id}})
this.$router.push({path:'/offer/create' , query:{customer:row,type:1}}).then({
//this.$refs.push({path:'/customer-contacts/select',query:{pageNo:1,pageSize:10,searchKey:row.defaultContactPhone}})
})
},
/** 查询列表 */
getList() {
this.loading = true;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -31,7 +31,7 @@
</el-form-item>
<el-form-item :label="$t('订单状态')" prop="status">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status"
@keyup.enter.native="handleQuery" clearable />
@keyup.enter.native="handleQuery" clearable @change="handleQuery" />
</el-form-item>
<el-form-item :label="$t('提单号')" prop="tidanNo">
<el-input v-model="queryParams.tidanNo" :placeholder="$t('提单号')" clearable @keyup.enter.native="handleQuery" />
......@@ -58,7 +58,7 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('订单类型')" prop="number">
<el-select v-model="queryParams.type" :placeholder="$t('请选择')" clearable >
<el-select v-model="queryParams.type" :placeholder="$t('请选择')" clearable @change="handleQuery" >
<el-option :label="$t('普通订单')" :value="0"></el-option>
<el-option :label="$t('集运服务')" :value="1"></el-option>
<el-option :label="$t('海外仓')" :value="2"></el-option>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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