Browse Source

添加门诊满意度调查问卷

lighter 2 years ago
parent
commit
b364852367

+ 9 - 1
src/api/assessments.js

@@ -33,8 +33,16 @@ export function getChildRegion(parentCode) {
 
 export function submitDepressionAssessment(data) {
   return request({
-    url: '/depressionAssessment/submit',
+    url: '/assessment/submitDepressionAssessment',
     method: 'post',
     data,
   })
 }
+
+export function submitClinicSatisfiedAssessment(data) {
+  return request({
+    url: 'assessment/submitClinicSatisfiedAssessment',
+    method: 'post',
+    data,
+  })
+}

+ 7 - 0
src/router/index.js

@@ -287,6 +287,13 @@ export const constantRoutes = [
       title: 'SDS抑郁自评量',
     },
   },
+  {
+    path: '/assessments/clinicSatisfied/:patientId',
+    component: () => import('../views/hospital-service/assessments/ClinicSatisfiedAssessment.vue'),
+    meta: {
+      title: '门诊服务满意度调查',
+    },
+  },
   {
     path: '/assessments/covid/:patientId?/:from?',
     component: () => import('../views/hospital-service/assessments/Covid19Assessment.vue'),

+ 17 - 14
src/views/hospital-service/assessments/AssessmentsEntrance.vue

@@ -1,21 +1,24 @@
 <template>
-  <window-size>
-    <van-cell title="SDS抑郁自评量" is-link :to="'/assessments/depression/' + patientId"></van-cell>
-    <div style="height: 5px"></div>
-    <van-cell title="新型冠状病毒感染流行病学史问卷" is-link :to="'/assessments/covid/' + patientId"></van-cell>
-  </window-size>
+    <window-size>
+        <van-cell title="SDS抑郁自评量" is-link :to="'/assessments/depression/' + patientId"></van-cell>
+        <div style="height: 5px"></div>
+        <van-cell title="门诊服务满意度调查" is-link :to="'/assessments/clinicSatisfied/' + patientId"></van-cell>
+        <div style="height: 5px"></div>
+        <van-cell title="新型冠状病毒感染流行病学史问卷" is-link :to="'/assessments/covid/' + patientId"></van-cell>
+    </window-size>
 </template>
 
 <script>
-import { useRouter } from 'vue-router'
+import {useRouter} from 'vue-router'
+
 export default {
-  name: 'AssessmentsEntrance',
-  setup() {
-    const router = useRouter()
-    const patientId = router.currentRoute.value.params.patientId
-    return {
-      patientId,
-    }
-  },
+    name: 'AssessmentsEntrance',
+    setup() {
+        const router = useRouter()
+        const patientId = router.currentRoute.value.params.patientId
+        return {
+            patientId,
+        }
+    },
 }
 </script>

+ 86 - 0
src/views/hospital-service/assessments/ClinicSatisfiedAssessment.vue

@@ -0,0 +1,86 @@
+<template>
+    <window-size>
+        <div v-for="(item, index) in headQuestions" :key="item.key" style="padding: 6px 0 12px 6px; border-bottom: 1px dashed gray">
+            <p>{{ item.label }}</p>
+            <div style="margin-top: 4px">
+                <van-radio-group v-model="answer['item' + item.key]" direction="horizontal">
+                    <van-radio name="A">满意</van-radio>
+                    <van-radio name="B">不满意</van-radio>
+                </van-radio-group>
+            </div>
+            <div v-show="answer['item' + item.key] === 'B'">
+                <p style="margin-top: 6px">{{ tailQuestions[index].label }}</p>
+                <van-checkbox-group v-model="answer['item' + (item.key + 1) + 'Arr']" direction="horizontal">
+                    <van-checkbox
+                            shape="square"
+                            v-for="child in (item.key === 11 ? checkboxOptions2 : checkboxOptions)"
+                            :key="child.key"
+                            :name="child.key"
+                            style="margin-top: 5px"
+                    >{{ child.label }}
+                    </van-checkbox>
+                </van-checkbox-group>
+            </div>
+        </div>
+        <div style="height: 20px"></div>
+        <van-button type="primary" block :disabled="disableSubmitButton" @click="submitAnswer">提交</van-button>
+    </window-size>
+</template>
+<script setup>
+import {reactive, ref} from "vue";
+import {submitClinicSatisfiedAssessment} from '../../../api/assessments'
+import {Dialog} from "vant";
+import {useRouter} from "vue-router";
+
+const router = useRouter()
+const answer = reactive({
+    patientId: router.currentRoute.value.params.patientId
+})
+const disableSubmitButton = ref(false)
+const headQuestions = [
+    {key: 1, label: '1-1、您对药剂科工作人员服务满意吗?'},
+    {key: 3, label: '2-1、您对放射科工作人员服务满意吗?'},
+    {key: 5, label: '3-1、您对超声影像科工作人员服务满意吗?'},
+    {key: 7, label: '4-1、您对检验科工作人员服务满意吗?'},
+    {key: 9, label: '5-1、您对收费窗口工作人员服务满意吗?'},
+    {key: 11, label: '6-1、您对门急诊医护人员服务满意吗?'},
+]
+
+const tailQuestions = [
+    {key: 2, label: '1-2、您对药剂科工作人员哪些服务不满意?'},
+    {key: 4, label: '2-2、您对放射科工作人员哪些服务不满意?'},
+    {key: 6, label: '3-2、您对超声影像科工作人员哪些服务不满意?'},
+    {key: 8, label: '4-2、您对检验科工作人员哪些服务不满意?'},
+    {key: 10, label: '5-2、您对收费窗口工作人员哪些服务不满意?'},
+    {key: 12, label: '6-2、您对门急诊医护人员哪些服务不满意?'},
+]
+
+const checkboxOptions = [
+    {key: 'A', label: '叫号服务'},
+    {key: 'B', label: '等待时长'},
+    {key: 'C', label: '服务态度'},
+    {key: 'D', label: '沟通解释'},
+    {key: 'E', label: '及时响应'},
+    {key: 'F', label: '服装礼仪'},
+    {key: 'G', label: '准确率'},
+]
+
+const checkboxOptions2 = [
+    {key: 'A', label: '技术水平'},
+    {key: 'B', label: '隐私保护'},
+    {key: 'C', label: '服务态度'},
+    {key: 'D', label: '沟通解释'},
+    {key: 'E', label: '按时坐诊'},
+    {key: 'F', label: '服装礼仪'},
+]
+
+const submitAnswer = () => {
+    submitClinicSatisfiedAssessment(answer).then(res => {
+        disableSubmitButton.value = true
+        Dialog.alert({
+            title: '提示',
+            message: '提交成功!',
+        })
+    })
+}
+</script>