WXL
5 天以前 4c9fdc87987140e8b2c3f0dfc2f6608cdb6be774
src/views/business/assess/index.vue
@@ -8,7 +8,7 @@
        :inline="true"
        label-width="100px"
      >
        <el-form-item label="捐献者姓名" prop="name">
        <el-form-item label="姓名" prop="name">
          <el-input
            v-model="queryParams.name"
            placeholder="请输入捐献者姓名"
@@ -26,7 +26,7 @@
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="业务人员" prop="coordinatorName">
        <el-form-item label="协调员" prop="coordinatorName">
          <el-input
            v-model="queryParams.coordinatorName"
            placeholder="请输入业务人员"
@@ -35,10 +35,10 @@
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="评估状态" prop="assessState">
        <el-form-item label="评估结果" prop="assessState">
          <el-select
            v-model="queryParams.assessState"
            placeholder="请选择评估状态"
            placeholder="请选择评估结果"
            clearable
            style="width: 200px"
          >
@@ -48,7 +48,7 @@
            <el-option label="已关闭" value="4" />
          </el-select>
        </el-form-item>
        <el-form-item label="申请时间" prop="applyTimeRange">
        <el-form-item label="首次评估时间" prop="applyTimeRange">
          <el-date-picker
            v-model="queryParams.applyTimeRange"
            type="daterange"
@@ -59,7 +59,7 @@
            style="width: 240px"
          />
        </el-form-item>
        <el-form-item label="评估时间" prop="assessTimeRange">
        <el-form-item label="最新评估时间" prop="assessTimeRange">
          <el-date-picker
            v-model="queryParams.assessTimeRange"
            type="daterange"
@@ -83,10 +83,10 @@
    <el-card class="tool-card">
      <el-row :gutter="10">
        <el-col :span="16">
          <el-button type="primary" icon="el-icon-plus" @click="handleCreate"
          <!-- <el-button type="primary" icon="el-icon-plus" @click="handleCreate"
            >新增评估</el-button
          >
          <el-button
          > -->
          <!-- <el-button
            type="success"
            icon="el-icon-edit"
            :disabled="single"
@@ -99,7 +99,7 @@
            :disabled="multiple"
            @click="handleDelete"
            >删除</el-button
          >
          > -->
          <el-button
            type="warning"
            icon="el-icon-download"
@@ -121,21 +121,15 @@
        v-loading="loading"
        :data="assessmentList"
        @selection-change="handleSelectionChange"
        @row-click="handleRowClick"
      >
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column
          label="住院号"
          align="center"
          prop="caseNo"
          prop="inpatientno"
          width="120"
        />
        <el-table-column
          label="潜在捐献者姓名"
          align="center"
          prop="name"
          width="120"
        />
        <el-table-column label="姓名" align="center" prop="name" width="120" />
        <el-table-column label="性别" align="center" prop="sex" width="80">
          <template slot-scope="scope">
            <dict-tag
@@ -146,12 +140,39 @@
        </el-table-column>
        <el-table-column label="年龄" align="center" prop="age" width="80" />
        <el-table-column
          label="血型"
          align="center"
          prop="bloodtype"
          width="80"
        >
          <template slot-scope="scope">
            <dict-tag
              :options="dict.type.sys_BloodType"
              :value="scope.row.bloodtype"
            />
          </template>
        </el-table-column>
        <el-table-column
          label="疾病诊断"
          align="center"
          prop="diagnosisname"
          min-width="180"
          width="200"
          show-overflow-tooltip
        />
        <el-table-column
          label="捐献类型"
          align="center"
          prop="donationcategory"
          width="180"
        >
          <template slot-scope="scope">
            <dict-tag
              :options="dict.type.sys_DonationCategory"
              :value="scope.row.donationcategory"
            />
          </template>
        </el-table-column>
        <!--
        <el-table-column
          label="所在医疗机构"
          align="center"
@@ -169,6 +190,21 @@
            <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span>
          </template>
        </el-table-column>
        -->
        <el-table-column
          label="评估状态"
          align="center"
          prop="assessState"
          width="100"
        >
          <template slot-scope="scope">
            <dict-tag
              :options="dict.type.state_Evaluation"
              :value="scope.row.assessState"
            />
          </template>
        </el-table-column>
        <el-table-column
          label="评估时间"
          align="center"
@@ -184,27 +220,22 @@
          </template>
        </el-table-column>
        <el-table-column
          label="评估状态"
          align="center"
          prop="assessState"
          width="100"
        >
          <template slot-scope="scope">
            <el-tag :type="statusFilter(scope.row.assessState)">
              {{ statusTextFilter(scope.row.assessState) }}
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column
          label="业务人员"
          label="协调员"
          align="center"
          prop="coordinatorName"
          width="100"
        />
        <el-table-column
          label="捐献编号"
          align="center"
          prop="caseNo"
          width="220"
        />
         <el-table-column
          label="操作"
          align="center"
          width="200"
          min-width="180"
          fixed="right"
          class-name="small-padding fixed-width"
        >
          <template slot-scope="scope">
@@ -213,26 +244,14 @@
              type="text"
              icon="el-icon-view"
              @click.stop="handleView(scope.row)"
              >详情</el-button
              >查看</el-button
            >
            <el-button
              v-if="
                scope.row.assessState === '1' ||
                  scope.row.assessState === '2'
              "
              size="mini"
              type="text"
              icon="el-icon-edit"
              @click.stop="handleAssess(scope.row)"
              >评估</el-button
            >
            <el-button
              v-if="scope.row.assessState === '3'"
              size="mini"
              type="text"
              icon="el-icon-check"
              @click.stop="handleConfirm(scope.row)"
              >确认</el-button
              @click.stop="handleUpdate(scope.row)"
              >编辑</el-button
            >
          </template>
        </el-table-column>
@@ -257,7 +276,7 @@
export default {
  name: "AssessmentList",
  components: { Pagination },
  dicts: ["sys_user_sex"],
  dicts: ["sys_user_sex", "state_Evaluation", "sys_BloodType", "sys_DonationCategory"],
  data() {
    return {
      // 遮罩层
@@ -356,12 +375,18 @@
      }
      // 处理时间范围查询
      if (this.queryParams.applyTimeRange && this.queryParams.applyTimeRange.length === 2) {
      if (
        this.queryParams.applyTimeRange &&
        this.queryParams.applyTimeRange.length === 2
      ) {
        params.startApplyTime = this.queryParams.applyTimeRange[0];
        params.endApplyTime = this.queryParams.applyTimeRange[1];
      }
      if (this.queryParams.assessTimeRange && this.queryParams.assessTimeRange.length === 2) {
      if (
        this.queryParams.assessTimeRange &&
        this.queryParams.assessTimeRange.length === 2
      ) {
        params.startAssessTime = this.queryParams.assessTimeRange[0];
        params.endAssessTime = this.queryParams.assessTimeRange[1];
      }
@@ -375,19 +400,19 @@
        if (Array.isArray(response.data)) {
          // 如果返回的是数组
          this.assessmentList = response.data;
          this.total = response.data.length;
          this.total = response.total;
        } else if (response.data.rows) {
          // 如果返回的是分页数据结构
          this.assessmentList = response.data.rows;
          this.total = response.data.total;
          this.total = response.total;
        } else if (Array.isArray(response.data.list)) {
          // 如果返回的是list字段
          this.assessmentList = response.data.list;
          this.total = response.data.total || response.data.list.length;
          this.total = response.total || response.data.list.length;
        } else {
          // 其他数据结构,尝试直接使用data
          this.assessmentList = response.data;
          this.total = response.total || response.data.length;
          this.total = response.total || response.total;
        }
      } else {
        // 如果data为空,使用根级别的rows或list
@@ -436,14 +461,7 @@
    handleView(row) {
      this.$router.push({
        path: "/case/assessInfo",
        query: { id: row.id, infoid: row.infoid }
      });
    },
    // 进行评估
    handleAssess(row) {
      this.$router.push({
        path: "/case/assessInfo",
        query: { id: row.id, infoid: row.infoid, assess: true }
        query: { id: row.id, infoid: row.infoid, mode: "view" }
      });
    },
    // 确认评估
@@ -460,7 +478,7 @@
        // 刷新列表
        this.getList();
      } catch (error) {
        if (error !== 'cancel') {
        if (error !== "cancel") {
          console.error("确认失败:", error);
        }
      }
@@ -469,14 +487,11 @@
    handleCreate() {
      this.$router.push("/case/assessment/add");
    },
    // 修改按钮操作
    handleUpdate() {
      if (this.ids.length === 0) return;
      const id = this.ids[0];
    // 编辑
    handleUpdate(row) {
      this.$router.push({
        path: "/case/assessment/edit",
        query: { id: id }
        path: "/case/assessInfo",
        query: { id: row.id, infoid: row.infoid, mode: "edit" }
      });
    },
    // 删除按钮操作
@@ -493,7 +508,6 @@
        // 这里需要调用删除接口,暂时模拟成功
        this.$message.success("删除成功");
        this.getList();
      } catch (error) {
        if (error !== "cancel") {
          console.error("删除失败:", error);
@@ -526,7 +540,6 @@
        } else {
          this.$message.error("导出失败:" + (response.msg || "未知错误"));
        }
      } catch (error) {
        if (error !== "cancel") {
          console.error("导出失败:", error);
@@ -545,11 +558,11 @@
      // 模拟文件下载
      const blob = new Blob([JSON.stringify(data, null, 2)], {
        type: 'application/vnd.ms-excel'
        type: "application/vnd.ms-excel"
      });
      const link = document.createElement('a');
      const link = document.createElement("a");
      link.href = URL.createObjectURL(blob);
      link.download = '医学评估数据.xlsx';
      link.download = "医学评估数据.xlsx";
      link.click();
    },
    // 时间格式化