Переглянути джерело

Merge branch 'master' of http://106.225.187.159:8081/jiankun/GY_ceshi_web

gyf 3 місяців тому
батько
коміт
a4e95fd05d
1 змінених файлів з 148 додано та 2 видалено
  1. 148 2
      src/views/data/query/index.vue

+ 148 - 2
src/views/data/query/index.vue

@@ -6,6 +6,7 @@
           <el-radio-button :label="0">普通检索</el-radio-button>
           <el-radio-button :label="1">高级检索</el-radio-button>
         </el-radio-group>
+        <el-button style="position: absolute; right: 50px" @click="commonQuery" v-if="choice === 1">常用查询条件</el-button>
       </div>
       <div class="bnh">
         <!-- <el-input v-if="choice == 0" style="width: 303px" placeholder="全站搜索病案号" suffix-icon="el-icon-search" v-model="inputOn"></el-input> -->
@@ -135,7 +136,7 @@
             <div class="zkSelect">
               <el-input class="width300" v-model="formData1.ageday" :min="28" :max="365" type="number" placeholder="<28天" @blur="funBlur">
                 <template slot="append">
-                  <el-select v-model="formData1.age_start_type" placeholder="请选择">
+                  <el-select v-model="formData1.age_start_type" @change="ageChange" placeholder="请选择">
                     <el-option v-for="item in Dayoptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
                   </el-select>
                 </template>
@@ -172,7 +173,7 @@
           </el-form-item>
           <el-form-item label="范围搜索">
             <!-- 下拉框开始 -->
-            <el-select class="width150" filterable  v-model="selectRange" @change="rangeChange" placeholder="请选择范围类型">
+            <el-select class="width150" filterable  v-model="formData1.rangeName" @change="rangeChange" placeholder="请选择范围类型">
               <!-- fieldList -->
               <el-option v-for="(item, index) in rangeArray" :label="item.name" :value="item.id" :key="index"></el-option>
             </el-select>
@@ -190,6 +191,7 @@
         </el-form>
       </div>
       <div class="fBtn" style="position: relative">
+        <el-button style="position: absolute; right: 150px" @click="searchCollectClick" v-if="choice ==1">收藏当前搜索</el-button>
         <el-button style="position: absolute; right: 30px" @click="reset">重置条件</el-button>
         <el-button type="primary" class="long-btn" @click="funQuery(1)">检索</el-button>
       </div>
@@ -305,6 +307,61 @@
           @SizeChangeEvent="SizeChangeEvent"
            @pageChangeEvent="pageHasChanged"></mPagination> -->
     </div>
+    <!--搜索收藏弹窗-->
+    <el-dialog title="收藏当前搜索条件" :visible.sync="dialogVisible" width="50%" center custom-class="custom-dialog">
+      <el-form ref="form" :model="searchCollectFrom" label-width="100px">
+        <el-form-item label="收藏名称" required="true">
+          <el-input
+            placeholder="请输入收藏名称"
+            v-model="searchCollectFrom.name">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="公用收藏" required="true">
+          <el-radio-group v-model="searchCollectFrom.is_public">
+            <el-radio :label="1">是</el-radio>
+            <el-radio :label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
+
+        <el-form-item label="公用科室" required="true" v-if="searchCollectFrom.is_public === 1">
+          <!-- 下拉框开始 -->
+          <el-select class="width150" filterable  multiple v-model="searchCollectFrom.dep_ids"  placeholder="请选择范围类型">
+            <el-option v-for="(item, index) in this.departmentArray" :label="item.dep_name" :value="item.dep_id" :key="index"></el-option>
+          </el-select>
+          <!-- 下拉框开始 -->
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+          <el-button @click="dialogVisible = false">取消</el-button>
+          <el-button type="primary" @click="searchCollectFromSave">保存</el-button>
+      </span>
+    </el-dialog>
+    <!--常用查询条件弹窗-->
+    <el-dialog title="常用查询条件" :visible.sync="commonQueryDialog" width="800px" center custom-class="custom-dialog">
+      <el-input placeholder="请输入收藏名称"  prefix-icon="el-icon-search" v-model="searchCollectSearch" @input="getSearchCollect"></el-input>
+      <el-form ref="form" :model="searchCollectFrom" label-width="100px">
+        <el-tabs v-model="is_public" @tab-click="getSearchCollect" style="margin-top: 10px">
+          <el-tab-pane label="账号收藏" name="0">
+            <el-radio-group v-model="radio" >
+              <div style="display: flex;flex-wrap: wrap;justify-content: left; align-items: center;">
+                <el-radio :label="item.id" v-for="(item,index) in searchCollectArray" style="margin-top: 10px;width: 150px;" ><span v-html="item.name"></span></el-radio>
+              </div>
+            </el-radio-group>
+          </el-tab-pane>
+          <el-tab-pane label="公共收藏" name="1">
+            <el-radio-group v-model="radio" >
+              <div style="display: flex;flex-wrap: wrap;justify-content: left; align-items: center;">
+                <el-radio :label="item.id" v-for="(item,index) in searchCollectArray" style="margin-top: 10px;width: 150px;" ><span v-html="item.name"></span></el-radio>
+              </div>
+            </el-radio-group>
+          </el-tab-pane>
+        </el-tabs>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+          <el-button @click=" commonQueryDialog = false">取消</el-button>
+          <el-button type="primary" @click="quote()">引用</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -315,6 +372,7 @@ import { mapGetters } from 'vuex';
 import mPagination from '@/components/m-pagination';
 // import { json } from 'stream/consumers';
 import { medicalRecordExport } from '@/api/excel';
+import { isEmpty } from 'svgo/lib/svgo/jsAPI';
 
 export default {
   name: 'Dashboard',
@@ -335,6 +393,19 @@ export default {
   },
   data() {
     return {
+      searchCollectSearch:'',//搜索收藏搜索
+      activeName:'first',
+      is_public: 0,
+      searchCollectArray:[],//搜索收藏
+      commonQueryDialog:false,//常用查询条件dialog
+      searchCollectFrom:{
+        is_public:0,
+        department:[]
+      },
+      selectDepartment: [],//选中的科室
+      departmentArray:{},//所有科室
+      radio:6,
+      dialogVisible:false,
       selectRange:'',//范围下拉选中
       rangeArray:[{'id':1,'name':'主要诊断编码','value':'zyzdbm'},
         {'id':2,'name':'其他诊断编码','value':'qtzdbm'},
@@ -442,6 +513,77 @@ export default {
     this.getDoctors()
   },
   methods: {
+    //收藏搜索引用
+    quote(){
+      this.$axios.post('/getCollect',{'collect_id':this.radio}).then(res => {
+        this.formData1 = this.$options.data().formData1;//重置formData1
+        res.data.forEach(item => {
+          switch (item.name)
+          {
+            case 'seniorList':
+              item.search_value = JSON.parse(item.search_value);
+              this.formData1[item.name] = item.search_value;
+              break;
+            case 'rangeName' :
+              this.rangeChange(item.search_value);
+              break;
+            case  'age_start_type':
+            case  'age_end_type' :
+              this.ageChange(item.search_value);
+              break;
+            default:
+              this.formData1[item.name] = item.search_value;
+          }
+        });
+        this.commonQueryDialog = false;
+      });
+    },
+    //年龄选中类型选择效果
+    ageChange(value){
+      let data = this.Dayoptions.find(item => item.value == value);
+      console.log(data);
+      this.formData1.age_start_type = data.label;
+    },
+    //获取收藏数据
+    getSearchCollect(){
+      let search = {};
+      search['is_public'] = this.is_public;
+      search['searchCollectSearch'] = this.searchCollectSearch;
+      this.$axios.post('/getSearchCollect',search).then(res => {
+        this.searchCollectArray = res.data;
+      });
+    },
+    //常用查询条件
+    commonQuery(){
+      this.getSearchCollect();
+      this.commonQueryDialog = true;
+    },
+    //收藏成功
+    success(){
+      this.dialogVisible = false;
+      this.$message.success("收藏成功");
+    },
+    //搜索收藏保存
+    searchCollectFromSave(){
+      this.searchCollectFrom.searchArray = this.formData1;
+      this.$axios.post('/searchCollectSave',this.searchCollectFrom).then(res => {
+        if (res.code == 200) {
+          this.searchCollectFrom = {is_public:0, department:[]};
+          this.success(res.msg);
+        }
+      });
+    },
+    //获取科室
+    getDeportmentList() {
+      this.$axios.post('/getDeportmentList').then(res => {
+        this.departmentArray = res.data;
+      });
+    },
+    //收藏
+    searchCollectClick(){
+      this.getDeportmentList();
+      this.dialogVisible = true;
+    },
     //范围选择
     rangeChange(value){
       let currentRange =  this.rangeArray[value-1];
@@ -976,6 +1118,10 @@ export default {
 }
 </style>
 <style lang="scss" scoped>
+.custom-dialog {
+  border-radius: 10px !important;
+}
+
 .tableBox {
   background: #fff;
   padding: 19px;