Merge branch 'main' of http://47.97.125.165:8902/jiangs/lis8.0-vue3
This commit is contained in:
commit
1d93015507
11
src/api/regional/index.ts
Normal file
11
src/api/regional/index.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// @ts-ignore
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 获取流转数据
|
||||||
|
export function querySample(query?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/transit/querySample',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -189,7 +189,7 @@ aside {
|
|||||||
.el-form-item__label {
|
.el-form-item__label {
|
||||||
padding-bottom: 0px;
|
padding-bottom: 0px;
|
||||||
color: #08355E;
|
color: #08355E;
|
||||||
font-size: 12px;
|
font-size: .75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
// pointer-events: none;
|
// pointer-events: none;
|
||||||
@ -214,3 +214,76 @@ aside {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.time-line-box {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: .35rem;
|
||||||
|
background-color: #f0f3f8;
|
||||||
|
padding: .3rem 2.5rem;
|
||||||
|
|
||||||
|
|
||||||
|
.time-line-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-around;
|
||||||
|
width: 16.6%;
|
||||||
|
|
||||||
|
.timeline-content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.index {
|
||||||
|
width: 1.875rem;
|
||||||
|
height: 1.875rem;
|
||||||
|
line-height: 1.875rem;
|
||||||
|
background: #E1E9F7;
|
||||||
|
border-radius: 50%;
|
||||||
|
text-align: center;
|
||||||
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
color: #4767A3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active {
|
||||||
|
background-color: #4096ff;
|
||||||
|
box-shadow: 0 0 0 .25rem rgba(64, 150, 255, 0.2);
|
||||||
|
color: #FFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.timeline-title {
|
||||||
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 1rem;
|
||||||
|
color: #4767A3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-time {
|
||||||
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: .875rem;
|
||||||
|
color: #4767A3;
|
||||||
|
height: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.no_active {
|
||||||
|
|
||||||
|
.index,
|
||||||
|
.timeline-title {
|
||||||
|
color: #9b9999 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.timg {
|
||||||
|
width: 3.125rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -162,6 +162,11 @@
|
|||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
|
||||||
|
background-color: #a4beef !important;
|
||||||
|
color: #000 !important;
|
||||||
|
}
|
||||||
|
|
||||||
.cell.el-tooltip {
|
.cell.el-tooltip {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
|
|||||||
@ -61,7 +61,7 @@
|
|||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<div v-if="pagination.show" class="pagination-wrapper">
|
<div v-if="pagination.show" class="pagination-wrapper">
|
||||||
<el-pagination v-model:current-page="currentPage" v-model:page-size="currentPageSize" :total="pagination.total"
|
<el-pagination v-model:current-page="currentPage" v-model:page-size="currentPageSize" :total="pagination.total"
|
||||||
:page-sizes="pagination.pageSizes || [10, 20, 50, 100]"
|
:size="aotuSize" :page-sizes="pagination.pageSizes || [10, 20, 50, 100]"
|
||||||
:layout="pagination.layout || 'total, sizes, prev, pager, next, jumper'"
|
:layout="pagination.layout || 'total, sizes, prev, pager, next, jumper'"
|
||||||
:background="pagination.background !== false" :small="pagination.small || false"
|
:background="pagination.background !== false" :small="pagination.small || false"
|
||||||
:disabled="pagination.disabled || false" @size-change="handleSizeChange"
|
:disabled="pagination.disabled || false" @size-change="handleSizeChange"
|
||||||
@ -72,6 +72,8 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, ref, watch, PropType, onMounted } from "vue";
|
import { computed, ref, watch, PropType, onMounted } from "vue";
|
||||||
import { TableColumnCtx } from 'element-plus';
|
import { TableColumnCtx } from 'element-plus';
|
||||||
|
import { classCom } from "@/utils/classCom";
|
||||||
|
const aotuSize = classCom.useAutoSize();
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import Sortable from 'sortablejs'; // 引入sortablejs
|
import Sortable from 'sortablejs'; // 引入sortablejs
|
||||||
interface TableColumn {
|
interface TableColumn {
|
||||||
@ -395,8 +397,7 @@ defineExpose({
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
padding: 12px 0;
|
padding: .3125rem 0;
|
||||||
margin-top: 16px;
|
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="tags-view-container" class="tags-view-container">
|
<div id="tags-view-container" class="tags-view-container">
|
||||||
<scroll-pane ref="scrollPaneRef" class="tags-view-wrapper" @scroll="handleScroll">
|
<scroll-pane ref="scrollPaneRef" class="tags-view-wrapper" @scroll="handleScroll">
|
||||||
<router-link
|
<router-link v-for="tag in visitedViews" :key="tag.path" :data-path="tag.path"
|
||||||
v-for="tag in visitedViews"
|
:class="isActive(tag) ? 'active' : ''" :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
|
||||||
:key="tag.path"
|
class="tags-view-item" :style="activeStyle(tag)" @click.middle="!isAffix(tag) ? closeSelectedTag(tag) : ''"
|
||||||
:data-path="tag.path"
|
@contextmenu.prevent="openMenu(tag, $event)">
|
||||||
:class="isActive(tag) ? 'active' : ''"
|
|
||||||
:to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
|
|
||||||
class="tags-view-item"
|
|
||||||
:style="activeStyle(tag)"
|
|
||||||
@click.middle="!isAffix(tag) ? closeSelectedTag(tag) : ''"
|
|
||||||
@contextmenu.prevent="openMenu(tag, $event)"
|
|
||||||
>
|
|
||||||
{{ tag.title }}
|
{{ tag.title }}
|
||||||
<span v-if="!isAffix(tag)" @click.prevent.stop="closeSelectedTag(tag)">
|
<span v-if="!isAffix(tag)" @click.prevent.stop="closeSelectedTag(tag)">
|
||||||
<close class="el-icon-close" style="width: 1em; height: 1em;vertical-align: middle;" />
|
<close class="el-icon-close" style="width: 1em; height: 1em;vertical-align: middle;" />
|
||||||
@ -243,42 +236,53 @@ function handleScroll() {
|
|||||||
|
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
.tags-view-container {
|
.tags-view-container {
|
||||||
height: 34px; /* 稍微增加高度,让立体效果更明显 */
|
height: 2.125rem;
|
||||||
|
/* 稍微增加高度,让立体效果更明显 */
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: #f5f7fa; /* 标签栏整体背景(浅灰,与标签区分) */
|
background: #f5f7fa;
|
||||||
|
/* 标签栏整体背景(浅灰,与标签区分) */
|
||||||
/* 1. 去掉底部边框(关键:消除物理边框导致的缝隙) */
|
/* 1. 去掉底部边框(关键:消除物理边框导致的缝隙) */
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
/* 2. 弱化或去掉标签栏的底部阴影(避免阴影造成视觉缝隙) */
|
/* 2. 弱化或去掉标签栏的底部阴影(避免阴影造成视觉缝隙) */
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02); /* 仅保留极浅的顶部阴影 */
|
box-shadow: 0 .0625rem .125rem rgba(0, 0, 0, 0.02);
|
||||||
|
/* 仅保留极浅的顶部阴影 */
|
||||||
/* 标签栏底部加一条浅线,区分标签栏和下方页面 */
|
/* 标签栏底部加一条浅线,区分标签栏和下方页面 */
|
||||||
border-bottom: 1px solid #e0e0e0;
|
border-bottom: .0625rem solid #e0e0e0;
|
||||||
|
|
||||||
.tags-view-wrapper {
|
.tags-view-wrapper {
|
||||||
.tags-view-item {
|
.tags-view-item {
|
||||||
/* 未激活标签:灰色渐变+立体阴影 */
|
/* 未激活标签:灰色渐变+立体阴影 */
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
height: 28px;
|
height: 1.75rem;
|
||||||
line-height: 28px;
|
line-height: 1.75rem;
|
||||||
padding: 0 12px;
|
padding: 0 .75rem;
|
||||||
font-size: 12px;
|
font-size: .75rem;
|
||||||
margin-left: 4px;
|
margin-left: .25rem;
|
||||||
margin-top: 4px;
|
margin-top: .25rem;
|
||||||
border-radius: 4px 4px 0 0; /* 底部圆角去掉,与下方无缝感 */
|
border-radius: .25rem .25rem 0 0;
|
||||||
border: 1px solid #d0d0d0; /* 浅灰边框 */
|
/* 底部圆角去掉,与下方无缝感 */
|
||||||
border-bottom-color: transparent; /* 底部边框透明,避免与标签栏线重叠 */
|
border: 1px solid #d0d0d0;
|
||||||
|
/* 浅灰边框 */
|
||||||
|
border-bottom-color: transparent;
|
||||||
|
/* 底部边框透明,避免与标签栏线重叠 */
|
||||||
|
|
||||||
/* 灰色渐变:从上到下浅灰→深灰(模拟轻微凸起) */
|
/* 灰色渐变:从上到下浅灰→深灰(模拟轻微凸起) */
|
||||||
background: linear-gradient(180deg, #f0f0f0 0%, #e0e0e0 100%);
|
background: linear-gradient(180deg, #f0f0f0 0%, #e0e0e0 100%);
|
||||||
|
|
||||||
/* 立体阴影:底部轻微阴影+顶部内高光 */
|
/* 立体阴影:底部轻微阴影+顶部内高光 */
|
||||||
box-shadow:
|
box-shadow:
|
||||||
0 2px 4px rgba(0, 0, 0, 0.1), /* 底部阴影加深,突出悬浮感 */
|
0 2px 4px rgba(0, 0, 0, 0.1),
|
||||||
inset 0 1px 1px rgba(255, 255, 255, 0.8); /* 顶部内高光,增强凸起感 */
|
/* 底部阴影加深,突出悬浮感 */
|
||||||
|
inset 0 1px 1px rgba(255, 255, 255, 0.8);
|
||||||
|
/* 顶部内高光,增强凸起感 */
|
||||||
|
|
||||||
|
|
||||||
color: #777; /* 文字灰色,不抢眼 */
|
color: #777;
|
||||||
transition: all 0.2s ease; /* 过渡动画 */
|
/* 文字灰色,不抢眼 */
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
/* 过渡动画 */
|
||||||
|
|
||||||
/* 鼠标悬停时增强效果(未激活状态) */
|
/* 鼠标悬停时增强效果(未激活状态) */
|
||||||
&:hover:not(.active) {
|
&:hover:not(.active) {
|
||||||
@ -287,29 +291,36 @@ function handleScroll() {
|
|||||||
0 3px 4px rgba(0, 0, 0, 0.08),
|
0 3px 4px rgba(0, 0, 0, 0.08),
|
||||||
inset 0 1px 0 rgba(255, 255, 255, 0.9);
|
inset 0 1px 0 rgba(255, 255, 255, 0.9);
|
||||||
border-color: #d0d0d0;
|
border-color: #d0d0d0;
|
||||||
color: #333; /* hover时文字略深 */
|
color: #333;
|
||||||
|
/* hover时文字略深 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 激活标签样式:深色渐变+强阴影,突出当前页 */
|
/* 激活标签样式:深色渐变+强阴影,突出当前页 */
|
||||||
&.active {
|
&.active {
|
||||||
/* 激活标签:从左到右的主题色渐变(示例用蓝紫色) */
|
/* 激活标签:从左到右的主题色渐变(示例用蓝紫色) */
|
||||||
background: linear-gradient(90deg, #409eff 0%, #6b7aff 100%);
|
background: linear-gradient(90deg, #409eff 0%, #6b7aff 100%);
|
||||||
color: #ffffff; /* 文字白色,与渐变背景对比 */
|
color: #ffffff;
|
||||||
border-color: #409eff; /* 边框与渐变颜色匹配 */
|
/* 文字白色,与渐变背景对比 */
|
||||||
box-shadow: 0 3px 6px rgba(64, 158, 255, 0.25), /* 外阴影(带颜色倾向,增强立体感) */
|
border-color: #409eff;
|
||||||
inset 0 1px 0 rgba(255, 255, 255, 0.2); /* 内阴影(顶部亮边,模拟高光) */
|
/* 边框与渐变颜色匹配 */
|
||||||
transform: translateY(-1px); /* 轻微上浮,与其他标签区分 */
|
box-shadow: 0 3px 6px rgba(64, 158, 255, 0.25),
|
||||||
|
/* 外阴影(带颜色倾向,增强立体感) */
|
||||||
|
inset 0 1px 0 rgba(255, 255, 255, 0.2);
|
||||||
|
/* 内阴影(顶部亮边,模拟高光) */
|
||||||
|
transform: translateY(-1px);
|
||||||
|
/* 轻微上浮,与其他标签区分 */
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: "";
|
content: "";
|
||||||
background: #fff;
|
background: #fff;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 8px;
|
width: .5rem;
|
||||||
height: 8px;
|
height: .5rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-right: 5px;
|
margin-right: .3125rem;
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); /* 小圆圈阴影,增强立体 */
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||||
|
/* 小圆圈阴影,增强立体 */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -327,16 +338,20 @@ function handleScroll() {
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #333;
|
color: #333;
|
||||||
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15), /* 外阴影 */
|
box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15),
|
||||||
inset 0 1px 0 rgba(255, 255, 255, 0.8); /* 内阴影 */
|
/* 外阴影 */
|
||||||
|
inset 0 1px 0 rgba(255, 255, 255, 0.8);
|
||||||
|
/* 内阴影 */
|
||||||
border: 1px solid #e5e7eb;
|
border: 1px solid #e5e7eb;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 7px 16px;
|
padding: 7px 16px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: #f0f5ff; /* hover 时浅蓝色背景,与整体风格呼应 */
|
background: #f0f5ff;
|
||||||
|
/* hover 时浅蓝色背景,与整体风格呼应 */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -348,23 +363,25 @@ function handleScroll() {
|
|||||||
.tags-view-wrapper {
|
.tags-view-wrapper {
|
||||||
.tags-view-item {
|
.tags-view-item {
|
||||||
.el-icon-close {
|
.el-icon-close {
|
||||||
width: 16px;
|
width: 1rem;
|
||||||
height: 16px;
|
height: 1rem;
|
||||||
vertical-align: 2px;
|
vertical-align: .125rem;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||||
transform-origin: 100% 50%;
|
transform-origin: 100% 50%;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
transform: scale(0.6);
|
transform: scale(0.6);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: -3px;
|
vertical-align: -0.1875rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: #b4bccc;
|
background-color: #b4bccc;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
width: 12px !important;
|
width: .75rem !important;
|
||||||
height: 12px !important;
|
height: .75rem !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -113,10 +113,10 @@
|
|||||||
<!-- 样本流程 -->
|
<!-- 样本流程 -->
|
||||||
<div class="time-line-box">
|
<div class="time-line-box">
|
||||||
<div v-for="(item, i) in timelineItems" :key="i" class="time-line-item">
|
<div v-for="(item, i) in timelineItems" :key="i" class="time-line-item">
|
||||||
<div v-if="i != 0 && item.time" class="timeline-connector">
|
<div v-if="i != 0" class="timeline-connector">
|
||||||
<img class="timg" src="@/assets/images/yjt.png" alt="">
|
<img class="timg" src="@/assets/images/yjt.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="timeline-content">
|
<div :class="['timeline-content', i > lastTimeIndex ? 'no_active' : '']">
|
||||||
<div :class="['index', lastTimeIndex == i ? 'active' : '']">{{ i + 1 }}</div>
|
<div :class="['index', lastTimeIndex == i ? 'active' : '']">{{ i + 1 }}</div>
|
||||||
<div class="timeline-title">{{ item.title }}</div>
|
<div class="timeline-title">{{ item.title }}</div>
|
||||||
<div class="timeline-time">{{ item.time }}</div>
|
<div class="timeline-time">{{ item.time }}</div>
|
||||||
|
|||||||
@ -133,10 +133,10 @@
|
|||||||
<!-- 样本流程 -->
|
<!-- 样本流程 -->
|
||||||
<div class="time-line-box">
|
<div class="time-line-box">
|
||||||
<div v-for="(item, i) in timelineItems" :key="i" class="time-line-item">
|
<div v-for="(item, i) in timelineItems" :key="i" class="time-line-item">
|
||||||
<div v-if="i != 0 && item.time" class="timeline-connector">
|
<div v-if="i != 0" class="timeline-connector">
|
||||||
<img class="timg" src="@/assets/images/yjt.png" alt="">
|
<img class="timg" src="@/assets/images/yjt.png" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="timeline-content">
|
<div :class="['timeline-content', i > lastTimeIndex ? 'no_active' : '']">
|
||||||
<div :class="['index', lastTimeIndex == i ? 'active' : '']">{{ i + 1 }}</div>
|
<div :class="['index', lastTimeIndex == i ? 'active' : '']">{{ i + 1 }}</div>
|
||||||
<div class="timeline-title">{{ item.title }}</div>
|
<div class="timeline-title">{{ item.title }}</div>
|
||||||
<div class="timeline-time">{{ item.time }}</div>
|
<div class="timeline-time">{{ item.time }}</div>
|
||||||
|
|||||||
11
src/views/liswork/micro/index.vue
Normal file
11
src/views/liswork/micro/index.vue
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 微生物检验录入界面 -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
||||||
@ -14,8 +14,9 @@
|
|||||||
<el-table-column prop="sflbdh" label="分单类别代号" width="110">
|
<el-table-column prop="sflbdh" label="分单类别代号" width="110">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'sflbdh')">
|
<template v-if="isEditing(scope.row, 'sflbdh')">
|
||||||
<el-input v-model="scope.row.sflbdh" size="small" @blur="handleSave(scope.row, 'sflbdh')"
|
<el-input v-model="scope.row.sflbdh" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'sflbdh')" auto-focus :ref="getInputRef(scope.row.id, 'sflbdh')" />
|
@blur="handleSave(scope.row, 'sflbdh')" @keyup.enter="handleSave(scope.row, 'sflbdh')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'sflbdh')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'sflbdh' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'sflbdh' })">
|
||||||
@ -29,8 +30,9 @@
|
|||||||
<el-table-column prop="sflbmc" label="类别名称" width="150">
|
<el-table-column prop="sflbmc" label="类别名称" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'sflbmc')">
|
<template v-if="isEditing(scope.row, 'sflbmc')">
|
||||||
<el-input v-model="scope.row.sflbmc" size="small" @blur="handleSave(scope.row, 'sflbmc')"
|
<el-input v-model="scope.row.sflbmc" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'sflbmc')" auto-focus :ref="getInputRef(scope.row.id, 'sflbmc')" />
|
@blur="handleSave(scope.row, 'sflbmc')" @keyup.enter="handleSave(scope.row, 'sflbmc')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'sflbmc')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'sflbmc' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'sflbmc' })">
|
||||||
@ -44,8 +46,9 @@
|
|||||||
<el-table-column prop="sflbjc" label="类别简称" width="120">
|
<el-table-column prop="sflbjc" label="类别简称" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'sflbjc')">
|
<template v-if="isEditing(scope.row, 'sflbjc')">
|
||||||
<el-input v-model="scope.row.sflbjc" size="small" @blur="handleSave(scope.row, 'sflbjc')"
|
<el-input v-model="scope.row.sflbjc" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'sflbjc')" auto-focus :ref="getInputRef(scope.row.id, 'sflbjc')" />
|
@blur="handleSave(scope.row, 'sflbjc')" @keyup.enter="handleSave(scope.row, 'sflbjc')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'sflbjc')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'sflbjc' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'sflbjc' })">
|
||||||
@ -59,8 +62,9 @@
|
|||||||
<el-table-column prop="txmlb" label="条码类别" width="110">
|
<el-table-column prop="txmlb" label="条码类别" width="110">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'txmlb')">
|
<template v-if="isEditing(scope.row, 'txmlb')">
|
||||||
<el-input v-model="scope.row.txmlb" size="small" @blur="handleSave(scope.row, 'txmlb')"
|
<el-input v-model="scope.row.txmlb" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'txmlb')" auto-focus :ref="getInputRef(scope.row.id, 'txmlb')" />
|
@blur="handleSave(scope.row, 'txmlb')" @keyup.enter="handleSave(scope.row, 'txmlb')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'txmlb')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'txmlb' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'txmlb' })">
|
||||||
@ -74,8 +78,8 @@
|
|||||||
<el-table-column prop="yblx" label="标本类型" width="140">
|
<el-table-column prop="yblx" label="标本类型" width="140">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'yblx')">
|
<template v-if="isEditing(scope.row, 'yblx')">
|
||||||
<el-select v-model="scope.row.yblx" size="small" @change="handleSave(scope.row, 'yblx')"
|
<el-select v-model="scope.row.yblx" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'yblx')" auto-focus filterable>
|
@change="handleSave(scope.row, 'yblx')" @blur="handleSave(scope.row, 'yblx')" auto-focus filterable>
|
||||||
<el-option v-for="item in dictData.BT" :key="item.label" :label="item.label" :value="item.label" />
|
<el-option v-for="item in dictData.BT" :key="item.label" :label="item.label" :value="item.label" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -91,9 +95,9 @@
|
|||||||
<el-table-column prop="sampletips" label="标本采集说明" width="220">
|
<el-table-column prop="sampletips" label="标本采集说明" width="220">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'sampletips')">
|
<template v-if="isEditing(scope.row, 'sampletips')">
|
||||||
<el-input v-model="scope.row.sampletips" size="small" @blur="handleSave(scope.row, 'sampletips')"
|
<el-input v-model="scope.row.sampletips" size="small" class="full-width-input"
|
||||||
@keyup.enter.ctrl="handleSave(scope.row, 'sampletips')" auto-focus
|
@blur="handleSave(scope.row, 'sampletips')" @keyup.enter.ctrl="handleSave(scope.row, 'sampletips')"
|
||||||
:ref="getInputRef(scope.row.id, 'sampletips')" />
|
auto-focus :ref="getInputRef(scope.row.id, 'sampletips')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="multi-line-text" @click.stop="handleCellClick(scope.row, { property: 'sampletips' })">
|
<div class="multi-line-text" @click.stop="handleCellClick(scope.row, { property: 'sampletips' })">
|
||||||
@ -107,8 +111,8 @@
|
|||||||
<el-table-column prop="bglqdh" label="报告领取规则" width="160">
|
<el-table-column prop="bglqdh" label="报告领取规则" width="160">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'bglqdh')">
|
<template v-if="isEditing(scope.row, 'bglqdh')">
|
||||||
<el-select v-model="scope.row.bglqdh" size="small" @change="handleSave(scope.row, 'bglqdh')" filterable
|
<el-select v-model="scope.row.bglqdh" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'bglqdh')" auto-focus>
|
@change="handleSave(scope.row, 'bglqdh')" filterable @blur="handleSave(scope.row, 'bglqdh')" auto-focus>
|
||||||
<el-option v-for="item in reportRuleOptions" :key="item.bglqdh" :label="item.bglqmc"
|
<el-option v-for="item in reportRuleOptions" :key="item.bglqdh" :label="item.bglqmc"
|
||||||
:value="item.bglqdh" />
|
:value="item.bglqdh" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -125,7 +129,7 @@
|
|||||||
<el-table-column prop="printcnt" label="打印份数" width="120" align="center">
|
<el-table-column prop="printcnt" label="打印份数" width="120" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'printcnt')">
|
<template v-if="isEditing(scope.row, 'printcnt')">
|
||||||
<el-input-number v-model="scope.row.printcnt" :min="1" :max="9" size="small"
|
<el-input-number v-model="scope.row.printcnt" class="full-width-input" :min="1" :max="9" size="small"
|
||||||
@blur="handleSave(scope.row, 'printcnt')" @keyup.enter="handleSave(scope.row, 'printcnt')" auto-focus
|
@blur="handleSave(scope.row, 'printcnt')" @keyup.enter="handleSave(scope.row, 'printcnt')" auto-focus
|
||||||
:ref="getInputRef(scope.row.id, 'printcnt')" />
|
:ref="getInputRef(scope.row.id, 'printcnt')" />
|
||||||
</template>
|
</template>
|
||||||
@ -141,8 +145,9 @@
|
|||||||
<el-table-column prop="lisgroup1" label="专业组(样本数)" width="140" align="center">
|
<el-table-column prop="lisgroup1" label="专业组(样本数)" width="140" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'lisgroup1')">
|
<template v-if="isEditing(scope.row, 'lisgroup1')">
|
||||||
<el-select v-model="scope.row.lisgroup1" size="small" @change="handleSave(scope.row, 'lisgroup1')"
|
<el-select v-model="scope.row.lisgroup1" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'lisgroup1')" auto-focus filterable>
|
@change="handleSave(scope.row, 'lisgroup1')" @blur="handleSave(scope.row, 'lisgroup1')" auto-focus
|
||||||
|
filterable>
|
||||||
<el-option v-for="item in dictData.LISGROUP1" :key="item.label" :label="item.label" :value="item.label" />
|
<el-option v-for="item in dictData.LISGROUP1" :key="item.label" :label="item.label" :value="item.label" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -158,8 +163,9 @@
|
|||||||
<el-table-column prop="lisgroup2" label="专业组(周转时间)" width="160" align="center">
|
<el-table-column prop="lisgroup2" label="专业组(周转时间)" width="160" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'lisgroup2')">
|
<template v-if="isEditing(scope.row, 'lisgroup2')">
|
||||||
<el-select v-model="scope.row.lisgroup2" size="small" @change="handleSave(scope.row, 'lisgroup2')"
|
<el-select v-model="scope.row.lisgroup2" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'lisgroup2')" auto-focus filterable>
|
@change="handleSave(scope.row, 'lisgroup2')" @blur="handleSave(scope.row, 'lisgroup2')" auto-focus
|
||||||
|
filterable>
|
||||||
<el-option v-for="item in dictData.LISGROUP2" :key="item.label" :label="item.label" :value="item.label" />
|
<el-option v-for="item in dictData.LISGROUP2" :key="item.label" :label="item.label" :value="item.label" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -203,9 +209,9 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 操作列 -->
|
<!-- 操作列 -->
|
||||||
<el-table-column label="操作" align="center" fixed="right">
|
<el-table-column label="操作" align="center" fixed="right" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button size="small" type="danger" @click="handleDelete(scope.row)">删除</el-button>
|
<el-button text type="danger" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|||||||
@ -1,28 +1,30 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="cate_container">
|
||||||
<!-- 左侧表格 -->
|
<!-- 左侧表格 -->
|
||||||
<div style="flex:1">
|
<div class="left_box">
|
||||||
<el-input v-model="leftSearchValue" placeholder="请输入类别名称或代号" />
|
<el-input v-model="leftSearchValue" placeholder="请输入类别名称或代号" class="mb10" />
|
||||||
<el-table :data="filteredLeftTableData" @row-click="handleLeftRowClick" highlight-current-row
|
<el-table :data="filteredLeftTableData" @row-click="handleLeftRowClick" highlight-current-row border
|
||||||
:cell-style="cellStyle" height="80vh">
|
:row-style="cellStyle" height="80vh" style="width: 100%;">
|
||||||
<el-table-column prop="sflbdh" label="分单类别代号" width="110" />
|
<el-table-column prop="sflbdh" label="分单类别代号" width="110" />
|
||||||
<el-table-column prop="sflbmc" label="类别名称" />
|
<el-table-column prop="sflbmc" label="类别名称" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 中间表格 -->
|
<!-- 中间表格 -->
|
||||||
<div style="flex:2">
|
<div class="m_box">
|
||||||
<el-input v-model="middleSearchValue" placeholder="请输入项目名称或代号" />
|
<el-input v-model="middleSearchValue" placeholder="请输入项目名称或代号" class="mb10" />
|
||||||
<el-table :data="filteredMiddleTableData" @row-dblclick="handleMiddleRowDblClick" height="80vh">
|
<el-table :data="filteredMiddleTableData" @row-dblclick="handleMiddleRowDblClick" highlight-current-row
|
||||||
|
style="width: 100%;" height="80vh" border>
|
||||||
<el-table-column prop="sfxmdh" label="项目代号" />
|
<el-table-column prop="sfxmdh" label="项目代号" />
|
||||||
<el-table-column prop="sfxmmc" label="当前类别包含门诊项目" />
|
<el-table-column prop="sfxmmc" label="当前类别包含门诊项目" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 右侧表格 -->
|
<!-- 右侧表格 -->
|
||||||
<div style="flex:3">
|
<div class="right_box">
|
||||||
<el-input v-model="rightSearchValue" placeholder="请输入项目名称、代号或助记符" />
|
<el-input v-model="rightSearchValue" placeholder="请输入项目名称、代号或助记符" class="mb10" />
|
||||||
<el-table :data="filteredRightTableData" @row-dblclick="handleRightRowDblClick" height="80vh">
|
<el-table :data="filteredRightTableData" @row-dblclick="handleRightRowDblClick" highlight-current-row
|
||||||
|
height="80vh" border style="width: 100%;">
|
||||||
<el-table-column prop="sfxmdh" label="门诊项目代号" />
|
<el-table-column prop="sfxmdh" label="门诊项目代号" />
|
||||||
<el-table-column prop="sfxmmc" label="门诊项目名称" />
|
<el-table-column prop="sfxmmc" label="门诊项目名称" />
|
||||||
<el-table-column prop="zjf" label="助记符" />
|
<el-table-column prop="zjf" label="助记符" />
|
||||||
@ -153,16 +155,34 @@ const cellStyle = ({ row, column, rowIndex, columnIndex }: {
|
|||||||
const textColor = classCom.getContrastTextColor(bgColor);
|
const textColor = classCom.getContrastTextColor(bgColor);
|
||||||
return {
|
return {
|
||||||
backgroundColor: `${bgColor} !important`,
|
backgroundColor: `${bgColor} !important`,
|
||||||
color: textColor,
|
color: '#000',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.app-container {
|
.cate_container {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 20px;
|
justify-content: space-between;
|
||||||
gap: 35px;
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.left_box {
|
||||||
|
width: 20%;
|
||||||
|
padding: 10px;
|
||||||
|
background-color: rgb(214, 240, 252);
|
||||||
|
}
|
||||||
|
|
||||||
|
.m_box {
|
||||||
|
width: 30%;
|
||||||
|
padding: 10px;
|
||||||
|
background-color: rgb(214, 240, 252);
|
||||||
|
}
|
||||||
|
|
||||||
|
.right_box {
|
||||||
|
width: 49%;
|
||||||
|
padding: 10px;
|
||||||
|
background-color: rgb(214, 240, 252);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -16,8 +16,9 @@
|
|||||||
<el-table-column prop="sfxmdh" label="收费项目代号" width="110">
|
<el-table-column prop="sfxmdh" label="收费项目代号" width="110">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'sfxmdh')">
|
<template v-if="isEditing(scope.row, 'sfxmdh')">
|
||||||
<el-input v-model="scope.row.sfxmdh" size="small" @blur="handleSave(scope.row, 'sfxmdh')"
|
<el-input v-model="scope.row.sfxmdh" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'sfxmdh')" auto-focus :ref="getInputRef(scope.row.id, 'sfxmdh')" />
|
@blur="handleSave(scope.row, 'sfxmdh')" @keyup.enter="handleSave(scope.row, 'sfxmdh')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'sfxmdh')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'sfxmdh' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'sfxmdh' })">
|
||||||
@ -31,8 +32,9 @@
|
|||||||
<el-table-column prop="sfxmmc" label="收费项目名称" width="150">
|
<el-table-column prop="sfxmmc" label="收费项目名称" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'sfxmmc')">
|
<template v-if="isEditing(scope.row, 'sfxmmc')">
|
||||||
<el-input v-model="scope.row.sfxmmc" size="small" @blur="handleSave(scope.row, 'sfxmmc')"
|
<el-input v-model="scope.row.sfxmmc" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'sfxmmc')" auto-focus :ref="getInputRef(scope.row.id, 'sfxmmc')" />
|
@blur="handleSave(scope.row, 'sfxmmc')" @keyup.enter="handleSave(scope.row, 'sfxmmc')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'sfxmmc')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'sfxmmc' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'sfxmmc' })">
|
||||||
@ -46,7 +48,7 @@
|
|||||||
<el-table-column prop="bz" label="简称" width="120">
|
<el-table-column prop="bz" label="简称" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'bz')">
|
<template v-if="isEditing(scope.row, 'bz')">
|
||||||
<el-input v-model="scope.row.bz" size="small" @blur="handleSave(scope.row, 'bz')"
|
<el-input v-model="scope.row.bz" size="small" class="full-width-input" @blur="handleSave(scope.row, 'bz')"
|
||||||
@keyup.enter="handleSave(scope.row, 'bz')" auto-focus :ref="getInputRef(scope.row.id, 'bz')" />
|
@keyup.enter="handleSave(scope.row, 'bz')" auto-focus :ref="getInputRef(scope.row.id, 'bz')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
@ -61,8 +63,9 @@
|
|||||||
<el-table-column prop="dj" label="价格" width="150" align="center">
|
<el-table-column prop="dj" label="价格" width="150" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'dj')">
|
<template v-if="isEditing(scope.row, 'dj')">
|
||||||
<el-input-number v-model="scope.row.dj" :min="1" :max="100" size="small" @blur="handleSave(scope.row, 'dj')"
|
<el-input-number v-model="scope.row.dj" :min="1" :max="100" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'dj')" auto-focus :ref="getInputRef(scope.row.id, 'dj')" />
|
@blur="handleSave(scope.row, 'dj')" @keyup.enter="handleSave(scope.row, 'dj')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'dj')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'dj' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'dj' })">
|
||||||
@ -75,8 +78,9 @@
|
|||||||
<el-table-column prop="spec" label="规格" width="120">
|
<el-table-column prop="spec" label="规格" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'spec')">
|
<template v-if="isEditing(scope.row, 'spec')">
|
||||||
<el-input v-model="scope.row.spec" size="small" @blur="handleSave(scope.row, 'spec')"
|
<el-input v-model="scope.row.spec" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'spec')" auto-focus :ref="getInputRef(scope.row.id, 'spec')" />
|
@blur="handleSave(scope.row, 'spec')" @keyup.enter="handleSave(scope.row, 'spec')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'spec')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'spec' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'spec' })">
|
||||||
@ -89,8 +93,9 @@
|
|||||||
<el-table-column prop="dept" label="科室" width="150">
|
<el-table-column prop="dept" label="科室" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'dept')">
|
<template v-if="isEditing(scope.row, 'dept')">
|
||||||
<el-select v-model="scope.row.dept" size="small" @change="handleSave(scope.row, 'dept')"
|
<el-select v-model="scope.row.dept" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'dept')" auto-focus filterable style="width: 100%;">
|
@change="handleSave(scope.row, 'dept')" @blur="handleSave(scope.row, 'dept')" auto-focus filterable
|
||||||
|
style="width: 100%;">
|
||||||
<el-option v-for="item in dictData.DP" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option v-for="item in dictData.DP" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -106,8 +111,8 @@
|
|||||||
<el-table-column prop="yblx" label="采集样本" width="140">
|
<el-table-column prop="yblx" label="采集样本" width="140">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'yblx')">
|
<template v-if="isEditing(scope.row, 'yblx')">
|
||||||
<el-select v-model="scope.row.yblx" size="small" @change="handleSave(scope.row, 'yblx')"
|
<el-select v-model="scope.row.yblx" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'yblx')" auto-focus filterable>
|
@change="handleSave(scope.row, 'yblx')" @blur="handleSave(scope.row, 'yblx')" auto-focus filterable>
|
||||||
<el-option v-for="item in dictData.BT" :key="item.label" :label="item.label" :value="item.label" />
|
<el-option v-for="item in dictData.BT" :key="item.label" :label="item.label" :value="item.label" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -122,8 +127,9 @@
|
|||||||
<el-table-column prop="bgts" label="报告天数" width="120" align="center">
|
<el-table-column prop="bgts" label="报告天数" width="120" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'bgts')">
|
<template v-if="isEditing(scope.row, 'bgts')">
|
||||||
<el-input-number v-model="scope.row.bgts" size="small" @blur="handleSave(scope.row, 'bgts')"
|
<el-input-number v-model="scope.row.bgts" size="small" class="full-width-input"
|
||||||
@keyup.enter="handleSave(scope.row, 'bgts')" auto-focus :ref="getInputRef(scope.row.id, 'bgts')" />
|
@blur="handleSave(scope.row, 'bgts')" @keyup.enter="handleSave(scope.row, 'bgts')" auto-focus
|
||||||
|
:ref="getInputRef(scope.row.id, 'bgts')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span @click.stop="handleCellClick(scope.row, { property: 'bgts' })">
|
<span @click.stop="handleCellClick(scope.row, { property: 'bgts' })">
|
||||||
@ -137,7 +143,7 @@
|
|||||||
<el-table-column prop="zjf" label="助记符" width="150" align="center">
|
<el-table-column prop="zjf" label="助记符" width="150" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'zjf')">
|
<template v-if="isEditing(scope.row, 'zjf')">
|
||||||
<el-input v-model="scope.row.zjf" size="small" @blur="handleSave(scope.row, 'zjf')"
|
<el-input v-model="scope.row.zjf" size="small" class="full-width-input" @blur="handleSave(scope.row, 'zjf')"
|
||||||
@keyup.enter.ctrl="handleSave(scope.row, 'zjf')" auto-focus :ref="getInputRef(scope.row.id, 'zjf')" />
|
@keyup.enter.ctrl="handleSave(scope.row, 'zjf')" auto-focus :ref="getInputRef(scope.row.id, 'zjf')" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
@ -152,8 +158,8 @@
|
|||||||
<el-table-column prop="bglqdh" label="报告领取规则" width="160">
|
<el-table-column prop="bglqdh" label="报告领取规则" width="160">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'bglqdh')">
|
<template v-if="isEditing(scope.row, 'bglqdh')">
|
||||||
<el-select v-model="scope.row.bglqdh" size="small" @change="handleSave(scope.row, 'bglqdh')" filterable
|
<el-select v-model="scope.row.bglqdh" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'bglqdh')" auto-focus>
|
@change="handleSave(scope.row, 'bglqdh')" filterable @blur="handleSave(scope.row, 'bglqdh')" auto-focus>
|
||||||
<el-option v-for="item in reportRuleOptions" :key="item.bglqdh" :label="item.bglqmc"
|
<el-option v-for="item in reportRuleOptions" :key="item.bglqdh" :label="item.bglqmc"
|
||||||
:value="item.bglqdh" />
|
:value="item.bglqdh" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -182,8 +188,9 @@
|
|||||||
<el-table-column prop="lisgroup1" label="专业组(样本数)" width="140" align="center">
|
<el-table-column prop="lisgroup1" label="专业组(样本数)" width="140" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'lisgroup1')">
|
<template v-if="isEditing(scope.row, 'lisgroup1')">
|
||||||
<el-select v-model="scope.row.lisgroup1" size="small" @change="handleSave(scope.row, 'lisgroup1')"
|
<el-select v-model="scope.row.lisgroup1" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'lisgroup1')" auto-focus filterable>
|
@change="handleSave(scope.row, 'lisgroup1')" @blur="handleSave(scope.row, 'lisgroup1')" auto-focus
|
||||||
|
filterable>
|
||||||
<el-option v-for="item in dictData.LISGROUP1" :key="item.label" :label="item.label" :value="item.label" />
|
<el-option v-for="item in dictData.LISGROUP1" :key="item.label" :label="item.label" :value="item.label" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -199,8 +206,9 @@
|
|||||||
<el-table-column prop="lisgroup2" label="专业组(周转时间)" width="160" align="center">
|
<el-table-column prop="lisgroup2" label="专业组(周转时间)" width="160" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'lisgroup2')">
|
<template v-if="isEditing(scope.row, 'lisgroup2')">
|
||||||
<el-select v-model="scope.row.lisgroup2" size="small" @change="handleSave(scope.row, 'lisgroup2')"
|
<el-select v-model="scope.row.lisgroup2" size="small" class="full-width-input"
|
||||||
@blur="handleSave(scope.row, 'lisgroup2')" auto-focus filterable>
|
@change="handleSave(scope.row, 'lisgroup2')" @blur="handleSave(scope.row, 'lisgroup2')" auto-focus
|
||||||
|
filterable>
|
||||||
<el-option v-for="item in dictData.LISGROUP2" :key="item.label" :label="item.label" :value="item.label" />
|
<el-option v-for="item in dictData.LISGROUP2" :key="item.label" :label="item.label" :value="item.label" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
@ -216,7 +224,7 @@
|
|||||||
<el-table-column prop="indication" label="适应症" width="220">
|
<el-table-column prop="indication" label="适应症" width="220">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'indication')">
|
<template v-if="isEditing(scope.row, 'indication')">
|
||||||
<el-input v-model="scope.row.indication" size="small" type="textarea" :rows="2"
|
<el-input v-model="scope.row.indication" size="small" class="full-width-input" type="textarea" :rows="2"
|
||||||
@blur="handleSave(scope.row, 'indication')" @keyup.enter.ctrl="handleSave(scope.row, 'indication')"
|
@blur="handleSave(scope.row, 'indication')" @keyup.enter.ctrl="handleSave(scope.row, 'indication')"
|
||||||
auto-focus :ref="getInputRef(scope.row.id, 'indication')" />
|
auto-focus :ref="getInputRef(scope.row.id, 'indication')" />
|
||||||
</template>
|
</template>
|
||||||
@ -232,7 +240,7 @@
|
|||||||
<el-table-column prop="affect" label="作用" width="220">
|
<el-table-column prop="affect" label="作用" width="220">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'affect')">
|
<template v-if="isEditing(scope.row, 'affect')">
|
||||||
<el-input v-model="scope.row.affect" size="small" type="textarea" :rows="2"
|
<el-input v-model="scope.row.affect" size="small" class="full-width-input" type="textarea" :rows="2"
|
||||||
@blur="handleSave(scope.row, 'affect')" @keyup.enter.ctrl="handleSave(scope.row, 'affect')" auto-focus
|
@blur="handleSave(scope.row, 'affect')" @keyup.enter.ctrl="handleSave(scope.row, 'affect')" auto-focus
|
||||||
:ref="getInputRef(scope.row.id, 'affect')" />
|
:ref="getInputRef(scope.row.id, 'affect')" />
|
||||||
</template>
|
</template>
|
||||||
@ -248,7 +256,7 @@
|
|||||||
<el-table-column prop="attention" label="采集要求" width="220">
|
<el-table-column prop="attention" label="采集要求" width="220">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<template v-if="isEditing(scope.row, 'attention')">
|
<template v-if="isEditing(scope.row, 'attention')">
|
||||||
<el-input v-model="scope.row.attention" size="small" type="textarea" :rows="2"
|
<el-input v-model="scope.row.attention" size="small" class="full-width-input" type="textarea" :rows="2"
|
||||||
@blur="handleSave(scope.row, 'attention')" @keyup.enter.ctrl="handleSave(scope.row, 'attention')"
|
@blur="handleSave(scope.row, 'attention')" @keyup.enter.ctrl="handleSave(scope.row, 'attention')"
|
||||||
auto-focus :ref="getInputRef(scope.row.id, 'attention')" />
|
auto-focus :ref="getInputRef(scope.row.id, 'attention')" />
|
||||||
</template>
|
</template>
|
||||||
@ -261,9 +269,9 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<!-- 操作列 -->
|
<!-- 操作列 -->
|
||||||
<el-table-column label="操作" align="center" fixed="right">
|
<el-table-column label="操作" align="center" fixed="right" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button size="small" type="danger" @click="handleDelete(scope.row)">删除</el-button>
|
<el-button text type="danger" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-row :gutter="5" class="compact-form" :span="24">
|
<!-- <el-row :gutter="5" class="compact-form"> -->
|
||||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-position="left">
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-position="left">
|
||||||
<el-col :span="24" :xs="24">
|
<el-col :span="24" :xs="24">
|
||||||
<el-form-item label="" label-width="0px" prop="brdh">
|
<el-form-item label="" label-width="0px" prop="brdh">
|
||||||
@ -41,7 +41,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-row>
|
<!-- </el-row> -->
|
||||||
<el-row :gutter="5" class="mb8">
|
<el-row :gutter="5" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="Search" @click="handleQuery"
|
<el-button type="primary" plain icon="Search" @click="handleQuery"
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
<el-table-column prop="bz" label="备注" />
|
<el-table-column prop="bz" label="备注" />
|
||||||
<el-table-column label="操作" align="center" fixed="right" width="100">
|
<el-table-column label="操作" align="center" fixed="right" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button size="small" type="danger" @click="handleDelete(scope.row)">删除</el-button>
|
<el-button text type="danger" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -46,10 +46,11 @@
|
|||||||
<span>规则明细</span>
|
<span>规则明细</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-table :data="detailList" border style="width: 100%;" class="detail-table" :cell-class-name="cellClassName">
|
<el-table :data="detailList" border style="width: 100%;" class="detail-table" :cell-class-name="cellClassName"
|
||||||
|
height="48vh">
|
||||||
<el-table-column prop="weekday" label="起始日期" width="100">
|
<el-table-column prop="weekday" label="起始日期" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-select v-model="scope.row.weekday" placeholder="选择星期" size="small" class="week-select"
|
<el-select v-model="scope.row.weekday" class="full-width-input" placeholder="选择星期" size="small"
|
||||||
@change="handleDetailChange(scope.row)">
|
@change="handleDetailChange(scope.row)">
|
||||||
<el-option v-for="day in weekDays" :key="day.value" :label="day.label" :value="day.value" />
|
<el-option v-for="day in weekDays" :key="day.value" :label="day.label" :value="day.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -57,7 +58,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="weekday1" label="截止日期" width="100">
|
<el-table-column prop="weekday1" label="截止日期" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-select v-model="scope.row.weekday1" placeholder="选择星期" size="small" class="week-select"
|
<el-select v-model="scope.row.weekday1" placeholder="选择星期" size="small" class="full-width-input"
|
||||||
@change="handleDetailChange(scope.row)">
|
@change="handleDetailChange(scope.row)">
|
||||||
<el-option v-for="day in weekDays" :key="day.value" :label="day.label" :value="day.value" />
|
<el-option v-for="day in weekDays" :key="day.value" :label="day.label" :value="day.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -66,32 +67,32 @@
|
|||||||
<el-table-column prop="kssj" label="起始时间" width="100">
|
<el-table-column prop="kssj" label="起始时间" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input v-model="scope.row.kssj" placeholder="HH:mm" size="small"
|
<el-input v-model="scope.row.kssj" placeholder="HH:mm" size="small"
|
||||||
@input="handleTimeInput(scope.row, 'kssj')" maxlength="5" class="time-input" @focus="handleInputFocus"
|
@input="handleTimeInput(scope.row, 'kssj')" maxlength="5" class="full-width-input"
|
||||||
@blur="handleInputBlur(scope.row, 'kssj')" />
|
@focus="handleInputFocus" @blur="handleInputBlur(scope.row, 'kssj')" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="jssj" label="截止时间" width="100">
|
<el-table-column prop="jssj" label="截止时间" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input v-model="scope.row.jssj" placeholder="HH:mm" size="small"
|
<el-input v-model="scope.row.jssj" placeholder="HH:mm" size="small"
|
||||||
@input="handleTimeInput(scope.row, 'jssj')" maxlength="5" class="time-input" @focus="handleInputFocus"
|
@input="handleTimeInput(scope.row, 'jssj')" maxlength="5" class="full-width-input"
|
||||||
@blur="handleInputBlur(scope.row, 'jssj')" />
|
@focus="handleInputFocus" @blur="handleInputBlur(scope.row, 'jssj')" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="bglqsm" label="报告领取声明">
|
<el-table-column prop="bglqsm" label="报告领取声明">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input v-model="scope.row.bglqsm" size="small" class="statement-input" @focus="handleInputFocus" />
|
<el-input v-model="scope.row.bglqsm" size="small" class="full-width-input" @focus="handleInputFocus" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="bgxss" label="所需小时数" width="100">
|
<el-table-column prop="bgxss" label="所需小时数" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input v-model="scope.row.bgxss" placeholder="0" size="small"
|
<el-input v-model="scope.row.bgxss" placeholder="0" size="small"
|
||||||
@input="handleNumberInput(scope.row, 'bgxss')" class="number-input" @focus="handleInputFocus" />
|
@input="handleNumberInput(scope.row, 'bgxss')" class="full-width-input" @focus="handleInputFocus" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="操作" align="center" width="100">
|
<el-table-column label="操作" align="center" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button size="small" type="danger" @click="delDetail(scope.row)">删除</el-button>
|
<el-button type="danger" text @click="delDetail(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -479,7 +480,7 @@ const flag = computed(() => {
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
height: calc(100% - 100px);
|
height: calc(100% - 3.75rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-table-area {
|
.left-table-area {
|
||||||
@ -497,7 +498,7 @@ const flag = computed(() => {
|
|||||||
background-color: #e6f7ff;
|
background-color: #e6f7ff;
|
||||||
border: 1px solid #91d5ff;
|
border: 1px solid #91d5ff;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 15px;
|
padding: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
@ -515,7 +516,7 @@ const flag = computed(() => {
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #1890ff;
|
color: #1890ff;
|
||||||
border-bottom: 1px solid #91d5ff;
|
border-bottom: 1px solid #91d5ff;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .custom-table th {
|
::v-deep .custom-table th {
|
||||||
@ -549,13 +550,4 @@ const flag = computed(() => {
|
|||||||
::v-deep .no-edit-cell .el-select {
|
::v-deep .no-edit-cell .el-select {
|
||||||
pointer-events: auto;
|
pointer-events: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .time-input,
|
|
||||||
::v-deep .number-input {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep .statement-input {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,127 +1,59 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-row :gutter="5" class="compact-form" :span="24" >
|
<!-- <el-row :gutter="5" class="compact-form" :span="24"> -->
|
||||||
<el-form
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-position="left">
|
||||||
:model="queryParams"
|
|
||||||
ref="queryRef"
|
|
||||||
:inline="true"
|
|
||||||
v-show="showSearch"
|
|
||||||
label-position="left"
|
|
||||||
>
|
|
||||||
<el-col :span="24" :xs="24">
|
<el-col :span="24" :xs="24">
|
||||||
<el-form-item label="执行时间:" label-width="75px" prop="stime">
|
<el-form-item label="执行时间:" label-width="75px" prop="stime">
|
||||||
<el-date-picker
|
<el-date-picker style="width: 130px;" v-model="queryParams.st" type="date" placeholder="起始"
|
||||||
style="width: 130px;"
|
value-format="YYYY-MM-DD" :clearable="false"></el-date-picker>
|
||||||
v-model="queryParams.st"
|
|
||||||
type="date"
|
|
||||||
placeholder="起始"
|
|
||||||
value-format="YYYY-MM-DD"
|
|
||||||
:clearable="false"
|
|
||||||
></el-date-picker>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="--" label-width="30px" prop="etime">
|
<el-form-item label="--" label-width="30px" prop="etime">
|
||||||
<el-date-picker
|
<el-date-picker style="width: 130px;" v-model="queryParams.et" type="date" placeholder="结束"
|
||||||
style="width: 130px;"
|
value-format="YYYY-MM-DD" :clearable="false"></el-date-picker>
|
||||||
v-model="queryParams.et"
|
|
||||||
type="date"
|
|
||||||
placeholder="结束"
|
|
||||||
value-format="YYYY-MM-DD"
|
|
||||||
:clearable="false"
|
|
||||||
></el-date-picker>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="病人代号:" label-width="75px" prop="brdh">
|
<el-form-item label="病人代号:" label-width="75px" prop="brdh">
|
||||||
<el-input
|
<el-input style="width: 150px;" v-model="queryParams.brdh" placeholder="病人代号" />
|
||||||
style="width: 150px;"
|
|
||||||
v-model="queryParams.brdh"
|
|
||||||
placeholder="病人代号"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="病人姓名:" label-width="75px" prop="brxm">
|
<el-form-item label="病人姓名:" label-width="75px" prop="brxm">
|
||||||
<el-input
|
<el-input style="width: 150px;" v-model="queryParams.brxm" placeholder="病人姓名" />
|
||||||
style="width: 150px;"
|
|
||||||
v-model="queryParams.brxm"
|
|
||||||
placeholder="病人姓名"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态:" label-width="50px" prop="zt">
|
<el-form-item label="状态:" label-width="50px" prop="zt">
|
||||||
<el-select
|
<el-select v-model="queryParams.zt" placeholder="状态" clearable style="width: 100px;">
|
||||||
v-model="queryParams.zt"
|
<el-option v-for="(item, index) in ztOptions" :key="index" :label="item.label" :value="item.value"
|
||||||
placeholder="状态"
|
:disabled="item.disabled"></el-option>
|
||||||
clearable
|
|
||||||
style="width: 100px;"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="(item, index) in ztOptions"
|
|
||||||
:key="index"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
:disabled="item.disabled"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="病人类型:" label-width="75px" prop="brly">
|
<el-form-item label="病人类型:" label-width="75px" prop="brly">
|
||||||
<el-select
|
<el-select v-model="queryParams.brly" placeholder="病人类型" clearable style="width: 100px;">
|
||||||
v-model="queryParams.brly"
|
<el-option v-for="(item, index) in pattypeOptions" :key="index" :label="item.label" :value="item.value"
|
||||||
placeholder="病人类型"
|
:disabled="item.disabled"></el-option>
|
||||||
clearable
|
|
||||||
style="width: 100px;"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="(item, index) in pattypeOptions"
|
|
||||||
:key="index"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
:disabled="item.disabled"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
</el-row>
|
<!-- </el-row> -->
|
||||||
<el-row :gutter="5" class="mb8">
|
<el-row :gutter="5" class="mb8 mt10">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="primary" plain icon="Search" @click="handleQuery"
|
||||||
type="primary"
|
v-hasPermi="['system:reqmain:Search']">查询</el-button>
|
||||||
plain
|
|
||||||
icon="Search"
|
|
||||||
@click="handleQuery"
|
|
||||||
v-hasPermi="['system:reqmain:Search']"
|
|
||||||
>查询</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="success" plain icon="Printer" :disabled="single" @click="printAll"
|
||||||
type="success"
|
v-hasPermi="['system:reqmain:add']">打印</el-button>
|
||||||
plain
|
|
||||||
icon="Printer"
|
|
||||||
:disabled="single"
|
|
||||||
@click="printAll"
|
|
||||||
v-hasPermi="['system:reqmain:add']"
|
|
||||||
>打印</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="success" plain icon="Printer" :disabled="freesingle" @click="printSigne"
|
||||||
type="success"
|
v-hasPermi="['system:reqmain:edit']">单打条码</el-button>
|
||||||
plain
|
|
||||||
icon="Printer"
|
|
||||||
:disabled="freesingle"
|
|
||||||
@click="printSigne"
|
|
||||||
v-hasPermi="['system:reqmain:edit']"
|
|
||||||
>单打条码</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="danger" plain icon="Printer" :disabled="freesingle" @click="printBackpaper"
|
||||||
type="danger"
|
v-hasPermi="['system:reqmain:edit']">单打回单</el-button>
|
||||||
plain
|
|
||||||
icon="Printer"
|
|
||||||
:disabled="freesingle"
|
|
||||||
@click="printBackpaper"
|
|
||||||
v-hasPermi="['system:reqmain:edit']"
|
|
||||||
>单打回单</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="5" class="table-container">
|
<el-row :gutter="5" class="table-container">
|
||||||
<el-table ref="tableRef" class="compact-form my-table" :data="reqmainList" @selection-change="handleSelectionChange" @select="handleSelect" height="100%" :cell-style="tableCellStyle">
|
<el-table ref="tableRef" class="compact-form my-table" :data="reqmainList"
|
||||||
|
@selection-change="handleSelectionChange" @select="handleSelect" height="100%" :cell-style="tableCellStyle">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="项目名称" align="center" prop="sqxmmc" width="200" show-overflow-tooltip />
|
<el-table-column label="项目名称" align="center" prop="sqxmmc" width="200" show-overflow-tooltip />
|
||||||
<el-table-column label="项目代码" align="center" prop="sqxmdh" width="100" show-overflow-tooltip />
|
<el-table-column label="项目代码" align="center" prop="sqxmdh" width="100" show-overflow-tooltip />
|
||||||
@ -526,18 +458,26 @@ const getContrastTextColor = (bgColor) => {
|
|||||||
.app-container {
|
.app-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
height: 90vh; /* 容器高度等于窗口高度 */
|
height: 90vh;
|
||||||
|
/* 容器高度等于窗口高度 */
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.compact-form {
|
.compact-form {
|
||||||
height: 40px; /* 固定高度 */
|
height: 40px;
|
||||||
|
/* 固定高度 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb8 {
|
.mb8 {
|
||||||
height: 30px; /* 固定高度 */
|
height: 30px;
|
||||||
|
/* 固定高度 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-container {
|
.table-container {
|
||||||
flex: 1; /* 占满剩余高度 */
|
flex: 1;
|
||||||
overflow: hidden; /* 避免表格超出容器 */
|
/* 占满剩余高度 */
|
||||||
|
overflow: hidden;
|
||||||
|
/* 避免表格超出容器 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.compact-form .el-form-item {
|
.compact-form .el-form-item {
|
||||||
@ -548,22 +488,32 @@ const getContrastTextColor = (bgColor) => {
|
|||||||
.compact-form .el-form-item__label {
|
.compact-form .el-form-item__label {
|
||||||
padding-bottom: 0px;
|
padding-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.my-table .el-table__row td) {
|
:deep(.my-table .el-table__row td) {
|
||||||
padding: 1px 0; /* 减小行高 */
|
padding: 1px 0;
|
||||||
|
/* 减小行高 */
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.my-table .el-table__header-wrapper th) {
|
:deep(.my-table .el-table__header-wrapper th) {
|
||||||
padding: 6px 0; /* 表头内边距 */
|
padding: 6px 0;
|
||||||
background-color: #b3d8ff !important; /* 表头背景色(保留之前的设置) */
|
/* 表头内边距 */
|
||||||
color: #333; /* 文字颜色加深,提升可读性 */
|
background-color: #b3d8ff !important;
|
||||||
font-weight: 500; /* 文字加粗 */
|
/* 表头背景色(保留之前的设置) */
|
||||||
|
color: #333;
|
||||||
|
/* 文字颜色加深,提升可读性 */
|
||||||
|
font-weight: 500;
|
||||||
|
/* 文字加粗 */
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.my-table .el-table__cell) {
|
:deep(.my-table .el-table__cell) {
|
||||||
padding: 0 2px; /* 减小列间距 */
|
padding: 0 2px;
|
||||||
|
/* 减小列间距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 可选:调整表格整体样式 */
|
/* 可选:调整表格整体样式 */
|
||||||
:deep(.my-table) {
|
:deep(.my-table) {
|
||||||
font-size: 13px; /* 适当减小字体 */
|
font-size: 13px;
|
||||||
|
/* 适当减小字体 */
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.my-table .el-table__cell),
|
:deep(.my-table .el-table__cell),
|
||||||
@ -571,14 +521,21 @@ const getContrastTextColor = (bgColor) => {
|
|||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
border-color: #ebeef5;
|
border-color: #ebeef5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-content {
|
.card-content {
|
||||||
max-height: 450px; /* 设置最大高度 */
|
max-height: 450px;
|
||||||
overflow-y: auto; /* 超出高度时显示垂直滚动条 */
|
/* 设置最大高度 */
|
||||||
padding: 5px; /* 保持与卡片默认一致的内边距 */
|
overflow-y: auto;
|
||||||
|
/* 超出高度时显示垂直滚动条 */
|
||||||
|
padding: 5px;
|
||||||
|
/* 保持与卡片默认一致的内边距 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.clickable:hover {
|
.clickable:hover {
|
||||||
cursor: pointer; /* 鼠标悬停时显示手型 */
|
cursor: pointer;
|
||||||
transition: all 0.3s; /* 平滑过渡效果 */
|
/* 鼠标悬停时显示手型 */
|
||||||
|
transition: all 0.3s;
|
||||||
|
/* 平滑过渡效果 */
|
||||||
color: blue;
|
color: blue;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -599,6 +556,7 @@ const getContrastTextColor = (bgColor) => {
|
|||||||
:deep(.el-form-item) {
|
:deep(.el-form-item) {
|
||||||
margin-left: 5px !important;
|
margin-left: 5px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 汇总行样式 */
|
/* 汇总行样式 */
|
||||||
.table-summary {
|
.table-summary {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -610,7 +568,9 @@ const getContrastTextColor = (bgColor) => {
|
|||||||
border: 1px solid #ebeef5;
|
border: 1px solid #ebeef5;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
line-height: 24px; /* 汇总行文字行高 */
|
line-height: 24px;
|
||||||
|
|
||||||
|
/* 汇总行文字行高 */
|
||||||
.summary-item {
|
.summary-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -624,12 +584,16 @@ const getContrastTextColor = (bgColor) => {
|
|||||||
.summary-value {
|
.summary-value {
|
||||||
color: #303133;
|
color: #303133;
|
||||||
min-width: 40px;
|
min-width: 40px;
|
||||||
text-align: left;/* 核心:数值左对齐 */
|
text-align: left;
|
||||||
|
/* 核心:数值左对齐 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 单独设置"单价合计"的值为红色 */
|
/* 单独设置"单价合计"的值为红色 */
|
||||||
&:nth-child(3) .summary-value {
|
&:nth-child(3) .summary-value {
|
||||||
color: #f56c6c; /* Element UI 红色主题色 */
|
color: #f56c6c;
|
||||||
font-weight: 600; /* 可选:加粗字体 */
|
/* Element UI 红色主题色 */
|
||||||
|
font-weight: 600;
|
||||||
|
/* 可选:加粗字体 */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
225
src/views/regional/circulation/bbcx/index.vue
Normal file
225
src/views/regional/circulation/bbcx/index.vue
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<div class="compact-form">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" label-width="5rem" style="width: 100%;" :size="aotuSize">
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="委托机构:" prop="srcHospName">
|
||||||
|
<SelectTable v-model:data="queryParams.srcHospName" :fields="ksdhFields" :tableData="hosList"
|
||||||
|
label="label" :size="aotuSize" value="label" objKey="label" :border="true" placeholder="请选择委托机构"
|
||||||
|
@getDataValue="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="条码号:" prop="barcode">
|
||||||
|
<el-input v-model="queryParams.barcode" placeholder="请输入条码号" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="姓名:" prop="patName">
|
||||||
|
<el-input v-model="queryParams.patName" placeholder="请输入姓名" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="申请项目:" prop="SrcOrderItemName">
|
||||||
|
<el-input v-model="queryParams.SrcOrderItemName" placeholder="请输入申请项目" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="标本状态:" prop="Status">
|
||||||
|
<el-select v-model="queryParams.Status" placeholder="请选择" clearable @change="handleQuery">
|
||||||
|
<!-- <el-option label="已打印" value="1" />
|
||||||
|
<el-option label="未打印" value="0" /> -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="采样人:" prop="affirmUserName">
|
||||||
|
<el-input v-model="queryParams.affirmUserName" placeholder="请输入采样人" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="签收人:" prop="signInUserName">
|
||||||
|
<el-input v-model="queryParams.signInUserName" placeholder="请输入签收人" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="时间类型:" prop="DateType">
|
||||||
|
<el-select v-model="queryParams.DateType" placeholder="请选择" clearable @change="handleQuery">
|
||||||
|
<el-option label="登记时间" value="登记时间" />
|
||||||
|
<el-option label="采样时间" value="采样时间" />
|
||||||
|
<el-option label="送出时间" value="送出时间" />
|
||||||
|
<el-option label="签收时间" value="签收时间" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="日期:" prop="times">
|
||||||
|
<el-date-picker v-model="queryParams.times" type="daterange" range-separator="-" start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-button type="primary" @click="handleQuery">查询</el-button>
|
||||||
|
<el-button @click="resetHandle">重置</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" :pagination="pagination"
|
||||||
|
@size-change="sizeChange" @page-change="currentChange">
|
||||||
|
<template #patAge="{ row }">
|
||||||
|
{{ row.patAge }}{{ row.ageUnit }}
|
||||||
|
</template>
|
||||||
|
</CustomTable>
|
||||||
|
|
||||||
|
<!-- 样本流程 -->
|
||||||
|
<div class="time-line-box">
|
||||||
|
<div v-for="(item, i) in timelineItems" :key="i" class="time-line-item">
|
||||||
|
<div v-if="i != 0" class="timeline-connector">
|
||||||
|
<img class="timg" src="@/assets/images/yjt.png" alt="">
|
||||||
|
</div>
|
||||||
|
<div :class="['timeline-content', i > lastTimeIndex ? 'no_active' : '']">
|
||||||
|
<div :class="['index', lastTimeIndex == i ? 'active' : '']">{{ i + 1 }}
|
||||||
|
</div>
|
||||||
|
<div class="timeline-title">{{ item.title }}</div>
|
||||||
|
<div class="timeline-time">{{ item.time }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import CustomTable from '@/components/elTable/index.vue'
|
||||||
|
import { querySample } from '@/api/regional/index'
|
||||||
|
import SelectTable from '@/components/SelectTable/index.vue';
|
||||||
|
import { classCom } from '@/utils/classCom';
|
||||||
|
const aotuSize = classCom.useAutoSize();
|
||||||
|
// @ts-ignore
|
||||||
|
import { listhospital } from "@/api/regional/dict/hospital.js";
|
||||||
|
|
||||||
|
const queryParams: any = ref({
|
||||||
|
pageSize: 50,
|
||||||
|
pageNum: 1,
|
||||||
|
})
|
||||||
|
const tableData: any = ref([])
|
||||||
|
const columns: any = ref([
|
||||||
|
{ prop: 'barcode', label: '条码', align: 'center', visible: true, },
|
||||||
|
{ prop: 'srcHospName', label: '委托机构', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patName', label: '姓名', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patSex', label: '性别', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patAge', label: '年龄', align: 'center', visible: true, slot: "patAge" },
|
||||||
|
// { prop: 'ageUnit', label: '龄', align: 'center', visible: true, },
|
||||||
|
{ prop: 'checkPUR', label: '项目名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'sampleTypeName', label: '标本类型名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'Status', label: '状态', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmUserName', label: '采样人', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmTime', label: '采样时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'signInUserName', label: '签收人', align: 'center', visible: true, },
|
||||||
|
{ prop: 'signInTime', label: '签收时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'dstHospName', label: '检测机构名称', align: 'center', visible: true, },
|
||||||
|
])
|
||||||
|
const tableConfig = ref({
|
||||||
|
border: true, // 边框
|
||||||
|
height: '65vh', // 高度
|
||||||
|
highlightCurrentRow: true, // 高亮当前行
|
||||||
|
// fit: true, // 列宽自适应
|
||||||
|
})
|
||||||
|
|
||||||
|
const pagination = ref({
|
||||||
|
show: true,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 50,
|
||||||
|
currentPage: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
const ksdhFields = ref([
|
||||||
|
{ prop: 'label', label: '名称', width: 150, enablePinyinSearch: true },
|
||||||
|
{ prop: 'value', label: '代号', width: 120, enablePinyinSearch: true },
|
||||||
|
])
|
||||||
|
|
||||||
|
// 时间线数据
|
||||||
|
const timelineItems = ref(
|
||||||
|
[
|
||||||
|
{ title: '检验申请', time: '' },
|
||||||
|
{ title: '标本采集', time: '' },
|
||||||
|
{ title: '标本送检', time: '' },
|
||||||
|
{ title: '标本外送', time: '' },
|
||||||
|
{ title: '标本签收', time: '' },
|
||||||
|
{ title: '上机检测', time: '' },
|
||||||
|
{ title: '结果审核', time: '' },
|
||||||
|
{ title: '报告发布', time: '' },
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// 计算最后一个有时间的节点索引
|
||||||
|
const lastTimeIndex = computed(() => {
|
||||||
|
|
||||||
|
const lastIndex = timelineItems.value.findLastIndex(item => item.time);
|
||||||
|
if (lastIndex === -1) {
|
||||||
|
return -1
|
||||||
|
} else {
|
||||||
|
return lastIndex;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const handleQuery = () => {
|
||||||
|
if (queryParams.value.times && queryParams.value.times.length > 0) {
|
||||||
|
queryParams.value.DateStart = queryParams.value.times[0]
|
||||||
|
queryParams.value.DateEnd = queryParams.value.times[1]
|
||||||
|
} else {
|
||||||
|
queryParams.value.DateStart = ''
|
||||||
|
queryParams.value.DateEnd = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const resetHandle = () => {
|
||||||
|
queryParams.value = {
|
||||||
|
pageSize: 50,
|
||||||
|
pageNum: 1,
|
||||||
|
}
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
const currentChange = (page: { currentPage: number, pageSize: number }) => {
|
||||||
|
console.log('page==>', page);
|
||||||
|
queryParams.value.pageNum = page.currentPage
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
const sizeChange = (page: { currentPage: number, pageSize: number }) => {
|
||||||
|
queryParams.value.pageSize = page.pageSize
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
const getList = () => {
|
||||||
|
querySample(queryParams.value).then((res: any) => {
|
||||||
|
tableData.value = res.rows
|
||||||
|
pagination.value.total = res.total
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const hosList = ref([])
|
||||||
|
onMounted(() => {
|
||||||
|
getList()
|
||||||
|
listhospital().then((res: any) => {
|
||||||
|
hosList.value = res.rows.map((item: any) => {
|
||||||
|
return {
|
||||||
|
label: item.hospitalName,
|
||||||
|
value: item.hospitalCode
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.compact-form {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
154
src/views/regional/circulation/bbqs/index.vue
Normal file
154
src/views/regional/circulation/bbqs/index.vue
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<div class="compact-form">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" label-width="5rem" style="width: 100%;" :size="aotuSize">
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="委托机构:" prop="srcHospName">
|
||||||
|
<SelectTable v-model:data="queryParams.srcHospName" :fields="ksdhFields" :tableData="[]" label="label"
|
||||||
|
:size="aotuSize" value="value" objKey="value" :border="true" placeholder="请选择委托机构"
|
||||||
|
@getDataValue="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="条码号:" prop="barcode">
|
||||||
|
<el-input v-model="queryParams.barcode" placeholder="请输入条码号" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="姓名:" prop="patName">
|
||||||
|
<el-input v-model="queryParams.patName" placeholder="请输入姓名" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="申请项目:" prop="OrderItemName">
|
||||||
|
<el-input v-model="queryParams.OrderItemName" placeholder="请输入申请项目" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="标本状态:" prop="dybz">
|
||||||
|
<el-select v-model="queryParams.dybz" placeholder="请选择" clearable @change="handleQuery">
|
||||||
|
<!-- <el-option label="已打印" value="1" />
|
||||||
|
<el-option label="未打印" value="0" /> -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="采样人:" prop="affirmUserName">
|
||||||
|
<el-input v-model="queryParams.affirmUserName" placeholder="请输入采样人" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="日期:" prop="times">
|
||||||
|
<el-date-picker v-model="queryParams.times" type="daterange" range-separator="-" start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-button type="primary">查询</el-button>
|
||||||
|
<el-button>重置</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb10">
|
||||||
|
<el-button type="primary">标本签收</el-button>
|
||||||
|
<el-button type="primary">标本拒签</el-button>
|
||||||
|
<el-popover placement="bottom">
|
||||||
|
<template #reference>
|
||||||
|
<el-button type="primary" plain>其他操作 <el-icon>
|
||||||
|
<ArrowDown />
|
||||||
|
</el-icon></el-button>
|
||||||
|
</template>
|
||||||
|
<div class="btns">
|
||||||
|
<el-button type="primary" plain>标本退回</el-button>
|
||||||
|
<el-button type="primary" plain>更换条码</el-button>
|
||||||
|
<el-button type="primary" plain>取消签收</el-button>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" :pagination="pagination">
|
||||||
|
</CustomTable>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import CustomTable from '@/components/elTable/index.vue'
|
||||||
|
import { querySample } from '@/api/regional/index'
|
||||||
|
import SelectTable from '@/components/SelectTable/index.vue';
|
||||||
|
import { classCom } from '@/utils/classCom';
|
||||||
|
const aotuSize = classCom.useAutoSize();
|
||||||
|
|
||||||
|
const queryParams: any = ref({})
|
||||||
|
const tableData: any = ref([])
|
||||||
|
const columns: any = ref([
|
||||||
|
{ type: 'selection', align: 'center', visible: true, },
|
||||||
|
{ prop: 'barcode', label: '条码号', align: 'center', visible: true, },
|
||||||
|
{ prop: 'srcHospName', label: '委托机构', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patName', label: '姓名', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patSex', label: '性别', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patAge', label: '年龄', align: 'center', visible: true, },
|
||||||
|
// { prop: 'ageUnit', label: '龄', align: 'center', visible: true, },
|
||||||
|
{ prop: 'orderItemName', label: '项目名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'sampleTypeName', label: '标本类型名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'Status', label: '状态', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmUserName', label: '采样人', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmTime', label: '采样时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'signInUserName', label: '签收人', align: 'center', visible: true, },
|
||||||
|
{ prop: 'signInTime', label: '签收时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'dstHospName', label: '检测机构名称', align: 'center', visible: true, },
|
||||||
|
])
|
||||||
|
const tableConfig = ref({
|
||||||
|
border: true, // 边框
|
||||||
|
height: '65vh', // 高度
|
||||||
|
highlightCurrentRow: true, // 高亮当前行
|
||||||
|
// fit: true, // 列宽自适应
|
||||||
|
})
|
||||||
|
|
||||||
|
const pagination = ref({
|
||||||
|
show: true,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 50,
|
||||||
|
currentPage: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
const ksdhFields = ref([
|
||||||
|
{ prop: 'label', label: '名称', enablePinyinSearch: true },
|
||||||
|
{ prop: 'value', label: '代号', width: 80, enablePinyinSearch: true },
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const handleQuery = () => {
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
// getList()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.compact-form {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btns {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
|
||||||
|
&>button {
|
||||||
|
width: 100%;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
153
src/views/regional/circulation/bbth/index.vue
Normal file
153
src/views/regional/circulation/bbth/index.vue
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<div class="compact-form">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" label-width="5rem" style="width: 100%;" :size="aotuSize">
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="委托机构:" prop="srcHospName">
|
||||||
|
<SelectTable v-model:data="queryParams.srcHospName" :fields="ksdhFields" :tableData="[]" label="label"
|
||||||
|
:size="aotuSize" value="value" objKey="value" :border="true" placeholder="请选择委托机构"
|
||||||
|
@getDataValue="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="条码号:" prop="barcode">
|
||||||
|
<el-input v-model="queryParams.barcode" placeholder="请输入条码号" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="姓名:" prop="patName">
|
||||||
|
<el-input v-model="queryParams.patName" placeholder="请输入姓名" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="申请项目:" prop="OrderItemName">
|
||||||
|
<el-input v-model="queryParams.OrderItemName" placeholder="请输入申请项目" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="标本状态:" prop="dybz">
|
||||||
|
<el-select v-model="queryParams.dybz" placeholder="请选择" clearable @change="handleQuery">
|
||||||
|
<!-- <el-option label="已打印" value="1" />
|
||||||
|
<el-option label="未打印" value="0" /> -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="采样人:" prop="affirmUserName">
|
||||||
|
<el-input v-model="queryParams.affirmUserName" placeholder="请输入采样人" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="日期:" prop="times">
|
||||||
|
<el-date-picker v-model="queryParams.times" type="daterange" range-separator="-" start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-button type="primary">查询</el-button>
|
||||||
|
<el-button>重置</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb10">
|
||||||
|
<el-button type="primary">已核查</el-button>
|
||||||
|
<el-button type="primary">重新采集</el-button>
|
||||||
|
<el-button type="primary">撤销退回</el-button>
|
||||||
|
<el-popover placement="bottom">
|
||||||
|
<template #reference>
|
||||||
|
<el-button type="primary" plain>其他操作 <el-icon>
|
||||||
|
<ArrowDown />
|
||||||
|
</el-icon></el-button>
|
||||||
|
</template>
|
||||||
|
<div class="btns">
|
||||||
|
<el-button type="primary" plain>申请退费</el-button>
|
||||||
|
<el-button type="primary" plain>取消核查</el-button>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" :pagination="pagination">
|
||||||
|
</CustomTable>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import CustomTable from '@/components/elTable/index.vue'
|
||||||
|
import { querySample } from '@/api/regional/index'
|
||||||
|
import SelectTable from '@/components/SelectTable/index.vue';
|
||||||
|
import { classCom } from '@/utils/classCom';
|
||||||
|
const aotuSize = classCom.useAutoSize();
|
||||||
|
|
||||||
|
const queryParams: any = ref({})
|
||||||
|
const tableData: any = ref([])
|
||||||
|
const columns: any = ref([
|
||||||
|
{ type: 'selection', align: 'center', visible: true, },
|
||||||
|
{ prop: 'barcode', label: '处理状态', align: 'center', visible: true, },
|
||||||
|
{ prop: 'barcode', label: '条码号', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patName', label: '姓名', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patSex', label: '性别', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patAge', label: '年龄', align: 'center', visible: true, },
|
||||||
|
// { prop: 'ageUnit', label: '龄', align: 'center', visible: true, },
|
||||||
|
{ prop: 'orderItemName', label: '项目名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'srcHospName', label: '委托机构', align: 'center', visible: true, },
|
||||||
|
{ prop: 'srcHospName', label: '检测机构', align: 'center', visible: true, },
|
||||||
|
{ prop: 'Status', label: '标本状态', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmUserName', label: '退回理由', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmTime', label: '采样时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'signInUserName', label: '操作人', align: 'center', visible: true, },
|
||||||
|
{ prop: 'signInTime', label: '操作时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'bz', label: '备注', align: 'center', visible: true, },
|
||||||
|
])
|
||||||
|
const tableConfig = ref({
|
||||||
|
border: true, // 边框
|
||||||
|
height: '65vh', // 高度
|
||||||
|
highlightCurrentRow: true, // 高亮当前行
|
||||||
|
// fit: true, // 列宽自适应
|
||||||
|
})
|
||||||
|
|
||||||
|
const pagination = ref({
|
||||||
|
show: true,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 50,
|
||||||
|
currentPage: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
const ksdhFields = ref([
|
||||||
|
{ prop: 'label', label: '名称', enablePinyinSearch: true },
|
||||||
|
{ prop: 'value', label: '代号', width: 80, enablePinyinSearch: true },
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const handleQuery = () => {
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
// getList()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.compact-form {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btns {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
|
||||||
|
&>button {
|
||||||
|
width: 100%;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
139
src/views/regional/circulation/cydj/index.vue
Normal file
139
src/views/regional/circulation/cydj/index.vue
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<div class="compact-form">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" label-width="5rem" style="width: 100%;" :size="aotuSize">
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="委托机构:" prop="srcHospName">
|
||||||
|
<SelectTable v-model:data="queryParams.srcHospName" :fields="ksdhFields" :tableData="hosList"
|
||||||
|
label="label" :size="aotuSize" value="label" objKey="label" :border="true" placeholder="请选择委托机构"
|
||||||
|
@getDataValue="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="条码号:" prop="barcode">
|
||||||
|
<el-input v-model="queryParams.barcode" placeholder="请输入条码号" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="姓名:" prop="patName">
|
||||||
|
<el-input v-model="queryParams.patName" placeholder="请输入姓名" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="申请项目:" prop="OrderItemName">
|
||||||
|
<el-input v-model="queryParams.OrderItemName" placeholder="请输入申请项目" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="标本状态:" prop="dybz">
|
||||||
|
<el-select v-model="queryParams.dybz" placeholder="请选择" clearable @change="handleQuery">
|
||||||
|
<!-- <el-option label="已打印" value="1" />
|
||||||
|
<el-option label="未打印" value="0" /> -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="采样人:" prop="affirmUserName">
|
||||||
|
<el-input v-model="queryParams.affirmUserName" placeholder="请输入采样人" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="日期:" prop="times">
|
||||||
|
<el-date-picker v-model="queryParams.times" type="daterange" range-separator="-" start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-button type="primary">查询</el-button>
|
||||||
|
<el-button>重置</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div></div>
|
||||||
|
|
||||||
|
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" :pagination="pagination">
|
||||||
|
</CustomTable>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import CustomTable from '@/components/elTable/index.vue'
|
||||||
|
import { querySample } from '@/api/regional/index'
|
||||||
|
// @ts-ignore
|
||||||
|
import { listhospital } from "@/api/regional/dict/hospital.js";
|
||||||
|
import SelectTable from '@/components/SelectTable/index.vue';
|
||||||
|
import { classCom } from '@/utils/classCom';
|
||||||
|
const aotuSize = classCom.useAutoSize();
|
||||||
|
|
||||||
|
const queryParams: any = ref({})
|
||||||
|
const tableData: any = ref([])
|
||||||
|
const columns: any = ref([
|
||||||
|
{ prop: 'barcode', label: '条码号', align: 'center', visible: true, },
|
||||||
|
{ prop: 'srcHospName', label: '委托机构', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patName', label: '姓名', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patSex', label: '性别', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patAge', label: '年龄', align: 'center', visible: true, },
|
||||||
|
// { prop: 'ageUnit', label: '龄', align: 'center', visible: true, },
|
||||||
|
{ prop: 'orderItemName', label: '项目名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'sampleTypeName', label: '标本类型名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'Status', label: '状态', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmUserName', label: '采样人', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmTime', label: '采样时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'signInUserName', label: '签收人', align: 'center', visible: true, },
|
||||||
|
{ prop: 'signInTime', label: '签收时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'dstHospName', label: '检测机构名称', align: 'center', visible: true, },
|
||||||
|
])
|
||||||
|
const tableConfig = ref({
|
||||||
|
border: true, // 边框
|
||||||
|
height: '70vh', // 高度
|
||||||
|
highlightCurrentRow: true, // 高亮当前行
|
||||||
|
// fit: true, // 列宽自适应
|
||||||
|
})
|
||||||
|
|
||||||
|
const pagination = ref({
|
||||||
|
show: true,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 50,
|
||||||
|
currentPage: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
const ksdhFields = ref([
|
||||||
|
{ prop: 'label', label: '名称', enablePinyinSearch: true },
|
||||||
|
{ prop: 'value', label: '代号', width: 80, enablePinyinSearch: true },
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const handleQuery = () => {
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
const hosList = ref([])
|
||||||
|
onMounted(() => {
|
||||||
|
getList()
|
||||||
|
listhospital().then((res: any) => {
|
||||||
|
hosList.value = res.rows.map((item: any) => {
|
||||||
|
return {
|
||||||
|
label: item.hospitalName,
|
||||||
|
value: item.hospitalCode
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// getList()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.compact-form {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
152
src/views/regional/circulation/sjdj/index.vue
Normal file
152
src/views/regional/circulation/sjdj/index.vue
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<div class="compact-form">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" label-width="5rem" style="width: 100%;" :size="aotuSize">
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="委托机构:" prop="srcHospName">
|
||||||
|
<SelectTable v-model:data="queryParams.srcHospName" :fields="ksdhFields" :tableData="[]" label="label"
|
||||||
|
:size="aotuSize" value="value" objKey="value" :border="true" placeholder="请选择委托机构"
|
||||||
|
@getDataValue="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="条码号:" prop="barcode">
|
||||||
|
<el-input v-model="queryParams.barcode" placeholder="请输入条码号" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="姓名:" prop="patName">
|
||||||
|
<el-input v-model="queryParams.patName" placeholder="请输入姓名" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="申请项目:" prop="OrderItemName">
|
||||||
|
<el-input v-model="queryParams.OrderItemName" placeholder="请输入申请项目" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="标本状态:" prop="dybz">
|
||||||
|
<el-select v-model="queryParams.dybz" placeholder="请选择" clearable @change="handleQuery">
|
||||||
|
<!-- <el-option label="已打印" value="1" />
|
||||||
|
<el-option label="未打印" value="0" /> -->
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="采样人:" prop="affirmUserName">
|
||||||
|
<el-input v-model="queryParams.affirmUserName" placeholder="请输入采样人" clearable @change="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="日期:" prop="times">
|
||||||
|
<el-date-picker v-model="queryParams.times" type="daterange" range-separator="-" start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-button type="primary">查询</el-button>
|
||||||
|
<el-button>重置</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb10">
|
||||||
|
<el-button type="primary">标本签收</el-button>
|
||||||
|
<el-button type="primary">标本拒签</el-button>
|
||||||
|
<el-popover placement="bottom">
|
||||||
|
<template #reference>
|
||||||
|
<el-button type="primary" plain>其他操作 <el-icon>
|
||||||
|
<ArrowDown />
|
||||||
|
</el-icon></el-button>
|
||||||
|
</template>
|
||||||
|
<div class="btns">
|
||||||
|
<el-button type="primary" plain>标本退回</el-button>
|
||||||
|
<el-button type="primary" plain>更换条码</el-button>
|
||||||
|
<el-button type="primary" plain>取消签收</el-button>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" :pagination="pagination">
|
||||||
|
</CustomTable>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import CustomTable from '@/components/elTable/index.vue'
|
||||||
|
import { querySample } from '@/api/regional/index'
|
||||||
|
import SelectTable from '@/components/SelectTable/index.vue';
|
||||||
|
import { classCom } from '@/utils/classCom';
|
||||||
|
const aotuSize = classCom.useAutoSize();
|
||||||
|
|
||||||
|
const queryParams: any = ref({})
|
||||||
|
const tableData: any = ref([])
|
||||||
|
const columns: any = ref([
|
||||||
|
{ type: 'selection', align: 'center', visible: true, },
|
||||||
|
{ prop: 'barcode', label: '条码号', align: 'center', visible: true, },
|
||||||
|
{ prop: 'srcHospName', label: '委托机构', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patName', label: '姓名', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patSex', label: '性别', align: 'center', visible: true, },
|
||||||
|
{ prop: 'patAge', label: '年龄', align: 'center', visible: true, },
|
||||||
|
// { prop: 'ageUnit', label: '龄', align: 'center', visible: true, },
|
||||||
|
{ prop: 'orderItemName', label: '项目名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'sampleTypeName', label: '标本类型名称', align: 'center', visible: true, },
|
||||||
|
{ prop: 'Status', label: '状态', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmUserName', label: '送检人', align: 'center', visible: true, },
|
||||||
|
{ prop: 'affirmTime', label: '送检时间', align: 'center', visible: true, },
|
||||||
|
{ prop: 'dstHospName', label: '检测机构名称', align: 'center', visible: true, },
|
||||||
|
])
|
||||||
|
const tableConfig = ref({
|
||||||
|
border: true, // 边框
|
||||||
|
height: '65vh', // 高度
|
||||||
|
highlightCurrentRow: true, // 高亮当前行
|
||||||
|
// fit: true, // 列宽自适应
|
||||||
|
})
|
||||||
|
|
||||||
|
const pagination = ref({
|
||||||
|
show: true,
|
||||||
|
total: 0,
|
||||||
|
pageSize: 50,
|
||||||
|
currentPage: 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
const ksdhFields = ref([
|
||||||
|
{ prop: 'label', label: '名称', enablePinyinSearch: true },
|
||||||
|
{ prop: 'value', label: '代号', width: 80, enablePinyinSearch: true },
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const handleQuery = () => {
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
// getList()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.compact-form {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btns {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-around;
|
||||||
|
|
||||||
|
&>button {
|
||||||
|
width: 100%;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user