|
|
|
<template>
|
|
|
|
<basic-container class="basic-container">
|
|
|
|
<div class="avue-crud">
|
|
|
|
<el-row v-if="!search">
|
|
|
|
<!-- 查询模块 -->
|
|
|
|
<el-form :inline="true" :model="query" class="fr-fm">
|
|
|
|
<div class="el-tb">
|
|
|
|
<el-form-item label="配送车次:">
|
|
|
|
<el-input v-model="query.trainNumber" placeholder="请输入配送车次"></el-input>
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="配送日期:" class="el-times">
|
|
|
|
<el-date-picker v-model="query.taskTime" type="date" placeholder="选择日期">
|
|
|
|
</el-date-picker>
|
|
|
|
</el-form-item>
|
|
|
|
<!-- <el-form-item label="配送类型:">-->
|
|
|
|
<!-- <el-select v-model="query.businessType" placeholder="请选择业务类型">-->
|
|
|
|
<!-- <el-option-->
|
|
|
|
<!-- :key="'1'"-->
|
|
|
|
<!-- :value="'商配'">商配-->
|
|
|
|
<!-- </el-option>-->
|
|
|
|
<!-- <el-option-->
|
|
|
|
<!-- :key="'2'"-->
|
|
|
|
<!-- :value="'市配'">市配-->
|
|
|
|
<!-- </el-option>-->
|
|
|
|
<!-- </el-select>-->
|
|
|
|
<!-- </el-form-item>-->
|
|
|
|
<el-form-item label="配送种类:">
|
|
|
|
<el-select v-model="query.deliveryKind" placeholder="请选择业务类型">
|
|
|
|
<el-option :key="'1'" :value="'自主配送'">自主配送 </el-option>
|
|
|
|
<el-option :key="'2'" :value="'外协配送'">外协配送 </el-option>
|
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="配送司机:">
|
|
|
|
<el-select
|
|
|
|
v-model="query.driverName"
|
|
|
|
filterable
|
|
|
|
clearable
|
|
|
|
placeholder="请输入司机名称"
|
|
|
|
:loading="loading"
|
|
|
|
>
|
|
|
|
<el-option
|
|
|
|
v-for="item in driverData"
|
|
|
|
:key="item.dictKey"
|
|
|
|
:label="item.dictValue"
|
|
|
|
:value="item.dictValue"
|
|
|
|
>
|
|
|
|
</el-option>
|
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item label="配送车辆:">
|
|
|
|
<el-select
|
|
|
|
v-model="query.vehicleName"
|
|
|
|
filterable
|
|
|
|
clearable
|
|
|
|
placeholder="请输入司机名称"
|
|
|
|
:loading="loading"
|
|
|
|
>
|
|
|
|
<el-option
|
|
|
|
v-for="item in vehicleData"
|
|
|
|
:key="item.dictKey"
|
|
|
|
:label="item.dictValue"
|
|
|
|
:value="item.dictValue"
|
|
|
|
>
|
|
|
|
</el-option>
|
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
</div>
|
|
|
|
<!-- 查询按钮 -->
|
|
|
|
<el-form-item class="el-btn">
|
|
|
|
<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>
|
|
|
|
</el-form>
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
<!-- <el-row :gutter="24" class="rows"> -->
|
|
|
|
<!-- <el-col :xl="14" :lg="7" :md="8" :sm="24" >-->
|
|
|
|
<!-- <span style="padding-left: 10%" >配送总车次:{{statistics.vehiclesNub}}/总包件数:{{statistics.deliveriesTotal}}/总库存品数:{{statistics.dinventoryTotal}} </span>-->
|
|
|
|
<!-- </el-col>-->
|
|
|
|
<!-- <el-col :xl="10" :lg="7" :md="8" :sm="24"> -->
|
|
|
|
<!-- /总库存品数:{{statistics.cinventoryTotal}}-->
|
|
|
|
<!-- <span>商配总车次:{{ statistics.commercialNub }}/总包件数:{{ statistics.commercialTotal }} -->
|
|
|
|
<!-- </span> -->
|
|
|
|
<!-- </el-col> -->
|
|
|
|
<!-- </el-row> -->
|
|
|
|
<!-- 商配总车次 -->
|
|
|
|
<div class="order-info">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<img src="../../../../public/img/bg/Delivery.png" /> 商配总车次{{
|
|
|
|
statistics.commercialNub
|
|
|
|
}}
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<img src="../../../../public/img/bg/package.png" />总包件数{{
|
|
|
|
statistics.commercialTotal
|
|
|
|
}}
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<el-row >
|
|
|
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
|
|
|
<div class="avue-crud__header">
|
|
|
|
<!-- 头部左侧按钮模块 -->
|
|
|
|
<div class="avue-crud__left" style="margin-top: 20px">
|
|
|
|
<!-- <el-button type="primary" icon="el-icon-plus" @click="handleAdd">添 加 配 送</el-button>-->
|
|
|
|
<!-- <el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain>删 除</el-button>-->
|
|
|
|
<!-- <el-button type="primary" icon="el-icon-delete" @click="handleDelete" plain>新 增</el-button>-->
|
|
|
|
<el-button type="primary" @click="toDeliveryPlan">新增商配</el-button>
|
|
|
|
|
|
|
|
<el-button type="primary" @click="printBatchOrder">批量打印</el-button>
|
|
|
|
<el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain
|
|
|
|
>导出
|
|
|
|
</el-button>
|
|
|
|
</div>
|
|
|
|
<!-- 头部右侧按钮模块 -->
|
|
|
|
<div class="avue-crud__right">
|
|
|
|
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
|
|
|
|
<el-button icon="Operation" @click="showdrawer(true)" circle></el-button>
|
|
|
|
<el-button icon="el-icon-search" @click="searchHide" circle></el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<el-tab-pane label="全部列表" name="first">
|
|
|
|
<tablecmt
|
|
|
|
:columnList="columnList"
|
|
|
|
:tableData="data"
|
|
|
|
:loading="loading"
|
|
|
|
@inputTxt="inputsc"
|
|
|
|
@timeCheck="timesc"
|
|
|
|
@btnCheck="btnsc"
|
|
|
|
@selectCheck="selectsc"
|
|
|
|
@selection="selectionsc"
|
|
|
|
>
|
|
|
|
<template #default="slotProps">
|
|
|
|
<el-text size="small" @click="printOrder(slotProps.scope.row)">打 印</el-text>
|
|
|
|
<el-text size="small" @click="editsolt(slotProps.scope)">查 看</el-text>
|
|
|
|
<el-text size="small" @click="editmap(slotProps.scope)">地 图</el-text>
|
|
|
|
<el-text
|
|
|
|
size="small"
|
|
|
|
v-if="
|
|
|
|
slotProps.scope.row.deliveryStatusName !== '已完成' ||
|
|
|
|
slotProps.scope.row.deliveryStatus !== '3'
|
|
|
|
"
|
|
|
|
@click="handleEdit(slotProps.scope)"
|
|
|
|
>编 辑</el-text
|
|
|
|
>
|
|
|
|
<!-- <el-button size="small" @click="costadd(slotProps.scope)">费 用 增 项</el-button>-->
|
|
|
|
</template>
|
|
|
|
</tablecmt>
|
|
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane label="待配送" name="second">
|
|
|
|
<tablecmt
|
|
|
|
:columnList="columnList"
|
|
|
|
:tableData="data"
|
|
|
|
:loading="loading"
|
|
|
|
@inputTxt="inputsc"
|
|
|
|
@timeCheck="timesc"
|
|
|
|
@btnCheck="btnsc"
|
|
|
|
@selectCheck="selectsc"
|
|
|
|
@selection="selectionsc"
|
|
|
|
>
|
|
|
|
<template #default="slotProps">
|
|
|
|
<el-text size="small" @click="printOrder(slotProps.scope.row)">打 印</el-text>
|
|
|
|
<el-text size="small" @click="editsolt(slotProps.scope)">查 看</el-text>
|
|
|
|
<el-text size="small" @click="editmap(slotProps.scope)">地 图</el-text>
|
|
|
|
<el-text
|
|
|
|
size="small"
|
|
|
|
v-if="
|
|
|
|
slotProps.scope.row.deliveryStatusName !== '已完成' ||
|
|
|
|
slotProps.scope.row.deliveryStatus !== '3'
|
|
|
|
"
|
|
|
|
@click="handleEdit(slotProps.scope)"
|
|
|
|
>编 辑</el-text
|
|
|
|
>
|
|
|
|
<!-- <el-button size="small" @click="costadd(slotProps.scope)">费 用 增 项</el-button>-->
|
|
|
|
</template>
|
|
|
|
</tablecmt>
|
|
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane label="配送中" name="third">
|
|
|
|
<tablecmt
|
|
|
|
:columnList="columnList"
|
|
|
|
:tableData="data"
|
|
|
|
:loading="loading"
|
|
|
|
@inputTxt="inputsc"
|
|
|
|
@timeCheck="timesc"
|
|
|
|
@btnCheck="btnsc"
|
|
|
|
@selectCheck="selectsc"
|
|
|
|
@selection="selectionsc"
|
|
|
|
>
|
|
|
|
<template #default="slotProps">
|
|
|
|
<el-text size="small" @click="printOrder(slotProps.scope.row)">打 印</el-text>
|
|
|
|
<el-text size="small" @click="editsolt(slotProps.scope)">查 看</el-text>
|
|
|
|
<el-text size="small" @click="editmap(slotProps.scope)">地 图</el-text>
|
|
|
|
<el-text
|
|
|
|
size="small"
|
|
|
|
v-if="
|
|
|
|
slotProps.scope.row.deliveryStatusName !== '已完成' ||
|
|
|
|
slotProps.scope.row.deliveryStatus !== '3'
|
|
|
|
"
|
|
|
|
@click="handleEdit(slotProps.scope)"
|
|
|
|
>编 辑</el-text
|
|
|
|
>
|
|
|
|
<!-- <el-button size="small" @click="costadd(slotProps.scope)">费 用 增 项</el-button>-->
|
|
|
|
</template>
|
|
|
|
</tablecmt>
|
|
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane label="已完成" name="fourth">
|
|
|
|
<tablecmt
|
|
|
|
:columnList="columnList"
|
|
|
|
:tableData="data"
|
|
|
|
:loading="loading"
|
|
|
|
@inputTxt="inputsc"
|
|
|
|
@timeCheck="timesc"
|
|
|
|
@btnCheck="btnsc"
|
|
|
|
@selectCheck="selectsc"
|
|
|
|
@selection="selectionsc"
|
|
|
|
>
|
|
|
|
<template #default="slotProps">
|
|
|
|
<el-text size="small" @click="printOrder(slotProps.scope.row)">打 印</el-text>
|
|
|
|
<el-text size="small" @click="editsolt(slotProps.scope)">查 看</el-text>
|
|
|
|
<el-text size="small" @click="editmap(slotProps.scope)">地 图</el-text>
|
|
|
|
<el-text
|
|
|
|
size="small"
|
|
|
|
v-if="
|
|
|
|
slotProps.scope.row.deliveryStatusName !== '已完成' ||
|
|
|
|
slotProps.scope.row.deliveryStatus !== '3'
|
|
|
|
"
|
|
|
|
@click="handleEdit(slotProps.scope)"
|
|
|
|
>编 辑</el-text
|
|
|
|
>
|
|
|
|
<!-- <el-button size="small" @click="costadd(slotProps.scope)">费 用 增 项</el-button>-->
|
|
|
|
</template>
|
|
|
|
</tablecmt>
|
|
|
|
</el-tab-pane>
|
|
|
|
</el-tabs>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 列表模块 -->
|
|
|
|
|
|
|
|
<!-- <el-table ref="table" v-loading="loading"-->
|
|
|
|
<!-- @selection-change="selectionChange"-->
|
|
|
|
<!-- :data="data"-->
|
|
|
|
<!-- :height="height"-->
|
|
|
|
<!-- style="width: 100%"-->
|
|
|
|
<!-- :border="option.border">-->
|
|
|
|
<!--<!– <el-table-column type="selection" v-if="option.selection" width="55" align="center"></el-table-column>–>-->
|
|
|
|
<!-- <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column>-->
|
|
|
|
<!--<!– <el-table-column v-if="option.index" label="#" type="index" width="50" align="center">–>-->
|
|
|
|
<!--<!– </el-table-column>–>-->
|
|
|
|
<!-- <template v-for="(item,index) in option.column">-->
|
|
|
|
<!-- <!– table字段 –>-->
|
|
|
|
<!-- <el-table-column v-if="item.hide!==true"-->
|
|
|
|
<!-- :prop="item.prop"-->
|
|
|
|
<!-- :label="item.label"-->
|
|
|
|
<!-- :width="item.width"-->
|
|
|
|
<!-- :key="index">-->
|
|
|
|
<!-- </el-table-column>-->
|
|
|
|
<!-- </template>-->
|
|
|
|
<!-- <!– 操作栏模块 –>-->
|
|
|
|
<!-- <el-table-column prop="menu" label="操作" :width="220" align="center">-->
|
|
|
|
<!-- <template #="{row}">-->
|
|
|
|
<!--<!– <el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>–>-->
|
|
|
|
<!-- <el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看</el-button>-->
|
|
|
|
<!-- <el-button type="primary" text icon="el-icon-view" @click="handleViewBlank(row)">查看地图</el-button>-->
|
|
|
|
<!-- </template>-->
|
|
|
|
<!-- </el-table-column>-->
|
|
|
|
<!-- </el-table>-->
|
|
|
|
</el-row>
|
|
|
|
<el-row class='el-fy'>
|
|
|
|
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
|
|
|
|
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
|
|
|
|
<!-- 分页模块 -->
|
|
|
|
<el-pagination
|
|
|
|
align="right"
|
|
|
|
background
|
|
|
|
@size-change="sizeChange"
|
|
|
|
@current-change="currentChange"
|
|
|
|
:current-page="page.currentPage"
|
|
|
|
:page-sizes="[30, 50, 80, 120]"
|
|
|
|
:page-size="page.pageSize"
|
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
:total="page.total"
|
|
|
|
>
|
|
|
|
</el-pagination>
|
|
|
|
</div>
|
|
|
|
</el-row>
|
|
|
|
|
|
|
|
<!-- 打印模块 -->
|
|
|
|
<el-dialog title="二维码" :visible.sync="isShow" width="780px" v-model="isShow">
|
|
|
|
<div>
|
|
|
|
<div v-html="html"></div>
|
|
|
|
|
|
|
|
<!-- <div v-for="(item,index) in qrCodeObj">
|
|
|
|
<el-row>
|
|
|
|
<el-col :span="24" >
|
|
|
|
<el-image width="10" height="10" w-full :key="index" :src="item " alt="Preview Image"/>
|
|
|
|
</el-col>
|
|
|
|
</el-row>
|
|
|
|
</div> -->
|
|
|
|
</div>
|
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
|
<!-- <el-button type="primary" @click="ddd">导 出</el-button>-->
|
|
|
|
<el-button type="primary" @click="printTemplate">打 印</el-button>
|
|
|
|
<el-button type="primary" @click="isShow = false">确 定</el-button>
|
|
|
|
<el-button @click="isShow = false">取 消</el-button>
|
|
|
|
</span>
|
|
|
|
</el-dialog>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<el-dialog
|
|
|
|
class="el-dialog"
|
|
|
|
v-model="dialogVisible"
|
|
|
|
title="增值服务"
|
|
|
|
width="30%"
|
|
|
|
:model="addvalue"
|
|
|
|
:before-close="handleClose"
|
|
|
|
>
|
|
|
|
<el-form-item label="增值服务" prop="freightMark">
|
|
|
|
<el-checkbox-group v-model="form.addvalueType" @change="handleCheckedCitiesChange">
|
|
|
|
<el-checkbox
|
|
|
|
style="width: 100%; margin-bottom: 3%"
|
|
|
|
v-for="(item, index) in addvalueServeTypeData"
|
|
|
|
:key="item.dictKey"
|
|
|
|
:label="item.dictKey"
|
|
|
|
>{{ item.dictValue }}
|
|
|
|
<span v-if="index === 0 || index === 6 || index === 2 || index === 4"
|
|
|
|
> 件数:
|
|
|
|
<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 v-if="index === 1"
|
|
|
|
>公里:
|
|
|
|
<el-input
|
|
|
|
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 v-if="index === 3"
|
|
|
|
>距离:
|
|
|
|
<el-input
|
|
|
|
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 v-if="index === 5"
|
|
|
|
>人数:
|
|
|
|
<el-input
|
|
|
|
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 v-if="index === 0"
|
|
|
|
>楼层:
|
|
|
|
<el-input
|
|
|
|
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 v-if="item"
|
|
|
|
>预计费用:
|
|
|
|
<el-input
|
|
|
|
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>
|
|
|
|
</el-checkbox>
|
|
|
|
</el-checkbox-group>
|
|
|
|
</el-form-item>
|
|
|
|
<template #footer>
|
|
|
|
<span class="dialog-footer">
|
|
|
|
<el-button @click="dialogVisible = false">取消</el-button>
|
|
|
|
<el-button type="primary" @click="aaa"> 确定(增值服务) </el-button>
|
|
|
|
</span>
|
|
|
|
</template>
|
|
|
|
</el-dialog>
|
|
|
|
</basic-container>
|
|
|
|
<edittablehead
|
|
|
|
@setcolum="setnewcolum"
|
|
|
|
@closce="showdrawer"
|
|
|
|
:drawerShow="drawerShow"
|
|
|
|
:columnList="columnList"
|
|
|
|
></edittablehead>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import {
|
|
|
|
getList,
|
|
|
|
getDetail,
|
|
|
|
add,
|
|
|
|
update,
|
|
|
|
remove,
|
|
|
|
getPage,
|
|
|
|
getstatistics,
|
|
|
|
printBatch,
|
|
|
|
getDeliveryListExport,
|
|
|
|
} from '@/api/distribution/distributionDeliveryList';
|
|
|
|
import option from '@/option/distribution/distributionDeliveryList';
|
|
|
|
import { mapGetters } from 'vuex';
|
|
|
|
import { getDictionaryBiz } from '@/api/system/dict';
|
|
|
|
import { addIncrement } from '@/api/distribution/distributionStockArticle';
|
|
|
|
import { getVehicleList } from '@/api/basicdata/basicdataVehicle';
|
|
|
|
import { getDriverList } from '@/api/basicdata/basicdataDriverArtery';
|
|
|
|
import print from '@/utils/print';
|
|
|
|
import { getBillLadingExport } from '@/api/distribution/distrilbutionBillLading';
|
|
|
|
import { downloadXls } from '@/utils/util';
|
|
|
|
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
height: 0,
|
|
|
|
// 弹框标题
|
|
|
|
title: '',
|
|
|
|
// 是否展示弹框
|
|
|
|
box: false,
|
|
|
|
// 是否显示查询
|
|
|
|
search: true,
|
|
|
|
// 加载中
|
|
|
|
loading: true,
|
|
|
|
// 是否为查看模式
|
|
|
|
view: false,
|
|
|
|
// 打印模版
|
|
|
|
html: '',
|
|
|
|
// 是否显示打印模版
|
|
|
|
isShow: false,
|
|
|
|
// 查询信息
|
|
|
|
query: {},
|
|
|
|
//数据统计
|
|
|
|
statistics: {},
|
|
|
|
drawerShow: false,
|
|
|
|
// 分页信息
|
|
|
|
page: {
|
|
|
|
currentPage: 1,
|
|
|
|
pageSize: 30,
|
|
|
|
total: 40,
|
|
|
|
},
|
|
|
|
//配送类型
|
|
|
|
deliverytypeData: [],
|
|
|
|
//配送种类
|
|
|
|
deliverykindData: [],
|
|
|
|
//配送状态
|
|
|
|
deliveryliststateData: [],
|
|
|
|
// 表单数据
|
|
|
|
form: {},
|
|
|
|
// 选择行
|
|
|
|
selectionList: [],
|
|
|
|
activeName:'first',
|
|
|
|
columnList: [
|
|
|
|
{
|
|
|
|
prop: 'serialNumber',
|
|
|
|
label: '序号',
|
|
|
|
type: 0,
|
|
|
|
values: '',
|
|
|
|
width: 55,
|
|
|
|
checkarr: [],
|
|
|
|
fixed: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'trainNumber',
|
|
|
|
label: '车次',
|
|
|
|
type: 2,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: true,
|
|
|
|
sortable: true,
|
|
|
|
// head: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'taskTime',
|
|
|
|
label: '配送日期',
|
|
|
|
type: 2,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: true,
|
|
|
|
sortable: true,
|
|
|
|
// head: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'warehouseName',
|
|
|
|
label: '仓库',
|
|
|
|
type: 2,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
// {
|
|
|
|
// prop: 'kind',
|
|
|
|
// label: '配送种类',
|
|
|
|
// type: 3,
|
|
|
|
// values: '',
|
|
|
|
// width: '180',
|
|
|
|
// checkarr: [],
|
|
|
|
// fixed: false,
|
|
|
|
// sortable: true,
|
|
|
|
// hide:true,
|
|
|
|
// },
|
|
|
|
{
|
|
|
|
prop: 'kindName',
|
|
|
|
label: '配送种类',
|
|
|
|
type: 3,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'typeName',
|
|
|
|
label: '配送类型',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
prop: 'vehicleName',
|
|
|
|
label: '配送车辆',
|
|
|
|
type: 2,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'driverName',
|
|
|
|
label: '配送司机',
|
|
|
|
type: 2,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'distributionCompany',
|
|
|
|
label: '配送公司',
|
|
|
|
type: 2,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
// {
|
|
|
|
// prop: 'deliveryStatus',
|
|
|
|
// label: '配送状态',
|
|
|
|
// type: 3,
|
|
|
|
// values: '',
|
|
|
|
// width: '150',
|
|
|
|
// checkarr: [],
|
|
|
|
// fixed: false,
|
|
|
|
// sortable: true,
|
|
|
|
// hide:true,
|
|
|
|
// },
|
|
|
|
{
|
|
|
|
prop: 'deliveryStatusName',
|
|
|
|
label: '配送状态',
|
|
|
|
type: 3,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
// {
|
|
|
|
// prop: 'deliveryListLoadingStatusName',
|
|
|
|
// label: '装车状态',
|
|
|
|
// type: 3,
|
|
|
|
// values: '',
|
|
|
|
// width: '130',
|
|
|
|
// checkarr: [],
|
|
|
|
// fixed: false,
|
|
|
|
// sortable: true
|
|
|
|
// },
|
|
|
|
{
|
|
|
|
prop: 'customersNumber',
|
|
|
|
label: '配送客户数',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'price',
|
|
|
|
label: '配送价格',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'fee',
|
|
|
|
label: '增值服务',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'orderNumber',
|
|
|
|
label: '订单总数',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'deliveryNumber',
|
|
|
|
label: '配送件数',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'inventoryNub',
|
|
|
|
label: '配送库存品件数',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '150',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'scannedNumber',
|
|
|
|
label: '装车件数',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'signingNumber',
|
|
|
|
label: '签收件数',
|
|
|
|
type: 1,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: 'loadingTeamName',
|
|
|
|
label: '装卸班组',
|
|
|
|
type: 2,
|
|
|
|
values: '',
|
|
|
|
width: '130',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: false,
|
|
|
|
sortable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
prop: '',
|
|
|
|
label: '操作',
|
|
|
|
type: 6,
|
|
|
|
values: '',
|
|
|
|
width: '200',
|
|
|
|
checkarr: [],
|
|
|
|
fixed: 'right',
|
|
|
|
sortable: false,
|
|
|
|
},
|
|
|
|
// 更多列的配置...
|
|
|
|
],
|
|
|
|
// 表单配置
|
|
|
|
option: option,
|
|
|
|
//增值服务弹窗
|
|
|
|
dialogVisible: false,
|
|
|
|
//增值服务字典列表
|
|
|
|
addvalueServeTypeData: [],
|
|
|
|
//增值服务列表
|
|
|
|
addvalueServeType: [],
|
|
|
|
//配送方式字典列表
|
|
|
|
deliveryWayData: [],
|
|
|
|
//增值服务对象
|
|
|
|
addvalueObj: {},
|
|
|
|
//订单行数据
|
|
|
|
orderInfo: {},
|
|
|
|
deliverId: null,
|
|
|
|
//费用列表
|
|
|
|
feeList: [],
|
|
|
|
//楼层
|
|
|
|
floorList: [],
|
|
|
|
// 表单列表
|
|
|
|
data: [],
|
|
|
|
driverData: [],
|
|
|
|
vehicleData: [],
|
|
|
|
};
|
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
// '$route.query.reservationId': {
|
|
|
|
handler(newVal, oldVal) {
|
|
|
|
console.log(newVal, oldVal);
|
|
|
|
// this.fetchData();
|
|
|
|
this.onLoad(this.page);
|
|
|
|
},
|
|
|
|
deep: false,
|
|
|
|
immediate: true,
|
|
|
|
// }
|
|
|
|
},
|
|
|
|
mounted() {
|
|
|
|
this.getvehicleData();
|
|
|
|
this.getDriverData();
|
|
|
|
this.queryDictionary();
|
|
|
|
this.init();
|
|
|
|
/**
|
|
|
|
* 初始化获取本地缓存的编辑隐藏的列表
|
|
|
|
* 固定搭配,不能更改
|
|
|
|
*/
|
|
|
|
let checkListnewarr = this.$functions.getStorage(window.location.pathname + 'checkList');
|
|
|
|
let flexListnewarr = this.$functions.getStorage(window.location.pathname + 'flexList');
|
|
|
|
let sortlistnewarr = this.$functions.getStorage(window.location.pathname + 'sortlist');
|
|
|
|
if (checkListnewarr) {
|
|
|
|
this.columnList.map(item => {
|
|
|
|
item.head = false;
|
|
|
|
});
|
|
|
|
checkListnewarr.map(ite => {
|
|
|
|
this.columnList.map(item => {
|
|
|
|
if (ite == item.label) {
|
|
|
|
item.head = true;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
let arr = [];
|
|
|
|
this.columnList.map(item => {
|
|
|
|
if (item.head) {
|
|
|
|
arr.push(item.label);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
this.$functions.setStorage(window.location.pathname + 'checkList', arr);
|
|
|
|
}
|
|
|
|
if (flexListnewarr) {
|
|
|
|
this.columnList.map(item => {
|
|
|
|
item.fixed = false;
|
|
|
|
});
|
|
|
|
flexListnewarr.map(ite => {
|
|
|
|
this.columnList.map(item => {
|
|
|
|
if (ite == item.label) {
|
|
|
|
if (item.type == 6) {
|
|
|
|
item.fixed = 'right';
|
|
|
|
} else {
|
|
|
|
item.fixed = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
let arr = [];
|
|
|
|
this.columnList.map(item => {
|
|
|
|
if (item.fixed) {
|
|
|
|
arr.push(item.label);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
this.$functions.setStorage(window.location.pathname + 'flexList', arr);
|
|
|
|
}
|
|
|
|
if (sortlistnewarr) {
|
|
|
|
this.columnList.map(item => {
|
|
|
|
item.sortable = false;
|
|
|
|
});
|
|
|
|
sortlistnewarr.map(ite => {
|
|
|
|
this.columnList.map(item => {
|
|
|
|
if (ite == item.label) {
|
|
|
|
item.sortable = true;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
let arr = [];
|
|
|
|
this.columnList.map(item => {
|
|
|
|
if (item.sortable) {
|
|
|
|
arr.push(item.label);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
this.$functions.setStorage(window.location.pathname + 'sortlist', arr);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
...mapGetters(['permission']),
|
|
|
|
ids() {
|
|
|
|
let ids = [];
|
|
|
|
this.selectionList.forEach(ele => {
|
|
|
|
ids.push(ele.id);
|
|
|
|
});
|
|
|
|
return ids.join(',');
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
//tabs切换
|
|
|
|
handleClick(tab, event) {
|
|
|
|
console.log('tab------------------>', tab.props.name);
|
|
|
|
this.query = {};
|
|
|
|
switch (tab.props.name) {
|
|
|
|
|
|
|
|
case 'first':
|
|
|
|
break;
|
|
|
|
case 'second':
|
|
|
|
//待配送
|
|
|
|
this.query.deliveryStatus = '1';
|
|
|
|
break;
|
|
|
|
case 'third':
|
|
|
|
//配送中
|
|
|
|
this.query.deliveryStatus = '2';
|
|
|
|
break;
|
|
|
|
case 'fourth':
|
|
|
|
//已完成
|
|
|
|
this.query.deliveryStatus = '3';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
this.onLoad(this.page);
|
|
|
|
|
|
|
|
console.log('tab------------------>', tab);
|
|
|
|
console.log('event--------------->', event);
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 导出
|
|
|
|
* */
|
|
|
|
handleExportInfo() {
|
|
|
|
let row = {};
|
|
|
|
const ids = this.selectionList.join(',');
|
|
|
|
row.ids = ids;
|
|
|
|
row.type = '1';
|
|
|
|
row = { ...row, ...this.query };
|
|
|
|
delete row.deliveryStatusName;
|
|
|
|
delete row.kindName;
|
|
|
|
getDeliveryListExport(row).then(res => {
|
|
|
|
console.log(res.data);
|
|
|
|
downloadXls(res.data, '商配配送计划数据.xlsx');
|
|
|
|
});
|
|
|
|
},
|
|
|
|
getvehicleData() {
|
|
|
|
return new Promise((rv, rev) => {
|
|
|
|
getVehicleList().then(res => {
|
|
|
|
const data = res.data.data;
|
|
|
|
let po = [];
|
|
|
|
data.forEach(item => {
|
|
|
|
let a = {
|
|
|
|
dictKey: item.id,
|
|
|
|
dictValue: item.vehicleNub,
|
|
|
|
};
|
|
|
|
po.push(a);
|
|
|
|
});
|
|
|
|
this.vehicleData = po;
|
|
|
|
console.log('^^^^^^^^^^^^^^^^', res.data.data);
|
|
|
|
rv(res.data.data);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
getDriverData() {
|
|
|
|
return new Promise((rv, rev) => {
|
|
|
|
getDriverList().then(res => {
|
|
|
|
const data = res.data.data;
|
|
|
|
let po = [];
|
|
|
|
data.forEach(item => {
|
|
|
|
let a = {
|
|
|
|
dictKey: item.id,
|
|
|
|
dictValue: item.name,
|
|
|
|
};
|
|
|
|
po.push(a);
|
|
|
|
});
|
|
|
|
this.driverData = po;
|
|
|
|
console.log('===============>', res.data.data);
|
|
|
|
rv(res.data.data);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
showdrawer(value) {
|
|
|
|
this.drawerShow = value;
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 弹窗的勾选回调,用于更改头部数组
|
|
|
|
* 固定搭配,只需要更换 columnList
|
|
|
|
*/
|
|
|
|
setnewcolum(newarr, headarr, type) {
|
|
|
|
// console.log(newarr,'+++++++++++')
|
|
|
|
if (type == 1) {
|
|
|
|
this.columnList = newarr;
|
|
|
|
this.$functions.setStorage(window.location.pathname + 'checkList', headarr);
|
|
|
|
} else if (type == 2) {
|
|
|
|
this.columnList = newarr;
|
|
|
|
this.$functions.setStorage(window.location.pathname + 'flexList', headarr);
|
|
|
|
} else if (type == 3) {
|
|
|
|
this.columnList = newarr;
|
|
|
|
this.$functions.setStorage(window.location.pathname + 'sortlist', headarr);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
handleCheckedCitiesChange(value) {
|
|
|
|
if (value) {
|
|
|
|
this.form.addvalueType = value;
|
|
|
|
}
|
|
|
|
console.log('>>>>>', this.form);
|
|
|
|
if (value.length < 1) {
|
|
|
|
this.costList = [];
|
|
|
|
this.costListName = [];
|
|
|
|
}
|
|
|
|
this.deliveryWayData.forEach(i => {
|
|
|
|
if (value.includes(i.dictKey)) {
|
|
|
|
console.log(i);
|
|
|
|
i.pitch = true;
|
|
|
|
this.costListName = value;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
editmap(scope) {
|
|
|
|
const { row } = scope;
|
|
|
|
console.log('row>>>>>>xxxx', row);
|
|
|
|
this.$router.push({
|
|
|
|
path: '/distribution/reservation/atlas1',
|
|
|
|
query: {
|
|
|
|
item: JSON.stringify(row),
|
|
|
|
type: '2',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
},
|
|
|
|
textbox(e, index, a) {
|
|
|
|
if (a === 6) {
|
|
|
|
this.feeList[index + 1] = e;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (a === 5)
|
|
|
|
if (index === 0 && a === 5) {
|
|
|
|
this.floorList[index + 1] = e;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this.costList[index + 1] = e;
|
|
|
|
|
|
|
|
//费用列表
|
|
|
|
},
|
|
|
|
aaa() {
|
|
|
|
let addvalueInfos = [];
|
|
|
|
this.form.addvalueType.forEach((item, index) => {
|
|
|
|
let addvalueInfo = {};
|
|
|
|
addvalueInfo.addvalueId = item;
|
|
|
|
if (item == 1 || item == 3 || item == 5 || item == 7) {
|
|
|
|
addvalueInfo.number = this.costList[item];
|
|
|
|
}
|
|
|
|
if (item == 2) {
|
|
|
|
addvalueInfo.kilometer = this.costList[item];
|
|
|
|
}
|
|
|
|
if (item == 4) {
|
|
|
|
addvalueInfo.distance = this.costList[item];
|
|
|
|
}
|
|
|
|
if (item == 6) {
|
|
|
|
addvalueInfo.peopleNum = this.costList[item];
|
|
|
|
}
|
|
|
|
if (this.floorList.length > 1) {
|
|
|
|
addvalueInfo.floor = this.floorList[1];
|
|
|
|
this.floorList = [];
|
|
|
|
}
|
|
|
|
addvalueInfo.fee = this.feeList[item];
|
|
|
|
addvalueInfos.push(addvalueInfo);
|
|
|
|
});
|
|
|
|
let params = {};
|
|
|
|
params.id = this.deliverId;
|
|
|
|
params.addvalue = addvalueInfos;
|
|
|
|
params.relatedId = 2;
|
|
|
|
console.log('params>>>>>>>>>>>>>>>>>>', params);
|
|
|
|
addIncrement(params).then(res => {
|
|
|
|
this.dialogVisible = false;
|
|
|
|
this.$message({
|
|
|
|
type: 'success',
|
|
|
|
message: '操作成功!',
|
|
|
|
});
|
|
|
|
});
|
|
|
|
this.onLoad(this.page);
|
|
|
|
},
|
|
|
|
selectionsc(value) {
|
|
|
|
// 筛选出所有被选中项的id
|
|
|
|
this.selectionList = value.map(item => item.id);
|
|
|
|
},
|
|
|
|
delectsolt(scope) {
|
|
|
|
const { row } = scope;
|
|
|
|
console.log(row);
|
|
|
|
},
|
|
|
|
handleClose(done) {
|
|
|
|
this.$confirm('确认关闭?')
|
|
|
|
.then(_ => {
|
|
|
|
done();
|
|
|
|
})
|
|
|
|
.catch(_ => {});
|
|
|
|
},
|
|
|
|
editsolt(scope) {
|
|
|
|
const { row } = scope;
|
|
|
|
console.log(row);
|
|
|
|
this.$router.push({
|
|
|
|
path: '/distribution/deliverylist/distributionDeliveryListedt',
|
|
|
|
query: {
|
|
|
|
data: encodeURIComponent(JSON.stringify(row)),
|
|
|
|
name: row.trainNumber + '-查看配送',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
},
|
|
|
|
costadd(scope) {
|
|
|
|
const { row } = scope;
|
|
|
|
console.log('row>>>>>>>>>>', row);
|
|
|
|
this.deliverId = row.id;
|
|
|
|
//查询订单的增值服务,
|
|
|
|
this.addvalueServeType = [];
|
|
|
|
this.addvalue = {};
|
|
|
|
this.dialogVisible = true;
|
|
|
|
this.costList = [];
|
|
|
|
this.feeList = [];
|
|
|
|
this.floorList = [];
|
|
|
|
// this.orderInfo = row;
|
|
|
|
},
|
|
|
|
btnsc(index, row) {
|
|
|
|
console.log(index, row);
|
|
|
|
},
|
|
|
|
selectsc(index, row) {
|
|
|
|
this.query[row.prop] = index;
|
|
|
|
if (!index) {
|
|
|
|
delete this.query[row.prop];
|
|
|
|
}
|
|
|
|
if (row.prop === 'deliveryStatusName') {
|
|
|
|
this.query['deliveryStatus'] = index;
|
|
|
|
} else if (row.prop === 'kindName') {
|
|
|
|
this.query['kind'] = index;
|
|
|
|
}
|
|
|
|
this.onLoad(this.page);
|
|
|
|
},
|
|
|
|
timesc(index, row) {
|
|
|
|
console.log(index, row);
|
|
|
|
},
|
|
|
|
inputsc(index, row) {
|
|
|
|
this.query[row.prop] = index;
|
|
|
|
if (!index) {
|
|
|
|
delete this.query[row.prop];
|
|
|
|
}
|
|
|
|
this.onLoad(this.page);
|
|
|
|
},
|
|
|
|
queryDictionary() {
|
|
|
|
getDictionaryBiz('delivery_type').then(res => {
|
|
|
|
this.deliverytypeData = res.data.data;
|
|
|
|
});
|
|
|
|
getDictionaryBiz('addvalue_serve_type').then(res => {
|
|
|
|
this.addvalueServeTypeData = res.data.data;
|
|
|
|
});
|
|
|
|
getDictionaryBiz('delivery_way').then(res => {
|
|
|
|
this.deliveryWayData = res.data.data;
|
|
|
|
});
|
|
|
|
|
|
|
|
getDictionaryBiz('distribution_deliverylist_state').then(res => {
|
|
|
|
this.deliveryliststateData = res.data.data;
|
|
|
|
this.columnList[6].checkarr = res.data.data.map(item => {
|
|
|
|
item.value = item.dictKey;
|
|
|
|
item.label = item.dictValue;
|
|
|
|
return item;
|
|
|
|
});
|
|
|
|
this.onLoad(this.page);
|
|
|
|
});
|
|
|
|
|
|
|
|
//配送状态
|
|
|
|
getDictionaryBiz('distribution_delivery_status').then(res => {
|
|
|
|
this.$functions.checkcColumnList('deliveryStatusName', this.columnList).checkarr =
|
|
|
|
res.data.data.map(item => {
|
|
|
|
item.value = item.dictKey;
|
|
|
|
item.label = item.dictValue;
|
|
|
|
return item;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
//配送种类
|
|
|
|
getDictionaryBiz('distribution_deliverylist_kind').then(res => {
|
|
|
|
this.$functions.checkcColumnList('kindName', this.columnList).checkarr = res.data.data.map(
|
|
|
|
item => {
|
|
|
|
item.value = item.dictKey;
|
|
|
|
item.label = item.dictValue;
|
|
|
|
return item;
|
|
|
|
}
|
|
|
|
);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
//类型切换
|
|
|
|
// deliverytype(type){
|
|
|
|
// this.query.type=type;
|
|
|
|
// this.onLoad(this.page)
|
|
|
|
// },
|
|
|
|
init() {
|
|
|
|
this.height = this.setPx(document.body.clientHeight - 340);
|
|
|
|
},
|
|
|
|
searchHide() {
|
|
|
|
this.search = !this.search;
|
|
|
|
},
|
|
|
|
searchChange() {
|
|
|
|
if (this.query.deliveryKind) {
|
|
|
|
let deliveryKind = this.query.deliveryKind;
|
|
|
|
switch (deliveryKind) {
|
|
|
|
case '自主配送':
|
|
|
|
this.query.kind = '1';
|
|
|
|
break;
|
|
|
|
case '外协配送':
|
|
|
|
this.query.kind = '2';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.onLoad(this.page);
|
|
|
|
},
|
|
|
|
searchReset() {
|
|
|
|
this.query = {};
|
|
|
|
this.page.currentPage = 1;
|
|
|
|
this.onLoad(this.page);
|
|
|
|
},
|
|
|
|
handleSubmit() {
|
|
|
|
if (!this.form.id) {
|
|
|
|
add(this.form).then(() => {
|
|
|
|
this.box = false;
|
|
|
|
this.onLoad(this.page);
|
|
|
|
this.$message({
|
|
|
|
type: 'success',
|
|
|
|
message: '操作成功!',
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
update(this.form).then(() => {
|
|
|
|
this.box = false;
|
|
|
|
this.onLoad(this.page);
|
|
|
|
this.$message({
|
|
|
|
type: 'success',
|
|
|
|
message: '操作成功!',
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
handleAdd() {
|
|
|
|
this.title = '新增';
|
|
|
|
this.form = {};
|
|
|
|
this.box = true;
|
|
|
|
},
|
|
|
|
handleEdit(scope) {
|
|
|
|
const { row } = scope;
|
|
|
|
this.$router.push({
|
|
|
|
path: '/distribution/turndelivery/deliveryDiscuss',
|
|
|
|
query: {
|
|
|
|
id: row.id,
|
|
|
|
name: row.trainNumber + '-编辑配送',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
},
|
|
|
|
handleView(row) {
|
|
|
|
this.title = '查看';
|
|
|
|
this.view = true;
|
|
|
|
this.box = true;
|
|
|
|
getDetail(row.id).then(res => {
|
|
|
|
this.form = res.data.data;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
handleViewBlank(row) {
|
|
|
|
console.log('row>>>>>>>>>>>>>>>>', row);
|
|
|
|
this.$router.push({
|
|
|
|
path: '/distribution/deliverylist/distributionDeliveryListedt',
|
|
|
|
query: {
|
|
|
|
data: encodeURIComponent(JSON.stringify(row)),
|
|
|
|
name: row.trainNumber + '-查看配送',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
},
|
|
|
|
handleDelete() {
|
|
|
|
if (this.selectionList.length === 0) {
|
|
|
|
this.$message.warning('请选择至少一条数据');
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this.$confirm('确定将选择数据删除?', {
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
type: 'warning',
|
|
|
|
})
|
|
|
|
.then(() => {
|
|
|
|
return remove(this.ids);
|
|
|
|
})
|
|
|
|
.then(() => {
|
|
|
|
this.selectionClear();
|
|
|
|
this.onLoad(this.page);
|
|
|
|
this.$message({
|
|
|
|
type: 'success',
|
|
|
|
message: '操作成功!',
|
|
|
|
});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
rowDel(row) {
|
|
|
|
this.$confirm('确定将选择数据删除?', {
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
type: 'warning',
|
|
|
|
})
|
|
|
|
.then(() => {
|
|
|
|
return remove(row.id);
|
|
|
|
})
|
|
|
|
.then(() => {
|
|
|
|
this.onLoad(this.page);
|
|
|
|
this.$message({
|
|
|
|
type: 'success',
|
|
|
|
message: '操作成功!',
|
|
|
|
});
|
|
|
|
});
|
|
|
|
},
|
|
|
|
beforeClose(done) {
|
|
|
|
done();
|
|
|
|
this.form = {};
|
|
|
|
this.view = false;
|
|
|
|
},
|
|
|
|
selectionChange(list) {
|
|
|
|
this.selectionList = list;
|
|
|
|
},
|
|
|
|
selectionClear() {
|
|
|
|
this.selectionList = [];
|
|
|
|
// this.$refs.table.clearSelection();
|
|
|
|
},
|
|
|
|
currentChange(currentPage) {
|
|
|
|
this.page.currentPage = currentPage;
|
|
|
|
this.onLoad(this.page);
|
|
|
|
},
|
|
|
|
sizeChange(pageSize) {
|
|
|
|
this.page.pageSize = pageSize;
|
|
|
|
this.onLoad(this.page);
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 新增按钮,跳转至配送计划
|
|
|
|
*/
|
|
|
|
toDeliveryPlan() {
|
|
|
|
this.$router.push({
|
|
|
|
path: '/distribution/turndelivery/deliveryDiscuss',
|
|
|
|
});
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 批量打印
|
|
|
|
*/
|
|
|
|
async printBatchOrder() {
|
|
|
|
if (this.selectionList.length === 0) {
|
|
|
|
this.$message.warning('请选择至少一条数据');
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this.isShow = true;
|
|
|
|
this.html = '';
|
|
|
|
const res = await printBatch({ ids: Array.from(this.selectionList).join(','), type: 1 });
|
|
|
|
console.log('res :>> ', res);
|
|
|
|
const {
|
|
|
|
data: { code, data },
|
|
|
|
} = res;
|
|
|
|
if (code === 200) {
|
|
|
|
// 初始化打印页面
|
|
|
|
data.forEach(item => {
|
|
|
|
this.html += item.templateHtml;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取单个打印页面
|
|
|
|
*/
|
|
|
|
async printOrder(row) {
|
|
|
|
console.log('row :>> ', row);
|
|
|
|
this.html = '';
|
|
|
|
const res = await printBatch({ ids: row.id, type: 1 });
|
|
|
|
console.log('res :>> ', res);
|
|
|
|
const {
|
|
|
|
data: { code, data },
|
|
|
|
} = res;
|
|
|
|
if (code === 200) {
|
|
|
|
// 初始化打印页面
|
|
|
|
data.forEach(item => {
|
|
|
|
this.html += item.templateHtml;
|
|
|
|
});
|
|
|
|
this.isShow = true;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
onLoad(page, params = {}) {
|
|
|
|
this.loading = true;
|
|
|
|
this.query.type = '1';
|
|
|
|
getPage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
|
|
|
|
const data = res.data.data;
|
|
|
|
// eslint-disable-next-line no-empty
|
|
|
|
for (let i = 0; i < data.records.length; i++) {
|
|
|
|
// eslint-disable-next-line no-empty
|
|
|
|
for (let j = 0; j < this.deliverytypeData.length; j++) {
|
|
|
|
// eslint-disable-next-line no-empty
|
|
|
|
if (data.records[i].type == this.deliverytypeData[j].dictKey) {
|
|
|
|
data.records[i].type = this.deliverytypeData[j].dictValue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (let j = 0; j < this.deliverykindData.length; j++) {
|
|
|
|
// eslint-disable-next-line no-empty
|
|
|
|
if (data.records[i].kind == this.deliverykindData[j].dictKey) {
|
|
|
|
data.records[i].kind = this.deliverykindData[j].dictValue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (let j = 0; j < this.deliveryliststateData.length; j++) {
|
|
|
|
// eslint-disable-next-line no-empty
|
|
|
|
if (data.records[i].state == this.deliveryliststateData[j].dictKey) {
|
|
|
|
data.records[i].state = this.deliveryliststateData[j].dictValue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.page.total = data.total;
|
|
|
|
this.data = data.records;
|
|
|
|
this.loading = false;
|
|
|
|
this.selectionClear();
|
|
|
|
});
|
|
|
|
getstatistics(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
|
|
|
|
res => {
|
|
|
|
this.statistics = res.data.data;
|
|
|
|
}
|
|
|
|
);
|
|
|
|
// getDetail(row.id).then(res => {
|
|
|
|
// this.form = res.data.data;
|
|
|
|
// });
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 打印
|
|
|
|
*/
|
|
|
|
printTemplate() {
|
|
|
|
print();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
.avue-crud {
|
|
|
|
:deep(.el-dialog) {
|
|
|
|
width: fit-content;
|
|
|
|
}
|
|
|
|
:deep(.el-row){
|
|
|
|
flex-direction: column;
|
|
|
|
flex-wrap: nowrap;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.order-info {
|
|
|
|
ul {
|
|
|
|
list-style: none;
|
|
|
|
display: flex;
|
|
|
|
padding: 0;
|
|
|
|
|
|
|
|
li {
|
|
|
|
color: #172e60;
|
|
|
|
position: relative;
|
|
|
|
padding: 0 20px;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
font-weight: 500;
|
|
|
|
img {
|
|
|
|
margin-right: 4px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
li::after {
|
|
|
|
content: '';
|
|
|
|
display: block;
|
|
|
|
width: 0.10417vw;
|
|
|
|
height: 18px;
|
|
|
|
background-color: #dddbdb;
|
|
|
|
position: absolute;
|
|
|
|
top: 2px;
|
|
|
|
left: 0px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
li:first-child::after {
|
|
|
|
content: none;
|
|
|
|
}
|
|
|
|
li:first-child {
|
|
|
|
padding-left: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.el-form-item__content {
|
|
|
|
height: 30px;
|
|
|
|
}
|
|
|
|
// 日期选择框
|
|
|
|
.el-times {
|
|
|
|
:deep(.el-tooltip__trigger) {
|
|
|
|
height: 30px !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.el-btn {
|
|
|
|
min-width: 200px;
|
|
|
|
margin-right: 0 !important;
|
|
|
|
:deep(.el-form-item__content) {
|
|
|
|
width: 180px;
|
|
|
|
justify-content: flex-end;
|
|
|
|
justify-content: flex-end;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.avue-crud__right {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
}
|
|
|
|
.fr-fm {
|
|
|
|
width: 100%;
|
|
|
|
display: flex;
|
|
|
|
justify-content: space-between;
|
|
|
|
.el-tb {
|
|
|
|
display: flex;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
.el-form-item {
|
|
|
|
width: 242px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
:deep(.avue-crud__header) {
|
|
|
|
.avue-crud__left {
|
|
|
|
margin-top: 0 !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
:deep(.avue-crud) {
|
|
|
|
display: flex;
|
|
|
|
height: 100%;
|
|
|
|
flex-direction: column;
|
|
|
|
}
|
|
|
|
:deep(.el-card__body) {
|
|
|
|
height: 100%;
|
|
|
|
}
|
|
|
|
:deep(.el-card) {
|
|
|
|
height: 100%;
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
}
|
|
|
|
.el-fy {
|
|
|
|
flex: 1;
|
|
|
|
display: flex;
|
|
|
|
align-items: flex-end;
|
|
|
|
}
|
|
|
|
|
|
|
|
</style>
|