Browse Source

Merge branch 'dev' into pre-production

pre-production
pref_mail@163.com 3 months ago
parent
commit
92af4ae24c
  1. 6
      src/api/storagecost/index.js
  2. 21
      src/components/ArteryPrintTemplateV2/ArteryPrintTemplateV2.vue
  3. 134
      src/option/storagecost/OrderTotalCostDetail.js
  4. 21
      src/option/storagecost/Traincostbreakdown.js
  5. 70
      src/option/storagecost/WarehouseDeliveryCost.js
  6. 22
      src/views/cost/Deliverycostmanagement/OrderTotalCostDetail.vue
  7. 66
      src/views/cost/Deliverycostmanagement/Traincostbreakdown.vue
  8. 20
      src/views/cost/Deliverycostmanagement/WarehouseDeliveryCost.vue
  9. 2
      src/views/waybill/TemporaryStorageList.vue

6
src/api/storagecost/index.js

@ -92,7 +92,7 @@ export const $_WarehouseDeliveryCost = params => {
// 配送-仓库月度配送成本表-导出
export const $_expenseDispatchWarehouseMonth = params => {
return request({
url: '/api/logpm-statisticsdata/expenseDispatchWarehouseMonth/export-expenseDispatchWarehouseMonth',
url: '/api/logpm-statisticsdata/expenseDispatchWarehouseMonth/export',
method: 'get',
params,
responseType: 'blob',
@ -111,7 +111,7 @@ export const $_OrderTotalCostDetail = params => {
// 配送-订单总成本明细表-导出
export const $_expenseDispatchOrderDetail = params => {
return request({
url: '/api/logpm-statisticsdata/expenseDispatchOrderDetail/export-expenseDispatchOrderDetail',
url: '/api/logpm-statisticsdata/expenseDispatchOrderDetail/export',
method: 'get',
params,
responseType: 'blob',
@ -170,7 +170,7 @@ export const $_Traincostbreakdownsubmitpage = params => {
// 配送-车次成本明细-导出
export const $_expenseDispatchTrainDetail = params => {
return request({
url: '/api/logpm-statisticsdata/expenseDispatchTrainDetail/export-expenseDispatchTrainDetail',
url: '/api/logpm-statisticsdata/expenseDispatchTrainDetail/export',
method: 'get',
params,
responseType: 'blob',

21
src/components/ArteryPrintTemplateV2/ArteryPrintTemplateV2.vue

@ -84,15 +84,6 @@
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">卸车件数</th>
<th style="border-bottom: 1px solid #000; border-left: 1px solid #000">异常备注</th>
</tr>
<tr>
<th
style="border-bottom: 1px solid #000; border-left: 1px solid #000"
v-for="item in goodsTitleList"
:key="item"
>
{{ item }}
</th>
</tr>
<!-- -->
<template v-if="orderList.length > 0">
<tr v-for="(value, index) in orderList" style="word-break: break-all">
@ -280,6 +271,18 @@ const InitData = () => {
break;
}
if (!_flag) {
for (let j = _orderList.length - 1; j >= 0; j--) {
const item = _orderList[j];
console.log('j :>> ', j);
if (item.consignee !== val.consignee) continue;
_orderList.splice(j, 0, val);
_flag = true;
break;
}
}
!_flag && _orderList.push(val);
}

134
src/option/storagecost/OrderTotalCostDetail.js

@ -17,7 +17,7 @@ export const columnList = [
{
prop: 'brand',
label: '品牌',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -61,7 +61,7 @@ export const columnList = [
{
prop: 'shippingOrg',
label: '发货单位',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -72,7 +72,7 @@ export const columnList = [
{
prop: 'consigneeOrg',
label: '收货单位',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -83,7 +83,7 @@ export const columnList = [
{
prop: 'waybillType',
label: '运单类型',
type: 3,
type: 1,
values: '',
width: '150',
checkarr: [
@ -100,31 +100,53 @@ export const columnList = [
sortable: true,
head: false,
},
// {
// prop: 'documentCreationTime',
// label: '开单时间',
// type: 4,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
// {
// prop: 'goodsCategories ',
// label: '货物品类',
// type: 2,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
// {
// prop: 'categoryPieceCount',
// label: '品类件数',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
// {
// prop: 'categoryCount',
// label: '品类数',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'documentCreationTime',
label: '开单时间',
type: 4,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'goodsCategories ',
label: '货物品类',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'categoryPieceCount',
label: '品类件数',
prop: 'totalQuantity',
label: '总件数',
type: 1,
values: '',
width: '150',
@ -132,10 +154,11 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'categoryCount',
label: '品类数',
prop: 'reviewNumber',
label: '复核件数',
type: 1,
values: '',
width: '150',
@ -143,10 +166,11 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'totalQuantity',
label: '件数',
prop: 'settlementNumber',
label: '结算件数',
type: 1,
values: '',
width: '150',
@ -154,6 +178,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'totalWeight',
@ -165,6 +190,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'totalVolume',
@ -176,6 +202,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'totalDistributionCost',
@ -187,6 +214,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'distributionCost',
@ -198,6 +226,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'inventoryDistributionCost',
@ -209,6 +238,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'stairCarryingFee',
@ -220,6 +250,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'goodsAllocationCost',
@ -231,6 +262,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'repositioningCost',
@ -242,6 +274,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'handlingCost',
@ -253,6 +286,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'mileageCost',
@ -264,6 +298,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'subsidizedKilometerCost',
@ -275,6 +310,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'excessZoneMileageCost',
@ -286,6 +322,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'locationSubsidyCost',
@ -297,6 +334,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'minimumGuaranteeCost',
@ -308,6 +346,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'fuelCost',
@ -319,6 +358,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'otherCosts',
@ -330,6 +370,19 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'changeAmount',
label: '异动金额',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'deliveryKilometers',
@ -341,6 +394,7 @@ export const columnList = [
fixed: false,
sortable: true,
head: false,
isshowSummary: true,
},
{
prop: 'shipper',
@ -356,7 +410,7 @@ export const columnList = [
{
prop: 'shippingPhone',
label: '发货人手机号',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -367,7 +421,7 @@ export const columnList = [
{
prop: 'shippingAddress',
label: '发货地址',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -378,7 +432,7 @@ export const columnList = [
{
prop: 'arrivalStation',
label: '到站',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -389,7 +443,7 @@ export const columnList = [
{
prop: 'departureWarehouse',
label: '发站仓',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -400,7 +454,7 @@ export const columnList = [
{
prop: 'consignee',
label: '收货人',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -411,7 +465,7 @@ export const columnList = [
{
prop: 'consigneePhone',
label: '收货人手机号',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -422,7 +476,7 @@ export const columnList = [
{
prop: 'consigneeAddress',
label: '收货地址',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],
@ -433,7 +487,7 @@ export const columnList = [
{
prop: 'customerTrip',
label: '客户车次',
type: 2,
type: 1,
values: '',
width: '150',
checkarr: [],

21
src/option/storagecost/Traincostbreakdown.js

@ -17,7 +17,7 @@ export const columnList = [
{
prop: 'deliveryVehicle',
label: '配送车辆',
type: 1,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -28,7 +28,7 @@ export const columnList = [
{
prop: 'distributionModel',
label: '配送车型',
type: 1,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -39,7 +39,7 @@ export const columnList = [
{
prop: 'trainNumber',
label: '车次号',
type: 1,
type: 2,
values: '',
width: '150',
checkarr: [],
@ -50,10 +50,19 @@ export const columnList = [
{
prop: 'settlementStatus',
label: '结算状态',
type: 1,
type: 3,
values: '',
width: '150',
checkarr: [],
checkarr: [
{
label: '已结算',
value: '已结算',
},
{
label: '未结算',
value: '未结算',
},
],
fixed: false,
sortable: true,
head: false,
@ -72,7 +81,7 @@ export const columnList = [
{
prop: 'destinationWarehouse',
label: '目的仓',
type: 1,
type: 2,
values: '',
width: '150',
checkarr: [],

70
src/option/storagecost/WarehouseDeliveryCost.js

@ -26,9 +26,9 @@ export const columnList = [
head: false,
},
{
prop: 'costSettlementTime',
prop: 'settlementTime',
label: '成本结算时间',
type: 4,
type: 6,
values: '',
width: '150',
checkarr: [],
@ -47,28 +47,28 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'distributionPlanQuantity',
label: '计划总数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalOrderQuantity',
label: '订单总数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'distributionPlanQuantity',
// label: '计划总数',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
// {
// prop: 'totalOrderQuantity',
// label: '订单总数',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// head: false,
// },
{
prop: 'plannedTotalQuantity',
label: '计划总件数',
@ -267,6 +267,28 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'changeAmount',
label: '异动金额',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'settlementAmount',
label: '结算金额',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'createUserName',
label: '操作',

22
src/views/cost/Deliverycostmanagement/OrderTotalCostDetail.vue

@ -6,7 +6,7 @@
<el-row v-if="search">
<!-- 查询模块 -->
<el-form :inline="true" :model="queryTop" class="el-fr-d">
<div>
<!-- <div>
<el-form-item label="客户名称">
<el-input v-model="queryTop.region" placeholder="请输入客户名称" />
</el-form-item>
@ -22,7 +22,7 @@
:default-time="defaultTime2"
/>
</el-form-item>
</div>
</div> -->
<!-- 查询按钮 -->
<el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
@ -37,7 +37,10 @@
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" @click="exportExcel"
><el-icon><Plus /></el-icon></el-button
><el-icon><Download /></el-icon></el-button
>
<el-button type="primary" @click="aaa"
><el-icon><Download /></el-icon></el-button
>
</div>
<!-- 头部右侧按钮模块 -->
@ -109,8 +112,7 @@ import {
$_expenseDispatchOrderDetail,
} from '@/api/storagecost/index.js';
import { getDictionaryBiz } from '@/api/system/dict'; //
import { processRowProperty, setNodeHeight } from '@/utils/util';
import functions from '@/utils/functions.js';
import { processRowProperty, setNodeHeight,processRowPropertyName } from '@/utils/util';
import { ElMessageBox, ElMessage } from 'element-plus';
import { downloadXls ,handleClearTableQuery} from '@/utils/util';
import { useStore } from 'vuex';
@ -220,8 +222,8 @@ const showdrawer = _flag => {
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
processRowProperty(index, row, details);
test(details.query);
processRowPropertyName(index, row, details.query);
onLoad()
};
//
const test = val => {};
@ -243,7 +245,7 @@ const btnsc = val => {
};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
processRowProperty(index, row, details);
processRowPropertyName(index, row, details.query);
};
/** 表格表头复选框选择 */
const selectionChange = list => {
@ -252,6 +254,7 @@ const selectionChange = list => {
};
//
const searchChange = () => {
onLoad(queryTop.value);
};
//
@ -378,7 +381,8 @@ const exportExcel = () => {
.el-fr-d {
width: 100%;
display: flex;
justify-content: space-between;
// justify-content: space-between;
justify-content: flex-end;
:deep(.el-btn) {
margin-right: 0;
width: 15%;

66
src/views/cost/Deliverycostmanagement/Traincostbreakdown.vue

@ -5,9 +5,23 @@
<!-- 搜索模块 -->
<el-row v-if="search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-d">
<el-form :inline="true" :model="TopQuery" class="el-fr-d">
<!-- 查询按钮 -->
<el-form-item class="el-btn">
<el-form-item label="配送日期">
<el-date-picker
v-model="TopQuery.time"
type="datetimerange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
:default-time="defaultTime2"
:value-format="'YYYY-MM-DD HH:mm:ss'"
/>
</el-form-item>
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
</el-form-item>
@ -19,9 +33,9 @@
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<!-- <el-button type="primary" @click="exportExcel"
><el-icon><Plus /></el-icon></el-button
> -->
<el-button type="primary" @click="exportExcel"
><el-icon><Download /></el-icon></el-button
>
</div>
<!-- 头部右侧按钮模块 -->
<div class="avue-crud__right">
@ -217,7 +231,12 @@
import { ref, reactive, toRefs, computed, onMounted, nextTick, watch } from 'vue';
import { columnList, AbnormalrecordcolumnList } from '@/option/storagecost/Traincostbreakdown.js';
import { getDictionaryBiz } from '@/api/system/dict'; //
import { processRowProperty, setNodeHeight } from '@/utils/util';
import {
processRowProperty,
setNodeHeight,
processRowPropertyName,
handleClearTableQuery,
} from '@/utils/util';
import {
$_getMyWarehouseList,
$_Traincostbreakdown,
@ -233,6 +252,7 @@ import dayjs from 'dayjs';
const $router = useRouter(); //
const $useStore = useStore(); //
const $route = useRoute(); //
const TopQuery = ref({});
//
const Abnormaladjustment = ref({
dialogVisible: false,
@ -259,6 +279,7 @@ const details = reactive({
/** 表格搜索条件 */
query: {},
/** 时间快捷选择设置 */
defaultTime2: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)], // '12:00:00', '08:00:00'
shortcuts: [
{
text: '最近一周',
@ -344,6 +365,7 @@ const {
selectionList,
drawerShow,
page,
defaultTime2,
pageyd,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
@ -358,8 +380,8 @@ const showdrawer = _flag => {
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
processRowProperty(index, row, details);
test(details.query);
processRowPropertyName(index, row, details.query);
onLoad();
};
//
const test = val => {};
@ -381,16 +403,34 @@ const btnsc = val => {
};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
processRowProperty(index, row, details);
processRowPropertyName(index, row, details.query);
onLoad();
};
/** 表格表头复选框选择 */
const selectionChange = list => {
console.log(list);
details.selectionList = list;
};
const TopSearch = () => {
if (TopQuery.value.time?.length) {
details.query.deliveryDateStart = TopQuery.value.time[0]; //
details.query.deliveryDateEnd = TopQuery.value.time[1]; //
} else {
delete details.query.deliveryDateStart;
delete details.query.deliveryDateEnd;
}
};
//
const searchChange = () => {
details.search = false; //
onLoad();
};
//
const searchReset = () => {
details.query = {};
TopQuery.value = {};
details.page.currentPage = 1;
handleClearTableQuery(details.columnList);
onLoad();
};
//
const sizeChange = val => {
@ -435,10 +475,14 @@ function updateDictionary(targetArray, dictionaryType) {
});
}
//
const onLoad = value => {
const onLoad = async value => {
console.log($route, 'route');
await TopSearch(); //
let data = {
current: details.page.currentPage,
size: details.page.pageSize,
...$route.query,
...details.query,
...value,
};
@ -481,7 +525,7 @@ const exportExcel = () => {
console.log(data, '要提交的数据');
$_expenseDispatchTrainDetail(data).then(res => {
details.loadingObj.list = false;
downloadXls(res.data, `次成本明细.xlsx`);
downloadXls(res.data, `辆成本结算明细.xlsx`);
ElMessage({
message: '导出成功',
type: 'success',

20
src/views/cost/Deliverycostmanagement/WarehouseDeliveryCost.vue

@ -62,7 +62,7 @@
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" @click="exportExcel"
><el-icon><Plus /></el-icon></el-button
><el-icon><Download /></el-icon></el-button
>
</div>
<!-- 头部右侧按钮模块 -->
@ -89,6 +89,11 @@
@selection="selectionChange"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '成本结算时间'">
<el-text class="el_textBtn" @click="ViewDetailsRow(slotProps.scope.row)">
{{ slotProps.scope.row.settlementTime }}
</el-text>
</template>
<template v-if="slotProps.scope.column.label === '操作'">
<div class="ElBtnClass">
<el-button type="primary">编辑</el-button>
@ -142,7 +147,6 @@ import { ElMessageBox, ElMessage } from 'element-plus';
import { downloadXls } from '@/utils/util';
import { useStore } from 'vuex';
import dayjs from 'dayjs';
import error from '@/error';
const $router = useRouter(); //
const $useStore = useStore(); //
const $route = useRoute(); //
@ -411,6 +415,18 @@ const searchReset = () => {
details.query = {};
onLoad();
};
//
const ViewDetailsRow=(row)=>{
$router.push({
path: '/cost/Deliverycostmanagement/Traincostbreakdown',
query: {
destinationWarehouse:row.destinationWarehouse,
settlementStatus:'已结算',
settlementYear:row.settlementYear,//
settlementMonth:row.settlementMonth,//
}
})
}
</script>
<style scoped lang="scss">

2
src/views/waybill/TemporaryStorageList.vue

@ -383,9 +383,9 @@
:append-to-body="false"
class="el-dialog-UploadBatch"
title="批量开标签导入"
:visible.sync="details.popUpShow.UploadBatch"
:width="details.orderStatus !== 'haveData' || details.ouPaiChooseType !== 0 ? '70%' : '40%'"
v-model="details.popUpShow.UploadBatch"
destroy-on-close
>
<!-- 选择导入类型 -->
<div v-loading="details.loadingObj.UploadLoadong" element-loading-text="数据处理中...">

Loading…
Cancel
Save