瀏覽代碼

医生审核+药师审核

15376779826 1 天之前
父節點
當前提交
40d6c77467

+ 12 - 1
src/api/prescribe.js

@@ -1,5 +1,5 @@
 import request from '@/utils/request'
- 
+
 export function getPrescribeList(query) {
   return request({
     url: '/app/prescribe/getPrescribeList',
@@ -88,6 +88,17 @@ export function auditPrescribe(data) {
   })
 }
 
+// 获取处方详细信息
+export function getUserInformation(id) {
+  return request({
+    url: '/app/prescribe/getUserInformation',
+    method: 'get',
+    params: {
+      id: id
+    }
+  })
+}
+
 
 
 

+ 34 - 0
src/api/userInformation.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request'
+// 获取处方详细信息
+export function getUserInformation(id) {
+  return request({
+    url: '/user/collection/getUserInformation',
+    method: 'get',
+    params: {
+      id: id
+    }
+  })
+}
+export function doctorConfirm(data) {
+  return request({
+    url: '/user/collection/doctorConfirm',
+    method: 'post',
+    data: data
+  })
+}
+
+export function getCollectionList(query) {
+  return request({
+    url: '/user/collection/getCollectionList',
+    method: 'get',
+    params: query
+  })
+}
+
+export function doctorType2Confirm(data) {
+  return request({
+    url: '/user/collection/doctorType2Confirm',
+    method: 'post',
+    data: data
+  })
+}

+ 20 - 2
src/components/message/message-elements/custom-element.vue

@@ -25,13 +25,17 @@
     <span v-else-if="payload.payload.data === 'order'" class="text"  >
       问诊订单
     </span>
+    <span v-else-if="payload.payload.data === 'userInformation'" class="text"  @click="openInformation(payload.payload)">
+      用户信息采集表
+    </span>
 
-    <span v-else  >
+    <span v-else @click="openInformation(payload.payload)">
       {{text}}
     </span>
     <el-drawer  :append-to-body="true" :with-header="false" size="75%" :title="show.title" :visible.sync="show.open">
       <followDetails  v-if="show.type==1"    ref="followDetails" />
       <drugReportDetails    v-if="show.type==2"  ref="drugReportDetails" />
+      <userInfoDetail    v-if="show.type==3"  ref="userInfoDetail" />
     </el-drawer>
   </div>
 </message-bubble>
@@ -42,6 +46,7 @@ import { mapState } from 'vuex'
 import MessageBubble from '@/components/message/message-bubble.vue'
 import followDetails from '@/views/components/follow/followDetails.vue';
 import drugReportDetails from '@/views/components/drugReport/drugReportDetails.vue';
+import userInfoDetail from '@/views/order/userInformationOrder/userInfoDetail.vue';
 export default {
   name: 'CustomElement',
   props: {
@@ -69,7 +74,8 @@ export default {
   components: {
     MessageBubble,
     followDetails,
-    drugReportDetails
+    drugReportDetails,
+    userInfoDetail
   },
   computed: {
     ...mapState({
@@ -101,6 +107,18 @@ export default {
         that.$refs.drugReportDetails.getDetails(reportId);
       }, 500);
     },
+
+    openInformation(data){
+      console.log("qwertttttttt",data)
+      var that=this;
+      var userInformationId=data.extension.userInformationId;
+      this.show.open=true;
+      this.show.type=3;
+      this.show.title="用户信息采集表"
+      setTimeout(() => {
+        that.$refs.userInfoDetail.getDetails(userInformationId);
+      }, 500);
+    },
     translateCustomMessage(payload) {
       let videoPayload = {}
       /*try{

+ 1 - 1
src/permission.js

@@ -22,7 +22,7 @@ router.beforeEach((to, from, next) => {
         // 判断当前用户是否已拉取完user_info信息
         store.dispatch('GetInfo').then(() => {
           store.dispatch('getRoutes').then(accessRoutes => {
-            next({ ...to, replace: true }) 
+            next({ ...to, replace: true })
           })
         }).catch(err => {
             store.dispatch('LogOut').then(() => {

+ 6 - 0
src/router/index.js

@@ -114,6 +114,12 @@ export const constantRoutes = [
         name: '问诊订单',
         meta: { title: '问诊订单', icon: 'dict', noCache: true, affix: false }
       },
+      {
+        path: 'userInformationOrder',
+        component: (resolve) => require(['@/views/order/userInformationOrder/index'], resolve),
+        name: '信息采集订单',
+        meta: { title: '信息采集订单', icon: 'dict', noCache: true, affix: false }
+      },
       {
         path: 'orderPing',
         component: (resolve) => require(['@/views/order/inquiryOrder/orderPing'], resolve),

+ 1 - 0
src/store/getters.js

@@ -17,6 +17,7 @@ const getters = {
   userID: state => state.imuser.userID,
   userSig: state => state.imuser.userSig,
   sdkAppID: state => state.imuser.sdkAppID,
+  doctorType: state => state.user.doctorType,
   hidden(state) {
     // eslint-disable-next-line no-unused-vars
     const temp = state.current

+ 405 - 0
src/views/order/userInformationOrder/index.vue

@@ -0,0 +1,405 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
+      <el-form-item label="订单号 患者姓名" prop="orderSn">
+        <el-input
+          v-model="queryParams.keyword"
+          placeholder="请输入订单号 患者姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+<!--      <el-form-item label="公司名称" prop="companyId" >-->
+<!--        <el-select v-model="queryParams.companyId" placeholder="请选择所属公司" clearable filterable size="small">-->
+<!--          <el-option v-for="(option, index) in companyList" :key="index" :value="option.dictValue" :label="option.dictLabel"></el-option>-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="员工" prop="companyUserNickName">-->
+<!--        <el-input  v-model="queryParams.companyUserNickName"  placeholder="请输入员工名称" clearable size="small" @keyup.enter.native="handleQuery"/>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="病人电话" prop="phone">-->
+<!--        <el-input v-model="queryParams.phone" placeholder="请输入病人电话"  clearable  size="small" @keyup.enter.native="handleQuery"/>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="问诊开始时间" prop="startTime">-->
+<!--        <el-date-picker v-model="startTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="change"></el-date-picker>-->
+<!--      </el-form-item>-->
+      <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+      <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+    </el-form>
+    <el-tabs type="card" v-model="actName" @tab-click="handleClickX">
+      <el-tab-pane label="全部订单" name="10"></el-tab-pane>
+      <el-tab-pane v-for="(item,index) in inquiryStatusOptions" :label="item.dictLabel" :name="item.dictValue"></el-tab-pane>
+    </el-tabs>
+    <el-table v-loading="loading" border :data="inquiryOrderList" @selection-change="handleSelectionChange" >
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="信息id" align="center" prop="id" />
+      <el-table-column label="套餐包订单号" align="center" prop="packageOrderCode" />
+      <el-table-column label="患者姓名" align="center" prop="patientName" />
+      <el-table-column v-if="doctorType===1" label="医生是否审核" align="center" prop="doctorConfirm"  width="80" >
+        <template slot-scope="scope">
+          <dict-tag :options="inquiryStatusOptions" :value="scope.row.doctorConfirm" />
+        </template>
+      </el-table-column>
+      <el-table-column v-if="doctorType===2" label="药师是否审核" align="center" prop="doctorType2Confirm"  width="80" >
+        <template slot-scope="scope">
+          <dict-tag :options="inquiryStatusOptions" :value="scope.row.doctorType2Confirm" />
+        </template>
+      </el-table-column>
+      <el-table-column label="创建时间" align="center" prop="createTime" />
+
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="180px">
+        <template slot-scope="scope">
+          <el-button
+            type="success"
+            plain
+            round
+            size="medium"
+            @click="openInformation(scope.row)"
+          >详情</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <el-drawer :with-header="false" size="75%" :title="show.title" :visible.sync="show.open">
+      <userInfoDetail ref="userInfoDetail" />
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import { getOrderUserPhone,getCompanyList,getInquiryOrderList,receiveOrder,refuseOrder,closeOrder } from "@/api/inquiryOrder";
+import inquiryOrderDetails from '../../components/order/inquiryOrderDetails.vue';
+import msgDetails from '@/views/components/msg/followMsgDetails.vue';
+import way from '@/utils/way.js';
+import {getCollectionList} from "@/api/userInformation";
+import userInfoDetail from '@/views/order/userInformationOrder/userInfoDetail.vue';
+import {mapState} from "vuex";
+export default {
+  name: "inquiryOrder",
+  components: { inquiryOrderDetails ,msgDetails,userInfoDetail},
+  data() {
+    return {
+
+      show:{
+        title:"问诊详情",
+        open:false,
+      },
+      companyList:[],
+      startTime:null,
+      msgDialog:{
+        open:false,
+        title:"聊天记录"
+      },
+      // 遮罩层
+      loading: true,
+      actName:"10",
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      inquirySubTypeOptions:[],
+      createTimeRange:[],
+      payTimeRange:[],
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 问诊订单表格数据
+      inquiryOrderList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        doctorType2Confirm:"",
+        patientName:"",
+        packageOrderCode:"",
+        doctorType2Id:"",
+        doctorType:"",
+        doctorConfirm:"",
+      },
+      // 表单参数
+      form: {},
+      receiveOrderForm:{},
+      refuseOrderForm:{},
+      // 表单校验
+      rules: {
+      },
+      inquiryStatusOptions:[
+        { dictValue: "0", dictLabel: '未审核' },
+        { dictValue: "1", dictLabel: '已审核' },
+      ],
+      inquiryTypeOptions:[],
+      inquiryPayOptions:[],
+      inquiryOrderOptions:[],
+      orOptions:[],
+    };
+  },
+  computed: {
+    ...mapState({
+      userID: state => state.imuser.userID,
+      doctorType: state => state.user.doctor.doctorType,
+    }),
+  },
+
+  created() {
+    this.getDicts("sys_inquiry_type").then(response => {
+      this.inquiryTypeOptions = response.data;
+    });
+    this.getDicts("sys_inquiry_pay").then(response => {
+      this.inquiryPayOptions = response.data;
+    });
+    this.getDicts("sys_inquiry_order_type").then(response => {
+      this.inquiryOrderOptions = response.data;
+    });
+    this.getDicts("sys_company_or").then(response => {
+      this.orOptions = response.data;
+    });
+    this.getDicts("sys_inquiry_sub_type").then(response => {
+      this.inquirySubTypeOptions = response.data;
+    });
+    getCompanyList().then(response => {
+      this.companyList = response.list;
+
+    });
+    this.getList();
+  },
+  methods: {
+    openInformation(row){
+      console.log("qwertttttttt",row)
+      var that=this;
+      var userInformationId=row.id;
+      this.show.open=true;
+      this.show.type=3;
+      this.show.title="用户信息采集表"
+      setTimeout(() => {
+        that.$refs.userInfoDetail.getDetails(userInformationId,this.doctorType);
+      }, 500);
+    },
+    closeDetails(){
+      this.show.open=false;
+    },
+    handleContinue(){
+      way.$emit('open',1);
+    },
+    handleCloseOrder(row){
+      console.log(row)
+      closeOrder(row.orderId).then(response => {
+        this.$message({
+          message: "关闭成功",
+          type: "success"
+        });
+        this.getList();
+      })
+    },
+    followMsg(row){
+      const userId = row.userId;
+      const followDoctorId =row.doctorId;
+      const doctorName = row.doctorName;
+      const patientName = row.patientName;
+      setTimeout(() => {
+        this.$refs.msgDetails.getDetails(userId,followDoctorId,doctorName,patientName);
+      }, 500);
+      this.msgDialog.open = true;
+    },
+    msgDialogClose(){
+      this.dialogVisible = false;
+    },
+    getMappedValue(key, options) {
+      return options[key];
+    },
+    change(){
+      if(this.startTime!=null){
+        this.queryParams.sTime=this.startTime[0];
+        this.queryParams.eTime=this.startTime[1];
+      }else{
+        this.queryParams.sTime=null;
+        this.queryParams.eTime=null;
+      }
+
+    },
+    handleReceiveOrder(row){
+      const orderId = row.orderId
+      this.receiveOrderForm.orderId = orderId;
+      console.log(this.receiveOrderForm)
+      this.$confirm('确认接单吗?', "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        return receiveOrder(this.receiveOrderForm);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("接单成功");
+      }).catch(() => {});
+    },
+
+    handleRefuseOrder(row){
+      const orderId = row.orderId
+      this.refuseOrderForm.orderId = orderId;
+      this.$confirm('确认拒单吗?', "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        return refuseOrder(this.refuseOrderForm);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("拒单成功");
+      }).catch(() => {});
+    },
+
+    handledetails(row){
+
+      this.show.open=true;
+      setTimeout(() => {
+        this.$refs.Details.getDetails(row.orderId);
+      }, 1);
+    },
+    /** 查询问诊订单列表 */
+    getList() {
+      this.loading = true;
+
+      this.queryParams.doctorType = this.doctorType
+      console.log(this.queryParams)
+      getCollectionList(this.queryParams).then(response => {
+        console.log( response)
+        this.inquiryOrderList = response.data.list;
+        console.log(this.inquiryOrderList)
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        pageNum: 1,
+        pageSize: 10,
+        doctorType2Confirm:null,
+        patientName:null,
+        packageOrderCode:null,
+        doctorType2Id:null,
+      };
+
+      this.resetForm("form");
+
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.createTimeRange=null;
+      this.payTimeRange=null;
+      this.startTime=null;
+      this.queryParams.keyword=null;
+      this.queryParams.sTime=null;
+      this.queryParams.eTime=null;
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.orderId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加问诊订单";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const orderId = row.orderId || this.ids
+      getinquiryOrder(orderId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改问诊订单";
+      });
+    },
+    handleClickX(tab, event) {
+      console.log( tab.name)
+      if (this.doctorType==2){
+        if(tab.name=="0"){
+          this.queryParams.doctorType2Confirm=0;
+        }else if(tab.name=="1"){
+          this.queryParams.doctorType2Confirm=1;
+        }else if (tab.name=="10"){
+          this.queryParams.doctorType2Confirm="";
+        }
+      }else if(this.doctorType==1){
+        if(tab.name=="0"){
+          this.queryParams.doctorConfirm=0;
+        }else if(tab.name=="1"){
+          this.queryParams.doctorConfirm=1;
+        }else if (tab.name=="10"){
+          this.queryParams.doctorConfirm="";
+        }
+      }
+
+      this.handleQuery();
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.orderId != null) {
+            updateinquiryOrder(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addinquiryOrder(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const orderIds = row.orderId || this.ids;
+      this.$confirm('是否确认删除问诊订单编号为"' + orderIds + '"的数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return delinquiryOrder(orderIds);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+
+  }
+};
+</script>

+ 271 - 0
src/views/order/userInformationOrder/userInfoDetail.vue

@@ -0,0 +1,271 @@
+<template>
+  <div style="background-color: #f0f2f5; padding-bottom: 20px; min-height: 100%;">
+    <div style="padding: 20px; background-color: #fff;">
+      用户信息采集详情
+    </div>
+
+    <div class="my-content" v-if="detail">
+      <div class="my-title">用户信息</div>
+
+      <el-descriptions :column="2" border>
+        <el-descriptions-item label="用户ID">
+          {{ detail.userId || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="用户名">
+          {{ detail.userName || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="医生ID">
+          {{ detail.doctorId || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="医生姓名">
+          {{ detail.doctorName || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="药师ID">
+          {{ detail.doctorType2Id || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="药师姓名">
+          {{ detail.doctorType2Name || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="用户确认状态">
+          {{ detail.userConfirm === 1 ? '已确认' : '未确认' }}
+        </el-descriptions-item>
+
+        <el-descriptions-item label="医生确认状态">
+          {{ detail.doctorConfirm === 1 ? '已确认' : '未确认' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="药师确认状态">
+          {{ detail.doctorType2Confirm === 1 ? '已确认' : '未确认' }}
+        </el-descriptions-item>
+
+        <el-descriptions-item label="销售ID">
+          {{ detail.companyUserId || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="销售名">
+          {{ detail.companyUserName || '-' }}
+        </el-descriptions-item>
+
+        <el-descriptions-item label="套餐包ID">
+          {{ detail.packageId || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="套餐包名称">
+          {{ detail.packageName || '-' }}
+        </el-descriptions-item>
+
+        <el-descriptions-item label="患者ID">
+          {{ detail.patientId || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="患者姓名">
+          {{ detail.patientName || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="订单编号">
+          {{ detail.packageOrderCode || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="医生签名" >
+          <el-popover v-if="detail.doctorSign!=null"
+                      placement="right"
+                      title=""
+                      trigger="hover">
+            <img slot="reference" :src="detail.doctorSign" width="50px">
+            <img :src="detail.doctorSign" style="max-width: 200px;">
+          </el-popover>
+        </el-descriptions-item>
+        <el-descriptions-item label="药师签名" >
+          <el-popover v-if="detail.doctorType2Sign!=null"
+                      placement="right"
+                      title=""
+                      trigger="hover">
+            <img slot="reference" :src="detail.doctorType2Sign" width="50px">
+            <img :src="detail.doctorType2Sign" style="max-width: 200px;">
+          </el-popover>
+        </el-descriptions-item>
+      </el-descriptions>
+
+      <!-- 问卷 -->
+      <div class="my-title" style="margin-top: 20px;">问卷信息</div>
+
+      <div
+        v-for="(item, index) in detail.questionJson"
+        :key="index"
+        class="question-block"
+      >
+        <div class="question-title">{{ item.title }}</div>
+
+        <div class="question-answer">
+          {{ getSelectedOptionName(item) }}
+        </div>
+      </div>
+
+      <!-- 医生建议输入框 -->
+      <div style="margin-top:20px;">
+        <el-form label-width="120px">
+          <el-form-item label="医生建议">
+            <el-input
+              type="textarea"
+              :rows="3"
+              v-model="doctorAdvice"
+              placeholder="输入医生建议"
+              :disabled="doctorType !== 1"
+            />
+          </el-form-item>
+        </el-form>
+      </div>
+
+      <div style="text-align:right; margin-top:20px;">
+        <el-button v-if="doctorType === 1" type="primary" :loading="confirming" @click="doctorConfirm">
+          医生确认
+        </el-button>
+        <el-button v-if="doctorType === 2" type="primary" :loading="confirming" @click="doctorType2Confirm">
+          药师确认
+        </el-button>
+      </div>
+
+    </div>
+  </div>
+</template>
+
+<script>
+import axios from "axios";
+import { getUserInformation,doctorConfirm,doctorType2Confirm } from "@/api/userInformation";
+
+export default {
+  name: "userInfoDetail",
+
+  data() {
+    return {
+      detail: null,
+      doctorAdvice: "",
+      confirming: false,
+      doctorType:1,
+    };
+  },
+
+  methods: {
+    /** 供父组件调用 —— 与旧组件保持一致 */
+    getDetails(id,doctorType) {
+      this.doctorType = doctorType;
+      console.log(doctorType)
+      if (!id) return;
+      this.loadDetail(id);
+    },
+
+    doctorConfirmText(v) {
+      return v === 2 ? "已确认" : "未确认";
+    },
+
+    /** 加载详情 */
+    async loadDetail(id) {
+      try {
+        getUserInformation(id).then((response) => {
+          console.log(response.data)
+          this.detail = response.data;
+          this.doctorAdvice = this.detail.doctorAdvice || "";
+
+          // 解析问卷 JSON
+          if (this.detail.questionJson) {
+            if (typeof this.detail.questionJson === "string") {
+              try {
+                this.detail.questionJson = JSON.parse(this.detail.questionJson);
+              } catch (e) {
+                console.error("questionJson 解析失败", e);
+                this.detail.questionJson = [];
+              }
+            }
+          } else {
+            this.detail.questionJson = [];
+          }
+        });
+      } catch (e) {
+        this.$message.error("加载详情失败");
+      }
+    },
+
+    /** 获取选中的 name */
+    getSelectedOptionName(item) {
+      if (item.value === null || item.value === undefined) return "-";
+      const opt = item.options.find((o) => o.value === item.value);
+      return opt ? opt.name : "-";
+    },
+
+    /** 医生开方按钮 */
+    handleOpenPrescription() {
+      this.$emit("open-prescription", this.detail);
+    },
+
+    /** 医生确认按钮 */
+    async doctorConfirm() {
+      if (!this.detail) return;
+
+      try {
+        this.detail.doctorAdvice = this.doctorAdvice;
+        console.log(this.detail)
+        doctorConfirm(this.detail).then(response => {
+          this.msgSuccess("医生确认成功");
+          this.open = false;
+          this.getList();
+        });
+      } catch (e) {
+        this.$message.error("确认失败");
+      }
+      this.confirming = false;
+    },
+
+    /** 药师确认按钮 */
+    async doctorType2Confirm() {
+      if (!this.detail) return;
+
+      try {
+        this.detail.doctorAdvice = this.doctorAdvice;
+        console.log(this.detail)
+        doctorType2Confirm(this.detail).then(response => {
+          this.msgSuccess("药师确认成功");
+          this.open = false;
+          this.getList();
+        });
+      } catch (e) {
+        this.$message.error("确认失败");
+      }
+      this.confirming = false;
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.my-content {
+  background-color: #fff;
+  padding: 20px;
+  margin: 20px;
+
+  .my-title {
+    margin-bottom: 20px;
+    color: #524b4a;
+    font-weight: bold;
+  }
+}
+
+.el-descriptions-item__label.is-bordered-label {
+  font-weight: normal;
+}
+
+.el-descriptions-item__content {
+  max-width: 500px;
+  min-width: 100px;
+}
+
+/* 问卷样式 */
+.question-block {
+  margin-bottom: 20px;
+  padding: 15px;
+  background: #fafafa;
+  border-radius: 6px;
+}
+
+.question-title {
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+.question-answer {
+  color: #333;
+}
+</style>