Yer 2023-04-21 17:36:05 +08:00
commit 8b0ca5ba7e
6 changed files with 491 additions and 615 deletions

View File

@ -26,11 +26,10 @@
<FormItem label="规格名称" prop="specName"> <FormItem label="规格名称" prop="specName">
<Input v-model="form.specName" maxlength="30" clearable style="width: 100%" /> <Input v-model="form.specName" maxlength="30" clearable style="width: 100%" />
</FormItem> </FormItem>
{{ form }}
<FormItem label="规格值" prop="specValue"> <FormItem label="规格值" prop="specValue">
<Select v-model="form.specValue" placeholder="输入后回车添加" multiple filterable allow-create <Select v-model="form.specValue" placeholder="输入后回车添加" multiple filterable allow-create
:popper-append-to-body="false" popper-class="spec-values-popper" :popper-append-to-body="false" popper-class="spec-values-popper"
style="width: 100%; text-align: left; margin-right: 10px"> style="width: 100%; text-align: left; margin-right: 10px" @on-create="handleCreate2">
<Option v-for="item in specValue" :value="item" :label="item" :key="item"> <Option v-for="item in specValue" :value="item" :label="item" :key="item">
</Option> </Option>
</Select> </Select>
@ -51,7 +50,7 @@ import { regular } from "@/utils";
export default { export default {
name: "spec", name: "spec",
components: {}, components: {},
data() { data () {
return { return {
loading: true, // loading: true, //
modalType: 0, // modalType: 0, //
@ -150,29 +149,32 @@ export default {
}; };
}, },
methods: { methods: {
handleCreate2 (v) {
console.log(v);
},
// //
init() { init () {
this.getDataList(); this.getDataList();
}, },
// //
changePage(v) { changePage (v) {
this.searchForm.pageNumber = v; this.searchForm.pageNumber = v;
this.getDataList(); this.getDataList();
this.clearSelectAll(); this.clearSelectAll();
}, },
// //
changePageSize(v) { changePageSize (v) {
this.searchForm.pageSize = v; this.searchForm.pageSize = v;
this.getDataList(); this.getDataList();
}, },
// //
handleSearch() { handleSearch () {
this.searchForm.pageNumber = 1; this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10; this.searchForm.pageSize = 10;
this.getDataList(); this.getDataList();
}, },
// //
handleReset() { handleReset () {
this.$refs.searchForm.resetFields(); this.$refs.searchForm.resetFields();
this.searchForm.pageNumber = 1; this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10; this.searchForm.pageSize = 10;
@ -180,7 +182,7 @@ export default {
this.getDataList(); this.getDataList();
}, },
// //
changeSort(e) { changeSort (e) {
this.searchForm.sort = e.key; this.searchForm.sort = e.key;
this.searchForm.order = e.order; this.searchForm.order = e.order;
if (e.order === "normal") { if (e.order === "normal") {
@ -189,16 +191,16 @@ export default {
this.getDataList(); this.getDataList();
}, },
// //
clearSelectAll() { clearSelectAll () {
this.$refs.table.selectAll(false); this.$refs.table.selectAll(false);
}, },
// //
changeSelect(e) { changeSelect (e) {
this.selectList = e; this.selectList = e;
this.selectCount = e.length; this.selectCount = e.length;
}, },
// //
getDataList() { getDataList () {
this.loading = true; this.loading = true;
// //
getSpecListData(this.searchForm).then((res) => { getSpecListData(this.searchForm).then((res) => {
@ -211,7 +213,7 @@ export default {
this.loading = false; this.loading = false;
}, },
// //
saveSpec() { saveSpec () {
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
if (valid) { if (valid) {
this.submitLoading = true; this.submitLoading = true;
@ -246,7 +248,7 @@ export default {
}); });
}, },
// //
add() { add () {
this.modalType = 0; this.modalType = 0;
this.modalTitle = "添加"; this.modalTitle = "添加";
this.$refs.form.resetFields(); this.$refs.form.resetFields();
@ -255,8 +257,7 @@ export default {
this.modalVisible = true; this.modalVisible = true;
}, },
// //
edit(v) { edit (v) {
console.log(v);
this.modalType = 1; this.modalType = 1;
this.modalTitle = "编辑"; this.modalTitle = "编辑";
// null"" // null""
@ -266,23 +267,21 @@ export default {
} }
} }
let localVal = v.specValue; let localVal = v.specValue;
console.log(localVal.split(","))
this.form.specName = v.specName; this.form.specName = v.specName;
this.form.id = v.id; this.form.id = v.id;
this.$nextTick(() => { // this.$nextTick(() => {
this.$set(this.form, 'specValue', localVal.split(",")) // this.$set(this.form, 'specValue', localVal.split(","))
}) // })
this.form.specValue = localVal.split(",")
if (localVal && localVal.indexOf("," > 0)) { if (localVal && localVal.indexOf("," > 0)) {
this.specValue = this.form.specValue; this.specValue = this.form.specValue;
} else { } else {
this.specValue = []; this.specValue = [];
} }
console.log("form.specValue", this.form);
this.modalVisible = true; this.modalVisible = true;
}, },
// //
remove(v) { remove (v) {
this.$Modal.confirm({ this.$Modal.confirm({
title: "确认删除", title: "确认删除",
content: "您确认要删除 " + v.specName + " ?", content: "您确认要删除 " + v.specName + " ?",
@ -299,7 +298,7 @@ export default {
}); });
}, },
// //
delAll() { delAll () {
if (this.selectCount <= 0) { if (this.selectCount <= 0) {
this.$Message.warning("您还未选择要删除的数据"); this.$Message.warning("您还未选择要删除的数据");
return; return;
@ -327,7 +326,7 @@ export default {
}); });
}, },
}, },
mounted() { mounted () {
this.init(); this.init();
}, },
}; };

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,274 +20,251 @@
</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>
</template> </template>
<script> <script>
import * as API_Order from "@/api/order"; import * as API_Order from "@/api/order";
export default { export default {
name: "fictitiousOrderList", name: "fictitiousOrderList",
data() { data () {
return { return {
loading: true, // loading: true, //
searchForm: { searchForm: {
// //
pageNumber: 1, // pageNumber: 1, //
pageSize: 10, // pageSize: 10, //
sort: "", // sort: "", //
order: "", // order: "", //
startDate: "", // startDate: "", //
endDate: "", // endDate: "", //
orderType: "VIRTUAL", orderType: "VIRTUAL",
orderSn: "", orderSn: "",
buyerName: "", buyerName: "",
orderStatus: "" orderStatus: ""
},
selectDate: null, //
columns: [
{
title: "订单号",
key: "sn",
minWidth: 230,
tooltip: true
}, },
{
selectDate: null, // title: "下单时间",
columns: [ key: "createTime",
{ width: 200,
title: "订单号", },
key: "sn", {
minWidth: 230, title: "订单来源",
tooltip: true key: "clientType",
}, width: 95,
{ render: (h, params) => {
title: "下单时间", if (params.row.clientType == "H5") {
key: "createTime", return h("div", {}, "移动端");
width: 200, } else if (params.row.clientType == "PC") {
}, return h("div", {}, "PC端");
{ } else if (params.row.clientType == "WECHAT_MP") {
title: "订单来源", return h("div", {}, "小程序端");
key: "clientType", } else if (params.row.clientType == "APP") {
width: 95, return h("div", {}, "移动应用端");
render: (h, params) => { } else {
if (params.row.clientType == "H5") { return h("div", {}, params.row.clientType);
return h("div", {}, "移动端");
} else if (params.row.clientType == "PC") {
return h("div", {}, "PC端");
} else if (params.row.clientType == "WECHAT_MP") {
return h("div", {}, "小程序端");
} else if (params.row.clientType == "APP") {
return h("div", {}, "移动应用端");
} else {
return h("div", {}, params.row.clientType);
}
},
},
{
title: "买家名称",
key: "memberName",
width: 130,
},
{
title: "订单金额",
key: "flowPrice",
minWidth: 120,
sortable: true,
render: (h, params) => {
return h(
"div",
this.$options.filters.unitPrice(params.row.flowPrice, "¥")
);
},
},
{
title: "订单状态",
key: "orderStatus",
width:95,
render: (h, params) => {
if (params.row.orderStatus == "UNPAID") {
return h("div", [h("tag", {props: {color: "magenta"}}, "未付款")]);
} else if (params.row.orderStatus == "PAID") {
return h("div", [h("tag", {props: {color: "blue"}}, "已付款")]);
} else if (params.row.orderStatus == "COMPLETED") {
return h("div", [h("tag", {props: {color: "green"}}, "已完成")]);
} else if (params.row.orderStatus == "TAKE") {
return h("div", [h("tag", {props: {color: "volcano"}}, "待核验")]);
} else if (params.row.orderStatus == "CANCELLED") {
return h("div", [h("tag", {props: {color: "red"}}, "已取消")]);
}
} }
}, },
},
{ {
title: "操作", title: "买家名称",
key: "action", key: "memberName",
align: "center", width: 130,
width: 200, },
render: (h, params) => { {
return h("div", [ title: "订单金额",
h( key: "flowPrice",
"Button", minWidth: 120,
sortable: true,
{ render: (h, params) => {
props: { return h(
type: "primary", "div",
size: "small", this.$options.filters.unitPrice(params.row.flowPrice, "¥")
}, );
attrs: {
disabled: params.row.orderStatus == "UNPAID" ? false : true,
},
style: {
marginRight: "5px",
},
on: {
click: () => {
this.confirmPrice(params.row);
},
},
},
"收款"
),
h(
"Button",
{
props: {
type: "info",
size: "small",
},
style: {
marginRight: "5px",
},
on: {
click: () => {
this.detail(params.row);
},
},
},
"查看"
),
]);
},
}, },
], },
data: [], //
total: 0, // {
}; title: "订单状态",
}, key: "orderStatus",
methods: { width: 95,
// render: (h, params) => {
init() { if (params.row.orderStatus == "UNPAID") {
this.getDataList(); return h("div", [h("tag", { props: { color: "magenta" } }, "未付款")]);
}, } else if (params.row.orderStatus == "PAID") {
// return h("div", [h("tag", { props: { color: "blue" } }, "已付款")]);
changePage(v) { } else if (params.row.orderStatus == "COMPLETED") {
this.searchForm.pageNumber = v; return h("div", [h("tag", { props: { color: "green" } }, "已完成")]);
this.getDataList(); } else if (params.row.orderStatus == "TAKE") {
}, return h("div", [h("tag", { props: { color: "volcano" } }, "待核验")]);
// } else if (params.row.orderStatus == "CANCELLED") {
changePageSize(v) { return h("div", [h("tag", { props: { color: "red" } }, "已取消")]);
this.searchForm.pageNumber = 1; }
this.searchForm.pageSize = v;
this.getDataList();
},
//
handleSearch() {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getDataList();
},
//
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
//
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
//
getDataList() {
this.loading = true;
API_Order.getOrderList(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result.records;
this.total = res.result.total;
} }
}); },
this.total = this.data.length;
this.loading = false; {
}, title: "操作",
// key: "action",
confirmPrice(v) { align: "center",
this.$Modal.confirm({ width: 200,
title: "确认收款", render: (h, params) => {
content: "您确定要收款吗?", return h("div", [
loading: true, h(
onOk: () => { "Button",
API_Order.orderPay(v.sn).then(res => {
if(res.success){ {
this.$Message.success("收款成功") props: {
this.getDataList() type: "primary",
} size: "small",
this.$Modal.remove(); },
}) attrs: {
disabled: params.row.orderStatus == "UNPAID" ? false : true,
},
style: {
marginRight: "5px",
},
on: {
click: () => {
this.confirmPrice(params.row);
},
},
},
"收款"
),
h(
"Button",
{
props: {
type: "info",
size: "small",
},
style: {
marginRight: "5px",
},
on: {
click: () => {
this.detail(params.row);
},
},
},
"查看"
),
]);
}, },
}); },
],
}, data: [], //
// total: 0, //
detail(v) { };
let sn = v.sn; },
this.$router.push({ methods: {
name: "order-detail", //
query: {sn: sn}, init () {
}); this.getDataList();
},
}, },
mounted() { //
this.init(); changePage (v) {
this.searchForm.pageNumber = v;
this.getDataList();
}, },
}; //
changePageSize (v) {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = v;
this.getDataList();
},
//
handleSearch () {
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.getDataList();
},
//
changeSort (e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
//
selectDateRange (v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
//
getDataList () {
this.loading = true;
API_Order.getOrderList(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result.records;
this.total = res.result.total;
}
});
this.total = this.data.length;
this.loading = false;
},
//
confirmPrice (v) {
this.$Modal.confirm({
title: "确认收款",
content: "您确定要收款吗?",
loading: true,
onOk: () => {
API_Order.orderPay(v.sn).then(res => {
if (res.success) {
this.$Message.success("收款成功")
this.getDataList()
}
this.$Modal.remove();
})
},
});
},
//
detail (v) {
console.log(v.orderType);
let sn = v.sn;
this.$router.push({
name: "order-detail",
query: { sn: sn, orderType: v.orderType },
});
},
},
mounted () {
this.init();
},
};
</script> </script>

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 : "暂无" }}
@ -81,8 +67,8 @@
<div class="div-item-right"> <div class="div-item-right">
{{ {{
orderInfo.receipt && orderInfo.receipt.receiptContent orderInfo.receipt && orderInfo.receipt.receiptContent
? orderInfo.receipt.receiptContent ? orderInfo.receipt.receiptContent
: "暂无" : "暂无"
}} }}
</div> </div>
</div> </div>
@ -92,8 +78,8 @@
<div class="div-item-right"> <div class="div-item-right">
{{ {{
orderInfo.receipt && orderInfo.receipt.receiptPrice orderInfo.receipt && orderInfo.receipt.receiptPrice
? orderInfo.receipt.receiptPrice ? orderInfo.receipt.receiptPrice
: "暂无" | unitPrice("¥") : "暂无" | unitPrice("¥")
}} }}
</div> </div>
</div> </div>
@ -101,7 +87,7 @@
<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">
{{ orderInfo.receipt?(orderInfo.receipt.receiptStatus == 0 ? "未开" : "已开"):"空" }} {{ orderInfo.receipt ? (orderInfo.receipt.receiptStatus == 0 ? "未开" : "已开") : "空" }}
</div> </div>
</div> </div>
</div> </div>
@ -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 : "暂无" }}
@ -156,8 +140,8 @@
<div class="div-item-right"> <div class="div-item-right">
{{ {{
orderInfo.receipt && orderInfo.receipt.receiptContent orderInfo.receipt && orderInfo.receipt.receiptContent
? orderInfo.receipt.receiptContent ? orderInfo.receipt.receiptContent
: "暂无" : "暂无"
}} }}
</div> </div>
</div> </div>
@ -167,8 +151,8 @@
<div class="div-item-right"> <div class="div-item-right">
{{ {{
orderInfo.receipt && orderInfo.receipt.receiptPrice orderInfo.receipt && orderInfo.receipt.receiptPrice
? orderInfo.receipt.receiptPrice ? orderInfo.receipt.receiptPrice
: "暂无" | unitPrice("¥") : "暂无" | unitPrice("¥")
}} }}
</div> </div>
</div> </div>
@ -176,11 +160,11 @@
<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">
{{ 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,58 +209,56 @@
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
<div class="label"> v-if="orderInfo.order.priceDetailDTO.discountPriceDetail != undefined && orderInfo.order.priceDetailDTO.discountPriceDetail && orderInfo.order.priceDetailDTO.discountPriceDetail != null && orderInfo.order.priceDetailDTO.discountPriceDetail != ''">
<Poptip trigger="hover" placement="left" width="200"> <div class="label">
<Icon v-if="typeList.length > 0" type="ios-alert-outline" size="17" @click="getOrderPrice" color="#cc0000"/> <Poptip trigger="hover" placement="left" width="200">
<template #content> <Icon v-if="typeList.length > 0" type="ios-alert-outline" size="17" @click="getOrderPrice"
<div class="api" style="text-align:left;"> color="#cc0000" />
<table> <template #content>
<thead> <div class="api" style="text-align:left;">
<tr> <table>
<thead>
<tr>
<th>优惠详情</th> <th>优惠详情</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr v-for="(item,index) in typeList" :key="index"> <tr v-for="(item, index) in typeList" :key="index">
<td>{{item.promotionName}}</td> <td>{{ item.promotionName }}</td>
<td>¥{{ item.discountPrice | unitPrice }}</td> <td>¥{{ item.discountPrice | unitPrice }}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</template> </template>
</Poptip> </Poptip>
<span>优惠详情</span> <span>优惠详情</span>
</div> </div>
</li> </li>
<!-- <li v-if="showPrices"> <!-- <li v-if="showPrices">
<span class="label" style="color: #cc0000;font-size: 14px;" v-if="typeList.length > 0" >优惠详情</span> <span class="label" style="color: #cc0000;font-size: 14px;" v-if="typeList.length > 0" >优惠详情</span>
</li> --> </li> -->
<!-- <li v-if="showPrices" v-for="(item,index) in typeList" :key="index"> <!-- <li v-if="showPrices" v-for="(item,index) in typeList" :key="index">
<span class="label" v-if="index == 1 && typeList.length > 1" style="font-size:10px !important;"><a @click="gotoHomes" style="display: inline-block;border-bottom: 1px dashed;color:black;width:80px;">{{item.promotionName}}</a></span> <span class="label" v-if="index == 1 && typeList.length > 1" style="font-size:10px !important;"><a @click="gotoHomes" style="display: inline-block;border-bottom: 1px dashed;color:black;width:80px;">{{item.promotionName}}</a></span>
<span class="txt" style="border-bottom: 1px dashed;font-size:10px !important;" v-if="index == 1 && typeList.length > 1">¥{{ item.discountPrice | unitPrice }}</span> <span class="txt" style="border-bottom: 1px dashed;font-size:10px !important;" v-if="index == 1 && typeList.length > 1">¥{{ item.discountPrice | unitPrice }}</span>
<span class="label" v-if="index == 0 && typeList.length > 1" style="font-size:10px !important;"><a @click="gotoHomes" style="display: inline-block;border-top: 1px dashed;color:black;width:80px;">{{item.promotionName}}</a></span> <span class="label" v-if="index == 0 && typeList.length > 1" style="font-size:10px !important;"><a @click="gotoHomes" style="display: inline-block;border-top: 1px dashed;color:black;width:80px;">{{item.promotionName}}</a></span>
@ -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,69 +367,67 @@
<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">
<Button @click="handelCancel"></Button> <Button @click="handelCancel"></Button>
</div> </div>
</Modal> </Modal>
<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">
<Row v-if="orderInfo.order.remark !== ''"> <Row v-if="orderInfo.order.remark !== ''">
<Col span="24"> <Col span="24">
<p class="lineH30 f14">备注{{ orderInfo.order.remark }}</p> <p class="lineH30 f14">备注{{ orderInfo.order.remark }}</p>
</Col> </Col>
</Row> </Row>
<Row> <Row>
<Col span="12"> <Col span="12">
<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">{{
<p class="lineH30 f14" v-else>{{ orderInfo.order.consigneeMobile }}</p> orderInfo.order.consigneeMobile.replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2") }}</p>
</Col> <p class="lineH30 f14" v-else>{{ orderInfo.order.consigneeMobile }}</p>
</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 }}
</Col> </p>
</Col>
</Row> </Row>
<Row> <Row>
<Col span="24"> <Col span="24">
<p class="printgoodtitle">商品信息</p> <p class="printgoodtitle">商品信息</p>
<div class="printgoodinfo"> <div class="printgoodinfo">
<div v-for="(item,index) in orderInfo.orderItems" :key="index" class="printgooditem"> <div v-for="(item, index) in orderInfo.orderItems" :key="index" class="printgooditem">
<div class="printgoodname"> <div class="printgoodname">
<p>{{item.goodsName}}</p> <p>{{ item.goodsName }}</p>
<div class="printgoodguid"> <div class="printgoodguid">
<span v-for="(itemchild, keychild) in JSON.parse(item.specs)" :key="keychild"> <span v-for="(itemchild, keychild) in JSON.parse(item.specs)" :key="keychild">
<span class="printgoodguiditem" v-if="keychild != 'images'"> <span class="printgoodguiditem" v-if="keychild != 'images'">
{{ keychild }} : {{ itemchild }} {{ keychild }} : {{ itemchild }}
</span> </span>
</span> </span>
</div>
</div>
<span class="printgoodnumber">数量{{item.num}}</span>
</div> </div>
</div> </div>
</Col> <span class="printgoodnumber">数量{{ item.num }}</span>
</div>
</div>
</Col>
</Row> </Row>
</div> </div>
</div> </div>
<div slot="footer" style="text-align: right"> <div slot="footer" style="text-align: right">
<Button @click="printModal = false">关闭</Button> <Button @click="printModal = false">关闭</Button>
<Button type="primary" v-print="printInfoObj"></Button> <Button type="primary" v-print="printInfoObj"></Button>
@ -549,15 +447,15 @@ export default {
region, region,
"vue-qr": vueQr, "vue-qr": vueQr,
}, },
data() { data () {
return { return {
typeList:[], typeList: [],
showPrices:false, showPrices: false,
printHiddenFlag:false,// printHiddenFlag: false,//
printInfoObj:{ printInfoObj: {
id: "printInfo",//id # id: "printInfo",//id #
popTitle:'&nbsp;',// undefined 使html popTitle: '&nbsp;',// undefined 使html
extraHead:'',// extraHead: '',//
}, },
loading: false, // loading: false, //
submitLoading: false, // submitLoading: false, //
@ -612,7 +510,7 @@ export default {
reason: [{ required: true, message: "取消原因不能为空", trigger: "blur" }], reason: [{ required: true, message: "取消原因不能为空", trigger: "blur" }],
}, },
addressModal: false, // addressModal: false, //
printModal:false, printModal: false,
// //
addressForm: { addressForm: {
consigneeName: "", consigneeName: "",
@ -732,21 +630,21 @@ export default {
}; };
}, },
watch: { watch: {
$route(to, from) { $route (to, from) {
this.$router.go(0); this.$router.go(0);
}, },
}, },
methods: { methods: {
gotoHomes(){ gotoHomes () {
return false return false
}, },
// //
regionClick() { regionClick () {
this.showRegion = true; this.showRegion = true;
this.regionId = ""; this.regionId = "";
}, },
// //
confirmPrice() { confirmPrice () {
this.$Modal.confirm({ this.$Modal.confirm({
title: "提示", title: "提示",
content: content:
@ -763,30 +661,30 @@ export default {
}, },
}); });
}, },
getOrderPrice(){ getOrderPrice () {
if(this.showPrices){ if (this.showPrices) {
this.showPrices = false this.showPrices = false
}else if(!this.showPrices){ } else if (!this.showPrices) {
this.showPrices = true this.showPrices = true
} }
}, },
getContentPrice(){ getContentPrice () {
for (let i = 0; i < this.typeList.length; i++) { for (let i = 0; i < this.typeList.length; i++) {
for (let j = i + 1; j < this.typeList.length; j++) { for (let j = i + 1; j < this.typeList.length; j++) {
if (this.typeList[i].promotionId === this.typeList[j].promotionId) { if (this.typeList[i].promotionId === this.typeList[j].promotionId) {
this.typeList[i].discountPrice = this.typeList[i].discountPrice + this.typeList[j].discountPrice this.typeList[i].discountPrice = this.typeList[i].discountPrice + this.typeList[j].discountPrice
this.typeList.splice(j, 1) this.typeList.splice(j, 1)
}
} }
} }
console.log(this.typeList) }
if(this.typeList.length >= 3){ console.log(this.typeList)
console.log(123123) if (this.typeList.length >= 3) {
this.getContentPrice() console.log(123123)
} this.getContentPrice()
}, }
},
// //
getDataList() { getDataList () {
this.loading = true; this.loading = true;
API_Order.orderDetail(this.sn).then((res) => { API_Order.orderDetail(this.sn).then((res) => {
this.loading = false; this.loading = false;
@ -800,13 +698,13 @@ export default {
} }
}); });
}, },
modifyPrice() { modifyPrice () {
// //
this.modifyPriceForm.price = this.orderInfo.order.flowPrice; this.modifyPriceForm.price = this.orderInfo.order.flowPrice;
this.modal = true; this.modal = true;
}, },
// //
modifyPriceSubmit() { modifyPriceSubmit () {
this.$refs.modifyPriceForm.validate((valid) => { this.$refs.modifyPriceForm.validate((valid) => {
if (valid) { if (valid) {
API_Order.updateOrderPrice(this.sn, this.modifyPriceForm).then((res) => { API_Order.updateOrderPrice(this.sn, this.modifyPriceForm).then((res) => {
@ -820,16 +718,16 @@ export default {
}); });
}, },
// //
selectedRegion(val) { selectedRegion (val) {
this.addr = val[1]; this.addr = val[1];
this.regionId = val[0]; this.regionId = val[0];
}, },
// //
orderCancel() { orderCancel () {
this.orderCancelModal = true; this.orderCancelModal = true;
}, },
// //
orderCancelSubmit() { orderCancelSubmit () {
this.$refs.orderCancelForm.validate((valid) => { this.$refs.orderCancelForm.validate((valid) => {
if (valid) { if (valid) {
API_Order.orderCancel(this.sn, this.orderCancelForm).then((res) => { API_Order.orderCancel(this.sn, this.orderCancelForm).then((res) => {
@ -843,25 +741,25 @@ export default {
}); });
}, },
// //
orderLog() { orderLog () {
this.orderLogModal = true; this.orderLogModal = true;
}, },
// //
handelCancel() { handelCancel () {
this.orderLogModal = false; this.orderLogModal = false;
}, },
// //
printOrder(){ printOrder () {
this.printModal = true; this.printModal = true;
}, },
printHiddenInfo(){ printHiddenInfo () {
this.printHiddenFlag = !this.printHiddenFlag; this.printHiddenFlag = !this.printHiddenFlag;
}, },
printCancel(){ printCancel () {
// this.printHiddenFlag = false; // this.printHiddenFlag = false;
}, },
// //
editAddress() { editAddress () {
this.addressModal = true; this.addressModal = true;
this.showRegion = false; this.showRegion = false;
this.addr = this.orderInfo.order.consigneeAddressPath; this.addr = this.orderInfo.order.consigneeAddressPath;
@ -873,7 +771,7 @@ export default {
this.addressForm.consigneeAddressIdPath = this.orderInfo.order.consigneeAddressIdPath; this.addressForm.consigneeAddressIdPath = this.orderInfo.order.consigneeAddressIdPath;
}, },
// //
editAddressSubmit() { editAddressSubmit () {
if (this.regionId == "") { if (this.regionId == "") {
this.$Message.error("请选择地址"); this.$Message.error("请选择地址");
return; return;
@ -893,16 +791,17 @@ export default {
}); });
}, },
}, },
mounted() { mounted () {
this.sn = this.$route.query.sn; this.sn = this.$route.query.sn;
this.getDataList(); this.getDataList();
}, },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.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;
@ -939,11 +838,11 @@ export default {
line-height: 35px; line-height: 35px;
display: flex; display: flex;
> .div-item-left { >.div-item-left {
width: 80px; width: 80px;
} }
> .div-item-right { >.div-item-right {
flex: 1; flex: 1;
word-break: break-all; word-break: break-all;
} }
@ -1000,24 +899,28 @@ 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;
// border-bottom:2px solid #333 ; // border-bottom:2px solid #333 ;
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;
align-items: flex-start; align-items: flex-start;
@ -1025,35 +928,43 @@ 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{
height:inherit; html,
body {
height: inherit;
} }
} }
</style> </style>

View File

@ -130,11 +130,11 @@
<div class="ant-col-md-6"> <div class="ant-col-md-6">
<p class="item"> <p class="item">
<span class="label">法人姓名</span> <span class="label">法人姓名</span>
<span class="info">{{storeInfo.legalName}}</span> <span class="info">{{storeInfo.legalName}}</span>
</p> </p>
<p class="item"> <p class="item">
<span class="label">法人身份证</span> <span class="label">法人身份证</span>
<span class="info">{{storeInfo.legalId}}</span> <span class="info">{{storeInfo.legalId}}</span>
</p> </p>
<p class="item"> <p class="item">
<span class="label">身份证照片</span> <span class="label">身份证照片</span>

View File

@ -2,7 +2,7 @@
<div class="layout"> <div class="layout">
<Form ref="formValidate" :label-width="150" label-position="right" :model="formValidate" :rules="ruleValidate"> <Form ref="formValidate" :label-width="150" label-position="right" :model="formValidate" :rules="ruleValidate">
<FormItem label="平台" prop="endPoint"> <FormItem label="平台" >
<RadioGroup v-model="formValidate.type" type="button"> <RadioGroup v-model="formValidate.type" type="button">
<Radio label="ALI_OSS">阿里OSS</Radio> <Radio label="ALI_OSS">阿里OSS</Radio>
<Radio label="MINIO">MINIO</Radio> <Radio label="MINIO">MINIO</Radio>
@ -11,68 +11,68 @@
</RadioGroup> </RadioGroup>
</FormItem> </FormItem>
<!-- 阿里云存储--> <!-- 阿里云存储-->
<FormItem v-if="formValidate.type==='ALI_OSS'" label="节点" prop="aliyunOSSEndPoint"> <FormItem v-if="formValidate.type==='ALI_OSS'" key="aliyunOSSEndPoint" label="节点" prop="aliyunOSSEndPoint">
<Input v-model="formValidate.aliyunOSSEndPoint"/> <Input v-model="formValidate.aliyunOSSEndPoint"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='ALI_OSS'" label="储存空间" class="label-item" prop="aliyunOSSBucketName"> <FormItem v-if="formValidate.type==='ALI_OSS'" key="aliyunOSSBucketName" label="储存空间" class="label-item" prop="aliyunOSSBucketName">
<Input v-model="formValidate.aliyunOSSBucketName"/> <Input v-model="formValidate.aliyunOSSBucketName"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='ALI_OSS'" label="存放路径路径" prop="aliyunOSSPicLocation"> <FormItem v-if="formValidate.type==='ALI_OSS'" key="aliyunOSSPicLocation" label="存放路径路径" prop="aliyunOSSPicLocation">
<Input v-model="formValidate.aliyunOSSPicLocation"/> <Input v-model="formValidate.aliyunOSSPicLocation"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='ALI_OSS'" label="密钥id" prop="aliyunOSSAccessKeyId"> <FormItem v-if="formValidate.type==='ALI_OSS'" key="aliyunOSSAccessKeyId" label="密钥id" prop="aliyunOSSAccessKeyId">
<Input v-model="formValidate.aliyunOSSAccessKeyId"/> <Input v-model="formValidate.aliyunOSSAccessKeyId"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='ALI_OSS'" label="密钥" prop="aliyunOSSAccessKeySecret"> <FormItem v-if="formValidate.type==='ALI_OSS'" key="aliyunOSSAccessKeySecret" label="密钥" prop="aliyunOSSAccessKeySecret">
<Input v-model="formValidate.aliyunOSSAccessKeySecret"/> <Input v-model="formValidate.aliyunOSSAccessKeySecret"/>
</FormItem> </FormItem>
<!-- MINIO存储--> <!-- MINIO存储-->
<FormItem v-if="formValidate.type==='MINIO'" label="访问地址" prop="m_frontUrl"> <FormItem v-if="formValidate.type==='MINIO'" label="访问地址" key="m_frontUrl" prop="m_frontUrl">
<Input v-model="formValidate.m_frontUrl"/> <Input v-model="formValidate.m_frontUrl"/>
<span class="desc">配置MINIO nginx前端访问转发地址一般为完整域名例如https://minio.pickmall.cn</span> <span class="desc">配置MINIO nginx前端访问转发地址一般为完整域名例如https://minio.pickmall.cn</span>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='MINIO'" label="endpoint" prop="m_endpoint"> <FormItem v-if="formValidate.type==='MINIO'" label="endpoint" key="m_endpoint" prop="m_endpoint">
<Input v-model="formValidate.m_endpoint"/> <Input v-model="formValidate.m_endpoint"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='MINIO'" label="accessKey" class="label-item" prop="m_accessKey"> <FormItem v-if="formValidate.type==='MINIO'" label="accessKey" key="m_accessKey" class="label-item" prop="m_accessKey">
<Input v-model="formValidate.m_accessKey"/> <Input v-model="formValidate.m_accessKey"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='MINIO'" label="secretKey" prop="bucketName"> <FormItem v-if="formValidate.type==='MINIO'" label="secretKey" key="m_secretKey" prop="m_secretKey">
<Input v-model="formValidate.m_secretKey"/> <Input v-model="formValidate.m_secretKey"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='MINIO'" label="bucketName" prop="accessKeyId"> <FormItem v-if="formValidate.type==='MINIO'" label="bucketName" key="m_bucketName" prop="m_bucketName">
<Input v-model="formValidate.m_bucketName"/> <Input v-model="formValidate.m_bucketName"/>
</FormItem> </FormItem>
<!-- 华为云存储--> <!-- 华为云存储-->
<FormItem v-if="formValidate.type==='HUAWEI_OBS'" label="发起者的Access Key" prop="huaweicloudOBSAccessKey"> <FormItem v-if="formValidate.type==='HUAWEI_OBS'" label="发起者的Access Key" key="huaweicloudOBSAccessKey" prop="huaweicloudOBSAccessKey">
<Input v-model="formValidate.huaweicloudOBSAccessKey"/> <Input v-model="formValidate.huaweicloudOBSAccessKey"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='HUAWEI_OBS'" label="密钥" class="label-item" prop="huaweicloudOBSSecretKey"> <FormItem v-if="formValidate.type==='HUAWEI_OBS'" label="密钥" class="label-item" key="huaweicloudOBSSecretKey" prop="huaweicloudOBSSecretKey">
<Input v-model="formValidate.huaweicloudOBSSecretKey"/> <Input v-model="formValidate.huaweicloudOBSSecretKey"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='HUAWEI_OBS'" label="节点" prop="huaweicloudOBSEndPoint"> <FormItem v-if="formValidate.type==='HUAWEI_OBS'" label="节点" key="huaweicloudOBSEndPoint" prop="huaweicloudOBSEndPoint">
<Input v-model="formValidate.huaweicloudOBSEndPoint"/> <Input v-model="formValidate.huaweicloudOBSEndPoint"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='HUAWEI_OBS'" label="桶" prop="huaweicloudOBSBucketName"> <FormItem v-if="formValidate.type==='HUAWEI_OBS'" label="桶" key="huaweicloudOBSBucketName" prop="huaweicloudOBSBucketName">
<Input v-model="formValidate.huaweicloudOBSBucketName"/> <Input v-model="formValidate.huaweicloudOBSBucketName"/>
</FormItem> </FormItem>
<!-- 腾讯云存储--> <!-- 腾讯云存储-->
<FormItem v-if="formValidate.type==='TENCENT_COS'" label="用户的SecretId" prop="tencentCOSSecretId"> <FormItem v-if="formValidate.type==='TENCENT_COS'" label="用户的SecretId" key="tencentCOSSecretId" prop="tencentCOSSecretId">
<Input v-model="formValidate.tencentCOSSecretId"/> <Input v-model="formValidate.tencentCOSSecretId"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='TENCENT_COS'" label="用户的SecretKey" class="label-item" prop="tencentCOSSecretKey"> <FormItem v-if="formValidate.type==='TENCENT_COS'" label="用户的SecretKey" key="tencentCOSSecretKey" class="label-item" prop="tencentCOSSecretKey">
<Input v-model="formValidate.tencentCOSSecretKey"/> <Input v-model="formValidate.tencentCOSSecretKey"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='TENCENT_COS'" label="bucket的地域" prop="tencentCOSRegion"> <FormItem v-if="formValidate.type==='TENCENT_COS'" label="bucket的地域" key="tencentCOSRegion" prop="tencentCOSRegion">
<Input v-model="formValidate.tencentCOSRegion"/> <Input v-model="formValidate.tencentCOSRegion"/>
</FormItem> </FormItem>
<FormItem v-if="formValidate.type==='TENCENT_COS'" label="bucket" prop="tencentCOSBucket"> <FormItem v-if="formValidate.type==='TENCENT_COS'" label="bucket" key="tencentCOSBucket" prop="tencentCOSBucket">
<Input v-model="formValidate.tencentCOSBucket"/> <Input v-model="formValidate.tencentCOSBucket"/>
</FormItem> </FormItem>
@ -179,3 +179,4 @@ export default {
color: #999; color: #999;
} }
</style> </style>

View File

@ -487,7 +487,7 @@ export default {
liliMap, liliMap,
region, region,
}, },
data() { data () {
return { return {
typeList: [], typeList: [],
showPrices: false, showPrices: false,
@ -693,27 +693,27 @@ export default {
}, },
methods: { methods: {
// //
regionClick() { regionClick () {
this.showRegion = true; this.showRegion = true;
this.regionId = ""; this.regionId = "";
}, },
// //
orderTake() { orderTake () {
this.orderTakeForm.qrCode = this.orderInfo.order.verificationCode; this.orderTakeForm.qrCode = this.orderInfo.order.verificationCode;
this.orderTakeModal = true; this.orderTakeModal = true;
}, },
// //
printOrder() { printOrder () {
this.printModal = true; this.printModal = true;
}, },
printHiddenInfo() { printHiddenInfo () {
this.printHiddenFlag = !this.printHiddenFlag; this.printHiddenFlag = !this.printHiddenFlag;
}, },
printCancel() { printCancel () {
// this.printHiddenFlag = false; // this.printHiddenFlag = false;
}, },
// //
orderTakeSubmit() { orderTakeSubmit () {
this.$refs.orderTakeForm.validate((valid) => { this.$refs.orderTakeForm.validate((valid) => {
if (valid) { if (valid) {
API_Order.orderTake(this.sn, this.orderTakeForm.qrCode).then( API_Order.orderTake(this.sn, this.orderTakeForm.qrCode).then(
@ -728,14 +728,14 @@ export default {
} }
}); });
}, },
getOrderPrice() { getOrderPrice () {
if (this.showPrices) { if (this.showPrices) {
this.showPrices = false this.showPrices = false
} else if (!this.showPrices) { } else if (!this.showPrices) {
this.showPrices = true this.showPrices = true
} }
}, },
getContentPrice() { getContentPrice () {
for (let i = 0; i < this.typeList.length; i++) { for (let i = 0; i < this.typeList.length; i++) {
for (let j = i + 1; j < this.typeList.length; j++) { for (let j = i + 1; j < this.typeList.length; j++) {
if (this.typeList[i].promotionId === this.typeList[j].promotionId) { if (this.typeList[i].promotionId === this.typeList[j].promotionId) {
@ -751,7 +751,7 @@ export default {
} }
}, },
// //
getDataDetail() { getDataDetail () {
this.loading = true; this.loading = true;
API_Order.getOrderDetail(this.sn).then((res) => { API_Order.getOrderDetail(this.sn).then((res) => {
this.loading = false; this.loading = false;
@ -766,7 +766,7 @@ export default {
} }
}); });
}, },
Toprint() { Toprint () {
this.facesheetFlag = true; this.facesheetFlag = true;
API_Logistics.getCheckedOn().then(res => { API_Logistics.getCheckedOn().then(res => {
if (res.success) { if (res.success) {
@ -776,13 +776,13 @@ export default {
}); });
}, },
// //
modifyPrice() { modifyPrice () {
// //
this.modifyPriceForm.orderPrice = this.orderInfo.order.flowPrice; this.modifyPriceForm.orderPrice = this.orderInfo.order.flowPrice;
this.modal = true; this.modal = true;
}, },
// //
modifyPriceSubmit() { modifyPriceSubmit () {
this.$refs.modifyPriceForm.validate((valid) => { this.$refs.modifyPriceForm.validate((valid) => {
if (valid) { if (valid) {
API_Order.modifyOrderPrice(this.sn, this.modifyPriceForm).then( API_Order.modifyOrderPrice(this.sn, this.modifyPriceForm).then(
@ -798,12 +798,12 @@ export default {
}); });
}, },
// //
selectedRegion(val) { selectedRegion (val) {
this.region = val[1]; this.region = val[1];
this.regionId = val[0]; this.regionId = val[0];
}, },
// //
logistics() { logistics () {
this.logisticsModal = true; this.logisticsModal = true;
API_Order.getTraces(this.sn).then((res) => { API_Order.getTraces(this.sn).then((res) => {
if (res.success && res.result != null) { if (res.success && res.result != null) {
@ -812,7 +812,7 @@ export default {
}); });
}, },
// //
orderDeliver() { orderDeliver () {
this.facesheetFlag = false this.facesheetFlag = false
if (this.logisticsType == 'SHUNFENG') { if (this.logisticsType == 'SHUNFENG') {
this.$Modal.confirm({ this.$Modal.confirm({
@ -839,7 +839,7 @@ export default {
} }
}, },
// //
sfPrint() { sfPrint () {
API_Order.getOrderFaceSheet(this.sn, this.faceSheetForm).then(res => { API_Order.getOrderFaceSheet(this.sn, this.faceSheetForm).then(res => {
if (res.success) { if (res.success) {
let headers = { let headers = {
@ -869,13 +869,13 @@ export default {
} }
}) })
}, },
Toprints() { Toprints () {
if (this.form.logisticsId != null && this.form.logisticsId != '') { if (this.form.logisticsId != null && this.form.logisticsId != '') {
this.orderDeliverModal = false; this.orderDeliverModal = false;
} }
}, },
// //
orderDeliverySubmit() { orderDeliverySubmit () {
if (this.facesheetFlag) { if (this.facesheetFlag) {
this.$refs['faceSheetForm'].validate((valid) => { this.$refs['faceSheetForm'].validate((valid) => {
if (valid) { if (valid) {
@ -904,7 +904,7 @@ export default {
} }
}, },
// //
editAddress() { editAddress () {
this.addressModal = true; this.addressModal = true;
this.showRegion = false; this.showRegion = false;
this.regionId = this.orderInfo.order.consigneeAddressIdPath; this.regionId = this.orderInfo.order.consigneeAddressIdPath;
@ -918,7 +918,7 @@ export default {
this.orderInfo.order.consigneeAddressIdPath; this.orderInfo.order.consigneeAddressIdPath;
}, },
// //
editAddressSubmit() { editAddressSubmit () {
if (this.regionId == "") { if (this.regionId == "") {
this.$Message.error("请选择地址"); this.$Message.error("请选择地址");
return; return;
@ -940,7 +940,7 @@ export default {
}); });
}, },
getLogisticsSetting() { getLogisticsSetting () {
API_Logistics.getLogisticsSetting().then(res => { API_Logistics.getLogisticsSetting().then(res => {
if (res.success) { if (res.success) {
this.logisticsType = res.result; this.logisticsType = res.result;
@ -949,13 +949,13 @@ export default {
}, },
}, },
mounted() { mounted () {
this.sn = this.$route.query.sn; this.sn = this.$route.query.sn;
this.getDataDetail(); this.getDataDetail();
this.getLogisticsSetting(); this.getLogisticsSetting();
}, },
// keepAlivetrue // keepAlivetrue
beforeRouteLeave(to, from, next) { beforeRouteLeave (to, from, next) {
if (to.name === 'orderList' || to.name === 'virtualOrderList') { if (to.name === 'orderList' || to.name === 'virtualOrderList') {
to.meta.keepAlive = true to.meta.keepAlive = true
} }