This commit is contained in:
ChenQiuYu 2025-04-28 11:04:54 +08:00
parent 2a6e0dcdcd
commit a1f4d16148
3 changed files with 248 additions and 221 deletions

View File

@ -1,191 +1,197 @@
<template> <template>
<div class="edit-panel" v-loading="isLoading" element-loading-text="正在保存......"> <Mask :width="1200" :top="100" :is-show="isShow" @close="exit"
<div class="top"> title="编辑" :height="720" :show-footer="true">
<el-form :model="inventory_order_data" label-position="top" ref="orderForm"> <div class="edit-panel" v-loading="isLoading" element-loading-text="正在保存......">
<el-row> <div class="top">
<el-col :span="6"> <el-form :model="inventory_order_data" label-position="top" ref="orderForm">
<el-form-item label="订单编号"> <el-row>
<div style="width: 234px;"> <el-col :span="6">
<span class="order-info">{{ inventory_order_data.code }}</span> <el-form-item label="订单编号">
</div> <div style="width: 234px;">
</el-form-item> <span class="order-info">{{ inventory_order_data.code }}</span>
</el-col> </div>
<el-col :span="6"> </el-form-item>
<el-form-item label="采购人"> </el-col>
<span style="width: 234px;" class="order-info">{{ inventory_order_data.managerUserName }}</span> <el-col :span="6">
</el-form-item> <el-form-item label="采购人">
</el-col> <span style="width: 234px;" class="order-info">{{ inventory_order_data.managerUserName }}</span>
<el-col :span="6"> </el-form-item>
<el-form-item prop="purchaseDate" label="采购日期"> </el-col>
<el-date-picker <el-col :span="6">
v-model="inventory_order_data.purchaseDate" <el-form-item prop="purchaseDate" label="采购日期">
type="date" <el-date-picker
placeholder="选择一个创建日期" v-model="inventory_order_data.purchaseDate"
size="default" type="date"
value-format="YYYY-MM-DD" placeholder="选择一个创建日期"
v-if="orderInfoIsEdit" size="default"
style="width: 234px;" value-format="YYYY-MM-DD"
/> v-if="orderInfoIsEdit"
<span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.purchaseDate }}</span> style="width: 234px;"
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="shippingCode" label="货单号">
<el-input v-model="inventory_order_data.shippingCode" v-if="orderInfoIsEdit"></el-input>
<span class="order-info" v-else>{{ inventory_order_data.shippingCode }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item prop="invoiceCode" label="发票号">
<el-input style="width: 234px;" v-model="inventory_order_data.invoiceCode"
v-if="orderInfoIsEdit"></el-input>
<span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.invoiceCode }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="supplierId" label="供应商">
<el-select
v-model="inventory_order_data.supplierId"
placeholder="请选择供应商"
v-if="orderInfoIsEdit"
style="width: 234px;"
>
<el-option
v-for="item in supplier_list"
:key="item.id"
:label="item.name"
:value="item.id"
/> />
</el-select> <span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.purchaseDate }}</span>
<span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.supplierName }}</span> </el-form-item>
</el-form-item> </el-col>
</el-col> <el-col :span="6">
<el-col :span="6"> <el-form-item prop="shippingCode" label="货单号">
<el-form-item label="备注" style="width: 234px"> <el-input v-model="inventory_order_data.shippingCode" v-if="orderInfoIsEdit"></el-input>
<el-input style="width: 234px;" v-model="inventory_order_data.remark" v-if="orderInfoIsEdit"/> <span class="order-info" v-else>{{ inventory_order_data.shippingCode }}</span>
<span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.remark }}</span> </el-form-item>
</el-form-item> </el-col>
</el-col> </el-row>
<el-col :span="6"> <el-row>
<el-form-item label="操作"> <el-col :span="6">
<el-button type="primary" @click="saveOrderEdit" v-if="orderInfoIsEdit" plain>保存</el-button> <el-form-item prop="invoiceCode" label="发票号">
<el-button type="primary" @click="editOrder" v-else plain>编辑</el-button> <el-input style="width: 234px;" v-model="inventory_order_data.invoiceCode"
</el-form-item> v-if="orderInfoIsEdit"></el-input>
</el-col> <span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.invoiceCode }}</span>
</el-row> </el-form-item>
</el-form> </el-col>
<el-col :span="6">
<el-form-item prop="supplierId" label="供应商">
<el-select
v-model="inventory_order_data.supplierId"
placeholder="请选择供应商"
v-if="orderInfoIsEdit"
style="width: 234px;"
>
<el-option
v-for="item in supplier_list"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
<span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.supplierName }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="备注" style="width: 234px">
<el-input style="width: 234px;" v-model="inventory_order_data.remark" v-if="orderInfoIsEdit"/>
<span style="width: 234px;" class="order-info" v-else>{{ inventory_order_data.remark }}</span>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="操作">
<el-button type="primary" @click="saveOrderEdit" v-if="orderInfoIsEdit" plain>保存</el-button>
<el-button type="primary" @click="editOrder" v-else plain>编辑</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="table_content">
<div class="add_goods">
<el-button type="primary" @click="changeShowGoodSearch">{{ showGoodSearch ? '取消' : '添加药品' }}</el-button>
<div class="search">
<GoodsSearch v-if="showGoodSearch" @selectCallBack="goodsSelectCallBack"></GoodsSearch>
</div>
</div>
<el-table :data="table_list" style="width: 100%" height="250">
<el-table-column prop="name" label="药品名称" width="180" show-overflow-tooltip/>
<el-table-column label="售价" prop="unitPrice" width="80">
</el-table-column>
<el-table-column label="单位" prop="packagingUnit" width="80">
</el-table-column>
<el-table-column label="数量" width="110">
<template #default="scope">
<el-input-number
v-model="scope.row.wholeNumber"
:min="1"
size="small"
controls-position="right"
style="width: 80px"
@change="getTotalPrice"
v-if="scope.row.isEdit"
/>
<span v-else>{{ scope.row.wholeNumber }}</span>
</template>
</el-table-column>
<el-table-column label="进价" width="110">
<template #default="scope">
<el-input-number
v-model="scope.row.purchaseUnitPrice"
:min="1"
size="small"
controls-position="right"
style="width: 80px"
@change="getTotalPrice"
v-if="scope.row.isEdit"
/>
<span v-else>{{ scope.row.purchaseUnitPrice }}</span>
</template>
</el-table-column>
<el-table-column label="生产批号" width="150" prop="productionBatchCode">
<template #default="scope">
<el-input v-model="scope.row.productionBatchCode" placeholder="生产批号" style="width: 100px" size="small"
v-if="scope.row.isEdit"/>
<span v-else>{{ scope.row.productionBatchCode }}</span>
</template>
</el-table-column>
<el-table-column label="生产日期" width="140">
<template #default="scope">
<el-date-picker
v-model="scope.row.productionDate"
type="date"
placeholder="生产日期"
size="small"
style="width: 100px;"
value-format="YYYY-MM-DD"
v-if="scope.row.isEdit"
/>
<span v-else>{{ scope.row.productionDate }}</span>
</template>
</el-table-column>
<el-table-column label="有效日期" width="140">
<template #default="scope">
<el-date-picker
v-model="scope.row.expiryDate"
type="date"
placeholder="有效日期"
size="small"
style="width: 100px;"
value-format="YYYY-MM-DD"
v-if="scope.row.isEdit"
/>
<span v-else>{{ scope.row.expiryDate }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<template #default="scope">
<el-button size="small" @click="addOneGoods(scope.row)" type="primary" plain
v-if="!scope.row.id&&scope.row.isEdit">保存
</el-button>
<el-button size="small" @click="removeTableRow(scope.row)" type="danger" plain v-if="!scope.row.id">移除
</el-button>
<el-button size="small" @click="saveGoodEdit(scope.row)" type="primary" plain
v-if="scope.row.id&&scope.row.isEdit">保存
</el-button>
<el-button size="small" @click="openGoodEdit(scope.row)" type="primary" plain
v-if="scope.row.id&&!scope.row.isEdit">编辑
</el-button>
<el-button size="small" @click="returnableOne(scope.row.id)" type="danger" plain v-if="scope.row.id">退货
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div> </div>
<div class="table_content"> <template #footer>
<div class="add_goods"> <div class="bottom">
<el-button type="primary" @click="changeShowGoodSearch">{{ showGoodSearch ? '取消' : '添加药品' }}</el-button> <div class="totalPrice">
<div class="search"> 订单总金额<span style="color: #FF282E;font-size: 12px"></span><span
<GoodsSearch v-if="showGoodSearch" @selectCallBack="goodsSelectCallBack"></GoodsSearch> style="color: #FF282E">{{ inventory_order_data.totalPrice.toFixed(2) }}</span>
</div>
<div class="btn">
<el-button type="danger" @click="returnableAll()" plain>整单退货</el-button>
<el-button type="primary" @click="exit">关闭</el-button>
</div> </div>
</div> </div>
<el-table :data="table_list" style="width: 100%" height="250"> </template>
<el-table-column prop="name" label="药品名称" width="180" show-overflow-tooltip/> </Mask>
<el-table-column label="售价" prop="unitPrice" width="80">
</el-table-column>
<el-table-column label="单位" prop="packagingUnit" width="80">
</el-table-column>
<el-table-column label="数量" width="110">
<template #default="scope">
<el-input-number
v-model="scope.row.wholeNumber"
:min="1"
size="small"
controls-position="right"
style="width: 80px"
@change="getTotalPrice"
v-if="scope.row.isEdit"
/>
<span v-else>{{ scope.row.wholeNumber }}</span>
</template>
</el-table-column>
<el-table-column label="进价" width="110">
<template #default="scope">
<el-input-number
v-model="scope.row.purchaseUnitPrice"
:min="1"
size="small"
controls-position="right"
style="width: 80px"
@change="getTotalPrice"
v-if="scope.row.isEdit"
/>
<span v-else>{{ scope.row.purchaseUnitPrice }}</span>
</template>
</el-table-column>
<el-table-column label="生产批号" width="150" prop="productionBatchCode">
<template #default="scope">
<el-input v-model="scope.row.productionBatchCode" placeholder="生产批号" style="width: 100px" size="small"
v-if="scope.row.isEdit"/>
<span v-else>{{ scope.row.productionBatchCode }}</span>
</template>
</el-table-column>
<el-table-column label="生产日期" width="140">
<template #default="scope">
<el-date-picker
v-model="scope.row.productionDate"
type="date"
placeholder="生产日期"
size="small"
style="width: 100px;"
value-format="YYYY-MM-DD"
v-if="scope.row.isEdit"
/>
<span v-else>{{ scope.row.productionDate }}</span>
</template>
</el-table-column>
<el-table-column label="有效日期" width="140">
<template #default="scope">
<el-date-picker
v-model="scope.row.expiryDate"
type="date"
placeholder="有效日期"
size="small"
style="width: 100px;"
value-format="YYYY-MM-DD"
v-if="scope.row.isEdit"
/>
<span v-else>{{ scope.row.expiryDate }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<template #default="scope">
<el-button size="small" @click="addOneGoods(scope.row)" type="primary" plain
v-if="!scope.row.id&&scope.row.isEdit">保存
</el-button>
<el-button size="small" @click="removeTableRow(scope.row)" type="danger" plain v-if="!scope.row.id">移除
</el-button>
<el-button size="small" @click="saveGoodEdit(scope.row)" type="primary" plain
v-if="scope.row.id&&scope.row.isEdit">保存
</el-button>
<el-button size="small" @click="openGoodEdit(scope.row)" type="primary" plain
v-if="scope.row.id&&!scope.row.isEdit">编辑
</el-button>
<el-button size="small" @click="returnableOne(scope.row.id)" type="danger" plain v-if="scope.row.id">退货
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="bottom">
<div class="totalPrice">
订单总金额<span style="color: #FF282E;font-size: 12px"></span><span
style="color: #FF282E">{{ inventory_order_data.totalPrice.toFixed(2) }}</span>
</div>
<div class="btn">
<el-button type="danger" @click="returnableAll()" plain>整单退货</el-button>
<el-button type="primary" @click="exit">关闭</el-button>
</div>
</div>
</div>
<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;"/>
@ -202,7 +208,7 @@ 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";
let props = defineProps({ const props = defineProps({
code: { code: {
type: String, type: String,
default: "" default: ""
@ -291,10 +297,14 @@ const saveOrderEdit = () => {
}) })
} }
onMounted(() => { const isShow = ref<any>(false)
const code = ref<any>('')
const init = (e: any) => {
code.value = e
isShow.value = true
getSupplierList() getSupplierList()
getOrderDetail() getOrderDetail()
}) }
const getTotalPrice = () => { const getTotalPrice = () => {
let totalPrice = 0; let totalPrice = 0;
table_list.value.forEach((item: any) => { table_list.value.forEach((item: any) => {
@ -304,6 +314,7 @@ const getTotalPrice = () => {
} }
const emit = defineEmits(['close', 'updateOrderDetail']) const emit = defineEmits(['close', 'updateOrderDetail'])
let exit = () => { let exit = () => {
isShow.value = false
emit('close') emit('close')
} }
const table_list: any = ref([]) const table_list: any = ref([])
@ -331,7 +342,7 @@ const getSupplierList = () => {
}) })
} }
const getOrderDetail = () => { const getOrderDetail = () => {
post("inventory/order/detail", {code: props.code}).then((res: any) => { post("inventory/order/detail", {code: code.value}).then((res: any) => {
inventory_order_data.value = res.inventoryOrder inventory_order_data.value = res.inventoryOrder
table_list.value = res.inventoryOrderGoodsList table_list.value = res.inventoryOrderGoodsList
}) })
@ -387,7 +398,7 @@ const goodsSelectCallBack = (inventory: any) => {
}, 200) }, 200)
} }
defineExpose({init})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.link { .link {
@ -428,7 +439,38 @@ const goodsSelectCallBack = (inventory: any) => {
.active { .active {
background-color: red; background-color: red;
} }
.edit-panel {
height: 562px;
padding: 24px 24px 0;
display: flex;
flex-direction: column;
.top {
height: 180px;
}
.table_content {
flex: 1;
margin-top: 24px;
display: flex;
flex-direction: column;
.add_goods {
height: 90px;
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 800;
font-size: 18px;
color: #333333;
font-style: normal;
.search {
width: 50%;
}
}
}
}
.bottom { .bottom {
height: 86px; height: 86px;
display: flex; display: flex;
@ -439,30 +481,23 @@ const goodsSelectCallBack = (inventory: any) => {
color: #333333; color: #333333;
font-style: normal; font-style: normal;
background: #fff; background: #fff;
box-shadow: 0px -2 4px 0px rgba(0,0,0,0.1); box-shadow: 0px -2 4px 0px rgba(0, 0, 0, 0.1);
border-radius: 0 0 8px 8px; border-radius: 0 0 8px 8px;
} }
.error { .error {
background-color: #F00; background-color: #F00;
} }
.edit-panel{
margin-top: 24px; .bottom {
} padding: 0 24px;
.table_content{ height: 100%;
margin-top: 24px; display: flex;
.add_goods{ justify-content: space-between;
height: 80px; align-items: center;
display: flex; font-weight: 400;
justify-content: space-between; font-size: 22px;
align-items: center; color: #333333;
font-weight: 800; font-style: normal;
font-size: 18px;
color: #333333;
font-style: normal;
.search{
width: 50%;
}
}
} }
</style> </style>

View File

@ -15,13 +15,6 @@
</div> </div>
</el-form> </el-form>
<el-descriptions title="解析后的数据" size="small" :column="2" border> <el-descriptions title="解析后的数据" size="small" :column="2" border>
<!-- <el-descriptions-item-->
<!-- align="center"-->
<!-- label="定点机构编码"-->
<!-- :span="2"-->
<!-- >-->
<!-- {{ decryptedText.fixmedinsCode }}-->
<!-- </el-descriptions-item>-->
<el-descriptions-item <el-descriptions-item
align="center" align="center"
label="证书创建时间" label="证书创建时间"
@ -38,13 +31,13 @@
align="center" align="center"
label="权限" label="权限"
> >
{{ decryptedText.rule == 1 ? "禁用医保" : decryptedText.rule == 2 ? "全部开放" : "" }} {{ decryptedText.rule == 1 ? "禁用医保" : decryptedText.rule == 2 ? "全部开放" : "暂无" }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item
align="center" align="center"
label="定点机构编码" label="定点机构编码"
> >
{{ decryptedText.fixmedinsCode}} {{ decryptedText.fixmedinsCode||'无'}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>

View File

@ -47,10 +47,7 @@
</div> </div>
</div> </div>
<AddOrder ref="addOrderRef" @close="closeAddOrder"/> <AddOrder ref="addOrderRef" @close="closeAddOrder"/>
<Mask :width="1200" :top="100" :is-show="is_edit" @close="closeEditOrder" <EditOrder ref="editOrderRef" @close="closeEditOrder" @updateOrderDetail="init"/>
title="编辑" :height="720">
<EditOrder :code="open_code" @close="closeEditOrder" @updateOrderDetail="init"/>
</Mask>
</div> </div>
</template> </template>
@ -76,9 +73,11 @@ const openAdd = () => {
addOrderRef.value.init() addOrderRef.value.init()
}) })
} }
const editOrderRef = ref<any>('')
let open_edit = (row: any) => { let open_edit = (row: any) => {
is_edit.value = true nextTick(() => {
open_code.value = row.code editOrderRef.value.init(row.code)
})
} }