935 lines
28 KiB
Vue
935 lines
28 KiB
Vue
<template>
|
||
<div class="app-container">
|
||
<el-dialog :title="title" v-model="visible" width="95%" append-to-body>
|
||
<el-row :gutter="10" class="mb8">
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
icon="Plus"
|
||
@click="handleAdd"
|
||
v-hasPermi="['system:user:add']"
|
||
>提交审核</el-button
|
||
>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
icon="Printer"
|
||
:disabled="multiple"
|
||
@click="handleDelete"
|
||
v-hasPermi="['monitor:job:remove']"
|
||
>打印</el-button
|
||
>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
icon="EditPen"
|
||
@click="getList"
|
||
v-hasPermi="['system:user:import']"
|
||
>计算金额</el-button
|
||
>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
<el-form
|
||
:model="receiptHeaderForm"
|
||
ref="receiptHeaderRef"
|
||
:inline="true"
|
||
v-show="showSearch"
|
||
label-width="90px"
|
||
>
|
||
<el-form-item label="单据号" prop="busNo">
|
||
<el-input
|
||
v-model="receiptHeaderForm.busNo"
|
||
placeholder="单据号:"
|
||
clearable
|
||
style="width: 260px"
|
||
/>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="经手人:"
|
||
prop="practitionerId"
|
||
label-width="120px"
|
||
>
|
||
<el-select
|
||
v-model="receiptHeaderForm.practitionerId"
|
||
placeholder=""
|
||
clearable
|
||
style="width: 150px"
|
||
>
|
||
<el-option
|
||
v-for="practitioner in practitionerListOptions"
|
||
:key="practitioner.value"
|
||
:label="practitioner.label"
|
||
:value="practitioner.value"
|
||
/>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="单据日期:">
|
||
<el-date-picker
|
||
v-model="receiptHeaderForm.occurrenceTime"
|
||
value-format="YYYY/MM/DD HH:mm:ss"
|
||
type="datetime"
|
||
></el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item label="供应商:" prop="supplierId">
|
||
<el-select
|
||
v-model="receiptHeaderForm.supplierId"
|
||
placeholder=""
|
||
clearable
|
||
style="width: 150px"
|
||
>
|
||
<el-option
|
||
v-for="supplier in supplierListOptions"
|
||
:key="supplier.value"
|
||
:label="supplier.label"
|
||
:value="supplier.value"
|
||
/>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="药品类型:" prop="medicationType">
|
||
<el-select
|
||
v-model="receiptHeaderForm.medicationType"
|
||
placeholder=""
|
||
clearable
|
||
style="width: 150px"
|
||
>
|
||
<el-option
|
||
v-for="itemType in purchase_type"
|
||
:key="itemType.value"
|
||
:label="itemType.label"
|
||
:value="itemType.value"
|
||
/>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="仓库类型:" prop="purposeTypeEnum">
|
||
<el-select
|
||
v-model="receiptHeaderForm.purposeTypeEnum"
|
||
placeholder=""
|
||
clearable
|
||
style="width: 150px"
|
||
>
|
||
<el-option
|
||
v-for="dict in warehous_type"
|
||
:key="dict.value"
|
||
:label="dict.label"
|
||
:value="dict.value"
|
||
/>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-form>
|
||
<el-tabs type="border-card">
|
||
<el-tab-pane label="入库单明细">
|
||
<el-row :gutter="10" class="mb8">
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
icon="Plus"
|
||
@click="addNewRow"
|
||
v-hasPermi="['system:user:add']"
|
||
>添加行</el-button
|
||
>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="danger"
|
||
plain
|
||
icon="Delete"
|
||
:disabled="multiple"
|
||
@click="deleteSelectedRows"
|
||
v-hasPermi="['monitor:job:remove']"
|
||
>删除行</el-button
|
||
>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
icon="Plus"
|
||
@click="handleAdd"
|
||
v-hasPermi="['system:user:add']"
|
||
>确认当前行</el-button
|
||
>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="danger"
|
||
plain
|
||
icon="Delete"
|
||
:disabled="multiple"
|
||
@click="handleDelete"
|
||
v-hasPermi="['monitor:job:remove']"
|
||
>取消行编辑</el-button
|
||
>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="danger"
|
||
plain
|
||
icon="Delete"
|
||
:disabled="multiple"
|
||
@click="handleDelete"
|
||
v-hasPermi="['monitor:job:remove']"
|
||
>取消所有修改</el-button
|
||
>
|
||
</el-col>
|
||
<!-- <el-col :span="1.5">
|
||
<el-button
|
||
type="primary"
|
||
plain
|
||
icon="Search"
|
||
@click="getList"
|
||
v-hasPermi="['system:user:import']"
|
||
style="margin-left: 20px"
|
||
>另存模板</el-button
|
||
>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-button
|
||
type="warning"
|
||
plain
|
||
icon="CircleClose"
|
||
@click="handleClear"
|
||
v-hasPermi="['system:user:export']"
|
||
>选择模板</el-button
|
||
>
|
||
</el-col> -->
|
||
</el-row>
|
||
|
||
<el-table
|
||
v-loading="loading"
|
||
:data="purchaseinventoryList"
|
||
@selection-change="handleSelectionChange"
|
||
>
|
||
<el-table-column type="selection" width="50" align="center" />
|
||
<el-table-column
|
||
label="项目"
|
||
align="center"
|
||
key="itemId"
|
||
prop="itemId"
|
||
width="300"
|
||
>
|
||
<template #default="scope">
|
||
<div style="display: flex; align-items: center">
|
||
<el-select
|
||
v-model="scope.row.itemTable"
|
||
placeholder="请选择"
|
||
@blur="handleBlur(scope.row, scope.$index)"
|
||
>
|
||
<el-option label="单位1" value="单位1" />
|
||
<el-option label="单位2" value="单位2" />
|
||
</el-select>
|
||
<el-tooltip content="该项目必填" placement="top">
|
||
<el-icon style="color: red; margin-left: 5px"
|
||
><Warning
|
||
/></el-icon>
|
||
</el-tooltip>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="规格"
|
||
align="center"
|
||
key="statusEnum_enumText"
|
||
prop="statusEnum_enumText"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.guige" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="厂家/产地"
|
||
align="center"
|
||
key="supplierName"
|
||
prop="supplierName"
|
||
:show-overflow-tooltip="true"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.cahngdi" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="计量单位"
|
||
align="center"
|
||
key="unitCode"
|
||
prop="unitCode"
|
||
:show-overflow-tooltip="true"
|
||
width="100"
|
||
>
|
||
<template #default="scope">
|
||
<div style="display: flex; align-items: center">
|
||
<el-select
|
||
v-model="scope.row.unitCode"
|
||
placeholder="请选择计量单位"
|
||
@blur="handleBlur(scope.row, scope.$index)"
|
||
>
|
||
<el-option label="单位1" value="单位1" />
|
||
<el-option label="单位2" value="单位2" />
|
||
</el-select>
|
||
<el-tooltip content="该项目必填" placement="top">
|
||
<el-icon style="color: red; margin-left: 5px"
|
||
><Warning
|
||
/></el-icon>
|
||
</el-tooltip>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="仓库"
|
||
align="center"
|
||
key="purposeLocationStoreId"
|
||
prop="purposeLocationStoreId"
|
||
:show-overflow-tooltip="true"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<div style="display: flex; align-items: center">
|
||
<el-select
|
||
v-model="scope.row.purposeLocationStoreId"
|
||
placeholder="请选择仓库"
|
||
@blur="handleBlur(scope.row, scope.$index)"
|
||
>
|
||
<el-option label="仓库1" value="仓库1" />
|
||
<el-option label="仓库2" value="仓库2" />
|
||
</el-select>
|
||
<el-tooltip content="该项目必填" placement="top">
|
||
<el-icon style="color: red; margin-left: 5px"
|
||
><Warning
|
||
/></el-icon>
|
||
</el-tooltip>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="货位"
|
||
align="center"
|
||
key="applicantId"
|
||
prop="applicantId"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<div style="display: flex; align-items: center">
|
||
<el-select
|
||
v-model="scope.row.approverId"
|
||
placeholder="请选择货位"
|
||
@blur="handleBlur(scope.row, scope.$index)"
|
||
>
|
||
<el-option label="货位1" value="货位1" />
|
||
<el-option label="货位2" value="货位2" />
|
||
</el-select>
|
||
<el-tooltip content="该项目必填" placement="top">
|
||
<el-icon style="color: red; margin-left: 5px"
|
||
><Warning
|
||
/></el-icon>
|
||
</el-tooltip>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="总库存数量"
|
||
align="center"
|
||
key="approverId"
|
||
prop="approverId"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.busNo" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="采购数量"
|
||
align="center"
|
||
key="itemQuantity"
|
||
prop="itemQuantity"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<div style="display: flex; align-items: center">
|
||
<el-input
|
||
v-model="scope.row.itemQuantity"
|
||
placeholder=""
|
||
@blur="handleBlur(scope.row, scope.$index)"
|
||
/>
|
||
<el-tooltip content="该项目必填" placement="top">
|
||
<el-icon style="color: red; margin-left: 5px"
|
||
><Warning
|
||
/></el-icon>
|
||
</el-tooltip>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="采购单价 "
|
||
align="center"
|
||
key="price"
|
||
prop="price"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<div style="display: flex; align-items: center">
|
||
<el-input
|
||
v-model="scope.row.price"
|
||
placeholder=""
|
||
@blur="handleBlur(scope.row, scope.$index)"
|
||
/>
|
||
<el-tooltip content="该项目必填" placement="top">
|
||
<el-icon style="color: red; margin-left: 5px"
|
||
><Warning
|
||
/></el-icon>
|
||
</el-tooltip>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="售价 "
|
||
align="center"
|
||
key="sellPrice"
|
||
prop="sellPrice"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.sellPrice" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="拆零售价 "
|
||
align="center"
|
||
key="minSellPrice"
|
||
prop="minSellPrice"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.minSellPrice" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="合计金额 "
|
||
align="center"
|
||
key="totalPrice"
|
||
prop="totalPrice"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.totalPrice" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="产品批号"
|
||
align="center"
|
||
key="lotNumber"
|
||
prop="lotNumber"
|
||
width="160"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.lotNumber" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="生产日期"
|
||
align="center"
|
||
key="startTime"
|
||
prop="startTime"
|
||
width="120"
|
||
>
|
||
<template #default="scope">
|
||
<el-date-picker
|
||
v-model="scope.row.startTime"
|
||
type="date"
|
||
placeholder="选择日期"
|
||
format="YYYY-MM-DD"
|
||
value-format="YYYY-MM-DD"
|
||
/>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="有效期至"
|
||
align="center"
|
||
key="endTime"
|
||
prop="endTime"
|
||
width="120"
|
||
>
|
||
<template #default="scope">
|
||
<el-date-picker
|
||
v-model="scope.row.endTime"
|
||
type="date"
|
||
placeholder="选择日期"
|
||
format="YYYY-MM-DD"
|
||
value-format="YYYY-MM-DD"
|
||
/>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="发票号 "
|
||
align="center"
|
||
key="invoiceNo"
|
||
prop="invoiceNo"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.invoiceNo" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="药品追溯码"
|
||
align="center"
|
||
key="traceNo"
|
||
prop="traceNo"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.traceNo" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="追溯码包装"
|
||
align="center"
|
||
key="approvalTime"
|
||
prop="approvalTime"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.zsbz" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="备注"
|
||
align="center"
|
||
key="detailJson"
|
||
prop="detailJson"
|
||
width="130"
|
||
>
|
||
<template #default="scope">
|
||
<el-input v-model="scope.row.detailJson" placeholder="" />
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="操作"
|
||
align="center"
|
||
width="140"
|
||
class-name="small-padding fixed-width"
|
||
fixed="right"
|
||
>
|
||
<template #default="scope">
|
||
<el-button
|
||
link
|
||
type="primary"
|
||
icon="Edit"
|
||
@click="handleUpdate(scope.row)"
|
||
v-hasPermi="['system:user:edit']"
|
||
>编辑</el-button
|
||
>
|
||
<el-button
|
||
link
|
||
type="primary"
|
||
icon="View"
|
||
@click="handleView(scope.row)"
|
||
v-hasPermi="['system:user:remove']"
|
||
>查看</el-button
|
||
>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<pagination
|
||
v-show="total > 0"
|
||
:total="total"
|
||
v-model:page="queryParams.pageNo"
|
||
v-model:limit="queryParams.pageSize"
|
||
@pagination="getList"
|
||
/>
|
||
</el-tab-pane>
|
||
</el-tabs>
|
||
<el-row
|
||
:gutter="10"
|
||
class="mb8"
|
||
style="
|
||
margin-top: 15px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-start;
|
||
"
|
||
>
|
||
<el-col :span="2">
|
||
<span>制单人:</span>
|
||
</el-col>
|
||
<el-col :span="2">
|
||
<span>审核人:</span>
|
||
</el-col>
|
||
<el-col :span="2">
|
||
<span>单据状态:</span>
|
||
</el-col>
|
||
<el-col :span="1.5">
|
||
<el-row
|
||
:gutter="8"
|
||
style="
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-start;
|
||
"
|
||
>
|
||
<el-col :span="6">
|
||
<span>合计:</span>
|
||
</el-col>
|
||
<el-col :span="18">
|
||
<el-input v-model="heji" placeholder="" disabled />
|
||
</el-col>
|
||
</el-row>
|
||
</el-col>
|
||
</el-row>
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script setup name="InventoryReceiptDialog">
|
||
import {
|
||
getPurchaseinventoryList,
|
||
editPurchaseinventory,
|
||
addPurchaseinventory,
|
||
getPurchaseinventoryOne,
|
||
getInit,
|
||
deptTreeSelect,
|
||
locationTreeSelect,
|
||
delPurchaseinventory,
|
||
} from "./purchaseinventory";
|
||
|
||
const router = useRouter();
|
||
const { proxy } = getCurrentInstance();
|
||
const purchaseinventoryRef = ref(null); // 初始化 ref
|
||
const {
|
||
warehous_type,
|
||
category_code,
|
||
service_type_code,
|
||
specialty_code,
|
||
purchase_type,
|
||
} = proxy.useDict(
|
||
"warehous_type",
|
||
"category_code",
|
||
"service_type_code",
|
||
"specialty_code",
|
||
"purchase_type"
|
||
);
|
||
|
||
const purchaseinventoryList = ref([]);
|
||
const open = ref(false);
|
||
const loading = ref(true);
|
||
const showSearch = ref(true);
|
||
const ids = ref([]);
|
||
const single = ref(true);
|
||
const multiple = ref(true);
|
||
const total = ref(0);
|
||
const title = ref("");
|
||
const activeFlagOptions = ref(undefined);
|
||
const appointmentRequiredFlagOptions = ref(undefined);
|
||
const deptOptions = ref(undefined); // 部门树选项
|
||
const locationOptions = ref(undefined); // 地点树选项
|
||
const dateRange = ref([]);
|
||
const visible = ref(false);
|
||
|
||
const props = defineProps({
|
||
practitionerListOptions: {
|
||
type: Object,
|
||
required: false,
|
||
},
|
||
itemTypeOptions: {
|
||
type: Object,
|
||
required: false,
|
||
},
|
||
supplierListOptions: {
|
||
type: Object,
|
||
required: false,
|
||
},
|
||
busNoAdd: {
|
||
type: String,
|
||
required: true,
|
||
},
|
||
});
|
||
|
||
const data = reactive({
|
||
form: {},
|
||
receiptHeaderForm: {},
|
||
queryParams: {
|
||
pageNo: 1,
|
||
pageSize: 10,
|
||
searchKey: undefined, // 供应商名称
|
||
busNo: undefined, // 编码
|
||
statusEnum: undefined, // 状态
|
||
supplierId: undefined, // 供应商ID
|
||
applyTimeStart: undefined, // 申请时间开始
|
||
practitionerId: undefined, // 经手人ID
|
||
},
|
||
rules: {
|
||
offeredOrgId: [
|
||
{ required: true, message: "提供部门不能为空", trigger: "blur" },
|
||
],
|
||
categoryCode: [
|
||
{ required: true, message: "服务分类不能为空", trigger: "blur" },
|
||
],
|
||
fwTypeCode: [
|
||
{ required: true, message: "服务类型不能为空", trigger: "blur" },
|
||
],
|
||
specialtyCode: [
|
||
{ required: true, message: "服务专业不能为空", trigger: "blur" },
|
||
],
|
||
locationId: [{ required: true, message: "地点不能为空", trigger: "blur" }],
|
||
name: [{ required: true, message: "服务名称不能为空", trigger: "blur" }],
|
||
contact: [
|
||
{ required: true, message: "联系人电话不能为空", trigger: "blur" },
|
||
],
|
||
appointmentRequiredFlag: [
|
||
{ required: true, message: "预约要求不能为空", trigger: "blur" },
|
||
],
|
||
activeFlag: [
|
||
{ required: true, message: "活动标识不能为空", trigger: "blur" },
|
||
],
|
||
chargeName: [{ required: true, message: "名称不能为空", trigger: "blur" }],
|
||
description: [{ required: true, message: "描述不能为空", trigger: "blur" }],
|
||
cwTypeCode: [
|
||
{ required: true, message: "财务类别不能为空", trigger: "blur" },
|
||
],
|
||
ybType: [{ required: true, message: "医保类别不能为空", trigger: "blur" }],
|
||
price: [{ required: true, message: "基础价格不能为空", trigger: "blur" }],
|
||
},
|
||
});
|
||
|
||
const { queryParams, form, receiptHeaderForm, rules } = toRefs(data);
|
||
const itemTypeOptions = ref(undefined); // 入库项目类型
|
||
const practitionerListOptions = ref(undefined); // 查询经手人列表
|
||
const supplierListOptions = ref(undefined); // 供应商列表
|
||
const selectedRows = ref([]); // 用于存储选中的行
|
||
|
||
const addNewRow = () => {
|
||
if (data.isAdding) {
|
||
proxy.$message.warning("请先保存当前行后再新增!");
|
||
return;
|
||
}
|
||
const newRow = {
|
||
id: "",
|
||
itemTable: "",
|
||
itemQuantity: "",
|
||
itemId: "",
|
||
unitCode: "",
|
||
detailJson: "",
|
||
supplierId: "",
|
||
purposeTypeEnum: "",
|
||
purposeLocationId: null,
|
||
purposeLocationStoreId: null,
|
||
practitionerId: "",
|
||
traceNo: "",
|
||
invoiceNo: "",
|
||
startTime: "",
|
||
endTime: "",
|
||
price: "",
|
||
totalPrice: "",
|
||
sellPrice: "",
|
||
minSellPrice: "",
|
||
isEditing: true, // 标记当前行是否正在编辑
|
||
};
|
||
purchaseinventoryList.value.push(newRow);
|
||
data.isAdding = true; // 设置标志位为 true,表示有未保存的
|
||
};
|
||
|
||
const handleBlur = (row, index) => {
|
||
console.log(row, "rowhandleBlurhandleBlurhandleBlurhandleBlurhandleBlur");
|
||
if (
|
||
row.itemTable &&
|
||
row.unitCode &&
|
||
row.purposeLocationStoreId &&
|
||
row.approverId &&
|
||
row.itemQuantity &&
|
||
row.price
|
||
) {
|
||
saveRow(row, index); // 调用保存方法
|
||
}
|
||
};
|
||
|
||
const saveRow = (row, index) => {
|
||
console.log(row, "saveRowsaveRowsaveRowsaveRowsaveRowsaveRow");
|
||
// 保存当前行的逻辑...
|
||
// 例如:调用 API 保存数据
|
||
// 保存成功后,将标志位设置为 false
|
||
// data.isAdding = false;
|
||
if (receiptHeaderForm.value.medicationType === "1") {
|
||
row.itemTable = "med_medication_definition";
|
||
} else {
|
||
row.itemTable = "adm_device_definition";
|
||
}
|
||
row.practitionerId = receiptHeaderForm.value.practitionerId;
|
||
row.occurrenceTime = receiptHeaderForm.value.occurrenceTime;
|
||
row.supplierId = receiptHeaderForm.value.supplierId;
|
||
row.purposeTypeEnum = receiptHeaderForm.value.purposeTypeEnum;
|
||
console.log(row, "rowabbbbbbbbbbbbbb");
|
||
// try {
|
||
// 调用 API 保存数据
|
||
// await savePurchaseInventory(row);
|
||
|
||
// 保存成功后,更新本地数据
|
||
purchaseinventoryList.value[index] = row;
|
||
// 将表单数据发送给父组件
|
||
emits("submit", row);
|
||
// addPurchaseinventory(row).then((response) => {
|
||
// reset();
|
||
// data.isAdding = false; // 允许新增下一行
|
||
// proxy.$message.success("保存成功!");
|
||
// visible.value = false;
|
||
// // getList();
|
||
// });
|
||
// } catch (error) {
|
||
// proxy.$message.error("保存失败,请重试!");
|
||
// }
|
||
// proxy.$message.success("保存成功!");
|
||
};
|
||
|
||
/** 查询挂号收费项目列表 */
|
||
function getList() {
|
||
loading.value = true;
|
||
// // queryParams.value.statusEnum = +queryParams.value.statusEnum
|
||
// console.log(queryParams.value, "queryParams.value");
|
||
// getPurchaseinventoryList(queryParams.value).then((res) => {
|
||
loading.value = false;
|
||
// console.log(res, "res");
|
||
// purchaseinventoryList.value = res.data.records;
|
||
// total.value = res.data.total;
|
||
// console.log(total.value, "total.value");
|
||
// });
|
||
}
|
||
|
||
/** 选择条数 */
|
||
function handleSelectionChange(selection) {
|
||
console.log(selection, "selection");
|
||
// selectedData.value = selection.map((item) => ({ ...item })); // 存储选择的行数据
|
||
ids.value = selection.map((item) => item.id);
|
||
selectedRows.value = selection;
|
||
single.value = selection.length != 1;
|
||
multiple.value = !selection.length;
|
||
}
|
||
|
||
const deleteSelectedRows = () => {
|
||
if (selectedRows.value.length === 0) {
|
||
alert("请先选择要删除的行");
|
||
return;
|
||
}
|
||
|
||
purchaseinventoryList.value = purchaseinventoryList.value.filter(
|
||
(row) => !selectedRows.value.includes(row)
|
||
);
|
||
|
||
selectedRows.value = []; // 清空选中行
|
||
};
|
||
|
||
/** 重置操作表单 */
|
||
function reset() {
|
||
// form.value = {
|
||
// id: undefined,
|
||
// name: undefined,
|
||
// categoryCode: undefined,
|
||
// cwTypeCode: undefined,
|
||
// fwTypeCode: undefined,
|
||
// specialtyCode: undefined,
|
||
// locationId: undefined,
|
||
// offeredOrgId: undefined,
|
||
// activeFlag: undefined,
|
||
// extraDetails: undefined,
|
||
// contact: undefined,
|
||
// appointmentRequiredFlag: undefined,
|
||
// chargeName: undefined,
|
||
// price: undefined,
|
||
// description: undefined,
|
||
// ybType: undefined,
|
||
// title: undefined,
|
||
// comment: undefined,
|
||
// };
|
||
// proxy.resetForm("purchaseinventoryRef");
|
||
|
||
receiptHeaderForm.value = {
|
||
busNo: undefined,
|
||
practitionerId: undefined,
|
||
occurrenceTime: undefined,
|
||
supplierId: undefined,
|
||
medicationType: "1",
|
||
purposeTypeEnum: undefined,
|
||
};
|
||
proxy.resetForm("receiptHeaderRef");
|
||
}
|
||
// 显示弹框
|
||
function show() {
|
||
reset();
|
||
visible.value = true;
|
||
supplierListOptions.value = props.supplierListOptions;
|
||
itemTypeOptions.value = props.itemTypeOptions;
|
||
practitionerListOptions.value = props.practitionerListOptions;
|
||
receiptHeaderForm.value.busNo = props.busNoAdd;
|
||
// console.log(purchase_type.value, "purchase_type.value")
|
||
// // 设置默认值为字典中的第一个值
|
||
// if (purchase_type.value.length > 0) {
|
||
// form.value.medicationType = purchase_type.value[0].value;
|
||
// }
|
||
getList();
|
||
}
|
||
/** 取消按钮 */
|
||
function cancel() {
|
||
open.value = false;
|
||
reset();
|
||
}
|
||
/** 新增按钮操作 */
|
||
function handleAdd() {
|
||
reset();
|
||
open.value = true;
|
||
title.value = "新增";
|
||
}
|
||
/** 修改按钮操作 */
|
||
function handleUpdate(row) {
|
||
reset();
|
||
form.value = JSON.parse(JSON.stringify(row));
|
||
form.value.fwTypeCode = form.value.typeCode;
|
||
open.value = true;
|
||
title.value = "编辑";
|
||
}
|
||
|
||
/** 详细按钮操作 */
|
||
function handleView(row) {
|
||
reset();
|
||
title.value = "查看";
|
||
open.value = true;
|
||
getPurchaseinventoryOne(row.id).then((response) => {
|
||
console.log(response, "responsebbbb", row.id);
|
||
form.value = response.data;
|
||
});
|
||
}
|
||
|
||
/** 删除按钮操作 */
|
||
function handleDelete(row) {
|
||
const delId = row.id || ids.value;
|
||
proxy.$modal
|
||
.confirm("是否确认删除以上数据?")
|
||
.then(function () {
|
||
return delPurchaseinventory({ ids: delId.join(",") });
|
||
})
|
||
.then(() => {
|
||
getList();
|
||
proxy.$modal.msgSuccess("删除成功");
|
||
})
|
||
.catch(() => {});
|
||
}
|
||
|
||
defineExpose({
|
||
show,
|
||
});
|
||
</script>
|
||
<style scoped>
|
||
.custom-tree-node {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.title {
|
||
font-weight: bold;
|
||
font-size: large;
|
||
margin-bottom: 10px;
|
||
}
|
||
</style> |