qinxianzhangyao
2024-07-16 58d1ae47dea17cb10699185066b748766f9ea261
qxtj
7个文件已修改
3个文件已添加
2933 ■■■■ 已修改文件
src/api/system/interface.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/tijian.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/order/index.vue 1204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/project/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reservation/reservations/index.vue 1465 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/biol/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/interface/index.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/interfaces/index.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/packages/index.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/interface.js
New file
@@ -0,0 +1,23 @@
import request1 from "@/utils/request1";
export function histongbulist() {
  return request1({
    url: "/list",
    method: "get",
  });
}
export function histongbuexec() {
  return request1({
    url: "/exec",
    method: "get",
  });
}
export function hisexec(data) {
  return request1({
    url: "/exec",
    method: "post",
    data:data
  });
}
src/api/system/tijian.js
@@ -1,5 +1,5 @@
import request from "@/utils/request";
import request1 from "@/utils/request1";
// import request1 from "@/utils/request1";
// 查询体检套餐列表
export function deptTreeSelect(cusSex) {
@@ -191,9 +191,9 @@
}
export function readCertCardInfos() {
  return request1({
    url: "/readCertCardInfos",
    method: "get",
  });
}
// export function readCertCardInfos() {
//   return request1({
//     url: "/readCertCardInfos",
//     method: "get",
//   });
// }
src/views/hosp/order/index.vue
@@ -453,94 +453,224 @@
      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>
          <el-input placeholder="输入关键字进行过滤" v-model="filterText">
          </el-input>
          <div class="tab3">
            <el-tree
              class="filter-tree"
              v-loading="loading"
              :data="Treedata"
              :props="defaultProps"
              show-checkbox
              node-key="proId"
              @check="handleCurrentChecked"
              :default-checked-keys="checkedkey"
              :filter-node-method="filterNode"
              ref="tree"
              :render-content="renderContent"
            >
            </el-tree>
          </div>
        </el-col>
        <el-col :span="5">
          <div
            style="text-align: center; margin-bottom: 10px; margin-top: 10px"
          >
            明细项目列表
          </div>
          <div class="tab3">
            <el-tree
              class="filter-tree"
              v-loading="loading"
              :data="TreedataList"
              node-key="proId"
              :props="defaultProps"
              :filter-node-method="filterNode"
              show-checkbox
              @check-change="handleCurrentChecked1"
              :default-checked-keys="checkedListkey"
              :render-content="renderContent"
            >
            </el-tree>
          </div>
        </el-col>
        <el-col :span="11">
          <div class="grid-content bg-purple">
            <div
              style="text-align: center; margin-bottom: 10px; margin-top: 10px"
            >
              已选项目列表
            </div>
            <el-table
              :data="DataList"
              border
              style="width: 100%"
              height="400"
              :span-method="objectSpanMethod"
            >
              <el-table-column prop="propinName" label="检查项目">
              </el-table-column>
              <el-table-column prop="proPrice" label="原价" width="56px">
              </el-table-column>
              <el-table-column prop="proName" label="明细项目" width="260px">
              </el-table-column>
      <el-tabs
        type="border-card"
        style="height: 640px; margin: 0 10px; width: 100%"
        @tab-click="handleClick"
        v-model="activeNames"
      >
        <el-tab-pane label="组合" name="first">
          <div class="tab8">
            <el-row :gutter="20" style="width: 100%">
              <el-col :span="6">
                <div
                  style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  "
                >
                  项目列表
                </div>
                <el-input placeholder="输入关键字进行过滤" v-model="filterage">
                </el-input>
                <div class="tab3">
                  <el-tree
                    class="filter-tree"
                    v-loading="loading"
                    :data="packageList"
                    :props="defaultProp"
                    show-checkbox
                    node-key="id"
                    @check="handlepackage"
                    :default-checked-keys="checkedkeys"
                    :filter-node-method="filterpackage"
                    ref="treas"
                    :render-content="renderContents"
                  >
                  </el-tree>
                </div>
              </el-col>
              <el-col :span="6">
                <div
                  style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  "
                >
                  明细项目列表
                </div>
                <div class="tab3">
                  <el-tree
                    class="filter-tree"
                    v-loading="loading"
                    :data="packagedataList"
                    node-key="proId"
                    :props="defaultpackProps"
                    :render-content="renderContent"
                  >
                  </el-tree>
                </div>
              </el-col>
              <el-col :span="11">
                <div class="grid-content bg-purple">
                  <div
                    style="
                      text-align: center;
                      margin-bottom: 10px;
                      margin-top: 10px;
                    "
                  >
                    已选项目列表
                  </div>
                  <el-table
                    :data="Datalists"
                    border
                    style="width: 100%"
                    height="400"
                    :span-method="objectspanmethod"
                  >
                    <el-table-column prop="propinName" label="检查项目">
                    </el-table-column>
                    <el-table-column
                      prop="proName"
                      label="明细项目"
                      width="260px"
                    >
                    </el-table-column>
                    <el-table-column prop="proPrice" label="原价" width="56px">
                    </el-table-column>
              <el-table-column
                label="操作"
                align="center"
                fixed="right"
                class-name="small-padding fixed-width"
                width="50px"
                    <el-table-column
                      label="操作"
                      align="center"
                      class-name="small-padding fixed-width"
                      width="50px"
                    >
                      <template slot-scope="scope">
                        <el-button
                          size="mini"
                          type="text"
                          icon="el-icon-delete"
                          @click="handleDel(scope.row)"
                          title="删除"
                        ></el-button>
                      </template>
                    </el-table-column>
                  </el-table>
                  <h3 style="font-weight: 600">合计:{{ marryalls }}元</h3>
                </div>
              </el-col>
            </el-row>
          </div>
        </el-tab-pane>
        <el-tab-pane label="单项" name="third">
          <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;
                "
              >
                <template slot-scope="scope">
                  <el-button
                    size="mini"
                    type="text"
                    icon="el-icon-delete"
                    @click="handleDelete(scope.row)"
                    title="删除"
                  ></el-button>
                </template>
              </el-table-column>
            </el-table>
            <el-collapse v-model="activeName" accordion v-if="list1">
                项目列表
              </div>
              <el-input placeholder="输入关键字进行过滤" v-model="filterText">
              </el-input>
              <div class="tab3">
                <el-tree
                  class="filter-tree"
                  v-loading="loading"
                  :data="Treedata"
                  :props="defaultProps"
                  show-checkbox
                  node-key="proId"
                  @check="handleCurrentChecked"
                  :default-checked-keys="checkedkey"
                  :filter-node-method="filterNode"
                  ref="tree"
                  :render-content="renderContent"
                >
                </el-tree>
              </div>
            </el-col>
            <el-col :span="5">
              <div
                style="
                  text-align: center;
                  margin-bottom: 10px;
                  margin-top: 10px;
                "
              >
                明细项目列表
              </div>
              <div class="tab3">
                <el-tree
                  class="filter-tree"
                  v-loading="loading"
                  :data="TreedataList"
                  node-key="proId"
                  :props="defaultProps"
                  :filter-node-method="filterNode"
                  show-checkbox
                  @check-change="handleCurrentChecked1"
                  :default-checked-keys="checkedListkey"
                  :render-content="renderContent"
                >
                </el-tree>
              </div>
            </el-col>
            <el-col :span="11">
              <div class="grid-content bg-purple">
                <div
                  style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  "
                >
                  已选项目列表
                </div>
                <el-table
                  :data="DataList"
                  border
                  style="width: 100%"
                  height="400"
                  :span-method="objectSpanMethod"
                >
                  <el-table-column prop="propinName" label="检查项目">
                  </el-table-column>
                  <el-table-column prop="proPrice" label="原价" width="56px">
                  </el-table-column>
                  <el-table-column
                    prop="proName"
                    label="明细项目"
                    width="260px"
                  >
                  </el-table-column>
                  <el-table-column
                    label="操作"
                    align="center"
                    fixed="right"
                    class-name="small-padding fixed-width"
                    width="50px"
                  >
                    <template slot-scope="scope">
                      <el-button
                        size="mini"
                        type="text"
                        icon="el-icon-delete"
                        @click="handleDelete(scope.row)"
                        title="删除"
                      ></el-button>
                    </template>
                  </el-table-column>
                </el-table>
                <!-- <el-collapse v-model="activeName" accordion v-if="list1">
              <div>
                <el-collapse-item title="请选择项目">
                  <el-table :data="DataList" border style="width: 100%">
@@ -551,71 +681,73 @@
                  </el-table>
                </el-collapse-item>
              </div>
            </el-collapse>
            <template>
              <el-form :model="form">
                <el-form-item label="体检类型" prop="tjType">
                  <el-radio-group v-model="form.tjType">
                    <el-radio :label="1">团队</el-radio>
                    <el-radio :label="2">个人</el-radio>
                  </el-radio-group>
                </el-form-item>
              </el-form>
            </template>
            </el-collapse> -->
                <template>
                  <el-form :model="form">
                    <el-form-item label="体检类型" prop="tjType">
                      <el-radio-group v-model="form.tjType">
                        <el-radio :label="1">团队</el-radio>
                        <el-radio :label="2">个人</el-radio>
                      </el-radio-group>
                    </el-form-item>
                  </el-form>
                </template>
            <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-form-item>
                <el-form-item label="折扣设定">
                  <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-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>
                </el-form-item>
                <el-form-item>
                  <el-button
                    type="primary"
                    @click="submitPrice"
                    :disabled="confirm"
                    style="margin-top: 34px"
                    >提交</el-button
                  >
                </el-form-item>
              </el-form>
            </div>
          </div>
        </el-col>
      </el-row>
                <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-form-item>
                    <el-form-item label="折扣设定">
                      <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-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>
                    </el-form-item>
                    <el-form-item>
                      <el-button
                        type="primary"
                        @click="submitPrice"
                        :disabled="confirm"
                        style="margin-top: 34px"
                        >提交</el-button
                      >
                    </el-form-item>
                  </el-form>
                </div>
              </div>
            </el-col>
          </el-row>
        </el-tab-pane>
      </el-tabs>
    </el-dialog>
    <!-- 添加补录项目 -->
@@ -626,183 +758,319 @@
      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>
          <el-input placeholder="输入关键字进行过滤" v-model="filterText">
          </el-input>
          <div class="tab3">
            <el-tree
              class="filter-tree"
              v-loading="loading"
              :data="Treedata"
              :props="defaultProps"
              show-checkbox
              node-key="proId"
              @check="handleCurrentChecked"
              :default-checked-keys="checkedkey"
              :filter-node-method="filterNode"
              ref="tree"
              :render-content="renderContent"
            >
            </el-tree>
          </div>
        </el-col>
        <el-col :span="5">
          <div
            style="text-align: center; margin-bottom: 10px; margin-top: 10px"
          >
            明细项目列表
          </div>
          <div class="tab3">
            <div class="outside1">
              <el-tree
                class="filter-tree"
                v-loading="loading"
                :data="TreedataList"
                node-key="proId"
                :props="defaultProps"
                :filter-node-method="filterNode"
                show-checkbox
                @check-change="handleCurrentChecked1"
                :default-checked-keys="checkedListkey"
                :render-content="renderContent"
              >
              </el-tree>
            </div>
          </div>
        </el-col>
        <el-col :span="11">
          <div class="grid-content bg-purple">
            <div
              style="text-align: center; margin-bottom: 10px; margin-top: 10px"
            >
              已选项目列表
            </div>
            <el-table
              :data="DataList"
              border
              style="width: 100%"
              height="400"
              :span-method="objectSpanMethod"
            >
              <el-table-column prop="propinName" label="检查项目">
              </el-table-column>
              <el-table-column prop="proPrice" label="原价" width="56px">
              </el-table-column>
              <el-table-column prop="proName" label="明细项目" width="260px">
              </el-table-column>
              <el-table-column
                label="操作"
                align="center"
                fixed="right"
                class-name="small-padding fixed-width"
                width="50px"
              >
                <template slot-scope="scope">
                  <el-button
                    size="mini"
                    type="text"
                    icon="el-icon-delete"
                    @click="handleDelete(scope.row)"
                    title="删除"
                  ></el-button>
                </template>
              </el-table-column>
            </el-table>
            <el-collapse v-model="activeName" accordion v-if="list1">
              <div>
                <el-collapse-item title="请选择项目">
      <el-tabs
        type="border-card"
        style="height: 640px; margin: 0 10px; width: 100%"
        @tab-click="handleClick"
        v-model="activeNames"
      >
        <el-tab-pane label="组合" name="first">
          <div class="tab8">
            <el-row :gutter="20" style="width: 100%">
              <el-col :span="6">
                <div
                  style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  "
                >
                  项目列表
                </div>
                <el-input placeholder="输入关键字进行过滤" v-model="filterage">
                </el-input>
                <div class="tab3">
                  <el-tree
                    class="filter-tree"
                    v-loading="loading"
                    :data="packageList"
                    :props="defaultProp"
                    show-checkbox
                    node-key="id"
                    @check="handlepackage"
                    :default-checked-keys="checkedkeys"
                    :filter-node-method="filterpackage"
                    ref="treas"
                    :render-content="renderContents"
                  >
                  </el-tree>
                </div>
              </el-col>
              <el-col :span="6">
                <div
                  style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  "
                >
                  明细项目列表
                </div>
                <div class="tab3">
                  <el-tree
                    class="filter-tree"
                    v-loading="loading"
                    :data="packagedataList"
                    node-key="proId"
                    :props="defaultpackProps"
                    :render-content="renderContent"
                  >
                  </el-tree>
                </div>
              </el-col>
              <el-col :span="11">
                <div class="grid-content bg-purple">
                  <div
                    style="
                      text-align: center;
                      margin-bottom: 10px;
                      margin-top: 10px;
                    "
                  >
                    已选项目列表
                  </div>
                  <el-table
                    :data="DataList"
                    :data="Datalists"
                    border
                    style="width: 100%"
                    height="400"
                    :span-method="objectSpanMethod"
                    :span-method="objectspanmethod"
                  >
                    <el-table-column prop="proName" label="项目" width="180">
                    <el-table-column prop="propinName" label="检查项目">
                    </el-table-column>
                    <el-table-column prop="ordPrice" label="原价">
                    <el-table-column
                      prop="proName"
                      label="明细项目"
                      width="260px"
                    >
                    </el-table-column>
                    <el-table-column prop="proPrice" label="原价" width="56px">
                    </el-table-column>
                    <el-table-column
                      label="操作"
                      align="center"
                      class-name="small-padding fixed-width"
                      width="50px"
                    >
                      <template slot-scope="scope">
                        <el-button
                          size="mini"
                          type="text"
                          icon="el-icon-delete"
                          @click="handleDel(scope.row)"
                          title="删除"
                        ></el-button>
                      </template>
                    </el-table-column>
                  </el-table>
                </el-collapse-item>
              </div>
            </el-collapse>
            <template>
              <el-form :model="form">
                <el-form-item label="体检类型" prop="tjType">
                  <el-radio-group v-model="form.tjType">
                    <el-radio :label="1">团队</el-radio>
                    <el-radio :label="2">个人</el-radio>
                  </el-radio-group>
                </el-form-item>
              </el-form>
            </template>
            <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-form-item>
                <el-form-item label="折扣设定">
                  <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-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>
                </el-form-item>
                <el-form-item>
                  <el-button
                    type="primary"
                    @click="submitPrice1"
                    :disabled="confirm"
                    style="margin-top: 34px"
                    >提交</el-button
                  >
                </el-form-item>
              </el-form>
            </div>
                  <h3 style="font-weight: 600">合计:{{ marryalls }}元</h3>
                </div>
              </el-col>
            </el-row>
          </div>
        </el-col>
      </el-row>
        </el-tab-pane>
        <el-tab-pane label="单项" name="third">
          <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>
              <el-input placeholder="输入关键字进行过滤" v-model="filterText">
              </el-input>
              <div class="tab3">
                <el-tree
                  class="filter-tree"
                  v-loading="loading"
                  :data="Treedata"
                  :props="defaultProps"
                  show-checkbox
                  node-key="proId"
                  @check="handleCurrentChecked"
                  :default-checked-keys="checkedkey"
                  :filter-node-method="filterNode"
                  ref="tree"
                  :render-content="renderContent"
                >
                </el-tree>
              </div>
            </el-col>
            <el-col :span="5">
              <div
                style="
                  text-align: center;
                  margin-bottom: 10px;
                  margin-top: 10px;
                "
              >
                明细项目列表
              </div>
              <div class="tab3">
                <div class="outside1">
                  <el-tree
                    class="filter-tree"
                    v-loading="loading"
                    :data="TreedataList"
                    node-key="proId"
                    :props="defaultProps"
                    :filter-node-method="filterNode"
                    show-checkbox
                    @check-change="handleCurrentChecked1"
                    :default-checked-keys="checkedListkey"
                    :render-content="renderContent"
                  >
                  </el-tree>
                </div>
              </div>
            </el-col>
            <el-col :span="11">
              <div class="grid-content bg-purple">
                <div
                  style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  "
                >
                  已选项目列表
                </div>
                <el-table
                  :data="DataList"
                  border
                  style="width: 100%"
                  height="400"
                  :span-method="objectSpanMethod"
                >
                  <el-table-column prop="propinName" label="检查项目">
                  </el-table-column>
                  <el-table-column prop="proPrice" label="原价" width="56px">
                  </el-table-column>
                  <el-table-column
                    prop="proName"
                    label="明细项目"
                    width="260px"
                  >
                  </el-table-column>
                  <el-table-column
                    label="操作"
                    align="center"
                    fixed="right"
                    class-name="small-padding fixed-width"
                    width="50px"
                  >
                    <template slot-scope="scope">
                      <el-button
                        size="mini"
                        type="text"
                        icon="el-icon-delete"
                        @click="handleDelete(scope.row)"
                        title="删除"
                      ></el-button>
                    </template>
                  </el-table-column>
                </el-table>
                <!-- <el-collapse v-model="activeName" accordion v-if="list1">
                  <div>
                    <el-collapse-item title="请选择项目">
                      <el-table
                        :data="DataList"
                        border
                        style="width: 100%"
                        height="400"
                        :span-method="objectSpanMethod"
                      >
                        <el-table-column
                          prop="proName"
                          label="项目"
                          width="180"
                        >
                        </el-table-column>
                        <el-table-column prop="ordPrice" label="原价">
                        </el-table-column>
                      </el-table>
                    </el-collapse-item>
                  </div>
                </el-collapse> -->
                <template>
                  <el-form :model="form">
                    <el-form-item label="体检类型" prop="tjType">
                      <el-radio-group v-model="form.tjType">
                        <el-radio :label="1">团队</el-radio>
                        <el-radio :label="2">个人</el-radio>
                      </el-radio-group>
                    </el-form-item>
                  </el-form>
                </template>
                <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-form-item>
                    <el-form-item label="折扣设定">
                      <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-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>
                    </el-form-item>
                    <el-form-item>
                      <el-button
                        type="primary"
                        @click="submitPrice1"
                        :disabled="confirm"
                        style="margin-top: 34px"
                        >提交</el-button
                      >
                    </el-form-item>
                  </el-form>
                </div>
              </div>
            </el-col>
          </el-row>
        </el-tab-pane>
      </el-tabs>
    </el-dialog>
    <!-- 添加或修改体检记录对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="950px" append-to-body >
    <el-dialog :title="title" :visible.sync="open" width="950px" append-to-body>
      <el-tabs v-model="activeName1" type="card">
        <!-- <el-tab-pane label="订单流水" name="first">
          <el-table :data="numberList" style="width: 100%">
@@ -839,7 +1107,7 @@
            </el-table-column>
          </el-table>
        </el-tab-pane> -->
        <el-tab-pane label="项目汇总" name="second" style="height: 400px;">
        <el-tab-pane label="项目汇总" name="second" style="height: 400px">
          <el-table :data="huizongList" style="width: 100%" max-height="200">
            <el-table-column
              align="center"
@@ -865,7 +1133,7 @@
            </el-table-column>
          </el-table>
        </el-tab-pane>
        <el-tab-pane label="明细项目" name="third" style="height: 350px;">
        <el-tab-pane label="明细项目" name="third" style="height: 350px">
          <el-table
            :data="infoList"
            style="width: 100%"
@@ -920,7 +1188,13 @@
          </div>
          <div class="tab3">
            <el-table :data="DataLists" border style="width: 100%" height="400"  @selection-change="handleProjectssChange" >
            <el-table
              :data="DataLists"
              border
              style="width: 100%"
              height="400"
              @selection-change="handleProjectssChange"
            >
              <el-table-column type="selection" width="40" align="center" />
              <el-table-column
                type="index"
@@ -957,7 +1231,6 @@
                width="96px"
              >
              </el-table-column>
            </el-table>
          </div>
        </el-col>
@@ -1003,9 +1276,11 @@
  getNewDateList,
  revokeTjOrderByTjNum,
  getTransitionInfo,
  getBlproByTjh,revokeBlProByBldhAndTjh
  getBlproByTjh,
  revokeBlProByBldhAndTjh,
} from "@/api/hosp/order";
import moment from "moment";
import { getZhList, getlistByZhId } from "@/api/system/package";
import { getwater } from "@/api/hosp/customer";
import ViewPdf from "@/components/ViewPdf";
import {
@@ -1023,9 +1298,10 @@
  data() {
    return {
      huizongList: [],
      DataLists:[],
      DataLists: [],
      infoList: [],
      bldhs:[],
      bldhs: [],
      filterage: "",
      activeName1: "second",
      filterText: "",
      orderIds: "",
@@ -1035,13 +1311,20 @@
      cusIds: "",
      userIds: "",
      cusIdcard: "",
      defaultpackProps: {
        children: [],
        label: "proName",
      },
      cusName: "",
      cusPhone: "",
      cusSex: "",
      reportTimeList: "",
      createTimeList: "",
      packagedataList: [],
      cusId: "",
      payType: "0",
      packageList: [],
      checkedkeys: [],
      dialogVisible: false,
      daoZhenDan: false,
      Projectopen: false,
@@ -1051,12 +1334,16 @@
      flag: true,
      bill: [],
      Treedata: [],
      DataListss:[],
      DataListss: [],
      checkedkey: [],
      checkedListkey: [],
      defaultProps: {
        children: [],
        label: "proName",
      },
      defaultProp: {
        children: [],
        label: "zhmc",
      },
      TreedataList: [],
      discount: 10,
@@ -1076,6 +1363,7 @@
      dataObj: {},
      // 非单个禁用
      single: true,
      activeNames: "first",
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
@@ -1090,8 +1378,10 @@
      orderId: "",
      // 是否显示弹出层
      open: false,
      Datalists: [],
      // 日期范围
      datetimerange: [],
      marryalls: 0,
      // 查询参数
      queryParams: {
        pageNum: 1,
@@ -1146,6 +1436,9 @@
  watch: {
    filterText(val) {
      this.$refs.tree.filter(val);
    },
    filterage(val) {
      this.$refs.treas.filter(val);
    },
  },
  created() {
@@ -1393,6 +1686,53 @@
      this.queryParams.pageNum = 1;
      this.getList();
    },
    renderContents(h, { node, data, store }) {
      return (
        <span class="custom-tree-node">
          <span>{node.label}</span>
          <span>({data.price}元)</span>
        </span>
      );
    },
    objectspanmethod({ row, column, rowIndex, columnIndex }) {
      let fields = ["propinName"];
      let cellValue = row[column.property];
      if (cellValue && fields.includes(column.property)) {
        let prevRow = this.Datalists[rowIndex - 1];
        let nextRow = this.Datalists[rowIndex + 1];
        if (prevRow && prevRow[column.property] === cellValue) {
          return { rowspan: 0, colspan: 0 };
        } else {
          let countRowspan = 1;
          while (nextRow && nextRow[column.property] === cellValue) {
            nextRow = this.Datalists[++countRowspan + rowIndex];
          }
          if (countRowspan > 1) {
            return { rowspan: countRowspan, colspan: 1 };
          }
        }
      }
      // if (columnIndex == 3) {
      //   let rowspan = 0;
      //   this.DataLists.forEach((element) => {
      //     if (element.propinName === row.propinName) {
      //       rowspan++;
      //     }
      //   });
      //   return [rowspan, 1];
      // }
    },
    filterpackage(value, data) {
      if (!value) return true;
      if (data.zhmc.indexOf(value) !== -1) {
        return data.zhmc.indexOf(value) !== -1;
      } else {
        return data.pym.indexOf(value) !== -1;
      }
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.startTime = [];
@@ -1412,6 +1752,7 @@
        this.cusName = item.tjCustomerName;
        this.cusPhone = item.tjCustomerPhone;
        this.cusSex = item.tjCustomerSex;
        this.form.tjType = parseInt(item.tjType);
      });
      this.ids = selection.map((item) => item.orderId);
      // this.tjNumbers = selection.map((item) => item.tjNumber);
@@ -1432,16 +1773,20 @@
      getNumber(tjNumber).then((response) => {
        // this.form = response.data;
        this.numberList = response.data.charging;
        this.bill =[]
        this.bill = [];
        var copeWith = 0;
        var paidIn = 0;
        var discount = ""
        response.data.water.forEach(item => {
        var discount = "";
        response.data.water.forEach((item) => {
          copeWith += item.copeWith;
          paidIn+= item.copeWith;
          discount= item.discount
        })
        this.bill.push({copeWith:copeWith,paidIn:paidIn,discount:discount});
          paidIn += item.copeWith;
          discount = item.discount;
        });
        this.bill.push({
          copeWith: copeWith,
          paidIn: paidIn,
          discount: discount,
        });
        this.title = "订单流水";
      });
@@ -1469,18 +1814,22 @@
      getNumber(tjNumber).then((response) => {
        // this.form = response.data;
        this.numberList = response.data.charging;
        this.bill =[]
        this.bill = [];
        var copeWith = 0;
        var paidIn = 0;
        var discount = ""
        response.data.water.forEach(item => {
        var discount = "";
        response.data.water.forEach((item) => {
          copeWith += item.copeWith;
          paidIn+= item.copeWith;
          discount= item.discount
        })
        this.bill.push({copeWith:copeWith,paidIn:paidIn,discount:discount});
          paidIn += item.copeWith;
          discount = item.discount;
        });
        this.bill.push({
          copeWith: copeWith,
          paidIn: paidIn,
          discount: discount,
        });
        console.log(this.bill)
        console.log(this.bill);
        this.title = "订单流水";
      });
      getTransitionInfo(tjNumber).then((res) => {
@@ -1499,6 +1848,62 @@
            1;
        });
      });
    },
    handleClick(tab, event) {
      if (this.activeNames == "first") {
        this.marryalls = 0;
        this.Datalists = [];
        this.checkedkeys = [];
        getZhList().then((response) => {
          if (response.data) {
            this.packageList = response.data;
          }
          this.loading = false;
        });
      } else {
        console.log(111)
        this.TotalPrice1 = 0;
        this.checkedkey =[]
        this.DataList = []
        this.getDataList();
        if (this.marryalls != 0) {
          this.TotalPrice1 += this.marryalls;
        }
      }
    },
    handlepackage(data, checked, checkedNodes) {
      if (checked.checkedNodes.length != 0) {
        this.$refs.treas.setCheckedKeys([data.id]);
        let datas = {
          zhId: data.id,
        };
        getlistByZhId(datas).then((res) => {
          this.packagedataList = res.data.tjProjectList;
          for (var i = 0; i < this.packagedataList.length; i++) {
            let proId = this.packagedataList[i].proId;
            getProSonDxList(proId).then((res) => {
              this.TreedataList = res.data.list;
              this.TreedataList.forEach((item) => {
                this.Datalists.push(item);
                if (this.Datalists.length >= 1) {
                  this.marryalls = 0;
                  this.Datalists.forEach((item1) => {
                    this.marryalls += item1.proPrice;
                    this.packagedataList.forEach((item3) => {
                      if (item1.proParentId == item3.proId) {
                        item1.propinName = item3.proName;
                      }
                    });
                  });
                }
              });
            });
          }
        });
      } else if (checked.checkedNodes.length == 0) {
      }
    },
    renderContent(h, { node, data, store }) {
@@ -1526,10 +1931,12 @@
      if (row.tjType) {
        this.form.tjType = parseInt(row.tjType);
      } else {
        this.form.tjType = 0;
        this.form.tjType = 2;
      }
      this.activeNames = "first";
      /** 查询部门下拉树结构 */
      this.getDataList();
      this.handleClick();
      this.Projectopen = true;
      this.title = "补录项目";
    },
@@ -1537,33 +1944,33 @@
    getDataList() {
      getProParentIdDxList().then((response) => {
        this.Treedata = response.data.list;
        this.checkedkey.push(this.Treedata[0].proId);
        let proId = this.Treedata[0].proId;
        getProSonDxList(proId).then((res) => {
          this.TreedataList = res.data.list;
          this.TreedataList.forEach((item) => {
            this.checkedListkey.push(item.proId);
            this.DataList.push(item);
            this.DataList.forEach((item) => {
              item.propinName = this.Treedata[0].proName;
            });
          });
          this.TotalPrice1 = 0;
        // this.checkedkey.push(this.Treedata[0].proId);
        // let proId = this.Treedata[0].proId;
        // getProSonDxList(proId).then((res) => {
        //   this.TreedataList = res.data.list;
        //   this.TreedataList.forEach((item) => {
        //     this.checkedListkey.push(item.proId);
        //     this.DataList.push(item);
        //     this.DataList.forEach((item) => {
        //       item.propinName = this.Treedata[0].proName;
        //     });
        //   });
        //   this.TotalPrice1 = 0;
          if (this.DataList.length != 0) {
            this.list1 = false;
            this.DataList.forEach((item) => {
              this.TotalPrice1 = item.proPrice + this.TotalPrice1;
            });
          }
        });
        //   if (this.DataList.length != 0) {
        //     this.list1 = false;
        //     this.DataList.forEach((item) => {
        //       this.TotalPrice1 = item.proPrice + this.TotalPrice1;
        //     });
        //   }
        // });
        this.loading = false;
      });
    },
    revokeProject() {
      getBlproByTjh(this.tjnumbers).then((res) => {
        if (res.data) {
          this.DataLists = res.data
          this.DataLists = res.data;
          this.Projectssopen = true;
          this.title1 = "撤销补录";
        } else {
@@ -1587,8 +1994,10 @@
        cusPhone: this.cusPhone,
        cusSex: this.cusSex,
      };
      this.activeNames = "first";
      /** 查询部门下拉树结构 */
      this.getDataList();
      this.handleClick();
      this.Projectopen1 = true;
      this.title = "补录项目";
    },
@@ -1617,6 +2026,9 @@
            this.DataList.forEach((item) => {
              this.TotalPrice1 = item.proPrice + this.TotalPrice1;
            });
            if (this.marryalls != 0) {
          this.TotalPrice1 += this.marryalls;
        }
          }
        });
      } else if (checked.checkedNodes.length == 0) {
@@ -1651,6 +2063,9 @@
            this.DataList.forEach((item1) => {
              this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
            });
            if (this.marryalls != 0) {
          this.TotalPrice1 += this.marryalls;
        }
          }
        });
      } else if (checked == true) {
@@ -1665,9 +2080,22 @@
        this.DataList.forEach((item1) => {
          this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
        });
        if (this.marryalls != 0) {
          this.TotalPrice1 += this.marryalls;
        }
      }
    },
    handleDel(row) {
      this.Datalists.forEach((item, index) => {
        if (item.proId == row.proId) {
          this.Datalists.splice(index, 1);
          this.marryalls = 0;
          this.Datalists.forEach((item1) => {
            this.marryalls += item1.proPrice;
          });
        }
      });
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      this.DataList.forEach((item, index) => {
@@ -1677,6 +2105,9 @@
          this.DataList.forEach((item1) => {
            this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
          });
          if (this.marryalls != 0) {
          this.TotalPrice1 += this.marryalls;
        }
        }
      });
    },
@@ -1753,6 +2184,11 @@
          this.proIds.push(item.proId);
        });
      }
      if (this.Datalists.length != 0) {
        this.Datalists.forEach((item) => {
          this.proIds.push(item.proId);
        });
      }
      let data = {
        cusId: this.cusId,
        proIds: this.proIds,
@@ -1794,6 +2230,11 @@
          this.proIds.push(item.proId);
        });
      }
      if (this.Datalists.length != 0) {
        this.Datalists.forEach((item) => {
          this.proIds.push(item.proId);
        });
      }
      let data = {
        cusId: this.cusIds,
        proIds: this.proIds,
@@ -1828,23 +2269,22 @@
      });
    },
    handleProjectssChange(selection){
      this.DataListss =[]
    handleProjectssChange(selection) {
      this.DataListss = [];
      this.bldhs = selection.map((item) => item.bldh);
      selection.forEach(item => {
        item.projectList.forEach(item1 => {
          item1.children.forEach(item2 => {
            this.DataListss.push(item2)
            if(this.DataListss.length != 0){
              this.DataListss.forEach(item => {
                if(item.proParentId ==item1.proId )
                item.propinName= item1.proName
              })
      selection.forEach((item) => {
        item.projectList.forEach((item1) => {
          item1.children.forEach((item2) => {
            this.DataListss.push(item2);
            if (this.DataListss.length != 0) {
              this.DataListss.forEach((item) => {
                if (item.proParentId == item1.proId)
                  item.propinName = item1.proName;
              });
            }
          })
        })
      })
          });
        });
      });
    },
    /** 提交按钮 */
@@ -1857,18 +2297,18 @@
        .then(() => {
          let data = {
            tjh: this.tjnumbers,
            bldhs:this.bldhs
          }
          revokeBlProByBldhAndTjh(data).then(res => {
            this.Projectssopen =false
          })
            bldhs: this.bldhs,
          };
          revokeBlProByBldhAndTjh(data).then((res) => {
            this.Projectssopen = false;
          });
        })
        .catch(() => {
          this.$message({
            type: "info",
            message: "已取消撤销",
          });
          this.Projectssopen =false
          this.Projectssopen = false;
        });
    },
src/views/hosp/project/index.vue
@@ -1567,6 +1567,7 @@
    handleUpdate1() {
      this.open = true;
      this.form = this.xiugaiList;
      console.log(this.form)
      this.proParent = true;
      // if(){
      //   this.proParent = true
src/views/reservation/reservations/index.vue
@@ -1,105 +1,294 @@
<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: 120px" v-model="queryParams.name" placeholder="请输入姓名" clearable
          @keyup.enter.native="handleQuery" />
        <el-input
          style="width: 120px"
          v-model="queryParams.name"
          placeholder="请输入姓名"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="身份证号" prop="idCard">
        <el-input v-model="queryParams.idCard" placeholder="请输入身份证号" clearable @keyup.enter.native="handleQuery" />
        <el-input
          v-model="queryParams.idCard"
          placeholder="请输入身份证号"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="联系电话" prop="phoe">
        <el-input v-model="queryParams.phoe" placeholder="请输入联系电话" clearable @keyup.enter.native="handleQuery"
          style="width: 140px" />
        <el-input
          v-model="queryParams.phoe"
          placeholder="请输入联系电话"
          clearable
          @keyup.enter.native="handleQuery"
          style="width: 140px"
        />
      </el-form-item>
      <el-form-item label="单位名称" prop="company">
        <el-select :remote-method="getRemoteData" v-model="queryParams.company" value-key="drugManufacturerId" remote
          filterable placeholder="请选择单位名称" clearable @change="searchSelect">
          <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName"
            :value="dict.cnName" />
        <el-select
          :remote-method="getRemoteData"
          v-model="queryParams.company"
          value-key="drugManufacturerId"
          remote
          filterable
          placeholder="请选择单位名称"
          clearable
          @change="searchSelect"
        >
          <el-option
            v-for="dict in CompanyList"
            :key="dict.drugManufacturerId"
            :label="dict.cnName"
            :value="dict.cnName"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="预约超期" prop="isExpire">
        <el-select v-model="queryParams.isExpire" placeholder="请选择是否超期" clearable style="width: 140px">
          <el-option v-for="dict in options" :key="dict.value" :label="dict.label" :value="dict.value" />
        <el-select
          v-model="queryParams.isExpire"
          placeholder="请选择是否超期"
          clearable
          style="width: 140px"
        >
          <el-option
            v-for="dict in options"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </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: 10px 15px;">
    <el-row :gutter="10" style="margin: 10px 15px">
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="batch"
          v-hasPermi="['reservation:reservation:remove']">撤销预约</el-button>
        <el-button
          type="primary"
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="batch"
          v-hasPermi="['reservation:reservation:remove']"
          >撤销预约</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" size="mini" :disabled="single" @click="receipt"
          v-hasPermi="['reservation:reservation:remove']">补打小票</el-button>
        <el-button
          type="primary"
          size="mini"
          :disabled="single"
          @click="receipt"
          v-hasPermi="['reservation:reservation:remove']"
          >补打小票</el-button
        >
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      <right-toolbar
        :showSearch.sync="showSearch"
        @queryTable="getList"
      ></right-toolbar>
    </el-row>
    <el-table border v-loading="loading" :data="reservationList" @selection-change="handleSelectionChange"
      :default-sort="{ prop: 'reservationTime', order: 'descending' }" highlight-current-row style="margin-left: 15px;">
      <el-table-column type="selection" width="40px" align="center" fixed="left" :selectable="selectHandle" />
      <el-table-column label="姓名" align="center" prop="name" width="90px" :show-overflow-tooltip="true" fixed="left" />
      <el-table-column label="性别" align="center" prop="sex" width="60px" :show-overflow-tooltip="true">
    <el-table
      border
      v-loading="loading"
      :data="reservationList"
      @selection-change="handleSelectionChange"
      :default-sort="{ prop: 'reservationTime', order: 'descending' }"
      highlight-current-row
      style="margin-left: 15px"
    >
      <el-table-column
        type="selection"
        width="40px"
        align="center"
        fixed="left"
        :selectable="selectHandle"
      />
      <el-table-column
        label="姓名"
        align="center"
        prop="name"
        width="90px"
        :show-overflow-tooltip="true"
        fixed="left"
      />
      <el-table-column
        label="性别"
        align="center"
        prop="sex"
        width="60px"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <span v-if="scope.row.sex == '0'">男</span>
          <span v-if="scope.row.sex == '1'">女</span>
          <span v-if="scope.row.sex == '2'">未知</span>
        </template>
      </el-table-column>
      <el-table-column label="年龄" align="center" prop="age" width="60px" :show-overflow-tooltip="true" />
      <el-table-column label="身份证号" align="center" prop="idCard" width="170px" :show-overflow-tooltip="true" />
      <el-table-column label="出生日期" align="center" prop="birthday" width="100px" :show-overflow-tooltip="true">
      <el-table-column
        label="年龄"
        align="center"
        prop="age"
        width="60px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="身份证号"
        align="center"
        prop="idCard"
        width="170px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="出生日期"
        align="center"
        prop="birthday"
        width="100px"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.birthday, "{y}-{m}-{d}") }}</span>
        </template>
      </el-table-column>
      <el-table-column label="联系电话" align="center" prop="phoe" width="110px" :show-overflow-tooltip="true" />
      <el-table-column label="预约时间" align="center" prop="reservationTime" width="100px" :show-overflow-tooltip="true"
        sortable>
      <el-table-column
        label="联系电话"
        align="center"
        prop="phoe"
        width="110px"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="预约时间"
        align="center"
        prop="reservationTime"
        width="100px"
        :show-overflow-tooltip="true"
        sortable
      >
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.reservationTime, "{y}-{m}-{d}") }}</span>
        </template>
      </el-table-column>
      <el-table-column label="体检类型" align="center" prop="tjType" width="80px" :show-overflow-tooltip="true">
      <el-table-column
        label="体检类型"
        align="center"
        prop="tjType"
        width="80px"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.dict_team" :value="scope.row.tjType" />
        </template>
      </el-table-column>
      <el-table-column label="婚姻" align="center" prop="marriage" width="60px" :show-overflow-tooltip="true">
      <el-table-column
        label="婚姻"
        align="center"
        prop="marriage"
        width="60px"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.dict_user_marry" :value="scope.row.marriage" />
          <dict-tag
            :options="dict.type.dict_user_marry"
            :value="scope.row.marriage"
          />
        </template>
      </el-table-column>
      <el-table-column label="民族" align="center" prop="nation" width="60px" :show-overflow-tooltip="true">
      <el-table-column
        label="民族"
        align="center"
        prop="nation"
        width="60px"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.dict_user_national" :value="scope.row.nation" />
          <dict-tag
            :options="dict.type.dict_user_national"
            :value="scope.row.nation"
          />
        </template>
      </el-table-column>
      <!-- <el-table-column label="体检类别" align="center" prop="tjCategory" width="100px" :show-overflow-tooltip="true" /> -->
      <!-- <el-table-column label="部门" align="center" prop="department" width="90px" :show-overflow-tooltip="true" /> -->
      <el-table-column label="预约超期" align="center" prop="isExpire" width="80px" :show-overflow-tooltip="true">
      <el-table-column
        label="预约超期"
        align="center"
        prop="isExpire"
        width="80px"
        :show-overflow-tooltip="true"
      >
        <template slot-scope="scope">
          <span v-if="scope.row.isExpire == '1'">已过期</span>
          <span v-if="scope.row.isExpire == '2'">未过期</span>
        </template>
      </el-table-column>
      <el-table-column label="单位名称" align="center" prop="company" :show-overflow-tooltip="true" />
      <el-table-column label="邮箱" align="center" prop="email" :show-overflow-tooltip="true" width="160px" />
      <el-table-column label="地址" align="center" prop="address" :show-overflow-tooltip="true" width="160px" />
      <el-table-column
        label="单位名称"
        align="center"
        prop="company"
        :show-overflow-tooltip="true"
      />
      <el-table-column
        label="邮箱"
        align="center"
        prop="email"
        :show-overflow-tooltip="true"
        width="160px"
      />
      <el-table-column
        label="地址"
        align="center"
        prop="address"
        :show-overflow-tooltip="true"
        width="160px"
      />
      <el-table-column label="操作" align="center" width="90px" fixed="right">
        <template slot-scope="scope">
          <el-button size="mini" type="text" icon="el-icon-s-order" @click="handleUpdate1(scope.row)"
            v-hasPermi="['reservation:reservation:edit']" title="预约详细"></el-button>
          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
            v-hasPermi="['reservation:reservation:edit']" title="修改"></el-button>
          <el-button size="mini" type="text" title="撤销预约" icon="el-icon-delete" @click="handleDelete(scope.row)">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-s-order"
            @click="handleUpdate1(scope.row)"
            v-hasPermi="['reservation:reservation:edit']"
            title="预约详细"
          ></el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['reservation:reservation:edit']"
            title="修改"
          ></el-button>
          <el-button
            size="mini"
            type="text"
            title="撤销预约"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
          >
          </el-button>
        </template>
      </el-table-column>
@@ -107,8 +296,13 @@
    <div class="pag">
      <div class="pag1">
        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
          @pagination="getList" />
        <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="getList"
        />
      </div>
    </div>
    <!-- 预约登记详情对话框 -->
@@ -116,114 +310,284 @@
      <template>
        <div>
          <div style="width: 1000px">
            <el-form style="margin: 0px 8px" :inline="true" ref="formIn" :model="formIn" :rules="rules"
              :label-position="labelPosition" class="demo-form-inline" label-width="78px">
            <el-form
              style="margin: 0px 8px"
              :inline="true"
              ref="formIn"
              :model="formIn"
              :rules="rules"
              :label-position="labelPosition"
              class="demo-form-inline"
              label-width="78px"
            >
              <el-form-item label="姓名" prop="name">
                <el-input v-model="formIn.name" placeholder="请输入姓名" style="width: 160px" />
                <el-input
                  v-model="formIn.name"
                  placeholder="请输入姓名"
                  style="width: 160px"
                />
              </el-form-item>
              <el-form-item label="证件类型" prop="idType">
                <el-select style="width: 160px" v-model="formIn.idType" placeholder="请选择证件类型">
                  <el-option v-for="dict in dict.type.dict_user_cardtype" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  style="width: 160px"
                  v-model="formIn.idType"
                  placeholder="请选择证件类型"
                >
                  <el-option
                    v-for="dict in dict.type.dict_user_cardtype"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="证件号" prop="idCard">
                <el-input style="width: 186px" v-model="formIn.idCard" placeholder="请输入身份证号" />
                <el-input
                  style="width: 186px"
                  v-model="formIn.idCard"
                  placeholder="请输入身份证号"
                />
              </el-form-item>
              <el-form-item label="年龄" prop="age">
                <el-input style="width: 55px" v-model="formIn.age" />
              </el-form-item>
              <el-form-item prop="ageUnit">
                <el-select style="width: 60px" v-model="formIn.ageUnit" @change="formchang">
                  <el-option v-for="dict in dict.type.dict_ageunit" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  style="width: 60px"
                  v-model="formIn.ageUnit"
                  @change="formchang"
                >
                  <el-option
                    v-for="dict in dict.type.dict_ageunit"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="性别" prop="sex">
                <el-select style="width: 160px" v-model="formIn.sex" placeholder="请选择性别" @change="formchang">
                  <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                    :value="parseInt(dict.value)"></el-option>
                <el-select
                  style="width: 160px"
                  v-model="formIn.sex"
                  placeholder="请选择性别"
                  @change="formchang"
                >
                  <el-option
                    v-for="dict in dict.type.sys_user_sex"
                    :key="dict.value"
                    :label="dict.label"
                    :value="parseInt(dict.value)"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="联系电话" prop="phoe">
                <el-input v-model="formIn.phoe" placeholder="请输入联系电话" style="width: 160px" />
                <el-input
                  v-model="formIn.phoe"
                  placeholder="请输入联系电话"
                  style="width: 160px"
                />
              </el-form-item>
              <el-form-item label="民族" prop="nation">
                <el-select v-model="formIn.nation" placeholder="请选择民族" style="width: 160px">
                  <el-option v-for="dict in dict.type.dict_user_national" :key="dict.value" :label="dict.label"
                    :value="parseInt(dict.value)"></el-option>
                <el-select
                  v-model="formIn.nation"
                  placeholder="请选择民族"
                  style="width: 160px"
                >
                  <el-option
                    v-for="dict in dict.type.dict_user_national"
                    :key="dict.value"
                    :label="dict.label"
                    :value="parseInt(dict.value)"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="邮箱" prop="email">
                <el-input v-model="formIn.email" placeholder="请输入邮箱" style="width: 150px" />
                <el-input
                  v-model="formIn.email"
                  placeholder="请输入邮箱"
                  style="width: 150px"
                />
              </el-form-item>
              <el-form-item label="婚姻" prop="marriage">
                <el-select style="width: 160px" v-model="formIn.marriage" placeholder="请选择婚姻状况">
                  <el-option v-for="dict in dict.type.dict_user_marry" :key="dict.value" :label="dict.label"
                    :value="parseInt(dict.value)"></el-option>
                <el-select
                  style="width: 160px"
                  v-model="formIn.marriage"
                  placeholder="请选择婚姻状况"
                >
                  <el-option
                    v-for="dict in dict.type.dict_user_marry"
                    :key="dict.value"
                    :label="dict.label"
                    :value="parseInt(dict.value)"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="现住址" prop="address">
                <el-input v-model="formIn.address" placeholder="请输入现居住地址" style="width: 410px" />
                <el-input
                  v-model="formIn.address"
                  placeholder="请输入现居住地址"
                  style="width: 410px"
                />
              </el-form-item>
              <el-form-item label="体检类别" prop="tjCategory">
                <el-select style="width: 140px" v-model="formIn.tjCategory" placeholder="请选择体检类别">
            <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          </el-select>
                <el-select
                  style="width: 140px"
                  v-model="formIn.tjCategory"
                  placeholder="请选择体检类别"
                >
                  <el-option
                    v-for="dict in dict.type.dict_tjtype"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="部门" prop="department">
                <el-input v-model="formIn.department" placeholder="请输入部门" style="width: 160px" />
                <el-input
                  v-model="formIn.department"
                  placeholder="请输入部门"
                  style="width: 160px"
                />
              </el-form-item>
              <el-form-item label="工作单位" prop="company">
                <el-input v-model="formIn.company" placeholder="请输入工作单位" style="width: 410px" />
                <el-input
                  v-model="formIn.company"
                  placeholder="请输入工作单位"
                  style="width: 410px"
                />
              </el-form-item>
              <el-form-item label="职业" prop="career">
                <el-select filterable :disabled="isDisabled" v-model="formIn.career" placeholder="请输入职业"
                  style="width: 150px">
                  <el-option v-for="dict in dict.type.dict_job" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  filterable
                  :disabled="isDisabled"
                  v-model="formIn.career"
                  placeholder="请输入职业"
                  style="width: 150px"
                >
                  <el-option
                    v-for="dict in dict.type.dict_job"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="预约日期" prop="reservationTime">
                <el-date-picker v-model="formIn.reservationTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"
                  :picker-options="setDisabled" style="width: 160px">
                <el-date-picker
                  v-model="formIn.reservationTime"
                  type="date"
                  value-format="yyyy-MM-dd"
                  placeholder="选择日期"
                  :picker-options="setDisabled"
                  style="width: 160px"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item label="时间" prop="timeRegion">
                <el-select style="width: 130px" v-model="formIn.timeRegion" placeholder="请选择预约时间">
                  <el-option v-for="dict in dict.type.tj_time_region" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  style="width: 130px"
                  v-model="formIn.timeRegion"
                  placeholder="请选择预约时间"
                >
                  <el-option
                    v-for="dict in dict.type.tj_time_region"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="卡号" prop="indexCard">
                <el-input v-model="formIn.indexCard" placeholder="请输入卡号" style="width: 190px" />
                <el-input
                  v-model="formIn.indexCard"
                  placeholder="请输入卡号"
                  style="width: 190px"
                />
              </el-form-item>
              <el-button type="primary" @click="taocan = true" size="mini" v-show="tijiao1">选择套餐</el-button>
              <el-button
                type="primary"
                @click="taocan = true"
                size="mini"
                v-show="tijiao1"
                >选择套餐</el-button
              >
            </el-form>
          </div>
          <el-dialog title="选择套餐" :visible.sync="taocan" width="35%" append-to-body>
            <el-tabs type="border-card" style="height: 538px; margin-left: 10px; width: 600px">
          <el-dialog
            title="选择套餐"
            :visible.sync="taocan"
            width="35%"
            append-to-body
          >
            <el-tabs
              type="border-card"
              style="height: 538px; margin-left: 10px; width: 600px"
            >
              <el-tab-pane label="套餐">
                <el-form :model="queryParam" ref="queryForm" size="small" :inline="true" v-show="showSearch"
                  label-width="auto" @submit.native.prevent>
                <el-form
                  :model="queryParam"
                  ref="queryForm"
                  size="small"
                  :inline="true"
                  v-show="showSearch"
                  label-width="auto"
                  @submit.native.prevent
                >
                  <el-form-item label="套餐名称" prop="pacName">
                    <el-input v-model="queryParam.pacName" placeholder="请输入套餐名称" clearable @keyup.enter.native="handle" />
                    <el-input
                      v-model="queryParam.pacName"
                      placeholder="请输入套餐名称"
                      clearable
                      @keyup.enter.native="handle"
                    />
                  </el-form-item>
                  <el-form-item>
                    <el-button type="primary" icon="el-icon-search" size="mini" @click="handle">查询</el-button>
                    <el-button
                      type="primary"
                      icon="el-icon-search"
                      size="mini"
                      @click="handle"
                      >查询</el-button
                    >
                  </el-form-item>
                </el-form>
                <div class="tab4">
                  <div class="grid-content bg-purple" style="margin-left: 5px; width: 100%">
                    <el-table v-loading="loading" element-loading-text="正在加载中..." border
                      element-loading-spinner="el-icon-loading" :data="newpacName" @select="handleSelectionChange1"
                      height="430" ref="tb" style="width: 900px">
                  <div
                    class="grid-content bg-purple"
                    style="margin-left: 5px; width: 100%"
                  >
                    <el-table
                      v-loading="loading"
                      element-loading-text="正在加载中..."
                      border
                      element-loading-spinner="el-icon-loading"
                      :data="newpacName"
                      @select="handleSelectionChange1"
                      height="430"
                      ref="tb"
                      style="width: 900px"
                    >
                      <template slot="empty">数据正在加载中</template>
                      <el-table-column type="selection" width="40px" align="center" label="选择" />
                      <el-table-column label="套餐名称" align="center" prop="pacName" width="120px" />
                      <el-table-column label="套餐明细" align="center" prop="allProName" :show-overflow-tooltip="true" />
                      <el-table-column
                        type="selection"
                        width="40px"
                        align="center"
                        label="选择"
                      />
                      <el-table-column
                        label="套餐名称"
                        align="center"
                        prop="pacName"
                        width="120px"
                      />
                      <el-table-column
                        label="套餐明细"
                        align="center"
                        prop="allProName"
                        :show-overflow-tooltip="true"
                      />
                    </el-table>
                  </div>
                  <!-- <el-button
@@ -247,9 +611,16 @@
              <el-tab-pane label="单项">
                <div class="tab3">
                  <div class="tab2">
                    <v-tree-transfer :treeData="treedataList"
                      :defaultProps="{ children: 'tjProjectList', label: 'proName' }" :defaultKeys="defaultKeys"
                      @changeKeys="changeCategoryKeys" :key="datekey"></v-tree-transfer>
                    <v-tree-transfer
                      :treeData="treedataList"
                      :defaultProps="{
                        children: 'tjProjectList',
                        label: 'proName',
                      }"
                      :defaultKeys="defaultKeys"
                      @changeKeys="changeCategoryKeys"
                      :key="datekey"
                    ></v-tree-transfer>
                    <!-- <el-tree :data="data" show-checkbox node-key="proId" :props="defaultProps"
                      @check-change="handleCurrentChecked"> 
                    </el-tree>-->
@@ -269,29 +640,62 @@
                <template>
                  <el-form :model="form" :inline="true" label-width="68px">
                    <el-form-item label="体检类型">
                      <el-select style="width: 160px" v-model="form.tjType" placeholder="请选择体检类型">
                        <el-option v-for="dict in dict.type.dict_team" :key="dict.value" :label="dict.label"
                          :value="dict.value"></el-option>
                      <el-select
                        style="width: 160px"
                        v-model="form.tjType"
                        placeholder="请选择体检类型"
                      >
                        <el-option
                          v-for="dict in dict.type.dict_team"
                          :key="dict.value"
                          :label="dict.label"
                          :value="dict.value"
                        ></el-option>
                      </el-select>
                    </el-form-item>
                    <!-- <div class="tab1"> -->
                    <!-- <el-form :inline="true" class="tab1"> -->
                    <el-form-item label="应收金额">
                      <el-input placeholder="应收金额" :value="TotalPrice1 " disabled style="width: 160px"></el-input>
                      <el-input
                        placeholder="应收金额"
                        :value="TotalPrice1"
                        disabled
                        style="width: 160px"
                      ></el-input>
                    </el-form-item>
                    <el-form-item label="优惠折扣">
                      <!-- <el-input style="width: 100px" type="number" v-model="discount" :value="discount"></el-input> -->
                      <el-input-number ref="inputNumber" style="width: 130px" v-model="discount" :precision="2"
                        :step="0.1" :max="10" :min="1" @change="numberChange" :disabled="isfalse"></el-input-number>
                      <el-input-number
                        ref="inputNumber"
                        style="width: 130px"
                        v-model="discount"
                        :precision="2"
                        :step="0.1"
                        :max="10"
                        :min="1"
                        @change="numberChange"
                        :disabled="isfalse"
                      ></el-input-number>
                    </el-form-item>
                    <el-form-item label="实收金额">
                      <el-input placeholder="实收金额" v-model="TotalPrice" style="width: 120px" disabled></el-input>
                      <el-input
                        placeholder="实收金额"
                        v-model="TotalPrice"
                        style="width: 120px"
                        disabled
                      ></el-input>
                    </el-form-item>
                    <el-form-item>
                      <el-button type="primary" @click="submitPrice" :disabled="confirm" size="mini"
                        v-show="tijiao1">签到登记</el-button>
                      <el-button
                        type="primary"
                        @click="submitPrice"
                        :disabled="confirm"
                        size="mini"
                        v-show="tijiao1"
                        >签到登记</el-button
                      >
                    </el-form-item>
                    <!-- </el-form> -->
                    <!-- </div> -->
@@ -301,14 +705,20 @@
                <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="index" accordion v-if="list3">
                    <div class="info1" v-for="(item, index) in tableData1" :key="'info1-' + index">
                    <div
                      class="info1"
                      v-for="(item, index) in tableData1"
                      :key="'info1-' + index"
                    >
                      <el-collapse-item :name="index">
                        <template slot="title">
                          {{
@@ -322,29 +732,54 @@
                            "元)"
                          }}
                        </template>
                        <el-table :data="item.list" border style="width: 100%" height="270">
                          <el-table-column prop="proName" label="项目" width="180">
                        <el-table
                          :data="item.list"
                          border
                          style="width: 100%"
                          height="270"
                        >
                          <el-table-column
                            prop="proName"
                            label="项目"
                            width="180"
                          >
                          </el-table-column>
                          <el-table-column prop="ordPrice" label="应收金额">
                          </el-table-column>
                          <el-table-column prop="nowPrice" label="实收金额">
                          </el-table-column>
                        </el-table>
                      </el-collapse-item>
                    </div>
                  </el-collapse>
                  <el-collapse v-model="activeName" accordion v-if="list2">
                    <div class="info" v-for="(item, index) in tableData1" :key="'info-' + index">
                    <div
                      class="info"
                      v-for="(item, index) in tableData1"
                      :key="'info-' + index"
                    >
                      <el-collapse-item>
                        <template slot="title">
                          {{ item.pacName }}
                        </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="proSex" label="性别" width="180">
                          <el-table-column
                            prop="proSex"
                            label="性别"
                            width="180"
                          >
                          </el-table-column>
                          <el-table-column prop="ordPrice" label="应收金额">
                          </el-table-column>
@@ -352,7 +787,6 @@
                          </el-table-column>
                          <el-table-column prop="proCheckMethod" label="空腹">
                          </el-table-column>
                        </el-table>
                      </el-collapse-item>
                    </div>
@@ -362,9 +796,17 @@
                    <div>
                      <el-collapse-item title="请选择项目">
                        <el-table :data="list" 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="proSex" label="性别" width="180">
                          <el-table-column
                            prop="proSex"
                            label="性别"
                            width="180"
                          >
                          </el-table-column>
                          <el-table-column prop="ordPrice" label="应收金额">
                          </el-table-column>
@@ -372,7 +814,6 @@
                          </el-table-column>
                          <el-table-column prop="proCheckMethod" label="空腹">
                          </el-table-column>
                        </el-table>
                      </el-collapse-item>
                    </div>
@@ -382,39 +823,44 @@
            </el-col>
          </el-row>
          <el-dialog title="导检单预览" :visible.sync="dialogVisibles" :close-on-click-modal="false">
          <el-dialog
            title="导检单预览"
            :visible.sync="dialogVisibles"
            :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>
        </div>
      </template>
    </el-drawer>
    <div style="
              position: absolute;
              bottom: 100px;
              left: 500px;
              width: 700px;
              display: none;
            ">
    <div
      style="
        position: absolute;
        bottom: 100px;
        left: 500px;
        width: 700px;
        display: none;
      "
    >
      <div id="printBill">
        <div style="font-size: 13px; color: #000000">
          <div style="width: 48%; margin-top: 10px">
            姓名:{{ fmobj.name }}
          </div>
          <div style="width: 48%; margin-top: 10px">姓名:{{ fmobj.name }}</div>
          <div style="width: 48%; margin-top: 10px">
            性别:{{ fmobj.sex === 0 ? "男" : "女" }}
          </div>
          <div style="width: 48%; margin-top: 10px">
            电话:{{ fmobj.phoe }}
          </div>
          <div style="width: 48%; margin-top: 10px">电话:{{ fmobj.phoe }}</div>
          <div style="width: 48%; margin-top: 10px">
            日期:{{ fmobj.reservationTime }}
          </div>
          <div style="width: 58%; margin-top: 10px">
            套餐:{{ pacName }}
          </div>
          <div style="width: 58%; margin-top: 10px">套餐:{{ pacName }}</div>
          <div style="width: 100%; margin-top: 10px">温馨提示:</div>
          <div style="width: 100%">1、采血,腹部彩超检查后方可用餐。</div>
          <div style="width: 100%">
@@ -423,15 +869,11 @@
          <div style="width: 100%">
            3、怀孕或可能已受孕的女士,还应避免妇科、放射科及阴式超声检查。
          </div>
          <div style="width: 100%">
            4、经期女性不宜进行妇科及尿常规检查。
          </div>
          <div style="width: 100%">4、经期女性不宜进行妇科及尿常规检查。</div>
          <div style="width: 100%">
            5、若您在等待检查过程中有疑问,请及时联系导检护士。
          </div>
          <div style="width: 100%">
            6、体检结束后请将导检单交还至前台。
          </div>
          <div style="width: 100%">6、体检结束后请将导检单交还至前台。</div>
        </div>
      </div>
    </div>
@@ -441,115 +883,284 @@
      <template>
        <div>
          <div style="width: 1000px">
            <el-form style="margin: 0px 8px" :inline="true" ref="formIn" :model="formIn" :rules="rules"
              :label-position="labelPosition" class="demo-form-inline" label-width="78px">
            <el-form
              style="margin: 0px 8px"
              :inline="true"
              ref="formIn"
              :model="formIn"
              :rules="rules"
              :label-position="labelPosition"
              class="demo-form-inline"
              label-width="78px"
            >
              <el-form-item label="姓名" prop="name">
                <el-input v-model="formIn.name" placeholder="请输入姓名" style="width: 160px" />
                <el-input
                  v-model="formIn.name"
                  placeholder="请输入姓名"
                  style="width: 160px"
                />
              </el-form-item>
              <el-form-item label="证件类型" prop="idType">
                <el-select style="width: 160px" v-model="formIn.idType" placeholder="请选择证件类型">
                  <el-option v-for="dict in dict.type.dict_user_cardtype" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  style="width: 160px"
                  v-model="formIn.idType"
                  placeholder="请选择证件类型"
                >
                  <el-option
                    v-for="dict in dict.type.dict_user_cardtype"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="证件号" prop="idCard">
                <el-input style="width: 186px" v-model="formIn.idCard" placeholder="请输入身份证号" />
                <el-input
                  style="width: 186px"
                  v-model="formIn.idCard"
                  placeholder="请输入身份证号"
                />
              </el-form-item>
              <el-form-item label="年龄" prop="age">
                <el-input style="width: 55px" v-model="formIn.age" />
              </el-form-item>
              <el-form-item prop="ageUnit">
                <el-select style="width: 60px" v-model="formIn.ageUnit" @change="formchang">
                  <el-option v-for="dict in dict.type.dict_ageunit" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  style="width: 60px"
                  v-model="formIn.ageUnit"
                  @change="formchang"
                >
                  <el-option
                    v-for="dict in dict.type.dict_ageunit"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="性别" prop="sex">
                <el-select style="width: 160px" v-model="formIn.sex" placeholder="请选择性别" @change="formchang">
                  <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                    :value="parseInt(dict.value)"></el-option>
                <el-select
                  style="width: 160px"
                  v-model="formIn.sex"
                  placeholder="请选择性别"
                  @change="formchang"
                >
                  <el-option
                    v-for="dict in dict.type.sys_user_sex"
                    :key="dict.value"
                    :label="dict.label"
                    :value="parseInt(dict.value)"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="联系电话" prop="phoe">
                <el-input v-model="formIn.phoe" placeholder="请输入联系电话" style="width: 160px" />
                <el-input
                  v-model="formIn.phoe"
                  placeholder="请输入联系电话"
                  style="width: 160px"
                />
              </el-form-item>
              <el-form-item label="民族" prop="nation">
                <el-select v-model="formIn.nation" placeholder="请选择民族" style="width: 160px">
                  <el-option v-for="dict in dict.type.dict_user_national" :key="dict.value" :label="dict.label"
                    :value="parseInt(dict.value)"></el-option>
                <el-select
                  v-model="formIn.nation"
                  placeholder="请选择民族"
                  style="width: 160px"
                >
                  <el-option
                    v-for="dict in dict.type.dict_user_national"
                    :key="dict.value"
                    :label="dict.label"
                    :value="parseInt(dict.value)"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="邮箱" prop="email">
                <el-input v-model="formIn.email" placeholder="请输入邮箱" style="width: 150px" />
                <el-input
                  v-model="formIn.email"
                  placeholder="请输入邮箱"
                  style="width: 150px"
                />
              </el-form-item>
              <el-form-item label="婚姻" prop="marriage">
                <el-select style="width: 160px" v-model="formIn.marriage" placeholder="请选择婚姻状况">
                  <el-option v-for="dict in dict.type.dict_user_marry" :key="dict.value" :label="dict.label"
                    :value="parseInt(dict.value)"></el-option>
                <el-select
                  style="width: 160px"
                  v-model="formIn.marriage"
                  placeholder="请选择婚姻状况"
                >
                  <el-option
                    v-for="dict in dict.type.dict_user_marry"
                    :key="dict.value"
                    :label="dict.label"
                    :value="parseInt(dict.value)"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="现住址" prop="address">
                <el-input v-model="formIn.address" placeholder="请输入现居住地址" style="width: 410px" />
                <el-input
                  v-model="formIn.address"
                  placeholder="请输入现居住地址"
                  style="width: 410px"
                />
              </el-form-item>
              <el-form-item label="体检类别" prop="tjCategory">
                <el-select style="width: 150px" v-model="formIn.tjCategory" placeholder="请选择体检类别">
                  <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  style="width: 150px"
                  v-model="formIn.tjCategory"
                  placeholder="请选择体检类别"
                >
                  <el-option
                    v-for="dict in dict.type.dict_tjtype"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="部门" prop="department">
                <el-input v-model="formIn.department" placeholder="请输入部门" style="width: 160px" />
                <el-input
                  v-model="formIn.department"
                  placeholder="请输入部门"
                  style="width: 160px"
                />
              </el-form-item>
              <el-form-item label="工作单位" prop="company">
                <el-input v-model="formIn.company" placeholder="请输入工作单位" style="width: 410px" />
                <el-input
                  v-model="formIn.company"
                  placeholder="请输入工作单位"
                  style="width: 410px"
                />
              </el-form-item>
              <el-form-item label="职业" prop="career">
                <el-select filterable :disabled="isDisabled" v-model="formIn.career" placeholder="请输入职业"
                  style="width: 150px">
                  <el-option v-for="dict in dict.type.dict_job" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  filterable
                  :disabled="isDisabled"
                  v-model="formIn.career"
                  placeholder="请输入职业"
                  style="width: 150px"
                >
                  <el-option
                    v-for="dict in dict.type.dict_job"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="预约日期" prop="reservationTime">
                <el-date-picker v-model="formIn.reservationTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"
                  :picker-options="setDisabled" style="width: 160px">
                <el-date-picker
                  v-model="formIn.reservationTime"
                  type="date"
                  value-format="yyyy-MM-dd"
                  placeholder="选择日期"
                  :picker-options="setDisabled"
                  style="width: 160px"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item label="时间" prop="timeRegion">
                <el-select style="width: 130px" v-model="formIn.timeRegion" placeholder="请选择预约时间">
                  <el-option v-for="dict in dict.type.tj_time_region" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  style="width: 130px"
                  v-model="formIn.timeRegion"
                  placeholder="请选择预约时间"
                >
                  <el-option
                    v-for="dict in dict.type.tj_time_region"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="卡号" prop="indexCard">
                <el-input v-model="formIn.indexCard" placeholder="请输入卡号" style="width: 190px" />
                <el-input
                  v-model="formIn.indexCard"
                  placeholder="请输入卡号"
                  style="width: 190px"
                />
              </el-form-item>
              <!-- <el-button type="primary" @click="Package" size="mini">选择套餐</el-button> -->
            </el-form>
          </div>
          <el-dialog title="选择套餐" :visible.sync="taocan" width="35%" append-to-body>
            <el-tabs type="border-card" style="height: 538px; margin-left: 10px; width: 600px">
          <el-dialog
            title="选择套餐"
            :visible.sync="taocan"
            width="35%"
            append-to-body
          >
            <el-tabs
              type="border-card"
              style="height: 538px; margin-left: 10px; width: 600px"
            >
              <el-tab-pane label="套餐">
                <el-form :model="queryParam" ref="queryForm" size="small" :inline="true" v-show="showSearch"
                  label-width="auto" @submit.native.prevent>
                <el-form
                  :model="queryParam"
                  ref="queryForm"
                  size="small"
                  :inline="true"
                  v-show="showSearch"
                  label-width="auto"
                  @submit.native.prevent
                >
                  <el-form-item label="套餐名称" prop="pacName">
                    <el-input v-model="queryParam.pacName" placeholder="请输入套餐名称" clearable @keyup.enter.native="handle" />
                    <el-input
                      v-model="queryParam.pacName"
                      placeholder="请输入套餐名称"
                      clearable
                      @keyup.enter.native="handle"
                    />
                  </el-form-item>
                  <el-form-item>
                    <el-button type="primary" icon="el-icon-search" size="mini" @click="handle">查询</el-button>
                    <el-button
                      type="primary"
                      icon="el-icon-search"
                      size="mini"
                      @click="handle"
                      >查询</el-button
                    >
                  </el-form-item>
                </el-form>
                <div class="tab4">
                  <div class="grid-content bg-purple" style="margin-left: 5px; width: 100%">
                    <el-table v-loading="loading" element-loading-text="正在加载中..." border
                      element-loading-spinner="el-icon-loading" :data="newpacName" @select="handleSelectionChange1"
                      height="430" ref="tb" style="width: 900px">
                  <div
                    class="grid-content bg-purple"
                    style="margin-left: 5px; width: 100%"
                  >
                    <el-table
                      v-loading="loading"
                      element-loading-text="正在加载中..."
                      border
                      element-loading-spinner="el-icon-loading"
                      :data="newpacName"
                      @select="handleSelectionChange1"
                      height="430"
                      ref="tb"
                      style="width: 900px"
                    >
                      <template slot="empty">数据正在加载中</template>
                      <el-table-column type="selection" width="40px" align="center" label="选择" />
                      <el-table-column label="套餐名称" align="center" prop="pacName" width="120px" />
                      <el-table-column label="套餐价格" align="center" prop="price" width="120px" />
                      <el-table-column label="套餐明细" align="center" prop="allProName" :show-overflow-tooltip="true" />
                      <el-table-column
                        type="selection"
                        width="40px"
                        align="center"
                        label="选择"
                      />
                      <el-table-column
                        label="套餐名称"
                        align="center"
                        prop="pacName"
                        width="120px"
                      />
                      <el-table-column
                        label="套餐价格"
                        align="center"
                        prop="price"
                        width="120px"
                      />
                      <el-table-column
                        label="套餐明细"
                        align="center"
                        prop="allProName"
                        :show-overflow-tooltip="true"
                      />
                    </el-table>
                  </div>
                  <!-- <el-button
@@ -573,8 +1184,13 @@
              <el-tab-pane label="单项">
                <div class="tab3">
                  <div class="tab2">
                    <el-tree :data="data" show-checkbox node-key="proId" :props="defaultProps"
                      @check-change="handleCurrentChecked">
                    <el-tree
                      :data="data"
                      show-checkbox
                      node-key="proId"
                      :props="defaultProps"
                      @check-change="handleCurrentChecked"
                    >
                    </el-tree>
                  </div>
                  <!-- <el-button
@@ -608,28 +1224,60 @@
                <template>
                  <el-form :model="form" :inline="true" label-width="68px">
                    <el-form-item label="体检类型">
                      <el-select style="width: 160px" v-model="form.tjType" placeholder="请选择体检类型">
                        <el-option v-for="dict in dict.type.dict_team" :key="dict.value" :label="dict.label"
                          :value="dict.value"></el-option>
                      <el-select
                        style="width: 160px"
                        v-model="form.tjType"
                        placeholder="请选择体检类型"
                      >
                        <el-option
                          v-for="dict in dict.type.dict_team"
                          :key="dict.value"
                          :label="dict.label"
                          :value="dict.value"
                        ></el-option>
                      </el-select>
                    </el-form-item>
                    <!-- <div class="tab1"> -->
                    <!-- <el-form :inline="true" class="tab1"> -->
                    <el-form-item label="应收金额">
                      <el-input placeholder="应收金额" :value="TotalPrice1" disabled style="width: 160px"></el-input>
                      <el-input
                        placeholder="应收金额"
                        :value="TotalPrice1"
                        disabled
                        style="width: 160px"
                      ></el-input>
                    </el-form-item>
                    <el-form-item label="优惠折扣">
                      <!-- <el-input style="width: 100px" type="number" v-model="discount" :value="discount"></el-input> -->
                      <el-input-number ref="inputNumber" style="width: 130px" v-model="discount" :precision="2"
                        :step="0.1" :max="10" :min="1" @change="numberChange" :disabled="isfalse"></el-input-number>
                      <el-input-number
                        ref="inputNumber"
                        style="width: 130px"
                        v-model="discount"
                        :precision="2"
                        :step="0.1"
                        :max="10"
                        :min="1"
                        @change="numberChange"
                        :disabled="isfalse"
                      ></el-input-number>
                    </el-form-item>
                    <el-form-item label="实收金额">
                      <el-input placeholder="实收金额" v-model="TotalPrice" style="width: 120px"></el-input>
                      <el-input
                        placeholder="实收金额"
                        v-model="TotalPrice"
                        style="width: 120px"
                      ></el-input>
                    </el-form-item>
                    <el-form-item>
                      <el-button type="primary" @click="submitPrice" :disabled="confirm" size="mini">预约修改</el-button>
                      <el-button
                        type="primary"
                        @click="submitPrice"
                        :disabled="confirm"
                        size="mini"
                        >预约修改</el-button
                      >
                    </el-form-item>
                    <!-- </el-form> -->
                    <!-- </div> -->
@@ -639,14 +1287,20 @@
                <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="index" accordion v-if="list3">
                    <div class="info1" v-for="(item, index) in tableData1" :key="'info1-' + index">
                    <div
                      class="info1"
                      v-for="(item, index) in tableData1"
                      :key="'info1-' + index"
                    >
                      <el-collapse-item :name="index">
                        <template slot="title">
                          {{
@@ -660,10 +1314,23 @@
                            ".00元)"
                          }}
                        </template>
                        <el-table :data="item.list" border style="width: 100%" height="270">
                          <el-table-column prop="proName" label="项目" width="180">
                        <el-table
                          :data="item.list"
                          border
                          style="width: 100%"
                          height="270"
                        >
                          <el-table-column
                            prop="proName"
                            label="项目"
                            width="180"
                          >
                          </el-table-column>
                          <el-table-column prop="proSex" label="性别" width="180">
                          <el-table-column
                            prop="proSex"
                            label="性别"
                            width="180"
                          >
                          </el-table-column>
                          <el-table-column prop="ordPrice" label="应收金额">
                          </el-table-column>
@@ -671,22 +1338,38 @@
                          </el-table-column>
                          <el-table-column prop="proCheckMethod" label="空腹">
                          </el-table-column>
                        </el-table>
                      </el-collapse-item>
                    </div>
                  </el-collapse>
                  <el-collapse v-model="activeName" accordion v-if="list2">
                    <div class="info" v-for="(item, index) in tableData1" :key="'info-' + index">
                    <div
                      class="info"
                      v-for="(item, index) in tableData1"
                      :key="'info-' + index"
                    >
                      <el-collapse-item>
                        <template slot="title">
                          {{ item.pacName }}
                        </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="proSex" label="性别" width="180">
                          <el-table-column
                            prop="proSex"
                            label="性别"
                            width="180"
                          >
                          </el-table-column>
                          <el-table-column prop="ordPrice" label="应收金额">
                          </el-table-column>
@@ -694,7 +1377,6 @@
                          </el-table-column>
                          <el-table-column prop="proCheckMethod" label="空腹">
                          </el-table-column>
                        </el-table>
                      </el-collapse-item>
                    </div>
@@ -704,9 +1386,17 @@
                    <div>
                      <el-collapse-item title="请选择项目">
                        <el-table :data="list" 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="proSex" label="性别" width="180">
                          <el-table-column
                            prop="proSex"
                            label="性别"
                            width="180"
                          >
                          </el-table-column>
                          <el-table-column prop="ordPrice" label="应收金额">
                          </el-table-column>
@@ -714,7 +1404,6 @@
                          </el-table-column>
                          <el-table-column prop="proCheckMethod" label="空腹">
                          </el-table-column>
                        </el-table>
                      </el-collapse-item>
                    </div>
@@ -724,9 +1413,18 @@
            </el-col>
          </el-row>
          <el-dialog title="导检单预览" :visible.sync="dialogVisibles" :close-on-click-modal="false">
          <el-dialog
            title="导检单预览"
            :visible.sync="dialogVisibles"
            :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>
        </div>
@@ -736,30 +1434,52 @@
</template>
<script>
import { listReservation, gettjCancel, tjReappoint, tjCancelTj, getReservation } from "@/api/reservation/reservation";
import {
  listReservation,
  gettjCancel,
  tjReappoint,
  tjCancelTj,
  getReservation,
} from "@/api/reservation/reservation";
import printJS from "print-js";
import { deptTreeSelect, projectGetList, getPackageListName, getaddtTransition, getTransitionList, } from "@/api/system/tijian";
import {
  deptTreeSelect,
  projectGetList,
  getPackageListName,
  getaddtTransition,
  getTransitionList,
} from "@/api/system/tijian";
import { getCompany, queryCompany } from "@/api/team/tuanti";
import user from "@/store/modules/user";
import VTreeTransfer from '../../system/tijian/TreeTransfer.vue'
import VTreeTransfer from "../../system/tijian/TreeTransfer.vue";
export default {
  components: {
    VTreeTransfer
    VTreeTransfer,
  },
  name: "Reservation",
  dicts: ["dict_user_national", "dict_user_national", "dict_user_marry", "sys_yes_no",
    "sys_user_sex", "dict_team", "tj_time_region", "dict_tjtype", "dict_job",
    "dict_user_cardtype", "dict_ageunit",],
  dicts: [
    "dict_user_national",
    "dict_user_national",
    "dict_user_marry",
    "sys_yes_no",
    "sys_user_sex",
    "dict_team",
    "tj_time_region",
    "dict_tjtype",
    "dict_job",
    "dict_user_cardtype",
    "dict_ageunit",
  ],
  data() {
    let checkPhoneNum = (rule, value, callback) => {
         console.log( value)
      console.log(value);
      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
      if (value == "" && value == undefined && !value) {
        return callback('');
      }  else if(value != undefined && value != ""){
        return callback("");
      } else if (value != undefined && value != "") {
        return callback();
      }else if (!patter.test(value)) {
        return callback('');
      } else if (!patter.test(value)) {
        return callback("");
      }
    };
    return {
@@ -889,24 +1609,26 @@
      fmobj: {},
      // 表单校验
      rules: {
        cusName: [{ required: true, validator: checkPhoneNum,  trigger: "blur" }],
        cusName: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        cusSex: [
          { required: true, validator: checkPhoneNum,  trigger: "change" },
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        cusBrithday: [
          { required: true, validator: checkPhoneNum,  trigger: "blur" },
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        // cusAddr: [
        //   { required: true, message: "现居住地址不能为空", trigger: "blur" },
        // ],
        cusPhone: [
          { required: true, validator: checkPhoneNum,  trigger: "blur" },
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        reservationTime: [
          { required: true, validator: checkPhoneNum,  trigger: "change" },
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        timeRegion: [
          { required: true, validator: checkPhoneNum,  trigger: "blur" },
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
      },
      options: [
@@ -960,21 +1682,21 @@
        name: [
          {
            required: true,
            validator: checkPhoneNum,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
        idCard: [
          {
            required: true,
            validator: checkPhoneNum,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
        phoe: [
          {
            required: true,
            validator: checkPhoneNum,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
@@ -1074,10 +1796,10 @@
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      selection.forEach(item => {
        this.fmobj = item
      })
      console.log(this.fmobj)
      selection.forEach((item) => {
        this.fmobj = item;
      });
      console.log(this.fmobj);
      this.ids = selection.map((item) => item.id);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
@@ -1092,10 +1814,10 @@
    /** 修改按钮操作 */
    handleUpdate(row) {
      console.log(row)
      console.log(row);
      this.title = "修改体检预约";
      this.formIn = row;
      this.form.tjType = this.formIn.tjType
      this.form.tjType = this.formIn.tjType;
      if (this.formIn.timeRegion === 0) {
        this.formIn.timeRegion = "8:00-9:00";
      }
@@ -1110,10 +1832,10 @@
      }
      if (this.formIn.isExpire === 2) {
        this.drawer = true;
        if( this.formIn.discount!= null){
        if (this.formIn.discount != null) {
          this.discount = this.formIn.discount;
        }
        //全部套餐
        if (this.formIn.sex != null) {
          let cusSex = this.formIn.sex;
@@ -1163,7 +1885,7 @@
                    this.TotalPrice1 = 0;
                    this.tableData1.forEach((item) => {
                      this.TotalPrice1 += item.nowPrice;
                      console.log(this.discount)
                      console.log(this.discount);
                      this.TotalPrice = (
                        this.TotalPrice1 *
                        (this.discount / 10)
@@ -1178,8 +1900,7 @@
                    this.list1 = true;
                  }
                }
              })
              });
            } else {
              this.tableData1 = [];
              this.list3 = false;
@@ -1199,7 +1920,7 @@
    },
    changeCategoryKeys(val) {
      this.proIds = [];
      this.proIds = val
      this.proIds = val;
    },
    /** 修改详细按钮操作 */
    handleUpdate1(row) {
@@ -1221,9 +1942,8 @@
        this.tijiao1 = false;
      }
      this.drawer1 = true;
      if( this.formIn.discount != null){
      if (this.formIn.discount != null) {
        this.discount = this.formIn.discount;
      }
      //全部套餐
      if (this.formIn.sex != null) {
@@ -1267,36 +1987,36 @@
      (this.tableData1 = []),
        (this.newpacName = []),
        getReservation(id).then((response) => {
            if (response.data) {
              let cusId = response.data.idCard;
        getTransitionList(cusId).then((response) => {
          if (response.data) {
            this.tableData1 = response.data;
            if (this.tableData1.length != 0) {
              this.TotalPrice1 = 0;
              this.tableData1.forEach((item) => {
                this.TotalPrice1 += item.nowPrice;
                this.TotalPrice = (
                  this.TotalPrice1 *
                  (this.discount / 10)
                ).toFixed(2);
                if (item.pacName === null) {
                  item.pacName = "单项";
            let cusId = response.data.idCard;
            getTransitionList(cusId).then((response) => {
              if (response.data) {
                this.tableData1 = response.data;
                if (this.tableData1.length != 0) {
                  this.TotalPrice1 = 0;
                  this.tableData1.forEach((item) => {
                    this.TotalPrice1 += item.nowPrice;
                    this.TotalPrice = (
                      this.TotalPrice1 *
                      (this.discount / 10)
                    ).toFixed(2);
                    if (item.pacName === null) {
                      item.pacName = "单项";
                    }
                  });
                  this.list1 = false;
                  this.list3 = true;
                } else {
                  this.list1 = true;
                }
              });
              this.list1 = false;
              this.list3 = true;
            } else {
              this.list1 = true;
            }
          } else {
            this.tableData1 = [];
            this.list3 = false;
            this.list1 = true;
              } else {
                this.tableData1 = [];
                this.list3 = false;
                this.list1 = true;
              }
            });
          }
        });
      }
    })
      /** 查询部门下拉树结构 */
      projectGetList().then((response) => {
@@ -1314,7 +2034,7 @@
    Package() {
      this.taocan = true;
      this.datekey = Date.now()
      this.datekey = Date.now();
    },
    /** 搜索操作 */
@@ -1395,8 +2115,7 @@
    receipt() {
      setTimeout(function () {
        const style =
          "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //打印时去掉眉页眉尾
        const style = "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //打印时去掉眉页眉尾
        printJS({
          printable: "printBill", // 标签元素id
          type: "html",
@@ -1470,87 +2189,87 @@
    submitPrice() {
      let _this = this;
      // if (_this.tableData1.length > 0) {
        if (this.tableData[0]) {
          var pacId = this.tableData[0].pacId;
      if (this.tableData[0]) {
        var pacId = this.tableData[0].pacId;
      }
      // let copeWith = this.TotalPrice1;
      // let paidIn = this.TotalPrice;
      // let discount = this.discount;
      // this.tjFlowingWater = { copeWith, paidIn, discount };
      if (this.formIn.timeRegion === "8:00-9:00") {
        this.formIn.timeRegion = 0;
      }
      if (this.formIn.timeRegion === "9:00-10:00") {
        this.formIn.timeRegion = 1;
      }
      if (this.formIn.timeRegion === "10:00-11:00") {
        this.formIn.timeRegion = 2;
      }
      if (this.formIn.timeRegion === "11:00-12:00") {
        this.formIn.timeRegion = 3;
      }
      let data;
      if (pacId) {
        data = {
          id: this.formIn.id,
          isExpire: this.formIn.isExpire,
          address: this.formIn.address,
          company: this.formIn.company,
          department: this.formIn.department,
          discount: this.discount,
          email: this.formIn.email,
          idCard: this.formIn.idCard,
          marriage: this.formIn.marriage,
          name: this.formIn.name,
          nation: this.formIn.nation,
          pacId,
          phoe: this.formIn.cusPhone,
          reservationTime: this.formIn.reservationTime,
          sex: this.formIn.sex,
          timeRegion: this.formIn.timeRegion,
          tjCategory: this.formIn.tjCategory,
          // tjFlowingWater: this.tjFlowingWater,
          tjType: this.formIn.tjType,
          idType: this.formIn.idType,
          age: this.formIn.age,
          ageUnit: this.formIn.ageUnit,
          career: this.formIn.career,
        };
      } else {
        data = {
          id: this.formIn.id,
          isExpire: this.formIn.isExpire,
          address: this.formIn.address,
          company: this.formIn.company,
          department: this.formIn.department,
          discount: this.discount,
          email: this.formIn.email,
          idCard: this.formIn.idCard,
          marriage: this.formIn.marriage,
          name: this.formIn.name,
          nation: this.formIn.nation,
          pacId,
          phoe: this.formIn.phoe,
          reservationTime: this.formIn.reservationTime,
          sex: this.formIn.sex,
          timeRegion: this.formIn.timeRegion,
          tjCategory: this.formIn.tjCategory,
          // tjFlowingWater: this.tjFlowingWater,
          tjType: this.formIn.tjType,
          idType: this.formIn.idType,
          age: this.formIn.age,
          ageUnit: this.formIn.ageUnit,
          career: this.formIn.career,
        };
      }
      tjReappoint(data).then((res) => {
        if (res.code === 200) {
          this.$modal.msgSuccess("登记成功");
        }
        // let copeWith = this.TotalPrice1;
        // let paidIn = this.TotalPrice;
        // let discount = this.discount;
        // this.tjFlowingWater = { copeWith, paidIn, discount };
        if (this.formIn.timeRegion === "8:00-9:00") {
          this.formIn.timeRegion = 0;
        }
        if (this.formIn.timeRegion === "9:00-10:00") {
          this.formIn.timeRegion = 1;
        }
        if (this.formIn.timeRegion === "10:00-11:00") {
          this.formIn.timeRegion = 2;
        }
        if (this.formIn.timeRegion === "11:00-12:00") {
          this.formIn.timeRegion = 3;
        }
        let data;
        if (pacId) {
          data = {
            id: this.formIn.id,
            isExpire: this.formIn.isExpire,
            address: this.formIn.address,
            company: this.formIn.company,
            department: this.formIn.department,
            discount: this.discount,
            email: this.formIn.email,
            idCard: this.formIn.idCard,
            marriage: this.formIn.marriage,
            name: this.formIn.name,
            nation: this.formIn.nation,
            pacId,
            phoe: this.formIn.cusPhone,
            reservationTime: this.formIn.reservationTime,
            sex: this.formIn.sex,
            timeRegion: this.formIn.timeRegion,
            tjCategory: this.formIn.tjCategory,
            // tjFlowingWater: this.tjFlowingWater,
            tjType: this.formIn.tjType,
            idType: this.formIn.idType,
            age: this.formIn.age,
            ageUnit: this.formIn.ageUnit,
            career: this.formIn.career,
          };
        } else {
          data = {
            id: this.formIn.id,
            isExpire: this.formIn.isExpire,
            address: this.formIn.address,
            company: this.formIn.company,
            department: this.formIn.department,
            discount: this.discount,
            email: this.formIn.email,
            idCard: this.formIn.idCard,
            marriage: this.formIn.marriage,
            name: this.formIn.name,
            nation: this.formIn.nation,
            pacId,
            phoe: this.formIn.phoe,
            reservationTime: this.formIn.reservationTime,
            sex: this.formIn.sex,
            timeRegion: this.formIn.timeRegion,
            tjCategory: this.formIn.tjCategory,
            // tjFlowingWater: this.tjFlowingWater,
            tjType: this.formIn.tjType,
            idType: this.formIn.idType,
            age: this.formIn.age,
            ageUnit: this.formIn.ageUnit,
            career: this.formIn.career,
          };
        }
        tjReappoint(data).then((res) => {
          if (res.code === 200) {
            this.$modal.msgSuccess("登记成功");
          }
          _this.drawer = false;
        });
        this.getList();
        this.$tab.refreshPage();
        _this.drawer = false;
      });
      this.getList();
      this.$tab.refreshPage();
      // } else {
      //   this.$message.warning("请选择您要体检的内容");
      // }
@@ -1658,7 +2377,7 @@
          this.$modal.msgSuccess("撤销成功");
          this.getList();
        })
        .catch(() => { });
        .catch(() => {});
    },
    //批量撤销
src/views/system/biol/index.vue
@@ -472,10 +472,10 @@
    </el-dialog>
    <!--:before-close="handleClose"  -->
    <el-dialog title="提示" :visible.sync="dialogVisiblese" width="30%">
      <el-radio v-model="radios" label="1">食品从业人员健康检查表</el-radio>
      <el-radio v-model="radios" label="2">公共场所从业人员检查表</el-radio>
      <el-radio v-model="radios" label="1">从业人员检查表</el-radio>
      <el-radio v-model="radios" label="2">公共场所检查表</el-radio>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button @click="dialogVisiblese = false">取 消</el-button>
        <el-button type="primary" @click="timjiao">确 定</el-button>
      </span>
    </el-dialog>
src/views/system/interface/index.vue
New file
@@ -0,0 +1,84 @@
<template>
  <div class="app-container">
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button type="primary" size="mini" @click="handleExport"
          >同步</el-button
        >
      </el-col>
    </el-row>
    <template>
      <el-table
        border
        v-loading="loading"
        :data="orderList"
        @selection-change="handleSelectionChange"
        height="560"
      >
        <el-table-column type="selection" width="40px" align="center" />
        <el-table-column label="接口名称" align="center" prop="dictName" />
        <el-table-column
          label="备注"
          align="center"
          prop="remark"
          :show-overflow-tooltip="true"
        />
      </el-table>
    </template>
  </div>
</template>
<script>
import { histongbulist, histongbuexec, hisexec } from "@/api/system/interface";
export default {
  name: "Interface",
  data() {
    return {
      orderList: [],
      selectionList: [],
      loading: false,
      methods: [],
    };
  },
  created() {
    this.getList();
  },
  methods: {
    getList() {
      (this.loading = true),
        histongbulist().then((res) => {
          if (res.data) {
            this.orderList = res.data;
          }
          this.loading = false;
        });
    },
    handleSelectionChange(selection) {
      this.selectionList = selection;
    },
    handleExport() {
      if (this.selectionList.length != 0) {
        if (this.selectionList.length == this.orderList.length) {
          histongbuexec().then((res) => {
            this.$modal.msgSuccess("同步成功");
            this.getList()
          });
        } else {
          this.methods = this.selectionList.map((item) => item.dictName);
          let data = {
            methods: this.methods,
            type: false,
          };
          hisexec(data).then((res) => {
            this.$modal.msgSuccess("同步成功");
            this.getList()
          });
        }
      } else {
        this.$modal.msgError("请选择同步数据");
      }
    },
  },
};
</script>
src/views/system/interfaces/index.vue
New file
@@ -0,0 +1,96 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
      <el-form-item label="地址" prop="menuName">
        <el-input
          v-model="queryParams.menuName"
          placeholder="请输入地址"
          clearable
        />
      </el-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button type="primary" size="mini" @click="handleExport"
          >调用</el-button
        >
      </el-col>
    </el-row>
    <template>
      <el-table
        border
        v-loading="loading"
        :data="orderList"
        @selection-change="handleSelectionChange"
        height="560"
      >
        <el-table-column type="selection" width="40px" align="center" />
        <el-table-column label="接口名称" align="center" prop="dictName" />
        <el-table-column
          label="备注"
          align="center"
          prop="remark"
          :show-overflow-tooltip="true"
        />
      </el-table>
    </template>
  </div>
</template>
<script>
import { histongbulist, histongbuexec, hisexec } from "@/api/system/interface";
export default {
  name: "Interface",
  data() {
    return {
      orderList: [],
      selectionList: [],
      loading: false,
      methods: [],
      queryParams:{
        menuName:""
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    getList() {
      (this.loading = true),
        histongbulist().then((res) => {
          if (res.data) {
            this.orderList = res.data;
          }
          this.loading = false;
        });
    },
    handleSelectionChange(selection) {
      this.selectionList = selection;
    },
    handleExport() {
      if (this.selectionList.length != 0) {
        if (this.selectionList.length == this.orderList.length) {
          histongbuexec().then((res) => {
            this.$modal.msgSuccess("同步成功");
            this.getList()
          });
        } else {
          this.methods = this.selectionList.map((item) => item.dictName);
          let data = {
            methods: this.methods,
            type: false,
          };
          hisexec(data).then((res) => {
            this.$modal.msgSuccess("同步成功");
            this.getList()
          });
        }
      } else {
        this.$modal.msgError("请选择同步数据");
      }
    },
  },
};
</script>
src/views/system/packages/index.vue
@@ -8,10 +8,10 @@
      v-show="showSearch"
      label-width="68px"
    >
      <el-form-item label="套餐名称" prop="zhmc">
      <el-form-item label="组合名称" prop="zhmc">
        <el-input
          v-model="queryParams.zhmc"
          placeholder="请输入套餐名称"
          placeholder="请输入组合名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
@@ -94,7 +94,7 @@
      >
        <el-table-column type="selection" width="40" align="center" />
        <el-table-column
          label="套餐名称"
          label="组合名称"
          align="center"
          prop="zhmc"
          width="150px"
@@ -150,7 +150,7 @@
      </div>
    </template>
    <!-- 修改体检套餐对话框 -->
    <!-- 修改体检组合对话框 -->
    <el-dialog
      :title="title"
      :visible.sync="open"
@@ -167,17 +167,17 @@
      >
        <!-- <div class="dialo">
        <div class="dialo1"> -->
        <el-form-item label="套餐名称" prop="zhmc">
        <el-form-item label="组合名称" prop="zhmc">
          <span
            slot="label"
            style="display: inline-block; border-bottom: 2px solid blue"
            @click="handlePackage"
          >
            套餐名称
            组合名称
          </span>
          <el-input
            v-model="form.zhmc"
            placeholder="请输入套餐名称"
            placeholder="请输入组合名称"
            style="width: 150px"
          />
        </el-form-item>
@@ -346,16 +346,16 @@
      showSearch: true,
      // 总条数
      total: 0,
      // 体检套餐表格数据
      // 体检组合表格数据
      packageList: [],
      // 套餐选中的父项
      // 组合选中的父项
      allpackageList: [],
      // 已选
      newproName: [],
      // 所有体检项目·
      allList: [],
      treeList: [],
      // 所有套餐数据
      // 所有组合数据
      // allpackage:[],
      // 弹出层标题
      title: "",
@@ -420,7 +420,7 @@
        return data.proEngName.indexOf(value) !== -1;
      }
    },
    /** 查询体检套餐列表 */
    /** 查询体检组合列表 */
    getList() {
      this.loading = true;
      getZhList(this.queryParams).then((response) => {
@@ -470,7 +470,7 @@
    handlePackage() {
      this.$refs.aaa.open = true;
      this.$refs.aaa.getList();
      this.$refs.aaa.title = "套餐字典";
      this.$refs.aaa.title = "组合字典";
    },
    handleChanges(param1) {
      this.form.pacName = param1[0].pacName;
@@ -499,7 +499,7 @@
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "体检套餐信息维护";
      this.title = "体检组合信息维护";
      this.DataList = [];
      this.checkedkey = [];
      this.checkedListkey = [];
@@ -507,7 +507,7 @@
    },
    handleUp() {
      this.title = "体检套餐信息维护";
      this.title = "体检组合信息维护";
      this.open = true;
      // getPacTjProjectList().then((response) => {
      //   this.allList = response.data;
@@ -523,7 +523,7 @@
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.title = "体检套餐信息维护";
      this.title = "体检组合信息维护";
      this.open = true;
      this.form = row;
      this.DataList = [];
@@ -780,14 +780,14 @@
          }
        });
      } else {
        Message.warning("请先填写套餐名称");
        Message.warning("请先填写组合名称");
      }
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const pacIds = row.id || this.ids;
      this.$modal
        .confirm('是否确认删除体检套餐编号为"' + pacIds + '"的数据项?')
        .confirm('是否确认删除体检组合编号为"' + pacIds + '"的数据项?')
        .then(function () {
          return delzhxm(pacIds);
        })
@@ -798,7 +798,7 @@
        .catch(() => {});
    },
    /** 分配套餐内项目操作 */
    /** 分配组合内项目操作 */
    handleProject: function (row) {
      const pacId = row.pacId;
      this.$router.push("/system/user-auth/role/" + pacId);
@@ -814,7 +814,7 @@
        `package_${new Date().getTime()}.xlsx`
      );
    },
    // 套餐详情
    // 组合详情
    // handleSeach(row) {
    //   this.Seachopen = true;
    //   this.loading = true;
vue.config.js
@@ -63,7 +63,7 @@
        },
      },
      '/douban':{
        target:'http://192.168.1.3:6789',
        target:'http://192.168.1.3:14765',
        changeOrigin:true,
        ws: true,
        pathRewrite: {