版本更新

This commit is contained in:
Zhang.WH
2025-10-16 17:38:08 +08:00
parent f515bb8fbb
commit e4c5f36f2e
488 changed files with 41436 additions and 2901 deletions

View File

@@ -0,0 +1,165 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryRef"
:inline="true"
label-width="100px"
v-show="showSearch"
>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="queryParams.startTime"
type="date"
placeholder="请选择"
value-format="yyyy-MM-dd"
clearable
/>
</el-form-item>
<el-form-item label="结束时间" prop="startTime">
<el-date-picker
v-model="queryParams.endTime"
type="date"
placeholder="请选择"
value-format="yyyy-MM-dd"
clearable
/>
</el-form-item>
<el-form-item label="药房名称" prop="pharmacyId" label-width="100px">
<el-select
v-model="queryParams.pharmacyId"
placeholder="请输入"
clearable
filterable
style="width: 150px"
>
<el-option
v-for="item in [
{ id: '1', name: '药房1' },
{ id: '2', name: '药房2' },
]"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="药品名称" prop="medicineName" label-width="100px">
<el-input v-model="queryParams.medicineName" placeholder="请输入" clearable />
</el-form-item>
<el-form-item label="药品类型" prop="medicineType">
<el-select
v-model="queryParams.medicineType"
placeholder="请选择"
clearable
filterable
style="width: 150px"
>
<el-option
v-for="item in [
{ id: '1', name: '药品1' },
{ id: '2', name: '药品2' },
{ id: '3', name: '药品3' },
{ id: '4', name: '药品4' },
{ id: '5', name: '药品5' },
{ id: '6', name: '药品6' },
{ id: '7', name: '药品7' },
{ id: '8', name: '药品8' },
]"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
</el-col>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
min-height="200"
max-height="500"
:data="tableData"
style="width: 100%"
lab
>
<el-table-column prop="name" label="库房名称" align="center" />
<el-table-column prop="age" label="药品名称" align="center" />
<el-table-column prop="address" label="包装规格" align="center" />
<el-table-column prop="address" label="包装单位" align="center" />
<el-table-column prop="address" label="最小包装单位" align="center" width="150px" />
<el-table-column prop="address" label="厂家" align="center" />
<el-table-column prop="address" label="类型" align="center" />
<el-table-column prop="address" label="单位数量" align="center" />
<el-table-column prop="address" label="最小单位数量" align="center" width="150px" />
<el-table-column prop="address" label="原批发价" align="center" />
<el-table-column prop="address" label="现批发价" align="center" />
<el-table-column prop="address" label="原批发拆分价" align="center" width="150px" />
<el-table-column prop="address" label="现批发拆分价" align="center" width="150px" />
<el-table-column prop="address" label="批价盈亏" align="center" />
<el-table-column prop="address" label="原售价" align="center" />
<el-table-column prop="address" label="现售价" align="center" />
<el-table-column prop="address" label="原零售价" align="center" />
<el-table-column prop="address" label="现零售价" align="center" />
<el-table-column prop="address" label="零价盈亏" align="center" />
<el-table-column prop="address" label="执行时间" align="center" />
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script setup>
import { ref, toRefs } from 'vue';
const { proxy } = getCurrentInstance();
const queryParams = ref({
pageNo: 1,
pageSize: 10,
startTime: undefined,
endTime: undefined,
});
const refreshTable = ref(true);
const loading = ref(false);
const tableData = ref([]);
const getList = () => {
console.log(queryParams.value);
};
const showSearch = ref(true);
const reset = () => {
queryParams.value = {
pageNo: 1,
pageSize: 10,
};
};
const handleQuery = () => {
queryParams.value.pageNo = 1;
console.log(queryParams.value, 'queryParams');
getList();
};
const resetQuery = () => {
reset();
handleQuery();
};
onMounted(() => {
getList();
});
</script>
<style>
</style>

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container" v-loading="pageLoading" :element-loading-text="'审批中...'">
<el-row :gutter="10" class="mb8" v-if="viewStatus">
<el-col :span="1.5">
<el-button
@@ -784,6 +784,7 @@ const rowList = ref([])
const openTraceNoDialog = ref(false)
const ypName = ref("");
const currentIndex = ref("");
const pageLoading = ref(false)
const props = defineProps({
// 仓库
purposeTypeListOptions: {
@@ -1934,14 +1935,18 @@ function handleReject() {
});
}
function handelApply() {
pageLoading.value = true
productStocktakingApproved(route.query.supplyBusNo).then((res) => {
if (res.code == 200) {
proxy.$modal.msgSuccess("操作成功");
pageLoading.loading = false
store.clearCurrentDataPLPD();
store.clearCurrentDataPLPDALL();
// 跳转到审核页面
router.replace({ path: '/aaaa/medicationmanagement/billapproval',query:{type:'chkstockBatch'}});
}
}).catch(() =>{
pageLoading.loading = false
})
}
/** 提交审核 */

View File

@@ -214,9 +214,10 @@
type="primary"
icon="Edit"
@click="handleUpdate(scope.row)"
:disabled="scope.row.statusEnum != '1' && scope.row.statusEnum != '9' && scope.row.statusEnum != '4'"
disabled
>编辑</el-button
>
<!-- :disabled="scope.row.statusEnum != '1' && scope.row.statusEnum != '9' && scope.row.statusEnum != '4'" -->
<!-- v-hasPermi="['system:user:edit']" -->
<el-button
link

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container" v-loading="pageLoading" loading-text="审批中。。。">
<el-row :gutter="10" class="mb8" v-if="viewStatus">
<el-col :span="1.5">
<el-button v-if="viewStatus != 'view'" plain type="primary" icon="Edit" @click="handelApply"
@@ -578,6 +578,7 @@ const visible = ref(false);
const row = ref({});
const rowIndex = ref(-1);
const totalAmount = ref(0);
const pageLoading = ref(false)
const props = defineProps({
sourceTypeListOptions: {
type: Object,
@@ -1029,8 +1030,10 @@ function handleReject() {
});
}
function handelApply() {
pageLoading.value = true
lossReportApproved(route.query.supplyBusNo).then((res) => {
if (res.code == 200) {
pageLoading.value = false
proxy.$modal.msgSuccess('操作成功');
tagsViewStore.delView(router.currentRoute.value);
store.clearCurrentDataBS();
@@ -1040,6 +1043,8 @@ function handelApply() {
query: { type: 'lossReporting' },
});
}
}).catch(() => {
pageLoading.value = false
});
}
/** 提交审核按钮 */

View File

@@ -0,0 +1,58 @@
import request from '@/utils/request';
// 查询费用定价信息列表
export function listDefinition (query) {
return request ({
url: '/dict-dictionary/definition/charge-item-info',
method: 'get',
params: query,
});
}
// 初始化下拉选
export function initOption (query) {
return request ({
url: '/dict-dictionary/definition/init',
method: 'get',
params: query,
});
}
// 获取药品列表
export function getMedicineList (query) {
return request ({
url: '/doctor-station/advice/advice-base-info',
method: 'get',
params: query,
});
}
// 修改费用定价信息
export function updateDefinition (data) {
return request ({
url: `/dict-dictionary/definition/update-charge-item?id=${data.id}&price=${data.price}`,
method: 'put',
});
}
// 修改费用定价信息
export function getOptions () {
return request ({
url: '/dict-dictionary/definition/status-enum-option',
method: 'get',
});
}
// 修改费用定价信息
export function getDetail (id) {
return request ({
url: '/dict-dictionary/definition/charge-item-info-detail?id=' + id,
method: 'get',
});
}
// 供应商查询
export function getSupplierList (query) {
return request ({
url: '/change/price/searchAllSupply',
method: 'get',
params: query,
});
}

View File

@@ -0,0 +1,74 @@
<template>
<div>
<el-table ref="medicineRef" height="400" :data="medicineList" @cell-click="clickRow">
<el-table-column label="项目编码" align="center" prop="adviceDefinitionId" />
<el-table-column label="项目名称" align="center" prop="adviceName" />
<el-table-column label="当前价格" align="center" prop="retailPrice" />
<el-table-column label="规格" align="center" prop="volume" />
</el-table>
</div>
</template>
<script setup>
import { getMedicineList } from './api';
import { watch } from 'vue';
import { throttle } from 'lodash-es';
const props = defineProps({
searchKey: {
type: String,
default: '',
},
supplierId: {
type: String,
default: '',
},
});
// 选择药品
const emit = defineEmits(['selectRow']);
// 查询参数
const queryParams = ref({
searchKey: props.searchKey,
// supplierId: props.supplierId,
});
// 药品列表
const medicineList = ref([]);
// 节流函数
const throttledGetList = throttle(
() => {
getList();
},
300,
{ leading: true, trailing: true }
);
// 获取药品列表
const getList = (query) => {
getMedicineList(query || queryParams.value).then((res) => {
medicineList.value = res.data.records;
});
};
// 点击行
const clickRow = (row) => {
console.log(row, 'row');
emit('selectRow', row);
};
// 监听搜索关键字
watch(
() => props,
(newValue) => {
queryParams.value.searchKey = newValue.searchKey;
throttledGetList();
},
{ immediate: true, deep: true }
);
// 获取药品列表
getList();
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,636 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryRef"
:inline="true"
v-show="showSearch"
label-width="90px"
>
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="药品调价" name="1">
<!-- <el-form-item label="供应商" prop="supplierId">
<el-select v-model="queryParams.supplierId" placeholder="请选择" clearable filterable>
<el-option
v-for="item in supplierIDList"
:key="item.supplyId"
:label="item.supplyName"
:value="item.supplyId"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="申请人" prop="applicationName" label-width="100px">
<el-input v-model="applicationName" placeholder="" disabled />
</el-form-item>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
@click="handleDelete"
v-if="selectedRows.length > 0"
>
删除选中行
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Check"
@click="handleSave"
v-if="definitionList.length > 0"
>保存</el-button
>
</el-col>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
:data="definitionList"
tooltip-effect="dark"
:show-overflow-tooltip="true"
ref="tableRef"
@selection-change="handleSelectionChange"
style="width: 100% !important"
>
<el-table-column type="selection" width="40" align="center" fixed="left" />
<el-table-column label="名称" prop="itemName" align="center">
<template #default="scope">
<PopoverList @search="handleSearch" :width="1000" :modelValue="scope.row.itemName">
<template #popover-content>
<medicineList
ref="medicineListRef"
@selectRow="(row) => selectRow(row, scope.$index)"
:searchKey="medicineSearchKey"
:supplierId="queryParams.supplierId"
/>
</template>
</PopoverList>
</template>
</el-table-column>
<el-table-column label="编码" prop="busNo" align="center">
<template #default="scope">
{{ scope.row.busNo ? scope.row.busNo : '-' }}
</template>
</el-table-column>
<el-table-column label="规格" prop="totalVolume" align="center">
<template #default="scope">
{{ scope.row.totalVolume ? scope.row.totalVolume : '-' }}
</template>
</el-table-column>
<el-table-column label="当前价格" prop="retailPrice" align="center">
<template #default="scope">
{{ scope.row.retailPrice ? scope.row.retailPrice : '-' }}
</template>
</el-table-column>
<el-table-column label="调后价格" prop="afterPrice" align="center">
<template #default="scope">
<el-input v-model="scope.row.afterPrice" type="number" step="0.01" />
</template>
</el-table-column>
<el-table-column label="调价理由" prop="price" align="center">
<template #default="scope">
<el-input
type="textarea"
v-model="scope.row.adjustReason"
rows="1"
maxlength="255"
autosize
/>
</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-tab-pane label="耗材调价" name="2">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
</el-col>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
:data="definitionList"
tooltip-effect="dark"
:show-overflow-tooltip="true"
ref="tableRef"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="40" align="center" fixed="left" />
<el-table-column label="编码" width="200" prop="chargeName" align="center">
<template #default="scope">
{{ scope.row.chargeName ? scope.row.chargeName : '-' }}
</template>
</el-table-column>
<el-table-column label="名称" width="200" prop="orgId_dictText" align="center">
<template #default="scope">
<PopoverList @search="handleSearch" :width="1000" :modelValue="scope.row.itemName">
<template #popover-content>
<medicineList
ref="medicineListRef"
@selectRow="(row) => selectRow(row, scope.$index)"
:searchKey="medicineSearchKey"
:supplierId="queryParams.supplierId"
/>
</template>
</PopoverList>
</template>
</el-table-column>
<el-table-column label="规格" width="200" prop="typeCode_dictText" align="center">
<template #default="scope">
{{ scope.row.typeCode_dictText ? scope.row.typeCode_dictText : '-' }}
</template>
</el-table-column>
<el-table-column label="当前价格" width="200" prop="ybType_dictText" align="center">
<template #default="scope">
{{ scope.row.ybType_dictText ? scope.row.ybType_dictText : '-' }}
</template>
</el-table-column>
<el-table-column label="调后价格" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column label="调价理由" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column label="调整时间" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column
min-width="290"
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button link type="primary" @click="handleUpdate(scope.row)">修改</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-tab-pane label="诊疗调价" name="3">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
</el-col>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
:data="definitionList"
tooltip-effect="dark"
:show-overflow-tooltip="true"
ref="tableRef"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="40" align="center" fixed="left" />
<el-table-column label="编码" width="200" prop="chargeName" align="center">
<template #default="scope">
{{ scope.row.chargeName ? scope.row.chargeName : '-' }}
</template>
</el-table-column>
<el-table-column label="名称" width="200" prop="orgId_dictText" align="center">
<template #default="scope">
{{ scope.row.orgId_dictText ? scope.row.orgId_dictText : '-' }}
</template>
</el-table-column>
<el-table-column label="规格" width="200" prop="typeCode_dictText" align="center">
<template #default="scope">
{{ scope.row.typeCode_dictText ? scope.row.typeCode_dictText : '-' }}
</template>
</el-table-column>
<el-table-column label="当前价格" width="200" prop="ybType_dictText" align="center">
<template #default="scope">
{{ scope.row.ybType_dictText ? scope.row.ybType_dictText : '-' }}
</template>
</el-table-column>
<el-table-column label="调后价格" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column label="调价理由" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column label="调整时间" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column
min-width="290"
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button link type="primary" @click="handleUpdate(scope.row)">修改</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-tab-pane label="挂号调价" name="4">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
</el-col>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
:data="definitionList"
tooltip-effect="dark"
:show-overflow-tooltip="true"
ref="tableRef"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="40" align="center" fixed="left" />
<el-table-column label="编码" width="200" prop="chargeName" align="center">
<template #default="scope">
{{ scope.row.chargeName ? scope.row.chargeName : '-' }}
</template>
</el-table-column>
<el-table-column label="名称" width="200" prop="orgId_dictText" align="center">
<template #default="scope">
{{ scope.row.orgId_dictText ? scope.row.orgId_dictText : '-' }}
</template>
</el-table-column>
<el-table-column label="规格" width="200" prop="typeCode_dictText" align="center">
<template #default="scope">
{{ scope.row.typeCode_dictText ? scope.row.typeCode_dictText : '-' }}
</template>
</el-table-column>
<el-table-column label="当前价格" width="200" prop="ybType_dictText" align="center">
<template #default="scope">
{{ scope.row.ybType_dictText ? scope.row.ybType_dictText : '-' }}
</template>
</el-table-column>
<el-table-column label="调后价格" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column label="调价理由" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column label="调整时间" width="200" prop="price" align="center">
<template #default="scope">
{{ scope.row.price ? thousandNumber(scope.row.price) : '-' }}
</template>
</el-table-column>
<el-table-column
min-width="290"
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button link type="primary" @click="handleUpdate(scope.row)">修改</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-form>
<el-dialog :title="title" v-model="openDetails" width="600px" append-to-body>
<el-table
v-loading="detailLoading"
:data="definitionDetailList"
tooltip-effect="dark"
:show-overflow-tooltip="true"
>
<el-table-column label="条件" prop="conditionCode_enumText" align="center">
<template #default="scope">
{{ scope.row.conditionCode_enumText ? scope.row.conditionCode_enumText : '-' }}
</template>
</el-table-column>
<el-table-column label="价格" width="200" prop="amount" align="center">
<template #default="scope">
{{ scope.row.amount ? scope.row.amount : '-' }}
</template>
</el-table-column>
</el-table>
</el-dialog>
<edit
:title="title"
:open="open"
:formData="form"
@submit="submitForm"
@update:open="handleOpenChange"
@update:form="handleFormChange"
/>
</div>
</template>
<script setup>
import { listDefinition, initOption, updateDefinition, getSupplierList } from './components/api';
import PopoverList from '@/components/OpenHis/popoverList/index.vue';
import medicineList from './components/medicineList.vue';
import { thousandNumber } from '@/utils/his.js';
import useUserStore from '@/store/modules/user';
const activeName = ref('1');
const showSearch = ref(true);
const loading = ref(true);
const detailLoading = ref(true);
const refreshTable = ref(true);
const definitionList = ref([]);
const definitionDetailList = ref([]);
const total = ref(0);
const tableRef = ref(null);
const selectedRows = ref([]);
// 获取 pinia 中用户信息
const userInfo = useUserStore();
// 申请人
const applicationName = ref(userInfo.nickName);
const { proxy } = getCurrentInstance();
const options = ref([]);
const title = ref('');
const open = ref(false);
const openDetails = ref(false);
const data = reactive({
form: {},
queryParams: {
search: '',
definitionType: '',
chargeItem: '',
searchKey: '',
pageNo: 1,
pageSize: 10,
},
});
const { queryParams, form } = toRefs(data);
// 切换tab
const handleClick = (tab, event) => {
console.log(tab, event);
activeName.value = tab.props.name;
queryParams.value.pageNo = 1;
handleInit();
// getList();
};
/** 查询委托单信息列表 */
function getList() {
loading.value = true;
queryParams.value.chargeItemContext = activeName.value;
listDefinition(queryParams.value).then((response) => {
definitionList.value = response.data.records;
total.value = response.data.total;
loading.value = false;
});
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNo = 1;
getList();
}
// 表单重置
function reset() {
form.value = {
id: null,
itemNo: null,
chargeName: null,
totalVolume: null,
unitCode: null,
partPercent: null,
conditionYbCode: null,
price: null,
amount: null,
partMinUnitCode: null,
partConditionPrice: null,
partPrice: null,
description: null,
statusEnum: null,
itemId: null,
};
proxy.resetForm('einfoRef');
}
// 品名搜索
const medicineSearchKey = ref('');
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
form.value = row;
open.value = true;
title.value = '修改项目定价';
}
/** 搜索按钮操作 */
function handleInit() {
queryParams.value.definitionType = activeName.value;
loading.value = true;
initOption(queryParams.value).then((response) => {
options.value = response.data.publicationStatusOptions;
loading.value = false;
});
}
const handleOpenChange = (value) => {
open.value = value;
};
const handleFormChange = (newForm) => {
form.value = { ...newForm };
};
// 表格多选与删除
function handleSelectionChange(selection) {
selectedRows.value = selection || [];
}
// 删除选中行
function handleDelete() {
if (!selectedRows.value.length) {
proxy.$message.warning('请选择要删除的行');
return;
}
definitionList.value = definitionList.value.filter((row) => !selectedRows.value.includes(row));
selectedRows.value = [];
nextTick(() => {
tableRef.value && tableRef.value.clearSelection && tableRef.value.clearSelection();
});
}
// 弹出选择器引用与交互
const medicineListRef = ref(null);
function handleSearch(keyword) {
medicineSearchKey.value = keyword || '';
}
function selectRow(row, index) {
console.log('选中行数据:', row);
if (!definitionList.value[index]) return;
// 根据业务字段同步选中行信息
definitionList.value[index] = {
...definitionList.value[index],
itemId: row.id,
itemName: row.itemName || row.name || '',
...row,
};
}
// 新增按钮操作
function handleAdd() {
// if (!queryParams.value.supplierId) {
// proxy.$message.error('请选择供应商!');
// return;
// }
reset();
// 新增一行
definitionList.value.push({
id: null,
itemNo: null,
chargeName: null,
totalVolume: null,
unitCode: null,
partPercent: null,
conditionYbCode: null,
price: null,
amount: null,
partMinUnitCode: null,
partConditionPrice: null,
partPrice: null,
description: null,
statusEnum: null,
itemId: null,
});
}
/** 提交按钮 */
function submitForm(form) {
updateDefinition(form).then((response) => {
proxy.$modal.msgSuccess('操作成功');
open.value = false;
getList();
});
}
// 保存前校验与保存
function handleSave() {
console.log(queryParams.value.supplierId, 'queryParams.value.supplierId');
// 供应商必选
if (!queryParams.value.supplierId) {
proxy.$message.error('请选择供应商');
return;
}
// 至少一行
if (!definitionList.value || !definitionList.value.length) {
proxy.$message.warning('请先新增行再保存');
return;
}
// 按行校验
for (let i = 0; i < definitionList.value.length; i++) {
const row = definitionList.value[i] || {};
const rowIndex = i + 1;
// 名称/项目必填
if (!row.itemId && !row.itemName) {
proxy.$message.error(`${rowIndex}行:请选择名称`);
return;
}
// 调后价格校验(数字且>=0
const priceNum = Number(row.afterPrice);
if (!Number.isFinite(priceNum) || priceNum < 0) {
proxy.$message.error(`${rowIndex}行:请输入有效的调后价格(>=0`);
return;
}
// 与当前价格相同给出提示(但不强制)
if (Number(row.retailPrice) === priceNum) {
proxy.$message.warning(`${rowIndex}行:调后价格与当前价格相同`);
}
// 调价理由必填
if (!row.adjustReason || String(row.adjustReason).trim() === '') {
proxy.$message.error(`${rowIndex}行:请输入调价理由`);
return;
}
// 调整时间必选
if (!row.adjustTime) {
proxy.$message.error(`${rowIndex}行:请选择调整时间`);
return;
}
// 价格规范化为两位小数(不改变展示,仅在保存前处理)
row.afterPrice = Number(priceNum.toFixed(2));
}
// 所有校验通过
proxy.$message.success('校验通过');
// TODO: 在此调用保存接口(当前仅打印)
console.log('保存数据:', definitionList.value);
}
// 供应商列表
const supplierIDList = ref([]);
// 获取供应商列表
function getSupplierIDList() {
loading.value = true;
getSupplierList().then((res) => {
supplierIDList.value = res.data;
loading.value = false;
});
}
handleInit();
// 获取供应商列表
getSupplierIDList();
//getList();
</script>
<style lang="scss" scoped>
:deep(.demo-tabs > .el-tabs__content) {
color: #6b778c;
font-size: 32px;
font-weight: 600;
}
:deep(.el-input__wrapper) {
height: 32px;
}
:deep(.el-input__inner) {
height: 30px;
}
:deep(.el-tabs__content) {
height: 80vh;
}
.el-select {
width: 150px !important;
}
</style>

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container" v-loading="pageLoading" loading-text="审批中。。。">
<el-row :gutter="10" class="mb8" v-if="viewStatus">
<el-col :span="1.5">
<el-button v-if="viewStatus != 'view'" plain type="primary" icon="Edit" @click="handelApply"
@@ -150,437 +150,439 @@
<el-form :model="form" :rules="tableRules" ref="formRef" :disabled="viewStatus == 'apply'">
<!-- @cell-mouse-enter="handleMouseEnter" -->
<!-- v-click-outside-row="handleClickOutside" @row-click="handleRowClick" 点击行以外的部分自动保存 -->
<el-table
row-key="rowKey"
v-loading="loading"
:data="form.purchaseinventoryList"
@selection-change="handleSelectionChange"
ref="tableRef"
@cell-mouse-leave="handleMouseLeave"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="项目" align="center" key="name" prop="name" width="200" fixed>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.name`"
:rules="tableRules.name"
>
<el-input
v-if="viewStatus == 'view'"
v-model="scope.row.name"
placeholder=""
disabled
/>
<PopoverList
v-else
@search="handleSearch"
:width="1000"
:modelValue="scope.row.name"
>
<template #popover-content="{}">
<MedicineList
@selectRow="(row) => selectRow(row, scope.$index)"
:searchKey="medicineSearchKey"
:itemType="itemType"
/>
</template>
</PopoverList>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="规格"
align="center"
key="statusEnum_enumText"
prop="statusEnum_enumText"
width="150"
<el-scrollbar height="calc(100vh - 500px)">
<el-table
row-key="rowKey"
v-loading="loading"
:data="form.purchaseinventoryList"
@selection-change="handleSelectionChange"
ref="tableRef"
@cell-mouse-leave="handleMouseLeave"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.volume`"
:rules="tableRules.volume"
>
<el-input v-model="scope.row.volume" placeholder="" disabled />
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="厂家/产地"
align="center"
key="manufacturer"
prop="manufacturer"
:show-overflow-tooltip="true"
width="160"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.manufacturer`"
:rules="tableRules.manufacturer"
>
<el-input v-model="scope.row.manufacturer" placeholder="" disabled />
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="仓库"
align="center"
key="purposeLocationId"
prop="purposeLocationId"
:show-overflow-tooltip="true"
width="180"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.purposeLocationId`"
:rules="tableRules.purposeLocationId"
>
<div class="select_wrapper_div">
<el-select
v-model="scope.row.purposeLocationId"
placeholder="请选择仓库"
:class="{ 'error-border': scope.row.error }"
clearable
:disabled="viewStatus == 'view'"
>
<el-option
v-for="(item, index) in locationList"
:key="index"
:label="item.name"
:value="item.id"
@click="handleLocationClick(item, scope.row, scope.$index)"
/>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="采购数量"
align="center"
key="itemQuantity"
prop="itemQuantity"
width="120"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.itemQuantity`"
:rules="tableRules.itemQuantity"
>
<div class="select_wrapper_div">
<el-input
:disabled="viewStatus == 'view'"
v-model="scope.row.itemQuantity"
placeholder=""
@blur="handleTotalPrice(scope.$index)"
:class="{ 'error-border': scope.row.error }"
/>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="计量单位"
align="center"
key="unitCode"
prop="unitCode"
:show-overflow-tooltip="true"
width="90"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.unitCode`"
:rules="tableRules.unitCode"
>
<!-- :disabled="data.isEdit" -->
<div class="select_wrapper_div">
<el-select
v-model="scope.row.unitCode"
placeholder=" "
:class="{ 'error-border': scope.row.error }"
:clearable="false"
:disabled="viewStatus == 'view'"
@change="(value) => handleUnitCodeChange(scope.row, scope.$index, value)"
>
<template v-if="scope.row.unitList && scope.row.partPercent > 1">
<el-option
:label="scope.row.unitList.unitCode_dictText"
:value="scope.row.unitList.unitCode"
/>
<el-option
:label="scope.row.unitList.minUnitCode_dictText"
:value="scope.row.unitList.minUnitCode"
/>
</template>
<template v-if="scope.row.unitList && scope.row.partPercent == 1">
<el-option
:label="scope.row.unitList.unitCode_dictText"
:value="scope.row.unitList.unitCode"
/>
</template>
<template v-if="!scope.row.unitList">
<el-option
:label="scope.row.unitCode_dictText"
:value="scope.row.unitCode"
/>
</template>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="药品追溯码"
align="center"
key="traceNo"
prop="traceNo"
width="130"
>
<template #default="scope">
<el-tooltip
:content="formatContent(scope.row.traceNo)"
placement="top"
popper-class="custom-tooltip"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="项目" align="center" key="name" prop="name" width="200" fixed>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.traceNo`"
:rules="tableRules.traceNo"
:prop="`purchaseinventoryList.${scope.$index}.name`"
:rules="tableRules.name"
>
<el-input
:disabled="viewStatus == 'view'"
v-model="scope.row.traceNo"
@change="(value) => handleTraceNoInput(value, scope.row)"
v-if="viewStatus == 'view'"
v-model="scope.row.name"
placeholder=""
:id="'traceNo' + `${scope.$index}`"
disabled
/>
<PopoverList
v-else
@search="handleSearch"
:width="1000"
:modelValue="scope.row.name"
>
<template #popover-content="{}">
<MedicineList
@selectRow="(row) => selectRow(row, scope.$index)"
:searchKey="medicineSearchKey"
:itemType="itemType"
/>
</template>
</PopoverList>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="规格"
align="center"
key="statusEnum_enumText"
prop="statusEnum_enumText"
width="150"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.volume`"
:rules="tableRules.volume"
>
<el-input v-model="scope.row.volume" placeholder="" disabled />
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="厂家/产地"
align="center"
key="manufacturer"
prop="manufacturer"
:show-overflow-tooltip="true"
width="160"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.manufacturer`"
:rules="tableRules.manufacturer"
>
<el-input v-model="scope.row.manufacturer" placeholder="" disabled />
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="仓库"
align="center"
key="purposeLocationId"
prop="purposeLocationId"
:show-overflow-tooltip="true"
width="180"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.purposeLocationId`"
:rules="tableRules.purposeLocationId"
>
<div class="select_wrapper_div">
<el-select
v-model="scope.row.purposeLocationId"
placeholder="请选择仓库"
:class="{ 'error-border': scope.row.error }"
clearable
:disabled="viewStatus == 'view'"
>
<el-option
v-for="(item, index) in locationList"
:key="index"
:label="item.name"
:value="item.id"
@click="handleLocationClick(item, scope.row, scope.$index)"
/>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="采购数量"
align="center"
key="itemQuantity"
prop="itemQuantity"
width="120"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.itemQuantity`"
:rules="tableRules.itemQuantity"
>
<div class="select_wrapper_div">
<el-input
:disabled="viewStatus == 'view'"
v-model="scope.row.itemQuantity"
placeholder=""
@blur="handleTotalPrice(scope.$index)"
:class="{ 'error-border': scope.row.error }"
/>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="计量单位"
align="center"
key="unitCode"
prop="unitCode"
:show-overflow-tooltip="true"
width="90"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.unitCode`"
:rules="tableRules.unitCode"
>
<!-- :disabled="data.isEdit" -->
<div class="select_wrapper_div">
<el-select
v-model="scope.row.unitCode"
placeholder=" "
:class="{ 'error-border': scope.row.error }"
:clearable="false"
:disabled="viewStatus == 'view'"
@change="(value) => handleUnitCodeChange(scope.row, scope.$index, value)"
>
<template v-if="scope.row.unitList && scope.row.partPercent > 1">
<el-option
:label="scope.row.unitList.unitCode_dictText"
:value="scope.row.unitList.unitCode"
/>
<el-option
:label="scope.row.unitList.minUnitCode_dictText"
:value="scope.row.unitList.minUnitCode"
/>
</template>
<template v-if="scope.row.unitList && scope.row.partPercent == 1">
<el-option
:label="scope.row.unitList.unitCode_dictText"
:value="scope.row.unitList.unitCode"
/>
</template>
<template v-if="!scope.row.unitList">
<el-option
:label="scope.row.unitCode_dictText"
:value="scope.row.unitCode"
/>
</template>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="药品追溯码"
align="center"
key="traceNo"
prop="traceNo"
width="130"
>
<template #default="scope">
<el-tooltip
:content="formatContent(scope.row.traceNo)"
placement="top"
popper-class="custom-tooltip"
>
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.traceNo`"
:rules="tableRules.traceNo"
>
<el-input
:disabled="viewStatus == 'view'"
v-model="scope.row.traceNo"
@change="(value) => handleTraceNoInput(value, scope.row)"
placeholder=""
:id="'traceNo' + `${scope.$index}`"
/>
</el-form-item>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
label="追溯码包装"
align="center"
key="packagingLevels"
prop="packagingLevels"
width="130"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.packagingLevels`"
:rules="tableRules.packagingLevels"
>
<el-input
v-model="scope.row.packagingLevels"
placeholder=""
:disabled="viewStatus == 'view'"
/>
</el-form-item>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
label="追溯码包装"
align="center"
key="packagingLevels"
prop="packagingLevels"
width="130"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.packagingLevels`"
:rules="tableRules.packagingLevels"
>
<el-input
v-model="scope.row.packagingLevels"
placeholder=""
:disabled="viewStatus == 'view'"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="采购单价(包装单位) "
align="center"
key="price"
prop="price"
width="160"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.price`"
:rules="tableRules.price"
>
<div class="select_wrapper_div">
<el-input
v-model="scope.row.price"
placeholder=""
@blur="handleTotalPrice(scope.$index)"
:class="{ 'error-border': scope.row.error }"
:disabled="viewStatus == 'view'"
>
</template>
</el-table-column>
<el-table-column
label="采购单价(包装单位) "
align="center"
key="price"
prop="price"
width="160"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.price`"
:rules="tableRules.price"
>
<div class="select_wrapper_div">
<el-input
v-model="scope.row.price"
placeholder=""
@blur="handleTotalPrice(scope.$index)"
:class="{ 'error-border': scope.row.error }"
:disabled="viewStatus == 'view'"
>
<template #suffix></template>
</el-input>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="合计金额 "
align="center"
key="totalPrice"
prop="totalPrice"
width="130"
>
<template #default="scope">
<el-form-item :prop="`purchaseinventoryList.${scope.$index}.totalPrice`">
<el-input disabled v-model="scope.row.totalPrice" placeholder="">
<template #suffix></template>
</el-input>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="合计金额 "
align="center"
key="totalPrice"
prop="totalPrice"
width="130"
>
<template #default="scope">
<el-form-item :prop="`purchaseinventoryList.${scope.$index}.totalPrice`">
<el-input disabled v-model="scope.row.totalPrice" placeholder="">
<template #suffix></template>
</el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="产品批号"
align="center"
key="lotNumber"
prop="lotNumber"
width="160"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.lotNumber`"
:rules="tableRules.lotNumber"
>
<el-input
v-model="scope.row.lotNumber"
placeholder=""
maxlength="100"
:disabled="viewStatus == 'view'"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="生产日期"
align="center"
key="startTime"
prop="startTime"
width="150"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.startTime`"
:rules="tableRules.startTime"
>
<el-date-picker
v-model="scope.row.startTime"
type="date"
placeholder="选择日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
:disabled="viewStatus == 'view'"
@change="changeValStart($event, scope.$index)"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="有效期至"
align="center"
key="endTime"
prop="endTime"
width="150"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.endTime`"
:rules="tableRules.endTime"
>
<el-date-picker
:disabled="viewStatus == 'view'"
v-model="scope.row.endTime"
type="date"
placeholder="选择日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
@change="changeValEnd($event, scope.$index)"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="发票号 "
align="center"
key="invoiceNo"
prop="invoiceNo"
width="130"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.invoiceNo`"
:rules="tableRules.invoiceNo"
>
<el-input
v-model="scope.row.invoiceNo"
placeholder=""
:disabled="viewStatus == 'view'"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="备注" align="center" key="remake" prop="remake" width="130">
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.remake`"
:rules="tableRules.remake"
>
<el-input
v-model="scope.row.remake"
placeholder=""
:disabled="viewStatus == 'view'"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="货位"
align="center"
key="locationStoreName"
prop="locationStoreName"
width="180"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.locationStoreName`"
:rules="tableRules.locationStoreName"
>
<div class="select_wrapper_div">
<el-select
v-model="scope.row.locationStoreName"
placeholder="请选择货位"
:class="{ 'error-border': scope.row.error }"
clearable
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="产品批号"
align="center"
key="lotNumber"
prop="lotNumber"
width="160"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.lotNumber`"
:rules="tableRules.lotNumber"
>
<el-input
v-model="scope.row.lotNumber"
placeholder=""
maxlength="100"
:disabled="viewStatus == 'view'"
>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="总库存数量"
align="center"
key="quantity"
prop="quantity"
width="120"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.quantity`"
:rules="tableRules.quantity"
>
<el-input v-model="scope.row.quantity" placeholder="" disabled />
</el-form-item>
</template>
</el-table-column>
<el-table-column
v-if="!viewStatus"
label="操作"
align="center"
width="80"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button
link
type="primary"
icon="Edit"
@click="handleScan(scope.row, scope.$index)"
>扫码</el-button
>
</template>
</el-table-column>
</el-table>
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="生产日期"
align="center"
key="startTime"
prop="startTime"
width="150"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.startTime`"
:rules="tableRules.startTime"
>
<el-date-picker
v-model="scope.row.startTime"
type="date"
placeholder="选择日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
:disabled="viewStatus == 'view'"
@change="changeValStart($event, scope.$index)"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="有效期至"
align="center"
key="endTime"
prop="endTime"
width="150"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.endTime`"
:rules="tableRules.endTime"
>
<el-date-picker
:disabled="viewStatus == 'view'"
v-model="scope.row.endTime"
type="date"
placeholder="选择日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
@change="changeValEnd($event, scope.$index)"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="发票号 "
align="center"
key="invoiceNo"
prop="invoiceNo"
width="130"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.invoiceNo`"
:rules="tableRules.invoiceNo"
>
<el-input
v-model="scope.row.invoiceNo"
placeholder=""
:disabled="viewStatus == 'view'"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="备注" align="center" key="remake" prop="remake" width="130">
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.remake`"
:rules="tableRules.remake"
>
<el-input
v-model="scope.row.remake"
placeholder=""
:disabled="viewStatus == 'view'"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="货位"
align="center"
key="locationStoreName"
prop="locationStoreName"
width="180"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.locationStoreName`"
:rules="tableRules.locationStoreName"
>
<div class="select_wrapper_div">
<el-select
v-model="scope.row.locationStoreName"
placeholder="请选择货位"
:class="{ 'error-border': scope.row.error }"
clearable
:disabled="viewStatus == 'view'"
>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column
label="总库存数量"
align="center"
key="quantity"
prop="quantity"
width="120"
>
<template #default="scope">
<el-form-item
:prop="`purchaseinventoryList.${scope.$index}.quantity`"
:rules="tableRules.quantity"
>
<el-input v-model="scope.row.quantity" placeholder="" disabled />
</el-form-item>
</template>
</el-table-column>
<el-table-column
v-if="!viewStatus"
label="操作"
align="center"
width="80"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button
link
type="primary"
icon="Edit"
@click="handleScan(scope.row, scope.$index)"
>扫码</el-button
>
</template>
</el-table-column>
</el-table>
</el-scrollbar>
</el-form>
</el-tab-pane>
</el-tabs>
@@ -682,6 +684,7 @@ const ypName = ref('');
const rowIndex = ref(-1);
const totalAmount = ref(0);
const editData = ref({});
const pageLoading = ref(false);
const form = reactive({
purchaseinventoryList: [],
});
@@ -1310,7 +1313,7 @@ function handlePrint() {
}, 0);
result.push({
supplierName: supplierName,
totalAmount: totalAmount,
totalAmount: totalAmount.toFixed(2),
...receiptHeaderForm,
purchaseinventoryList: form.purchaseinventoryList,
});
@@ -1498,18 +1501,24 @@ function handleReject() {
});
}
function handelApply() {
purchaseInventoryApproved(route.query.supplyBusNo).then((res) => {
if (res.code == 200) {
proxy.$modal.msgSuccess('操作成功');
tagsViewStore.delView(router.currentRoute.value);
store.clearCurrentData();
// 跳转到审核页面
router.replace({
path: '/aaaa/medicationmanagement/billapproval',
query: { type: 'purchaseDocument' },
});
}
});
pageLoading.value = true;
purchaseInventoryApproved(route.query.supplyBusNo)
.then((res) => {
if (res.code == 200) {
pageLoading.value = false;
proxy.$modal.msgSuccess('操作成功');
tagsViewStore.delView(router.currentRoute.value);
store.clearCurrentData();
// 跳转到审核页面
router.replace({
path: '/aaaa/medicationmanagement/billapproval',
query: { type: 'purchaseDocument' },
});
}
})
.catch(() => {
pageLoading.value = false;
});
}
function toLastView(visitedViews, view) {
const latestView = visitedViews.slice(-1)[0];
@@ -1602,4 +1611,4 @@ getPurchaseinventoryTypeList();
.error-border {
border: 1px solid red;
}
</style>
</style>

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container" v-loading="pageLoading">
<el-row :gutter="10" class="mb8" v-if="viewStatus">
<el-col :span="1.5">
<el-button v-if="viewStatus != 'view'" plain type="primary" icon="Edit" @click="handelApply"
@@ -545,6 +545,7 @@ const row = ref({});
const rowIndex = ref(-1);
const totalAmount = ref(0);
const purposeTypeListOptions = ref(undefined);
const pageLoading = ref(false)
const props = defineProps({
sourceTypeListOptions: {
type: Object,
@@ -916,8 +917,10 @@ function handleReject() {
});
}
function handelApply() {
pageLoading.value = true
requisitionIssueApproved(route.query.supplyBusNo).then((res) => {
if (res.code == 200) {
pageLoading.value = false
proxy.$modal.msgSuccess('操作成功');
tagsViewStore.delView(router.currentRoute.value);
store.clearCurrentDataLYCK();
@@ -927,6 +930,8 @@ function handelApply() {
query: { type: 'requisitionManagement' },
});
}
}).catch(() => {
pageLoading.value = false
});
}
/** 提交审核按钮 */

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container" v-loading="pageLoading" loading-text="审批中。。。">
<el-row :gutter="10" class="mb8" v-if="viewStatus">
<el-col :span="1.5">
<el-button v-if="viewStatus != 'view'" plain type="primary" icon="Edit" @click="handelApply"
@@ -573,6 +573,7 @@ const visible = ref(false);
const row = ref({});
const rowIndex = ref(-1);
const totalAmount = ref(0);
const pageLoading = ref(false)
const props = defineProps({
sourceTypeListOptions: {
type: Object,
@@ -987,8 +988,10 @@ function handleReject() {
});
}
function handelApply() {
pageLoading.value = true
returnIssueApproved(route.query.supplyBusNo).then((res) => {
if (res.code == 200) {
pageLoading.value = false
proxy.$modal.msgSuccess('操作成功');
tagsViewStore.delView(router.currentRoute.value);
store.clearCurrentDataLYTK();
@@ -998,6 +1001,8 @@ function handelApply() {
query: { type: 'returningInventory' },
});
}
}).catch(() => {
pageLoading.value = false
});
}
/** 提交审核按钮 */

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container" v-loading="pageLoading" loading-text="审批中...">
<!-- <el-dialog title="调拨单据" v-model="visible" width="1500" append-to-body> -->
<el-row :gutter="10" class="mb8" v-if="viewStatus">
<el-col :span="1.5">
@@ -1354,14 +1354,18 @@ function handleReject() {
});
}
function handelApply() {
pageLoading.value = true
purchaseInventoryApproved(route.query.originalSupplyBusNo).then((res) => {
if (res.code == 200) {
pageLoading.value = false
proxy.$modal.msgSuccess("操作成功");
tagsViewStore.delView(router.currentRoute.value);
store.clearCurrentReturnData();
// 跳转到审核页面
router.replace({ path: '/aaaa/medicationmanagement/billapproval',query:{type:'returnedPurchase'}});
}
}).catch(() => {
pageLoading.value = false
})
}
function toLastView(visitedViews, view) {

View File

@@ -3,77 +3,196 @@
<el-tabs v-model="activeTabName" type="card" class="inOut-tabs" @tab-click="hendleTabChange">
<el-tab-pane label="对账" name="first">
<el-row :guutter="15">
<el-form :model="totalPrice" ref="priceRef" :inline="true">
<el-row :guutter="15">
<el-form-item label="结算经办机构:" prop="setlOptins" label-width="160px">
<el-input v-model="totalPrice.setlOptins" placeholder="请输入结算经办机构" clearable style="width: 150px"
@keyup.enter="handleQuery" />
<el-input
v-model="totalPrice.setlOptins"
placeholder="请输入结算经办机构"
clearable
style="width: 150px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="结算日期:" label-width="130px">
<el-date-picker v-model="occurrenceTime" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期" style="width: 300px"></el-date-picker>
<el-date-picker
v-model="occurrenceTime"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 300px"
></el-date-picker>
</el-form-item>
<el-form-item label="清算类型:" prop="clrType" label-width="160px">
<el-select v-model="queryParams.clrType" placeholder="请选择清算类型" clearable style="width: 150px">
<el-option v-for="categoryCode in clrTypeOptions" :key="categoryCode.value" :label="categoryCode.label"
:value="categoryCode.value" />
<el-select
v-model="queryParams.clrType"
placeholder="请选择清算类型"
clearable
style="width: 150px"
>
<el-option
v-for="categoryCode in clrTypeOptions"
:key="categoryCode.value"
:label="categoryCode.label"
:value="categoryCode.value"
/>
</el-select>
</el-form-item>
<el-form-item label="险种类型:" prop="insutype" label-width="160px">
<el-select v-model="queryParams.insutype" placeholder="请选择险种类型" clearable style="width: 150px">
<el-option v-for="categoryCode in insutypeOptions" :key="categoryCode.value" :label="categoryCode.label"
:value="categoryCode.value" />
<el-select
v-model="queryParams.insutype"
placeholder="请选择险种类型"
clearable
style="width: 150px"
>
<el-option
v-for="categoryCode in insutypeOptions"
:key="categoryCode.value"
:label="categoryCode.label"
:value="categoryCode.value"
/>
</el-select>
</el-form-item>
</el-row>
<el-row :guutter="15">
<el-form-item label="医疗费总额:" prop="medfeeSumamt" label-width="160px">
<el-input v-model="totalPrice.medfeeSumamt" placeholder="请输入医疗费总额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.medfeeSumamt"
placeholder="请输入医疗费总额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="基金支付总额:" prop="fundAppySum" label-width="160px">
<el-input v-model="totalPrice.fundAppySum" placeholder="请输入基金支付总额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.fundAppySum"
placeholder="请输入基金支付总额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="个人账户支付金额:" prop="acctPay" label-width="160px">
<el-input v-model="totalPrice.acctPay" placeholder="请输入个人账户支付金额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.acctPay"
placeholder="请输入个人账户支付金额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="现金支付金额:" prop="cashPayamt" label-width="160px">
<el-input v-model="totalPrice.cashPayamt" placeholder="请输入现金支付金额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.cashPayamt"
placeholder="请输入现金支付金额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="结算笔数:" prop="setlCnt" label-width="160px">
<el-input v-model="totalPrice.setlCnt" placeholder="请输入结算笔数" clearable style="width: 150px" />
<el-input
v-model="totalPrice.setlCnt"
placeholder="请输入结算笔数"
clearable
style="width: 150px"
/>
</el-form-item>
<!-- <el-button type="primary" plain icon="Edit" @click="handOperatedApply">手动清算</el-button> -->
<el-button type="primary" plain icon="Edit" @click="handOperatedReconcileAccounts">手动对账</el-button>
<el-button type="primary" plain icon="Edit" @click="handOperatedReconcileAccounts"
>手动对账</el-button
>
</el-row>
</el-form>
</el-row>
<!-- </div> -->
<el-table v-loading="loading" :data="purchaseinventoryList" @selection-change="handleSelectionChange"
@row-click="handleRowClick">
<el-table
v-loading="loading"
:data="purchaseinventoryList"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="申请清算ID" align="center" key="outResult" prop="outResult" width="270"
:show-overflow-tooltip="true" />
<el-table-column label="开始时间" align="center" key="begndate" prop="begndate" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="结束时间" align="center" key="enddate" prop="enddate" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="清算类别" align="center" key="clrType" prop="clrType" width="100"
:show-overflow-tooltip="true" />
<el-table-column label="总费用" align="center" key="medfeeSumamt" prop="medfeeSumamt" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="医保认可总费用" align="center" key="medSumfee" prop="medSumfee" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="基金申报金额" align="center" key="fundAppySum" prop="fundAppySum" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="现金支付总额" align="center" key="cashPayamt" prop="cashPayamt" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="个人账户金额" align="center" key="acctPay" prop="acctPay" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" key="status" prop="status" width="170" :show-overflow-tooltip="true">
<el-table-column
label="申请清算ID"
align="center"
key="outResult"
prop="outResult"
width="270"
:show-overflow-tooltip="true"
/>
<el-table-column
label="开始时间"
align="center"
key="begndate"
prop="begndate"
width="150"
:show-overflow-tooltip="true"
/>
<el-table-column
label="结束时间"
align="center"
key="enddate"
prop="enddate"
width="150"
:show-overflow-tooltip="true"
/>
<el-table-column
label="清算类别"
align="center"
key="clrType"
prop="clrType"
width="100"
:show-overflow-tooltip="true"
/>
<el-table-column
label="总费用"
align="center"
key="medfeeSumamt"
prop="medfeeSumamt"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医保认可总费用"
align="center"
key="medSumfee"
prop="medSumfee"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="基金申报金额"
align="center"
key="fundAppySum"
prop="fundAppySum"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="现金支付总额"
align="center"
key="cashPayamt"
prop="cashPayamt"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="个人账户金额"
align="center"
key="acctPay"
prop="acctPay"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
key="status"
prop="status"
width="170"
:show-overflow-tooltip="true"
>
<template #default="scope">
<span>{{ parseTime(scope.row.setlTime) }}</span>
</template>
@@ -89,33 +208,77 @@
<span>{{ scope.row.refdSetlFlag==1?'退费':'' }}</span>
</template>
</el-table-column> -->
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
<el-table-column
label="操作"
align="center"
width="300"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button type="danger" link icon="revoked-filled" :disabled="scope.row.id == ''"
@click="revokedSelectedRows(scope.row)">
<el-button
type="danger"
link
icon="revoked-filled"
:disabled="scope.row.id == ''"
@click="revokedSelectedRows(scope.row)"
>
撤销
</el-button>
</template>
</el-table-column>
</el-table>
<span class="descriptions-item-label">对账结果</span>
<div
style="
background: #f5f7fa;
border: solid 1px;
border-color: #e4e7ed;
width: 50%;
height: 100px;
margin-top: 20px;
"
>
<span>{{ reconciliation }}</span>
</div>
</el-tab-pane>
<el-tab-pane label="清算" name="second">
<el-row :guutter="15">
<el-form :model="totalPrice" ref="priceRef" :inline="true">
<el-row :guutter="15">
<el-form-item label="结算经办机构:" prop="setlOptins" label-width="160px">
<el-input v-model="totalPrice.setlOptins" placeholder="请输入结算经办机构" clearable style="width: 150px"
@keyup.enter="handleQuery" />
<el-input
v-model="totalPrice.setlOptins"
placeholder="请输入结算经办机构"
clearable
style="width: 150px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="结算日期:" label-width="130px">
<el-date-picker v-model="occurrenceTime" value-format="YYYY-MM-DD" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期" style="width: 300px"></el-date-picker>
<el-date-picker
v-model="occurrenceTime"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 300px"
></el-date-picker>
</el-form-item>
<el-form-item label="清算类型:" prop="clrType" label-width="160px">
<el-select v-model="queryParams.clrType" placeholder="请选择清算类型" clearable style="width: 150px">
<el-option v-for="categoryCode in clrTypeOptions" :key="categoryCode.value" :label="categoryCode.label"
:value="categoryCode.value" />
<el-select
v-model="queryParams.clrType"
placeholder="请选择清算类型"
clearable
style="width: 150px"
>
<el-option
v-for="categoryCode in clrTypeOptions"
:key="categoryCode.value"
:label="categoryCode.label"
:value="categoryCode.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="险种类型:" prop="insutype" label-width="160px">
@@ -127,51 +290,136 @@
</el-row>
<el-row :guutter="15">
<el-form-item label="医疗费总额:" prop="medfeeSumamt" label-width="160px">
<el-input v-model="totalPrice.medfeeSumamt" placeholder="请输入医疗费总额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.medfeeSumamt"
placeholder="请输入医疗费总额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="基金支付总额:" prop="fundAppySum" label-width="160px">
<el-input v-model="totalPrice.fundAppySum" placeholder="请输入基金支付总额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.fundAppySum"
placeholder="请输入基金支付总额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="个人账户支付金额:" prop="acctPay" label-width="160px">
<el-input v-model="totalPrice.acctPay" placeholder="请输入个人账户支付金额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.acctPay"
placeholder="请输入个人账户支付金额"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item label="现金支付金额:" prop="cashPayamt" label-width="160px">
<el-input v-model="totalPrice.cashPayamt" placeholder="请输入现金支付金额" clearable style="width: 150px" />
<el-input
v-model="totalPrice.cashPayamt"
placeholder="请输入现金支付金额"
clearable
style="width: 150px"
/>
</el-form-item>
<!-- <el-form-item label="结算笔数:" prop="setlCnt" label-width="160px">
<el-input v-model="totalPrice.setlCnt" placeholder="请输入结算笔数" clearable style="width: 150px" />
</el-form-item> -->
<el-button type="primary" plain icon="Edit" @click="handOperatedApply">手动清算</el-button>
<el-button type="primary" plain icon="Edit" @click="handOperatedApply"
>手动清算</el-button
>
<!-- <el-button type="primary" plain icon="Edit" @click="handOperatedReconcileAccounts">手动对账</el-button> -->
</el-row>
</el-form>
</el-row>
<!-- </div> -->
<el-table v-loading="loading" :data="purchaseinventoryList" @selection-change="handleSelectionChange"
@row-click="handleRowClick">
<el-table
v-loading="loading"
:data="purchaseinventoryList"
@selection-change="handleSelectionChange"
@row-click="handleRowClick"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="申请清算ID" align="center" key="outResult" prop="outResult" width="270"
:show-overflow-tooltip="true" />
<el-table-column label="开始时间" align="center" key="begndate" prop="begndate" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="结束时间" align="center" key="enddate" prop="enddate" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="清算类别" align="center" key="clrType" prop="clrType" width="100"
:show-overflow-tooltip="true" />
<el-table-column label="总费用" align="center" key="medfeeSumamt" prop="medfeeSumamt" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="医保认可总费用" align="center" key="medSumfee" prop="medSumfee" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="基金申报金额" align="center" key="fundAppySum" prop="fundAppySum" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="现金支付总额" align="center" key="cashPayamt" prop="cashPayamt" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="个人账户金额" align="center" key="acctPay" prop="acctPay" width="170"
:show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" key="status" prop="status" width="170" :show-overflow-tooltip="true">
<el-table-column
label="申请清算ID"
align="center"
key="outResult"
prop="outResult"
width="270"
:show-overflow-tooltip="true"
/>
<el-table-column
label="开始时间"
align="center"
key="begndate"
prop="begndate"
width="150"
:show-overflow-tooltip="true"
/>
<el-table-column
label="结束时间"
align="center"
key="enddate"
prop="enddate"
width="150"
:show-overflow-tooltip="true"
/>
<el-table-column
label="清算类别"
align="center"
key="clrType"
prop="clrType"
width="100"
:show-overflow-tooltip="true"
/>
<el-table-column
label="总费用"
align="center"
key="medfeeSumamt"
prop="medfeeSumamt"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="医保认可总费用"
align="center"
key="medSumfee"
prop="medSumfee"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="基金申报金额"
align="center"
key="fundAppySum"
prop="fundAppySum"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="现金支付总额"
align="center"
key="cashPayamt"
prop="cashPayamt"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="个人账户金额"
align="center"
key="acctPay"
prop="acctPay"
width="170"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
key="status"
prop="status"
width="170"
:show-overflow-tooltip="true"
>
<template #default="scope">
<span>{{ parseTime(scope.row.setlTime) }}</span>
</template>
@@ -187,32 +435,56 @@ prop="refdSetlFlag"
<span>{{ scope.row.refdSetlFlag==1?'退费':'' }}</span>
</template>
</el-table-column> -->
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width" fixed="right">
<el-table-column
label="操作"
align="center"
width="300"
class-name="small-padding fixed-width"
fixed="right"
>
<template #default="scope">
<el-button type="danger" link icon="revoked-filled" :disabled="scope.row.id == ''"
@click="revokedSelectedRows(scope.row)">
<el-button
type="danger"
link
icon="revoked-filled"
:disabled="scope.row.id == ''"
@click="revokedSelectedRows(scope.row)"
>
撤销
</el-button>
</template>
</el-table-column>
</el-table>
<span class="descriptions-item-label">清算结果</span>
<div
style="
background: #f5f7fa;
border: solid 1px;
border-color: #e4e7ed;
width: 50%;
height: 100px;
margin-top: 20px;
"
>
<span>{{ reconciliation }}</span>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script setup name="reconciliationDetails">
<script setup name="LiquidationRecords">
import {
applyFinancialClearingList,
applyUnClearing,
autoApplyFinancialClearing,
reconcileDetailList,
handOperatedApplyFinancialClearing,
handOperatedApplyReconcileAccounts
} from "./statisticalManagent";
import { getToken } from "@/utils/auth";
handOperatedApplyReconcileAccounts,
} from './statisticalManagent';
import { getToken } from '@/utils/auth';
import { formatDateStr } from '@/utils/index';
import { ref } from "vue";
import { ref } from 'vue';
const { proxy } = getCurrentInstance();
const purchaseinventoryList = ref([]);
const loading = ref(false);
@@ -222,20 +494,21 @@ const multiple = ref(true);
const total = ref(0);
const occurrenceTime = ref([
formatDateStr(getFirstDayOfMonth(new Date()), 'YYYY-MM-DD'), // 当前月份的第一天
formatDateStr(new Date(), 'YYYY-MM-DD') // 当天
])
const activeTabName = ref("first");
formatDateStr(new Date(), 'YYYY-MM-DD'), // 当天
]);
const activeTabName = ref('first');
const clrTypeOptions = ref([]);
const insutypeOptions = ref([]);
const filePath = ref("")
const purchaseinventoryReturnList = ref([])
const loadingReturn = ref(false)
const selectedRow = ref([])
const filePath = ref('');
const purchaseinventoryReturnList = ref([]);
const loadingReturn = ref(false);
const selectedRow = ref([]);
const fileSize = ref(10)
const fileSize = ref(10);
const uploadList = ref([]);
const reconciliation = ref('');
const baseUrl = import.meta.env.VITE_APP_BASE_API;
const fileType = ref(["zip", "txt"]);
const fileType = ref(['zip', 'txt']);
const data = reactive({
form: {},
queryParams: {
@@ -244,7 +517,7 @@ const data = reactive({
setlOptins: '229900',
filePath: undefined,
orgId: undefined,
clrType: undefined,
clrType: 11,
fileQuryNo: undefined,
stmtBegnDate: undefined,
stmtEndDate: undefined,
@@ -259,31 +532,67 @@ const totalPrice = reactive({
cashPayamt: 0,
counts: 0,
setlCnt: 0,
medSumfee: 0.00
medSumfee: 0.0,
});
const { queryParams, form, rules } = toRefs(data);
// 接收路由参数
const route = useRoute();
// 监听路由变化
watch(
() => route.query,
(newQuery) => {
// 当路由 query 参数变化时执行
if (newQuery.currentRow) {
try {
const currentRow = JSON.parse(newQuery.currentRow);
console.log('接收到的currentRow参数:', currentRow);
// 处理接收到的参数
if (currentRow) {
totalPrice.medfeeSumamt = currentRow.medFeeSumAmt || 0;
totalPrice.fundAppySum = currentRow.fundPaySumAmt || 0;
totalPrice.acctPay = currentRow.acctPay || 0;
totalPrice.cashPayamt = currentRow.acctGjPay || 0;
totalPrice.counts = currentRow.fixMedInsSetlCnt || 0;
queryParams.insutype = currentRow.insutype;
// 如果有传递时间参数也一并处理
if (newQuery.occurrenceTime) {
occurrenceTime.value = newQuery.occurrenceTime;
}
console.log('已更新参数:', currentRow);
}
} catch (error) {
console.error('解析currentRow参数失败:', error);
}
}
},
{ immediate: true } // 立即执行一次,处理首次加载的情况
);
watch(
() => purchaseinventoryList.value,
(newVlaue) => {
if (newVlaue && newVlaue.length > 0) {
handleTotalAmount()
handleTotalAmount();
}
},
{ immediate: true }
)
);
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.stmtBegnDate =
occurrenceTime.value && occurrenceTime.value.length == 2
? occurrenceTime.value[0] + " 00:00:00"
: "";
? occurrenceTime.value[0] + ' 00:00:00'
: '';
queryParams.value.stmtEndDate =
occurrenceTime.value && occurrenceTime.value.length == 2
? occurrenceTime.value[1] + " 23:59:59"
: "";
? occurrenceTime.value[1] + ' 23:59:59'
: '';
// queryParams.value.pageNo = 1;
getList();
}
@@ -294,8 +603,8 @@ function getFirstDayOfMonth(date) {
// 对象转成指定字符串分隔
function listToString(list, separator) {
let strs = "";
separator = separator || ",";
let strs = '';
separator = separator || ',';
for (let i in list) {
if (list[i].url) {
strs += list[i].url + separator;
@@ -305,31 +614,16 @@ function listToString(list, separator) {
}
/**计算合计金额 */
function handleTotalAmount() {
totalPrice.counts = purchaseinventoryList.value.length
totalPrice.medfeeSumamt = purchaseinventoryList.value.reduce(
(accumulator, currentRow) => {
return Number(
(accumulator + Number(currentRow.medfeeSumamt || 0)).toFixed(2)
);
},
0
);
totalPrice.fundAppySum = purchaseinventoryList.value.reduce(
(accumulator, currentRow) => {
return Number(
(accumulator + Number(currentRow.fundPaySumamt || 0)).toFixed(2)
);
},
0
);
totalPrice.acctPay = purchaseinventoryList.value.reduce(
(accumulator, currentRow) => {
return Number(
(accumulator + Number(currentRow.acctPay || 0)).toFixed(2)
);
},
0
);
totalPrice.counts = purchaseinventoryList.value.length;
totalPrice.medfeeSumamt = purchaseinventoryList.value.reduce((accumulator, currentRow) => {
return Number((accumulator + Number(currentRow.medfeeSumamt || 0)).toFixed(2));
}, 0);
totalPrice.fundAppySum = purchaseinventoryList.value.reduce((accumulator, currentRow) => {
return Number((accumulator + Number(currentRow.fundPaySumamt || 0)).toFixed(2));
}, 0);
totalPrice.acctPay = purchaseinventoryList.value.reduce((accumulator, currentRow) => {
return Number((accumulator + Number(currentRow.acctPay || 0)).toFixed(2));
}, 0);
// 现金支付金额
// cashPayamt.value = purchaseinventoryList.value.reduce(
// (accumulator, currentRow) => {
@@ -355,7 +649,6 @@ function getPharmacyCabinetLists() {
{ value: 380, label: '新型农村合作医疗' },
{ value: 391, label: '城镇居民基本医疗保险' },
{ value: 392, label: '城乡居民大病医疗保险' },
];
}
@@ -369,18 +662,17 @@ function getList() {
applyFinancialClearingList(queryParams.value).then((res) => {
// console.log(res,"res----------------")
// loading.value = false;
// purchaseinventoryList.value = [{psnNo:"123",mdtrtId:"121",setlId:"1213",medfeeSumamt:"122",fundPaySumamt:"12",acctPay:"4.72",insutype:"410",clrType: 11,contractNo:"229900"},{psnNo:"123",mdtrtId:"121",setlId:"1213",medfeeSumamt:"122",fundPaySumamt:"12",acctPay:"7.43",insutype:"410",clrType: 11,contractNo:"229900"},{psnNo:"123",mdtrtId:"121",setlId:"1213",medfeeSumamt:"122",fundPaySumamt:"12",acctPay:"1",insutype:"410",clrType: 11,contractNo:"229900"},{psnNo:"123",mdtrtId:"121",setlId:"1213",medfeeSumamt:"122",fundPaySumamt:"12",acctPay:"-1",insutype:"410",clrType: 11,contractNo:"229900"}]
purchaseinventoryList.value = res.data.records ? res.data.records : res.data;
total.value = res.data.total;
});
}
function handleApplyForLiquidation() {
let params = {}
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : ""
params.setlOptins = queryParams.value.setlOptins ? queryParams.value.setlOptins : ""
params.stmtBegnDate = queryParams.value.stmtBegnDate ? queryParams.value.stmtBegnDate : ""
params.stmtEndDate = queryParams.value.stmtEndDate ? queryParams.value.stmtEndDate : ""
let params = {};
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : '';
params.setlOptins = queryParams.value.setlOptins ? queryParams.value.setlOptins : '';
params.stmtBegnDate = queryParams.value.stmtBegnDate ? queryParams.value.stmtBegnDate : '';
params.stmtEndDate = queryParams.value.stmtEndDate ? queryParams.value.stmtEndDate : '';
autoApplyFinancialClearing(params).then((res) => {
console.log(res.data, 'res----------------');
loading.value = false;
@@ -393,34 +685,39 @@ function isAllSelected() {
function revokedSelectedRows(row) {
let queryParamsss = {
clrAppyEvtId: row.outResult,
clroptins: queryParams.value.setlOptins ? queryParams.value.setlOptins : "",
}
applyUnClearing(queryParamsss).then(res => {
proxy.$message.success('撤销成功')
getList()
}).catch(err => {
proxy.$message.error('撤销失败')
})
clroptins: queryParams.value.setlOptins ? queryParams.value.setlOptins : '',
};
applyUnClearing(queryParamsss)
.then((res) => {
proxy.$message.success('撤销成功');
getList();
})
.catch((err) => {
proxy.$message.error('撤销失败');
});
}
/** 选择条数 */
function handleSelectionChange(selection) {
selectedRow.value = selection
console.log(selectedRow.value, "selectedRow.value")
selectedRow.value = selection;
console.log(selectedRow.value, 'selectedRow.value');
ids.value = selection.map((item) => item.setlId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
function handOperatedApply() {
const params = { ...totalPrice }
params.clrOptins = queryParams.value.setlOptins ? queryParams.value.setlOptins : ""
params.begndate = occurrenceTime.value[0] ? occurrenceTime.value[0] + ' 00:00:00' : ""
params.enddate = occurrenceTime.value[1] ? occurrenceTime.value[1] + ' 23:59:59' : ""
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : ""
handOperatedApplyFinancialClearing(params).then(res => {
}).catch(err => {
proxy.$message.error('申请失败')
})
const params = { ...totalPrice };
params.clrOptins = totalPrice.setlOptins ? totalPrice.setlOptins : '';
params.begndate = occurrenceTime.value[0] ? occurrenceTime.value[0] + ' 00:00:00' : '';
params.enddate = occurrenceTime.value[1] ? occurrenceTime.value[1] + ' 23:59:59' : '';
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : '';
handOperatedApplyFinancialClearing(params)
.then((res) => {
reconciliation.value = res.data;
})
.catch((err) => {
proxy.$message.error('申请失败');
});
}
function hendleTabChange() {
@@ -430,39 +727,43 @@ function hendleTabChange() {
totalPrice.cashPayamt = 0;
totalPrice.counts = 0;
totalPrice.setlCnt = 0;
totalPrice.medSumfee = 0.00;
totalPrice.medSumfee = 0.0;
occurrenceTime.value = [
formatDateStr(getFirstDayOfMonth(new Date()), 'YYYY-MM-DD'), // 当前月份的第一天
formatDateStr(new Date(), 'YYYY-MM-DD') // 当天
]
purchaseinventoryList.value = []
formatDateStr(new Date(), 'YYYY-MM-DD'), // 当天
];
purchaseinventoryList.value = [];
queryParams.value = {
setlOptins: '229900',
setlOptins: undefined,
filePath: undefined,
orgId: undefined,
clrType: undefined,
fileQuryNo: undefined,
stmtBegnDate: undefined,
stmtEndDate: undefined,
}
};
reconciliation.value = '';
}
function handOperatedReconcileAccounts() {
const params = { ...totalPrice }
params.clrOptins = queryParams.value.setlOptins ? queryParams.value.setlOptins : ""
params.begndate = occurrenceTime.value[0] ? occurrenceTime.value[0] + ' 00:00:00' : ""
params.enddate = occurrenceTime.value[1] ? occurrenceTime.value[1] + ' 23:59:59' : ""
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : ""
params.insutype = queryParams.value.insutype ? queryParams.value.insutype : ""
handOperatedApplyReconcileAccounts(params).then(res => {
}).catch(err => {
proxy.$message.error('对账失败')
})
const params = { ...totalPrice };
params.clrOptins = totalPrice.setlOptins ? totalPrice.setlOptins : '';
params.begndate = occurrenceTime.value[0] ? occurrenceTime.value[0] + ' 00:00:00' : '';
params.enddate = occurrenceTime.value[1] ? occurrenceTime.value[1] + ' 23:59:59' : '';
params.clrType = queryParams.value.clrType ? queryParams.value.clrType : '';
params.insutype = queryParams.value.insutype ? queryParams.value.insutype : '';
handOperatedApplyReconcileAccounts(params)
.then((res) => {
reconciliation.value = res.data;
})
.catch((err) => {
proxy.$message.error('对账失败');
});
}
//点击列表当前行
function handleRowClick(row) {
// editRowTK.value = row
console.log(row, "row")
console.log(row, 'row');
// if(row.returnStatus==1){
// loadingReturn.value = true
// generatedReturnDetail(row.supplyBusNo).then((response) => {
@@ -470,16 +771,15 @@ function handleRowClick(row) {
// purchaseinventoryReturnList.value.map(k=>{
// // k.returnStatus_text = k.returnStatus==1?'已退库':''
// k.originalSupplyBusNo = k.originalSupplyBusNo?k.originalSupplyBusNo:row.supplyBusNo
// })
// })
// })
// loadingReturn.value = false
// }
}
getList();
getPharmacyCabinetLists()
getPharmacyCabinetLists();
</script>
<style scoped>
.custom-tree-node {

View File

@@ -1,21 +1,16 @@
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryRef"
:inline="true"
label-width="100px"
>
<el-form-item label="药品名称:" prop="searchKey">
<el-input
v-model="queryParams.searchKey"
placeholder="编码/单据号/药品名称"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="单据号:" prop="busNo">
<el-form :model="queryParams" ref="queryRef" :inline="true" label-width="100px">
<el-form-item label="药品名称:" prop="searchKey">
<el-input
v-model="queryParams.searchKey"
placeholder="编码/单据号/药品名称"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="单据号:" prop="busNo">
<el-input
v-model="queryParams.busNo"
placeholder="单据号:"
@@ -67,7 +62,7 @@
/>
</el-select>
</el-form-item> -->
<el-form-item label="存放仓库:" prop="purposeLocationId" >
<el-form-item label="存放仓库:" prop="purposeLocationId">
<el-select
v-model="queryParams.purposeLocationId"
placeholder=""
@@ -75,14 +70,14 @@
style="width: 150px"
>
<el-option
v-for="supplyStatus in locationIdList"
v-for="supplyStatus in locationIdList"
:key="supplyStatus.value"
:label="supplyStatus.name"
:value="supplyStatus.id"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="项目类型:" prop="categoryType">
<el-select
v-model="queryParams.categoryType"
@@ -99,12 +94,7 @@
</el-select>
</el-form-item> -->
<el-form-item label="供应商:" prop="supplierId">
<el-select
v-model="queryParams.supplierId"
placeholder=""
clearable
style="width: 150px"
>
<el-select v-model="queryParams.supplierId" placeholder="" clearable style="width: 150px">
<el-option
v-for="supplierList in supplierListOptions"
:key="supplierList.value"
@@ -118,33 +108,14 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- v-hasPermi="['system:user:import']" -->
<el-button
type="primary"
plain
icon="Search"
@click="handleQuery"
>查询</el-button
>
<el-button type="primary" plain icon="Search" @click="handleQuery">查询</el-button>
</el-col>
<el-col :span="1.5">
<!-- v-hasPermi="['system:user:export']" -->
<el-button
type="warning"
plain
icon="CircleClose"
@click="handleClear"
>重置</el-button
>
<el-button type="warning" plain icon="CircleClose" @click="handleClear">重置</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
>导出</el-button>
<el-button type="warning" plain icon="Download" @click="handleExport">导出</el-button>
</el-col>
</el-row>
@@ -152,9 +123,10 @@
v-loading="loading"
:data="purchaseinventoryList"
@selection-change="handleSelectionChange"
height="calc(100vh - 300px)"
>
<el-table-column type="selection" width="50" align="center" />
<!-- <el-table-column
<!-- <el-table-column
label="药品名称"
align="center"
key="name"
@@ -167,7 +139,7 @@
align="center"
key="supplyBusno"
prop="supplyBusno"
width="200"
width="200"
:show-overflow-tooltip="true"
/>
<!-- itemTable -->
@@ -176,7 +148,7 @@
align="center"
key="name"
prop="name"
width="140"
width="140"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -208,7 +180,7 @@
align="center"
key="locationName"
prop="locationName"
width="140"
width="140"
:show-overflow-tooltip="true"
/>
<el-table-column
@@ -267,7 +239,7 @@
prop="department"
:show-overflow-tooltip="true"
/> -->
<el-table-column
<el-table-column
label="供应商"
align="center"
key="supplier"
@@ -320,8 +292,8 @@
import {
getReportInboundPCage,
getPharmacyCabinetList,
getInboundInit
} from "./statisticalManagent";
getInboundInit,
} from './statisticalManagent';
const { proxy } = getCurrentInstance();
const route = useRoute();
@@ -347,17 +319,17 @@ const data = reactive({
queryParams: {
pageNo: 1,
pageSize: 10,
searchKey: undefined,
busNo: undefined,
name:undefined,
searchKey: undefined,
busNo: undefined,
name: undefined,
medicationDefId: undefined,
// approvalTime:undefined,
department:undefined,
department: undefined,
purposeLocationId: undefined,
categoryType: undefined,
supplierId: undefined,
occurrenceTimeSTime:undefined,
occurrenceTimeETime:undefined,
categoryType: undefined,
supplierId: undefined,
occurrenceTimeSTime: undefined,
occurrenceTimeETime: undefined,
},
rules: {},
});
@@ -366,24 +338,28 @@ const { queryParams, form, rules } = toRefs(data);
function getPharmacyCabinetLists() {
getPharmacyCabinetList().then((response) => {
locationIdList.value = response.data
locationIdList.value = response.data;
});
getInboundInit().then((response) => {
supplierListOptions.value = response.data.supplierListOptions
})
supplierListOptions.value = response.data.supplierListOptions;
});
}
/** 导出按钮操作 */
function handleExport() {
proxy.$download.downloadGet("report-manage/inbound/excel-out", {
...queryParams.value
}, `dict_${new Date().getTime()}.xlsx`);
proxy.$download.downloadGet(
'report-manage/inbound/excel-out',
{
...queryParams.value,
},
`dict_${new Date().getTime()}.xlsx`
);
}
/** 查询调拨管理项目列表 */
function getList() {
loading.value = true;
getReportInboundPCage(queryParams.value).then((res) => {
loading.value = false;
purchaseinventoryList.value = res.data.records
purchaseinventoryList.value = res.data.records;
total.value = res.data.total;
});
}
@@ -393,7 +369,11 @@ watch(
() => route.query,
(newQuery) => {
// 如果路由中包含指定参数,则使用这些参数进行查询
if (newQuery.purposeLocationId || newQuery.occurrenceTimeSTime || newQuery.occurrenceTimeETime) {
if (
newQuery.purposeLocationId ||
newQuery.occurrenceTimeSTime ||
newQuery.occurrenceTimeETime
) {
// 设置查询参数
if (newQuery.purposeLocationId) {
queryParams.value.purposeLocationId = newQuery.purposeLocationId;
@@ -404,7 +384,7 @@ watch(
if (newQuery.occurrenceTimeETime) {
queryParams.value.occurrenceTimeETime = newQuery.occurrenceTimeETime + ' 23:59:59';
}
// 执行查询
getList();
}
@@ -415,13 +395,9 @@ watch(
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.occurrenceTimeSTime =
approvalTime.value && approvalTime.value.length == 2
? approvalTime.value[0] + " 00:00:00"
: "";
approvalTime.value && approvalTime.value.length == 2 ? approvalTime.value[0] + ' 00:00:00' : '';
queryParams.value.occurrenceTimeETime =
approvalTime.value && approvalTime.value.length == 2
? approvalTime.value[1] + " 23:59:59"
: "";
approvalTime.value && approvalTime.value.length == 2 ? approvalTime.value[1] + ' 23:59:59' : '';
queryParams.value.pageNo = 1;
getList();
}
@@ -429,10 +405,10 @@ function handleQuery() {
/** 清空条件按钮操作 */
function handleClear() {
// 清空查询条件
queryParams.value.occurrenceTimeSTime = ""
queryParams.value.occurrenceTimeETime = ""
approvalTime.value = ""
proxy.resetForm("queryRef");
queryParams.value.occurrenceTimeSTime = '';
queryParams.value.occurrenceTimeETime = '';
approvalTime.value = '';
proxy.resetForm('queryRef');
getList();
}
@@ -444,7 +420,7 @@ function handleSelectionChange(selection) {
}
getList();
getPharmacyCabinetLists()
getPharmacyCabinetLists();
</script>
<style scoped>
.custom-tree-node {
@@ -457,4 +433,4 @@ getPharmacyCabinetLists()
font-size: large;
margin-bottom: 10px;
}
</style>
</style>

View File

@@ -11,6 +11,7 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 300px"
@change="handleQuery"
></el-date-picker>
</el-form-item>
<el-form-item label="清算类型:" prop="clrType">
@@ -33,7 +34,7 @@
v-model="queryParams.insuType"
placeholder="请选择险种类型"
clearable
style="width: 150px"
style="width: 200px"
>
<el-option
v-for="insuType in insutype"
@@ -58,24 +59,9 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="医院" prop="orgId">
<el-input
v-model="queryParams.orgId"
placeholder="请输入医院id"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item> -->
</el-form>
<!-- <el-col :span="1.5"> -->
<!-- v-hasPermi="['system:user:import']" -->
<!-- <el-button type="primary" plain icon="Edit" @click="getList">查询</el-button> -->
<el-button type="primary" plain icon="Edit" @click="handleQuery">结算</el-button>
<!-- </el-col> -->
<!-- <el-col :span="1.5"> -->
<!-- v-hasPermi="['system:user:export']" -->
<el-button
<el-button type="primary" plain icon="Edit" @click="handleQuery">获取医保交易数据</el-button>
<!-- <el-button
type="primary"
plain
icon="Edit"
@@ -83,34 +69,20 @@
:disabled="ids.length == 0"
>
医保对总账
</el-button>
<el-button
type="primary"
plain
icon="Edit"
@click="handleGetClroptins"
>
</el-button> -->
<!-- <el-button type="primary" plain icon="Edit" @click="handleGetClroptins">
清算机构查询
</el-button>
</el-button> -->
<!-- </el-col> -->
</el-row>
<!-- <div style="margin-bottom: 5px">
定点医药机构结算笔数{{ counts }}其中 医疗费总额{{ totalPrice1 }}基金支付总额{{
totalPrice2
}}个人账户支付金额{{ totalPrice3 }}现金支付金额{{ totalPrice4 }}认可费用总额{{
totalPrice5
}}
</div> -->
<el-table
v-loading="loading"
:data="purchaseinventoryList"
border
@select="clickRow"
ref="refTables"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" align="center" />
<!-- <el-table-column type="selection" width="50" align="center" /> -->
<el-table-column label="清算类别" align="center" prop="contractNo_dictText" />
<el-table-column label="险种" align="center" prop="insutype_dictText" />
<el-table-column label="是否异地" align="center" key="locationName" prop="locationName" />
@@ -144,6 +116,11 @@
{{ scope.row.fixMedInsSetlCnt + ' 笔' }}
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button type="primary" link @click="handleReconciliation(scope.row)">对账</el-button>
</template>
</el-table-column>
</el-table>
<!-- <pagination
v-show="total > 0"
@@ -154,26 +131,38 @@
/> -->
<el-form :inline="true" label-width="90px" style="width: 100%; margin-top: 30px">
<el-form-item label="对账结果:" style="width: 100%">
<el-input
v-model="reconciliation"
:autosize="{ minRows: 4, maxRows: 10 }"
type="textarea"
disabled
placeholder=""
/>
<div
style="
background: #f5f7fa;
border: solid 1px;
border-color: #e4e7ed;
width: 50%;
height: 100px;
"
>
<span>{{ reconciliation }}</span>
<el-button
v-if="reconciliation && reconciliation != 'OK'"
type="primary"
link
@click="toReconcileRecord"
>
手动对账
</el-button>
</div>
</el-form-item>
</el-form>
</div>
</template>
<script setup name="reconciliation">
<script setup name="Reconciliation">
import {
ybRequestReconcile, // 医保对账
getReconcileList, // 对账列表 结算
getContractList, // 合同
getClroptins,
} from './statisticalManagent';
import { formatDate } from '@/utils/index';
import { formatDate, formatDateStr } from '@/utils/index';
const { proxy } = getCurrentInstance();
const { insutype } = proxy.useDict('insutype');
// 险种类型
@@ -183,10 +172,15 @@ const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const occurrenceTime = ref([formatDate(new Date()), formatDate(new Date())]);
const occurrenceTime = ref([
formatDateStr(new Date(), 'YYYY-MM-DD'),
formatDateStr(new Date(), 'YYYY-MM-DD'),
]);
const contractNoOptions = ref([]);
const clrTypeOptions = ref([]);
('');
const selectedRow = ref(null);
const currentRow = ref({});
const reconciliation = ref('');
const counts = ref(0);
const totalPrice1 = ref(0);
@@ -202,7 +196,7 @@ const data = reactive({
// pageSize: 10,
// searchKey: undefined,
insuType: undefined, // 险种
clrType: undefined, //住院或门诊
clrType: 11, //住院或门诊
contractNo: undefined,
orgId: undefined,
stmtBegnDate: undefined,
@@ -267,18 +261,20 @@ function handleQuery() {
? occurrenceTime.value[1] + ' 23:59:59'
: '';
// queryParams.value.pageNo = 1;
reconciliation.value = '';
getList();
}
/** 按钮操作 */
function handleReconciliation() {
function handleReconciliation(row) {
// 调用接口返回值
// loading.value = true;
currentRow.value = row;
reconciliation.value = '';
let queryParams = {
insuType: selectedRow.value.insutype.toString(),
clrType: selectedRow.value.clrType,
contractNo: selectedRow.value.contractNo.toString(),
insuType: row.insutype.toString(),
clrType: row.clrType,
contractNo: row.contractNo.toString(),
stmtBegnDate:
occurrenceTime.value && occurrenceTime.value.length == 2
? occurrenceTime.value[0] + ' 00:00:00'
@@ -302,6 +298,17 @@ function handleSelectionChange(selection) {
multiple.value = !selection.length;
}
function toReconcileRecord() {
// 跳转到清算记录页面,并携带当前选中行的数据
proxy.$router.push({
name: 'LiquidationRecords',
query: {
currentRow: JSON.stringify(currentRow.value),
occurrenceTime: occurrenceTime.value,
},
});
}
function handleGetClroptins() {
getClroptins({ pageNum: 1, pageSize: 100, fixmedinsCode: 'H22010200672' }).then((res) => {});
}

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container" v-loading="pageLoading" loading-text="审批中...">
<el-row :gutter="10" class="mb8" v-if="viewStatus">
<el-col :span="1.5">
<el-button
@@ -819,6 +819,7 @@ const visible = ref(false);
const row = ref({});
const rowIndex = ref(-1);
const totalAmount = ref(0);
const pageLoading = ref(false)
const form = reactive({
purchaseinventoryList: [],
@@ -1070,7 +1071,9 @@ function handleClickOutside(event) {
}
function handelApply() {
pageLoading.value = true;
productTransferApproved(route.query.supplyBusNo).then((res) => {
pageLoading.value = false
if (res.code == 200) {
proxy.$modal.msgSuccess("操作成功");
store.clearCurrentDataPLDB();
@@ -1078,6 +1081,8 @@ function handelApply() {
// 跳转到审核页面
router.replace({ path: '/aaaa/medicationmanagement/billapproval',query:{type:'batchTransfer'}});
}
}).catch(() => {
pageLoading.value = false
})
}

View File

@@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-container" v-loading="pageLoading" loading-text="审批中...">
<el-row :gutter="10" class="mb8" v-if="viewStatus">
<el-col :span="1.5">
<el-button
@@ -817,6 +817,7 @@ const tableRef = ref(undefined); // 表格引用
const currentRow = ref(undefined); // 当前操作的行
const medicineSearchKey = ref("");
const itemType = ref("");
const pageLoading = ref(false)
const forms = reactive({
purchaseinventoryList: [],
})
@@ -1211,8 +1212,10 @@ function handleClickOutside(event) {
}
function handelApply() {
pageLoading.value = true
productTransferApproved(route.query.supplyBusNo).then((res) => {
if (res.code == 200) {
pageLoading.value = false
proxy.$modal.msgSuccess("操作成功");
tagsViewStore.delView(router.currentRoute.value);
store.clearCurrentDataDB();
@@ -1222,7 +1225,9 @@ function handelApply() {
// toLastView(visitedViews, route)
// })
}
})
}).catch(() => {
pageLoading.value = false
});
}
// 驳回
@@ -1314,6 +1319,8 @@ function handleLocationClick(id,purposeLocationId,itemId, index) {
form.purchaseinventoryList[index].itemTable = res.data[0].itemTable || ""
form.purchaseinventoryList[index].totalPurposeQuantity = res.data[0].objQuantity || 0;
form.purchaseinventoryList[index].totalSourceQuantity = res.data[0].orgQuantity || 0;
// 临时存一下价格 处理切换单位时候丢精度的问题
form.purchaseinventoryList[index].tempPrice = res.data[0].price;
form.purchaseinventoryList[index].traceNo = res.data[0].traceNo || "";
form.purchaseinventoryList[index].supplierId = res.data[0].supplierId || "";
@@ -1505,8 +1512,7 @@ function getMaxCounts(row,index,counts){
(decimalPart*row.partPercent).toFixed(0) + form.purchaseinventoryList[index].minUnitCode_dictText
}
}else{
form.purchaseinventoryList[index].price =
form.purchaseinventoryList[index].price * row.partPercent;
form.purchaseinventoryList[index].price = row.tempPrice
form.purchaseinventoryList[index].price = form.purchaseinventoryList[index].price.toFixed(2);
}
}