夜良king 2023-04-19 10:34:43 +08:00
commit 0883a967b6
3 changed files with 445 additions and 569 deletions

View File

@ -4,22 +4,10 @@
<Row @keydown.enter.native="handleSearch"> <Row @keydown.enter.native="handleSearch">
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form"> <Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
<Form-item label="订单号" prop="orderSn"> <Form-item label="订单号" prop="orderSn">
<Input <Input type="text" v-model="searchForm.orderSn" placeholder="请输入订单号" clearable style="width: 200px" />
type="text"
v-model="searchForm.orderSn"
placeholder="请输入订单号"
clearable
style="width: 200px"
/>
</Form-item> </Form-item>
<Form-item label="会员名称" prop="buyerName"> <Form-item label="会员名称" prop="buyerName">
<Input <Input type="text" v-model="searchForm.buyerName" placeholder="请输入会员名称" clearable style="width: 200px" />
type="text"
v-model="searchForm.buyerName"
placeholder="请输入会员名称"
clearable
style="width: 200px"
/>
</Form-item> </Form-item>
<Form-item label="订单状态" prop="orderStatus"> <Form-item label="订单状态" prop="orderStatus">
<Select v-model="searchForm.orderStatus" placeholder="请选择" clearable style="width: 200px"> <Select v-model="searchForm.orderStatus" placeholder="请选择" clearable style="width: 200px">
@ -32,43 +20,19 @@
</Select> </Select>
</Form-item> </Form-item>
<Form-item label="下单时间"> <Form-item label="下单时间">
<DatePicker <DatePicker v-model="selectDate" type="datetimerange" format="yyyy-MM-dd" clearable
v-model="selectDate" @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px"></DatePicker>
type="datetimerange"
format="yyyy-MM-dd"
clearable
@on-change="selectDateRange"
placeholder="选择起始时间"
style="width: 200px"
></DatePicker>
</Form-item> </Form-item>
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button> <Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
</Form> </Form>
</Row> </Row>
<Table <Table :loading="loading" border :columns="columns" :data="data" ref="table" class="mt_10" sortable="custom"
:loading="loading" @on-sort-change="changeSort"></Table>
border
:columns="columns"
:data="data"
ref="table"
class="mt_10"
sortable="custom"
@on-sort-change="changeSort"
></Table>
<Row type="flex" justify="end" class="mt_10"> <Row type="flex" justify="end" class="mt_10">
<Page <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage"
:current="searchForm.pageNumber" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]" size="small" show-total show-elevator
:total="total" show-sizer></Page>
:page-size="searchForm.pageSize"
@on-change="changePage"
@on-page-size-change="changePageSize"
:page-size-opts="[10, 20, 50]"
size="small"
show-total
show-elevator
show-sizer
></Page>
</Row> </Row>
</Card> </Card>
</div> </div>
@ -290,10 +254,11 @@
}, },
// //
detail (v) { detail (v) {
console.log(v.orderType);
let sn = v.sn; let sn = v.sn;
this.$router.push({ this.$router.push({
name: "order-detail", name: "order-detail",
query: {sn: sn}, query: { sn: sn, orderType: v.orderType },
}); });
}, },

View File

@ -4,24 +4,12 @@
<Card style="height: 60px"> <Card style="height: 60px">
<div style=""> <div style="">
<Button v-if="allowOperation.editPrice" @click="modifyPrice"></Button> <Button v-if="allowOperation.editPrice" @click="modifyPrice"></Button>
<Button <Button v-if="allowOperation.editConsignee" @click="editAddress" type="primary" ghost>修改收货地址</Button>
v-if="allowOperation.editConsignee" <Button v-if="allowOperation.cancel" @click="orderCancel" type="warning" ghost>订单取消</Button>
@click="editAddress" <Button v-if="orderInfo.order.orderStatus === 'UNPAID'" @click="confirmPrice" type="primary"></Button>
type="primary"
ghost
>修改收货地址</Button
>
<Button v-if="allowOperation.cancel" @click="orderCancel" type="warning" ghost
>订单取消</Button
>
<Button
v-if="orderInfo.order.orderStatus === 'UNPAID'"
@click="confirmPrice"
type="primary"
>收款</Button
>
<Button @click="orderLog" type="info" ghost>订单日志</Button> <Button @click="orderLog" type="info" ghost>订单日志</Button>
<Button @click="printOrder" type="primary" ghost style="float:right;">打印发货单</Button> <Button @click="printOrder" type="primary" ghost style="float:right;"
v-if="$route.query.orderType != 'VIRTUAL'">打印发货单</Button>
</div> </div>
</Card> </Card>
<Card class="mt_10 clearfix"> <Card class="mt_10 clearfix">
@ -66,10 +54,8 @@
</div> </div>
</div> </div>
<div <div class="div-item"
class="div-item" v-if="orderInfo.order.needReceipt == true && orderInfo.receipt && orderInfo.receipt.taxpayerId">
v-if="orderInfo.order.needReceipt == true && orderInfo.receipt && orderInfo.receipt.taxpayerId"
>
<div class="div-item-left">发票税号</div> <div class="div-item-left">发票税号</div>
<div class="div-item-right"> <div class="div-item-right">
{{ orderInfo.receipt && orderInfo.receipt.taxpayerId ? orderInfo.receipt.taxpayerId : "暂无" }} {{ orderInfo.receipt && orderInfo.receipt.taxpayerId ? orderInfo.receipt.taxpayerId : "暂无" }}
@ -127,12 +113,12 @@
<div class="div-item-right">{{ orderInfo.order.remark }}</div> <div class="div-item-right">{{ orderInfo.order.remark }}</div>
</div> </div>
<div class="div-item" v-if="orderInfo.order.needReceipt == false"> <!-- <div class="div-item" v-if="orderInfo.order.needReceipt == false">
<div class="div-item-left">发票信息</div> <div class="div-item-left">发票信息</div>
<div class="div-item-right">暂无发票信息</div> <div class="div-item-right">暂无发票信息</div>
</div> </div> -->
<div class="div-item" v-if="orderInfo.order.needReceipt == true"> <!-- <div class="div-item" v-if="orderInfo.order.needReceipt == true">
<div class="div-item-left">发票抬头</div> <div class="div-item-left">发票抬头</div>
<div class="div-item-right"> <div class="div-item-right">
{{ {{
@ -141,10 +127,8 @@
</div> </div>
</div> </div>
<div <div class="div-item"
class="div-item" v-if="orderInfo.order.needReceipt == true && orderInfo.receipt && orderInfo.receipt.taxpayerId">
v-if="orderInfo.order.needReceipt == true && orderInfo.receipt && orderInfo.receipt.taxpayerId"
>
<div class="div-item-left">发票税号</div> <div class="div-item-left">发票税号</div>
<div class="div-item-right"> <div class="div-item-right">
{{ orderInfo.receipt && orderInfo.receipt.taxpayerId ? orderInfo.receipt.taxpayerId : "暂无" }} {{ orderInfo.receipt && orderInfo.receipt.taxpayerId ? orderInfo.receipt.taxpayerId : "暂无" }}
@ -178,9 +162,9 @@
<div class="div-item-right"> <div class="div-item-right">
{{ orderInfo.receipt ? (orderInfo.receipt.receiptStatus == 0 ? "未开" : "已开") : "空" }} {{ orderInfo.receipt ? (orderInfo.receipt.receiptStatus == 0 ? "未开" : "已开") : "空" }}
</div> </div>
</div> </div> -->
<div class="div-item"> <div class="div-item" v-if="$route.query.orderType != 'VIRTUAL'">
<div class="div-item-left">配送方式</div> <div class="div-item-left">配送方式</div>
<div class="div-item-right"> <div class="div-item-right">
{{ orderInfo.deliveryMethodValue }} {{ orderInfo.deliveryMethodValue }}
@ -189,22 +173,12 @@
</div> </div>
</Card> </Card>
<Card class="mt_10"> <Card class="mt_10">
<Table <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom">
:loading="loading"
border
:columns="columns"
:data="data"
ref="table"
sortable="custom"
>
<!-- 商品栏目格式化 --> <!-- 商品栏目格式化 -->
<template slot="goodsSlot" slot-scope="{ row }"> <template slot="goodsSlot" slot-scope="{ row }">
<div style="margin-top: 5px; height: 80px; display: flex"> <div style="margin-top: 5px; height: 80px; display: flex">
<div style=""> <div style="">
<img <img :src="row.image" style="height: 60px; margin-top: 1px; width: 60px" />
:src="row.image"
style="height: 60px; margin-top: 1px; width: 60px"
/>
</div> </div>
<div style="margin-left: 13px"> <div style="margin-left: 13px">
@ -216,28 +190,12 @@
{{ key }} : {{ item }} {{ key }} : {{ item }}
</span> </span>
</span> </span>
<Poptip <Poptip trigger="hover" style="display: block" title="扫码在手机中查看" transfer>
trigger="hover"
style="display: block"
title="扫码在手机中查看"
transfer
>
<div slot="content"> <div slot="content">
<vue-qr <vue-qr :text="wapLinkTo(row.goodsId, row.skuId)" :margin="0" colorDark="#000" colorLight="#fff"
:text="wapLinkTo(row.goodsId, row.skuId)" :size="150"></vue-qr>
:margin="0"
colorDark="#000"
colorLight="#fff"
:size="150"
></vue-qr>
</div> </div>
<img <img src="../../../assets/qrcode.svg" class="hover-pointer" width="20" height="20" alt="" />
src="../../../assets/qrcode.svg"
class="hover-pointer"
width="20"
height="20"
alt=""
/>
</Poptip> </Poptip>
</div> </div>
</div> </div>
@ -251,33 +209,31 @@
orderInfo.order.priceDetailDTO.goodsPrice | unitPrice("¥") orderInfo.order.priceDetailDTO.goodsPrice | unitPrice("¥")
}}</span> }}</span>
</li> </li>
<li <li v-if="
v-if="
orderInfo.order.priceDetailDTO.discountPrice && orderInfo.order.priceDetailDTO.discountPrice &&
orderInfo.order.priceDetailDTO.discountPrice > 0 orderInfo.order.priceDetailDTO.discountPrice > 0
" ">
>
<span class="label">优惠金额</span> <span class="label">优惠金额</span>
<span class="txt"> <span class="txt">
{{ orderInfo.order.priceDetailDTO.discountPrice | unitPrice("¥") }} {{ orderInfo.order.priceDetailDTO.discountPrice | unitPrice("¥") }}
</span> </span>
</li> </li>
<li <li v-if="
v-if="
orderInfo.order.priceDetailDTO.couponPrice && orderInfo.order.priceDetailDTO.couponPrice &&
orderInfo.order.priceDetailDTO.couponPrice > 0 orderInfo.order.priceDetailDTO.couponPrice > 0
" ">
>
<span class="label">优惠券金额</span> <span class="label">优惠券金额</span>
<span class="txt"> <span class="txt">
{{ orderInfo.order.priceDetailDTO.couponPrice | unitPrice("¥") }} {{ orderInfo.order.priceDetailDTO.couponPrice | unitPrice("¥") }}
</span> </span>
</li> </li>
<li v-if="orderInfo.order.priceDetailDTO.discountPriceDetail != undefined && orderInfo.order.priceDetailDTO.discountPriceDetail && orderInfo.order.priceDetailDTO.discountPriceDetail != null && orderInfo.order.priceDetailDTO.discountPriceDetail != ''"> <li
v-if="orderInfo.order.priceDetailDTO.discountPriceDetail != undefined && orderInfo.order.priceDetailDTO.discountPriceDetail && orderInfo.order.priceDetailDTO.discountPriceDetail != null && orderInfo.order.priceDetailDTO.discountPriceDetail != ''">
<div class="label"> <div class="label">
<Poptip trigger="hover" placement="left" width="200"> <Poptip trigger="hover" placement="left" width="200">
<Icon v-if="typeList.length > 0" type="ios-alert-outline" size="17" @click="getOrderPrice" color="#cc0000"/> <Icon v-if="typeList.length > 0" type="ios-alert-outline" size="17" @click="getOrderPrice"
color="#cc0000" />
<template #content> <template #content>
<div class="api" style="text-align:left;"> <div class="api" style="text-align:left;">
<table> <table>
@ -318,9 +274,7 @@
</li> </li>
<li v-if="orderInfo.order.priceDetailDTO.updatePrice"> <li v-if="orderInfo.order.priceDetailDTO.updatePrice">
<span class="label">修改金额</span> <span class="label">修改金额</span>
<span class="txt theme_color" <span class="txt theme_color">¥{{ orderInfo.order.priceDetailDTO.updatePrice | unitPrice }}</span>
>¥{{ orderInfo.order.priceDetailDTO.updatePrice | unitPrice }}</span
>
</li> </li>
<li v-if="orderInfo.order.priceDetailDTO.payPoint != 0"> <li v-if="orderInfo.order.priceDetailDTO.payPoint != 0">
<span class="label">使用积分</span> <span class="label">使用积分</span>
@ -330,9 +284,7 @@
</li> </li>
<li> <li>
<span class="label">应付金额</span> <span class="label">应付金额</span>
<span class="txt flowPrice" <span class="txt flowPrice">¥{{ orderInfo.order.priceDetailDTO.flowPrice | unitPrice }}</span>
>¥{{ orderInfo.order.priceDetailDTO.flowPrice | unitPrice }}</span
>
</li> </li>
</ul> </ul>
</div> </div>
@ -345,20 +297,10 @@
<span>修改金额</span> <span>修改金额</span>
</p> </p>
<div> <div>
<Form <Form ref="modifyPriceForm" :model="modifyPriceForm" label-position="left" :label-width="70"
ref="modifyPriceForm" :rules="modifyPriceValidate">
:model="modifyPriceForm"
label-position="left"
:label-width="70"
:rules="modifyPriceValidate"
>
<FormItem label="订单金额" prop="price"> <FormItem label="订单金额" prop="price">
<InputNumber <InputNumber style="width: 100px" v-model="modifyPriceForm.price" :min="0" :max="999999"></InputNumber>
style="width: 100px"
v-model="modifyPriceForm.price"
:min="0"
:max="999999"
></InputNumber>
<span class="ml_10"></span> <span class="ml_10"></span>
</FormItem> </FormItem>
</Form> </Form>
@ -375,20 +317,11 @@
<span>订单取消</span> <span>订单取消</span>
</p> </p>
<div> <div>
<Form <Form ref="orderCancelForm" :model="orderCancelForm" label-position="left" :label-width="100"
ref="orderCancelForm" :rules="orderCancelValidate">
:model="orderCancelForm"
label-position="left"
:label-width="100"
:rules="orderCancelValidate"
>
<FormItem label="取消原因" prop="reason"> <FormItem label="取消原因" prop="reason">
<Input <Input v-model="orderCancelForm.reason" type="textarea" :autosize="{ minRows: 2, maxRows: 5 }"
v-model="orderCancelForm.reason" placeholder="请输入取消原因"></Input>
type="textarea"
:autosize="{ minRows: 2, maxRows: 5 }"
placeholder="请输入取消原因"
></Input>
</FormItem> </FormItem>
</Form> </Form>
</div> </div>
@ -404,55 +337,22 @@
<span>修改收件信息</span> <span>修改收件信息</span>
</p> </p>
<div> <div>
<Form <Form ref="addressForm" :model="addressForm" label-position="left" :label-width="100" :rules="addressRule">
ref="addressForm"
:model="addressForm"
label-position="left"
:label-width="100"
:rules="addressRule"
>
<FormItem label="收件人" prop="consigneeName"> <FormItem label="收件人" prop="consigneeName">
<Input <Input v-model="addressForm.consigneeName" size="large" maxlength="20"></Input>
v-model="addressForm.consigneeName"
size="large"
maxlength="20"
></Input>
</FormItem> </FormItem>
<FormItem label="联系方式" prop="consigneeMobile"> <FormItem label="联系方式" prop="consigneeMobile">
<Input <Input v-model="addressForm.consigneeMobile" size="large" maxlength="11"></Input>
v-model="addressForm.consigneeMobile"
size="large"
maxlength="11"
></Input>
</FormItem> </FormItem>
<FormItem label="地址信息" prop="consigneeAddressPath"> <FormItem label="地址信息" prop="consigneeAddressPath">
<Input <Input v-model="addr" disabled style="width: 305px" v-if="showRegion == false" />
v-model="addr" <Button v-if="showRegion == false" @click="regionClick" :loading="submitLoading" type="primary"
disabled icon="ios-create-outline" style="margin-left: 8px">修改
style="width: 305px"
v-if="showRegion == false"
/>
<Button
v-if="showRegion == false"
@click="regionClick"
:loading="submitLoading"
type="primary"
icon="ios-create-outline"
style="margin-left: 8px"
>修改
</Button> </Button>
<region <region style="width: 400px" @selected="selectedRegion" v-if="showRegion == true" />
style="width: 400px"
@selected="selectedRegion"
v-if="showRegion == true"
/>
</FormItem> </FormItem>
<FormItem label="详细地址" prop="consigneeDetail"> <FormItem label="详细地址" prop="consigneeDetail">
<Input <Input v-model="addressForm.consigneeDetail" size="large" maxlength="50"></Input>
v-model="addressForm.consigneeDetail"
size="large"
maxlength="50"
></Input>
</FormItem> </FormItem>
</Form> </Form>
</div> </div>
@ -467,14 +367,8 @@
<span>订单日志</span> <span>订单日志</span>
</p> </p>
<div class="order-log-div"> <div class="order-log-div">
<Table <Table :loading="loading" border :columns="orderLogColumns" :data="orderInfo.orderLogs" ref="table"
:loading="loading" sortable="custom"></Table>
border
:columns="orderLogColumns"
:data="orderInfo.orderLogs"
ref="table"
sortable="custom"
></Table>
</div> </div>
<div slot="footer" style="text-align: right"> <div slot="footer" style="text-align: right">
@ -484,7 +378,9 @@
<Modal v-model="printModal" width="530" @on-cancel="printCancel"> <Modal v-model="printModal" width="530" @on-cancel="printCancel">
<p slot="header" style="line-height:26px;height:26px;"> <p slot="header" style="line-height:26px;height:26px;">
<span style="float: left;">打印发货单</span> <span style="float: left;">打印发货单</span>
<Button size="small" style="margin-right:35px;float: right;padding-bottom: 2px;" @click="printHiddenInfo"><template v-if="printHiddenFlag"></template><template v-else></template></Button> <Button size="small" style="margin-right:35px;float: right;padding-bottom: 2px;"
@click="printHiddenInfo"><template v-if="printHiddenFlag"></template><template
v-else>隐藏</template>敏感信息</Button>
</p> </p>
<div style="max-height:500px;overflow-y:auto;overflow-x:hidden;"> <div style="max-height:500px;overflow-y:auto;overflow-x:hidden;">
<div id="printInfo"> <div id="printInfo">
@ -498,13 +394,15 @@
<p class="lineH30 f14">收件人{{ orderInfo.order.consigneeName }}</p> <p class="lineH30 f14">收件人{{ orderInfo.order.consigneeName }}</p>
</Col> </Col>
<Col span="12" v-if="orderInfo.order.consigneeMobile"> <Col span="12" v-if="orderInfo.order.consigneeMobile">
<p class="lineH30 f14" v-if="printHiddenFlag">{{ orderInfo.order.consigneeMobile.replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2") }}</p> <p class="lineH30 f14" v-if="printHiddenFlag">{{
orderInfo.order.consigneeMobile.replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2") }}</p>
<p class="lineH30 f14" v-else>{{ orderInfo.order.consigneeMobile }}</p> <p class="lineH30 f14" v-else>{{ orderInfo.order.consigneeMobile }}</p>
</Col> </Col>
</Row> </Row>
<Row> <Row>
<Col span="24"> <Col span="24">
<p class="lineH30 f14">收货地址{{ orderInfo.order.consigneeAddressPath }}{{ orderInfo.order.consigneeDetail }}</p> <p class="lineH30 f14">收货地址{{ orderInfo.order.consigneeAddressPath }}{{ orderInfo.order.consigneeDetail }}
</p>
</Col> </Col>
</Row> </Row>
<Row> <Row>
@ -903,6 +801,7 @@ export default {
.lineH30 { .lineH30 {
line-height: 30px; line-height: 30px;
} }
.order-log-div { .order-log-div {
line-height: 30px; line-height: 30px;
overflow-y: scroll; overflow-y: scroll;
@ -1000,16 +899,19 @@ export default {
} }
} }
} }
.f14 { .f14 {
font-size: 14px; font-size: 14px;
color: #333; color: #333;
} }
.printgoodtitle { .printgoodtitle {
font-size: 14px; font-size: 14px;
line-height: 1.5; line-height: 1.5;
margin-top: 15px; margin-top: 15px;
color: #333; color: #333;
} }
.printgoodinfo { .printgoodinfo {
// font-size: 14px; // font-size: 14px;
// background: #f2f2f2; // background: #f2f2f2;
@ -1017,6 +919,7 @@ export default {
padding: 10px; padding: 10px;
overflow: hidden; overflow: hidden;
color: #333; color: #333;
.printgooditem { .printgooditem {
border-bottom: 1px solid #e8eaec; border-bottom: 1px solid #e8eaec;
display: flex; display: flex;
@ -1025,34 +928,42 @@ export default {
line-height: 30px; line-height: 30px;
margin-bottom: 10px; margin-bottom: 10px;
padding-bottom: 10px; padding-bottom: 10px;
.printgoodname { .printgoodname {
flex: 1; flex: 1;
overflow: hidden; overflow: hidden;
.printgoodguid { .printgoodguid {
font-size: 12px; font-size: 12px;
color: #999999; color: #999999;
line-height: 1.5; line-height: 1.5;
.printgoodguiditem { .printgoodguiditem {
margin-right: 10px; margin-right: 10px;
} }
} }
} }
.printgoodprice { .printgoodprice {
width: 135px; width: 135px;
margin-left: 15px; margin-left: 15px;
} }
.printgoodnumber { .printgoodnumber {
width: 85px; width: 85px;
margin-left: 15px; margin-left: 15px;
} }
} }
} }
@media print { @media print {
@page { @page {
size: auto; size: auto;
margin: 3mm; margin: 3mm;
} }
html,body{
html,
body {
height: inherit; height: inherit;
} }
} }