zf 5 päivää sitten
vanhempi
commit
1c2cb5756d

+ 126 - 118
src/views/dashboard/directorView/components/consultationChart.vue

@@ -1,7 +1,23 @@
 <template>
   <div class="consultationChart">
-    <div ref="chart" class="chart-container" style="height:400px;"></div>
-    <div v-if="errorMessage" class="error">{{ errorMessage }}</div>
+    <div class="legend">
+      <div
+        v-for="(item, index) in realData"
+        :key="item.name"
+        class="legend-item"
+        :style="{ color: colors[index] }"
+      >
+        <span
+          class="color-block"
+          :style="{ backgroundColor: colors[index] }"
+        ></span>
+        <div>
+          <div class="name">{{ item.name }}</div>
+          <div class="value">{{ item.value }}次</div>
+        </div>
+      </div>
+    </div>
+    <div class="chart" ref="chartDom"></div>
   </div>
 </template>
 
@@ -9,144 +25,136 @@
 import * as echarts from "echarts";
 
 export default {
-  name: "ConsultationChart",
   data() {
     return {
+      colors: ["#5470C6", "#91CC75", "#FAC858", "#EE6666", "#73C0DE"],
       chart: null,
-      errorMessage: null
-    };
-  },
-  mounted() {
-    try {
-      if (!echarts) throw new Error("ECharts 未正确加载");
-
-      this.initChart();
-      window.addEventListener("resize", this.resizeChart);
-      this.observeParentSize();
-    } catch (error) {
-      this.errorMessage = "图表初始化失败: " + error.message;
-      console.error(error);
-    }
-  },
-  beforeDestroy() {
-    window.removeEventListener("resize", this.resizeChart);
-    if (this.resizeObserver) this.resizeObserver.disconnect();
-    if (this.chart) this.chart.dispose();
-  },
-  methods: {
-    initChart() {
-      const chartDom = this.$refs.chart;
-      if (!chartDom) throw new Error("图表容器未找到");
-
-      this.chart = echarts.init(chartDom);
-
-      // 堆叠柱状图数据(实际人数)
-      const data = {
-        stages: ["提醒会诊", "发起会诊", "执行会诊", "建议转科", "直接转科"],
-        values: [200, 180, 140, 100, 50],
-        lost: [] // 存储各阶段流失人数
-      };
-
-      // 计算各阶段流失人数
-      data.lost = data.values.map((value, index) => {
-        return index === 0 ? 0 : data.values[index-1] - value;
-      });
-
-      const option = {
+      realData: [], // 存储真实数据
+      chartOption: {
         title: {
-          text: '会诊转化数据',
-          left: 'center',
-          top: '3%',
+          text: "会诊转化数据",
+          left: "center",
         },
         // tooltip: {
-        //   trigger: 'axis',
-        //   axisPointer: { type: 'shadow' },
+        //   trigger: "item",
         //   formatter: (params) => {
-        //     let result = `${params[0].name}<br/>`;
-        //     params.forEach(p => {
-        //       result += `${p.marker} ${p.seriesName}: ${p.value}人<br/>`;
-        //     });
-        //     return result;
+        //     return `${params.name}<br/>占比:${params.value}%`;
         //   }
         // },
-        grid: {
-          left: '10%',
-          right: '10%',
-          bottom: '10%',
-          top: '20%',
-          containLabel: true
-        },
-        xAxis: {
-          type: 'category',
-          data: data.stages,
-          axisLabel: {
-            interval: 0,
-            rotate: 45
-          }
-        },
-        yAxis: {
-          type: 'value',
-          name: '人数',
-          min: 0
-        },
         series: [
           {
-            name: '当前阶段人数',
-            type: 'bar',
-            stack: 'total',
-            barWidth: '50%',
+            type: "funnel",
+            sort: "none",
+            top: 40,
+            bottom: 40,
+            width: "70%",
+            left: "15%",
+            gap: 0,
             label: {
               show: true,
-              position: 'inside',
-              formatter: (params) => `${params.value}人`
+              position: "inside",
+              // formatter: "{c}%",
+              color: "#fff",
+              fontSize: 12
             },
-            data: data.values,
             itemStyle: {
-              color: '#3c67dc'
-            }
-          },
-          {
-            name: '流失人数',
-            type: 'bar',
-            stack: 'total',
-            label: {
-              show: true,
-              position: 'inside',
-              formatter: (params) => params.value > 0 ? `${params.value}人` : ''
+              borderColor: "#fff",
+              borderWidth: 2,
             },
-            data: data.lost,
-            itemStyle: {
-              color: '#c0c4cc'
-            }
-          }
-        ]
-      };
+            data: [
+              { value: 100, name: "提醒会诊" },
+              { value: 80, name: "发起会诊" },
+              { value: 60, name: "执行会诊" },
+              { value: 40, name: "建议转科" },
+              { value: 20, name: "转科" }
+            ],
+            color: ["#5470C6", "#91CC75", "#FAC858", "#EE6666", "#73C0DE"],
+          },
+        ],
+      },
+    };
+  },
+  mounted() {
+    this.initChart();
+    this.fetchData(); // 模拟接口请求
+    window.addEventListener("resize", this.handleResize);
+  },
+  beforeDestroy() {
+    window.removeEventListener("resize", this.handleResize);
+    if (this.chart) this.chart.dispose();
+  },
+  methods: {
+    // 模拟接口获取真实数据
+    fetchData() {
+      setTimeout(() => {
+        // 示例数据(实际替换为接口返回数据)
+        this.realData = [
+          { name: "提醒会诊", value: 2345 },
+          { name: "发起会诊", value: 1876 },
+          { name: "执行会诊", value: 1423 },
+          { name: "建议转科", value: 876 },
+          { name: "直接转科", value: 345 }
+        ];
+      }, 500);
+    },
 
-      try {
-        this.chart.setOption(option);
-      } catch (error) {
-        throw new Error("图表配置错误: " + error.message);
-      }
+    initChart() {
+      this.chart = echarts.init(this.$refs.chartDom);
+      this.chart.setOption(this.chartOption);
+
+      new ResizeObserver(() => this.chart?.resize()).observe(
+        this.$refs.chartDom
+      );
     },
-    resizeChart() {
-      if (this.chart) this.chart.resize();
+    handleResize() {
+      this.chart?.resize();
     },
-    observeParentSize() {
-      const parent = this.$el.parentElement;
-      if (parent && 'ResizeObserver' in window) {
-        this.resizeObserver = new ResizeObserver(() => this.resizeChart());
-        this.resizeObserver.observe(parent);
-      } else {
-        console.warn("当前环境不支持 ResizeObserver");
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.consultationChart {
+  width: 100%;
+  height: 360px;
+  display: flex;
+  padding: 20px;
+
+  .legend {
+    width: 180px;
+    padding: 40px 20px;
+    display: flex;
+    flex-direction: column;
+    gap: 20px;
+    border-right: 1px solid #eee;
+
+    &-item {
+      display: flex;
+      align-items: center;
+      font-size: 14px;
+
+      .color-block {
+        width: 18px;
+        height: 18px;
+        border-radius: 4px;
+        margin-right: 10px;
+      }
+
+      .name {
+        font-weight: 500;
+        margin-bottom: 4px;
+      }
+
+      .value {
+        color: #666;
+        font-size: 13px;
       }
     }
   }
-};
-</script>
 
-<style scoped>
-.error {
-  color: red;
-  padding: 10px;
+  .chart {
+    flex: 1;
+    height: 100%;
+  }
 }
 </style>

+ 1 - 1
src/views/dashboard/directorView/components/followChart.vue

@@ -46,7 +46,7 @@ export default {
         title: {
           text: `随访转化数据`,
           left: 'center',
-          top: '3%',
+          top: '6%',
         },
         tooltip: {
           trigger: 'item',

+ 84 - 20
src/views/dashboard/directorView/components/smsChart.vue

@@ -1,7 +1,24 @@
 <template>
   <div class="smsChart">
-    <div ref="chartDom" class="chart-container" style="height: 400px"></div>
-    <div v-if="errorMessage" class="error">{{ errorMessage }}</div>
+    <div class="legend">
+      <div
+        v-for="(item, index) in smsList"
+        :key="item.name"
+        class="legend-item"
+        :style="{ color: colors[index] }"
+      >
+        <span
+          class="color-block"
+          :style="{ backgroundColor: colors[index] }"
+        ></span>
+        <div>
+          <div class="name">{{ item.name }}</div>
+          <div class="value">{{ item.total }}条</div>
+        </div>
+      </div>
+    </div>
+    <div ref="chartDom" class="chart" style="height: 400px"></div>
+    <!-- <div v-if="errorMessage" class="error">{{ errorMessage }}</div> -->
   </div>
 </template>
 
@@ -11,6 +28,7 @@ import * as echarts from "echarts";
 export default {
   data() {
     return {
+      colors: ["#5470C6", "#91CC75"],
       chart: null,
       errorMessage: null,
       seriesData: [],
@@ -18,6 +36,16 @@ export default {
         total: 0,
         click: 0,
       },
+      smsList: [
+        {
+          name: "短信推送",
+          total: 300,
+        },
+        {
+          name: "点击链接",
+          total: 150,
+        },
+      ],
     };
   },
   mounted() {
@@ -68,17 +96,17 @@ export default {
         //     return `${params.marker} ${params.name}<br/>数量:${params.value}条<br/>转化率:${rate}%`;
         //   },
         // },
-        legend: {
-          show: true,
-          top: "8%",
-          left: "center",
-          textStyle: { fontSize: 12, color: "#666" },
-          formatter: (name) => {
-            const item = this.seriesData.find((d) => d.name === name);
-            return item ? `${name}: ${item.value}条` : name;
-          },
-          data: this.seriesData.map((item) => item.name),
-        },
+        // legend: {
+        //   show: true,
+        //   top: "8%",
+        //   left: "center",
+        //   textStyle: { fontSize: 12, color: "#666" },
+        //   formatter: (name) => {
+        //     const item = this.seriesData.find((d) => d.name === name);
+        //     return item ? `${name}: ${item.value}条` : name;
+        //   },
+        //   data: this.seriesData.map((item) => item.name),
+        // },
         series: [
           {
             name: "Funnel",
@@ -113,7 +141,7 @@ export default {
             //     fontSize: 20,
             //   },
             // },
-            color: ['#5470C6', '#91CC75'],
+            color: ["#5470C6", "#91CC75"],
             data: [
               { value: 80, name: "短信推送" },
               { value: 40, name: "点击链接" },
@@ -139,12 +167,48 @@ export default {
 };
 </script>
 
-<style scoped>
-.error {
-  color: red;
-  padding: 10px;
-}
-.chart-container {
+<style lang="scss" scoped>
+.smsChart {
+  position: relative;
   width: 100%;
+  height: 550px;
+  display: flex;
+
+  .legend {
+    width: 160px;
+    padding: 40px 20px;
+    display: flex;
+    flex-direction: column;
+    gap: 20px;
+    border-right: 1px solid #eee;
+
+    &-item {
+      display: flex;
+      align-items: center;
+      font-size: 14px;
+
+      .color-block {
+        width: 18px;
+        height: 18px;
+        border-radius: 4px;
+        margin-right: 10px;
+      }
+
+      .name {
+        font-weight: 500;
+        margin-bottom: 4px;
+      }
+
+      .value {
+        color: #666;
+        font-size: 13px;
+      }
+    }
+  }
+
+  .chart {
+    flex: 1;
+    height: 100%;
+  }
 }
 </style>

+ 19 - 36
src/views/dashboard/directorView/components/systemChart.vue

@@ -34,26 +34,6 @@ export default {
           text: "系统推送转化率",
           left: "center",
         },
-        // tooltip: {
-        //   trigger: "item",
-        //   formatter: (params) => {
-        //     return `
-        //       ${params.marker} ${params.name}<br/>
-        //       数量:${params.value}条
-        //     `;
-        //   }
-        // },
-        // legend: {
-        //   orient: 'vertical',
-        //   right: '10%',
-        //   top: 'middle',
-        //   textStyle: { fontSize: 12 },
-        //   formatter: (name) => {
-        //     const item = this.seriesData.find(d => d.name === name);
-        //     return `${name}:${item.value}条`;
-        //   },
-        //   data: []
-        // },
         series: [
           {
             type: "funnel",
@@ -61,11 +41,14 @@ export default {
             top: 60,
             bottom: 60,
             gap: 2,
-            // label: {
-            //   show: true,
-            //   position: 'inside',
-            //   formatter: '{c}条',
-            //   color: '#fff'
+            label: {
+              show: true,
+              position: "inside",
+            },
+            // emphasis: {
+            //   label: {
+            //     fontSize: 20,
+            //   },
             // },
             itemStyle: {
               borderColor: "#fff",
@@ -94,7 +77,7 @@ export default {
         系统推送: base,
         推送成功: Math.floor(base * 0.75),
         阅读: Math.floor(base * 0.5),
-        点击挂号: Math.floor(base * 0.25),
+        挂号: Math.floor(base * 0.25),
       };
     },
 
@@ -132,13 +115,12 @@ export default {
   display: flex;
 
   .legend {
-    // width: 200px;
-    // padding: 40px 20px;
-    margin-top: 60px;
-    // line-height: 50px;
+    width: 180px;
+    padding: 40px 20px;
     display: flex;
     flex-direction: column;
-    gap: 25px;
+    gap: 20px;
+    border-right: 1px solid #eee;
 
     &-item {
       display: flex;
@@ -146,19 +128,20 @@ export default {
       font-size: 14px;
 
       .color-block {
-        width: 20px;
-        height: 20px;
+        width: 18px;
+        height: 18px;
         border-radius: 4px;
-        margin-right: 6px;
+        margin-right: 10px;
       }
 
       .name {
-        // flex: 1;
-        // margin-right: 10px;
+        font-weight: 500;
+        margin-bottom: 4px;
       }
 
       .value {
         color: #666;
+        font-size: 13px;
       }
     }
   }

+ 74 - 4
src/views/dashboard/operationView/components/assess.vue

@@ -32,8 +32,14 @@
       <el-table-column label="人员" prop="a"></el-table-column>
       <el-table-column label="潜在+流失(全病种)">
         <el-table-column label="门诊" prop="b"></el-table-column>
-        <el-table-column label="住院" prop="c"></el-table-column>
-        <el-table-column label="住院病种" prop="cc"></el-table-column>
+        <el-table-column label="住院" prop="c">
+          <template slot-scope="scope">
+            <el-button type="text" @click="hospitalizedDialog = true">{{
+              scope.row.c
+            }}</el-button>
+          </template>
+        </el-table-column>
+        <el-table-column label="住院病种" prop="cc"> </el-table-column>
       </el-table-column>
       <!-- <el-table-column label="会诊随访">
         <el-table-column label="建议随访" prop="d"></el-table-column>
@@ -41,6 +47,52 @@
         <el-table-column label="完成转科" prop="f"></el-table-column>
       </el-table-column> -->
     </el-table>
+    <!-- 病种对话框 -->
+    <el-dialog title="病种" :visible.sync="hospitalizedDialog">
+      <el-table
+        border
+        :data="tableData3"
+        :header-cell-style="{ background: '#f5f7fa' }"
+      >
+        <el-table-column label="病种" prop="name"></el-table-column>
+        <el-table-column label="人数" prop="num">
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              @click="handleHospitalizedClick(scope.row)"
+              >{{ scope.row.num }}</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <div style="text-align: center; margin-top: 20px">
+        <el-button type="primary" @click="hospitalizedDialog = false"
+          >关闭</el-button
+        >
+      </div>
+    </el-dialog>
+
+    <!-- 患者详情对话框 -->
+    <el-dialog title="患者详情" :visible.sync="dialogVisible">
+      <el-table
+        border
+        :data="tableData2"
+        :header-cell-style="{ background: '#f5f7fa' }"
+      >
+        <el-table-column label="姓名" prop="name"></el-table-column>
+        <el-table-column label="电话" prop="tel"></el-table-column>
+        <el-table-column label="操作">
+          <template slot-scope="scope">
+            <el-button type="text" @click="goDetail(scope.row)">详情</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div style="text-align: center; margin-top: 20px">
+        <el-button type="primary" @click="dialogVisible = false"
+          >关闭</el-button
+        >
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -53,7 +105,7 @@ export default {
           a: "张三",
           b: "24",
           c: "62",
-          cc: '测试病种1',
+          cc: "测试病种1",
           d: "18",
           e: "13",
           f: "20",
@@ -65,7 +117,7 @@ export default {
           a: "特朗普",
           b: "74",
           c: "28",
-          cc: '测试病种2',
+          cc: "测试病种2",
           d: "10",
           e: "54",
           f: "56",
@@ -74,9 +126,27 @@ export default {
           i: "9",
         },
       ],
+      tableData2: [],
+      tableData3: [
+        {
+          name: "病种1",
+          num: 10,
+        },
+        {
+          name: "病种2",
+          num: 10,
+        },
+      ],
+      dialogVisible: false, // 患者详情对话框
+      hospitalizedDialog: false, // 住院对话框
       filterType: "all",
     };
   },
+  methods: {
+    handleHospitalizedClick(row) {
+      this.dialogVisible = true; // 打开患者详情对话框
+    },
+  },
 };
 </script>
 

+ 56 - 96
src/views/sick-person/components/illness-copy.vue

@@ -1,57 +1,5 @@
 <template>
   <div class="ronin-illness">
-    <!-- <div class="illness-title" @click="onClickAA">诊疗过程<span style="color: red;">(测试页面!!!)</span></div> -->
-    <!-- 1 -->
-    <!-- <div class="card">
-      <div class="card-top">
-        <div class="" style="">
-          <div style="margin-bottom: 10px; font-size: 14px;">
-            <span class="label">个案管理目标: </span> {{ roninDetails.targetName }}
-          </div>
-          <div>
-            <span class="label">目标状态: </span>
-            <el-tag>{{ roninDetails.resultState | type }}</el-tag>
-          </div>
-        </div>
-        <div class="btn-box">
-          <div class="btn" @click="onClickTransfer">移交患者</div>
-
-          <el-popconfirm title="确定要放弃患者吗?" @confirm="onClickAbandon">
-            <div slot="reference" class="btn">放弃患者</div>
-          </el-popconfirm>
-          <div class="btn btn-check" @click="onClickTarget">更改目标</div>
-        </div>
-      </div>
-      <div class="card-end">
-        <img class="img" src="../../../assets/avatar/Avatar-11.png" alt="">
-        <div class="user" style="font-size: 14px;">
-          <div style="margin-bottom: 6px">
-            <span>目标设置医生: </span>{{ details.doctorName }}
-          </div>
-          <div><span>设置时间: </span>{{ details.createDate }}</div>
-        </div>
-        <div class="hit">
-          <i class="icon el-icon-caret-left" /> {{ details.addRemark }}
-        </div>
-      </div>
-    </div> -->
-    <!-- 2 -->
-    <!-- <div class="card">
-      <el-timeline :reverse="reverse">
-        <el-timeline-item
-          v-for="(activity, index) in activities"
-          :key="index"
-          :icon="activity.icon"
-          :type="activity.type"
-          :color="activity.color"
-          :size="activity.size"
-          :timestamp="activity.timestamp"
-        >
-          <h3>{{ activity.content }}</h3>
-          <p style="color: #5e6d82">{{ activity.menzhen }}</p>
-        </el-timeline-item>
-      </el-timeline>
-    </div> -->
     <div class="">
       <div class="col col-left">
         <div class="illness-title">个案管理日志</div>
@@ -71,43 +19,6 @@
             上次随访概述上次随访概述上次随访概述上次随访概述上次随访概述
           </el-descriptions-item>
         </el-descriptions>
-        <!-- <el-button @click.stop='onclickDelRz(item)' style='color:red' type="text" size='mini'>删除</el-button> -->
-        <!-- 1 -->
-        <!-- <el-timeline style="margin-left: -30px">
-          <div
-            v-if="recordList && recordList.length == 0"
-            class="null-img"
-            style="padding-top: 0px"
-          >
-            <el-empty description="暂无数据" />
-          </div>
-          <el-timeline-item
-            v-for="item in recordList"
-            :key="item.id"
-            placement="top"
-          >
-            <div class="manage-item" @click="onClickitemRz(item)">
-              <div class="manage-item-head">
-                <div class="title">管理记录:</div>
-                <div class="time">
-                  {{ item.addDt }}
-                </div>
-              </div>
-              <div class="txt txt-bottom">{{ item.content }}</div>
-              <div class="txt">
-                <span class="name">{{ item.doctorName }}</span
-                >{{ item.deptName }}
-              </div>
-            </div>
-
-            <template #dot>
-              <div class="icon-rol">
-                <div class="icon-rol-inner" />
-              </div>
-            </template>
-          </el-timeline-item>
-        </el-timeline> -->
-        <!-- 2 -->
         <el-form label-width="auto">
           <el-form-item label="本次随访时间">
             <el-date-picker placeholder="请选择下次随访时间"></el-date-picker>
@@ -116,15 +27,43 @@
             <el-input type="textarea" placeholder="请输入随访概述"></el-input>
           </el-form-item>
           <el-form-item>
-            <!-- <div style="text-align: center;"> -->
             <el-button type="primary">确认</el-button>
-            <!-- </div> -->
           </el-form-item>
         </el-form>
         <div class="layout-box" style="padding-top: 16px">
           <div class="col col-left">
             <div class="illness-title">就诊计划</div>
             <el-form label-width="auto">
+              <el-form-item label="选择病种:">
+                <IllbessSelect
+                  v-model="form.diseaseId"
+                  style="width: 100%"
+                  :id-list="diseaseByDoctorList"
+                  @input="targetList"
+                />
+              </el-form-item>
+              <el-form-item label="设置目标:">
+                <el-select
+                  v-model="form.val"
+                  style="width: 100%"
+                  placeholder="请选择"
+                  @change="onClickChange"
+                >
+                  <el-option-group
+                    v-for="group in tList"
+                    :key="group.id"
+                    :label="group.name"
+                    @change="onClickGroupChange(group)"
+                  >
+                    <el-option
+                      v-for="item in group.targets"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                    />
+                  </el-option-group>
+                </el-select>
+              </el-form-item>
               <el-form-item label="下次就诊时间">
                 <el-date-picker
                   type="daterange"
@@ -164,7 +103,7 @@
       width="450px"
     >
       <el-form ref="form" :model="form" label-width="100px">
-        <el-form-item v-if="popType == 'transfer'" label="选择病种:">
+        <el-form-item label="选择病种:">
           <IllbessSelect
             v-model="form.diseaseId"
             style="width: 100%"
@@ -192,10 +131,9 @@
           </el-select>
         </el-form-item>
 
-        <el-form-item v-if="popType == 'transfer'" label="设置目标:">
+        <el-form-item label="设置目标:">
           <el-select
             v-model="form.val"
-            style="width: 100%"
             placeholder="请选择"
             @change="onClickChange"
           >
@@ -215,7 +153,7 @@
           </el-select>
         </el-form-item>
 
-        <el-form-item v-else label="设置目标:">
+        <!-- <el-form-item v-else label="设置目标:">
           <el-select
             v-model="form.val"
             style="width: 100%"
@@ -236,7 +174,7 @@
               />
             </el-option-group>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
 
         <el-form-item label="是否加入随访计划:">
           <el-select
@@ -382,6 +320,15 @@ export default {
   },
   data() {
     return {
+      form: {
+        addRemark: "",
+        patientId: "", // 患者id
+        diseaseId: "", // 病种id
+        doctorId: "", // 医生id
+        phaseId: "",
+        phaseTargetIds: [],
+      },
+      options: [],
       value1: [],
       keshiData: [
         {
@@ -511,6 +458,19 @@ export default {
     this.doctName = localStorage.getItem("OS_REALNAME");
   },
   methods: {
+    // 目标列表
+    targetList() {
+      phaseConfigList({
+        diseaseIds: [this.form.diseaseId],
+        state: "normal",
+      }).then((res) => {
+        if (res.code == "0" && res.data) {
+          this.options = res.data;
+
+          this.$forceUpdate();
+        }
+      });
+    },
     onClickGroupChange(data) {
       this.groupType = data.conditionType;
     },

+ 26 - 4
src/views/user/operational-assistant/components/todayNewPotentialPatients.vue

@@ -12,7 +12,7 @@
           <el-table-column width="90" label="姓名" prop="" />
           <el-table-column width="90" label="年龄" prop="" />
           <el-table-column width="90" label="性别" prop="" />
-          <el-table-column label="手机1" prop="" />
+          <el-table-column label="手机" prop="" />
           <el-table-column label="门诊日期" prop="" width="120" />
           <el-table-column label="标签发现时间" prop="" width="120" />
           <el-table-column label="其他标签" prop="tag" width="240">
@@ -32,7 +32,7 @@
               </el-select>
             </template>
           </el-table-column>
-          <el-table-column label="操作" width="280" fixed="right">
+          <el-table-column label="操作" width="300" fixed="right">
             <template slot-scope="scope">
               <el-button type="text" @click="handleViewArchive"
                 >查看档案</el-button
@@ -42,6 +42,7 @@
                 >新增管理</el-button
               >
               <el-button type="text" @click="handleExclude">排除</el-button>
+              <el-button type="text" @click="handleOver">移交</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -57,7 +58,7 @@
           <el-table-column width="90" label="姓名" prop="" />
           <el-table-column width="90" label="年龄" prop="" />
           <el-table-column width="90" label="性别" prop="" />
-          <el-table-column label="手机1" prop="" />
+          <el-table-column label="手机" prop="" />
           <el-table-column label="住院日期" prop="" width="120" />
           <el-table-column label="标签发现时间" prop="" width="120" />
           <el-table-column label="其他标签" prop="tag" width="240">
@@ -77,7 +78,7 @@
               </el-select>
             </template>
           </el-table-column>
-          <el-table-column label="操作" width="320" fixed="right">
+          <el-table-column label="操作" width="360" fixed="right">
             <template slot-scope="scope">
               <el-button type="text">发起会诊</el-button>
               <el-button type="text" @click="handleViewArchive"
@@ -88,6 +89,7 @@
                 >新增管理</el-button
               >
               <el-button type="text" @click="handleExclude">排除</el-button>
+              <el-button type="text" @click="handleOver">移交</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -154,6 +156,21 @@
         </el-form-item>
       </el-form>
     </el-dialog>
+
+    <!-- 移交患者对话框 -->
+    <el-dialog title="移交患者" :visible.sync="overDialog" width="30%">
+      <el-form label-width="auto" style="padding: 0 20px;">
+        <el-form-item label="运营助理">
+          <el-select placeholder="请选择运营助理" style="width: 100%;"></el-select>
+        </el-form-item>
+        <el-form-item>
+          <div style="text-align: right">
+            <el-button>取消</el-button>
+            <el-button type="primary">移交</el-button>
+          </div>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
     <!-- 患者档案 -->
     <RoninArchive ref="roninArchive" />
   </div>
@@ -249,6 +266,7 @@ export default {
       ],
       addManagementDialog: false, // 新增管理对话框
       excludeDialog: false, // 排除对话框
+      overDialog: false, // 移交患者对话框
       value2: [],
     };
   },
@@ -278,6 +296,10 @@ export default {
     handleViewArchive() {
       this.$refs.roninArchive.init();
     },
+    // 移交患者
+    handleOver() {
+      this.overDialog = true;
+    }
   },
 };
 </script>