添加预订单
This commit is contained in:
parent
ea51d1a974
commit
f1c191d1a8
|
@ -0,0 +1,92 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 预订单表列表
|
||||
export function apiBeforehandOrderLists(params: any) {
|
||||
return request.get({ url: '/beforehand_order/beforehandorder/lists', params })
|
||||
}
|
||||
|
||||
// 添加预订单表
|
||||
export function apiBeforehandOrderAdd(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/add', params })
|
||||
}
|
||||
|
||||
// 编辑预订单表
|
||||
export function apiBeforehandOrderEdit(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/edit', params })
|
||||
}
|
||||
// 一键出库
|
||||
export function apiBeforehandOrderCreateOutboundOrder(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/createOutboundOrder', params })
|
||||
}
|
||||
|
||||
// 删除预订单表
|
||||
export function apiBeforehandOrderDelete(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/delete', params })
|
||||
}
|
||||
|
||||
// 预订单表详情
|
||||
export function apiBeforehandOrderDetail(params: any) {
|
||||
return request.get({ url: '/beforehand_order/beforehandorder/detail', params })
|
||||
}
|
||||
|
||||
// 入库列表
|
||||
export function apiBeforehandOrderWarehousingLists(params: any) {
|
||||
return request.get({ url: '/beforehand_order/beforehandorder/warehousing_lists', params })
|
||||
}
|
||||
// 出库列表
|
||||
export function apiBeforehandOrderOutboundLists(params: any) {
|
||||
return request.get({ url: '/beforehand_order/beforehandorder/outbound_lists', params })
|
||||
}
|
||||
// 订单转预订单
|
||||
export function apiPurchaseOrderTransferAdvanceOrder(params: any) {
|
||||
return request.post({
|
||||
url: '/beforehand_order/beforehandorder/orderTransferAdvanceOrder',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 打印出库标签
|
||||
export function apiPurchaseOrderExport(params: any) {
|
||||
return request.post({
|
||||
url: '/beforehand_order/beforehandorder/export',
|
||||
params
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 生成支付订单
|
||||
*/
|
||||
export function apiPurchaseOrderGenerateOrder(params: any) {
|
||||
return request.post({
|
||||
url: '/beforehand_order/beforehandorder/generateOrder',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
//导出清单
|
||||
export function apiPurchaseOrderExportOrderList(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/export_order_list', params })
|
||||
}
|
||||
//导出分单
|
||||
export function apiPurchaseOrderOrderAllocation(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/order_allocation', params })
|
||||
}
|
||||
//采购信息
|
||||
export function apiPurchaseOrderOrderInfo(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/order_info', params })
|
||||
}
|
||||
//导出出库
|
||||
export function apiPurchaseOrderOrderOutbound(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/order_outbound', params })
|
||||
}
|
||||
//导出出库
|
||||
export function apiPurchaseOrderOrderOutbound3(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/order_outbound3', params })
|
||||
}
|
||||
//导出退库
|
||||
export function apiPurchaseOrderStockReturn(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/stock_return', params })
|
||||
}
|
||||
//导出退供应商
|
||||
export function apiPurchaseOrderReturnSupplier(params: any) {
|
||||
return request.post({ url: '/beforehand_order/beforehandorder/return_supplier', params })
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 预订单购物详情表列表
|
||||
export function apiBeforehandOrderCartInfoLists(params: any) {
|
||||
return request.get({ url: '/beforehand_order_cart_info/beforehandordercartinfo/lists', params })
|
||||
}
|
||||
|
||||
// 添加预订单购物详情表
|
||||
export function apiBeforehandOrderCartInfoAdd(params: any) {
|
||||
return request.post({ url: '/beforehand_order_cart_info/beforehandordercartinfo/add', params })
|
||||
}
|
||||
|
||||
// 编辑预订单购物详情表
|
||||
export function apiBeforehandOrderCartInfoEdit(params: any) {
|
||||
return request.post({ url: '/beforehand_order_cart_info/beforehandordercartinfo/edit', params })
|
||||
}
|
||||
export function apiBeforehandOrderCartInfoAppendAdd(params: any) {
|
||||
return request.post({
|
||||
url: '/beforehand_order_cart_info/beforehandordercartinfo/append_add',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 删除预订单购物详情表
|
||||
export function apiBeforehandOrderCartInfoDelete(params: any) {
|
||||
return request.post({
|
||||
url: '/beforehand_order_cart_info/beforehandordercartinfo/delete',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 编辑预订单购物详情无需采购
|
||||
export function apiBeforehandOrderCartInfoProcurementStatus(params: any) {
|
||||
return request.post({
|
||||
url: '/beforehand_order_cart_info/beforehandordercartinfo/procurement_status',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 一键入库
|
||||
export function apiBeforehandOrderCartInfoOneClickStorage(params: any) {
|
||||
return request.post({
|
||||
url: '/beforehand_order_cart_info/beforehandordercartinfo/one_click_storage',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 预订单购物详情表详情
|
||||
export function apiBeforehandOrderCartInfoDetail(params: any) {
|
||||
return request.get({
|
||||
url: '/beforehand_order_cart_info/beforehandordercartinfo/detail',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 预订单购物详情表详情
|
||||
export function apiBeforehandOrderCartInfoFix(params: any) {
|
||||
return request.get({
|
||||
url: '/beforehand_order_cart_info/beforehandordercartinfo/fix',
|
||||
params
|
||||
})
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 商品表列表
|
||||
export function apiStoreProductLists(params: any) {
|
||||
return request.get({ url: '/store_product/storeproduct/lists', params })
|
||||
}
|
||||
|
||||
// 添加商品表
|
||||
export function apiStoreProductAdd(params: any) {
|
||||
return request.post({ url: '/store_product/storeproduct/add', params })
|
||||
}
|
||||
|
||||
// 编辑商品表
|
||||
export function apiStoreProductEdit(params: any) {
|
||||
return request.post({ url: '/store_product/storeproduct/edit', params })
|
||||
}
|
||||
// 商品状态
|
||||
export function apiStoreProductStatus(params: any) {
|
||||
return request.post({ url: '/store_product/storeproduct/status', params })
|
||||
}
|
||||
|
||||
// 删除商品表
|
||||
export function apiStoreProductDelete(params: any) {
|
||||
return request.post({ url: '/store_product/storeproduct/delete', params })
|
||||
}
|
||||
|
||||
// 商品表详情
|
||||
export function apiStoreProductDetail(params: any) {
|
||||
return request.get({ url: '/store_product/storeproduct/detail', params })
|
||||
}
|
||||
|
||||
// 复制商品到门店
|
||||
export function apiStoreProductImport(params: any) {
|
||||
return request.post({ url: '/store_product/storeproduct/import', params })
|
||||
}
|
||||
// 复制商品到门店
|
||||
export function apiStoreProductCopy(params: any) {
|
||||
return request.post({ url: '/store_product/storeproduct/copy', params })
|
||||
}
|
||||
export function apiAdminStoreProductLists(params: any) {
|
||||
return request.get({ url: '/store_product/storeproduct/adminLists', params })
|
||||
}
|
|
@ -20,3 +20,6 @@ export function getUserInfo() {
|
|||
export function setUserInfo(params: any) {
|
||||
return request.post({ url: '/auth/admin/editSelf', params })
|
||||
}
|
||||
export function apiUserLists(params: any) {
|
||||
return request.get({ url: '/user/user/lists', params })
|
||||
}
|
|
@ -0,0 +1,602 @@
|
|||
<template>
|
||||
<el-card>
|
||||
<div class="mb-4 text-lg font-bold">预定单添加</div>
|
||||
<div>
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :inline="true" :rules="formRules">
|
||||
<el-row>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="用户" prop="nickname">
|
||||
<el-select v-model="formData.uid" filterable remote reserve-keyword placeholder="输入用户名称搜索"
|
||||
remote-show-suffix :remote-method="remoteMethodUser" :loading="userloading"
|
||||
style="width: 220px" @change="resetUserId">
|
||||
<el-option v-for="item in userList" :key="item.id"
|
||||
:label="`${item.real_name}|${item.mobile} (ID:${item.id})`" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="姓名" prop="nickname">
|
||||
<el-input v-model="formData.nickname" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="手机号" prop="phone">
|
||||
<el-input v-model="formData.phone" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="地址" prop="address">
|
||||
<el-input v-model="formData.address" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="订单类型" prop="order_type">
|
||||
<el-radio-group v-model="formData.order_type" @change="handleOrderType()">
|
||||
<el-radio :label="1">铺货订单</el-radio>
|
||||
<el-radio :label="2">摊贩订单</el-radio>
|
||||
<el-radio :label="3">一条龙订单</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="一键不采购" prop="is_buyer">
|
||||
<el-radio-group v-model="formData.is_buyer">
|
||||
<el-radio :label="0">待处理</el-radio>
|
||||
<el-radio :label="-1">不采购</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="到货时间" prop="arrival_time">
|
||||
<el-date-picker v-model="formData.arrival_time" type="datetime" :readonly="false" clearable
|
||||
value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择到货时间" style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="桌数" prop="tables">
|
||||
<el-input-number v-model="formData.tables" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="办事天数" prop="days">
|
||||
<el-input-number v-model="formData.days" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="厨师" prop="chef">
|
||||
<el-input v-model="formData.chef" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="电话" prop="chef_phone">
|
||||
<el-input v-model="formData.chef_phone" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="备注" prop="purpose">
|
||||
<el-input v-model="formData.purpose" type="input" style="width: 480px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="分单员" prop="splitting_officer">
|
||||
<el-input v-model="formData.splitting_officer" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="跟单员" prop="merchandiser">
|
||||
<el-input v-model="formData.merchandiser" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="仓管员" prop="distribution_personnel">
|
||||
<el-input v-model="formData.distribution_personnel" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="运输员" prop="transporter">
|
||||
<el-input v-model="formData.transporter" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="门店员" prop="system_store_name">
|
||||
<el-input v-model="formData.system_store_name" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="区域经理" prop="regional_manager">
|
||||
<el-input v-model="formData.regional_manager" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="商品" prop="product_id" class="w-full">
|
||||
<div class="flex-1 w-full">
|
||||
<div class="mb-2">
|
||||
<el-button type="primary" @click="showProductModal()">添加商品</el-button>
|
||||
</div>
|
||||
<el-table :data="productList">
|
||||
<el-table-column label="商品ID" prop="id" show-overflow-tooltip>
|
||||
<template #default="{ row, $index }">
|
||||
<el-input v-model="row.id" @keydown.enter="enterProduct(row)"
|
||||
:ref="(el) => (labelRefs[$index + 'id'] = el)"
|
||||
@keyup="moveFocus($event, $index, 'id')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品图片" prop="image" min-width="80">
|
||||
<template #default="{ row }">
|
||||
<el-image style="width: 50px; height: 50px" :src="row.image"
|
||||
:preview-teleported="true" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品名称" prop="store_name" show-overflow-tooltip>
|
||||
<template #default="{ row, $index }">
|
||||
<el-input v-model="row.store_name" @keydown.enter="enterStoreName(row)"
|
||||
:ref="(el) => (labelRefs[$index + 'store_name'] = el)"
|
||||
@keyup="moveFocus($event, $index, 'store_name')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位" min-width="80" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<div>{{ row.unit_name }}-{{ row.status_msg }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="仓库数量" min-width="80" show-overflow-tooltip prop="stock" />
|
||||
<el-table-column label="数量">
|
||||
<template #default="{ row, $index }">
|
||||
<el-input v-model="row.nums" @change="handleChange(row)"
|
||||
:ref="(el) => (labelRefs[$index + 'nums'] = el)"
|
||||
@keyup="moveFocus($event, $index, 'nums')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="价格">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.price" disabled />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="总价">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.total_price" disabled />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="型号">
|
||||
<template #default="{ row, $index }">
|
||||
<el-input v-model="row.marques" :ref="(el) => (labelRefs[$index + 'marques'] = el)"
|
||||
@keyup="moveFocus($event, $index, 'marques')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="包装">
|
||||
<template #default="{ row, $index }">
|
||||
<el-input v-model="row.package" :ref="(el) => (labelRefs[$index + 'package'] = el)"
|
||||
@keyup="moveFocus($event, $index, 'package')" />
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="备注">
|
||||
<template #default="{ row, $index }">
|
||||
<el-input v-model="row.mark" :ref="(el) => (labelRefs[$index + 'mark'] = el)"
|
||||
@keyup="moveFocus($event, $index, 'mark')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="danger" link @click="handleDeleteProdut(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-button @click="handleSubmit(formRef)" type="primary" class="w-40 ml-20">提交</el-button>
|
||||
<el-form-item label="总价" prop="total_price">
|
||||
<div>
|
||||
{{ formData.total_price }}
|
||||
<span class="ml-4">该金额只做前台展示,后台会从新计算</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-dialog v-model="showProduct" title="选择商品" width="70%">
|
||||
<product-warehouse-pop :key="productModalKey" :userId="formData.uid"
|
||||
@onBindStore="onBindProduct"></product-warehouse-pop>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
<el-dialog v-model="dialogProductShow" title="选择商品" width="1200">
|
||||
<el-table :data="dialogProductLists" @current-change="handleCurrentChange" :height="300">
|
||||
<el-table-column label="商品ID" prop="id" show-overflow-tooltip />
|
||||
<el-table-column label="商品图片" prop="image" min-width="80">
|
||||
<template #default="{ row }">
|
||||
<el-image style="width: 50px; height: 50px" :src="row.image" :preview-teleported="true" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品名称" prop="store_name" min-width="200" show-overflow-tooltip />
|
||||
<el-table-column label="分类" prop="cate_name" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column label="单位" prop="unit_name" min-width="80" show-overflow-tooltip />
|
||||
<el-table-column label="商品价格" prop="price" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column label="仓库库存" prop="stock" min-width="100" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="storeProductEdit">
|
||||
import { ElMessage, type FormInstance } from 'element-plus'
|
||||
import type { PropType } from 'vue'
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
import { apiBeforehandOrderAdd } from '@/api/beforehand_order'
|
||||
import { apiStoreProductDetail, apiStoreProductLists } from '@/api/store_product'
|
||||
import { apiUserLists } from '@/api/user'
|
||||
import feedback from '@/utils/feedback'
|
||||
import productWarehousePop from './component/productWarehousePop.vue'
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
// const formRef = shallowRef<FormInstance>()
|
||||
const formRef = ref<FormInstance>()
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
warehouse_id: '',
|
||||
is_buyer: -1,
|
||||
supplier_id: '',
|
||||
code: '',
|
||||
total_price: 0,
|
||||
order_type: 1,
|
||||
store_id: '',
|
||||
arrival_time: '',
|
||||
purpose: '',
|
||||
tables: 0,
|
||||
days: 0,
|
||||
chef: '',
|
||||
chef_phone: '',
|
||||
splitting_officer: '',
|
||||
merchandiser: '何月英',
|
||||
distribution_personnel: '余友',
|
||||
transporter: '',
|
||||
system_store_name: '',
|
||||
regional_manager: '张波',
|
||||
mark: '',
|
||||
uid: '',
|
||||
nickname: '',
|
||||
phone: '',
|
||||
address: ''
|
||||
})
|
||||
const enterProduct = async (e : any) => {
|
||||
const data = await apiStoreProductDetail({ id: e.id, user_id: formData.uid })
|
||||
setData(e, data)
|
||||
}
|
||||
|
||||
const setData = (e : any, data : any) => {
|
||||
e.id = data.id
|
||||
e.image = data.image
|
||||
e.marques = data.marques
|
||||
e.store_info = data.store_info
|
||||
e.price = data.price
|
||||
e.purchase = data.purchase
|
||||
e.after_sales = data.after_sales
|
||||
e.loss = data.loss
|
||||
e.unit = data.unit
|
||||
e.store_name = data.store_name
|
||||
e.unit_name = data.unit_name
|
||||
e.status_msg = data.status_msg
|
||||
e.stock = data.stock
|
||||
e.gross_weight = data.gross_weight
|
||||
e.net_weight = data.net_weight
|
||||
e.package = data.package
|
||||
const ids : any[] = []
|
||||
productList.value.forEach((item : any) => {
|
||||
ids.push(item.id)
|
||||
})
|
||||
if (ids.includes(0) == false) {
|
||||
productList.value.push({ id: 0 })
|
||||
}
|
||||
}
|
||||
const showProduct = ref(false) // 选择商品列表是否显示
|
||||
// 商品列表
|
||||
const productList = ref([{ id: 0 }])
|
||||
// 删除已有商品
|
||||
const handleDeleteProdut = (id : number) => {
|
||||
productList.value = productList.value.filter((item : any) => item.id !== id)
|
||||
}
|
||||
// 选择商品
|
||||
const onBindProduct = (e : any[]) => {
|
||||
e.forEach((item : any) => {
|
||||
if (!productList.value.find((t : any) => t.id == item.id)) {
|
||||
productList.value.push(item)
|
||||
}
|
||||
})
|
||||
showProduct.value = false
|
||||
}
|
||||
function handleChange(row) {
|
||||
row.total_price = (row.nums * row.price).toFixed(2)
|
||||
if (row.total_price > 0) {
|
||||
formData.total_price = (
|
||||
parseFloat(formData.total_price) + parseFloat(row.total_price)
|
||||
).toFixed(2)
|
||||
}
|
||||
}
|
||||
|
||||
function handleOrderType(row) {
|
||||
if (formData.order_type == 7 || formData.order_type == 5) {
|
||||
formData.is_buyer = 0
|
||||
} else {
|
||||
formData.is_buyer = -1
|
||||
}
|
||||
}
|
||||
const router = useRouter()
|
||||
// 提交按钮
|
||||
const handleSubmit = async (formEl : FormInstance | undefined) => {
|
||||
const product_arr = productList.value.map((item : any) => {
|
||||
return {
|
||||
product_id: item.id,
|
||||
nums: item.nums,
|
||||
price: item.price || 0,
|
||||
purchase: item.purchase || 0,
|
||||
total_price: item.total_price || 0,
|
||||
marques: item.marques,
|
||||
store_info: item.store_info,
|
||||
after_sales: item.after_sales,
|
||||
loss: item.loss,
|
||||
unit: item.unit,
|
||||
gross_weight: item.gross_weight,
|
||||
net_weight: item.net_weight,
|
||||
package: item.package,
|
||||
mark: item.mark
|
||||
}
|
||||
})
|
||||
await formEl.validate((valid, fields) => {
|
||||
if (valid) {
|
||||
apiBeforehandOrderAdd({
|
||||
product_arr,
|
||||
...formData
|
||||
}).then((res) => {
|
||||
setTimeout(() => {
|
||||
router.push({
|
||||
path: '/order/beforehand_order'
|
||||
})
|
||||
}, 2000)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const dialogProductLists = ref([])
|
||||
const dialogProductShow = ref(false)
|
||||
const dialogProductData = ref()
|
||||
const enterStoreName = (e : any) => {
|
||||
apiStoreProductLists({
|
||||
store_name: e.store_name,
|
||||
product_type: [0, 6],
|
||||
is_warehouse: 1,
|
||||
user_id: formData.uid
|
||||
// is_show: 1
|
||||
}).then((res) => {
|
||||
if (res.count == 1) {
|
||||
const data = res.lists[0]
|
||||
setData(e, data)
|
||||
}
|
||||
if (res.count > 1) {
|
||||
dialogProductLists.value = res.lists
|
||||
dialogProductShow.value = true
|
||||
dialogProductData.value = e
|
||||
}
|
||||
})
|
||||
}
|
||||
// 表格选择后回调事件
|
||||
const handleCurrentChange = (val : any[]) => {
|
||||
if (val == null) {
|
||||
return
|
||||
}
|
||||
setData(dialogProductData.value, val)
|
||||
dialogProductShow.value = false
|
||||
dialogProductLists.value = []
|
||||
dialogProductData.value = []
|
||||
}
|
||||
|
||||
const labelRefs = reactive<Record<string, HTMLElement>>({})
|
||||
const moveFocus = (event : any, index : number, key : string) => {
|
||||
const keyField = [
|
||||
'id',
|
||||
'store_name',
|
||||
'nums',
|
||||
'mark'
|
||||
]
|
||||
|
||||
// 向上 38
|
||||
if (event.keyCode === 38) {
|
||||
if (index === 0) {
|
||||
return // 第一行无法向上
|
||||
}
|
||||
labelRefs[index + key].blur()
|
||||
nextTick(() => {
|
||||
labelRefs[index - 1 + key].focus()
|
||||
})
|
||||
}
|
||||
// 向下 40
|
||||
if (event.keyCode === 40) {
|
||||
if (index === productList.value.length - 1) {
|
||||
return // 最后一行无法向下
|
||||
}
|
||||
labelRefs[index + key].blur()
|
||||
nextTick(() => {
|
||||
labelRefs[index + 1 + key].focus()
|
||||
})
|
||||
}
|
||||
// 向左 37
|
||||
if (event.keyCode === 37) {
|
||||
if (index === 0 && key === keyField[0]) {
|
||||
return
|
||||
}
|
||||
labelRefs[index + key].blur()
|
||||
// 当前行第一个,跳转上一行最后一个
|
||||
if (key === keyField[0]) {
|
||||
labelRefs[index - 1 + keyField[keyField.length - 1]].focus()
|
||||
} else {
|
||||
// 跳转上一个
|
||||
const preKeyIndex = keyField.findIndex((item) => item === key) - 1
|
||||
nextTick(() => {
|
||||
labelRefs[index + keyField[preKeyIndex]].focus()
|
||||
})
|
||||
}
|
||||
}
|
||||
// // 向右 39
|
||||
if (event.keyCode === 39) {
|
||||
if (index === productList.value.length - 1 && key === keyField[keyField.length - 1]) {
|
||||
return
|
||||
}
|
||||
labelRefs[index + key].blur()
|
||||
// 最后一行最后一个,跳转下一行第一个
|
||||
if (key === keyField[keyField.length - 1]) {
|
||||
labelRefs[index + 1 + keyField[0]].focus()
|
||||
} else {
|
||||
// 跳转下一个
|
||||
const nextKeyIndex = keyField.findIndex((item) => item === key) + 1
|
||||
nextTick(() => {
|
||||
labelRefs[index + keyField[nextKeyIndex]].focus()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
uid: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入采购用户',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
store_id: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择门店',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
arrival_time: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择到货时间',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
tables: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入桌数',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
days: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入天数',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
chef: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入厨师',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
chef_phone: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入厨师电话',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
purpose: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入采购目的',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
system_store_name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入门店联系人',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
splitting_officer: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入分单员',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
merchandiser: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入跟单员',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
distribution_personnel: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入仓管员',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
transporter: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入运输员',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
regional_manager: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入区域经理',
|
||||
trigger: ['blur']
|
||||
}
|
||||
]
|
||||
})
|
||||
const userloading = ref(false)
|
||||
const userList = ref([])
|
||||
const remoteMethodUser = (e = '') => {
|
||||
userloading.value = true
|
||||
apiUserLists({
|
||||
nickname: e,
|
||||
page_size: 10
|
||||
})
|
||||
.then((res) => {
|
||||
userList.value = res.lists
|
||||
setTimeout(() => {
|
||||
userloading.value = false
|
||||
}, 300)
|
||||
})
|
||||
.catch((err) => {
|
||||
setTimeout(() => {
|
||||
userloading.value = false
|
||||
}, 300)
|
||||
})
|
||||
}
|
||||
|
||||
const showProductModal = () => {
|
||||
showProduct.value = true
|
||||
}
|
||||
const productModalKey = ref(0)
|
||||
const resetUserId = (e) => {
|
||||
productModalKey.value++
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,140 @@
|
|||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup
|
||||
ref="popupRef"
|
||||
:title="popupTitle"
|
||||
:async="true"
|
||||
width="550px"
|
||||
@confirm="handleSubmit"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
|
||||
<el-form-item label="商品名称" prop="store_name">
|
||||
<el-input v-model="formData.store_name" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="数量" prop="nums">
|
||||
<el-input
|
||||
v-model="formData.nums"
|
||||
clearable
|
||||
placeholder="请输入数量"
|
||||
:readonly="false"
|
||||
@change="compute"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="零售价" prop="purchases">
|
||||
<el-input
|
||||
v-model="formData.purchases"
|
||||
clearable
|
||||
placeholder="请输入价格"
|
||||
:readonly="false"
|
||||
@change="compute"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="总价" prop="total_price">
|
||||
<el-input
|
||||
v-model="formData.total_price"
|
||||
clearable
|
||||
placeholder="请输入价格"
|
||||
:readonly="false"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="mark">
|
||||
<el-input
|
||||
v-model="formData.mark"
|
||||
clearable
|
||||
placeholder="请输入备注"
|
||||
:readonly="false"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="warehouseOrderEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import {
|
||||
apiBeforehandOrderCartInfoEdit,
|
||||
apiBeforehandOrderCartInfoDetail
|
||||
} from '@/api/beforehand_order_cart_info'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑商品' : '新增商品仓储订单'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
bhoid: '',
|
||||
store_name: '',
|
||||
total_price: '',
|
||||
nums: '',
|
||||
purchases: '',
|
||||
mark: ''
|
||||
})
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({})
|
||||
const compute = () => {
|
||||
formData.total_price = (formData.nums * formData.purchases).toFixed(2)
|
||||
}
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
}
|
||||
formData.nums = data.cart_num
|
||||
console.log(data)
|
||||
formData.purchases = data.price
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
const data = await apiBeforehandOrderCartInfoDetail({
|
||||
id: row.id
|
||||
})
|
||||
setFormData(data)
|
||||
}
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData }
|
||||
await apiBeforehandOrderCartInfoEdit(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
getDetail
|
||||
})
|
||||
</script>
|
|
@ -0,0 +1,157 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-form class="inline-block" :model="queryParams" inline>
|
||||
<el-form-item label="名称" prop="store_name">
|
||||
<el-input class="w-[280px]" v-model="queryParams.store_name" clearable placeholder="请输入名称" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div>
|
||||
<el-table :data="pager.lists" v-loading="pager.loading">
|
||||
<el-table-column label="id" prop="id" show-overflow-tooltip />
|
||||
<el-table-column label="商品信息" prop="store_name" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<div class="flex items-center">
|
||||
<el-image :src="row.image" class="w-16 h-16 mr-2" :preview-teleported="true"></el-image>
|
||||
<div>{{ row.store_name }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="分类" prop="top_cate_name" show-overflow-tooltip />
|
||||
<el-table-column label="单位" prop="unit_name" show-overflow-tooltip />
|
||||
<el-table-column label="仓库库存" prop="warehouse_stock" show-overflow-tooltip />
|
||||
<el-table-column label="需要数量" prop="cart_num" show-overflow-tooltip />
|
||||
<el-table-column label="分拣数量" prop="accept_num" show-overflow-tooltip />
|
||||
<el-table-column label="零售价" prop="price" show-overflow-tooltip />
|
||||
<el-table-column label="合计金额" prop="total_price" show-overflow-tooltip />
|
||||
<el-table-column label="支付金额" prop="pay_price" show-overflow-tooltip />
|
||||
<el-table-column label="备注" prop="mark" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-perms="['beforehand_order_cart_info.beforehand_order_cart_info/edit']"
|
||||
type="primary" link @click="handleEdit(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="[
|
||||
'beforehand_order_cart_info.beforehand_order_cart_info/delete'
|
||||
]" type="danger" link @click="handleDeletes(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end" v-if="pager.lists.length < pager.count">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
<edit-popup v-if="showEdit" ref="editRef" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="subOrder">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import {
|
||||
apiBeforehandOrderCartInfoLists,
|
||||
apiBeforehandOrderCartInfoDelete,
|
||||
apiBeforehandOrderCartInfoProcurementStatus,
|
||||
apiBeforehandOrderCartInfoFix
|
||||
} from '@/api/beforehand_order_cart_info'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './editProduct.vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
const route = useRoute()
|
||||
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
|
||||
// 是否显示编辑框
|
||||
const showEdit = ref(false)
|
||||
const ids = ref()
|
||||
// 编辑
|
||||
const handleEdit = async (data : any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
// 删除
|
||||
const handleDeletes = async (id : number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiBeforehandOrderCartInfoDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
const formData = ref({
|
||||
id: '',
|
||||
top_cate: []
|
||||
})
|
||||
const queryParams = reactive({
|
||||
store_name: '',
|
||||
bhoid: '',
|
||||
pay_type: '',
|
||||
top_cate: '',
|
||||
top_cate_value: ''
|
||||
})
|
||||
|
||||
const purchase_product_offer = ref({
|
||||
order_id: '',
|
||||
product_id: '',
|
||||
need_num: '',
|
||||
unit: '',
|
||||
is_buyer: '',
|
||||
buyer_id: '',
|
||||
mark: ''
|
||||
})
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiBeforehandOrderCartInfoLists,
|
||||
params: queryParams
|
||||
})
|
||||
const topCateChange = (row : any) => {
|
||||
if (row.id == 0) {
|
||||
queryParams.top_cate = ''
|
||||
queryParams.top_cate_value = '全部'
|
||||
getLists()
|
||||
} else {
|
||||
queryParams.top_cate = row.id
|
||||
queryParams.top_cate_value = row.name
|
||||
|
||||
getLists()
|
||||
}
|
||||
}
|
||||
|
||||
const beforehand_order_cart_info = () => {
|
||||
apiBeforehandOrderCartInfoLists({
|
||||
export: 2,
|
||||
bhoid: formData.value.id
|
||||
}).then((res) => {
|
||||
window.open(res.url, '_blank')
|
||||
ElMessage.success('导出成功')
|
||||
})
|
||||
}
|
||||
|
||||
function getList(data : any) {
|
||||
formData.value = data
|
||||
queryParams.bhoid = data.id
|
||||
getLists()
|
||||
}
|
||||
|
||||
const fixAcceptNum = () => {
|
||||
apiBeforehandOrderCartInfoFix({
|
||||
bhoid: formData.value.id
|
||||
}).then((res) => {
|
||||
ElMessage.success('处理成功')
|
||||
getLists()
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
queryParams.bhoid = route.query.id
|
||||
formData.value.id = route.query.id
|
||||
getLists()
|
||||
})
|
||||
defineExpose({
|
||||
getList
|
||||
})
|
||||
</script>
|
|
@ -0,0 +1,81 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="商品名称" prop="store_name">
|
||||
<el-input class="w-[200px]" v-model="queryParams.store_name" @keydown.enter="productList" clearable
|
||||
placeholder="请输入商品名称" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="mt-4" v-loading="pager.loading">
|
||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange" :height="300">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="商品ID" prop="id" show-overflow-tooltip />
|
||||
<el-table-column label="商品图片" prop="image" min-width="80">
|
||||
<template #default="{ row }">
|
||||
<el-image style="width: 50px; height: 50px" :src="row.image" :preview-teleported="true" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品名称" prop="store_name" min-width="200" show-overflow-tooltip />
|
||||
<el-table-column label="分类" prop="cate_name" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column label="单位" prop="unit_name" min-width="80" show-overflow-tooltip />
|
||||
<el-table-column label="商品价格" prop="price" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column label="仓库库存" prop="stock" min-width="100" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
<el-button class="w-full mt-4" type="primary" @click="bindStore">添加商品</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="systemStoreLists">
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { apiAdminStoreProductLists } from '@/api/store_product'
|
||||
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { defineProps } from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
userId: Number
|
||||
});
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
store_name: '',
|
||||
is_warehouse: 1,
|
||||
user_id: props.userId,
|
||||
type_filter: 1
|
||||
})
|
||||
|
||||
// 选中数据
|
||||
const selectData = ref<any[]>([])
|
||||
const datas = ref()
|
||||
|
||||
// 表格选择后回调事件
|
||||
const handleSelectionChange = (val : any[]) => {
|
||||
selectData.value = val.map(({ id }) => id)
|
||||
}
|
||||
|
||||
const productList = (e) => {
|
||||
getLists()
|
||||
e.preventDefault();
|
||||
}
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiAdminStoreProductLists,
|
||||
params: queryParams
|
||||
})
|
||||
getLists()
|
||||
|
||||
const emits = defineEmits(['onBindStore'])
|
||||
// 绑定用户
|
||||
const bindStore = () => {
|
||||
const list = pager.lists.filter((item) => selectData.value.includes(item.id))
|
||||
if (!list.length) return ElMessage.error('请先选择商品')
|
||||
emits('onBindStore', list)
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,361 @@
|
|||
<template>
|
||||
<el-card>
|
||||
<div class="flex items-center justify-between m-4">
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">姓名:</div>
|
||||
<div style="color: black">{{ formData.other_data?.nickname }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">手机:</div>
|
||||
<div style="color: black">{{ formData.other_data?.phone }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">送货地址:</div>
|
||||
<div style="color: black">{{ formData.other_data?.address }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center justify-between m-4">
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">单号:</div>
|
||||
<div style="color: black">{{ formData.order_id }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">支付单号:</div>
|
||||
<div style="color: black">{{ formData.order_sn }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">门店:</div>
|
||||
<div style="color: black">{{ formData.system_store }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center justify-between m-4">
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">到货时间:</div>
|
||||
<div style="color: black">{{ formData.other_data?.arrival_time }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">桌数:</div>
|
||||
<div style="color: black">{{ formData.other_data?.tables }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">办事天数:</div>
|
||||
<div style="color: black">{{ formData.other_data?.days }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">厨师:</div>
|
||||
<div style="color: black">{{ formData.other_data?.chef }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">电话:</div>
|
||||
<div style="color: black">{{ formData.other_data?.chef_phone }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-between m-4">
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">采购事由:</div>
|
||||
<div style="color: black">{{ formData.other_data?.purpose }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">备注:</div>
|
||||
<div style="color: black">{{ formData.mark }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">分单员:</div>
|
||||
<div style="color: black">{{ formData.other_data?.splitting_officer }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">跟单员:</div>
|
||||
<div style="color: black">{{ formData.other_data?.merchandiser }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">仓管员:</div>
|
||||
<div style="color: black">{{ formData.other_data?.distribution_personnel }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">运输员:</div>
|
||||
<div style="color: black">{{ formData.other_data?.transporter }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">门店员:</div>
|
||||
<div style="color: black">{{ formData.other_data?.system_store_name }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">区域经理:</div>
|
||||
<div style="color: black">{{ formData.other_data?.regional_manager }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center justify-between m-4">
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">总价</div>
|
||||
<div style="color: black">¥{{ formData.total_price }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col">
|
||||
<div style="color: gray">支付金额</div>
|
||||
<div style="color: black">¥{{ formData.pay_price }}</div>
|
||||
</div>
|
||||
<div class="flex flex-col flex-2">
|
||||
<div style="color: gray">时间</div>
|
||||
<div style="color: black">{{ formData.create_time }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-button type="primary" @click="dialogShop = true" v-if="formData.order_type != 7">
|
||||
追加
|
||||
</el-button>
|
||||
|
||||
<el-tabs v-model="activeName" class="demo-tabs mt-3" type="border-card" @tab-change="tabChange">
|
||||
<el-tab-pane v-if="formData.order_type != 7" label="明细" name="second">
|
||||
<orderCartInfo ref="orderCartInfoRef" :id="formData.id" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-card>
|
||||
<el-dialog v-model="dialogShop" title="追加商品" width="1200">
|
||||
<el-form ref="formRef" label-width="90px">
|
||||
<div class="mb-2">
|
||||
<el-button type="primary" @click="showProduct = true">添加商品</el-button>
|
||||
</div>
|
||||
<el-table :data="productList">
|
||||
<el-table-column label="商品ID" prop="id" show-overflow-tooltip />
|
||||
<el-table-column label="商品图片" prop="image" min-width="80">
|
||||
<template #default="{ row }">
|
||||
<el-image style="width: 50px; height: 50px" :src="row.image" :preview-teleported="true" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品名称" prop="store_name" min-width="180" show-overflow-tooltip />
|
||||
<el-table-column label="分类" prop="cate_name" min-width="80" show-overflow-tooltip />
|
||||
<el-table-column label="单位" prop="unit_name" min-width="80" show-overflow-tooltip />
|
||||
<el-table-column label="数量" min-width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.num" @change="handleChange(row)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="价格" min-width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.price" disabled />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="总价" min-width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.total_price" disabled />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="danger" link @click="handleDeleteProdut(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="dialogShop = false">取消</el-button>
|
||||
<el-button type="primary" @click="appendAdd"> 确认 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="showProduct" title="选择商品" width="70%">
|
||||
<product-warehouse-pop :key="productModalKey" :userId="formData.uid"
|
||||
@onBindStore="onBindProduct"></product-warehouse-pop>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog v-model="generateOrderShow" title="生成支付订单设置" width="600">
|
||||
<el-form :model="generateOrderData" label-width="90px">
|
||||
<el-form-item label="用户">
|
||||
<el-select v-model="generateOrderData.user_id" filterable remote reserve-keyword placeholder="输入用户名称搜索"
|
||||
remote-show-suffix :remote-method="remoteMethodUser" :loading="userloading" style="width: 240px">
|
||||
<el-option v-for="item in userList" :key="item.id"
|
||||
:label="`${item.real_name}|${item.mobile} (ID:${item.id})`" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="门店" prop="store_id">
|
||||
<el-select v-model="generateOrderData.store_id" placeholder="请选择门店" size="large" style="width: 240px">
|
||||
<el-option v-for="item in storeList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="支付方式" prop="pay_type">
|
||||
<el-select v-model="generateOrderData.pay_type" placeholder="请选择支付方式" size="large" style="width: 240px">
|
||||
<el-option label="微信小程序支付" value="7" />
|
||||
<el-option label="采购款支付" value="18" />
|
||||
<el-option label="余额支付" value="3" />
|
||||
<el-option label="现金支付" value="17" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="generateOrderShow = false">取消</el-button>
|
||||
<el-button type="primary" @click="generateOrderAdd"> 确认 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="storeOrderDETAILS">
|
||||
import { ElMessage, type FormInstance } from 'element-plus'
|
||||
import {
|
||||
apiBeforehandOrderCartInfoLists,
|
||||
apiBeforehandOrderCartInfoAppendAdd
|
||||
} from '@/api/beforehand_order_cart_info'
|
||||
import {
|
||||
apiPurchaseOrderExport,
|
||||
apiPurchaseOrderGenerateOrder,
|
||||
apiBeforehandOrderDetail,
|
||||
apiPurchaseOrderExportOrderList,
|
||||
apiPurchaseOrderOrderAllocation,
|
||||
apiPurchaseOrderOrderInfo,
|
||||
apiPurchaseOrderOrderOutbound
|
||||
} from '@/api/beforehand_order'
|
||||
import type { PropType, nextTick } from 'vue'
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { useRoute } from 'vue-router'
|
||||
import orderCartInfo from './component/orderCartInfo.vue'
|
||||
import productWarehousePop from './component/productWarehousePop.vue'
|
||||
import { apiUserLists } from '@/api/user'
|
||||
|
||||
const generateOrderShow = ref(false)
|
||||
|
||||
const orderCartInfoRef = ref(null)
|
||||
const route = useRoute()
|
||||
const tabChange = (type : any) => {
|
||||
if (type == 'second') {
|
||||
orderCartInfoRef.value?.getList(formData.value)
|
||||
}
|
||||
}
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const showDialog = ref(false)
|
||||
const dialogShop = ref(false)
|
||||
const activeName = ref('second')
|
||||
const warehouse_id = ref(0)
|
||||
const is_warehouse = ref(0)
|
||||
const financial_pm = ref(0)
|
||||
// 表单数据
|
||||
const formData = ref({
|
||||
id: '',
|
||||
code: '',
|
||||
total_price: '',
|
||||
supplier_name: '',
|
||||
warehouse_name: '',
|
||||
system_store: '',
|
||||
financial_pm: '',
|
||||
order_sn: '',
|
||||
warehousing_id: '',
|
||||
top_cate: [],
|
||||
uid: '',
|
||||
store_id: '',
|
||||
order_type: ''
|
||||
})
|
||||
const generateOrderData = ref({
|
||||
id: '',
|
||||
user_id: '',
|
||||
pay_type: '',
|
||||
store_id: ''
|
||||
})
|
||||
const appendAdd = () => {
|
||||
const product_arr = productList.value.map((item : any) => {
|
||||
return {
|
||||
id: item.id,
|
||||
nums: item.num || 0,
|
||||
purchase: item.price || 0,
|
||||
prices: item.purchase || 0,
|
||||
total_price: item.total_price || 0,
|
||||
manufacture: item.manufacture,
|
||||
expiration_date: item.expiration_date
|
||||
}
|
||||
})
|
||||
apiBeforehandOrderCartInfoAppendAdd({
|
||||
id: queryParams.bhoid,
|
||||
product_arr: product_arr
|
||||
}).then((res) => {
|
||||
dialogShop.value = false
|
||||
})
|
||||
}
|
||||
const queryParams = reactive({
|
||||
bhoid: route.query.id,
|
||||
pay_type: '',
|
||||
top_cate: '',
|
||||
top_cate_value: ''
|
||||
})
|
||||
|
||||
const getDetail = () => {
|
||||
apiBeforehandOrderDetail({ id: queryParams.bhoid }).then((row : any) => {
|
||||
formData.value = { ...row }
|
||||
warehouse_id.value = row.warehouse_id
|
||||
generateOrderData.value.id = row.id
|
||||
generateOrderData.value.store_id = row.store_id
|
||||
generateOrderData.value.user_id = row.uid
|
||||
if (row.financial_pm == 0) {
|
||||
is_warehouse.value = 1
|
||||
} else {
|
||||
financial_pm.value = 1
|
||||
}
|
||||
productList.value = []
|
||||
})
|
||||
}
|
||||
getDetail()
|
||||
const showProduct = ref(false) // 选择商品列表是否显示
|
||||
// 商品列表
|
||||
const productList = ref([])
|
||||
// 删除已有商品
|
||||
const handleDeleteProdut = (id : number) => {
|
||||
productList.value = productList.value.filter((item : any) => item.id !== id)
|
||||
}
|
||||
// 选择商品
|
||||
const onBindProduct = (e : any[]) => {
|
||||
e.forEach((item : any) => {
|
||||
if (!productList.value.find((t : any) => t.id == item.id)) {
|
||||
productList.value.push(item)
|
||||
}
|
||||
})
|
||||
showProduct.value = false
|
||||
}
|
||||
function handleChange(row) {
|
||||
row.total_price = row.num * row.price
|
||||
}
|
||||
//打开弹窗
|
||||
const open = () => {
|
||||
showDialog.value = true
|
||||
}
|
||||
|
||||
const userloading = ref(false)
|
||||
const userList = ref([])
|
||||
const remoteMethodUser = (e = '') => {
|
||||
userloading.value = true
|
||||
apiUserLists({
|
||||
nickname: e,
|
||||
page_size: 10
|
||||
})
|
||||
.then((res) => {
|
||||
userList.value = res.lists
|
||||
setTimeout(() => {
|
||||
userloading.value = false
|
||||
}, 300)
|
||||
})
|
||||
.catch((err) => {
|
||||
setTimeout(() => {
|
||||
userloading.value = false
|
||||
}, 300)
|
||||
})
|
||||
}
|
||||
const storeList = ref([])
|
||||
const generateOrderAdd = () => {
|
||||
apiPurchaseOrderGenerateOrder(generateOrderData.value).then((res) => {
|
||||
generateOrderShow.value = false
|
||||
})
|
||||
}
|
||||
const productModalKey = ref(0)
|
||||
const resetUserId = (e) => {
|
||||
productModalKey.value++
|
||||
}
|
||||
defineExpose({
|
||||
open
|
||||
})
|
||||
</script>
|
|
@ -0,0 +1,175 @@
|
|||
<template>
|
||||
<div class="edit-popup">
|
||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="1000px" @confirm="handleSubmit"
|
||||
@close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="90px">
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="用户" prop="nickname">
|
||||
<el-input v-model="formData.other_data.nickname" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="电话" prop="phone">
|
||||
<el-input v-model="formData.other_data.phone" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="地址" prop="address">
|
||||
<el-input v-model="formData.other_data.address" type="input" style="width: 400px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="到货时间" prop="arrival_time">
|
||||
<el-date-picker v-model="formData.other_data.arrival_time" type="datetime" :readonly="false"
|
||||
clearable value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择到货时间"
|
||||
style="width: 180px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="桌数" prop="tables">
|
||||
<el-input-number v-model="formData.other_data.tables" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="办事天数" prop="days">
|
||||
<el-input-number v-model="formData.other_data.days" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="厨师" prop="chef">
|
||||
<el-input v-model="formData.other_data.chef" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="电话" prop="chef_phone">
|
||||
<el-input v-model="formData.other_data.chef_phone" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="备注" prop="purpose">
|
||||
<el-input v-model="formData.other_data.purpose" type="input" style="width: 480px" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="分单员" prop="splitting_officer">
|
||||
<el-input v-model="formData.other_data.splitting_officer" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="跟单员" prop="merchandiser">
|
||||
<el-input v-model="formData.other_data.merchandiser" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="仓管员" prop="distribution_personnel">
|
||||
<el-input v-model="formData.other_data.distribution_personnel" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="运输员" prop="transporter">
|
||||
<el-input v-model="formData.other_data.transporter" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="门店员" prop="system_store_name">
|
||||
<el-input v-model="formData.other_data.system_store_name" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="区域经理" prop="regional_manager">
|
||||
<el-input v-model="formData.other_data.regional_manager" type="input" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="图片" prop="file">
|
||||
<material-picker v-model="formData.file" :limit="1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="mark">
|
||||
<el-input v-model="formData.mark" clearable placeholder="请输入备注" :readonly="false" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="beforehandOrderEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import {
|
||||
apiBeforehandOrderAdd,
|
||||
apiBeforehandOrderEdit,
|
||||
apiBeforehandOrderDetail
|
||||
} from '@/api/beforehand_order'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const mode = ref('add')
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑预订单表' : '新增预订单表'
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
file: '',
|
||||
other_data: {},
|
||||
store_id: '',
|
||||
mark: ''
|
||||
})
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data : Record<any, any>) => {
|
||||
const datas = await apiBeforehandOrderDetail({
|
||||
id: data.id
|
||||
})
|
||||
for (const key in formData) {
|
||||
if (datas[key] != null && datas[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = datas[key]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 提交按钮
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = { ...formData }
|
||||
mode.value == 'edit' ? await apiBeforehandOrderEdit(data) : await apiBeforehandOrderAdd(data)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
}
|
||||
|
||||
//打开弹窗
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
// 关闭回调
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData
|
||||
})
|
||||
</script>
|
|
@ -0,0 +1,197 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none mb-4" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" label-width="80px">
|
||||
<el-row>
|
||||
<el-form-item label="订单号" prop="order_id">
|
||||
<el-input class="w-[280px]" v-model="queryParams.order_id" clearable placeholder="请输入订单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="日期" prop="create_time">
|
||||
<el-date-picker v-model="startEndTime" type="daterange" range-separator="至"
|
||||
start-placeholder="开始日期" end-placeholder="结束日期" unlink-panels
|
||||
@change="changeStartEndTime" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单类型" prop="order_type">
|
||||
<el-select v-model="queryParams.order_type" placeholder="请选择订单类型" style="width: 240px">
|
||||
<el-option :value="1" label="铺货订单"></el-option>
|
||||
<el-option :value="2" label="摊贩订单"></el-option>
|
||||
<el-option :value="3" label="一条龙订单"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="支付订单号" prop="order_sn">
|
||||
<el-input class="w-[200px]" v-model="queryParams.order_sn" clearable placeholder="请输入订单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="入库单号" prop="order_rk">
|
||||
<el-input class="w-[200px]" v-model="queryParams.order_rk" clearable placeholder="请输入入库单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出库单号" prop="order_ck">
|
||||
<el-input class="w-[200px]" v-model="queryParams.order_ck" clearable placeholder="请输入出库单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="mark">
|
||||
<el-input class="w-[200px]" v-model="queryParams.mark" clearable placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出入库" prop="warehouse_type">
|
||||
<el-select v-model="queryParams.warehouse_type" placeholder="请选择出入库类型" style="width: 180px">
|
||||
<el-option :value="1" label="未出库"></el-option>
|
||||
<el-option :value="2" label="已出库"></el-option>
|
||||
<el-option :value="3" label="未入库"></el-option>
|
||||
<el-option :value="4" label="已入库"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<router-link :to="{
|
||||
path: 'beforehand_order_add'
|
||||
}" class="ml-4">
|
||||
<el-button type="primary"> 添加 </el-button>
|
||||
</router-link>
|
||||
<router-link :to="{
|
||||
path: 'beforehand_order_cart_info'
|
||||
}" class="ml-4">
|
||||
<el-button type="primary"> 商品列表 </el-button>
|
||||
</router-link>
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="id" prop="id" show-overflow-tooltip width="55" />
|
||||
<el-table-column label="操作时间/人员" prop="create_time" show-overflow-tooltip width="150">
|
||||
<template #default="{ row }">
|
||||
<div>{{ row.admin_name }}</div>
|
||||
<div>{{ row.create_time }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单号" prop="order_id" show-overflow-tooltip width="180">
|
||||
<template #default="{ row }">
|
||||
<div>{{ row.order_id }}</div>
|
||||
<div>{{ row.order_sn }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单类型" prop="order_type_name" show-overflow-tooltip />
|
||||
<el-table-column label="门店" prop="system_store" show-overflow-tooltip />
|
||||
<el-table-column label="入库" prop="warehousing" show-overflow-tooltip />
|
||||
<el-table-column label="出库" prop="outbound" show-overflow-tooltip />
|
||||
<el-table-column label="总价格" prop="total_price" show-overflow-tooltip />
|
||||
<el-table-column label="内部备注" prop="mark" show-overflow-tooltip />
|
||||
<el-table-column label="通知" prop="msg" show-overflow-tooltip />
|
||||
<el-table-column label="文件" prop="file" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<el-image style="width: 50px; height: 50px" :src="row.file" :preview-teleported="true" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<router-link :to="{
|
||||
path: 'beforehand_order_details',
|
||||
query: {
|
||||
id: row.id
|
||||
}
|
||||
}" class="ml-4">
|
||||
详情
|
||||
</router-link>
|
||||
<el-button link @click="handleEdit(row)"
|
||||
v-perms="['beforehand_order.beforehand_order/edit']">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button v-perms="['beforehand_order.beforehand_order/delete']" type="danger" link
|
||||
@click="handleDelete(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<edit-popup v-if="showEdit" ref="editRef" @success="getLists" @close="showEdit = false" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="manageProjectLists">
|
||||
import { ref, reactive } from 'vue'
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import {
|
||||
apiBeforehandOrderLists,
|
||||
apiBeforehandOrderDelete,
|
||||
apiPurchaseOrderOrderOutbound,
|
||||
apiPurchaseOrderOrderOutbound3
|
||||
} from '@/api/beforehand_order'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
import moment from 'moment'
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
order_id: '',
|
||||
product_name: '',
|
||||
financial_pm: 1,
|
||||
store_id: '',
|
||||
start_time: '',
|
||||
end_time: '',
|
||||
supplier_id: '',
|
||||
order_sn: '',
|
||||
order_ck: '',
|
||||
order_rk: '',
|
||||
order_type: '',
|
||||
warehouse_type: '',
|
||||
mark: ''
|
||||
})
|
||||
|
||||
const startEndTime = ref([])
|
||||
|
||||
const changeStartEndTime = () => {
|
||||
if (startEndTime.value[0] && startEndTime.value[1]) {
|
||||
queryParams.start_time = moment(startEndTime.value[0]).format('YYYY-MM-DD') + ' 00:00:00'
|
||||
queryParams.end_time = moment(startEndTime.value[1]).format('YYYY-MM-DD') + ' 23:59:59'
|
||||
} else {
|
||||
queryParams.start_time = ''
|
||||
queryParams.end_time = ''
|
||||
}
|
||||
getLists()
|
||||
}
|
||||
|
||||
const date = ref([])
|
||||
|
||||
const showEdit = ref(false)
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
// 详情
|
||||
const handleEdit = async (data : any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiBeforehandOrderLists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
// 删除
|
||||
const handleDelete = async (id : number | any[]) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await apiBeforehandOrderDelete({ id })
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss">
|
||||
.esplise {
|
||||
width: 100px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue