WXL
2023-12-15 04332cb7ab99f5744c79cd70686e86a878a14b7f
src/views/patient/patient/index.vue
@@ -9,17 +9,12 @@
      <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="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,13 +91,21 @@
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="出院日期" prop="userName">
              <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="departuretime">
                <el-date-picker
                  v-model="queryParams.departuretime"
                  align="right"
                  type="date"
                  placeholder="选择日期"
                >
                </el-date-picker>
              </el-form-item>
@@ -174,7 +177,7 @@
                  >删除</el-button
                >
              </el-col>
              <el-col :span="19">
              <el-col :span="6">
                <div class="documentf">
                  <div class="document">
                    <el-button
@@ -235,16 +238,13 @@
              <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"
@@ -265,14 +265,14 @@
              <el-table-column
                label="证件类型"
                align="center"
                key="iccardtype"
                prop="iccardtype"
                key="idtype"
                prop="idtype"
                width="120"
              /><el-table-column
                label="证件号码"
                align="center"
                key="iccardno"
                prop="iccardno"
                key="idno"
                prop="idno"
                width="190"
              />
@@ -286,13 +286,10 @@
              <el-table-column
                label="建档日期"
                align="center"
                key="archivetime"
                prop="archivetime"
                key="uploadTime"
                prop="uploadTime"
                width="160"
              >
                <template slot-scope="scope">
                  <span>{{ parseTime(scope.row.createTime) }}</span>
                </template>
              </el-table-column>
              <el-table-column
                label="更新日期"
@@ -307,7 +304,7 @@
              <el-table-column
                label="操作"
                align="center"
                width="160"
                width="190"
                class-name="small-padding fixed-width"
              >
                <template slot-scope="scope">
@@ -330,7 +327,7 @@
                    type="text"
                    @click="handleUpdate(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textxg"
                    ><span class="button-textxga"
                      ><i class="el-icon-edit"></i>修改</span
                    ></el-button
                  >
@@ -340,7 +337,7 @@
                    @click="Distributionservice(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textxg"
                      ><i class="el-icon-edit"></i>服务</span
                      ><i class="el-icon-menu"></i>服务</span
                    ></el-button
                  >
                </template>
@@ -367,7 +364,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 +373,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 +385,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.name"
                placeholder="请输入民族"
                maxlength="30"
              />
            </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-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="idtype">
              <el-select v-model="form.idtype" placeholder="请选择性别">
                <el-option
                  v-for="item in paperstypes"
                  :key="item.papersname"
@@ -403,9 +438,9 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="证件号" prop="iccardno">
            <el-form-item label="证件号" prop="idno">
              <el-input
                v-model="form.iccardno"
                v-model="form.idno"
                placeholder="请输入证件号"
                maxlength="50"
              />
@@ -414,49 +449,34 @@
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="本人手机号" prop="telcode">
            <el-form-item label="出生地" prop="idno">
              <el-input
                v-model="form.telcode"
                placeholder="请输入手机号"
                maxlength="30"
                v-model="form.idno"
                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="idno">
              <el-input
                v-model="form.relativetelcode"
                placeholder="请输入亲属手机号"
                type="password"
                maxlength="20"
                show-password
                v-model="form.idno"
                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.Patienttype" 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 +538,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 +568,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,20 +580,68 @@
      </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>
        <el-button @click="submitclose">取 消</el-button>
      </div>
    </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>
      <div slot="footer" class="dialog-footer">
        <el-button @click="serviceVisible = false">取 消</el-button>
        <el-button type="primary" @click="CreateService">创建服务</el-button>
      </div>
    </el-dialog>
  </div>
@@ -616,6 +694,7 @@
      title: "",
      // 部门树选项
      deptOptions: undefined,
      options: [],
      // 是否显示弹出层
      open: false,
      // 部门名称
@@ -623,6 +702,8 @@
      // 默认密码
      initPassword: undefined,
      amendtag: false, //是否修改
      serviceVisible: false,
      serviceradio: 1,
      // 日期范围
      dateRange: [],
      paperstypes: [
@@ -631,6 +712,21 @@
        { papersname: "中国港澳居民身份证" },
        { papersname: "中国台湾居民身份证" },
      ],
      Patienttype: [
        {
          value: "1",
          label: "住院患者",
        },
        {
          value: "2",
          label: "门诊患者",
        },
        {
          value: "3",
          label: "体检患者",
        },
      ],
      cardlist: [
        {
          name: "患者总数",
@@ -659,9 +755,9 @@
        age: "",
        sex: "",
        tagList: [],
        iccardno: "",
        idno: "",
        telcode: "",
        iccardtype: "",
        idtype: "",
        relativetelcode: "",
      },
      activeName: "first", //侧边选择
@@ -696,8 +792,9 @@
      // 查询参数
      queryParams: {
        pageNum: 1,
        allhosp: "1",
        pageSize: 10,
        iccardno: undefined,
        idno: undefined,
        name: undefined,
        status: undefined,
        tagIds: undefined,
@@ -772,6 +869,9 @@
        this.loading = false;
      });
    },
    handleClick() {
      this.getList();
    },
    /** 查询标签列表 */
    gettabList() {
      const queryParams = {};
@@ -789,16 +889,8 @@
        this.loading = false;
      });
    },
    // 筛选节点
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    },
    // 节点单击事件
    handleNodeClick(data) {
      this.queryParams.deptId = data.id;
      this.handleQuery();
    Distributionservice(row) {
      this.serviceVisible = true;
    },
    // 取消按钮
@@ -813,9 +905,9 @@
        age: "",
        sex: "",
        tagList: [],
        iccardno: "",
        idno: "",
        telcode: "",
        iccardtype: "",
        idtype: "",
        relativetelcode: "",
      };
      // this.resetForm("form");
@@ -896,6 +988,13 @@
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => {});
    },
    //服务跳转
    CreateService() {
      this.$router.push({
        path: "/followvisit/particty",
        query: { type: this.serviceradio },
      });
    },
    /** 导出按钮操作 */
    handleExport() {
@@ -1074,14 +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 {
  color: #de7897;
}
</style>