完善菜单

This commit is contained in:
启航 2024-04-08 17:19:59 +08:00
parent e982f8453a
commit fa643ef681
36 changed files with 5613 additions and 3039 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,73 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : localhost
Source Server Type : MySQL
Source Server Version : 80200
Source Host : localhost:3306
Source Schema : qihang-oms
Target Server Type : MySQL
Target Server Version : 80200
File Encoding : 65001
Date: 31/03/2024 20:26:51
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for sys_menu
-- ----------------------------
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`menu_id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
`menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称',
`parent_id` bigint NULL DEFAULT 0 COMMENT '父菜单ID',
`order_num` int NULL DEFAULT 0 COMMENT '显示顺序',
`path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '路由地址',
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件路径',
`query` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由参数',
`is_frame` int NULL DEFAULT 1 COMMENT '是否为外链0是 1否',
`is_cache` int NULL DEFAULT 0 COMMENT '是否缓存0缓存 1不缓存',
`menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '菜单类型M目录 C菜单 F按钮',
`visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态0显示 1隐藏',
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态0正常 1停用',
`perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限标识',
`icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#' COMMENT '菜单图标',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
PRIMARY KEY (`menu_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2079 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of sys_menu
-- ----------------------------
INSERT INTO `sys_menu` VALUES (1, '订单管理', 0, 1, '/order', 'Layout', '', 1, 0, 'M', '0', '0', '', 'system', 'admin', '2023-12-27 15:00:27', 'admin', '2024-03-17 15:03:46', '系统管理目录');
INSERT INTO `sys_menu` VALUES (2, '售后管理', 0, 2, '/jd', 'Layout', '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', '2023-12-27 15:00:27', 'admin', '2024-03-17 15:00:03', '至简官网地址');
INSERT INTO `sys_menu` VALUES (3, '店铺设置', 0, 9, '/dou', 'Layout', '', 1, 0, 'M', '0', '0', '', 'dict', 'admin', '2023-12-29 13:29:44', '', '', '');
INSERT INTO `sys_menu` VALUES (4, '商品管理', 0, 5, '/goods', 'Layout', '', 1, 0, 'M', '0', '0', '', 'build', 'admin', '2023-12-29 16:53:03', 'admin', '2024-03-31 20:23:51', '');
INSERT INTO `sys_menu` VALUES (5, '系统设置', 0, 99, '/system', 'Layout', '', 1, 0, 'M', '0', '0', '', 'system', 'admin', '2023-12-27 15:00:27', 'admin', '2023-12-29 09:07:42.856856', '系统管理目录');
INSERT INTO `sys_menu` VALUES (100, '订单查询', 1, 1, 'order_list', 'order/index', '', 1, 0, 'C', '0', '0', '', 'user', 'admin', '2023-12-27 15:00:27', 'admin', '2024-03-17 15:03:59', '用户管理菜单');
INSERT INTO `sys_menu` VALUES (101, '订单更新日志', 1, 4, 'tao/goods/list', 'system/role/index', '', 1, 0, 'C', '0', '0', '', 'peoples', 'admin', '2023-12-27 15:00:27', 'admin', '2024-03-29 09:30:42', '角色管理菜单');
INSERT INTO `sys_menu` VALUES (102, '店铺订单管理', 1, 2, 'tao/refund/list', 'system/menu/index', '', 1, 0, 'C', '0', '0', '', 'monitor', 'admin', '2023-12-27 15:00:27', 'admin', '2024-03-29 09:30:09', '菜单管理菜单');
INSERT INTO `sys_menu` VALUES (104, '退款查询', 2, 1, 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', '', 'tree', 'admin', '2023-12-27 15:00:27', 'admin', '2024-03-29 09:31:24', '岗位管理菜单');
INSERT INTO `sys_menu` VALUES (105, '退款更新日志', 2, 6, 'jd/goods/list', 'system/dict/index', '', 1, 0, 'C', '0', '0', '', 'dict', 'admin', '2023-12-27 15:00:27', '', '', '字典管理菜单');
INSERT INTO `sys_menu` VALUES (106, '店铺退款管理', 2, 2, 'jd/refund/list', 'system/config/index', '', 1, 0, 'C', '0', '0', '', 'edit', 'admin', '2023-12-27 15:00:27', 'admin', '2024-03-29 09:31:17', '参数设置菜单');
INSERT INTO `sys_menu` VALUES (108, '店铺管理', 3, 9, 'dou/order/list', 'scm/supplier/index', '', 1, 0, 'C', '0', '0', '', 'tree', 'admin', '2023-12-29 09:14:02', 'admin', '2023-12-29 09:17:27.514466', '');
INSERT INTO `sys_menu` VALUES (109, '店铺商品管理', 4, 10, 'dou/goods/list', 'goods/index', '', 1, 0, 'C', '0', '0', '', 'peoples', 'admin', '2023-12-29 13:31:01', 'admin', '2024-03-29 09:31:44', '');
INSERT INTO `sys_menu` VALUES (110, '开放平台设置', 3, 88, 'dou/refund/list', 'goods/category/index', '', 1, 0, 'C', '0', '0', '', 'peoples', 'admin', '2023-12-29 13:32:41', 'admin', '2023-12-29 15:02:22.220534', '');
INSERT INTO `sys_menu` VALUES (112, 'ERP商品管理', 4, 1, 'list', 'goods/index', '', 1, 0, 'C', '0', '0', '', 'tree', 'admin', '2023-12-29 16:35:55', 'admin', '2024-03-18 07:45:13', '');
INSERT INTO `sys_menu` VALUES (116, '用户管理', 5, 1, 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', '', 'user', 'admin', '2023-12-27 15:00:27', '', '', '用户管理菜单');
INSERT INTO `sys_menu` VALUES (117, '菜单管理', 5, 1, 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', '', 'user', 'admin', '2023-12-27 15:00:27', '', '', '用户管理菜单');
INSERT INTO `sys_menu` VALUES (2078, '添加ERP商品', 4, 9, 'goods_add', 'goods/create', NULL, 1, 0, 'C', '0', '0', NULL, 'checkbox', 'admin', '2024-03-18 07:59:57', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2079, '字典管理', 5, 9, 'dict', 'system/dict/index', NULL, 1, 0, 'C', '0', '0', '', 'dict', 'admin', '2024-03-18 08:43:55', 'admin', '2024-03-18 08:44:08', '');
INSERT INTO `sys_menu` VALUES (2080, '发货管理', 0, 3, 'shipping', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'guide', 'admin', '2024-03-31 20:24:17', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2081, '发货管理', 2080, 1, 'ship', NULL, NULL, 1, 0, 'C', '0', '0', NULL, 'button', 'admin', '2024-03-31 20:24:49', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2082, '快递公司库', 2080, 2, 'logistics_company', NULL, NULL, 1, 0, 'C', '0', '0', NULL, 'cascader', 'admin', '2024-03-31 20:25:47', '', NULL, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,29 @@
import request from '@/utils/request'
// 查询列表
export function list(query) {
return request({
url: '/api/oms-api/afterSale/list',
method: 'get',
params: query
})
}
// 新增补发
export function addShipAgain(data) {
return request({
url: '/afterSale/shipAgain',
method: 'post',
data: data
})
}
// 完成
export function shipAgainComplete(id) {
return request({
url: '/afterSale/shipAgain/complete/'+id,
method: 'put'
})
}

View File

@ -0,0 +1,27 @@
import request from '@/utils/request'
// 查询
export function listShipping(query) {
return request({
url: '/api/oms-api/shipping/list',
method: 'get',
params: query
})
}
export function getLogistics(id) {
return request({
url: '/api/logistics/' + id,
method: 'get'
})
}
// 新增
export function handShip(data) {
return request({
url: '/api/oms-api/shipping/handShip',
method: 'post',
data: data
})
}

View File

@ -12,7 +12,7 @@ export function listGoodsSpec(query) {
// 查询商品规格库存管理详细 // 查询商品规格库存管理详细
export function getGoodsSpec(id) { export function getGoodsSpec(id) {
return request({ return request({
url: '/goods/goodsSpec/' + id, url: '/api/oms-api/goods/sku/' + id,
method: 'get' method: 'get'
}) })
} }
@ -29,7 +29,7 @@ export function addGoodsSpec(data) {
// 修改商品规格库存管理 // 修改商品规格库存管理
export function updateGoodsSpec(data) { export function updateGoodsSpec(data) {
return request({ return request({
url: '/goods/goodsSpec', url: '/api/oms-api/goods/sku',
method: 'put', method: 'put',
data: data data: data
}) })

View File

@ -27,6 +27,16 @@ export function pullOrder(data) {
data: data data: data
}) })
} }
export function pullOrderDetail(data) {
return request({
url: '/api/jd-api/order/pull_order_detail',
method: 'post',
data: data
})
}
export function pushOms(data) { export function pushOms(data) {
return request({ return request({
url: '/api/jd-api/order/push_oms', url: '/api/jd-api/order/push_oms',

View File

@ -12,15 +12,23 @@ export function listOrder(query) {
// 查询店铺订单详细 // 查询店铺订单详细
export function getOrder(id) { export function getOrder(id) {
return request({ return request({
url: '/api/order/' + id, url: '/api/oms-api/order/' + id,
method: 'get' method: 'get'
}) })
} }
// 新增店铺订单 // 订单明细list
export function addOrder(data) { export function listOrderItem(query) {
return request({ return request({
url: '/api/order', url: '/api/oms-api/order/item_list',
method: 'get',
params: query
})
}
export function updateErpSkuId(data) {
return request({
url: '/api/oms-api/order/updateErpSkuId',
method: 'post', method: 'post',
data: data data: data
}) })
@ -34,21 +42,3 @@ export function shipOrder(data) {
}) })
} }
// 修改店铺订单
export function updateOrder(data) {
return request({
url: '/api/order',
method: 'put',
data: data
})
}
// 删除店铺订单
export function delOrder(id) {
return request({
url: '/api/order/' + id,
method: 'delete'
})
}

View File

@ -76,6 +76,15 @@ export function listLogistics(query) {
params: query params: query
}) })
} }
export function listLogisticsStatus(query) {
return request({
url: '/api/oms-api/shop/logistics_status',
method: 'get',
params: query
})
}
export function listShopPullLogs(query) { export function listShopPullLogs(query) {
return request({ return request({
@ -84,3 +93,11 @@ export function listShopPullLogs(query) {
params: query params: query
}) })
} }
// 修改物流状态
export function updateStatus(data) {
return request({
url: '/api/oms-api/shop/logistics/updateStatus',
method: 'put',
data: data
})
}

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询部门列表 // 查询部门列表
export function listDept(query) { export function listDept(query) {
return request({ return request({
url: '/system/dept/list', url: '/api/sys-api/system/dept/list',
method: 'get', method: 'get',
params: query params: query
}) })
@ -12,7 +12,7 @@ export function listDept(query) {
// 查询部门列表(排除节点) // 查询部门列表(排除节点)
export function listDeptExcludeChild(deptId) { export function listDeptExcludeChild(deptId) {
return request({ return request({
url: '/system/dept/list/exclude/' + deptId, url: '/api/sys-api/system/dept/list/exclude/' + deptId,
method: 'get' method: 'get'
}) })
} }
@ -20,7 +20,7 @@ export function listDeptExcludeChild(deptId) {
// 查询部门详细 // 查询部门详细
export function getDept(deptId) { export function getDept(deptId) {
return request({ return request({
url: '/system/dept/' + deptId, url: '/api/sys-api/system/dept/' + deptId,
method: 'get' method: 'get'
}) })
} }
@ -28,7 +28,7 @@ export function getDept(deptId) {
// 新增部门 // 新增部门
export function addDept(data) { export function addDept(data) {
return request({ return request({
url: '/system/dept', url: '/api/sys-api/system/dept',
method: 'post', method: 'post',
data: data data: data
}) })
@ -37,7 +37,7 @@ export function addDept(data) {
// 修改部门 // 修改部门
export function updateDept(data) { export function updateDept(data) {
return request({ return request({
url: '/system/dept', url: '/api/sys-api/system/dept',
method: 'put', method: 'put',
data: data data: data
}) })
@ -46,7 +46,7 @@ export function updateDept(data) {
// 删除部门 // 删除部门
export function delDept(deptId) { export function delDept(deptId) {
return request({ return request({
url: '/system/dept/' + deptId, url: '/api/sys-api/system/dept/' + deptId,
method: 'delete' method: 'delete'
}) })
} }

View File

@ -28,7 +28,7 @@ export function treeselect() {
// 根据角色ID查询菜单下拉树结构 // 根据角色ID查询菜单下拉树结构
export function roleMenuTreeselect(roleId) { export function roleMenuTreeselect(roleId) {
return request({ return request({
url: '/system/menu/roleMenuTreeselect/' + roleId, url: '/api/sys-api/system/menu/roleMenuTreeselect/' + roleId,
method: 'get' method: 'get'
}) })
} }

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询角色列表 // 查询角色列表
export function listRole(query) { export function listRole(query) {
return request({ return request({
url: '/system/role/list', url: '/api/sys-api/system/role/list',
method: 'get', method: 'get',
params: query params: query
}) })
@ -12,7 +12,7 @@ export function listRole(query) {
// 查询角色详细 // 查询角色详细
export function getRole(roleId) { export function getRole(roleId) {
return request({ return request({
url: '/system/role/' + roleId, url: '/api/sys-api/system/role/' + roleId,
method: 'get' method: 'get'
}) })
} }
@ -20,7 +20,7 @@ export function getRole(roleId) {
// 新增角色 // 新增角色
export function addRole(data) { export function addRole(data) {
return request({ return request({
url: '/system/role', url: '/api/sys-api/system/role',
method: 'post', method: 'post',
data: data data: data
}) })
@ -29,7 +29,7 @@ export function addRole(data) {
// 修改角色 // 修改角色
export function updateRole(data) { export function updateRole(data) {
return request({ return request({
url: '/system/role', url: '/api/sys-api/system/role',
method: 'put', method: 'put',
data: data data: data
}) })

View File

@ -129,7 +129,7 @@ export function updateAuthRole(data) {
// 查询部门下拉树结构 // 查询部门下拉树结构
export function deptTreeSelect() { export function deptTreeSelect() {
return request({ return request({
url: '/system/user/deptTree', url: '/api/sys-api/system/user/deptTree',
method: 'get' method: 'get'
}) })
} }

View File

@ -27,6 +27,14 @@ export function pullOrder(data) {
}) })
} }
export function pullOrderDetail(data) {
return request({
url: '/api/tao-api/order/pull_order_detail',
method: 'post',
data: data
})
}
export function pushOms(data) { export function pushOms(data) {
return request({ return request({
url: '/api/tao-api/order/push_oms', url: '/api/tao-api/order/push_oms',

View File

@ -16,6 +16,15 @@ export function pullRefund(data) {
}) })
} }
export function pullRefundDetail(data) {
return request({
url: '/api/tao-api/refund/pull_refund_detail',
method: 'post',
data: data
})
}
export function pushOms(data) { export function pushOms(data) {
return request({ return request({
url: '/api/tao-api/refund/push_oms', url: '/api/tao-api/refund/push_oms',

View File

@ -0,0 +1,351 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="退货单号" prop="afterSaleOrderId">
<el-input
v-model="queryParams.afterSaleOrderId"
placeholder="请输入退货单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="源订单号" prop="orderId">
<el-input
v-model="queryParams.orderId"
placeholder="请输入源订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="店铺" prop="shopId">
<el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<el-option
v-for="item in shopList"
:key="item.id"
:label="item.name"
:value="item.id">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 1">淘宝天猫</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 2">京东</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 3">抖店</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 4">拼多多</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 5">视频号小店</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="商品id" prop="goodsId">
<el-input
v-model="queryParams.goodsId"
placeholder="请输入商品id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="sku编码" prop="skuCode">
<el-input
v-model="queryParams.skuCode"
placeholder="请输入sku编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="物流单号" prop="logisticsCode">-->
<!-- <el-input-->
<!-- v-model="queryParams.logisticsCode"-->
<!-- placeholder="请输入物流单号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>手动处理售后</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-download"
size="mini"
@click="handleShippingLog"
>ERP售后处理推送记录</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="ID" align="center" prop="id" />
<el-table-column label="退货单号" align="center" prop="afterSaleOrderId" />
<el-table-column label="退货类型" align="center" prop="type" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.type === 10"> 退货</el-tag>
<el-tag size="small" v-if="scope.row.type === 20"> 换货</el-tag>
<el-tag size="small" v-if="scope.row.type === 80"> 补发</el-tag>
<el-tag size="small" v-if="scope.row.type === 99"> 订单拦截</el-tag>
</template>
</el-table-column>
<el-table-column label="源订单号" align="center" prop="orderId" />
<el-table-column label="店铺" align="center" prop="shopId" >
<template slot-scope="scope">
<span>{{ shopList.find(x=>x.id === scope.row.shopId).name }}</span>
</template>
</el-table-column>
<el-table-column label="订单id" align="center" prop="orderId" />
<el-table-column label="子订单id" align="center" prop="subOrderId" />
<el-table-column label="商品" align="center" prop="title" />
<el-table-column label="sku" align="center" prop="skuInfo" />
<el-table-column label="SKU编码" align="center" prop="skuCode" />
<el-table-column label="数量" align="center" prop="count" />
<el-table-column label="物流公司" align="center" prop="shipCompany" />
<el-table-column label="物流单号" align="center" prop="shipWaybillCode" />
<el-table-column label="收货人" align="center" prop="receiverName" />
<el-table-column label="手机号" align="center" prop="receiverTel" />
<el-table-column label="收货地址" align="center" prop="receiverAddress" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="状态" align="center" prop="status" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.status === 1"> 已发出</el-tag>
<el-tag size="small" v-if="scope.row.status === 2"> 已完成</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.status === 1"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['api:returned:edit']"
>确认完成</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改退换货对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="店铺" prop="shopId">
<el-select v-model="form.shopId" filterable r placeholder="搜索店铺" >
<el-option v-for="item in shopList" :key="item.id" :label="item.name" :value="item.id">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 1">淘宝天猫</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 2">京东</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 3">抖店</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 4">拼多多</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 5">视频号小店</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="退货单号" prop="afterSaleOrderId">
<el-input v-model="form.afterSaleOrderId" placeholder="请输入退货单号" />
</el-form-item>
<el-form-item label="源订单号" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入源订单号" />
</el-form-item>
<el-form-item label="子订单id" prop="subOrderId">
<el-input v-model="form.subOrderId" placeholder="请输入订单id" />
</el-form-item>
<el-form-item label="平台商品id" prop="productId">
<el-input v-model="form.productId" placeholder="请输入平台商品id" />
</el-form-item>
<el-form-item label="平台skuId" prop="skuId">
<el-input v-model="form.skuId" placeholder="请输入平台skuId" />
</el-form-item>
<el-form-item label="Sku编码" prop="skuCode">
<el-input v-model="form.skuCode" placeholder="请输入Sku编码" />
</el-form-item>
<el-form-item label="ERP商品id" prop="erpGoodsId">
<el-input v-model="form.erpGoodsId" placeholder="请输入ERP商品id" />
</el-form-item>
<el-form-item label="ERP商品skuId" prop="erpSkuId">
<el-input v-model="form.erpSkuId" placeholder="请输入ERP商品skuId" />
</el-form-item>
<el-form-item label="商品名称" prop="title">
<el-input v-model="form.title" placeholder="请输入商品名称" />
</el-form-item>
<el-form-item label="商品SKU信息" prop="skuInfo">
<el-input v-model="form.skuInfo" placeholder="请输入商品SKU信息" />
</el-form-item>
<el-form-item label="数量" prop="count">
<el-input v-model="form.count" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="发货物流公司" prop="shipCompany">
<el-input v-model="form.shipCompany" placeholder="请输入发货物流公司" />
</el-form-item>
<el-form-item label="发货物流单号" prop="shipWaybillCode">
<el-input v-model="form.shipWaybillCode" placeholder="请输入发货物流单号" />
</el-form-item>
<el-form-item label="收货人" prop="receiverName">
<el-input v-model="form.receiverName" placeholder="请输入收货人" />
</el-form-item>
<el-form-item label="收货人手机号" prop="receiverTel">
<el-input v-model="form.receiverTel" placeholder="请输入收货人手机号" />
</el-form-item>
<el-form-item label="收货地址" prop="receiverAddress">
<el-input v-model="form.receiverAddress" placeholder="请输入收货地址" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {list, addShipAgain, shipAgainComplete} from "@/api/afterSale/after_sale";
import {listShop} from "@/api/shop/shop";
export default {
name: "AfterSale",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
dataList: [],
shopList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
afterSaleOrderId: null,
shopId: null,
orderId: null,
status: null,
},
//
form: {},
//
rules: {
shopId: [{ required: true, message: "请选择店铺", trigger: "change" }],
afterSaleOrderId: [{ required: true, message: "不能为空", trigger: "blur" }],
orderId: [{ required: true, message: "订单号不能为空", trigger: "blur" }],
erpGoodsId: [{ required: true, message: "不能为空", trigger: "blur" }],
erpSkuId: [{ required: true, message: "不能为空", trigger: "change" }],
skuInfo: [{ required: true, message: "不能为空", trigger: "change" }],
title: [{ required: true, message: "不能为空", trigger: "change" }],
count: [{ required: true, message: "不能为空", trigger: "change" }],
shipCompany: [{ required: true, message: "不能为空", trigger: "change" }],
shipWaybillCode: [{ required: true, message: "不能为空", trigger: "change" }],
receiverName: [{ required: true, message: "不能为空", trigger: "change" }],
receiverTel: [{ required: true, message: "不能为空", trigger: "change" }],
receiverAddress: [{ required: true, message: "不能为空", trigger: "change" }],
}
};
},
created() {
listShop({}).then(response => {
this.shopList = response.rows;
});
this.getList();
},
methods: {
/** 查询退换货列表 */
getList() {
this.loading = true;
list(this.queryParams).then(response => {
this.dataList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
handleAdd(){
this.reset()
this.open=true
this.title="手动添加补发信息"
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
shipAgainComplete(id).then(response => {
this.$modal.msgSuccess("确认完成");
this.getList()
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
addShipAgain(this.form).then(response => {
this.$modal.msgSuccess("补发成功");
this.open = false;
this.getList();
});
}
});
}
}
};
</script>

View File

@ -25,16 +25,16 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="店铺" prop="shopId">--> <el-form-item label="店铺" prop="shopId">
<!-- <el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">--> <el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<!-- <el-option--> <el-option
<!-- v-for="item in shopList"--> v-for="item in shopList"
<!-- :key="item.id"--> :key="item.id"
<!-- :label="item.name"--> :label="item.name"
<!-- :value="item.id">--> :value="item.id">
<!-- </el-option>--> </el-option>
<!-- </el-select>--> </el-select>
<!-- </el-form-item>--> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -116,7 +116,7 @@ import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import {listShop} from "@/api/shop/shop"; import {listShop} from "@/api/shop/shop";
export default { export default {
name: "Goods", name: "GoodsDou",
data() { data() {
return { return {
// //
@ -161,10 +161,10 @@ export default {
}; };
}, },
created() { created() {
// listShop({type:3}).then(response => { listShop({type:3}).then(response => {
// this.shopList = response.rows; this.shopList = response.rows;
// }); });
// this.getList(); this.getList();
this.loading = false; this.loading = false;
}, },
methods: { methods: {

View File

@ -0,0 +1,46 @@
<template>
<div class="app-container">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="天猫" name="taoGoods">
<goods-tao></goods-tao>
</el-tab-pane>
<el-tab-pane label="京东" name="jdGoods" lazy>
<goods-jd></goods-jd>
</el-tab-pane>
<el-tab-pane label="抖店" name="douOrder" lazy>
<goods-dou></goods-dou>
</el-tab-pane>
<el-tab-pane label="拼多多" name="pddOrder" lazy>
<goods-pdd></goods-pdd>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import GoodsTao from "@/views/tao/goods/index";
import GoodsJd from "@/views/jd/goods/index";
import GoodsDou from "@/views/dou/goods/index";
import GoodsPdd from "@/views/pdd/goods/index";
export default {
name: "Goods",
components:{GoodsTao,GoodsJd,GoodsDou,GoodsPdd},
data() {
return {
activeName: 'taoGoods'
};
},
created() {
},
mounted() {
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
}
}
};
</script>

View File

@ -65,13 +65,18 @@
<el-table-column label="Sku名" align="center" prop="skuName" /> <el-table-column label="Sku名" align="center" prop="skuName" />
<el-table-column label="Sku编码" align="center" prop="skuNum" /> <el-table-column label="Sku编码" align="center" prop="skuNum" />
<!-- <el-table-column label="颜色" align="center" prop="colorValue" />--> <!-- <el-table-column label="颜色" align="center" prop="colorValue" />-->
<el-table-column label="颜色图片" align="center" prop="colorImage" width="100"> <!-- <el-table-column label="颜色图片" align="center" prop="colorImage" width="100">-->
<!-- <template slot-scope="scope">-->
<!-- <image-preview :src="scope.row.colorImage" :width="50" :height="50"/>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="尺码" align="center" prop="sizeValue" />-->
<!-- <el-table-column label="款式" align="center" prop="styleValue" />-->
<el-table-column label="Tag" align="center" prop="tag" >
<template slot-scope="scope"> <template slot-scope="scope">
<image-preview :src="scope.row.colorImage" :width="50" :height="50"/> <el-tag size="small" v-if="scope.row.tag">{{ scope.row.tag }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="尺码" align="center" prop="sizeValue" />
<el-table-column label="款式" align="center" prop="styleValue" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="状态" align="center" prop="status" > <el-table-column label="状态" align="center" prop="status" >
<template slot-scope="scope"> <template slot-scope="scope">

View File

@ -25,16 +25,16 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="店铺" prop="shopId">--> <el-form-item label="店铺" prop="shopId">
<!-- <el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">--> <el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<!-- <el-option--> <el-option
<!-- v-for="item in shopList"--> v-for="item in shopList"
<!-- :key="item.id"--> :key="item.id"
<!-- :label="item.name"--> :label="item.name"
<!-- :value="item.id">--> :value="item.id">
<!-- </el-option>--> </el-option>
<!-- </el-select>--> </el-select>
<!-- </el-form-item>--> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -128,7 +128,7 @@ import {MessageBox} from "element-ui";
import {isRelogin} from "@/utils/request"; import {isRelogin} from "@/utils/request";
export default { export default {
name: "Goods", name: "GoodsJd",
components: { Treeselect }, components: { Treeselect },
data() { data() {
return { return {

View File

@ -19,7 +19,17 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="订单状态" prop="orderState">
<el-select v-model="queryParams.orderState" placeholder="请选择状态" clearable @change="handleQuery">
<el-option label="等待出库" value="WAIT_SELLER_STOCK_OUT" ></el-option>
<el-option label="等待确认收货" value="WAIT_GOODS_RECEIVE_CONFIRM"></el-option>
<el-option label="等待发货" value="WAIT_SELLER_DELIVERY"> </el-option>
<el-option label="POP暂停" value="POP_ORDER_PAUSE"></el-option>
<el-option label="完成" value="FINISHED_L"></el-option>
<el-option label="取消" value="TRADE_CANCELED"></el-option>
<el-option label="已锁定" value="LOCKED"></el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -88,19 +98,10 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
type="success" :loading="pullLoading"
icon="el-icon-success" icon="el-icon-refresh"
@click="handlePullUpdate(scope.row)" @click="handlePullUpdate(scope.row)"
>更新订单</el-button> >更新订单</el-button>
<div>
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleDetail(scope.row)"
v-hasPermi="['tao:order:remove']"
>详情</el-button>
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -116,7 +117,7 @@
</template> </template>
<script> <script>
import { listOrder, pullOrder,getOrder,pushOms } from "@/api/jd/order"; import {listOrder, pullOrder, getOrder, pushOms, pullOrderDetail} from "@/api/jd/order";
import { listShop } from "@/api/shop/shop"; import { listShop } from "@/api/shop/shop";
import {MessageBox} from "element-ui"; import {MessageBox} from "element-ui";
import {isRelogin} from "@/utils/request"; import {isRelogin} from "@/utils/request";
@ -238,6 +239,15 @@ export default {
}else{ }else{
this.$modal.msgSuccess("请先选择店铺"); this.$modal.msgSuccess("请先选择店铺");
} }
},
handlePullUpdate(row) {
//
this.pullLoading = true
pullOrderDetail({shopId:row.shopId,orderId:row.orderId}).then(response => {
console.log('拉取JD订单接口返回=====',response)
this.$modal.msgSuccess(JSON.stringify(response));
this.pullLoading = false
})
} }
} }
}; };

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="login"> <div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">启航电商OMS系统</h3> <h3 class="title">曲美电商OMS系统</h3>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input <el-input
v-model="loginForm.username" v-model="loginForm.username"

View File

@ -24,31 +24,38 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="收件人" prop="receiverName"> <!-- <el-form-item label="收件人" prop="receiverName">-->
<el-input <!-- <el-input-->
v-model="queryParams.receiverName" <!-- v-model="queryParams.receiverName"-->
placeholder="请输入收件人" <!-- placeholder="请输入收件人"-->
clearable <!-- clearable-->
@keyup.enter.native="handleQuery" <!-- @keyup.enter.native="handleQuery"-->
/> <!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="手机号" prop="receiverMobile">-->
<!-- <el-input-->
<!-- v-model="queryParams.receiverMobile"-->
<!-- placeholder="请输入手机号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="快递单号" prop="shippingNumber">-->
<!-- <el-input-->
<!-- v-model="queryParams.shippingNumber"-->
<!-- placeholder="请输入快递单号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="订单状态" prop="orderStatus">
<el-select v-model="queryParams.orderStatus" placeholder="请选择状态" clearable @change="handleQuery">
<el-option label="待发货" value="1" ></el-option>
<el-option label="已发货" value="2"></el-option>
<el-option label="已完成" value="3"> </el-option>
<el-option label="已取消" value="11"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="手机号" prop="receiverMobile">
<el-input
v-model="queryParams.receiverMobile"
placeholder="请输入手机号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="快递单号" prop="shippingNumber">
<el-input
v-model="queryParams.shippingNumber"
placeholder="请输入快递单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -56,6 +63,16 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-refresh"
size="mini"
:disabled="multiple"
@click="handlePushOms"
>手动将选中订单推送到ERP</el-button>
</el-col>
<!-- <el-col :span="1.5">--> <!-- <el-col :span="1.5">-->
<!-- <el-button--> <!-- <el-button-->
<!-- type="warning"--> <!-- type="warning"-->
@ -70,7 +87,7 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />--> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="订单ID" align="center" prop="id" />--> <!-- <el-table-column label="订单ID" align="center" prop="id" />-->
<el-table-column label="订单编号" align="center" prop="orderNum" /> <el-table-column label="订单编号" align="center" prop="orderNum" />
<el-table-column label="店铺" align="center" prop="shopId" > <el-table-column label="店铺" align="center" prop="shopId" >
@ -104,9 +121,13 @@
<el-table-column label="状态" align="center" prop="orderStatus" > <el-table-column label="状态" align="center" prop="orderStatus" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.orderStatus === 1" style="margin-bottom: 6px;">待发货</el-tag> <el-tag v-if="scope.row.orderStatus === 1" style="margin-bottom: 6px;">待发货</el-tag>
<el-tag v-if="scope.row.orderStatus === 2" style="margin-bottom: 6px;">已出库</el-tag> <el-tag v-if="scope.row.orderStatus === 2" style="margin-bottom: 6px;">已发货</el-tag>
<el-tag v-if="scope.row.orderStatus === 3" style="margin-bottom: 6px;">已发货</el-tag> <el-tag v-if="scope.row.orderStatus === 3" style="margin-bottom: 6px;">已完成</el-tag>
<el-tag v-if="scope.row.orderStatus === 4" style="margin-bottom: 6px;">已完成</el-tag> <el-tag v-if="scope.row.orderStatus === 21" style="margin-bottom: 6px;">待付款</el-tag>
<el-tag v-if="scope.row.orderStatus === 11" style="margin-bottom: 6px;">已取消</el-tag>
<br />
<el-tag style="margin-bottom: 6px;" v-if="scope.row.hasPushErp === 1">已推送到ERP</el-tag>
<el-tag type="danger" style="margin-bottom: 6px;" v-if="scope.row.hasPushErp === 0">待推送到ERP</el-tag>
<br /> <br />
<!-- 1无售后或售后关闭2售后处理中3退款中4 退款成功 --> <!-- 1无售后或售后关闭2售后处理中3退款中4 退款成功 -->
<el-tag v-if="scope.row.refundStatus === 1">无售后或售后关闭</el-tag> <el-tag v-if="scope.row.refundStatus === 1">无售后或售后关闭</el-tag>
@ -136,14 +157,14 @@
icon="el-icon-view" icon="el-icon-view"
@click="handleDetail(scope.row)" @click="handleDetail(scope.row)"
>详情</el-button> >详情</el-button>
<div> <!-- <div>-->
<el-button <!-- <el-button-->
size="mini" <!-- size="mini"-->
type="success" <!-- type="success"-->
icon="el-icon-share" <!-- icon="el-icon-share"-->
@click="handleShip(scope.row)" <!-- @click="handleShip(scope.row)"-->
>订单发货</el-button> <!-- >订单发货</el-button>-->
</div> <!-- </div>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -158,7 +179,8 @@
<!-- 订单详情对话框 --> <!-- 订单详情对话框 -->
<el-dialog :title="detailTitle" :visible.sync="detailOpen" width="1100px" append-to-body> <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="1100px" append-to-body>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="订单详情" name="orderDetail">
<el-form ref="form" :model="form" :rules="rules" label-width="80px" inline> <el-form ref="form" :model="form" :rules="rules" label-width="80px" inline>
<el-descriptions title="订单信息"> <el-descriptions title="订单信息">
<el-descriptions-item label="ID">{{form.id}}</el-descriptions-item> <el-descriptions-item label="ID">{{form.id}}</el-descriptions-item>
@ -166,29 +188,23 @@
<el-descriptions-item label="店铺"> <el-descriptions-item label="店铺">
{{ shopList.find(x=>x.id === form.shopId)?shopList.find(x=>x.id === form.shopId).name:'' }} {{ shopList.find(x=>x.id === form.shopId)?shopList.find(x=>x.id === form.shopId).name:'' }}
<el-tag size="small" v-if="form.shopType === 4">淘宝天猫</el-tag> <el-tag size="small" v-if="form.shopType === 1">天猫</el-tag>
<el-tag size="small" v-if="form.shopType === 5">拼多多</el-tag> <el-tag size="small" v-if="form.shopType === 4">拼多多</el-tag>
<el-tag size="small" v-if="form.shopType === 6">抖店</el-tag> <el-tag size="small" v-if="form.shopType === 3">抖店</el-tag>
<el-tag size="small" v-if="form.shopType === 7">小红书</el-tag> <el-tag size="small" v-if="form.shopType === 2">京东</el-tag>
<el-tag size="small" v-if="form.shopType === 13">快手小店</el-tag>
<el-tag size="small" v-if="form.shopType === 99">其他</el-tag>
</el-descriptions-item>
<el-descriptions-item label="标签">
<el-tag size="small" v-if="form.tag ==='1' ">实售</el-tag>
<el-tag size="small" v-if="form.tag ==='2' ">淘宝客</el-tag>
<el-tag size="small" v-if="form.tag ==='3' ">刷单</el-tag>
<el-tag size="small" v-if="form.tag ==='4' ">返现</el-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="买家留言"> <el-descriptions-item label="买家留言">
{{form.buyerMemo}} {{form.buyerMemo}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="卖家留言">
{{form.sellerMemo}}
</el-descriptions-item>
<el-descriptions-item label="备注"> <el-descriptions-item label="备注">
{{form.remark}} {{form.remark}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="创建时间"> <el-descriptions-item label="创建时间">
{{ form.createTime }} {{ parseTime(form.createTime, '{y}-{m}-{d} {h}:{m}:{s}') }}
<!-- <el-date-picker <!-- <el-date-picker
disabled disabled
v-model="form.orderCreateTime" v-model="form.orderCreateTime"
@ -202,8 +218,8 @@
<el-descriptions-item label="订单状态"> <el-descriptions-item label="订单状态">
<el-tag v-if="form.orderStatus === 1" style="margin-bottom: 6px;">待发货</el-tag> <el-tag v-if="form.orderStatus === 1" style="margin-bottom: 6px;">待发货</el-tag>
<el-tag v-if="form.orderStatus === 2" style="margin-bottom: 6px;">发货</el-tag> <el-tag v-if="form.orderStatus === 2" style="margin-bottom: 6px;">出库</el-tag>
<el-tag v-if="form.orderStatus === 3" style="margin-bottom: 6px;">签收</el-tag> <el-tag v-if="form.orderStatus === 3" style="margin-bottom: 6px;">发货</el-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="退款状态"> <el-descriptions-item label="退款状态">
<el-tag v-if="form.refundStatus === 1">无售后或售后关闭</el-tag> <el-tag v-if="form.refundStatus === 1">无售后或售后关闭</el-tag>
@ -215,30 +231,28 @@
</el-descriptions> </el-descriptions>
<el-descriptions title="付款信息"> <el-descriptions title="付款信息">
<el-descriptions-item label="商品总额">{{form.goodsAmount}}</el-descriptions-item> <el-descriptions-item label="商品总额">{{form.goodsAmount}}</el-descriptions-item>
<el-descriptions-item label="优惠金额">{{form.discountAmount}}</el-descriptions-item>
<el-descriptions-item label="运费">{{form.postage}}</el-descriptions-item>
<el-descriptions-item label="实际支付金额">{{form.amount}}</el-descriptions-item> <el-descriptions-item label="实际支付金额">{{form.amount}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions title="收货信息"> <el-descriptions title="收货信息">
<el-descriptions-item label="收件人姓名">{{form.receiverName}}</el-descriptions-item> <el-descriptions-item label="收件人姓名">{{form.receiverName}}</el-descriptions-item>
<el-descriptions-item label="收件人手机号">{{form.receiverPhone}}</el-descriptions-item> <el-descriptions-item label="收件人手机号">{{form.receiverMobile}}</el-descriptions-item>
<el-descriptions-item label="省市区">{{form.province}}{{form.city}}{{form.town}}</el-descriptions-item> <el-descriptions-item label="省市区">{{form.province}}{{form.city}}{{form.town}}</el-descriptions-item>
<el-descriptions-item label="详细地址">{{form.address}}</el-descriptions-item> <el-descriptions-item label="详细地址">{{form.address}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions title="发货信息"> <el-descriptions title="发货信息">
<el-descriptions-item label="发货方式">
<el-tag v-if="form.shipType === 1" type="danger">供应商代发</el-tag>
<el-tag v-if="form.shipType === 0" type="danger">仓库发货</el-tag>
</el-descriptions-item>
<el-descriptions-item label="物流公司">{{form.shippingCompany}}</el-descriptions-item> <el-descriptions-item label="物流公司">{{form.shippingCompany}}</el-descriptions-item>
<el-descriptions-item label="物流单号">{{form.shippingNumber}}</el-descriptions-item> <el-descriptions-item label="物流单号">{{form.shippingNumber}}</el-descriptions-item>
<el-descriptions-item label="发货时间">{{form.shippingTime}}</el-descriptions-item> <el-descriptions-item label="发货时间">{{form.shippingTime}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-divider content-position="center">订单商品</el-divider> </el-form>
<el-table :data="form.erpOrderItemList" style="margin-bottom: 10px;">
</el-tab-pane>
<el-tab-pane label="商品列表" name="orderItems" lazy>
<el-table :data="form.itemList" style="margin-bottom: 10px;">
<!-- <el-table-column type="selection" width="50" align="center" /> --> <!-- <el-table-column type="selection" width="50" align="center" /> -->
<el-table-column label="序号" align="center" type="index" width="50"/> <el-table-column label="序号" align="center" type="index" width="50"/>
@ -252,13 +266,29 @@
<el-table-column label="sku编码" prop="specNum"></el-table-column> <el-table-column label="sku编码" prop="specNum"></el-table-column>
<el-table-column label="单价" prop="goodsPrice"></el-table-column> <el-table-column label="单价" prop="goodsPrice"></el-table-column>
<el-table-column label="数量" prop="quantity"></el-table-column> <el-table-column label="数量" prop="quantity"></el-table-column>
<!-- <el-table-column label="商品金额" prop="itemAmount"></el-table-column> --> <el-table-column label="退款状态" prop="refundStatus">
<template slot-scope="scope">
<!-- 1无售后或售后关闭2售后处理中3退款中4 退款成功 -->
<el-tag v-if="scope.row.refundStatus === 1">无售后或售后关闭</el-tag>
<el-tag v-if="scope.row.refundStatus === 2">售后处理中</el-tag>
<el-tag v-if="scope.row.refundStatus === 3">退款中</el-tag>
<el-tag v-if="scope.row.refundStatus === 4">退款成功</el-tag>
</template>
</el-table-column>
</el-table> </el-table>
</el-form> </el-tab-pane>
<!-- <div slot="footer" class="dialog-footer" v-if="isAudit"> <el-tab-pane label="优惠明细" name="orderCou" lazy>
<el-button type="primary" @click="submitConfirmForm"> </el-button> <el-table :data="form.discounts" style="margin-bottom: 10px;">
<el-button @click="cancel"> </el-button> <el-table-column label="序号" align="center" type="index" width="50"/>
</div> --> <el-table-column label="优惠名称" prop="name" ></el-table-column>
<el-table-column label="优惠金额" prop="discountAmount"></el-table-column>
<el-table-column label="优惠描述" prop="description"></el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="物流单" name="orderLog" lazy>
</el-tab-pane>
</el-tabs>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -266,6 +296,7 @@
<script> <script>
import { listOrder, getOrder, delOrder, addOrder, updateOrder } from "@/api/order/order"; import { listOrder, getOrder, delOrder, addOrder, updateOrder } from "@/api/order/order";
import { listShop } from "@/api/shop/shop"; import { listShop } from "@/api/shop/shop";
export default { export default {
name: "Order", name: "Order",
data() { data() {
@ -293,6 +324,7 @@ export default {
detailTitle:'订单详情', detailTitle:'订单详情',
detailOpen:false, detailOpen:false,
isAudit:false, isAudit:false,
activeName: 'orderDetail',
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,

View File

@ -0,0 +1,228 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="订单号" prop="orderNum">
<el-input
v-model="queryParams.orderNum"
placeholder="请输入订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="子订单号" prop="subOrderNum">
<el-input
v-model="queryParams.subOrderNum"
placeholder="请输入子订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="店铺" prop="shopId">
<el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<el-option
v-for="item in shopList"
:key="item.id"
:label="item.name"
:value="item.id">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 1">淘宝天猫</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 2">京东</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 3">抖店</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 4">拼多多</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="refundStatus">
<el-select v-model="queryParams.refundStatus" placeholder="请选择状态" clearable @change="handleQuery">
<el-option label="无售后或售后关闭" value="1" ></el-option>
<el-option label="售后处理中" value="2"></el-option>
<el-option label="退款中" value="3"> </el-option>
<el-option label="退款成功" value="4"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="子订单编号" align="center" prop="subOrderNum" />
<el-table-column label="订单编号" align="center" prop="orderNum" />
<el-table-column label="店铺" align="center" prop="shopId" >
<template slot-scope="scope">
<span>{{ shopList.find(x=>x.id === scope.row.shopId).name }}</span>
</template>
</el-table-column>
<el-table-column label="商品图片" prop="goodsImg">
<template slot-scope="scope">
<el-image style="width: 70px; height: 70px;" :src="scope.row.goodsImg"></el-image>
</template>
</el-table-column>
<el-table-column label="商品标题" align="center" prop="goodsTitle" />
<el-table-column label="商品SKU" align="center" prop="goodsSpec" />
<el-table-column label="平台SkuId" align="center" prop="skuId" />
<el-table-column label="ERP SkuId" align="center" prop="erpSkuId" />
<el-table-column label="子订单金额" align="center" prop="itemAmount" />
<!-- <el-table-column label="备注" align="center" prop="remark" />-->
<el-table-column label="退款状态" align="center" prop="refundStatus" >
<template slot-scope="scope">
<!-- 1无售后或售后关闭2售后处理中3退款中4 退款成功 -->
<el-tag v-if="scope.row.refundStatus === 1">无售后或售后关闭</el-tag>
<el-tag v-if="scope.row.refundStatus === 2">售后处理中</el-tag>
<el-tag v-if="scope.row.refundStatus === 3">退款中</el-tag>
<el-tag v-if="scope.row.refundStatus === 4">退款成功</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleEditErpSku(scope.row)"
>补充ERP SKU</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 修改Erp Sku 对话框 -->
<el-dialog title="修改ERP SKU ID" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="ERP商品skuId" prop="erpSkuId">
<el-input type="number" v-model="form.erpSkuId" placeholder="请输入ERP商品skuId" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {listOrderItem, updateErpSkuId} from "@/api/order/order";
import { listShop } from "@/api/shop/shop";
export default {
name: "Order",
data() {
return {
//
loading: true,
//
ids: [],
//
checkedSShopOrderItem: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
orderList: [],
// ${subTable.functionName}
sShopOrderItemList: [],
shopList:[],
//
open:false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
orderNum: null,
shopId: null,
subOrderNum: null,
refundStatus: null
},
//
form: {
id:null,
erpSkuId:null
},
//
rules: {
erpSkuId: [{ required: true, message: "请输入ERP系统商品SkuId", trigger: "change" }],
}
};
},
created() {
listShop({}).then(response => {
this.shopList = response.rows;
});
this.getList();
},
methods: {
/** 查询店铺订单列表 */
getList() {
this.loading = true;
listOrderItem(this.queryParams).then(response => {
this.orderList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
reset(){
},
cancel(){
this.form.id = null
this.form.erpSkuId = null
this.open = false
},
handleEditErpSku(row){
this.form.id = row.id
if(this.form.erpSkuId && this.form.erpSkuId > 0) {
this.form.erpSkuId = row.erpSkuId
}
this.open = true
},
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
console.log('====修改参数====',this.form)
updateErpSkuId(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
}
});
}
}
};
</script>

View File

@ -0,0 +1,47 @@
<template>
<div class="app-container">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="天猫" name="taoOrder">
<order-tao></order-tao>
</el-tab-pane>
<el-tab-pane label="京东" name="jdOrder" lazy>
<order-jd></order-jd>
</el-tab-pane>
<el-tab-pane label="抖店" name="douOrder" lazy>
<order-dou></order-dou>
</el-tab-pane>
<el-tab-pane label="拼多多" name="pddOrder" lazy>
<order-pdd></order-pdd>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import OrderTao from "@/views/tao/order/index";
import OrderJd from "@/views/jd/order/index";
import OrderDou from "@/views/dou/order/index";
import OrderPdd from "@/views/pdd/order/index";
export default {
name: "Order",
components:{OrderTao,OrderJd,OrderDou,OrderPdd},
data() {
return {
activeName: 'taoOrder'
};
},
created() {
},
mounted() {
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
}
}
};
</script>

View File

@ -0,0 +1,143 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="店铺" prop="shopId">
<el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<el-option
v-for="item in shopList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="类型" prop="pullType">
<el-select v-model="queryParams.pullType" placeholder="请选择类型" clearable @change="handleQuery">
<el-option label="拉取订单" value="ORDER"></el-option>
<el-option label="拉取退款" value="REFUND"></el-option>
<el-option label="拉取商品" value="GOODS"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="lists" >
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="ID" align="center" prop="id" />
<el-table-column label="店铺" align="center" prop="shopId" />
<el-table-column label="平台" align="center" prop="shopType" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.shopType === 1">天猫</el-tag>
<el-tag size="small" v-if="scope.row.shopType === 2">京东</el-tag>
</template>
</el-table-column>
<el-table-column label="类型" align="center" prop="pullType" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.pullType === 'GOODS'">拉取商品</el-tag>
<el-tag size="small" v-if="scope.row.pullType === 'ORDER'">拉取订单</el-tag>
<el-tag size="small" v-if="scope.row.pullType === 'REFUND'">拉取退款</el-tag>
</template>
</el-table-column>
<el-table-column label="方式" align="center" prop="pullWay" />
<el-table-column label="参数" align="center" prop="pullParams" />
<el-table-column label="结果" align="center" prop="pullResult" />
<el-table-column label="耗时ms" align="center" prop="duration" />
<el-table-column label="时间" align="center" prop="pullTime" />
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {listShop, listShopPullLogs} from "@/api/shop/shop";
export default {
name: "Order",
data() {
return {
//
showSearch: true,
//
total: 0,
//
loading: true,
lists:[],
shopList:[],
skuList:[],
//
detailOpen:false,
skuListLoading:false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
pullType: 'ORDER'
},
//
form: {
erpGoodsSkuId:null,
id:null
},
rules: {
id: [
{ required: true, message: "不能为空", trigger: "blur" }
],
erpGoodsSkuId: [
{ required: true, message: "不能为空", trigger: "blur" }
],
}
};
},
created() {
listShop({}).then(response => {
this.shopList = response.rows;
});
this.getList();
},
mounted() {
if(this.$route.query.shopId){
this.queryParams.shopId = this.$route.query.shopId
}
},
methods: {
/** 查询淘宝订单列表 */
getList() {
this.loading = true;
listShopPullLogs(this.queryParams).then(response => {
this.lists = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
}
}
};
</script>

View File

@ -25,16 +25,16 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="店铺" prop="shopId">--> <el-form-item label="店铺" prop="shopId">
<!-- <el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">--> <el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<!-- <el-option--> <el-option
<!-- v-for="item in shopList"--> v-for="item in shopList"
<!-- :key="item.id"--> :key="item.id"
<!-- :label="item.name"--> :label="item.name"
<!-- :value="item.id">--> :value="item.id">
<!-- </el-option>--> </el-option>
<!-- </el-select>--> </el-select>
<!-- </el-form-item>--> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -116,7 +116,7 @@ import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import {listShop} from "@/api/shop/shop"; import {listShop} from "@/api/shop/shop";
export default { export default {
name: "Goods", name: "GoodsPdd",
data() { data() {
return { return {
// //
@ -161,10 +161,10 @@ export default {
}; };
}, },
created() { created() {
// listShop({type:3}).then(response => { listShop({type:4}).then(response => {
// this.shopList = response.rows; this.shopList = response.rows;
// }); });
// this.getList(); this.getList();
this.loading = false; this.loading = false;
}, },
methods: { methods: {

View File

@ -142,6 +142,9 @@
<el-tag size="small" v-if="scope.row.status === 14000"> 拒绝退款</el-tag> <el-tag size="small" v-if="scope.row.status === 14000"> 拒绝退款</el-tag>
<el-tag size="small" v-if="scope.row.status === 10011"> 退款关闭</el-tag> <el-tag size="small" v-if="scope.row.status === 10011"> 退款关闭</el-tag>
<el-tag size="small" v-if="scope.row.status === 10010"> 退款完成</el-tag> <el-tag size="small" v-if="scope.row.status === 10010"> 退款完成</el-tag>
<br />
<el-tag style="margin-top: 5px" size="small" v-if="scope.row.hasGoodReturn === 1"> 买家需要退货</el-tag>
<el-tag style="margin-top: 5px" size="small" v-if="scope.row.hasGoodReturn === 0"> 买家不需要退货</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">

View File

@ -0,0 +1,47 @@
<template>
<div class="app-container">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="天猫" name="taoOrder">
<tao-refund></tao-refund>
</el-tab-pane>
<el-tab-pane label="京东" name="jdOrder" lazy>
<jd-refund></jd-refund>
</el-tab-pane>
<el-tab-pane label="抖店" name="douOrder" lazy>
<dou-refund></dou-refund>
</el-tab-pane>
<el-tab-pane label="拼多多" name="pddOrder" lazy>
<pdd-refund></pdd-refund>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import TaoRefund from "@/views/tao/refund/index";
import JdRefund from "@/views/jd/refund/index";
import DouRefund from "@/views/dou/refund/index.vue";
import PddRefund from "@/views/pdd/refund/index.vue";
export default {
name: "refund",
components:{PddRefund, DouRefund, TaoRefund,JdRefund},
data() {
return {
activeName: 'taoOrder'
};
},
created() {
},
mounted() {
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
}
}
};
</script>

View File

@ -0,0 +1,143 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="店铺" prop="shopId">
<el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<el-option
v-for="item in shopList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="类型" prop="pullType">
<el-select v-model="queryParams.pullType" placeholder="请选择类型" clearable @change="handleQuery">
<el-option label="拉取订单" value="ORDER"></el-option>
<el-option label="拉取退款" value="REFUND"></el-option>
<el-option label="拉取商品" value="GOODS"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="lists" >
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="ID" align="center" prop="id" />
<el-table-column label="店铺" align="center" prop="shopId" />
<el-table-column label="平台" align="center" prop="shopType" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.shopType === 1">天猫</el-tag>
<el-tag size="small" v-if="scope.row.shopType === 2">京东</el-tag>
</template>
</el-table-column>
<el-table-column label="类型" align="center" prop="pullType" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.pullType === 'GOODS'">拉取商品</el-tag>
<el-tag size="small" v-if="scope.row.pullType === 'ORDER'">拉取订单</el-tag>
<el-tag size="small" v-if="scope.row.pullType === 'REFUND'">拉取退款</el-tag>
</template>
</el-table-column>
<el-table-column label="方式" align="center" prop="pullWay" />
<el-table-column label="参数" align="center" prop="pullParams" />
<el-table-column label="结果" align="center" prop="pullResult" />
<el-table-column label="耗时ms" align="center" prop="duration" />
<el-table-column label="时间" align="center" prop="pullTime" />
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {listShop, listShopPullLogs} from "@/api/shop/shop";
export default {
name: "Order",
data() {
return {
//
showSearch: true,
//
total: 0,
//
loading: true,
lists:[],
shopList:[],
skuList:[],
//
detailOpen:false,
skuListLoading:false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
pullType: 'REFUND'
},
//
form: {
erpGoodsSkuId:null,
id:null
},
rules: {
id: [
{ required: true, message: "不能为空", trigger: "blur" }
],
erpGoodsSkuId: [
{ required: true, message: "不能为空", trigger: "blur" }
],
}
};
},
created() {
listShop({}).then(response => {
this.shopList = response.rows;
});
this.getList();
},
mounted() {
if(this.$route.query.shopId){
this.queryParams.shopId = this.$route.query.shopId
}
},
methods: {
/** 查询淘宝订单列表 */
getList() {
this.loading = true;
listShopPullLogs(this.queryParams).then(response => {
this.lists = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
}
}
};
</script>

View File

@ -0,0 +1,270 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="店铺" prop="name">
<el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<el-option
v-for="item in shopList"
:key="item.id"
:label="item.name"
:value="item.id">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 1">淘宝天猫</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 2">京东</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 3">抖店</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 4">拼多多</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="订单号" prop="orderNum">
<el-input
v-model="queryParams.orderNum"
placeholder="请输入订单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="快递单号" prop="shipCode">
<el-input
v-model="queryParams.shipCode"
placeholder="请输入快递单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-download"
size="mini"
@click="handleShipping"
>手动发货</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-download"
size="mini"
@click="handleShippingLog"
>ERP发货推送记录</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="dataList" >
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="订单编号" align="center" prop="orderNum" />
<el-table-column label="店铺" align="center" prop="shopId" >
<template slot-scope="scope">
<span>{{ shopList.find(x=>x.id === scope.row.shopId).name }}</span>
</template>
</el-table-column>
<el-table-column label="类型" align="center" prop="shipType;" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.shipType === 1">订单发货</el-tag>
<el-tag size="small" v-if="scope.row.shipType === 2">商品补发</el-tag>
<el-tag size="small" v-if="scope.row.shipType === 3">商品换货</el-tag>
</template>
</el-table-column>
<el-table-column label="快递公司" align="center" prop="shipCompany" />
<el-table-column label="快递单号" align="center" prop="shipCode" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="发货时间" align="center" prop="createTime" >
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{m}:{s}') }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 对话框 -->
<el-dialog title="手动发货" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="店铺" prop="shopId">
<el-select v-model="form.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<el-option
v-for="item in shopList"
:key="item.id"
:label="item.name"
:value="item.id">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 1">淘宝天猫</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 2">京东</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 3">抖店</span>
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 4">拼多多</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="订单号" prop="orderNum">
<el-input v-model="form.orderNum" placeholder="请输入订单号" />
</el-form-item>
<el-form-item label="快递公司" prop="shipCompany">
<el-select v-model="form.shipCompany" placeholder="请选择快递公司" clearable @change="handleQuery">
<el-option
v-for="item in logisticsList"
:key="item.id"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="快递单号" prop="shipCode">
<el-input v-model="form.shipCode" placeholder="请输入快递单号" />
</el-form-item>
<el-form-item label="快递费用" prop="shipFee">
<el-input v-model="form.shipFee" placeholder="请输入快递费用" />
</el-form-item>
<el-form-item label="发货人" prop="shipOperator">
<el-input v-model="form.shipOperator" placeholder="请输入发货人" />
</el-form-item>
<el-form-item label="包裹重量" prop="packageWeight">
<el-input v-model="form.packageWeight" placeholder="请输入包裹重量" />
</el-form-item>
<el-form-item label="包裹长度" prop="packageLength">
<el-input v-model="form.packageLength" placeholder="包裹长度" />
</el-form-item>
<el-form-item label="包裹宽度" prop="packageWidth">
<el-input v-model="form.width" placeholder="请输入包裹宽度" />
</el-form-item>
<el-form-item label="包裹高度" prop="packageHeight">
<el-input v-model="form.height" placeholder="请输入包裹高度" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {listLogistics, listLogisticsStatus, listShop} from "@/api/shop/shop";
import {MessageBox} from "element-ui";
import {handShip, listShipping} from "@/api/api/shipping";
export default {
name: "Shop",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
logisticsList: [],
shopList: [],
dataList: [],
//
title: "",
//
open: false,
apiOpen: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
orderNum:null,
shipCode:null,
shopId:null
},
//
form: {
},
//
rules: {
shopId: [{ required: true, message: "不能为空", trigger: "blur" }],
orderNum: [{ required: true, message: "不能为空", trigger: "blur" }],
shipCompany: [{ required: true, message: "不能为空", trigger: "blur" }],
shipCode: [{ required: true, message: "不能为空", trigger: "blur" }],
}
};
},
created() {
listShop({}).then(response => {
this.shopList = response.rows;
});
listLogisticsStatus({status:1}).then(response => {
this.logisticsList = response.rows;
});
this.getList();
},
mounted() {
},
methods: {
/** 查询店铺列表 */
getList() {
this.loading = true;
listShipping(this.queryParams).then(response => {
this.dataList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {};
this.resetForm("form");
},
handleShipping() {
this.open = true
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
handShip(this.form).then(response => {
this.$modal.msgSuccess("发货成功");
this.open = false;
this.getList();
});
}
});
},
}
};
</script>

View File

@ -0,0 +1,233 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<!-- <el-form-item label="店铺名" prop="name">-->
<!-- <el-input-->
<!-- v-model="queryParams.name"-->
<!-- placeholder="请输入店铺名"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="平台" prop="type">
<el-select v-model="queryParams.id" placeholder="请选择平台" clearable>
<el-option
v-for="item in typeList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-download"
size="mini"
@click="handlePull"
>API拉取快递公司数据</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="dataList" >
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="id" align="center" prop="logisticsId" />
<el-table-column label="快递公司" align="center" prop="name" />
<el-table-column label="编码" align="center" prop="code" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="状态" align="center" prop="status" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.status === 0 || !scope.row.status"> 未启用</el-tag>
<el-tag size="small" v-if="scope.row.status === 1"> 启用</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
v-if="scope.row.status === 0 || !scope.row.status"
type="text"
icon="el-icon-edit"
@click="handleUpdateStatus(scope.row)"
>开启</el-button>
<el-button
size="mini"
v-if="scope.row.status === 1"
type="text"
icon="el-icon-delete"
@click="handleUpdateStatus(scope.row)"
>关闭</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {listLogistics, updateStatus} from "@/api/shop/shop";
import {MessageBox} from "element-ui";
import {isRelogin} from "@/utils/request";
import {pullLogisticsTao,pullLogisticsJd} from "@/api/tao/shop_api";
export default {
name: "Shop",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
dataList:[],
typeList: [
{name:"天猫", id:"1"},
{name:"京东", id:"2"},
{name:"抖店", id:"3"},
{name:"拼多多", id:"4"},
],
//
title: "",
//
open: false,
apiOpen: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
id:null,
shopId:null
},
//
form: {
type:null
},
//
rules: {
name: [{ required: true, message: "不能为空", trigger: "blur" }],
code: [{ required: true, message: "不能为空", trigger: "blur" }],
appKey: [{ required: true, message: "不能为空", trigger: "blur" }],
appSecret: [{ required: true, message: "不能为空", trigger: "blur" }],
}
};
},
created() {
},
mounted() {
if(this.$route.query.id){
this.queryParams.id = this.$route.query.id+""
}
if(this.$route.query.shopId){
this.queryParams.shopId = this.$route.query.shopId+""
}
this.getList();
},
methods: {
/** 查询店铺列表 */
getList() {
this.loading = true;
listLogistics(this.queryParams).then(response => {
this.dataList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
handlePull() {
console.log('=====拉取快递公司=====',this.$route.query.id)
if(this.$route.query.id === '1') {
pullLogisticsTao({}).then(response => {
console.log('拉取TAO接口返回=====', response)
if (response.code === 1401) {
MessageBox.confirm('Token已过期需要重新授权', '系统提示', {
confirmButtonText: '重新授权',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
isRelogin.show = false;
// store.dispatch('LogOut').then(() => {
location.href = response.data.tokenRequestUrl + '?shopId=' + this.queryParams.shopId
// })
}).catch(() => {
isRelogin.show = false;
});
// return Promise.reject('')
} else
this.$modal.msgSuccess(JSON.stringify(response));
})
} else if(this.$route.query.id === '2'){
console.log('=====aaaaa=====')
//jd
pullLogisticsJd({shopId:this.$route.query.shopId}).then(response => {
console.log('拉取JD接口返回=====', response)
if (response.code === 1401) {
MessageBox.confirm('Token已过期需要重新授权', '系统提示', {
confirmButtonText: '重新授权',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
isRelogin.show = false;
// store.dispatch('LogOut').then(() => {
location.href = response.data.tokenRequestUrl + '?shopId=' + this.queryParams.shopId
// })
}).catch(() => {
isRelogin.show = false;
});
// return Promise.reject('')
} else
this.$modal.msgSuccess(JSON.stringify(response));
})
}
// this.$modal.msgSuccess("API");
},
handleUpdateStatus(row){
updateStatus({id:row.id,status:row.status}).then(response => {
console.log('更新状态====',response)
this.getList()
})
}
}
};
</script>

View File

@ -323,8 +323,6 @@ export default {
this.$router.push({path:'/shop/goods/dou_goods_list',query:{shopId:row.id}}) this.$router.push({path:'/shop/goods/dou_goods_list',query:{shopId:row.id}})
}else if(row.type === 4){ }else if(row.type === 4){
this.$router.push({path:'/shop/goods/pdd_goods_list',query:{shopId:row.id}}) this.$router.push({path:'/shop/goods/pdd_goods_list',query:{shopId:row.id}})
} else if(row.type === 5){
this.$router.push({path:'/shop/goods/wei_goods_list',query:{shopId:row.id}})
} }
}, },
handleLogistics(row) { handleLogistics(row) {

View File

@ -2,31 +2,31 @@
<div class="app-container"> <div class="app-container">
<el-row :gutter="20"> <el-row :gutter="20">
<!--部门数据--> <!--部门数据-->
<!-- <el-col :span="4" :xs="24">--> <el-col :span="4" :xs="24">
<!-- <div class="head-container">--> <div class="head-container">
<!-- <el-input--> <el-input
<!-- v-model="deptName"--> v-model="deptName"
<!-- placeholder="请输入部门名称"--> placeholder="请输入部门名称"
<!-- clearable--> clearable
<!-- size="small"--> size="small"
<!-- prefix-icon="el-icon-search"--> prefix-icon="el-icon-search"
<!-- style="margin-bottom: 20px"--> style="margin-bottom: 20px"
<!-- />--> />
<!-- </div>--> </div>
<!-- <div class="head-container">--> <div class="head-container">
<!-- <el-tree--> <el-tree
<!-- :data="deptOptions"--> :data="deptOptions"
<!-- :props="defaultProps"--> :props="defaultProps"
<!-- :expand-on-click-node="false"--> :expand-on-click-node="false"
<!-- :filter-node-method="filterNode"--> :filter-node-method="filterNode"
<!-- ref="tree"--> ref="tree"
<!-- node-key="id"--> node-key="id"
<!-- default-expand-all--> default-expand-all
<!-- highlight-current--> highlight-current
<!-- @node-click="handleNodeClick"--> @node-click="handleNodeClick"
<!-- />--> />
<!-- </div>--> </div>
<!-- </el-col>--> </el-col>
<!--用户数据--> <!--用户数据-->
<el-col :span="20" :xs="24"> <el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
@ -247,19 +247,19 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <!-- <el-col :span="12">-->
<el-form-item label="岗位"> <!-- <el-form-item label="岗位">-->
<el-select v-model="form.postIds" multiple placeholder="请选择岗位"> <!-- <el-select v-model="form.postIds" multiple placeholder="请选择岗位">-->
<el-option <!-- <el-option-->
v-for="item in postOptions" <!-- v-for="item in postOptions"-->
:key="item.postId" <!-- :key="item.postId"-->
:label="item.postName" <!-- :label="item.postName"-->
:value="item.postId" <!-- :value="item.postId"-->
:disabled="item.status == 1" <!-- :disabled="item.status == 1"-->
></el-option> <!-- ></el-option>-->
</el-select> <!-- </el-select>-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="角色"> <el-form-item label="角色">
<el-select v-model="form.roleIds" multiple placeholder="请选择角色"> <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
@ -413,9 +413,9 @@ export default {
created() { created() {
this.getList(); this.getList();
this.getDeptTree(); this.getDeptTree();
this.getConfigKey("sys.user.initPassword").then(response => { // this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg; // this.initPassword = response.msg;
}); // });
}, },
methods: { methods: {
/** 查询用户列表 */ /** 查询用户列表 */

View File

@ -33,16 +33,16 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="店铺" prop="shopId">--> <el-form-item label="店铺" prop="shopId">
<!-- <el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">--> <el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
<!-- <el-option--> <el-option
<!-- v-for="item in shopList"--> v-for="item in shopList"
<!-- :key="item.id"--> :key="item.id"
<!-- :label="item.name"--> :label="item.name"
<!-- :value="item.id">--> :value="item.id">
<!-- </el-option>--> </el-option>
<!-- </el-select>--> </el-select>
<!-- </el-form-item>--> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -130,7 +130,7 @@ import {isRelogin} from "../../../utils/request";
import {getGoodsSku, linkErpGoodsSkuId, listGoodsSku, pullGoodsList} from "@/api/tao/goods"; import {getGoodsSku, linkErpGoodsSkuId, listGoodsSku, pullGoodsList} from "@/api/tao/goods";
export default { export default {
name: "Order", name: "GoodsTao",
data() { data() {
return { return {
// //

View File

@ -28,14 +28,15 @@
<!-- placeholder="请选择订单创建时间">--> <!-- placeholder="请选择订单创建时间">-->
<!-- </el-date-picker>--> <!-- </el-date-picker>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<!-- <el-form-item label="订单状态" prop="statusStr">--> <el-form-item label="订单状态" prop="status">
<!-- <el-input--> <el-select v-model="queryParams.status" placeholder="请选择状态" clearable @change="handleQuery">
<!-- v-model="queryParams.statusStr"--> <el-option label="等待卖家发货" value="WAIT_SELLER_SEND_GOODS" ></el-option>
<!-- placeholder="请输入订单状态"--> <el-option label="等待买家确认收货" value="WAIT_BUYER_CONFIRM_GOODS"></el-option>
<!-- clearable--> <el-option label="交易成功" value="TRADE_FINISHED"> </el-option>
<!-- @keyup.enter.native="handleQuery"--> <el-option label="交易自动关闭" value="TRADE_CLOSED"></el-option>
<!-- />--> <el-option label="卖家或买家主动关闭交易" value="TRADE_CLOSED_BY_TAOBAO"></el-option>
<!-- </el-form-item>--> </el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -54,6 +55,16 @@
@click="handlePull" @click="handlePull"
>API拉取订单</el-button> >API拉取订单</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
:loading="pullLoading"
type="primary"
plain
icon="el-icon-download"
size="mini"
@click="handlePullDetailByTid"
>API拉取单个订单</el-button>
</el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@ -95,7 +106,7 @@
</el-row> </el-row>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="总金额" align="center" prop="payment" /> <el-table-column label="总金额" align="center" prop="payment" :formatter="amountFormatter" />
<el-table-column label="订单创建时间" align="center" prop="orderCreateTime" width="180"> <el-table-column label="订单创建时间" align="center" prop="orderCreateTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.created, '{y}-{m}-{d} {h}:{m}:{s}') }}</span> <span>{{ parseTime(scope.row.created, '{y}-{m}-{d} {h}:{m}:{s}') }}</span>
@ -103,25 +114,26 @@
</el-table-column> </el-table-column>
<el-table-column label="买家留言" align="center" prop="buyerMessage" /> <el-table-column label="买家留言" align="center" prop="buyerMessage" />
<el-table-column label="卖家备注" align="center" prop="sellerMemo" /> <el-table-column label="卖家备注" align="center" prop="sellerMemo" />
<el-table-column label="订单状态" align="center" prop="status" /> <el-table-column label="订单状态" align="center" prop="status" >
<el-table-column label="快递单号" align="center" prop="logisticsCode" /> <template slot-scope="scope">
<el-tag size="small" v-if="scope.row.status === 'WAIT_BUYER_PAY'"> 等待买家付款</el-tag>
<el-tag size="small" v-if="scope.row.status === 'SELLER_CONSIGNED_PART'"> 卖家部分发货</el-tag>
<el-tag size="small" v-if="scope.row.status === 'WAIT_SELLER_SEND_GOODS'"> 等待卖家发货</el-tag>
<el-tag size="small" v-if="scope.row.status === 'WAIT_BUYER_CONFIRM_GOODS'"> 等待买家确认收货</el-tag>
<el-tag size="small" v-if="scope.row.status === 'TRADE_FINISHED'"> 交易成功</el-tag>
<el-tag size="small" v-if="scope.row.status === 'TRADE_CLOSED'"> 交易自动关闭</el-tag>
<el-tag size="small" v-if="scope.row.status === 'TRADE_CLOSED_BY_TAOBAO'"> 卖家或买家主动关闭交易</el-tag>
<el-tag size="small" v-if="scope.row.status === 'PAID_FORBID_CONSIGN'"> 禁止发货</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
:loading="pullLoading"
size="mini" size="mini"
type="success" icon="el-icon-refresh"
icon="el-icon-success"
@click="handlePullUpdate(scope.row)" @click="handlePullUpdate(scope.row)"
>更新订单</el-button> >更新订单</el-button>
<div>
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleDetail(scope.row)"
v-hasPermi="['tao:order:remove']"
>详情</el-button>
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -134,150 +146,12 @@
@pagination="getList" @pagination="getList"
/> />
<!-- 订单详情对话框 -->
<el-dialog :title="detailTitle" :visible.sync="detailOpen" width="1100px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" inline>
<el-descriptions title="订单信息">
<el-descriptions-item label="订单号">{{form.id}}</el-descriptions-item>
<el-descriptions-item label="来源">
<el-tag size="small" v-if="form.orderSource ===1 ">淘宝</el-tag>
<el-tag size="small" v-if="form.orderSource ===0 ">天猫</el-tag>
</el-descriptions-item>
<el-descriptions-item label="店铺">
<span v-if="form.shopId==6">梦小妮牛仔裤</span>
</el-descriptions-item>
<el-descriptions-item label="下单日期">
{{ parseTime(form.orderCreateTime, '{yyyy}-{m}-{dd}')}}
<!-- <el-date-picker
disabled
v-model="form.orderCreateTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择订单创建时间">
</el-date-picker> -->
</el-descriptions-item>
<el-descriptions-item label="标签">
<el-tag size="small" v-if="form.tag ==='1' ">实售</el-tag>
<el-tag size="small" v-if="form.tag ==='2' ">淘宝客</el-tag>
<el-tag size="small" v-if="form.tag ==='3' ">刷单</el-tag>
<el-tag size="small" v-if="form.tag ==='4' ">返现</el-tag>
</el-descriptions-item>
<el-descriptions-item label="卖家备忘信息">
{{form.sellerMemo}}
</el-descriptions-item>
<el-descriptions-item label="买家留言">
{{form.buyerFeedback}}
</el-descriptions-item>
<el-descriptions-item label="备注">
{{form.remark}}
</el-descriptions-item>
<el-descriptions-item label="关闭原因">{{form.closeReason}}</el-descriptions-item>
<el-descriptions-item label="订单状态">{{form.statusStr}}</el-descriptions-item>
</el-descriptions>
<el-descriptions title="付款信息">
<el-descriptions-item label="应付总额">{{form.totalAmount}}</el-descriptions-item>
<el-descriptions-item label="优惠金额">{{form.discountAmount}}</el-descriptions-item>
<el-descriptions-item label="运费">{{form.shippingFee}}</el-descriptions-item>
<el-descriptions-item label="实际支付金额">{{form.payAmount}}</el-descriptions-item>
</el-descriptions>
<el-descriptions title="收货信息">
<el-descriptions-item label="收件人姓名">{{form.receiver}}</el-descriptions-item>
<el-descriptions-item label="收件人手机号">{{form.phone}}</el-descriptions-item>
<el-descriptions-item label="省市区">{{form.province}}{{form.city}}{{form.town}}</el-descriptions-item>
<el-descriptions-item label="详细地址">{{form.address}}</el-descriptions-item>
</el-descriptions>
<el-divider content-position="center">订单商品</el-divider>
<el-table :data="goodsList" style="margin-bottom: 10px;">
<!-- <el-table-column type="selection" width="50" align="center" /> -->
<el-table-column label="序号" align="center" type="index" width="50"/>
<el-table-column label="商品图片" prop="productImgUrl" width="80">
<template slot-scope="scope">
<el-image style="width: 70px; height: 70px" :src="scope.row.productImgUrl"></el-image>
</template>
</el-table-column>
<el-table-column label="商品标题" prop="goodsTitle" ></el-table-column>
<el-table-column label="SKU" prop="skuInfo" width="150"></el-table-column>
<el-table-column label="sku编码" prop="specNumber"></el-table-column>
<el-table-column label="单价" prop="price"></el-table-column>
<el-table-column label="数量" prop="quantity"></el-table-column>
<el-table-column label="商品金额" prop="itemAmount"></el-table-column>
</el-table>
<el-row :gutter="10" class="mb8" v-if="isAudit">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddTaoOrderItem">添加赠品</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" @click="handleDeleteTaoOrderItem">删除</el-button>
</el-col>
</el-row>
<el-table v-if="isAudit" :data="taoOrderItemList" :row-class-name="rowTaoOrderItemIndex" @selection-change="handleTaoOrderItemSelectionChange" ref="taoOrderItem" style="margin-bottom: 10px;">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="商品" prop="erpGoodsId" width="350" >
<template slot-scope="scope">
<el-select v-model="scope.row.erpGoodsSpecId" filterable remote reserve-keyword placeholder="搜索商品" style="width: 330px;"
:remote-method="searchSku" :loading="skuListLoading" @change="skuChanage(scope.row)">
<el-option v-for="item in skuList" :key="item.id"
:label="item.name + ' - ' + item.colorValue + ' ' + item.sizeValue + ' ' + item.styleValue"
:value="item.id">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="商品图片" prop="productImgUrl" >
<template slot-scope="scope">
<el-image style="width: 70px; height: 70px" :src="scope.row.productImgUrl"></el-image>
</template>
</el-table-column>
<el-table-column label="sku编码" prop="specNumber" width="100">
<template slot-scope="scope">
<el-input v-model="scope.row.specNumber" placeholder="请输入单品货号对应系统sku编码" disabled/>
</template>
</el-table-column>
<el-table-column label="单价" prop="price">
<template slot-scope="scope">
<el-input v-model="scope.row.price" placeholder="请输入单价" disabled/>
</template>
</el-table-column>
<el-table-column label="数量" prop="quantity">
<template slot-scope="scope">
<el-input v-model="scope.row.quantity" placeholder="请输入数量" @input="qtyChange(scope.row)" :disabled="isAudit" />
</template>
</el-table-column>
<el-table-column label="总金额" prop="itemAmount">
<template slot-scope="scope">
<el-input v-model="scope.row.itemAmount" placeholder="请输入明细总金额" disabled/>
</template>
</el-table-column>
</el-table>
<el-form-item label="发货方式" prop="shipType" v-if="isAudit">
<!-- <el-input v-model="form.orderSource" placeholder="请输入订单来源0天猫1淘宝" /> -->
<el-select v-model="form.shipType" placeholder="发货类型0仓库发货1供应商代发" style="width:250px">
<el-option label="供应商代发" value="1"></el-option>
<el-option label="仓库发货" value="0"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" v-if="isAudit">
<el-button type="primary" @click="submitConfirmForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listOrder, pullOrder,getOrder,pushOms } from "@/api/tao/order"; import {listOrder, pullOrder, getOrder, pushOms, pullOrderDetail} from "@/api/tao/order";
import { listShop } from "@/api/shop/shop"; import { listShop } from "@/api/shop/shop";
import { searchSku } from "@/api/goods/goods"; import { searchSku } from "@/api/goods/goods";
import {MessageBox} from "element-ui"; import {MessageBox} from "element-ui";
@ -296,6 +170,7 @@ export default {
ids: [], ids: [],
// //
single: true, single: true,
detailOpen: false,
multiple: true, multiple: true,
// //
total: 0, total: 0,
@ -324,6 +199,9 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
amountFormatter(row, column, cellValue, index) {
return '¥' + cellValue.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
},
/** 查询淘宝订单列表 */ /** 查询淘宝订单列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -364,6 +242,18 @@ export default {
this.single = selection.length!==1 this.single = selection.length!==1
this.multiple = !selection.length this.multiple = !selection.length
}, },
handlePullDetailByTid(){
if(this.queryParams.shopId && this.queryParams.tid) {
this.pullLoading = true
pullOrderDetail({shopId:this.queryParams.shopId,orderId:this.queryParams.tid}).then(response => {
console.log('拉取淘宝订单接口返回=====',response)
this.$modal.msgSuccess(JSON.stringify(response));
this.pullLoading = false
})
}else{
this.$modal.msgSuccess("请先输入订单号并且选择店铺");
}
},
handlePull() { handlePull() {
if(this.queryParams.shopId){ if(this.queryParams.shopId){
this.pullLoading = true this.pullLoading = true
@ -382,9 +272,8 @@ export default {
// return Promise.reject('') // return Promise.reject('')
}else{ }else{
this.$modal.msgSuccess(JSON.stringify(response)); this.$modal.msgSuccess(JSON.stringify(response));
this.pullLoading = false
} }
this.pullLoading = false
}) })
}else{ }else{
this.$modal.msgSuccess("请先选择店铺"); this.$modal.msgSuccess("请先选择店铺");
@ -394,6 +283,12 @@ export default {
}, },
handlePullUpdate(row) { handlePullUpdate(row) {
// //
this.pullLoading = true
pullOrderDetail({shopId:row.shopId,orderId:row.tid}).then(response => {
console.log('拉取淘宝订单接口返回=====',response)
this.$modal.msgSuccess(JSON.stringify(response));
this.pullLoading = false
})
}, },
handleDetail(row) { handleDetail(row) {
this.reset(); this.reset();

View File

@ -114,17 +114,7 @@
<el-tag style="margin-top: 5px" size="small" v-if="scope.row.hasGoodReturn === 0"> 买家不需要退货</el-tag> <el-tag style="margin-top: 5px" size="small" v-if="scope.row.hasGoodReturn === 0"> 买家不需要退货</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="处理时间" align="center" prop="auditTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.auditTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="收货时间" align="center" prop="receivedTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.receivedTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column> -->
<!-- <el-table-column label="${comment}" align="center" prop="address" /> -->
<!-- <el-table-column label="备注" align="center" prop="remark" />--> <!-- <el-table-column label="备注" align="center" prop="remark" />-->
<!-- <el-table-column label="创建时间" align="center" prop="createOn" /> --> <!-- <el-table-column label="创建时间" align="center" prop="createOn" /> -->
<el-table-column label="店铺" align="center" prop="shopId" > <el-table-column label="店铺" align="center" prop="shopId" >
@ -140,18 +130,16 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
type="text" icon="el-icon-refresh"
icon="el-icon-edit" @click="handleUpdateRefund(scope.row)"
@click="handleConfirm(scope.row)"
v-hasPermi="['tao:taoRefund:edit']"
>更新状态</el-button> >更新状态</el-button>
<el-button <!-- <el-button-->
size="mini" <!-- size="mini"-->
type="text" <!-- type="text"-->
icon="el-icon-delete" <!-- icon="el-icon-delete"-->
@click="handleDelete(scope.row)" <!-- @click="handleDelete(scope.row)"-->
v-hasPermi="['tao:taoRefund:remove']" <!-- v-hasPermi="['tao:taoRefund:remove']"-->
>详情</el-button> <!-- >详情</el-button>-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -218,7 +206,7 @@ import {
getTaoRefund, getTaoRefund,
pushOms, pushOms,
updateTaoRefund, updateTaoRefund,
pullRefund pullRefund, pullRefundDetail
} from "@/api/tao/taoRefund"; } from "@/api/tao/taoRefund";
import { listShop } from "@/api/shop/shop"; import { listShop } from "@/api/shop/shop";
import {pullOrder} from "@/api/tao/order"; import {pullOrder} from "@/api/tao/order";
@ -348,15 +336,23 @@ export default {
// return Promise.reject('') // return Promise.reject('')
}else{ }else{
this.$modal.msgSuccess(JSON.stringify(response)); this.$modal.msgSuccess(JSON.stringify(response));
this.pullLoading = false
}
}
this.pullLoading = false
}) })
}else{ }else{
this.$modal.msgSuccess("请先选择店铺"); this.$modal.msgSuccess("请先选择店铺");
} }
// this.$modal.msgSuccess("API"); // this.$modal.msgSuccess("API");
},
handleUpdateRefund(row){
console.log("更新退款")
this.pullLoading = true
pullRefundDetail({shopId:row.shopId,refundId:row.refundId}).then(response => {
this.pullLoading = false
this.$modal.msgSuccess(JSON.stringify(response));
})
} }
} }