WXL
2024-08-09 1b7eb0871a246af9c6dc64f2fa25348831fe0073
src/views/patient/patient/index.vue
@@ -12,6 +12,7 @@
          v-model="queryParams.allhosp"
          @tab-click="handleClick"
        >
          <el-tab-pane label="患者列表" name="0"></el-tab-pane>
          <el-tab-pane label="住院患者" name="1"></el-tab-pane>
          <el-tab-pane label="门诊患者" name="2"></el-tab-pane>
          <el-tab-pane label="体检患者" name="3"></el-tab-pane>
@@ -24,8 +25,11 @@
      <div>
        <el-row :gutter="10">
          <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
            <el-card shadow="hover">
              <div style="padding: 8px">
            <el-card
              shadow="hover"
              :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
            >
              <div style="padding: 8px" @click="$router.push(item.router)">
                <span>{{ item.name }}</span>
                <div
                  style="
@@ -54,7 +58,7 @@
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item label="院区" prop="userName">
              <!-- <el-form-item label="院区" prop="userName">
                <el-select v-model="queryParams.value1" placeholder="请选择">
                  <el-option
                    v-for="item in options"
@@ -64,8 +68,8 @@
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="科室/病区" prop="userName">
              </el-form-item> -->
              <!-- <el-form-item label="科室/病区" prop="userName">
                <el-select v-model="queryParams.value2" placeholder="请选择">
                  <el-option
                    v-for="item in options"
@@ -75,45 +79,26 @@
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              </el-form-item> -->
              <el-form-item
                label-width="138px"
                label="主治医生"
                prop="userName"
              >
                <el-select v-model="queryParams.value3" placeholder="请选择">
                  <el-option
                    v-for="item in options"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="入院日期" prop="userName">
                <el-date-picker
                  v-model="queryParams.valuetime1"
                  align="right"
                  type="date"
                  placeholder="选择日期"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item label="出院日期" prop="departuretime">
                <el-date-picker
                  v-model="queryParams.departuretime"
                  align="right"
                  type="date"
                  placeholder="选择日期"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item label="就诊编号" prop="number">
                <el-input
                  v-model="queryParams.number"
                  v-model="queryParams.drname"
                  placeholder="请输入医生姓名"
                  maxlength="30"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="门诊编号" prop="visitno">
                <el-input
                  v-model="queryParams.visitno"
                  placeholder="请输入编号"
                  maxlength="30"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="姓名" prop="name">
@@ -121,6 +106,15 @@
                  v-model="queryParams.name"
                  placeholder="请输入姓名"
                  maxlength="30"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="联系电话" prop="telcode">
                <el-input
                  v-model="queryParams.telcode"
                  placeholder="请输入联系电话"
                  maxlength="30"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
@@ -212,12 +206,14 @@
            >
              <el-table-column type="selection" width="50" align="center" />
              <el-table-column
                fixed
                label="序号"
                align="center"
                key="patid"
                prop="patid"
                key="id"
                prop="id"
              />
              <el-table-column
                fixed
                label="姓名"
                align="center"
                key="name"
@@ -246,8 +242,8 @@
              <el-table-column
                label="居住地"
                align="center"
                key="age"
                prop="age"
                key="placeOfResidence"
                prop="placeOfResidence"
                width="120"
              />
              <el-table-column
@@ -259,20 +255,22 @@
                :show-overflow-tooltip="true"
              >
                <template slot-scope="scope">
                  <span v-for="item in scope.row.tagList">{{ item }} </span>
                  <span v-for="item in scope.row.tagList"
                    >{{ item.tagname }}
                  </span>
                </template>
              </el-table-column>
              <el-table-column
                label="证件类型"
                align="center"
                key="idtype"
                prop="idtype"
                key="idcardtype"
                prop="idcardtype"
                width="120"
              /><el-table-column
                label="证件号码"
                align="center"
                key="idno"
                prop="idno"
                key="idcardno"
                prop="idcardno"
                width="190"
              />
@@ -286,15 +284,15 @@
              <el-table-column
                label="建档日期"
                align="center"
                key="uploadTime"
                prop="uploadTime"
                key="createTime"
                prop="createTime"
                width="160"
              >
              </el-table-column>
              <el-table-column
                label="更新日期"
                align="center"
                prop="updateTime"
                prop="archivetime"
                width="160"
              >
                <template slot-scope="scope">
@@ -302,6 +300,7 @@
                </template>
              </el-table-column>
              <el-table-column
                fixed="right"
                label="操作"
                align="center"
                width="190"
@@ -314,15 +313,15 @@
                    @click="
                      $router.push({
                        path: '/patient/patient/profile/',
                        query: { id: scope.row.patid },
                        query: { id: scope.row.id },
                      })
                    "
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textsc"
                      ><i class="el-icon-zoom-in"></i>查看</span
                      ><i class="el-icon-zoom-in"></i>详情编辑</span
                    ></el-button
                  >
                  <el-button
                  <!-- <el-button
                    size="medium"
                    type="text"
                    @click="handleUpdate(scope.row)"
@@ -330,7 +329,7 @@
                    ><span class="button-textxga"
                      ><i class="el-icon-edit"></i>修改</span
                    ></el-button
                  >
                  > -->
                  <el-button
                    size="medium"
                    type="text"
@@ -386,7 +385,7 @@
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="民族" prop="age">
            <el-form-item label="年龄" prop="age">
              <el-input
                v-model="form.age"
                placeholder="请输入年龄"
@@ -399,7 +398,7 @@
          <el-col :span="8">
            <el-form-item label="民族" prop="name">
              <el-input
                v-model="form.name"
                v-model="form.nation"
                placeholder="请输入民族"
                maxlength="30"
              />
@@ -408,7 +407,7 @@
          <el-col :span="8">
            <el-form-item label="籍贯" prop="age">
              <el-input
                v-model="form.age"
                v-model="form.nativePlace"
                placeholder="请输入籍贯"
                maxlength="30"
              />
@@ -426,8 +425,8 @@
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="证件类型" prop="idtype">
              <el-select v-model="form.idtype" placeholder="请选择性别">
            <el-form-item label="证件类型" prop="idcardtype">
              <el-select v-model="form.idcardtype" placeholder="请选择性别">
                <el-option
                  v-for="item in paperstypes"
                  :key="item.papersname"
@@ -438,9 +437,9 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="证件号" prop="idno">
            <el-form-item label="证件号" prop="idcardno">
              <el-input
                v-model="form.idno"
                v-model="form.idcardno"
                placeholder="请输入证件号"
                maxlength="50"
              />
@@ -449,17 +448,17 @@
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="出生地" prop="idno">
            <el-form-item label="出生地" prop="idcardno">
              <el-input
                v-model="form.idno"
                v-model="form.birthplace"
                placeholder="国、省、地市、区县、街道等详细信息"
                maxlength="50"
              />
            </el-form-item> </el-col
          ><el-col :span="12">
            <el-form-item label="居住地" prop="idno">
            <el-form-item label="居住地" prop="idcardno">
              <el-input
                v-model="form.idno"
                v-model="form.placeOfResidence"
                placeholder="国、省、地市、区县、街道等详细信息"
                maxlength="50"
              />
@@ -469,7 +468,7 @@
        <el-row>
          <el-col :span="24">
            <el-form-item label="患者类型">
              <el-select v-model="form.Patienttype" placeholder="请选择类型">
              <el-select v-model="form.pattype" placeholder="请选择类型">
                <el-option
                  v-for="item in Patienttype"
                  :key="item.value"
@@ -631,14 +630,16 @@
    </el-dialog>
    <!-- 跳转服务对话框 -->
    <el-dialog title="选择服务类型" :visible.sync="serviceVisible">
      <el-radio-group v-model="serviceradio">
        <el-radio :label="1">宣教随访</el-radio>
        <el-radio :label="2">门诊服务</el-radio>
        <el-radio :label="3">出院服务</el-radio>
        <el-radio :label="4">复诊服务</el-radio>
        <el-radio :label="5">体检通知</el-radio>
        <el-radio :label="6">问卷服务</el-radio>
      </el-radio-group>
      <el-card class="box-card">
        <el-radio-group v-model="serviceradio">
          <el-radio :label="1">宣教随访</el-radio>
          <el-radio :label="2">门诊服务</el-radio>
          <el-radio :label="3">出院服务</el-radio>
          <el-radio :label="4">复诊服务</el-radio>
          <el-radio :label="5">体检通知</el-radio>
          <el-radio :label="6">问卷服务</el-radio>
        </el-radio-group>
      </el-card>
      <div slot="footer" class="dialog-footer">
        <el-button @click="serviceVisible = false">取 消</el-button>
        <el-button type="primary" @click="CreateService">创建服务</el-button>
@@ -649,13 +650,7 @@
<script>
import { delUser } from "@/api/system/user";
import {
  listpat_archive,
  getpat_archive,
  addpat_archive,
  updatepat_archive,
  delpat_archive,
} from "@/api/smartorpor/pat_archive";
import {
  messagelistpatient,
  alterpatient,
@@ -665,6 +660,11 @@
  Exporterrorpatient,
  toleadpatient,
} from "@/api/patient/homepage";
import {
  getTaskservelist,
  getTaskInfo,
  Editsingletask,
} from "@/api/AiCentre/index";
import { listtag } from "@/api/system/label";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
@@ -715,7 +715,7 @@
      Patienttype: [
        {
          value: "1",
          label: "住院患者",
          label: "在院患者",
        },
        {
          value: "2",
@@ -724,6 +724,10 @@
        {
          value: "3",
          label: "体检患者",
        },
        {
          value: "4",
          label: "出院患者",
        },
      ],
@@ -735,14 +739,17 @@
        {
          name: "在院患者",
          value: 23,
          router: "/patient/inpatient",
        },
        {
          name: "离院患者",
          name: "出院患者",
          value: 41,
          router: "/patient/hospital",
        },
        {
          name: "诊疗患者",
          name: "门诊患者",
          value: 56,
          router: "/patient/outpatient",
        },
        {
          name: "离世患者",
@@ -755,9 +762,9 @@
        age: "",
        sex: "",
        tagList: [],
        idno: "",
        idcardno: "",
        telcode: "",
        idtype: "",
        idcardtype: "",
        relativetelcode: "",
      },
      activeName: "first", //侧边选择
@@ -792,9 +799,9 @@
      // 查询参数
      queryParams: {
        pageNum: 1,
        allhosp: "1",
        allhosp: "0",
        pageSize: 10,
        idno: undefined,
        idcardno: undefined,
        name: undefined,
        status: undefined,
        tagIds: undefined,
@@ -861,6 +868,7 @@
  methods: {
    /** 查询患者列表 */
    getList() {
      console.log(this.dict.type.sys_user_sex);
      this.loading = true;
      messagelistpatient(this.queryParams).then((response) => {
        console.log(response);
@@ -874,8 +882,14 @@
    },
    /** 查询标签列表 */
    gettabList() {
      const queryParams = {};
      listtag().then((response) => {
      const tagqueryParams = {
        pageNum: 1,
        pageSize: 1000,
        tagname: undefined,
        tagdescription: undefined,
        tagcategoryid: "0",
      };
      listtag(tagqueryParams).then((response) => {
        console.log(response);
        this.optionstag = response.rows;
      });
@@ -905,9 +919,9 @@
        age: "",
        sex: "",
        tagList: [],
        idno: "",
        idcardno: "",
        telcode: "",
        idtype: "",
        idcardtype: "",
        relativetelcode: "",
      };
      // this.resetForm("form");
@@ -926,7 +940,7 @@
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map((item) => item.patid);
      this.ids = selection.map((item) => item.id);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
    },
@@ -940,7 +954,7 @@
    /** 修改按钮操作 */
    handleUpdate(row) {
      console.log(row);
      const userIds = row.patid || this.ids;
      const userIds = row.id || this.ids;
      particularpatient(userIds).then((response) => {
        console.log(response);
        this.form = response.data;
@@ -1119,6 +1133,7 @@
}
::v-deep.leftvlue .el-card__body:hover {
  background: #8dc8f8;
  cursor: pointer; /* 鼠标悬浮时变为手形 */
}
.leftvlue {
  width: 80%;