From e4397049eebf7bd54b6d8b934ca688edef2bce31 Mon Sep 17 00:00:00 2001 From: dev <182542500@qq.com> Date: Thu, 15 May 2025 11:30:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=90=E8=90=A5=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 425 ++++--- package.json | 1 + src/App.vue | 2 + src/api/amz/logisticsOrder/index.ts | 17 +- src/api/amz/logisticsOrder/types.ts | 2 + src/api/amz/logisticsQuote/index.ts | 12 + src/api/amz/purchaseOrder/index.ts | 63 + src/api/amz/purchaseOrder/types.ts | 760 +++++++++++ src/api/amz/sendOrder/index.ts | 63 + src/api/amz/sendOrder/types.ts | 191 +++ src/api/amz/shipForward/index.ts | 63 + src/api/amz/shipForward/types.ts | 260 ++++ src/api/system/social/auth.ts | 8 + src/api/system/user/index.ts | 14 +- src/components/ChannelCascader/index.vue | 184 +++ src/components/FbaPlanFileUpload/index.vue | 259 ++++ src/components/UserSelect/index.vue | 8 +- src/layout/components/AppMain.vue | 55 +- src/layout/components/Navbar.vue | 45 +- src/main.ts | 5 + src/store/modules/user.ts | 7 + src/types/global.d.ts | 4 + src/views/amz/amazonStore/assignUser.vue | 8 +- src/views/amz/inquiryRequest/index.vue | 78 +- src/views/amz/logisticsOrder/index.vue | 13 +- src/views/amz/logisticsQuoteReport/index.vue | 475 +++++++ src/views/amz/purchaseOrder/index.vue | 898 +++++++++++++ src/views/amz/purchaseOrderConfirm/index.vue | 1204 ++++++++++++++++++ src/views/amz/sendOrder/index.vue | 380 ++++++ src/views/amz/sendOrderConfirm/index.vue | 333 +++++ src/views/amz/shipForward/index.vue | 593 +++++++++ src/views/amz/shipForwardIn/index.vue | 625 +++++++++ src/views/amz/shipForwardOut/index.vue | 605 +++++++++ src/views/amz/shipmentPlan/index.vue | 2 +- src/views/amz/shipmentPlanAsk/index.vue | 108 +- src/views/amz/shipmentPlanQuery/index.vue | 3 + src/views/amz/shipmentPlanSend/index.vue | 3 + src/views/index.vue | 32 + src/views/login.vue | 16 +- src/views/monitor/logininfor/index.vue | 6 +- src/views/monitor/online/index.vue | 4 +- src/views/system/role/authUser.vue | 8 +- src/views/system/role/selectUser.vue | 8 +- src/views/system/tenant/index.vue | 2 +- src/views/system/user/authRole.vue | 2 +- src/views/system/user/index.vue | 26 +- src/views/system/user/profile/index.vue | 51 +- src/views/system/user/profile/thirdParty.vue | 72 +- src/views/system/user/profile/userInfo.vue | 4 +- 49 files changed, 7626 insertions(+), 381 deletions(-) create mode 100644 src/api/amz/purchaseOrder/index.ts create mode 100644 src/api/amz/purchaseOrder/types.ts create mode 100644 src/api/amz/sendOrder/index.ts create mode 100644 src/api/amz/sendOrder/types.ts create mode 100644 src/api/amz/shipForward/index.ts create mode 100644 src/api/amz/shipForward/types.ts create mode 100644 src/components/ChannelCascader/index.vue create mode 100644 src/components/FbaPlanFileUpload/index.vue create mode 100644 src/views/amz/logisticsQuoteReport/index.vue create mode 100644 src/views/amz/purchaseOrder/index.vue create mode 100644 src/views/amz/purchaseOrderConfirm/index.vue create mode 100644 src/views/amz/sendOrder/index.vue create mode 100644 src/views/amz/sendOrderConfirm/index.vue create mode 100644 src/views/amz/shipForward/index.vue create mode 100644 src/views/amz/shipForwardIn/index.vue create mode 100644 src/views/amz/shipForwardOut/index.vue diff --git a/index.html b/index.html index 98bba7f..ec54548 100644 --- a/index.html +++ b/index.html @@ -1,214 +1,235 @@ - - - - - - - 瑷胜科技管理系统 - - + + + + - #loader:after { - content: ''; - position: absolute; - top: 15px; - left: 15px; - right: 15px; - bottom: 15px; - border-radius: 50%; - border: 3px solid transparent; - border-top-color: #fff; - -moz-animation: spin 1.5s linear infinite; - -o-animation: spin 1.5s linear infinite; - -ms-animation: spin 1.5s linear infinite; - -webkit-animation: spin 1.5s linear infinite; - animation: spin 1.5s linear infinite; - } - - @-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - -ms-transform: rotate(0deg); - transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(360deg); - -ms-transform: rotate(360deg); - transform: rotate(360deg); - } - } - - @keyframes spin { - 0% { - -webkit-transform: rotate(0deg); - -ms-transform: rotate(0deg); - transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(360deg); - -ms-transform: rotate(360deg); - transform: rotate(360deg); - } - } - - #loader-wrapper .loader-section { - position: fixed; - top: 0; - width: 51%; - height: 100%; - background: #7171c6; - z-index: 1000; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); - } - - #loader-wrapper .loader-section.section-left { - left: 0; - } - - #loader-wrapper .loader-section.section-right { - right: 0; - } - - .loaded #loader-wrapper .loader-section.section-left { - -webkit-transform: translateX(-100%); - -ms-transform: translateX(-100%); - transform: translateX(-100%); - -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - } - - .loaded #loader-wrapper .loader-section.section-right { - -webkit-transform: translateX(100%); - -ms-transform: translateX(100%); - transform: translateX(100%); - -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - } - - .loaded #loader { - opacity: 0; - -webkit-transition: all 0.3s ease-out; - transition: all 0.3s ease-out; - } - - .loaded #loader-wrapper { - visibility: hidden; - -webkit-transform: translateY(-100%); - -ms-transform: translateY(-100%); - transform: translateY(-100%); - -webkit-transition: all 0.3s 1s ease-out; - transition: all 0.3s 1s ease-out; - } - - .no-js #loader-wrapper { - display: none; - } - - .no-js h1 { - color: #222222; - } - - #loader-wrapper .load_title { - font-family: 'Open Sans'; - color: #fff; - font-size: 19px; - width: 100%; - text-align: center; - z-index: 9999999999999; - position: absolute; - top: 60%; - opacity: 1; - line-height: 30px; - } - - #loader-wrapper .load_title span { - font-weight: normal; - font-style: italic; - font-size: 13px; - color: #fff; - opacity: 0.5; - } - - - - -
-
-
-
-
-
正在加载系统资源,请耐心等待
-
-
- - + +
+
+
+
+
+
正在加载系统资源,请耐心等待
+
+
+ + diff --git a/package.json b/package.json index fa89b2e..47213bc 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "vue-cropper": "1.1.1", "vue-i18n": "10.0.5", "vue-json-pretty": "2.4.0", + "vue-qr": "^4.0.9", "vue-router": "4.4.5", "vue-types": "5.1.3", "vxe-table": "4.5.22" diff --git a/src/App.vue b/src/App.vue index 66dbed6..4d6e3bb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -18,3 +18,5 @@ onMounted(() => { }); }); + + diff --git a/src/api/amz/logisticsOrder/index.ts b/src/api/amz/logisticsOrder/index.ts index 32fc904..e48569f 100644 --- a/src/api/amz/logisticsOrder/index.ts +++ b/src/api/amz/logisticsOrder/index.ts @@ -38,10 +38,6 @@ export const getLogisticsOrder = (id: string | number): AxiosPromise { return request({ url: '/amz/logisticsOrder', @@ -50,6 +46,17 @@ export const addLogisticsOrder = (data: LogisticsOrderForm) => { }); }; +/** + * 查询快到期的物流订单 + * @param data + */ +export const queryLogisticsOrder = () => { + return request({ + url: '/amz/logisticsOrder/query', + method: 'get' + }); +}; + /** * 创建物流订单 * @param data @@ -84,3 +91,5 @@ export const delLogisticsOrder = (id: string | number | Array) method: 'delete' }); }; + + diff --git a/src/api/amz/logisticsOrder/types.ts b/src/api/amz/logisticsOrder/types.ts index 0b5870c..9d8c759 100644 --- a/src/api/amz/logisticsOrder/types.ts +++ b/src/api/amz/logisticsOrder/types.ts @@ -159,6 +159,8 @@ export interface LogisticsOrderQuery extends PageQuery { */ logisticsChannel?: string; + channelId?: string | number; + /** * 目的地仓库名称或编码 */ diff --git a/src/api/amz/logisticsQuote/index.ts b/src/api/amz/logisticsQuote/index.ts index ea1e75b..e6ece8a 100644 --- a/src/api/amz/logisticsQuote/index.ts +++ b/src/api/amz/logisticsQuote/index.ts @@ -120,3 +120,15 @@ export const delLogisticsQuote = (id: string | number | Array) method: 'delete' }); }; + +/** + * 报表 + * @param data + */ +export const queryLogisticsQuoteReport = (queryData: any) => { + return request({ + url: '/amz/logisticsQuote/report', + method: 'post', + data: queryData + }); +}; diff --git a/src/api/amz/purchaseOrder/index.ts b/src/api/amz/purchaseOrder/index.ts new file mode 100644 index 0000000..dc655af --- /dev/null +++ b/src/api/amz/purchaseOrder/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { PurchaseOrderVO, PurchaseOrderForm, PurchaseOrderQuery } from '@/api/amz/purchaseOrder/types'; + +/** + * 查询采购单主列表 + * @param query + * @returns {*} + */ + +export const listPurchaseOrder = (query?: PurchaseOrderQuery): AxiosPromise => { + return request({ + url: '/amz/purchaseOrder/list', + method: 'get', + params: query + }); +}; + +/** + * 查询采购单主详细 + * @param orderSn + */ +export const getPurchaseOrder = (orderSn: string | number): AxiosPromise => { + return request({ + url: '/amz/purchaseOrder/' + orderSn, + method: 'get' + }); +}; + +/** + * 新增采购单主 + * @param data + */ +export const addPurchaseOrder = (data: PurchaseOrderForm) => { + return request({ + url: '/amz/purchaseOrder', + method: 'post', + data: data + }); +}; + +/** + * 修改采购单主 + * @param data + */ +export const updatePurchaseOrder = (data: PurchaseOrderForm) => { + return request({ + url: '/amz/purchaseOrder', + method: 'put', + data: data + }); +}; + +/** + * 删除采购单主 + * @param orderSn + */ +export const delPurchaseOrder = (orderSn: string | number | Array) => { + return request({ + url: '/amz/purchaseOrder/' + orderSn, + method: 'delete' + }); +}; diff --git a/src/api/amz/purchaseOrder/types.ts b/src/api/amz/purchaseOrder/types.ts new file mode 100644 index 0000000..492cbf4 --- /dev/null +++ b/src/api/amz/purchaseOrder/types.ts @@ -0,0 +1,760 @@ +export interface PurchaseOrderVO { + /** + * 采购单号 + */ + orderSn: string; + + /** + * 自定义单号 + */ + customOrderSn: string; + + /** + * 供应商ID + */ + supplierId: string | number; + + /** + * 供应商名称 + */ + supplierName: string; + + /** + * 采购店铺名称 + */ + storeName: string; + + /** + * 采购员ID + */ + optUid: string | number; + + /** + * 审核人姓名 + */ + auditorRealname: string; + + /** + * 操作人姓名 + */ + optRealname: string; + + /** + * 最后操作人姓名 + */ + lastRealname: string; + + /** + * 下单时间 + */ + orderTime: string; + + /** + * 应付货款(手工) + */ + payment: string; + + /** + * 审核人员ID + */ + auditorUid: string | number; + + /** + * 审核时间 + */ + auditorTime: string; + + /** + * 最后操作人员ID + */ + lastUid: string | number; + + /** + * 最后操作时间 + */ + lastTime: string; + + /** + * 作废原因 + */ + reason: string; + + /** + * 是否含税:0 否,1 是 + */ + isTax: number; + + /** + * 采购单状态:-1 作废, 3 待提交, 1 待下单, 2 待签收, 9 完成, 121 待审核, 122 驳回, 124 作废 + */ + status: number; + + /** + * 状态说明 + */ + statusText: string; + + /** + * 支付状态说明 + */ + payStatusText: string; + + /** + * 到货状态:1 未到货, 2 部分到货, 3 全部到货 + */ + statusShipped: number; + + /** + * 到货状态说明 + */ + statusShippedText: string; + + /** + * 货物总价 + */ + amountTotal: number; + + /** + * 总金额 + */ + totalPrice: number; + + /** + * 币种符号 + */ + icon: string; + + /** + * 付款状态:0 未申请, 1 已申请, 2 部分付款, 3 已付款 + */ + payStatus: number; + + /** + * 备注 + */ + remark: string; + + /** + * 其他费用 + */ + otherFee: number; + + /** + * 其他费用币种 + */ + otherCurrency: string; + + /** + * 费用分摊方式:0 不分摊, 1 按金额, 2 按数量 + */ + feePartType: number; + + /** + * 运费 + */ + shippingPrice: number; + + /** + * 运费币种 + */ + shippingCurrency: string; + + /** + * 采购币种 + */ + purchaseCurrency: string; + + /** + * 采购汇率 + */ + purchaseRate: number; + + /** + * 采购总量 + */ + quantityTotal: number; + + /** + * 仓库ID + */ + wid: string | number; + + /** + * 仓库名称 + */ + wareHouseName: string; + + /** + * 仓库名(备份) + */ + wareHouseBakName: string; + + /** + * 入库量 + */ + quantityEntry: number; + + /** + * 实际采购量 + */ + quantityReal: number; + + /** + * 待到货量 + */ + quantityReceive: number; + + /** + * 采购方ID + */ + purchaserId: string | number; + + /** + * 联系人 + */ + contactPerson: string; + + /** + * 联系方式 + */ + contactNumber: string; + + /** + * 结算方式:7 现结, 8 月结 + */ + settlementMethod: number; + + /** + * 结算描述 + */ + settlementDescription: string; + + /** + * 支付方式 + */ + paymentMethod: number; + + /** + * 交货天数 + */ + estDlvDays: number; + + /** + * 订单状态 + */ + orderStatus: string; + + /** + * 交货时间 + */ + deliveryTime: string; + + /** + * 订单交付变动天数 + */ + dlvTimeVar: number; +} + +export interface PurchaseOrderForm extends BaseEntity { + /** + * 采购单号 + */ + orderSn?: string; + + /** + * 自定义单号 + */ + customOrderSn?: string; + + /** + * 供应商ID + */ + supplierId?: string | number; + + /** + * 供应商名称 + */ + supplierName?: string; + + /** + * 采购员ID + */ + optUid?: string | number; + + /** + * 审核人姓名 + */ + auditorRealname?: string; + + /** + * 操作人姓名 + */ + optRealname?: string; + + /** + * 最后操作人姓名 + */ + lastRealname?: string; + + /** + * 下单时间 + */ + orderTime?: string; + + /** + * 应付货款(手工) + */ + payment?: string; + + /** + * 审核人员ID + */ + auditorUid?: string | number; + + /** + * 审核时间 + */ + auditorTime?: string; + + /** + * 最后操作人员ID + */ + lastUid?: string | number; + + /** + * 最后操作时间 + */ + lastTime?: string; + + /** + * 作废原因 + */ + reason?: string; + + /** + * 是否含税:0 否,1 是 + */ + isTax?: number; + + /** + * 采购单状态:-1 作废, 3 待提交, 1 待下单, 2 待签收, 9 完成, 121 待审核, 122 驳回, 124 作废 + */ + status?: number; + + /** + * 状态说明 + */ + statusText?: string; + + /** + * 支付状态说明 + */ + payStatusText?: string; + + /** + * 到货状态:1 未到货, 2 部分到货, 3 全部到货 + */ + statusShipped?: number; + + /** + * 到货状态说明 + */ + statusShippedText?: string; + + /** + * 货物总价 + */ + amountTotal?: number; + + /** + * 总金额 + */ + totalPrice?: number; + + /** + * 币种符号 + */ + icon?: string; + + /** + * 付款状态:0 未申请, 1 已申请, 2 部分付款, 3 已付款 + */ + payStatus?: number; + + /** + * 备注 + */ + remark?: string; + + /** + * 其他费用 + */ + otherFee?: number; + + /** + * 其他费用币种 + */ + otherCurrency?: string; + + /** + * 费用分摊方式:0 不分摊, 1 按金额, 2 按数量 + */ + feePartType?: number; + + /** + * 运费 + */ + shippingPrice?: number; + + /** + * 运费币种 + */ + shippingCurrency?: string; + + /** + * 采购币种 + */ + purchaseCurrency?: string; + + /** + * 采购汇率 + */ + purchaseRate?: number; + + /** + * 采购总量 + */ + quantityTotal?: number; + + /** + * 仓库ID + */ + wid?: string | number; + + /** + * 仓库名称 + */ + wareHouseName?: string; + + /** + * 仓库名(备份) + */ + wareHouseBakName?: string; + + /** + * 入库量 + */ + quantityEntry?: number; + + /** + * 实际采购量 + */ + quantityReal?: number; + + /** + * 待到货量 + */ + quantityReceive?: number; + + /** + * 采购方ID + */ + purchaserId?: string | number; + + /** + * 联系人 + */ + contactPerson?: string; + + /** + * 联系方式 + */ + contactNumber?: string; + + /** + * 结算方式:7 现结, 8 月结 + */ + settlementMethod?: number; + + /** + * 结算描述 + */ + settlementDescription?: string; + + /** + * 支付方式 + */ + paymentMethod?: number; + + /** + * 交货天数 + */ + estDlvDays?: number; + + /** + * 订单状态 + */ + orderStatus?: string; + + /** + * 交货时间 + */ + deliveryTime?: string; + + /** + * 订单交付变动天数 + */ + dlvTimeVar?: number; +} + +export interface PurchaseOrderQuery extends PageQuery { + /** + * 采购单号 + */ + orderSn?: string; + + /** + * 自定义单号 + */ + customOrderSn?: string; + + /** + * 供应商ID + */ + supplierId?: string | number; + + /** + * 供应商名称 + */ + supplierName?: string; + + /** + * 采购员ID + */ + optUid?: string | number; + + /** + * 审核人姓名 + */ + auditorRealname?: string; + + /** + * 操作人姓名 + */ + optRealname?: string; + + /** + * 最后操作人姓名 + */ + lastRealname?: string; + + /** + * 下单时间 + */ + orderTime?: string; + + /** + * 应付货款(手工) + */ + payment?: string; + + /** + * 审核人员ID + */ + auditorUid?: string | number; + + /** + * 审核时间 + */ + auditorTime?: string; + + /** + * 最后操作人员ID + */ + lastUid?: string | number; + + /** + * 最后操作时间 + */ + lastTime?: string; + + /** + * 作废原因 + */ + reason?: string; + + /** + * 是否含税:0 否,1 是 + */ + isTax?: number; + + /** + * 采购单状态:-1 作废, 3 待提交, 1 待下单, 2 待签收, 9 完成, 121 待审核, 122 驳回, 124 作废 + */ + status?: number; + + /** + * 状态说明 + */ + statusText?: string; + + /** + * 支付状态说明 + */ + payStatusText?: string; + + /** + * 到货状态:1 未到货, 2 部分到货, 3 全部到货 + */ + statusShipped?: number; + + /** + * 到货状态说明 + */ + statusShippedText?: string; + + /** + * 货物总价 + */ + amountTotal?: number; + + /** + * 总金额 + */ + totalPrice?: number; + + /** + * 币种符号 + */ + icon?: string; + + /** + * 付款状态:0 未申请, 1 已申请, 2 部分付款, 3 已付款 + */ + payStatus?: number; + + /** + * 其他费用 + */ + otherFee?: number; + + /** + * 其他费用币种 + */ + otherCurrency?: string; + + /** + * 费用分摊方式:0 不分摊, 1 按金额, 2 按数量 + */ + feePartType?: number; + + /** + * 运费 + */ + shippingPrice?: number; + + /** + * 运费币种 + */ + shippingCurrency?: string; + + /** + * 采购币种 + */ + purchaseCurrency?: string; + + /** + * 采购汇率 + */ + purchaseRate?: number; + + /** + * 采购总量 + */ + quantityTotal?: number; + + /** + * 仓库ID + */ + wid?: string | number; + + /** + * 仓库名称 + */ + wareHouseName?: string; + + /** + * 仓库名(备份) + */ + wareHouseBakName?: string; + + /** + * 入库量 + */ + quantityEntry?: number; + + /** + * 实际采购量 + */ + quantityReal?: number; + + /** + * 待到货量 + */ + quantityReceive?: number; + + /** + * 采购方ID + */ + purchaserId?: string | number; + + /** + * 联系人 + */ + contactPerson?: string; + + /** + * 联系方式 + */ + contactNumber?: string; + + /** + * 结算方式:7 现结, 8 月结 + */ + settlementMethod?: number; + + /** + * 结算描述 + */ + settlementDescription?: string; + + /** + * 支付方式 + */ + paymentMethod?: number; + + /** + * 交货天数 + */ + estDlvDays?: number; + + /** + * 订单状态 + */ + orderStatus?: string; + + /** + * 交货时间 + */ + deliveryTime?: string; + + /** + * 订单交付变动天数 + */ + dlvTimeVar?: number; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/api/amz/sendOrder/index.ts b/src/api/amz/sendOrder/index.ts new file mode 100644 index 0000000..a8057d2 --- /dev/null +++ b/src/api/amz/sendOrder/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { SendOrderVO, SendOrderForm, SendOrderQuery } from '@/api/amz/sendOrder/types'; + +/** + * 查询供应商创建的发货单列表 + * @param query + * @returns {*} + */ + +export const listSendOrder = (query?: SendOrderQuery): AxiosPromise => { + return request({ + url: '/amz/sendOrder/list', + method: 'get', + params: query + }); +}; + +/** + * 查询供应商创建的发货单详细 + * @param id + */ +export const getSendOrder = (id: string | number): AxiosPromise => { + return request({ + url: '/amz/sendOrder/' + id, + method: 'get' + }); +}; + +/** + * 新增供应商创建的发货单 + * @param data + */ +export const addSendOrder = (data: SendOrderForm) => { + return request({ + url: '/amz/sendOrder', + method: 'post', + data: data + }); +}; + +/** + * 修改供应商创建的发货单 + * @param data + */ +export const updateSendOrder = (data: SendOrderForm) => { + return request({ + url: '/amz/sendOrder', + method: 'put', + data: data + }); +}; + +/** + * 删除供应商创建的发货单 + * @param id + */ +export const delSendOrder = (id: string | number | Array) => { + return request({ + url: '/amz/sendOrder/' + id, + method: 'delete' + }); +}; diff --git a/src/api/amz/sendOrder/types.ts b/src/api/amz/sendOrder/types.ts new file mode 100644 index 0000000..2e168f7 --- /dev/null +++ b/src/api/amz/sendOrder/types.ts @@ -0,0 +1,191 @@ +export interface SendOrderVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 采购单号 + */ + orderSn: string; + + /** + * 发货日期 + */ + sendDate: string; + + /** + * 采购店铺 + */ + storeName: string; + + /** + * 产品名称 + */ + productName: string; + + /** + * 发货数量 + */ + quantitySend: number; + + /** + * 单箱产品数量 + */ + quantityPerBox: number; + + /** + * 箱数 + */ + boxCount: number; + + /** + * 箱子尺寸 + */ + boxDimensions: string; + + /** + * 单箱重量 + */ + weightPerBox: number; + + /** + * 实际采购店铺 + */ + realStoreName: string; + + /** + * 发货状态(pending=未发货,confirm=确认发货, processing=发货中,completed=发货完成) + */ + sendStatus: string; + +} + +export interface SendOrderForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 采购单号 + */ + orderSn?: string; + + /** + * 发货日期 + */ + sendDate?: string; + + /** + * 采购店铺 + */ + storeName?: string; + + /** + * 产品名称 + */ + productName?: string; + + /** + * 发货数量 + */ + quantitySend?: number; + + /** + * 单箱产品数量 + */ + quantityPerBox?: number; + + /** + * 箱数 + */ + boxCount?: number; + + /** + * 箱子尺寸 + */ + boxDimensions?: string; + + /** + * 单箱重量 + */ + weightPerBox?: number; + + /** + * 实际采购店铺 + */ + realStoreName?: string; + + /** + * 发货状态(pending=未发货,confirm=确认发货, processing=发货中,completed=发货完成) + */ + sendStatus?: string; + +} + +export interface SendOrderQuery extends PageQuery { + + /** + * 采购单号 + */ + orderSn?: string; + + /** + * 发货日期 + */ + sendDate?: string; + + /** + * 采购店铺 + */ + storeName?: string; + + /** + * 产品名称 + */ + productName?: string; + + /** + * 发货数量 + */ + quantitySend?: number; + + /** + * 单箱产品数量 + */ + quantityPerBox?: number; + + /** + * 箱数 + */ + boxCount?: number; + + /** + * 箱子尺寸 + */ + boxDimensions?: string; + + /** + * 单箱重量 + */ + weightPerBox?: number; + + /** + * 实际采购店铺 + */ + realStoreName?: string; + + /** + * 发货状态(pending=未发货,confirm=确认发货, processing=发货中,completed=发货完成) + */ + sendStatus?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/amz/shipForward/index.ts b/src/api/amz/shipForward/index.ts new file mode 100644 index 0000000..19e8117 --- /dev/null +++ b/src/api/amz/shipForward/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ShipForwardVO, ShipForwardForm, ShipForwardQuery } from '@/api/amz/shipForward/types'; + +/** + * 查询货件转发列表 + * @param query + * @returns {*} + */ + +export const listShipForward = (query?: ShipForwardQuery): AxiosPromise => { + return request({ + url: '/amz/shipForward/list', + method: 'get', + params: query + }); +}; + +/** + * 查询货件转发详细 + * @param id + */ +export const getShipForward = (id: string | number): AxiosPromise => { + return request({ + url: '/amz/shipForward/' + id, + method: 'get' + }); +}; + +/** + * 新增货件转发 + * @param data + */ +export const addShipForward = (data: ShipForwardForm) => { + return request({ + url: '/amz/shipForward', + method: 'post', + data: data + }); +}; + +/** + * 修改货件转发 + * @param data + */ +export const updateShipForward = (data: ShipForwardForm) => { + return request({ + url: '/amz/shipForward', + method: 'put', + data: data + }); +}; + +/** + * 删除货件转发 + * @param id + */ +export const delShipForward = (id: string | number | Array) => { + return request({ + url: '/amz/shipForward/' + id, + method: 'delete' + }); +}; diff --git a/src/api/amz/shipForward/types.ts b/src/api/amz/shipForward/types.ts new file mode 100644 index 0000000..bafc1ec --- /dev/null +++ b/src/api/amz/shipForward/types.ts @@ -0,0 +1,260 @@ +export interface ShipForwardVO { + /** + * $column.columnComment + */ + id: string | number; + + /** + * 采购单号 + */ + orderSn: string; + + /** + * 采购店铺名称 + */ + storeName: string; + + /** + * 产品唯一标识码 + */ + sku: string; + + /** + * 产品全称 + */ + productName: string; + + /** + * 实际发货数量 + */ + quantitySend: number; + + /** + * 发货供应商名称 + */ + outSupplierName: string; + + /** + * 发货供应商系统ID + */ + outSupplierId: string | number; + + /** + * 收货供应商名称 + */ + inSupplierName: string; + + /** + * 收货供应商系统ID + */ + inSupplierId: string | number; + + /** + * 计划发货起始时间 + */ + shipmentStart: string; + + /** + * 计划发货截止时间 + */ + shipmentEnd: string; + + /** + * 订单跟进人姓名 + */ + trackerName: string; + + /** + * 订单跟进人系统ID + */ + trackerId: string | number; + + /** + * 转发状态(pending=未转发,processing=转发中,completed=转发完成) + */ + fwdStatus: string; + + /** + * 发货时间 + */ + sendTime: string; + + /** + * 采购单子项ID + */ + orderDetailId?: string | number; +} + +export interface ShipForwardForm extends BaseEntity { + /** + * $column.columnComment + */ + id?: string | number; + + /** + * 采购单号 + */ + orderSn?: string; + + /** + * 采购店铺名称 + */ + storeName?: string; + + /** + * 产品唯一标识码 + */ + sku?: string; + + /** + * 产品全称 + */ + productName?: string; + + /** + * 实际发货数量 + */ + quantitySend?: number; + + /** + * 发货供应商名称 + */ + outSupplierName?: string; + + /** + * 发货供应商系统ID + */ + outSupplierId?: string | number; + + /** + * 收货供应商名称 + */ + inSupplierName?: string; + + /** + * 收货供应商系统ID + */ + inSupplierId?: string | number; + + /** + * 计划发货起始时间 + */ + shipmentStart?: string; + + /** + * 计划发货截止时间 + */ + shipmentEnd?: string; + + /** + * 订单跟进人姓名 + */ + trackerName?: string; + + /** + * 订单跟进人系统ID + */ + trackerId?: string | number; + + /** + * 转发状态(pending=未转发,processing=转发中,completed=转发完成) + */ + fwdStatus?: string; + + /** + * 发货时间 + */ + sendTime?: string; + + /** + * 采购单子项ID + */ + orderDetailId?: string | number; + /** + * 请求类型 + */ + type?: string; +} + +export interface ShipForwardQuery extends PageQuery { + /** + * 采购单号 + */ + orderSn?: string; + + /** + * 采购店铺名称 + */ + storeName?: string; + + /** + * 产品唯一标识码 + */ + sku?: string; + + /** + * 产品全称 + */ + productName?: string; + + /** + * 实际发货数量 + */ + quantitySend?: number; + + /** + * 发货供应商名称 + */ + outSupplierName?: string; + + /** + * 发货供应商系统ID + */ + outSupplierId?: string | number; + + /** + * 收货供应商名称 + */ + inSupplierName?: string; + + /** + * 收货供应商系统ID + */ + inSupplierId?: string | number; + + /** + * 计划发货起始时间 + */ + shipmentStart?: string; + + /** + * 计划发货截止时间 + */ + shipmentEnd?: string; + + /** + * 订单跟进人姓名 + */ + trackerName?: string; + + /** + * 订单跟进人系统ID + */ + trackerId?: string | number; + + /** + * 转发状态(pending=未转发,processing=转发中,completed=转发完成) + */ + fwdStatus?: string; + + /** + * 发货时间 + */ + sendTime?: string; + + /** + * 日期范围参数 + */ + params?: any; + type: string; +} diff --git a/src/api/system/social/auth.ts b/src/api/system/social/auth.ts index 69f0d7e..f7e6c83 100644 --- a/src/api/system/social/auth.ts +++ b/src/api/system/social/auth.ts @@ -12,6 +12,14 @@ export function authBinding(source: string, tenantId: string) { }); } + +export function authBindingWechat() { + return request({ + url: '/auth/generate-auth-url', + method: 'get' + }); +} + // 解绑账号 export function authUnlock(authId: string) { return request({ diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 9899c61..6edab15 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -1,9 +1,10 @@ -import {DeptTreeVO, DeptVO} from './../dept/types'; +import { DeptTreeVO, DeptVO } from './../dept/types'; import { RoleVO } from '@/api/system/role/types'; import request from '@/utils/request'; import { AxiosPromise } from 'axios'; import { UserForm, UserQuery, UserVO, UserInfoVO } from './types'; import { parseStrEmpty } from '@/utils/asinkj'; +import { PostVO } from '@/api/system/post/types'; /** * 查询用户列表 @@ -209,6 +210,17 @@ export const deptTreeSelect = (): AxiosPromise => { }); }; +export const roleSelectPost = (roleIds?: (number | string)[]): AxiosPromise => { + return request({ + url: '/system/user/roleSelect', + method: 'post', + data: { + // POST 请求使用 data 传递参数 + roleIds: roleIds + } + }); +}; + export default { listUser, getUser, diff --git a/src/components/ChannelCascader/index.vue b/src/components/ChannelCascader/index.vue new file mode 100644 index 0000000..135b242 --- /dev/null +++ b/src/components/ChannelCascader/index.vue @@ -0,0 +1,184 @@ + + + + diff --git a/src/components/FbaPlanFileUpload/index.vue b/src/components/FbaPlanFileUpload/index.vue new file mode 100644 index 0000000..bdb8bf3 --- /dev/null +++ b/src/components/FbaPlanFileUpload/index.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue index 937a395..739b992 100644 --- a/src/components/UserSelect/index.vue +++ b/src/components/UserSelect/index.vue @@ -25,8 +25,8 @@
- - + + @@ -61,8 +61,8 @@ > - - + + diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue index 0d402f2..49adfdf 100644 --- a/src/layout/components/AppMain.vue +++ b/src/layout/components/AppMain.vue @@ -1,15 +1,17 @@ @@ -17,12 +19,35 @@ diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index a6b9494..8586328 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -24,8 +24,11 @@ +
+ {{ userNick }} +
- {{ roleNmae }} + {{ roleNmae }}
@@ -111,6 +114,8 @@ const { proxy } = getCurrentInstance() as ComponentInternalInstance; const userId = ref(userStore.userId); const roles = userStore.roles; +const currentUser = userStore.currentUser; + const companyName = ref(undefined); const tenantList = ref([]); // 是否切换了租户 @@ -123,17 +128,33 @@ const searchMenuRef = ref>(); console.log('roles', roles); const roleNmae = computed(() => { - if (roles.includes('superadmin')) { - return '超级管理员'; - } else if (roles.includes('wuliu')) { - return '物流商'; - } else if (roles.includes('yunying')) { - return '运营'; - } else if (roles.includes('manager')) { - return '管理员'; - } else { - return '普通用户'; - } + // if (roles.includes('superadmin')) { + // return '超级管理员'; + // } else if (roles.includes('wuliu')) { + // return '物流商'; + // } else if (roles.includes('yunying')) { + // return '运营'; + // } else if (roles.includes('manager')) { + // return '管理员'; + // } else { + // return '普通用户'; + // } + return currentUser.roles[0].roleName; +}); + +const userNick = computed(() => { + // if (roles.includes('superadmin')) { + // return '超级管理员'; + // } else if (roles.includes('wuliu')) { + // return '物流商'; + // } else if (roles.includes('yunying')) { + // return '运营'; + // } else if (roles.includes('manager')) { + // return '管理员'; + // } else { + // return '普通用户'; + // } + return currentUser.nickName; }); const openSearchMenu = () => { searchMenuRef.value?.openSearch(); diff --git a/src/main.ts b/src/main.ts index 592de58..ceaefaf 100644 --- a/src/main.ts +++ b/src/main.ts @@ -31,15 +31,19 @@ import './permission'; // 国际化 import i18n from '@/lang/index'; + + // vxeTable import VXETable from 'vxe-table'; import 'vxe-table/lib/style.css'; + VXETable.config({ zIndex: 999999 }); // 修改 el-dialog 默认点击遮照为不关闭 import { ElDialog } from 'element-plus'; + ElDialog.props.closeOnClickModal.default = false; const app = createApp(App); @@ -51,6 +55,7 @@ app.use(store); app.use(i18n); app.use(VXETable); app.use(plugins); + // 自定义指令 directive(app); diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 56f369b..55f7190 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -4,6 +4,7 @@ import { login as loginApi, logout as logoutApi, getInfo as getUserInfo } from ' import { LoginData } from '@/api/types'; import defAva from '@/assets/images/profile.jpg'; import store from '@/store'; +import { UserVO } from '@/api/system/user/types'; export const useUserStore = defineStore('user', () => { const token = ref(getToken()); @@ -14,6 +15,7 @@ export const useUserStore = defineStore('user', () => { const avatar = ref(''); const roles = ref>([]); // 用户角色编码集合 → 判断路由权限 const permissions = ref>([]); // 用户权限编码集合 → 判断按钮权限 + const currentUser = ref({}); /** * 登录 @@ -41,7 +43,9 @@ export const useUserStore = defineStore('user', () => { if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组 + roles.value = data.roles; + console.log('非空数组roles', roles.value); permissions.value = data.permissions; } else { roles.value = ['ROLE_DEFAULT']; @@ -51,6 +55,7 @@ export const useUserStore = defineStore('user', () => { avatar.value = profile; userId.value = user.userId; tenantId.value = user.tenantId; + currentUser.value = user; return Promise.resolve(); } return Promise.reject(err); @@ -77,6 +82,7 @@ export const useUserStore = defineStore('user', () => { avatar, roles, permissions, + currentUser, login, getInfo, logout, @@ -85,6 +91,7 @@ export const useUserStore = defineStore('user', () => { }); export default useUserStore; + // 非setup export function useUserStoreHook() { return useUserStore(store); diff --git a/src/types/global.d.ts b/src/types/global.d.ts index 229e181..c97b55b 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -53,6 +53,7 @@ declare global { /** 其他参数 */ [key: string]: any; } + /** * 字典数据 数据配置 */ @@ -80,7 +81,9 @@ declare global { form: T; queryParams: D; rules: ElFormRules; + rules2?: ElFormRules; } + /** * 分页查询参数 */ @@ -88,6 +91,7 @@ declare global { pageNum: number; pageSize: number; } + declare interface LayoutSetting { /** * 是否显示顶部导航 diff --git a/src/views/amz/amazonStore/assignUser.vue b/src/views/amz/amazonStore/assignUser.vue index 1424d7a..24af80b 100644 --- a/src/views/amz/amazonStore/assignUser.vue +++ b/src/views/amz/amazonStore/assignUser.vue @@ -2,8 +2,8 @@ - - + + @@ -26,8 +26,8 @@ :header-cell-class-name="headerCellClassName" > - - + + diff --git a/src/views/amz/inquiryRequest/index.vue b/src/views/amz/inquiryRequest/index.vue index 7b0b2aa..55478ac 100644 --- a/src/views/amz/inquiryRequest/index.vue +++ b/src/views/amz/inquiryRequest/index.vue @@ -4,18 +4,18 @@
- - - - - - + + + + + + - - - + + + - - - + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + 搜索 重置 @@ -286,7 +287,10 @@ - + + + + - + + + + + + + + + + @@ -123,7 +139,7 @@ {{ scope.row.shipmentStatus }} - +