|
@@ -3,6 +3,37 @@
|
|
<!-- 搜索栏 -->
|
|
<!-- 搜索栏 -->
|
|
<div class="bg-card" style="margin-bottom: 18px">
|
|
<div class="bg-card" style="margin-bottom: 18px">
|
|
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
|
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
|
|
|
+
|
|
|
|
+ <el-form-item label="所属院区" style="margin-bottom: 0">
|
|
|
|
+ <el-select class="width150" v-model="formInline.YQ_CODES" placeholder="请选择所属院区" multiple>
|
|
|
|
+ <el-option v-for="(item,index) in searchInfoOptions.yqArray" :label="item.YQ_NAME" :value="item.id" :key="index">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <el-form-item label="所属科室" style="margin-bottom: 0">
|
|
|
|
+ <el-cascader
|
|
|
|
+ multiple
|
|
|
|
+ v-model="formInline.KS_IDS"
|
|
|
|
+ :options="searchInfoOptions.depArray"
|
|
|
|
+ :props="cascaderProps"
|
|
|
|
+ :show-all-levels="false"
|
|
|
|
+ @change="handleChange"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-cascader>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="所属病区" style="margin-bottom: 0">
|
|
|
|
+ <el-cascader
|
|
|
|
+ v-model="formInline.BQ_IDS"
|
|
|
|
+ :options="searchInfoOptions.bqArray"
|
|
|
|
+ :props="cascaderProps"
|
|
|
|
+ @change="handleChange"
|
|
|
|
+ multiple
|
|
|
|
+ clearable
|
|
|
|
+ collapse-tags
|
|
|
|
+ ></el-cascader>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
<el-form-item label="出院日期" style="margin-bottom: 0">
|
|
<el-form-item label="出院日期" style="margin-bottom: 0">
|
|
<el-date-picker v-model="formInline.start_time" type="date" placeholder="出院开始日期" value-format="yyyyMMdd" format="yyyy年MM月dd日" />
|
|
<el-date-picker v-model="formInline.start_time" type="date" placeholder="出院开始日期" value-format="yyyyMMdd" format="yyyy年MM月dd日" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -16,7 +47,7 @@
|
|
</el-form>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
<!-- 汇总统计 -->
|
|
<!-- 汇总统计 -->
|
|
- <div class="bg-card" style="margin-bottom: 24px; padding">
|
|
|
|
|
|
+ <div class="bg-card" style="margin-bottom: 24px;">
|
|
<CardTitle title="汇总统计">
|
|
<CardTitle title="汇总统计">
|
|
<el-image
|
|
<el-image
|
|
class="title_arrow"
|
|
class="title_arrow"
|
|
@@ -130,7 +161,7 @@
|
|
</el-collapse-transition>
|
|
</el-collapse-transition>
|
|
</div>
|
|
</div>
|
|
<!-- 缺陷详情 -->
|
|
<!-- 缺陷详情 -->
|
|
- <div class="bg-card" style="margin-bottom: 24px; padding">
|
|
|
|
|
|
+ <div class="bg-card" style="margin-bottom: 24px;">
|
|
<CardTitle title="缺陷详情">
|
|
<CardTitle title="缺陷详情">
|
|
<el-image
|
|
<el-image
|
|
class="title_arrow"
|
|
class="title_arrow"
|
|
@@ -156,11 +187,6 @@
|
|
<el-option label="费用信息" :value="2"></el-option>
|
|
<el-option label="费用信息" :value="2"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="出院科室">
|
|
|
|
- <el-select v-model="qxxqData.dep_id" clearable filterable placeholder="全部">
|
|
|
|
- <el-option v-for="(item, index) in departmentList" :label="item.dep_name" :value="item.dep_id" :key="'dep' + index"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
<el-form-item label="缺陷分类">
|
|
<el-form-item label="缺陷分类">
|
|
<el-select v-model="qxxqData.level" clearable filterable placeholder="全部">
|
|
<el-select v-model="qxxqData.level" clearable filterable placeholder="全部">
|
|
<el-option v-for="(item, index) in levels" :label="item.label" :value="item.value" :key="'dj' + index"></el-option>
|
|
<el-option v-for="(item, index) in levels" :label="item.label" :value="item.value" :key="'dj' + index"></el-option>
|
|
@@ -180,13 +206,6 @@
|
|
</el-form>
|
|
</el-form>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="14">
|
|
<el-col :span="14">
|
|
- <!-- <div class="mb20">
|
|
|
|
- <el-radio-group v-model="qxxqData.radio" text-color="#185DA6" fill="#ffffff" @change="handleRadioChange">
|
|
|
|
- <el-radio-button :label="1">缺陷问题(前十)</el-radio-button>
|
|
|
|
- <el-radio-button :label="2">缺陷问题</el-radio-button>
|
|
|
|
- </el-radio-group>
|
|
|
|
- </div> -->
|
|
|
|
- <!-- 表格 -->
|
|
|
|
<el-table :data="tableData" class="mb20" style="width: 100%; margin-top: -20px">
|
|
<el-table :data="tableData" class="mb20" style="width: 100%; margin-top: -20px">
|
|
<el-table-column type="index" label="序号" width="80" align="center">
|
|
<el-table-column type="index" label="序号" width="80" align="center">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
@@ -232,7 +251,7 @@
|
|
</el-collapse-transition>
|
|
</el-collapse-transition>
|
|
</div>
|
|
</div>
|
|
<!-- 医师排名 -->
|
|
<!-- 医师排名 -->
|
|
- <div class="bg-card" style="margin-bottom: 24px; padding">
|
|
|
|
|
|
+ <div class="bg-card" style="margin-bottom: 24px;">
|
|
<CardTitle title="医师排名">
|
|
<CardTitle title="医师排名">
|
|
<el-image
|
|
<el-image
|
|
class="title_arrow"
|
|
class="title_arrow"
|
|
@@ -301,6 +320,8 @@
|
|
</div>
|
|
</div>
|
|
</el-collapse-transition>
|
|
</el-collapse-transition>
|
|
</div>
|
|
</div>
|
|
|
|
+ <el-dialog title="所属科室多选" :visible.sync="ksSearchDialog" width="1000px" center custom-class="custom-dialog">
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -313,6 +334,58 @@ export default {
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ ksSearchDialog:false,
|
|
|
|
+ selectedValue: [], // 绑定选中的路径数组
|
|
|
|
+ cascaderProps: {
|
|
|
|
+ checkStrictly: true, // 允许独立选择任意层级
|
|
|
|
+ multiple: true, // 开启多选模式
|
|
|
|
+ label: 'label',
|
|
|
|
+ value: 'id',
|
|
|
|
+ children: 'children',
|
|
|
|
+ emitPath: false, // 是否返回完整路径(true 返回路径数组,false 只返回末节点值)
|
|
|
|
+ },
|
|
|
|
+ options: [ // 树形结构数据
|
|
|
|
+ {
|
|
|
|
+ value: 'beijing',
|
|
|
|
+ label: '北京',
|
|
|
|
+ children: [
|
|
|
|
+ {
|
|
|
|
+ value: 'chaoyang',
|
|
|
|
+ label: '朝阳区',
|
|
|
|
+ children: [
|
|
|
|
+ { value: 'sanlitun', label: '三里屯' },
|
|
|
|
+ { value: 'wangjing', label: '望京' }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: 'haidian',
|
|
|
|
+ label: '海淀区',
|
|
|
|
+ children: [
|
|
|
|
+ { value: 'zhongguancun', label: '中关村' }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: 'shanghai',
|
|
|
|
+ label: '上海',
|
|
|
|
+ children: [
|
|
|
|
+ {
|
|
|
|
+ value: 'pudong',
|
|
|
|
+ label: '浦东新区',
|
|
|
|
+ children: [
|
|
|
|
+ { value: 'lujiazui', label: '陆家嘴' }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ search:{},//搜索内容
|
|
|
|
+ searchInfoOptions:{//获取搜索的options
|
|
|
|
+ yqArray:[],//院区options
|
|
|
|
+ depArray:[],//科室options
|
|
|
|
+ bqArray:[],//病区options
|
|
|
|
+ },
|
|
levels: [
|
|
levels: [
|
|
{
|
|
{
|
|
label: '强制',
|
|
label: '强制',
|
|
@@ -388,122 +461,25 @@ export default {
|
|
// "proportion": "77.07",
|
|
// "proportion": "77.07",
|
|
// "avg_score": 88
|
|
// "avg_score": 88
|
|
// },
|
|
// },
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // "docker_name": "杜晓峰",
|
|
|
|
- // "bl_sum": 28,
|
|
|
|
- // "qx_sum": 22,
|
|
|
|
- // "sum_score": 2800,
|
|
|
|
- // "df_score": 2158,
|
|
|
|
- // "kf_score": 642,
|
|
|
|
- // "proportion": "77.07",
|
|
|
|
- // "avg_score": 88
|
|
|
|
- // }
|
|
|
|
// ],
|
|
// ],
|
|
};
|
|
};
|
|
},
|
|
},
|
|
async mounted() {
|
|
async mounted() {
|
|
|
|
+ /*
|
|
const year = new Date().getFullYear();
|
|
const year = new Date().getFullYear();
|
|
const month = new Date().getMonth() + 1 > 10 ? new Date().getMonth() + 1 : `0${new Date().getMonth() + 1}`;
|
|
const month = new Date().getMonth() + 1 > 10 ? new Date().getMonth() + 1 : `0${new Date().getMonth() + 1}`;
|
|
const day = new Date().getDate() < 10 ? `0${new Date().getDate()}` : new Date().getDate();
|
|
const day = new Date().getDate() < 10 ? `0${new Date().getDate()}` : new Date().getDate();
|
|
this.$set(this.formInline, 'start_time', `${year}0101`);
|
|
this.$set(this.formInline, 'start_time', `${year}0101`);
|
|
this.$set(this.formInline, 'end_time', `${year}${month}${day}`);
|
|
this.$set(this.formInline, 'end_time', `${year}${month}${day}`);
|
|
- this.getDepartmentData();
|
|
|
|
|
|
+ */
|
|
|
|
+ //this.getDepartmentData();
|
|
await this.getTongjiData()
|
|
await this.getTongjiData()
|
|
this.tongjiPie();
|
|
this.tongjiPie();
|
|
this.qxxqPie();
|
|
this.qxxqPie();
|
|
this.getQuexianData();
|
|
this.getQuexianData();
|
|
this.getDoctorRank();
|
|
this.getDoctorRank();
|
|
this.getFieldList();
|
|
this.getFieldList();
|
|
|
|
+ this.getSearchOptions();//获取搜索options
|
|
},
|
|
},
|
|
beforeRouteEnter(to, from, next) {
|
|
beforeRouteEnter(to, from, next) {
|
|
|
|
|
|
@@ -520,6 +496,20 @@ export default {
|
|
next()
|
|
next()
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ //
|
|
|
|
+ handleChange(){
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ //获取搜索内容
|
|
|
|
+ getSearchOptions(){
|
|
|
|
+ this.$axios_new.post('/api/bmy/getSearchOptions').then(res => {
|
|
|
|
+ this.searchInfoOptions.yqArray = res.data.yqArray;//院区
|
|
|
|
+ this.searchInfoOptions.depArray = res.data.depArray;//科室
|
|
|
|
+ this.searchInfoOptions.bqArray = res.data.bqArray;//病区
|
|
|
|
+ this.formInline.start_time = res.data.start_time;//开始时间
|
|
|
|
+ this.formInline.end_time = res.data.end_time;//结束时间
|
|
|
|
+ });
|
|
|
|
+ },
|
|
// 获取缺陷字段选项
|
|
// 获取缺陷字段选项
|
|
getFieldList() {
|
|
getFieldList() {
|
|
this.$axios_new.post('/api/bmy/errorFieldList').then(res => {
|
|
this.$axios_new.post('/api/bmy/errorFieldList').then(res => {
|
|
@@ -535,7 +525,13 @@ export default {
|
|
// 缺陷详情列表
|
|
// 缺陷详情列表
|
|
toPage(row) {
|
|
toPage(row) {
|
|
const { start_time, end_time } = this.formInline;
|
|
const { start_time, end_time } = this.formInline;
|
|
- this.$router.push({ name: 'EncoderErrors', query: { rule_id: row.error_rule, start_time, end_time, ...this.qxxqData, is_qx: 2 } });
|
|
|
|
|
|
+ const search = this.formInline;
|
|
|
|
+ this.$router.push({ name: 'EncoderErrors',
|
|
|
|
+ query: { rule_id: row.error_rule, start_time, end_time, ...this.qxxqData, is_qx: 2,
|
|
|
|
+ YQ_CODES:search.YQ_CODES,
|
|
|
|
+ KS_IDS:search.KS_IDS,
|
|
|
|
+ BQ_IDS:search.BQ_IDS
|
|
|
|
+ } });
|
|
},
|
|
},
|
|
// 全局筛选
|
|
// 全局筛选
|
|
async onGobalSearch() {
|
|
async onGobalSearch() {
|
|
@@ -559,6 +555,7 @@ export default {
|
|
page_size: size,
|
|
page_size: size,
|
|
...this.formInline,
|
|
...this.formInline,
|
|
};
|
|
};
|
|
|
|
+ //获取缺陷数据
|
|
this.$axios_new.post('/api/bmy/qualityData', params).then(res => {
|
|
this.$axios_new.post('/api/bmy/qualityData', params).then(res => {
|
|
let arr = [];
|
|
let arr = [];
|
|
if (res.data.data.length < 10) {
|
|
if (res.data.data.length < 10) {
|