<template>
|
<div class="app-container">
|
<el-form
|
:model="queryParams"
|
ref="queryForm"
|
size="small"
|
:inline="true"
|
v-show="showSearch"
|
label-width="68px"
|
>
|
<el-form-item label="体检号" prop="tjNum">
|
<el-input
|
ref="inputName"
|
v-model="queryParams.tjNum"
|
placeholder="请输入体检号"
|
clearable
|
@keyup.enter.native="handleQuery"
|
@blur="handleQuery"
|
style="width: 170px"
|
/>
|
</el-form-item>
|
<el-form-item label="姓名" prop="name">
|
<el-input
|
v-model="queryParams.name"
|
placeholder="请输入姓名"
|
clearable
|
@keyup.enter.native="handleQuery"
|
style="width: 110px"
|
/>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
type="primary"
|
icon="el-icon-search"
|
size="mini"
|
@click="handleQuery"
|
>搜索</el-button
|
>
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
>重置</el-button
|
>
|
</el-form-item>
|
</el-form>
|
|
<div style="width: 100%; margin-left: 10px; display: flex">
|
<div style="width: 36%; margin-right: 30px">
|
<el-table
|
id="table"
|
v-loading="loading"
|
ref="tb"
|
:data="pictureList"
|
@selection-change="handleSelectionChange"
|
border
|
height="630px"
|
>
|
<el-table-column type="selection" width="40" align="center" />
|
<el-table-column
|
label="体检号"
|
align="center"
|
prop="customer.tjNumber"
|
width="160px"
|
/>
|
<el-table-column
|
label="姓名"
|
align="center"
|
prop="customer.cusName"
|
width="90px"
|
/>
|
<!-- <el-table-column label="身份证" align="center" prop="customer.cusIdcard" width="170px" /> -->
|
<el-table-column
|
label="性别"
|
align="center"
|
prop="customer.cusSex"
|
width="60px"
|
>
|
<!-- <template slot-scope="scope">
|
{{ scope.row.customer.cusSex === 0 ? "男" : "女" }}
|
</template> -->
|
<template slot-scope="scope">
|
<span v-if="scope.row.cusSex == '0'">男</span>
|
<span v-if="scope.row.cusSex == '1'">女</span>
|
<span v-if="scope.row.cusSex == '2'">未知</span>
|
</template>
|
</el-table-column>
|
<!-- <el-table-column label="生日" align="center" prop="customer.cusBrithday" width="110px" /> -->
|
<el-table-column
|
label="手机号"
|
align="center"
|
prop="customer.cusPhone"
|
width="110px"
|
/>
|
<el-table-column
|
label="婚姻"
|
align="center"
|
prop="cusMarryStatus"
|
width="70px"
|
>
|
<template slot-scope="scope">
|
<dict-tag
|
:options="dict.type.dict_user_marry"
|
:value="scope.row.customer.cusMarryStatus"
|
/>
|
</template>
|
</el-table-column>
|
<el-table-column
|
label="民族"
|
align="center"
|
prop="cusNational"
|
width="70px"
|
>
|
<template slot-scope="scope">
|
<dict-tag
|
:options="dict.type.dict_user_national"
|
:value="scope.row.customer.cusNational"
|
/>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
|
<div style="width: 44%; height: 610px">
|
<el-table
|
v-loading="loading"
|
ref="mu"
|
:data="tableList"
|
@selection-change="handleChange"
|
border
|
>
|
<el-table-column type="selection" width="40" align="center" />
|
<el-table-column label="收费项目" align="center" prop="proName" />
|
<el-table-column label="项目名称" align="center" prop="proName" />
|
<el-table-column label="项目结果" align="center" prop="proResult" />
|
<!-- <el-table-column label="结论" align="center" prop="conclusion" /> -->
|
</el-table>
|
<div style="height: 390px; margin-top: 10px">
|
<el-image
|
v-loading="loading"
|
style="height: 390px; width: 100%"
|
:src="imgsrc + tjNumber + '.png'"
|
:preview-src-list="[imgsrc + tjNumber + '.png']"
|
></el-image>
|
</div>
|
|
<div style="margin-top: 20px">
|
<el-form
|
:model="form"
|
ref="queryForm"
|
size="small"
|
:inline="true"
|
label-width="68px"
|
>
|
<el-form-item label="项目结果" prop="proResult">
|
<el-input v-model="form.proResult" clearable />
|
</el-form-item>
|
<el-form-item label="结果结论" prop="conclusion">
|
<el-input
|
v-model="form.conclusion"
|
clearable
|
@focus="submiepilog"
|
/>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
type="primary"
|
icon="el-icon-search"
|
size="mini"
|
@click="submito"
|
>提交</el-button
|
>
|
</el-form-item>
|
</el-form>
|
</div>
|
|
<!-- <div style="display:flex;margin:15px 0px;width: 100%;">
|
<div style="width: 100%;display:flex;">
|
<el-button type="primary" class="default-button-style" size="small"
|
@click="submiepilog">结果结论</el-button>
|
<el-button type="primary" icon="el-icon-s-claim" size="mini" @click="submito">提交</el-button>
|
|
</div>
|
</div> -->
|
</div>
|
</div>
|
|
<div style="margin-right: 70%">
|
<pagination
|
v-show="total > 0"
|
:total="total"
|
:page.sync="queryParams.pageNum"
|
:limit.sync="queryParams.pageSize"
|
@pagination="getList"
|
/>
|
</div>
|
|
<Public ref="aaa" @add="handleChanges" />
|
</div>
|
</template>
|
|
<script>
|
import { getListPicture, updatePicture } from "@/api/picture/picture";
|
|
import Public from "@/components/public";
|
export default {
|
dicts: [
|
"sys_user_sex",
|
"sampling_type",
|
"sys_dict_specimen",
|
"dict_user_marry",
|
"dict_user_national",
|
],
|
name: "Picture",
|
components: { Public },
|
data() {
|
return {
|
topStyle: { transform: "" },
|
r_img: {},
|
topShow: false,
|
rShow: false,
|
// 遮罩层
|
loading: true,
|
result: true,
|
epilog: false,
|
// 选中数组
|
ids: [],
|
// 非单个禁用
|
single: true,
|
// 非多个禁用
|
multiple: true,
|
// 显示搜索条件
|
showSearch: true,
|
// 总条数
|
total: 0,
|
activeName: "first",
|
proResult: "",
|
conclusion: "",
|
imgsrc: "",
|
tjNumber: "",
|
// 体检心电图管理表格数据
|
pictureList: [],
|
tableList: [],
|
// 弹出层标题
|
title: "",
|
// 是否显示弹出层
|
open: false,
|
// 查询参数
|
queryParams: {
|
pageNum: 1,
|
pageSize: 10,
|
tjNum: null,
|
cusId: null,
|
name: null,
|
xdt: null,
|
proId: null,
|
proName: null,
|
proResult: null,
|
conclusion: null,
|
},
|
dataobj: {},
|
// 表单参数
|
form: {
|
proResult: "",
|
conclusion: "",
|
},
|
// 表单校验
|
rules: {},
|
};
|
},
|
created() {
|
this.getList();
|
},
|
mounted() {
|
this.$nextTick(() => {
|
this.$refs.inputName.focus();
|
});
|
},
|
methods: {
|
// 鼠标进入原图空间函数
|
enterHandler() {
|
// 层罩及放大空间的显示
|
this.topShow = true;
|
this.rShow = true;
|
},
|
// 鼠标移动函数
|
moveHandler(event) {
|
// 鼠标的坐标位置
|
let x = event.offsetX;
|
let y = event.offsetY;
|
// 层罩的左上角坐标位置,并对其进行限制:无法超出原图区域左上角
|
let topX = x - 100 < 0 ? 0 : x - 100;
|
let topY = y - 100 < 0 ? 0 : y - 100;
|
// 对层罩位置再一次限制,保证层罩只能在原图区域空间内
|
if (topX > 200) {
|
topX = 200;
|
}
|
if (topY > 200) {
|
topY = 200;
|
}
|
// 通过 transform 进行移动控制
|
this.topStyle.transform = `translate(${topX}px,${topY}px)`;
|
this.r_img.transform = `translate(-${2 * topX}px,-${2 * topY}px)`;
|
},
|
// 鼠标移出函数
|
outHandler() {
|
// 控制层罩与放大空间的隐藏
|
this.topShow = false;
|
this.rShow = false;
|
},
|
/** 查询体检心电图管理列表 */
|
getList() {
|
this.loading = true;
|
getListPicture(this.queryParams).then((response) => {
|
if (response.data.list) {
|
this.pictureList = response.data.list;
|
} else {
|
this.$message.warning("查无此人");
|
}
|
|
if (this.pictureList.length != 0) {
|
this.$nextTick(() => {
|
this.$refs.tb.toggleRowSelection(this.pictureList[0], true);
|
});
|
} else {
|
this.$refs.tb.clearSelection();
|
}
|
this.total = response.data.total;
|
this.loading = false;
|
});
|
},
|
// 取消按钮
|
cancel() {
|
this.open = false;
|
this.reset();
|
},
|
// 表单重置
|
reset() {
|
this.form = {
|
proResult: null,
|
conclusion: null,
|
};
|
this.resetForm("form");
|
},
|
/** 搜索按钮操作 */
|
handleQuery() {
|
this.queryParams.pageNum = 1;
|
this.getList();
|
},
|
/** 重置按钮操作 */
|
resetQuery() {
|
this.resetForm("queryForm");
|
this.handleQuery();
|
},
|
// 多选框选中数据
|
handleSelectionChange(selection) {
|
this.imgsrc = selection[0].picturePath;
|
this.tjNumber = selection[0].customer.tjNumber;
|
this.ids = selection.map((item) => item.id);
|
selection.forEach((element) => {
|
this.tableList = element.list;
|
if (this.tableList.length != 0) {
|
this.tableList.forEach((item) => {
|
this.form.proResult = item.proResult;
|
this.form.conclusion = item.conclusion;
|
});
|
this.$nextTick(() => {
|
this.$refs.mu.toggleRowSelection(this.tableList[0], true);
|
});
|
} else {
|
this.$refs.mu.clearSelection();
|
}
|
});
|
// this.tableList.forEach(item => {
|
// this.imgsrc = item.xdt
|
// })
|
if (selection.length > 1) {
|
let del_row = selection.shift();
|
this.$refs.tb.toggleRowSelection(del_row, false); //设置这一行取消选中
|
}
|
this.single = selection.length !== 1;
|
this.multiple = !selection.length;
|
},
|
|
handleChange(selection) {
|
selection.forEach((element) => {
|
this.dataobj = element;
|
});
|
},
|
|
handleChanges(value) {
|
this.form.conclusion = value;
|
},
|
|
submiepilog() {
|
this.$refs.aaa.open = true;
|
let proId = "1633660948860522585";
|
this.$refs.aaa.getList(proId);
|
},
|
// 确定按钮
|
submito() {
|
if (this.dataobj) {
|
if (this.form.proResult) {
|
this.dataobj.proResult = this.form.proResult;
|
}
|
if (this.form.conclusion) {
|
this.dataobj.conclusion = this.form.conclusion;
|
}
|
updatePicture(this.dataobj).then((res) => {
|
this.$modal.msgSuccess("提交成功");
|
this.getList();
|
this.form.proResult = "";
|
this.form.conclusion = "";
|
});
|
} else {
|
this.$modal.msgSuccess("选择修改项目");
|
}
|
},
|
|
//删除按钮
|
handleDelete() {},
|
|
// 导出
|
handleExport() {},
|
},
|
};
|
</script>
|
|
|
<style>
|
#table .el-table__header-wrapper .el-checkbox {
|
display: none;
|
}
|
|
.default-button-style :hover {
|
width: 80px;
|
border-bottom: none;
|
}
|
|
.rightImg {
|
display: inline-block;
|
width: 740px;
|
height: 800px;
|
position: absolute;
|
top: 0;
|
left: 0;
|
/* border: 1px solid red; */
|
}
|
|
/* 右边的区域图片放大空间 */
|
.right {
|
margin-left: 412px;
|
width: 340px;
|
height: 400px;
|
border: 1px solid black;
|
position: relative;
|
overflow: hidden;
|
}
|
|
/* 一个最高层层罩 */
|
.maskTop {
|
width: 400px;
|
height: 400px;
|
position: absolute;
|
z-index: 1;
|
top: 0;
|
left: 0;
|
}
|
|
/* 层罩,通过定位将左上角定位到(0,0) */
|
.top {
|
width: 200px;
|
height: 200px;
|
background-color: #1890ff;
|
opacity: 0.4;
|
position: absolute;
|
top: 0;
|
left: 0;
|
}
|
|
/* 原图的显示 */
|
.leftImg {
|
width: 400px;
|
height: 400px;
|
display: inline-block;
|
}
|
|
/* 原图的容器 */
|
.left {
|
width: 400px;
|
height: 400px;
|
/* border: 1px solid teal; */
|
float: left;
|
position: relative;
|
}
|
</style>
|