dfsf
This commit is contained in:
parent
271c9beb73
commit
3e55f0ecb6
|
@ -1,2 +1,49 @@
|
||||||
import request from '@axioshooks'
|
import request from '@axioshooks'
|
||||||
|
// 获取售后管理列表
|
||||||
|
export function select_by_conditions(data) {
|
||||||
|
return request({
|
||||||
|
url: 'xy_openapi/afterSale/select_by_conditions',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 同意退款
|
||||||
|
export function agree_refund(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/afterSale/agree_refund/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 拒绝退款
|
||||||
|
export function refuse_refund(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/afterSale/refuse_refund/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 确认收货
|
||||||
|
export function confirm_receipt(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/afterSale/confirm_receipt/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 拒绝收货
|
||||||
|
export function refuse_receipt(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/afterSale/refuse_receipt/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 日志
|
||||||
|
export function after_log(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/afterSale/after_log/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
|
@ -18,7 +18,7 @@ export function edit_product(data) {
|
||||||
// 复制商品
|
// 复制商品
|
||||||
export function get_commodity(data) {
|
export function get_commodity(data) {
|
||||||
return request({
|
return request({
|
||||||
url: `xy_openapi/commodity_info/get_commodity`,
|
url: `xy_openapi/commodity_info/get_commodity/${data}`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
|
@ -47,3 +47,11 @@ export function delete_one(data) {
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 日志
|
||||||
|
export function commodity_log(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/commodity_info/commodity_log/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
|
@ -7,3 +7,61 @@ export function order_info(data) {
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 获取物流信息
|
||||||
|
export function logistics_inquiry(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/api/order_info/logistics_inquiry/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 订单发货信息查询
|
||||||
|
export function get_order_shopped_info(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/api/order_info/get_order_shopped_info/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 订单下单
|
||||||
|
export function sf_place_order(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/api/logistics/sf_place_order`,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//发货
|
||||||
|
export function order_shopped(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/api/order_info/order_shopped`,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//打印面单
|
||||||
|
export function express_printing(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/api/logistics/express_printing`,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//取消订单
|
||||||
|
export function cancel_order(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/api/order_info/cancel_order/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//机器日志
|
||||||
|
export function order_log(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/api/order_info/order_log/${data}`,
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
import request from '@axioshooks'
|
||||||
|
// 获取地址列表
|
||||||
|
export function userAddress(data) {
|
||||||
|
return request({
|
||||||
|
url: 'xy_openapi/address/userAddress',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 添加物流信息
|
||||||
|
export function add(data) {
|
||||||
|
return request({
|
||||||
|
url: 'xy_openapi/address/add',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 获取寄件人集合
|
||||||
|
export function senderList(data) {
|
||||||
|
return request({
|
||||||
|
url: 'xy_openapi/sender/list',
|
||||||
|
method: 'get',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 添加寄件人
|
||||||
|
export function senderAdd(data) {
|
||||||
|
return request({
|
||||||
|
url: 'xy_openapi/sender/add',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 删除寄件人
|
||||||
|
export function senderDelete(data) {
|
||||||
|
return request({
|
||||||
|
url: `xy_openapi/sender/delete/${data}`,
|
||||||
|
method: 'delete',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
<template>
|
||||||
|
<!-- 机器日志 -->
|
||||||
|
<el-dialog
|
||||||
|
width="35%"
|
||||||
|
title="机器日志"
|
||||||
|
v-model="props.logsvisible"
|
||||||
|
:before-close="close"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
>
|
||||||
|
<el-table
|
||||||
|
:data="props.logsList"
|
||||||
|
border
|
||||||
|
height="260px"
|
||||||
|
style="width: 100%"
|
||||||
|
v-loading="props.logsloading"
|
||||||
|
>
|
||||||
|
<el-table-column type="index" label="序号" width="60" align="center" />
|
||||||
|
<el-table-column
|
||||||
|
prop="nickname"
|
||||||
|
label="操作人"
|
||||||
|
min-width="110"
|
||||||
|
align="center"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="operationName"
|
||||||
|
label="内容"
|
||||||
|
min-width="210"
|
||||||
|
align="center"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="createTime"
|
||||||
|
label="操作时间"
|
||||||
|
min-width="180"
|
||||||
|
align="center"
|
||||||
|
/>
|
||||||
|
</el-table>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="close">关 闭</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { defineProps, defineEmits } from "vue";
|
||||||
|
const props = defineProps({
|
||||||
|
logsvisible: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
logsloading: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
logsList: {
|
||||||
|
type: Array,
|
||||||
|
default: [],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emit = defineEmits(["logsclose"]);
|
||||||
|
const close = () => {
|
||||||
|
emit("logsclose");
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang='scss'>
|
||||||
|
</style>
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div v-for="(item, index) in props.ButtonList" :key="index">
|
<div v-for="(item, index) in props.ButtonList" :key="index" style="text-align: center;">
|
||||||
<el-link
|
<el-link
|
||||||
v-if="item.show && item.AssemblyName === 'el-link'"
|
v-if="item.show && item.AssemblyName === 'el-link'"
|
||||||
:type="item.type"
|
:type="item.type"
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
<template>
|
||||||
|
<div class="button-group">
|
||||||
|
<el-button
|
||||||
|
v-bind="$attrs"
|
||||||
|
v-for="(item, index) in $attrs.buttonList"
|
||||||
|
:key="index"
|
||||||
|
@click="item.handler(item)"
|
||||||
|
>{{ item.name }}</el-button
|
||||||
|
>
|
||||||
|
<slot name="other"></slot>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang='scss'>
|
||||||
|
.button-group {
|
||||||
|
padding:10px 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
::v-deep .el-button {
|
||||||
|
margin-left: 0px !important;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
File diff suppressed because it is too large
Load Diff
|
@ -160,7 +160,7 @@ const onFormChange=(value)=>{
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.box-cneter {
|
.box-cneter {
|
||||||
transition: height 0.5s ease;
|
transition: height 0.5s ease;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
<div class="info-left">
|
<div class="info-left">
|
||||||
<el-popover
|
<el-popover
|
||||||
width="250"
|
width="250"
|
||||||
v-if="row.commodityImg"
|
v-if="row.commodityImg && row.commodityImg !== null"
|
||||||
ref="popoverRef"
|
ref="popoverRef"
|
||||||
trigger="click"
|
trigger="click"
|
||||||
>
|
>
|
||||||
|
@ -93,7 +93,44 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-else-if="item.label === '订单状态'">
|
||||||
|
<div class="row_box">
|
||||||
|
{{
|
||||||
|
row.orderStatus == 1
|
||||||
|
? "订单已创建"
|
||||||
|
: row.orderStatus == 2
|
||||||
|
? "代发货"
|
||||||
|
: row.orderStatus == 3
|
||||||
|
? "已发货"
|
||||||
|
: row.orderStatus == 4
|
||||||
|
? "交易成功"
|
||||||
|
: row.orderStatus == 5
|
||||||
|
? "已退款"
|
||||||
|
: row.orderStatus == 6
|
||||||
|
? "交易关闭"
|
||||||
|
: row.orderStatus == 0
|
||||||
|
? "待处理"
|
||||||
|
: ""
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="item.label === '买家信息'">
|
||||||
|
<div class="row_content">
|
||||||
|
<div style="font-weight: bold">
|
||||||
|
<span style="display: block; margin-right: 10px">{{
|
||||||
|
row.receiverName
|
||||||
|
}}</span
|
||||||
|
>{{ row.receiverPhone }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{ row.receiverProvince }} {{ row.receiverCity }}
|
||||||
|
{{ row.receiverDistrict }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{ row.receiverAddress }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div v-else-if="item.label === '操作'" class="row_box operate">
|
<div v-else-if="item.label === '操作'" class="row_box operate">
|
||||||
<slot name="OperateButton" :row="row"></slot>
|
<slot name="OperateButton" :row="row"></slot>
|
||||||
</div>
|
</div>
|
||||||
|
@ -188,7 +225,6 @@ const visibleMethodEvent = ({ row }) => {
|
||||||
return row.render == true;
|
return row.render == true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//多选表格
|
//多选表格
|
||||||
const selectAllEvent = (val) => {
|
const selectAllEvent = (val) => {
|
||||||
$emit("selectAllEvent", val.records);
|
$emit("selectAllEvent", val.records);
|
||||||
|
@ -249,7 +285,8 @@ p {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.row_box {
|
.row_box,
|
||||||
|
.row_content {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -257,6 +294,11 @@ p {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
min-height: 100px;
|
min-height: 100px;
|
||||||
}
|
}
|
||||||
|
.row_content {
|
||||||
|
display: inline-block;
|
||||||
|
align-items: start;
|
||||||
|
justify-content: start;
|
||||||
|
}
|
||||||
.row_text {
|
.row_text {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import OrderManagement from './views/OrderManagement/index.vue';
|
||||||
import AfterSalesManagement from './views/AfterSalesManagement/index.vue';
|
import AfterSalesManagement from './views/AfterSalesManagement/index.vue';
|
||||||
import NewlyBuiltGoods from './views/NewlyBuiltGoods/index.vue';
|
import NewlyBuiltGoods from './views/NewlyBuiltGoods/index.vue';
|
||||||
import XyShop from "./views/XyShop/index.vue";
|
import XyShop from "./views/XyShop/index.vue";
|
||||||
|
import translateSet from "./views/translateSet/index.vue";
|
||||||
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
@ -81,6 +82,14 @@ export const routes = [
|
||||||
path: '/XyShop',
|
path: '/XyShop',
|
||||||
component: XyShop,
|
component: XyShop,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
meta: {
|
||||||
|
label: "物流配置",
|
||||||
|
icon: markRaw(Location)
|
||||||
|
},
|
||||||
|
path: '/translateSet',
|
||||||
|
component: translateSet,
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -35,6 +35,13 @@
|
||||||
></PaginaTion>
|
></PaginaTion>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<LogsDialog
|
||||||
|
v-if="logsvisible"
|
||||||
|
:logsvisible="logsvisible"
|
||||||
|
:logsloading="logsloading"
|
||||||
|
:logsList="logsList"
|
||||||
|
@logsclose="logsvisible = false"
|
||||||
|
></LogsDialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -46,24 +53,24 @@ import SearchForm from "@components/searchForm/index.vue";
|
||||||
import Table from "@components/table.vue";
|
import Table from "@components/table.vue";
|
||||||
import OperateButton from "@/components/OperateButton.vue";
|
import OperateButton from "@/components/OperateButton.vue";
|
||||||
import PaginaTion from "@components/Pagination.vue";
|
import PaginaTion from "@components/Pagination.vue";
|
||||||
|
import LogsDialog from "@/components/LogsDialog.vue";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
select_by_conditions,
|
select_by_conditions,
|
||||||
edit_product,
|
agree_refund,
|
||||||
publish,
|
refuse_refund,
|
||||||
pull_off,
|
confirm_receipt,
|
||||||
delete_one,
|
refuse_receipt,
|
||||||
} from "@/api/CommodityManagement";
|
after_log
|
||||||
|
} from "@/api/AfterSalesManagement";
|
||||||
import { getshopInfo } from "@/api/newlybuiltgoods";
|
import { getshopInfo } from "@/api/newlybuiltgoods";
|
||||||
const activeName = ref("");
|
const activeName = ref("");
|
||||||
const tabs = ref([
|
const tabs = ref([
|
||||||
{ label: "全部", value: "", total: 0 },
|
{ label: "全部", value: "", total: 0 },
|
||||||
{ label: "草稿箱", value: "1", total: 0 },
|
{ label: "仅退款", value: "1", total: 0 },
|
||||||
{ label: "待发布", value: "2", total: 0 },
|
{ label: "退货退款", value: "2", total: 0 },
|
||||||
{ label: "发布成功", value: "-3", total: 0 },
|
{ label: "退款关闭", value: "-3", total: 0 },
|
||||||
{ label: "发布失败", value: "-4", total: 0 },
|
{ label: "退款成功", value: "-4", total: 0 },
|
||||||
{ label: "手动下架", value: "-2", total: 0 },
|
|
||||||
{ label: "已售出", value: "3", total: 0 },
|
|
||||||
{ label: "其他", value: "99", total: 0 },
|
|
||||||
]);
|
]);
|
||||||
const Inputs = ref([
|
const Inputs = ref([
|
||||||
{
|
{
|
||||||
|
@ -74,6 +81,7 @@ const Inputs = ref([
|
||||||
value: "",
|
value: "",
|
||||||
popover: true,
|
popover: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
type: "el-select",
|
type: "el-select",
|
||||||
placeholder: "请选择闲鱼店铺",
|
placeholder: "请选择闲鱼店铺",
|
||||||
|
@ -83,26 +91,12 @@ const Inputs = ref([
|
||||||
options: [],
|
options: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "el-select",
|
type: "el-input",
|
||||||
placeholder: "请输入商品类型",
|
placeholder: "查询售后编号",
|
||||||
title: "商品类型",
|
title: "售后编号",
|
||||||
name: "auctionType",
|
name: "refundId",
|
||||||
value: "",
|
value: "",
|
||||||
options: [
|
popover: true,
|
||||||
{ label: "一口价", value: "a" },
|
|
||||||
{ label: "拍卖", value: "b" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "el-select",
|
|
||||||
placeholder: "请选择分类",
|
|
||||||
title: "商品分类",
|
|
||||||
name: "itemBizType",
|
|
||||||
value: "",
|
|
||||||
options: [
|
|
||||||
{ label: "普通商品", value: "2" },
|
|
||||||
{ label: "特卖商品", value: "24" },
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "el-input",
|
type: "el-input",
|
||||||
|
@ -111,19 +105,51 @@ const Inputs = ref([
|
||||||
value: "",
|
value: "",
|
||||||
title: "商品名称",
|
title: "商品名称",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: "el-select",
|
||||||
|
placeholder: "请选择订单类型",
|
||||||
|
title: "订单类型",
|
||||||
|
name: "orderType",
|
||||||
|
value: "",
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: "拍卖",
|
||||||
|
value: "a",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "一口价",
|
||||||
|
value: "b",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
placeholder: "请输入买家姓名",
|
||||||
|
name: "buyerName",
|
||||||
|
value: "",
|
||||||
|
title: "买家姓名",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
placeholder: "请输入买家电话",
|
||||||
|
name: "buyerPhone",
|
||||||
|
value: "",
|
||||||
|
title: "买家电话",
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
type: "el-date-picker",
|
type: "el-date-picker",
|
||||||
title: "创建时间",
|
title: "售后时间",
|
||||||
placeholder: "",
|
placeholder: "",
|
||||||
name: "createTime",
|
name: "afterSaleTime",
|
||||||
value: [],
|
value: [],
|
||||||
width: "215px",
|
width: "215px",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "el-date-picker",
|
type: "el-date-picker",
|
||||||
title: "上架时间",
|
title: "处理时间",
|
||||||
placeholder: "",
|
placeholder: "handleTime",
|
||||||
name: "shelfTime",
|
name: "",
|
||||||
value: [],
|
value: [],
|
||||||
width: "215px",
|
width: "215px",
|
||||||
},
|
},
|
||||||
|
@ -132,25 +158,35 @@ const Inputs = ref([
|
||||||
const TableRef = ref(null);
|
const TableRef = ref(null);
|
||||||
const TableKey = ref(new Date().getTime());
|
const TableKey = ref(new Date().getTime());
|
||||||
const TabLoading = ref(false);
|
const TabLoading = ref(false);
|
||||||
|
const logsloading = ref(false);
|
||||||
|
const logsvisible = ref(false);
|
||||||
|
const logsList = ref([]);
|
||||||
const TableData = ref([]);
|
const TableData = ref([]);
|
||||||
const TableLabel = ref([
|
const TableLabel = ref([
|
||||||
{
|
{
|
||||||
label: "闲鱼商品ID",
|
label: "订单编号",
|
||||||
param: "commodityId",
|
param: "orderOn",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
display: "top_left",
|
display: "top_left",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "创建时间",
|
label: "售后编号",
|
||||||
param: "createTime",
|
param: "refundId",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
display: "top_left",
|
display: "top_left",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "上架时间",
|
label: "申请售后时间",
|
||||||
param: "createTime",
|
param: "",
|
||||||
|
align: "center",
|
||||||
|
show: true,
|
||||||
|
display: "top_left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "处理时间",
|
||||||
|
param: "",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
display: "top_left",
|
display: "top_left",
|
||||||
|
@ -163,50 +199,43 @@ const TableLabel = ref([
|
||||||
minwidth: "210",
|
minwidth: "210",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "商品状态",
|
label: "订单状态",
|
||||||
param: "publishStatusName",
|
param: "",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "商品类型",
|
label: "售后状态",
|
||||||
param: "itemBizType",
|
param: "refundStateName",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "分类",
|
label: "商品总价(元)",
|
||||||
param: "auctionType",
|
param: "commodityMoney",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "售价(元)",
|
label: "订单类型",
|
||||||
param: "retailPrice",
|
param: "orderType",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "库存(个)",
|
label: "买家信息",
|
||||||
param: "stock",
|
param: "",
|
||||||
align: "center",
|
|
||||||
show: true,
|
|
||||||
minwidth: "150",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "销量",
|
|
||||||
param: "salesVolume",
|
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "闲鱼店铺",
|
label: "闲鱼店铺",
|
||||||
param: "xyName",
|
param: "xyShopName",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
|
@ -223,78 +252,74 @@ const New_TableLabel = ref([]);
|
||||||
const ButtonListGroup = ref([
|
const ButtonListGroup = ref([
|
||||||
{
|
{
|
||||||
AssemblyName: "el-link",
|
AssemblyName: "el-link",
|
||||||
name: "编辑",
|
name: "同意退款",
|
||||||
show: false,
|
show: false,
|
||||||
type: "primary",
|
type: "primary",
|
||||||
mode: "detail",
|
mode: "detail",
|
||||||
confirm: (row) => {
|
confirm: (row) => {
|
||||||
edit_product(row.id).then((res) => {
|
agree_refund(row.saleId).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
router.push({
|
ElMessage.success(res.msg);
|
||||||
path: "/NewlyBuiltGoods",
|
getDatas();
|
||||||
query: {
|
} else {
|
||||||
params: JSON.stringify(res.data),
|
ElMessage.warning(res.msg);
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
AssemblyName: "el-link",
|
AssemblyName: "el-link",
|
||||||
name: "复制",
|
name: "确认收货",
|
||||||
show: false,
|
|
||||||
type: "primary",
|
|
||||||
mode: "detail",
|
|
||||||
confirm: (row) => {},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
AssemblyName: "el-link",
|
|
||||||
name: "上架",
|
|
||||||
show: false,
|
show: false,
|
||||||
type: "primary",
|
type: "primary",
|
||||||
mode: "detail",
|
mode: "detail",
|
||||||
confirm: (row) => {
|
confirm: (row) => {
|
||||||
publish(row.id).then((res) => {
|
confirm_receipt(row.saleId).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
ElMessage.success(res.msg);
|
ElMessage.success(res.msg);
|
||||||
getDatas();
|
getDatas();
|
||||||
|
} else {
|
||||||
|
ElMessage.warning(res.msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
AssemblyName: "el-popconfirm",
|
AssemblyName: "el-popconfirm",
|
||||||
name: "下架",
|
name: "拒绝退款",
|
||||||
title: "是否下架?",
|
title: "是否拒绝退款?",
|
||||||
cancelText: "不用了",
|
cancelText: "不用了",
|
||||||
popconfirmIcon: "el-icon-info",
|
popconfirmIcon: "el-icon-info",
|
||||||
iconColor: "red",
|
iconColor: "red",
|
||||||
type: "danger",
|
type: "danger",
|
||||||
show: false,
|
show: false,
|
||||||
confirm: (row) => {
|
confirm: (row) => {
|
||||||
pull_off(row.id).then((res) => {
|
refuse_refund(row.saleId).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
ElMessage.success(res.msg);
|
ElMessage.success(res.msg);
|
||||||
getDatas();
|
getDatas();
|
||||||
|
} else {
|
||||||
|
ElMessage.warning(res.msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
AssemblyName: "el-popconfirm",
|
AssemblyName: "el-popconfirm",
|
||||||
name: "删除",
|
name: "拒绝收货",
|
||||||
title: "是否删除?",
|
title: "是否拒绝收货?",
|
||||||
cancelText: "不用了",
|
cancelText: "不用了",
|
||||||
popconfirmIcon: "el-icon-info",
|
popconfirmIcon: "el-icon-info",
|
||||||
iconColor: "red",
|
iconColor: "red",
|
||||||
type: "danger",
|
type: "danger",
|
||||||
show: false,
|
show: false,
|
||||||
confirm: (row) => {
|
confirm: (row) => {
|
||||||
delete_one(row.id).then((res) => {
|
refuse_receipt(row.saleId).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
ElMessage.success(res.msg);
|
ElMessage.success(res.msg);
|
||||||
getDatas();
|
getDatas();
|
||||||
|
} else {
|
||||||
|
ElMessage.warning(res.msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -305,7 +330,18 @@ const ButtonListGroup = ref([
|
||||||
show: false,
|
show: false,
|
||||||
type: "warning",
|
type: "warning",
|
||||||
mode: "detail",
|
mode: "detail",
|
||||||
confirm: (row) => {},
|
confirm: (row) => {
|
||||||
|
logsvisible.value = true;
|
||||||
|
logsloading.value = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
after_log(row.saleId).then((res) => {
|
||||||
|
logsloading.value = false;
|
||||||
|
if (res.code === "200") {
|
||||||
|
logsList.value = res.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 300);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
let commodityInfoDto = reactive({
|
let commodityInfoDto = reactive({
|
||||||
|
@ -324,13 +360,11 @@ const getDatas = () => {
|
||||||
newData.map((item) => {
|
newData.map((item) => {
|
||||||
item.ButtonGroup = ButtonListGroup.value.map((el) => {
|
item.ButtonGroup = ButtonListGroup.value.map((el) => {
|
||||||
if (
|
if (
|
||||||
(el.name === "编辑" &&
|
(el.name === "同意退款" && [0].includes(item.refundState)) ||
|
||||||
[1, -4, -2].includes(item.publishStatus)) ||
|
(el.name === "拒绝退款" && [0].includes(item.refundState)) ||
|
||||||
(el.name === "下架" && [-3].includes(item.publishStatus)) ||
|
(el.name === "确认收货" && [2].includes(item.refundState)) ||
|
||||||
(el.name === "复制" &&
|
(el.name === "拒绝收货" && [2].includes(item.refundState)) ||
|
||||||
[1, -2, -3, -4, 3].includes(item.publishStatus)) ||
|
el.name === "日志"
|
||||||
(el.name === "上架" && [-2, -4].includes(item.publishStatus)) ||
|
|
||||||
(el.name === "删除" && [1, -4, -2].includes(item.publishStatus))
|
|
||||||
) {
|
) {
|
||||||
return { ...el, show: true };
|
return { ...el, show: true };
|
||||||
}
|
}
|
||||||
|
@ -348,12 +382,13 @@ const getDatas = () => {
|
||||||
};
|
};
|
||||||
//查询
|
//查询
|
||||||
const onSearch = (value) => {
|
const onSearch = (value) => {
|
||||||
if (value.createTime) {
|
if (value.afterSaleTime) {
|
||||||
value.startCreateTime = new Date(value.createTime[0]).getTime();
|
value.afterSaleStartTime = new Date(value.afterSaleTime[0]).getTime();
|
||||||
value.endCreateTime = new Date(value.createTime[1]).getTime() + 86399999;
|
value.afterSaleEndTime =
|
||||||
} else if (value.shelfTime) {
|
new Date(value.afterSaleTime[1]).getTime() + 86399999;
|
||||||
value.startShelfTime = new Date(value.shelfTime[0]).getTime();
|
} else if (value.handleTime) {
|
||||||
value.endShelfTime = new Date(value.shelfTime[1]).getTime() + 86399999;
|
value.handleStartTime = new Date(value.handleTime[0]).getTime();
|
||||||
|
value.handleEndTime = new Date(value.handleTime[1]).getTime() + 86399999;
|
||||||
}
|
}
|
||||||
commodityInfoDto = {
|
commodityInfoDto = {
|
||||||
...commodityInfoDto,
|
...commodityInfoDto,
|
||||||
|
|
|
@ -35,6 +35,13 @@
|
||||||
></PaginaTion>
|
></PaginaTion>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<LogsDialog
|
||||||
|
v-if="logsvisible"
|
||||||
|
:logsvisible="logsvisible"
|
||||||
|
:logsloading="logsloading"
|
||||||
|
:logsList="logsList"
|
||||||
|
@logsclose="logsvisible = false"
|
||||||
|
></LogsDialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -46,13 +53,16 @@ import SearchForm from "@components/searchForm/index.vue";
|
||||||
import Table from "@components/table.vue";
|
import Table from "@components/table.vue";
|
||||||
import OperateButton from "@/components/OperateButton.vue";
|
import OperateButton from "@/components/OperateButton.vue";
|
||||||
import PaginaTion from "@components/Pagination.vue";
|
import PaginaTion from "@components/Pagination.vue";
|
||||||
|
import LogsDialog from "@/components/LogsDialog.vue";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
select_by_conditions,
|
select_by_conditions,
|
||||||
edit_product,
|
edit_product,
|
||||||
publish,
|
publish,
|
||||||
pull_off,
|
pull_off,
|
||||||
delete_one,
|
delete_one,
|
||||||
get_commodity
|
get_commodity,
|
||||||
|
commodity_log,
|
||||||
} from "@/api/CommodityManagement";
|
} from "@/api/CommodityManagement";
|
||||||
import { getshopInfo } from "@/api/newlybuiltgoods";
|
import { getshopInfo } from "@/api/newlybuiltgoods";
|
||||||
const activeName = ref("");
|
const activeName = ref("");
|
||||||
|
@ -133,6 +143,9 @@ const Inputs = ref([
|
||||||
const TableRef = ref(null);
|
const TableRef = ref(null);
|
||||||
const TableKey = ref(new Date().getTime());
|
const TableKey = ref(new Date().getTime());
|
||||||
const TabLoading = ref(false);
|
const TabLoading = ref(false);
|
||||||
|
const logsloading = ref(false);
|
||||||
|
const logsvisible = ref(false);
|
||||||
|
const logsList = ref([]);
|
||||||
const TableData = ref([]);
|
const TableData = ref([]);
|
||||||
const TableLabel = ref([
|
const TableLabel = ref([
|
||||||
{
|
{
|
||||||
|
@ -151,7 +164,7 @@ const TableLabel = ref([
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "上架时间",
|
label: "上架时间",
|
||||||
param: "createTime",
|
param: "shelfTime",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
display: "top_left",
|
display: "top_left",
|
||||||
|
@ -207,7 +220,7 @@ const TableLabel = ref([
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "闲鱼店铺",
|
label: "闲鱼店铺",
|
||||||
param: "xyName",
|
param: "xyShopName",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
|
@ -317,7 +330,18 @@ const ButtonListGroup = ref([
|
||||||
show: false,
|
show: false,
|
||||||
type: "warning",
|
type: "warning",
|
||||||
mode: "detail",
|
mode: "detail",
|
||||||
confirm: (row) => {},
|
confirm: (row) => {
|
||||||
|
logsvisible.value = true;
|
||||||
|
logsloading.value = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
commodity_log(row.id).then((res) => {
|
||||||
|
logsloading.value = false;
|
||||||
|
if (res.code === "200") {
|
||||||
|
logsList.value = res.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 300);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
let commodityInfoDto = reactive({
|
let commodityInfoDto = reactive({
|
||||||
|
@ -342,7 +366,9 @@ const getDatas = () => {
|
||||||
(el.name === "复制" &&
|
(el.name === "复制" &&
|
||||||
[1, -2, -3, -4, 3].includes(item.publishStatus)) ||
|
[1, -2, -3, -4, 3].includes(item.publishStatus)) ||
|
||||||
(el.name === "上架" && [-2, -4].includes(item.publishStatus)) ||
|
(el.name === "上架" && [-2, -4].includes(item.publishStatus)) ||
|
||||||
(el.name === "删除" && [1, -4, -2].includes(item.publishStatus))
|
(el.name === "删除" &&
|
||||||
|
[1, -4, -2].includes(item.publishStatus)) ||
|
||||||
|
el.name === "日志"
|
||||||
) {
|
) {
|
||||||
return { ...el, show: true };
|
return { ...el, show: true };
|
||||||
}
|
}
|
||||||
|
|
|
@ -497,7 +497,7 @@ import {
|
||||||
address_default,
|
address_default,
|
||||||
publish_shelve,
|
publish_shelve,
|
||||||
} from "@/api/newlybuiltgoods";
|
} from "@/api/newlybuiltgoods";
|
||||||
let routerParams = reactive({});
|
let routerParams = ref("");
|
||||||
let ruleForm = ref({
|
let ruleForm = ref({
|
||||||
bidDate: [],
|
bidDate: [],
|
||||||
auctionType: "b", //商品类型
|
auctionType: "b", //商品类型
|
||||||
|
@ -538,7 +538,7 @@ let ruleForm = ref({
|
||||||
whiteBgImage: "", //白底图(闲鱼)
|
whiteBgImage: "", //白底图(闲鱼)
|
||||||
whiteAliImage: "",
|
whiteAliImage: "",
|
||||||
flag: "1", //草稿箱-0 发布-1
|
flag: "1", //草稿箱-0 发布-1
|
||||||
republishId: 0, //重新发布的商品id
|
republishId: "", //重新发布的商品id
|
||||||
logistics: 1, //物流配置 1包邮 2统一运费 bidStep
|
logistics: 1, //物流配置 1包邮 2统一运费 bidStep
|
||||||
transportFee: "", //物流配置选择2统一运费时传递
|
transportFee: "", //物流配置选择2统一运费时传递
|
||||||
templateId: "", //物流配置选择3运费模板时候传递
|
templateId: "", //物流配置选择3运费模板时候传递
|
||||||
|
@ -793,12 +793,12 @@ const information = reactive({
|
||||||
information.goods_class.loading = false;
|
information.goods_class.loading = false;
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
let new_data = Object.assign([], res.data);
|
let new_data = Object.assign([], res.data);
|
||||||
routerParams
|
routerParams.value
|
||||||
? (ruleForm.value.pvListDtoList = routerParams.pvListDtoList)
|
? (ruleForm.value.pvListDtoList = routerParams.value.pvListDtoList)
|
||||||
: (ruleForm.value.pvListDtoList = []);
|
: (ruleForm.value.pvListDtoList = []);
|
||||||
information.goods_attribute.group = [];
|
information.goods_attribute.group = [];
|
||||||
new_data.map((item) => {
|
new_data.map((item) => {
|
||||||
if (!routerParams) {
|
if (!routerParams.value) {
|
||||||
ruleForm.value.pvListDtoList.push({
|
ruleForm.value.pvListDtoList.push({
|
||||||
propertyId: "",
|
propertyId: "",
|
||||||
propertyName: "",
|
propertyName: "",
|
||||||
|
@ -889,7 +889,7 @@ const goodsInfo = reactive({
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
if (!routerParams) {
|
if (!routerParams.value) {
|
||||||
ruleForm.value.xyImages = res.data.xy; //闲鱼图片集合
|
ruleForm.value.xyImages = res.data.xy; //闲鱼图片集合
|
||||||
ruleForm.value.aliImages = res.data.ali; //阿里图片集合
|
ruleForm.value.aliImages = res.data.ali; //阿里图片集合
|
||||||
} else {
|
} else {
|
||||||
|
@ -1193,7 +1193,7 @@ const specificationSubmit = (row) => {
|
||||||
keydown: (e, data, el) => {
|
keydown: (e, data, el) => {
|
||||||
if (e.key !== "Enter") return;
|
if (e.key !== "Enter") return;
|
||||||
if (data.tableData.every((item) => !item.inventory)) {
|
if (data.tableData.every((item) => !item.inventory)) {
|
||||||
data.tableData.forEach((item) => {
|
data.new_tableData.forEach((item) => {
|
||||||
item.inventory = el.search;
|
item.inventory = el.search;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1391,7 +1391,6 @@ const publish = (formRef) => {
|
||||||
ruleForm.value.skuList = ruleFormSkuList;
|
ruleForm.value.skuList = ruleFormSkuList;
|
||||||
}
|
}
|
||||||
ruleForm.value.flag = "1";
|
ruleForm.value.flag = "1";
|
||||||
ruleform.value.republishId='';
|
|
||||||
publish_shelve(ruleForm.value).then((res) => {
|
publish_shelve(ruleForm.value).then((res) => {
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
ElMessage.success(res.msg);
|
ElMessage.success(res.msg);
|
||||||
|
@ -1472,37 +1471,42 @@ onMounted(() => {
|
||||||
changeSellType();
|
changeSellType();
|
||||||
if (route.query.params) {
|
if (route.query.params) {
|
||||||
try {
|
try {
|
||||||
routerParams = JSON.parse(route.query.params);
|
routerParams.value = JSON.parse(route.query.params);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
console.log(routerParams, "params");
|
if (routerParams.value.classValue && routerParams.value.classValue.length) {
|
||||||
if (routerParams.classValue && routerParams.classValue.length) {
|
routerParams.value.classValue[0] = Number(routerParams.value.classValue[0]);
|
||||||
routerParams.classValue[0] = Number(routerParams.classValue[0]);
|
routerParams.value.classValue[1] = Number(routerParams.value.classValue[1]);
|
||||||
routerParams.classValue[1] = Number(routerParams.classValue[1]);
|
|
||||||
}
|
}
|
||||||
routerParams.logistics = Number(routerParams.logistics);
|
routerParams.value.logistics = Number(routerParams.value.logistics);
|
||||||
|
|
||||||
routerParams.aliImages.map((e) => {
|
routerParams.value.aliImages.map((e) => {
|
||||||
goodsInfo.more_src.fileImgList.push({ url: e });
|
goodsInfo.more_src.fileImgList.push({ url: e });
|
||||||
});
|
});
|
||||||
if (routerParams.whiteAliImage) {
|
if (routerParams.value.whiteAliImage) {
|
||||||
goodsInfo.White_src.fileImgList.push({ url: routerParams.whiteAliImage });
|
goodsInfo.White_src.fileImgList.push({ url: routerParams.value.whiteAliImage });
|
||||||
}
|
}
|
||||||
if (routerParams.skuList && routerParams.skuList.length) {
|
if (routerParams.value.skuList && routerParams.value.skuList.length) {
|
||||||
let row = transformSkuList(routerParams.skuList);
|
let row = transformSkuList(routerParams.value.skuList);
|
||||||
specificationSubmit(row);
|
specificationSubmit(row);
|
||||||
console.log(priceList.fixPrice.find((e) => e.label == "销售规格").tableData);
|
console.log(
|
||||||
priceList.fixPrice.find((e) => e.label == "销售规格").tableData.forEach((item,index)=>{
|
priceList.fixPrice.find((e) => e.label == "销售规格").tableData
|
||||||
item.price=routerParams.skuList[index].price
|
);
|
||||||
item.inventory=routerParams.skuList[index].quantity
|
priceList.fixPrice
|
||||||
})
|
.find((e) => e.label == "销售规格")
|
||||||
priceList.fixPrice.find((e) => e.label == "销售规格").new_tableData.forEach((item,index)=>{
|
.tableData.forEach((item, index) => {
|
||||||
item.price=routerParams.skuList[index].price
|
item.price = routerParams.value.skuList[index].price;
|
||||||
item.inventory=routerParams.skuList[index].quantity
|
item.inventory = routerParams.value.skuList[index].quantity;
|
||||||
})
|
});
|
||||||
|
priceList.fixPrice
|
||||||
|
.find((e) => e.label == "销售规格")
|
||||||
|
.new_tableData.forEach((item, index) => {
|
||||||
|
item.price = routerParams.value.skuList[index].price;
|
||||||
|
item.inventory = routerParams.value.skuList[index].quantity;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
ruleForm.value = routerParams;
|
ruleForm.value = routerParams.value;
|
||||||
information.goods_class.visibleChange(false);
|
information.goods_class.visibleChange(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog v-on="$attrs" width="500">
|
||||||
|
<template #header>
|
||||||
|
<div class="title">物流信息</div>
|
||||||
|
</template>
|
||||||
|
<div style="min-height: 100px" v-loading="$attrs.logisticLoading">
|
||||||
|
<div style="margin-bottom: 10px">
|
||||||
|
订单编号:{{ props.logisticsList.mailNo || "无" }}
|
||||||
|
</div>
|
||||||
|
<el-timeline style="max-width: 600px">
|
||||||
|
<el-timeline-item
|
||||||
|
v-for="(activity, index) in props.logisticsList.routes"
|
||||||
|
:key="index"
|
||||||
|
:timestamp="activity.acceptTime"
|
||||||
|
>
|
||||||
|
{{ activity.remark }}
|
||||||
|
</el-timeline-item>
|
||||||
|
</el-timeline>
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="confirm"> 确定 </el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { defineProps, defineEmits } from "vue";
|
||||||
|
const props = defineProps({
|
||||||
|
logisticsList: {
|
||||||
|
type: Object,
|
||||||
|
default: {},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const $emit = defineEmits(["logisticsDialogConfirm"]);
|
||||||
|
const confirm = () => {
|
||||||
|
$emit("logisticsDialogConfirm");
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang='scss'>
|
||||||
|
.title {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -35,6 +35,39 @@
|
||||||
></PaginaTion>
|
></PaginaTion>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<LogisticsInfo
|
||||||
|
v-if="logisticVisible"
|
||||||
|
v-model="logisticVisible"
|
||||||
|
:title="'物流信息'"
|
||||||
|
:logisticsList="logisticsList"
|
||||||
|
:logisticLoading="logisticLoading"
|
||||||
|
@logisticsDialogConfirm="logisticVisible = false"
|
||||||
|
>
|
||||||
|
</LogisticsInfo>
|
||||||
|
<DriverForm
|
||||||
|
v-if="DeliveryVisible"
|
||||||
|
:DeliveryVisible="DeliveryVisible"
|
||||||
|
:DeliveryInfoList="DeliveryInfoList"
|
||||||
|
@Print="Print"
|
||||||
|
@deliveryCancel="deliveryCancel"
|
||||||
|
@deliveryConfirm="deliveryConfirm"
|
||||||
|
/>
|
||||||
|
<LogsDialog
|
||||||
|
v-if="logsvisible"
|
||||||
|
:logsvisible="logsvisible"
|
||||||
|
:logsloading="logsloading"
|
||||||
|
:logsList="logsList"
|
||||||
|
@logsclose="logsvisible = false"
|
||||||
|
></LogsDialog>
|
||||||
|
<el-dialog
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
title="打印面单"
|
||||||
|
v-model="printshow"
|
||||||
|
width="70%"
|
||||||
|
class="printmodel"
|
||||||
|
>
|
||||||
|
<iframe class="prism-player" :src="printimg" width="100%" height="800px" />
|
||||||
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -46,15 +79,21 @@ import SearchForm from "@components/searchForm/index.vue";
|
||||||
import Table from "@components/table.vue";
|
import Table from "@components/table.vue";
|
||||||
import OperateButton from "@/components/OperateButton.vue";
|
import OperateButton from "@/components/OperateButton.vue";
|
||||||
import PaginaTion from "@components/Pagination.vue";
|
import PaginaTion from "@components/Pagination.vue";
|
||||||
|
import LogisticsInfo from "./components/logisticsInfo.vue";
|
||||||
|
import DriverForm from "@components/driverForm/index.vue";
|
||||||
|
import LogsDialog from "@/components/LogsDialog.vue";
|
||||||
import {
|
import {
|
||||||
order_info,
|
order_info,
|
||||||
// get_commodity_id,
|
logistics_inquiry,
|
||||||
// publish,
|
get_order_shopped_info,
|
||||||
// pull_off,
|
express_printing,
|
||||||
// delete_one,
|
cancel_order,
|
||||||
|
order_log,
|
||||||
} from "@/api/OrderManagement";
|
} from "@/api/OrderManagement";
|
||||||
import { getshopInfo } from "@/api/newlybuiltgoods";
|
import { getshopInfo } from "@/api/newlybuiltgoods";
|
||||||
const activeName = ref("");
|
const activeName = ref("");
|
||||||
|
let printimg = ref(null);
|
||||||
|
const printshow = ref(false);
|
||||||
const tabs = ref([
|
const tabs = ref([
|
||||||
{ label: "全部", value: "", total: 0 },
|
{ label: "全部", value: "", total: 0 },
|
||||||
{ label: "订单已创建", value: "1", total: 0 },
|
{ label: "订单已创建", value: "1", total: 0 },
|
||||||
|
@ -70,10 +109,11 @@ const Inputs = ref([
|
||||||
type: "el-input",
|
type: "el-input",
|
||||||
placeholder: "查询订单编号",
|
placeholder: "查询订单编号",
|
||||||
title: "订单编号",
|
title: "订单编号",
|
||||||
name: "commodityId",
|
name: "orderOn",
|
||||||
value: "",
|
value: "",
|
||||||
popover: true,
|
popover: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
type: "el-select",
|
type: "el-select",
|
||||||
placeholder: "请选择闲鱼店铺",
|
placeholder: "请选择闲鱼店铺",
|
||||||
|
@ -82,30 +122,42 @@ const Inputs = ref([
|
||||||
value: "",
|
value: "",
|
||||||
options: [],
|
options: [],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
type: "el-select",
|
|
||||||
placeholder: "请选择订单状态",
|
|
||||||
title: "订单状态",
|
|
||||||
name: "",
|
|
||||||
value: "",
|
|
||||||
options: [
|
|
||||||
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
type: "el-select",
|
type: "el-select",
|
||||||
placeholder: "请选择订单类型",
|
placeholder: "请选择订单类型",
|
||||||
title: "订单类型",
|
title: "订单类型",
|
||||||
name: "",
|
name: "orderType",
|
||||||
value: "",
|
value: "",
|
||||||
options: [
|
options: [
|
||||||
|
{
|
||||||
|
label: "拍卖",
|
||||||
|
value: "a",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "一口价",
|
||||||
|
value: "b",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
placeholder: "请输入商品名称",
|
||||||
|
name: "title",
|
||||||
|
value: "",
|
||||||
|
title: "商品名称",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "el-input",
|
||||||
|
placeholder: "请输入买家姓名",
|
||||||
|
name: "buyerName",
|
||||||
|
value: "",
|
||||||
|
title: "买家姓名",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: "el-input",
|
type: "el-input",
|
||||||
placeholder: "请输入买家电话",
|
placeholder: "请输入买家电话",
|
||||||
name: "",
|
name: "buyerPhone",
|
||||||
value: "",
|
value: "",
|
||||||
title: "买家电话",
|
title: "买家电话",
|
||||||
},
|
},
|
||||||
|
@ -120,7 +172,7 @@ const Inputs = ref([
|
||||||
{
|
{
|
||||||
type: "el-date-picker",
|
type: "el-date-picker",
|
||||||
title: "付款时间",
|
title: "付款时间",
|
||||||
placeholder: "",
|
placeholder: "payTime",
|
||||||
name: "",
|
name: "",
|
||||||
value: [],
|
value: [],
|
||||||
width: "215px",
|
width: "215px",
|
||||||
|
@ -128,7 +180,7 @@ const Inputs = ref([
|
||||||
{
|
{
|
||||||
type: "el-date-picker",
|
type: "el-date-picker",
|
||||||
title: "发货时间",
|
title: "发货时间",
|
||||||
placeholder: "",
|
placeholder: "deliveryTime",
|
||||||
name: "",
|
name: "",
|
||||||
value: [],
|
value: [],
|
||||||
width: "215px",
|
width: "215px",
|
||||||
|
@ -136,7 +188,7 @@ const Inputs = ref([
|
||||||
{
|
{
|
||||||
type: "el-date-picker",
|
type: "el-date-picker",
|
||||||
title: "交易成功时间",
|
title: "交易成功时间",
|
||||||
placeholder: "",
|
placeholder: "successTime",
|
||||||
name: "",
|
name: "",
|
||||||
value: [],
|
value: [],
|
||||||
width: "215px",
|
width: "215px",
|
||||||
|
@ -150,7 +202,7 @@ const TableData = ref([]);
|
||||||
const TableLabel = ref([
|
const TableLabel = ref([
|
||||||
{
|
{
|
||||||
label: "订单编号",
|
label: "订单编号",
|
||||||
param: "",
|
param: "orderOn",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
display: "top_left",
|
display: "top_left",
|
||||||
|
@ -164,14 +216,14 @@ const TableLabel = ref([
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "付款时间",
|
label: "付款时间",
|
||||||
param: "",
|
param: "paymentTime",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
display: "top_left",
|
display: "top_left",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "发货时间",
|
label: "发货时间",
|
||||||
param: "",
|
param: "deliveryTime",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
display: "top_left",
|
display: "top_left",
|
||||||
|
@ -192,21 +244,21 @@ const TableLabel = ref([
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "规格",
|
label: "规格",
|
||||||
param: "",
|
param: "sku",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "商品总价(元)",
|
label: "商品总价(元)",
|
||||||
param: "",
|
param: "retailPrice",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "订单类型",
|
label: "订单类型",
|
||||||
param: "",
|
param: "orderType",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
|
@ -220,7 +272,7 @@ const TableLabel = ref([
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "闲鱼店铺",
|
label: "闲鱼店铺",
|
||||||
param: "xyName",
|
param: "xyShopName",
|
||||||
align: "center",
|
align: "center",
|
||||||
show: true,
|
show: true,
|
||||||
minwidth: "150",
|
minwidth: "150",
|
||||||
|
@ -234,81 +286,86 @@ const TableLabel = ref([
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
const New_TableLabel = ref([]);
|
const New_TableLabel = ref([]);
|
||||||
|
const logisticVisible = ref(false);
|
||||||
|
const logisticLoading = ref(false);
|
||||||
|
const logsloading = ref(false);
|
||||||
|
const logsvisible = ref(false);
|
||||||
|
const logsList = ref([]);
|
||||||
|
const logisticsList = ref("");
|
||||||
|
const DeliveryInfoList = ref({});
|
||||||
|
const DeliveryVisible = ref(false);
|
||||||
|
const DeliveryLoading = ref(false);
|
||||||
const ButtonListGroup = ref([
|
const ButtonListGroup = ref([
|
||||||
{
|
{
|
||||||
AssemblyName: "el-link",
|
AssemblyName: "el-link",
|
||||||
name: "编辑",
|
name: "发货",
|
||||||
show: false,
|
show: false,
|
||||||
type: "primary",
|
type: "primary",
|
||||||
mode: "detail",
|
mode: "detail",
|
||||||
confirm: (row) => {
|
confirm: (row) => {
|
||||||
// get_commodity_id(row.id).then((res) => {
|
DeliveryVisible.value = true;
|
||||||
// if (res.code === "200") {
|
// DeliveryLoading.value = true;
|
||||||
// router.push({
|
get_order_shopped_info(row.orderId).then((res) => {
|
||||||
// path: "/NewlyBuiltGoods",
|
|
||||||
// query: {
|
|
||||||
// params: JSON.stringify(res.data),
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
AssemblyName: "el-link",
|
|
||||||
name: "复制",
|
|
||||||
show: false,
|
|
||||||
type: "primary",
|
|
||||||
mode: "detail",
|
|
||||||
confirm: (row) => {},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
AssemblyName: "el-link",
|
|
||||||
name: "上架",
|
|
||||||
show: false,
|
|
||||||
type: "primary",
|
|
||||||
mode: "detail",
|
|
||||||
confirm: (row) => {
|
|
||||||
// publish(row.id).then((res) => {
|
|
||||||
// if (res.code === "200") {
|
|
||||||
// ElMessage.success(res.msg);
|
|
||||||
// getDatas();
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
AssemblyName: "el-popconfirm",
|
|
||||||
name: "下架",
|
|
||||||
title: "是否下架?",
|
|
||||||
cancelText: "不用了",
|
|
||||||
popconfirmIcon: "el-icon-info",
|
|
||||||
iconColor: "red",
|
|
||||||
type: "danger",
|
|
||||||
show: false,
|
|
||||||
confirm: (row) => {
|
|
||||||
// pull_off(row.id).then((res) => {
|
|
||||||
// if (res.code === "200") {
|
|
||||||
// ElMessage.success(res.msg);
|
|
||||||
// getDatas();
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
AssemblyName: "el-popconfirm",
|
|
||||||
name: "删除",
|
|
||||||
title: "是否删除?",
|
|
||||||
cancelText: "不用了",
|
|
||||||
popconfirmIcon: "el-icon-info",
|
|
||||||
iconColor: "red",
|
|
||||||
type: "danger",
|
|
||||||
show: false,
|
|
||||||
confirm: (row) => {
|
|
||||||
delete_one(row.id).then((res) => {
|
|
||||||
if (res.code === "200") {
|
if (res.code === "200") {
|
||||||
|
DeliveryInfoList.value = Object.assign({}, res.data);
|
||||||
|
|
||||||
|
DeliveryLoading.value = false;
|
||||||
|
} else {
|
||||||
|
ElMessage.warning(res.msg);
|
||||||
|
DeliveryLoading.value = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "查看物流",
|
||||||
|
show: false,
|
||||||
|
type: "primary",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {
|
||||||
|
logisticsList.value = {};
|
||||||
|
logisticVisible.value = true;
|
||||||
|
logisticLoading.value = true;
|
||||||
|
logistics_inquiry(row.orderId).then((res) => {
|
||||||
|
logisticLoading.value = false;
|
||||||
|
if (res.code == "200") {
|
||||||
|
if (res.data) {
|
||||||
|
logisticsList.value = res.data;
|
||||||
|
} else {
|
||||||
|
ElMessage.warning("暂无物流信息");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-link",
|
||||||
|
name: "补打快递单",
|
||||||
|
show: false,
|
||||||
|
type: "primary",
|
||||||
|
mode: "detail",
|
||||||
|
confirm: (row) => {
|
||||||
|
console.log(row, "row");
|
||||||
|
Print({ masterWaybillNo: "SF7444487421834", type: 1 });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
AssemblyName: "el-popconfirm",
|
||||||
|
name: "取消订单",
|
||||||
|
title: "是否取消订单?",
|
||||||
|
cancelText: "不用了",
|
||||||
|
popconfirmIcon: "el-icon-info",
|
||||||
|
iconColor: "red",
|
||||||
|
type: "danger",
|
||||||
|
show: false,
|
||||||
|
confirm: (row) => {
|
||||||
|
cancel_order(row.orderId).then((res) => {
|
||||||
|
if (res.code == "200") {
|
||||||
ElMessage.success(res.msg);
|
ElMessage.success(res.msg);
|
||||||
getDatas();
|
getDatas();
|
||||||
|
} else {
|
||||||
|
ElMessage.warning(res.msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -319,15 +376,28 @@ const ButtonListGroup = ref([
|
||||||
show: false,
|
show: false,
|
||||||
type: "warning",
|
type: "warning",
|
||||||
mode: "detail",
|
mode: "detail",
|
||||||
confirm: (row) => {},
|
confirm: (row) => {
|
||||||
|
logsvisible.value = true;
|
||||||
|
logsloading.value = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
order_log(row.orderId).then((res) => {
|
||||||
|
logsloading.value = false;
|
||||||
|
if (res.code === "200") {
|
||||||
|
logsList.value = res.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 300);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let orderInfoDto = reactive({
|
let orderInfoDto = reactive({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
publishStatus: "",
|
publishStatus: "",
|
||||||
});
|
});
|
||||||
const totalNumbel = ref(0);
|
const totalNumbel = ref(0);
|
||||||
|
|
||||||
const getDatas = () => {
|
const getDatas = () => {
|
||||||
TabLoading.value = true;
|
TabLoading.value = true;
|
||||||
order_info(orderInfoDto)
|
order_info(orderInfoDto)
|
||||||
|
@ -338,13 +408,12 @@ const getDatas = () => {
|
||||||
newData.map((item) => {
|
newData.map((item) => {
|
||||||
item.ButtonGroup = ButtonListGroup.value.map((el) => {
|
item.ButtonGroup = ButtonListGroup.value.map((el) => {
|
||||||
if (
|
if (
|
||||||
(el.name === "编辑" &&
|
(el.name === "发货" && [2].includes(item.orderStatus)) ||
|
||||||
[1, -4, -2].includes(item.publishStatus)) ||
|
(el.name === "查看物流" &&
|
||||||
(el.name === "下架" && [-3].includes(item.publishStatus)) ||
|
[3, 4, 5].includes(item.orderStatus)) ||
|
||||||
(el.name === "复制" &&
|
(el.name === "补打快递单" && [3].includes(item.orderStatus)) ||
|
||||||
[1, -2, -3, -4, 3].includes(item.publishStatus)) ||
|
(el.name === "取消订单" && [1, 2].includes(item.orderStatus)) ||
|
||||||
(el.name === "上架" && [-2, -4].includes(item.publishStatus)) ||
|
el.name === "日志"
|
||||||
(el.name === "删除" && [1, -4, -2].includes(item.publishStatus))
|
|
||||||
) {
|
) {
|
||||||
return { ...el, show: true };
|
return { ...el, show: true };
|
||||||
}
|
}
|
||||||
|
@ -365,10 +434,18 @@ const onSearch = (value) => {
|
||||||
if (value.createTime) {
|
if (value.createTime) {
|
||||||
value.startCreateTime = new Date(value.createTime[0]).getTime();
|
value.startCreateTime = new Date(value.createTime[0]).getTime();
|
||||||
value.endCreateTime = new Date(value.createTime[1]).getTime() + 86399999;
|
value.endCreateTime = new Date(value.createTime[1]).getTime() + 86399999;
|
||||||
} else if (value.shelfTime) {
|
} else if (value.payTime) {
|
||||||
value.startShelfTime = new Date(value.shelfTime[0]).getTime();
|
value.payStartTime = new Date(value.payTime[0]).getTime();
|
||||||
value.endShelfTime = new Date(value.shelfTime[1]).getTime() + 86399999;
|
value.payEndTime = new Date(value.payTime[1]).getTime() + 86399999;
|
||||||
|
} else if (value.deliveryTime) {
|
||||||
|
value.deliveryStartTime = new Date(value.deliveryTime[0]).getTime();
|
||||||
|
value.deliveryEndTime =
|
||||||
|
new Date(value.deliveryTime[1]).getTime() + 86399999;
|
||||||
|
} else if (value.successTime) {
|
||||||
|
value.successStartTime = new Date(value.successTime[0]).getTime();
|
||||||
|
value.successEndTime = new Date(value.successTime[1]).getTime() + 86399999;
|
||||||
}
|
}
|
||||||
|
|
||||||
orderInfoDto = {
|
orderInfoDto = {
|
||||||
...orderInfoDto,
|
...orderInfoDto,
|
||||||
...value,
|
...value,
|
||||||
|
@ -395,6 +472,72 @@ const get_shopInfo = () => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const base64FileHeaderMapper = (fileBase64) => {
|
||||||
|
const fileHeader = new Map();
|
||||||
|
// 获取不同文件的文件头前3个字作为判断依据
|
||||||
|
fileHeader.set("/9j", "jpeg");
|
||||||
|
fileHeader.set("iVB", "png");
|
||||||
|
// fileHeader.set("Qk0", "BMP")
|
||||||
|
// fileHeader.set("SUk", "TIFF")
|
||||||
|
fileHeader.set("JVB", "pdf");
|
||||||
|
// fileHeader.set("UEs", "OFD")
|
||||||
|
let res = "";
|
||||||
|
// 遍历map中所提及的文件头特征
|
||||||
|
fileHeader.forEach((v, k) => {
|
||||||
|
// 箭头函数IE不支持 兼容IE需改写
|
||||||
|
if (k == fileBase64.substr(0, 3)) {
|
||||||
|
res = v;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// 如果不在map中返回unknown file
|
||||||
|
if (res == "") {
|
||||||
|
res = "unknown file";
|
||||||
|
}
|
||||||
|
// 否则返回map中的value值
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
|
||||||
|
const base64ToBlob = (code, type) => {
|
||||||
|
code = code.replace(/[\n\r]/g, "");
|
||||||
|
const raw = window.atob(code);
|
||||||
|
const rawLength = raw.length;
|
||||||
|
const uint8Array = new Uint8Array(rawLength);
|
||||||
|
for (let i = 0; i < rawLength; i++) {
|
||||||
|
uint8Array[i] = raw.charCodeAt(i);
|
||||||
|
}
|
||||||
|
if (type === "pdf") {
|
||||||
|
return new Blob([uint8Array], {
|
||||||
|
type: "application/pdf",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return new Blob([uint8Array], {
|
||||||
|
type: "image/jpeg",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const Print = (params) => {
|
||||||
|
express_printing(params).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
const da = res.data;
|
||||||
|
const s = base64FileHeaderMapper(da);
|
||||||
|
const blob = base64ToBlob(da, s);
|
||||||
|
printimg.value = URL.createObjectURL(blob);
|
||||||
|
if (da) {
|
||||||
|
printshow.value = true;
|
||||||
|
} else {
|
||||||
|
ElMessage("邮寄码获取超时,请再次点击");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const deliveryCancel = () => {
|
||||||
|
DeliveryVisible.value = false;
|
||||||
|
};
|
||||||
|
const deliveryConfirm = () => {
|
||||||
|
DeliveryVisible.value = false;
|
||||||
|
getDatas();
|
||||||
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
TabChange();
|
TabChange();
|
||||||
get_shopInfo();
|
get_shopInfo();
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20" v-if="store_list.length">
|
||||||
<el-col
|
<el-col
|
||||||
:xs="12"
|
:xs="12"
|
||||||
:sm="10"
|
:sm="10"
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<!-- 空状态 -->
|
<!-- 空状态 -->
|
||||||
<!-- <el-empty description="暂无数据" class="empty"></el-empty> -->
|
<el-empty v-else description="暂无数据" class="empty"></el-empty>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 弹窗 -->
|
<!-- 弹窗 -->
|
||||||
|
|
|
@ -0,0 +1,145 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog
|
||||||
|
:title="props.AddTitle"
|
||||||
|
v-model="props.AddDialogVisible"
|
||||||
|
width="30%"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:before-close="AddClose"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
ref="ruleFormRef"
|
||||||
|
:model="props.ruleForm"
|
||||||
|
status-icon
|
||||||
|
:rules="props.rules"
|
||||||
|
label-width="100px"
|
||||||
|
class="demo-ruleForm"
|
||||||
|
>
|
||||||
|
<el-form-item
|
||||||
|
v-for="(item, index) in props.ruleFormList"
|
||||||
|
:key="index"
|
||||||
|
:label="item.label"
|
||||||
|
:prop="item.prop"
|
||||||
|
v-show="item.show == '1'"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-if="item.type === 'input'"
|
||||||
|
v-model="props.ruleForm[item.params]"
|
||||||
|
:clearable="item.clearable"
|
||||||
|
:disabled="item.disabled"
|
||||||
|
:placeholder="item.placeholder"
|
||||||
|
></el-input>
|
||||||
|
<el-select
|
||||||
|
v-if="item.type === 'select'"
|
||||||
|
v-model="props.ruleForm[item.params]"
|
||||||
|
:autocomplete="item.autocomplete"
|
||||||
|
:clearable="item.clearable"
|
||||||
|
:placeholder="item.placeholder"
|
||||||
|
><el-option
|
||||||
|
v-for="item in item.options"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option
|
||||||
|
></el-select>
|
||||||
|
<el-checkbox-group
|
||||||
|
v-if="item.type === 'checkbo'"
|
||||||
|
v-model="props.ruleForm[item.params]"
|
||||||
|
>
|
||||||
|
<el-checkbox
|
||||||
|
v-for="item in item.options"
|
||||||
|
:key="item.value"
|
||||||
|
:value="item.value"
|
||||||
|
:name="item.label"
|
||||||
|
>
|
||||||
|
{{ item.label }}
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
|
||||||
|
<el-radio-group
|
||||||
|
v-if="item.type === 'radio'"
|
||||||
|
v-model="props.ruleForm[item.params]"
|
||||||
|
@change="item.radioChange"
|
||||||
|
>
|
||||||
|
<el-radio
|
||||||
|
v-for="el in item.options"
|
||||||
|
:key="el.value"
|
||||||
|
:value="el.value"
|
||||||
|
>{{ el.label }}</el-radio
|
||||||
|
>
|
||||||
|
</el-radio-group>
|
||||||
|
<el-input
|
||||||
|
v-if="item.type === 'textarea'"
|
||||||
|
type="textarea"
|
||||||
|
v-model="props.ruleForm[item.params]"
|
||||||
|
:placeholder="item.placeholder"
|
||||||
|
:autosize="item.autosize"
|
||||||
|
></el-input>
|
||||||
|
<div class="picture" v-else-if="item.type === 'UploadImage'">
|
||||||
|
<UploadImage
|
||||||
|
:limit="item.limit"
|
||||||
|
:imgList="item.fileImgList"
|
||||||
|
:multiple="item.multiple"
|
||||||
|
@onSuccessFiles="item.onSuccessFiles"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="AddClose">取消</el-button>
|
||||||
|
<el-button type="primary" @click="submitForm(ruleFormRef)">{{
|
||||||
|
editText
|
||||||
|
}}</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import UploadImage from "@components/Upload/newfileupload.vue";
|
||||||
|
import { ref, defineEmits, defineProps } from "vue";
|
||||||
|
const ruleFormRef = ref(null);
|
||||||
|
const $emit = defineEmits(["submitForm", "AddClose"]);
|
||||||
|
const props = defineProps({
|
||||||
|
AddDialogVisible: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
AddTitle: {
|
||||||
|
type: String,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
editText: {
|
||||||
|
type: String,
|
||||||
|
default: "前往授权",
|
||||||
|
},
|
||||||
|
ruleForm: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
ruleFormList: {
|
||||||
|
type: Array,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const submitForm = (form) => {
|
||||||
|
form.validate((valid) => {
|
||||||
|
if (!valid) return;
|
||||||
|
$emit("submitForm");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const AddClose = () => {
|
||||||
|
$emit("AddClose");
|
||||||
|
ruleFormRef.value.resetFields();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang='scss'>
|
||||||
|
</style>
|
|
@ -0,0 +1,585 @@
|
||||||
|
<template>
|
||||||
|
<div class="xy_shop">
|
||||||
|
<div class="head">
|
||||||
|
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
||||||
|
<el-form-item
|
||||||
|
:label="item.label"
|
||||||
|
v-for="(item, index) in formSelect"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
style="width: 190px"
|
||||||
|
v-if="item.type == 'input'"
|
||||||
|
v-model="xyUserAddressDto[item.params]"
|
||||||
|
:placeholder="`请输入${item.label}`"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
<el-button
|
||||||
|
v-if="item.type == 'button'"
|
||||||
|
:type="item.status"
|
||||||
|
@click="item.handler(item)"
|
||||||
|
>{{ item.name }}</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<buttonGroup :buttonList="buttonList"></buttonGroup>
|
||||||
|
<div class="main">
|
||||||
|
<div class="table">
|
||||||
|
<vxe-table
|
||||||
|
border
|
||||||
|
ref="xTable"
|
||||||
|
height="auto"
|
||||||
|
:data="tableData"
|
||||||
|
align="center"
|
||||||
|
>
|
||||||
|
<vxe-column
|
||||||
|
v-for="config in tableColumn"
|
||||||
|
:key="config.key"
|
||||||
|
:type="config.type"
|
||||||
|
:field="config.field"
|
||||||
|
:title="config.title"
|
||||||
|
:fixed="config.fixed"
|
||||||
|
:width="config.width"
|
||||||
|
:filters="config.filters"
|
||||||
|
>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-colgroup title="默认寄件人">
|
||||||
|
<vxe-column field="name" title="姓名"></vxe-column>
|
||||||
|
<vxe-column field="phone" title="联系方式"></vxe-column>
|
||||||
|
<vxe-column field="address" title="地址"></vxe-column>
|
||||||
|
</vxe-colgroup>
|
||||||
|
<vxe-column field="ship_by_default" title="是否打单发货默认物流">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<span>{{ row.default_flag ? "是" : "否" }}</span>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
<vxe-column field="remark" title="备注"></vxe-column>
|
||||||
|
<vxe-column title="操作">
|
||||||
|
<!-- <template #default="{ row }">
|
||||||
|
<el-button type="text" @click="edit(row)" style="margin-right: 10px"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
|
||||||
|
<el-button
|
||||||
|
slot="reference"
|
||||||
|
type="text"
|
||||||
|
style="color: #f56c6c"
|
||||||
|
@click="delConfirm(row)"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template> -->
|
||||||
|
</vxe-column>
|
||||||
|
</vxe-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<AddDialog
|
||||||
|
:AddDialogVisible="AddDialogVisible"
|
||||||
|
:AddTitle="AddTitle"
|
||||||
|
:editText="editText"
|
||||||
|
:ruleForm="ruleForm"
|
||||||
|
:ruleFormList="ruleFormList"
|
||||||
|
:rules="rules"
|
||||||
|
@AddClose="AddClose"
|
||||||
|
@submitForm="submitForm"
|
||||||
|
></AddDialog>
|
||||||
|
<el-dialog title="寄件人管理" v-model="jjrdialogVisible" width="800px">
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<el-form>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="success" @click="addjjrinfo">新增</el-button>
|
||||||
|
<el-button type="primary" @click="changejjr">修改</el-button>
|
||||||
|
<span style="margin: 0px 10px">
|
||||||
|
<el-popconfirm title="您确定删除吗?" @confirm="delthechoose">
|
||||||
|
<template #reference>
|
||||||
|
<el-button type="danger">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
</span>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<vxe-table
|
||||||
|
border
|
||||||
|
ref="xTable2"
|
||||||
|
height="300"
|
||||||
|
:data="jjrdialogtableData"
|
||||||
|
:radio-config="{ highlight: true }"
|
||||||
|
align="center"
|
||||||
|
>
|
||||||
|
<vxe-column type="radio" width="60"> </vxe-column>
|
||||||
|
<vxe-column field="name" title="姓名"></vxe-column>
|
||||||
|
<vxe-column field="phone" title="电话"></vxe-column>
|
||||||
|
|
||||||
|
<vxe-column title="地址">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div>{{ row.province + row.city + row.detailed }}</div>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
</vxe-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog
|
||||||
|
:title="title1"
|
||||||
|
v-model="xzjjrdialogVisible"
|
||||||
|
width="500px"
|
||||||
|
top="18vh"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<el-form v-model="jjrformLableAlign" label-width="90px">
|
||||||
|
<el-form-item label="寄件人">
|
||||||
|
<el-input
|
||||||
|
v-model="jjrformLableAlign.name"
|
||||||
|
placeholder="请输入寄件人"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="电话">
|
||||||
|
<el-input
|
||||||
|
v-model="jjrformLableAlign.phone"
|
||||||
|
placeholder="请输入寄件人电话"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="省市区">
|
||||||
|
<el-cascader
|
||||||
|
ref="areaRef"
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="jjrformLableAlign.area"
|
||||||
|
:options="area"
|
||||||
|
:filterable="true"
|
||||||
|
placeholder="请选择省市区"
|
||||||
|
@change="areaChange($event)"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="详细地址">
|
||||||
|
<el-input
|
||||||
|
v-model="jjrformLableAlign.detailed"
|
||||||
|
placeholder="请输入详细地址"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="邮政编码">
|
||||||
|
<el-input
|
||||||
|
v-model="jjrformLableAlign.postal_code"
|
||||||
|
placeholder="请输入邮政编码"
|
||||||
|
clearable
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="是否设为默认">
|
||||||
|
<el-radio-group v-model="jjrformLableAlign.default">
|
||||||
|
<el-radio :label='1'>是</el-radio>
|
||||||
|
<el-radio :label='0'>否</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item> -->
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="xzjjrdialogVisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="surejjrset" v-if="jjbtnshow"
|
||||||
|
>确 定</el-button
|
||||||
|
>
|
||||||
|
<el-button type="primary" @click="changeset" v-if="!jjbtnshow"
|
||||||
|
>修 改</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { router } from "@/router.js";
|
||||||
|
import { useRoute } from "vue-router";
|
||||||
|
import { ref, reactive, onMounted, computed } from "vue";
|
||||||
|
import { Delete, Edit, Search, Share, Upload } from "@element-plus/icons-vue";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import buttonGroup from "@/components/buttongroup.vue";
|
||||||
|
import AddDialog from "./components/addDialog.vue";
|
||||||
|
import {
|
||||||
|
userAddress,
|
||||||
|
add,
|
||||||
|
senderList,
|
||||||
|
senderAdd,
|
||||||
|
senderDelete,
|
||||||
|
} from "@/api/translateSet";
|
||||||
|
import { region } from "@/api/newlybuiltgoods";
|
||||||
|
const route = useRoute();
|
||||||
|
const AddDialogVisible = ref(false);
|
||||||
|
const jjrdialogVisible = ref(false);
|
||||||
|
const xzjjrdialogVisible = ref(false);
|
||||||
|
const jjbtnshow = ref(false);
|
||||||
|
const jjrformLableAlign = ref({
|
||||||
|
area: [],
|
||||||
|
name: "",
|
||||||
|
phone: "",
|
||||||
|
province_id: "",
|
||||||
|
province: "",
|
||||||
|
city_id: "",
|
||||||
|
city: "",
|
||||||
|
district_id: "",
|
||||||
|
district: "",
|
||||||
|
detailed: "",
|
||||||
|
postal_code: "",
|
||||||
|
});
|
||||||
|
const title1 = ref("");
|
||||||
|
const area = ref([]);
|
||||||
|
const areaRef = ref(null);
|
||||||
|
const AddTitle = ref("添加快递公司");
|
||||||
|
const editText = ref("确定");
|
||||||
|
const ruleForm = ref({
|
||||||
|
expressCompany: "",
|
||||||
|
id: "",
|
||||||
|
businesses_code: "",
|
||||||
|
user_id: "",
|
||||||
|
logistics_id: "",
|
||||||
|
month_flag: "",
|
||||||
|
sender_id: "",
|
||||||
|
month_code: "",
|
||||||
|
default_flag: "",
|
||||||
|
remark: "",
|
||||||
|
logistics_name: "",
|
||||||
|
jd_access_token: "",
|
||||||
|
logistics_code: "",
|
||||||
|
});
|
||||||
|
const ruleFormList = ref([
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
label: "物流名称",
|
||||||
|
params: "logistics_name",
|
||||||
|
prop: "logistics_name",
|
||||||
|
clearable: true,
|
||||||
|
show: true,
|
||||||
|
placeholder: "请输入物流名称",
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
type: "select",
|
||||||
|
label: "快递公司",
|
||||||
|
params: "expressCompany",
|
||||||
|
prop: "expressCompany",
|
||||||
|
clearable: true,
|
||||||
|
show: true,
|
||||||
|
placeholder: "请选择快递公司",
|
||||||
|
inputChange: () => {},
|
||||||
|
options: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
label: "物流编码",
|
||||||
|
params: "logistics_code",
|
||||||
|
prop: "logistics_code",
|
||||||
|
clearable: true,
|
||||||
|
disabled: true,
|
||||||
|
show: true,
|
||||||
|
placeholder: "选择快递公司后自动显示",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "radio",
|
||||||
|
label: "是否使用月结",
|
||||||
|
params: "month_flag",
|
||||||
|
prop: "month_flag",
|
||||||
|
show: true,
|
||||||
|
clearable: true,
|
||||||
|
radioChange: (e) => {
|
||||||
|
ruleFormList.value.find((e) => e.label === "月结号").show = e;
|
||||||
|
},
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: "是",
|
||||||
|
value: "1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "否",
|
||||||
|
value: "0",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "select",
|
||||||
|
label: "快递产品",
|
||||||
|
params: "",
|
||||||
|
prop: "",
|
||||||
|
clearable: true,
|
||||||
|
show: false,
|
||||||
|
placeholder: "请选择快递产品",
|
||||||
|
inputChange: () => {},
|
||||||
|
options: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
label: "月结号",
|
||||||
|
params: "",
|
||||||
|
prop: "",
|
||||||
|
clearable: true,
|
||||||
|
show: false,
|
||||||
|
placeholder: "请输入月结号",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
label: "access_token",
|
||||||
|
params: "",
|
||||||
|
prop: "",
|
||||||
|
clearable: true,
|
||||||
|
show: false,
|
||||||
|
placeholder: "请输入access_token",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
label: "refresh_token",
|
||||||
|
params: "",
|
||||||
|
prop: "",
|
||||||
|
clearable: true,
|
||||||
|
show: false,
|
||||||
|
placeholder: "请输入refresh_token",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "select",
|
||||||
|
label: "默认寄件人",
|
||||||
|
params: "sender_id",
|
||||||
|
prop: "sender_id",
|
||||||
|
show: true,
|
||||||
|
clearable: true,
|
||||||
|
options: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "radio",
|
||||||
|
label: "是否默认物流",
|
||||||
|
params: "",
|
||||||
|
prop: "",
|
||||||
|
show: true,
|
||||||
|
clearable: true,
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
label: "是",
|
||||||
|
value: "1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "否",
|
||||||
|
value: "0",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "textarea",
|
||||||
|
label: "备注",
|
||||||
|
params: "remark",
|
||||||
|
prop: "remark",
|
||||||
|
autosize: { minRows: 5, maxRows: 5 },
|
||||||
|
clearable: true,
|
||||||
|
show: true,
|
||||||
|
placeholder: "请输入备注",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const rules = ref({});
|
||||||
|
let xyUserAddressDto = reactive({
|
||||||
|
logisticsCode: "",
|
||||||
|
logisticsName: "",
|
||||||
|
});
|
||||||
|
const buttonList = ref([
|
||||||
|
{
|
||||||
|
name: "新增物流",
|
||||||
|
handler: (item) => {
|
||||||
|
AddDialogVisible.value = true;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "寄件人管理",
|
||||||
|
handler: (item) => {
|
||||||
|
jjrdialogVisible.value = true;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const formSelect = ref([
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
label: "物流编号",
|
||||||
|
params: "logisticsCode",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
label: "物流名称",
|
||||||
|
params: "logisticsName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "button",
|
||||||
|
status: "primary",
|
||||||
|
name: "查询",
|
||||||
|
handler: (item) => {
|
||||||
|
get_userAddress();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "button",
|
||||||
|
status: "",
|
||||||
|
name: "重置",
|
||||||
|
handler: (item) => {
|
||||||
|
xyUserAddressDto = { logisticsCode: "", logisticsName: "" };
|
||||||
|
get_userAddress();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const tableData = ref({});
|
||||||
|
const jjrdialogtableData = ref({});
|
||||||
|
const tableColumn = ref([
|
||||||
|
{ key: 3, field: "logisticsCode", title: "物流编号", width: 120 },
|
||||||
|
{ key: 5, field: "logisticsName", title: "物流名称", width: 120 },
|
||||||
|
{ key: 4, field: "expressCompany", title: "快递公司", width: 120 },
|
||||||
|
]);
|
||||||
|
|
||||||
|
const submitForm = () => {
|
||||||
|
add(ruleForm.value).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const AddClose = () => {
|
||||||
|
AddDialogVisible.value = false;
|
||||||
|
};
|
||||||
|
const get_userAddress = () => {
|
||||||
|
userAddress(xyUserAddressDto).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
tableData.value = res.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const get_senderList = () => {
|
||||||
|
senderList().then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
jjrdialogtableData.value = res.data;
|
||||||
|
ruleFormList.value.find((e) => e.label == "默认寄件人").options =
|
||||||
|
res.data.map((e) => ({
|
||||||
|
label: e.name,
|
||||||
|
value: e.id,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const addjjrinfo = () => {
|
||||||
|
jjrformLableAlign.value = {};
|
||||||
|
jjbtnshow.value = true;
|
||||||
|
title1.value = "新增寄件人";
|
||||||
|
xzjjrdialogVisible.value = true;
|
||||||
|
};
|
||||||
|
const xTable2 = ref(null);
|
||||||
|
const changejjr = () => {
|
||||||
|
if (xTable2.value.getRadioRecord() === null) {
|
||||||
|
ElMessage.error({
|
||||||
|
message: "请选中一条后修改",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
const params = xTable2.value.getRadioRecord();
|
||||||
|
xzjjrdialogVisible.value = true;
|
||||||
|
jjbtnshow.value = false;
|
||||||
|
title1.value = "修改寄件人";
|
||||||
|
console.log(params, "fasdflsdjfkds");
|
||||||
|
|
||||||
|
jjrformLableAlign.value.name = params.name;
|
||||||
|
jjrformLableAlign.value.detailed = params.detailed;
|
||||||
|
jjrformLableAlign.value.phone = params.phone;
|
||||||
|
jjrformLableAlign.value.postal_code = params.postal_code;
|
||||||
|
jjrformLableAlign.value.area = [
|
||||||
|
params.province_id,
|
||||||
|
params.city_id,
|
||||||
|
params.district_id,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//获取发货地
|
||||||
|
const get_region = () => {
|
||||||
|
region().then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
const transformData = (data) => {
|
||||||
|
return data.map((item) => {
|
||||||
|
let result = {
|
||||||
|
label: item.name,
|
||||||
|
value: item.id,
|
||||||
|
};
|
||||||
|
if (item.child && Array.isArray(item.child)) {
|
||||||
|
result.children = transformData(item.child);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
area.value = transformData(res.data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const areaChange = (value) => {
|
||||||
|
// const selectedData = areaRef.value.cascaderPanelRef.options;
|
||||||
|
// if (selectedData.length > 0) {
|
||||||
|
// const province = selectedData[0];
|
||||||
|
// const city = selectedData.length > 1 ? selectedData[0].children[0] : null;
|
||||||
|
// const district = selectedData.length > 2 ?selectedData[0].children[0]: null;
|
||||||
|
// console.log(
|
||||||
|
// `Province: ${province.label}, City: ${
|
||||||
|
// city ? city.label : "None"
|
||||||
|
// }, District: ${district ? district.label : "None"}`
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
const surejjrset = () => {
|
||||||
|
const area = jjrformLableAlign.value.area;
|
||||||
|
let params = {
|
||||||
|
...jjrformLableAlign.value,
|
||||||
|
province_id: area[0],
|
||||||
|
province: "",
|
||||||
|
city_id: area[1],
|
||||||
|
city: "",
|
||||||
|
district_id: area[2],
|
||||||
|
district: "",
|
||||||
|
};
|
||||||
|
|
||||||
|
return;
|
||||||
|
senderAdd(params).then((res) => {});
|
||||||
|
};
|
||||||
|
const delthechoose = () => {
|
||||||
|
if (!xTable2.value.getRadioRecord()) {
|
||||||
|
ElMessage.error({
|
||||||
|
message: "请选中一条后修改",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
const params = xTable2.value.getRadioRecord();
|
||||||
|
senderDelete(params.id).then((res) => {
|
||||||
|
if (res.code === "200") {
|
||||||
|
ElMessage.success(res.msg);
|
||||||
|
get_senderList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
onMounted(() => {
|
||||||
|
get_userAddress();
|
||||||
|
get_senderList();
|
||||||
|
get_region();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang='scss'>
|
||||||
|
.xy_shop {
|
||||||
|
background: #f1f2f5;
|
||||||
|
.head {
|
||||||
|
height: 80px;
|
||||||
|
padding: 0 20px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
:deep(.el-form-item) {
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
height: calc(100vh - 173px);
|
||||||
|
padding: 0 20px 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
.table {
|
||||||
|
height: 100%;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue