|
|
<template> <div class="box"> <div style="width: 90%"> <el-card style="height: 600px; width: 105%; border-radius: 15px" class="elcard" > <div class="publiccss">项目设置</div> <el-row style="margin-top: 20px; margin-left: 15px"> <el-col :span="4"> <el-autocomplete class="inline-input" v-model="pages.Filter" :fetch-suggestions="querySearch" placeholder="请输入内容" @select="handleSelect" > <template slot-scope="{ item }"> <div class="name" @click="selsearch(item.id, item.medicalConclusionTypeId)" > {{ item.displayName }} </div> </template></el-autocomplete > </el-col> <el-col :span="7" style="margin-left: 5%"> <el-col :span="6" style="margin-top: 10px; margin-left: 10px" >类别选择</el-col > <el-select filterable v-model="Selectvalue" placeholder="请选择" @change="isselctvalue" > <el-option v-for="item in Selectacategory" :key="item.id" :label="item.displayName" :value="item.id" > </el-option> </el-select> </el-col> </el-row> <div style="display: flex"> <div style="width: 15%; margin-top: 20px"> <el-tree :data="itemTypeId" :props="treeprops" @node-click="treeclick" ></el-tree> </div> <div style="width: 85%; margin-top: 15px"> <el-table :data="tableData" style="width: 100%" row-key="id" height="500" class="el-table__body-wrapper tbody" highlight-current-row @row-click="rowick" ref="tableData" > <el-table-column prop="id" label="编号" width="300"> </el-table-column> <el-table-column prop="displayName" label="名称" width=""> </el-table-column> <el-table-column prop="creatorName" label="创建者" width=""> </el-table-column> <el-table-column prop="creationTime" label="创建时间" width="200"> <template slot-scope="scope"> {{ scope.row.creationTime | dateFormat }} </template> </el-table-column> <el-table-column prop="lastModifierName" label="修改者" width=""> </el-table-column> <el-table-column prop="lastModificationTime" label="修改时间" width="200" > <template slot-scope="scope"> {{ scope.row.lastModificationTime | dateFormat }} </template> </el-table-column> <el-table-column label="结果类别" prop="resultTemplateTypeFlag" ></el-table-column> <el-table-column label="操作"> <template> <el-tag class="move" style=" cursor: move; margin-left: 15px; background-color: rgb(245, 245, 245); border: none; " draggable="true" > <i class="el-icon-d-caret" style=" width: 1rem; height: 1rem; color: rgb(113, 113, 113); " ></i> </el-tag> </template> </el-table-column> </el-table> </div> </div> </el-card> </div> <el-dialog :title="title == 1 ? '新增' : '编辑'" :visible.sync="dialogVisible" width="70%" :close-on-click-modal="false" > <el-form ref="form" :model="form" label-width="110px" :rules="rules"> <el-row> <el-col :span="8"> <el-form-item label="名称" prop="displayName"> <el-input v-model="form.displayName" ref="refinput"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="英文缩写" prop="englishShortName"> <el-input v-model="form.englishShortName"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="项目类别" prop="itemTypeId"> <!-- <el-cascader v-model="form.itemTypeId" :options="itemTypeId" :props="props" :show-all-levels="false" > </el-cascader> --> <el-cascader v-model="form.itemTypeId" :options="itemTypeId" @change="onchange" :props="{ value: 'id', label: 'displayName', children: 'treeChildren', checkStrictly: true, }" ></el-cascader> <!-- <el-select v-model="form.itemTypeId" placeholder="请选择" style="width: 100%" > <el-option v-for="item in itemTypeId" :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="price"> <el-input v-model="form.price"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="价表项目编码" prop="priceItemId"> <el-select v-model="form.priceItemId" placeholder="请选择" style="width: 100%" > <el-option v-for="item in priceItemId" :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=""> <el-select v-model="form.unitId" placeholder="请选择" style="width: 100%" > <el-option v-for="item in unitId" :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="defaultResult"> <!-- <el-input v-model="form.defaultResult"></el-input> --> <el-select v-model="form.defaultResult" placeholder="请选择" style="width: 100%" > <el-option v-for="item in defaultResult" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="参考范围类型" prop="referenceRangeTypeFlag"> <el-select v-model="form.referenceRangeTypeFlag" placeholder="请选择" style="width: 100%" > <el-option v-for="item in referenceRangeTypeFlag" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> <!-- <el-input v-model="form.referenceRangeTypeFlag"></el-input> --> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="生成小结" prop="isProduceSummary"> <el-input v-model="form.isProduceSummary"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="名称进入小结" prop="isNameIntoSummary"> <el-select v-model="form.isNameIntoSummary" placeholder="请选择" style="width: 100%" > <el-option v-for="item in isNameIntoSummary" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="启用诊断函数" prop="isDiagnosisFunction"> <el-select @change="enablediagnostics" v-model="form.isDiagnosisFunction" placeholder="请选择" style="width: 100%" > <el-option v-for="item in isDiagnosisFunction" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="诊断函数" prop=""> <el-input v-model="form.diagnosisFunction" :disabled="disableddiagnosisFunction" ></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="是计算项目" prop="isCalculationItem"> <el-select v-model="form.isCalculationItem" placeholder="请选择" style="width: 100%" > <el-option v-for="item in isCalculationItem" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="计算函数" prop=""> <el-input v-model="form.calculationFunction"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="继续处理" prop="isContinueProcess"> <el-select v-model="form.isContinueProcess" placeholder="请选择" style="width: 100%" > <el-option v-for="item in isContinueProcess" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="项目结果模板" prop="resultTemplateTypeFlag"> <el-input v-model="form.resultTemplateTypeFlag" >resulttemp</el-input > <!-- <el-select v-model="form.resultTemplateTypeFlag" placeholder="请选择" style="width: 100%" > <el-option v-for="item in resulttemp" :key="item.id" :label="item.result" :value="item.id" > </el-option> </el-select> --> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="输入结果校验" prop=""> <el-input v-model="form.inputCheck"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="启用" prop="isActive"> <el-select v-model="form.isActive" placeholder="请选择" style="width: 100%" > <el-option v-for="item in isActive" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> </el-row> <!-- --> <el-divider></el-divider> <el-row> <el-col :span="5"> <el-form-item label="创建者"> <el-input v-model="form.creatorName" disabled></el-input> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="创建时间" style="margin-left: -5%"> <el-input :value="form.creationTime | dateFormat" disabled style="width: 90%" ></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="修改者" style="margin-left: -25%"> <el-input v-model="form.creatorName" disabled></el-input> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="修改时间" style="margin-left: -5%"> <el-input :value="form.lastModificationTime | dateFormat" disabled style="width: 90%" ></el-input> </el-form-item> </el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取 消</el-button> <el-button type="primary" @click="Onsubmit">确 定</el-button> </span> </el-dialog> <!-- 按钮区域 --> <div style="margin-left: 6%; margin-top: 7%"> <el-button type="" @click="add" class="commonbutton">新增</el-button> <div> <el-button type="" @click="editpopup" style="margin-left: 0; margin-top: 10px" class="commonbutton" >编辑</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="delsrts" class="commonbutton" >删除</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="topping" class="commonbutton" >置顶</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="toppings" class="commonbutton" >置底</el-button > </div> <div style="margin-top: 10px"> <el-button type="" :disabled="isshow" @click="assertion" class="commonbutton" >排序</el-button > </div> <div style="margin-top: 5px"> <el-button type="" :disabled="isshow" @click="cancellation" class="commonbutton" >取消</el-button > </div> <div style="margin-top: 10px"> <el-button type="" size="" @click="resulttemplate" style="height: 35px" class="commonbutton" >结果模板</el-button > </div> <div style="margin-top: 10px"> <el-button type="" size="mini" @click="referencerange" class="commonbutton" style="width: 100px" >参考范围</el-button > </div> </div> <!-- 结果模板弹框 --> <el-dialog title="结果模板" :visible.sync="rurestdialogVisible" width="80%" :close-on-click-modal="false" > <div style="display: flex"> <div style="width: 95%"> <el-table border="" :data="reusttableData" @row-click="reustclick" highlight-current-row > <el-table-column label="编号" prop="id"></el-table-column> <el-table-column label="项目编号" prop="itemId"></el-table-column> <el-table-column label="创建时间" width="200"> <template slot-scope="scope"> {{ scope.row.creationTime | dateFormat }} </template> </el-table-column> <el-table-column label="修改时间" width="200"> <template slot-scope="scope"> {{ scope.row.lastModificationTime | dateFormat }} </template> </el-table-column> <el-table-column label="结果" prop="result"></el-table-column> <el-table-column label="项目结果"> <template slot-scope="scope"> {{ scope.row.id }} </template> </el-table-column> <el-table-column label="诊断"> <template> </template> </el-table-column> </el-table> </div> <div style="margin-top: 5px; margin-left: 15px"> <el-button type="primary" @click="increase">添加1</el-button> <div style="margin-top: 5px"> <el-button type="primary" @click="resultediting">编辑</el-button> </div> <div style="margin-top: 5px"> <el-button type="primary" @click="delemtdelite">删除</el-button> </div> <!-- <div style="margin-top: 5px"> <el-button type="primary" @click="templatecategory" >模板类别</el-button > </div> --> <div style="margin-top: 5px"> <el-button type="primary" @click="diagnosticmatching" >诊断匹配</el-button > </div> </div> </div> <span slot="footer" class="dialog-footer"> <el-button @click="rurestdialogVisible = false">取 消</el-button> <el-button type="primary" @click="rurestdialogVisible = false" >确 定</el-button > </span> </el-dialog> <!-- 结果模板添加或者修改弹框 --> <el-dialog :title="ruesttiele == 1 ? '新增' : '修改'" :visible.sync="ruesttieledialogVisible" width="80%" :close-on-click-modal="false" > <el-form :model="rusetform" ref="rusetform" label-width="100px"> <el-row> <!-- <el-col :span="8"> <el-form-item label="项目"> <el-select v-model="rusetform.itemId" placeholder="请选择"> <el-option v-for="item in itemId" :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="结果"> <el-input v-model="rusetform.result"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="诊断编号"> <el-select v-model="rusetform.diagnosisId" placeholder="请选择"> <el-option v-for="item in diagnosisId" :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="小结名称"> <el-select v-model="rusetform.isNameIntoSummary" placeholder="请选择" > <el-option v-for="item in isNameIntoSummary" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="进入小结"> <el-select v-model="rusetform.isResultIntoSummary" placeholder="请选择" > <el-option v-for="item in isResultIntoSummary" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="结果状态"> <el-select v-model="rusetform.resultStatusId" placeholder="请选择" > <el-option v-for="item in resultStatusId" :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 @click="ruesttieledialogVisible = false">取 消</el-button> <el-button type="primary" @click="rusteronsubmit">确 定</el-button> </span> </el-dialog> <!-- 参考范围弹框 --> <el-dialog title="参考范围" :visible.sync="referencerangedialogVisible" width="80%" :close-on-click-modal="false" > <el-row> <el-col :span="8"> <span>参考范围类型</span> <el-select v-model="referencerangevalue" filterable placeholder="请选择" @change="selecttype" > <el-option v-for="item in referencerangedata" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-col> </el-row> <!-- //无参考范围 2223456-->
<el-card v-if="referencerangevalue == 0" style="margin-top: 20px" ></el-card> <!-- 数字型参考范围 --> <div style="display: flex" v-if="referencerangevalue == 1"> <ReferenceRange :itemId="form.id" ReferenceRangeTypeFlag="1" /> </div> <!-- 字符型参考范围 --> <div v-if="referencerangevalue == 2"> <div style="margin: 20px 0; display: flex"> <div style="width: 90%"> <el-input type="textarea" placeholder="请输入内容" v-model="fssubdex" maxlength="300" show-word-limit style="height: 50px" > </el-input> </div> <div style="width: 10%"> <div style="margin-top: 5px"> <el-button type="primary" size="mini" @click="diagnosticsettings" style="width: 70px; height: 50px; margin-left: 10px" >诊断设置</el-button > </div> <!-- <div style="margin-top: 10px; margin-left: 10px"> <el-button type="primary" @click="adddiagnosis" >增加诊断</el-button > </div> --> </div> </div> </div> <!-- 性激素参考范围 --> <div v-if="referencerangevalue == 2"></div> <span slot="footer" class="dialog-footer" v-if="referencerangevalue !== '1'" > <el-button @click="referencerangedialogVisible = false" >取 消</el-button > <el-button type="primary" @click="determinetype">确 定</el-button> </span> </el-dialog> <!-- 项目结果模板弹框 --> <el-dialog title="结果模板" :visible.sync="projectdialogVisible" width="80%" :close-on-click-modal="false" > <div style="display: flex"> <div style="width: 95%"> <el-table :data="projectdata"> <el-table-column label="编号" prop="id"> </el-table-column> <el-table-column label="结果" prop="result"> </el-table-column> <el-table-column label="修改者" prop="lastModifierName"> </el-table-column> <el-table-column label="修改时间" prop="lastModificationTime"> <template slot-scope="scope"> {{ scope.row.lastModificationTime | dateFormat }} </template> </el-table-column> </el-table> </div> <!-- 结果模板 --> <div style="margin-left: 10px; margin-top: 5%"> <el-button type="primary" @click="resultaddition">添加</el-button> </div> </div> <span slot="footer" class="dialog-footer"> <el-button @click="projectdialogVisible = false">取 消</el-button> <el-button type="primary" @click="projectdialogVisible = false" >确 定</el-button > </span> </el-dialog> <!--诊断匹配弹框--> <el-dialog title="诊断匹配" :visible.sync="diagnosdialogVisible" width="80%" :close-on-click-modal="false" > <div style="display: flex"> <div style="width: 95%"> <el-table :data="diagnosticdata"> <el-table-column label="编号" prop="id"></el-table-column> <el-table-column label="名称" prop="displayName"></el-table-column> <el-table-column label="创建者" prop="creatorName" ></el-table-column> <el-table-column label="创建时间" prop="creationTime"> <template slot-scope="scope"> {{ scope.row.creationTime | dateFormat }} </template> </el-table-column> <el-table-column label="修改者" prop="lastModifierName" ></el-table-column> <el-table-column label="修改时间" prop="lastModificationTime"> <template slot-scope="scope"> {{ scope.row.lastModificationTime | dateFormat }} </template> </el-table-column> </el-table> </div> <div style="margin-left: 10px; margin-top: 4%"> <el-button type="primary" @click="adddiagnosis">增加诊断</el-button> </div> </div> <span slot="footer" class="dialog-footer"> <el-button @click="diagnosdialogVisible = false">取 消</el-button> <el-button type="primary" @click="diagnosdialogVisible = false" >确 定</el-button > </span> </el-dialog> <!-- 增加诊断弹框 --> <el-dialog title="诊断编辑" :visible.sync="diagnosticediting" width="80%" :close-on-click-modal="false" > <el-form :model="editdigoisceditingform"> <el-row> <el-col :span="8"> <el-form-item label="名称" label-width="100px"> <el-input v-model="editdigoisceditingform.displayName"></el-input> </el-form-item> </el-col> <el-col :span="7" style="margin-left: 20px"> <el-form-item label="项目类别"> <el-cascader v-model="editdigoisceditingform.itemTypeId" :options="itemTypeId" :show-all-levels="false" :props="props" ></el-cascader> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="建议名称" label-width="100px"> <el-input v-model="editdigoisceditingform.suggestionName" ></el-input> </el-form-item> </el-col> <el-col :span="8" style="margin-left: 4%"> <el-form-item label="是疾病"> <el-select v-model="editdigoisceditingform.isIll" placeholder="请选择" > <el-option v-for="item in isIll" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="总监模板"> <el-select v-model="editdigoisceditingform.isSummaryTemplate" placeholder="请选择" > <el-option v-for="item in isSummaryTemplate" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="适用性别"> <el-select v-model="editdigoisceditingform.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="诊断级别"> <el-select v-model="editdigoisceditingform.diagnosisLevelId" placeholder="请选择" > <el-option v-for="item in diagnosisLevelId" :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 @click="diagnosticediting = false">取 消</el-button> <el-button type="primary" @click="diagnosticsadd">确 定</el-button> </span> </el-dialog> <!--诊断设置弹框 --> <el-dialog title="诊断建议设置" :visible.sync="diagnostisbox" width="80%" :close-on-click-modal="false" > <div style="display: flex"> <div style="width: 95%"> <el-card> <el-row> <el-col :span="8"> <el-select v-model="value" placeholder="请选择"> <el-option v-for="item in itemTypeId" :key="item.id" :label="item.displayName" :value="item.id" > </el-option> </el-select> </el-col> <el-col :span="8"> 2122 </el-col> </el-row> <!-- table部分 --> <el-row> </el-row> </el-card> </div> </div> <span slot="footer" class="dialog-footer"> <el-button @click="diagnostisbox = false">取 消</el-button> <el-button type="primary" @click="diagnostisbox = false" >确 定</el-button > </span> </el-dialog>
<!-- --> </div></template><script>import { yzstr } from "@/utlis/validate";import { getporjectlists, projectlist, addproject, priceitemlist, posjrctid, projectedit, projectdeleft, projttitem, projectdreog,} from "@/request/commonapi";import { unitlist } from "@/request/systemapi";import Sortable from "sortablejs";import { getapi, postapi, putapi, deletapi } from "@/api/api";
import ReferenceRange from "../../components/itemSet/ReferenceRange.vue";export default { components: { ReferenceRange, },
data() { return { value: "", diagnostisbox: false, //诊断设置弹框的方法
// tabelform: {
// ageLowerLimit: "input无法输入",
// },
sexname: [], sexid: [], treeprops: { label: "displayName", value: "id", children: "treeChildren", }, //左侧树形结构需要的数据
editdigoisceditingform: { displayName: "", itemTypeId: "", suggestionName: "", isIll: "", isSummaryTemplate: "", forSexId: "", diagnosisLevelId: "", }, //诊断编辑需要绑定的对象诊断所需要的编辑
diagnosticediting: false, //诊断编辑
diagnosdialogVisible: false, //匹配诊断
diagnosticdata: [], //匹配诊断
projectdata: [], //结果模板
projectdialogVisible: false, itemId: [], //项目id
diagnosisId: [], //诊断
rusetform: { itemId: "", result: "", diagnosisId: "", isNameIntoSummary: "", isResultIntoSummary: "", resultStatusId: "", simpleCode: "", }, //项目结果模板需要的数据
resultStatusId: [], //结果状态
isNameIntoSummary: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //小结名称
isResultIntoSummary: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //进入小结
ruesttiele: 1, ruesttieledialogVisible: false, referencerangedata: [ { value: "0", label: "无参考范围", }, { value: "1", label: "数字型参考范围", }, { value: "2", label: "字符型参考范围", }, { value: "3", label: "性激素参考范围", }, ], //参考范围下拉框
referencerangevalue: "0", referencerangedialogVisible: false, //参考范围弹框
Selectvalue: "", Selectacategory: [], rurestdialogVisible: false, isshow: true, reusttableData: [], tableData: [], initTableData: [], pages: { Filter: "", Sorting: "", SkipCount: 0, MaxResultCount: 100, }, title: 1, form: { displayName: "", englishShortName: "", itemTypeId: "", price: "", priceItemId: "", unitId: "", defaultResult: "", referenceRangeTypeFlag: "", isProduceSummary: "", isNameIntoSummary: "", isDiagnosisFunction: "", diagnosisFunction: "", isCalculationItem: "", calculationFunction: "", isContinueProcess: "", resultTemplateTypeFlag: "", inputCheck: "", isActive: "", },
referenceRangeTypeFlag: [ { value: "0", label: "无参考范围", }, { value: "1", label: "数字型参考范围", }, { value: "2", label: "字符型参考范围", }, { value: "3", label: "性激素参考范围", }, ], isProduceSummary: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //生成小结
isNameIntoSummary: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //名称进入小结
isDiagnosisFunction: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //启用诊断函数
isCalculationItem: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //是计算项目
isContinueProcess: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //是继续处理
inputCheck: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //输入结果校验公式
isActive: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //启用
dialogVisible: false, rules: { displayName: [ { required: true, message: "请输入名称", trigger: "blur" }, ], englishShortName: [ { required: true, message: "请输入英文缩写", trigger: "blur" }, ], itemTypeId: [ { required: true, message: "请输入项目类别", trigger: "blur" }, ], price: [{ required: true, message: "请输入价格", trigger: "blur" }], priceItemId: [ { required: true, message: "请输入价表项目编码", trigger: "blur" }, ], unitId: [{ required: true, message: "请输入单位", trigger: "blur" }], defaultResult: [ { required: true, message: "请输入默认结果", trigger: "blur" }, ], referenceRangeTypeFlag: [ { required: true, message: "请输入参考范围类别", trigger: "blur" }, ], isProduceSummary: [ { required: true, message: "请选择是生成小结", trigger: "blur" }, ], isNameIntoSummary: [ { required: true, message: "请输择称进入小结", trigger: "blur" }, ], isDiagnosisFunction: [ { required: true, message: "请选择启用诊断函数", trigger: "blur" }, ], diagnosisFunction: [ { required: true, message: "请输入诊断函数", trigger: "blur" }, ], isCalculationItem: [ { required: true, message: "请选择计算项目", trigger: "blur" }, ], calculationFunction: [ { required: true, message: "请输入计算函数", trigger: "blur" }, ], isContinueProcess: [ { required: true, message: "请选择继续处理", trigger: "blur" }, ], resultTemplateTypeFlag: [ { required: true, message: "请输入结果模板类别标志", trigger: "blur", }, ], inputCheck: [ { required: true, message: "请选择结果校验公式", trigger: "blur" }, ], isActive: [{ required: true, message: "请选择启用", trigger: "blur" }], }, unitId: [], //单位Id
priceItemId: [], //价格id1
result: [], //结果
forSexId: [], //性别
itemTypeId: [], //项目类别
diagnosisLevelId: [], //诊断级别
isIll: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //是疾病
isSummaryTemplate: [ { value: "Y", label: "是", }, { value: "N", label: "否", }, ], //总监模板
props: { label: "displayName", value: "id", children: "treeChildren", }, //左侧树形结构
newssdate: [ { id: "1", name: "", }, { id: "2", name: "", }, ], defaultResult: [ { value: "1", label: "未见异常", }, { value: "2", label: "正常", }, { value: "3", label: "阴性", }, { value: "4", label: "无", }, ], //默认结果
ssdate: [], fssubdex: "", resultitemtype: [], //项目类别
scopediagnostic: [], //诊断范围下拉框
reference: [], //参考范围
resulttemp: [], // 结果模板
disableddiagnosisFunction: false, curRow: {}, }; }, created() { this.getlist(); this.getmedicalconclusionlist(); }, mounted() { this.rowDrop(); this.typeid(); }, methods: { //启用诊断函数
enablediagnostics(v) { console.log(v); if (v == "N") { this.disableddiagnosisFunction = true; } else { this.disableddiagnosisFunction = false; } }, //参考范围确定类型
determinetype() { if (this.referencerangevalue == 2) { console.log(this.form.id); let obj = { itemId: this.form.id, referenceRangeValue: this.fssubdex, referenceRangeTypeFlag: this.referencerangevalue, }; postapi("/api/app/reference-range/text", obj).then((res) => { this.$message.success("新增成功"); this.fssubdex = res.data.referenceRangeValue; this.diagnosdialogVisible = false; }); } }, async blurInput(id, name, value) { var isdate = false; //是否存在
for (var i = 0; i < this.newssdate.length; i++) { if (this.newssdate[i].id == id) { isdate = true; console.log("888"); console.log(this.newssdate[i][name]);
this.newssdate[i][name] = value; } }
if (!isdate) { for (var j = 0; j < this.ssdate.length; j++) { if (this.ssdate[j].id == id) { this.newssdate.push(this.ssdate[j]); } } } //
}, treeclick(data) { getapi(`/api/app/item/in-item-type/${data.id}`).then((res) => { this.tableData = res.data; console.log(res.data, "ress"); // this.getlist();
}); }, typeid() { projectlist().then((res) => { this.itemTypeId = res.data; }); }, //诊断新增获取数据
diagnosticsadd() { postapi("/api/app/diagnosis", this.editdigoisceditingform).then((res) => { this.$message.success("添加成功"); this.diagnosticmatching(); }); }, //增加诊断需要的Id
diageoisaddId() { //项目类别id
getapi("/api/app/item-type").then((res) => { this.itemTypeId = res.data.items; }); //性别
getapi("/api/app/for-sex").then((res) => { this.forSexId = res.data; }); //诊断级别
getapi("/api/app/diagnosis-level").then((res) => { this.diagnosisLevelId = res.data.items; }); }, // 增加诊断弹框
adddiagnosis() { console.log(1); console.log("诊断的方法"); this.diagnosticediting = true; this.diageoisaddId(); }, //诊断匹配弹框获取诊断数据
//改成直接跳转到诊断页面
diagnosticmatching() { // this.diagnosdialogVisible = true;
// console.log(this.diagnosdialogVisible);
// postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
// this.diagnosticdata = res.data.items;
// console.log(res);
// });
this.$router.push({ path: "/diagnosis" }); }, //结果模板添加
resultaddition() {}, //模板类别弹框
// templatecategory() {
// getapi("/api/app/item-result-template").then((res) => {
// this.projectdata = res.data.items;
// console.log(res);
// });
// this.projectdialogVisible = true;
// },
//项目模板置底
bottoming() { if (this.rusetform.id == undefined) { this.$message.warning("请选择操作的数据"); } else { putapi( `/api/app/itemresulttemplate/updatemanysort?id=${this.rusetform.id}&SortType=2` ).then((res) => { this.$message.success("操作成功"); this.resultlist(); }); } }, //项目模板置顶
toppingqq() { console.log(this.rusetform.id); if (this.rusetform.id == undefined) { this.$message.warning("请选择操作的数据"); } else { putapi( `/api/app/itemresulttemplate/updatemanysort?id=${this.rusetform.id}&SortType=1` ).then((res) => { this.$message.success("操作成功"); this.resultlist(); }); } }, //结果模板删除
delemtdelite() { if (this.rusetform.id == undefined) { this.$message.warning("请选择操作的数据"); } else { deletapi(`/api/app/item-result-template/${this.rusetform.id}`).then( (res) => { this.$message.success("删除成功"); this.resultlist(); } ); } }, reustclick(row) { // this.rusetform = row;
getapi(`/api/app/item-result-template/${row.id}`).then((res) => { this.rusetform = res.data; }); console.log(row); }, //项目结果模板新增弹框
resultediting() { if (this.rusetform.id == undefined) { this.$message.warning("请选择操作的数据"); } else { this.addoredit(); this.ruesttiele = 2; this.ruesttieledialogVisible = true; } }, //结果模板新增或者修改
rusteronsubmit() { if (this.ruesttiele == 1) { postapi(`/api/app/item-result-template`, this.rusetform).then((res) => { this.$message.success("新增成功"); this.ruesttieledialogVisible = false; this.resultlist(); }); } else if (this.ruesttiele == 2) { putapi( `/api/app/item-result-template/${this.rusetform.id}`, this.rusetform ).then((res) => { this.$message.success("修改成功"); this.ruesttieledialogVisible = false; this.resultlist(); }); } }, //诊断设置弹框新增
diagnosticsettings() { // this.diagnostisbox = true;
// console.log("1");
this.$router.push({ path: "/diagnosis" }); }, digitaladdion() { // this.referencerangedata.push({
// gender: "全部",
// agewise: "200",
// underage: "下",
// onreference: "0",
// underreference: "上",
// });
}, //参考范围下拉选择
selecttype(v) { console.log(v); this.referencerangevalue = v; if (v == 1) { getapi("/api/app/sex").then((res) => { console.log(res); this.sexid = res.data; }); postapi("/api/app/diagnosis/getlistinfilter").then((res) => { this.scopediagnostic = res.data.items; console.log(res); }); } }, //参考范围
referencerange() { console.log("我是参考范围"); if (this.form.id == undefined) { this.$message.warning("请选择操作的数据"); } else { this.referencerangedialogVisible = true; } }, //结果模板添加或者修改需要的列
addoredit() { getapi("/api/app/item/in-filter").then((res) => { this.itemId = res.data.items; }); getapi("/api/app/result-status").then((res) => { // this.result = res.data.items;
this.resultStatusId = res.data.items; }); postapi("/api/app/diagnosis/getlistinfilter").then((res) => { console.log(res); this.diagnosisId = res.data.items; }); }, //结果模板添加
increase() { this.addoredit(); this.ruesttiele = 1; this.rusetform.itemId = this.form.id; console.log(this.rusetform.id); this.ruesttieledialogVisible = true; // this.rusetform = {};
}, //获取项目类别列表
getmedicalconclusionlist() { getapi("/api/app/item-type").then((res) => { this.Selectacategory = res.data.items; console.log(res, "11"); }); }, onchange(id) { // this.form.customerOrgId = id;
// console.log(id);
// this.form.customerOrgId=this.form.customerOrgId[0]
this.form.itemTypeId.forEach((item) => { // console.log(item);
this.form.itemTypeId = item; }); console.log(this.form.customerOrgId); }, gettypelist(listdata) { listdata.forEach((items) => { if (items.treeChildren.length > 0) { this.gettypelist(items.treeChildren); } else { items.treeChildren = undefined; } }); }, isselctvalue(v) { this.pages.TypeId = v; console.log(v); console.log(this.pages.TypeId); this.getlist(); }, handleSelect(item) { this.pages.Filter = item.displayName; this.item = item; this.formid = item.id; console.log(this.item); //console.log(item);
// quersmedicalid(item.id).then((res) => {
// console.log(res);
// this.form = res.data;
// });
}, getlistM(rowsid) { getporjectlists(this.pages).then((res) => { console.log("数据", res); this.initTableData = [...res.data.items]; this.tableData = res.data.items; if (rowsid != null && rowsid != "") { var row = this.tableData.filter((item) => item.id == rowsid); this.$refs.tableData.setCurrentRow(row[0]); getapi(`/api/app/item/${rowsid}`).then((res) => { this.form = res.data; }); } }); }, selsearch(id, typeid) { this.Selectvalue = typeid; this.pages.TypeId = typeid; this.getlistM(id); }, createFilter(queryString) { return (tableData) => { return ( tableData.displayName .toLowerCase() .indexOf(queryString.toLowerCase()) != -1 ); }; }, querySearch(queryString, cb) { var tableData = this.tableData; var tableDatas = queryString ? tableData.filter(this.createFilter(queryString)) : tableData; // 调用 callback 返回建议列表的数据
cb(tableDatas); }, resultlist() { getapi("/api/app/item-result-template").then((res) => { this.reusttableData = res.data.items;
console.log(res); }); }, resulttemplate() { if (this.form.id == undefined) { this.$message.warning("请选择操作的数据"); } else { this.rurestdialogVisible = true; getapi(`/api/app/item-result-template/in-item-id/${this.form.id}`).then( (res) => { this.reusttableData = res.data; console.log("2222222222222222"); console.log(res); } ); //// 获取项目类别
getapi("/api/app/item-type/by-code-all").then((res) => { this.resultitemtype = res.data; console.log(res); }); } }, //取消排序
cancellation() { this.$message.info("取消操作"); this.isshow = true; this.getlist(); }, //确定拖拽
assertion() { const result = []; this.tableData.forEach((item, index) => { // index 从0开始的, displayOrder从大到小排
console.log(item.id); // const currentDisplayOrder = this.tableData.length -1
const currentDisplayOrder = this.initTableData[index].displayOrder; if (item.displayOrder != currentDisplayOrder) { // 如果它的displayOrder和它当前所在的位置不同代表挪动过位置
result.push({ id: item.id, displayOrder: currentDisplayOrder }); } }); projectdreog({ itemList: result }).then((res) => { this.$message.success("操作成功"); this.isshow = true; this.getlist(); }); }, //初始化
rowDrop() { this.$nextTick(() => { const tbody = document.querySelector(".el-table__body-wrapper tbody"); const _this = this; Sortable.create(tbody, { handle: ".move", animation: 300, onEnd({ newIndex, oldIndex }) { _this.isshow = false; const currRow = _this.tableData.splice(oldIndex, 1)[0]; _this.tableData.splice(newIndex, 0, currRow); _this.tableData.map((item, index) => { if (index == newIndex && index == oldIndex) { // console.log(item, "新数据");
} else if (index == oldIndex) { } else if (index == newIndex) { } }); console.log(_this.tableData.map((item) => item.displayOrder)); }, }); }); }, //置低
toppings() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.success("请点击选择操作的数据"); } else { projttitem(this.form.id, 2).then((res) => { this.$message.success("操作成功"); this.getlist(); }); } }, //置顶
topping() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请点击选择操作的数据"); } else { projttitem(this.form.id, 1).then((res) => { this.$message.success("操作成功"); this.getlist(); }); } }, //删除
delsrts() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请选择删除的数据"); } else { this.$confirm("是否确认删除,是否继续?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(() => { projectdeleft(this.form.id).then((res) => { this.$message.success("删除成功"); this.getlist(); this.form = {}; }); }) .catch(() => {}); } }, //点击列表通过id查询
rowick(row) { posjrctid(row.id).then((res) => { this.curRow = { ...res.data }; // console.log(res);
// this.form = res.data;
}); console.log(row); }, //编辑弹框
editpopup() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请选择操作的数据"); } else { this.form.price = Number(this.form.price); this.addorgropdata(); this.title = 2; this.dialogVisible = true; posjrctid(this.form.id).then((res) => { console.log(res); this.form = res.data; }); } }, //确定新增或者编辑
Onsubmit() { this.$refs.form.validate((v) => { if (v) { if (this.title == 1) { this.form.price = Number(this.form.price); addproject(this.form).then((res) => { if (res.code == 1) { this.$message.success("新增成功222"); this.getlist(); this.dialogVisible = false; } }); } else if (this.title == 2) { projectedit(this.form.id, this.form).then((res) => { this.$message.success("修改成功"); this.getlist(); this.dialogVisible = false; }); } } }); // addproject(this.form)
}, //新增弹框
add() { this.form.price = Number(this.form.price); this.title = 1; this.dialogVisible = true; this.form = {}; this.$nextTick(() => { this.$refs.refinput.focus(); }); this.addorgropdata(); }, //新增或者编辑弹框需要的下拉框接口数据
addorgropdata() { //获取项目id
projectlist().then((res) => { this.itemTypeId = res.data; this.tcdate(this.itemTypeId); }); //获取单位
unitlist().then((res) => { this.unitId = res.data.items; }); //获取价格Id
priceitemlist().then((res) => { this.priceItemId = res.data.items; }); //参考范围
getapi("/api/app/reference-range").then((res) => { this.reference = res.data.items; }); //结果模板
getapi("/api/app/item-result-template").then((res) => { this.resulttemp = res.data.items; console.log(res, "结果模板"); }); }, getlist() { this.getlistM(); // getporjectlists(this.pages).then((res) => {
// this.initTableData = [...res.data.items];
// this.tableData = res.data.items;
// });
}, tcdate(date) { for (var i = 0; i < date.length; i++) { if (date[i].treeChildren.length == 0) { date[i].treeChildren = undefined; } else { this.tcdate(date[i].treeChildren); } } },
///
},};</script><style scoped>::v-deep .el-table__header th { /* font-size: px; */ background-color: rgb(245, 245, 245); /* 设置表头背景颜色 */ color: rgb(113, 113, 113); /* 设置表头文字颜色 */}.box { display: flex;
width: 100%;}</style>
|