|
|
@@ -0,0 +1,1178 @@
|
|
|
+<template>
|
|
|
+ <div class="app-container">
|
|
|
+ <el-form v-show="showSearch" ref="queryForm" :model="queryParams" :inline="true" label-width="100px">
|
|
|
+ <el-form-item label="系统订单号" prop="orderNo">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.orderNo"
|
|
|
+ placeholder="请输入系统订单号"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="商家订单号" prop="merchantOrderNo">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.merchantOrderNo"
|
|
|
+ placeholder="请输入商家订单号"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="平台订单号" prop="platformOrderNo">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.platformOrderNo"
|
|
|
+ placeholder="请输入平台订单号"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="运单号" prop="waybillNo">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.waybillNo"
|
|
|
+ placeholder="请输入运单号"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="收件人姓名" prop="receiverName">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.receiverName"
|
|
|
+ placeholder="请输入收件人姓名"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="收件人手机" prop="receiverMobile">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.receiverMobile"
|
|
|
+ placeholder="请输入收件人手机"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="订单状态" prop="orderStatus">
|
|
|
+ <el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small" style="width: 200px">
|
|
|
+ <el-option label="待处理" :value="0" />
|
|
|
+ <el-option label="处理中" :value="1" />
|
|
|
+ <el-option label="已完成" :value="2" />
|
|
|
+ <el-option label="已取消" :value="3" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="下单时间" prop="orderTimeRange">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="queryParams.orderTimeRange"
|
|
|
+ type="datetimerange"
|
|
|
+ format="yyyy-MM-dd HH"
|
|
|
+ value-format="yyyy-MM-dd HH"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始小时"
|
|
|
+ end-placeholder="结束小时"
|
|
|
+ :picker-options="orderTimePickerOptions"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ style="width: 360px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ type="warning"
|
|
|
+ plain
|
|
|
+ icon="el-icon-download"
|
|
|
+ size="mini"
|
|
|
+ :loading="exportLoading"
|
|
|
+ @click="handleExport"
|
|
|
+ >导出</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ plain
|
|
|
+ icon="el-icon-upload2"
|
|
|
+ size="mini"
|
|
|
+ @click="handleImport"
|
|
|
+ >导入</el-button>
|
|
|
+ </el-col>
|
|
|
+ <right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-table v-loading="loading" border :data="orderList">
|
|
|
+ <el-table-column label="系统订单号" align="center" prop="orderNo" width="180" show-overflow-tooltip />
|
|
|
+ <el-table-column label="商家订单号" align="center" prop="merchantOrderNo" width="150" show-overflow-tooltip />
|
|
|
+ <el-table-column label="平台订单号" align="center" prop="platformOrderNo" width="150" show-overflow-tooltip />
|
|
|
+ <el-table-column label="预制运单号" align="center" prop="preWaybillNo" width="150" show-overflow-tooltip />
|
|
|
+ <el-table-column label="运单号" align="center" prop="waybillNo" width="150" show-overflow-tooltip />
|
|
|
+ <el-table-column label="处方编号" align="center" prop="prescriptionNo" width="150" show-overflow-tooltip />
|
|
|
+ <el-table-column label="处方人姓名" align="center" prop="prescriptionName" width="120" show-overflow-tooltip />
|
|
|
+ <el-table-column label="寄件人" align="center" prop="senderName" width="100" />
|
|
|
+ <el-table-column label="寄件手机" align="center" prop="senderMobile" width="120" />
|
|
|
+ <el-table-column label="寄件地址" align="center" prop="senderAddress" width="200" show-overflow-tooltip />
|
|
|
+ <el-table-column label="收件人" align="center" prop="receiverName" width="100" />
|
|
|
+ <el-table-column label="收件手机" align="center" prop="receiverMobile" width="120" />
|
|
|
+ <el-table-column label="收件地址" align="center" prop="receiverAddress" width="200" show-overflow-tooltip />
|
|
|
+ <el-table-column label="物品类型" align="center" prop="goodsType" width="100" />
|
|
|
+ <el-table-column label="总件数" align="center" prop="packageCount" width="80" />
|
|
|
+ <el-table-column label="重量(KG)" align="center" prop="weight" width="90" />
|
|
|
+ <el-table-column label="订单金额" align="center" prop="orderAmount" width="100" />
|
|
|
+ <el-table-column label="物流状态" align="center" width="100">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <template v-if="scope.row.deliveryStatus != null">
|
|
|
+ <template v-for="item in deliveryStatusOptions">
|
|
|
+ <span v-if="scope.row.deliveryStatus == item.dictValue" :key="item.dictValue">{{ item.dictLabel }}</span>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="物流跟踪状态" align="center" width="120">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <template v-if="scope.row.deliveryType != null">
|
|
|
+ <template v-for="item in deliveryTypeOptions">
|
|
|
+ <span v-if="scope.row.deliveryType == item.dictValue" :key="item.dictValue">{{ item.dictLabel }}</span>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="订单状态" align="center" prop="orderStatus" width="100">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tag v-if="scope.row.orderStatus === 0" type="info">待处理</el-tag>
|
|
|
+ <el-tag v-else-if="scope.row.orderStatus === 1" type="warning">处理中</el-tag>
|
|
|
+ <el-tag v-else-if="scope.row.orderStatus === 2" type="success">已完成</el-tag>
|
|
|
+ <el-tag v-else-if="scope.row.orderStatus === 3" type="danger">已取消</el-tag>
|
|
|
+ <span v-else>{{ scope.row.orderStatus }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="创建时间" align="center" prop="createTime" width="180" />
|
|
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ @click="handleDetails(scope.row)"
|
|
|
+ >查看</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ @click="handleExpress(scope.row)"
|
|
|
+ v-if="scope.row.waybillNo"
|
|
|
+ >查看物流</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <pagination
|
|
|
+ v-show="total>0"
|
|
|
+ :total="total"
|
|
|
+ :page.sync="queryParams.pageNum"
|
|
|
+ :limit.sync="queryParams.pageSize"
|
|
|
+ @pagination="getList"
|
|
|
+ />
|
|
|
+
|
|
|
+ <el-dialog v-if="open" :title="title" :visible.sync="open" width="900px" append-to-body :close-on-click-modal="false">
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="130px">
|
|
|
+ <el-divider content-position="left">基础信息</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="预制运单号" prop="preWaybillNo">
|
|
|
+ <el-input v-model="form.preWaybillNo" placeholder="请输入预制运单号" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="商家订单号" prop="merchantOrderNo">
|
|
|
+ <el-input v-model="form.merchantOrderNo" placeholder="请输入商家订单号" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="平台订单号" prop="platformOrderNo">
|
|
|
+ <el-input v-model="form.platformOrderNo" placeholder="请输入平台订单号" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">寄件人信息</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="寄件人姓名" prop="senderName">
|
|
|
+ <el-input v-model="form.senderName" placeholder="请输入寄件人姓名" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="寄件人手机" prop="senderMobile">
|
|
|
+ <el-input v-model="form.senderMobile" placeholder="请输入寄件人手机" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="寄件人座机" prop="senderTel">
|
|
|
+ <el-input v-model="form.senderTel" placeholder="请输入寄件人座机" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="寄件公司" prop="senderCompany">
|
|
|
+ <el-input v-model="form.senderCompany" placeholder="请输入寄件公司" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="寄件省" prop="senderProvince">
|
|
|
+ <el-input v-model="form.senderProvince" placeholder="请输入寄件省" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="寄件市" prop="senderCity">
|
|
|
+ <el-input v-model="form.senderCity" placeholder="请输入寄件市" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="寄件区县" prop="senderDistrict">
|
|
|
+ <el-input v-model="form.senderDistrict" placeholder="请输入寄件区县" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="寄件详细地址" prop="senderAddress">
|
|
|
+ <el-input v-model="form.senderAddress" placeholder="请输入寄件详细地址" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">收件人信息</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="收件人姓名" prop="receiverName">
|
|
|
+ <el-input v-model="form.receiverName" placeholder="请输入收件人姓名" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="收件人手机" prop="receiverMobile">
|
|
|
+ <el-input v-model="form.receiverMobile" placeholder="请输入收件人手机" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="收件人座机" prop="receiverTel">
|
|
|
+ <el-input v-model="form.receiverTel" placeholder="请输入收件人座机" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="收件公司" prop="receiverCompany">
|
|
|
+ <el-input v-model="form.receiverCompany" placeholder="请输入收件公司" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="收件省" prop="receiverProvince">
|
|
|
+ <el-input v-model="form.receiverProvince" placeholder="请输入收件省" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="收件市" prop="receiverCity">
|
|
|
+ <el-input v-model="form.receiverCity" placeholder="请输入收件市" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="收件区县" prop="receiverDistrict">
|
|
|
+ <el-input v-model="form.receiverDistrict" placeholder="请输入收件区县" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="收件详细地址" prop="receiverAddress">
|
|
|
+ <el-input v-model="form.receiverAddress" placeholder="请输入收件详细地址" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">物品信息</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="物品类型" prop="goodsType">
|
|
|
+ <el-input v-model="form.goodsType" placeholder="请输入物品类型" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="总件数" prop="packageCount">
|
|
|
+ <el-input-number v-model="form.packageCount" :min="1" :max="999" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="重量(KG)" prop="weight">
|
|
|
+ <el-input-number v-model="form.weight" :min="0" :precision="2" :step="0.1" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="长度(CM)" prop="length">
|
|
|
+ <el-input-number v-model="form.length" :min="0" :precision="1" :step="1" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="宽度(CM)" prop="width">
|
|
|
+ <el-input-number v-model="form.width" :min="0" :precision="1" :step="1" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="高度(CM)" prop="height">
|
|
|
+ <el-input-number v-model="form.height" :min="0" :precision="1" :step="1" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="温层" prop="temperatureType">
|
|
|
+ <el-select v-model="form.temperatureType" placeholder="请选择温层" clearable style="width: 100%">
|
|
|
+ <el-option label="普通" :value="1" />
|
|
|
+ <el-option label="冷藏" :value="2" />
|
|
|
+ <el-option label="冷冻" :value="3" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="时效产品" prop="expressProductType">
|
|
|
+ <el-input v-model="form.expressProductType" placeholder="请输入时效产品" @change="handleExpressProductTypeChange" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="付款方式" prop="payType">
|
|
|
+ <el-select v-model="form.payType" placeholder="请选择付款方式" clearable style="width: 100%">
|
|
|
+ <el-option label="寄付月结" value="1" />
|
|
|
+ <el-option label="到付月结" value="2" />
|
|
|
+ <el-option label="第三方付" value="3" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">增值服务</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="保价金额" prop="insuredAmount">
|
|
|
+ <el-input-number v-model="form.insuredAmount" :min="0" :precision="2" :step="0.1" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="代收货款金额" prop="codAmount">
|
|
|
+ <el-input-number v-model="form.codAmount" :min="0" :precision="2" :step="0.1" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="订单金额" prop="orderAmount">
|
|
|
+ <el-input-number v-model="form.orderAmount" :min="0" :precision="2" :step="0.1" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="期望上门日期" prop="pickupDate">
|
|
|
+ <el-date-picker v-model="form.pickupDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="期望上门时间" prop="pickupTime">
|
|
|
+ <el-time-picker v-model="form.pickupTime" value-format="HH:mm" placeholder="选择时间" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="发货仓编码" prop="warehouseCode">
|
|
|
+ <el-input v-model="form.warehouseCode" placeholder="请输入发货仓编码" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="函速达文件" prop="isUploadWaybillFile">
|
|
|
+ <el-select v-model="form.isUploadWaybillFile" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="函速达打印" prop="isPrintWaybill">
|
|
|
+ <el-select v-model="form.isPrintWaybill" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="黑白打印" :value="0" />
|
|
|
+ <el-option label="彩色打印" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="签单返还" prop="isSignReturn">
|
|
|
+ <el-select v-model="form.isSignReturn" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="纸质+电子" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="京尊达" prop="isJdExpress">
|
|
|
+ <el-select v-model="form.isJdExpress" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="防撕码采集" prop="isFraudCodeCollect">
|
|
|
+ <el-select v-model="form.isFraudCodeCollect" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="开箱验货" prop="isOpenCheck">
|
|
|
+ <el-select v-model="form.isOpenCheck" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="打包服务" prop="isPackService">
|
|
|
+ <el-select v-model="form.isPackService" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="快递入仓" prop="isExpressWarehouse">
|
|
|
+ <el-select v-model="form.isExpressWarehouse" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="退回箱" prop="isReturnBox">
|
|
|
+ <el-select v-model="form.isReturnBox" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="指定签收" prop="isDesignatedSign">
|
|
|
+ <el-select v-model="form.isDesignatedSign" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="短信验证签收" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="自定义验证码" prop="designatedSignVerifyCode">
|
|
|
+ <el-input v-model="form.designatedSignVerifyCode" placeholder="请输入验证码" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="身份证验证" prop="isDesignatedSignIdcard">
|
|
|
+ <el-input v-model="form.isDesignatedSignIdcard" placeholder="请输入身份证号" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="包装服务" prop="isPackageService">
|
|
|
+ <el-select v-model="form.isPackageService" placeholder="请选择" clearable style="width: 100%">
|
|
|
+ <el-option label="否" :value="0" />
|
|
|
+ <el-option label="是" :value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="销售渠道" prop="salesChannel">
|
|
|
+ <el-input v-model="form.salesChannel" placeholder="请输入销售渠道" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="自定义信息" prop="customInfo">
|
|
|
+ <el-input v-model="form.customInfo" placeholder="请输入自定义信息" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
+ <el-button @click="cancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
|
|
+ <el-upload
|
|
|
+ ref="upload"
|
|
|
+ :limit="1"
|
|
|
+ accept=".xlsx, .xls"
|
|
|
+ :headers="upload.headers"
|
|
|
+ :action="upload.url + '?updateSupport=' + upload.updateSupport"
|
|
|
+ :disabled="upload.isUploading"
|
|
|
+ :on-progress="handleFileUploadProgress"
|
|
|
+ :on-success="handleFileSuccess"
|
|
|
+ :auto-upload="false"
|
|
|
+ drag
|
|
|
+ >
|
|
|
+ <i class="el-icon-upload" />
|
|
|
+ <div class="el-upload__text">
|
|
|
+ 将文件拖到此处,或
|
|
|
+ <em>点击上传</em>
|
|
|
+ </div>
|
|
|
+ <div slot="tip" class="el-upload__tip">
|
|
|
+ <el-checkbox v-model="upload.updateSupport" :true-label="1" :false-label="0">是否更新已经存在的数据</el-checkbox>
|
|
|
+ <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
|
|
|
+ </div>
|
|
|
+ <div slot="tip" class="el-upload__tip" style="color:red">提示:仅允许导入xls、xlsx格式文件!</div>
|
|
|
+ </el-upload>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitFileForm">确 定</el-button>
|
|
|
+ <el-button @click="upload.open = false">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <el-dialog v-if="details.open" title="订单详情" :visible.sync="details.open" width="900px" append-to-body>
|
|
|
+ <el-form ref="detailsForm" :model="details.data" label-width="130px">
|
|
|
+ <el-divider content-position="left">订单信息</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="系统订单号">{{ details.data.orderNo }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="商家订单号">{{ details.data.merchantOrderNo }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="平台订单号">{{ details.data.platformOrderNo }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="预制运单号">{{ details.data.preWaybillNo }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="运单号">{{ details.data.waybillNo }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="订单状态">
|
|
|
+ <el-tag v-if="details.data.orderStatus === 0" type="info">待处理</el-tag>
|
|
|
+ <el-tag v-else-if="details.data.orderStatus === 1" type="warning">处理中</el-tag>
|
|
|
+ <el-tag v-else-if="details.data.orderStatus === 2" type="success">已完成</el-tag>
|
|
|
+ <el-tag v-else-if="details.data.orderStatus === 3" type="danger">已取消</el-tag>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="创建时间">{{ details.data.createTime }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="更新时间">{{ details.data.updateTime }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">寄件人信息</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="寄件人姓名">{{ details.data.senderName }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="寄件人手机">{{ details.data.senderMobile }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="寄件人座机">{{ details.data.senderTel }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="寄件公司">{{ details.data.senderCompany }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="16">
|
|
|
+ <el-form-item label="寄件地址">{{ details.data.senderProvince }} {{ details.data.senderCity }} {{ details.data.senderDistrict }} {{ details.data.senderAddress }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">收件人信息</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="收件人姓名">{{ details.data.receiverName }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="收件人手机">{{ details.data.receiverMobile }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="收件人座机">{{ details.data.receiverTel }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="收件公司">{{ details.data.receiverCompany }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="16">
|
|
|
+ <el-form-item label="收件地址">{{ details.data.receiverProvince }} {{ details.data.receiverCity }} {{ details.data.receiverDistrict }} {{ details.data.receiverAddress }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">物品信息</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="物品类型">{{ details.data.goodsType }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="总件数">{{ details.data.packageCount }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="重量">{{ details.data.weight }}KG</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="长度">{{ details.data.length }}CM</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="宽度">{{ details.data.width }}CM</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="高度">{{ details.data.height }}CM</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="温层">
|
|
|
+ <span v-if="details.data.temperatureType === 1">普通</span>
|
|
|
+ <span v-else-if="details.data.temperatureType === 2">冷藏</span>
|
|
|
+ <span v-else-if="details.data.temperatureType === 3">冷冻</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="时效产品">{{ details.data.expressProductType }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="付款方式">
|
|
|
+ <span v-if="details.data.payType === '1'">寄付月结</span>
|
|
|
+ <span v-else-if="details.data.payType === '2'">到付月结</span>
|
|
|
+ <span v-else-if="details.data.payType === '3'">第三方付</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="订单金额">{{ details.data.orderAmount }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="期望上门日期">{{ details.data.pickupDate }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="期望上门时间">{{ details.data.pickupTime }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="发货仓编码">{{ details.data.warehouseCode }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">增值服务</el-divider>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="保价金额">{{ details.data.insuredAmount }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="代收货款金额">{{ details.data.codAmount }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="函速达文件">
|
|
|
+ <span v-if="details.data.isUploadWaybillFile === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isUploadWaybillFile === 1">是</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="函速达打印">
|
|
|
+ <span v-if="details.data.isPrintWaybill === 0">黑白打印</span>
|
|
|
+ <span v-else-if="details.data.isPrintWaybill === 1">彩色打印</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="签单返还">
|
|
|
+ <span v-if="details.data.isSignReturn === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isSignReturn === 1">纸质+电子</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="京尊达">
|
|
|
+ <span v-if="details.data.isJdExpress === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isJdExpress === 1">是</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="防撕码采集">
|
|
|
+ <span v-if="details.data.isFraudCodeCollect === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isFraudCodeCollect === 1">是</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="开箱验货">
|
|
|
+ <span v-if="details.data.isOpenCheck === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isOpenCheck === 1">是</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="打包服务">
|
|
|
+ <span v-if="details.data.isPackService === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isPackService === 1">是</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="快递入仓">
|
|
|
+ <span v-if="details.data.isExpressWarehouse === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isExpressWarehouse === 1">是</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="退回箱">
|
|
|
+ <span v-if="details.data.isReturnBox === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isReturnBox === 1">是</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="指定签收">
|
|
|
+ <span v-if="details.data.isDesignatedSign === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isDesignatedSign === 1">短信验证签收</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="自定义验证码">{{ details.data.designatedSignVerifyCode }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="身份证验证">{{ details.data.isDesignatedSignIdcard }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="包装服务">
|
|
|
+ <span v-if="details.data.isPackageService === 0">否</span>
|
|
|
+ <span v-else-if="details.data.isPackageService === 1">是</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="销售渠道">{{ details.data.salesChannel }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="自定义信息">{{ details.data.customInfo }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <el-dialog :title="expressDialog.title" :visible.sync="expressDialog.open" width="700px" append-to-body>
|
|
|
+ <div style="margin-bottom: 10px;">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ @click="handleSyncExpress(expressDialog.row)"
|
|
|
+ v-if="expressDialog.row && expressDialog.row.waybillNo"
|
|
|
+ >同步快递鸟物流状态</el-button>
|
|
|
+ </div>
|
|
|
+ <el-table style="width: 100%" :data="traces" border>
|
|
|
+ <el-table-column label="操作时间" width="160" align="center" prop="AcceptTime" />
|
|
|
+ <el-table-column label="位置" align="center" prop="Location" />
|
|
|
+ <el-table-column label="描述" align="center" prop="AcceptStation" />
|
|
|
+ </el-table>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { listLifeSaluteOrder, createLifeSaluteOrder, exportLifeSaluteOrder, importTemplate, getLifeSaluteOrderExpress, syncLifeSaluteOrderExpress } from '@/api/his/lifeSaluteOrder'
|
|
|
+import { getCompanyInfo } from '@/api/company/company'
|
|
|
+import { getToken } from '@/utils/auth'
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'LifeSaluteOrder',
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ loading: true,
|
|
|
+ exportLoading: false,
|
|
|
+ showSearch: true,
|
|
|
+ total: 0,
|
|
|
+ orderList: [],
|
|
|
+ title: '',
|
|
|
+ open: false,
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ orderNo: null,
|
|
|
+ merchantOrderNo: null,
|
|
|
+ platformOrderNo: null,
|
|
|
+ waybillNo: null,
|
|
|
+ receiverName: null,
|
|
|
+ receiverMobile: null,
|
|
|
+ orderStatus: null,
|
|
|
+ orderTimeRange: [],
|
|
|
+ params: {}
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ preWaybillNo: null,
|
|
|
+ merchantOrderNo: null,
|
|
|
+ platformOrderNo: null,
|
|
|
+ senderName: null,
|
|
|
+ senderMobile: null,
|
|
|
+ senderTel: null,
|
|
|
+ senderCompany: null,
|
|
|
+ senderProvince: null,
|
|
|
+ senderCity: null,
|
|
|
+ senderDistrict: null,
|
|
|
+ senderAddress: null,
|
|
|
+ receiverName: null,
|
|
|
+ receiverMobile: null,
|
|
|
+ receiverTel: null,
|
|
|
+ receiverCompany: null,
|
|
|
+ receiverProvince: null,
|
|
|
+ receiverCity: null,
|
|
|
+ receiverDistrict: null,
|
|
|
+ receiverAddress: null,
|
|
|
+ goodsType: null,
|
|
|
+ packageCount: 1,
|
|
|
+ weight: null,
|
|
|
+ length: null,
|
|
|
+ width: null,
|
|
|
+ height: null,
|
|
|
+ temperatureType: null,
|
|
|
+ expressProductType: null,
|
|
|
+ pickupDate: null,
|
|
|
+ pickupTime: null,
|
|
|
+ warehouseCode: null,
|
|
|
+ payType: null,
|
|
|
+ isUploadWaybillFile: null,
|
|
|
+ isPrintWaybill: null,
|
|
|
+ insuredAmount: null,
|
|
|
+ isSignReturn: null,
|
|
|
+ codAmount: null,
|
|
|
+ isJdExpress: null,
|
|
|
+ isFraudCodeCollect: null,
|
|
|
+ isOpenCheck: null,
|
|
|
+ isPackService: null,
|
|
|
+ isExpressWarehouse: null,
|
|
|
+ isReturnBox: null,
|
|
|
+ isDesignatedSign: null,
|
|
|
+ designatedSignVerifyCode: null,
|
|
|
+ isDesignatedSignIdcard: null,
|
|
|
+ isPackageService: null,
|
|
|
+ salesChannel: null,
|
|
|
+ orderAmount: null,
|
|
|
+ customInfo: null
|
|
|
+ },
|
|
|
+ rules: {
|
|
|
+ senderName: [
|
|
|
+ { required: true, message: '请输入寄件人姓名', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ senderMobile: [
|
|
|
+ { validator: function() {}, trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ senderTel: [
|
|
|
+ { validator: function() {}, trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ senderProvince: [
|
|
|
+ { required: true, message: '请输入寄件省', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ senderAddress: [
|
|
|
+ { required: true, message: '请输入寄件详细地址', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ receiverName: [
|
|
|
+ { required: true, message: '请输入收件人姓名', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ receiverMobile: [
|
|
|
+ { validator: function() {}, trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ receiverTel: [
|
|
|
+ { validator: function() {}, trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ receiverProvince: [
|
|
|
+ { required: true, message: '请输入收件省', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ receiverAddress: [
|
|
|
+ { required: true, message: '请输入收件详细地址', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ goodsType: [
|
|
|
+ { required: true, message: '请输入物品类型', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ expressProductType: [
|
|
|
+ { required: true, message: '请输入时效产品', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ temperatureType: [
|
|
|
+ { validator: function() {}, trigger: 'change' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ upload: {
|
|
|
+ open: false,
|
|
|
+ title: '导入生命礼赞订单',
|
|
|
+ isUploading: false,
|
|
|
+ updateSupport: 0,
|
|
|
+ headers: { Authorization: 'Bearer ' + getToken() },
|
|
|
+ url: process.env.VUE_APP_BASE_API + '/his/lifeSaluteOrder/importData'
|
|
|
+ },
|
|
|
+ details: {
|
|
|
+ open: false,
|
|
|
+ data: {}
|
|
|
+ },
|
|
|
+ expressDialog: {
|
|
|
+ open: false,
|
|
|
+ title: '物流轨迹',
|
|
|
+ row: null
|
|
|
+ },
|
|
|
+ traces: [],
|
|
|
+ deliveryStatusOptions: [],
|
|
|
+ deliveryTypeOptions: [],
|
|
|
+ orderTimePickerOptions: {
|
|
|
+ selectableRange: '00:00:00 - 23:59:59'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getDicts('sys_store_order_delivery_status').then(response => {
|
|
|
+ this.deliveryStatusOptions = response.data
|
|
|
+ })
|
|
|
+ this.getDicts('sys_delivery_type').then(response => {
|
|
|
+ this.deliveryTypeOptions = response.data
|
|
|
+ })
|
|
|
+ this.getList()
|
|
|
+ this.rules.senderMobile[0].validator = this.validateSenderContact
|
|
|
+ this.rules.senderTel[0].validator = this.validateSenderContact
|
|
|
+ this.rules.receiverMobile[0].validator = this.validateReceiverContact
|
|
|
+ this.rules.receiverTel[0].validator = this.validateReceiverContact
|
|
|
+ this.rules.temperatureType[0].validator = this.validateTemperatureType
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ validateSenderContact(rule, value, callback) {
|
|
|
+ if (!this.form.senderMobile && !this.form.senderTel) {
|
|
|
+ callback(new Error('手机和座机至少填写一项'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ validateReceiverContact(rule, value, callback) {
|
|
|
+ if (!this.form.receiverMobile && !this.form.receiverTel) {
|
|
|
+ callback(new Error('手机和座机至少填写一项'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ validateTemperatureType(rule, value, callback) {
|
|
|
+ const expressType = this.form.expressProductType
|
|
|
+ if (expressType && (expressType.indexOf('生鲜') !== -1 || expressType.indexOf('医药') !== -1) && !value) {
|
|
|
+ callback(new Error('时效产品为生鲜/医药时,温层必填'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleExpressProductTypeChange() {
|
|
|
+ this.$refs.form.clearValidate('temperatureType')
|
|
|
+ },
|
|
|
+ getList() {
|
|
|
+ this.loading = true
|
|
|
+ this.setOrderTimeQueryParams()
|
|
|
+ listLifeSaluteOrder(this.queryParams).then(response => {
|
|
|
+ this.orderList = response.rows
|
|
|
+ this.total = response.total
|
|
|
+ this.loading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ setOrderTimeQueryParams() {
|
|
|
+ const range = this.queryParams.orderTimeRange
|
|
|
+ this.queryParams.params = this.queryParams.params || {}
|
|
|
+ this.queryParams.params.createTimeStart = range && range.length > 0 ? range[0] : null
|
|
|
+ this.queryParams.params.createTimeEnd = range && range.length > 1 ? range[1] : null
|
|
|
+ },
|
|
|
+ handleQuery() {
|
|
|
+ this.queryParams.pageNum = 1
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ resetQuery() {
|
|
|
+ this.resetForm('queryForm')
|
|
|
+ this.handleQuery()
|
|
|
+ },
|
|
|
+ handleAdd() {
|
|
|
+ this.reset()
|
|
|
+ this.open = true
|
|
|
+ this.title = '创建生命礼赞订单'
|
|
|
+ getCompanyInfo().then(response => {
|
|
|
+ if (response.code === 200 && response.data) {
|
|
|
+ this.form.senderName = response.data.senderName || null
|
|
|
+ this.form.senderMobile = response.data.senderPhone || null
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleDetails(row) {
|
|
|
+ this.details.data = row
|
|
|
+ this.details.open = true
|
|
|
+ },
|
|
|
+ handleExpress(row) {
|
|
|
+ this.expressDialog.row = row
|
|
|
+ this.expressDialog.open = true
|
|
|
+ this.traces = []
|
|
|
+ getLifeSaluteOrderExpress(row.id).then(response => {
|
|
|
+ if (response.data != null && response.data.Traces != null) {
|
|
|
+ this.traces = response.data.Traces
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleSyncExpress(row) {
|
|
|
+ if (!row || !row.id) {
|
|
|
+ this.msgError('请选择订单')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.$confirm('确定同步物流状态吗?', '警告', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ return syncLifeSaluteOrderExpress(row.id)
|
|
|
+ }).then(() => {
|
|
|
+ this.msgSuccess('操作成功')
|
|
|
+ this.expressDialog.open = false
|
|
|
+ this.getList()
|
|
|
+ }).catch(() => {})
|
|
|
+ },
|
|
|
+ reset() {
|
|
|
+ this.form = {
|
|
|
+ preWaybillNo: null,
|
|
|
+ merchantOrderNo: null,
|
|
|
+ platformOrderNo: null,
|
|
|
+ senderName: null,
|
|
|
+ senderMobile: null,
|
|
|
+ senderTel: null,
|
|
|
+ senderCompany: null,
|
|
|
+ senderProvince: null,
|
|
|
+ senderCity: null,
|
|
|
+ senderDistrict: null,
|
|
|
+ senderAddress: null,
|
|
|
+ receiverName: null,
|
|
|
+ receiverMobile: null,
|
|
|
+ receiverTel: null,
|
|
|
+ receiverCompany: null,
|
|
|
+ receiverProvince: null,
|
|
|
+ receiverCity: null,
|
|
|
+ receiverDistrict: null,
|
|
|
+ receiverAddress: null,
|
|
|
+ goodsType: null,
|
|
|
+ packageCount: 1,
|
|
|
+ weight: null,
|
|
|
+ length: null,
|
|
|
+ width: null,
|
|
|
+ height: null,
|
|
|
+ temperatureType: null,
|
|
|
+ expressProductType: null,
|
|
|
+ pickupDate: null,
|
|
|
+ pickupTime: null,
|
|
|
+ warehouseCode: null,
|
|
|
+ payType: null,
|
|
|
+ isUploadWaybillFile: null,
|
|
|
+ isPrintWaybill: null,
|
|
|
+ insuredAmount: null,
|
|
|
+ isSignReturn: null,
|
|
|
+ codAmount: null,
|
|
|
+ isJdExpress: null,
|
|
|
+ isFraudCodeCollect: null,
|
|
|
+ isOpenCheck: null,
|
|
|
+ isPackService: null,
|
|
|
+ isExpressWarehouse: null,
|
|
|
+ isReturnBox: null,
|
|
|
+ isDesignatedSign: null,
|
|
|
+ designatedSignVerifyCode: null,
|
|
|
+ isDesignatedSignIdcard: null,
|
|
|
+ isPackageService: null,
|
|
|
+ salesChannel: null,
|
|
|
+ orderAmount: null,
|
|
|
+ customInfo: null
|
|
|
+ }
|
|
|
+ this.resetForm('form')
|
|
|
+ },
|
|
|
+ cancel() {
|
|
|
+ this.open = false
|
|
|
+ this.reset()
|
|
|
+ },
|
|
|
+ submitForm() {
|
|
|
+ this.$refs['form'].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ createLifeSaluteOrder(this.form).then(response => {
|
|
|
+ if (response.code === 200) {
|
|
|
+ this.msgSuccess('创建成功')
|
|
|
+ this.open = false
|
|
|
+ this.getList()
|
|
|
+ } else {
|
|
|
+ this.msgError(response.msg || '创建失败')
|
|
|
+ }
|
|
|
+ }).catch(() => {
|
|
|
+ this.msgError('创建失败')
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleExport() {
|
|
|
+ this.$confirm('是否确认导出所有生命礼赞订单数据项?', '警告', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ this.exportLoading = true
|
|
|
+ return exportLifeSaluteOrder(this.queryParams)
|
|
|
+ }).then(response => {
|
|
|
+ this.download(response.msg)
|
|
|
+ this.exportLoading = false
|
|
|
+ }).catch(() => {
|
|
|
+ this.exportLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleImport() {
|
|
|
+ this.upload.title = '导入生命礼赞订单'
|
|
|
+ this.upload.open = true
|
|
|
+ },
|
|
|
+ importTemplate() {
|
|
|
+ importTemplate().then(response => {
|
|
|
+ this.download(response.msg)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleFileUploadProgress(event, file, fileList) {
|
|
|
+ this.upload.isUploading = true
|
|
|
+ },
|
|
|
+ handleFileSuccess(response, file, fileList) {
|
|
|
+ this.upload.open = false
|
|
|
+ this.upload.isUploading = false
|
|
|
+ this.$refs.upload.clearFiles()
|
|
|
+ this.$alert(response.msg, '导入结果', { dangerouslyUseHTMLString: true })
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ submitFileForm() {
|
|
|
+ this.$refs.upload.submit()
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|