123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420 |
- <template>
- <div>
- <crumbs
- :title="
- type === 'success'
- ? `${titleName}-通用规则测试-成功条数`
- : `${titleName}-通用规则测试-失败条数`
- "
- class="topBack"
- :param="$route.params"
- linkTo="AutoKnowledgeMapRuleTest"
- >
- <el-form :inline="true" class="demo-form-inline">
- <el-form-item label="规则术语类型:">
- <el-select v-model="autoType" clearable filterable placeholder="请选择" size="mini">
- <el-option
- v-for="item in typeAutoList"
- :key="item.libType"
- :label="item.libTypeName"
- :value="item.libType"
- ></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="规则医学标准术语:">
- <el-input size="mini" v-model="autoRule" placeholder="请输入"></el-input>
- </el-form-item>
- <el-form-item label="基础规则术语类型:">
- <el-select v-model="baseType" clearable filterable placeholder="请选择" size="mini">
- <el-option
- v-for="item in typeBaseList"
- :key="item.libType"
- :label="item.libTypeName"
- :value="item.libType"
- ></el-option>
- </el-select>
- </el-form-item>
- </el-form>
- <el-form :inline="true" class="demo-form-inline btmAction">
- <el-form-item label="基础规则医学标准术语:">
- <el-input size="mini" v-model="baseHosTxt" placeholder="请输入"></el-input>
- </el-form-item>
- <el-form-item label="失败原因:">
- <el-input size="mini" v-model="whyTxt" placeholder="请输入"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button size="mini" @click="filterDatas">确认</el-button>
- </el-form-item>
- <el-form-item style="marginbottom: 0px">
- <el-button size="mini" @click="exportData">导出</el-button>
- </el-form-item>
- </el-form>
- </crumbs>
- <div style="margin: 100px 20px 0">
- <el-table :data="list" border>
- <el-table-column
- :resizable="false"
- type="index"
- :index="indexMethod"
- label="编号"
- width="80"
- ></el-table-column>
- <el-table-column
- :resizable="false"
- prop="gmtModified"
- label="测试时间"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleLibTypeName"
- label="规则术语类型"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleLibName"
- label="规则医学标准术语"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleHisName"
- label="规则医院术语"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleHisDetailName"
- label="规则医院术语细项"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :resizable="false"
- prop="groupType"
- label="规则组别"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleBaseType"
- className="collectTwo"
- :show-overflow-tooltip="true"
- label="基础规则类型"
- >
- <template slot-scope="scope">
- <div v-html="returnDom(scope.row.baseRules,'ruleBaseType')"></div>
- </template>
- </el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleBaseLibTypeName"
- label="基础规则术语类型"
- :show-overflow-tooltip="true"
- className="collectTwo"
- >
- <template slot-scope="scope">
- <div v-html="returnDom(scope.row.baseRules,'ruleBaseLibTypeName')"></div>
- </template>
- </el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleBaseLibName"
- label="基础规则医学标准术语"
- :show-overflow-tooltip="true"
- className="collectTwo"
- >
- <template slot-scope="scope">
- <div v-html="returnDom(scope.row.baseRules,'ruleBaseLibName')"></div>
- </template>
- </el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleBaseHisName"
- label="基础规则医院术语"
- :show-overflow-tooltip="true"
- className="collectTwo"
- >
- <template slot-scope="scope">
- <div v-html="returnDom(scope.row.baseRules,'ruleBaseHisName')"></div>
- </template>
- </el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleBaseHisDetailName"
- label="基础规则医院术语细项"
- :show-overflow-tooltip="true"
- className="collectTwo"
- >
- <template slot-scope="scope">
- <div v-html="returnDom(scope.row.baseRules,'ruleBaseHisDetailName')"></div>
- </template>
- </el-table-column>
- <el-table-column
- :resizable="false"
- prop="ruleBaseInputValue"
- label="基础规则输入值"
- :show-overflow-tooltip="true"
- className="collectTwo"
- >
- <template slot-scope="scope">
- <div v-html="returnDom(scope.row.baseRules,'ruleBaseInputValue')"></div>
- </template>
- </el-table-column>
- <el-table-column
- :resizable="false"
- prop="referenceValue"
- label="基础规则参考值"
- :show-overflow-tooltip="true"
- className="collectTwo"
- >
- <template slot-scope="scope">
- <div v-html="returnDom(scope.row.baseRules,'referenceValue')"></div>
- </template>
- </el-table-column>
- <el-table-column
- :resizable="false"
- prop="output"
- label="实际结果"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column
- :resizable="false"
- prop="expectedOutput"
- label="预期结果"
- :show-overflow-tooltip="true"
- ></el-table-column>
- <el-table-column label="测试结果">
- <template slot-scope="scope">
- {{ scope.row.success === 1 ? '成功' : '失败' }}
- </template>
- </el-table-column>
- <el-table-column
- v-if="type !== 'success'"
- :resizable="false"
- prop="message"
- label="失败原因"
- :show-overflow-tooltip="true"
- ></el-table-column>
- </el-table>
- <div class="pagination pagepage">
- <el-pagination
- :current-page.sync="currentPage"
- @current-change="currentChange"
- background
- :page-size="pageSize"
- :page-sizes="pageSizeArr"
- @size-change="handleSizeChange"
- :layout="pageLayout"
- :total="total"
- ></el-pagination>
- </div>
- </div>
- </div>
- </template>
- <script>
- import api from '@api/knowledgeTree.js';
- import config from '@api/config.js';
- import utils from '@api/utils.js';
- export default {
- name:'AutoBillCommonTest',
- data() {
- return {
- list: [],
- currentPage: 1,
- pageSize: config.pageSize,
- pageSizeArr: config.pageSizeArr,
- pageLayout: config.pageLayout,
- total: 0,
- type: '',
- autoType:'',//规则术语类型
- typeAutoList:[],
- autoRule:'',//规则医学标准术语
- baseType:'',
- typeBaseList:[],
- baseHosTxt:'',
- whyTxt:'',
- titleName:''
- };
- },
- created() {
- let params = this.handleInitData();;
- // if(localAuto&&!this.$route.param){
- // params = JSON.parse(localAuto);
- // }else{
- // alert(999)
- // params = this.handleInitData();
- // localStorage.setItem('localAuto',JSON.stringify(params))
- // }
- this.getDataList();
- this.getDroplistData(params);
- },
- methods: {
- returnDom(list,name){
- let str = ''
- if(name === 'ruleBaseType'){
- const params = JSON.parse(localStorage.getItem("zskDicts"));
- for(let i = 0;i < list.length;i++){
- for(let j = 0;j < params.length;j++){
- if(list[i].ruleBaseType == params[j].val){
- // if(params[j].name){
- str += `<p style="padding:0 10px;border-bottom:${i == list.length-1?'0':'1px solid #EBEEF5'};overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" class="collTxt">
- ${params[j].name||'-'}
- </p>`
- // }
- }
- }
- }
- }else{
- for(let i = 0;i < list.length;i++){
- // if(list[i][name]){
- str += `<p style="padding:0 10px;border-bottom:${i == list.length-1?'0':'1px solid #EBEEF5'};overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" class="collTxt">
- ${list[i][name]||'-'}
- </p>`
- // }
- }
- }
- // str += `<p style="padding:0 10px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;border-bottom:${i == list.length-1?'0':'1px solid #EBEEF5'};" class="collTxt">
- return str
- },
- getDroplistData(params){
- let param = {
- success:params.success,
- resultId:params.resultId
- }
- api.getDroplistData(param).then((res)=>{
- const result = res.data
- if(result.code == 0){
- this.typeAutoList = result.data.ruleLibType||[]
- this.typeBaseList = result.data.ruleBaseLibType||[]
- }
- })
- },
- filterDatas(){
- this.getDataList();
- },
- handleInitData() {
- const localAuto = JSON.parse(localStorage.getItem('localAuto'));
- const { data, type,hospitalName } = this.$route.params;
- this.type = type||localAuto.type;
- this.titleName = localAuto.caseName||data.caseName.split('_')[0]
- return {
- current: this.inCurrentPage || this.currentPage,
- size: this.pageSize,
- resultId: data && data.resultId||localAuto.resultId,
- success: type === 'success' ? 1 : type === 'failed'? 0 : localAuto.type === 'success' ? 1 : 0,
- ruleLibType:this.autoType||null,//规则术语类型
- ruleLibName:this.autoRule,//规则医学标准术语(模糊查询)
- hospitalName:hospitalName||localAuto.hospitalName,
- ruleBaseLibType:this.baseType,//基础规则术语类型
- ruleBaseLibName:this.baseHosTxt,//基础规则医学标准术语(模糊查询)
- message:this.whyTxt,//失败原因(模糊查询
- };
- },
- indexMethod(index) {
- return (this.currentPage - 1) * this.pageSize + index + 1;
- },
- currentChange(next) {
- this.currentPage = next;
- this.getDataList(true);
- },
- handleSizeChange(val) {
- this.pageSize = val;
- this.currentPage = utils.getCurrentPage(
- this.currentPage,
- this.total,
- this.pageSize
- );
- this.getDataList();
- },
- getDataList() {
- const params = this.handleInitData();
- this.searched = true;
- const loading = this.$loading({
- lock: true,
- text: 'Loading',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)',
- });
- api.getResultRulePage(params).then((res) => {
- loading.close();
- if (res.data.code === '0') {
- this.list = res.data.data && res.data.data.records;
- }
- this.total = res.data.data && res.data.data.total;
- if (this.inCurrentPage !== undefined) {
- this.currentPage = this.inCurrentPage;
- this.inCurrentPage = undefined;
- }
- });
- },
- // 导出
- exportData() {
- let parm = this.handleInitData();
- // let params = {
- // success: parm.success,
- // resultId: parm.resultId,
- // billType: 1, //1:通用,2:输血
- // };
- this.$alert('确定要导出规则测试结果吗?', '', {
- confirmButtonText: '确定',
- title: '提示',
- type: 'warning',
- })
- .then(() => {
- api.ruleExportExcel(parm).then((res) => {
- if (res.status === 200) {
- this.$message({ message: '导出成功', type: 'success' });
- utils.downloadExportedData(
- res.data,
- `${parm.hospitalName}-开单合理性提醒规则测试结果.xlsx`
- );
- }
- });
- })
- .catch(() => {});
- },
- },
- };
- </script>
- <style lang="less">
- .collectTwo .cell {
- padding:0;
- }
- </style>
- <style lang="less" scoped>
- @import '../../less/admin.less';
- .topBack {
- height:80px !important;
- .el-form-item {
- margin-bottom:0;
- }
- }
- .contents {
- display:inline-block !important;
- }
- .btmAction {
- position:relative;
- bottom:12px;
- float:right;
- }
- .collectTwo {
- .cell {
- padding:0 !important;
- .collTxt {
- padding:0 10px;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- border-bottom:1px solid #EBEEF5;
- &:last-child{
- border-bottom:0;
- }
- }
- }
- }
- </style>
|