qinxianzhangyao
2024-05-20 edb5616505a118523882a83f53f00e88d03bd373
qxtj
20个文件已修改
10个文件已添加
5864 ■■■■ 已修改文件
src/api/hosp/order.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/hosp/question.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/hosp/surveyTemplate.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/blacklist.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/proposal/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doctor/check/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doctor/checkAll/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doctor/test/index.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/customer/index.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/order/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/project/index.vue 760 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/question/index.vue 768 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/question1/index.vue 394 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/surveyTemplate copy/editor/TduckFormMixin.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/surveyTemplate copy/editor/index.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/surveyTemplate copy/editor/preview/ProjectForm.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/surveyTemplate copy/editor/preview/index.vue 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/surveyTemplate copy/index.vue 582 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/surveyTemplate/index.vue 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/index.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reservation/groupcheck/index.vue 782 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reservation/reservations/index.vue 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/Blacklist/index.vue 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/Criticalvalue/index.vue 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/biol/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/circle/index.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/refund/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/tijian/index.vue 1343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/visit/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/hosp/order.js
@@ -202,6 +202,28 @@
  })
}
//获取问卷模板信息
export function revokeTjOrderByTjNum(tjNum) {
  return request({
    url: '/hosp/order/revokeTjOrderByTjNum',
    method: 'get',
    params: {
      tjNum
    }
  })
}
export function getTjrWnJuanMoBan(tjCategory) {
  return request({
    url: '/hosp/surveyTemplate/getTjrWnJuanMoBan',
    method: 'get',
    params: {
      tjCategory
    }
  })
}
// 批量发送邮件
export function getsendEmail(data) {
  return request({
@@ -309,4 +331,13 @@
      method: 'post',
      data: data
    })
  }
  }
  // 批量发送邮件
export function addCustomerBlack(data) {
  return request({
    url: '/hosp/cusBlack/addCustomerBlack',
    method: 'post',
    data: data
  })
}
src/api/hosp/question.js
@@ -17,6 +17,32 @@
    })
}
// 问卷详情
export function getQuestionsByMid(data) {
    return request({
      url: 'hosp/surveyTemplate/getQuestionsByMid',
      method: 'get',
      params: data
    })
  }
  // 问卷模板列表
export function PostTemplentList(data) {
    return request({
      url: '/hosp/surveyTemplate/list',
      method: 'get',
      params: data
    })
  }
    // 问卷模板列表
export function listByDeptId1() {
    return request({
      url: '/hosp/surveyTemplate/listByDeptId1',
      method: 'get',
    })
  }
// 新增问卷问题
export function addQuestion(data) {
    return request({
@@ -42,3 +68,13 @@
        method: 'delete'
    })
}
// 根据部门id查问卷模板列表
export function listByDeptId(deptId) {
    return request({
        url: 'hosp/surveyTemplate/listByDeptId',
        method: 'get',
        params: {deptId:deptId}
    })
}
src/api/hosp/surveyTemplate.js
@@ -17,6 +17,15 @@
    })
}
// 获取问卷模板信息
export function getQuesByMid(mid) {
    return request({
      url: 'hosp/surveyTemplate/getQuesByMids',
      method: 'get',
      params: { mid: mid }
    })
  }
// 新增问卷模板
export function addSurveyTemplate(data) {
    return request({
src/api/system/blacklist.js
New file
@@ -0,0 +1,19 @@
import request from '@/utils/request'
// 查询体检记录列表
export function getCustomerBlack(query) {
    return request({
      url: '/hosp/cusBlack/getCustomerBlack',
      method: 'get',
      params: query
    })
  }
  // 查询体检记录列表
export function putCustomerBlack(data) {
    return request({
      url: '/hosp/cusBlack/putCustomerBlack',
      method: 'put',
      data: data
    })
  }
src/components/proposal/index.vue
@@ -99,14 +99,12 @@
  },
  watch: {
    cusobj(val, newVla) {
      // console.log(val,newVla,1111)
      console.log(val,newVla,1111)
      this.fList = val;
      this.queryParams.sex = val.sex;
      this.queryParams.isZj = val.isZj;
      if (this.queryParams.sex) {
        this.tjproposal ="0"
        this.getList();
      }
    },
  },
  mounted() {
@@ -128,6 +126,7 @@
      });
    },
    getList() {
      console.log(1111)
      this.loading = true;
      getKjTjAdviceKjbqBySex(this.queryParams).then((res) => {
        this.dataList = res.data.records;
src/views/doctor/check/index.vue
@@ -801,7 +801,7 @@
    // 小结获取备注
    sel(val) {
      if (this.proParentList.xiaoJie.length != 0) {
        this.proParentList.remark = "";
        // this.proParentList.remark = "";
        this.deptAdviceList.forEach((item) => {
          this.ids = item.id;
          val.forEach((item1) => {
src/views/doctor/checkAll/index.vue
@@ -1491,6 +1491,10 @@
    },
    eventchange(data) {
      this.dataText = data
      console.log(this.textarea1 )
      if(this.textarea1 == null ){
        this.textarea1 = ""
      }
      data.forEach((item) => {
        this.textarea1 += item.advice;
      });
src/views/doctor/test/index.vue
@@ -718,7 +718,6 @@
      });
    },
     hb(){
      console.log(this.queryParams.tjNumber);
       if (this.queryParams.tjNumber != "") {
        this.submitForm();
      }
@@ -835,7 +834,6 @@
    },
    submitFormapply() {
      console.log(this.form)
      let data = {}
      this.userList.forEach(item1 => {
        if (this.form.hzDoctorId == item1.userId) {
@@ -949,7 +947,6 @@
        //   if(newRows[0].hzReplyLogsList){
        //     this.hzReplyLogsList = newRows[0].hzReplyLogsList  
        //   }
        //  console.log(this.hzReplyLogsList)
        //   this.allList = newRows
      } else {
        this.allList = []
@@ -1074,7 +1071,7 @@
        if (this.proParentList.xiaoJie.length != 0) {
          this.Parent.forEach((item3) => {
            if (item3.proId === this.nums) {
              this.proParentList.remark = item.remark;
              this.proParentList.remark = item3.remark;
            }
          });
        } else {
src/views/hosp/customer/index.vue
@@ -99,6 +99,16 @@
          v-hasPermi="['hosp:customer:remove']">删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          size="mini"
          @click="handleBlacklist"
          :disabled="single"
          v-hasPermi="['hosp:order:export']"
          >加入黑名单</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
          v-hasPermi="['hosp:customer:export']">导出</el-button>
      </el-col>
@@ -142,6 +152,11 @@
      <el-table-column label="VIP" align="center" prop="cusIsvip" width="55px" :show-overflow-tooltip="true">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.cusIsvip" />
        </template>
      </el-table-column>
      <el-table-column label="黑名单" align="center" prop="isBlack" width="76px" >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isBlack" />
        </template>
      </el-table-column>
      <el-table-column label="索引卡号" align="center" prop="indexCard" :show-overflow-tooltip="true" />
@@ -340,7 +355,7 @@
  updateCustomer,
  getHistryTjOrderByCusIdCard
} from "@/api/hosp/customer";
import { getPdf } from "@/api/hosp/order";
import { getPdf ,addCustomerBlack} from "@/api/hosp/order";
export default {
  name: "Customer",
@@ -551,6 +566,16 @@
      })
    },
    handleBlacklist(){
      let data ={
        cusId :this.ids[0]
      }
      addCustomerBlack(data).then(res => {
        this.$modal.msgSuccess("已加入黑名单")
        this.getList();
      })
    },
    selectChargeRule(val) {
      if (val.length > 1) {
        this.$refs.selectChargeRuleRef.clearSelection()
src/views/hosp/order/index.vue
@@ -96,6 +96,16 @@
          >导出</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          size="mini"
          @click="handleRevoke"
          :disabled="single"
          >撤销签到</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
@@ -106,6 +116,7 @@
          >补录项目</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
@@ -801,7 +812,7 @@
  hasReport,
  getPdf,
  getOrderList,
  getNewDateList,
  getNewDateList,revokeTjOrderByTjNum,
} from "@/api/hosp/order";
import moment from "moment";
import { getwater } from "@/api/hosp/customer";
@@ -1059,6 +1070,13 @@
        }
      });
    },
    handleRevoke(){
      revokeTjOrderByTjNum(this.tjnumbers).then(res => {
        this.$modal.msgSuccess("撤销成功")
        this.getList();
      })
    },
    /** 点击显示体检报告报表*/
    // viewReport(row) {
    //   const tjNumber = row.tjNumber;
@@ -1276,6 +1294,7 @@
      this.Projectopen1 = true;
      this.title = "补录项目";
    },
    // 点击获取每个树节点
    handleCurrentChecked(data, checked, checkedNodes) {
      this.dataObj = data
src/views/hosp/project/index.vue
@@ -3,39 +3,91 @@
    <el-row :gutter="20">
      <el-col :span="3" :xs="24">
        <div class="head-container">
          <el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"
            style="margin-bottom: 15px" />
          <el-input
            v-model="deptName"
            placeholder="请输入部门名称"
            clearable
            size="small"
            prefix-icon="el-icon-search"
            style="margin-bottom: 15px"
          />
        </div>
        <el-scrollbar style="height: 629px; width: 100%">
          <div class="head-container">
            <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
              :filter-node-method="filterNode" ref="tree" node-key="id" :default-expanded-keys="treeId" highlight-current
              @node-click="handleNodeClick" />
            <el-tree
              :data="deptOptions"
              :props="defaultProps"
              :expand-on-click-node="false"
              :filter-node-method="filterNode"
              ref="tree"
              node-key="id"
              :default-expanded-keys="treeId"
              highlight-current
              @node-click="handleNodeClick"
            />
          </div>
        </el-scrollbar>
      </el-col>
      <el-col :span="20" :xs="24">
        <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="proName">
            <el-input v-model="queryParams.proName" placeholder="请输入项目名称" clearable @keyup.enter.native="handleQuery" />
            <el-input
              v-model="queryParams.proName"
              placeholder="请输入项目名称"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="检查类别" prop="checkType">
            <el-input v-model="queryParams.checkType" placeholder="请输入检查类别" clearable @keyup.enter.native="handleQuery" />
            <el-input
              v-model="queryParams.checkType"
              placeholder="请输入检查类别"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
            <el-button
              type="primary"
              icon="el-icon-search"
              size="mini"
              @click="handleQuery"
              >搜索</el-button
            >
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
              >重置</el-button
            >
          </el-form-item>
        </el-form>
        <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
              v-hasPermi="['hosp:project:add']">新增</el-button>
            <el-button
              type="primary"
              icon="el-icon-plus"
              size="mini"
              @click="handleAdd"
              v-hasPermi="['hosp:project:add']"
              >新增</el-button
            >
          </el-col>
          <el-col :span="1.5">
            <el-button :disabled="xiugais" type="primary" icon="el-icon-plus" size="mini" @click="handleUpdate1"
              v-hasPermi="['hosp:project:add']">修改</el-button>
            <el-button
              :disabled="xiugais"
              type="primary"
              icon="el-icon-plus"
              size="mini"
              @click="handleUpdate1"
              v-hasPermi="['hosp:project:add']"
              >修改</el-button
            >
          </el-col>
          <!-- <el-col :span="1.5">
        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['hosp:project:edit']">修改</el-button>
@@ -44,58 +96,180 @@
        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['hosp:project:remove']">删除</el-button>
      </el-col> -->
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
              v-hasPermi="['hosp:project:export']">导出</el-button>
            <el-button
              type="primary"
              icon="el-icon-download"
              size="mini"
              @click="handleExport"
              v-hasPermi="['hosp:project:export']"
              >导出</el-button
            >
          </el-col>
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-sort" size="mini" @click="toggleExpandAll">展开/折叠</el-button>
            <el-button
              type="primary"
              icon="el-icon-sort"
              size="mini"
              @click="toggleExpandAll"
              >展开/折叠</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 v-if="refreshTable" v-loading="loading" :data="projectList" ref="tableRef" border>
        <el-table
          v-if="refreshTable"
          v-loading="loading"
          :data="projectList"
          ref="tableRef"
          border
        >
          <!-- :show-overflow-tooltip="true"  -->
          <el-table-column label="项目名称" prop="proName" fixed="left" :width="flexColumnWidth('rwdtypeName')" />
          <el-table-column label="项目价格(单位/元)" align="center" prop="proPrice" width="75px"
            :show-overflow-tooltip="true"></el-table-column>
          <el-table-column
            label="项目名称"
            prop="proName"
            fixed="left"
            :width="flexColumnWidth('rwdtypeName')"
          />
          <el-table-column
            label="项目价格(单位/元)"
            align="center"
            prop="proPrice"
            width="75px"
            :show-overflow-tooltip="true"
          ></el-table-column>
          <!-- <el-table-column label="科室名称" align="center" prop="deptName" width="110px" :show-overflow-tooltip="true" /> -->
          <el-table-column label="检查类别" align="center" prop="proCheckType" width="110px" :show-overflow-tooltip="true" />
          <el-table-column label="默认值" align="center" prop="proDefault" width="110px" :show-overflow-tooltip="true" />
          <el-table-column label="临床意义" align="center" prop="proMeaning" width="350px" :show-overflow-tooltip="true" />
          <el-table-column
            label="检查类别"
            align="center"
            prop="proCheckType"
            width="110px"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="默认值"
            align="center"
            prop="proDefault"
            width="110px"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="临床意义"
            align="center"
            prop="proMeaning"
            width="350px"
            :show-overflow-tooltip="true"
          />
          <!-- <el-table-column label="检查方式" align="center" prop="proCheckMethod" :show-overflow-tooltip="true"
            width="110px" /> -->
          <el-table-column label="参与小结" align="center" prop="needReport" :show-overflow-tooltip="true" width="110px">
          <el-table-column
            label="参与小结"
            align="center"
            prop="needReport"
            :show-overflow-tooltip="true"
            width="110px"
          >
            <template slot-scope="scope">
              <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.needReport" />
              <dict-tag
                :options="dict.type.sys_yes_no"
                :value="scope.row.needReport"
              />
            </template>
          </el-table-column>
          <el-table-column label="是否空腹" align="center" prop="proCheckMethod" :show-overflow-tooltip="true" width="110px">
          <el-table-column
            label="是否空腹"
            align="center"
            prop="proCheckMethod"
            :show-overflow-tooltip="true"
            width="110px"
          >
            <template slot-scope="scope">
              <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" />
              <dict-tag
                :options="dict.type.sys_yes_no"
                :value="scope.row.proCheckMethod"
              />
            </template>
          </el-table-column>
          <el-table-column label="项目标准值" align="center" prop="proScope" :show-overflow-tooltip="true" width="90px">
          <el-table-column
            label="项目标准值"
            align="center"
            prop="proScope"
            :show-overflow-tooltip="true"
            width="90px"
          >
          </el-table-column>
          <el-table-column label="项目类型" align="center" prop="resultType" width="110px" :show-overflow-tooltip="true">
          <el-table-column
            label="项目类型"
            align="center"
            prop="resultType"
            width="110px"
            :show-overflow-tooltip="true"
          >
            <template slot-scope="scope">
              <dict-tag :options="dict.type.tj_result_type" :value="scope.row.resultType" />
              <dict-tag
                :options="dict.type.tj_result_type"
                :value="scope.row.resultType"
              />
            </template>
          </el-table-column>
          <el-table-column label="备注" prop="remark" align="center" width="120px" :show-overflow-tooltip="true">
          <el-table-column
            label="备注"
            prop="remark"
            align="center"
            width="120px"
            :show-overflow-tooltip="true"
          >
          </el-table-column>
          <el-table-column label="状态" align="center" prop="proStatus" fixed="right" width="80px">
          <el-table-column
            label="状态"
            align="center"
            prop="proStatus"
            fixed="right"
            width="80px"
          >
            <template slot-scope="scope">
              <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.proStatus" />
              <dict-tag
                :options="dict.type.sys_normal_disable"
                :value="scope.row.proStatus"
              />
            </template>
          </el-table-column>
          <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="80px">
          <el-table-column
            label="操作"
            align="center"
            fixed="right"
            class-name="small-padding fixed-width"
            width="80px"
          >
            <template slot-scope="scope">
              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
                v-hasPermi="['hosp:project:edit']" title="修改"></el-button>
              <el-button v-if="scope.row.proParentId == '0'" size="mini" type="text" icon="el-icon-plus"
                @click="handleAdd(scope.row)" v-hasPermi="['system:dept:add']" title="增加"></el-button>
              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
                v-hasPermi="['hosp:project:remove']" title="删除"></el-button>
              <el-button
                size="mini"
                type="text"
                icon="el-icon-edit"
                @click="handleUpdate(scope.row)"
                v-hasPermi="['hosp:project:edit']"
                title="修改"
              ></el-button>
              <el-button
                v-if="scope.row.proParentId == '0'"
                size="mini"
                type="text"
                icon="el-icon-plus"
                @click="handleAdd(scope.row)"
                v-hasPermi="['system:dept:add']"
                title="增加"
              ></el-button>
              <el-button
                size="mini"
                type="text"
                icon="el-icon-delete"
                @click="handleDelete(scope.row)"
                v-hasPermi="['hosp:project:remove']"
                title="删除"
              ></el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -103,14 +277,38 @@
    </el-row>
    <!-- 添加或修改体检项目对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body :before-close="handleClose">
      <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true">
    <el-dialog
      :title="title"
      :visible.sync="open"
      width="1200px"
      append-to-body
      :before-close="handleClose"
    >
      <el-form
        ref="form"
        :model="form"
        :rules="rules"
        label-width="100px"
        :inline="true"
      >
        <el-form-item label="主项名称" prop="proParentId">
          <treeselect :disabled="proParent" v-model="form.proParentId" :options="projectOptions" :normalizer="normalizer"
            :show-count="true" placeholder="选择主项名称" style="width: 260px" @select="obtain" />
          <treeselect
            :disabled="proParent"
            v-model="form.proParentId"
            :options="projectOptions"
            :normalizer="normalizer"
            :show-count="true"
            placeholder="选择主项名称"
            style="width: 260px"
            @select="obtain"
          />
        </el-form-item>
        <el-form-item label="明细项目" prop="proName" v-if="key == 'Y'">
          <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="getDetailed">
          <span
            slot="label"
            style="display: inline-block; border-bottom: 2px solid blue"
            @click="getDetailed"
          >
            明细项目
            <!-- <el-tooltip effect="dark" content="明细项目" placement="bottom">
              <i class='el-icon-question' @click="getDetailed" />
@@ -128,21 +326,41 @@
          <el-input v-model="form.proPrice" placeholder="请输入项目价格" />
        </el-form-item>
        <el-form-item label="检查类别" prop="proCheckType">
          <el-input v-model="form.proCheckType" placeholder="请输入检查类别" style="width: 260px" />
          <el-input
            v-model="form.proCheckType"
            placeholder="请输入检查类别"
            style="width: 260px"
          />
        </el-form-item>
        <el-form-item label="临床意义" prop="proMeaning">
          <el-input v-model="form.proMeaning" placeholder="请输入临床意义" />
        </el-form-item>
        <el-form-item label="参与小结" prop="needReport">
          <el-select v-model="form.needReport" placeholder="请选择是否参与小结" style="width: 200px">
            <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          <el-select
            v-model="form.needReport"
            placeholder="请选择是否参与小结"
            style="width: 200px"
          >
            <el-option
              v-for="dict in dict.type.sys_yes_no"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否空腹" prop="proCheckMethod">
          <el-select v-model="form.proCheckMethod" placeholder="请选择是否空腹" style="width: 260px">
            <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          <el-select
            v-model="form.proCheckMethod"
            placeholder="请选择是否空腹"
            style="width: 260px"
          >
            <el-option
              v-for="dict in dict.type.sys_yes_no"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <!-- <el-form-item label="空腹" prop="isEat">
@@ -152,9 +370,18 @@
          </el-select>
        </el-form-item> -->
        <el-form-item label="性别" prop="proSex">
          <el-select v-model="form.proSex" placeholder="请选择体检人性别" style="width: 200px" clearable>
            <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          <el-select
            v-model="form.proSex"
            placeholder="请选择体检人性别"
            style="width: 200px"
            clearable
          >
            <el-option
              v-for="dict in dict.type.sys_user_sex"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="项目类型" prop="proType">
@@ -162,45 +389,114 @@
        </el-form-item>
        <el-form-item label="科室名称" prop="deptId">
          <el-select v-model="form.deptId" placeholder="请选择科室名称" @change="changeType" filterable style="width: 260px">
            <el-option v-for="item in parentNameList" :key="item.deptId" :label="item.deptName" :value="item.deptId" />
          <el-select
            v-model="form.deptId"
            placeholder="请选择科室名称"
            @change="changeType"
            filterable
            style="width: 260px"
          >
            <el-option
              v-for="item in parentNameList"
              :key="item.deptId"
              :label="item.deptName"
              :value="item.deptId"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="启用标志" prop="proStatus">
          <el-select v-model="form.proStatus" placeholder="请选择状态" style="width: 200px" filterable clearable>
            <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          <el-select
            v-model="form.proStatus"
            placeholder="请选择状态"
            style="width: 200px"
            filterable
            clearable
          >
            <el-option
              v-for="dict in dict.type.sys_normal_disable"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="项目默认值" prop="proDefault">
          <el-input v-model="form.proDefault" placeholder="请输入项目默认值" style="width: 200px" />
          <el-input
            v-model="form.proDefault"
            placeholder="请输入项目默认值"
            style="width: 200px"
          />
        </el-form-item>
        <el-form-item label="采样标记" prop="isSampling">
          <el-select v-model="form.isSampling" placeholder="请选择采样标记" style="width: 260px" filterable clearable>
            <el-option v-for="dict in dict.type.dis_sampling_tab" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          <el-select
            v-model="form.isSampling"
            placeholder="请选择采样标记"
            style="width: 260px"
            filterable
            clearable
          >
            <el-option
              v-for="dict in dict.type.dis_sampling_tab"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="标本类型" prop="specimenType">
          <el-select v-model="form.specimenType" placeholder="请选择标本类型" style="width: 200px" filterable clearable>
            <el-option v-for="dict in dict.type.sys_dict_specimen" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          <el-select
            v-model="form.specimenType"
            placeholder="请选择标本类型"
            style="width: 200px"
            filterable
            clearable
          >
            <el-option
              v-for="dict in dict.type.sys_dict_specimen"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="检查部位" prop="checkBw">
          <el-select v-model="form.checkBw" placeholder="请选择检查部位" style="width: 200px" filterable clearable>
            <el-option v-for="dict in dict.type.sys_dict_position" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          <el-select
            v-model="form.checkBw"
            placeholder="请选择检查部位"
            style="width: 200px"
            filterable
            clearable
          >
            <el-option
              v-for="dict in dict.type.sys_dict_position"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="结果类型" prop="resultType">
          <el-select v-model="form.resultType" placeholder="请选择结果类型" style="width: 260px" filterable clearable>
            <el-option v-for="dict in dict.type.tj_result_type" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          <el-select
            v-model="form.resultType"
            placeholder="请选择结果类型"
            style="width: 260px"
            filterable
            clearable
          >
            <el-option
              v-for="dict in dict.type.tj_result_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="LIS项目" prop="lisXmmc">
          <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="handleQuerys">
          <span
            slot="label"
            style="display: inline-block; border-bottom: 2px solid blue"
            @click="handleQuerys"
          >
            LIS项目
            <!-- <el-tooltip effect="dark" content="明细项目" placement="bottom">
              <i class='el-icon-question' @click="getDetailed" />
@@ -211,18 +507,48 @@
          </el-input>
        </el-form-item>
        <el-form-item label="备注" prop="proRemark">
          <el-input v-model="form.proRemark" placeholder="请输入备注" style="width: 200px" />
          <el-input
            v-model="form.proRemark"
            placeholder="请输入备注"
            style="width: 200px"
          />
        </el-form-item>
      </el-form>
      <el-button style="margin-left: 40px" type="primary" plain size="mini" icon="el-icon-plus"
        @click="addmembers">新增行</el-button>
      <el-button
        style="margin-left: 40px"
        type="primary"
        plain
        size="mini"
        icon="el-icon-plus"
        @click="addmembers"
        >新增行</el-button
      >
      <!-- 耗材表 -->
      <el-table :data="form.consumablesList" border style="margin-top: 10px; margin-left: 40px; width: 890px"
        v-if="showPrise">
        <el-table-column label="耗材名称" align="center" prop="makings" width="200px">
      <el-table
        :data="form.consumablesList"
        border
        style="margin-top: 10px; margin-left: 40px; width: 890px"
        v-if="showPrise"
      >
        <el-table-column
          label="耗材名称"
          align="center"
          prop="makings"
          width="200px"
        >
          <template slot-scope="scope">
            <el-select filterable v-model="scope.row.makings" placeholder="请选择收费项目" @change="getSelectValue">
              <el-option v-for="(item, index) in consumableList" :key="index" :label="item.makings" :value="item.makings">
            <el-select
              filterable
              v-model="scope.row.makings"
              placeholder="请选择收费项目"
              @change="getSelectValue"
            >
              <el-option
                v-for="(item, index) in consumableList"
                :key="index"
                :label="item.makings"
                :value="item.makings"
              >
              </el-option>
            </el-select>
          </template>
@@ -231,51 +557,109 @@
        </el-table-column>
        <el-table-column label="价格" align="center" prop="price">
        </el-table-column>
        <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
        <el-table-column
          label="操作"
          align="center"
          fixed="right"
          class-name="small-padding fixed-width"
        >
          <template slot-scope="scope">
            <el-button size="mini" type="text" icon="el-icon-delete" @click.native.prevent="Delete(scope.$index)"
              v-hasPermi="['hosp:consumables:remove']" title="删除"></el-button>
            <el-button
              size="mini"
              type="text"
              icon="el-icon-delete"
              @click.native.prevent="Delete(scope.$index)"
              v-hasPermi="['hosp:consumables:remove']"
              title="删除"
            ></el-button>
          </template>
        </el-table-column>
      </el-table>
      <!-- 项目标准值表 -->
      <el-table :data="form.tjStandardList" border style="margin-top: 10px; margin-left: 40px; width: 890px"
        v-if="showRentPrise">
      <el-table
        :data="form.tjStandardList"
        border
        style="margin-top: 10px; margin-left: 40px; width: 890px"
        v-if="showRentPrise"
      >
        <el-table-column label="体检人性别" align="center" prop="tjSex">
          <template slot-scope="scope">
            <el-select v-model="scope.row.tjSex" placeholder="请选择体检人性别">
              <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                :value="dict.value"></el-option>
              <el-option
                v-for="dict in dict.type.sys_user_sex"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              ></el-option>
            </el-select>
          </template>
        </el-table-column>
        <el-table-column label="体检人类型" align="center" prop="tjType">
          <template slot-scope="scope">
            <el-select filterable v-model="scope.row.tjType" placeholder="请选择体检人类型">
              <el-option v-for="dict in dict.type.dict_personnel_type" :key="dict.value" :label="dict.label"
                :value="dict.value"></el-option>
            <el-select
              filterable
              v-model="scope.row.tjType"
              placeholder="请选择体检人类型"
            >
              <el-option
                v-for="dict in dict.type.dict_personnel_type"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              ></el-option>
            </el-select>
          </template>
        </el-table-column>
        <el-table-column label="单位" align="center" prop="company">
          <template slot-scope="scope">
            <el-input v-model="scope.row.company" autocomplete="off" placeholder="请输入内容"></el-input>
            <el-input
              v-model="scope.row.company"
              autocomplete="off"
              placeholder="请输入内容"
            ></el-input>
          </template>
        </el-table-column>
        <el-table-column label="标准最小值" align="center" prop="tjStandardLtValue">
        <el-table-column
          label="标准最小值"
          align="center"
          prop="tjStandardLtValue"
        >
          <template slot-scope="scope">
            <el-input v-model="scope.row.tjStandardLtValue" autocomplete="off" placeholder="请输入标准最小值"></el-input>
            <el-input
              v-model="scope.row.tjStandardLtValue"
              autocomplete="off"
              placeholder="请输入标准最小值"
            ></el-input>
          </template>
        </el-table-column>
        <el-table-column label="标准最大值" align="center" prop="tjStandardGtValue">
        <el-table-column
          label="标准最大值"
          align="center"
          prop="tjStandardGtValue"
        >
          <template slot-scope="scope">
            <el-input v-model="scope.row.tjStandardGtValue" autocomplete="off" placeholder="请输入标准最大值"></el-input>
            <el-input
              v-model="scope.row.tjStandardGtValue"
              autocomplete="off"
              placeholder="请输入标准最大值"
            ></el-input>
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
        <el-table-column
          label="操作"
          align="center"
          fixed="right"
          class-name="small-padding fixed-width"
        >
          <template slot-scope="scope">
            <el-button size="mini" type="text" icon="el-icon-delete" @click.native.prevent="Delete(scope.$index)"
              v-hasPermi="['hosp:consumables:remove']" title="删除"></el-button>
            <el-button
              size="mini"
              type="text"
              icon="el-icon-delete"
              @click.native.prevent="Delete(scope.$index)"
              v-hasPermi="['hosp:consumables:remove']"
              title="删除"
            ></el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -292,32 +676,76 @@
          <el-col :span="6" :xs="24">
            <div style="height: 560px; overflow-y: scroll">
              <div class="head-container">
                <el-input v-model="xmmc" placeholder="请输入项目编码" clearable size="small" prefix-icon="el-icon-search"
                  style="margin-bottom: 20px" />
                <el-input
                  v-model="xmmc"
                  placeholder="请输入项目编码"
                  clearable
                  size="small"
                  prefix-icon="el-icon-search"
                  style="margin-bottom: 20px"
                />
              </div>
              <div id="changtree">
                <el-tree ref="tree" node-key="id" highlight-current :default-expanded-keys="chargeId"
                  :data="deptOptionstree" :props="defaultPropstree" :expand-on-click-node="false"
                  :auto-expand-parent="false" :filter-node-method="filterNode2" @node-click="handleNodecharge" />
                <el-tree
                  ref="tree"
                  node-key="id"
                  highlight-current
                  :default-expanded-keys="chargeId"
                  :data="deptOptionstree"
                  :props="defaultPropstree"
                  :expand-on-click-node="false"
                  :auto-expand-parent="false"
                  :filter-node-method="filterNode2"
                  @node-click="handleNodecharge"
                />
              </div>
            </div>
          </el-col>
          <el-col :span="18" :xs="24">
            <el-form :model="querycharge" ref="queryForm" size="small" :inline="true" v-show="showSearch"
              label-width="68px">
            <el-form
              :model="querycharge"
              ref="queryForm"
              size="small"
              :inline="true"
              v-show="showSearch"
              label-width="68px"
            >
              <el-form-item label="项目名称" prop="xmmc">
                <el-input v-model="querycharge.xmmc" placeholder="请输入项目名称" clearable @keyup.enter.native="handlecharge" />
                <el-input
                  v-model="querycharge.xmmc"
                  placeholder="请输入项目名称"
                  clearable
                  @keyup.enter.native="handlecharge"
                />
              </el-form-item>
              <el-form-item label="拼音码" prop="pym">
                <el-input v-model="querycharge.pym" placeholder="请输入拼音码" clearable @keyup.enter.native="handlecharge" />
                <el-input
                  v-model="querycharge.pym"
                  placeholder="请输入拼音码"
                  clearable
                  @keyup.enter.native="handlecharge"
                />
              </el-form-item>
              <el-form-item>
                <el-button type="primary" icon="el-icon-search" size="mini" @click="handlecharge">搜索</el-button>
                <el-button
                  type="primary"
                  icon="el-icon-search"
                  size="mini"
                  @click="handlecharge"
                  >搜索</el-button
                >
              </el-form-item>
            </el-form>
            <el-table v-loading="loading" ref="tb" :data="sfxmList" @selection-change="handleSelectionChange" border
              height="520px" style="width: 100%">
            <el-table
              v-loading="loading"
              ref="tb"
              :data="sfxmList"
              @selection-change="handleSelectionChange"
              border
              height="520px"
              style="width: 100%"
            >
              <el-table-column type="selection" align="center" />
              <el-table-column label="序号" align="center" prop="newID" />
              <el-table-column label="项目编码" align="center" prop="xmbm" />
@@ -325,22 +753,48 @@
              <el-table-column label="拼音码" align="center" prop="pym" />
              <!-- <el-table-column label="五笔码" align="center" prop="wbm"  /> -->
              <el-table-column label="参考单价" align="center" prop="ckdj" />
              <el-table-column label="一级最高限价" align="center" prop="yjzgxj" />
              <el-table-column label="二级最高限价" align="center" prop="ejzgxj" />
              <el-table-column label="三级最高限价" align="center" prop="sjzgxj" />
              <el-table-column label="特定最高限价" align="center" prop="tdzgxj" />
              <el-table-column
                label="一级最高限价"
                align="center"
                prop="yjzgxj"
              />
              <el-table-column
                label="二级最高限价"
                align="center"
                prop="ejzgxj"
              />
              <el-table-column
                label="三级最高限价"
                align="center"
                prop="sjzgxj"
              />
              <el-table-column
                label="特定最高限价"
                align="center"
                prop="tdzgxj"
              />
            </el-table>
            <div class="pag" v-if="List == true">
              <div class="pag1">
                <pagination v-show="total > 0" :total="total" :page.sync="querycharge.pageNum"
                  :limit.sync="querycharge.pageSize" @pagination="getlistSfxm" />
                <pagination
                  v-show="total > 0"
                  :total="total"
                  :page.sync="querycharge.pageNum"
                  :limit.sync="querycharge.pageSize"
                  @pagination="getlistSfxm"
                />
              </div>
            </div>
            <div class="pag" v-if="List == false">
              <div class="pag1">
                <pagination v-show="total > 0" :total="total" :page.sync="queryParam.page"
                  :limit.sync="queryParam.pageSize" @pagination="getListByXmId" />
                <pagination
                  v-show="total > 0"
                  :total="total"
                  :page.sync="queryParam.page"
                  :limit.sync="queryParam.pageSize"
                  @pagination="getListByXmId"
                />
              </div>
            </div>
          </el-col>
@@ -584,7 +1038,7 @@
      this.form.lisXmmc = param1[0].pacName;
    },
    //是否显示选中的值
    display(value) { },
    display(value) {},
    /** 查询体检项目列表 */
    getList() {
      // this.loading = true;
@@ -621,7 +1075,7 @@
    handleAdd(row) {
      // this.reset();
      this.loading = true;
      this.proParent = false
      this.proParent = false;
      this.form.proPrice = 0.0;
      this.form.proName = "";
      this.form.proId = null;
@@ -635,19 +1089,35 @@
          this.key = response.data.key;
          this.projectOptions.push(project);
          if (row.proId) {
            this.form.proParentId = row.proId;
            for (var i = 0; i < project.children.length; i++) {
              if (project.children[i].proId ===  row.proId) {
                this.form.proParentId = row.proId;
                break;
              }else{
                this.form.proParentId =0
              }
            }
            this.open = true;
          } else if(this.treeDate.id){
            this.form.proParentId = this.treeDate.id
            this.projectOptions.forEach(item => {
              item.children.forEach(item1 => {
                if(this.form.proParentId == item1.proId){
                  this.form.deptId = item1.deptId
          } else if (this.treeDate.id) {
            for (var i = 0; i < project.children.length; i++) {
              if (project.children[i].proId ===  this.treeDate.id) {
                this.form.proParentId = this.treeDate.id;
                break;
              }else{
                this.form.proParentId =0
              }
            }
            this.projectOptions.forEach((item) => {
              item.children.forEach((item1) => {
                if (this.form.proParentId == item1.proId) {
                  this.form.deptId = item1.deptId;
                }
              })
            })
              });
            });
            this.open = true;
          }else{
          } else {
            this.open = true;
          }
        }
@@ -657,7 +1127,7 @@
      if (this.queryParams.deptId) {
        this.form.deptId = this.queryParams.deptId;
      } else {
        this.form.deptId = null
        this.form.deptId = null;
      }
      // this.form.proId = this.queryParams.proId;
      this.form.proCheckMethod = "N";
@@ -696,7 +1166,7 @@
      }
    },
    changeType() {
      this.$forceUpdate()
      this.$forceUpdate();
    },
    obtain(vals) {
@@ -707,7 +1177,7 @@
        this.showPrise = true;
        this.showRentPrise = false;
      } else {
        this.form.deptId = this.selectList.deptId
        this.form.deptId = this.selectList.deptId;
        this.showPrise = false;
        this.showRentPrise = true;
      }
@@ -807,7 +1277,7 @@
    },
    // 节点单击事件
    handleNodeClick(date) {
      this.treeDate = date
      this.treeDate = date;
      if (date.qf == "0") {
        this.xiugais = true;
      } else {
@@ -1034,7 +1504,7 @@
    handleUpdate1() {
      this.open = true;
      this.form = this.xiugaiList;
      this.proParent = true
      this.proParent = true;
      // if(){
      //   this.proParent = true
      // }
@@ -1047,7 +1517,7 @@
          this.key = response.data.key;
          this.projectOptions.push(project);
        }
      })
      });
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
@@ -1055,7 +1525,7 @@
      this.getData();
      // this.form = row;
      const proId = row.proId || this.ids;
      this.proParent = false
      this.proParent = false;
      getProject(proId).then((response) => {
        this.form = response.data;
        if (this.form.proParentId === "0") {
@@ -1117,7 +1587,7 @@
            this.key = response.data.key;
            this.projectOptions.push(project);
          }
        })
        });
        this.open = true;
        this.title = "体检项目信息维护";
      });
@@ -1200,7 +1670,6 @@
                  this.cancel();
                  this.getList();
                }
              });
            } else {
              if (this.form.proParentId === 0) {
@@ -1270,7 +1739,6 @@
                  this.cancel();
                  this.getList();
                }
              });
            } else {
              if (this.form.proParentId === 0) {
@@ -1323,7 +1791,7 @@
          this.getList();
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => { });
        .catch(() => {});
    },
    /** 导出按钮操作 */
    handleExport() {
@@ -1362,7 +1830,7 @@
  background: #e5f3ff;
}
.el-tree-node.is-current>.el-tree-node__content {
.el-tree-node.is-current > .el-tree-node__content {
  background-color: #e5f3ff !important;
  color: #333 !important;
}
src/views/hosp/question/index.vue
@@ -1,89 +1,417 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="问题" prop="question">
        <el-input v-model="queryParams.question" placeholder="请输入问题" clearable @keyup.enter.native="handleQuery" />
      </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-form-item>
    </el-form>
    <el-row :gutter="20">
      <el-col :span="4" :xs="24">
        <div class="head-container">
          <el-input
            v-model="deptName"
            placeholder="请输入科室名称"
            clearable
            size="small"
            prefix-icon="el-icon-search"
            style="margin-bottom: 15px"
          />
        </div>
        <el-scrollbar style="height: 629px; width: 100%" class="outside1">
          <div class="head-container">
            <el-tree
              :data="deptOptions"
              :props="defaultProps"
              :expand-on-click-node="false"
              :filter-node-method="filterNode"
              ref="tree"
              node-key="id"
              :default-expanded-keys="treeId"
              highlight-current
              @node-click="handleNodeClick"
            />
          </div>
        </el-scrollbar>
      </el-col>
      <el-col :span="20" :xs="24" style="display: flex">
        <div style="width: 50%">
          <el-form
            :model="queryParams"
            ref="queryForm"
            size="small"
            :inline="true"
            v-show="showSearch"
            label-width="68px"
          >
            <el-form-item label="问题" prop="question">
              <el-input
                v-model="queryParams.question"
                placeholder="请输入问题"
                clearable
                @keyup.enter.native="handleQuery"
              />
            </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-form-item>
          </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['hosp:question:add']">新增
          <el-row :gutter="10" class="mb8">
            <el-col :span="1.5">
              <el-button
                type="primary"
                icon="el-icon-plus"
                size="mini"
                @click="handleAdd"
                v-hasPermi="['hosp:question:add']"
                >新增
              </el-button>
            </el-col>
            <!-- <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['hosp:question:edit']"
          >修改
        </el-button>
      </el-col> -->
            <el-col :span="1.5">
              <el-button
                type="primary"
                icon="el-icon-delete"
                size="mini"
                :disabled="multiple"
                @click="handleDelete"
                v-hasPermi="['hosp:question:remove']"
                >删除
              </el-button>
            </el-col>
            <el-col :span="1.5">
              <el-button
                type="primary"
                icon="el-icon-download"
                size="mini"
                @click="handleExport"
                v-hasPermi="['hosp:question:export']"
                >导出
              </el-button>
            </el-col>
            <!-- <right-toolbar
          :showSearch.sync="showSearch"
          @queryTable="getList"
        ></right-toolbar> -->
          </el-row>
          <el-table
            border
            v-loading="loading"
            :data="intList"
            @selection-change="handleSelectionChange"
            style="width: 96%"
          >
            <el-table-column
              type="selection"
              width="40"
              align="center"
              fixed="left"
            />
            <el-table-column
              label="序号"
              align="center"
              prop="newID"
              width="50px"
              fixed="left"
            />
            <el-table-column
              label="问题"
              align="center"
              prop="question"
              :show-overflow-tooltip="true"
            />
            <el-table-column
              label="类型"
              align="center"
              prop="type"
              :show-overflow-tooltip="true"
            >
              <template slot-scope="scope">
                <dict-tag
                  :options="dict.type.question_type"
                  :value="scope.row.type"
                />
              </template>
            </el-table-column>
            <!-- <el-table-column
          label="关键字"
          align="center"
          prop="keywords"
          :show-overflow-tooltip="true"
        /> -->
            <!-- <el-table-column
          label="分类"
          align="center"
          prop="sort"
          :show-overflow-tooltip="true"
        /> -->
            <el-table-column
              label="是否必填"
              align="center"
              prop="isRequired"
              :show-overflow-tooltip="true"
            >
              <template slot-scope="scope">
                <dict-tag
                  :options="dict.type.sys_yes_no"
                  :value="scope.row.isRequired"
                />
              </template>
            </el-table-column>
            <!-- <el-table-column
          label="创建人"
          align="center"
          prop="createBy"
          :show-overflow-tooltip="true"
        /> -->
            <!-- <el-table-column
          label="创建时间"
          align="center"
          prop="createTime"
          width="180"
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.createTime) }}</span>
          </template>
        </el-table-column> -->
            <!-- <el-table-column
          label="修改人"
          align="center"
          prop="updateBy"
          :show-overflow-tooltip="true"
        /> -->
            <!-- <el-table-column
          label="修改时间"
          align="center"
          prop="updateTime"
          width="180"
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.updateTime) }}</span>
          </template>
        </el-table-column> -->
            <!-- <el-table-column
          label="备注"
          align="center"
          prop="remark"
          :show-overflow-tooltip="true"
        /> -->
            <el-table-column
              label="操作"
              align="center"
              class-name="small-padding fixed-width"
              width="80px"
              fixed="right"
            >
              <template slot-scope="scope">
                <el-button
                  size="mini"
                  type="text"
                  icon="el-icon-edit"
                  @click="handleUpdate(scope.row)"
                  v-hasPermi="['hosp:question:edit']"
                  title="修改"
                >
                </el-button>
                <el-button
                  size="mini"
                  type="text"
                  icon="el-icon-delete"
                  @click="handleDelete(scope.row)"
                  v-hasPermi="['hosp:question:remove']"
                  title="删除"
                >
                </el-button>
              </template>
            </el-table-column>
          </el-table>
          <div class="pag">
            <div class="pag1">
              <pagination
                v-show="total > 0"
                :total="total"
                :page.sync="queryParams.pageNum"
                :limit.sync="queryParams.pageSize"
                @pagination="handleNodeClick"
              />
            </div>
          </div>
        </div>
        <div style="width: 50%" class="outside1">
          <el-divider class="custom-divider">{{ mingcheng.tempName }}</el-divider>
          <el-form
            v-for="(item, index) in intList"
            :key="index"
            style="margin-left: 15px"
          >
            <el-form-item>
              <span
                style="color: red; margin-left: 5px"
                v-if="item.isRequired == 'Y'"
                >*</span
              >
              {{ index + 1 > 9 ? index + 1 : "0" + (index + 1) }}.{{
                item.question
              }}
              <span v-if="item.type == '0'">(单选)</span>
              <span v-if="item.type == '1'">(多选)</span><br />
              <label
                v-for="(item5, index) in item.tjSurveyOptionsList"
                :key="index"
              >
                <!-- <img v-show="item.type == '1'" v-if="item5.qid ==item.qid"   class="select-radio" src="../../../assets/images/weixuanzhong.png" alt="">
                <img v-show="item.type == '1'" v-else  class="select-radio1" src="../../../assets/images/xuanzhong.png" alt=""> -->
                <input
                  v-show="item.type == '0'"
                  type="radio"
                  :name="item5.qid"
                  :value="item5.oid"
                /><label class="inp" v-show="item.type == '0'">{{
                  item5.ooption
                }}</label>
                <input
                  v-show="item.type == '1'"
                  type="checkbox"
                  :name="item5.qid"
                  :value="item5.oid"
                /><label class="inp" v-show="item.type == '1'">{{
                  item5.ooption
                }}</label>
                <el-rate
                  v-show="item.type == '2'"
                  v-model="myscore"
                  show-text
                ></el-rate>
                <el-input
                  v-show="item.type == '3'"
                  v-model="inpu"
                  style="width: 340px"
                />
                <el-date-picker
                  v-show="item.type == '4'"
                  v-model="value2"
                  align="right"
                  type="date"
                  placeholder="选择日期"
                  :picker-options="pickerOptions"
                >
                </el-date-picker>
                <el-input-number
                  v-show="item.type == '5'"
                  v-model="num"
                  :min="1"
                  :max="10000"
                ></el-input-number>
                <el-input-number
                  v-show="item.type == '6'"
                  v-model="numf"
                  :precision="2"
                  :step="0.0"
                  :max="10000"
                ></el-input-number>
              </label>
            </el-form-item>
          </el-form>
        </div>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
          v-hasPermi="['hosp:question:edit']">修改
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
          v-hasPermi="['hosp:question:remove']">删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
          v-hasPermi="['hosp:question:export']">导出
        </el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table border v-loading="loading" :data="questionList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="40" align="center" fixed="left" />
      <el-table-column label="序号" align="center" prop="newID" width="50px" fixed="left" />
      <el-table-column label="问题" align="center" prop="question" />
      <el-table-column label="类型" align="center" prop="type">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.question_type" :value="scope.row.type" />
        </template>
      </el-table-column>
      <el-table-column label="是否必填" align="center" prop="isRequired">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isRequired" />
        </template>
      </el-table-column>
      <el-table-column label="创建人" align="center" prop="createBy" />
      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.createTime) }}</span>
        </template>
      </el-table-column>
      <el-table-column label="修改人" align="center" prop="updateBy" />
      <el-table-column label="修改时间" align="center" prop="updateTime" width="180">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.updateTime) }}</span>
        </template>
      </el-table-column>
      <el-table-column label="备注" align="center" prop="remark" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="80px" fixed="right">
        <template slot-scope="scope">
          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
            v-hasPermi="['hosp:question:edit']" title="修改">
          </el-button>
          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
            v-hasPermi="['hosp:question:remove']" title="删除">
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <div class="pag">
      <div class="pag1">
        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
          @pagination="getList" />
      </div>
    </div>
    <!-- 添加或修改问卷问题对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="542px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="问题" prop="question">
      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
        <el-form-item label="问卷名称" prop="mid" style="margin-bottom: 20px">
          <el-select v-model="form.mid" placeholder="请选择问卷名称">
            <el-option
              v-for="dict in wenjuanList"
              :key="dict.mid"
              :label="dict.tempName"
              :value="dict.mid"
            />
          </el-select>
          <i
            class="el-icon-circle-plus-outline"
            @click="tiaozhuan"
            style="margin-left: 5px"
          ></i>
        </el-form-item>
        <el-form-item label="问题" prop="question" style="margin-bottom: 20px">
          <el-input v-model="form.question" placeholder="请输入问题" />
        </el-form-item>
        <el-form-item label="类型" prop="type" style="margin-bottom: 20px">
          <el-select
            v-model="form.type"
            placeholder="请选择类型"
            style="width: 100%"
            filterable
            clearable
          >
            <el-option
              v-for="dict in dict.type.question_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="关键字" prop="keywords">
          <el-input v-model="form.keywords" placeholder="请输入关键字" />
          <!-- <el-select
             v-model="form.type"
              placeholder="请选择类型"
              style="width: 100%"
              filterable
              clearable
            >
              <el-option
                v-for="dict in dict.type.question_type"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              ></el-option>
            </el-select> -->
        </el-form-item>
        <el-form-item label="分类" prop="sort">
          <el-input v-model="form.sort" placeholder="请输入分类" />
          <!-- <el-select
             v-model="form.type"
              placeholder="请选择类型"
              style="width: 100%"
              filterable
              clearable
            >
              <el-option
                v-for="dict in dict.type.question_type"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              ></el-option>
            </el-select> -->
        </el-form-item>
        <el-form-item
          label="必填"
          prop="isRequired"
          style="margin-bottom: 20px"
        >
          <el-radio v-model="form.isRequired" label="Y">是</el-radio>
          <el-radio v-model="form.isRequired" label="N">否</el-radio>
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" placeholder="请输入备注" />
@@ -91,15 +419,30 @@
        <el-divider content-position="center">问卷选项信息</el-divider>
        <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-plus" size="mini" @click="addmembers()">添加
            <el-button
              type="primary"
              icon="el-icon-plus"
              size="mini"
              @click="addmembers()"
              >添加
            </el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button type="danger" icon="el-icon-delete" size="mini" @click.native.prevent="Delete()">删除
            <el-button
              type="danger"
              icon="el-icon-delete"
              size="mini"
              @click.native.prevent="Delete()"
              >删除
            </el-button>
          </el-col>
        </el-row>
        <el-table border :data="form.tjSurveyOptionsList" ref="tjSurveyOptions" @selection-change="handleChange">
        <el-table
          border
          :data="form.tjSurveyOptionsList"
          ref="tjSurveyOptions"
          @selection-change="handleChange"
        >
          <el-table-column type="selection" width="50" align="center" />
          <el-table-column label="选项" prop="ooption" width="150">
            <template slot-scope="scope">
@@ -128,11 +471,13 @@
<script>
import {
  listQuestion,
  getQuestion,
  PostTemplentList,
  getQuestionsByMid,
  delQuestion,
  addQuestion,
  updateQuestion,
  listByDeptId,
  listByDeptId1
} from "@/api/hosp/question";
import { Message } from "element-ui";
export default {
@@ -140,17 +485,61 @@
  name: "Question",
  data() {
    let checkPhoneNum = (rule, value, callback) => {
         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 {
      mids: "",
      mingcheng: {},
      num: 0,
      inpu: "",
      myscore: this.value,
      pickerOptions: {
        disabledDate(time) {
          return time.getTime() > Date.now();
        },
        shortcuts: [
          {
            text: "今天",
            onClick(picker) {
              picker.$emit("pick", new Date());
            },
          },
          {
            text: "昨天",
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24);
              picker.$emit("pick", date);
            },
          },
          {
            text: "一周前",
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit("pick", date);
            },
          },
        ],
      },
      numf: 0,
      value2: "",
      intList: [],
      deptOptions: undefined,
      defaultProps: {
        children: "children",
        label: "name",
      },
      treeId: [],
      deptName: "",
      wenjuanList: [],
      // 遮罩层
      loading: true,
      // 选中数组
@@ -166,7 +555,7 @@
      // 总条数
      total: 0,
      // 问卷问题表格数据
      questionList: [],
      // questionList: [],
      // 问卷选项表格数据
      tjSurveyOptionsList: [],
      selectionList: [],
@@ -182,6 +571,11 @@
        type: null,
        isRequired: null,
      },
      Objdata:{},
      queryParamse: {
        pageNum: 1,
        pageSize: 10000,
      },
      // 表单参数
      form: {},
      // 表单校验
@@ -189,53 +583,114 @@
        question: [
          {
            required: true,
            validator: checkPhoneNum,
            message: "问题不能为空",
            trigger: "blur",
          },
        ],
        type: [
          {
            required: true,
            validator: checkPhoneNum,
            message: "类型不能为空",
            trigger: "change",
          },
        ],
        isRequired: [
          {
            required: true,
            validator: checkPhoneNum,
            message: "是否必填不能为空",
            trigger: "blur",
          },
        ],
        deleted: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
        mid: [{ required: true, message: "问卷名称不能为空", trigger: "blur" }],
      },
    };
  },
  watch: {
    // 根据名称筛选部门树
    deptName(val) {
      this.$refs.tree.filter(val);
    },
    treeId(newVal, oldVal) {
      if (newVal) {
        this.$nextTick(() => {
          document
            .querySelector(".el-tree-node__children .el-tree-node__content")
            .click();
        });
      }
    },
  },
  created() {
    this.getList();
    // this.getList();
    this.getWenjuanList();
    this.getDeptTree();
  },
  methods: {
    /** 查询问卷问题列表 */
    getList() {
    /** 查询部门下拉树结构 */
    getDeptTree() {
      listByDeptId1().then((response) => {
        this.deptOptions = response.data;
        this.treeId.push(this.deptOptions[0].id);
      });
    },
    // 节点单击事件
    handleNodeClick(data) {
      this.Objdata = data
      this.loading = true;
      listQuestion(this.queryParams).then((response) => {
        this.questionList = response.rows;
        response.rows.forEach((item, index) => {
      this.mids = data.id;
      let datas = {
        mid: data.id,
        pageNum: this.queryParams.pageNum,
        pageSize: this.queryParams.pageSize,
      };
      getQuestionsByMid(datas).then((response) => {
        // console.log(response);
        response.data.sort(
          (a, b) =>
            new Date(a.createTime).getTime() - new Date(b.createTime).getTime()
        ); //这是升序,倒序的话翻过来
        this.intList = response.data;
        this.total = response.total;
        this.intList.forEach((item) => {
          if (item.template != null) {
            this.mingcheng = item.template;
          }
        });
        response.data.forEach((item, index) => {
          item.newID =
            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
            index +
            1;
        });
        this.total = response.total;
        this.loading = false;
      });
    },
    // 筛选节点
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    },
    /** 查询问卷列表 */
    getWenjuanList() {
      PostTemplentList(this.queryParamse).then((response) => {
        this.wenjuanList = response.rows;
      });
    },
    // /** 查询问卷问题列表 */
    // getList() {
    //   this.loading = true;
    //   listQuestion(this.queryParams).then((response) => {
    //     this.questionList = response.rows;
    //     response.rows.forEach((item, index) => {
    //       item.newID =
    //         (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
    //         index +
    //         1;
    //     });
    //     this.total = response.total;
    //     this.loading = false;
    //   });
    // },
    // 取消按钮
    cancel() {
      this.open = false;
@@ -261,7 +716,34 @@
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
      // this.handleNodeClick();
      let datas = {
        mid: this.mids,
        pageNum: this.queryParams.pageNum,
        pageSize: this.queryParams.pageSize,
        question: this.queryParams.question,
      };
      getQuestionsByMid(datas).then((response) => {
        // console.log(response);
        response.data.sort(
          (a, b) =>
            new Date(a.createTime).getTime() - new Date(b.createTime).getTime()
        ); //这是升序,倒序的话翻过来
        this.intList = response.data;
        this.total = response.total;
        this.intList.forEach((item) => {
          if (item.template != null) {
            this.mingcheng = item.template;
          }
        });
        response.data.forEach((item, index) => {
          item.newID =
            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
            index +
            1;
        });
        this.loading = false;
      });
    },
    /** 重置按钮操作 */
    resetQuery() {
@@ -299,26 +781,24 @@
      this.$forceUpdate();
    },
    handleChange(selection) {
      this.selectionList =[]
      this.selectionList = selection
      this.selectionList = [];
      this.selectionList = selection;
    },
    // 删除行
    Delete() {
      if (!this.selectionList) {
        this.$modal.msgSuccess('请选择需要删除的数据')
        this.$modal.msgSuccess("请选择需要删除的数据");
      } else {
        this.selectionList.forEach(item =>{
          this.form.tjSurveyOptionsList.forEach((item1,index) => {
            if(item.ooption == item1.ooption){
        this.selectionList.forEach((item) => {
          this.form.tjSurveyOptionsList.forEach((item1, index) => {
            if (item.ooption == item1.ooption) {
              this.form.tjSurveyOptionsList.splice(index, 1);
            }
          })
        })
          });
        });
      }
    },
    /** 新增按钮操作 */
    // /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.open = true;
@@ -327,13 +807,18 @@
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      const qid = row.qid || this.ids;
      getQuestion(qid).then((response) => {
        this.form = response.data;
        this.form.tjSurveyOptionsList = response.data.tjSurveyOptionsList;
        this.open = true;
        this.title = "修改问卷问题";
      });
      this.form = row;
      this.form.tjSurveyOptionsList = row.tjSurveyOptionsList;
      this.form.mid = Number(row.template.mid);
      this.open = true;
      this.title = "修改问卷问题";
      // const qid = row.qid || this.ids;
      // getQuestion(qid).then((response) => {
      //   this.form = response.data;
      //   this.form.tjSurveyOptionsList = response.data.tjSurveyOptionsList;
      //   this.open = true;
      //   this.title = "修改问卷问题";
      // });
    },
    /** 提交按钮 */
    submitForm() {
@@ -343,13 +828,15 @@
            updateQuestion(this.form).then((response) => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
              // this.$tab.refreshPage();
              this.handleNodeClick(this.Objdata)
            });
          } else {
            addQuestion(this.form).then((response) => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
              // this.$tab.refreshPage();
              this.handleNodeClick(this.Objdata)
            });
          }
        }
@@ -359,15 +846,16 @@
    handleDelete(row) {
      const qids = row.qid || this.ids;
      this.$modal
        .confirm('是否确认删除院区信息编号为"' + qids + '"的数据项?')
        .confirm('是否确认删除问题编号为"' + qids + '"的数据项?')
        .then(function () {
          return delQuestion(qids);
        })
        .then(() => {
          this.getList();
          // this.$tab.refreshPage();
          this.handleNodeClick(this.Objdata)
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => { });
        .catch(() => {});
    },
    /** 导出按钮操作 */
    handleExport() {
@@ -379,6 +867,9 @@
        `hosp_${new Date().getTime()}.xlsx`
      );
    },
    tiaozhuan() {
      this.$router.push({ path: "/wemjuan" });
    },
  },
};
</script>
@@ -386,9 +877,26 @@
.pag {
  width: 100%;
  display: flex;
  justify-content: center;
  justify-content: flex-start;
  margin-left: 339px;
}
.pag1 {
  width: 30%;
}</style>
}
.el-icon-circle-plus-outline {
  line-height: 20px;
  font-size: 20px;
}
.outside1 {
  width: 500px;
  max-height: 700px;
  overflow-y: auto;
  display: flex;
  margin-top: 8px;
  flex-direction: column;
}
.custom-divider .el-divider__text {
  font-size: 18px;
}
</style>
src/views/hosp/question1/index.vue
New file
@@ -0,0 +1,394 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="问题" prop="question">
        <el-input v-model="queryParams.question" placeholder="请输入问题" clearable @keyup.enter.native="handleQuery" />
      </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-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['hosp:question:add']">新增
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
          v-hasPermi="['hosp:question:edit']">修改
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
          v-hasPermi="['hosp:question:remove']">删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
          v-hasPermi="['hosp:question:export']">导出
        </el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table border v-loading="loading" :data="questionList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="40" align="center" fixed="left" />
      <el-table-column label="序号" align="center" prop="newID" width="50px" fixed="left" />
      <el-table-column label="问题" align="center" prop="question" />
      <el-table-column label="类型" align="center" prop="type">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.question_type" :value="scope.row.type" />
        </template>
      </el-table-column>
      <el-table-column label="是否必填" align="center" prop="isRequired">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isRequired" />
        </template>
      </el-table-column>
      <el-table-column label="创建人" align="center" prop="createBy" />
      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.createTime) }}</span>
        </template>
      </el-table-column>
      <el-table-column label="修改人" align="center" prop="updateBy" />
      <el-table-column label="修改时间" align="center" prop="updateTime" width="180">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.updateTime) }}</span>
        </template>
      </el-table-column>
      <el-table-column label="备注" align="center" prop="remark" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="80px" fixed="right">
        <template slot-scope="scope">
          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
            v-hasPermi="['hosp:question:edit']" title="修改">
          </el-button>
          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
            v-hasPermi="['hosp:question:remove']" title="删除">
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <div class="pag">
      <div class="pag1">
        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
          @pagination="getList" />
      </div>
    </div>
    <!-- 添加或修改问卷问题对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="542px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="问题" prop="question">
          <el-input v-model="form.question" placeholder="请输入问题" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" placeholder="请输入备注" />
        </el-form-item>
        <el-divider content-position="center">问卷选项信息</el-divider>
        <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-plus" size="mini" @click="addmembers()">添加
            </el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button type="danger" icon="el-icon-delete" size="mini" @click.native.prevent="Delete()">删除
            </el-button>
          </el-col>
        </el-row>
        <el-table border :data="form.tjSurveyOptionsList" ref="tjSurveyOptions" @selection-change="handleChange">
          <el-table-column type="selection" width="50" align="center" />
          <el-table-column label="选项" prop="ooption" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.ooption" placeholder="请输入选项" />
            </template>
          </el-table-column>
          <el-table-column label="分数" prop="score" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.score" placeholder="请输入分数" />
            </template>
          </el-table-column>
          <el-table-column label="备注" prop="remark" width="150">
            <template slot-scope="scope">
              <el-input v-model="scope.row.remark" placeholder="请输入备注" />
            </template>
          </el-table-column>
        </el-table>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import {
  listQuestion,
  getQuestion,
  delQuestion,
  addQuestion,
  updateQuestion,
} from "@/api/hosp/question";
import { Message } from "element-ui";
export default {
  dicts: ["question_type", "sys_yes_no"],
  name: "Question",
  data() {
    let checkPhoneNum = (rule, value, callback) => {
         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 (!patter.test(value)) {
        return callback('');
      }
    };
    return {
      // 遮罩层
      loading: true,
      // 选中数组
      ids: [],
      // 子表选中数据
      checkedTjSurveyOptions: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 问卷问题表格数据
      questionList: [],
      // 问卷选项表格数据
      tjSurveyOptionsList: [],
      selectionList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        question: null,
        type: null,
        isRequired: null,
      },
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        question: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
        type: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "change",
          },
        ],
        isRequired: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
        deleted: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
      },
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** 查询问卷问题列表 */
    getList() {
      this.loading = true;
      listQuestion(this.queryParams).then((response) => {
        this.questionList = response.rows;
        response.rows.forEach((item, index) => {
          item.newID =
            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
            index +
            1;
        });
        this.total = response.total;
        this.loading = false;
      });
    },
    // 取消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // 表单重置
    reset() {
      this.form = {
        qid: null,
        question: null,
        type: null,
        isRequired: "0",
        remark: null,
        createBy: null,
        createTime: null,
        updateBy: null,
        updateTime: null,
        deleted: null,
      };
      this.tjSurveyOptionsList = [];
      this.resetForm("form");
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map((item) => item.qid);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
    },
    // 新增行
    addmembers() {
      if (this.form.question) {
        if (!this.form.tjSurveyOptionsList) {
          this.form.tjSurveyOptionsList = [];
          this.form.tjSurveyOptionsList.push({
            id: parseInt(length),
            qid: "",
            qname: "",
            Selection,
          });
        } else {
          this.form.tjSurveyOptionsList.push({
            id: parseInt(length),
            qid: "",
            qname: "",
            Selection,
          });
        }
      } else {
        Message.warning("请先填写问题");
      }
      this.$forceUpdate();
    },
    handleChange(selection) {
      this.selectionList =[]
      this.selectionList = selection
    },
    // 删除行
    Delete() {
      if (!this.selectionList) {
        this.$modal.msgSuccess('请选择需要删除的数据')
      } else {
        this.selectionList.forEach(item =>{
          this.form.tjSurveyOptionsList.forEach((item1,index) => {
            if(item.ooption == item1.ooption){
              this.form.tjSurveyOptionsList.splice(index, 1);
            }
          })
        })
      }
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加问卷问题";
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      const qid = row.qid || this.ids;
      getQuestion(qid).then((response) => {
        this.form = response.data;
        this.form.tjSurveyOptionsList = response.data.tjSurveyOptionsList;
        this.open = true;
        this.title = "修改问卷问题";
      });
    },
    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          if (this.form.qid != null) {
            updateQuestion(this.form).then((response) => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addQuestion(this.form).then((response) => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const qids = row.qid || this.ids;
      this.$modal
        .confirm('是否确认删除院区信息编号为"' + qids + '"的数据项?')
        .then(function () {
          return delQuestion(qids);
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => { });
    },
    /** 导出按钮操作 */
    handleExport() {
      this.download(
        "hosp/question/export",
        {
          ...this.queryParams,
        },
        `hosp_${new Date().getTime()}.xlsx`
      );
    },
  },
};
</script>
<style scoped>
.pag {
  width: 100%;
  display: flex;
  justify-content: center;
}
.pag1 {
  width: 30%;
}</style>
src/views/hosp/surveyTemplate copy/editor/TduckFormMixin.js
New file
@@ -0,0 +1,24 @@
import TduckForm from 'tduck-form-generator'
import store from '@/store/index'
import { getCurrentDomain } from '@/utils'
import { getToken } from '@/utils/auth'
export default {
  data() {
    return {
      formKey: null
    }
  },
  created() {
    // 写入值到localStorage 给组件使用
    if (getToken()) {
      localStorage.setItem(TduckForm.constant.ACCESS_TOKEN, "Bearer " + getToken())
    }
    localStorage.setItem('FORM-SUPPORT', process.env['VUE_APP_TITLE'])
    localStorage.setItem(TduckForm.constant.ACCESS_TOKEN_NAME, 'Authorization')
    if (process.env['VUE_APP_API_ROOT']) {
      localStorage.setItem(TduckForm.constant.BASE_URL, process.env['VUE_APP_API_ROOT'])
    } else {
      localStorage.setItem(TduckForm.constant.BASE_URL, getCurrentDomain())
    }
  }
}
src/views/hosp/surveyTemplate copy/editor/index.vue
New file
@@ -0,0 +1,49 @@
<template>
  <div class="form-index-container">
    <el-card class="header-container">
      <el-row align="middle" type="flex" :gutter="5" style="height: 50px">
        <i class="el-icon-back" @click="$router.back(-2)" />
        <el-col />
        <el-button type="primary" icon="el-icon-view" @click="previewDialogVisible = true"> 预览 </el-button>
      </el-row>
    </el-card>
    <FormDesign :question-mode="true" />
    <el-dialog :visible.sync="previewDialogVisible" :before-close="handleClose">
      <pre-view :key="previewKey" :preview-qrcode="true" />
    </el-dialog>
  </div>
</template>
<script>
import TduckForm, { FormDesign } from "tduck-form-generator";
import "tduck-form-generator/dist/TduckForm.css";
import mixin from "./TduckFormMixin.js";
import PreView from './preview'
export default {
  inject: ["reload"],
  name: "FormEditor",
  components: {
    FormDesign,
    PreView
  },
  mixins: [mixin],
  data() {
    return {
        previewDialogVisible: false,
        previewKey: +new Date(),
    };
  },
  computed: {},
  methods: {
    handleClose() {
      this.reload();
      this.previewDialogVisible = false;
    },
  },
};
</script>
<style lang='scss'>
</style>
src/views/hosp/surveyTemplate copy/editor/preview/ProjectForm.vue
New file
@@ -0,0 +1,43 @@
<template>
  <biz-project-form v-if="formConfig.formKey" :form-config="formConfig" @submit="submitForm" />
</template>
<script>
import { BizProjectForm } from 'tduck-form-generator'
import "tduck-form-generator/dist/TduckForm.css";
import mixin from '../TduckFormMixin'
export default {
  components: {
    BizProjectForm
  },
  mixins: [mixin],
  data() {
    return {
      formConfig: {
        formKey: '',
        preview: true,
        showBtns: true
      }
    }
  },
  created() {
    this.formConfig.formKey = this.$route.query.key
  },
  methods: {
    submitForm() {
      console.log(111)
      // this.msgError('预览无法提交数据')
    }
  }
}
</script>
<style scoped lang="scss">
::v-deep .project-form {
  overflow-x: hidden !important;
  padding: 5px !important;
}
::v-deep .project-form {
  padding: 20px;
}
</style>
src/views/hosp/surveyTemplate copy/editor/preview/index.vue
New file
@@ -0,0 +1,178 @@
<template>
  <div class="preview-container">
    <el-tabs v-if="formConfig.formKey" type="card">
      <el-tab-pane>
        <span slot="label"
          ><i class="el-icon-mobile" />
          手机
        </span>
        <div class="preview-layer">
          <div class="preview-bg" />
          <div class="preview-phone">
            <iframe
              id="preview-html"
              :src="mobilePreviewUrl"
              class="preview-html"
              frameborder="0"
              name="preview-html"
              scrolling="auto"
            />
          </div>
        </div>
        <!-- <div v-if="mobilePreviewUrl && previewQrcode" class="qrcode-view">
          <p style="font-weight: bold; font-size: 16px">手机扫码预览</p>
          <p class="tips-text">* 预览仅查看效果,无法提交数据</p>
          <p>
            <vue-qr
              v-if="mobilePreviewUrl && previewQrcode"
              :size="134"
              style="border-radius: 10px"
              :text="mobilePreviewUrl"
            />
          </p>
        </div> -->
      </el-tab-pane>
      <el-tab-pane>
        <span slot="label"
          ><i class="el-icon-monitor" />
          电脑
        </span>
        <el-scrollbar style="height: 77vh; overflow-x: hidden !important">
          <biz-project-form v-if="formConfig.formKey" :form-config="formConfig" />
        </el-scrollbar>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
<script>
import { BizProjectForm } from 'tduck-form-generator'
import "tduck-form-generator/dist/TduckForm.css";
import VueQr from 'vue-qr'
import mixin from '../TduckFormMixin'
export default {
  name: 'PreView',
  components: {
    BizProjectForm,
    VueQr
  },
  mixins: [mixin],
  props: {
    previewQrcode: null
  },
  data() {
    return {
      formKey: null,
      mobilePreviewUrl: '',
      formConfig: {
        formKey: '',
        showBtns: true
      }
    }
  },
  mounted() {
    this.formKey = this.$route.query.key
    console.log( this.formKey)
    let url = window.location.protocol + '//' + window.location.host
    this.mobilePreviewUrl = `${url}/editor/ProjectForm?key=${this.formKey}`
    this.$set(this.formConfig, 'formKey', this.formKey)
  }
}
</script>
<style lang="scss" scoped>
.tips-text {
  margin-top: 10px;
  margin-bottom: 10px;
}
.preview-container {
  margin: 0;
  padding-top: 30px;
  height: 100vh;
  overflow: hidden !important;
  background-color: var(--color-bg);
}
::v-deep .el-tabs--card > .el-tabs__header .el-tabs__nav {
  border: 1px solid #e4e7ed !important;
  border-radius: 10px;
  background-color: white;
}
::v-deep .el-tabs__header {
  width: 300px;
  margin: 0 auto;
  border: none;
}
::v-deep .el-dialog__body {
  max-height: calc(100vh - 200px) !important;
}
::v-deep .el-tabs--card > .el-tabs__header .el-tabs__item {
  background-color: transparent;
  //border: 1px solid white;
}
::v-deep .project-form {
  padding: 20px;
}
::v-deep .project-form-wrapper {
  background-color: transparent;
}
div.preview-layer {
  width: 500px;
  height: 100%;
  margin: 10px auto;
  right: 0;
  text-align: center;
}
div.preview-layer .preview-bg {
  width: 500px;
  height: 100%;
  margin: 20px auto;
  z-index: 999;
  opacity: 0.7;
}
div.preview-layer .preview-phone {
  width: 372px;
  height: 744px;
  // background: url('~@/assets/images/appearset_bgc_big.png');
  background-size: 372px 744px;
  z-index: 1000;
}
.qrcode-view {
  position: absolute;
  top: 20px;
  right: 260px;
  p {
    text-align: center;
    font-size: 12px;
    color: #303133;
  }
}
.preview-html {
  width: 345px !important;
  height: 568px !important;
  margin: 74px 0 0;
  border-radius: 5px;
  outline: none;
  background-color: #fff;
  border-width: 2px;
  border-style: inset;
  border-color: initial;
  border-image: initial;
  border-top-width: 0;
  border-right-width: 0;
  border-bottom-width: 0;
  border-left-width: 0;
}
</style>
src/views/hosp/surveyTemplate copy/index.vue
New file
@@ -0,0 +1,582 @@
<template>
  <div class="app-container">
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      v-show="showSearch"
      label-width="68px"
    >
      <el-form-item label="模板名称" prop="tempName">
        <el-input
          v-model="queryParams.tempName"
          placeholder="请输入模板名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </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-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['hosp:surveyTemplate:add']"
          >新增
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['hosp:surveyTemplate:edit']"
          >修改
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['hosp:surveyTemplate:remove']"
          >删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['hosp:surveyTemplate:export']"
          >导出
        </el-button>
      </el-col>
      <right-toolbar
        :showSearch.sync="showSearch"
        @queryTable="getList"
      ></right-toolbar>
    </el-row>
    <el-table
      border
      v-loading="loading"
      :data="surveyTemplateList"
      @selection-change="handleSelectionChange"
    >
      <el-table-column type="selection" width="40px" align="center" />
      <el-table-column label="序号" align="center" prop="newID" width="50px" />
      <el-table-column label="模板名称" align="center" prop="tempName" />
      <el-table-column label="模板类型" align="center" prop="tempType">
        <template slot-scope="scope">
          <dict-tag
            :options="dict.type.question_template_type"
            :value="scope.row.tempType"
          />
        </template>
      </el-table-column>
      <el-table-column label="创建人" align="center" prop="createBy" />
      <el-table-column
        label="创建时间"
        align="center"
        prop="createTime"
        width="180"
      >
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.createTime) }}</span>
        </template>
      </el-table-column>
      <el-table-column label="修改人" align="center" prop="updateBy" />
      <el-table-column
        label="修改时间"
        align="center"
        prop="updateTime"
        width="180"
      >
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.updateTime) }}</span>
        </template>
      </el-table-column>
      <el-table-column label="启用标志" align="center" prop="qybz">
        <template slot-scope="scope" v-if="scope.row.userId !== 1">
          <el-switch
            v-model="scope.row.qybz"
            active-value="0"
            inactive-value="1"
            @change="handleStatusChange(scope.row)"
          ></el-switch>
        </template>
      </el-table-column>
      <el-table-column label="备注" align="center" prop="remark" />
      <el-table-column
        label="操作"
        align="center"
        class-name="small-padding fixed-width"
        width="80px"
      >
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-view"
            @click="xiangqing(scope.row)"
            v-hasPermi="['web:tags:edit']"
            title="预览"
          ></el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['hosp:surveyTemplate:edit']"
            title="修改"
          >
          </el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['hosp:surveyTemplate:remove']"
            title="删除"
          >
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <div class="pag">
      <div class="pag1">
        <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="getList"
        />
      </div>
    </div>
    <!-- 添加或修改问卷模板对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="450px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="模板名称" prop="tempName">
          <el-input v-model="form.tempName" placeholder="请输入模板名称" />
        </el-form-item>
        <el-form-item label="模板类型" prop="tempType">
          <el-select v-model="form.tempType" style="width: 100%">
            <el-option
              v-for="dict in dict.type.question_template_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" placeholder="请输入备注" />
        </el-form-item>
        <div v-if="DaTianYa == false">
          <el-divider content-position="center">问卷模板问题信息</el-divider>
          <el-row :gutter="10" class="mb8">
            <el-col :span="1.5">
              <el-button
                type="primary"
                icon="el-icon-plus"
                size="mini"
                @click="addmembers()"
                >添加
              </el-button>
            </el-col>
            <el-col :span="1.5">
              <el-button
                type="danger"
                icon="el-icon-delete"
                size="mini"
                @click.native.prevent="Delete()"
                >删除
              </el-button>
            </el-col>
          </el-row>
          <el-table
            style="width: 450px"
            border
            :data="form.tjSurveyTempQuesList"
            @selection-change="handleTjSurveyTempQuesSelectionChange"
          >
            <el-table-column type="selection" width="40" align="center" />
            <el-table-column label="问题id" prop="qid" width="179">
              <template slot-scope="scope">
                <el-input v-model="scope.row.qid" placeholder="请输入问题id" />
              </template>
            </el-table-column>
            <el-table-column label="问题名" prop="qname" width="190">
              <template slot-scope="scope">
                <el-input
                  v-model="scope.row.qname"
                  placeholder="请输入问题名"
                />
              </template>
            </el-table-column>
          </el-table>
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
    <el-drawer
      :visible.sync="previewDialogVisible"
      :before-close="handleClose"
      size="40%"
    >
      <pre-view :key="previewKey" :preview-qrcode="true" />
    </el-drawer>
  </div>
</template>
<script>
import PreView from "./editor/preview";
import VueQr from "vue-qr";
import {
  listSurveyTemplate,
  getSurveyTemplate,
  delSurveyTemplate,
  addSurveyTemplate,
  updateSurveyTemplate,
  getneedDesign,
  getcanDelete,
  updateQybz,
} from "@/api/hosp/surveyTemplate";
import { Message } from "element-ui";
export default {
  inject: ["reload"],
  name: "SurveyTemplate",
  components: {
    PreView,
    VueQr,
  },
  dicts: ["question_template_type"],
  data() {
    let checkPhoneNum = (rule, value, callback) => {
      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 (!patter.test(value)) {
        return callback("");
      }
    };
    return {
      // 遮罩层
      loading: true,
      previewKey: +new Date(),
      previewDialogVisible:false,
      // 选中数组
      ids: [],
      // 子表选中数据
      checkedTjSurveyTempQues: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 问卷模板表格数据
      surveyTemplateList: [],
      // 问卷模板问题表格数据
      tjSurveyTempQuesList: [],
      selectionList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      DaTianYa: false,
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        tempName: null,
        tempType: null,
        deleted: null,
      },
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        deleted: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
      },
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** 查询问卷模板列表 */
    getList() {
      this.loading = true;
      listSurveyTemplate(this.queryParams).then((response) => {
        this.surveyTemplateList = response.rows;
        response.rows.forEach((item, index) => {
          item.newID =
            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
            index +
            1;
        });
        this.total = response.total;
        this.loading = false;
      });
    },
    // 取消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // 表单重置
    reset() {
      this.form = {
        mid: null,
        tempName: null,
        tempType: null,
        remark: null,
        createBy: null,
        createTime: null,
        updateBy: null,
        updateTime: null,
        deleted: null,
      };
      this.tjSurveyTempQuesList = [];
      this.resetForm("form");
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map((item) => item.mid);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
    },
    handleTjSurveyTempQuesSelectionChange(selection) {
      this.selectionList = [];
      this.selectionList = selection;
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.title = "添加问卷模板";
      getneedDesign().then((res) => {
        if (res.msg == "false") {
          this.DaTianYa = false;
        } else {
          this.DaTianYa = true;
        }
        this.open = true;
      });
    },
    // 新增行
    addmembers() {
      if (this.form.tempName) {
        if (!this.form.tjSurveyTempQuesList) {
          this.form.tjSurveyTempQuesList = [];
          this.form.tjSurveyTempQuesList.push({
            id: parseInt(length),
            qid: "",
            qname: "",
            Selection,
          });
        } else {
          this.form.tjSurveyTempQuesList.push({
            id: parseInt(length),
            qid: "",
            qname: "",
            Selection,
          });
        }
      } else {
        Message.warning("请先填写模板名称");
      }
      this.$forceUpdate();
    },
    // 删除行
    Delete() {
      let that = this;
      if (!that.selectionList) {
        that.$modal.msgSuccess("请选择需要删除的数据");
      } else {
        console.log(that.form.tjSurveyTempQuesList);
        that.selectionList.forEach((item) => {
          that.form.tjSurveyTempQuesList.forEach((item1, index) => {
            if (item.qid == item1.qid) {
              that.form.tjSurveyTempQuesList.splice(index, 1);
            }
          });
        });
      }
    },
    xiangqing(row) {
      const mid = row.mid
      getSurveyTemplate(mid).then((response) => {
      if (response.data.designId == null) {
      } else {
        this.$router.push({
          query: { key:response.data.designId},
        });
        this.previewDialogVisible = true;
      }
    })
    },
    handleClose() {
      this.reload();
      this.previewDialogVisible = false;
    },
    handleStatusChange(row) {
      let text = row.qybz === "0" ? "启用" : "停用";
      this.$modal
        .confirm('确认要"' + text + '""' + row.tempName + '"问卷吗?')
        .then(function () {
          return updateQybz(row.mid, row.qybz);
        })
        .then(() => {
          this.$modal.msgSuccess(text + "成功");
        })
        .catch(function () {
          row.qybz = row.qybz === "0" ? "1" : "0";
        });
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      const mid = row.mid || this.ids;
      getSurveyTemplate(mid).then((response) => {
        this.form = response.data;
        if (response.data.tjSurveyTempQuesList.length >= 1) {
          this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList;
        }
        if ( this.form.designId == null) {
            this.DaTianYa = false;
            this.title = "修改问卷模板";
            this.open = true;
          } else {
            this.DaTianYa = true;
            this.form.formKey = this.form.designId;
            this.form.type = 1;
            this.toProjectHandle(this.form, "editor");
          }
      });
    },
    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          if (this.form.mid != null) {
            updateSurveyTemplate(this.form).then((response) => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addSurveyTemplate(this.form).then((response) => {
              // this.$modal.msgSuccess("新增成功");
              this.toProjectHandle(response.data, "editor");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    toProjectHandle(form, type) {
      this.$router.push({
        path: "/editor/moban",
        query: { key: form.formKey, active: type, type: form.type },
      });
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const mids = row.mid || this.ids;
      this.$modal
        .confirm('是否确认删除院区信息编号为"' + mids + '"的数据项?')
        .then(function () {
          let id = row.mid;
          return getcanDelete(id).then((res) => {
            if (res.data == true) {
              delSurveyTemplate(mids);
            } else {
              this.$modal.msgError("问卷正在使用中");
            }
          });
          // return delSurveyTemplate(mids);
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => {
          this.$modal.msgError("问卷正在使用中");
        });
    },
    /** 导出按钮操作 */
    handleExport() {
      this.download(
        "hosp/surveyTemplate/export",
        {
          ...this.queryParams,
        },
        `hosp_${new Date().getTime()}.xlsx`
      );
    },
  },
};
</script>
<style scoped>
.pag {
  width: 100%;
  display: flex;
  justify-content: center;
}
.pag1 {
  width: 30%;
}
</style>
src/views/hosp/surveyTemplate/index.vue
@@ -194,59 +194,98 @@
            />
          </el-select>
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" placeholder="请输入备注" />
        </el-form-item>
        <div v-if="DaTianYa == false">
          <el-divider content-position="center">问卷模板问题信息</el-divider>
          <el-row :gutter="10" class="mb8">
            <el-col :span="1.5">
              <el-button
                type="primary"
                icon="el-icon-plus"
                size="mini"
                @click="addmembers()"
                >添加
              </el-button>
            </el-col>
            <el-col :span="1.5">
              <el-button
                type="danger"
                icon="el-icon-delete"
                size="mini"
                @click.native.prevent="Delete()"
                >删除
              </el-button>
            </el-col>
          </el-row>
          <el-table
            style="width: 450px"
            border
            :data="form.tjSurveyTempQuesList"
            @selection-change="handleTjSurveyTempQuesSelectionChange"
          >
            <el-table-column type="selection" width="40" align="center" />
            <el-table-column label="问题id" prop="qid" width="179">
              <template slot-scope="scope">
                <el-input v-model="scope.row.qid" placeholder="请输入问题id" />
              </template>
            </el-table-column>
            <el-table-column label="问题名" prop="qname" width="190">
              <template slot-scope="scope">
                <el-input
                  v-model="scope.row.qname"
                  placeholder="请输入问题名"
                />
              </template>
            </el-table-column>
          </el-table>
        </div>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
     <!-- 问卷详情抽屉 -->
     <el-drawer
      title="问卷详情"
      :visible.sync="drawer"
      :with-header="true"
      size="40%"
    >
      <el-form
        v-for="(item, index) in intList"
        :key="index"
        style="margin-left: 15px"
      >
        <el-form-item>
          <span
            style="color: red; margin-left: 5px"
            v-if="item.isRequired == 'Y'"
            >*</span
          >
          {{ index + 1 > 9 ? index + 1 : "0" + (index + 1) }}.{{
            item.question
          }}
          <span v-if="item.type == '0'">(单选)</span>
          <span v-if="item.type == '1'">(多选)</span><br />
          <label
            v-for="(item5, index) in item.tjSurveyOptionsList"
            :key="index"
          >
            <!-- <img v-show="item.type == '1'" v-if="item5.qid ==item.qid"   class="select-radio" src="../../../assets/images/weixuanzhong.png" alt="">
                <img v-show="item.type == '1'" v-else  class="select-radio1" src="../../../assets/images/xuanzhong.png" alt=""> -->
            <input
              v-show="item.type == '0'"
              type="radio"
              :name="item5.qid"
              :value="item5.oid"
            /><label class="inp" v-show="item.type == '0'">{{
              item5.ooption
            }}</label>
            <input
              v-show="item.type == '1'"
              type="checkbox"
              :name="item5.qid"
              :value="item5.oid"
            /><label class="inp" v-show="item.type == '1'">{{
              item5.ooption
            }}</label>
            <el-rate
              v-show="item.type == '2'"
              v-model="myscore"
              show-text
            ></el-rate>
            <el-input
              v-show="item.type == '3'"
              v-model="inpu"
              style="width: 280px"
            />
            <!-- <el-date-picker
              v-show="item.type == '4'"
              v-model="value2"
              align="right"
              type="date"
              placeholder="选择日期"
              :picker-options="pickerOptions"
            >
            </el-date-picker> -->
            <!-- <el-input-number
              v-show="item.type == '5'"
              v-model="num"
              :min="1"
              :max="10000"
            ></el-input-number>
            <el-input-number
              v-show="item.type == '6'"
              v-model="numf"
              :precision="2"
              :step="0.0"
              :max="10000"
            ></el-input-number> -->
          </label>
        </el-form-item>
      </el-form>
      <!-- <el-button type="primary" size="mini" @click="tijiao">提交</el-button> -->
    </el-drawer>
    <el-drawer
      :visible.sync="previewDialogVisible"
      :before-close="handleClose"
@@ -269,6 +308,7 @@
  getneedDesign,
  getcanDelete,
  updateQybz,
  getQuesByMid
} from "@/api/hosp/surveyTemplate";
import { Message } from "element-ui";
export default {
@@ -292,10 +332,14 @@
      }
    };
    return {
      inpu:"",
      num: 0,
      myscore: null,
      // 遮罩层
      loading: true,
      drawer:false,
      previewKey: +new Date(),
      previewDialogVisible:false,
      previewDialogVisible: false,
      // 选中数组
      ids: [],
      // 子表选中数据
@@ -315,6 +359,7 @@
      selectionList: [],
      // 弹出层标题
      title: "",
      intList: [],
      // 是否显示弹出层
      open: false,
      DaTianYa: false,
@@ -404,6 +449,7 @@
    handleAdd() {
      this.reset();
      this.title = "添加问卷模板";
      getneedDesign().then((res) => {
        if (res.msg == "false") {
          this.DaTianYa = false;
@@ -443,7 +489,6 @@
      if (!that.selectionList) {
        that.$modal.msgSuccess("请选择需要删除的数据");
      } else {
        console.log(that.form.tjSurveyTempQuesList);
        that.selectionList.forEach((item) => {
          that.form.tjSurveyTempQuesList.forEach((item1, index) => {
            if (item.qid == item1.qid) {
@@ -454,17 +499,31 @@
      }
    },
    xiangqing(row) {
      const mid = row.mid
      const mid = row.mid;
      getSurveyTemplate(mid).then((response) => {
      if (response.data.designId == null) {
      } else {
        this.$router.push({
          query: { key:response.data.designId},
        });
        this.previewDialogVisible = true;
      }
    })
        if (response.data.designId == null) {
          this.drawer = true;
          getQuesByMid(mid)
          .then((res) => {
            res.data.sort(
              (a, b) =>
                new Date(a.createTime).getTime() -
                new Date(b.createTime).getTime()
            ); //这是升序,倒序的话翻过来
            this.intList = res.data;
          })
          .catch((err) => {
            // 通过catch捕获错误消息
            return err;
          });
        } else {
          this.$router.push({
            query: { key: response.data.designId },
          });
          this.previewDialogVisible = true;
        }
      });
    },
    handleClose() {
      this.reload();
@@ -487,22 +546,23 @@
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      const mid = row.mid || this.ids;
      getSurveyTemplate(mid).then((response) => {
        this.form = response.data;
        if (response.data.tjSurveyTempQuesList.length >= 1) {
          this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList;
        }
        if ( this.form.designId == null) {
            this.DaTianYa = false;
            this.title = "修改问卷模板";
            this.open = true;
          } else {
            this.DaTianYa = true;
            this.form.formKey = this.form.designId;
            this.form.type = 1;
            this.toProjectHandle(this.form, "editor");
          }
        if (this.form.designId == null) {
          this.DaTianYa = false;
          this.title = "修改问卷模板";
          this.open = true;
        } else {
          this.DaTianYa = true;
          this.form.formKey = this.form.designId;
          this.form.type = 1;
          this.toProjectHandle(this.form, "editor");
        }
      });
    },
    /** 提交按钮 */
@@ -517,8 +577,12 @@
            });
          } else {
            addSurveyTemplate(this.form).then((response) => {
              // this.$modal.msgSuccess("新增成功");
              this.toProjectHandle(response.data, "editor");
              if (this.DaTianYa == false) {
                this.$modal.msgSuccess("新增成功");
              } else {
                this.toProjectHandle(response.data, "editor");
              }
              this.open = false;
              this.getList();
            });
src/views/index.vue
@@ -189,7 +189,17 @@
      getPieChart().then((response) => {
        if (response.data) {
          if (response.data.tjdj.length === 0) {
          if(response.data.tjdj == 0){
            this.PieChart = []
            this.PieChart = [
              {
                "name": "体检登记人数分布",
                "count": 1,
                "value": 10
              },
            ]
          }else if (response.data.tjdj.length === 0) {
            this.PieChart = []
            this.PieChart = [
src/views/reservation/groupcheck/index.vue
New file
@@ -0,0 +1,782 @@
<template>
    <div class="app-container">
      <el-form
        :model="objs"
        :rules="rules"
        ref="form"
        size="small"
        :inline="true"
        label-width="100px"
      >
        <el-form-item label="单位名称" prop="drugManufacturerId">
          <el-select
            :remote-method="getRemoteData"
            v-model="objs.drugManufacturerId"
            remote
            filterable
            style="width: 200px"
            placeholder="请选择单位名称"
            clearable
            @clear="getCompanyList"
            @change="idFn"
          >
            <el-option
              v-for="dict in CompanyList"
              :key="dict.cnName"
              :label="dict.cnName"
              :value="dict.drugManufacturerId"
            />
          </el-select>
          <i class="el-icon-circle-plus-outline" @click="handleAdd"></i>
        </el-form-item>
        <el-form-item label="部门" prop="dwDeptName">
          <el-select
            v-model="objs.dwDeptName"
            placeholder="请选择部门"
            style="width: 200px"
            clearable
            @change="idBm"
          >
            <el-option
              v-for="dict in deptList"
              :key="dict.id"
              :label="dict.dwDeptName"
              :value="dict.id"
            />
          </el-select>
          <i class="el-icon-circle-plus-outline" @click="handleAddbumen"></i>
        </el-form-item>
        <el-form-item label="预约时间" prop="reservationTime">
          <el-date-picker
            clearable
            v-model="objs.reservationTime"
            type="date"
            format="yyyy-MM-dd"
            value-format="yyyy-MM-dd"
            style="width: 220px"
            placeholder="请选择预约日期"
            @change="selectTime"
            :picker-options="setDisabled"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item>
        <el-button
          type="primary"
          icon="el-icon-search"
          size="mini"
          @click="handleQuery"
          >搜索</el-button
        >
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
          >重置</el-button
        >
      </el-form-item>
      </el-form>
      <el-row :gutter="10" class="mb8" style="margin: 5px 20px">
        <el-col :span="1.5">
          <el-button
            type="primary"
            class="btn"
            icon="el-icon-thumb"
            :disabled="isdisabled"
            size="mini"
            @click="submitForm"
          >
            批量签到</el-button
          >
        </el-col>
        <el-col :span="1.5">
          <el-button
            type="primary"
            class="btn"
            icon="el-icon-thumb"
            :disabled="isdisabled"
            size="mini"
            @click="submitForm"
          >
            批量打印导检单</el-button
          >
        </el-col>
      </el-row>
      <div style="margin: 5px 20px; width: 94%">
        <el-table
          v-loading="loading"
          :data="userList"
          :summary-method="getSummaries"
          show-summary
          border
        >
        <el-table-column type="selection" width="55" align="center" fixed="left" />
          <el-table-column
            label="单位名称"
            align="center"
            prop="company"
            width="200"
          />
          <el-table-column label="工号" align="center" prop="jobNo" width="80" />
          <el-table-column label="姓名" align="center" prop="name" width="75" />
          <el-table-column label="性别" align="center" prop="sex" width="75">
            <template slot-scope="scope">
              <dict-tag
                :options="dict.type.sys_user_sex"
                :value="scope.row.sex"
              />
            </template>
          </el-table-column>
          <el-table-column
            label="身份证号"
            align="center"
            prop="idCard"
            width="200"
          />
          <el-table-column label="年龄" align="center" prop="age" width="75" />
          <el-table-column
            label="出生日期"
            align="center"
            prop="birthday"
            width="100"
          />
          <el-table-column label="职位" align="center" prop="position" />
          <el-table-column label="部门" align="center" prop="department" />
          <el-table-column label="部门编号" align="center" prop="departmentId" />
          <el-table-column
            label="联系电话"
            align="center"
            prop="phoe"
            width="120"
          />
          <el-table-column label="地址" align="center" prop="address" />
          <el-table-column
            label="婚姻状况"
            align="center"
            prop="marriage"
            key="marriage"
          >
            <template slot-scope="scope">
              <dict-tag
                :options="dict.type.dict_user_marry"
                :value="scope.row.marriage"
              />
            </template>
          </el-table-column>
          <el-table-column label="民族" align="center" prop="nation" key="nation">
            <template slot-scope="scope">
              <dict-tag
                :options="dict.type.dict_user_national"
                :value="scope.row.nation"
              />
            </template>
          </el-table-column>
          <el-table-column label="联系邮箱" align="center" prop="email" />
          <!-- <el-table-column label="体检类别" align="center" prop="tjCategory" /> -->
          <el-table-column label="分组" align="center" prop="groupingName" />
          <el-table-column label="项目收费" align="center" prop="ysPrice" />
        </el-table>
      </div>
      <!-- 添加或修改体检单位信息维护对话框 -->
      <div class="dia">
        <el-dialog
          :title="title"
          :visible.sync="open"
          width="1000px"
          append-to-body
        >
          <el-form
            ref="form"
            :model="form"
            :rules="rules"
            label-width="100px"
            :inline="true"
          >
            <el-form-item label="单位名称" prop="cnName">
              <el-input v-model="form.cnName" placeholder="请输入中文名称" />
            </el-form-item>
            <el-form-item label="联系人" prop="contactPerson">
              <el-input v-model="form.contactPerson" placeholder="请输入联系人" />
            </el-form-item>
            <el-form-item label="联系电话" prop="contactPhone">
              <el-input
                v-model="form.contactPhone"
                placeholder="请输入联系电话"
              />
            </el-form-item>
            <el-form-item label="税号" prop="taxNumber">
              <el-input v-model="form.taxNumber" placeholder="请输入税号" />
            </el-form-item>
            <el-form-item label="法人" prop="legalPerson">
              <el-input v-model="form.legalPerson" placeholder="请输入法人" />
            </el-form-item>
            <el-form-item label="注册地址" prop="registerAddress">
              <el-input
                v-model="form.registerAddress"
                placeholder="请输入注册地址"
              />
            </el-form-item>
            <el-form-item label="通讯地址" prop="mailingAddress">
              <el-input
                v-model="form.mailingAddress"
                placeholder="请输入通讯地址"
              />
            </el-form-item>
            <el-form-item label="开户银行" prop="bankAccount">
              <el-input v-model="form.bankAccount" placeholder="请输入开户银行" />
            </el-form-item>
            <el-form-item label="银行账户" prop="countNum">
              <el-input v-model="form.countNum" placeholder="请输入银行账户" />
            </el-form-item>
            <el-form-item label="邮箱" prop="email">
              <el-input v-model="form.email" placeholder="请输入邮箱" />
            </el-form-item>
            <el-form-item label="负责人" prop="principal">
              <el-input v-model="form.principal" placeholder="请输入负责人" />
            </el-form-item>
            <el-form-item label="网址" prop="url">
              <el-input v-model="form.url" placeholder="请输入网址" />
            </el-form-item>
            <el-form-item label="传真" prop="faxNumber">
              <el-input v-model="form.faxNumber" placeholder="请输入传真" />
            </el-form-item>
            <el-form-item label="行政区划名称" prop="areaName">
              <el-input
                v-model="form.areaName"
                placeholder="请输入行政区划名称"
              />
            </el-form-item>
            <el-form-item label="排序" prop="orderNum">
              <el-input v-model="form.orderNum" placeholder="请输入排序" />
            </el-form-item>
            <el-form-item label="有效时间" prop="validTime">
              <el-date-picker
                clearable
                v-model="form.validTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择有效时间"
              >
              </el-date-picker> </el-form-item
            ><br />
            <el-form-item label="备注" prop="remark">
              <el-input
                v-model="form.remark"
                type="textarea"
                placeholder="请输入内容"
                :rows="2"
                label-width="400px"
                style="width: 830px"
                resize="none"
              ></el-input>
            </el-form-item>
          </el-form>
          <div slot="footer" class="dialog-footer2">
            <el-button type="primary" @click="submitFormS">确 定</el-button>
            <el-button @click="cancel">取 消</el-button>
          </div>
        </el-dialog>
      </div>
      <!-- 添加或修改部门信息维护对话框 -->
      <div class="dia">
        <el-dialog
          :title="title"
          :visible.sync="open1"
          width="1000px"
          append-to-body
        >
          <el-form
            ref="form"
            :model="form"
            :rules="rules"
            label-width="100px"
            :inline="true"
          >
          <el-form-item label="单位名称" prop="drugManufacturerId">
          <el-select
            :remote-method="getRemoteData"
            v-model="objs.drugManufacturerId"
            remote
            filterable
            style="width: 200px"
            placeholder="请选择单位名称"
            clearable
            @clear="getCompanyList"
            @change="idFn1"
          >
            <el-option
              v-for="dict in CompanyList"
              :key="dict.cnName"
              :label="dict.cnName"
              :value="dict.drugManufacturerId"
            />
          </el-select>
        </el-form-item>
            <el-form-item label="部门名称" prop="dwDeptName">
              <el-input v-model="form.dwDeptName" placeholder="请输入部门名称" />
            </el-form-item>
            <el-form-item label="签约金额" prop="signingPrice">
              <el-input
                v-model="form.signingPrice"
                placeholder="请输入签约金额"
              />
            </el-form-item>
          </el-form>
          <div slot="footer" class="dialog-footer2">
            <el-button type="primary" @click="handleAddDept">确 定</el-button>
            <el-button @click="cancel">取 消</el-button>
          </div>
        </el-dialog>
      </div>
    </div>
  </template>
  <script>
  import {
    addDept,
    addComp,
    Deptlist,
    getDwAndDwDept,
    newExcelImport,
  } from "@/api/system/comp";
  import { newConfirm, getCompany, queryCompany } from "@/api/team/tuanti";
  import { getToken } from "@/utils/auth";
  export default {
    dicts: [
      "dict_user_national",
      "dict_user_marry",
      "sys_yes_no",
      "sys_user_sex",
      "reservation_pay_type",
      "sys_normal_disable",
    ],
    name: "Tijian",
    data() {
      let checkPhoneNum = (rule, value, callback) => {
        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 (!patter.test(value)) {
          return callback("");
        }
      };
      return {
        isdisabled: true,
        setDisabled: {
          // 返回禁用时间
          disabledDate(time) {
            // return time.getTime() < Date.now()// 不可选历史天、不可选当前天、可选未来天
            return time.getTime() < Date.now() - 8.64e7; // 不可选历史天、可选当前天、可选未来天
          },
        },
        CompanyList: [],
        tableData: [], // 表数据
        form: {
          company: "",
          payType: "",
          name: "",
          phoe: "",
          signingPic: "",
          discount: "",
        },
        size: "",
        creaseopen: false,
        // 套餐提交按钮
        confirm: false,
        TotalPrice: 0,
        TotalPrice1: 0,
        discount: 100,
        deptList: [],
        data: {
          dwId: "",
          dwDeptId: "",
          dwName:"",
        },
        objs: {
          drugManufacturerId: "",
          dwDeptName: "",
          reservationTime: "",
        },
        // 非单个禁用
        single: true,
        // 非多个禁用
        multiple: true,
        // 用户表格数据
        userList: null,
        // 查询参数
        queryParam: {
          pageNum: 1,
          pageSize: 10
        },
        // 表单参数
        form: {},
        // 表单校验
        rules: {
          drugManufacturerId: [
            { required: true, validator: checkPhoneNum, trigger: "change" },
          ],
          reservationTime: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          dwDeptName: [
            { required: true, validator: checkPhoneNum, trigger: "change" },
          ],
          signingPic: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          contactPerson: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          contactPhone: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          taxNumber: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          legalPerson: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          registerAddress: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          bankAccount: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          countNum: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          principal: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          faxNumber: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          mailingAddress: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          email: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
          pacName: [
            { required: true, validator: checkPhoneNum, trigger: "change" },
          ],
          payType: [
            { required: true, validator: checkPhoneNum, trigger: "change" },
          ],
          phoe: [
            {
              required: true,
              pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
              validator: checkPhoneNum,
              trigger: "blur",
            },
          ],
          proPrice: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          createTime: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          cnName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
          businessLicenseNumber: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          createTime: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          updateTime: [
            { required: true, validator: checkPhoneNum, trigger: "blur" },
          ],
          effective: [
            {
              required: true,
              validator: checkPhoneNum,
              trigger: "change",
            },
          ],
          name: [{ required: true, validator: checkPhoneNum, trigger: "change" }],
          contactPhone: [
            { required: true, validator: checkPhoneNum, trigger: "change" },
          ],
        },
        ListObj: {},
        // 遮罩层
        loading: true,
        pacStatus: "启用",
        // 非单个禁用
        single: true,
        // 非多个禁用
        multiple: true,
        // 总条数
        total: 0,
        // 弹出层标题
        title: "",
        // 是否显示弹出层
        open: false,
        open1: false,
        // 查询参数
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          cnName: null,
          enName: null,
          code: null,
        },
      };
    },
    created() {
      this.getCompanyList();
    },
    watch: {
      inputVal(newValue) {
        if (newValue) {
          this.searchData(true);
        } else {
          this.searchData(false);
        }
      },
    },
    methods: {
        handleQuery(){
        },
      // 保存部门
      handleAddDept() {
          let data = {
          dwName: this.data.dwName,
          dwId: this.data.dwId,
          dwDeptName: this.form.dwDeptName,
          signingPrice: this.form.signingPrice,
        };
        addDept(data).then((response) => {
          if (response.code == 200) {
            this.$modal.msgSuccess("新增成功");
            this.open1 = false;
          }
        });
      },
      idFn(value) {
        console.log(value);
        if (value) {
          this.data.dwId = value;
          Deptlist(value).then((response) => {
            this.deptList = response.data;
          });
        }
      },
      idFn1(value) {
        console.log(value);
        if (value) {
          this.data.dwId = value;
          this.CompanyList.forEach(item=>{
            console.log(item);
            if(item.drugManufacturerId == this.data.dwId){
              this.data.dwName = item.cnName
            }
          })
        }
      },
      idBm(value) {
        this.data.dwDeptId = value;
      },
      getSummaries(param) {
        const { columns, data } = param;
        const sums = [];
        columns.forEach((column, index) => {
          if (index === 0) {
            sums[index] = "合计";
            return;
          }
          if (index === 1) {
            sums[index] = "总计人数";
            return;
          }
          if (index === 2) {
            sums[index] = this.ListObj.count;
            return;
          }
          if (index === 7) {
            sums[index] = "男组人数";
            return;
          }
          if (index === 8) {
            sums[index] = this.ListObj.manCount;
            return;
          }
          if (index === 9) {
            sums[index] = "男组金额";
            return;
          }
          if (index === 10) {
            sums[index] = this.ListObj.manMoney;
            return;
          }
          if (index === 12) {
            sums[index] = "女组人数";
            return;
          }
          if (index === 13) {
            sums[index] = this.ListObj.woManCount;
            return;
          }
          if (index === 14) {
            sums[index] = "女组金额";
            return;
          }
          if (index === 15) {
            sums[index] = this.ListObj.woManMoney;
            return;
          }
          if (index === 16) {
            sums[index] = "合计金额";
            return;
          }
          if (index === 17) {
            sums[index] = this.ListObj.hjMoney;
            return;
          }
        });
        return sums;
      },
      // 搜索
      getRemoteData(query) {
        if (query) {
          let compName = query;
          queryCompany(compName).then((response) => {
            this.CompanyList = response.data;
            this.CompanyList.forEach((item) => {
              this.objs = item;
            });
          });
        }
      },
      // 获取单位信息集合
      getCompanyList() {
        this.loading = true;
        getCompany(this.queryParam).then((response) => {
          this.CompanyList = response.data;
          this.total = response.total;
          this.loading = false;
        });
      },
      // 取消按钮
      cancel() {
        this.open = false;
        this.open1 = false;
        this.creaseopen = false;
        this.reset();
      },
      /** 新增按钮操作 */
      handleAdd() {
        this.reset();
        this.open = true;
        this.title = "添加体检单位信息维护";
      },
      /** 部门新增按钮操作 */
      handleAddbumen() {
        this.reset();
        this.open1 = true;
        this.title = "添加部门信息维护";
      },
      /** 提交按钮 */
      submitFormS() {
        this.$refs["form"].validate((valid) => {
          if (valid) {
            addComp(this.form).then((response) => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getCompanyList();
            });
          }
        });
      },
      // 表单重置
      reset() {
        this.form = {
          company: null,
          payType: null,
          name: null,
          phoe: null,
          signingPic: null,
          pacStatus: "启用",
        };
        this.resetForm("form");
      },
      /** 重置按钮操作 */
      resetQuery() {
        this.date = [];
        this.objs.drugManufacturerId = "";
        this.objs.dwDeptName = "";
        this.objs.reservationTime = "";
        this.TotalPrice = "";
        this.tableData[0] = [];
        this.TotalPrice1 = "";
        // this.resetForm("form");
        this.form = {};
      },
      //获取时间
      selectTime(val) {
        this.objs.reservationTime = val;
      },
      /** 确认按钮 */
      submitForm() {
      }
    },
  };
  </script>
  <style>
  .el-dialog:not(.is-fullscreen) {
    margin-top: 6vh !important;
    width: 600px;
  }
  .upload-demo {
    width: 100%;
  }
  .el-icon-circle-plus-outline {
    line-height: 20px;
    font-size: 20px;
  }
  .dia {
    display: flex;
  }
  .dialog-footer2 {
    width: 960px;
    height: 36px;
    display: flex;
    justify-content: center;
  }
  .dialog-footer1 {
    width: 860px;
    height: 36px;
    display: flex;
    justify-content: center;
  }
  </style>
src/views/reservation/reservations/index.vue
@@ -1114,33 +1114,33 @@
          let cusSex = this.formIn.sex;
          deptTreeSelect(cusSex).then((response) => {
            this.newpacName = response.rows;
            this.newpacName.forEach((item3) => {
              this.tableData1.forEach((item4) => {
                item4.list.forEach((item6) => {
                  if (item6.pacName === item3.pacName) {
                    this.$refs.tb.toggleRowSelection(item3, true);
                    throw Error();
                  }
                });
              });
            });
            // this.newpacName.forEach((item3) => {
            //   this.tableData1.forEach((item4) => {
            //     item4.list.forEach((item6) => {
            //       if (item6.pacName === item3.pacName) {
            //         this.$refs.tb.toggleRowSelection(item3, true);
            //         throw Error();
            //       }
            //     });
            //   });
            // });
            this.loading = false;
          });
        } else {
          deptTreeSelect().then((response) => {
            this.newpacName = response.rows;
            this.newpacName.forEach((item3) => {
              this.tableData1.forEach((item4) => {
                item4.list.forEach((item6) => {
                  if (item6.pacName === item3.pacName) {
                    this.$nextTick(() => {
                      this.$refs.tb.toggleRowSelection(item3, true);
                    });
                    throw Error();
                  }
                });
              });
            });
            // this.newpacName.forEach((item3) => {
            //   this.tableData1.forEach((item4) => {
            //     item4.list.forEach((item6) => {
            //       if (item6.pacName === item3.pacName) {
            //         this.$nextTick(() => {
            //           this.$refs.tb.toggleRowSelection(item3, true);
            //         });
            //         throw Error();
            //       }
            //     });
            //   });
            // });
            this.loading = false;
          });
        }
@@ -1181,12 +1181,12 @@
            }
          });
        /** 查询部门下拉树结构 */
        projectGetList().then((response) => {
          this.treedataList = response.data.list;
          this.dXData = response.data.list;
          return;
        });
        // /** 查询部门下拉树结构 */
        // projectGetList().then((response) => {
        //   this.treedataList = response.data.list;
        //   this.dXData = response.data.list;
        //   return;
        // });
      } else {
        this.$message.warning("已过期请重新预约");
      }
src/views/system/Blacklist/index.vue
New file
@@ -0,0 +1,227 @@
<template>
  <div class="app-container">
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      v-show="showSearch"
      label-width="68px"
    >
      <el-form-item label="姓名" prop="harmCode">
        <el-input
          v-model="queryParams.harmCode"
          placeholder="请输入编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </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-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-refresh"
          size="mini"
          @click="handleExport"
          :disabled="single"
          v-hasPermi="['hosp:harmType:export']"
          >恢复
        </el-button>
      </el-col>
    </el-row>
    <el-table
      v-loading="loading"
      :data="harmTypeList"
      @selection-change="handleSelectionChange"
      border
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="编码" align="center" prop="cusId" />
      <el-table-column label="姓名" align="center" prop="cusName" />
      <el-table-column label="性别" align="center" prop="cusSex">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.cusSex" />
        </template>
      </el-table-column>
      <el-table-column label="电话号码" align="center" prop="cusPhone" />
      <el-table-column label="工作单位" align="center" prop="tjCompName" />
      <el-table-column label="创建人" align="center" prop="createBy" />
      <el-table-column label="创建时间" align="center" prop="createTime" />
    </el-table>
    <div class="pag">
      <div class="pag1">
        <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="getList"
        />
      </div>
    </div>
  </div>
</template>
  <script>
import { getCustomerBlack, putCustomerBlack } from "@/api/system/blacklist";
export default {
  dicts: ["sys_user_sex"],
  name: "Blacklist",
  data() {
    let checkPhoneNum = (rule, value, callback) => {
      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 (!patter.test(value)) {
        return callback("");
      }
    };
    return {
      // 遮罩层
      loading: false,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 职业病表格数据
      harmTypeList: [],
      selectionList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        harmpinyin: null,
        harmtype: null,
        sort: null,
        harminfo: null,
        externalcode: null,
        harmcode: null,
        type: null,
        protection: null,
      },
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        harmPinYin: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        harmType: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        protection: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
      },
    };
  },
  created() {
    this.getList();
  },
  methods: {
    getList() {
      getCustomerBlack().then((res) => {
        this.harmTypeList = res.data;
      });
    },
    // 表单重置
    reset() {
      this.form = {
        aid: null,
        harmpinyin: null,
        harmtype: null,
        sort: null,
        harminfo: null,
        externalcode: null,
        harmcode: null,
        type: null,
        protection: null,
      };
      this.resetForm("form");
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.selectionList = selection;
      this.ids = [];
      this.ids = selection.map((item) => item.aid);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
    },
    handleAdd() {},
    SelectionChange(selection) {},
    /** 导出按钮操作 */
    handleExport() {
      console.log(this.selectionList);
      let data = {
        days: -1,
        cusId: this.selectionList[0].cusId,
        id: this.selectionList[0].id,
      };
      putCustomerBlack(data).then((res) => {
        this.$modal.msgSuccess("已移出黑名单");
        this.getList();
      });
    },
  },
};
</script>
  <style>
.pag {
  width: 100%;
  display: flex;
  justify-content: center;
}
.pag1 {
  width: 30%;
}
</style>
src/views/system/Criticalvalue/index.vue
New file
@@ -0,0 +1,245 @@
<template>
  <div class="app-container">
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      v-show="showSearch"
      label-width="68px"
    >
      <el-form-item label="项目名称" prop="harmCode">
        <el-input
          v-model="queryParams.harmCode"
          placeholder="请输入项目名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </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-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          >新增
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          @click="handleAdd"
          >修改
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-refresh"
          size="mini"
          @click="handleDelete1"
          v-hasPermi="['hosp:harmType:export']"
          >删除
        </el-button>
      </el-col>
    </el-row>
    <el-table
      v-loading="loading"
      :data="harmTypeList"
      @selection-change="handleSelectionChange"
      border
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="项目名称" align="center" prop="" />
      <el-table-column label="最低值" align="center" prop="" />
      <el-table-column label="最高值" align="center" prop="" />
      <el-table-column label="单位" align="center" prop="" />
      <el-table-column
        label="操作"
        align="center"
        class-name="small-padding fixed-width"
        fixed="right"
        width="80px"
      >
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['catering:catering:edit']"
            title="修改"
          >
          </el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete1(scope.row)"
            v-hasPermi="['catering:catering:remove']"
            title="删除"
          >
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <div class="pag">
      <div class="pag1">
        <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="getList"
        />
      </div>
    </div>
  </div>
</template>
  <script>
import { listHarmType, delHarmType } from "@/api/hosp/harmType";
export default {
  name: "HarmType",
  data() {
    let checkPhoneNum = (rule, value, callback) => {
      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 (!patter.test(value)) {
        return callback("");
      }
    };
    return {
      // 遮罩层
      loading: false,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 职业病表格数据
      harmTypeList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        harmpinyin: null,
        harmtype: null,
        sort: null,
        harminfo: null,
        externalcode: null,
        harmcode: null,
        type: null,
        protection: null,
      },
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        harmPinYin: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        harmType: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        protection: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
      },
    };
  },
  created() {},
  methods: {
    getList() {},
    handleDelete1() {},
    // 表单重置
    reset() {
      this.form = {
        aid: null,
        harmpinyin: null,
        harmtype: null,
        sort: null,
        harminfo: null,
        externalcode: null,
        harmcode: null,
        type: null,
        protection: null,
      };
      this.resetForm("form");
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = [];
      this.ids = selection.map((item) => item.aid);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
    },
    handleAdd() {},
    SelectionChange(selection) {},
    /** 导出按钮操作 */
    handleExport() {},
  },
};
</script>
  <style>
.pag {
  width: 100%;
  display: flex;
  justify-content: center;
}
.pag1 {
  width: 30%;
}
</style>
src/views/system/biol/index.vue
@@ -42,6 +42,9 @@
        <el-button type="primary" size="mini" :disabled="multiple" @click="jiankangReport">健康检查表打印</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" size="mini" :disabled="multiple" @click="jiankangReport">批量体检报告导出</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" size="mini" :disabled="single" @click="baogaoyulan">报告预览</el-button>
      </el-col>
      <el-col :span="1.5">
src/views/system/circle/index.vue
@@ -514,10 +514,10 @@
                    </label>
                  </el-form-item>
                </el-form>
              </div>
              <el-button type="primary" size="mini" @click="tijiao"
                <el-button type="primary" size="mini" @click="tijiao"
                >提交</el-button
              >
              </div>
            </div>
            <div v-if="wenjuan == false">
              <Write :forms="formss" @fMethod="fatherSub"></Write>
@@ -572,7 +572,7 @@
  getNewDateList,
  getRecordByTjNumber,
  listFormFieldsRequest,
  listFormDataTableRequest,
  listFormDataTableRequest,getTjrWnJuanMoBan
} from "@/api/hosp/order";
import { addSurveyRecord } from "@/api/hosp/surveyRecord";
import { listEmer, getDictEmerList } from "@/api/system/emer";
@@ -972,8 +972,9 @@
    investigation(row) {
      this.gation = row;
      this.formss.tjNumber = this.gation.tjNumber;
      let mid = "22";
      printCode(mid).then((response) => {
      let tjCategory = this.gation.tjCategory;
      getTjrWnJuanMoBan(tjCategory).then((response) => {
        console.log(response)
        if (response.data) {
          this.intList = response.data;
          this.wenjuan = true;
@@ -1222,10 +1223,10 @@
}
.drawer1 {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  align-items: flex-start;
  // display: flex;
  // flex-direction: row;
  // justify-content: space-evenly;
  // align-items: flex-start;
  padding: 10px 20px;
}
.mx {
src/views/system/refund/index.vue
@@ -347,7 +347,7 @@
</script>
<style>
#sig .el-table__header-wrapper .el-checkbox {
/* #sig .el-table__header-wrapper .el-checkbox {
  display: none;
}
} */
</style>
src/views/system/tijian/index.vue
@@ -3,79 +3,152 @@
    <el-row :gutter="20">
      <el-col :span="17">
        <div class="grid-content bg-purple">
          <el-form :inline="true" ref="form" :model="form" :rules="rules" :label-position="labelPosition"
            label-width="106px" v-show="top">
          <el-form
            :inline="true"
            ref="form"
            :model="form"
            :rules="rules"
            :label-position="labelPosition"
            label-width="106px"
            v-show="top"
          >
            <el-form-item label="匿名" prop="isNow">
              <el-select v-model="isNow" placeholder="是否匿名" @change="freezing(isNow)">
                <el-option v-for="dict in dictType" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              <el-select
                v-model="isNow"
                placeholder="是否匿名"
                @change="freezing(isNow)"
              >
                <el-option
                  v-for="dict in dictType"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="姓名" prop="cusName" :rules="[
      {
        required: true, validator: (rule, value, callback) => {
          if (!form.cusName) {
            callback('')
          } else if (form.cusName) {
            callback()
          }
        }, trigger: 'blur'
      }]">
              <el-input v-model="form.cusName" placeholder="请输入姓名" :disabled="isDisabled" />
            <el-form-item
              label="姓名"
              prop="cusName"
              :rules="[
                {
                  required: true,
                  validator: (rule, value, callback) => {
                    if (!form.cusName) {
                      callback('');
                    } else if (form.cusName) {
                      callback();
                    }
                  },
                  trigger: 'blur',
                },
              ]"
            >
              <el-input
                v-model="form.cusName"
                placeholder="请输入姓名"
                :disabled="isDisabled"
              />
            </el-form-item>
            <el-form-item label="证件类型" prop="idType">
              <el-select :disabled="isDisabled" v-model="form.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
                :disabled="isDisabled"
                v-model="form.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="cusNational">
              <el-select filterable :disabled="isDisabled" v-model="form.cusNational" placeholder="请选择民族">
                <el-option v-for="dict in dict.type.dict_user_national" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              <el-select
                filterable
                :disabled="isDisabled"
                v-model="form.cusNational"
                placeholder="请选择民族"
              >
                <el-option
                  v-for="dict in dict.type.dict_user_national"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="性别" prop="cusSex" :rules="[
      {
        required: true, validator: (rule, value, callback) => {
          if (!form.cusSex && showHidden.has_sex === 'Y') {
            callback('')
          } else if (showHidden.has_sex === 'N') {
            callback()
          } else if (form.cusSex && showHidden.has_sex === 'Y') {
            callback()
          }
        }, trigger: 'blur'
      }]">
              <el-select :disabled="isDisabled" v-model="form.cusSex" placeholder="性别">
                <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                  :value="parseInt(dict.value)"></el-option>
            <el-form-item
              label="性别"
              prop="cusSex"
              :rules="[
                {
                  required: true,
                  validator: (rule, value, callback) => {
                    if (!form.cusSex && showHidden.has_sex === 'Y') {
                      callback('');
                    } else if (showHidden.has_sex === 'N') {
                      callback();
                    } else if (form.cusSex && showHidden.has_sex === 'Y') {
                      callback();
                    }
                  },
                  trigger: 'blur',
                },
              ]"
            >
              <el-select
                :disabled="isDisabled"
                v-model="form.cusSex"
                placeholder="性别"
              >
                <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="cusIdcard" :rules="[
      {
        required: true, validator: (rule, value, callback) => {
          if (!form.cusIdcard && showHidden.has_idcard === 'Y') {
            callback('')
          } else if (showHidden.has_idcard === 'N') {
            callback()
          } else if (form.cusIdcard && showHidden.has_idcard === 'Y') {
            callback()
          }
        }, trigger: 'blur'
      }]">
              <span slot="label" style="display:inline-block;border-bottom: 2px solid blue;" @click="handleQuery">
            <el-form-item
              label="证件号"
              prop="cusIdcard"
              :rules="[
                {
                  required: true,
                  validator: (rule, value, callback) => {
                    if (!form.cusIdcard && showHidden.has_idcard === 'Y') {
                      callback('');
                    } else if (showHidden.has_idcard === 'N') {
                      callback();
                    } else if (
                      form.cusIdcard &&
                      showHidden.has_idcard === 'Y'
                    ) {
                      callback();
                    }
                  },
                  trigger: 'blur',
                },
              ]"
            >
              <span
                slot="label"
                style="display: inline-block; border-bottom: 2px solid blue"
                @click="handleQuery"
              >
                证件号
              </span>
              <el-input :disabled="isDisabled" v-model="form.cusIdcard" placeholder="请输入身份证号" @input="inputChange" />
              <el-input
                :disabled="isDisabled"
                v-model="form.cusIdcard"
                placeholder="请输入身份证号"
                @input="inputChange"
              />
              <!-- <i style="
                    font-size: 1rem;
                    position: absolute;
@@ -85,53 +158,100 @@
                  " class="el-icon-search" @click="handleQuery"></i> -->
            </el-form-item>
            <el-form-item label="婚姻" prop="cusMarryStatus">
              <el-select :disabled="isDisabled" v-model="form.cusMarryStatus" placeholder="婚姻状况">
                <el-option v-for="dict in dict.type.dict_user_marry" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              <el-select
                :disabled="isDisabled"
                v-model="form.cusMarryStatus"
                placeholder="婚姻状况"
              >
                <el-option
                  v-for="dict in dict.type.dict_user_marry"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="电话" prop="cusPhone" :rules="[
      {
        required: true, validator: (rule, value, callback) => {
          if (!form.cusPhone && showHidden.is_phone === 'Y') {
            callback('')
          } else if (showHidden.is_phone === 'N') {
            callback()
          } else if (form.cusPhone && showHidden.is_phone === 'Y') {
            callback()
          }
        }, trigger: 'blur'
      }]">
              <el-input v-model="form.cusPhone" placeholder="请输入联系电话" :disabled="isDisabled" />
            <el-form-item
              label="电话"
              prop="cusPhone"
              :rules="[
                {
                  required: true,
                  validator: (rule, value, callback) => {
                    if (!form.cusPhone && showHidden.is_phone === 'Y') {
                      callback('');
                    } else if (showHidden.is_phone === 'N') {
                      callback();
                    } else if (form.cusPhone && showHidden.is_phone === 'Y') {
                      callback();
                    }
                  },
                  trigger: 'blur',
                },
              ]"
            >
              <el-input
                v-model="form.cusPhone"
                placeholder="请输入联系电话"
                :disabled="isDisabled"
              />
            </el-form-item>
            <el-form-item label="出生日期" prop="cusBrithday">
              <el-date-picker :disabled="isDisabled" clearable v-model="form.cusBrithday" type="date"
                value-format="yyyy-MM-dd" placeholder="请选择出生日期">
              <el-date-picker
                :disabled="isDisabled"
                clearable
                v-model="form.cusBrithday"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择出生日期"
              >
              </el-date-picker>
            </el-form-item>
            <el-form-item label="职业" prop="career">
              <el-select filterable :disabled="isDisabled" v-model="form.career" placeholder="请输入职业">
                <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="form.career"
                placeholder="请输入职业"
              >
                <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="cusEmail">
              <el-input v-model="form.cusEmail" placeholder="请输入邮箱" :disabled="isDisabled" />
              <el-input
                v-model="form.cusEmail"
                placeholder="请输入邮箱"
                :disabled="isDisabled"
              />
            </el-form-item>
            <el-form-item label="年龄  " prop="age">
              <el-input v-model="form.age" :disabled="isDisabled" style="width: 30%" />
              <el-select :disabled="isDisabled" v-model="form.ageUnit" style="width: 21%">
                <el-option v-for="dict in dict.type.dict_ageunit" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              <el-input
                v-model="form.age"
                :disabled="isDisabled"
                style="width: 30%"
              />
              <el-select
                :disabled="isDisabled"
                v-model="form.ageUnit"
                style="width: 21%"
              >
                <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>
@@ -139,50 +259,113 @@
              
              </el-form-item> -->
          </el-form>
          <el-form ref="form" :model="form" :rules="rules" :label-position="labelPosition" label-width="106px"
            v-show="top">
          <el-form
            ref="form"
            :model="form"
            :rules="rules"
            :label-position="labelPosition"
            label-width="106px"
            v-show="top"
          >
            <el-row :gutter="21">
              <el-col :span="19">
                <el-form-item label="户口地址" prop="addr">
                  <el-input v-model="form.addr" placeholder="请输入户口地址" :disabled="isDisabled" />
                  <el-input
                    v-model="form.addr"
                    placeholder="请输入户口地址"
                    :disabled="isDisabled"
                  />
                </el-form-item>
              </el-col>
            </el-row>
          </el-form>
          <el-form ref="form" :model="form" :rules="rules" :label-position="labelPosition" label-width="106px"
            v-show="top">
          <el-form
            ref="form"
            :model="form"
            :rules="rules"
            :label-position="labelPosition"
            label-width="106px"
            v-show="top"
          >
            <el-row :gutter="21">
              <el-col :span="19">
                <el-form-item label="现住址" prop="cusAddr">
                  <el-input v-model="form.cusAddr" placeholder="请输入现居住地址" :disabled="isDisabled" />
                  <el-input
                    v-model="form.cusAddr"
                    placeholder="请输入现居住地址"
                    :disabled="isDisabled"
                  />
                </el-form-item>
              </el-col>
            </el-row>
          </el-form>
          <el-form :inline="true" ref="form" :model="form" :rules="rules" :label-position="labelPosition"
            label-width="106px" v-show="top">
          <el-form
            :inline="true"
            ref="form"
            :model="form"
            :rules="rules"
            :label-position="labelPosition"
            label-width="106px"
            v-show="top"
          >
            <el-form-item label="介绍人" prop="cusIntroduce">
              <el-input :disabled="isDisabled" v-model="form.cusIntroduce" placeholder="请输入介绍人" />
              <el-input
                :disabled="isDisabled"
                v-model="form.cusIntroduce"
                placeholder="请输入介绍人"
              />
            </el-form-item>
            <el-form-item label="工作单位" prop="company">
              <el-input :disabled="isDisabled" v-model="form.company" placeholder="请输入工作单位" />
              <el-input
                :disabled="isDisabled"
                v-model="form.company"
                placeholder="请输入工作单位"
              />
            </el-form-item>
            <el-form-item label="文化程度" prop="wenHua">
              <el-input :disabled="isDisabled" v-model="form.wenHua" placeholder="请输入文化程度" />
              <el-input
                :disabled="isDisabled"
                v-model="form.wenHua"
                placeholder="请输入文化程度"
              />
            </el-form-item>
          </el-form>
          <el-row v-show="top">
            <el-col :span="19">
              <div style="float: right;margin-bottom: 10px;">
                <el-button v-show="lishi" type="primary" @click="cope" size="mini">一键复制</el-button>
                <el-button type="primary" @click="inputChanges" v-show="lishi" size="mini"
                  :disabled="confirm">历史体检记录</el-button>
                <el-button :disabled="isDisabled" type="primary" size="mini" @click="submitForm">登记</el-button>
                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" @queryTable="getList">重置</el-button>
              <div style="float: right; margin-bottom: 10px">
                <el-button
                  v-show="lishi"
                  type="primary"
                  @click="cope"
                  size="mini"
                  >一键复制</el-button
                >
                <el-button
                  type="primary"
                  @click="inputChanges"
                  v-show="lishi"
                  size="mini"
                  :disabled="confirm"
                  >历史体检记录</el-button
                >
                <el-button
                  :disabled="isDisabled"
                  type="primary"
                  size="mini"
                  @click="submitForm"
                  >登记</el-button
                >
                <el-button
                  icon="el-icon-refresh"
                  size="mini"
                  @click="resetQuery"
                  @queryTable="getList"
                  >重置</el-button
                >
              </div>
            </el-col>
          </el-row>
@@ -190,56 +373,131 @@
      </el-col>
      <el-col :span="7" v-show="top">
        <div class="content" v-show="showHidden.mall_hasPhoto == 'Y'">
          <div v-show="hide" style="
              border: 1px dashed #dcdfe6;
              width: 180px;
              height: 180px;
            ">
          <div
            v-show="hide"
            style="border: 1px dashed #dcdfe6; width: 180px; height: 180px"
          >
            <img v-if="imageUrl" :src="imageUrl" class="avatar" />
          </div>
          <div v-if="imgSrc" class="img_bg_camera">
            <img style="
            <img
              style="
                width: 200px;
                height: 200px;
                margin-left: -20px;
                margin-top: 90px;
                padding-top: 1px;
              " :src="imgSrc" alt="" class="tx_img" />
              "
              :src="imgSrc"
              alt=""
              class="tx_img"
            />
          </div>
          <video v-show="hides" id="videoCamera" :width="videoWidth" :height="videoHeight" autoplay
            style="margin-top: 1px"></video>
          <canvas style="display: none" id="canvasCamera" :width="videoWidth" :height="videoHeight"></canvas>
          <video
            v-show="hides"
            id="videoCamera"
            :width="videoWidth"
            :height="videoHeight"
            autoplay
            style="margin-top: 1px"
          ></video>
          <canvas
            style="display: none"
            id="canvasCamera"
            :width="videoWidth"
            :height="videoHeight"
          ></canvas>
          <div class="camera_outer" style="margin-top: 10px">
            <el-button type="primary" plain size="mini" @click="getCompetence()">打开摄像头</el-button>
            <el-button type="primary" plain size="mini" @click="setImage()">拍照</el-button><br />
            <el-button type="primary" plain size="mini" @click="getCompetence()"
              >打开摄像头</el-button
            >
            <el-button type="primary" plain size="mini" @click="setImage()"
              >拍照</el-button
            ><br />
          </div>
        </div>
      </el-col>
    </el-row>
    <el-dialog title="选择套餐" :visible.sync="taocan" width="50%" height="700px">
      <el-tabs type="border-card" style="height: 560px; margin: 0 10px; width: 100%"  @tab-click="handleClick">
    <el-dialog
      title="选择套餐"
      :visible.sync="taocan"
      width="50%"
      height="700px"
    >
      <el-tabs
        type="border-card"
        style="height: 560px; margin: 0 10px; width: 100%"
        @tab-click="handleClick"
      >
        <el-tab-pane label="套餐">
          <el-form :model="queryParam" ref="queryForm" size="small" :inline="true" v-if="showSearch"
            label-width="auto">
          <el-form
            :model="queryParam"
            ref="queryForm"
            size="small"
            :inline="true"
            v-if="showSearch"
            label-width="auto"
          >
            <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-button type="primary"  size="mini" @click="submit">确认</el-button> -->
            </el-form-item>
          </el-form>
          <div class="tab4">
            <div class="grid-content bg-purple" style="margin-left: 5px; width: 98%">
              <el-table v-loading="loading" element-loading-text="正在加载中..." element-loading-spinner="el-icon-loading"
                border :data="newpacName" @selection-change="handleSelectionChange" height="450px" ref="tb"
                style="width: 850px">
                <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" />
            <div
              class="grid-content bg-purple"
              style="margin-left: 5px; width: 98%"
            >
              <el-table
                v-loading="loading"
                element-loading-text="正在加载中..."
                element-loading-spinner="el-icon-loading"
                border
                :data="newpacName"
                @selection-change="handleSelectionChange"
                height="450px"
                ref="tb"
                style="width: 850px"
              >
                <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"
                />
                <!-- :selectable="checkSelectable" -->
                <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
                <template slot-scope="scope">
@@ -279,7 +537,7 @@
                @check-change="handleCurrentChecked">
              </el-tree> -->
            <!-- </div> -->
            <el-row  :gutter="20">
            <el-row :gutter="20">
              <el-col :span="6">
                <div
                  style="
@@ -335,14 +593,21 @@
              </el-col>
              <el-col :span="11">
                <div class="grid-content bg-purple">
                  <div style="text-align: center; margin-bottom: 10px;margin-top: 10px">
                  <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"
                    height="400"
                    :span-method="objectSpanMethod"
                  >
                    <el-table-column prop="propinName" label="检查项目">
                    </el-table-column>
@@ -376,7 +641,13 @@
                  <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
                          :data="DataList"
                          border
                          style="width: 100%"
                          height="400"
                          :span-method="objectSpanMethod"
                        >
                          <el-table-column
                            prop="proName"
                            label="项目"
@@ -400,8 +671,8 @@
        <el-button type="primary" @click="submit">确 定</el-button>
      </span>
    </el-dialog>
<!-- -->
    <el-row v-if="tcShow" >
    <!-- -->
    <el-row v-if="tcShow">
      <el-col :span="15">
        <div class="grid-content bg-purple">
          <!-- <el-table :data="fData" border height="220px" style="width: 100%; ">
@@ -446,67 +717,149 @@
           </div> -->
          <template>
            <el-form :model="form" :inline="true" label-width="75px" style="margin-left: 20px;">
            <el-form
              :model="form"
              :inline="true"
              label-width="75px"
              style="margin-left: 20px"
            >
              <el-form-item label="体检类型">
                <el-select style="width:150px" 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: 150px"
                  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="应收金额" v-model="TotalPrice1" disabled style="width: 150px"></el-input>
                <el-input
                  placeholder="应收金额"
                  v-model="TotalPrice1"
                  disabled
                  style="width: 150px"
                ></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: 150px" 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: 150px"
                  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: 150px"></el-input>
                <el-input
                  placeholder="实收金额"
                  v-model="TotalPrice"
                  style="width: 150px"
                ></el-input>
              </el-form-item>
            <br/>
              <br />
              <!-- 140828199805050012 -->
              <el-form-item label="领取方式">
                <!-- <el-input style="width: 100%;"  v-model="form.getType" placeholder="请选择领取方式" /> -->
                <el-select v-model="getType" style="width: 150px" @change="getmailType">
                  <el-option v-for="dict in dict.type.report_get_type" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  v-model="getType"
                  style="width: 150px"
                  @change="getmailType"
                >
                  <el-option
                    v-for="dict in dict.type.report_get_type"
                    :key="dict.value"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="体检类别">
                <el-select style="width: 150px" v-model="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="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-input v-model="form.category" placeholder="请输入体检类别" /> -->
              </el-form-item>
              <el-form-item style="margin-left:269px ;">
                <el-button type="primary" @click="Package" size="mini"  style="margin-right:20px ;">选择套餐</el-button>
                <el-button type="primary" @click="submitPrice" :disabled="confirm" v-if="showHidden.has_charge == 'N'"
                  size="mini">签到登记</el-button>
                <el-button type="primary" @click="submitCheckinfee" :disabled="confirm"
                  v-if="showHidden.has_charge == 'Y'" size="mini">登记收费</el-button>
              <el-form-item style="margin-left: 269px">
                <el-button
                  type="primary"
                  @click="Package"
                  size="mini"
                  style="margin-right: 20px"
                  >选择套餐</el-button
                >
                <el-button
                  type="primary"
                  @click="submitPrice"
                  :disabled="confirm"
                  v-if="showHidden.has_charge == 'N'"
                  size="mini"
                  >签到登记</el-button
                >
                <el-button
                  type="primary"
                  @click="submitCheckinfee"
                  :disabled="confirm"
                  v-if="showHidden.has_charge == 'Y'"
                  size="mini"
                  >登记收费</el-button
                >
              </el-form-item>
              <!-- </el-form> -->
              <!-- </div> -->
            </el-form>
          </template>
          <el-dialog title="邮寄" :visible.sync="malldisble" :close-on-click-modal="false">
            <el-form :model="addAddress" :rules="rules" label-width="78px" style="margin-left: 7px">
          <el-dialog
            title="邮寄"
            :visible.sync="malldisble"
            :close-on-click-modal="false"
          >
            <el-form
              :model="addAddress"
              :rules="rules"
              label-width="78px"
              style="margin-left: 7px"
            >
              <el-form-item label="姓名">
                <el-input placeholder="姓名" v-model="addAddress.getUser"></el-input>
                <el-input
                  placeholder="姓名"
                  v-model="addAddress.getUser"
                ></el-input>
              </el-form-item>
              <el-form-item label="电话">
                <el-input placeholder="电话" v-model="addAddress.phone"></el-input>
                <el-input
                  placeholder="电话"
                  v-model="addAddress.phone"
                ></el-input>
              </el-form-item>
              <el-form-item label="地址">
                <el-input placeholder="地址" v-model="addAddress.address"></el-input>
                <el-input
                  placeholder="地址"
                  v-model="addAddress.address"
                ></el-input>
              </el-form-item>
            </el-form>
            <div slot="footer" class="dialog-footer">
@@ -518,38 +871,55 @@
          <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;
              width: 916px;
              margin-left: 35px;
            ">
            "
          >
            <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">
                    {{
      item.pacName +
      ":" +
      item.parentName +
      " (应收金额:" +
      item.ordPrice +
      "元 / 实收金额:" +
      item.nowPrice +
      "元)"
    }}
                      item.pacName +
                      ":" +
                      item.parentName +
                      " (应收金额:" +
                      item.ordPrice +
                      "元 / 实收金额:" +
                      item.nowPrice +
                      "元)"
                    }}
                  </template>
                  <el-table :data="item.list" border style="width: 100%" height="270">
                  <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="proType" label="性别" width="180">
                      <template slot-scope="scope" v-if="scope.row.proType == ''">
                      <template
                        slot-scope="scope"
                        v-if="scope.row.proType == ''"
                      >
                        {{ scope.row.proType == "" ? "全部" : "" }}
                      </template>
                      <template slot-scope="scope" v-else>
                        <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.proType" />
                        <dict-tag
                          :options="dict.type.sys_user_sex"
                          :value="scope.row.proType"
                        />
                      </template>
                    </el-table-column>
                    <el-table-column prop="ordPrice" label="应收金额">
@@ -558,7 +928,10 @@
                    </el-table-column>
                    <el-table-column prop="proCheckMethod" label="是否空腹">
                      <template slot-scope="scope">
                        <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" />
                        <dict-tag
                          :options="dict.type.sys_yes_no"
                          :value="scope.row.proCheckMethod"
                        />
                      </template>
                    </el-table-column>
                  </el-table>
@@ -567,7 +940,12 @@
            </el-collapse>
            <div v-if="list2 == true">
              <el-table :data="tableData1" border style="width: 100%" height="250">
              <el-table
                :data="tableData1"
                border
                style="width: 100%"
                height="250"
              >
                <el-table-column prop="proName" label="项目" width="180">
                </el-table-column>
                <el-table-column prop="proType" label="性别" width="180">
@@ -575,7 +953,10 @@
                    {{ scope.row.proType == "" ? "全部" : "" }}
                  </template>
                  <template slot-scope="scope" v-else>
                    <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.proType" />
                    <dict-tag
                      :options="dict.type.sys_user_sex"
                      :value="scope.row.proType"
                    />
                  </template>
                </el-table-column>
                <el-table-column prop="ysPrice" label="应收金额">
@@ -584,7 +965,10 @@
                </el-table-column>
                <el-table-column prop="proCheckMethod" label="是否空腹">
                  <template slot-scope="scope">
                    <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" />
                    <dict-tag
                      :options="dict.type.sys_yes_no"
                      :value="scope.row.proCheckMethod"
                    />
                  </template>
                </el-table-column>
              </el-table>
@@ -597,11 +981,17 @@
                    <el-table-column prop="proName" label="项目" width="180">
                    </el-table-column>
                    <el-table-column prop="proType" label="性别" width="180">
                      <template slot-scope="scope" v-if="scope.row.proType == ''">
                      <template
                        slot-scope="scope"
                        v-if="scope.row.proType == ''"
                      >
                        {{ scope.row.proType == "" ? "全部" : "" }}
                      </template>
                      <template slot-scope="scope" v-else>
                        <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.proType" />
                        <dict-tag
                          :options="dict.type.sys_user_sex"
                          :value="scope.row.proType"
                        />
                      </template>
                    </el-table-column>
                    <el-table-column prop="ordPrice" label="应收金额">
@@ -610,7 +1000,10 @@
                    </el-table-column>
                    <el-table-column prop="proCheckMethod" label="是否空腹">
                      <template slot-scope="scope">
                        <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" />
                        <dict-tag
                          :options="dict.type.sys_yes_no"
                          :value="scope.row.proCheckMethod"
                        />
                      </template>
                    </el-table-column>
                  </el-table>
@@ -622,63 +1015,163 @@
      </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>
    <el-dialog title="收费" :visible.sync="charge" width="59%" height="700px">
      <div>
        <el-table id="sig" v-loading="loading" :data="feeitems" @selection-change="handleSelect" tooltip-effect="dark"
          ref="multipleTable" border>
        <el-table
          id="sig"
          v-loading="loading"
          :data="feeitems"
          @selection-change="handleSelect"
          tooltip-effect="dark"
          ref="multipleTable"
          border
        >
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column label="姓名" align="center" prop="tjName" width="100px" />
          <el-table-column
            label="姓名"
            align="center"
            prop="tjName"
            width="100px"
          />
          <el-table-column label="性别" align="center" prop="sex" width="90px">
            <template slot-scope="scope">
              <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
              <dict-tag
                :options="dict.type.sys_user_sex"
                :value="scope.row.sex"
              />
            </template>
          </el-table-column>
          <el-table-column label="身份证" align="center" prop="idCard" width="150px"
            :show-overflow-tooltip="true"></el-table-column>
          <el-table-column label="手机号" align="center" prop="tjPhone" width="120px"
            :show-overflow-tooltip="true"></el-table-column>
          <el-table-column label="体检号" align="center" prop="tjNumber" width="160px" />
          <el-table-column label="登记时间" align="center" prop="tjFlowingWater.createTime"
            :show-overflow-tooltip="true"></el-table-column>
          <el-table-column label="单位名称" align="center" prop="tjComp"></el-table-column>
          <el-table-column label="体检类型" align="center" prop="tjType" width="80px">
          <el-table-column
            label="身份证"
            align="center"
            prop="idCard"
            width="150px"
            :show-overflow-tooltip="true"
          ></el-table-column>
          <el-table-column
            label="手机号"
            align="center"
            prop="tjPhone"
            width="120px"
            :show-overflow-tooltip="true"
          ></el-table-column>
          <el-table-column
            label="体检号"
            align="center"
            prop="tjNumber"
            width="160px"
          />
          <el-table-column
            label="登记时间"
            align="center"
            prop="tjFlowingWater.createTime"
            :show-overflow-tooltip="true"
          ></el-table-column>
          <el-table-column
            label="单位名称"
            align="center"
            prop="tjComp"
          ></el-table-column>
          <el-table-column
            label="体检类型"
            align="center"
            prop="tjType"
            width="80px"
          >
            <template slot-scope="scope">
              <dict-tag :options="dict.type.dict_team" :value="scope.row.tjType" />
              <dict-tag
                :options="dict.type.dict_team"
                :value="scope.row.tjType"
              />
            </template>
          </el-table-column>
          <el-table-column label="订单流水号" align="center" prop="tjFlowingWater.waterId" width="200px" />
          <el-table-column label="收费员" align="center" prop="tjFlowingWater.updateBy" width="100px" />
          <el-table-column
            label="订单流水号"
            align="center"
            prop="tjFlowingWater.waterId"
            width="200px"
          />
          <el-table-column
            label="收费员"
            align="center"
            prop="tjFlowingWater.updateBy"
            width="100px"
          />
        </el-table>
        <el-row :gutter="10" class="mb8">
          <el-col :span="20">
            <el-form :inline="true" :model="formInline" class="demo-form-inline" style="margin: 12px 6px">
            <el-form
              :inline="true"
              :model="formInline"
              class="demo-form-inline"
              style="margin: 12px 6px"
            >
              <el-form-item label="应收金额">
                <el-input style="width: 86px" :value="formInline.price + '.00'" placeholder="金额"
                  :disabled="true"></el-input>
                <el-input
                  style="width: 86px"
                  :value="formInline.price + '.00'"
                  placeholder="金额"
                  :disabled="true"
                ></el-input>
              </el-form-item>
              <el-form-item label="优惠">
                <el-input-number style="width: 140px" v-model="discount" :precision="2" :step="0.1" :max="10" :min="1"
                  @change="numberChange" :disabled="isfalse"></el-input-number>
                <el-input-number
                  style="width: 140px"
                  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 v-model="formInline.paidIn" placeholder="实付" style="width: 94px">
                <el-input
                  v-model="formInline.paidIn"
                  placeholder="实付"
                  style="width: 94px"
                >
                </el-input>
              </el-form-item>
              <el-form-item label="付款类型" prop="payType">
                <el-select style="width: 120px" v-model="formInline.payType" placeholder="请选择付款类型">
                  <el-option v-for="dict in dict.type.dict_pay_type" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                <el-select
                  style="width: 120px"
                  v-model="formInline.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 style="margin-left: 15px" type="primary" size="mini" @click="SubmitEvent">收费</el-button>
                <el-button
                  style="margin-left: 15px"
                  type="primary"
                  size="mini"
                  @click="SubmitEvent"
                  >收费</el-button
                >
              </el-form-item>
            </el-form>
          </el-col>
@@ -693,7 +1186,11 @@
      </div>
    </el-dialog>
    <div style="position: absolute; bottom: 100px; width: 360px; display: none">
      <div id="printBill" style="width: 280px; font-size: 1px" ref="printContent">
      <div
        id="printBill"
        style="width: 280px; font-size: 1px"
        ref="printContent"
      >
        <div style="font-size: 1px">
          <div style="text-align: center">
            <h3>{{ hospName }}小票</h3>
@@ -723,7 +1220,12 @@
      </span> -->
    <!-- </el-dialog> -->
    <historyTj :cusIdCard="form.cusIdcard" ref="historyTj"></historyTj>
    <el-dialog title="提示" :visible.sync="dialogVisiblese" width="30%" :before-close="handleClose">
    <el-dialog
      title="提示"
      :visible.sync="dialogVisiblese"
      width="30%"
      :before-close="handleClose"
    >
      <span>是否复制最近一次的体检项目?</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisiblese = false">取 消</el-button>
@@ -748,7 +1250,8 @@
import {
  deptTreeSelect,
  projectGetList,
  getOrder, getProParentIdDxList,
  getOrder,
  getProParentIdDxList,
  getProSonDxList,
  getCusIdcard,
  getPackageListName,
@@ -756,7 +1259,8 @@
  getTransitionList,
  getByTeamNo,
  getLoadFile,
  getIsRequired, getconfigKey,
  getIsRequired,
  getconfigKey,
  getHistryTjOrderProByCusIdCard,
} from "@/api/system/tijian";
import Packages from "@/components/Packages";
@@ -781,7 +1285,7 @@
  components: {
    VTreeTransfer,
    historyTj,
    Packages
    Packages,
  },
  data() {
    return {
@@ -971,23 +1475,15 @@
      // 表单校验
      rules: {
        cusName: [{ required: true, message: "", trigger: "blur" }],
        cusSex: [
          { required: true, message: "", trigger: "change" },
        ],
        cusSex: [{ required: true, message: "", trigger: "change" }],
        address: [{ required: true, message: "", trigger: "blur" }],
        phone: [{ required: true, message: "", trigger: "blur" }],
        cusPhone: [
          { required: true, message: "", trigger: "change" },
        ],
        cusBrithday: [
          { required: true, message: "", trigger: "change" },
        ],
        cusPhone: [{ required: true, message: "", trigger: "change" }],
        cusBrithday: [{ required: true, message: "", trigger: "change" }],
        // cusNational: [
        //   { required: true, message: "民族不能为空", trigger: "change" },
        // ],
        cusIdcard: [
          { required: true, message: "", trigger: "change" },
        ],
        cusIdcard: [{ required: true, message: "", trigger: "change" }],
      },
    };
  },
@@ -1079,8 +1575,8 @@
            d.getFullYear() -
            birthdays.getFullYear() -
            (d.getMonth() < birthdays.getMonth() ||
              (d.getMonth() == birthdays.getMonth() &&
                d.getDate() < birthdays.getDate())
            (d.getMonth() == birthdays.getMonth() &&
              d.getDate() < birthdays.getDate())
              ? 1
              : 0);
          this.form.cusSex = sex;
@@ -1243,7 +1739,7 @@
            _this.thisVideo.play();
          };
        })
        .catch((err) => { });
        .catch((err) => {});
    },
    //  绘制图片(拍照功能)
@@ -1297,7 +1793,7 @@
        .then((_) => {
          done();
        })
        .catch((_) => { });
        .catch((_) => {});
    },
    /** 查询信息列表 */
@@ -1377,7 +1873,7 @@
              pacId: "",
              proIds: [],
            };
            getaddtTransition(data).then((response) => { });
            getaddtTransition(data).then((response) => {});
            this.$tab.refreshPage();
          });
        } else {
@@ -1468,6 +1964,7 @@
                  if (this.tableData1) {
                    this.tableData1.forEach((item) => {
                      this.TotalPrice1 += item.ysPrice;
                      console.log(this.TotalPrice1);
                      this.TotalPrice = (
                        this.TotalPrice1 *
                        (this.discount / 10)
@@ -1496,6 +1993,7 @@
                      this.TotalPrice1 = 0;
                      this.tableData1.forEach((item) => {
                        this.TotalPrice1 += item.nowPrice;
                        console.log(this.TotalPrice1);
                        this.TotalPrice = (
                          this.TotalPrice1 *
                          (this.discount / 10)
@@ -1533,8 +2031,8 @@
        //   this.$message.error("此用户不存在");
        // });
      } else {
        let configKey = "getInfoFromSqlData"
        getconfigKey(configKey).then(res => {
        let configKey = "getInfoFromSqlData";
        getconfigKey(configKey).then((res) => {
          if (res.code == 200) {
            if (res.msg == "N") {
              var websocket = null;
@@ -1600,7 +2098,8 @@
                    _this.form.cusAddr = resultObj.resultContent.certAddress;
                    _this.form.cusIdcard = resultObj.resultContent.certNumber;
                    _this.imageUrl =
                      "data:image/jpeg;base64," + resultObj.resultContent.identityPic;
                      "data:image/jpeg;base64," +
                      resultObj.resultContent.identityPic;
                    if (
                      resultObj.name == "readCert" ||
                      resultObj.name == "PushWithImg"
@@ -1638,8 +2137,7 @@
              this.$refs.aaa.title = "证件字典";
            }
          }
        })
        });
      }
    },
@@ -1652,7 +2150,6 @@
      // this.form.cusName = param1[0].pacName;
      // this.form.cusPhone = param1[0].pacRemark;
    },
    // selected(row, index) {
@@ -1728,14 +2225,14 @@
    //     let del_row = selection.shift();
    //     this.$refs.tb.toggleRowSelection(del_row, false); //设置这一行取消选中
    //   }
      // this.single = selection.length !== 1;
      // this.multiple = !selection.length;
      // this.tableData.forEach((item) => {
      //   this.fData = item.tjProjectList;
      // });
      // if (selection[0]) {
      //   this.DataList = [];
        // this.data = JSON.parse(JSON.stringify(this.dXData));
    // this.single = selection.length !== 1;
    // this.multiple = !selection.length;
    // this.tableData.forEach((item) => {
    //   this.fData = item.tjProjectList;
    // });
    // if (selection[0]) {
    //   this.DataList = [];
    // this.data = JSON.parse(JSON.stringify(this.dXData));
    //     if (selection[0].tjProjectList) {
    //       selection[0].tjProjectList.forEach((selectionitem) => {
    //         this.treedataList.forEach((item) => {
@@ -1776,7 +2273,7 @@
      this.loading = true;
      deptTreeSelect(cusSex).then((response) => {
        this.newpacName = response.rows;
        try {
          if (this.tableData1.length >= 1) {
            this.newpacName.forEach((item3) => {
@@ -1792,15 +2289,14 @@
              });
            });
          }
        } catch (error) { }
        } catch (error) {}
        this.loading = false;
      });
      // this.getData();
    },
      // 点击多选框获取选中数据
      handleSelectionChange(selection, row) {
    // 点击多选框获取选中数据
    handleSelectionChange(selection, row) {
      this.tableData = selection;
      if (selection.length > 1) {
        let del_row = selection.shift();
@@ -1847,12 +2343,12 @@
    },
    handleClick(tab, event) {
      if (tab.label == "单项") {
        this.DataList =[]
        this.getDataList();
        this.DataList = [];
        this.getDataList();
      }
    },
    getDataList() {
      this.loading = true
      this.loading = true;
      getProParentIdDxList().then((response) => {
        this.Treedata = response.data.list;
        if (this.tableData[0]) {
@@ -1977,7 +2473,7 @@
    },
    //  // 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 }
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      console.log(row, column, rowIndex, columnIndex)
      console.log(row, column, rowIndex, columnIndex);
      let fields = ["propinName"];
      let cellValue = row[column.property];
      if (cellValue && fields.includes(column.property)) {
@@ -1996,7 +2492,6 @@
        }
      }
    },
    // 项目提交
    submit() {
@@ -2070,109 +2565,113 @@
    // changeCategoryKeys(val) {
    //   this.proIds = [];
    //   this.proIds = val;
      // if (this.DataList.length != 0) {
      //   this.DataList.forEach((item) => {
      //     this.proIds.push(item.proId);
      //   });
      // } else {
      //   this.proIds = [];
      // }
    // if (this.DataList.length != 0) {
    //   this.DataList.forEach((item) => {
    //     this.proIds.push(item.proId);
    //   });
    // } else {
    //   this.proIds = [];
    // }
    // },
    submitCheckinfee() {
      let _this = this;
      let List = _this.tableData1; //单个项目信息
      if (this.responseList.cusId) {
        var userId = this.responseList.cusId;
      } else {
        var userId = _this.form.cusId;
      }
      let tjType = _this.form.tjType;
      if (this.tableData[0]) {
        var pacId = this.tableData[0].pacId;
      }
      //tjOrderList//这个是处理完的每一项套餐信息
      List.forEach((item) => {
        if (item.list) {
          item.list.forEach((item1) => {
            this.tjOrderList.push({
              proName: item1.proName,
              proPrice: item1.nowPrice,
              proId: item1.proId,
            });
          });
        } else if (item.tjProjectList) {
          item.tjProjectList.forEach((item1) => {
            this.tjOrderList.push({
              proName: item1.proName,
              proPrice: item1.priceNow,
              proId: item1.proId,
            });
          });
      if (_this.tjCategory !== "") {
        let List = _this.tableData1; //单个项目信息
        if (this.responseList.cusId) {
          var userId = this.responseList.cusId;
        } else {
          this.tjOrderList.push({
            proName: item.proName,
            proPrice: item.ysPrice,
            proId: item.proId,
          });
          var userId = _this.form.cusId;
        }
      });
      let copeWith = this.TotalPrice1;
      let paidIn = this.TotalPrice.toString();
      let discount = this.discount;
      this.tjFlowingWater = { copeWith, paidIn, discount };
        let tjType = _this.form.tjType;
        if (this.tableData[0]) {
          var pacId = this.tableData[0].pacId;
        }
      let data;
      if (pacId || this.getType == "2") {
        data = {
          photo: this.srcUrl,
          pacId,
          tjOrderList: this.tjOrderList,
          tjFlowingWater: this.tjFlowingWater,
          userId,
          tjType,
          getType: this.getType,
          addAddress: this.addAddress,
          tjCategory: this.tjCategory,
        };
      } else {
        data = {
          photo: this.srcUrl,
          tjOrderList: this.tjOrderList,
          tjFlowingWater: this.tjFlowingWater,
          userId,
          tjType,
          getType: this.getType,
          tjCategory: this.tjCategory,
        };
      }
      getOrder(data).then((res) => {
        this.$modal.msgSuccess("提交成功");
        this.tjNumbers = res.msg;
        this.charge = true;
        let data = {
          tjNum: res.msg,
        };
        getfindTj(data).then((response) => {
          if (response.data) {
            this.feeitems = response.data;
            if (this.feeitems.length != 0) {
              this.$nextTick(() => {
                this.$refs.multipleTable.toggleRowSelection(
                  this.feeitems[0],
                  true
                );
        //tjOrderList//这个是处理完的每一项套餐信息
        List.forEach((item) => {
          if (item.list) {
            item.list.forEach((item1) => {
              this.tjOrderList.push({
                proName: item1.proName,
                proPrice: item1.nowPrice,
                proId: item1.proId,
              });
            } else {
              this.$refs.multipleTable.clearSelection();
            }
            this.loading = false;
            });
          } else if (item.tjProjectList) {
            item.tjProjectList.forEach((item1) => {
              this.tjOrderList.push({
                proName: item1.proName,
                proPrice: item1.priceNow,
                proId: item1.proId,
              });
            });
          } else {
            this.feeitems = [];
            this.loading = false;
            this.tjOrderList.push({
              proName: item.proName,
              proPrice: item.ysPrice,
              proId: item.proId,
            });
          }
        });
      });
        let copeWith = this.TotalPrice1;
        let paidIn = this.TotalPrice.toString();
        let discount = this.discount;
        this.tjFlowingWater = { copeWith, paidIn, discount };
        let data;
        if (pacId || this.getType == "2") {
          data = {
            photo: this.srcUrl,
            pacId,
            tjOrderList: this.tjOrderList,
            tjFlowingWater: this.tjFlowingWater,
            userId,
            tjType,
            getType: this.getType,
            addAddress: this.addAddress,
            tjCategory: this.tjCategory,
          };
        } else {
          data = {
            photo: this.srcUrl,
            tjOrderList: this.tjOrderList,
            tjFlowingWater: this.tjFlowingWater,
            userId,
            tjType,
            getType: this.getType,
            tjCategory: this.tjCategory,
          };
        }
        getOrder(data).then((res) => {
          this.$modal.msgSuccess("提交成功");
          this.tjNumbers = res.msg;
          this.charge = true;
          let data = {
            tjNum: res.msg,
          };
          getfindTj(data).then((response) => {
            if (response.data) {
              this.feeitems = response.data;
              if (this.feeitems.length != 0) {
                this.$nextTick(() => {
                  this.$refs.multipleTable.toggleRowSelection(
                    this.feeitems[0],
                    true
                  );
                });
              } else {
                this.$refs.multipleTable.clearSelection();
              }
              this.loading = false;
            } else {
              this.feeitems = [];
              this.loading = false;
            }
          });
        });
      } else {
        this.$modal.msgError("请选择体检类别");
      }
    },
    // 表格单选
@@ -2328,7 +2827,7 @@
        const viewNum = "792931586196398080";
        const params = { viewNum, tjNumber };
        this.$tab.openPage("导诊单", "/report/breDailyReport", params);
        _this.confirm = true;
        this.confirm = true;
      });
      this.$tab.refreshPage();
    },
@@ -2336,77 +2835,80 @@
    // 最后提交按钮
    submitPrice() {
      let _this = this;
      let List = _this.tableData1; //单个项目信息
      if (this.responseList.cusId) {
        var userId = this.responseList.cusId;
      } else {
        var userId = _this.form.cusId;
      }
      let tjType = _this.form.tjType;
      if (this.tableData[0]) {
        var pacId = this.tableData[0].pacId;
      }
      //tjOrderList//这个是处理完的每一项套餐信息
      List.forEach((item) => {
        if (item.list) {
          item.list.forEach((item1) => {
            this.tjOrderList.push({
              proName: item1.proName,
              proPrice: item1.nowPrice,
              proId: item1.proId,
            });
          });
        } else if (item.tjProjectList) {
          item.tjProjectList.forEach((item1) => {
            this.tjOrderList.push({
              proName: item1.proName,
              proPrice: item1.priceNow,
              proId: item1.proId,
            });
          });
      if (_this.tjCategory !== "") {
        let List = _this.tableData1; //单个项目信息
        if (this.responseList.cusId) {
          var userId = this.responseList.cusId;
        } else {
          this.tjOrderList.push({
            proName: item.proName,
            proPrice: item.ysPrice,
            proId: item.proId,
          var userId = _this.form.cusId;
        }
        let tjType = _this.form.tjType;
        if (this.tableData[0]) {
          var pacId = this.tableData[0].pacId;
        }
        //tjOrderList//这个是处理完的每一项套餐信息
        List.forEach((item) => {
          if (item.list) {
            item.list.forEach((item1) => {
              this.tjOrderList.push({
                proName: item1.proName,
                proPrice: item1.nowPrice,
                proId: item1.proId,
              });
            });
          } else if (item.tjProjectList) {
            item.tjProjectList.forEach((item1) => {
              this.tjOrderList.push({
                proName: item1.proName,
                proPrice: item1.priceNow,
                proId: item1.proId,
              });
            });
          } else {
            this.tjOrderList.push({
              proName: item.proName,
              proPrice: item.ysPrice,
              proId: item.proId,
            });
          }
        });
        let copeWith = this.TotalPrice1;
        let paidIn = this.TotalPrice.toString();
        let discount = this.discount;
        this.tjFlowingWater = { copeWith, paidIn, discount };
        let data;
        if (pacId || this.tjOrderList.length > 0) {
          data = {
            photo: this.srcUrl,
            pacId,
            tjOrderList: this.tjOrderList,
            tjFlowingWater: this.tjFlowingWater,
            userId,
            tjType,
            tjCategory: this.tjCategory,
          };
          this.listgetOrder(data);
        } else if (pacId || this.tjOrderList.length > 0) {
          data = {
            photo: this.srcUrl,
            tjOrderList: this.tjOrderList,
            tjFlowingWater: this.tjFlowingWater,
            userId,
            tjType,
            tjCategory: this.tjCategory,
          };
          this.listgetOrder(data);
        } else {
          this.$message({
            type: "warning ",
            message: "请选择套餐!",
          });
        }
      });
      let copeWith = this.TotalPrice1;
      let paidIn = this.TotalPrice.toString();
      let discount = this.discount;
      this.tjFlowingWater = { copeWith, paidIn, discount };
      let data;
      if (pacId || this.tjOrderList.length > 0) {
        data = {
          photo: this.srcUrl,
          pacId,
          tjOrderList: this.tjOrderList,
          tjFlowingWater: this.tjFlowingWater,
          userId,
          tjType,
          tjCategory: this.tjCategory
        };
        this.listgetOrder(data)
      } else if (pacId || this.tjOrderList.length > 0) {
        data = {
          photo: this.srcUrl,
          tjOrderList: this.tjOrderList,
          tjFlowingWater: this.tjFlowingWater,
          userId,
          tjType,
          tjCategory: this.tjCategory
        };
        this.listgetOrder(data)
      } else {
        this.$message({
          type: "warning ",
          message: "请选择套餐!",
        });
      }else {
        this.$modal.msgError("请选择体检类别");
      }
    },
  },
};
@@ -2458,8 +2960,7 @@
  display: flex;
}
.tab3 {
.tab3 {
  max-height: 400px;
  overflow-y: auto;
  border: 1px solid #d9d9d9;
src/views/system/visit/index.vue
@@ -703,7 +703,7 @@
    investigation(row) {
      this.gation = row;
      this.formss.tjNumber = this.gation.tjNumber;
      let mid = "18";
      let mid = "2";
      printCode(mid).then((response) => {
        if (response.data) {
          this.intList = response.data;
@@ -965,10 +965,10 @@
}
.drawer1 {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  align-items: flex-start;
  // display: flex;
  // flex-direction: row;
  // justify-content: space-evenly;
  // align-items: flex-start;
  // margin-top: 20px;
  padding:10px 20px;
}
vue.config.js
@@ -53,9 +53,9 @@
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        //target: `https://ltpeis.xaltjdkj.cn:5501/prod-api/getInfo`,
        // target: `http://192.168.1.113:5011`,
        target: `http://192.168.1.113:5011`,
        // // target: `http://192.168.0.99:8080/ltkj-admin`,
        target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
        // target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
        // target: `http://10.168.0.9:5011`,
        changeOrigin: true,
        pathRewrite: {