Commit e6f4ad85 by 刘军

报告导出修改后

parent 7f32aefb
...@@ -46,6 +46,10 @@ export const SaveClientInfo = params => { return axios.post(`${base}api/ClientIn ...@@ -46,6 +46,10 @@ export const SaveClientInfo = params => { return axios.post(`${base}api/ClientIn
export const DelClientInfo = params => { return axios.post(`${base}api/ClientInfo/DelClientInfo`,params).then(res => res.data)}; export const DelClientInfo = params => { return axios.post(`${base}api/ClientInfo/DelClientInfo`,params).then(res => res.data)};
export const ImportClientInfo = params => { return axios.post(`${base}api/ClientInfo/ImportClientInfo`,params).then(res => res.data)}; export const ImportClientInfo = params => { return axios.post(`${base}api/ClientInfo/ImportClientInfo`,params).then(res => res.data)};
export const GetClientInfoDetail = params => { return axios.get(`${base}api/ClientInfo/GetClientInfoDetail`, { params: params }).then(res => res.data); }; export const GetClientInfoDetail = params => { return axios.get(`${base}api/ClientInfo/GetClientInfoDetail`, { params: params }).then(res => res.data); };
export const GetAllSampleType = params => { return axios.get(`${base}api/SampleType/GetAllSampleType`, { params: params }).then(res => res.data); };
export const GetAllTumorsType = params => { return axios.get(`${base}api/TumorsType/GetAllTumorsType`, { params: params }).then(res => res.data); };
// 基因检测结果 // 基因检测结果
export const GetGeneResult = params => { return axios.post(`${base}api/GeneDetectionResult/GetGene`,params).then(res => res.data)}; export const GetGeneResult = params => { return axios.post(`${base}api/GeneDetectionResult/GetGene`,params).then(res => res.data)};
export const SaveGeneResult = params => { return axios.post(`${base}api/GeneDetectionResult/SaveGene`,params).then(res => res.data)}; export const SaveGeneResult = params => { return axios.post(`${base}api/GeneDetectionResult/SaveGene`,params).then(res => res.data)};
...@@ -86,7 +90,15 @@ export const SaveORUpdateCodeTable = params => { return axios.post(`${base}api/C ...@@ -86,7 +90,15 @@ export const SaveORUpdateCodeTable = params => { return axios.post(`${base}api/C
export const GetSonCodeTable = params => { return axios.post(`${base}api/CodeTable/GetSonCodeTable`,params).then(res => res.data)}; export const GetSonCodeTable = params => { return axios.post(`${base}api/CodeTable/GetSonCodeTable`,params).then(res => res.data)};
export const SaveORUpdateSonCodeTable = params => { return axios.post(`${base}api/CodeTable/SaveORUpdateSonCodeTable`,params).then(res => res.data)}; export const SaveORUpdateSonCodeTable = params => { return axios.post(`${base}api/CodeTable/SaveORUpdateSonCodeTable`,params).then(res => res.data)};
export const DelSonCodeTable = params => { return axios.post(`${base}api/CodeTable/DelSonCodeTable`,params).then(res => res.data)}; export const DelSonCodeTable = params => { return axios.post(`${base}api/CodeTable/DelSonCodeTable`,params).then(res => res.data)};
// 监测报告导出
export const GetCurrentReport = params => { return axios.post(`${base}api/ExportWord/GetCurrentReport`,params).then(res => res.data)};
export const GetAllClientInfo = params => { return axios.post(`${base}api/ClientInfo/GetAllClientInfo`,params).then(res => res.data)};
// 化疗结果
export const ImportChemotherapy = params => { return axios.post(`${base}api/Chemotherapy/ImportChemotherapy`, params).then(res => res.data); };
// 监测结果汇总
export const ImportSummary = params => { return axios.post(`${base}api/Summary/ImportSummary`, params).then(res => res.data); };
export const GetMenu = params => { return axios.get(`${base2}api/MenuPermission/GetMenu`, { params: params }).then(res => res.data); }; export const GetMenu = params => { return axios.get(`${base2}api/MenuPermission/GetMenu`, { params: params }).then(res => res.data); };
......
...@@ -48,11 +48,11 @@ ...@@ -48,11 +48,11 @@
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="样本编号" prop="sampleCode"> <el-form-item label="样本编号" prop="sampleCode">
<el-input v-model="ruleForm.sampleCode"></el-input> <el-input v-model="ruleForm.sampleCode" :disabled="row.length===1"></el-input>
</el-form-item> </el-form-item>
<div style="display:flex;"> <div style="display:flex;">
<el-form-item label="样本类型" prop="sampleType" style="width:65%"> <el-form-item label="样本类型" prop="sampleType" style="width:65%">
<el-input v-model="ruleForm.sampleType"></el-input> <el-input v-model="ruleForm.sampleType" @focus="sampleDialogFormVisible=true" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="检测样本" prop="sampleDetection"> <el-form-item label="检测样本" prop="sampleDetection">
<el-input v-model="ruleForm.sampleDetection"></el-input> <el-input v-model="ruleForm.sampleDetection"></el-input>
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
</div> </div>
<div style="display:flex;"> <div style="display:flex;">
<el-form-item label="肿瘤类型" prop="tumorsType" style="width:35%"> <el-form-item label="肿瘤类型" prop="tumorsType" style="width:35%">
<el-input v-model="ruleForm.tumorsType"></el-input> <el-input v-model="ruleForm.tumorsType" @focus="tumorDialogFormVisible=true" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="TBM分期" prop="tbm" style="width:35%"> <el-form-item label="TBM分期" prop="tbm" style="width:35%">
<el-input v-model="ruleForm.tbm"></el-input> <el-input v-model="ruleForm.tbm"></el-input>
...@@ -91,6 +91,42 @@ ...@@ -91,6 +91,42 @@
<el-button @click="count = 0">返回</el-button> <el-button @click="count = 0">返回</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!--样本类型弹窗-->
<el-dialog title="选择样本类型" :visible.sync="sampleDialogFormVisible">
<el-form ref="dataForm" :inline="true" class="demo-form-inline" label-width="80px" size="small" >
<el-form-item>
<el-button type="primary" @click="getCheckedSample">确认选择</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="setCurrent()">取消选择</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="sampleDialogFormVisible=false">关闭</el-button>
</el-form-item>
<el-table ref="singleTable" :data="AllSample" highlight-current-row style="width: 100%" @current-change="CurrentChange">
<el-table-column prop="sampleCode" label="样本编号"></el-table-column>
<el-table-column prop="sampleName" label="样本类型"></el-table-column>
</el-table>
</el-form>
</el-dialog>
<!--肿瘤类型弹窗-->
<el-dialog title="选择肿瘤类型" :visible.sync="tumorDialogFormVisible">
<el-form ref="dataForm" :inline="true" class="demo-form-inline" label-width="80px" size="small" >
<el-form-item>
<el-button type="primary" @click="getCheckedTumor">确认选择</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="setCurrent()">取消选择</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="tumorDialogFormVisible=false">关闭</el-button>
</el-form-item>
<el-table ref="singleTable2" :data="AllTumors" highlight-current-row style="width: 100%" @current-change="CurrentChange">
<el-table-column prop="tumorsCode" label="肿瘤编号"></el-table-column>
<el-table-column prop="tumorsName" label="肿瘤类型"></el-table-column>
</el-table>
</el-form>
</el-dialog>
</div> </div>
</transition> </transition>
</div> </div>
...@@ -98,7 +134,7 @@ ...@@ -98,7 +134,7 @@
<script> <script>
import Sex from "./dg_tableCustom/sexCustomizemenu" import Sex from "./dg_tableCustom/sexCustomizemenu"
import { GetClientInfo,GetGuid,SaveClientInfo,DelClientInfo,ImportClientInfo,GetImportTemplatePath,GetClientInfoDetail } from "../../api/api"; import { GetClientInfo,GetGuid,SaveClientInfo,DelClientInfo,ImportClientInfo,GetImportTemplatePath,GetClientInfoDetail,GetAllSampleType,GetAllTumorsType } from "../../api/api";
export default { export default {
data() { data() {
var checkSfz = (rule,value,callback)=>{ var checkSfz = (rule,value,callback)=>{
...@@ -185,8 +221,8 @@ export default { ...@@ -185,8 +221,8 @@ export default {
valuekey: 'value' valuekey: 'value'
}, },
items: [ items: [
{ label: '男', value: 0 }, { label: '男', value: 1 },
{ label: '女', value: 1 } { label: '女', value: 0 }
] ]
}, },
component:Sex, component:Sex,
...@@ -222,7 +258,15 @@ export default { ...@@ -222,7 +258,15 @@ export default {
}, },
], ],
searchVal:'' searchVal:'',
AllSample:[],
sampleDialogFormVisible:false,
currentRow:[],
AllTumors:[],
tumorDialogFormVisible:false
} }
}, },
watch:{ watch:{
...@@ -256,6 +300,8 @@ export default { ...@@ -256,6 +300,8 @@ export default {
this.paginaWidth=this.$refs.dgtable.$el.clientWidth+'px' this.paginaWidth=this.$refs.dgtable.$el.clientWidth+'px'
}; };
this.getData() this.getData()
this.GetAllSample()
this.GetAllTumors()
}, },
destroyed(){ destroyed(){
window.onresize = null; window.onresize = null;
...@@ -408,8 +454,55 @@ export default { ...@@ -408,8 +454,55 @@ export default {
this.$message({ type: 'error', message: res.msg}); this.$message({ type: 'error', message: res.msg});
} }
}) })
},
// 样本类型弹窗信息获取
GetAllSample(){
GetAllSampleType().then(res=>{
if(res.status==='SUCCESS'){
this.AllSample=res.data
}
})
},
// 样本类型 选择样本类型
CurrentChange(val) {
this.currentRow = val
},
// 样本类型 确认选择
getCheckedSample() {
if(this.currentRow.length===0){
this.$message.warning('请选择样本类型')
return
}
this.ruleForm.sampleCode = this.currentRow.sampleCode
this.ruleForm.sampleType=this.currentRow.sampleName
this.sampleDialogFormVisible = false
},
// 样本类型 肿瘤类型 取消选择
setCurrent(row) {
if(this.sampleDialogFormVisible===true){
this.$refs.singleTable.setCurrentRow(row)
}else if(this.tumorDialogFormVisible === true){
this.$refs.singleTable2.setCurrentRow(row)
} }
}, },
// 肿瘤类型弹窗获取
GetAllTumors(){
GetAllTumorsType().then(res=>{
if(res.status==='SUCCESS'){
this.AllTumors=res.data
}
})
},
// 肿瘤类型 确认选择
getCheckedTumor() {
if(this.currentRow.length===0){
this.$message.warning('请选择肿瘤类型')
return
}
this.ruleForm.tumorsType=this.currentRow.tumorsName
this.tumorDialogFormVisible = false
},
},
directives: { directives: {
focus: { focus: {
inserted: function(el) { inserted: function(el) {
......
<template> <template>
<!-- 性别列 --> <!-- 性别列 -->
<div style="display: flex; justify-content: flex-start"> <div style="display: flex; justify-content: flex-start">
{{row.sex===0?"男":'女'}} {{row.sex===1?"男":'女'}}
</div> </div>
</template> </template>
......
<template>
<!-- 化疗结果 -->
<div style="background:#fff;border-radius:6px;box-shadow: 1px 1px 3px rgba(0,0,0,.2);">
<header>
<el-button type="primary" @click="downModel('Chemotherapy.xlsx')">导入模板下载</el-button>
<el-upload class="upload-demo" ref="fileExcel" action="/" accept=".xlsx, .xls" :before-upload="beforeUpload">
<el-button type="primary">导入</el-button>
</el-upload>
</header>
<main>
</main>
<footer>
</footer>
</div>
</template>
<script>
import {GetImportTemplatePath,ImportChemotherapy } from "../../api/api";
export default {
data() {
return {
tableData: [],
page:{
pageindex:1,
pagesize:10
},
total:0,
tableheight: window.innerHeight - 220,
}
},
created(){
// window.onresize = () => {
// this.tableheight=window.innerHeight - 220
// }
},
// destroyed(){
// window.onresize = null;
// },
mounted(){
this.getData()
},
methods: {
getData(){
},
// 导入
beforeUpload(file) {
let formData = new FormData();
formData.append("Excel", file);
this.$confirm("确认导入吗?", "提示", { type: "warning" }).then(() => {
ImportChemotherapy(formData).then(res => {
if (res.status === "SUCCESS") {
this.$message({ type: "success", message: "导入成功!" });
this.getData();
} else {
this.$message({ type: "error", message: res.msg });
}
});
})
.catch(() => { return;});
},
downModel(data){
let para={FileName:data}
GetImportTemplatePath(para).then(res=>{
if(res.status==='SUCCESS'){
window.open('http://'+res.data)
}else{
this.$message({ type: 'error', message: res.msg});
}
})
}
},
}
</script>
<style scoped>
header {
height: 40px;
padding:5px;
width: 100%;
}
.upload-demo{
display: inline-flex;
}
.upload-demo >>>.el-upload--text{
width: 100%;
height: 100%;
border: none;
margin: 0 5px;
border-radius: 3px;
}
</style>
<template>
<!-- 检测结果汇总 -->
<div style="background:#fff;border-radius:6px;box-shadow: 1px 1px 3px rgba(0,0,0,.2);">
<header>
<el-button type="primary" @click="downModel('Summary.xlsx')">导入模板下载</el-button>
<el-upload class="upload-demo" ref="fileExcel" action="/" accept=".xlsx, .xls" :before-upload="beforeUpload">
<el-button type="primary">导入</el-button>
</el-upload>
</header>
<main>
</main>
<footer>
</footer>
</div>
</template>
<script>
import {GetImportTemplatePath,ImportSummary } from "../../api/api";
export default {
data() {
return {
tableData: [],
page:{
pageindex:1,
pagesize:10
},
total:0,
tableheight: window.innerHeight - 220,
}
},
created(){
// window.onresize = () => {
// this.tableheight=window.innerHeight - 220
// }
},
// destroyed(){
// window.onresize = null;
// },
mounted(){
this.getData()
},
methods: {
getData(){
},
// 导入
beforeUpload(file) {
let formData = new FormData();
formData.append("Excel", file);
this.$confirm("确认导入吗?", "提示", { type: "warning" }).then(() => {
ImportSummary(formData).then(res => {
if (res.status === "SUCCESS") {
this.$message({ type: "success", message: "导入成功!" });
this.getData();
} else {
this.$message({ type: "error", message: res.msg });
}
});
})
.catch(() => { return;});
},
downModel(data){
let para={FileName:data}
GetImportTemplatePath(para).then(res=>{
if(res.status==='SUCCESS'){
window.open('http://'+res.data)
}else{
this.$message({ type: 'error', message: res.msg});
}
})
}
},
}
</script>
<style scoped>
header {
height: 40px;
padding:5px;
width: 100%;
}
.upload-demo{
display: inline-flex;
}
.upload-demo >>>.el-upload--text{
width: 100%;
height: 100%;
border: none;
margin: 0 5px;
border-radius: 3px;
}
</style>
<template> <template>
<div style="background:#fff;border-radius:6px;box-shadow: 1px 1px 3px rgba(0,0,0,.2);"> <div style="background:#fff;border-radius:6px;box-shadow: 1px 1px 3px rgba(0,0,0,.2);">
<div style="display:flex;position: absolute;top:300px;left:400px;"> <div style="display:flex;position: absolute;top:300px;left:400px;">
<section style="width:300px;height:30px;border:1px solid"></section> <el-input placeholder="点击选择,查找受试者" @focus="dialogFormVisible=true"><i slot="suffix" class="el-input__icon el-icon-more" @click="dialogFormVisible=true"></i></el-input>
<el-button style="margin-left:20px;" type="primary">导入报告</el-button> <el-button style="margin-left:10px;" type="primary">报告导出</el-button>
</div> </div>
<el-dialog title="选择受检者" :visible.sync="dialogFormVisible" width="80%">
<el-form ref="dataForm" :inline="true" class="demo-form-inline" label-width="80px" size="small" >
<el-form-item>
<el-button type="primary" @click="getChecked">确认选择</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="setCurrent()">取消选择</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="close">关闭</el-button>
</el-form-item>
<el-table ref="singleTable" :data="tableData" highlight-current-row @selection-change="handleSelectionChange" @row-click="rowclick">
<el-table-column type="selection"></el-table-column>
<el-table-column type="index" label="序号" align="center">
<template slot-scope="scope"><span>{{scope.$index+(page.pageindex - 1) * page.pagesize + 1}} </span></template>
</el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="idCard" label="身份证号" width="180"></el-table-column>
<el-table-column prop="sampleCode" label="样本编号" width="150"></el-table-column>
</el-table>
<div class="pagination">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :page-sizes="[10, 20, 50, 100]" :page-size="page.pagesize" layout="total,sizes, prev, pager, next" :total="total" background :current-page="page.pageindex">
</el-pagination>
</div>
</el-form>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { GetAllClientInfo,GetCurrentReport } from "../../api/api";
export default { export default {
data(){ data(){
return{ return{
page:{
pageindex:1,
pagesize:10
},
dialogFormVisible:false,
row:[],
tableData:[],
total:0
}
},
mounted(){
this.getData()
},
methods:{
getData(){
let para=this.page
GetAllClientInfo(para).then(res=>{
if(res.status==='SUCCESS'){
this.tableData=res.data.data
this.total=res.data.totalCount
}
})
},
//选中列表行
handleSelectionChange(val) {
this.row=val
},
// 确认选择
getChecked() {
if(this.row.length===0){
this.$message.warning('请选择需要导出的受检者信息')
return
}
this.setCurrent()
this.dialogFormVisible = false
this.export()
},
//点击行触发,选中或不选中复选框
rowclick(row) {
this.$refs.singleTable.toggleRowSelection(row)
},
handleCurrentChange(val) {
this.page.pageindex = val
this.getData()
},
handleSizeChange(val){
this.page.pagesize = val
this.getData()
},
// 取消选择
setCurrent(){
this.$refs.singleTable.clearSelection()
this.row=[]
},
// 关闭
close(){
this.dialogFormVisible=false
this.setCurrent()
},
// 报告导出
export(){
let para=[]
this.row.forEach(i=>{
para.push(i.clientInfoOID)
})
GetCurrentReport(para).then(res=>{
if(res.status==='SUCCESS'){
window.open(res.data)
}else{
this.$message.error(res.msg)
}
})
} }
} }
} }
......
...@@ -60,6 +60,16 @@ export default new Router({ ...@@ -60,6 +60,16 @@ export default new Router({
component: resolve => require(['../components/indicators/geneticRisk.vue'], resolve), component: resolve => require(['../components/indicators/geneticRisk.vue'], resolve),
meta: { title: '遗传风险' } meta: { title: '遗传风险' }
}, },
{
path: '/chemotherapyResults',
component: resolve => require(['../components/indicators/chemotherapyResults.vue'], resolve),
meta: { title: '化疗结果' }
},
{
path: '/testResultSummary',
component: resolve => require(['../components/indicators/testResultSummary.vue'], resolve),
meta: { title: '检测结果汇总' }
},
// -------------------------------监测指标导入------------------------------------------ // -------------------------------监测指标导入------------------------------------------
{ {
path: '/noticeOfInformation', path: '/noticeOfInformation',
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论