核价器+列表平台搜素+仪表盘数据
Some checks failed
CI / build (18.x) (push) Failing after 16m49s
CI / build (20.x) (push) Failing after 45m25s
CI / deploy-preview (push) Has been skipped
CI / lint (push) Failing after 43m26s
CI / test (push) Successful in 49m50s
CI / security (push) Successful in 36m55s
Some checks failed
CI / build (18.x) (push) Failing after 16m49s
CI / build (20.x) (push) Failing after 45m25s
CI / deploy-preview (push) Has been skipped
CI / lint (push) Failing after 43m26s
CI / test (push) Successful in 49m50s
CI / security (push) Successful in 36m55s
This commit is contained in:
parent
520712bfab
commit
62e3781ecf
@ -45,8 +45,10 @@ export const fetchEmployeeStats = async () => {
|
||||
*/
|
||||
export const fetchStoreInfo = async (params = {}) => {
|
||||
const response = await request.get(`${ADMIN_BASE}/store-info`, { params })
|
||||
const data = response?.data
|
||||
return (data?.stores ?? []).map(item => ({
|
||||
const data = response
|
||||
console.log(data.data);
|
||||
|
||||
return (data?.data ?? []).map(item => ({
|
||||
store_name: item.store_name ?? '-',
|
||||
store_type: item.store_type ?? '-',
|
||||
sale_count: item.sale_count ?? 0,
|
||||
|
||||
@ -33,6 +33,7 @@ const normalizeListResponse = (payload) => {
|
||||
* @param {string} [params.status] - 出库单状态
|
||||
* @param {string} [params.warehouse_id] - 仓库ID
|
||||
* @param {string} [params.customer_id] - 平台ID
|
||||
* @param {string} [params.shop_type] - 平台类型 1拼多多 2孔夫子 5闲鱼
|
||||
* @param {string} [params.sales_order_id] - 关联销售订单ID
|
||||
* @param {string} [params.start_date] - 开始日期
|
||||
* @param {string} [params.end_date] - 结束日期
|
||||
@ -42,12 +43,13 @@ const normalizeListResponse = (payload) => {
|
||||
* @param {string} [params.page_size] - 每页条数
|
||||
* @returns {Promise<{ list: Array, total: number }>} 标准化后的出库单列表
|
||||
*/
|
||||
export const fetchOutboundList = async ({ out_no, status, warehouse_id, customer_id, sales_order_id, start_date, end_date, association_order_no, logistics_no, page, page_size }) => {
|
||||
export const fetchOutboundList = async ({ out_no, status, warehouse_id, customer_id, shop_type, sales_order_id, start_date, end_date, association_order_no, logistics_no, page, page_size }) => {
|
||||
const params = {
|
||||
out_no: out_no || undefined,
|
||||
status: status || undefined,
|
||||
warehouse_id: warehouse_id || undefined,
|
||||
customer_id: customer_id || undefined,
|
||||
shop_type: shop_type || undefined,
|
||||
sales_order_id: sales_order_id || undefined,
|
||||
start_date: start_date || undefined,
|
||||
end_date: end_date || undefined,
|
||||
|
||||
@ -33,11 +33,11 @@ const normalizeListResponse = (payload) => {
|
||||
* @param {string} [params.logistics_no] - 快递单号
|
||||
* @returns {Promise<{ list: Array, total: number }>} 标准化后的销售订单列表
|
||||
*/
|
||||
export const fetchSalesOrderList = async ({ keyword, status, customer_id, warehouse_id, page, pageSize, sort_by, sort_order, association_order_no, logistics_no }) => {
|
||||
export const fetchSalesOrderList = async ({ keyword, status, shop_type, warehouse_id, page, pageSize, sort_by, sort_order, association_order_no, logistics_no }) => {
|
||||
const params = {
|
||||
so_no: keyword || undefined,
|
||||
status,
|
||||
customer_id,
|
||||
shop_type: shop_type || undefined,
|
||||
warehouse_id,
|
||||
page,
|
||||
page_size: pageSize,
|
||||
@ -143,10 +143,11 @@ export const returnSalesOrderItem = async (data) => {
|
||||
* @param {string} [params.logistics_no] - 快递单号
|
||||
* @returns {Promise<{list: Array, total: number}>}
|
||||
*/
|
||||
export const fetchSalesOrderDetails = async ({ page, pageSize, association_order_no, logistics_no }) => {
|
||||
export const fetchSalesOrderDetails = async ({ page, pageSize, shop_type, association_order_no, logistics_no }) => {
|
||||
const params = {
|
||||
page,
|
||||
page_size: pageSize,
|
||||
shop_type: shop_type || undefined,
|
||||
association_order_no: association_order_no || undefined,
|
||||
logistics_no: logistics_no || undefined
|
||||
}
|
||||
|
||||
@ -38,11 +38,11 @@ const normalizeListResponse = (payload) => {
|
||||
* @param {number} [params.pageSize] - 每页条数
|
||||
* @returns {Promise<{ list: Array, total: number }>} 标准化后的发货单列表
|
||||
*/
|
||||
export const fetchShippingOrderList = async ({ check_no, status, customer_id, warehouse_id, sales_order_id, wave_task_id, association_order_no, logistics_no, page, pageSize }) => {
|
||||
export const fetchShippingOrderList = async ({ check_no, status, shop_type, warehouse_id, sales_order_id, wave_task_id, association_order_no, logistics_no, page, pageSize }) => {
|
||||
const params = {
|
||||
check_no: check_no || undefined,
|
||||
status,
|
||||
customer_id,
|
||||
shop_type: shop_type || undefined,
|
||||
warehouse_id,
|
||||
sales_order_id,
|
||||
wave_task_id,
|
||||
@ -62,6 +62,7 @@ export const fetchShippingOrderList = async ({ check_no, status, customer_id, wa
|
||||
* @param {number} [params.page] - 页码,默认1
|
||||
* @param {number} [params.pageSize] - 每页条数,默认20,最大100
|
||||
* @param {number} [params.customer_id] - 按平台ID筛选
|
||||
* @param {number} [params.shop_type] - 按平台类型筛选(1=拼多多 2=孔夫子 5=闲鱼)
|
||||
* @param {string} [params.shipping_no] - 按发货单号模糊搜索
|
||||
* @param {number} [params.start_date] - 创建时间起始(时间戳秒)
|
||||
* @param {number} [params.end_date] - 创建时间截止(时间戳秒)
|
||||
@ -69,12 +70,13 @@ export const fetchShippingOrderList = async ({ check_no, status, customer_id, wa
|
||||
* @param {string} [params.logistics_no] - 快递单号模糊搜索
|
||||
* @returns {Promise<{ list: Array, total: number }>} 标准化后的发货单列表
|
||||
*/
|
||||
export const fetchShippingOrderDetailList = async ({ status, page, pageSize, customer_id, shipping_no, start_date, end_date, association_order_no, logistics_no }) => {
|
||||
export const fetchShippingOrderDetailList = async ({ status, page, pageSize, customer_id, shop_type, shipping_no, start_date, end_date, association_order_no, logistics_no }) => {
|
||||
const params = {
|
||||
status,
|
||||
page,
|
||||
page_size: pageSize,
|
||||
customer_id,
|
||||
shop_type,
|
||||
shipping_no: shipping_no || undefined,
|
||||
start_date,
|
||||
end_date,
|
||||
|
||||
@ -14,8 +14,8 @@ const USE_MOCK = false // 设置为true使用模拟数据
|
||||
// 创建axios实例
|
||||
const request = axios.create({
|
||||
// baseURL: import.meta.env.DEV ? '/api' : (import.meta.env.VITE_API_BASE || 'http://127.0.0.1:9090/api'),
|
||||
// baseURL: import.meta.env.DEV ? '/api' : (import.meta.env.VITE_API_BASE || 'http://192.168.101.213:9090/api'),
|
||||
baseURL: import.meta.env.DEV ? '/api' : (import.meta.env.VITE_API_BASE || 'https://psi.api.buzhiyushu.cn/api'),
|
||||
baseURL: import.meta.env.DEV ? '/api' : (import.meta.env.VITE_API_BASE || 'http://192.168.101.213:9090/api'),
|
||||
// baseURL: import.meta.env.DEV ? '/api' : (import.meta.env.VITE_API_BASE || 'https://psi.api.buzhiyushu.cn/api'),
|
||||
timeout: 10000,
|
||||
// 用 JSONbig 替代默认 JSON.parse,保留大整数精度
|
||||
transformResponse: [
|
||||
|
||||
@ -130,7 +130,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="价格" min-width="100" align="right">
|
||||
<template #default="{ row }">
|
||||
<span class="price">{{ row.price ? `¥${(row.price / 100).toFixed(2)}` : '-' }}</span>
|
||||
<span class="price">{{ row.sale_price ? `¥${(row.sale_price / 100).toFixed(2)}` : '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" min-width="150" align="center">
|
||||
@ -361,6 +361,8 @@ const loadStoreInfo = async () => {
|
||||
params.store_name = storeName.value.trim()
|
||||
}
|
||||
storeInfo.value = await fetchStoreInfo(params)
|
||||
console.log(storeInfo.value);
|
||||
|
||||
} catch (error) {
|
||||
console.error('加载店铺信息失败:', error)
|
||||
storeInfo.value = []
|
||||
|
||||
@ -415,7 +415,10 @@ export default {
|
||||
|
||||
/** 通过自定义协议启动核价器 exe */
|
||||
const handleOpenExe = () => {
|
||||
window.location.href = 'kfzprice://launch'
|
||||
const url = dir.value
|
||||
? 'kfzprice://launch?dir=' + dir.value
|
||||
: 'kfzprice://launch'
|
||||
window.location.href = url
|
||||
ElMessage.success({ message: '启动指令已发送', duration: 1000, customClass: 'scan-success-message' })
|
||||
}
|
||||
|
||||
|
||||
@ -1,13 +1,24 @@
|
||||
<template>
|
||||
<div style="margin-bottom: 16px">
|
||||
<el-steps :active="1" align-center>
|
||||
<el-step title="销售订单" />
|
||||
<el-step title="出库管理" />
|
||||
<el-step title="发货单" />
|
||||
<div class="step-bar-wrapper">
|
||||
<el-steps :active="2" align-center finish-status="success" process-status="process">
|
||||
<el-step>
|
||||
<template #title>
|
||||
<span class="step-link" @click="$router.push('/sales-order')">销售订单</span>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="生成出库单" />
|
||||
<el-step>
|
||||
<template #title>
|
||||
<span class="step-link" @click="$router.push('/outbound')">出库管理</span>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="生成发货单" />
|
||||
<el-step>
|
||||
<template #title>
|
||||
<span class="step-link" @click="$router.push('/shipping-order')">发货单</span>
|
||||
</template>
|
||||
</el-step>
|
||||
</el-steps>
|
||||
<div style="text-align: right; margin-top: 12px">
|
||||
<el-button type="primary" @click="$router.push('/shipping-order')">下一步</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-card class="outbound-manager">
|
||||
<template #header>
|
||||
@ -28,8 +39,8 @@
|
||||
<el-select v-model="searchParams.warehouse_id" placeholder="仓库" clearable style="width: 160px">
|
||||
<el-option v-for="item in warehouseOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
<el-select v-model="searchParams.customer_id" placeholder="平台" clearable filterable style="width: 180px">
|
||||
<el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
<el-select v-model="searchParams.shop_type" placeholder="平台" clearable style="width: 180px">
|
||||
<el-option v-for="item in shopTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
<el-input v-model="searchParams.association_order_no" placeholder="第三方订单编号" clearable style="width: 200px"
|
||||
@keyup.enter="handleSearch" />
|
||||
@ -250,14 +261,14 @@ export default defineComponent({
|
||||
keyword: string
|
||||
status: number | null
|
||||
warehouse_id: number | null
|
||||
customer_id: number | null
|
||||
shop_type: number | null
|
||||
association_order_no: string
|
||||
logistics_no: string
|
||||
}>({
|
||||
keyword: '',
|
||||
status: null,
|
||||
warehouse_id: null,
|
||||
customer_id: null,
|
||||
shop_type: null,
|
||||
association_order_no: '',
|
||||
logistics_no: ''
|
||||
})
|
||||
@ -291,6 +302,11 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
// 下拉选项
|
||||
const shopTypeOptions = ref([
|
||||
{ label: '闲鱼', value: 5 },
|
||||
{ label: '孔夫子', value: 2 },
|
||||
{ label: '拼多多', value: 1 }
|
||||
])
|
||||
const warehouseOptions = ref<any[]>([])
|
||||
const customerOptions = ref<any[]>([])
|
||||
const locationOptions = ref<any[]>([])
|
||||
@ -374,7 +390,7 @@ export default defineComponent({
|
||||
out_no: searchParams.keyword || undefined,
|
||||
status: searchParams.status !== null ? String(searchParams.status) : undefined,
|
||||
warehouse_id: searchParams.warehouse_id !== null ? String(searchParams.warehouse_id) : undefined,
|
||||
customer_id: searchParams.customer_id !== null ? String(searchParams.customer_id) : undefined,
|
||||
shop_type: searchParams.shop_type !== null ? searchParams.shop_type : undefined,
|
||||
association_order_no: searchParams.association_order_no || undefined,
|
||||
logistics_no: searchParams.logistics_no || undefined,
|
||||
page: String(pagination.current),
|
||||
@ -500,7 +516,7 @@ export default defineComponent({
|
||||
searchParams.keyword = ''
|
||||
searchParams.status = null
|
||||
searchParams.warehouse_id = null
|
||||
searchParams.customer_id = null
|
||||
searchParams.shop_type = null
|
||||
searchParams.association_order_no = ''
|
||||
searchParams.logistics_no = ''
|
||||
pagination.current = 1
|
||||
@ -630,6 +646,7 @@ export default defineComponent({
|
||||
formData,
|
||||
formRules,
|
||||
warehouseOptions,
|
||||
shopTypeOptions,
|
||||
customerOptions,
|
||||
locationOptions,
|
||||
salesOrderOptions,
|
||||
@ -682,6 +699,26 @@ export default defineComponent({
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
/* 步骤条 */
|
||||
.step-bar-wrapper {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
padding: 20px 40px;
|
||||
margin-bottom: 16px;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
|
||||
|
||||
.step-link {
|
||||
color: #409eff;
|
||||
cursor: pointer;
|
||||
transition: color 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: #66b1ff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.outbound-manager {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@ -19,8 +19,10 @@
|
||||
:remote-method="loadWarehouses" :loading="warehouseLoading" style="width: 160px">
|
||||
<el-option v-for="item in warehouseOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
<el-select v-model="searchParams.customer_id" placeholder="平台" clearable filterable style="width: 180px">
|
||||
<el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
<el-select v-model="searchParams.shop_type" placeholder="平台" clearable style="width: 180px">
|
||||
<el-option label="闲鱼" :value="5" />
|
||||
<el-option label="孔夫子" :value="2" />
|
||||
<el-option label="拼多多" :value="1" />
|
||||
</el-select>
|
||||
<el-input v-model="searchParams.association_order_no" placeholder="第三方订单编号" clearable style="width: 200px"
|
||||
@keyup.enter="handleSearch" />
|
||||
@ -50,7 +52,7 @@
|
||||
<template #default="{ row }">{{ row.items?.[0]?.product_code || '-' }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="平台" min-width="120" align="center">
|
||||
<template #default="{ row }">{{ row.sales_person || '-' }}</template>
|
||||
<template #default="{ row }">{{ row.sales_person || '-' }}({{ row.shop_type_text || '-' }})</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单价" width="90" align="center">
|
||||
<template #default="{ row }">
|
||||
@ -254,14 +256,14 @@ export default defineComponent({
|
||||
keyword: string
|
||||
status: number | null
|
||||
warehouse_id: number | null
|
||||
customer_id: number | null
|
||||
shop_type: number | null
|
||||
association_order_no: string
|
||||
logistics_no: string
|
||||
}>({
|
||||
keyword: '',
|
||||
status: null,
|
||||
warehouse_id: null,
|
||||
customer_id: null,
|
||||
shop_type: null,
|
||||
association_order_no: '',
|
||||
logistics_no: ''
|
||||
})
|
||||
@ -297,7 +299,6 @@ export default defineComponent({
|
||||
// 下拉选项
|
||||
const warehouseOptions = ref<any[]>([])
|
||||
const warehouseLoading = ref<boolean>(false)
|
||||
const customerOptions = ref<any[]>([])
|
||||
|
||||
// ID→名称映射
|
||||
const warehouseMap = ref<Record<string, string>>({})
|
||||
@ -376,6 +377,7 @@ export default defineComponent({
|
||||
const res = await fetchSalesOrderDetails({
|
||||
page: pagination.current,
|
||||
pageSize: pagination.pageSize,
|
||||
shop_type: searchParams.shop_type !== null ? searchParams.shop_type : undefined,
|
||||
association_order_no: searchParams.association_order_no,
|
||||
logistics_no: searchParams.logistics_no
|
||||
})
|
||||
@ -400,7 +402,7 @@ export default defineComponent({
|
||||
searchParams.keyword = ''
|
||||
searchParams.status = null
|
||||
searchParams.warehouse_id = null
|
||||
searchParams.customer_id = null
|
||||
searchParams.shop_type = null
|
||||
searchParams.association_order_no = ''
|
||||
searchParams.logistics_no = ''
|
||||
pagination.current = 1
|
||||
@ -586,7 +588,6 @@ export default defineComponent({
|
||||
warehouseOptions,
|
||||
warehouseLoading,
|
||||
loadWarehouses,
|
||||
customerOptions,
|
||||
warehouseMap,
|
||||
customerMap,
|
||||
totalAmountYuan,
|
||||
|
||||
@ -1,13 +1,24 @@
|
||||
<template>
|
||||
<div style="margin-bottom: 16px">
|
||||
<el-steps :active="0" align-center>
|
||||
<el-step title="销售订单" />
|
||||
<el-step title="出库管理" />
|
||||
<el-step title="发货单" />
|
||||
<div class="step-bar-wrapper">
|
||||
<el-steps :active="0" align-center finish-status="success" process-status="process">
|
||||
<el-step>
|
||||
<template #title>
|
||||
<span class="step-link" @click="$router.push('/sales-order')">销售订单</span>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="生成出库单" />
|
||||
<el-step>
|
||||
<template #title>
|
||||
<span class="step-link" @click="$router.push('/outbound')">出库管理</span>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="生成发货单" />
|
||||
<el-step>
|
||||
<template #title>
|
||||
<span class="step-link" @click="$router.push('/shipping-order')">发货单</span>
|
||||
</template>
|
||||
</el-step>
|
||||
</el-steps>
|
||||
<div style="text-align: right; margin-top: 12px">
|
||||
<el-button type="primary" @click="$router.push('/outbound')">下一步</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-card class="sales-order-manager">
|
||||
<template #header>
|
||||
@ -27,8 +38,10 @@
|
||||
<el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
<LocationSelect v-model="searchParams.warehouse_id" style="width: 160px" />
|
||||
<el-select v-model="searchParams.customer_id" placeholder="平台" clearable filterable style="width: 180px">
|
||||
<el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
<el-select v-model="searchParams.shop_type" placeholder="平台" clearable style="width: 180px">
|
||||
<el-option label="闲鱼" :value="5" />
|
||||
<el-option label="孔夫子" :value="2" />
|
||||
<el-option label="拼多多" :value="1" />
|
||||
</el-select>
|
||||
<el-input v-model="searchParams.association_order_no" placeholder="第三方订单编号" clearable style="width: 200px"
|
||||
@keyup.enter="handleSearch" />
|
||||
@ -332,14 +345,14 @@ export default defineComponent({
|
||||
keyword: string
|
||||
status: number | null
|
||||
warehouse_id: number | null
|
||||
customer_id: number | null
|
||||
shop_type: number | null
|
||||
association_order_no: string
|
||||
logistics_no: string
|
||||
}>({
|
||||
keyword: '',
|
||||
status: null,
|
||||
warehouse_id: null,
|
||||
customer_id: null,
|
||||
shop_type: null,
|
||||
association_order_no: '',
|
||||
logistics_no: ''
|
||||
})
|
||||
@ -454,7 +467,7 @@ export default defineComponent({
|
||||
keyword: searchParams.keyword,
|
||||
status: searchParams.status || undefined,
|
||||
warehouse_id: searchParams.warehouse_id || undefined,
|
||||
customer_id: searchParams.customer_id || undefined,
|
||||
shop_type: searchParams.shop_type !== null ? searchParams.shop_type : undefined,
|
||||
association_order_no: searchParams.association_order_no || undefined,
|
||||
logistics_no: searchParams.logistics_no || undefined,
|
||||
page: pagination.current,
|
||||
@ -483,7 +496,7 @@ export default defineComponent({
|
||||
searchParams.keyword = ''
|
||||
searchParams.status = null
|
||||
searchParams.warehouse_id = null
|
||||
searchParams.customer_id = null
|
||||
searchParams.shop_type = null
|
||||
searchParams.association_order_no = ''
|
||||
searchParams.logistics_no = ''
|
||||
pagination.current = 1
|
||||
@ -733,6 +746,26 @@ export default defineComponent({
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
/* 步骤条 */
|
||||
.step-bar-wrapper {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
padding: 20px 40px;
|
||||
margin-bottom: 16px;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
|
||||
|
||||
.step-link {
|
||||
color: #409eff;
|
||||
cursor: pointer;
|
||||
transition: color 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: #66b1ff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sales-order-manager {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@ -18,8 +18,10 @@
|
||||
<el-select v-model="searchParams.status" placeholder="状态" clearable style="width: 130px">
|
||||
<el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
<el-select v-model="searchParams.customer_id" placeholder="平台" clearable filterable style="width: 180px">
|
||||
<el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
<el-select v-model="searchParams.shop_type" placeholder="平台" clearable style="width: 180px">
|
||||
<el-option label="闲鱼" :value="5" />
|
||||
<el-option label="孔夫子" :value="2" />
|
||||
<el-option label="拼多多" :value="1" />
|
||||
</el-select>
|
||||
<el-input v-model="searchParams.association_order_no" placeholder="第三方订单编号" clearable style="width: 220px"
|
||||
@keyup.enter="handleSearch">
|
||||
@ -320,13 +322,13 @@ export default defineComponent({
|
||||
const searchParams = reactive<{
|
||||
keyword: string
|
||||
status: number | null
|
||||
customer_id: number | null
|
||||
shop_type: number | null
|
||||
association_order_no: string
|
||||
logistics_no: string
|
||||
}>({
|
||||
keyword: '',
|
||||
status: null,
|
||||
customer_id: null,
|
||||
shop_type: null,
|
||||
association_order_no: '',
|
||||
logistics_no: ''
|
||||
})
|
||||
@ -338,7 +340,6 @@ export default defineComponent({
|
||||
})
|
||||
|
||||
// 下拉选项
|
||||
const customerOptions = ref<any[]>([])
|
||||
|
||||
// 详情弹窗
|
||||
const detailVisible = ref<boolean>(false)
|
||||
@ -384,7 +385,7 @@ export default defineComponent({
|
||||
const res = await fetchShippingOrderDetailList({
|
||||
shipping_no: searchParams.keyword || undefined,
|
||||
status: searchParams.status || undefined,
|
||||
customer_id: searchParams.customer_id || undefined,
|
||||
shop_type: searchParams.shop_type !== null ? searchParams.shop_type : undefined,
|
||||
association_order_no: searchParams.association_order_no || undefined,
|
||||
logistics_no: searchParams.logistics_no || undefined,
|
||||
page: pagination.current,
|
||||
@ -409,7 +410,7 @@ export default defineComponent({
|
||||
const resetSearch = (): void => {
|
||||
searchParams.keyword = ''
|
||||
searchParams.status = null
|
||||
searchParams.customer_id = null
|
||||
searchParams.shop_type = null
|
||||
searchParams.association_order_no = ''
|
||||
searchParams.logistics_no = ''
|
||||
pagination.current = 1
|
||||
@ -625,7 +626,6 @@ export default defineComponent({
|
||||
statusOptions,
|
||||
searchParams,
|
||||
pagination,
|
||||
customerOptions,
|
||||
detailVisible,
|
||||
detailData,
|
||||
detailCache,
|
||||
|
||||
@ -1,9 +1,28 @@
|
||||
<template>
|
||||
<el-steps :active="2" align-center style="margin-bottom: 16px">
|
||||
<el-step title="销售订单" />
|
||||
<el-step title="出库管理" />
|
||||
<el-step title="发货单" />
|
||||
</el-steps>
|
||||
<div class="step-bar-wrapper">
|
||||
<el-steps :active="4" align-center finish-status="success" process-status="process">
|
||||
<el-step>
|
||||
<template #title>
|
||||
<span class="step-link" @click="$router.push('/sales-order')">销售订单</span>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="生成出库单" />
|
||||
<el-step>
|
||||
<template #title>
|
||||
<span class="step-link" @click="$router.push('/outbound')">出库管理</span>
|
||||
</template>
|
||||
</el-step>
|
||||
<el-step title="生成发货单" />
|
||||
<el-step>
|
||||
<template #title>
|
||||
<div class="step-title-wrap">
|
||||
<span class="step-link" @click="$router.push('/shipping-order')">发货单</span>
|
||||
<span class="step-tip-inline">直接扫码书后条形码,按提示操作即可</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
<div class="shipping-order-container">
|
||||
<!-- 左侧卡片:商品详情 -->
|
||||
<el-card class="left-card" shadow="never">
|
||||
@ -136,8 +155,10 @@
|
||||
<el-select v-model="searchParams.warehouse_id" placeholder="仓库" clearable style="width: 140px">
|
||||
<el-option v-for="item in warehouseOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
<el-select v-model="searchParams.customer_id" placeholder="平台" clearable filterable style="width: 160px">
|
||||
<el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
<el-select v-model="searchParams.shop_type" placeholder="平台" clearable style="width: 160px">
|
||||
<el-option label="闲鱼" :value="5" />
|
||||
<el-option label="孔夫子" :value="2" />
|
||||
<el-option label="拼多多" :value="1" />
|
||||
</el-select>
|
||||
<el-input v-model="searchParams.association_order_no" placeholder="第三方订单编号" clearable style="width: 200px"
|
||||
@keyup.enter="handleSearch" />
|
||||
@ -456,14 +477,14 @@ export default defineComponent({
|
||||
keyword: string
|
||||
status: number | null
|
||||
warehouse_id: number | null
|
||||
customer_id: number | null
|
||||
shop_type: number | null
|
||||
association_order_no: string
|
||||
logistics_no: string
|
||||
}>({
|
||||
keyword: '',
|
||||
status: 1, // 默认选中"待发货"
|
||||
warehouse_id: null,
|
||||
customer_id: null,
|
||||
shop_type: null,
|
||||
association_order_no: '',
|
||||
logistics_no: ''
|
||||
})
|
||||
@ -1094,7 +1115,7 @@ export default defineComponent({
|
||||
check_no: searchParams.keyword,
|
||||
status: searchParams.status || undefined,
|
||||
warehouse_id: searchParams.warehouse_id || undefined,
|
||||
customer_id: searchParams.customer_id || undefined,
|
||||
shop_type: searchParams.shop_type !== null ? searchParams.shop_type : undefined,
|
||||
association_order_no: searchParams.association_order_no || undefined,
|
||||
logistics_no: searchParams.logistics_no || undefined,
|
||||
page: pagination.current,
|
||||
@ -1121,7 +1142,7 @@ export default defineComponent({
|
||||
searchParams.keyword = ''
|
||||
searchParams.status = 1
|
||||
searchParams.warehouse_id = null
|
||||
searchParams.customer_id = null
|
||||
searchParams.shop_type = null
|
||||
searchParams.association_order_no = ''
|
||||
searchParams.logistics_no = ''
|
||||
pagination.current = 1
|
||||
@ -1216,6 +1237,39 @@ export default defineComponent({
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
/* 步骤条 */
|
||||
.step-bar-wrapper {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
padding: 20px 40px;
|
||||
margin-bottom: 16px;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
|
||||
|
||||
.step-link {
|
||||
color: #409eff;
|
||||
cursor: pointer;
|
||||
transition: color 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: #66b1ff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.step-title-wrap {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.step-tip-inline {
|
||||
color: #909399;
|
||||
font-size: 12px;
|
||||
margin-top: 2px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.shipping-order-container {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
|
||||
@ -246,8 +246,8 @@ module.exports = defineConfig({
|
||||
proxy: {
|
||||
'/api': {
|
||||
// target: 'http://127.0.0.1:9090',
|
||||
// target: 'http://192.168.101.213:9090',
|
||||
target: 'https://psi.api.buzhiyushu.cn',
|
||||
target: 'http://192.168.101.213:9090',
|
||||
// target: 'https://psi.api.buzhiyushu.cn',
|
||||
// target: 'https://psi.api.buzhiyushu.cn',
|
||||
changeOrigin: true
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user