WXL
2024-08-06 17b041e2e7ebd5afe75403fefc57cc6a88b51dad
src/views/patient/patient/index.vue
@@ -9,17 +9,13 @@
      <div class="bottom-fl">
        <el-tabs
          tab-position="right"
          v-model="activeName"
          v-model="queryParams.allhosp"
          @tab-click="handleClick"
        >
          <el-tab-pane label="全部" name="first"></el-tab-pane>
          <el-tab-pane label="在院" name="Inhospital"></el-tab-pane>
          <el-tab-pane label="离院" name="Discharge"></el-tab-pane>
          <el-tab-pane label="预约" name="subscribe"></el-tab-pane>
          <el-tab-pane label="已检" name="checked"></el-tab-pane>
          <el-tab-pane label="住院患者" name="behospitalized"></el-tab-pane>
          <el-tab-pane label="门诊患者" name="outpatient"></el-tab-pane>
          <el-tab-pane label="体检患者" name="physical"></el-tab-pane>
          <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>
        </el-tabs>
      </div>
    </div>
@@ -96,17 +92,8 @@
                  </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="选择日期"
                  :picker-options="pickerOptionsa"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item label="就诊编号" prop="number">
              <el-form-item label="档案编号" prop="number">
                <el-input
                  v-model="queryParams.number"
                  placeholder="请输入编号"
@@ -174,7 +161,7 @@
                  >删除</el-button
                >
              </el-col>
              <el-col :span="19">
              <el-col :span="6">
                <div class="documentf">
                  <div class="document">
                    <el-button
@@ -209,12 +196,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"
@@ -235,19 +224,16 @@
              <el-table-column
                label="出生年月"
                align="center"
                key="archivetime"
                prop="archivetime"
                key="birthdate"
                prop="birthdate"
                width="160"
              >
                <template slot-scope="scope">
                  <span>{{ parseTime(scope.row.createTime) }}</span>
                </template>
              </el-table-column>
              <el-table-column
                label="家庭住址"
                label="居住地"
                align="center"
                key="age"
                prop="age"
                key="placeOfResidence"
                prop="placeOfResidence"
                width="120"
              />
              <el-table-column
@@ -259,20 +245,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="iccardtype"
                prop="iccardtype"
                key="idcardtype"
                prop="idcardtype"
                width="120"
              /><el-table-column
                label="证件号码"
                align="center"
                key="iccardno"
                prop="iccardno"
                key="idcardno"
                prop="idcardno"
                width="190"
              />
@@ -286,7 +274,14 @@
              <el-table-column
                label="建档日期"
                align="center"
                key="archivetime"
                key="createTime"
                prop="createTime"
                width="160"
              >
              </el-table-column>
              <el-table-column
                label="更新日期"
                align="center"
                prop="archivetime"
                width="160"
              >
@@ -295,16 +290,7 @@
                </template>
              </el-table-column>
              <el-table-column
                label="更新日期"
                align="center"
                prop="updateTime"
                width="160"
              >
                <template slot-scope="scope">
                  <span>{{ parseTime(scope.row.createTime) }}</span>
                </template>
              </el-table-column>
              <el-table-column
                fixed="right"
                label="操作"
                align="center"
                width="190"
@@ -317,7 +303,7 @@
                    @click="
                      $router.push({
                        path: '/patient/patient/profile/',
                        query: { id: scope.row.patid },
                        query: { id: scope.row.id },
                      })
                    "
                    v-hasPermi="['system:user:edit']"
@@ -339,7 +325,7 @@
                    type="text"
                    @click="Distributionservice(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textxg"
                    ><span class="button-textxg"
                      ><i class="el-icon-menu"></i>服务</span
                    ></el-button
                  >
@@ -367,7 +353,7 @@
    >
      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
        <el-row>
          <el-col :span="12">
          <el-col :span="8">
            <el-form-item label="姓名" prop="name">
              <el-input
                v-model="form.name"
@@ -376,7 +362,7 @@
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
          <el-col :span="8">
            <el-form-item label="性别" prop="sex">
              <el-select v-model="form.sex" placeholder="请选择性别">
                <el-option
@@ -388,11 +374,49 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="年龄" prop="age">
              <el-input
                v-model="form.age"
                placeholder="请输入年龄"
                maxlength="30"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="民族" prop="name">
              <el-input
                v-model="form.nation"
                placeholder="请输入民族"
                maxlength="30"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="籍贯" prop="age">
              <el-input
                v-model="form.nativePlace"
                placeholder="请输入籍贯"
                maxlength="30"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="联系方式" prop="telcode">
              <el-input
                v-model="form.telcode"
                placeholder="请输入联系方式"
                maxlength="30"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="证件类型" prop="iccardtype">
              <el-select v-model="form.iccardtype" placeholder="请选择性别">
            <el-form-item label="证件类型" prop="idcardtype">
              <el-select v-model="form.idcardtype" placeholder="请选择性别">
                <el-option
                  v-for="item in paperstypes"
                  :key="item.papersname"
@@ -403,9 +427,9 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="证件号" prop="iccardno">
            <el-form-item label="证件号" prop="idcardno">
              <el-input
                v-model="form.iccardno"
                v-model="form.idcardno"
                placeholder="请输入证件号"
                maxlength="50"
              />
@@ -414,49 +438,34 @@
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="本人手机号" prop="telcode">
            <el-form-item label="出生地" prop="idcardno">
              <el-input
                v-model="form.telcode"
                placeholder="请输入手机号"
                maxlength="30"
                v-model="form.birthplace"
                placeholder="国、省、地市、区县、街道等详细信息"
                maxlength="50"
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="亲属手机号" prop="relativetelcode">
            </el-form-item> </el-col
          ><el-col :span="12">
            <el-form-item label="居住地" prop="idcardno">
              <el-input
                v-model="form.relativetelcode"
                placeholder="请输入亲属手机号"
                type="password"
                maxlength="20"
                show-password
                v-model="form.placeOfResidence"
                placeholder="国、省、地市、区县、街道等详细信息"
                maxlength="50"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="年龄" prop="age">
              <el-input
                v-model="form.age"
                placeholder="请输入年龄"
                maxlength="30"
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="患者标签">
              <!-- <el-select v-model="form.sex" placeholder="请选择"> -->
              <el-select v-model="form.tagList" multiple placeholder="请选择">
          <el-col :span="24">
            <el-form-item label="患者类型">
              <el-select v-model="form.pattype" placeholder="请选择类型">
                <el-option
                  v-for="item in optionstag"
                  :key="item.tagid"
                  :label="item.tagname"
                  :value="item.tagid"
                >
                </el-option>
                  v-for="item in Patienttype"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                ></el-option>
              </el-select>
              <!-- </el-select> -->
            </el-form-item>
          </el-col>
        </el-row>
@@ -518,7 +527,16 @@
              :underline="false"
              style="font-size: 24px; vertical-align: baseline"
              @click="importTemplate"
              >下载模板</el-link
              >下载模板
            </el-link>
            <el-link
              type="success"
              :underline="false"
              style="font-size: 24px; vertical-align: baseline"
              href="http://m.qpic.cn/psc?/V50ZTolo1AIhq00dqrJP2169QM2VHGTU/ruAMsa53pVQWN7FLK88i5qfmCJclyMduqqL6kjE4h7TXDAjimVtmLmTyGVfF4qlkyOISsYQ4Mxx705X2tkXEIUPrfCS4L4yK.f11SmO8Tq0!/b&bo=twb0AgAAAAADB2U!&rf=viewer_4"
              target="_blank"
            >
              查看模版</el-link
            >
          </div>
        </el-upload>
@@ -539,6 +557,7 @@
          </el-table-column>
          <el-table-column prop="tag" label="患者标签"> </el-table-column>
          <el-table-column prop="erry" label="错误原因"> </el-table-column>
          <el-table-column prop="opinion" label="处理意见"> </el-table-column>
        </el-table>
        <pagination
          v-show="total > 0"
@@ -550,16 +569,49 @@
      </div>
      <!-- 完成 -->
      <div class="drexamine" v-else-if="dractive == 3">
        <img
          src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
        />
        <img src="@/assets/images/导入.png" />
        <p>导入患者成功!</p>
        <p>本次共计导入{{ ImportQuantity }}位患者</p>
        <p>
          本次
          <span style="color: #158bb8; font-size: 20px">{{
            ImportQuantity
          }}</span>
          条数据成功导入<span style="color: #72d3a9; font-size: 20px">{{
            ImportQuantity
          }}</span
          >位患者
        </p>
      </div>
      <div v-if="dractive == 3">
        <el-table :data="uploadingData" style="width: 100%">
          <el-table-column prop="serial" label="序号"> </el-table-column>
          <el-table-column prop="name" label="姓名"> </el-table-column>
          <el-table-column prop="sex" label="性别"> </el-table-column>
          <el-table-column prop="certificate" label="证件类型">
          </el-table-column>
          <el-table-column prop="certificatenum" label="证件号码">
          </el-table-column>
          <el-table-column prop="goday" label="出生日期"> </el-table-column>
          <el-table-column prop="menum" label="本人联系方式"> </el-table-column>
          <el-table-column prop="younum" label="亲属联系方式">
          </el-table-column>
          <el-table-column prop="tag" label="患者标签"> </el-table-column>
          <el-table-column prop="erry" label="错误原因"> </el-table-column>
          <el-table-column prop="opinion" label="处理意见"> </el-table-column>
        </el-table>
        <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="geterryList"
        />
      </div>
      <div slot="footer" class="dialog-footer" v-if="dractive == 3">
        <!-- <el-button type="primary" @click="submitFileForm">下一步</el-button> -->
        <el-button @click="submitclose">完成</el-button>
        <el-button type="warning" @click="submitclose">导出失败数据</el-button>
      </div>
      <div slot="footer" v-else>
        <el-button type="primary" @click="submitFileForm">下一步</el-button>
@@ -569,17 +621,16 @@
    <!-- 跳转服务对话框 -->
    <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="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>
      <div slot="footer" class="dialog-footer">
        <el-button @click="serviceVisible = false">取 消</el-button>
        <el-button type="primary" @click="serviceVisible = false"
          >创建服务</el-button
        >
        <el-button type="primary" @click="CreateService">创建服务</el-button>
      </div>
    </el-dialog>
  </div>
@@ -587,13 +638,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,
@@ -603,6 +648,12 @@
  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";
@@ -632,6 +683,7 @@
      title: "",
      // 部门树选项
      deptOptions: undefined,
      options: [],
      // 是否显示弹出层
      open: false,
      // 部门名称
@@ -649,6 +701,25 @@
        { papersname: "中国港澳居民身份证" },
        { papersname: "中国台湾居民身份证" },
      ],
      Patienttype: [
        {
          value: "1",
          label: "在院患者",
        },
        {
          value: "2",
          label: "门诊患者",
        },
        {
          value: "3",
          label: "体检患者",
        },
        {
          value: "4",
          label: "出院患者",
        },
      ],
      cardlist: [
        {
          name: "患者总数",
@@ -677,9 +748,9 @@
        age: "",
        sex: "",
        tagList: [],
        iccardno: "",
        idcardno: "",
        telcode: "",
        iccardtype: "",
        idcardtype: "",
        relativetelcode: "",
      },
      activeName: "first", //侧边选择
@@ -714,8 +785,9 @@
      // 查询参数
      queryParams: {
        pageNum: 1,
        allhosp: "0",
        pageSize: 10,
        iccardno: undefined,
        idcardno: undefined,
        name: undefined,
        status: undefined,
        tagIds: undefined,
@@ -782,6 +854,7 @@
  methods: {
    /** 查询患者列表 */
    getList() {
      console.log(this.dict.type.sys_user_sex);
      this.loading = true;
      messagelistpatient(this.queryParams).then((response) => {
        console.log(response);
@@ -790,10 +863,19 @@
        this.loading = false;
      });
    },
    handleClick() {
      this.getList();
    },
    /** 查询标签列表 */
    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;
      });
@@ -823,9 +905,9 @@
        age: "",
        sex: "",
        tagList: [],
        iccardno: "",
        idcardno: "",
        telcode: "",
        iccardtype: "",
        idcardtype: "",
        relativetelcode: "",
      };
      // this.resetForm("form");
@@ -844,7 +926,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;
    },
@@ -858,7 +940,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;
@@ -906,6 +988,13 @@
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => {});
    },
    //服务跳转
    CreateService() {
      this.$router.push({
        path: "/followvisit/particty",
        query: { type: this.serviceradio },
      });
    },
    /** 导出按钮操作 */
    handleExport() {
@@ -1084,17 +1173,17 @@
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
  padding: 20px;
  background: #daeaf5;
  img {
    width: 100px;
    height: 100px;
    width: 50px;
    height: 50px;
  }
}
.button-textsc {
  color: #28cfe6;
}
.button-textxg{
.button-textxg {
  color: #de7897;
}
</style>