Browse Source

Merge branch 'dev' into pre-production

pre-production
pref_mail@163.com 4 days ago
parent
commit
dba64d90d6
  1. 6
      src/api/waybill/orderPackageListDetails.js
  2. 12
      src/option/reportforms/CreateOrderTimelinessRatioReport.js
  3. 2
      src/option/reportforms/Mainlinedeliverydetails.js
  4. 154
      src/option/reportforms/PackageTransferTimePageReport.js
  5. 3
      src/views/aftersales/aftersalesWorkOrderend.vue
  6. 10
      src/views/distribution/artery/VehicleStowageZeroLoading.vue
  7. 1
      src/views/distribution/artery/directGoMarketDetails.vue
  8. 4
      src/views/distribution/artery/truckLoadingDetails.vue
  9. 4
      src/views/distribution/deliverylist/distributionDeliveryListedt.vue
  10. 13
      src/views/distribution/inventory/CreateOrder.vue
  11. 4
      src/views/distribution/inventory/delivery/Unstoreddetails.vue
  12. 4
      src/views/distribution/signfor/distributionSignfortreat.vue
  13. 33
      src/views/reportforms/CreateOrderTimelinessRatioReport.vue
  14. 21
      src/views/reportforms/PackageTransferTimePageReport.vue
  15. 4
      src/views/warehouse/prewarehousing/PreStoragePackage.vue
  16. 13
      src/views/waybill/CreateZeroOrder.vue
  17. 4
      src/views/waybill/orderPackageList.vue
  18. 4
      src/views/waybill/orderPackageListDetails.vue
  19. 4
      src/views/waybill/orderPackageListDetailsByMarket.vue
  20. 39
      src/views/wel/bulletinboard/bulletinboard.vue

6
src/api/waybill/orderPackageListDetails.js

@ -51,11 +51,11 @@ export const postIncomingPackageByBussiness = data => {
/**
* 获取二维码
*/
export const getShowAdvancePackgeCode = params => {
export const getShowAdvancePackgeCode = data => {
return request({
url: '/api/logpm-trunkline/advanceDetail/showAdvancePackgeCode',
method: 'get',
params,
method: 'post',
data,
});
};

12
src/option/reportforms/CreateOrderTimelinessRatioReport.js

@ -650,6 +650,18 @@ export const columnListDetails = [
head: false,
isshowSummary: false, //开启统计
},
{
prop: 'incomingTime',
label: '入库时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
isshowSummary: false, //开启统计
},
{
prop: 'waybillStatusName',
label: '是否开单',

2
src/option/reportforms/Mainlinedeliverydetails.js

@ -322,7 +322,7 @@ export const columnList = [
{
prop: 'createUserName',
label: '创建人',
type: 1,
type:1,
values: '',
width: '150',
checkarr: [],

154
src/option/reportforms/PackageTransferTimePageReport.js

@ -163,3 +163,157 @@ export const columnList = [
head: false,
},
];
export const columnListByZero = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'businessLine',
label: '事业线',
type: 1,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'departureWarehouseName',
label: '始发仓',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'destinationWarehouseName',
label: '目的仓',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'warehouseName',
label: '中转仓',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'brand',
label: '品牌',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'incomingNum',
label: '中转入库件数',
type: 6,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
isshowSummary: true, //开启统计
},
{
prop: 'outNum',
label: '中转出库件数',
type: 6,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
isshowSummary: true, //开启统计
},
{
prop: 'noOutNum',
label: '未出库件数',
type: 6,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
isshowSummary: true, //开启统计
},
{
prop: 'outOnTimeNum',
label: '中转准时出库件数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
isshowSummary: true, //开启统计
},
{
prop: 'outOnTimeRate',
label: '中转准时出库率',
type: 6,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'avgTime',
label: '平均中转时效(小时)',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'hoursTime',
label: '标准时效(小时)',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
];

3
src/views/aftersales/aftersalesWorkOrderend.vue

@ -190,7 +190,8 @@
</div>
<div class="maxBox" style="flex: 1">
<span class="title">说明:</span>
<el-input v-model="item.description" placeholder="请输入说明 " clearable :rows="2" disabled />
<el-input type="textarea"
:autosize="{ minRows: 1, maxRows: 10 }" v-model="item.description" placeholder="请输入说明 " clearable :rows="2" disabled />
</div>
</div>
</div>

10
src/views/distribution/artery/VehicleStowageZeroLoading.vue

@ -574,7 +574,7 @@ const handleZeroLoad = async ({ row }, type) => {
for (let i = 0; i < details.zeroItem.zeroPackageList.length; i++) {
const item = details.zeroItem.zeroPackageList[i];
item.enterNum = item.loadingNum || item.stockNum || 0;
item.enterNum = item.loadingNum || 0;
item.maxNum = (item.loadingNum || 0) + (item.stockNum || 0);
console.log('item :>> ', item);
@ -586,9 +586,6 @@ const handleZeroLoad = async ({ row }, type) => {
/** 卸车 -- 零担 -- 提交 */
const handleZeroUnLoadSubmit = async () => {
try {
details.popUpShow.transferVisited = false;
details.loadingObj.pageLoading = true;
// let res: any = {};
const submitData = {
@ -610,6 +607,11 @@ const handleZeroUnLoadSubmit = async () => {
submitData.enterNum = _loadingNum;
if (submitData.enterNum === 0) return ElMessage.warning('装车总数为零,请填写需要装车的数据');
else if (submitData.enterNum > details.zeroItem.planNum)
return ElMessage.warning('总装车数大于计划处,请调整');
details.popUpShow.transferVisited = false;
details.loadingObj.pageLoading = true;
const res = await postLoadingZero(submitData);

1
src/views/distribution/artery/directGoMarketDetails.vue

@ -353,7 +353,6 @@
style="width: 100%"
:precision="0"
:max="details.zeroItem.num"
readonly
:controls="false"
v-model="details.zeroItem.enterNum"
/>

4
src/views/distribution/artery/truckLoadingDetails.vue

@ -1328,7 +1328,7 @@ const printOrder = async ({ row }) => {
details.loadingObj.pageLoading = true;
let qr = {
orderPackageCodes: row.scanCode,
orderPackageCodes: [row.scanCode],
};
details.html = '';
@ -1404,7 +1404,7 @@ const handleBatchBarcode = async () => {
_arr.length > 0 &&
_promiseArr.push(
getShowAdvancePackgeCode({
orderPackageCodes: _arr.map(val => val.scanCode).join(','),
orderPackageCodes: _arr.map(val => val.scanCode),
}).then(res => {
const { code, data } = res.data;
if (code !== 200 || getObjType(data.moldList) !== 'array') return;

4
src/views/distribution/deliverylist/distributionDeliveryListedt.vue

@ -156,7 +156,7 @@
icon="el-icon-view"
@click="viewAbnormalLoading(slotProps.scope.row)"
v-if="slotProps.scope.row.isHaveAbnormalPackage == '2'"
>异常审核
>异常记录
</el-text>
<el-text
@ -825,7 +825,7 @@
<MyPrint :html="html" v-model="dialogVisibleF" width="70%"></MyPrint>
<el-dialog
title="异常包件列表"
title="异常记录"
v-model="abnormalBox"
width="67%"
append-to-body

13
src/views/distribution/inventory/CreateOrder.vue

@ -3882,6 +3882,19 @@ const handleSubmit = (formEl: FormInstance | undefined) => {
val.deliveryPrice = !isNumber(val.deliveryPrice) ? 0 : val.deliveryPrice;
val.pickupPrice = !isNumber(val.pickupPrice) ? 0 : val.pickupPrice;
val.subtotalFreight = !isNumber(val.subtotalFreight) ? 0 : val.subtotalFreight;
if (val.chargeType === 2 && val.volume === 0) {
return ElMessage({
message: '请填写方数',
type: 'warning',
});
}
if (val.chargeType === 3 && val.weight === 0) {
return ElMessage({
message: '请填写重量',
type: 'warning',
});
}
}
// if (!(details.query.totalFreight > 0)) {

4
src/views/distribution/inventory/delivery/Unstoreddetails.vue

@ -438,7 +438,7 @@ const printOrder = async row => {
details.loadingObj.list = true;
details.html = '';
let qr = {
orderPackageCodes: row.orderPackageCode,
orderPackageCodes: [row.orderPackageCode],
};
const res = await getShowAdvancePackgeCode(qr);
const { code, data } = res.data;
@ -463,7 +463,7 @@ const handleBatchBarcode = async () => {
details.loadingObj.list = true;
let qr = {
orderPackageCodes: details.selectionList.map(val => val.orderPackageCode).join(','),
orderPackageCodes: details.selectionList.map(val => val.orderPackageCode),
};
const res = await getShowAdvancePackgeCode(qr);

4
src/views/distribution/signfor/distributionSignfortreat.vue

@ -162,7 +162,7 @@
size="small"
v-if="slotProps.scope.row.abnormalLoadedNumber > 0"
@click="viewAbnormalLoading(slotProps.scope)"
> </el-text
> </el-text
>
<!-- v-if="
slotProps.scope.row.sijiSigningStatus == '司机已签收' &&
@ -478,7 +478,7 @@
v-model="columnList"
></edittablehead>
<el-dialog
title="异常装车包件列表"
title="异常记录"
v-model="abnormalBox"
width="50%"
:before-close="beforeClose"

33
src/views/reportforms/CreateOrderTimelinessRatioReport.vue

@ -86,6 +86,7 @@
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" icon="Download" @click="ExportData"> 导出 </el-button>
<el-button type="primary" icon="Download" @click="ExportDetailData"> 明细导出 </el-button>
</div>
<!-- 头部右侧按钮模块 -->
<div class="avue-crud__right">
@ -162,6 +163,7 @@ import { postFindbusinessLine } from '@/api/reportforms/SalesDepartmentIncomeRep
import {
postOpenTimePage,
postOpenTimeExport,
postOpenTimeDetailExport,
} from '@/api/reportforms/CreateOrderTimelinessRatioReport';
import { getListName } from '@/api/basicdata/basicdataVehicle';
import {
@ -488,6 +490,37 @@ const ExportData = async () => {
}
};
//
const ExportDetailData = async () => {
try {
details.loadingObj.list = true;
const submitData: any = {};
//
if (getObjType(details.query.timeArr) === 'array' && details.query.timeArr.length > 0) {
submitData.startTimeStr = details.query.timeArr[0];
submitData.endTimeStr = details.query.timeArr[1];
const start = new Date(submitData.startTimeStr).getTime();
const end = new Date(submitData.endTimeStr).getTime();
if (end - start + 1000 * 60 * 60 * 24 > 1000 * 60 * 60 * 24 * 31)
return ElMessage.warning('时间不能大于31天');
}
const res = await postOpenTimeDetailExport(submitData);
const { status, data } = res;
if (status !== 200) return;
const time = new Date().getTime();
downloadXls(data, '开单及时率报表 -' + time + '.xlsx');
} catch (error) {
console.log('error :>> ', error);
} finally {
details.loadingObj.list = false;
}
};
/** 跳转详情 */
const handleJumpDetail = (row, column) => {
if (!row[column.property]) return;

21
src/views/reportforms/PackageTransferTimePageReport.vue

@ -173,8 +173,9 @@
<el-tab-pane label="零担" name="zero">
<!-- 列表模块 -->
<tablecmt
columnListName="columnListByZero"
ref="tableNodeRef2"
:columnList="details.columnList"
:columnList="details.columnListByZero"
:tableData="details.data"
@inputTxt="inputsc"
@timeCheck="timesc"
@ -192,7 +193,6 @@
</tablecmt>
</el-tab-pane>
</el-tabs>
<!-- 分页模块 -->
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
@ -219,6 +219,14 @@
:columnList="details.columnList"
v-model="details.columnList"
></edittablehead>
<edittablehead
columnListName="columnListByZero"
@closce="showdrawerByZero"
:drawerShow="details.drawerShowByZero"
:columnList="details.columnListByZero"
v-model="details.columnListByZero"
></edittablehead>
</template>
<script setup lang="ts">
@ -252,7 +260,7 @@ import {
} from '@/utils/util';
import { useRouter } from 'vue-router';
import { ElMessage, ElMessageBox } from 'element-plus';
import { columnList } from '@/option/reportforms/PackageTransferTimePageReport';
import { columnList, columnListByZero } from '@/option/reportforms/PackageTransferTimePageReport';
//
const $router = useRouter();
@ -298,6 +306,7 @@ const details = reactive<any>({
},
],
columnList: deepClone(columnList),
columnListByZero: deepClone(columnListByZero),
data: [],
/** 头部搜索配置 */
titleSearchOption: [],
@ -313,6 +322,7 @@ const details = reactive<any>({
selectionList: [],
/** 是否显示设置表格 */
drawerShow: false,
drawerShowByZero: false,
/** 分页参数 */
page: {
pageNum: 1,
@ -466,6 +476,11 @@ const showdrawer = (_flag?: boolean) => {
details.drawerShow = _flag;
};
/** 展开列表控件 */
const showdrawerByZero = (_flag?: boolean) => {
details.drawerShowByZero = _flag;
};
/** 是否开启搜索区 */
const searchHide = () => {
details.search = !details.search;

4
src/views/warehouse/prewarehousing/PreStoragePackage.vue

@ -353,7 +353,7 @@ const handleShowQrCode = async ({ row }) => {
details.loadingObj.pageLoading = true;
let qr = {
orderPackageCodes: row.orderPackageCode,
orderPackageCodes: [row.orderPackageCode],
};
details.html = '';
const res = await getShowAdvancePackgeCode(qr);
@ -393,7 +393,7 @@ const handleBatchShowQrCode = async () => {
});
// return
let qr = {
orderPackageCodes: checkcode.join(','),
orderPackageCodes: checkcode,
};
details.html = '';
const res = await getShowAdvancePackgeCode(qr);

13
src/views/waybill/CreateZeroOrder.vue

@ -2981,6 +2981,19 @@ const handleSubmit = async (formEl: FormInstance | undefined) => {
val.deliveryPrice = !isNumber(val.deliveryPrice) ? 0 : val.deliveryPrice;
val.pickupPrice = !isNumber(val.pickupPrice) ? 0 : val.pickupPrice;
val.subtotalFreight = !isNumber(val.subtotalFreight) ? 0 : val.subtotalFreight;
if (val.chargeType === 2 && val.volume === 0) {
return ElMessage({
message: '请填写方数',
type: 'warning',
});
}
if (val.chargeType === 3 && val.weight === 0) {
return ElMessage({
message: '请填写重量',
type: 'warning',
});
}
}
// if (!(details.query.totalFreight > 0)) return ElMessage.warning('');

4
src/views/waybill/orderPackageList.vue

@ -847,7 +847,7 @@ const handleBatchBarcode = async () => {
details.loadingObj.pageLoading = true;
let qr = {
orderPackageCodes: details.selectionList.map(val => val.orderPackageCode).join(','),
orderPackageCodes: details.selectionList.map(val => val.orderPackageCode),
};
details.html = '';
@ -878,7 +878,7 @@ const printOrder = async ({ row }) => {
details.loadingObj.pageLoading = true;
details.html = '';
let qr = {
orderPackageCodes: row.orderPackageCode,
orderPackageCodes: [row.orderPackageCode],
};
const res = await getShowAdvancePackgeCode(qr);
const { code, data } = res.data;

4
src/views/waybill/orderPackageListDetails.vue

@ -739,7 +739,7 @@ const printOrder = async ({ row }) => {
details.loadingObj.pageLoading = true;
details.html = '';
let qr = {
orderPackageCodes: row.orderPackageCode,
orderPackageCodes: [row.orderPackageCode],
};
const res = await getShowAdvancePackgeCode(qr);
const { code, data } = res.data;
@ -907,7 +907,7 @@ const handleBatchBarcode = async () => {
details.loadingObj.pageLoading = true;
let qr = {
orderPackageCodes: details.selectionList.map(val => val.orderPackageCode).join(','),
orderPackageCodes: details.selectionList.map(val => val.orderPackageCode),
};
const res = await getShowAdvancePackgeCode(qr);

4
src/views/waybill/orderPackageListDetailsByMarket.vue

@ -717,7 +717,7 @@ const printOrder = async ({ row }) => {
details.loadingObj.pageLoading = true;
details.html = '';
let qr = {
orderPackageCodes: row.orderPackageCode,
orderPackageCodes: [row.orderPackageCode],
};
const res = await getShowAdvancePackgeCode(qr);
const { code, data } = res.data;
@ -886,7 +886,7 @@ const handleBatchBarcode = async () => {
details.loadingObj.pageLoading = true;
let qr = {
orderPackageCodes: details.selectionList.map(val => val.orderPackageCode).join(','),
orderPackageCodes: details.selectionList.map(val => val.orderPackageCode),
};
const res = await getShowAdvancePackgeCode(qr);

39
src/views/wel/bulletinboard/bulletinboard.vue

@ -5,33 +5,23 @@
<transition name="slide">
<div class="announcement-board" v-if="isShow">
<div class="announcement-content" v-loading="loading">
<div
class="announcement-item"
v-for="(item, index) in announcements"
:key="item.id"
@click="showDetails(item, index)"
>
<div class="announcement-item" v-for="(item, index) in announcements" :key="item.id"
@click="showDetails(item, index)">
<span v-if="isToday(item.releaseTime)" class="red-dot"></span>
<h2>{{ item.title }}</h2>
<p class="date">时间:{{ item.releaseTime }}</p>
</div>
<el-empty description="暂无公告通知" v-if="!announcements.length" />
<el-empty description="暂无公告通知" v-if="!announcements?.length" />
</div>
<div class="footer">
<span>消息数: {{ announcements.length }}</span>
<span>消息数: {{ announcements?.length || 0 }}</span>
</div>
</div>
</transition>
<el-dialog
v-model="centerDialogVisible"
:title="currentAnnouncement.title"
width="60%"
center
style="min-height: 500px"
class="el_announcement"
>
<el-dialog v-model="centerDialogVisible" :title="currentAnnouncement.title" width="60%" center
style="min-height: 500px" class="el_announcement">
<p>
<span class="time">时间: {{ currentAnnouncement.releaseTime }}</span> <br />
<span class="category">分类{{ currentAnnouncement.categoryName }}</span>
@ -39,11 +29,13 @@
<div v-html="currentAnnouncement.content" class="content"></div>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="Previous"
><el-icon><DArrowLeft /></el-icon>
<el-button type="primary" @click="Previous"><el-icon>
<DArrowLeft />
</el-icon>
</el-button>
<el-button type="primary" @click="next"
>下一条<el-icon><DArrowRight /></el-icon>
<el-button type="primary" @click="next">下一条<el-icon>
<DArrowRight />
</el-icon>
</el-button>
</div>
</template>
@ -172,6 +164,7 @@ const toggleAnnouncements = () => {
border-radius: 8px;
overflow: hidden;
position: relative;
.announcement-content {
padding: 0 10px;
height: 450px;
@ -219,6 +212,7 @@ const toggleAnnouncements = () => {
.content {
display: flex;
align-items: center;
p {
font-size: 14px;
color: #555;
@ -230,6 +224,7 @@ const toggleAnnouncements = () => {
white-space: nowrap; //
}
}
.date {
font-size: 12px;
color: #999;
@ -241,6 +236,7 @@ const toggleAnnouncements = () => {
/* 响应式设计 */
@media (max-width: 768px) {
.el_top,
.announcement-board {
width: 90%;
@ -288,16 +284,19 @@ const toggleAnnouncements = () => {
display: flex;
justify-content: space-evenly;
transform: translate(-56%, 0);
button {
width: 150px;
height: 50px;
margin: 0;
}
}
.footer {
display: flex;
justify-content: flex-end;
padding-right: 6px;
span {
display: flex;
border: 1px solid;

Loading…
Cancel
Save