hd 2 months ago
parent
commit
61a0889da6

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

@ -948,6 +948,7 @@
    <script src="../js/dejdsjyysfjd.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/dejdsqyysfjd.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/dejdsjyysfjdjczqk.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/tableHeader.js"></script>
    <script src="../../../component/statistics/CopdPatientRecord/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/CopdPatientRecordEdit/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/CopdServiceRecord/index.js?v=1.0.0" type="text/javascript" charset="utf-8"></script>

+ 17 - 0
app/statistics/js/tableHeader.js

@ -0,0 +1,17 @@
function getTownHeader() {
  return [
    { label: '地区', prop: 'town', width: '120' },
    { label: '社区', prop: 'hospital', width: '140' },
    { label: '团队', prop: 'team', width: '140' }
  ]
}
function getHospitalHeader() {
  return [
    { label: '社区', prop: 'hospital', width: '140' },
    { label: '团队', prop: 'team', width: '140' }
  ]
}
function getTeamHeader() {
  return [{ label: '团队', prop: 'team', width: '140' }]
}

+ 5 - 14
component/statistics/GxbEvaluation/index.html

@ -47,24 +47,15 @@
      </el-select>
    </div>
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
      <el-button type="primary" size="mini" @click="search">查询</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" 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">
      <template slot-scope="scope">{{scope.row[item.prop]}}</template>
  <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>
  </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>

+ 77 - 39
component/statistics/GxbEvaluation/index.js

@ -41,29 +41,29 @@ Vue.component('gxb-evaluation', {
      loading: false,
      exportLoading: false,
      tableData: [],
      tableHeader: [
        { label: '名称', prop: 'name', width: '110' },
      tableHeader: [],
      constantHeader: [
        { label: '评估人数', prop: 'totalNum', width: '90' },
        { label: '日常评估人数', prop: 'dailyNum', width: '110' },
        { label: '住院补筛人数', prop: 'inScreenNum', width: '110' },
        { label: '低危人数', prop: 'lRiskNum', width: '110' },
        { label: '中危人数', prop: 'mRiskNum', width: '110' },
        { label: '高危人数', prop: 'hRiskNum', width: '110' },
        { label: '极高危人数', prop: 'uhRiskNum', width: '110' },
        { label: '超高危人数', prop: 'ehRiskNum', width: '110' },
        { label: '已筛次数', prop: 'totalTimes', width: '110' },
        { label: '低危次数', prop: 'lRiskTimes', width: '110' },
        { label: '中危次数', prop: 'mRiskTimes', width: '110' },
        { label: '高危次数', prop: 'hRiskTimes', width: '110' },
        { label: '极高危次数', prop: 'uhRiskTimes', width: '110' },
        { label: '超高危次数', prop: 'ehRiskTimes', width: '110' },
        { label: '上转人次', prop: 'turnUpNum', width: '110' },
        { label: '低危人数', prop: 'lRiskNum', width: '90' },
        { label: '中危人数', prop: 'mRiskNum', width: '90' },
        { label: '高危人数', prop: 'hRiskNum', width: '90' },
        { label: '极高危人数', prop: 'uhRiskNum', width: '90' },
        { label: '超高危人数', prop: 'ehRiskNum', width: '90' },
        { label: '已筛次数', prop: 'totalTimes', width: '90' },
        { label: '低危次数', prop: 'lRiskTimes', width: '90' },
        { label: '中危次数', prop: 'mRiskTimes', width: '90' },
        { label: '高危次数', prop: 'hRiskTimes', width: '90' },
        { label: '极高危次数', prop: 'uhRiskTimes', width: '90' },
        { label: '超高危次数', prop: 'ehRiskTimes', width: '90' },
        { label: '上转人次', prop: 'turnUpNum', width: '90' },
        { label: '消息提醒人次', prop: 'messageTimes', width: '110' },
        { label: '社区随访人次', prop: 'hosFollowNum', width: '110' }
      ],
      page: 1,
      size: 10,
      total: 0,
      // page: 1,
      // size: 10,
      // total: 0,
      level: 0
    }
  },
@ -105,7 +105,7 @@ Vue.component('gxb-evaluation', {
        this.getTeam(selectedRole.code)
      }
      this.initTime()
      this.getList()
      this.search()
    },
    initTime() {
      var vm = this
@ -129,13 +129,11 @@ Vue.component('gxb-evaluation', {
        delete this.form.team
      }
    },
    getList() {
    search() {
      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'
@ -146,26 +144,38 @@ Vue.component('gxb-evaluation', {
          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)
      }
        // constantHeader
      httpRequest.get('statistics/collaborate/gxbScreenInfoStatistics', { 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'
@ -214,13 +224,41 @@ Vue.component('gxb-evaluation', {
        vm.teamOptions = vm.teamOptions.concat(res.data)
      })
    },
    handleCurrentChange(val) {
      this.page = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.getList()
    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/gxbScreenInfoStatistics', { 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() {

+ 12 - 23
component/statistics/GxbMz/index.js

@ -41,18 +41,19 @@ Vue.component('gxb-mz', {
      loading: false,
      exportLoading: false,
      tableData: [],
      tableHeader: [
        { label: '名称', prop: 'name', width: '110' },
        { label: '已下转次数', prop: 'totalTimes', width: '90' },
      tableHeader: [],
      constantHeader: [
        { label: '下转次数', prop: 'totalTimes', width: '90' },
        { label: '门诊下转次数', prop: 'mzTimes', width: '90' },
        { label: '已下转人数', prop: 'totalNum', width: '110' },
        { label: '出院下转次数', prop: 'zyTimes', width: '110' },
        { label: '下转人数', prop: 'totalNum', width: '110' },
        { label: '门诊下转人数', prop: 'mzNum', width: '110' },
        { label: '门诊下转已评估', prop: 'screenNum', width: '110' },
        { label: '门诊下转未评估', prop: 'unScreenNum', 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' }
      ],
      page: 1,
      size: 10,
      total: 0,
      level: 0
    }
  },
@ -122,9 +123,7 @@ Vue.component('gxb-mz', {
      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'
@ -151,9 +150,7 @@ Vue.component('gxb-mz', {
    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'
@ -209,14 +206,6 @@ Vue.component('gxb-mz', {
        vm.teamOptions = 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

+ 8 - 15
component/statistics/GxbTurnup/index.html

@ -47,26 +47,19 @@
      </el-select>
    </div>
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
      <el-button type="primary" size="mini" @click="search">查询</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">
        <span>{{scope.row[item.prop]}}</span>
  <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>
    </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>

+ 63 - 28
component/statistics/GxbTurnup/index.js

@ -41,17 +41,14 @@ Vue.component('gxb-turnup', {
      loading: false,
      exportLoading: false,
      tableData: [],
      tableHeader: [
        { label: '名称', prop: 'name', width: '110' },
        { label: '已上转人次', prop: 'turnUpTimes', width: '110' },
      tableHeader: [],
      constantHeader: [
        { label: '上转人次', prop: 'turnUpTimes', width: '110' },
        { label: '上转转门诊', prop: 'mzTimes', width: '110', tooltip: '统计已上转的人次中,前往医院进行就诊的人次' },
        { label: '上转转门诊转化率', prop: 'mzRate', width: '130' },
        { label: '门诊转住院', prop: 'zyTimes', width: '110', tooltip: '统计已就诊的人次中,在医院办理住院的人次' },
        { label: '门诊转住院转化率', prop: 'zyRate', width: '130' }
      ],
      page: 1,
      size: 10,
      total: 0,
      level: 0
    }
  },
@ -93,7 +90,7 @@ Vue.component('gxb-turnup', {
        this.getTeam(selectedRole.code)
      }
      this.initTime()
      this.getList()
      this.search()
    },
    initTime() {
      var vm = this
@ -117,13 +114,11 @@ Vue.component('gxb-turnup', {
        delete this.form.team
      }
    },
    getList() {
    search() {
      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'
@ -134,25 +129,37 @@ Vue.component('gxb-turnup', {
          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/gxbTurnUpInfo', { 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'
@ -201,14 +208,6 @@ Vue.component('gxb-turnup', {
        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
@ -238,6 +237,42 @@ Vue.component('gxb-turnup', {
      } else {
        return [column.label]
      }
    },
    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/gxbTurnUpInfo', { 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() {