diff --git a/src/api/liswork/advancedReview/index.ts b/src/api/liswork/advancedReview/index.ts new file mode 100644 index 0000000..9d9d696 --- /dev/null +++ b/src/api/liswork/advancedReview/index.ts @@ -0,0 +1,12 @@ +//@ts-ignore js语法检查忽略 +import request from '@/utils/request'; + + +//获取报告列表 +export function queryList(query?: Object) { + return request({ + url: '/labCheckrules/queryList', + method: 'get', + params: query, + }); +} \ No newline at end of file diff --git a/src/api/liswork/xmmb/index.ts b/src/api/liswork/xmmb/index.ts index 76fbe21..f03e9ca 100644 --- a/src/api/liswork/xmmb/index.ts +++ b/src/api/liswork/xmmb/index.ts @@ -17,4 +17,38 @@ export function queryDetail(query?: Object) { method: 'get', params: query, }); -} \ No newline at end of file +} +// 新增模板 +export function addXmInfo(query?: Object) { + return request({ + url: '/labInputmdl/add', + method: 'post', + data: query, + }); +} +// 修改模板 +export function updateXmInfo(query?: Object) { + return request({ + url: '/labInputmdl/update', + method: 'post', + data: query, + }); +} + +// 删除模板 +export function deleteXmInfo(query?: Object) { + return request({ + url: '/labInputmdl/delete', + method: 'get', + params: query, + }); +} +// 删除明细数据 +export function deleteDetail(query?: Object) { + return request({ + url: '/labInputmdl/deleteDetail', + method: 'post', + data: query, + }); +} + diff --git a/src/components/SelectTable/YQSelectTable/index.vue b/src/components/SelectTable/YQSelectTable/index.vue index ba01c4e..b0483eb 100644 --- a/src/components/SelectTable/YQSelectTable/index.vue +++ b/src/components/SelectTable/YQSelectTable/index.vue @@ -54,8 +54,8 @@ const getYqConfig = () => { } const getDataValue = (val: any) => { - emits('update:data', val.yq); - emits('getDataValue', val); + emits('update:data', val?.yq || null); + emits('getDataValue', val || null); }; watch(() => props.data, (val) => { diff --git a/src/views/liswork/advancedReview/index.vue b/src/views/liswork/advancedReview/index.vue new file mode 100644 index 0000000..e6f3a72 --- /dev/null +++ b/src/views/liswork/advancedReview/index.vue @@ -0,0 +1,75 @@ +/** +* @file index.vue 高级审核条件 +* @author: w +* @since: 2025-12-25 +*/ + + + + + + + + + + 新增 + 保存 + 删除 + + + + + + + + + + + + + + + diff --git a/src/views/liswork/xmmb/index.vue b/src/views/liswork/xmmb/index.vue index 676948a..96b90d5 100644 --- a/src/views/liswork/xmmb/index.vue +++ b/src/views/liswork/xmmb/index.vue @@ -6,6 +6,18 @@ + + + + + + + + + 查询 + + 新增 @@ -15,7 +27,7 @@ + @row-dblclick="handleRowDblclick" @row-click="selectedRows = $event"> {{ formatInstr(row.yq) }} @@ -32,7 +44,7 @@ - + @@ -57,20 +69,23 @@ 保存 - 新增 - 删除 + 新增 + 删除 - - - {{ row.xmdh }} {{ row.xmmc }} + + + + + + - - @@ -80,9 +95,16 @@ import YQSelectTable from '@/components/SelectTable/YQSelectTable/index.vue'; // @ts-ignore import { listregdict } from "@/api/regional/dict/regdict.js"; -import { queryMbList, queryDetail } from '@/api/liswork/xmmb'; +import { queryMbList, queryDetail, addXmInfo, deleteDetail, updateXmInfo, deleteXmInfo } from '@/api/liswork/xmmb'; import { formatInstr, getYqData } from '@/hooks' +import { queryOldxminfo } from '@/api/liswork/xtwh/xmReqItemVsApi' +import { ElMessage, ElMessageBox } from 'element-plus'; + +const queryParams = ref({ + yq: '', + mbmc: '', +}) const disabled = ref(false) const formData = ref({ yq: '', @@ -92,7 +114,9 @@ const formData = ref({ zdsr: '', qsybh: '', jsybh: '', + oldMbmc: '', }) +const xmList = ref([]) const title = ref('') const visible = ref(false) const tableData = ref([]) @@ -111,13 +135,22 @@ const tableConfig = ref({ border: true, // 边框 highlightCurrentRow: true, // 当前行高亮 }) - +const selectedRows: any = ref(null) const regdictList = ref>([]) -const rightTableData = ref([]) +const rightTableData = ref>([]) const rightColumns = ref([ - { prop: 'xmdh', label: '检验项目', visible: true, align: 'center', slot: 'xmdh' }, - { prop: 'mrz', label: '默认值', visible: true, align: 'center', }, + { prop: 'xmdh', label: '检验项目', visible: true, align: 'center', slot: 'xmdh', showOverflowTooltip: false }, + { prop: 'mrz', label: '默认值', visible: true, align: 'center', slot: 'mrz', showOverflowTooltip: false }, ]) +const getOldXminfoList = async () => { + const res = await queryOldxminfo({ yq: formData.value.yq }) + xmList.value = res.data.map((item: any) => { + return { + label: item.xmmc, + value: item.xmdh, + } + }) +} const handleAdd = () => { formData.value = { @@ -128,6 +161,7 @@ const handleAdd = () => { zdsr: '', qsybh: '', jsybh: '', + oldMbmc: '', } disabled.value = false rightTableData.value = [] @@ -136,19 +170,94 @@ const handleAdd = () => { } const handleRowDblclick = (row: any) => { - queryDetail(row).then((res: any) => { - rightTableData.value = res.data - }) + getDetailsList(row) row.yq = row.yq.trim() + row.oldMbmc = row.mbmc formData.value = row + getOldXminfoList() disabled.value = true title.value = '编辑模板' visible.value = true } -const handleSave = () => { } -const handleDel = () => { } + +const getDetailsList = (row: any) => { + queryDetail({ yq: row.yq, mbmc: row.mbmc }).then((res: any) => { + rightTableData.value = res.data + }) +} +const handleSave = () => { + rightTableData.value = rightTableData.value.filter((item: any) => item.xmdh) + const arr = rightTableData.value.map((item: any, index: number) => { + return { + ...item, + mbmc: formData.value.mbmc, + oldMbmc: formData.value.oldMbmc, + yq: formData.value.yq, + xh: item.xh ? item.xh : index + 1, + } + }) + if (disabled.value) { + updateXmInfo({ labInputmdl: formData.value, labInputmdlDetailList: arr }).then(() => { + ElMessage.success('修改成功') + getList() + visible.value = false + }) + } else { + addXmInfo({ labInputmdl: formData.value, labInputmdlDetailList: arr }).then(() => { + ElMessage.success('新增成功') + getList() + visible.value = false + }) + } +} +const xmInfo = ref(null) +const xmrowHandle = (row: any) => { + xmInfo.value = row +} + +const getXmInfo = (row: any, currentIndex: any) => { + const prevXmdhList = rightTableData.value + .filter((_, index) => index < currentIndex) + .map(row => row.xmdh) + .filter(xmdh => !!xmdh); + + + if (prevXmdhList.includes(row.xmdh)) { + ElMessage.error(`当前项目编号【${row.xmdh}】与前面行重复,请重新选择!`); + rightTableData.value[currentIndex].xmdh = ''; + } +} + +const addItem = () => { + rightTableData.value.push({ xmdh: '', mrz: '', }) +} +const delItem = () => { + if (!xmInfo.value) return ElMessage.warning('请选择要删除的行!') + if (xmInfo.value.yq) { + deleteDetail([xmInfo.value]).then((res: any) => { + if (res.code == 0) { + getDetailsList(formData.value) + } + }) + } else { + rightTableData.value = rightTableData.value.filter(item => item.xmdh != xmInfo.value.xmdh) + } + xmInfo.value = null +} +const handleDel = () => { + if (!selectedRows.value) return ElMessage.warning('请选择要删除的记录') + ElMessageBox.confirm('确定要删除选中的数据吗?', '提示', { + type: 'warning' + }).then(() => { + deleteXmInfo(selectedRows.value).then(() => { + ElMessage.success('删除成功') + getList() + selectedRows.value = null + }) + }) +} const getList = () => { - queryMbList().then((res: any) => { + queryMbList(queryParams.value).then((res: any) => { tableData.value = res.data }) } @@ -174,7 +283,7 @@ const formatYblx = (v: string) => {