新增生成支付订单功能
在采购订单详情页面添加生成支付订单的功能,包括选择用户、门店和支付方式的设置。新增相关API接口和前端实现逻辑。同时,优化了订单导出功能,调整了部分UI显示。
This commit is contained in:
parent
6fb98ad209
commit
e305a1d96f
|
@ -52,3 +52,12 @@ export function apiPurchaseOrderExport(params: any) {
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 生成支付订单
|
||||||
|
*/
|
||||||
|
export function apiPurchaseOrderGenerateOrder(params: any) {
|
||||||
|
return request.post({
|
||||||
|
url: '/beforehand_order/beforehandorder/generateOrder',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- <el-button @click="xlsx(formData.id, 1)"> 打印订单 </el-button> -->
|
<!-- <el-button @click="xlsx(formData.id, 1)"> 打印订单 </el-button> -->
|
||||||
<el-button @click="xlsx2(formData.id)"> 打印商品标签 </el-button>
|
<el-button @click="xlsx2(formData.id)"> 打印商品标签 </el-button>
|
||||||
|
<el-button @click="generateOrderClick"> 生成商品订单 </el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-button type="primary" @click="dialogShop = true"> 追加 </el-button>
|
<el-button type="primary" @click="dialogShop = true"> 追加 </el-button>
|
||||||
|
|
||||||
|
@ -262,6 +263,64 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</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>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup name="storeOrderDETAILS">
|
<script lang="ts" setup name="storeOrderDETAILS">
|
||||||
|
@ -278,7 +337,7 @@ import {
|
||||||
apiBeforehandOrderCartInfoProcurementStatus
|
apiBeforehandOrderCartInfoProcurementStatus
|
||||||
} from '@/api/beforehand_order_cart_info'
|
} from '@/api/beforehand_order_cart_info'
|
||||||
import { apiWarehouseOrderRentryExport, apiWarehouseOrderExport } from '@/api/warehouse_order'
|
import { apiWarehouseOrderRentryExport, apiWarehouseOrderExport } from '@/api/warehouse_order'
|
||||||
import { apiPurchaseOrderExport } from '@/api/beforehand_order'
|
import { apiPurchaseOrderExport, apiPurchaseOrderGenerateOrder } from '@/api/beforehand_order'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
|
@ -288,11 +347,14 @@ import { apiDeliveryServiceLists } from '@/api/delivery_service'
|
||||||
import goodsOffer from './component/goodsOffer.vue'
|
import goodsOffer from './component/goodsOffer.vue'
|
||||||
import warehousing from './component/warehousing.vue'
|
import warehousing from './component/warehousing.vue'
|
||||||
import outbound from './component/outbound.vue'
|
import outbound from './component/outbound.vue'
|
||||||
|
import { apiUserLists } from '@/api/user'
|
||||||
|
import { apiSystemStoreLists } from '@/api/system_store'
|
||||||
|
|
||||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||||
// 是否显示编辑框
|
// 是否显示编辑框
|
||||||
const showEdit = ref(false)
|
const showEdit = ref(false)
|
||||||
const dialogBuyer = ref(false)
|
const dialogBuyer = ref(false)
|
||||||
|
const generateOrderShow = ref(false)
|
||||||
|
|
||||||
const goodsOfferRef = ref(null)
|
const goodsOfferRef = ref(null)
|
||||||
const warehousingRef = ref(null)
|
const warehousingRef = ref(null)
|
||||||
|
@ -332,7 +394,14 @@ const formData = ref({
|
||||||
supplier_name: '',
|
supplier_name: '',
|
||||||
warehouse_name: '',
|
warehouse_name: '',
|
||||||
system_store: '',
|
system_store: '',
|
||||||
financial_pm: ''
|
financial_pm: '',
|
||||||
|
order_sn: ''
|
||||||
|
})
|
||||||
|
const generateOrderData = ref({
|
||||||
|
id: '',
|
||||||
|
user_id: '',
|
||||||
|
pay_type: '',
|
||||||
|
store_id: ''
|
||||||
})
|
})
|
||||||
const purchase_product_offer = ref({
|
const purchase_product_offer = ref({
|
||||||
order_id: '',
|
order_id: '',
|
||||||
|
@ -382,6 +451,7 @@ const getDetail = async (row: Record<string, any>) => {
|
||||||
formData.value = { ...row }
|
formData.value = { ...row }
|
||||||
queryParams.bhoid = row.id
|
queryParams.bhoid = row.id
|
||||||
warehouse_id.value = row.warehouse_id
|
warehouse_id.value = row.warehouse_id
|
||||||
|
generateOrderData.value.id = row.id
|
||||||
if (row.financial_pm == 0) {
|
if (row.financial_pm == 0) {
|
||||||
is_warehouse.value = 1
|
is_warehouse.value = 1
|
||||||
} else {
|
} else {
|
||||||
|
@ -391,24 +461,6 @@ const getDetail = async (row: Record<string, any>) => {
|
||||||
// setFormData(data)
|
// setFormData(data)
|
||||||
getLists()
|
getLists()
|
||||||
}
|
}
|
||||||
const xlsx = (id, type) => {
|
|
||||||
if (formData.value.financial_pm == 1) {
|
|
||||||
apiWarehouseOrderRentryExport({
|
|
||||||
id: id
|
|
||||||
}).then((res) => {
|
|
||||||
window.open(res.url, '_blank')
|
|
||||||
ElMessage.success('导出成功')
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
apiWarehouseOrderExport({
|
|
||||||
id: id,
|
|
||||||
type: type
|
|
||||||
}).then((res) => {
|
|
||||||
window.open(res.url, '_blank')
|
|
||||||
ElMessage.success('导出成功')
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const xlsx2 = (id) => {
|
const xlsx2 = (id) => {
|
||||||
apiPurchaseOrderExport({
|
apiPurchaseOrderExport({
|
||||||
id: id
|
id: id
|
||||||
|
@ -485,7 +537,36 @@ const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||||
fetchFun: apiBeforehandOrderCartInfoLists,
|
fetchFun: apiBeforehandOrderCartInfoLists,
|
||||||
params: queryParams
|
params: queryParams
|
||||||
})
|
})
|
||||||
|
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 generateOrderClick = () => {
|
||||||
|
generateOrderShow.value = true
|
||||||
|
apiSystemStoreLists({ page_no: 1, page_size: 100 }).then((res) => {
|
||||||
|
storeList.value = res.lists
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const generateOrderAdd = () => {
|
||||||
|
apiPurchaseOrderGenerateOrder(generateOrderData.value).then((res) => {})
|
||||||
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
setFormData,
|
setFormData,
|
||||||
|
|
|
@ -48,9 +48,13 @@
|
||||||
<el-table-column label="id" prop="id" show-overflow-tooltip width="55" />
|
<el-table-column label="id" prop="id" show-overflow-tooltip width="55" />
|
||||||
<el-table-column label="操作时间" prop="create_time" show-overflow-tooltip />
|
<el-table-column label="操作时间" prop="create_time" show-overflow-tooltip />
|
||||||
<el-table-column label="单号" prop="order_id" show-overflow-tooltip />
|
<el-table-column label="单号" prop="order_id" show-overflow-tooltip />
|
||||||
<el-table-column label="状态" prop="financial_pm_name" show-overflow-tooltip />
|
<el-table-column
|
||||||
|
label="订单类型"
|
||||||
|
prop="order_type_name"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<!-- <el-table-column label="状态" prop="financial_pm_name" show-overflow-tooltip /> -->
|
||||||
<el-table-column label="填写人员" prop="admin_name" show-overflow-tooltip />
|
<el-table-column label="填写人员" prop="admin_name" show-overflow-tooltip />
|
||||||
<!-- <el-table-column label="批次" prop="batch" show-overflow-tooltip /> -->
|
|
||||||
<el-table-column label="总价格" prop="total_price" 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="mark" show-overflow-tooltip />
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ const router = useRouter()
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
const product_arr = productList.value.map((item: any) => {
|
const product_arr = productList.value.map((item: any) => {
|
||||||
return {
|
return {
|
||||||
product_id: item.id,
|
product_id: item.product_id,
|
||||||
cart_num: item.cart_num
|
cart_num: item.cart_num
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -125,6 +125,10 @@ const handleSubmit = async () => {
|
||||||
order_id: props.order_id,
|
order_id: props.order_id,
|
||||||
product_arr,
|
product_arr,
|
||||||
refund_price: formData.total_price
|
refund_price: formData.total_price
|
||||||
}).then((res) => {})
|
}).then((res) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
location.reload()
|
||||||
|
}, 2000)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue