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',
......@@ -218,7 +224,7 @@ const router = createRouter({
},
component: () => import('@/views/logistics/logisticsQuotation.vue'),
},
{
path: '/logistics/declarationRule',
meta: {
......
......@@ -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
......
<script setup lang="ts">
import { nextTick, ref } from 'vue'
import SplitDiv from '@/components/splitDiv/splitDiv.vue'
import {
getLogisticsLog,
IForm,
ILogisticsCompany, ILogisticsCompanyData, ILogisticsList,
logisticsCompany,
logisticsCompanyAdd, logisticsCompanyAllCodelist, logisticsCompanyDelete,
logisticsCompanyUpdate,
} from '@/api/logistics.ts'
import LogDialog from '@/views/logistics/components/LogDialog.tsx'
interface LogList {
id?: number
createTime?: string
description?: string
}
const otherFields = ref<string[]>([])
const logDialogVisible = ref<boolean>(false)
const searchForm = ref({
name: '',
code: '',
})
const selections = ref<ILogisticsCompany[]>([])
const formRef = ref()
const logList = ref<LogList[]>([])
const logisticsList = ref<ILogisticsList[]>([])
const form = ref<IForm>({
name: '',
code: '',
contact: '',
phone: '',
siteUrl: '',
address: '',
apiData: {},
})
const createData = ref({
title: '',
show: false,
isEdit: false,
form: {
locationName: '',
locationCode: '',
pickingOrder: '',
warehouseName: '',
warehouseId: '',
remark: '',
},
})
const rules = {
code: [
{ required: true, message: '请选择物流公司编码', trigger: 'change' },
],
name: [
{ required: true, message: '请输入名称', trigger: 'blur' },
],
contact: [
{ required: true, message: '请输入联系人', trigger: 'blur' },
],
phone: [
{ required: true, message: '请输入电话/手机', trigger: 'blur' },
],
siteUrl: [
{ required: true, message: '请输入网址', trigger: 'blur' },
],
address: [
{ required: true, message: '请输入地址', trigger: 'blur' },
],
}
const leftData = ref<ILogisticsCompany[]>([])
const pagination = ref<ILogisticsCompanyData>({
pageSize: 50,
currentPage: 1,
total: 0,
})
async function getData() {
const res = await logisticsCompany({
...pagination.value,
...searchForm.value,
})
console.log(res)
leftData.value = res.data.records
pagination.value.total = res.data.total
}
const handleSelectionChange = (data: ILogisticsCompany[]) => {
selections.value = data
}
const handleSizeChange = (pageSize: number) => {
pagination.value.pageSize = pageSize
getData()
}
const handleCurrentChange = (currentPage: number) => {
pagination.value.currentPage = currentPage
getData()
}
const handleConfirm = async () => {
await formRef.value?.validate()
if (!createData.value.isEdit) {
await logisticsCompanyAdd(form.value)
} else {
await logisticsCompanyUpdate(form.value)
}
createData.value.show = false
ElMessage.success('操作成功')
await getData()
}
const handleShowLog = async (row: ILogisticsCompany) => {
const { data } = await getLogisticsLog({
logType: 'logistics_company',
relaId: row.id as number,
})
logDialogVisible.value = true
logList.value = data
}
const handleBatchDelete = async (row: ILogisticsCompany | null) => {
if (!row && !selections.value.length) {
return ElMessage.warning('请选择要删除的数据')
}
await ElMessageBox.confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
const str = row && row.id ? row.id?.toString() : selections.value.map((el) => el.id).join(',')
await logisticsCompanyDelete(str)
ElMessage.success('删除成功')
await getData()
}
const createWarehouse = () => {
createData.value.show = true
createData.value.isEdit = false
createData.value.title = '新增物流公司'
form.value = {
name: '',
code: '',
contact: '',
phone: '',
siteUrl: '',
address: '',
apiData: {},
}
otherFields.value = []
nextTick(() => {
formRef.value?.clearValidate()
})
}
const updateWarehouse = (item: IForm) => {
createData.value.show = true
createData.value.isEdit = true
otherFields.value = []
createData.value.title = '修改物流公司'
form.value = {
id: item.id,
name: item.name,
code: item.code,
contact: item.contact,
phone: item.phone,
siteUrl: item.siteUrl,
address: item.address,
apiData: item.apiData,
}
codeChange(item.code)
nextTick(() => {
formRef.value?.clearValidate()
})
}
const codeChange = (v: string) => {
const item = logisticsList.value.find(d => d.code === v)
if (item) {
otherFields.value = Object.keys(item.apiData || {})
}
}
const getLogisticsList = async () => {
const { data } = await logisticsCompanyAllCodelist()
logisticsList.value = data
}
getData()
getLogisticsList()
</script>
<template>
<split-div>
<template #top>
<el-card>
<el-form inline :model="searchForm">
<el-form-item label="名称">
<el-input
v-model="searchForm.name" style="width: 140px;" placeholder="请输入名称"
clearable></el-input>
</el-form-item>
<el-form-item label="编码">
<el-input
v-model="searchForm.code" style="width: 140px;" placeholder="请输入编码"
clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getData">查询</el-button>
<el-button type="success" @click="createWarehouse">新增</el-button>
<el-button type="danger" @click="handleBatchDelete(null)">删除</el-button>
</el-form-item>
</el-form>
</el-card>
</template>
<template #bottom>
<el-card style="height: 100%">
<div class="manage">
<div class="table-flex">
<div class="left-table">
<div class="table-container">
<el-table height="100%" :data="leftData" border @selection-change="handleSelectionChange">
<el-table-column type="selection" />
<el-table-column type="index" label="序号" width="60" />
<el-table-column
label="名称"
prop="name"
align="center"
show-overflow-tooltip>
</el-table-column>
<el-table-column
label="编码"
prop="code"
align="center"
show-overflow-tooltip>
</el-table-column>
<el-table-column
label="联系人"
prop="contact"
align="center"
show-overflow-tooltip>
</el-table-column>
<el-table-column
label="电话"
prop="phone"
align="center"
show-overflow-tooltip>
</el-table-column>
<el-table-column
label="网址"
prop="siteUrl"
align="center"
show-overflow-tooltip>
</el-table-column>
<el-table-column
label="地址"
prop="address"
align="center"
show-overflow-tooltip>
</el-table-column>
<el-table-column width="260" label="操作" align="center">
<template #default="{row}">
<el-button text type="primary" @click="updateWarehouse(row)">编辑</el-button>
<el-button text type="danger" @click="handleBatchDelete(row)">删除</el-button>
<el-button text type="info" @click="handleShowLog(row)">操作日志</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="pagination">
<el-pagination
v-model:current-page="pagination.currentPage"
v-model:page-size="pagination.pageSize"
:page-sizes="[50, 100, 150, 200]"
layout="total, sizes, prev, pager, next, jumper"
:total="pagination.total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
</div>
</div>
<LogDialog
v-model="logDialogVisible"
title="操作日志"
@close="logDialogVisible = false"
>
<div v-for="item in logList" :key="item.id" style="margin-bottom: 8px">
<span style="margin-right: 10px">{{ item.createTime }}</span>
<span>{{ item.description }}</span>
</div>
</LogDialog>
<el-dialog v-model="createData.show" :close-on-click-modal="false" width="700px" :title="createData.title">
<el-form v-if="createData.show" ref="formRef" label-width="110px" :rules="rules" :model="form">
<el-form-item label="物流公司编码" prop="code">
<el-select v-model="form.code" clearable filterable @change="codeChange">
<el-option
v-for="it in logisticsList" :key="it.code" :label="it.basicsName"
:value="it.code">
{{ it.code }}
<span style="font-size: 14px; color: #999; line-height: 24px">
({{ it.basicsName }})
</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-input v-model="form.name" clearable placeholder="请输入名称"></el-input>
</el-form-item>
<el-form-item label="联系人" prop="contact">
<el-input v-model="form.contact" clearable placeholder="请输入联系人"></el-input>
</el-form-item>
<el-form-item label="电话/手机" prop="phone">
<el-input v-model="form.phone" clearable placeholder="请输入电话/手机"></el-input>
</el-form-item>
<el-form-item label="网址" prop="siteUrl">
<el-input v-model="form.siteUrl" clearable placeholder="请输入网址"></el-input>
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" clearable placeholder="请输入地址"></el-input>
</el-form-item>
<el-form-item v-for="o in otherFields" :key="o" required :label="o" :prop="`apiData.${o}`">
<el-input v-model="form.apiData[o]" clearable :placeholder="`请输入${o}`"></el-input>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="createData.show=false">取消</el-button>
<el-button type="primary" @click="handleConfirm">确定</el-button>
</template>
</el-dialog>
</div>
</el-card>
</template>
</split-div>
</template>
<style scoped lang="scss">
.el-card {
::v-deep(.el-card__body) {
height: 100%;
}
}
.manage {
height: 100%;
display: flex;
flex-direction: column;
.header {
margin-bottom: 10px;
}
.table-flex {
flex: 1;
flex-shrink: 0;
overflow: hidden;
display: flex;
}
.right-table {
flex: 1;
margin-left: 10px;
flex-shrink: 0;
}
.left-table {
height: 100%;
display: flex;
width: 100%;
flex-direction: column;
.pagination {
display: flex;
margin-top: 10px;
justify-content: center;
}
.table-container {
flex: 1;
flex-shrink: 0;
overflow: hidden;
}
}
}
</style>
......@@ -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">
......
......@@ -286,7 +286,7 @@
</div>
<div class="goods-item-info-item">
<span class="goods-item-info-item-label"
>第三方生产单号:</span
>第三方生产单号:</span
>
<span
class="goods-item-info-item-value"
......@@ -342,19 +342,19 @@
<div class="goods-item-info-item">
<span class="goods-item-info-item-label">{{
status === 'TO_BE_CONFIRMED'
? '未生产数量:'
: status === 'EXCEPTION_ORDER'
? '数量:'
: '已生产数量:'
}}</span>
status === 'TO_BE_CONFIRMED'
? '未生产数量:'
: status === 'EXCEPTION_ORDER'
? '数量:'
: '已生产数量:'
}}</span>
<span class="goods-item-info-item-value">
{{
status === 'TO_BE_CONFIRMED'
? item.notPassNum
: status === 'EXCEPTION_ORDER'
? item.num
: item.passNum
? item.num
: item.passNum
}}
</span>
</div>
......@@ -633,7 +633,7 @@
<div class="grid-container">
<div class="grid-item" title="商品名称">
<span class="grid-item-value"
>{{ cardItem?.productName }}
>{{ cardItem?.productName }}
</span>
</div>
<div class="grid-item" title="未生产数量">
......@@ -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 (confirmSelectionData.value.length !== 1) {
return ElMessage.warning('请选择一条物流方式')
}
if (confirmSelectionData.value.some((el) => !el.status)) {
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