11
lkk
2025-03-31 bad2bc143be3f8ddb93a1c9f984127b3ccf43e8f
src/views/sampling/sampling/index.vue
@@ -21,10 +21,10 @@
        </el-select>
      </el-form-item>
      <!-- <el-form-item label="是否采样" prop="isSignFor">
                    <el-select style="width:100px" v-model="queryParams.isSignFor" placeholder="是否采样">
                    <el-select1 style="width:100px" v-model="queryParams.isSignFor" placeholder="是否采样">
                            <el-option v-for="dict in dict.type.sampling_type" :key="dict.value" :label="dict.label"
                                :value="dict.value"></el-option>
                        </el-select>
                        </el-select1>
            </el-form-item> -->
      <!-- <el-form-item label="体检时间" prop="tjTime">
                <el-date-picker clearable v-model="queryParams.tjTime" type="date" value-format="yyyy-MM-dd"
@@ -104,9 +104,9 @@
        </el-table>
      </div>
      <div style="width: 50%">
        <!-- v-if="this.rightTabShow" -->
        <el-table v-loading="loading" :data="tableList" @selection-change="handleChange" :span-method="objectSpanMethod"
          ref="tab1" :row-class-name="tableRowClassName" border height="520px">
        <!-- v-if="this.rightTabShow"  v-if="tableList.length > 0"-->
        <el-table  v-loading="loading" :data="tableList" @selection-change="handleChange" :span-method="objectSpanMethod"
          ref="elTable" :row-class-name="tableRowClassName" border height="520px">
          <el-table-column type="selection" width="40" align="center" />
          <!--  :selectable="selectEnable" -->
          <!-- <el-table-column label="是否签收" align="center" prop="isSignFor" /> -->
@@ -211,12 +211,7 @@
<script>
import {
  listSampling,
  getSampling,
  getList,
  delSampling,
  addSampling,
  updateSampling,
  confirmSampling,
  getCusCyList,
  mergeCaiYang,
@@ -227,10 +222,8 @@
import { getNewDateList } from "@/api/hosp/order";
import moment from "moment";
import {
  SubmitCompany,
  getCompany,
  queryCompany,
  addbatch,
} from "@/api/team/tuanti";
export default {
  dicts: [
@@ -244,12 +237,11 @@
  data() {
    return {
      CheckBox: {},
      CompanyList: [],
      piliangList: [],
      msg: "",
      getNumbr: null,
      valueUrl: "ws://192.168.1.138:6789/websocket",
      valueUrl: "ws://127.0.0.1:6789/websocket",
      webSocket: null,
      list: [],
      selectList: [],
@@ -264,7 +256,6 @@
      tjStatus: "1",
      dayinData: [],
      jsonObj: {},
      // 非单个禁用
      single: true,
      // 非多个禁用
@@ -333,20 +324,17 @@
      form: {},
      // 表单校验
      rules: {},
      // rightTabShow: false
      allSelected: false,
      disableSelections: false, // 控制选择禁用状态
    };
  },
  created() {
    // this.getNowTime();
    getTxmmccd().then((res) => {
      this.msg = Number(res.msg);
      console.log(res, 444);
    });
    getCompany(this.queryParams).then((response) => {
      this.CompanyList = response.data;
      this.loading = false;
    });
    this.getdate();
@@ -393,6 +381,12 @@
      }
    },
    async piliangPrint() {
      // 检查是否有选中的数据
      if (this.piliangList.length === 0) {
        this.$message.warning('请先选择要打印的数据');
        return;
      }
      const loadingInstance = this.$loading({
        lock: true,
        text: '打印中...',
@@ -406,15 +400,29 @@
            // 获取数据,并等待数据更新完成
            const tableList = await this.fetchData(item.tjNumber);
            // 只保留最新两个元素
            if (tableList.length > 0) {
              this.selectList = tableList.slice(0, 2);
            } else {
              this.selectList = []; // 如果没有数据,清空selectList
            // 检查 tableList 是否有数据
            if (!tableList || tableList.length === 0) {
              console.error(`体检号 ${item.tjNumber} 无相关数据`);
              continue;
            }
            // 使用更新后的tableList获取ids
            // 直接使用所有数据
            this.selectList = tableList;
            // 检查 selectList 是否有数据
            if (this.selectList.length === 0) {
              console.error(`体检号 ${item.tjNumber} 的 selectList 为空,跳过 WebSocket 操作`);
              continue;
            }
            // 使用更新后的 tableList 获取 ids
            let ids = this.selectList.map(row => row.id);
            if (ids.length === 0) {
              console.error(`体检号 ${item.tjNumber} 无有效 ID`);
              continue;
            }
            // 确认采样
            await this.Confirmreceipt1(ids);
            // 等待一段时间
@@ -424,8 +432,8 @@
          }
        }
      } finally {
        this.ids = []; // 清空ids
        this.selectList = []; // 清空selectList
        this.ids = []; // 清空 ids
        this.selectList = []; // 清空 selectList
        loadingInstance.close();
      }
    },
@@ -628,11 +636,14 @@
      const selectedCount = selection.length;
      const totalCount = this.samplingList.length;
      // 如果只有一条数据,不要禁用选择
      if (selectedCount === 1 && totalCount === 1) {
      // 如果只有一条数据,不要禁用选择,并展示右侧列表
      if (selectedCount === 1) {
        this.disableSelections = false;
      } else if (selectedCount === totalCount && selectedCount > 0) {
        const selectedPerson = selection[0];
        const tjNumber = selectedPerson.tjNumber;
        console.log(`选中的体检号: ${tjNumber}`);
        this.fetchData(tjNumber);
      } else if (selectedCount === totalCount && selectedCount > 1) {
        // 全选时禁用选择新行
        this.disableSelections = true;
        this.tableList = [];
@@ -640,13 +651,7 @@
      } else {
        // 非全选时启用选择
        this.disableSelections = false;
        if (selectedCount === 1) {
          const selectedPerson = selection[0];
          const tjNumber = selectedPerson.tjNumber;
          console.log(`选中的体检号: ${tjNumber}`);
          this.fetchData(tjNumber);
        } else if (selectedCount > 1) {
        if (selectedCount > 1) {
          // 保留单选功能,取消多选
          let del_row = selection.shift();
          this.$refs.tb.toggleRowSelection(del_row, false);
@@ -676,6 +681,9 @@
          .then((response) => {
            if (response.data) {
              this.tableList = response.data;
              this.$nextTick(() => {
      this.$refs.elTable.doLayout(); // 通过 ref 调用表格方法
    });
              resolve(this.tableList);
            } else {
              this.tableList = [];