You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

265 lines
9.0 KiB

<template>
<div class="box" style="width: 100%">
<div style="width: 90%">
<el-table :data="tableData" border style="width: 100%" row-key="id" class="el-table__body-wrapper tbody"
height="200" @row-click="rowick" highlight-current-row>
<el-table-column prop="forSexId" label="性别" />
<el-table-column prop="ageLowerLimit" label="年龄上限" />
<el-table-column prop="ageUpperLimit" label="年龄下限" />
<el-table-column prop="referenceRangeValue" label="参考范围" />
<el-table-column prop="criticalRangeValue" label="警告范围" />
<el-table-column prop="lowerDiagnosisId" label="偏低诊断" />
<el-table-column prop="upperDiagnosisId" label="偏高诊断" />
<el-table-column label="操作" width="">
<template>
<el-tag class="move" style="cursor: move; margin-left: 15px" draggable="true">
<i class="el-icon-d-caret" style="width: 1rem; height: 1rem"></i>
</el-tag>
</template>
</el-table-column>
</el-table>
</div>
<!-- 按钮区域 -->
<div style="margin-left: 10px;width: 10%">
<div style=" margin-top: 20px">
<el-button type="success" @click="add">新增</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="edit">编辑</el-button>
</div>
<div style="margin-top: 10px">
<el-button type="danger" @click="del">删除</el-button>
</div>
</div>
<!-- 新增或者编辑弹框 -->
<el-dialog :title="id ? '编辑' : '新增'" :visible.sync="dialogVisible" width="70%" :append-to-body="true">
<el-form ref="form" :model="form" label-width="100px" :rules="rules">
<el-row>
<el-col :span="8">
<el-form-item label="性别" prop="forSexId">
<el-select v-model="form.forSexId" placeholder="请选择">
<el-option v-for="item in forSexId" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select> </el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="年龄下限" prop="ageLowerLimit">
<el-input v-model="form.ageLowerLimit" style="width: 100%"></el-input> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="年龄上限" prop="ageUpperLimit">
<el-input v-model="form.ageUpperLimit" style="width: 85%"></el-input> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="参考范围" prop="referenceRangeValue">
<el-input v-model="form.referenceRangeValue" style="width: 85%"></el-input> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="警告范围" prop="criticalRangeValue">
<el-input v-model="form.criticalRangeValue" style="width: 100%"></el-input> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="偏低诊断" prop="lowerDiagnosisId">
<el-select v-model="form.lowerDiagnosisId" placeholder="请选择">
<el-option v-for="item in lowerDiagnosisId" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select> </el-form-item></el-col>
<el-col :span="8">
<el-form-item label="偏高诊断" prop="upperDiagnosisId">
<el-select v-model="form.upperDiagnosisId" placeholder="请选择">
<el-option v-for="item in upperDiagnosisId" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select> </el-form-item></el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="onsbmint">确 定</el-button>
<el-button @click="dialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { mapState } from "vuex";
import { getapi, postapi, putapi,deletapi } from "@/api/api";
import { referencerangelist, getporjectlists } from "@/request/commonapi";
import { examinationgender } from "@/request/systemapi";
// import
export default {
props: ['itemId', 'ReferenceRangeTypeFlag'],
data() {
return {
rules: {
itemId: [{ required: true, message: "请选择项目", trigger: "blur" }],
forSexId: [{ required: true, message: "请选择性别", trigger: "blur" }],
ageLowerLimit: [
{ required: true, message: "请输入年龄下限", trigger: "blur" },
],
ageUpperLimit: [
{ required: true, message: "请输入年龄上限", trigger: "blur" },
],
referenceRangeValue: [
{ required: true, message: "请输入引用范围", trigger: "blur" },
],
criticalRangeValue: [
{ required: true, message: "请输入临界范围", trigger: "blur" },
],
lowerDiagnosisId: [
{ required: true, message: "请选择偏低诊断", trigger: "blur" },
],
upperDiagnosisId: [
{ required: true, message: "请选择偏高诊断", trigger: "blur" },
],
},
pages: {
SkipCount: 0,
MaxResultCount: 100,
// Sorting: "displayOrder desc",
},
dialogVisible: false,
title: 1,
form: {
itemId: "",
forSexId: "",
ageLowerLimit: "",
ageUpperLimit: "",
referenceRangeValue: "",
criticalRangeValue: "",
lowerDiagnosisId: "",
upperDiagnosisId: "",
referenceRangeTypeFlag: "1"
},
id: '', //新增/编辑 或删除的记录 id
forSexId: [], //性别
lowerDiagnosisId: [], //偏低诊断
upperDiagnosisId: [], //偏高诊断
initTableData: [],
tableData: [],
};
},
created() {
},
mounted() {
//console.log('@子节点', this.itemId, this.ReferenceRangeTypeFlag)
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
this.addtoedit()
},
computed: {
...mapState(['itemSet'])
},
methods: {
getlist(itemId, ReferenceRangeTypeFlag) {
//http://81.70.217.145:9529/api/app/reference-range/in-type/3a0bcedc-328c-9322-e75d-343c3ce557fb?ReferenceRangeTypeFlag=1
getapi(`/api/app/reference-range/in-type/${itemId}?ReferenceRangeTypeFlag=${ReferenceRangeTypeFlag}`).then((res) => {
this.tableData = res.data;
});
},
rowick(row) {
this.id = row.id
this.form = row
},
// 新增或者编辑需要的类别
addtoedit() {
//性别
examinationgender().then((res) => {
this.forSexId = res.data;
});
//诊断
postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
this.lowerDiagnosisId = res.data.items;
this.upperDiagnosisId = res.data.items;
});
},
add() {
this.id = ''
this.form = { itemId: this.itemId, referenceRangeTypeFlag: this.ReferenceRangeTypeFlag }
this.dialogVisible = true;
},
//编辑弹框
edit() {
if (!this.id) {
alert("请先选中要编辑的记录")
return
}
this.dialogVisible = true;
},
del() {
//this.$message.success("删除操作");
if (!this.id) {
alert("请先选中要删除的记录")
return
}
this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deletapi(`/api/app/reference-range/${this.id}`, this.form).then(res => {
this.$message.success('删除成功')
this.getlist(this.itemId, this.ReferenceRangeTypeFlag)
this.id = ''
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
//确定新增或者编辑
onsbmint() {
this.$refs['form'].validate((v) => {
if (v) {
if (!this.id) {
postapi("/api/app/reference-range", this.form).then((res) => {
this.$message.success("新增成功");
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
console.log('res',res)
this.id = res.data.id;
});
}
else {
putapi(`/api/app/reference-range/${this.id}`, this.form).then(res => {
this.$message.success('修改成功')
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
})
}
}
});
},
},
//监听事件
watch: {
//itemId','ReferenceRangeTypeFlag'
'itemId'(newVal, oldVal) {
if (newVal != oldVal && newVal != "") {
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
}
},
'ReferenceRangeTypeFlag'(newVal, oldVal) {
if (newVal != oldVal && newVal != "") {
this.getlist(this.itemId, this.ReferenceRangeTypeFlag);
}
},
},
};
</script>
<style scoped>
.box {
display: flex;
}
</style>