hd 2 months ago
parent
commit
bd8382747a

+ 1 - 1
app/statistics/html/comprehensive-query.html

@ -129,7 +129,7 @@
                  class="particulars"
                  v-for="(item,index) in gxbTabsData"
                  @click="handleNodeClick(item)"
                  :style="{'background-color':handleNodeId==item.id?'#409eff':'',color:handleNodeId==item.id?'#fff':'','padding-left': ['77','78','79','87','81'].includes(item.id) ?'30px':''}">
                  :style="{'background-color':handleNodeId==item.id?'#409eff':'',color:handleNodeId==item.id?'#fff':'','padding-left': ['77','78','79','80','81'].includes(item.id) ?'30px':''}">
                  {{item.label}}
                </div>
              </template>

+ 3 - 3
app/statistics/js/comprehensive-query.js

@ -184,10 +184,10 @@ new Vue({
      { label: '冠心病评估情况统计表', id: '77' },
      { label: '冠心病上转情况统计表', id: '78' },
      { label: '冠心病下转情况统计表', id: '79' },
      // { label: '冠心病出院下转统计表', id: '80' },
      { label: '冠心病康复管理情况统计表', id: '87' },
      { label: '冠心病康复管理情况统计表', id: '80' },
      // { label: '冠心病康复管理情况统计表', id: '87' },
      // { label: '康复随访记录', id: '87' },
      { label: '冠心病管理全流程闭环管理', id: '81' },
      // { label: '康复随访记录', id: '85' },
      
      { label: '居民预约情况明细', id: '88' },
      { label: '就诊明细查询', id: '83' },

+ 4 - 16
component/statistics/GxbCy/index.html

@ -47,29 +47,17 @@
      </el-select>
    </div>
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
      <el-button type="primary" size="mini" @click="searchFn">查询</el-button>
      <el-button type="ff9526" size="mini" @click="exportTable" :disabled="exportLoading">导出</el-button>
      <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
    </div>
  </div>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column type="index" width="80" label="序号"></el-table-column>
    <el-table-column :label="item.label" v-for="(item,index) in tableHeader" :min-width="item.width" :key="item.prop" :render-header="renderHeader">
      <template slot-scope="scope">{{scope.row[item.prop]}}</template>
    </el-table-column>
    <el-table-column :label="item.label" v-for="(item,index) in tableHeaderChildren" :key="index" align="center"> 
  <el-table :data="tableData" style="width: 100%" row-key="code" lazy :load="load" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
    <el-table-column :label="item.label" v-for="(item,index) in tableHeader" :min-width="item.width" :key="item.prop" :prop="item.prop"></el-table-column>
    <el-table-column :label="item.label" v-for="(item,index) in tableHeaderChildren" :key="index" align="center">
      <el-table-column :label="el.label" :min-width="el.width" v-for="el in item.children" :key="el.prop">
        <template slot-scope="scope">{{scope.row[el.prop]}}</template>
      </el-table-column>
    </el-table-column>
  </el-table>
  <el-pagination
    @current-change="handleCurrentChange"
    @size-change="handleSizeChange"
    :current-page.sync="page"
    :page-size="size"
    :page-sizes="[10, 20, 50]"
    layout="total, sizes, prev, pager, next, jumper"
    :total="total"
    class="pagination"></el-pagination>
</div>

+ 67 - 68
component/statistics/GxbCy/index.js

@ -41,14 +41,10 @@ Vue.component('gxb-cy', {
      loading: false,
      exportLoading: false,
      tableData: [],
      tableHeader: [
        { label: '名称', prop: 'name', width: '100' },
        { label: '已下转次数', prop: 'totalTimes', width: '100' },
        { label: '出院下转次数', prop: 'zyTimes', width: '110' },
        { label: '已下转人数', prop: 'totalNum', width: '100' },
        { label: '出院下转人数', prop: 'zyNum', width: '110' },
        { label: '出院下转已评估', prop: 'screenNum', width: '140' },
        { label: '出院下转未评估', prop: 'unScreenNum', width: '140' }
      tableHeader: [],
      constantHeader: [
        { label: '康复管理人数', prop: 'totalNum' },
        { label: '康复计划次数', prop: 'totalTimes' }
      ],
      tableHeaderChildren: [
        {
@ -70,12 +66,12 @@ Vue.component('gxb-cy', {
          label: '随访2',
          children: [
            {
              label: '已登记人数',
              label: '已登记人次',
              prop: 'v2Num',
              width: '100'
            },
            {
              label: '已达标人数',
              label: '已达标人次',
              prop: 'vd2Num',
              width: '100'
            },
@ -105,12 +101,12 @@ Vue.component('gxb-cy', {
          label: '随访4',
          children: [
            {
              label: '已登记人数',
              label: '已登记人次',
              prop: 'v4Num',
              width: '100'
            },
            {
              label: '已达标人数',
              label: '已达标人次',
              prop: 'vd4Num',
              width: '100'
            },
@ -122,9 +118,6 @@ Vue.component('gxb-cy', {
          ]
        }
      ],
      page: 1,
      size: 10,
      total: 0,
      level: 0
    }
  },
@ -166,7 +159,7 @@ Vue.component('gxb-cy', {
        this.getTeam(selectedRole.code)
      }
      this.initTime()
      this.getList()
      this.searchFn()
    },
    initTime() {
      var vm = this
@ -190,13 +183,11 @@ Vue.component('gxb-cy', {
        delete this.form.team
      }
    },
    getList() {
    searchFn() {
      var vm = this
      this.loading = true
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size
        ...this.form
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
@ -207,25 +198,37 @@ Vue.component('gxb-cy', {
          params.endDate = this.chooseTime[1]
        }
      }
      if (this.form.range == 'town') {
        this.tableHeader = getTownHeader().concat(this.constantHeader)
      } else if (this.form.range == 'hospital') {
        this.tableHeader = getHospitalHeader().concat(this.constantHeader)
      } else {
        this.tableHeader = getTeamHeader().concat(this.constantHeader)
      }
      httpRequest.get('statistics/collaborate/gxbZyTurnDownInfo', { data: params }).then(function (res) {
      httpRequest.get('statistics/collaborate/gxbRehabilitationInfo', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.tableData = res.detailModelList
          vm.total = res.totalCount
          vm.tableData = res.detailModelList.map(function (item) {
            var data = JSON.parse(JSON.stringify(item))
            if (vm.form.range == 'town') {
              data.town = item.name
              data.hasChildren = true
            } else if (vm.form.range == 'hospital') {
              data.hospital = item.name
              data.hasChildren = true
            } else if (vm.form.range == 'team') {
              data.team = item.name
            }
            return data
          })
        }
        vm.loading = false
      })
    },
    queryDate() {
      this.page = 1
      this.getList()
    },
    exportTable() {
      var vm = this
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size
        ...this.form
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
@ -238,7 +241,7 @@ Vue.component('gxb-cy', {
      }
      this.exportLoading = true
      var fileName = `冠心病出院下转统计表${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/collaborate/exportZyTurnDownInfo', fileName, params).then(function () {
      httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbRehabilitationInfo', fileName, params).then(function () {
        vm.exportLoading = false
      })
    },
@ -274,45 +277,41 @@ Vue.component('gxb-cy', {
        vm.teamOptions = vm.teamOptions.concat(res.data)
      })
    },
    handleCurrentChange(val) {
      this.page = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.getList()
    },
    renderHeader: function (h, item) {
      var index = item.$index
      var column = item.column
      if (index == 6 || index == 7) {
        return [
          index == '6' ? '出院下转已评估' : '出院下转未评估',
          h(
            'el-tooltip',
            {
              props: {
                content: (function () {
                  return index == '6'
                    ? '统计查询时间内,出院下转的患者中,在当年已进行ASCVD风险评估的患者人数'
                    : '统计查询时间内,出院下转的患者中,在当年未进行ASCVD风险评估的患者人数'
                })(),
                placement: 'top'
              }
            },
            [
              h('span', {
                class: {
                  'el-icon-question': true
                }
              })
            ]
          )
        ]
    load(row, treeNode, resolve) {
      var params = {}
      var len = row.code.length
      if (len == 6) {
        params.range = 'hospital'
        params.area = row.code
      } else if (len == 10) {
        params.range = 'team'
        params.hospital = row.code
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        return [column.label]
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/gxbRehabilitationInfo', { data: params }).then(function (res) {
        if (res.status == 200) {
          var children = res.detailModelList.map(function (item) {
            var data = JSON.parse(JSON.stringify(item))
            if (len == 6) {
              data.hospital = item.name
              data.hasChildren = true
            } else if (len == 10) {
              data.team = item.name
            }
            return data
          })
          resolve(children)
        }
      })
    }
  },
  mounted() {

+ 107 - 2
component/statistics/GxbEvaluation/index.html

@ -54,8 +54,113 @@
  </div>
  <el-table :data="tableData" style="width: 100%" v-loading="loading" row-key="code" lazy :load="load" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
    <!-- <el-table-column type="index" min-width="60" label="序号"></el-table-column> -->
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop" :prop="item.prop">
      <!-- <template slot-scope="scope">{{scope.row[item.prop]}}</template> -->
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop">
      <template slot-scope="scope">
        <span
          @click="openDialog(scope.row, item.prop)"
          :style="{cursor: ['totalNum', 'dailyNum', 'inScreenNum', 'lRiskNum', 'mRiskNum', 'hRiskNum', 'uhRiskNum', 'ehRiskNum','messageTimes'].includes(item.prop)?'pointer':''}">
          {{scope.row[item.prop]}}
        </span>
      </template>
    </el-table-column>
  </el-table>
  <el-dialog :visible.sync="visible" :title="title" @close="closeDialog" width="1200px">
    <el-form inline size="mini">
      <el-form-item label="居民姓名:">
        <el-input v-model="query.name" placeholder="请输入居民姓名查询"></el-input>
      </el-form-item>
      <el-form-item label="签约医院:">
        <el-input v-model="query.signHospitalName" placeholder="请输入签约医院查询"></el-input>
      </el-form-item>
      <el-form-item label="签约医生:">
        <el-input v-model="query.signDoctorName" placeholder="请输入签约医生查询"></el-input>
      </el-form-item>
      <template v-if="title=='个案数据列表'">
        <el-form-item label="性别:">
          <el-select v-model="query.sex">
            <el-option label="全部" value=""></el-option>
            <el-option label="男" value="1"></el-option>
            <el-option label="女" value="2"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="手机号码:">
          <el-input v-model="query.mobile" placeholder="请输入手机号码查询"></el-input>
        </el-form-item>
        <el-form-item label="证件号码:">
          <el-input v-model="query.idcard" placeholder="请输入证件号码查询"></el-input>
        </el-form-item>
        <el-form-item label="评估等级:">
          <el-select v-model="query.screenResultCode">
            <el-option label="全部" value=""></el-option>
            <el-option label="低危" value="5"></el-option>
            <el-option label="中危" value="4"></el-option>
            <el-option label="高危" value="3"></el-option>
            <el-option label="极高危" value="2"></el-option>
            <el-option label="超高危" value="1"></el-option>
          </el-select>
        </el-form-item>
      </template>
      <template v-else>
        <el-form-item label="提醒类型:">
          <el-select v-model="remind" disabled>
            <el-option label="评估提醒" value=""></el-option>
          </el-select>
        </el-form-item>
      </template>
      <el-form-item label="数据范围:">
        <el-select v-model="query.range" disabled>
          <el-option v-for="item in rangeOptions" :value="item.value" :label="item.label"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="地区:" v-if="query.range == 'town'">
        <el-select v-model="query.area" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="社区:" v-if="query.range == 'hospital'">
        <el-select v-model="query.hospital" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="团队:" v-if="query.range == 'team'">
        <el-select v-model="query.team" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="dialogSearchFn">查询</el-button>
        <el-button type="warning" @click="dialogExportFn" :disabled="dialogExportLoading">导出</el-button>
        <span @click="dialogReset" style="color: #676a6c; cursor: pointer">清除筛选条件</span>
      </el-form-item>
    </el-form>
    <el-table :data="dialogTableData">
      <el-table-column type="index" label="序号"></el-table-column>
      <el-table-column v-for="item in dialogHeader" :label="item.label" :prop="item.prop">
        <template slot-scope="scope">
          <span @click="seePatientDetail(scope.row)">{{scope.row[item.prop]}}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" v-if="title== '个案数据列表'">
        <template slot-scope="scope">
          <el-button type="text" @click="previewMess(scope.row)">查看</el-button>
        </template>
      </el-table-column>
    </el-table>
    <div style="display: flex; justify-content: flex-end;margin-top: 10px;">
      <el-pagination
        @current-change="handleCurrentChange"
        @size-change="handleSizeChange"
        :current-page.sync="page"
        :page-size="size"
        :page-sizes="[10, 20, 50]"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"></el-pagination>
    </div>
  </el-dialog>
  <el-dialog title="消息提醒" :visible.sync="messageVisible" @close="closeMessageDialog" width="540px">
    <div v-html="messInfo"></div>
    <span slot="footer" class="dialog-footer">
      <el-button @click="messageVisible = false">取消</el-button>
    </span>
  </el-dialog>
</div>

+ 225 - 6
component/statistics/GxbEvaluation/index.js

@ -64,7 +64,20 @@ Vue.component('gxb-evaluation', {
      // page: 1,
      // size: 10,
      // total: 0,
      level: 0
      level: 0,
      visible: false,
      title: '',
      query: {},
      dataRangeOption: [],
      dialogTableData: [],
      dialogHeader: [],
      page: 1,
      size: 10,
      total: 0,
      messageVisible: false,
      messInfo: null,
      remind: '',
      dialogExportLoading: false
    }
  },
  methods: {
@ -144,14 +157,14 @@ Vue.component('gxb-evaluation', {
          params.endDate = this.chooseTime[1]
        }
      }
      if(this.form.range == 'town'){
      if (this.form.range == 'town') {
        this.tableHeader = getTownHeader().concat(this.constantHeader)
      }else if(this.form.range == 'hospital'){
      } else if (this.form.range == 'hospital') {
        this.tableHeader = getHospitalHeader().concat(this.constantHeader)
      }else{
      } else {
        this.tableHeader = getTeamHeader().concat(this.constantHeader)
      }
        // constantHeader
      // constantHeader
      httpRequest.get('statistics/collaborate/gxbScreenInfoStatistics', { data: params }).then(function (res) {
        if (res.status == 200) {
@ -255,10 +268,216 @@ Vue.component('gxb-evaluation', {
            }
            return data
          })
          
          resolve(children)
        }
      })
    },
    openDialog(row, prop) {
      var vm = this
      this.query = {}
      switch (prop) {
        case 'totalNum':
          this.title = '个案数据列表'
          break
        case 'dailyNum':
          this.query.surveyStatus = 1
          this.title = '个案数据列表'
          break
        case 'inScreenNum':
          this.query.surveyStatus = 2
          this.title = '个案数据列表'
          break
        case 'lRiskNum':
          this.query.screenResultCode = 5
          this.title = '个案数据列表'
          break
        case 'mRiskNum':
          this.query.screenResultCode = 4
          this.title = '个案数据列表'
          break
        case 'hRiskNum':
          this.query.screenResultCode = 3
          this.title = '个案数据列表'
          break
        case 'uhRiskNum':
          this.query.screenResultCode = 2
          this.title = '个案数据列表'
          break
        case 'ehRiskNum':
          this.query.screenResultCode = 1
          this.title = '个案数据列表'
          break
        case 'messageTimes':
          this.title = '评估随访消息推送明细'
          break
      }
      var len = row.code.length
      if (len == 6) {
        this.query.range = 'town'
        this.query.area = row.code
      } else if (len == 10) {
        this.query.range = 'hospital'
        this.query
        this.query.hospital = row.code
      } else {
        this.query.range = 'team'
        this.query.team = row.code
      }
      this.dataRangeOption = [{ label: row.name, value: row.code }]
      if (['totalNum', 'dailyNum', 'inScreenNum', 'lRiskNum', 'mRiskNum', 'hRiskNum', 'uhRiskNum', 'ehRiskNum'].includes(prop)) {
        this.query.sex = ''
        vm.dialogHeader = [
          { label: '姓名', prop: 'name' },
          { label: '性别', prop: 'sex' },
          { label: '年龄', prop: 'age' },
          { label: '评估结果', prop: 'screenResult' },
          { label: '评估医生', prop: 'doctorName' },
          { label: '评估时间', prop: 'czrq' },
          { label: '手机号', prop: 'mobile' },
          { label: '证件号码', prop: 'idcard' },
          { label: '签约社区', prop: 'signHospitalName' },
          { label: '签约医生', prop: 'signDoctorName' }
        ]
        this.gxbCaseDataPage()
        vm.visible = true
      }
      if (prop == 'messageTimes') {
        vm.dialogHeader = [
          { label: '姓名', prop: 'patientName' },
          { label: '性别', prop: 'sex' },
          { label: '年龄', prop: 'age' },
          { label: '证件号码', prop: 'idcard' },
          { label: '签约医院', prop: 'hospitalName' },
          { label: '签约医生', prop: 'doctorName' },
          { label: '提醒类型', prop: 'typeName' },
          { label: '消息推送时间', prop: 'createTime' },
          { label: '评估时间', prop: 'signHospitalName' },
          { label: '消息推送人', prop: 'senderName' }
        ]
        this.selectSmsInfoList()
        vm.visible = true
      }
    },
    dialogSearchFn() {
      this.page = 1
      if (this.title == '个案数据列表') {
        this.gxbCaseDataPage()
      } else {
        this.selectSmsInfoList()
      }
    },
    gxbCaseDataPage() {
      var vm = this
      var params = JSON.parse(JSON.stringify(this.query))
      params.page = this.page
      params.pageSize = this.size
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/gxbCaseDataPage', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.dialogTableData = res.detailModelList
        }
      })
    },
    handleCurrentChange(val) {
      this.page = val
      if (this.title == '个案数据列表') {
        this.gxbCaseDataPage()
      } else {
        this.selectSmsInfoList()
      }
    },
    handleSizeChange(val) {
      this.size = val
      if (this.title == '个案数据列表') {
        this.gxbCaseDataPage()
      } else {
        this.selectSmsInfoList()
      }
    },
    selectSmsInfoList() {
      var vm = this
      var params = JSON.parse(JSON.stringify(this.query))
      params.page = this.page
      params.pageSize = this.size
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/selectSmsInfoList', { data: this.query }).then(function (res) {
        if (res.status == 200) {
          vm.dialogTableData = res.detailModelList
        }
      })
    },
    dialogExportFn() {
      this.dialogExportLoading = true
      var vm = this
      var params = {
        ...this.query
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      if (this.title == '个案数据列表') {
        var fileName = `个案数据列表${new Date().getTime()}.xls`
        httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbCaseDataPage', fileName, params).then(function () {
          vm.dialogExportLoading = false
        })
      } else {
        var fileName = `评估随访消息推送明细${new Date().getTime()}.xls`
        httpRequest.downLoadFileForAjax('statistics/collaborate/exportSelectSmsInfoList', fileName, params).then(function () {
          vm.dialogExportLoading = false
        })
      }
    },
    closeDialog() {
      this.visible = false
    },
    seePatientDetail(row) {},
    dialogReset() {
      var params = {
        ...this.query
      }
      this.query = {
        sex: '',
        screenResultCode: '',
        range: params.range,
        area: params.area,
        hospital: params.hospital,
        team: params.team
      }
    },
    previewMess(row) {
      var vm = this
      httpRequest.post('doctor/screen/getSurveyMessage', { data: { surveyResultCode: row.code } }).then(function (res) {
        vm.messageVisible = true
        vm.messInfo = res.data
      })
    },
    closeMessageDialog() {
      this.messageVisible = false
    }
  },
  mounted() {

+ 114 - 15
component/statistics/GxbMz/index.html

@ -47,24 +47,123 @@
      </el-select>
    </div>
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
      <el-button type="primary" size="mini" @click="searchFn">查询</el-button>
      <el-button type="ff9526" size="mini" @click="exportTable" :disabled="exportLoading">导出</el-button>
      <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
    </div>
  </div>
  <el-table :data="tableData" style="width: 100%" v-loading="loading">
    <el-table-column type="index" width="80" label="序号"></el-table-column>
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop" :render-header="renderHeader">
      <template slot-scope="scope">{{scope.row[item.prop]}}</template>
    </el-table-column>
  <el-table :data="tableData" style="width: 100%" v-loading="loading" row-key="code" lazy :load="load" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop" :prop="item.prop"></el-table-column>
  </el-table>
  <el-pagination
    @current-change="handleCurrentChange"
    @size-change="handleSizeChange"
    :current-page.sync="page"
    :page-size="size"
    :page-sizes="[10, 20, 50]"
    layout="total, sizes, prev, pager, next, jumper"
    :total="total"
    class="pagination"></el-pagination>
  <el-dialog :visible.sync="visible" :title="title" @close="closeDialog" width="1200px">
    <el-form inline size="mini">
      <el-form-item label="居民姓名:">
        <el-input v-model="query.name" placeholder="请输入居民姓名查询"></el-input>
      </el-form-item>
      <template v-if="title=='康复下转明细列表'">
        <el-form-item label="下转医生:">
          <el-input v-model="query.hospital" placeholder="请输入预约医院查询"></el-input>
        </el-form-item>
        <el-form-item label="接收医生:">
          <el-input v-model="query.deptName" placeholder="请输入科室名称查询"></el-input>
        </el-form-item>
        <el-form-item label="下转状态:">
          <el-select v-model="query.status" placeholder="请选择">
            <el-option v-for="(option, index) in statusOptions" :label="option.value" :value="option.code"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="下转医院:">
          <el-select v-model="query.hospitalCode" placeholder="请选择" filterable>
            <el-option v-for="(option, index) in rehabilitationHospital" :label="option.value" :value="option.code"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="接收社区医院:">
          <el-select v-model="form.orgCode" placeholder="请选择" filterable>
            <el-option v-for="(item,index) in communityHospitals" :key="item.value" :value="item.value" :label="item.label"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="档案状态:">
          <el-select v-model="form.archiveStatus" placeholder="请选择">
            <el-option v-for="(item,index) in archiveList" :key="item.value" :value="item.code" :label="item.value"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="患者类型:">
          <el-select v-model="form.patientType" placeholder="请选择">
            <el-option v-for="(item,index) in inviteStatus" :key="item.value" :value="item.value" :label="item.label"></el-option>
          </el-select>
        </el-form-item>
      </template>
      <template v-else>
        <el-form-item label="签约医院:">
          <el-input v-model="query.signDoctorName" placeholder="请输入签约医生查询"></el-input>
        </el-form-item>
        <el-form-item label="手机号码:">
          <el-input v-model="query.signDoctorName" placeholder="请输入签约医生查询"></el-input>
        </el-form-item>
        <el-form-item label="性别:">
          <el-select v-model="query.sex">
            <el-option label="全部" value=""></el-option>
            <el-option label="男" value="1"></el-option>
            <el-option label="女" value="2"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否签约:">
          <el-select v-model="query.isSign">
            <el-option label="全部" value=""></el-option>
            <el-option label="是" value="1"></el-option>
            <el-option label="否" value="2"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="下转类型:">
          <el-select v-model="query.eventType">
            <el-option label="全部" value=""></el-option>
            <el-option label="门诊" value="1"></el-option>
            <el-option label="住院" value="2"></el-option>
          </el-select>
        </el-form-item>
      </template>
      <el-form-item label="数据范围:">
        <el-select v-model="query.range" disabled>
          <el-option v-for="item in rangeOptions" :value="item.value" :label="item.label"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="地区:" v-if="query.range == 'town'">
        <el-select v-model="query.area" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="社区:" v-if="query.range == 'hospital'">
        <el-select v-model="query.hospital" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="团队:" v-if="query.range == 'team'">
        <el-select v-model="query.team" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="dialogSearchFn">查询</el-button>
        <el-button type="warning" @click="dialogExportFn" :disabled="dialogExportLoading">导出</el-button>
        <span @click="dialogReset" style="color: #676a6c; cursor: pointer">清除筛选条件</span>
      </el-form-item>
    </el-form>
    <el-table :data="dialogTableData">
      <el-table-column v-for="item in dialogHeader" :label="item.label">
        <template slot-scope="scope">
          <span @click="seePatientDetail(scope.row)">{{scope.row[item.prop]}}</span>
        </template>
      </el-table-column>
    </el-table>
    <div style="display: flex; justify-content: flex-end; margin-top: 10px">
      <el-pagination
        @current-change="handleCurrentChange"
        @size-change="handleSizeChange"
        :current-page.sync="page"
        :page-size="size"
        :page-sizes="[10, 20, 50]"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"></el-pagination>
    </div>
  </el-dialog>
</div>

+ 245 - 43
component/statistics/GxbMz/index.js

@ -44,17 +44,39 @@ Vue.component('gxb-mz', {
      tableHeader: [],
      constantHeader: [
        { label: '下转次数', prop: 'totalTimes', width: '90' },
        { label: '门诊下转次数', prop: 'mzTimes', width: '90' },
        { label: '门诊下转次数', prop: 'mzTimes', width: '110' },
        { label: '出院下转次数', prop: 'zyTimes', width: '110' },
        { label: '下转人数', prop: 'totalNum', width: '110' },
        { label: '门诊下转人数', prop: 'mzNum', width: '110' },
        { label: '出院下转人数', prop: 'zyNum', width: '110' },
        { label: '门诊下转已评估', prop: 'mzScreenNum', width: '110' },
        { label: '门诊下转未评估', prop: 'unMzScreenNum', width: '110' },
        { label: '出院下转已评估', prop: 'zyScreenNum', width: '110' },
        { label: '出院下转未评估', prop: 'unZyScreenNum', width: '110' }
        { label: '门诊下转已评估', prop: 'mzScreenNum', width: '120' },
        { label: '门诊下转未评估', prop: 'unMzScreenNum', width: '120' },
        { label: '出院下转已评估', prop: 'zyScreenNum', width: '120' },
        { label: '出院下转未评估', prop: 'unZyScreenNum', width: '120' }
      ],
      level: 0
      level: 0,
      visible: false,
      query: {},
      dataRangeOption: [],
      dialogTableData: [],
      dialogHeader: [],
      page: 1,
      size: 10,
      total: 0,
      messageVisible: false,
      messInfo: null,
      remind: '',
      dialogExportLoading: false,
      statusOptions: [],
      rehabilitationHospital: [],
      archiveList: [],
      inviteStatus: [
        { value: '', label: '全部' },
        { value: '1', label: '门诊患者' },
        { value: '2', label: '出院患者' }
      ],
      communityHospitals: [],
      title: ''
    }
  },
  methods: {
@ -95,7 +117,9 @@ Vue.component('gxb-mz', {
        this.getTeam(selectedRole.code)
      }
      this.initTime()
      this.getList()
      this.searchFn()
      this.getDictData()
      this.hospitalsByType()
    },
    initTime() {
      var vm = this
@ -119,7 +143,22 @@ Vue.component('gxb-mz', {
        delete this.form.team
      }
    },
    getList() {
    getDictData() {
      var vm = this
      statisticAPI.getDictByDictName({ name: 'rehabilitation_status' }).then(function (res) {
        vm.statusOptions = [{ value: '全部', code: '' }]
        vm.statusOptions = vm.statusOptions.concat(res.list)
      })
      statisticAPI.getDictByDictName({ name: 'rehabilitation_hospital' }).then(function (res) {
        vm.rehabilitationHospital = [{ value: '全部', code: '' }]
        vm.rehabilitationHospital = vm.rehabilitationHospital.concat(res.list)
      })
      statisticAPI.getDictByDictName({ name: 'archive_status' }).then(function (res) {
        vm.archiveList = [{ value: '全部', code: '' }]
        vm.archiveList = vm.archiveList.concat(res.list)
      })
    },
    searchFn() {
      var vm = this
      this.loading = true
      var params = {
@ -134,19 +173,32 @@ Vue.component('gxb-mz', {
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/gxbMzTurnDownInfo', { data: params }).then(function (res) {
      if (this.form.range == 'town') {
        this.tableHeader = getTownHeader().concat(this.constantHeader)
      } else if (this.form.range == 'hospital') {
        this.tableHeader = getHospitalHeader().concat(this.constantHeader)
      } else {
        this.tableHeader = getTeamHeader().concat(this.constantHeader)
      }
      httpRequest.get('statistics/collaborate/gxbTurnDownInfo', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.tableData = res.detailModelList
          vm.total = res.totalCount
          vm.tableData = res.detailModelList.map(function (item) {
            var data = JSON.parse(JSON.stringify(item))
            if (vm.form.range == 'town') {
              data.town = item.name
              data.hasChildren = true
            } else if (vm.form.range == 'hospital') {
              data.hospital = item.name
              data.hasChildren = true
            } else if (vm.form.range == 'team') {
              data.team = item.name
            }
            return data
          })
        }
        vm.loading = false
      })
    },
    queryDate() {
      this.page = 1
      this.getList()
    },
    exportTable() {
      var vm = this
      var params = {
@ -163,7 +215,7 @@ Vue.component('gxb-mz', {
      }
      this.exportLoading = true
      var fileName = `冠心病门诊下转统计表${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbMzTurnDownInfo', fileName, params).then(function () {
      httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbTurnDownInfo', fileName, params).then(function () {
        vm.exportLoading = false
      })
    },
@ -206,37 +258,187 @@ Vue.component('gxb-mz', {
        vm.teamOptions = res.data
      })
    },
    renderHeader: function (h, item) {
      var index = item.$index
      var column = item.column
    load(row, treeNode, resolve) {
      var params = {}
      var len = row.code.length
      if (len == 6) {
        params.range = 'hospital'
        params.area = row.code
      } else if (len == 10) {
        params.range = 'team'
        params.hospital = row.code
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/gxbTurnDownInfo', { data: params }).then(function (res) {
        if (res.status == 200) {
          var children = res.detailModelList.map(function (item) {
            var data = JSON.parse(JSON.stringify(item))
            if (len == 6) {
              data.hospital = item.name
              data.hasChildren = true
            } else if (len == 10) {
              data.team = item.name
            }
            return data
          })
      if (index == 6 || index == 7) {
        return [
          index == '6' ? '门诊下转已评估' : '门诊下转未评估',
          h(
            'el-tooltip',
            {
              props: {
                content: (function () {
                  return index == '6'
                    ? '统计查询时间内,门诊下转的患者中,在当年有进行ASCVD风险评估的患者人数'
                    : '统计查询时间内,门诊下转的患者中,在当年未进行ASCVD风险评估的患者人数'
                })(),
                placement: 'top'
              }
            },
            [
              h('span', {
                class: {
                  'el-icon-question': true
                }
          resolve(children)
        }
      })
    },
    dialogSearchFn() {
      this.page = 1
      this.gxbTurnUpInfoPage()
    },
    dialogExportFn() {
      var vm = this
      var params = {
        ...this.query
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      this.dialogExportLoading = true
      var fileName = `冠心病下转情况统计表${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbTurnDownInfo', fileName, params).then(function () {
        vm.dialogExportLoading = false
      })
    },
    dialogReset() {
      var params = {
        ...this.query
      }
      this.query = {
        sex: '',
        range: params.range,
        area: params.area,
        hospital: params.hospital,
        team: params.team
      }
    },
    handleCurrentChange(val) {
      this.page = val
      this.gxbTurnUpInfoPage()
    },
    handleSizeChange(val) {
      this.size = val
      this.gxbTurnUpInfoPage()
    },
    // 获取社区医院
    hospitalsByType() {
      var vm = this
      // var code
      var selectedRole = JSON.parse(sessionStorage.getItem('selectedRole'))
      if (selectedRole.code.indexOf('350200') > -1) {
        code = '350200' //  市卫健委
      } else if (selectedRole.code.length == 6) {
        code = selectedRole.code
      } else {
        this.level = 3 // 社区管理
      }
      if (selectedRole.code.length > 6) {
        this.communityHospitals = [{ label: selectedRole.name, value: selectedRole.code }]
      } else {
        var type = 1
        if (selectedRole.code.indexOf('350200') > -1) {
          type = 1 //  市卫健委
        } else if (selectedRole.code.length == 6) {
          type = 2
        }
        statisticAPI
          .hospitalsByType({
            type: type,
            code: selectedRole.code
          })
          .then(function (res) {
            if (res.status == 200) {
              vm.communityHospitals = [{ label: '全部', value: '' }]
              res.list.forEach(function (v) {
                vm.communityHospitals.push({
                  value: v.code,
                  label: v.name
                })
              })
            ]
          )
            }
          })
          .catch(function (err) {
            console.log(err, 'Errr')
          })
      }
    },
    openDialog(row, prop) {
      this.query = {}
      if (['totalTimes', 'mzTimes', 'zyTimes'].includes(prop)) {
        this.visible = true
        this.title = '康复下转明细列表'
        this.dialogHeader = [
          { label: '姓名', prop: 'name' },
          { label: '性别', prop: 'sex' },
          { label: '年龄', prop: 'age' },
          { label: '手机号', prop: 'mobile' },
          { label: '下转医院', prop: 'hospitalName' },
          { label: '下转医生', prop: 'hospitalDoctor' },
          { label: '下转时间', prop: 'createTime' },
          { label: '患者类型', prop: 'patientType' },
          { label: '下转状态', prop: 'statusName' },
          { label: '接收社区医院', prop: 'orgName' },
          { label: '接收签约医生', prop: 'doctorName' },
          { label: '接收时间', prop: 'receiveTime' },
          { label: '档案状态', prop: 'archiveStatusName' }
        ]
        switch (prop) {
          case 'mzTimes':
            this.query.patientType = 1
            break
          case 'zyTimes':
            this.query.patientType = 2
            break
        }
      } else if (['totalNum', 'mzNum', 'zyNum'].includes(prop)) {
        this.visible = true
        this.title = '下转情况数据列表'
        this.dialogHeader = [
          { label: '姓名', prop: 'name' },
          { label: '性别', prop: 'sex' },
          { label: '年龄', prop: 'age' },
          { label: '手机号', prop: 'mobile' },
          { label: '是否签约', prop: 'isSign' },
          { label: '社区医院', prop: 'hospitalName' },
          { label: '下转次数', prop: 'num' },
          { label: '最近一次下转诊断', prop: 'diagnosisName' },
          { label: '最近一次下转时间', prop: 'turnDownTime' },
          { label: '最近一次下转类型', prop: 'eventType' }
        ]
      }
      var len = row.code.length
      if (len == 6) {
        this.query.range = 'town'
        this.query.area = row.code
      } else if (len == 10) {
        this.query.range = 'hospital'
        this.query.hospital = row.code
      } else {
        return [column.label]
        this.query.range = 'team'
        this.query.team = row.code
      }
      this.dataRangeOption = [{ label: row.name, value: row.code }]
    },
    closeDialog() {
      this.visible = false
    }
  },
  mounted() {

+ 73 - 2
component/statistics/GxbTurnup/index.html

@ -52,14 +52,85 @@
      <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
    </div>
  </div>
  <el-table :data="tableData" style="width: 100%" v-loading="loading"  row-key="code" lazy :load="load" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop"  :prop="item.prop">
  <el-table :data="tableData" style="width: 100%" v-loading="loading" row-key="code" lazy :load="load" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop" :prop="item.prop">
      <template slot="header" slot-scope="scope">
        {{scope.column.label}}
        <el-tooltip effect="dark" :content="item.tooltip" placement="top-start">
          <i class="el-icon-question" v-if="item.tooltip"></i>
        </el-tooltip>
      </template>
      <template slot-scope="scope">
        <span :style="{cursor: item.prop == 'turnUpTimes'?'pointer':''}" @click="openDialog(scope.row, item.prop)">{{scope.row[item.prop]}}</span>
      </template>
    </el-table-column>
  </el-table>
  <el-dialog :visible.sync="visible" title="上转预约明细列表" @close="closeDialog" width="1200px">
    <el-form inline size="mini">
      <el-form-item label="居民姓名:">
        <el-input v-model="query.name" placeholder="请输入居民姓名查询"></el-input>
      </el-form-item>
      <el-form-item label="预约医院:">
        <el-input v-model="query.hospital" placeholder="请输入预约医院查询"></el-input>
      </el-form-item>
      <el-form-item label="预约科室:">
        <el-input v-model="query.deptName" placeholder="请输入科室名称查询"></el-input>
      </el-form-item>
      <el-form-item label="性别:">
        <el-select v-model="query.sex">
          <el-option label="全部" value=""></el-option>
          <el-option label="男" value="1"></el-option>
          <el-option label="女" value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="签约医院">
        <el-input v-model="query.signHospitalName" placeholder="请输入签约医院查询"></el-input>
      </el-form-item>
      <el-form-item label="签约医生">
        <el-input v-model="query.signDoctorName" placeholder="请输入签约医生查询"></el-input>
      </el-form-item>
      <el-form-item label="数据范围:">
        <el-select v-model="query.range" disabled>
          <el-option v-for="item in rangeOptions" :value="item.value" :label="item.label"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="地区:" v-if="query.range == 'town'">
        <el-select v-model="query.area" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="社区:" v-if="query.range == 'hospital'">
        <el-select v-model="query.hospital" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="团队:" v-if="query.range == 'team'">
        <el-select v-model="query.team" disabled>
          <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="dialogSearchFn">查询</el-button>
        <el-button type="warning" @click="dialogExportFn" :disabled="dialogExportLoading">导出</el-button>
        <span @click="dialogReset" style="color: #676a6c; cursor: pointer">清除筛选条件</span>
      </el-form-item>
    </el-form>
    <el-table :data="dialogTableData">
      <el-table-column v-for="item in dialogHeader" :label="item.label">
        <template slot-scope="scope">
          <span @click="seePatientDetail(scope.row)">{{scope.row[item.prop]}}</span>
        </template>
      </el-table-column>
    </el-table>
    <div style="display: flex; justify-content: flex-end;margin-top: 10px;">
      <el-pagination
        @current-change="handleCurrentChange"
        @size-change="handleSizeChange"
        :current-page.sync="page"
        :page-size="size"
        :page-sizes="[10, 20, 50]"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"></el-pagination>
    </div>
  </el-dialog>
</div>

+ 117 - 31
component/statistics/GxbTurnup/index.js

@ -49,7 +49,19 @@ Vue.component('gxb-turnup', {
        { label: '门诊转住院', prop: 'zyTimes', width: '110', tooltip: '统计已就诊的人次中,在医院办理住院的人次' },
        { label: '门诊转住院转化率', prop: 'zyRate', width: '130' }
      ],
      level: 0
      level: 0,
      visible: false,
      query: {},
      dataRangeOption: [],
      dialogTableData: [],
      dialogHeader: [],
      page: 1,
      size: 10,
      total: 0,
      messageVisible: false,
      messInfo: null,
      remind: '',
      dialogExportLoading: false
    }
  },
  methods: {
@ -208,36 +220,6 @@ Vue.component('gxb-turnup', {
        vm.teamOptions = vm.teamOptions.concat(res.data)
      })
    },
    renderHeader: function (h, item) {
      var index = item.$index
      var column = item.column
      if (index == 3 || index == 5) {
        return [
          index == '3' ? '上转转门诊' : '门诊转住院',
          h(
            'el-tooltip',
            {
              props: {
                content: (function () {
                  return index == '3' ? '统计已上转的人次中,前往医院进行就诊的人次' : '统计已就诊的人次中,在医院办理住院的人次'
                })(),
                placement: 'top'
              }
            },
            [
              h('span', {
                class: {
                  'el-icon-question': true
                }
              })
            ]
          )
        ]
      } else {
        return [column.label]
      }
    },
    load(row, treeNode, resolve) {
      var params = {}
      var len = row.code.length
@ -273,6 +255,110 @@ Vue.component('gxb-turnup', {
          resolve(children)
        }
      })
    },
    dialogSearchFn() {
      this.page = 1
      this.gxbTurnUpInfoPage()
    },
    dialogExportFn() {
      var vm = this
      var params = {
        ...this.query
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      this.dialogExportLoading = true
      var fileName = `上转预约明细列表${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbTurnUpInfoPage', fileName, params).then(function () {
        vm.dialogExportLoading = false
      })
    },
    dialogReset() {
      var params = {
        ...this.query
      }
      this.query = {
        sex: '',
        range: params.range,
        area: params.area,
        hospital: params.hospital,
        team: params.team
      }
    },
    handleCurrentChange(val) {
      this.page = val
      this.gxbTurnUpInfoPage()
    },
    handleSizeChange(val) {
      this.size = val
      this.gxbTurnUpInfoPage()
    },
    openDialog(row, prop) {
      if (prop == 'turnUpTimes') {
        this.query = { sex: '' }
        var len = row.code.length
        if (len == 6) {
          this.query.range = 'town'
          this.query.area = row.code
        } else if (len == 10) {
          this.query.range = 'hospital'
          this.query.hospital = row.code
        } else {
          this.query.range = 'team'
          this.query.team = row.code
        }
        this.dataRangeOption = [{ label: row.name, value: row.code }]
        this.dialogHeader = [
          { label: '姓名', prop: 'name' },
          { label: '性别', prop: 'sex' },
          { label: '年龄', prop: 'age' },
          { label: '社区医院', prop: 'signHospitalName' },
          { label: '签约医生', prop: 'dName' },
          { label: '手机号', prop: 'mobile' },
          { label: '证件号码', prop: 'idcard' },
          { label: '预约医院', prop: 'orgName' },
          { label: '预约医生', prop: 'dName' },
          { label: '预约科室', prop: 'deptName' },
          { label: '预约时间', prop: 'orderTime' },
          { label: '数据来源', prop: 'sourceType' }
        ]
        this.visible = true
        this.gxbTurnUpInfoPage()
      }
    },
    gxbTurnUpInfoPage() {
      var vm = this
      var params = {
        ...this.query,
        page: this.page,
        pageSize: this.size
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01'
        params.endDate = this.chooseYear + '-12-31'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0]
          params.endDate = this.chooseTime[1]
        }
      }
      httpRequest.get('statistics/collaborate/gxbTurnUpInfoPage', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.dialogTableData = res.detailModelList
        }
      })
    },
    seePatientDetail(row) {},
    closeDialog() {
      this.visible = false
    }
  },
  mounted() {