qx
2025-05-08 456ae4c82aed80e28e5b2d40339632b90c74222f
src/views/picture/picture/index.vue
@@ -1,14 +1,17 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery"
          style="width: 110px" />
      </el-form-item>
      <el-form-item label="体检号" prop="tjNumber">
        <el-input ref="inputName" v-model="queryParams.tjNumber" placeholder="请输入体检号" clearable
          @keyup.enter.native="handleQuery" @blur="hb" style="width: 170px" />
      </el-form-item>
      <el-form-item label="姓名" prop="name">
        <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery"
          style="width: 110px" />
      <el-form-item label="项目" prop="tcm">
        <el-input v-model="queryParams.tcm" placeholder="请输入项目" clearable @keyup.enter.native="handleQuery"
          style="width: 170px" />
      </el-form-item>
      <el-form-item label="单位名称" prop="tjCompName" style="margin-left: 20px">
        <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId"
@@ -16,25 +19,26 @@
          <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
        </el-select>
      </el-form-item>
      <el-form-item label="项目" prop="tcm">
        <el-input v-model="queryParams.tcm" placeholder="请输入项目" clearable @keyup.enter.native="handleQuery"
          style="width: 170px" />
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
          style="margin-right: 15px">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse" style="margin-right: 15px"
          v-show="isCollapsed == 0">高级搜索</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse3" style="margin-right: 15px"
          v-show="isCollapsed == 1">高级搜索</el-button>
      </el-form-item>
      <el-form-item label="登记时间" prop="createTimeList" v-show="isCollapsed == 1">
      <el-row v-show="isCollapsed == 1" :gutter="20">
        <el-col :span="8">
          <el-form-item label="登记时间" prop="createTimeList" v-show="isCollapsed == 1">
        <el-date-picker v-model="createTimeList" type="datetimerange" align="right" :picker-options="pickerOptions"
          style="width: 310px" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']"
          format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" @change="dateChangebirthday1">
        </el-date-picker>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" size="mini" @click="toggleCollapse" style="margin-right: 15px"
          v-show="isCollapsed == 0">展开更多</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse3" style="margin-right: 15px"
          v-show="isCollapsed == 1">收起更多</el-button>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
          style="margin-right: 15px">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-radio-group v-model="checkStatus" @input="radioChange" style="margin: 10px 15px">
@@ -46,7 +50,7 @@
      <el-col :span="11">
        <el-table v-loading="loading" ref="tb" :data="pictureList" highlight-current-row
          :row-class-name="tableRowClassName" @current-change="handleCurrentChange" border height="520px">
          <el-table-column label="体检号" align="center" prop="tjNumber" min-width="160" />
          <el-table-column label="体检号" align="center" prop="tjNumber" min-width="130" />
          <el-table-column label="姓名" align="center" prop="cusName" min-width="80" />
          <el-table-column label="性别" align="center" prop="cusSex" min-width="50">
            <template slot-scope="scope">
@@ -56,7 +60,7 @@
              <span v-if="scope.row.cusSex == '9'">未说明性别</span>
            </template>
          </el-table-column>
          <el-table-column label="手机号" align="center" prop="cusPhone" min-width="100" />
          <el-table-column label="身份证号" align="center" prop="cusIdcard" min-width="190" />
          <el-table-column label="套餐名" align="center" prop="tcm" min-width="100" />
          <el-table-column label="登记时间" align="center" prop="tjTime" min-width="120" />
          <el-table-column label="审核状态" align="center" prop="confirmStatus" min-width="80">
@@ -137,9 +141,10 @@
        <el-button type="primary" @click="imagePreviewVisible = false">确定</el-button>
      </span>
    </el-dialog>
    <Public ref="aaa" :check-status="checkStatus" :pro-result="form.proResult" :conclusion="form.conclusion"
      @add="handleChanges" :project-list="projectList" />
  </div>
</template>
<script>
import {
  getListPicture,
@@ -310,12 +315,19 @@
      tupian(formData)
        .then(response => {
          console.log('成功了', response);
          if (response.code === 200 && response.base64) {
          if (response.code === 200) {
            this.$message.success('图片上传成功!');
            const index = this.tableList.findIndex(item => item.proId === proId);
            if (index !== -1) {
              const base64Image = `data:image/${fileExtension};base64,${response.base64}`;
              this.$set(this.tableList[index], 'imageUrl', base64Image);
              // 保存 base64 图像用于显示
              if (response.base64) {
                const base64Image = `data:image/${fileExtension};base64,${response.base64}`;
                this.$set(this.tableList[index], 'imageUrl', base64Image);
              }
              // 保存返回的 url
              if (response.url) {
                this.$set(this.tableList[index], 'url', response.url);
              }
            }
          } else {
            this.$message.error('图片上传失败!');
@@ -537,7 +549,14 @@
      let tjNumber = val;
      this.loading = true;
      getYxJcXx(tjNumber).then((res) => {
        this.tableList = res.data;
        this.tableList = res.data.map(item => {
          // 如果 imageUrl 存在且是纯 Base64 字符串,添加 data:image 前缀
          if (item.imageUrl && !item.imageUrl.startsWith('data:image')) {
            // 假设图片类型为 png,如果接口提供类型,可以替换为动态值
            item.imageUrl = `data:image/png;base64,${item.imageUrl}`;
          }
          return item;
        });
        this.loading = false;
        this.$nextTick(() => {
          const headerCheckbox = this.$refs.mu.$el.querySelector(
@@ -678,12 +697,14 @@
      const proId = this.selectedRow.proId;
      const jcsj = this.form.proResult || " ";
      const jcjl = this.form.conclusion || " ";
      const url = this.selectedRow.url || ""; // 获取 url,如果不存在则为空字符串
      addYxJcXx({
        proId: proId,
        tjNumber: this.selectedTjNumber,
        jcsj: jcsj,
        jcjl: jcjl,
        url: url // 添加 url 参数
      })
        .then((response) => {
          this.form.proResult = "";
@@ -704,8 +725,8 @@
          console.error("提交失败", error);
        });
    },
    handleDelete() {},
    handleExport() {},
    handleDelete() { },
    handleExport() { },
  },
};
</script>