su
su1124
2024-01-24 51123d5ad145745f855280783c01cc2906b693d0
src/views/system/Checkout/index.vue
@@ -1,65 +1,170 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      v-show="showSearch"
      label-width="68px"
    >
      <el-form-item label="姓名" prop="name">
        <el-input style="width: 116px" ref="inputName" v-model="queryParams.name" placeholder="请输入姓名"
          @keyup.enter.native="handleQuery" />
        <el-input
          style="width: 116px"
          ref="inputName"
          v-model="queryParams.name"
          placeholder="请输入姓名"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="体检号" prop="tjNum">
        <el-input ref="inputName" v-model="queryParams.tjNum" placeholder="请输入体检号" @keyup.enter.native="handleQuery"  @blur="handleQuery"
          style="width:170px" clearable />
        <el-input
          ref="inputName"
          v-model="queryParams.tjNum"
          placeholder="请输入体检号"
          @keyup.enter.native="handleQuery"
          @blur="hb"
          style="width: 170px"
          clearable
        />
      </el-form-item>
      <el-form-item label="登记时间" prop="createTimeList">
        <el-date-picker clearable v-model="createTimeList" @change="dateChangebirthday1" style="width: 240px"
          value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
          :picker-options="pickerOptions"></el-date-picker>
        <el-date-picker
          clearable
          v-model="createTimeList"
          @change="dateChangebirthday1"
          style="width: 240px"
          value-format="yyyy-MM-dd"
          type="daterange"
          range-separator="-"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          :picker-options="pickerOptions"
        ></el-date-picker>
      </el-form-item>
      <!-- <el-form-item label="报告时间" prop="reportTimeList">
        <el-date-picker clearable v-model="queryParams.reportTimeList" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" value-format="yyyy-MM-dd" placeholder="请选择出报告时间" style="width: 240px">
        </el-date-picker>
      </el-form-item> -->
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
        <el-button
          type="primary"
          icon="el-icon-search"
          size="mini"
          @click="handleQuery"
          >搜索</el-button
        >
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
          >重置</el-button
        >
      </el-form-item>
    </el-form>
    <el-row :gutter="10" style="margin: 0 16px;">
    <el-row :gutter="10" style="margin: 0 16px">
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
          v-hasPermi="['hosp:order:export']" style="margin-left:14px">导出</el-button>
      </el-col> -->
      <el-col :span="1.5">
        <el-button type="primary" size="mini" @click="handleDelete" :disabled="multiple">签离登记</el-button>
        <el-button
          type="primary"
          size="mini"
          @click="handleDelete"
          :disabled="multiple"
          >签离登记</el-button
        >
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" style="margin-right:40px"></right-toolbar>
      <right-toolbar
        :showSearch.sync="showSearch"
        @queryTable="getList"
        style="margin-right: 40px"
      ></right-toolbar>
    </el-row>
    <template>
      <el-table ref="tb" border style="margin: 14px; width: 98%" v-loading="loading" :data="orderList"
        @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="40" align="center" fixed="left" />
        <el-table-column label="序号" align="center" prop="newID" width="50px" fixed="left" />
        <el-table-column label="姓名" align="center" prop="tjCustomerName" width="100px" :show-overflow-tooltip="true"
          fixed="left" />
        <el-table-column label="性别" align="center" prop="tjCustomerSex" width="55px" :show-overflow-tooltip="true">
      <el-table
        ref="tb"
        border
        style="margin: 14px; width: 98%"
        v-loading="loading"
        :data="orderList"
        @selection-change="handleSelectionChange"
      >
        <el-table-column
          type="selection"
          width="40"
          align="center"
          fixed="left"
        />
        <el-table-column
          label="序号"
          align="center"
          prop="newID"
          width="50px"
          fixed="left"
        />
        <el-table-column
          label="姓名"
          align="center"
          prop="tjCustomerName"
          width="100px"
          :show-overflow-tooltip="true"
          fixed="left"
        />
        <el-table-column
          label="性别"
          align="center"
          prop="tjCustomerSex"
          width="55px"
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.tjCustomerSex == '0'">男</span>
            <span v-if="scope.row.tjCustomerSex == '1'">女</span>
            <span v-if="scope.row.tjCustomerSex == '2'">未知</span>
          </template>
        </el-table-column>
        <el-table-column label="年龄" align="center" prop="tjCustomerAge" width="55px" :show-overflow-tooltip="true" />
        <el-table-column label="电话" align="center" prop="tjCustomerPhone" width="120px" :show-overflow-tooltip="true" />
        <el-table-column label="体检类型" align="center" prop="tjType" width="80px" :show-overflow-tooltip="true">
        <el-table-column
          label="年龄"
          align="center"
          prop="tjCustomerAge"
          width="55px"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          label="电话"
          align="center"
          prop="tjCustomerPhone"
          width="120px"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          label="体检类型"
          align="center"
          prop="tjType"
          width="80px"
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.tjType == '2'">个人</span>
            <span v-if="scope.row.tjType == '1'">团队</span>
          </template>
        </el-table-column>
        <el-table-column label="体检号" align="center" prop="tjNumber" width="160px" :show-overflow-tooltip="true" />
        <el-table-column
          label="体检号"
          align="center"
          prop="tjNumber"
          width="160px"
          :show-overflow-tooltip="true"
        />
        <el-table-column label="登记时间" align="center" prop="createTime" width="155px" :show-overflow-tooltip="true">
        <el-table-column
          label="登记时间"
          align="center"
          prop="createTime"
          width="155px"
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.createTime) }}</span>
          </template>
@@ -74,58 +179,139 @@
            <span>{{ parseTime(scope.row.reportTime) }}</span>
          </template>
        </el-table-column> -->
        <el-table-column label="所选套餐" align="center" prop="pacName" width="150px" :show-overflow-tooltip="true" />
        <el-table-column label="单位工号" align="center" prop="firmWorkId" width="100px" :show-overflow-tooltip="true" />
        <el-table-column label="单位名称" align="center" prop="dictCompName" :show-overflow-tooltip="true" height="10px" />
        <el-table-column
          label="所选套餐"
          align="center"
          prop="pacName"
          width="150px"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          label="单位工号"
          align="center"
          prop="firmWorkId"
          width="100px"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          label="单位名称"
          align="center"
          prop="dictCompName"
          :show-overflow-tooltip="true"
          height="10px"
        />
      </el-table>
    </template>
    <div class="pag">
      <div class="pag1">
        <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
          :current-page="queryParams.pageNum" :page-sizes="[10, 20, 30, 40]" :page-size="queryParams.pageSize"
          layout="total, sizes, prev, pager, next, jumper" :total="total">
        <el-pagination
          background
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="queryParams.pageNum"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="queryParams.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="total"
        >
        </el-pagination>
      </div>
    </div>
    <el-dialog title="PDF 预览" :visible.sync="dialogVisible" :close-on-click-modal="false">
    <el-dialog
      title="PDF 预览"
      :visible.sync="dialogVisible"
      :close-on-click-modal="false"
    >
      <div class="main">
        <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe>
        <iframe
          id="printIframe"
          :src="url"
          frameborder="0"
          style="width: 100%; height: 100%"
        ></iframe>
      </div>
    </el-dialog>
    <el-dialog title="导诊单" :visible.sync="daoZhenDan" :close-on-click-modal="false">
    <el-dialog
      title="导诊单"
      :visible.sync="daoZhenDan"
      :close-on-click-modal="false"
    >
      <div class="main">
        <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe>
        <iframe
          id="printIframe"
          :src="url"
          frameborder="0"
          style="width: 100%; height: 100%"
        ></iframe>
      </div>
    </el-dialog>
    <!-- 添加或修改体检记录对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="660px">
      <el-form :model="formIn" ref="queryForm" size="small" :inline="true" label-width="68px">
      <el-form
        :model="formIn"
        ref="queryForm"
        size="small"
        :inline="true"
        label-width="68px"
      >
        <el-form-item label="体检号" prop="tjNumber">
          <el-input ref="inputName" v-model="formIn.tjNumber" style="width:212px" clearable />
          <el-input
            ref="inputName"
            v-model="formIn.tjNumber"
            style="width: 212px"
            clearable
          />
        </el-form-item>
        <el-form-item label="登记时间" prop="createTime">
          <el-input ref="inputName" v-model="formIn.createTime" style="width:212px" clearable />
          <el-input
            ref="inputName"
            v-model="formIn.createTime"
            style="width: 212px"
            clearable
          />
        </el-form-item>
        <br>
        <br />
        <el-form-item label="姓名" prop="tjCustomerName">
          <el-input style="width: 116px" ref="inputName" v-model="formIn.tjCustomerName" />
          <el-input
            style="width: 116px"
            ref="inputName"
            v-model="formIn.tjCustomerName"
          />
        </el-form-item>
        <el-form-item label="性别" prop="tjCustomerSex">
          <el-input style="width: 116px" ref="inputName" v-model="formIn.tjCustomerSex" />
          <el-input
            style="width: 116px"
            ref="inputName"
            v-model="formIn.tjCustomerSex"
          />
        </el-form-item>
        <el-form-item label="年龄" prop="tjCustomerAge">
          <el-input style="width: 116px" ref="inputName" v-model="formIn.tjCustomerAge" placeholder="请输入姓名" />
          <el-input
            style="width: 116px"
            ref="inputName"
            v-model="formIn.tjCustomerAge"
            placeholder="请输入姓名"
          />
        </el-form-item>
      </el-form>
      <el-table :data="numberList" style="width: 100%;margin-bottom: 10px;" height="400px" border :row-class-name="tableRowClassName">
        <el-table-column prop="proCheckType" label="检查类型" width="180" align="center">
      <el-table
        :data="numberList"
        style="width: 100%; margin-bottom: 10px"
        height="400px"
        border
        :row-class-name="tableRowClassName"
      >
        <el-table-column
          prop="proCheckType"
          label="检查类型"
          width="180"
          align="center"
        >
        </el-table-column>
        <el-table-column prop="proName" label="项目" width="180" align="center">
        </el-table-column>
@@ -136,27 +322,52 @@
        </el-table-column>
        <el-table-column label="弃检" prop="type2" width="86" align="center">
          <template slot-scope="scope">
            <el-checkbox @change="handelcheckbox" v-model="scope.row.type2" :disabled="leave">
            <el-checkbox
              @change="handelcheckbox"
              v-model="scope.row.type2"
              :disabled="leave"
            >
              <!-- <el-checkbox v-model="scope.row.type2"></el-checkbox> -->
            </el-checkbox>
          </template>
        </el-table-column>
        <el-table-column label="延期" prop="type3" width="86" align="center">
          <template slot-scope="scope">
            <el-checkbox @change="handelcheck" v-model="scope.row.type3" :disabled="leave">
            <el-checkbox
              @change="handelcheck"
              v-model="scope.row.type3"
              :disabled="leave"
            >
            </el-checkbox>
          </template>
        </el-table-column>
      </el-table>
      <div v-show="tcShow">
        <el-form :model="postpone" ref="queryForm" v-show="postpone" size="small" label-width="68px">
        <el-form
          :model="postpone"
          ref="queryForm"
          v-show="postpone"
          size="small"
          label-width="68px"
        >
          <el-form-item label="延期天数" prop="day">
            <el-input ref="inputName" v-model="postpone.day" style="width:170px" clearable />
            <el-input
              ref="inputName"
              v-model="postpone.day"
              style="width: 170px"
              clearable
            />
          </el-form-item>
          <br>
          <br />
          <el-form-item label="延期原因" prop="cause">
            <el-input style="width:100%" ref="inputName" v-model="postpone.cause" maxlength="10" show-word-limit />
            <el-input
              style="width: 100%"
              ref="inputName"
              v-model="postpone.cause"
              maxlength="10"
              show-word-limit
            />
          </el-form-item>
        </el-form>
      </div>
@@ -191,8 +402,8 @@
  name: "Order",
  data() {
    return {
      selectList:[],
      leave:false,
      selectList: [],
      leave: false,
      checked: false,
      radioId1: false,
      createTimeList: "",
@@ -206,7 +417,7 @@
      flag: true,
      bill: null,
      Treedata: [],
      DataList:[],
      DataList: [],
      defaultProps: {
        children: "tjProjectList",
        label: "proName",
@@ -217,7 +428,7 @@
      List: [],
      postpone: {
        day: null,
        caches: null
        caches: null,
      },
      tcShow: false,
      // remarkId: "",
@@ -426,10 +637,15 @@
      };
      this.resetForm("form");
    },
    hb(){
       if (this.queryParams.tjNum != undefined) {
        this.handleQuery();
      }
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
        this.queryParams.pageNum = 1;
        this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
@@ -534,9 +750,9 @@
      // })
      for (let i = 0; i <= this.numberList.length; i++) {
        if (this.numberList[i].type2 === true) {
          this.numberList[i].type3 = false
          this.tcShow = false
          return
          this.numberList[i].type3 = false;
          this.tcShow = false;
          return;
        }
      }
      // this.type2 = val
@@ -565,9 +781,9 @@
      // })
      for (let i = 0; i <= this.numberList.length; i++) {
        if (this.numberList[i].type3 === true) {
          this.numberList[i].type2 = false
          this.tcShow = true
          return
          this.numberList[i].type2 = false;
          this.tcShow = true;
          return;
        }
      }
      // this.numberList.forEach(item => {
@@ -585,21 +801,19 @@
      //     }
      //   }
      // })
    },
    /** 签离按钮操作 */
    handleDelete() {
      this.title = "签离登记";
      this.List.forEach((item) => {
        this.formIn = item
        this.formIn = item;
        if (this.formIn.tjCustomerSex === 0) {
          this.formIn.tjCustomerSex = "男"
        } else if(this.formIn.tjCustomerSex === 1) {
          this.formIn.tjCustomerSex = "女"
        }else if(this.formIn.tjCustomerSex === 2){
          this.formIn.tjCustomerSex = "未知"
          this.formIn.tjCustomerSex = "男";
        } else if (this.formIn.tjCustomerSex === 1) {
          this.formIn.tjCustomerSex = "女";
        } else if (this.formIn.tjCustomerSex === 2) {
          this.formIn.tjCustomerSex = "未知";
        }
        this.tjNumber = item.tjNumber;
      });
@@ -609,20 +823,20 @@
      goabandon(data).then((res) => {
        if (res.data.length != 0) {
          this.numberList = res.data;
          this.numberList.forEach(item => {
          this.numberList.forEach((item) => {
            if (item.type === 1) {
              item.type = true;
              item.type2 = false;
              item.type3 = false;
              this.leave = true;
            }else{
            } else {
              this.leave = false;
            }
            item = {
              type2: false,
              type3: false,
            }
          })
            };
          });
          this.open = true;
        } else {
          let data = {
@@ -643,29 +857,29 @@
      this.List.forEach((item) => {
        this.tjNumber = item.tjNumber;
      });
      this.numberList.forEach(element => {
      this.numberList.forEach((element) => {
        if (element.type2 === true) {
          this.type = 2
          this.type = 2;
          this.DataList.push({
            tjNumber: this.tjNumber,
            type: this.type,
            remarkId: element.remarkId
          })
            remarkId: element.remarkId,
          });
        } else if (element.type3 === true) {
          this.type1 = 3
          this.type1 = 3;
          this.DataList.push({
            tjNumber: this.tjNumber,
            day: this.postpone.day,
            remark: this.postpone.cause,
            type: this.type1,
            remarkId: element.remarkId,
          })
          });
        }
      });
      let data = {
        domainVos:this.DataList,
        tjNumber:this.tjNumber
      }
        domainVos: this.DataList,
        tjNumber: this.tjNumber,
      };
      gettjGoOut(data).then((res) => {
        if (res.code === 200) {
          this.$modal.msgSuccess("操作成功");