hwy 1 هفته پیش
والد
کامیت
e9d5a13b93

+ 17 - 29
app/statistics/html/comprehensive-query.html

@ -54,16 +54,14 @@
                  node-key="id"
                  :props="defaultProps"
                  @node-click="treedataClick"
                  @check-change="treedataClick"
                ></el-tree>
                  @check-change="treedataClick"></el-tree>
              </template>
              <template v-if="tabsId == 2">
                <div
                  class="particulars"
                  v-for="(item,index) in detailInquire[0].children"
                  @click="handleNodeClick(item)"
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''"
                >
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''">
                  {{item.label}}
                </div>
                <!-- <el-tree highlight-current class="bgc-f2f3f5" :data="detailInquire" :props="defaultProps" @node-click="handleNodeClick"></el-tree> -->
@ -77,16 +75,14 @@
                  node-key="id"
                  :props="defaultProps"
                  @check-change="collectClick"
                  @check="collCheck"
                ></el-tree>
                  @check="collCheck"></el-tree>
              </template>
              <template v-if="tabsId == 4">
                <div
                  class="particulars"
                  v-for="(item,index) in treedataExpert"
                  @click="handleNodeClick(item,'zhuanke')"
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''"
                >
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''">
                  {{item.label}}
                </div>
                <!-- <el-tree class="bgc-f2f3f5" ref="collectTreeExpert"  :data="treedataExpert" show-checkbox node-key="id" :props="defaultProps"   @check-change="collectClick" @check='collCheck'>
@ -100,8 +96,7 @@
                  class="particulars"
                  v-for="(item,index) in mzfTabsData"
                  @click="handleNodeClick(item)"
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''"
                >
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''">
                  {{item.label}}
                </div>
                <!-- <el-tree highlight-current class="bgc-f2f3f5" :data="detailInquire" :props="defaultProps" @node-click="handleNodeClick"></el-tree> -->
@ -111,8 +106,7 @@
                  class="particulars"
                  v-for="(item,index) in mzfJcTabsData"
                  @click="handleNodeClick(item, 7)"
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''"
                >
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''">
                  {{item.label}}
                </div>
                <div class="copd-filter-option-list" v-if="handleNodeId == 64">
@ -126,8 +120,7 @@
                  class="particulars"
                  v-for="(item,index) in jtbcTabsData"
                  @click="handleNodeClick(item)"
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''"
                >
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''">
                  {{item.label}}
                </div>
              </template>
@ -136,8 +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','80','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>
@ -147,8 +139,7 @@
                  class="particulars"
                  v-for="(item,index) in jkjlbTabsData"
                  @click="handleNodeClick(item)"
                  :style="{'background-color':handleNodeId==item.id?'#409eff':'',color:handleNodeId==item.id?'#fff':''}"
                >
                  :style="{'background-color':handleNodeId==item.id?'#409eff':'',color:handleNodeId==item.id?'#fff':''}">
                  {{item.label}}
                </div>
              </template>
@ -174,8 +165,7 @@
                    value-format="yyyy-MM-dd"
                    style="width: 140px"
                    :clearable="false"
                    :picker-options="pickerOptions"
                  ></el-date-picker>
                    :picker-options="pickerOptions"></el-date-picker>
                  <span class="c-999">-</span>
                  <el-date-picker
                    v-model="end"
@ -185,8 +175,7 @@
                    value-format="yyyy-MM-dd"
                    style="width: 140px"
                    :clearable="false"
                    :picker-options="pickerOptions"
                  ></el-date-picker>
                    :picker-options="pickerOptions"></el-date-picker>
                </div>
              </template>
              <template v-if="tabsId==2">
@ -646,8 +635,7 @@
                    style="width: 100%"
                    v-loading="loadingTwo"
                    class="mt20"
                    v-if="handleNodeId==34 || handleNodeId==35 || handleNodeId==36 || handleNodeId==37 || handleNodeId==38"
                  >
                    v-if="handleNodeId==34 || handleNodeId==35 || handleNodeId==36 || handleNodeId==37 || handleNodeId==38">
                    <el-table-column fixed type="index" label="序号" width="50" min-width="50" align="center"></el-table-column>
                    <el-table-column prop="hospitalName" label="社区名称" align="center"></el-table-column>
@ -841,6 +829,7 @@
                  <activity-register-detail v-if="handleNodeId == 96"></activity-register-detail>
                  <resident-score-detail v-if="handleNodeId == 97"></resident-score-detail>
                  <outside-hospital-manage v-if="handleNodeId == 99"></outside-hospital-manage>
                  <chest-pain-manage v-if="handleNodeId == 100"></chest-pain-manage>
                </div>
                <div v-if="handleNodeShow == 3">
                  <el-table v-if="collectCode == 1" border :data="diseaseReport" style="width: 100%" v-loading="loadingTwo" class="mt20">
@ -850,8 +839,7 @@
                      :prop="item"
                      :label="index==0?diseaseHeader[index]:''"
                      :render-header="index==0?'': renderTableHeader"
                      align="center"
                    ></el-table-column>
                      align="center"></el-table-column>
                  </el-table>
                  <el-table v-if="collectCode == 2" border :data="getDeviceReport" style="width: 100%" v-loading="loadingTwo" class="mt20">
                    <el-table-column v-if="getDeviceReport.length!=0" type="index" label="序号" align="center"></el-table-column>
@ -903,8 +891,7 @@
                      :current-page.sync="currentPage"
                      :page-size="currentSize"
                      layout="total, prev, pager, next, jumper"
                      :total="datatotal"
                    ></el-pagination>
                      :total="datatotal"></el-pagination>
                  </div>
                </template>
              </div>
@ -916,7 +903,7 @@
      <vuedals></vuedals>
      <person-info v-if="componentId.indexOf(handleNodeId)>-1" ref="personInfo"></person-info>
    </div>
    
    <script src="../../../js/FileSaver/FileSaver.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
@ -992,5 +979,6 @@
    <script src="../../../component/statistics/ResidentScoreDetail/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/MoneyRewardDetail/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/OutsideHospitalManage/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/ChestPainManage/index.js" type="text/javascript" charset="utf-8"></script>
  </body>
</html>

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

@ -196,7 +196,8 @@ new Vue({
      { label: '康复下转明细', id: '87' },
      { label: '签约情况统计', id: '82' },
      { label: '消息推送明细', id: '89' },
      { label: '异地医院管理情况统计', id: '99' }
      { label: '异地医院管理情况统计', id: '99' },
      { label: '纳龙胸痛中心上转明细', id: '100' }
    ],
    jkjlbTabsTree: [
      {
@ -362,7 +363,7 @@ new Vue({
      // {id:'5',text:'慢阻肺综合查询',show:false},
      { id: '10', text: '健康俱乐部', show: false },
      { id: '6', text: '慢阻肺统计', show: false },
      { id: '7', text: '疾控慢阻肺监测', show: false },
      // { id: '7', text: '疾控慢阻肺监测', show: false },
      { id: '8', text: '家庭病床统计', show: false },
      { id: '9', text: '冠心病统计', show: false }
    ],
@ -698,7 +699,7 @@ new Vue({
    this.s = this.startTime.format('yyyy-MM-dd')
    this.e = this.endTime.format('yyyy-MM-dd')
    this.list.unshift({ type: '0', id: 'time', label: this.s + '~' + this.e })
    for (var i = 46; i <= 99; i++) {
    for (var i = 46; i <= 100; i++) {
      this.componentId.push(i + '')
    }
    EventBus.$on('toPage', function (data) {

+ 105 - 0
component/statistics/ChestPainManage/index.html

@ -0,0 +1,105 @@
<!-- css文件位置位于/component/common/jtbc.css -->
<div id="app" class="jtbc">
  <div class="copd-filter-group ui-col-1 bgc-fff" style="min-width: 900px">
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">
        <el-radio v-model="yearType" label="1">按上转年份:</el-radio>
        <el-select v-model="chooseYear" class="formWidth wd160">
          <el-option v-for="(item , index) in years" :key="index" :label="item" :value="item"></el-option>
        </el-select>
      </label>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14" style="display: flex; align-items: center">
        <el-radio v-model="yearType" label="2">自定义时间:</el-radio>
        <el-date-picker
          v-model="chooseTime"
          type="daterange"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd"></el-date-picker>
      </label>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">居民姓名:</label>
      <el-input v-model="form.name" placeholder="请输入居民姓名查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">手机号码:</label>
      <el-input v-model="form.mobile" placeholder="请输入居民手机号码查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">证件号码:</label>
      <el-input v-model="form.idcard" placeholder="请输入居民证件号码查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">性别:</label>
      <el-select v-model="form.sex" clearable>
        <el-option label="男" value="1"></el-option>
        <el-option label="女" value="2"></el-option>
        <el-option label="未知" value="0"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">操作上转医生机构:</label>
      <el-input v-model="form.organizationName" placeholder="请输入操作上转医生机构"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">上转的单位:</label>
      <el-input v-model="form.transportOrgName" placeholder="请输入上转的单位查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">上转住院:</label>
      <el-input v-model="form.tolp" placeholder="请输入居民上转住院查询"></el-input>
    </div>
    <!-- <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">数据范围:</label>
      <el-select class="formWidth" v-model="form.range" placeholder="请选择" @change="resetArea">
        <el-option v-for="(option, index) in rangeOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">地区:</label>
      <el-select class="formWidth" v-model="form.area" placeholder="请选择" @change="getHospital">
        <el-option v-for="(option, index) in areaOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20" v-if="form.range == 'hospital'||form.range == 'team'">
      <label class="c-333 c-f14">社区:</label>
      <el-select class="formWidth" v-model="form.hospital" placeholder="请选择" @change="getTeam">
        <el-option v-for="(option, index) in hospitalOptions" :label="option.name" :value="option.code" :key="option.code"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20" v-if="form.range == 'team'">
      <label class="c-333 c-f14">团队:</label>
      <el-select class="formWidth" v-model="form.team" placeholder="请选择">
        <el-option v-for="(option, index) in teamOptions" :label="option.name" :value="option.id" :key="option.id"></el-option>
      </el-select>
    </div> -->
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="queryDate">查询</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">
        <span @click="seePatientDetail(scope.row, item.prop)" :class="`${['patientName'].includes(item.prop)?'pointer c-409eff':''}`">{{scope.row[item.prop]}}</span>
      </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>

+ 255 - 0
component/statistics/ChestPainManage/index.js

@ -0,0 +1,255 @@
var template = ''
$.ajax('../../../component/statistics/ChestPainManage/index.html', {
  data: {},
  dataType: 'html',
  cache: false,
  timeout: 60000,
  async: false,
  error: function (res) {},
  success: function (res) {
    template = res
  }
})
Vue.component('chest-pain-manage', {
  template: template,
  props: [],
  data: function () {
    return {
      years: [],
      yearType: '1',
      chooseYear: null,
      chooseTime: null,
      rangeOptions: [
        { label: '区', value: 'town' },
        { label: '社区', value: 'hospital' },
        { label: '团队', value: 'team' }
      ],
      areaOptions: [
        { label: '思明区', value: '350203' },
        { label: '海沧区', value: '350205' },
        { label: '湖里区', value: '350206' },
        { label: '集美区', value: '350211' },
        { label: '同安区', value: '350212' },
        { label: '翔安区', value: '350213' }
      ],
      hospitalOptions: [],
      teamOptions: [],
      form: {},
      loading: false,
      exportLoading: false,
      tableData: [],
      tableHeader: [
        { label: '姓名', prop: 'patientName', width: '100' },
        { label: '性别', prop: 'sexName', width: '90' },
        { label: '年龄', prop: 'age', width: '90' },
        { label: '手机号', prop: 'mobile', width: '110' },
        { label: '证件号码', prop: 'idcard', width: '110' },
        { label: '操作上转医生机构', prop: 'organizationName', width: '130' },
        { label: '上转的单位', prop: 'transportOrgName', width: '100' },
        { label: '上转住院', prop: 'toIp', width: '130' },
        { label: '上转住院时间', prop: 'inHospitalDate', width: '150' }
      ],
      page: 1,
      size: 10,
      total: 0,
      level: 0
    }
  },
  methods: {
    seePatientDetail(row, prop) {
      if (prop == 'patientName') {
        EventBus.$emit('preview-person-info', { type: '2', code: row.patient })
      }
    },
    init() {
      // var selectedRole = JSON.parse(sessionStorage.getItem('selectedRole'))
      // if (selectedRole.code.indexOf('350200') > -1) {
      //   this.level = 1 //  市卫健委
      //   this.areaOptions = [
      //     { label: '思明区', value: '350203' },
      //     { label: '海沧区', value: '350205' },
      //     { label: '湖里区', value: '350206' },
      //     { label: '集美区', value: '350211' },
      //     { label: '同安区', value: '350212' },
      //     { label: '翔安区', value: '350213' }
      //   ]
      // } else if (selectedRole.code.length == 6) {
      //   this.level = 2 // 区管理
      //   this.areaOptions = [{ label: selectedRole.name.substring(0, 3), value: selectedRole.code }]
      //   this.form = {
      //     range: 'town',
      //     area: selectedRole.code
      //   }
      //   this.getHospital(selectedRole.code)
      // } else {
      //   this.level = 3 // 社区管理
      //   this.rangeOptions = [
      //     { label: '社区', value: 'hospital' },
      //     { label: '团队', value: 'team' }
      //   ]
      //   this.areaOptions = [{ label: selectedRole.name.substring(0, 3), value: selectedRole.code.substring(0, 6) }]
      //   this.hospitalOptions = [{ name: selectedRole.name, code: selectedRole.code }]
      //   this.form = {
      //     range: 'hospital',
      //     area: selectedRole.code.substring(0, 6),
      //     hospital: selectedRole.code
      //   }
      //   this.getTeam(selectedRole.code)
      // }
      this.initTime()
      this.getList()
    },
    initTime() {
      var vm = this
      var now = new Date()
      vm.nowyear = vm.chooseYear = now.getFullYear()
      vm.years = []
      for (i = vm.nowyear; i >= 2013; i--) {
        vm.years.push(i)
      }
    },
    resetArea() {
      if (this.level == 1) {
        delete this.form.area
        delete this.form.hospital
        delete this.form.team
      } else if (this.level == 2) {
        delete this.form.hospital
        delete this.form.team
      } else {
        delete this.form.team
      }
    },
    getList() {
      var vm = this
      this.loading = true
      var params = {
        ...this.form,
        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/nalongDataDetail', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.tableData = res.detailModelList
          vm.total = res.totalCount
        }
        vm.loading = false
      })
    },
    queryDate() {
      this.page = 1
      this.getList()
    },
    exportTable() {
      var vm = this
      var params = {
        ...this.form,
        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]
        }
      }
      this.exportLoading = true
      var fileName = `纳龙胸痛中心上转明细${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/collaborate/exportNalongDataDetail', fileName, params).then(function () {
        vm.exportLoading = false
      })
    },
    eliminateClick() {
      var selectedRole = JSON.parse(sessionStorage.getItem('selectedRole'))
      if (this.level == 1) {
        this.form = {
          range: 'town'
        }
      } else if (this.level == 2) {
        this.form = {
          range: 'town',
          area: selectedRole.code
        }
        this.getHospital(selectedRole.code)
      } else {
        this.form = {
          range: 'hospital',
          area: selectedRole.code.substring(0, 6),
          hospital: selectedRole.code
        }
        this.getTeam(selectedRole.code)
      }
      this.yearType = '1'
      this.chooseYear = new Date().getFullYear()
      this.chooseTime = null
      this.$forceUpdate()
    },
    getHospital(code) {
      var vm = this
      delete this.form.hospital
      delete this.form.team
      var params = {
        type: 5,
        code: code
      }
      httpRequest.post('common/district', { data: params }).then(function (res) {
        vm.hospitalOptions = [{ code: '', name: '全部' }]
        vm.hospitalOptions = vm.hospitalOptions.concat(res.list)
      })
    },
    getTeam(code) {
      var vm = this
      delete this.form.team
      var params = {
        hospital: code,
        area: this.form.area
      }
      httpRequest.get('statisticsExport/teamList', { data: params }).then(function (res) {
        vm.teamOptions = [{ id: '', name: '全部' }]
        vm.teamOptions = vm.teamOptions.concat(res.data)
      })
    },
    handleCurrentChange(val) {
      this.page = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.getList()
    },
    openDialog(scope) {
      layer.open({
        type: 2,
        //				  offset: ['100px'], //右下角弹出
        area: ['568px', '100%'],
        shade: 0.5,
        title: '查看筛选结果',
        fixed: true, //不固定
        maxmin: true,
        closeBtn: 1,
        shift: 5,
        shadeClose: false, //点击遮罩关闭层
        content: `../../jbsc/html/view_screening_results.html?resultCode=${scope.row.code}&opt=1`
      })
    }
  },
  mounted() {
    this.init()
  }
})

+ 55 - 3
component/statistics/GxbTurnup/index.html

@ -61,7 +61,11 @@
        </el-tooltip>
      </template>
      <template slot-scope="scope">
        <span :class="`${item.prop== 'turnUpTimes'&&scope.row.code ?'pointer c-409eff':''}`" @click="openDialog(scope.row, item.prop)">{{scope.row[item.prop]}}</span>
        <span
          :class="`${(item.prop== 'turnUpTimes'&&scope.row.code)|| (item.prop== 'turnUpTimes'&&scope.row.name=='其他')  ?'pointer c-409eff':''}`"
          @click="openDialog(scope.row, item.prop)">
          {{scope.row[item.prop]}}
        </span>
      </template>
    </el-table-column>
  </el-table>
@ -110,8 +114,8 @@
        </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>
        <el-button type="primary" @click="dialogSearchFn(1)">查询</el-button>
        <el-button type="warning" @click="dialogExportFn(1)" :disabled="dialogExportLoading">导出</el-button>
        <span @click="dialogReset" style="color: #676a6c; cursor: pointer">清除筛选条件</span>
      </el-form-item>
    </el-form>
@ -134,4 +138,52 @@
        :total="total"></el-pagination>
    </div>
  </el-dialog>
  <el-dialog :visible.sync="xxVisible" title="上转预约明细列表" @close="closeDialog" width="1200px">
    <el-form inline size="mini">
      <el-form-item label="居民姓名:">
        <el-input v-model="xxQuery.name" placeholder="请输入居民姓名查询"></el-input>
      </el-form-item>
      <el-form-item label="操作上转医生机构:">
        <el-input v-model="xxQuery.organizationName" placeholder="请输入操作上转医生机构查询"></el-input>
      </el-form-item>
      <el-form-item label="上转的单位:">
        <el-input v-model="xxQuery.transportOrgName" placeholder="请输入上转的单位查询"></el-input>
      </el-form-item>
      <el-form-item label="上转住院">
        <el-input v-model="xxQuery.toIp" placeholder="请输入上转住院查询"></el-input>
      </el-form-item>
      <el-form-item label="数据范围:">
        <el-select v-model="form.range" disabled>
          <el-option v-for="item in rangeOptions" :value="item.value" :label="item.label" :key="item.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="地区:">其他</el-form-item>
      <el-form-item>
        <el-button type="primary" @click="dialogSearchFn(2)">查询</el-button>
        <el-button type="warning" @click="dialogExportFn(2)" :disabled="dialogExportLoading">导出</el-button>
        <span @click="dialogReset" style="color: #676a6c; cursor: pointer">清除筛选条件</span>
      </el-form-item>
    </el-form>
    <el-table :data="xxTableData" border v-loading="dialogLoading">
      <el-table-column type="index" label="序号"></el-table-column>
      <el-table-column v-for="item in xxDialogHeader" :label="item.label" :key="item.prop" :render-header="renderHeader">
        <template slot-scope="scope">
          <span :class="`${item.prop=='patientName'?'pointer c-409eff':''}`" @click="seePatientDetail(scope.row, item.prop)">{{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="handleXxCurrentChange"
        @size-change="handleXxSizeChange"
        :current-page.sync="xxPage"
        :page-size="xxPageSize"
        :page-sizes="[10, 20, 50]"
        layout="total, sizes, prev, pager, next, jumper"
        :total="xxTotal"></el-pagination>
    </div>
  </el-dialog>
</div>

+ 142 - 54
component/statistics/GxbTurnup/index.js

@ -52,10 +52,27 @@ Vue.component('gxb-turnup', {
      ],
      level: 0,
      visible: false,
      xxVisible: false,
      query: {},
      xxQuery: {},
      xxTableData: [],
      xxTotal: '',
      xxPage: 1,
      xxPageSize: 10,
      dataRangeOption: [],
      dialogTableData: [],
      dialogHeader: [],
      xxDialogHeader: [
        { label: '姓名', prop: 'patientName', width: '100' },
        { label: '性别', prop: 'sexName', width: '90' },
        { label: '年龄', prop: 'age', width: '90' },
        { label: '手机号', prop: 'mobile', width: '110' },
        { label: '证件号码', prop: 'idcard', width: '110' },
        { label: '操作上转医生机构', prop: 'organizationName', width: '130' },
        { label: '上转的单位', prop: 'transportOrgName', width: '100' },
        { label: '上转住院', prop: 'toIp', width: '130' },
        { label: '上转住院时间', prop: 'inHospitalDate', width: '150' }
      ],
      page: 1,
      size: 10,
      total: 0,
@ -77,7 +94,8 @@ Vue.component('gxb-turnup', {
          { label: '湖里区', value: '350206' },
          { label: '集美区', value: '350211' },
          { label: '同安区', value: '350212' },
          { label: '翔安区', value: '350213' }
          { label: '翔安区', value: '350213' },
          { label: '其他', value: 'other' }
        ]
      } else if (selectedRole.code.length == 6) {
        this.level = 2 // 区管理
@ -158,10 +176,10 @@ Vue.component('gxb-turnup', {
            var data = JSON.parse(JSON.stringify(item))
            if (vm.form.range == 'town') {
              data.town = item.name
              data.hasChildren = item.code && true
              data.hasChildren = item.code && item.code != 'other' && true
            } else if (vm.form.range == 'hospital') {
              data.hospital = item.name
              data.hasChildren = item.code && true
              data.hasChildren = item.code && item.code != 'other' && true
            } else if (vm.form.range == 'team') {
              data.team = item.name
            }
@ -281,29 +299,55 @@ Vue.component('gxb-turnup', {
        }
      })
    },
    dialogSearchFn() {
      this.page = 1
      this.gxbTurnUpInfoPage()
    dialogSearchFn(val) {
      if (val == 1) {
        this.page = 1
        this.gxbTurnUpInfoPage()
      } else {
        this.xxPage = 1
        this.getList()
      }
    },
    dialogExportFn() {
    dialogExportFn(val) {
      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 (val == 1) {
        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/exportGxbTurnUpInfoPage2', fileName, params).then(function () {
          vm.dialogExportLoading = false
        })
      } else if (val == 2) {
        var params = {
          ...this.xxQuery
        }
        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/exportNalongDataDetail', fileName, params).then(function () {
          vm.dialogExportLoading = false
        })
      }
      this.dialogExportLoading = true
      var fileName = `上转预约明细列表${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/collaborate/exportGxbTurnUpInfoPage2', fileName, params).then(function () {
        vm.dialogExportLoading = false
      })
    },
    dialogReset() {
      var params = {
@ -316,49 +360,65 @@ Vue.component('gxb-turnup', {
        hospital: typeof params.hospital == 'undefined' ? '' : params.hospital,
        team: typeof params.team == 'undefined' ? '' : params.team
      }
      this.xxQuery = {}
    },
    handleCurrentChange(val) {
      this.page = val
      this.gxbTurnUpInfoPage()
    },
    handleXxCurrentChange(val) {
      this.xxPage = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.gxbTurnUpInfoPage()
    },
    handleXxSizeChange(val) {
      this.xxPageSize = val
      this.getList()
    },
    openDialog(row, prop) {
      if (!row.code) return
      this.page = 1
      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 }]
      console.log(this.form, 'llllllllllll')
      if (row.name == '其他') {
        this.xxQuery.range = this.form.range
        this.xxVisible = true
        this.getList()
      } else {
        if (!row.code) return
        this.page = 1
        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: 'signDoctorName' },
          { 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()
          this.dialogHeader = [
            { label: '姓名', prop: 'name' },
            { label: '性别', prop: 'sex' },
            { label: '年龄', prop: 'age' },
            { label: '社区医院', prop: 'signHospitalName' },
            { label: '签约医生', prop: 'signDoctorName' },
            { 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() {
@ -386,11 +446,39 @@ Vue.component('gxb-turnup', {
        vm.dialogLoading = false
      })
    },
    getList() {
      var vm = this
      var params = {
        ...this.xxQuery,
        page: this.xxPage,
        pageSize: this.xxPageSize
      }
      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]
        }
      }
      delete params.range
      httpRequest.get('statistics/collaborate/nalongDataDetail', { data: params }).then(function (res) {
        if (res.status == 200) {
          vm.xxTableData = res.detailModelList
          vm.xxTotal = res.totalCount
        }
      })
    },
    seePatientDetail(row, prop) {
      if (prop == 'name') {
        EventBus.$emit('preview-person-info', { type: '2', code: row.code })
      } else if (prop == 'patientName') {
        EventBus.$emit('preview-person-info', { type: '2', code: row.patient })
      }
    },
    closeDialog() {
      this.visible = false
    },