Merge remote-tracking branch 'origin/main'

This commit is contained in:
牛子源 2025-05-14 16:31:44 +08:00
commit 3340e5f3fd
9 changed files with 359 additions and 73 deletions

View File

@ -20,7 +20,7 @@
<div class="container"> <div class="container">
<div class="tabs"> <div class="tabs">
<span v-for="(item,index) in statusList " :key="index" :class="query.status == item.value ? 'tabs-item' : ''" <span v-for="(item,index) in statusList " :key="index" :class="query.status == item.value ? 'tabs-item' : ''"
@click="tab(item)">{{ item.label }}&nbsp;{{ item.num }} @click="tab(item)">{{ item.label }}&nbsp;({{ item.num }})
</span> </span>
</div> </div>
<div class="search"> <div class="search">

View File

@ -46,12 +46,6 @@
width: 140px; width: 140px;
height: 50px; height: 50px;
position: relative; position: relative;
span {
display: inline-block;
height: 50px;
}
&::before { &::before {
content: ''; content: '';
display: inline-block; display: inline-block;

View File

@ -1,7 +1,6 @@
<template> <template>
<div style="position: fixed; z-index: 99999;"> <div style="position: fixed; z-index: 99999;">
<Mask :height="700" :width="900" :is-show="show"> <Mask :height="700" :width="900" :is-show="show" @close="show =false">
<CloseBtn @click="show = false"></CloseBtn>
<el-card> <el-card>
<template #header> <template #header>
<div class="header">追溯码采集</div> <div class="header">追溯码采集</div>

View File

@ -14,7 +14,19 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="采购人"> <el-form-item label="采购人">
<el-input style="width: 234px;" disabled v-model="userInfo.name"></el-input> <el-select
v-model="inventory_order_data.managerUserId"
placeholder="选择采购人"
clearable
style="width: 240px"
>
<el-option
v-for="item in managerUserList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -42,7 +54,7 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="supplierId" label="供应商" :rules="formRules.supplierId"> <el-form-item prop="supplierId" label="供应商" :rules="formRules.supplierId">
<el-select style="width: 234px;" v-model="inventory_order_data.supplierId" placeholder="请选择供应商"> <el-select style="width: 130px;margin-right: 10px" v-model="inventory_order_data.supplierId" placeholder="请选择供应商">
<el-option <el-option
v-for="item in supplier_list" v-for="item in supplier_list"
:key="item.id" :key="item.id"
@ -50,6 +62,7 @@
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
<el-button type="primary" @click="addSupplier">添加供应商</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -163,6 +176,7 @@
</div> </div>
</template> </template>
</Mask> </Mask>
<AddSupplier ref="addSupplierRef" @close="getSupplierList"></AddSupplier>
<!-- <Mask :is-show="is_add" :top="100">--> <!-- <Mask :is-show="is_add" :top="100">-->
<!-- <Edit ref="editRef" @close="is_add = false;"/>--> <!-- <Edit ref="editRef" @close="is_add = false;"/>-->
<!-- </Mask>--> <!-- </Mask>-->
@ -175,6 +189,7 @@ import {post} from '@/utils/request.ts'
import Edit from "@/components/inventory/goods/Edit.vue"; import Edit from "@/components/inventory/goods/Edit.vue";
import Mask from "@/components/common/Mask.vue"; import Mask from "@/components/common/Mask.vue";
import {ElMessage} from "element-plus"; import {ElMessage} from "element-plus";
import AddSupplier from "@/components/inventory/supplier/AddSupplier.vue";
import GoodsSearch from "@/components/inventory/GoodsSearch.vue"; import GoodsSearch from "@/components/inventory/GoodsSearch.vue";
import CheckoutDetail from "@/components/inventory/CheckoutDetail.vue"; import CheckoutDetail from "@/components/inventory/CheckoutDetail.vue";
import {Search} from "@element-plus/icons-vue"; import {Search} from "@element-plus/icons-vue";
@ -195,8 +210,8 @@ let inventory_order_data = ref({
managerUserId: null, managerUserId: null,
kindConut: 0, kindConut: 0,
totalPrice: 0, totalPrice: 0,
shippingCode: null, shippingCode: "-",
invoiceCode: null, invoiceCode: "-",
inventoryOrderGoodsList: [] inventoryOrderGoodsList: []
}) })
const checkProductionDate = (row: any) => { const checkProductionDate = (row: any) => {
@ -245,6 +260,11 @@ const getTotalPrice = () => {
const emit = defineEmits(['close']) const emit = defineEmits(['close'])
let exit = () => { let exit = () => {
isShow.value = false isShow.value = false
initInventoryOrderData()
table_list.value = []
emit('close')
}
const initInventoryOrderData = () => {
inventory_order_data.value = { inventory_order_data.value = {
code: null, code: null,
purchaseDate: getFormattedDate(), purchaseDate: getFormattedDate(),
@ -254,12 +274,10 @@ let exit = () => {
managerUserId: null, managerUserId: null,
kindConut: 0, kindConut: 0,
totalPrice: 0, totalPrice: 0,
shippingCode: null, shippingCode: "-",
invoiceCode: null, invoiceCode: "-",
inventoryOrderGoodsList: [] inventoryOrderGoodsList: []
} }
table_list.value = []
emit('close')
} }
const table_list: any = ref([]) const table_list: any = ref([])
@ -281,7 +299,6 @@ let confirm = async () => {
// //
inventory_order_data.value.kindConut = table_list.value.length; inventory_order_data.value.kindConut = table_list.value.length;
inventory_order_data.value.managerUserId = userInfo.value.id;
// //
if (table_list.value.length === 0) { if (table_list.value.length === 0) {
@ -355,6 +372,7 @@ const userInfo = ref<any>({})
const getUserInfo = () => { const getUserInfo = () => {
post("manager/user/verify", null).then((res: any) => { post("manager/user/verify", null).then((res: any) => {
userInfo.value = res userInfo.value = res
inventory_order_data.value.managerUserId = res.id
}) })
} }
const removeTableRow = (row: any) => { const removeTableRow = (row: any) => {
@ -367,7 +385,16 @@ const removeTableRow = (row: any) => {
const init = () => { const init = () => {
isShow.value = true isShow.value = true
getSupplierList() getSupplierList()
getManagerUserList()
getUserInfo() getUserInfo()
}
const managerUserList: any = ref([])
const getManagerUserList = () => {
post("manager/user/list", {
}).then((res: any) => {
managerUserList.value = res
})
} }
// //
const openCheckoutDetail = (row: any) => { const openCheckoutDetail = (row: any) => {
@ -389,6 +416,12 @@ const confirmTrace = (data: any) => {
// } // }
// }) // })
} }
const addSupplierRef = ref()
const addSupplier = () => {
nextTick(() => {
addSupplierRef.value?.addInit();
})
}
defineExpose({init}) defineExpose({init})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -14,7 +14,21 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="采购人"> <el-form-item label="采购人">
<span style="width: 234px;" class="order-info">{{ inventory_order_data.managerUserName }}</span> <el-select
v-if="orderInfoIsEdit"
v-model="inventory_order_data.managerUserId"
placeholder="选择采购人"
clearable
style="width: 240px"
>
<el-option
v-for="item in managerUserList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
<span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.managerUserName }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -52,7 +66,7 @@
v-model="inventory_order_data.supplierId" v-model="inventory_order_data.supplierId"
placeholder="请选择供应商" placeholder="请选择供应商"
v-if="orderInfoIsEdit" v-if="orderInfoIsEdit"
style="width: 234px;" style="width: 130px;margin-right: 10px"
> >
<el-option <el-option
v-for="item in supplier_list" v-for="item in supplier_list"
@ -61,7 +75,8 @@
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
<span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.supplierName }}</span> <el-button v-if="orderInfoIsEdit" type="primary" @click="addSupplier">添加供应商</el-button>
<span style="width: 234px;" class="order-info" v-if="!orderInfoIsEdit">{{ inventory_order_data.supplierName }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -192,7 +207,7 @@
</template> </template>
</Mask> </Mask>
<AddSupplier ref="addSupplierRef" @close="getSupplierList"></AddSupplier>
<Mask :is-show="is_add"> <Mask :is-show="is_add">
<Edit ref="editRef" @close="is_add = false;"/> <Edit ref="editRef" @close="is_add = false;"/>
</Mask> </Mask>
@ -207,6 +222,7 @@ import Mask from "@/components/common/Mask.vue";
import {ElMessage, ElMessageBox} from "element-plus"; import {ElMessage, ElMessageBox} from "element-plus";
import GoodsSearch from "@/components/inventory/GoodsSearch.vue"; import GoodsSearch from "@/components/inventory/GoodsSearch.vue";
import CloseBtn from "@/components/CloseBtn.vue"; import CloseBtn from "@/components/CloseBtn.vue";
import AddSupplier from "@/components/inventory/supplier/AddSupplier.vue";
const props = defineProps({ const props = defineProps({
code: { code: {
@ -303,7 +319,9 @@ const init = (e: any) => {
code.value = e code.value = e
isShow.value = true isShow.value = true
getSupplierList() getSupplierList()
getManagerUserList()
getOrderDetail() getOrderDetail()
} }
const getTotalPrice = () => { const getTotalPrice = () => {
let totalPrice = 0; let totalPrice = 0;
@ -362,6 +380,13 @@ const addOneGoods = (row: any) => {
} }
) )
} }
const managerUserList: any = ref([])
const getManagerUserList = () => {
post("manager/user/list", {}).then((res: any) => {
managerUserList.value = res
})
}
const checkValue = (data: any) => { const checkValue = (data: any) => {
let msg = null; let msg = null;
if (data.wholeNumber == 0) { if (data.wholeNumber == 0) {
@ -397,7 +422,13 @@ const goodsSelectCallBack = (inventory: any) => {
getTotalPrice() getTotalPrice()
}, 200) }, 200)
} }
const addSupplierRef = ref();
const addSupplier = () => {
nextTick(() => {
addSupplierRef.value?.addInit()
})
}
defineExpose({init}) defineExpose({init})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -439,6 +470,7 @@ defineExpose({init})
.active { .active {
background-color: red; background-color: red;
} }
.edit-panel { .edit-panel {
height: 562px; height: 562px;
padding: 24px 24px 0; padding: 24px 24px 0;
@ -471,6 +503,7 @@ defineExpose({init})
} }
} }
} }
.bottom { .bottom {
height: 86px; height: 86px;
display: flex; display: flex;

View File

@ -61,6 +61,11 @@ const reciceMessage = (response: Response) => {
} }
const errorCallback = () => { const errorCallback = () => {
emit('changeLoading', false) emit('changeLoading', false)
ElMessage({
message: "读卡器连接失败",
duration: 1000,
type: 'error',
});
} }
const emit = defineEmits(['socialCardUpdate', 'close', 'changeLoading']) const emit = defineEmits(['socialCardUpdate', 'close', 'changeLoading'])
@ -82,14 +87,6 @@ const getInfoFor1101 = (params: any) => {
duration: 1000, duration: 1000,
}); });
emit('socialCardUpdate', socialCard.value) emit('socialCardUpdate', socialCard.value)
}).catch((err:any) => {
isReading.value = false;
emit('changeLoading', false)
ElMessage({
message: "读取失败",
duration: 1000,
type: 'error',
});
}) })
} }

View File

@ -1,7 +1,6 @@
<template> <template>
<div class="layout-container"> <div class="layout-container">
<Header class="header"/> <Header class="header"/>
<header> <header>
<div class="center-wrapper"> <div class="center-wrapper">
<div class="childMenu"> <div class="childMenu">
@ -11,8 +10,6 @@
</div> </div>
</div> </div>
</header> </header>
<div class="space"></div> <div class="space"></div>
<main class="layout-main"> <main class="layout-main">
<router-view/> <router-view/>

View File

@ -5,19 +5,22 @@
<div class="left"> <div class="left">
<el-form :inline="true" :model="searchModel"> <el-form :inline="true" :model="searchModel">
<el-form-item> <el-form-item>
<el-input placeholder="请输入名称" <el-input placeholder="名称/首字母/批准文号/条形码/标识码"
clearable clearable
v-model="searchModel.keyword" v-model="searchModel.keyword"
style="width: 290px;height: 42px" style="width: 290px;height: 42px"
@input="searchGoods" @input="searchGoods"
> >
<template #prefix> <template #prefix>
<el-icon><Search /></el-icon> <el-icon>
<Search/>
</el-icon>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-cascader style="width: 180px;height: 42px" :options="allCateList" :show-all-levels="false" v-model="searchModel.cateId" clearable/> <el-cascader style="width: 180px;height: 42px" :options="allCateList" :show-all-levels="false"
v-model="searchModel.cateId" clearable/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select
@ -37,7 +40,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="margin-right: 0"> <el-form-item style="margin-right: 0">
<el-input placeholder="最低毛利率" v-model="searchModel.minInterestRate" style="width: 100px;height: 42px"> <el-input placeholder="最低毛利率" v-model="searchModel.minInterestRate"
style="width: 100px;height: 42px">
<template #suffix> <template #suffix>
<el-icon class="el-input__icon">%</el-icon> <el-icon class="el-input__icon">%</el-icon>
</template> </template>
@ -47,22 +51,33 @@
</el-icon> </el-icon>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input placeholder="最高毛利率" v-model="searchModel.maxInterestRate" style="width: 100px;height: 42px"> <el-input placeholder="最高毛利率" v-model="searchModel.maxInterestRate"
style="width: 100px;height: 42px">
<template #suffix> <template #suffix>
<el-icon class="el-input__icon">%</el-icon> <el-icon class="el-input__icon">%</el-icon>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="btn">
<div @click="searchGoods">搜索</div>
<div @click="resetSearch">重置</div>
</div> </div>
</div> <div class="btn-group">
<div class="right"> <div class="left">
<el-checkbox v-model="inventoryNumber" label="不看0库存" size="large" @change="searchGoods"/> <el-checkbox v-model="inventoryNumber" label="不看0库存" size="large" @change="searchGoods"/>
<el-checkbox v-model="status" label="不看已停用" size="large" @change="searchGoods"/> <el-checkbox v-model="status" label="不看已停用" size="large" @change="searchGoods"/>
</div> </div>
<div class="btn" @click="resetSearch">
<el-icon style="margin-right: 10px">
<Refresh/>
</el-icon>
重置
</div>
<div class="btn" @click="searchGoods">
<el-icon style="margin-right: 10px">
<Search/>
</el-icon>
搜索
</div>
</div>
</div> </div>
<div class="addBtn"> <div class="addBtn">
<span @click="open_edit(1301,0)">新增中西成药</span> <span @click="open_edit(1301,0)">新增中西成药</span>
@ -72,7 +87,8 @@
</div> </div>
</div> </div>
<div class="content_goods" ref="content"> <div class="content_goods" ref="content">
<el-table :data="tableData" style="width: 100%;height: 100%;padding: 0 24px" @row-click="openMack" :header-cell-style="{ backgroundColor: '#F1F5FB' }"> <el-table :data="tableData" style="width: 100%;height: 100%;padding: 0 24px" @row-click="openMack"
:header-cell-style="{ backgroundColor: '#F1F5FB' }">
<el-table-column fixed prop="name" label="名称" width="200" show-overflow-tooltip> <el-table-column fixed prop="name" label="名称" width="200" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ scope.row.name }}{{ scope.row.commonName ? "(" + scope.row.commonName + ")" : "" }} {{ scope.row.name }}{{ scope.row.commonName ? "(" + scope.row.commonName + ")" : "" }}
@ -152,11 +168,6 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" prop="remark" width="100" show-overflow-tooltip/> <el-table-column label="备注" prop="remark" width="100" show-overflow-tooltip/>
<el-table-column label="医保类别">
<template #default="scope">
{{ getTypeName(scope.row.type) }}
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div class="bottom"> <div class="bottom">
@ -204,7 +215,8 @@ import Edit from "@/components/inventory/goods/Edit.vue";
import InventoryBatchDetail from "@/components/inventory/goods/InventoryBatchDetail.vue"; import InventoryBatchDetail from "@/components/inventory/goods/InventoryBatchDetail.vue";
import InventoryStatistics from "@/components/inventory/goods/InventoryStatistics.vue"; import InventoryStatistics from "@/components/inventory/goods/InventoryStatistics.vue";
import CloseBtn from "@/components/CloseBtn.vue"; import CloseBtn from "@/components/CloseBtn.vue";
import {Search, SemiSelect} from "@element-plus/icons-vue"; import {Search, SemiSelect, Refresh} from "@element-plus/icons-vue";
const statisticsData = ref<any>({}) const statisticsData = ref<any>({})
const inventoryNumber = ref(false) const inventoryNumber = ref(false)
const status = ref(false) const status = ref(false)
@ -431,7 +443,7 @@ const getStatisticsData = () => {
flex-direction: column; flex-direction: column;
.top { .top {
height: 157px; height: 144px;
padding: 24px 24px 0; padding: 24px 24px 0;
background: #fff; background: #fff;
display: flex; display: flex;
@ -468,6 +480,12 @@ const getStatisticsData = () => {
color: #4D6DE4; color: #4D6DE4;
text-align: center; text-align: center;
line-height: 42px; line-height: 42px;
cursor: pointer;
&:hover {
background: #4D6DE4;
color: #fff;
border: none;
}
} }
} }
} }
@ -499,10 +517,34 @@ const getStatisticsData = () => {
.tags { .tags {
margin-left: 5px; margin-left: 5px;
} }
:deep(.el-cascader .el-input) { :deep(.el-cascader .el-input) {
height: 42px; height: 42px;
} }
:deep(.el-select__wrapper) { :deep(.el-select__wrapper) {
height: 42px; height: 42px;
} }
.btn-group {
display: flex;
.btn {
width: 120px;
height: 42px;
background: #FFFFFF;
border-radius: 6px;
border: 1px solid #979797;
display: flex;
justify-content: center;
align-items: center;
margin-left: 24px;
cursor: pointer;
&:hover {
background: #4D6DE4;
color: #fff;
border: none;
}
}
}
</style> </style>

View File

@ -1,37 +1,111 @@
<template> <template>
<div class="container-wrapper"> <div class="container-wrapper">
<div class="top"> <div class="top">
<el-dropdown> <div class="search">
<el-button type="primary" :icon="Plus" @click="openAdd">新增采购</el-button> <div class="left">
</el-dropdown> <el-form :inline="true" :model="searchModel">
<el-form-item >
<el-date-picker
v-model="selectedDate"
type="daterange"
range-separator="-"
@change="handleDateChange"
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
</el-form-item>
<el-form-item>
<el-input
v-model="searchModel.code"
placeholder="单号"
style="width: 200px;height: 42px"
:prefix-icon="Search"
>
</el-input>
</el-form-item>
<el-form-item>
<el-select
v-model="searchModel.supplierIds"
placeholder="供应商"
style="width: 200px;height: 42px"
multiple
>
<el-option
v-for="item in supplier_list"
:key="item"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-select
v-model="searchModel.managerUserIds"
placeholder="采购人"
style="width: 200px;height: 42px"
multiple
>
<el-option
v-for="item in managerUserList"
:key="item"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<div class="right">
<div class="btn" @click="resetSearch">
<el-icon style="margin-right: 10px">
<Refresh/>
</el-icon>
重置
</div>
<div class="btn" @click="init">
<el-icon style="margin-right: 10px">
<Search/>
</el-icon>
搜索
</div>
</div>
</div>
<div class="addBtn">
<span @click="openAdd">新增采购</span>
</div>
</div> </div>
<div class="content_list"> <div class="content_list">
<el-scrollbar> <el-scrollbar>
<el-table :data="tableData" style="width: 100%" @row-click="open_edit"> <el-table :data="tableData" style="width: 100%" @row-click="open_edit" :header-cell-style="{ backgroundColor: '#F1F5FB' }">
<el-table-column fixed label="进货单号" width="250" show-overflow-tooltip> <el-table-column fixed label="采购单号" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
<div class="link">{{ scope.row.code }}</div> <div class="link">{{ scope.row.code }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="品种" prop="kindCount" width="100"> <el-table-column label="货单号" prop="shippingCode">
</el-table-column> </el-table-column>
<el-table-column label="入库金额" width="100"> <el-table-column label="品种" prop="kindCount">
</el-table-column>
<el-table-column label="入库金额">
<template #default="scope"> <template #default="scope">
{{ scope.row.totalPrice.toFixed(2) }} {{ scope.row.totalPrice.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="采购人" prop="managerUserName" width="100"></el-table-column> <el-table-column label="采购人" prop="managerUserName"></el-table-column>
<el-table-column label="供应商" prop="supplierName"></el-table-column> <el-table-column label="供应商" prop="supplierName"></el-table-column>
<el-table-column prop="purchaseDate" label="采购时间"> <el-table-column prop="purchaseDate" label="采购时间">
<template #default="scope"> <template #default="scope">
{{ formatDate(scope.row.purchaseDate) }} {{ formatDate(scope.row.purchaseDate) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createDatetime" label="创建时间"> <!-- <el-table-column prop="createDatetime" label="入库时间">-->
<template #default="scope"> <!-- <template #default="scope">-->
{{ formatDate(scope.row.createDatetime) }} <!-- {{ formatDate(scope.row.purchaseDate) }}-->
</template> <!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="备注" prop="remark">
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-scrollbar> </el-scrollbar>
@ -60,7 +134,8 @@ import {useRoute} from "vue-router";
import AddOrder from "@/components/inventory/purchase/AddOrder.vue"; import AddOrder from "@/components/inventory/purchase/AddOrder.vue";
import Mask from "@/components/common/Mask.vue"; import Mask from "@/components/common/Mask.vue";
import EditOrder from "@/components/inventory/purchase/EditOrder.vue"; import EditOrder from "@/components/inventory/purchase/EditOrder.vue";
import {Plus} from "@element-plus/icons-vue"; import {Plus, Refresh, Search, SemiSelect} from "@element-plus/icons-vue";
import {formatDateArray, getEndOfDay} from "@/utils/dateUtils.ts";
let tableData = ref([]) let tableData = ref([])
let is_edit = ref(false) let is_edit = ref(false)
@ -68,6 +143,8 @@ const route = useRoute()
let open_code = ref(null) let open_code = ref(null)
onMounted(() => { onMounted(() => {
init() init()
getSupplierList()
getManagerUserList()
}) })
const addOrderRef = ref<any>('') const addOrderRef = ref<any>('')
const openAdd = () => { const openAdd = () => {
@ -87,6 +164,7 @@ let init = () => {
const query = { const query = {
page: page.value, page: page.value,
pageSize: 20, pageSize: 20,
...searchModel.value
} }
post("inventory/order/list", {query: query}).then((res: any) => { post("inventory/order/list", {query: query}).then((res: any) => {
tableData.value = res.list tableData.value = res.list
@ -115,6 +193,49 @@ const formatDate = (isoStr: any) => {
const date = new Date(isoStr); const date = new Date(isoStr);
return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`; return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
} }
const selectedDate = ref<any>([])
const handleDateChange = (date: any[]) => {
selectedDate.value = formatDateArray(date)
if (selectedDate.value[0] == selectedDate.value[1]) {
selectedDate.value[1] = getEndOfDay(selectedDate.value[1]); // 23:59
}
searchModel.value.beginTime = selectedDate.value[0]
searchModel.value.endTime = selectedDate.value[1]
}
const supplier_list = ref<any>([])
const getSupplierList = () => {
const query = {
turn: 1
}
post("inventory/supplier/list", {query: query}).then((res: any) => {
supplier_list.value = res.list
})
}
const managerUserList: any = ref([])
const getManagerUserList = () => {
post("manager/user/list", {
}).then((res: any) => {
managerUserList.value = res
})
}
const searchModel = ref({
code: "",
managerUserIds: [],
supplierIds: [],
beginTime: null,
endTime:null
})
const resetSearch = () => {
searchModel.value = {
code: "",
managerUserIds: [],
supplierIds: [],
beginTime: null,
endTime:null
}
init()
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@use "@/assets/scss/base.scss"; @use "@/assets/scss/base.scss";
@ -202,4 +323,74 @@ const formatDate = (isoStr: any) => {
} }
} }
.top {
height: 110px;
background: #fff;
display: flex;
flex-direction: column;
.search {
display: flex;
justify-content: space-between;
.left {
flex: 1;
display: flex;
justify-content: space-between;
margin-right: 24px;
.el-form-item {
margin-right: 5px;
}
}
.right {
display: flex;
.btn {
width: 120px;
height: 42px;
background: #FFFFFF;
border-radius: 6px;
border: 1px solid #979797;
display: flex;
justify-content: center;
align-items: center;
margin-left: 24px;
cursor: pointer;
&:hover {
background: #4D6DE4;
color: #fff;
border: none;
}
}
}
}
.addBtn {
span {
display: inline-block;
width: 120px;
height: 42px;
background: #FFFFFF;
border-radius: 6px;
border: 1px solid #4D6DE4;
margin-right: 24px;
font-weight: 500;
font-size: 16px;
color: #4D6DE4;
text-align: center;
line-height: 42px;
cursor: pointer;
&:hover {
background: #4D6DE4;
color: #fff;
border: none;
}
}
}
}
:deep(.el-range-editor.el-input__wrapper) {
height: 42px;
}
:deep(.el-select__wrapper) {
height: 42px;
}
</style> </style>