Commit 92e22fc5 by zhuzhequan

物流公司

parent 093705dc
......@@ -6440,7 +6440,6 @@
"version": "4.13.31",
"resolved": "https://registry.npmmirror.com/vxe-table/-/vxe-table-4.13.31.tgz",
"integrity": "sha512-ibSM7jXYwJyY+eqXoRy/yXEVLENGFzL96cOEwtnFjBYbbaZV6/ptlM3tsyewGFBCUo5AtIyM+98hswxfjyXxMA==",
"license": "MIT",
"dependencies": {
"vxe-pc-ui": "^4.6.0"
}
......@@ -6515,12 +6514,6 @@
"integrity": "sha512-9yuCHLOU+og4OEkPWWtzrYk1Zt1hgN66U/NCJ0+vYJSx1MplBtoQRz8aEA+2RmCr3leLru98vQxNpw/vJsu/sg==",
"license": "MIT"
},
"node_modules/xe-utils": {
"version": "3.7.4",
"resolved": "https://registry.npmmirror.com/xe-utils/-/xe-utils-3.7.4.tgz",
"integrity": "sha512-9yuCHLOU+og4OEkPWWtzrYk1Zt1hgN66U/NCJ0+vYJSx1MplBtoQRz8aEA+2RmCr3leLru98vQxNpw/vJsu/sg==",
"license": "MIT"
},
"node_modules/xlsx": {
"version": "0.18.5",
"resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
......
import { BaseRespData } from '@/types/api'
import { BasePaginationData, BaseRespData } from '@/types/api'
import axios from './axios'
import {
LogisticsMethod,
......@@ -9,13 +9,70 @@ import { AddDeclarationRuleObj } from '@/views/logistics/types/declarationRule'
import { LogisticsQuotation } from '@/views/logistics/types/logisticsQuotation'
import { LogisticsPartitionObj } from '@/views/logistics/types/logisticsPartition'
import { ShippingAddressObj } from '@/views/logistics/types/shippingAddress'
export interface ILogisticsList{
code:string
basicsName:string
apiData:unknown
}
export interface IForm{
name:string
code:string
id?:number
contact:string
phone:string
siteUrl:string
address:string
apiData:{
[key: string]: unknown
}
}
interface Ikey {
[key: string]: unknown
}
export interface ILogisticsCompanyData {
pageSize: number
currentPage: number
total?: number
name?: string
code?: string
}
export interface ILogisticsCompany {
id: number; // bigint(20)
name: string | null; // varchar(255)
code: string; // varchar(30)
contact: string | null; // varchar(255)
phone: string | null; // varchar(100)
apiJson: string | null; // varchar(600)
mobile: string | null; // varchar(60)
carrier: string | null; // varchar(6)
address: string | null; // varchar(255)
siteUrl: string | null; // varchar(255)
apiKey: string | null; // varchar(256)
apiToken: string | null; // varchar(256)
clientId: string | null; // varchar(256)
accessToken: string | null; // varchar(256)
accessTokenExpiresIn: number | null; // int(11)
refreshToken: string | null; // varchar(256)
refreshDate: string | null; // datetime
refreshTokenExpiresIn: number | null; // int(11)
authCode: string | null; // varchar(500)
redirectUri: string | null; // varchar(256)
createTime: string | null; // timestamp
vat: string | null; // varchar(60)
ioss: string | null; // varchar(60)
basicType: number; // int(11)
}
interface ILogisticsParams {
logType: string
relaId: number | string
}
//获取日志
export function getLogisticsLog(params: ILogisticsParams) {
return axios.get<never, BaseRespData<never>>('logisticsLog/getList', {
......@@ -30,14 +87,17 @@ export function getLogisticsLog(params: ILogisticsParams) {
export function getLogisticsWayList(data: LogisticsMethodList) {
return axios.post<never, BaseRespData<never>>('/logisticsWay/list_page', data)
}
//新增
export function addLogisticsWay(data: LogisticsMethod) {
return axios.post<Ikey, BaseRespData<never>>('/logisticsWay/add', data)
}
//修改
export function updateLogisticsWay(data: LogisticsMethod) {
return axios.post<Ikey, BaseRespData<never>>('/logisticsWay/update', data)
}
//更新状态
export function updateStatusLogisticsWay(params: UpdateLogisticsMethodStatus) {
return axios.get<Ikey, BaseRespData<never>>(
......@@ -47,22 +107,26 @@ export function updateStatusLogisticsWay(params: UpdateLogisticsMethodStatus) {
},
)
}
// 删除
export function deleteLogisticsWay(ids: string) {
return axios.get<Ikey, BaseRespData<never>>('/logisticsWay/delete', {
params: { ids: ids },
})
}
//获取申报规则列表
export function getRuleList() {
return axios.get<never, BaseRespData<never>>(
'/logisticsCustomsRule/getRuleList',
)
}
//获取仓库列表
export function getWarehouseList() {
return axios.get<never, BaseRespData<never>>('/factoryWarehouseInfo/getAll')
}
//获取平台列表
export function getPlatformList() {
return axios.get<never, BaseRespData<never>>('/logisticsWay/platform')
......@@ -80,6 +144,7 @@ export function getAddressByIdList(params: {
params,
})
}
//根据id查询地址
export function getAddressById(params: { id: number | string }) {
return axios.get<never, BaseRespData<never>>(
......@@ -89,6 +154,7 @@ export function getAddressById(params: { id: number | string }) {
},
)
}
//新增
export function addAddress(params: ShippingAddressObj) {
return axios.post<never, BaseRespData<never>>(
......@@ -96,6 +162,7 @@ export function addAddress(params: ShippingAddressObj) {
params,
)
}
//修改
export function updateAddress(params: ShippingAddressObj) {
return axios.post<never, BaseRespData<never>>(
......@@ -103,6 +170,7 @@ export function updateAddress(params: ShippingAddressObj) {
params,
)
}
//删除
export function deleteAddressByIds(params: { ids: string }) {
return axios.get<never, BaseRespData<never>>(
......@@ -120,6 +188,7 @@ export function deleteAddressByIds(params: { ids: string }) {
export function getlogisticsWayAllList() {
return axios.get<never, BaseRespData<never>>('/logisticsWay/all_list', {})
}
//物流报价列表
export function getlogisticsQuotationList(params: {
logisticsIdList?: number[]
......@@ -131,6 +200,7 @@ export function getlogisticsQuotationList(params: {
params,
)
}
//新增
export function addLogisticsQuotation(params: LogisticsQuotation) {
return axios.post<never, BaseRespData<never>>(
......@@ -138,6 +208,7 @@ export function addLogisticsQuotation(params: LogisticsQuotation) {
params,
)
}
//修改
export function updateLogisticsQuotation(params: LogisticsQuotation) {
return axios.post<never, BaseRespData<never>>(
......@@ -145,6 +216,7 @@ export function updateLogisticsQuotation(params: LogisticsQuotation) {
params,
)
}
//删除
export function deleteLogisticsQuotation(params: { ids: string }) {
return axios.get<never, BaseRespData<never>>(
......@@ -154,6 +226,7 @@ export function deleteLogisticsQuotation(params: { ids: string }) {
},
)
}
//导入
export function importLogisticsQuotation(formData: FormData) {
return axios.post<never, BaseRespData<never>>(
......@@ -166,6 +239,7 @@ export function importLogisticsQuotation(formData: FormData) {
},
)
}
//下载模版
export function downloadLogisticsQuotationTemplate() {
return axios.get<never, BaseRespData<never>>(
......@@ -175,6 +249,7 @@ export function downloadLogisticsQuotationTemplate() {
},
)
}
//根据ID查对象
export function getLogisticsQuotationByID(params: { id: number | string }) {
return axios.post<never, BaseRespData<never>>(
......@@ -197,6 +272,7 @@ export function getLogisticsCustomsRuleList(params: {
params,
)
}
//新增
export function addLogisticsCustomsRule(params: AddDeclarationRuleObj) {
return axios.post<never, BaseRespData<never>>(
......@@ -204,6 +280,7 @@ export function addLogisticsCustomsRule(params: AddDeclarationRuleObj) {
params,
)
}
//修改
export function updateLogisticsCustomsRule(params: AddDeclarationRuleObj) {
return axios.post<never, BaseRespData<never>>(
......@@ -211,6 +288,7 @@ export function updateLogisticsCustomsRule(params: AddDeclarationRuleObj) {
params,
)
}
//删除
export function deleteLogisticsCustomsRule(params: { ids: string }) {
return axios.get<never, BaseRespData<never>>('/logisticsCustomsRule/delete', {
......@@ -231,6 +309,7 @@ export function getLogisticsZoneList(params: {
params,
)
}
//新增
export function addLogisticsZone(params: LogisticsPartitionObj) {
return axios.post<never, BaseRespData<never>>(
......@@ -238,6 +317,7 @@ export function addLogisticsZone(params: LogisticsPartitionObj) {
params,
)
}
//修改
export function updateLogisticsZone(params: LogisticsPartitionObj) {
return axios.post<never, BaseRespData<never>>(
......@@ -245,6 +325,7 @@ export function updateLogisticsZone(params: LogisticsPartitionObj) {
params,
)
}
//删除
export function deleteLogisticsZone(params: {
logisticsList: string[]
......@@ -255,6 +336,7 @@ export function deleteLogisticsZone(params: {
params,
)
}
//物流分区导入
export function importLogisticsZone(formData: FormData) {
return axios.post<never, BaseRespData<never>>(
......@@ -267,6 +349,7 @@ export function importLogisticsZone(formData: FormData) {
},
)
}
//物流分区导入模板
export function exportExcelLogisticsZone() {
return axios.get<never, BaseRespData<never>>(
......@@ -291,3 +374,34 @@ export function getLogisticsTrialCalculation(params: {
},
)
}
export function logisticsCompany(data: ILogisticsCompanyData) {
return axios.get<never, BasePaginationData<ILogisticsCompany>>(
'logisticsCompany/list_page',
{ params:data },
)
}
export function logisticsCompanyAdd(data:IForm) {
return axios.post<never, BaseRespData<never>>(
'/logisticsCompany/add',
data
)
}
export function logisticsCompanyUpdate(data:IForm) {
return axios.post<never, BaseRespData<never>>(
'/logisticsCompany/update',
data
)
}
export function logisticsCompanyDelete(ids:string | number[]) {
return axios.get<never, BaseRespData<never>>(
'/logisticsCompany/delete',
{ params:{ids} },
)
}
export function logisticsCompanyAllCodelist() {
return axios.get<never, BaseRespData<ILogisticsList[]>>(
'/logisticsCompany/allCodelist',
)
}
......@@ -50,7 +50,7 @@ export function getCardOrderList(
},
)
}
export function confirmOrderApi(data: number[], productionClient: string,type:string,logisticsTrialCalculation?:LogisticsData) {
export function confirmOrderApi(data: number[], productionClient: string,type:string,logisticsTrialCalculation?:LogisticsData | null) {
return axios.post<never, BaseRespData<never>>(
'factory/podJomallOrderUs/confirmOrders',
{
......
......@@ -126,6 +126,12 @@ const router = createRouter({
title: '物流方式',
},
component: () => import('@/views/logistics/logisticsMethod.vue'),
},{
path: '/logistics/logisticsCompany',
meta: {
title: '物流公司',
},
component: () => import('@/views/logistics/logisticsCompany.vue'),
},
{
path: '/logistics/shippingAddress',
......
......@@ -130,6 +130,10 @@ const menu: MenuItem[] = [
label: '物流',
children: [
{
index: '/logistics/logisticsCompany',
id: 6,
label: '物流公司',
},{
index: '/logistics/logisticsMethod',
id: 1,
label: '物流方式',
......
......@@ -79,6 +79,7 @@ export interface ProductList {
passNum?: number
notPassNum?: number
payAmount?: number
status?: number
weight?: number | null
diyId?: string
endProductId?: string
......
......@@ -2,19 +2,19 @@
<div class="user-page flex-column card h-100 overflow-hidden">
<div class="header-filter-form">
<SearchForm
v-model="searchForm"
:config="searchConfig"
@search="search"
@add="addDialog"
@delete="deleteFn"
v-model="searchForm"
></SearchForm>
</div>
<div class="user-content flex-1 flex-column overflow-hidden">
<div class="user-list flex-1 overflow-hidden" v-loading="loading">
<div v-loading="loading" class="user-list flex-1 overflow-hidden">
<CustomizeTable
v-model="tableData"
:config="tableConfig"
@getCheckboxRecords="handleCheckboxRecords"
@get-checkbox-records="handleCheckboxRecords"
></CustomizeTable>
</div>
<ElPagination
......@@ -32,16 +32,16 @@
</div>
<LogDialog
:title="editForm.id ? '编辑物流方式' : '新增物流方式'"
dialogWidth="1000px"
v-model="dialogVisible"
:title="editForm.id ? '编辑物流方式' : '新增物流方式'"
dialog-width="1000px"
@close="cancelFn"
>
<CustomizeForm
ref="editFormRef"
v-model="editForm"
:config="formConfig"
formItemWidth="100%"
form-item-width="100%"
>
</CustomizeForm>
......@@ -54,8 +54,8 @@
</template>
</LogDialog>
<LogDialog
title="操作日志"
v-model="logDialogVisible"
title="操作日志"
@close="logDialogVisible = false"
>
<div v-for="item in logList" :key="item.id" style="margin-bottom: 8px">
......
......@@ -715,6 +715,7 @@
v-model="productionClientValue"
clearable
placeholder="请选择生产端"
@change="handleProductionClientChange"
>
<ElOption
v-for="(item, index) in productionClient"
......@@ -725,18 +726,15 @@
</ElSelect>
</div>
<el-table
@selection-change="selectionChange"
v-if="productionClientValue==='JOMALL'"
height="400px"
class="production-client-table"
:data="confirmData"
border
highlight-current-row
@current-change="currentChange"
>
<el-table-column
label=""
width="60"
align="center"
type="selection"
></el-table-column>
<el-table-column
label="序号"
width="60"
align="center"
......@@ -788,7 +786,7 @@
<LogList :log-list="logList" />
</el-dialog>
<FastProduction
v-model:detailVisible="detailVisible"
v-model:detail-visible="detailVisible"
:current-status="status"
:detail-data="detailData"
:fast-key="fastKey"
......@@ -867,8 +865,7 @@ import {
toBeConfirmedApi,
loadWarehouseListApi,
getLogisticsCalculation,
LogisticsData,
refreshMaterialApi,
refreshMaterialApi, LogisticsData,
} from '@/api/podUsOrder'
import TableView from '@/components/TableView.vue'
import {
......@@ -897,7 +894,7 @@ import dayjs from 'dayjs'
declare global {
interface Window {
ActiveXObject: {
new (type: string): XMLHttpRequest
new(type: string): XMLHttpRequest
}
VBS_BinaryToArray: {
(data: unknown): { toArray(): number[] }
......@@ -1142,40 +1139,53 @@ const {
}
},
})
const currentChange = (row: LogisticsData) => {
if (row) {
confirmSelectionData.value = [row]
}
}
const handleProductionClientChange = async (v: string) => {
if (v !== 'RIIN') {
if (confirmRowData.value) {
const { data } = await getLogisticsCalculation(confirmRowData.value?.id)
confirmData.value = data
}
}
}
const confirm = async (row: ProductList) => {
confirmDialogShow.value = true
productionClientValue.value = ''
confirmRowData.value = row
confirmData.value = []
confirmSelectionData.value = []
const { data } = await getLogisticsCalculation(row.id)
confirmData.value = data
}
const selectionChange = (data: LogisticsData[]) => {
confirmSelectionData.value = data
}
const handleConfirm = async () => {
if (!productionClientValue.value) {
return ElMessage.warning('请选择生产端')
}
if (productionClientValue.value !== 'RIIN') {
if (confirmSelectionData.value.length !== 1) {
return ElMessage.warning('请选择一条物流方式')
}
if (confirmSelectionData.value.some((el) => !el.status)) {
return ElMessage.warning('请选择状态为成功的物流方式')
}
}
const id = confirmRowData.value?.id
const res = await confirmOrderApi(
[Number(id)],
productionClientValue.value,
'customize',
confirmSelectionData.value[0],
confirmSelectionData.value[0]||null,
)
if (res.code !== 200) return
ElMessage.success('操作成功')
confirmDialogShow.value = false
search()
loadTabData()
await loadTabData()
}
const copy = (text: string) => {
navigator.clipboard.writeText(text)
......@@ -1925,4 +1935,18 @@ onMounted(() => {
.factory-sub-order-number {
font-size: 12px;
}
.production-client-table {
::v-deep(.current-row>td.el-table__cell) {
background-color: green;
color: white;
& > td.el-table__cell {
color: white !important;
background-color: green;
}
}
}
</style>
......@@ -358,7 +358,6 @@ getWarehouse()
::v-deep(.el-tabs) {
height: 100%;
display: flex;
flex-direction: column;
.el-tabs__content {
flex: 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment