Selaa lähdekoodia

fix:流调表异常检测

magic v 4 vuotta sitten
vanhempi
commit
c8289d46f0

+ 1 - 1
config/index.js

@@ -12,7 +12,7 @@ module.exports = {
     assetsPublicPath: '/',
     proxyTable: {
       '/api': {
-        target: 'https://his.bolineyecare.com',
+        target: 'https://uat.bolineyecare.com',
         secure: true, // 接受 运行在 https 上的服务
         changeOrigin: true,
         pathRewrite: {

+ 41 - 0
src/pages/FormResult/index.vue

@@ -0,0 +1,41 @@
+<template>
+<div class="bl-flex" h100 items-center column>
+  <div size-lg bold color-des padding-top-xl>请出示给门诊员工</div>
+  <div size-lg padding-top-xl>
+    <div class="bl-flex abnormal" items-center color-success v-if="!putIsAbnormal">
+      <i class="font-ileads ileads-icon-gouxuan1 icon" size-xl margin-right-sm></i>
+      <span bold>未见异常</span>
+    </div>
+    <div class="bl-flex abnormal" items-center color-error v-else>
+      <i class="font-ileads ileads-icon-guanbi1 icon" size-xl margin-right-sm></i>
+      <span bold>发现异常</span>
+    </div>
+  </div>
+  <div w100 size-sm padding-lg padding-top-xl>
+    <div class="bl-flex" between margin-top-md margin-bottom-md
+      v-for="(item, index) in data.result.slice(0, 3)"
+      :key="index">
+      <div color-des>{{ item.title }}</div>
+      <div>{{ item.val }}</div>
+    </div>
+    <div class="bl-flex" between margin-top-md margin-bottom-md>
+      <div color-des>提交时间</div>
+      <div>{{ data.created }}</div>
+    </div>
+  </div>
+  <div w100 padding-lg>
+    <div class="btn primary" @click="btnBack()">回到首页</div>
+  </div>
+</div>
+</template>
+
+<script>
+import mixins from './mixins';
+export default {
+  mixins: [mixins]
+}
+</script>
+
+<style lang="scss" scoped>
+@import './style.scss';
+</style>

+ 49 - 0
src/pages/FormResult/mixins/index.js

@@ -0,0 +1,49 @@
+import * as api from '@/api'
+export default {
+  data() {
+    return {
+      TITLE: '问卷调查结果',
+      data: {
+        result: []
+      },
+      loading: {
+        submit: false
+      }
+    };
+  },
+  created() {
+    this.inData()
+  },
+  computed: {
+    putIsAbnormal () {
+      try {
+        return this.data.result.some(item => item.type === 'radio' && item.val === '是')
+      } catch (err) {
+        
+      }
+    }
+  },
+  methods: {
+    vueWatchRoute () {
+      this.inData()
+    },
+    async inData() {
+      this.loading.data = true
+      try {
+        let { result_id } = this.$route.query
+        let res = await api.apiGetVolumeResult({ result_id })
+        let data = res.data
+        this.$set(this, 'data', data)
+      } catch (error) {
+        console.log(error)
+      }
+      this.loading.data = false
+    },
+    btnBack () {
+      let { go, replace } = this.$route.query
+      replace
+        ? this.$router.replace({ name: replace })
+        : this.$router.go(go || -1)
+    }
+  }
+}

+ 25 - 0
src/pages/FormResult/mixins/rules.js

@@ -0,0 +1,25 @@
+export default {
+  name: [
+    { required: true, message: '请填写就诊人'}
+  ],
+  sex: [
+    { required: true, message: '请选择性别' }
+  ],
+  birthday: [
+    { required: true, message: '请选择出生日期' }
+  ],
+  id_no: [
+    { validator: val => {
+      return !val || /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(val)
+    }, message: '请输入正确的身份证号' }
+  ],
+  address: [
+    { required: true, message: '请填写家庭住址' }
+  ],
+  school: [
+    
+  ],
+  allergy: [
+    
+  ]
+}

+ 7 - 0
src/pages/FormResult/style.scss

@@ -0,0 +1,7 @@
+@import '@/common/scss/base.scss';
+.abnormal {
+  font-size: 40px;
+  .icon {
+    font-size: 52px;
+  }
+}

+ 8 - 2
src/pages/FormVolume/mixins/index.js

@@ -195,8 +195,14 @@ export default {
         })
         ld = this.$toast.loading({ message: '提交中...', duration: 0 })
         let pms = edatas.map(data => this.btnSubmitItem(data.result, data.query))
-        await Promise.all(pms)
-        this.btnOpenSuccess(() => this.btnLinkBack())
+        let arrRes = await Promise.all(pms)
+        if (pms.length === 1 && this.$route.query.topic_id == 1) {
+          let res = arrRes[0]
+          let { result_id } = res.data
+          this.$router.replace({ name: 'FormResult', query: { ...this.$route.query, result_id } })
+        } else {
+          this.btnOpenSuccess(() => this.btnLinkBack())
+        }
         pm = Promise.resolve()
       } catch (error) {
         pm = Promise.reject()

+ 6 - 0
src/router/index.js

@@ -5,6 +5,7 @@ import Router from 'vue-router'
 import Entry from '@/pages/Entry'
 import View404 from '@/pages/404'
 import FormVolume from '@/pages/FormVolume'
+import FormResult from '@/pages/FormResult'
 import Manager from '@/pages/Manager'
 
 Vue.use(Router)
@@ -21,6 +22,11 @@ const routers = new Router({
           path: 'FormVolume',
           name: 'FormVolume',
           component: FormVolume
+        },
+        {
+          path: 'FormResult',
+          name: 'FormResult',
+          component: FormResult
         }
       ]
     },