yuwandanmian 2 éve
szülő
commit
9000d7495e

+ 3 - 3
src/App.vue

@@ -12,7 +12,7 @@ export default {
     return {
       lastTime: null,
       currentTime: null,
-      timeOut: 30 * 60 * 1000,
+      timeOut: 0.5 * 60 * 1000,
       token: '',
       timer: '',
     };
@@ -25,7 +25,7 @@ export default {
     handleClick() {
       setTimeout(() => {
         this.lastTime = new Date().getTime();
-        if (this.$route.path.includes('/hospital')) {
+        if (this.$route.path.includes('/hospital') || this.$route.path.includes('/embedIndex')) {
           clearInterval(this.timer);
           this.timer = setInterval(this.isTimeOut, 1000);
         } else {
@@ -44,7 +44,7 @@ export default {
           this.$message.info('30分钟内无操作,请重新登录。');
           setToken('');
           sessionStorage.removeItem('route');
-          this.$router.push(`/login`);
+          this.$router.push({ path: `/login` });
         } else {
           this.lastTime = new Date().getTime();
         }

+ 1 - 0
src/router/index.js

@@ -196,6 +196,7 @@ export const constantRoutes = [
         path: '/caseIndexAnalysisList',
         name: 'CaseIndexAnalysisList',
         component: () => import('@/views/allcase/caseIndexAnalysisList'),
+        hidden: true,
         meta: { title: '指标分析-科室病案' },
       },
       {

+ 100 - 0
src/views/embedIndex/components/FeedbackDialog.vue

@@ -0,0 +1,100 @@
+<template>
+  <div>
+    <el-dialog title="问题反馈" :visible.sync="data.bSwitch" width="30%">
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm" label-suffix=":">
+        <el-form-item label="反馈类型" prop="type_id">
+          <el-select v-model="ruleForm.type_id" filterable placeholder="请选择" style="width: 100%;">
+            <el-option label="临床科研数据查询" :value="1"></el-option>
+            <el-option label="病例指控规则" :value="2"></el-option>
+            <el-option label="病案指标" :value="3"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="反馈人" prop="user_name">
+          <el-input v-model="ruleForm.user_name" placeholder="请输入"></el-input>
+        </el-form-item>
+        <el-form-item label="反馈部门" prop="dep_id">
+          <el-select v-model="ruleForm.dep_id" placeholder="请选择" style="width: 100%;">
+            <el-option v-for="(item, index) in departmentList" filterable :label="item.name" :value="item.id" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="反馈内容" prop="content">
+          <el-input type="textarea" v-model="ruleForm.content" :autosize="{ minRows: 5 }" placeholder="请输入"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="data.bSwitch = false">取 消</el-button>
+        <el-button type="primary" @click="onSubmit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    data: {
+      type: Object,
+      default() {
+        return {
+          bSwitch: false
+        }
+      }
+    }
+  },
+  data() {
+    return {
+      ruleForm: {
+        type_id: '',
+        dep_id: '',
+        user_name: '',
+        content: ''
+      },
+      rules: {
+        type_id: [
+          { required: true, message: '请选择反馈类型', trigger: 'blur' },
+        ],
+        dep_id: [
+          { required: true, message: '请选择反馈部门', trigger: 'blur' },
+        ],
+        user_name: [
+          { required: true, message: '请输入反馈人', trigger: 'change' },
+        ],
+        content: [
+          { required: true, message: '请输入反馈内容', trigger: 'change' },
+        ],
+      },
+      departmentList: []
+    };
+  },
+  created() {
+    this.selectInfo()
+  },
+  methods: {
+    // 获取部门
+    selectInfo() {
+      this.$axios.post('/selectInfo').then(res => {
+        this.departmentList = res.data.department.slice(1, res.data.department.length);
+      });
+    },
+    // 提交
+    onSubmit() {
+      this.$refs['ruleForm'].validate((valid) => {
+        if (valid) {
+          this.$axios.post('/add_feedback', this.ruleForm).then(res => {
+            this.$message.success('已提交')
+            this.data.bSwitch = false
+          })
+        } else {
+          return false;
+        }
+      });
+    }
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.demo-ruleForm {
+  width: 83%;
+}
+</style>

+ 21 - 1
src/views/embedIndex/index.vue

@@ -1,6 +1,9 @@
 <template>
   <div class="box">
     <div class="box_wrapper">
+      <el-button class="feedback-btn" type="primary" plain @click="onFeedback">
+        问题反馈
+      </el-button>
       <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
         <el-tab-pane label="指标分析" name="0">
           <CaseIndexAnalysis />
@@ -13,6 +16,7 @@
         退出
       </el-button>
     </div>
+    <FeedbackDialogVue v-if="feedbackData.bSwitch" :data="feedbackData" />
   </div>
 </template>
 
@@ -20,15 +24,20 @@
 import { setToken } from '@/utils/auth';
 import CaseIndexAnalysis from '@/views/allcase/caseIndexAnalysis.vue'
 import CaseIndex from '@/views/allcase/caseIndex.vue'
+import FeedbackDialogVue from './components/FeedbackDialog.vue';
 
 export default {
   components: {
     CaseIndexAnalysis,
-    CaseIndex
+    CaseIndex,
+    FeedbackDialogVue
   },
   data() {
     return {
       activeName: '0',
+      feedbackData: {
+        bSwitch: false
+      }
     };
   },
   methods: {
@@ -41,6 +50,9 @@ export default {
       sessionStorage.removeItem("route")
       this.$router.push(`/login`);
     },
+    onFeedback() {
+      this.feedbackData.bSwitch = true
+    }
   },
 };
 </script>
@@ -65,6 +77,14 @@ export default {
     --size: 16px;
     top: var(--size);
     right: var(--size);
+    z-index: 99;
+  }
+  .feedback-btn {
+    position: absolute;
+    --size: 16px;
+    top: var(--size);
+    left: var(--size);
+    z-index: 99;
   }
 }
 </style>