qinxianzhangyao
2023-12-08 9ed599516f100d0f3e949b9517cfbfbb6459c4d8
src/views/hosp/order/index.vue
@@ -1,47 +1,18 @@
<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
          ref="inputName"
          v-model="queryParams.name"
          placeholder="请输入姓名"
          style="width: 120px"
          clearable
          @keyup.enter.native="handleQuery"
        />
        <el-input ref="inputName" v-model="queryParams.name" placeholder="请输入姓名" style="width: 120px" clearable
          @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label="体检号" prop="tjNum">
        <el-input
          ref="inputName"
          v-model="queryParams.tjNum"
          placeholder="请输入体检号"
          style="width: 170px"
          clearable
          @keyup.enter.native="handleQuery"
        />
        <el-input ref="inputName" v-model="queryParams.tjNum" placeholder="请输入体检号" style="width: 170px" clearable
          @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label="登记时间" prop="createTimeList">
        <el-date-picker
          v-model="createTimeList"
          type="datetimerange"
          align="right"
          :picker-options="pickerOptions"
          style="width: 300px"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          :default-time="['00:00:00', '23:00:00']"
          format="yyyy-MM-dd HH:mm"
          value-format="yyyy-MM-dd HH:mm"
          @change="dateChangebirthday1"
        >
        <el-date-picker v-model="createTimeList" type="datetimerange" align="right" :picker-options="pickerOptions"
          style="width: 300px" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:00:00']"
          format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" @change="dateChangebirthday1">
        </el-date-picker>
      </el-form-item>
      <!-- <el-form-item label="登记时间" prop="createTime">
@@ -55,182 +26,68 @@
        </el-date-picker>
      </el-form-item> -->
      <el-form-item label="报告时间" prop="reportTimeList">
        <el-date-picker
          clearable
          v-model="reportTimeList"
          @change="dateChangebirthday2"
          type="daterange"
          range-separator="-"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          :picker-options="pickerOptions"
          value-format="yyyy-MM-dd"
          placeholder="请选择出报告时间"
          style="width: 240px"
        >
        <el-date-picker clearable v-model="reportTimeList" @change="dateChangebirthday2" 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" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['hosp:order:export']"
          >导出</el-button
        >
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
          v-hasPermi="['hosp:order:export']">导出</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          size="mini"
          @click="handleProject1"
          :disabled="single"
          v-hasPermi="['hosp:order:export']"
          >补录项目</el-button
        >
        <el-button type="primary" size="mini" @click="handleProject1" :disabled="single"
          v-hasPermi="['hosp:order:export']">补录项目</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          size="mini"
          @click="handleReport1"
          :disabled="single"
          v-hasPermi="['hosp:order:export']"
          >打印导诊单</el-button
        >
        <el-button type="primary" size="mini" @click="handleReport1" :disabled="single"
          v-hasPermi="['hosp:order:export']">打印导诊单</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          size="mini"
          @click="handleUpdate1"
          :disabled="single"
          v-hasPermi="['hosp:order:export']"
          >订单明细</el-button
        >
        <el-button type="primary" size="mini" @click="handleUpdate1" :disabled="single"
          v-hasPermi="['hosp:order:export']">订单明细</el-button>
      </el-col>
      <right-toolbar
        :showSearch.sync="showSearch"
        @queryTable="getList"
      ></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <template>
      <el-table
        border
        v-loading="loading"
        :data="orderList"
        @selection-change="handleSelectionChange"
      >
        <el-table-column
          type="selection"
          width="40px"
          align="center"
          fixed="left"
        />
      <el-table border v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="40px" align="center" fixed="left" />
        <!-- <el-table-column label="主键id" align="center" prop="orderId" /> -->
        <!-- <el-table-column label="用户id" align="center" prop="userId" /> -->
        <el-table-column
          label="序号"
          align="center"
          prop="newID"
          width="50px"
          fixed="left"
        />
        <el-table-column
          label="姓名"
          align="center"
          prop="tjCustomerName"
          fixed="left"
          width="100px"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          label="性别"
          align="center"
          prop="tjCustomerSex"
          width="50px"
          :show-overflow-tooltip="true"
        >
        <el-table-column label="序号" align="center" prop="newID" width="50px" fixed="left" />
        <el-table-column label="姓名" align="center" prop="tjCustomerName" fixed="left" width="100px"
          :show-overflow-tooltip="true" />
        <el-table-column label="性别" align="center" prop="tjCustomerSex" width="50px" :show-overflow-tooltip="true">
          <template slot-scope="scope">
            <span v-if="scope.row.tjCustomerSex == '0'">男</span>
            <span v-if="scope.row.tjCustomerSex == '1'">女</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"
          :show-overflow-tooltip="true"
          width="110px"
        />
        <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" :show-overflow-tooltip="true" width="110px" />
        <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"
          :show-overflow-tooltip="true"
          width="160px"
        />
        <el-table-column label="体检号" align="center" prop="tjNumber" :show-overflow-tooltip="true" width="160px" />
        <!-- <el-table-column label="流水号" align="center" prop="tjSerialNumber" /> -->
        <el-table-column
          label="所选套餐"
          align="center"
          prop="pacName"
          :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="pacName" :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>
        </el-table-column>
        <el-table-column
          label="完成时间"
          align="center"
          prop="finishTime"
          width="155px"
          :show-overflow-tooltip="true"
        >
        <el-table-column label="完成时间" align="center" prop="finishTime" width="155px" :show-overflow-tooltip="true">
          <!-- <template slot-scope="scope">
            <span>{{ parseTime(scope.row.finishTime) }}</span>
          </template> -->
@@ -240,33 +97,16 @@
          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
        </template>
      </el-table-column> -->
        <el-table-column
          label="报告时间"
          align="center"
          prop="reportTime"
          width="155px"
          height="10px"
          :show-overflow-tooltip="true"
        >
        <el-table-column label="报告时间" align="center" prop="reportTime" width="155px" height="10px"
          :show-overflow-tooltip="true">
          <!-- <template slot-scope="scope">
            <span>{{ parseTime(scope.row.reportTime) }}</span>
          </template> -->
        </el-table-column>
        <!-- <el-table-column label="创建人" align="center" prop="createBy" /> -->
        <!-- <el-table-column label="更新人" align="center" prop="updateBy" /> -->
        <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"
        />
        <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" />
        <!-- <el-table-column label="部门名" align="center" prop="firmDeptName" /> -->
        <!-- <el-table-column label="客户照片" align="center" prop="photo" /> -->
@@ -277,31 +117,13 @@
            }}</span>
          </template>
        </el-table-column> -->
        <el-table-column
          fixed="right"
          label="操作"
          align="center"
          class-name="small-padding fixed-width"
          height="10px"
          width="114px"
        >
        <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" height="10px"
          width="114px">
          <template slot-scope="scope">
            <el-button
              size="mini"
              type="text"
              icon="el-icon-document"
              @click="handleUpdate(scope.row)"
              v-hasPermi="['hosp:order:edit']"
              title="订单流水"
            ></el-button>
            <el-button
              size="mini"
              type="text"
              icon="el-icon-edit"
              @click="handleProject(scope.row)"
              v-hasPermi="['hosp:order:edit']"
              title="补录项目"
            ></el-button>
            <el-button size="mini" type="text" icon="el-icon-document" @click="handleUpdate(scope.row)"
              v-hasPermi="['hosp:order:edit']" title="订单流水"></el-button>
            <el-button size="mini" type="text" icon="el-icon-edit" @click="handleProject(scope.row)"
              v-hasPermi="['hosp:order:edit']" title="补录项目"></el-button>
            <!-- <el-button type="text" size="mini" class="btn" icon="el-icon-download" title="下载导诊单" @click="
              daoZhenDan,
              LoadFileImg(scope.row);
@@ -318,7 +140,7 @@
              title="体检报告"
              @click="viewReport(scope.row)"
            ></el-button> -->
               <!-- <el-button
            <!-- <el-button
              type="text"
              size="mini"
              class="btn"
@@ -327,15 +149,9 @@
              v-if="scope.row.tjCategory == '02'"
              @click="viewReport(scope.row)"
            ></el-button> -->
            <el-button
              type="text"
              size="mini"
              class="btn"
              icon="el-icon-download"
              title="导诊单"
              @click="handleReport(scope.row)"
            ></el-button>
            <el-button type="text" size="mini" class="btn" icon="el-icon-download" title="导诊单"
              @click="handleReport(scope.row)"></el-button>
            <!-- <button @click="downLoadFileImg(scope.row)">查看报告</button> -->
          </template>
@@ -345,16 +161,9 @@
    <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>
        <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
          @pagination="getList" /> -->
@@ -376,56 +185,27 @@
        </span>
     </el-dialog> -->
    <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="Projectopen"
      width="980px"
      style="height: 860px"
      append-to-body
    >
    <el-dialog :title="title" :visible.sync="Projectopen" width="980px" style="height: 860px" append-to-body>
      <el-row type="flex" class="row-bg" justify="space-around">
        <el-col :span="6">
          <div style="text-align: center; margin-bottom: 10px;margin-top:10px">项目列表</div>
          <div class="tab3">
            <div class="outside1">
              <el-tree
                :data="Treedata"
                show-checkbox
                node-key="proId"
                :props="defaultProps"
                @check-change="handleCurrentChecked"
              >
              <el-tree :data="Treedata" show-checkbox node-key="proId" :props="defaultProps"
                @check-change="handleCurrentChecked">
              </el-tree>
            </div>
          </div>
@@ -447,81 +227,43 @@
              <div class="outside">
                <el-form :inline="true" class="outside1">
                  <el-form-item label="原价">
                    <el-input
                      placeholder="原价"
                      :value="TotalPrice1"
                      disabled
                      style="width: 90px"
                    ></el-input>
                    <el-input placeholder="原价" :value="TotalPrice1" disabled style="width: 90px"></el-input>
                  </el-form-item>
                  <el-form-item label="折扣设定">
                    <el-input
                      style="width: 90px"
                      type="number"
                      v-model="discount"
                      :value="discount"
                    ></el-input>
                    <el-input style="width: 90px" type="number" v-model="discount" :value="discount"></el-input>
                  </el-form-item>
                  <el-form-item label="应付金额">
                    <el-input
                      placeholder="应付金额"
                      :value="TotalPrice1 * (discount / 10)"
                      style="width: 90px"
                    ></el-input>
                    <el-input placeholder="应付金额" :value="TotalPrice1 * (discount / 10)" style="width: 90px"></el-input>
                  </el-form-item>
                  <el-form-item label="付款类型" prop="payType">
                    <el-select
                      style="width: 120px"
                      v-model="payType"
                      placeholder="请选择付款类型"
                    >
                      <el-option
                        v-for="dict in dict.type.dict_pay_type"
                        :key="dict.value"
                        :label="dict.label"
                        :value="dict.value"
                      ></el-option>
                    <el-select style="width: 120px" v-model="payType" placeholder="请选择付款类型">
                      <el-option v-for="dict in dict.type.dict_pay_type" :key="dict.value" :label="dict.label"
                        :value="dict.value"></el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item>
                    <el-button
                      type="primary"
                      @click="submitPrice"
                      :disabled="confirm"
                      style="margin-top: 34px"
                      >收费</el-button
                    >
                    <el-button type="primary" @click="submitPrice" :disabled="confirm"
                      style="margin-top: 34px">收费</el-button>
                  </el-form-item>
                </el-form>
              </div>
              <div style="text-align: center; margin-bottom: 10px">
                已选项目列表
              </div>
              <div
                style="
              <div style="
                  padding: 0px 6px;
                  border: 1px solid #e6ebf5;
                  max-height: 420px;
                  overflow: auto;
                "
              >
                ">
                <el-collapse v-model="activeName" accordion>
                  <div v-for="(item, index) in DataList" :key="index">
                    <el-collapse-item>
                      <template slot="title">
                        {{ item.proName + "(" + "原价" + item.proPrice + ")" }}
                      </template>
                      <el-table
                        :data="item.tjProjectList"
                        border
                        style="width: 100%"
                        height="250"
                      >
                        <el-table-column
                          prop="proName"
                          label="项目"
                          width="180"
                        >
                      <el-table :data="item.tjProjectList" border style="width: 100%" height="250">
                        <el-table-column prop="proName" label="项目" width="180">
                        </el-table-column>
                        <el-table-column prop="proPrice" label="原价">
                        </el-table-column>
@@ -533,11 +275,7 @@
                  <div>
                    <el-collapse-item title="请选择项目">
                      <el-table :data="DataList" border style="width: 100%">
                        <el-table-column
                          prop="proName"
                          label="项目"
                          width="180"
                        >
                        <el-table-column prop="proName" label="项目" width="180">
                        </el-table-column>
                        <el-table-column prop="ordPrice" label="原价">
                        </el-table-column>
@@ -553,25 +291,14 @@
    </el-dialog>
    <!-- 添加补录项目 -->
    <el-dialog
      :title="title"
      :visible.sync="Projectopen1"
      width="980px"
      style="height: 860px"
      append-to-body
    >
    <el-dialog :title="title" :visible.sync="Projectopen1" width="980px" style="height: 860px" append-to-body>
      <el-row type="flex" class="row-bg" justify="space-around">
        <el-col :span="6">
          <div style="text-align: center; margin-bottom: 10px;margin-top:10px">项目列表</div>
          <div class="tab3">
            <div class="outside1">
              <el-tree
                :data="Treedata"
                show-checkbox
                node-key="proId"
                :props="defaultProps"
                @check-change="handleCurrentChecked"
              >
              <el-tree :data="Treedata" show-checkbox node-key="proId" :props="defaultProps"
                @check-change="handleCurrentChecked">
              </el-tree>
            </div>
          </div>
@@ -593,76 +320,42 @@
            <div class="outside">
              <el-form :inline="true" class="outside1">
                <el-form-item label="原价">
                  <el-input
                    placeholder="原价"
                    :value="TotalPrice1"
                    disabled
                    style="width: 90px"
                  ></el-input>
                  <el-input placeholder="原价" :value="TotalPrice1" disabled style="width: 90px"></el-input>
                </el-form-item>
                <el-form-item label="折扣设定">
                  <el-input
                    style="width: 90px"
                    type="number"
                    v-model="discount"
                    :value="discount"
                  ></el-input>
                  <el-input style="width: 90px" type="number" v-model="discount" :value="discount"></el-input>
                </el-form-item>
                <el-form-item label="应付金额">
                  <el-input
                    placeholder="应付金额"
                    :value="TotalPrice1 * (discount / 10)"
                    style="width: 90px"
                  ></el-input>
                  <el-input placeholder="应付金额" :value="TotalPrice1 * (discount / 10)" style="width: 90px"></el-input>
                </el-form-item>
                <el-form-item label="付款类型" prop="payType">
                  <el-select
                    style="width: 120px"
                    v-model="payType"
                    placeholder="请选择付款类型"
                  >
                    <el-option
                      v-for="dict in dict.type.dict_pay_type"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  <el-select style="width: 120px" v-model="payType" placeholder="请选择付款类型">
                    <el-option v-for="dict in dict.type.dict_pay_type" :key="dict.value" :label="dict.label"
                      :value="dict.value"></el-option>
                  </el-select>
                </el-form-item>
                <el-form-item>
                  <el-button
                    type="primary"
                    @click="submitPrice1"
                    :disabled="confirm"
                    style="margin-top: 34px"
                    >收费</el-button
                  >
                  <el-button type="primary" @click="submitPrice1" :disabled="confirm"
                    style="margin-top: 34px">收费</el-button>
                </el-form-item>
              </el-form>
            </div>
            <div style="text-align: center; margin-bottom: 10px">
              已选项目列表
            </div>
            <div
              style="
            <div style="
                padding: 0px 6px;
                border: 1px solid #e6ebf5;
                max-height: 420px;
                overflow: auto;
              "
            >
              ">
              <el-collapse v-model="activeName" accordion>
                <div v-for="(item, index) in DataList" :key="index">
                  <el-collapse-item>
                    <template slot="title">
                      {{ item.proName + "(" + "原价" + item.proPrice + ")" }}
                    </template>
                    <el-table
                      :data="item.tjProjectList"
                      border
                      style="width: 100%"
                      height="250"
                    >
                    <el-table :data="item.tjProjectList" border style="width: 100%" height="250">
                      <el-table-column prop="proName" label="项目" width="180">
                      </el-table-column>
                      <el-table-column prop="proPrice" label="原价">
@@ -909,10 +602,15 @@
    },
    /** 查询体检记录列表 */
    getList() {
      this.queryParams.djbeginTime = this.startTime[0];
      this.queryParams.djendTime = this.startTime[1];
      this.queryParams.bgbeginTime = this.startTime1[0];
      this.queryParams.bgendTime = this.startTime1[1];
      if (this.startTime) {
        this.queryParams.djbeginTime = this.startTime[0];
        this.queryParams.djendTime = this.startTime[1];
      }
      if (this.startTime1) {
        this.queryParams.bgbeginTime = this.startTime1[0];
        this.queryParams.bgendTime = this.startTime1[1];
      }
      this.loading = true;
      getOrderList(this.queryParams).then((response) => {
        this.orderList = response.data.list;