This commit is contained in:
ChenQiuYu 2025-04-25 13:44:28 +08:00
parent 6714080a17
commit f86c13b301
11 changed files with 160 additions and 195 deletions

View File

@ -43,7 +43,7 @@ body {
.container-wrapper { .container-wrapper {
height: 100%; height: 100%;
//background-color: base.$background-color-panel; background-color: #fff;
@include base.center-wrapper; @include base.center-wrapper;
//@include base.padding; //@include base.padding;
@include base.border-radius; @include base.border-radius;

View File

@ -1,5 +1,4 @@
<template> <template>
<CloseBtn @click="exit"></CloseBtn>
<el-descriptions title="新增领用" border label-width="100"> <el-descriptions title="新增领用" border label-width="100">
<el-descriptions-item label="领用人" width="200"> <el-descriptions-item label="领用人" width="200">
<el-input v-model="formData.name" disabled></el-input> <el-input v-model="formData.name" disabled></el-input>

View File

@ -1,5 +1,4 @@
<template> <template>
<CloseBtn @click="exit"></CloseBtn>
<el-descriptions title="详情领用" border label-width="100"> <el-descriptions title="详情领用" border label-width="100">
<el-descriptions-item label="领用人" width="200"> <el-descriptions-item label="领用人" width="200">
<el-input v-model="formData.name" disabled></el-input> <el-input v-model="formData.name" disabled></el-input>

View File

@ -1,6 +1,4 @@
<template> <template>
<CloseBtn @click="exit"></CloseBtn>
<div class="edit-panel" v-loading="isLoading" element-loading-text="正在保存......"> <div class="edit-panel" v-loading="isLoading" element-loading-text="正在保存......">
<div class="top"> <div class="top">

View File

@ -1,5 +1,4 @@
<template> <template>
<CloseBtn @click="exit"></CloseBtn>
<div class="edit-panel" v-loading="isLoading" element-loading-text="正在保存......"> <div class="edit-panel" v-loading="isLoading" element-loading-text="正在保存......">
<div class="top"> <div class="top">
<el-descriptions title="采购订单" border> <el-descriptions title="采购订单" border>

View File

@ -1,7 +1,5 @@
<template> <template>
<CloseBtn @click="close"></CloseBtn>
<el-descriptions <el-descriptions
title="新增供货商"
direction="vertical" direction="vertical"
:column="1" :column="1"
> >

View File

@ -28,10 +28,10 @@
/> />
</div> </div>
</div> </div>
<Mask :width="1200" :height="600" :top="100" :is-show="is_add" @close="is_add=false"> <Mask :width="1200" :height="600" :top="100" :is-show="is_add" @close="is_add=false" title="新增">
<AddApply @close="closeAddApply"/> <AddApply @close="closeAddApply"/>
</Mask> </Mask>
<Mask :width="1200" :height="600" :top="100" :is-show="is_detail" @close="is_detail=false"> <Mask :width="1200" :height="600" :top="100" :is-show="is_detail" @close="is_detail=false" title="编辑">
<DetailApply :id="id" @close="closeDetailApply"/> <DetailApply :id="id" @close="closeDetailApply"/>
</Mask> </Mask>
</div> </div>
@ -97,7 +97,7 @@ const rowClick = (row: any) => {
@use "@/assets/scss/base.scss"; @use "@/assets/scss/base.scss";
.container-wrapper { .container-wrapper {
box-sizing: border-box; box-sizing: border-box;
padding: 20px; padding: 24px;
overflow: hidden; overflow: hidden;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -115,12 +115,10 @@ const rowClick = (row: any) => {
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
position: relative; position: relative;
border-bottom: 1px solid #EEE; border-top: 1px solid #EEE;
.page_btn_list { display: flex;
position: absolute; justify-content: flex-end;
left: 0; align-items: center;
top: 10px;
}
} }
} }

View File

@ -2,7 +2,7 @@
<div class="container-wrapper"> <div class="container-wrapper">
<div class="top"> <div class="top">
<el-dropdown> <el-dropdown>
<el-button type="primary" @click="openAdd">开始盘点</el-button> <el-button type="primary" :icon="Plus" @click="openAdd">开始盘点</el-button>
</el-dropdown> </el-dropdown>
</div> </div>
<div class="content_list"> <div class="content_list">
@ -44,6 +44,7 @@ import {post} from "@/utils/request.ts";
import Mask from "@/components/common/Mask.vue"; import Mask from "@/components/common/Mask.vue";
import Add from "@/components/inventory/check/Add.vue"; import Add from "@/components/inventory/check/Add.vue";
import Detail from "@/components/inventory/check/Detail.vue"; import Detail from "@/components/inventory/check/Detail.vue";
import {Plus} from "@element-plus/icons-vue";
const tableData = ref([]) const tableData = ref([])
const getCheck = () => { const getCheck = () => {
@ -95,27 +96,29 @@ const formatDate = (isoStr:any) => {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@use "../../assets/scss/base.scss"; @use "../../assets/scss/base.scss";
.container-wrapper { .container-wrapper {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
padding: 24px;
.content_list { .content_list {
flex: 1; flex: 1;
overflow: hidden; overflow: hidden;
margin-top: base.$margin-base; margin-top: base.$margin-base;
} }
.bottom { .bottom {
height: 60px; height: 60px;
background-color: #FFF; background-color: #FFF;
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
position: relative; position: relative;
border-bottom: 1px solid #EEE; border-top: 1px solid #EEE;
.page_btn_list { display: flex;
position: absolute; justify-content: flex-end;
left: 0; align-items: center;
top: 10px;
}
} }
} }
</style> </style>

View File

@ -1,22 +1,6 @@
<template> <template>
<div class="container-wrapper"> <div class="container-wrapper">
<div class="top"> <div class="top">
<el-dropdown>
<el-button type="primary">新增商品
<el-icon class="el-icon--right">
<arrow-down/>
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="open_edit(1301,0)">中西成药</el-dropdown-item>
<el-dropdown-item @click="open_edit(1302,0)">中药饮片</el-dropdown-item>
<el-dropdown-item @click="open_edit(1306,0)">医疗器材</el-dropdown-item>
<el-dropdown-item @click="open_edit(0,0)">其他商品</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="search"> <div class="search">
<el-form :inline="true" :model="searchModel"> <el-form :inline="true" :model="searchModel">
<el-form-item> <el-form-item>
@ -79,8 +63,15 @@
<el-checkbox v-model="status" label="不看已停用" size="large" @change="searchGoods"/> <el-checkbox v-model="status" label="不看已停用" size="large" @change="searchGoods"/>
</div> </div>
</div> </div>
<div class="addBtn">
<el-button type="primary" :icon="Plus" @click="open_edit(1301,0)">新增中西成药</el-button>
<el-button type="primary" :icon="Plus" @click="open_edit(1302,0)">新增中药饮片</el-button>
<el-button type="primary" :icon="Plus" @click="open_edit(1306,0)">新增医疗器材</el-button>
<el-button type="primary" :icon="Plus" @click="open_edit(0,0)">新增其他商品</el-button>
</div>
</div>
<div class="content_goods" ref="content"> <div class="content_goods" ref="content">
<el-table :data="tableData" style="width: 100%;height: 100%" @row-click="openMack"> <el-table :data="tableData" style="width: 100%;height: 100%;padding: 0 24px" @row-click="openMack">
<el-table-column fixed prop="name" label="名称" width="200" show-overflow-tooltip/> <el-table-column fixed prop="name" label="名称" width="200" show-overflow-tooltip/>
<el-table-column fixed label="类型" width="200"> <el-table-column fixed label="类型" width="200">
<template #default="scope"> <template #default="scope">
@ -95,12 +86,12 @@
<el-table-column fixed label="厂家" prop="producer" width="230" show-overflow-tooltip/> <el-table-column fixed label="厂家" prop="producer" width="230" show-overflow-tooltip/>
<el-table-column fixed label="进价" width="120"> <el-table-column fixed label="进价" width="120">
<template #default="scope"> <template #default="scope">
{{ scope.row.purchaseUnitPrice?.toFixed(2) }} {{ scope.row.purchaseUnitPrice.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed label="售价" width="120"> <el-table-column fixed label="售价" width="120">
<template #default="scope"> <template #default="scope">
{{ scope.row.unitPrice?.toFixed(2) }} {{ scope.row.unitPrice.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="标签" prop="producer" width="200"> <el-table-column label="标签" prop="producer" width="200">
@ -116,7 +107,7 @@
</el-table-column> </el-table-column>
<el-table-column label="毛利率" width="120"> <el-table-column label="毛利率" width="120">
<template #default="scope"> <template #default="scope">
{{ (scope.row.interestRate * 100)?.toFixed(2) }}% {{ (scope.row.interestRate * 100).toFixed(2) }}%
</template> </template>
</el-table-column> </el-table-column>
@ -140,7 +131,7 @@
</el-table-column> </el-table-column>
<el-table-column label="药品成本" prop="costPrice" show-overflow-tooltip> <el-table-column label="药品成本" prop="costPrice" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ scope.row.costPrice?.toFixed(2) }} {{ scope.row.costPrice.toFixed(2) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="医保码" prop="hilistCode" show-overflow-tooltip></el-table-column> <el-table-column label="医保码" prop="hilistCode" show-overflow-tooltip></el-table-column>
@ -167,10 +158,13 @@
</div> </div>
</div> </div>
</div> </div>
<Mask :is-show="is_add" :top="50" :height="900" @close="is_add = false" title="新建档案"> <Mask :is-show="is_add" :top="50" :height="900">
<Edit ref="editRef" @close="is_add = false;init()"/> <Edit ref="editRef" @close="is_add = false;init()"/>
</Mask> </Mask>
<Mask :is-show="open" :top="50" :height="600" @close="open=false" title="列表信息"> <Mask :is-show="open" :top="50" :height="600">
<div style="height: 50px">
<CloseBtn @click="closeMack"></CloseBtn>
</div>
<el-tabs v-model="activeName" @tab-change="changeTab"> <el-tabs v-model="activeName" @tab-change="changeTab">
<el-tab-pane label="商品信息" name="first"> <el-tab-pane label="商品信息" name="first">
<Edit ref="editRef" @close="open = false;init()"/> <Edit ref="editRef" @close="open = false;init()"/>
@ -188,11 +182,12 @@
import {nextTick, onMounted, ref} from "vue"; import {nextTick, onMounted, ref} from "vue";
import {ElTabPane} from "element-plus"; import {ElTabPane} from "element-plus";
import {post} from '@/utils/request.ts'; import {post} from '@/utils/request.ts';
import Mask from "@/components/common/Mask.vue"; import Mask from "@/components/Mask.vue";
import Edit from "@/components/inventory/goods/Edit.vue"; 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 {ArrowDown, SemiSelect} from "@element-plus/icons-vue"; import CloseBtn from "@/components/CloseBtn.vue";
import {Plus, SemiSelect} from "@element-plus/icons-vue";
const inventoryNumber = ref(false) const inventoryNumber = ref(false)
const status = ref(false) const status = ref(false)
@ -398,21 +393,21 @@ const activeName = ref('first')
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
}
.tags { .top {
margin-left: 5px; height: 112px;
} padding: 24px 24px 0;
background: #fff;
.search { .search {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-top: 10px;
.el-form-item { .el-form-item {
margin-right: 5px; margin-right: 5px;
} }
} }
}
.content_goods { .content_goods {
width: 100%; width: 100%;
@ -427,12 +422,15 @@ const activeName = ref('first')
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
position: relative; position: relative;
border-bottom: 1px solid #EEE; border-top: 1px solid #EEE;
display: flex;
justify-content: flex-end;
align-items: center;
}
}
.page_btn_list { .tags {
position: absolute; margin-left: 5px;
left: 0;
top: 10px;
}
} }
</style> </style>

View File

@ -6,7 +6,7 @@
</el-dropdown> </el-dropdown>
</div> </div>
<div class="content_list"> <div class="content_list">
<el-table :data="tableData" style="width: 100%"> <el-table :data="tableData" style="width: 100%" @row-click="open_add">
<el-table-column fixed label="进货单号" width="250" show-overflow-tooltip> <el-table-column fixed label="进货单号" width="250" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
<div class="link">{{ scope.row.code }}</div> <div class="link">{{ scope.row.code }}</div>
@ -21,20 +21,17 @@
</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" width="100"></el-table-column>
<el-table-column label="供应商" prop="supplierName" width="250"></el-table-column> <el-table-column label="供应商" prop="supplierName"></el-table-column>
<el-table-column prop="purchaseDate" label="采购时间" width="250"> <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="创建时间" width="250"> <el-table-column prop="createDatetime" label="创建时间">
<template #default="scope"> <template #default="scope">
{{ formatDate(scope.row.createDatetime) }} {{ formatDate(scope.row.createDatetime) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" min-width="120" #default="scope">
<el-button link type="primary" size="small" @click="open_add(scope.row.code)">详情</el-button>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div class="bottom"> <div class="bottom">
@ -49,7 +46,7 @@
/> />
</div> </div>
</div> </div>
<Mask :width="1200" :height="700" :top="100" :is-show="is_add"> <Mask :width="1200" :height="700" :top="100" :is-show="is_add" @close="is_add=false" :title="open_code?'编辑':'新增'">
<AddOrder v-if="!open_code" @close="closeAddOrder"/> <AddOrder v-if="!open_code" @close="closeAddOrder"/>
<EditOrder v-else :code="open_code" @close="is_add=false" @updateOrderDetail="init"/> <EditOrder v-else :code="open_code" @close="is_add=false" @updateOrderDetail="init"/>
</Mask> </Mask>
@ -117,7 +114,7 @@ const formatDate = (isoStr: any) => {
@use "@/assets/scss/base.scss"; @use "@/assets/scss/base.scss";
.container-wrapper { .container-wrapper {
box-sizing: border-box; box-sizing: border-box;
padding: 20px; padding: 24px;
overflow: hidden; overflow: hidden;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -135,12 +132,10 @@ const formatDate = (isoStr: any) => {
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
position: relative; position: relative;
border-bottom: 1px solid #EEE; border-top: 1px solid #EEE;
.page_btn_list { display: flex;
position: absolute; justify-content: flex-end;
left: 0; align-items: center;
top: 10px;
}
} }
} }
.full_screen { .full_screen {

View File

@ -2,11 +2,11 @@
<div class="container-wrapper"> <div class="container-wrapper">
<div class="top"> <div class="top">
<el-dropdown> <el-dropdown>
<el-button type="primary" @click="openAdd">添加供应商</el-button> <el-button type="primary" :icon="Plus" @click="openAdd">添加供应商</el-button>
</el-dropdown> </el-dropdown>
</div> </div>
<div class="content_list"> <div class="content_list">
<el-table :data="tableData" style="width: 100%"> <el-table :data="tableData" @row-click="editSupplier">
<el-table-column label="供应商名称" prop="name" width="250"> <el-table-column label="供应商名称" prop="name" width="250">
</el-table-column> </el-table-column>
<el-table-column label="启用状态" prop="turn" width="80"> <el-table-column label="启用状态" prop="turn" width="80">
@ -15,16 +15,10 @@
<el-tag type="info" v-else>已禁用</el-tag> <el-tag type="info" v-else>已禁用</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="许可证号" prop="licenseCode" width="150"></el-table-column> <el-table-column label="许可证号" prop="licenseCode"></el-table-column>
<el-table-column label="联系人" prop="contactName" width="100"></el-table-column> <el-table-column label="联系人" prop="contactName" width="100"></el-table-column>
<el-table-column label="联系方式" prop="contactTel" width="150"></el-table-column> <el-table-column label="联系方式" prop="contactTel" width="150"></el-table-column>
<el-table-column label="备注" width="250" prop="reamark"/> <el-table-column label="备注" prop="reamark"/>
<el-table-column label="操作" width="150">
<template #default="scope">
<el-button link type="primary" size="small" @click="editSupplier(scope.row)">详情</el-button>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div class="bottom"> <div class="bottom">
@ -39,7 +33,7 @@
/> />
</div> </div>
</div> </div>
<Mask :width="400" :height="600" :is-show="showAdd" :top="100"> <Mask :width="400" :height="600" :is-show="showAdd" :top="100" @close="showAdd = false" :title="id?'编辑':'添加'">
<AddSupplier @close="showAdd = false" @saveSuccess="getSupplier()" ref="addSupplierRef"></AddSupplier> <AddSupplier @close="showAdd = false" @saveSuccess="getSupplier()" ref="addSupplierRef"></AddSupplier>
</Mask> </Mask>
</div> </div>
@ -49,6 +43,7 @@ import {nextTick, onMounted, ref, watch} from "vue";
import {post} from "@/utils/request.ts"; import {post} from "@/utils/request.ts";
import Mask from "@/components/common/Mask.vue"; import Mask from "@/components/common/Mask.vue";
import AddSupplier from "@/components/inventory/supplier/AddSupplier.vue"; import AddSupplier from "@/components/inventory/supplier/AddSupplier.vue";
import {Plus} from "@element-plus/icons-vue";
const tableData = ref([]) const tableData = ref([])
const getSupplier = () => { const getSupplier = () => {
@ -67,7 +62,9 @@ const addSupplierRef = ref();
const openAdd = () => { const openAdd = () => {
showAdd.value = true showAdd.value = true
} }
const id = ref('')
const editSupplier = (row: any) => { const editSupplier = (row: any) => {
id.value = row.id
openAdd() openAdd()
nextTick(() => { nextTick(() => {
addSupplierRef.value.edit(row) addSupplierRef.value.edit(row)
@ -95,25 +92,10 @@ let changePage = (value: number) => {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@use "@/assets/scss/base.scss"; @use "@/assets/scss/base.scss";
.bottom {
width: 100%;
height: 60px;
background-color: #FFF;
box-sizing: border-box;
padding: 10px;
position: relative;
border-bottom: 1px solid #EEE;
.page_btn_list {
position: absolute;
left: 0;
top: 10px;
}
}
.container-wrapper { .container-wrapper {
box-sizing: border-box; box-sizing: border-box;
padding: 20px; padding: 24px;
overflow: hidden; overflow: hidden;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -133,14 +115,10 @@ let changePage = (value: number) => {
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
position: relative; position: relative;
border-bottom: 1px solid #EEE; border-top: 1px solid #EEE;
margin-top: base.$margin-base; display: flex;
justify-content: flex-end;
.page_btn_list { align-items: center;
position: absolute;
left: 0;
top: 10px;
}
} }
} }
</style> </style>