qb 3 days ago
parent
commit
ed4f62f3e4
  1. 253
      src/views/distribution/deliverylist/distributionDeliveryList.vue

253
src/views/distribution/deliverylist/distributionDeliveryList.vue

@ -1,29 +1,16 @@
<template> <template>
<basic-container> <basic-container v-loading="pageloading">
<div class="avue-crud"> <div class="avue-crud">
<div v-h5uShow="search"> <div v-h5uShow="search">
<!-- 查询模块 --> <!-- 查询模块 -->
<el-form class="header_search" :model="query"> <el-form class="header_search" :model="query">
<el-form-item label="配送车次:"> <el-form-item label="配送车次:">
<el-input <el-input v-model="query.trainNumbers" placeholder="请输入配送车次" clearable></el-input>
v-model="query.trainNumbers"
placeholder="请输入配送车次"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="配送日期:" class="el-times"> <el-form-item label="配送日期:" class="el-times">
<el-date-picker <el-date-picker class="w100" v-model="Deliverydate" type="daterange" unlink-panels range-separator=""
class="w100" start-placeholder="开始时间" end-placeholder="结束时间" :shortcuts="shortcuts" value-format="YYYY-MM-DD"
v-model="Deliverydate" clearable>
type="daterange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
value-format="YYYY-MM-DD"
clearable
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="配送类型:"> <el-form-item label="配送类型:">
@ -39,36 +26,15 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="配送司机:"> <el-form-item label="配送司机:">
<el-select <el-select class="w100" v-model="query.driverName" filterable placeholder="请输入司机名称" :loading="loading">
class="w100" <el-option v-for="item in driverData" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
v-model="query.driverName"
filterable
placeholder="请输入司机名称"
:loading="loading"
>
<el-option
v-for="item in driverData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="配送车辆:"> <el-form-item label="配送车辆:">
<el-select <el-select class="w100" v-model="query.vehicleName" filterable placeholder="请输入司机名称" :loading="loading">
class="w100" <el-option v-for="item in vehicleData" :key="item.dictKey" :label="item.dictValue"
v-model="query.vehicleName" :value="item.dictValue">
filterable
placeholder="请输入司机名称"
:loading="loading"
>
<el-option
v-for="item in vehicleData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -150,8 +116,7 @@
>批量打印</el-button >批量打印</el-button
> --> > -->
<!-- <el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain> </el-button>--> <!-- <el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain> </el-button>-->
<el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain <el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain>导出
>导出
</el-button> </el-button>
</div> </div>
<!-- 头部右侧按钮模块 --> <!-- 头部右侧按钮模块 -->
@ -165,17 +130,8 @@
</el-row> </el-row>
<el-row> <el-row>
<!-- 列表模块 --> <!-- 列表模块 -->
<tablecmt <tablecmt class="tableNode" :columnList="columnList" :tableData="data" :loading="loading" @inputTxt="inputsc"
class="tableNode" @timeCheck="timesc" @btnCheck="btnsc" @selectCheck="selectsc" @selection="selectionsc">
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionsc"
>
<template #default="slotProps"> <template #default="slotProps">
<el-text @click="editsolt(slotProps.scope)"> </el-text> <el-text @click="editsolt(slotProps.scope)"> </el-text>
<el-text @click="editmap(slotProps.scope)"> </el-text> <el-text @click="editmap(slotProps.scope)"> </el-text>
@ -186,17 +142,9 @@
<div class="avue-crud__pagination flex-c-sb" style="width: 100%"> <div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div> <div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 --> <!-- 分页模块 -->
<el-pagination <el-pagination align="right" background @size-change="sizeChange" @current-change="currentChange"
align="right" :current-page="page.currentPage" :page-sizes="[30, 50, 80, 120, 200]" :page-size="page.pageSize"
background layout="total, sizes, prev, pager, next, jumper" :total="page.total">
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120, 200]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination> </el-pagination>
</div> </div>
</el-row> </el-row>
@ -205,71 +153,31 @@
<el-dialog v-model="dialogVisible" title="增值服务" width="30%" :before-close="handleClose"> <el-dialog v-model="dialogVisible" title="增值服务" width="30%" :before-close="handleClose">
<el-form-item label="增值服务" prop="freightMark"> <el-form-item label="增值服务" prop="freightMark">
<el-checkbox-group v-model="form.addvalueType" @change="handleCheckedCitiesChange"> <el-checkbox-group v-model="form.addvalueType" @change="handleCheckedCitiesChange">
<el-checkbox <el-checkbox style="width: 100%; margin-bottom: 3%" v-for="(item, index) in addvalueServeTypeData"
style="width: 100%; margin-bottom: 3%" :key="item.dictKey" :label="item.dictKey">{{ item.dictValue }}
v-for="(item, index) in addvalueServeTypeData" <span v-if="index === 0 || index === 6 || index === 2 || index === 4">&nbsp;件数:
:key="item.dictKey" <el-input type="number" v-model="item.f" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
:label="item.dictKey" @change="textbox($event, index, 1)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
>{{ item.dictValue }}
<span v-if="index === 0 || index === 6 || index === 2 || index === 4"
>&nbsp;件数:
<el-input
type="number"
v-model="item.f"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 1)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
</span> </span>
<span v-if="index === 1" <span v-if="index === 1">公里:
>公里: <el-input type="primary" v-model="item.a" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
<el-input @change="textbox($event, index, 2)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
type="primary"
v-model="item.a"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 2)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
</span> </span>
<span v-if="index === 3" <span v-if="index === 3">距离:
>距离: <el-input type="number" v-model="item.b" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
<el-input @change="textbox($event, index, 3)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
type="number"
v-model="item.b"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 3)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
</span> </span>
<span v-if="index === 5" <span v-if="index === 5">人数:
>人数: <el-input type="number" v-model="item.c" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
<el-input @change="textbox($event, index, 4)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
type="number"
v-model="item.c"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 4)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
</span> </span>
<span v-if="index === 0" <span v-if="index === 0">楼层:
>楼层: <el-input type="number" v-model="item.d" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
<el-input @change="textbox($event, index, 5)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
type="number"
v-model="item.d"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 5)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
</span> </span>
<span v-if="item" <span v-if="item">预计费用:
>预计费用: <el-input type="number" v-model="item.e" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
<el-input @change="textbox($event, index, 6)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
type="number"
v-model="item.e"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 6)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
</span> </span>
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@ -282,12 +190,8 @@
</template> </template>
</el-dialog> </el-dialog>
</basic-container> </basic-container>
<edittablehead <edittablehead @closce="showdrawer" :drawerShow="drawerShow" :columnList="columnList" v-model="columnList">
@closce="showdrawer" </edittablehead>
:drawerShow="drawerShow"
:columnList="columnList"
v-model="columnList"
></edittablehead>
</template> </template>
<script> <script>
@ -313,7 +217,7 @@ import { getBillLadingExport } from '@/api/distribution/distrilbutionBillLading'
import { downloadXls, getObjType, handleSelectQuery, setNodeHeight } from '@/utils/util'; import { downloadXls, getObjType, handleSelectQuery, setNodeHeight } from '@/utils/util';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { exportExcel } from '@/utils/exportData'; import { exportExcel } from '@/utils/exportData';
import { ElMessage, ElMessageBox } from 'element-plus'
export default { export default {
data() { data() {
return { return {
@ -329,6 +233,7 @@ export default {
// //
loading: true, loading: true,
// //
pageloading: false,
view: false, view: false,
// //
html: '', html: '',
@ -682,20 +587,48 @@ export default {
* 导出 * 导出
* */ * */
handleExportInfo() { handleExportInfo() {
let row = {}; ElMessageBox.confirm(
// if (!!this.ids) { '是否确认导出数据?',
// row.ids = this.ids; '提示',
// } {
const ids = this.selectionList.join(','); confirmButtonText: '确定',
row.ids = ids; cancelButtonText: '取消',
row = { ...row, ...this.query }; type: 'warning',
delete row.deliveryStatusName; }
delete row.kindName; )
// console.log("<><><>>",ids); .then(async () => {
getDeliveryListExport(row).then(res => { try {
// console.log(res.data); this.pageloading = true;
downloadXls(res.data, '全部配送计划数据.xlsx'); let row = {};
}); const ids = this.selectionList.join(',');
row.ids = ids;
row = { ...row, ...this.query };
if (getObjType(this.Deliverydate) === 'array') {
// row.taskTimeArr = this.Deliverydate;
row.taskTimeStart = this.Deliverydate[0];
row.taskTimeEnd = this.Deliverydate[1];
}
delete row.deliveryStatusName;
delete row.kindName;
await getDeliveryListExport(row).then(res => {
downloadXls(res.data, '全部配送计划数据.xlsx');
});
} catch (error) {
console.log(error);
} finally {
this.pageloading = false;
}
})
.catch(() => {
})
}, },
getvehicleData() { getvehicleData() {
return new Promise((rv, rev) => { return new Promise((rv, rev) => {
@ -824,7 +757,7 @@ export default {
.then(_ => { .then(_ => {
done(); done();
}) })
.catch(_ => {}); .catch(_ => { });
}, },
editsolt(scope) { editsolt(scope) {
const { row } = scope; const { row } = scope;
@ -849,12 +782,12 @@ export default {
this.floorList = []; this.floorList = [];
// this.orderInfo = row; // this.orderInfo = row;
}, },
btnsc(index, row) {}, btnsc(index, row) { },
selectsc(index, row) { selectsc(index, row) {
handleSelectQuery(index, row, this.query); handleSelectQuery(index, row, this.query);
this.onLoad(this.page); this.onLoad(this.page);
}, },
timesc(index, row) {}, timesc(index, row) { },
inputsc(index, row) { inputsc(index, row) {
this.query[row.prop] = index; this.query[row.prop] = index;
if (!index) { if (!index) {
@ -1131,6 +1064,7 @@ export default {
.orderInfos { .orderInfos {
display: flex; display: flex;
} }
.order-info { .order-info {
ul { ul {
list-style: none; list-style: none;
@ -1144,10 +1078,12 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
font-weight: 500; font-weight: 500;
img { img {
margin-right: 4px; margin-right: 4px;
} }
} }
li::after { li::after {
content: ''; content: '';
display: block; display: block;
@ -1159,28 +1095,35 @@ export default {
left: 0px; left: 0px;
} }
} }
li:first-child::after { li:first-child::after {
content: none; content: none;
} }
li:first-child { li:first-child {
padding-left: 0; padding-left: 0;
} }
} }
:deep(.el-form-item__content) { :deep(.el-form-item__content) {
width: 140px; width: 140px;
margin-left: 8px !important; margin-left: 8px !important;
} }
.el-btn { .el-btn {
min-width: 200px; min-width: 200px;
margin-right: 0 !important; margin-right: 0 !important;
:deep(.el-form-item__content) { :deep(.el-form-item__content) {
width: 180px; width: 180px;
justify-content: flex-end; justify-content: flex-end;
} }
} }
.el-form-item { .el-form-item {
margin-right: 10px; margin-right: 10px;
} }
// .el-form { // .el-form {
// width: 100%; // width: 100%;
// display: flex; // display: flex;
@ -1190,15 +1133,18 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.el-form-item__content { .el-form-item__content {
height: 30px; height: 30px;
} }
// //
.el-times { .el-times {
:deep(.el-tooltip__trigger) { :deep(.el-tooltip__trigger) {
height: 30px !important; height: 30px !important;
} }
} }
:deep(.avue-crud__header) { :deep(.avue-crud__header) {
.avue-crud__left { .avue-crud__left {
margin-top: 0 !important; margin-top: 0 !important;
@ -1210,14 +1156,17 @@ export default {
height: 100%; height: 100%;
flex-direction: column; flex-direction: column;
} }
:deep(.el-card__body) { :deep(.el-card__body) {
height: 100%; height: 100%;
} }
:deep(.el-card) { :deep(.el-card) {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.el-fy { .el-fy {
flex: 1; flex: 1;
display: flex; display: flex;

Loading…
Cancel
Save