4 Revize b73f355079 ... 3dc79a695c

Autor SHA1 Zpráva Datum
  hd 3dc79a695c 厦心静态页面 před 1 týdnem
  hd 236fe66ba8 'buh' před 1 týdnem
  hd c08b40d775 Merge branch 'master' of http://192.168.1.220:10080/raolu/PC-application před 1 týdnem
  hd fe28c103f3 '家庭病床统计' před 1 týdnem

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

@ -122,6 +122,15 @@
                  {{item.label}}
                </div>
              </template>
              <template v-if="tabsId == 9">
                <div
                  class="particulars"
                  v-for="(item,index) in jtbcTabsData"
                  @click="handleNodeClick(item, 8)"
                  :style="handleNodeId==item.id?'background-color: #409eff;color:#fff;':''">
                  {{item.label}}
                </div>
              </template>
              <div class="resetSelected" v-if="tabsId != 2">
                <div @click="reset">重置已选</div>
              </div>
@ -992,7 +1001,6 @@
    <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="../../../component/statistics/CopdPatientRecord/index.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/jtbcTablePage/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>
    <script src="../../../component/statistics/HealthRecord/index.js" type="text/javascript" charset="utf-8"></script>

+ 909 - 898
app/statistics/js/comprehensive-query.js

@ -1,18 +1,17 @@
Vue.use(Vuedals.default);
Vue.use(Vuedals.default)
new Vue({
  el: '#main',
  data: {
    height: '',
    isloading: false, //加载中
    start: '',
    searchStr:1,
    searchStr: 1,
    end: '',
    tabledata: [], //表格数据
    levelList: [
      {level: '4', areaLevel: '2'},
      {level: '3', areaLevel: '3'},
      {level: '2', areaLevel: '4'}
      { level: '4', areaLevel: '2' },
      { level: '3', areaLevel: '3' },
      { level: '2', areaLevel: '4' }
    ], //两种搜索,地区等级对比
    areaLevel: '', // 2、市,3、区,4、社区,5、团队
    initareaLevel: '',
@ -28,7 +27,7 @@ new Vue({
    chooseYear: '',
    userRole: '',
    treedata: [],
    treedataExpert: [{label: '邀请专科回复统计', id: '1'}],
    treedataExpert: [{ label: '邀请专科回复统计', id: '1' }],
    tableHeader: [],
    defaultProps: {
      children: 'children',
@ -36,7 +35,7 @@ new Vue({
    },
    pickerOptions: {
      disabledDate: function (time) {
        return time.getTime() > Date.now();
        return time.getTime() > Date.now()
      }
    },
    radio: '1',
@ -49,52 +48,52 @@ new Vue({
    rangeCode: '',
    areaList: [],
    areaCode: '',
    communityList: [{code: '', name: '全部'}],
    communityList: [{ code: '', name: '全部' }],
    communityCode: '',
    teamList: [{code: '', name: '全部'}],
    teamList: [{ code: '', name: '全部' }],
    teamCode: '',
    detailInquire: [
      {
        label: '明细查询',
        children: [
          {label: '咨询分析', id: '33'},
          {label: '签约分析', id: '34'},
          {label: '专病分析', id: '35'},
          {label: '生日祝福分析', id: '36'},
          {label: '上门服务分析', id: '37'},
          {label: '长处方分析', id: '38'},
          {label: '体征数据分析', id: '39'},
          {label: '上转预约明细', id: '40'},
          {label: '专病复诊明细', id: '53'},
          {label: '微信绑定明细', id: '41'},
          {label: '居民积分明细', id: '42'},
          {label: '入户访视明细', id: '43'},
          {label: '康复下转明细', id: '44'},
          {label: '邀请专科回复明细', id: '45'}
          { label: '咨询分析', id: '33' },
          { label: '签约分析', id: '34' },
          { label: '专病分析', id: '35' },
          { label: '生日祝福分析', id: '36' },
          { label: '上门服务分析', id: '37' },
          { label: '长处方分析', id: '38' },
          { label: '体征数据分析', id: '39' },
          { label: '上转预约明细', id: '40' },
          { label: '专病复诊明细', id: '53' },
          { label: '微信绑定明细', id: '41' },
          { label: '居民积分明细', id: '42' },
          { label: '入户访视明细', id: '43' },
          { label: '康复下转明细', id: '44' },
          { label: '邀请专科回复明细', id: '45' }
        ]
      }
    ],
    mzfTabsData: [
      {label: '慢阻肺医院工作量表', id: '46'},
      {label: '慢阻肺患者查询', id: '47'},
      {label: '慢阻肺入组进度', id: '48'},
      {label: '慢阻肺入组总明细', id: '49'},
      {label: '慢阻肺随访进度', id: '50'},
      {label: '慢阻肺随访总明细', id: '51'},
      {label: 'v1入组情况报表', id: '52'},
      {label: '慢阻肺呼吸训练数据', id: '54'},
      {label: '慢阻肺手表数据', id: '55'},
      {label: '慢阻肺监查、稽查情况统计', id: '56'},
      {label: '第一阶段入组随访进度', id: '57'},
      {label: '第二阶段三级医院入组进度', id: '58'},
      {label: '第二阶段社区医院入组进度', id: '59'},
      {label: '第二阶段三级医院随访进度', id: '60'},
      {label: '第二阶段社区医院随访进度', id: '61'},
      {label: '第二阶段三级医院随访进度及出组情况', id: '62'}
      { label: '慢阻肺医院工作量表', id: '46' },
      { label: '慢阻肺患者查询', id: '47' },
      { label: '慢阻肺入组进度', id: '48' },
      { label: '慢阻肺入组总明细', id: '49' },
      { label: '慢阻肺随访进度', id: '50' },
      { label: '慢阻肺随访总明细', id: '51' },
      { label: 'v1入组情况报表', id: '52' },
      { label: '慢阻肺呼吸训练数据', id: '54' },
      { label: '慢阻肺手表数据', id: '55' },
      { label: '慢阻肺监查、稽查情况统计', id: '56' },
      { label: '第一阶段入组随访进度', id: '57' },
      { label: '第二阶段三级医院入组进度', id: '58' },
      { label: '第二阶段社区医院入组进度', id: '59' },
      { label: '第二阶段三级医院随访进度', id: '60' },
      { label: '第二阶段社区医院随访进度', id: '61' },
      { label: '第二阶段三级医院随访进度及出组情况', id: '62' }
    ],
    mzfJcTabsData: [
      {label: '慢阻肺患者档案', id: '63'},
      {label: '管理情况自助查询', id: '64'}
      { label: '慢阻肺患者档案', id: '63' },
      { label: '管理情况自助查询', id: '64' }
    ],
    // 慢阻肺管理情况自处查询字段列表
    copdManageSearchFilterList: [
@ -169,12 +168,26 @@ new Vue({
    ],
    // 家庭病床统计
    jtbcTabsData: [
      {label: '患者情况分析', id: '71'},
      {label: '建床人数统计', id: '72'},
      {label: '计划服务情况分析', id: '73'},
      {label: '病床查床情况分析', id: '74'},
      {label: '转诊与撤床情况分析', id: '75'},
      {label: '一键报警记录查询', id: '76'},
      { label: '患者情况分析', id: '71' },
      { label: '建床人数统计', id: '72' },
      { label: '计划服务情况分析', id: '73' },
      { label: '病床查床情况分析', id: '74' },
      { label: '转诊与撤床情况分析', id: '75' },
      { label: '一键报警记录查询', id: '76' }
    ],
    gxbTabsData: [
      { label: '冠心病评估情况统计表', id: '77' },
      { label: '冠心病上转情况表', id: '78' },
      { label: '冠心病门诊下转统计表', id: '79' },
      { label: '冠心病出院下转统计表', id: '80' },
      { label: '冠心病管理全流程闭环情况', id: '81' },
      { label: '签约情况统计', id: '82' },
      { label: '就诊情况统计', id: '83' },
      { label: '下转动态分析', id: '84' },
      { label: '康复随访记录', id: '85' },
      { label: '康复随访详情', id: '86' },
      { label: '康复下转明细', id: '87' },
      { label: '居民预约情况明细', id: '88' }
    ],
    copdFilterCheckValue: [],
    handleNodeShow: 1,
@ -190,29 +203,29 @@ new Vue({
    radio9: '',
    radio10: '',
    cities: [
      {value: '高血压', num: '4'},
      {value: '糖尿病', num: '5'},
      {value: '65岁以上人群', num: '3'},
      {value: '0-6岁小孩', num: '7'},
      {value: '计划生育家庭', num: '9'},
      {value: '严重精神障碍', num: '10'},
      {value: '残疾人', num: '11'},
      {value: '普通人群', num: '1'},
      {value: '结核病', num: '12'},
      {value: '低保人群', num: '8'},
      {value: '孕产妇', num: '6'}
      { value: '高血压', num: '4' },
      { value: '糖尿病', num: '5' },
      { value: '65岁以上人群', num: '3' },
      { value: '0-6岁小孩', num: '7' },
      { value: '计划生育家庭', num: '9' },
      { value: '严重精神障碍', num: '10' },
      { value: '残疾人', num: '11' },
      { value: '普通人群', num: '1' },
      { value: '结核病', num: '12' },
      { value: '低保人群', num: '8' },
      { value: '孕产妇', num: '6' }
    ],
    checkedCities: [],
    specialCities: [],
    specialCheckedCities: [],
    serveCities: [
      {value: '残疾人', num: '1'},
      {value: '失能/半失能老人', num: '5'},
      {value: '80岁以上老人', num: '7'},
      {value: '肺结核患者', num: '2'},
      {value: '计生特殊家庭', num: '3'},
      {value: '重性精神病', num: '4'},
      {value: '其他', num: '6'}
      { value: '残疾人', num: '1' },
      { value: '失能/半失能老人', num: '5' },
      { value: '80岁以上老人', num: '7' },
      { value: '肺结核患者', num: '2' },
      { value: '计生特殊家庭', num: '3' },
      { value: '重性精神病', num: '4' },
      { value: '其他', num: '6' }
    ],
    serveSpecialCities: [],
    options: [
@ -263,14 +276,15 @@ new Vue({
    fullscreenLoading: false,
    derive: '',
    tabsList: [
      {id: '1', text: '综合查询', show: true},
      {id: '2', text: '明细查询', show: false},
      {id: '3', text: '汇总数据', show: false},
      {id: '4', text: '专科综合查询', show: false},
      { id: '1', text: '综合查询', show: true },
      { id: '2', text: '明细查询', show: false },
      { id: '3', text: '汇总数据', show: false },
      { id: '4', text: '专科综合查询', show: false },
      // {id:'5',text:'慢阻肺综合查询',show:false},
      {id: '6', text: '慢阻肺统计', show: false},
      {id: '7', text: '疾控慢阻肺监测', show: false},
      {id: '8', text: '家庭病床统计', show: false}
      { id: '6', text: '慢阻肺统计', show: false },
      { id: '7', text: '疾控慢阻肺监测', show: false },
      { id: '8', text: '家庭病床统计', show: false },
      { id: '9', text: '冠心病统计', show: false }
    ],
    tabsId: '1',
    facility: '', //体征数据分析  - 设备类型
@ -327,10 +341,10 @@ new Vue({
        label: '专病汇总',
        code: '1',
        children: [
          {id: 'kfxzrs', label: '康复下转人数', code: '1'},
          {id: 'kfxzrc', label: '康复下转人次', code: '1'},
          {id: 'szrs', label: '上转人数', code: '1'},
          {id: 'szrc', label: '上转人次', code: '1'}
          { id: 'kfxzrs', label: '康复下转人数', code: '1' },
          { id: 'kfxzrc', label: '康复下转人次', code: '1' },
          { id: 'szrs', label: '上转人数', code: '1' },
          { id: 'szrc', label: '上转人次', code: '1' }
        ]
      },
      {
@ -338,17 +352,17 @@ new Vue({
        label: '体征数据汇总',
        code: '2',
        children: [
          {id: 'scsbs', label: '上传设备数', code: '2'},
          {id: 'scrc', label: '上传人次', code: '2'},
          {id: 'yctzrc', label: '异常体征人次', code: '2'},
          {id: 'gyrc', label: '干预人次', code: '2'}
          { id: 'scsbs', label: '上传设备数', code: '2' },
          { id: 'scrc', label: '上传人次', code: '2' },
          { id: 'yctzrc', label: '异常体征人次', code: '2' },
          { id: 'gyrc', label: '干预人次', code: '2' }
        ]
      },
      {
        id: 'fwgd',
        label: '上门服务汇总',
        code: '3',
        children: [{id: 'fwgd', label: '服务工单', code: '3'}]
        children: [{ id: 'fwgd', label: '服务工单', code: '3' }]
      }
    ],
    specHosName: '',
@ -366,20 +380,20 @@ new Vue({
    getDoorHeader: [],
    isCheck: false,
    deorsumvergence: [{value: '', label: '全部'}],
    rehabilitationHospital: [{value: '', label: '全部'}],
    archiveList: [{value: '', label: '全部'}],
    deorsumvergence: [{ value: '', label: '全部' }],
    rehabilitationHospital: [{ value: '', label: '全部' }],
    archiveList: [{ value: '', label: '全部' }],
    inviteStatus: [
      {value: '', label: '全部'},
      {value: '0', label: '待回复'},
      {value: '1', label: '进行中'},
      {value: '2', label: '已完成'},
      {value: '3', label: '未回复'}
      { value: '', label: '全部' },
      { value: '0', label: '待回复' },
      { value: '1', label: '进行中' },
      { value: '2', label: '已完成' },
      { value: '3', label: '未回复' }
    ],
    inviteStatus1: [
      {value: '', label: '全部'},
      {value: '1', label: '门诊患者'},
      {value: '2', label: '出院患者'}
      { value: '', label: '全部' },
      { value: '1', label: '门诊患者' },
      { value: '2', label: '出院患者' }
    ],
    recoveryList: [],
    dialogVisible: false,
@ -390,21 +404,21 @@ new Vue({
    invitationList: [],
    expertFamilyIdType: '',
    expertReplyData: [],
    specializedHospital: [{value: '', label: '全部'}],
    mzfzhcxData: [{name: '测试数据1条'}],
    specializedHospital: [{ value: '', label: '全部' }],
    mzfzhcxData: [{ name: '测试数据1条' }],
    mzftjTree: [
      {
        id: 'zhzrs,yglrs,yrzrs,ysfrs,yczrs,bnrglrs,swrs',
        label: '患者管理统计',
        code: '1',
        children: [
          {id: 'zhzrs', label: '总患者人数', code: '1'},
          {id: 'yglrs', label: '已管理人数', code: '1'},
          {id: 'yrzrs', label: '已入组人数', code: '1'},
          {id: 'ysfrs', label: '已失访人数', code: '1'},
          {id: 'yczrs', label: '已出组人数', code: '1'},
          {id: 'bnrglrs', label: '不纳入管理人数', code: '1'},
          {id: 'swrs', label: '死亡人数', code: '1'}
          { id: 'zhzrs', label: '总患者人数', code: '1' },
          { id: 'yglrs', label: '已管理人数', code: '1' },
          { id: 'yrzrs', label: '已入组人数', code: '1' },
          { id: 'ysfrs', label: '已失访人数', code: '1' },
          { id: 'yczrs', label: '已出组人数', code: '1' },
          { id: 'bnrglrs', label: '不纳入管理人数', code: '1' },
          { id: 'swrs', label: '死亡人数', code: '1' }
        ]
      },
      {
@ -412,12 +426,12 @@ new Vue({
        label: '监查稽查统计',
        code: '2',
        children: [
          {id: 'yjcrs', label: '已稽查人数', code: '2'},
          {id: 'yjccs', label: '已稽查次数', code: '2'},
          {id: 'djcrs', label: '待监查人数', code: '2'},
          {id: 'djccs', label: '待监查次数', code: '2'},
          {id: 'djcrs', label: '待稽查人数', code: '2'},
          {id: 'djccs', label: '待稽查次数', code: '2'}
          { id: 'yjcrs', label: '已稽查人数', code: '2' },
          { id: 'yjccs', label: '已稽查次数', code: '2' },
          { id: 'djcrs', label: '待监查人数', code: '2' },
          { id: 'djccs', label: '待监查次数', code: '2' },
          { id: 'djcrs', label: '待稽查人数', code: '2' },
          { id: 'djccs', label: '待稽查次数', code: '2' }
        ]
      },
      {
@ -425,8 +439,8 @@ new Vue({
        label: '下转接收统计',
        code: '3',
        children: [
          {id: 'xzrs', label: '下转人数', code: '3'},
          {id: 'jsxzrs', label: '接收下转人数', code: '3'}
          { id: 'xzrs', label: '下转人数', code: '3' },
          { id: 'jsxzrs', label: '接收下转人数', code: '3' }
        ]
      },
      {
@ -434,14 +448,14 @@ new Vue({
        label: '随访进度统计',
        code: '4',
        children: [
          {id: 'v1sxrs', label: 'v1筛选人数', code: '4'},
          {id: 'v2rzrs', label: 'v2入组人数', code: '4'},
          {id: 'v3rs', label: 'v3人数', code: '4'},
          {id: 'v4rs', label: 'v4人数', code: '4'},
          {id: 'v5rs', label: 'v5人数', code: '4'},
          {id: 'v6rs', label: 'v6人数', code: '4'},
          {id: 'zgrs', label: '在管人数', code: '4'},
          {id: 'tlzls', label: '脱落总例数', code: '4'}
          { id: 'v1sxrs', label: 'v1筛选人数', code: '4' },
          { id: 'v2rzrs', label: 'v2入组人数', code: '4' },
          { id: 'v3rs', label: 'v3人数', code: '4' },
          { id: 'v4rs', label: 'v4人数', code: '4' },
          { id: 'v5rs', label: 'v5人数', code: '4' },
          { id: 'v6rs', label: 'v6人数', code: '4' },
          { id: 'zgrs', label: '在管人数', code: '4' },
          { id: 'tlzls', label: '脱落总例数', code: '4' }
        ]
      }
    ],
@ -449,15 +463,15 @@ new Vue({
    startTime: new Date('2023', '05', '26'),
    endTime: new Date(),
    regionList: [],
    regionData: [{label: '全市', id: '1', type: '1'}],
    regionData: [{ label: '全市', id: '1', type: '1' }],
    regionListList: [],
    tertiaryHospitalsData: [{label: '全部', id: '1', type: '2'}],
    tertiaryHospitalsData: [{ label: '全部', id: '1', type: '2' }],
    communityHospitalsList: [],
    communityHospitalsData: [{label: '全部', id: '1', type: '3'}],
    communityHospitalsData: [{ label: '全部', id: '1', type: '3' }],
    groupingList: [],
    groupingData: [{label: '全部', id: '1', type: '4'}],
    groupingData: [{ label: '全部', id: '1', type: '4' }],
    administrationStatusList: [],
    administrationStatusData: [{label: '全部', id: '1', type: '5'}],
    administrationStatusData: [{ label: '全部', id: '1', type: '5' }],
    show: false,
    showTwo: false,
    showThree: false,
@ -467,7 +481,7 @@ new Vue({
    loadingTwo: false,
    setDisabled: {
      disabledDate: function (time) {
        return time.getTime() < new Date('2023', '05', '26') || time.getTime() > Date.now();
        return time.getTime() < new Date('2023', '05', '26') || time.getTime() > Date.now()
      }
    },
    s: '',
@ -538,32 +552,32 @@ new Vue({
        value: 2
      }
    ],
    componentId: ['46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','71','75','72','73','74','75','76']
    componentId: []
  },
  components: {
    vuedals: Vuedals.Component
  },
  watch: {
    rangeCode: function (val) {
      var vm = this;
      var vm = this
      if (vm.initlevel != 2) {
        vm.communityCode = '';
        vm.communityCode = ''
      }
      vm.teamCode = '';
      vm.getTreeList();
      vm.teamCode = ''
      vm.getTreeList()
    },
    areaCode: function (val) {
      var vm = this;
      vm.selChange(3);
      var vm = this
      vm.selChange(3)
    },
    communityCode: function (val) {
      var vm = this;
      vm.selChange(5);
      var vm = this
      vm.selChange(5)
    },
    'startTime': {
      handler: function (o) {
        if (!o) {
          this.list.splice(0, 1);
          this.list.splice(0, 1)
        }
      },
      deep: true,
@ -572,7 +586,7 @@ new Vue({
    'endTime': {
      handler: function (o) {
        if (!o) {
          this.list.splice(0, 1);
          this.list.splice(0, 1)
        }
      },
      deep: true,
@ -580,33 +594,36 @@ new Vue({
    }
  },
  mounted: function () {
    var vm = this;
    var vm = this
    //初始化数据
    var searchStr = location.search;
if(searchStr){
   vm.searchStr=0
   vm.tabsList=[{id: '7', text: '疾控慢阻肺监测', show: true}]
   vm.tabsClick({id: '7', text: '疾控慢阻肺监测', show: true})
}
    initData(vm);
    var searchStr = location.search
    if (searchStr) {
      vm.searchStr = 0
      vm.tabsList = [{ id: '7', text: '疾控慢阻肺监测', show: true }]
      vm.tabsClick({ id: '7', text: '疾控慢阻肺监测', show: true })
    }
    initData(vm)
    vm.getQuotaStr()
    vm.getDiseaseTypeList();
    vm.height = document.body.offsetHeight - 85;
    vm.getDiseaseTypeList()
    vm.height = document.body.offsetHeight - 85
    window.onresize = function () {
      vm.height = document.body.offsetHeight - 85;
    };
    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});
      vm.height = document.body.offsetHeight - 85
    }
    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 <= 88; i++) {
      this.componentId.push(i + '')
    }
  },
  methods: {
    //获取综合查询指标
    getQuotaStr(){
      var vm =this
    statisticAPI.getDictByDictName({name:'jkcopd_quotaStr'}).then(function(res){
      vm.copdManageSearchFilterList=res.list
      console.log(vm.copdManageSearchFilterList,'osidosioaidoasodais')
    })
    getQuotaStr() {
      var vm = this
      statisticAPI.getDictByDictName({ name: 'jkcopd_quotaStr' }).then(function (res) {
        vm.copdManageSearchFilterList = res.list
        console.log(vm.copdManageSearchFilterList, 'osidosioaidoasodais')
      })
    },
    startTimeChange: function (o) {
      if (!this.list[0] || this.list[0].type != 0) {
@ -614,9 +631,9 @@ if(searchStr){
          type: '0',
          id: 'time',
          label: o.format('yyyy-MM-dd') + '~' + this.endTime.format('yyyy-MM-dd')
        });
        })
      } else {
        this.list[0].label = o.format('yyyy-MM-dd') + '~' + this.endTime.format('yyyy-MM-dd');
        this.list[0].label = o.format('yyyy-MM-dd') + '~' + this.endTime.format('yyyy-MM-dd')
      }
    },
    endTimeChange: function (o) {
@ -625,49 +642,49 @@ if(searchStr){
          type: '0',
          id: 'time',
          label: this.startTime.format('yyyy-MM-dd') + '~' + o.format('yyyy-MM-dd')
        });
        })
      } else {
        this.list[0].label = this.startTime.format('yyyy-MM-dd') + '~' + o.format('yyyy-MM-dd');
        this.list[0].label = this.startTime.format('yyyy-MM-dd') + '~' + o.format('yyyy-MM-dd')
      }
    },
    // 确定
    confirm: function () {
      this.hospitalWorkStatistics();
      this.hospitalWorkStatistics()
    },
    // 选择
    change: function (val) {
      this.list = this.list.concat(val);
      this.list = this.list.concat(val)
    },
    // 已选
    deleteClick: function (item) {
      if (item.id == 'time') {
        this.startTime = '';
        this.endTime = '';
        this.list.splice(0, 1);
        this.startTime = ''
        this.endTime = ''
        this.list.splice(0, 1)
      }
      var index = this.list.findIndex(function (v) {
        return item.id == v.id;
      });
      this.list.splice(index, 1);
        return item.id == v.id
      })
      this.list.splice(index, 1)
    },
    // 取消
    cancel: function () {
      this.startTime = new Date('2023', '05', '26');
      this.endTime = new Date();
      this.startTime = new Date('2023', '05', '26')
      this.endTime = new Date()
      if (!this.list[0] || this.list[0].type != 0) {
        this.list.unshift({
          type: '0',
          id: 'time',
          label: this.startTime.format('yyyy-MM-dd') + '~' + this.endTime.format('yyyy-MM-dd')
        });
        })
      } else {
        this.list[0].label = this.startTime.format('yyyy-MM-dd') + '~' + this.endTime.format('yyyy-MM-dd');
        this.list[0].label = this.startTime.format('yyyy-MM-dd') + '~' + this.endTime.format('yyyy-MM-dd')
      }
    },
    // 导出
    exportHandle: function () {
      var vm = this;
      vm.loadingTwo = true;
      var vm = this
      vm.loadingTwo = true
      statisticAPI
        .exportHospitalWorkStatistics(
          {
@ -677,11 +694,11 @@ if(searchStr){
          '慢阻肺综合查询表.xls'
        )
        .then(function (res) {
          vm.loadingTwo = false;
        });
          vm.loadingTwo = false
        })
    },
    renderTableHeader: function (h, item) {
      var $index = item.$index;
      var $index = item.$index
      return h('div', [
        h('span', this.diseaseHeader[$index - 1] + '  ', {
          align: 'center',
@ -708,24 +725,24 @@ if(searchStr){
            })
          ]
        )
      ]);
      ])
    },
    renderHeadeRexpert: function (h, item) {
      var index = item.$index;
      var index = item.$index
      return [
        index == '3'
          ? '邀请次数'
          : index == '4'
            ? '进行中'
            : index == '5'
              ? '已回复'
              : index == '6'
                ? '未回复'
                : index == '7'
                  ? '回复率'
                  : index == '8'
                    ? '平均响应时长'
                    : '用户评价',
          ? '进行中'
          : index == '5'
          ? '已回复'
          : index == '6'
          ? '未回复'
          : index == '7'
          ? '回复率'
          : index == '8'
          ? '平均响应时长'
          : '用户评价',
        h(
          'el-tooltip',
          {
@ -734,16 +751,16 @@ if(searchStr){
                return index == '3'
                  ? '发起邀请总次数'
                  : index == ''
                    ? '其中咨询未完成,包含待回复和进行中'
                    : index == '5'
                      ? '其中医生已回复且咨询已结束的'
                      : index == '6'
                        ? '其中咨询已结束医生未回复的'
                        : index == '7'
                          ? '已回复 / 邀请次数'
                          : index == '8'
                            ? '[邀请1响应时长+ 邀请2响应时长 + ...] / 总次数'
                            : '用户评价';
                  ? '其中咨询未完成,包含待回复和进行中'
                  : index == '5'
                  ? '其中医生已回复且咨询已结束的'
                  : index == '6'
                  ? '其中咨询已结束医生未回复的'
                  : index == '7'
                  ? '已回复 / 邀请次数'
                  : index == '8'
                  ? '[邀请1响应时长+ 邀请2响应时长 + ...] / 总次数'
                  : '用户评价'
              })(),
              placement: 'top'
            }
@ -756,43 +773,43 @@ if(searchStr){
            })
          ]
        )
      ];
      ]
    },
    // 获取康复下转明细 ---  下转状态
    deorsumvergenceStatusFunction: function (name) {
      var vm = this;
      signAPI.getDictByDictName({name: name}).then(function (res) {
      var vm = this
      signAPI.getDictByDictName({ name: name }).then(function (res) {
        if (res.status === 200) {
          if (name == 'rehabilitation_status') {
            res.list.forEach(function (v) {
              vm.deorsumvergence.push({
                value: v.code,
                label: v.value
              });
            });
              })
            })
          }
          if (name == 'rehabilitation_hospital') {
            res.list.forEach(function (v) {
              vm.rehabilitationHospital.push({
                value: v.code,
                label: v.value
              });
            });
              })
            })
          }
          if (name == 'archive_status') {
            res.list.forEach(function (v) {
              vm.archiveList.push({
                value: v.code,
                label: v.value
              });
            });
              })
            })
          }
        }
      });
      })
    },
    // 获取社区医院
    hospitalsByType: function () {
      var vm = this;
      var vm = this
      statisticAPI
        .hospitalsByType({
          type: 1,
@ -804,55 +821,55 @@ if(searchStr){
              vm.communityHospitals.push({
                value: v.code,
                label: v.name
              });
            });
              })
            })
          }
        })
        .catch(function (err) {
          console.log(err, 'Errr');
        });
          console.log(err, 'Errr')
        })
    },
    // 康复下转操作
    operation: function (num, item) {
      var vm = this;
      var vm = this
      if (num != 2) {
        statisticAPI
          .synchronizePationSingle({id: item.id})
          .synchronizePationSingle({ id: item.id })
          .then(function (res) {
            if (res.status == 200) {
              toastr.info('操作成功');
              this.tableKey = Math.random();
              toastr.info('操作成功')
              this.tableKey = Math.random()
            } else {
              toastr.error(res.msg);
              toastr.error(res.msg)
            }
          })
          .catch(function (err) {
            console.log(err, 'Errr');
          });
            console.log(err, 'Errr')
          })
      } else {
        vm.signatoryList = [];
        vm.signatoryList = []
        statisticAPI
          .kangfuGetSignInfo({idcard: item.idcard})
          .kangfuGetSignInfo({ idcard: item.idcard })
          .then(function (res) {
            if (res.status == 200) {
              if (res.data != null) {
                vm.signatoryList.push(res.data);
                vm.signatoryList.push(res.data)
              }
            }
          })
          .catch(function (err) {
            console.log(err, 'Errr');
          });
        this.dialogVisible = true;
            console.log(err, 'Errr')
          })
        this.dialogVisible = true
      }
    },
    getImgurl: function (url) {
      var imgUrl=url&& url.split(',')[0]
      return httpRequest.getImgUrl(imgUrl);
      var imgUrl = url && url.split(',')[0]
      return httpRequest.getImgUrl(imgUrl)
    },
    reset: function () {
      if (this.tabsId == 1) {
        this.getTreeList();
        this.getTreeList()
      } else {
        this.collect = [
          {
@ -860,10 +877,10 @@ if(searchStr){
            label: '专病汇总',
            code: '1',
            children: [
              {id: 'kfxzrs', label: '康复下转人数', code: '1'},
              {id: 'kfxzrc', label: '康复下转人次', code: '1'},
              {id: 'szrs', label: '下转人数', code: '1'},
              {id: 'szrc', label: '下转人数', code: '1'}
              { id: 'kfxzrs', label: '康复下转人数', code: '1' },
              { id: 'kfxzrc', label: '康复下转人次', code: '1' },
              { id: 'szrs', label: '下转人数', code: '1' },
              { id: 'szrc', label: '下转人数', code: '1' }
            ]
          },
          {
@ -871,64 +888,63 @@ if(searchStr){
            label: '体征数据汇总',
            code: '2',
            children: [
              {id: 'scsbs', label: '上传设备数', code: '2'},
              {id: 'scrc', label: '上传人次', code: '2'},
              {id: 'yctzrc', label: '异常体征人次', code: '2'},
              {id: 'gyrc', label: '干预人次', code: '2'}
              { id: 'scsbs', label: '上传设备数', code: '2' },
              { id: 'scrc', label: '上传人次', code: '2' },
              { id: 'yctzrc', label: '异常体征人次', code: '2' },
              { id: 'gyrc', label: '干预人次', code: '2' }
            ]
          },
          {
            id: 'fwgd',
            label: '上门服务汇总',
            code: '3',
            children: [{id: 'fwgd', label: '服务工单', code: '3'}]
            children: [{ id: 'fwgd', label: '服务工单', code: '3' }]
          }
        ];
        ]
      }
    },
    // 清除
    eliminateClick: function () {
      this.radio =
        this.handleNodeId == 44 || this.expertFamilyIdType == 'zhuanke1' || this.handleNodeId == 45 ? '2' : '1';
      this.radio1 = '';
      this.radio2 = '';
      this.radio3 = '';
      this.radio4 = '';
      this.radio5 = '';
      this.radio6 = '';
      this.radio7 = '';
      this.radio8 = '';
      this.radio9 = '';
      this.radio10 = '';
      this.radio = this.handleNodeId == 44 || this.expertFamilyIdType == 'zhuanke1' || this.handleNodeId == 45 ? '2' : '1'
      this.radio1 = ''
      this.radio2 = ''
      this.radio3 = ''
      this.radio4 = ''
      this.radio5 = ''
      this.radio6 = ''
      this.radio7 = ''
      this.radio8 = ''
      this.radio9 = ''
      this.radio10 = ''
      this.form = {
        endorseTheTicket: '',
        renew: '',
        backToSign: '',
        WeChat: ''
      };
      }
      this.form2 = {
        juniorCollege: '',
        family: '',
        resident: ''
      };
      }
      this.form3 = {
        family: '',
        resident: ''
      };
      }
      this.form4 = {
        family: '',
        resident: ''
      };
      }
      this.form5 = {
        family: '',
        resident: ''
      };
      this.facility = ''; //体征数据分析  - 设备类型
      this.illness = ''; //体征数据分析  - 疾病类型
      }
      this.facility = '' //体征数据分析  - 设备类型
      this.illness = '' //体征数据分析  - 疾病类型
      this.form6 = {
        resident: '',
        doctor: ''
      };
      }
      this.form7 = {
        resident: '',
        doctorOne: '',
@ -946,8 +962,8 @@ if(searchStr){
        }),
        (this.form8 = {
          renew: ''
        });
      this.facilitySign = '';
        })
      this.facilitySign = ''
      this.form11 = {
        patientName: '',
        status: '',
@ -964,158 +980,158 @@ if(searchStr){
        hospital: '',
        archiveStatus: ''
      }),
        initData(this);
        initData(this)
      // initTime(this)
      // initScope(this)
    },
    tabsClick: function (item) {
      console.log(item, 'item')
      var vm = this;
      this.copdFilterCheckValue=[]
      vm.tabsId = item.id;
      var vm = this
      this.copdFilterCheckValue = []
      vm.tabsId = item.id
      if (item.id != 4) {
        vm.expertFamilyIdType = '';
        vm.expertFamilyIdType = ''
      }
      if (item.id == 5) {
        vm.handleNodeShow = 5;
        vm.handleNodeShow = 5
      }
      vm.tabsList.forEach(function (res) {
        if (res.id == item.id) {
          res.show = true;
          res.show = true
        } else {
          res.show = false;
          res.show = false
        }
      });
      vm.eliminateClick();
      })
      vm.eliminateClick()
    },
    // 获取汇总数据的专科医院
    specHosData: function () {
      var vm = this;
      var vm = this
      statisticAPI.getSpecialHospital().then(function (res) {
        if (res.status == 200) {
          res.data.forEach(function (item) {
            vm.specHosList.push({code: item.code, name: item.name});
          });
            vm.specHosList.push({ code: item.code, name: item.name })
          })
        }
      });
      })
    },
    getDiseaseTypeList: function () {
      var vm = this;
      var vm = this
      statisticAPI.getDiseaseTypeList({}).then(function (res) {
        if (res.status == 200) {
          vm.specialCities = res.list;
          vm.specialCities = res.list
        }
      });
      })
    },
    // 签约人群
    handleCheckedCitiesChange: function (value) {
      var vm = this;
      vm.handleData = value;
      var vm = this
      vm.handleData = value
    },
    // 下转病种
    diseaseChange: function (value) {
      var vm = this;
      vm.diseaseData = value;
      var vm = this
      vm.diseaseData = value
    },
    // 服务类型
    serviceTypeChange: function (value) {
      var vm = this;
      vm.serviceTypeData = value;
      var vm = this
      vm.serviceTypeData = value
    },
    // 综合析树形图
    treedataClick: function (name, data) {
      var vm = this;
      vm.handleNodeShow = 1;
      vm.handleNodeId = 0;
      vm.currentPage = 1;
      vm.radio = '1'; //签约年度  --创建时间
      var vm = this
      vm.handleNodeShow = 1
      vm.handleNodeId = 0
      vm.currentPage = 1
      vm.radio = '1' //签约年度  --创建时间
      // initTime(vm)
      // initScope(vm)
    },
    // 汇总树形图
    collectClick: function (data, isCheck) {
      var vm = this;
      vm.derive = data.label;
      vm.handleNodeShow = 3;
      vm.currentPage = 1;
      vm.radio = '1'; //签约年度  --创建时间
      vm.isCheck = isCheck;
      var vm = this
      vm.derive = data.label
      vm.handleNodeShow = 3
      vm.currentPage = 1
      vm.radio = '1' //签约年度  --创建时间
      vm.isCheck = isCheck
    },
    collCheck: function (data, name) {
      // console.log(arguments)
      var vm = this;
      vm.diseaseReport = [];
      vm.datatotal = 0;
      var vm = this
      vm.diseaseReport = []
      vm.datatotal = 0
      vm.collect.forEach(function (item) {
        item.children.forEach(function (o) {
          if (o.code != data.code) {
            vm.$refs.collectTree.setChecked(o, false, true);
            vm.$refs.collectTree.setChecked(o, false, true)
          }
        });
        })
        if (data.id == item.id) {
          vm.$refs.collectTree.setChecked(item, vm.isCheck, true);
          vm.$refs.collectTree.setChecked(item, vm.isCheck, true)
        } else {
          item.children.forEach(function (o) {
            if (data.id == o.id) {
              vm.$refs.collectTree.setChecked(o, vm.isCheck, true);
              vm.$refs.collectTree.setChecked(o, vm.isCheck, true)
            }
          });
          })
        }
      });
      })
      vm.handleNodeId = 'huizongshuju';
      vm.collectCode = data.code;
      vm.handleNodeId = 'huizongshuju'
      vm.collectCode = data.code
      if (data.code == 1) {
        vm.rangeList = [
          {name: '按区', code: 'town'},
          {name: '按社区', code: 'hospital'},
          {name: '按团队', code: 'team'},
          {name: '按专科医院', code: 'specHos'}
        ];
        vm.specHosData();
          { name: '按区', code: 'town' },
          { name: '按社区', code: 'hospital' },
          { name: '按团队', code: 'team' },
          { name: '按专科医院', code: 'specHos' }
        ]
        vm.specHosData()
      } else {
        vm.rangeList = [
          {name: '按区', code: 'town'},
          {name: '按社区', code: 'hospital'},
          {name: '按团队', code: 'team'}
        ];
          { name: '按区', code: 'town' },
          { name: '按社区', code: 'hospital' },
          { name: '按团队', code: 'team' }
        ]
      }
    },
    // 点击明细查询树形图
    handleNodeClick: function (item, type) {
      var vm = this;
      vm.copdFilterCheckValue=[]
      vm.handleNodeId = 0;
      vm.derive = item.label;
      var vm = this
      vm.copdFilterCheckValue = []
      vm.handleNodeId = 0
      vm.derive = item.label
      // if(data.id>=33) {     //明细查询以下
      vm.handleNodeShow = 2; //  明细查询tabs为2
      vm.tableHeader = []; //  选择统计的数组
      vm.analyseData = []; //  明细查询数组
      vm.handleNodeShow = 2 //  明细查询tabs为2
      vm.tableHeader = [] //  选择统计的数组
      vm.analyseData = [] //  明细查询数组
      // }
      vm.handleNodeId = item.id; //切换后的id
      vm.radio = '1'; //签约年度  --创建时间
      vm.radio1 = ''; //咨询分析咨询状态
      vm.radio2 = '';
      vm.radio3 = '';
      vm.radio4 = '';
      vm.radio5 = '';
      vm.radio6 = '';
      vm.radio7 = '';
      vm.radio8 = '';
      vm.radio9 = '';
      vm.radio10 = '';
      vm.checkedCities = []; //签约人群清空
      vm.specialCheckedCities = []; //下转病种清空
      vm.serveSpecialCities = []; //服务类型清空
      vm.diseaseReport = [];
      vm.datatotal = 0;
      vm.handleNodeId = item.id //切换后的id
      vm.radio = '1' //签约年度  --创建时间
      vm.radio1 = '' //咨询分析咨询状态
      vm.radio2 = ''
      vm.radio3 = ''
      vm.radio4 = ''
      vm.radio5 = ''
      vm.radio6 = ''
      vm.radio7 = ''
      vm.radio8 = ''
      vm.radio9 = ''
      vm.radio10 = ''
      vm.checkedCities = [] //签约人群清空
      vm.specialCheckedCities = [] //下转病种清空
      vm.serveSpecialCities = [] //服务类型清空
      vm.diseaseReport = []
      vm.datatotal = 0
      vm.form = {
        endorseTheTicket: '',
        renew: '',
        backToSign: '',
        WeChat: ''
      };
      }
      vm.form2 = {
        juniorCollege: '',
        family: '',
@ -1136,7 +1152,7 @@ if(searchStr){
        (this.form6 = {
          resident: '',
          doctor: ''
        });
        })
      this.form7 = {
        resident: '',
        doctorOne: '',
@ -1154,7 +1170,7 @@ if(searchStr){
        }),
        (this.form8 = {
          renew: ''
        });
        })
      this.form11 = {
        patientName: '',
        status: '',
@ -1163,40 +1179,40 @@ if(searchStr){
        orgCode: '',
        doctor: '',
        archiveStatus: ''
      };
      initTime(vm); //时间初始化
      initScope(vm); //数据范围初始化
      vm.currentPage = 1;
      }
      initTime(vm) //时间初始化
      initScope(vm) //数据范围初始化
      vm.currentPage = 1
      if (type == 'zhuanke') {
        vm.handleNodeShow = 4;
        vm.radio = '2';
        vm.expertFamilyIdType = 'zhuanke' + item.id;
        vm.expertFamily(item.id);
        vm.handleNodeShow = 4
        vm.radio = '2'
        vm.expertFamilyIdType = 'zhuanke' + item.id
        vm.expertFamily(item.id)
      } else {
        vm.analysFunction(vm.handleNodeId); //明细查询列表查询
        vm.analysFunction(vm.handleNodeId) //明细查询列表查询
      }
      // 慢阻肺监测档案
      if (type == 7) {
        console.log("点击了");
        EventBus.$emit('copd-reset-select', {});
        console.log('点击了')
        EventBus.$emit('copd-reset-select', {})
      }
      // 家庭病床统计
      if (type == 8) {
        console.log(item, type, '---')
        EventBus.$emit('jtbc-table-page', {type, id: item.id});
        EventBus.$emit('jtbc-table-page', { type, id: item.id })
        console.log('家庭病床')
      }
    },
    expertFamily: function (id) {
      var vm = this;
      var vm = this
      if (id == '1') {
        vm.expertReplyList();
        vm.expertReplyList()
      }
    },
    // 邀请专科回复统计传参
    expertReply: function () {
      var vm = this;
      vm.searchJsonTime = vm.beforeReq();
      var vm = this
      vm.searchJsonTime = vm.beforeReq()
      return {
        // signYear :vm.radio=='1'?vm.chooseYear:'',     //签约年度
        team: vm.teamCode, //团队
@ -1207,29 +1223,29 @@ if(searchStr){
        endDate: vm.radio == '2' ? vm.searchJsonTime.end : '', //结束时间
        pageSize: vm.currentSize,
        page: vm.currentPage
      };
      }
    },
    // 邀请专科回复统计列表
    expertReplyList: function () {
      var vm = this;
      vm.loadingTwo = true;
      var vm = this
      vm.loadingTwo = true
      statisticAPI.consultHelpCountPage(vm.expertReply()).then(function (res) {
        if (res.status == 200) {
          vm.expertReplyData = res.detailModelList;
          vm.datatotal = res.totalCount;
          vm.loadingTwo = false;
          vm.expertReplyData = res.detailModelList
          vm.datatotal = res.totalCount
          vm.loadingTwo = false
        }
      });
      })
    },
    analysFunction: function (id) {
      var vm = this;
      var vm = this
      // idcard =  idcard.replace(/^(.{6})(?:\d+)(.{4})$/,"$1****$2")    身份证 医保卡 脱敏显示
      vm.detailFunction(id);
      vm.detailFunction(id)
    },
    // 下转预约获取医生,科室
    getReservationHosAndDept: function (data) {
      var vm = this;
      var vm = this
      statisticAPI
        .getReservationHosAndDept({
          hospital: data ? data : '',
@ -1238,35 +1254,35 @@ if(searchStr){
        .then(function (res) {
          if (res.status == 200) {
            if (data) {
              vm.administrativeOffice = [];
              vm.administrativeOffice = []
              res.data.forEach(function (item) {
                vm.administrativeOffice.push({
                  value: item.code,
                  label: item.name
                });
              });
                })
              })
            } else {
              vm.hospitalData = [];
              vm.hospitalData = []
              res.data.forEach(function (item) {
                vm.hospitalData.push({
                  value: item.code,
                  label: item.name
                });
              });
                })
              })
            }
          }
        });
        })
    },
    hospitalChange: function (data) {
      var vm = this;
      vm.getReservationHosAndDept(data);
      var vm = this
      vm.getReservationHosAndDept(data)
    },
    // 咨询分析
    getConsultList: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'statisticsExport/getConsultList';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'statisticsExport/getConsultList'
      statisticAPI
        .getConsultList({
          year: vm.radio == '1' ? vm.chooseYear : '', //签约年度
@ -1283,27 +1299,27 @@ if(searchStr){
        .then(function (res) {
          // console.log(res,"咨询分析")
          if (res.status == 200) {
            vm.analyseData = res.data.list;
            vm.datatotal = res.data.total;
            vm.loadingTwo = false;
            vm.analyseData = res.data.list
            vm.datatotal = res.data.total
            vm.loadingTwo = false
          }
          if (res.status == -1) {
            vm.loadingTwo = false;
            vm.$message.error(res.msg);
            vm.loadingTwo = false
            vm.$message.error(res.msg)
          }
        });
        })
    },
    // 签约分析
    getSignList: function () {
      var vm = this;
      vm.lastAjax = 'statisticsExport/getSignList';
      vm.loadingTwo = true;
      var handleDataList = [];
      vm.serverType = '';
      var vm = this
      vm.lastAjax = 'statisticsExport/getSignList'
      vm.loadingTwo = true
      var handleDataList = []
      vm.serverType = ''
      vm.handleData.forEach(function (res) {
        handleDataList.push(res.num);
      });
      vm.serverType = handleDataList.join(',');
        handleDataList.push(res.num)
      })
      vm.serverType = handleDataList.join(',')
      statisticAPI
        .getSignList({
          year: vm.radio == '1' ? vm.chooseYear : '', //签约年度
@ -1327,31 +1343,31 @@ if(searchStr){
          // console.log(res,"签约分析")
          if (res.status == 200) {
            res.data.list.forEach(function (item) {
              item.sscNum = item.sscNum.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2');
              item.idcardNum = item.idcardNum.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2');
            });
            vm.analyseData = res.data.list;
            vm.datatotal = res.data.total;
            vm.loadingTwo = false;
              item.sscNum = item.sscNum.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2')
              item.idcardNum = item.idcardNum.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2')
            })
            vm.analyseData = res.data.list
            vm.datatotal = res.data.total
            vm.loadingTwo = false
          }
          if (res.status == -1) {
            vm.loadingTwo = false;
            vm.$message.error(res.msg);
            vm.loadingTwo = false
            vm.$message.error(res.msg)
          }
        });
        })
    },
    // 专病分析
    getSickList: function () {
      var vm = this;
      var vm = this
      // vm.diseaseData
      vm.lastAjax = 'statisticsExport/getSickList';
      vm.loadingTwo = true;
      var handleDataList = [];
      vm.diseaseDataType = '';
      vm.lastAjax = 'statisticsExport/getSickList'
      vm.loadingTwo = true
      var handleDataList = []
      vm.diseaseDataType = ''
      vm.diseaseData.forEach(function (res) {
        handleDataList.push(res.code);
      });
      vm.diseaseDataType = handleDataList.join(',');
        handleDataList.push(res.code)
      })
      vm.diseaseDataType = handleDataList.join(',')
      statisticAPI
        .getSickList({
          year: vm.radio == '1' ? vm.chooseYear : '', //年度
@ -1374,24 +1390,24 @@ if(searchStr){
          // console.log(res,"专病分析")
          if (res.status == 200) {
            res.data.list.forEach(function (item) {
              item.sscNum = item.sscNum.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2');
              item.idcardNum = item.idcardNum.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2');
            });
            vm.analyseData = res.data.list;
            vm.datatotal = res.data.total;
            vm.loadingTwo = false;
              item.sscNum = item.sscNum.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2')
              item.idcardNum = item.idcardNum.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2')
            })
            vm.analyseData = res.data.list
            vm.datatotal = res.data.total
            vm.loadingTwo = false
          }
          if (res.status == -1) {
            vm.loadingTwo = false;
            vm.$message.error(res.msg);
            vm.loadingTwo = false
            vm.$message.error(res.msg)
          }
        });
        })
    },
    // 生日祝福分析明细
    getBirthdayPatientList: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'statisticsExport/getBirthdayPatientList';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'statisticsExport/getBirthdayPatientList'
      statisticAPI
        .getBirthdayPatientList({
          patientName: vm.form3.resident, // 居民姓名
@ -1411,24 +1427,24 @@ if(searchStr){
          if (res.status == 200) {
            // console.log(res,"Sddddd")
            res.data.detailModelList.forEach(function (item) {
              item.ssc = item.ssc.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2');
              item.idcard = item.idcard.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2');
            });
            vm.analyseData = res.data.detailModelList;
            vm.datatotal = res.data.total;
            vm.loadingTwo = false;
              item.ssc = item.ssc.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2')
              item.idcard = item.idcard.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2')
            })
            vm.analyseData = res.data.detailModelList
            vm.datatotal = res.data.total
            vm.loadingTwo = false
          }
          if (res.status == -1) {
            vm.loadingTwo = false;
            vm.$message.error(res.msg);
            vm.loadingTwo = false
            vm.$message.error(res.msg)
          }
        });
        })
    },
    // 长处方分析明细
    getPrescriptionList: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'statisticsExport/getPrescriptionList';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'statisticsExport/getPrescriptionList'
      statisticAPI
        .getPrescriptionList({
          patientName: vm.form5.resident, // 居民姓名
@ -1450,30 +1466,30 @@ if(searchStr){
          if (res.status == 200) {
            res.data.detailModelList.forEach(function (item) {
              // console.log(item.finish_time,"长处方分析")
              item.ssc = item.ssc.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2');
              item.idcard = item.idcard.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2');
            });
            vm.analyseData = res.data.detailModelList;
            vm.datatotal = res.data.total;
            vm.loadingTwo = false;
              item.ssc = item.ssc.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2')
              item.idcard = item.idcard.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2')
            })
            vm.analyseData = res.data.detailModelList
            vm.datatotal = res.data.total
            vm.loadingTwo = false
          }
          if (res.status == -1) {
            vm.loadingTwo = false;
            vm.$message.error(res.msg);
            vm.loadingTwo = false
            vm.$message.error(res.msg)
          }
        });
        })
    },
    // 上门服务分析明细
    getDoorServiceList: function () {
      var vm = this;
      vm.lastAjax = '';
      vm.loadingTwo = true;
      var handleDataList = [];
      vm.serviceTypeDataType = 'statisticsExport/getDoorServiceList';
      var vm = this
      vm.lastAjax = ''
      vm.loadingTwo = true
      var handleDataList = []
      vm.serviceTypeDataType = 'statisticsExport/getDoorServiceList'
      vm.serviceTypeData.forEach(function (res) {
        handleDataList.push(res.num);
      });
      vm.serviceTypeDataType = handleDataList.join(',');
        handleDataList.push(res.num)
      })
      vm.serviceTypeDataType = handleDataList.join(',')
      statisticAPI
        .getDoorServiceList({
          patientName: vm.form4.resident, // 居民姓名
@ -1494,22 +1510,22 @@ if(searchStr){
          if (res.status == 200) {
            // console.log(res,"上门服务分析明细")
            res.data.detailModelList.forEach(function (item) {
              item.ssc = item.ssc.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2');
              item.idcard = item.idcard.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2');
            });
            vm.analyseData = res.data.detailModelList;
            vm.datatotal = res.data.total;
            vm.loadingTwo = false;
              item.ssc = item.ssc.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2')
              item.idcard = item.idcard.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2')
            })
            vm.analyseData = res.data.detailModelList
            vm.datatotal = res.data.total
            vm.loadingTwo = false
          }
          if (res.status == -1) {
            vm.loadingTwo = false;
            vm.$message.error(res.msg);
            vm.loadingTwo = false
            vm.$message.error(res.msg)
          }
        });
        })
    },
    //体征数据分析传参
    getHealthParameter: function () {
      var vm = this;
      var vm = this
      return {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        team: vm.teamCode, //团队
@ -1524,29 +1540,29 @@ if(searchStr){
        serverType: vm.illness, //签约疾病类型
        pageSize: vm.currentSize,
        page: vm.currentPage
      };
      }
    },
    //体征数据分析
    physicalSignData: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'statisticsExport/getHealthList';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'statisticsExport/getHealthList'
      statisticAPI.getHealthList(vm.getHealthParameter()).then(function (res) {
        if (res.status == 200) {
          // console.log(res,"体征数据")
          vm.getHealthData = res.data.detailModelList;
          vm.datatotal = res.data.total;
          vm.loadingTwo = false;
          vm.getHealthData = res.data.detailModelList
          vm.datatotal = res.data.total
          vm.loadingTwo = false
        }
        if (res.status == -1) {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    //上转预约传参
    reservationParameter: function () {
      var vm = this;
      var vm = this
      return {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        team: vm.teamCode, //团队
@ -1562,30 +1578,30 @@ if(searchStr){
        reservationDoctorName: vm.form7.doctorTwo, //预约医生
        pageSize: vm.currentSize,
        page: vm.currentPage
      };
      }
    },
    // 上转预约
    upTransferAppointment: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'statisticsExport/getDoctorReservationList';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'statisticsExport/getDoctorReservationList'
      statisticAPI.getDoctorReservationList(vm.reservationParameter()).then(function (res) {
        if (res.status == 200) {
          // console.log(res,"上转预约")
          vm.reservationData = res.data.detailModelList;
          vm.datatotal = res.data.total;
          vm.loadingTwo = false;
          vm.getReservationHosAndDept();
          vm.reservationData = res.data.detailModelList
          vm.datatotal = res.data.total
          vm.loadingTwo = false
          vm.getReservationHosAndDept()
        }
        if (res.status == -1) {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    //微信绑定传参
    wexinBindingParameter: function () {
      var vm = this;
      var vm = this
      return {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        team: vm.teamCode, //团队
@ -1597,33 +1613,33 @@ if(searchStr){
        binging: vm.form8.renew, //是否绑定微信
        pageSize: vm.currentSize,
        page: vm.currentPage
      };
      }
    },
    // 微信绑定
    wechatBinding: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'statisticsExport/getWexinBindingList';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'statisticsExport/getWexinBindingList'
      statisticAPI.getWexinBindingList(vm.wexinBindingParameter()).then(function (res) {
        if (res.status == 200) {
          // console.log(res,"微信绑定")
          res.data.detailModelList.forEach(function (res) {
            res.sex = res.sex == 1 ? '男' : '女';
            res.apply_date = new Date(res.apply_date).format('yyyy-MM-dd HH:mm:ss');
          });
          vm.wexinBindingData = res.data.detailModelList;
          vm.datatotal = res.data.total;
          vm.loadingTwo = false;
            res.sex = res.sex == 1 ? '男' : '女'
            res.apply_date = new Date(res.apply_date).format('yyyy-MM-dd HH:mm:ss')
          })
          vm.wexinBindingData = res.data.detailModelList
          vm.datatotal = res.data.total
          vm.loadingTwo = false
        }
        if (res.status == -1) {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    // 居民积分明细传参
    residentIntegralParameter: function () {
      var vm = this;
      var vm = this
      var parameter = {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        team: vm.teamCode, //团队
@ -1636,32 +1652,32 @@ if(searchStr){
        page: vm.currentPage,
        patientName: vm.form9.resident || '',
        doctorName: vm.form9.doctorTwo || ''
      };
      return parameter;
      }
      return parameter
    },
    // 居民积分明细
    residentIntegral: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'statisticsExport/patinetIntegralAnalysis';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'statisticsExport/patinetIntegralAnalysis'
      statisticAPI.patinetIntegralAnalysis(vm.residentIntegralParameter()).then(function (res) {
        if (res.status == 200) {
          vm.loadingTwo = false;
          vm.loadingTwo = false
          res.data.list.forEach(function (item) {
            item.ssc = item.ssc.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2');
            item.ssc = item.ssc.replace(/^(.{4})(?:\d+)(.{1})$/, '$1****$2')
            // item.idcard = item.idcard.replace(/^(.{6})(?:\d+)(.{4})$/,"$1****$2")
          });
          vm.jifenData = res.data.list;
          vm.datatotal = res.data.total;
          })
          vm.jifenData = res.data.list
          vm.datatotal = res.data.total
        } else {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    // 入户访视明细传参
    interviewParameter: function () {
      var vm = this;
      var vm = this
      var parameter = {
        // signYear:'2020',     //签约年度
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
@ -1675,29 +1691,29 @@ if(searchStr){
        page: vm.currentPage,
        patientName: vm.form10.resident || '',
        doctorName: vm.form10.doctorTwo || ''
      };
      return parameter;
      }
      return parameter
    },
    // 入户访视
    interview: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'statisticsExport/findPatientFollowListByCondition';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'statisticsExport/findPatientFollowListByCondition'
      statisticAPI.findPatientFollowListByCondition(vm.interviewParameter()).then(function (res) {
        if (res.status == 200) {
          vm.loadingTwo = false;
          vm.ruhuData = res.data.list;
          vm.datatotal = res.data.total;
          vm.loadingTwo = false
          vm.ruhuData = res.data.list
          vm.datatotal = res.data.total
        } else {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    //邀请专科回复明细传参
    invitationDetailsParameter: function () {
      var vm = this;
      vm.searchJsonTime = vm.beforeReq();
      var vm = this
      vm.searchJsonTime = vm.beforeReq()
      var parameter = {
        patientName: vm.form12.patientName,
        name: '',
@ -1713,32 +1729,32 @@ if(searchStr){
        hospital: vm.communityCode, //医院
        pageSize: vm.currentSize,
        page: vm.currentPage
      };
      return parameter;
      }
      return parameter
    },
    //邀请专科回复明细列表
    invitationDetails: function () {
      var vm = this;
      vm.loadingTwo = true;
      var vm = this
      vm.loadingTwo = true
      statisticAPI.consultHelpDetailPage(vm.invitationDetailsParameter()).then(function (res) {
        if (res.status == 200) {
          vm.loadingTwo = false;
          vm.loadingTwo = false
          res.detailModelList.forEach(function (v) {
            v.sex = v.sex == 1 ? '男' : '女';
          });
          vm.invitationList = res.detailModelList;
          vm.datatotal = res.totalCount;
            v.sex = v.sex == 1 ? '男' : '女'
          })
          vm.invitationList = res.detailModelList
          vm.datatotal = res.totalCount
        } else {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    // 康复下转明细传参
    recoveryParameter: function () {
      var vm = this;
      vm.searchJsonTime = vm.beforeReq();
      var vm = this
      vm.searchJsonTime = vm.beforeReq()
      var parameter = {
        // signYear:vm.radio=='1'?vm.chooseYear:'',     //签约年度
        // team:vm.teamCode,     //团队
@ -1757,32 +1773,32 @@ if(searchStr){
        doctor: vm.form11.doctor,
        archiveStatus: vm.form11.archiveStatus,
        patientType: vm.form11.patientType
      };
      return parameter;
      }
      return parameter
    },
    // 康复下转
    recovery: function () {
      var vm = this;
      vm.loadingTwo = true;
      vm.lastAjax = 'doctor/specialist/rehabilitation/rehabilitationPatientInfo';
      var vm = this
      vm.loadingTwo = true
      vm.lastAjax = 'doctor/specialist/rehabilitation/rehabilitationPatientInfo'
      statisticAPI.rehabilitationPatientInfo(vm.recoveryParameter()).then(function (res) {
        if (res.status == 200) {
          vm.loadingTwo = false;
          vm.loadingTwo = false
          res.detailModelList.forEach(function (v) {
            v.sex = v.sex == 1 ? '男' : '女';
          });
          vm.recoveryList = res.detailModelList;
          vm.datatotal = res.totalCount;
            v.sex = v.sex == 1 ? '男' : '女'
          })
          vm.recoveryList = res.detailModelList
          vm.datatotal = res.totalCount
        } else {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    //专病汇总传参
    getSpecialParameter: function () {
      var vm = this;
      var vm = this
      var parameter = {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        team: vm.teamCode, //团队
@ -1794,46 +1810,46 @@ if(searchStr){
        menu: vm.beforeReq().checked
        // pageSize:vm.currentSize,
        // page:vm.currentPage,
      };
      return parameter;
      }
      return parameter
    },
    // 专病汇总
    getSpecialDiseaseReport: function () {
      var vm = this;
      vm.loadingTwo = true;
      var vm = this
      vm.loadingTwo = true
      statisticAPI.getSpecialDiseaseReport(vm.getSpecialParameter()).then(function (res) {
        if (res.status == 200) {
          vm.indicator = [];
          vm.indicator = []
          res.data.column.forEach(function (v) {
            if (v == 'kfxzrs') {
              vm.indicator.push('康复计划人数');
              vm.indicator.push('康复计划人数')
            }
            if (v == 'kfxzrc') {
              vm.indicator.push('康复计划数');
              vm.indicator.push('康复计划数')
            }
            if (v == 'szrs') {
              vm.indicator.push('预约挂号人数');
              vm.indicator.push('预约挂号人数')
            }
            if (v == 'szrc') {
              vm.indicator.push('预约挂号数');
              vm.indicator.push('预约挂号数')
            }
          });
          vm.loadingTwo = false;
          vm.diseaseReport = res.data.list;
          vm.diseaseColumn = res.data.column;
          })
          vm.loadingTwo = false
          vm.diseaseReport = res.data.list
          vm.diseaseColumn = res.data.column
          // '康复计划人数','康复计划数','预约挂号人数','预约挂号数'
          vm.diseaseHeader = res.data.header;
          vm.datatotal = res.data.list.length;
          vm.diseaseHeader = res.data.header
          vm.datatotal = res.data.list.length
        } else {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    //体征分析传参
    getDeviceParameter: function () {
      var vm = this;
      var vm = this
      var parameter = {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        team: vm.teamCode, //团队
@ -1846,31 +1862,31 @@ if(searchStr){
        menu: vm.beforeReq().checked
        // pageSize:vm.currentSize,
        // page:vm.currentPage,
      };
      return parameter;
      }
      return parameter
    },
    // 体征分析数据
    getDeviceHealthReport: function () {
      var vm = this;
      vm.loadingTwo = true;
      var vm = this
      vm.loadingTwo = true
      statisticAPI.getDeviceHealthReport(vm.getDeviceParameter()).then(function (res) {
        if (res.status == 200) {
          vm.loadingTwo = false;
          vm.loadingTwo = false
          // console.log(res,"sss")
          vm.getDeviceReport = res.data.list;
          vm.getDeviceColumn = res.data.column;
          vm.getDeviceHeader = res.data.header;
          vm.datatotal = res.data.list.length;
          vm.getDeviceReport = res.data.list
          vm.getDeviceColumn = res.data.column
          vm.getDeviceHeader = res.data.header
          vm.datatotal = res.data.list.length
        } else {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    //上门汇总传参
    getDoorParameter: function () {
      var vm = this;
      var vm = this
      var parameter = {
        signYear: vm.radio == '1' ? vm.chooseYear : '', //签约年度
        team: vm.teamCode, //团队
@ -1883,133 +1899,133 @@ if(searchStr){
        menu: vm.beforeReq().checked
        // pageSize:vm.currentSize,
        // page:vm.currentPage,
      };
      return parameter;
      }
      return parameter
    },
    // 上门汇总
    getDoorServerOrderReport: function () {
      var vm = this;
      vm.loadingTwo = true;
      var vm = this
      vm.loadingTwo = true
      statisticAPI.getDoorServerOrderReport(vm.getDoorParameter()).then(function (res) {
        if (res.status == 200) {
          vm.loadingTwo = false;
          vm.loadingTwo = false
          // console.log(res,"sss")
          vm.getDoorReport = res.data.list;
          vm.getDoorColumn = res.data.column;
          vm.getDoorHeader = res.data.header;
          vm.datatotal = res.data.list.length;
          vm.getDoorReport = res.data.list
          vm.getDoorColumn = res.data.column
          vm.getDoorHeader = res.data.header
          vm.datatotal = res.data.list.length
        } else {
          vm.loadingTwo = false;
          vm.$message.error(res.msg);
          vm.loadingTwo = false
          vm.$message.error(res.msg)
        }
      });
      })
    },
    getTreeList: function () {
      var vm = this;
      statisticAPI.exportTreeList({rang: vm.rangeCode}).then(function (res) {
      var vm = this
      statisticAPI.exportTreeList({ rang: vm.rangeCode }).then(function (res) {
        if (res.status == 200) {
          console.log(res, 'Sddd')
          ;(vm.treedata = []), (jindex = 0);
          ;(vm.treedata = []), (jindex = 0)
          _.each(res.data, function (item, index) {
            vm.treedata.push({
              id: 'p_' + jindex,
              label: index,
              children: []
            });
            })
            _.each(item, function (citem, cindex) {
              vm.treedata[jindex].children.push({
                id: cindex,
                label: citem
              });
            });
            jindex++;
          });
              })
            })
            jindex++
          })
        }
      });
      })
    },
    beforeReq: function (flag) {
      var vm = this,
        startDate = '',
        endDate = '',
        checked = [];
        checked = []
      if (vm.radio == '1') {
        if (vm.chooseYear == 2022) {
          startDate = '2022-07-01';
          endDate = '2022-12-31';
          startDate = '2022-07-01'
          endDate = '2022-12-31'
        } else if (vm.chooseYear > 2022) {
          startDate = vm.chooseYear + '-01-01';
          endDate = getEndDate(vm.chooseYear);
          startDate = vm.chooseYear + '-01-01'
          endDate = getEndDate(vm.chooseYear)
        } else {
          startDate = getStartDate(vm.chooseYear);
          endDate = getEndDate(vm.chooseYear);
          startDate = getStartDate(vm.chooseYear)
          endDate = getEndDate(vm.chooseYear)
        }
        vm.timeLevel = 2;
        vm.timeLevel = 2
      } else {
        if (!vm.start && !vm.end) {
          this.$message({
            message: '请选择创建时间',
            type: 'warning'
          });
          return false;
          })
          return false
        } else {
          if (vm.start > vm.end) {
            this.$message({
              message: '开始时间应早于结束时间',
              type: 'warning'
            });
            return false;
            })
            return false
          } else {
            startDate = vm.start;
            endDate = vm.end;
            vm.timeLevel = 1;
            startDate = vm.start
            endDate = vm.end
            vm.timeLevel = 1
          }
        }
      }
      if (vm.handleNodeId == 0 || vm.handleNodeId == 'huizongshuju') {
        var checkTree;
        var checkTree
        if (vm.tabsId == 1) {
          checkTree = vm.$refs.tree.getCheckedNodes(true);
          checkTree = vm.$refs.tree.getCheckedNodes(true)
        } else {
          checkTree = vm.$refs.collectTree.getCheckedNodes(true);
          checkTree = vm.$refs.collectTree.getCheckedNodes(true)
        }
        if (checkTree.length) {
          if (!flag) {
            vm.tableHeader = [];
            vm.tableHeader = []
          }
          _.each(checkTree, function (item, index) {
            if (!flag) {
              vm.tableHeader.push({prop: item.label, label: item.label});
              vm.tableHeader.push({ prop: item.label, label: item.label })
            }
            checked.push(item.id);
          });
            checked.push(item.id)
          })
        } else {
          this.$message({
            message: '请选择搜索指标!',
            type: 'warning'
          });
          return false;
          })
          return false
        }
      } else if (vm.handleNodeId == 2) {
        this.$message({
          message: '请选择明细查询!',
          type: 'warning'
        });
        return false;
        })
        return false
      }
      return {start: startDate, end: endDate, checked: checked.join(',')};
      return { start: startDate, end: endDate, checked: checked.join(',') }
    },
    // 查询
    searchHandle: function (status) {
      // console.log(this.beforeReq())
      var vm = this;
      vm.searchJsonTime = vm.beforeReq();
      vm.currentPage = 1;
      var vm = this
      vm.searchJsonTime = vm.beforeReq()
      vm.currentPage = 1
      if (this.radio1 == 1) {
        this.radio1Show = true;
        this.radio1Show = true
      } else {
        this.radio1Show = false;
        this.radio1Show = false
      }
      if (vm.handleNodeId == 0) {
        if (vm.searchJsonTime) {
@ -2024,33 +2040,33 @@ if(searchStr){
            size: vm.currentSize,
            page: vm.currentPage,
            timeLevel: vm.timeLevel
          };
          vm.getStatisticDataList();
          }
          vm.getStatisticDataList()
        }
      } else if (vm.collectCode == 1) {
        // 专病汇总
        vm.getSpecialDiseaseReport();
        vm.getSpecialDiseaseReport()
      } else if (vm.collectCode == 2) {
        // 体征数据汇总
        vm.getDeviceHealthReport();
        vm.getDeviceHealthReport()
      } else if (vm.collectCode == 3) {
        // 上门服务汇总
        vm.getDoorServerOrderReport();
        vm.getDoorServerOrderReport()
      } else {
        vm.detailFunction(vm.handleNodeId, status);
        vm.detailFunction(vm.handleNodeId, status)
      }
    },
    getStatisticDataList: function () {
      var vm = this;
      vm.isloading = true;
      var params = JSON.parse(JSON.stringify(vm.searchJson));
      params.page = vm.currentPage;
      var vm = this
      vm.isloading = true
      var params = JSON.parse(JSON.stringify(vm.searchJson))
      params.page = vm.currentPage
      statisticAPI.getStatisticDataList(params).then(function (res) {
        if (res.status == 200) {
          vm.tabledata = res.data.data;
          vm.datatotal = res.data.total;
          vm.tabledata = res.data.data
          vm.datatotal = res.data.total
          if (vm.tabledata.length) {
            vm.tableHeader = [];
            vm.tableHeader = []
            _.each(vm.tabledata[0], function (item, index) {
              if (
                index != 'town' &&
@ -2062,14 +2078,14 @@ if(searchStr){
                index != 'code' &&
                index != 'name'
              )
                vm.tableHeader.push({prop: index, label: index});
            });
                vm.tableHeader.push({ prop: index, label: index })
            })
          }
        } else {
          vm.$message.error(res.msg);
          vm.$message.error(res.msg)
        }
        vm.isloading = false;
      });
        vm.isloading = false
      })
    },
    // 导出
    exportHandle: function () {
@ -2077,15 +2093,15 @@ if(searchStr){
      // var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
      // saveAs(blob, "hello world.txt");
      // return
      var vm = this;
      var vm = this
      var vm = this,
        searchJson = undefined;
      vm.fullscreenLoading = true;
      searchJson = vm.beforeReq('export');
      var areaCode = vm.areaCode == '350200' ? '' : vm.areaCode;
      var chooseYear = vm.radio == '1' ? vm.chooseYear : ''; //年份
      var startDate = vm.radio == '2' ? vm.searchJsonTime.start : '';
      var endDate = vm.radio == '2' ? vm.searchJsonTime.end : '';
        searchJson = undefined
      vm.fullscreenLoading = true
      searchJson = vm.beforeReq('export')
      var areaCode = vm.areaCode == '350200' ? '' : vm.areaCode
      var chooseYear = vm.radio == '1' ? vm.chooseYear : '' //年份
      var startDate = vm.radio == '2' ? vm.searchJsonTime.start : ''
      var endDate = vm.radio == '2' ? vm.searchJsonTime.end : ''
      if (vm.handleNodeId == 0) {
        if (searchJson) {
          statisticAPI
@ -2103,7 +2119,7 @@ if(searchStr){
              '综合查询.xls'
            )
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
              // toastr.info("导出成功")
              // var blob = new Blob(["Hello, world!"]);
@ -2113,8 +2129,8 @@ if(searchStr){
              // FileSaver()
            })
            .catch(function (err) {
              console.error(err);
            });
              console.error(err)
            })
          // let str = httpRequest.server + 'statisticsExport/export?startDate='+searchJson.start+'&endDate='+searchJson.end+'&quotaStr='+searchJson.checked+'&range='+vm.rangeCode+'&area='+areaCode+'&hospital='+vm.communityCode+'&team='+vm.teamCode+'&timeLevel='+vm.timeLevel
          // window.location.href = str
        }
@ -2136,19 +2152,19 @@ if(searchStr){
              vm.derive + '.xls'
            )
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
          // var str = httpRequest.server + 'statisticsExport/exportConsultList?year='+chooseYear+'&startDate='+startDate+'&endDate='+endDate+
          // '&status='+vm.radio1+'&area='+areaCode+'&hospital='+vm.communityCode+'&rang='+vm.rangeCode+'&team='+vm.teamCode
          // window.location.href = str
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 34) {
        // 签约分析
@ -2174,15 +2190,15 @@ if(searchStr){
              vm.derive + '.xls'
            )
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 35) {
        // 专病分析
@ -2207,15 +2223,15 @@ if(searchStr){
              vm.derive + '.xls'
            )
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 36) {
        // 生日祝福分析
@ -2239,15 +2255,15 @@ if(searchStr){
              vm.derive + '.xls'
            )
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 37) {
        // 上门服务分析
@ -2272,15 +2288,15 @@ if(searchStr){
              vm.derive + '.xls'
            )
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 38) {
        // 长处方分析
@ -2306,15 +2322,15 @@ if(searchStr){
              vm.derive + '.xls'
            )
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 39) {
        // 体征数据
@ -2322,15 +2338,15 @@ if(searchStr){
          statisticAPI
            .exportHealthList(vm.getHealthParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 40) {
        // 上转预约
@ -2338,15 +2354,15 @@ if(searchStr){
          statisticAPI
            .exportDoctorReservationList(vm.reservationParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 41) {
        // 微信绑定数据
@ -2354,34 +2370,31 @@ if(searchStr){
          statisticAPI
            .exportWexinBindingList(vm.wexinBindingParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 42) {
        // 居民积分明细导出
        if (vm.jifenData.length != 0) {
          statisticAPI
            .exPatinetIntegralAnalysis(
              _.assign({}, vm.residentIntegralParameter(), {pageSize: 99999}),
              vm.derive + '.xls'
            )
            .exPatinetIntegralAnalysis(_.assign({}, vm.residentIntegralParameter(), { pageSize: 99999 }), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 43) {
        // 入户访视导出
@ -2389,15 +2402,15 @@ if(searchStr){
          statisticAPI
            .exfindPatientFollowListByCondition(vm.interviewParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 44) {
        // 康复下转导出
@ -2405,37 +2418,37 @@ if(searchStr){
          statisticAPI
            .exportRehabilitationPatientInfo(vm.recoveryParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.handleNodeId == 45) {
        // 邀请专科回复明细导出
        if (vm.invitationList.length != 0) {
          var p = _.assign({}, vm.invitationDetailsParameter());
          var docInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'));
          delete p.page;
          delete p.pageSize;
          p.doctor = docInfo.uid;
          var p = _.assign({}, vm.invitationDetailsParameter())
          var docInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'))
          delete p.page
          delete p.pageSize
          p.doctor = docInfo.uid
          statisticAPI
            .exportConsultHelpDetailPage(p, vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.collectCode == 1) {
        // 专病汇总
@ -2443,15 +2456,15 @@ if(searchStr){
          statisticAPI
            .exportSpecialDiseaseReport(vm.getSpecialParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.collectCode == 2) {
        // 体征分析
@ -2459,15 +2472,15 @@ if(searchStr){
          statisticAPI
            .exportDeviceHealthReport(vm.getDeviceParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.collectCode == 3) {
        // 上门汇总
@ -2475,15 +2488,15 @@ if(searchStr){
          statisticAPI
            .exportDoorServerOrderReport(vm.getDoorParameter(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      } else if (vm.expertFamilyIdType == 'zhuanke1') {
        // 邀请专科回复统计导出
@ -2491,261 +2504,259 @@ if(searchStr){
          statisticAPI
            .exportConsultHelpCountPage(vm.expertReply(), vm.derive + '.xls')
            .then(function (res) {
              vm.fullscreenLoading = false;
              vm.fullscreenLoading = false
            })
            .catch(function (err) {
              toastr.info(err);
              vm.fullscreenLoading = false;
              console.error(err);
            });
              toastr.info(err)
              vm.fullscreenLoading = false
              console.error(err)
            })
        } else {
          vm.fullscreenLoading = false;
          vm.fullscreenLoading = false
        }
      }
    },
    backClick: function () {
      history.go(-1);
      history.go(-1)
    },
    bindEvent: function () {
      var vm = this;
      var vm = this
      //监听后退按钮的操作
      EventBus.$on('back-click', function (arg) {
        EventBus.$emit('update-statistics-time', {}); //更新统计时间
        vm.backClick();
      });
        EventBus.$emit('update-statistics-time', {}) //更新统计时间
        vm.backClick()
      })
      //监听页面刷新
      EventBus.$on('refresh-click', function (arg) {
        EventBus.$emit('update-statistics-time', {}); //更新统计时间
        initData(vm);
      });
      $('#main').removeClass('c-hide');
        EventBus.$emit('update-statistics-time', {}) //更新统计时间
        initData(vm)
      })
      $('#main').removeClass('c-hide')
    },
    detailFunction: function (id, status) {
      var vm = this;
      window.ajaxInsArr[vm.lastAjax] && window.ajaxInsArr[vm.lastAjax].abort();
      var vm = this
      window.ajaxInsArr[vm.lastAjax] && window.ajaxInsArr[vm.lastAjax].abort()
      if (id == 33) {
        // 咨询分析
        vm.getConsultList();
        vm.getConsultList()
      } else if (id == 34) {
        // 签约分析
        vm.getSignList();
        vm.getSignList()
      } else if (id == 35) {
        // 专病分析
        vm.getSickList();
        vm.getSickList()
      } else if (id == 36) {
        // 生日祝福分析
        vm.getBirthdayPatientList();
        vm.getBirthdayPatientList()
      } else if (id == 37) {
        // 上门服务分析
        vm.getDoorServiceList();
        vm.getDoorServiceList()
      } else if (id == 38) {
        // 长处方分析
        vm.getPrescriptionList();
        vm.getPrescriptionList()
      } else if (id == 39) {
        // 体征数据
        vm.physicalSignData();
        vm.physicalSignData()
      } else if (id == 40) {
        // 上转预约
        vm.upTransferAppointment();
        vm.upTransferAppointment()
      } else if (id == 41) {
        // 微信绑定
        vm.wechatBinding();
        vm.wechatBinding()
      } else if (id == 42) {
        // 居民积分明细
        vm.residentIntegral();
        vm.residentIntegral()
      } else if (id == 43) {
        // 入户访视
        vm.interview();
        vm.interview()
      } else if (id == 44) {
        // 康复下转
        vm.radio = '2';
        vm.recovery();
        vm.radio = '2'
        vm.recovery()
        if (!status) {
          vm.pullDown();
          vm.pullDown()
        }
      } else if (id == 45) {
        vm.radio = '2';
        vm.invitationDetails();
        vm.radio = '2'
        vm.invitationDetails()
        if (!status) {
          vm.getSpecialistHospital(); //获取专科医院
          vm.getSpecialistHospital() //获取专科医院
        }
      } else if (vm.expertFamilyIdType == 'zhuanke1') {
        vm.expertReplyList();
        vm.expertReplyList()
      }
    },
    getSpecialistHospital: function () {
      var vm = this;
      vm.specializedHospital = [{value: '', label: '全部'}];
      var vm = this
      vm.specializedHospital = [{ value: '', label: '全部' }]
      homeAPI.getSpecialistHospital().then(function (res) {
        console.log(res, 'Sdddddd');
        console.log(res, 'Sdddddd')
        if (res.status == 200) {
          res.data.forEach(function (v) {
            vm.specializedHospital.push({
              value: v.code,
              label: v.name
            });
          });
            })
          })
        }
      });
      })
    },
    pullDown: function () {
      this.deorsumvergenceStatusFunction('archive_status'); //档案状态
      this.deorsumvergenceStatusFunction('rehabilitation_status'); //下转状态
      this.deorsumvergenceStatusFunction('rehabilitation_hospital'); //下转医院
      this.hospitalsByType();
      this.deorsumvergenceStatusFunction('archive_status') //档案状态
      this.deorsumvergenceStatusFunction('rehabilitation_status') //下转状态
      this.deorsumvergenceStatusFunction('rehabilitation_hospital') //下转医院
      this.hospitalsByType()
    },
    // 下一页  上一页
    handleCurrentChange: function (val) {
      var vm = this;
      vm.currentPage = val;
      var vm = this
      vm.currentPage = val
      if (vm.handleNodeId == 0) {
        vm.getStatisticDataList();
        vm.getStatisticDataList()
      } else {
        vm.detailFunction(vm.handleNodeId);
        vm.detailFunction(vm.handleNodeId)
      }
    },
    //获取省市区  type:区3
    getDistrict: function (type, code, name) {
      var vm = this,
        list = [],
        param = '';
        param = ''
      if (type == 3) {
        list = [{code: code, name: name}];
        param = 'area';
        list = [{ code: code, name: name }]
        param = 'area'
      } else if (type == 5) {
        list = [{code: '', name: '全部'}];
        param = 'community';
        list = [{ code: '', name: '全部' }]
        param = 'community'
      }
      var params = {
        type: type,
        code: code
      };
      }
      homeAPI.getDistrict(params).then(function (res) {
        if (res.status == 200) {
          vm[param + 'List'] = list.concat(res.list);
          vm[param + 'Code'] = vm[param + 'List'][0].code;
          vm[param + 'List'] = list.concat(res.list)
          vm[param + 'Code'] = vm[param + 'List'][0].code
        } else {
          vm.$message.error(res.msg);
          vm.$message.error(res.msg)
        }
      });
      })
    },
    selChange: function (type) {
      var vm = this,
        name = '';
        name = ''
      if (type == 3) {
        vm.initSelOption('community');
        vm.initSelOption('team');
        vm.getCommunityHospital();
        vm.initSelOption('community')
        vm.initSelOption('team')
        vm.getCommunityHospital()
      } else if (type == 5) {
        vm.initSelOption('team');
        vm.teamListByArea();
        vm.initSelOption('team')
        vm.teamListByArea()
      }
    },
    initSelOption: function (param) {
      var vm = this;
      vm[param + 'List'] = [{code: '', name: '全部'}];
      var vm = this
      vm[param + 'List'] = [{ code: '', name: '全部' }]
      if (param == 'team') {
        vm[param + 'List'] = [{id: '', name: '全部'}];
        vm[param + 'List'] = [{ id: '', name: '全部' }]
      }
      vm[param + 'Code'] = vm[param + 'List'][0].code || vm[param + 'List'][0].id;
      vm[param + 'Code'] = vm[param + 'List'][0].code || vm[param + 'List'][0].id
    },
    getCommunityHospital: function () {
      var vm = this,
        list = [{code: '', name: '全部'}],
        param = 'community';
      homeAPI.getCommunityHospital({area: vm.areaCode == '350200' ? '' : vm.areaCode}).then(function (res) {
        list = [{ code: '', name: '全部' }],
        param = 'community'
      homeAPI.getCommunityHospital({ area: vm.areaCode == '350200' ? '' : vm.areaCode }).then(function (res) {
        if (res.status == 200) {
          vm[param + 'List'] = list.concat(res.data);
          vm[param + 'Code'] = vm[param + 'List'][0].code;
          vm[param + 'List'] = list.concat(res.data)
          vm[param + 'Code'] = vm[param + 'List'][0].code
        } else {
          vm.$message.error(res.msg);
          vm.$message.error(res.msg)
        }
      });
      })
    },
    teamListByArea: function () {
      var vm = this,
        list = [{id: '', name: '全部'}],
        param = 'team';
      homeAPI
        .teamListByArea({area: vm.areaCode == '350200' ? '' : vm.areaCode, hospital: vm.communityCode})
        .then(function (res) {
          if (res.status == 200) {
            vm[param + 'List'] = list.concat(res.data);
            vm[param + 'Code'] = vm[param + 'List'][0].id;
          } else {
            vm.$message.error(res.msg);
          }
        });
        list = [{ id: '', name: '全部' }],
        param = 'team'
      homeAPI.teamListByArea({ area: vm.areaCode == '350200' ? '' : vm.areaCode, hospital: vm.communityCode }).then(function (res) {
        if (res.status == 200) {
          vm[param + 'List'] = list.concat(res.data)
          vm[param + 'Code'] = vm[param + 'List'][0].id
        } else {
          vm.$message.error(res.msg)
        }
      })
    },
    // 慢阻肺搜索左侧字段变化
    onCopdFilterChange(event) {
      EventBus.$emit("copd-record-filter-change", event);
      EventBus.$emit('copd-record-filter-change', event)
    }
  }
});
})
// 初始化时间
function initTime(vm) {
  var now = new Date();
  vm.end = now.format('yyyy-MM-dd');
  var start = now.getTime() - 30 * 24 * 60 * 60 * 1000;
  vm.start = new Date(start).format('yyyy-MM-dd');
  var now = new Date()
  vm.end = now.format('yyyy-MM-dd')
  var start = now.getTime() - 30 * 24 * 60 * 60 * 1000
  vm.start = new Date(start).format('yyyy-MM-dd')
  vm.nowyear = vm.chooseYear = now.getFullYear();
  vm.nowmonth = now.getMonth() + 1;
  vm.years = [];
  vm.nowyear = vm.chooseYear = now.getFullYear()
  vm.nowmonth = now.getMonth() + 1
  vm.years = []
  for (i = vm.nowyear; i >= 2016; i--) {
    vm.years.push(i);
    vm.years.push(i)
  }
}
// 数据范围初始化
function initScope(vm) {
  //获得缓存中缓存的角色权限
  var userRole = window.sessionStorage.getItem('selectedRole');
  var userRole = window.sessionStorage.getItem('selectedRole')
  if (!userRole) {
    return false;
    return false
  }
  vm.userRole = JSON.parse(userRole);
  vm.userRole = JSON.parse(userRole)
  //level:2、市,3、区,4、社区,5、团队
  vm.initareaLevel = vm.areaLevel = vm.userRole.code == '350200' ? 2 : vm.userRole.code.length == 6 ? 3 : 4;
  vm.initlevel = vm.level = vm.userRole.code == '350200' ? 4 : vm.userRole.code.length == 6 ? 3 : 2;
  vm.initareaLevel = vm.areaLevel = vm.userRole.code == '350200' ? 2 : vm.userRole.code.length == 6 ? 3 : 4
  vm.initlevel = vm.level = vm.userRole.code == '350200' ? 4 : vm.userRole.code.length == 6 ? 3 : 2
  //	vm.lowLevel = vm.initlowLevel = vm.userRole.code == '350200' ? 3 : vm.userRole.code.length == 6 ? 2 : 1;
  vm.initarea = vm.area = vm.userRole.code;
  vm.areaTitle = vm.userRole.name;
  vm.initarea = vm.area = vm.userRole.code
  vm.areaTitle = vm.userRole.name
  vm.rangeList = [
    {name: '按区', code: 'town'},
    {name: '按社区', code: 'hospital'},
    {name: '按团队', code: 'team'}
  ];
    { name: '按区', code: 'town' },
    { name: '按社区', code: 'hospital' },
    { name: '按团队', code: 'team' }
  ]
  if (vm.initlevel == 4) {
    //市获取区
    vm.getDistrict(3, vm.initarea, vm.areaTitle.substr(0, 3));
    vm.rangeCode = vm.rangeList[0].code;
    vm.getDistrict(3, vm.initarea, vm.areaTitle.substr(0, 3))
    vm.rangeCode = vm.rangeList[0].code
  } else if (vm.initlevel == 3) {
    //区获取社区
    vm.areaList = [{code: vm.initarea, name: vm.areaTitle}];
    vm.areaCode = vm.initarea;
    vm.rangeCode = vm.rangeList[0].code;
    vm.areaList = [{ code: vm.initarea, name: vm.areaTitle }]
    vm.areaCode = vm.initarea
    vm.rangeCode = vm.rangeList[0].code
  } else if (vm.initlevel == 2) {
    //社区获取团队
    vm.communityList = [{code: vm.initarea, name: vm.areaTitle}];
    vm.communityCode = vm.initarea;
    vm.rangeList.shift();
    vm.rangeCode = vm.rangeList[0].code;
    vm.communityList = [{ code: vm.initarea, name: vm.areaTitle }]
    vm.communityCode = vm.initarea
    vm.rangeList.shift()
    vm.rangeCode = vm.rangeList[0].code
  }
  vm.searchJson.range = vm.rangeCode;
  vm.searchJson.range = vm.rangeCode
}
function initData(vm) {
  initScope(vm);
  initScope(vm)
  //初始化时间
  initTime(vm);
  initTime(vm)
  vm.tabledata = [];
  vm.bindEvent();
  vm.tabledata = []
  vm.bindEvent()
}

+ 30 - 1
component/common/jtbc.css

@ -33,6 +33,24 @@
.c-909399{
  color: #909399;
}
.c-ff5e6c{
  color: #ff5e6c;
}
.c-17b3ec{
  color: #17b3ec;
}
.c-20d7ad{
  color: #20d7ad;
}
.bg-ff5e6c{
  background-color: #ff5e6c;
}
.bg-17b3ec{
  background-color: #17b3ec;
}
.bg-20d7ad{
  background-color: #20d7ad;
}
.form-item{
  display: flex;
  justify-content: space-between;
@ -70,7 +88,6 @@
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #00bf79;
  margin-right: 8px;
  position: relative;
  z-index: 2;
@ -97,4 +114,16 @@
.jtbc .pagination{
  margin-top: 20px;
  float: right;
}
.nodata{
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 40px 0;
  color: #5e6d82;
  font-size: 16px;
}
.nodata img{
  margin-bottom: 20px;
}

+ 101 - 107
component/statistics/BedCheck/index.html

@ -1,111 +1,105 @@
<!-- <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>患者情况分析</title>
    <link rel="stylesheet" type="text/css" href="index.css" />
  </head>
  <body> -->
    <!-- 家庭病床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-time-picker
              is-range
              v-model="chooseTime"
              range-separator="至"
              start-placeholder="开始时间"
              end-placeholder="结束时间"
              placeholder="选择时间范围"
              value-format="yyyy-MM-dd"></el-time-picker>
          </label>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">查床人员:</label>
          <el-input v-model="form.name" class=" formWidth wd160" placeholder="请输入医生姓名查询"></el-input>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">患者姓名:</label>
          <el-input v-model="form.name" class=" formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
        </div>
<!-- 家庭病床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.doctorName" class="formWidth wd160" placeholder="请输入医生姓名查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">患者姓名:</label>
      <el-input v-model="form.patientName" class="formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
    </div>
        <div class="searchDiv pb20">
          <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
          <el-button type="ff9526" size="mini" @click="exportTable">导出</el-button>
          <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
        </div>
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
      <el-button type="ff9526" size="mini" @click="exportTable">导出</el-button>
      <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
    </div>
  </div>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column type="index" min-width="60" label="序号"></el-table-column>
    <el-table-column :label="item.label" v-for="item in tableHeader" :key="item.prop">
      <template slot-scope="scope">{{scope.row[item.prop]}}</template>
    </el-table-column>
    <el-table-column label="操作" align="center">
      <template slot-scope="scope">
        <el-button type="text" @click="previewRecord(scope.row)">巡诊记录表</el-button>
      </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>
  <el-dialog :visible.sync="dialogShow" title="结算单据记录" @close="closeDialog" width="700px">
    <div class="dialog-title">患者信息</div>
    <div class="pb20 dialog-box">
      <div class="pr20">
        <label class="c-909399">姓名:</label>
        {{info.patientName}}
      </div>
      <el-table :data="tableData" style="width: 100%">
        <el-table-column type="index" min-width="60" label="序号"></el-table-column>
        <el-table-column :label="item.label" v-for="item in tableHeader">
          <template slot-scope="scope">{{scope.row[item.prop]}}</template>
        </el-table-column>
        <el-table-column label="操作">
          <template slot-scope="row">
            <el-button type="text" @click="previewRecord(row)">巡诊记录表</el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-dialog :visible.sync="dialogShow" title="结算单据记录" @close="closeDialog" width="700px">
        <div class="dialog-title">患者信息</div>
        <div class="pb20 dialog-box">
          <div class="pr20">
            <label class="c-909399">姓名:</label>
            {{info.name}}
          </div>
          <div class="pr20">
          </div>
          <div class="pr20">
            60岁
          </div>
          <div class="pr20">
            <label class="c-909399">住院号:</label>
            38593246
          </div>
          <div class="pr20">
            <label class="c-909399">手机号:</label>
            1223456789496
          </div>
        </div>
        <div class="dialog-title">巡诊记录单</div>
        <div>
          <div class="form-item">
            <div class="form-label">查床日期</div>
            <div class="form-value">2024-04-09 10</div>
          </div>
          <div class="form-item">
            <div class="form-label">服务内容</div>
            <div class="form-value">上门服务</div>
          </div>
          <div class="form-item" style="align-items: flex-start;">
            <div class="form-label">入户签到</div>
            <div class="form-value">
              <div>签到时间:2024-09-11</div>
              <div>签到方式:定位签到</div>
            </div>
          </div>
          <div class="form-item">
            <div class="form-label">巡诊人员</div>
            <div class="form-value">刘小芳,蔡东梅,孙雪娟</div>
          </div>
          <div class="form-item" style="align-items: flex-start;">
            <div class="form-label">病情变化及处理</div>
            <div class="form-value textarea-content">展示内容信息展示内容信息展示内容信息展示内容信息展示内容信息展示内容信息展示内容信息展示内容信息</div>
          </div>
      <div class="pr20">{{sexDict[info.sex]}}</div>
      <div class="pr20">{{info.age}}岁</div>
      <div class="pr20">
        <label class="c-909399">住院号:</label>
        {{info.bedTeamId}}
      </div>
      <div class="pr20">
        <label class="c-909399">手机号:</label>
        {{info.mobile}}
      </div>
    </div>
    <div class="dialog-title">巡诊记录单</div>
    <div>
      <div class="form-item">
        <div class="form-label">查床日期</div>
        <div class="form-value">{{info.checkTime}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">服务内容</div>
        <div class="form-value">{{serviceList[info.serviceType]}}</div>
      </div>
      <div class="form-item" style="align-items: flex-start">
        <div class="form-label">入户签到</div>
        <div class="form-value">
          <div>签到时间:{{info.signTime}}</div>
          <div>签到方式:{{info.signMethod}}</div>
        </div>
      </el-dialog>
      </div>
      <div class="form-item">
        <div class="form-label">巡诊人员</div>
        <div class="form-value">{{info.planDoctor}}</div>
      </div>
      <div class="form-item" style="align-items: flex-start">
        <div class="form-label">病情变化及处理</div>
        <div class="form-value textarea-content">{{info.diseaseCondition}}</div>
      </div>
    </div>
  <!-- </body> -->
<!-- </html> -->
  </el-dialog>
</div>

+ 113 - 21
component/statistics/BedCheck/index.js

@ -23,32 +23,41 @@ Vue.component('bed-check', {
      form: {},
      tableData: [],
      tableHeader: [
        {label: '住院号',prop: 'a'},
        {label: '患者姓名',prop: 'b'},
        {label: '性别',prop: 'c'},
        {label: '年龄',prop: 'd'},
        {label: '建床日期',prop: 'a'},
        {label: '计划查床时间',prop: 'a'},
        {label: '完成时间',prop: 'a'},
        {label: '查床人员',prop: 'a'},
        {label: '服务内容',prop: 'a'},
        { label: '住院号', prop: 'visitNo' },
        { label: '患者姓名', prop: 'patientName' },
        { label: '性别', prop: 'sex' },
        { label: '年龄', prop: 'age' },
        { label: '建床日期', prop: 'buildingTime' },
        { label: '计划查床时间', prop: 'checkTime' },
        { label: '完成时间', prop: 'checkDate' },
        { label: '查床人员', prop: 'doctorName' },
        { label: '服务内容', prop: 'diseaseCondition' }
      ],
      dialogShow: true,
      dialogShow: false,
      info: {
        name:'黄小蕾',
        name: '黄小蕾',
        sex: '1',
        age: '60岁',
        zhuyuan: '38593246',
        phone: '12223456789',
        checkTime: '2024-04-09 10:00:00',
        serviceContent: '上门服务',
        
        serviceContent: '上门服务'
      },
      page: 1,
      size: 10,
      total: 0,
      loading: false,
      exportLoading: false,
      sexDict: {
        1: '男',
        2: '女'
      },
      serviceList: {}
    }
  },
  methods: {
    initTime() {
      var  vm = this
      var vm = this
      var now = new Date()
      vm.nowyear = vm.chooseYear = now.getFullYear()
@ -57,23 +66,106 @@ Vue.component('bed-check', {
        vm.years.push(i)
      }
    },
    queryDate(){},
    exportTable(){},
    eliminateClick(){
      this.turnStatus = null
      this.name = ""
    getList() {
      var vm = this
      this.loading = true
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size,
        status: 1
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59' 
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1] + ' 23:59'
        }
      }
      httpRequest.get('statistics/bed/getFamilyBedPlanStatistics', { 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
      this.loading = true
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59' 
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1] + ' 23:59'
        }
      }
      this.exportLoading = true
      var fileName = `查床情况${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/bed/exportGetFamilyBedPlanStatistics', fileName, params).then(function () {
        vm.exportLoading = false
      })
    },
    eliminateClick() {
      this.form = {}
      this.yearType = '1'
      this.chooseYear = new Date().getFullYear()
      this.chooseTime = null
    },
    closeDialog(){
    closeDialog() {
      this.dialogShow = false
    },
    previewRecord(row){
    previewRecord(row) {
      var vm = this
      this.dialogShow = true
      httpRequest.get('doctor/familyBed/findCheckPlanDetail', { data: {id: row.id} }).then(function (res) {
        if (res.status == 200) {
          vm.info = res.data
          if (res.data.planDoctorList) {
            vm.info.planDoctor = res.data.planDoctorList.map(function(item){return item.doctorName}).join(',')
          }
          if (res.data.signWay) {
            vm.info.signMethod = res.data.signWay == 1 ? '定位签到' : '拍照签到'
          }
          console.log(vm.info,"info");
          
        }
      })
    },
    handleCurrentChange(val) {
      this.page = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.getList()
    },
    getDictData() {
      var vm = this
      statisticAPI.getDictByDictName({ name: 'IV_FAMILY_BED_SERVICE_TYPE' }).then(function (res) {
        for(var item of res.list){
          vm.serviceList[item.code] = item.value
        }
      })
    }
  },
  mounted() {
    this.initTime()
    this.getList()
    this.getDictData()
  }
})

+ 62 - 54
component/statistics/BuildBed/index.html

@ -7,59 +7,67 @@
    <link rel="stylesheet" type="text/css" href="index.css" />
  </head>
  <body> -->
    <!-- 家庭病床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">
          <label class="c-333 c-f14">
            <el-radio v-model="yearType" label="1">按建床年度:</el-radio>
            <el-select v-model="chooseYear" class="pr20 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-time-picker
              is-range
              v-model="chooseTime"
              range-separator="至"
              start-placeholder="开始时间"
              end-placeholder="结束时间"
              placeholder="选择时间范围"
              value-format="yyyy-MM-dd"></el-time-picker>
          </label>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">责任医师:</label>
          <el-input v-model="form.doctor" class=" formWidth wd160" placeholder="请输入责任医师查询"></el-input>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">身份证号:</label>
          <el-input v-model="form.idCard" class=" formWidth wd160" placeholder="请输入身份证号查询"></el-input>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">住院号:</label>
          <el-input v-model="form.hospital" class=" formWidth wd160" placeholder="请输入住院号查询"></el-input>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">患者姓名:</label>
          <el-input v-model="form.hospital" class=" formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
        </div>
        <div class="searchDiv pb20">
          <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
          <el-button type="ff9526" size="mini" @click="exportTable">导出</el-button>
          <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
        </div>
      </div>
      <el-table :data="tableData" style="width: 100%">
        <el-table-column type="index" min-width="60" label="序号"></el-table-column>
        <el-table-column :label="item.label" v-for="item in tableHeader">
          <template slot-scope="scope">{{scope.row[item.prop]}}</template>
        </el-table-column>
      </el-table>
<!-- 家庭病床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">
      <label class="c-333 c-f14">
        <el-radio v-model="yearType" label="1">按建床年度:</el-radio>
        <el-select v-model="chooseYear" class="pr20 formWidth wd160">
          <el-option v-for="(item , index) in years" :key="index" :label="item" :value="item"></el-option>
        </el-select>
      </label>
    </div>
  <!-- </body> -->
    <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.doctorName" class="formWidth wd160" placeholder="请输入责任医师查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">身份证号:</label>
      <el-input v-model="form.idcard" class="formWidth wd160" placeholder="请输入身份证号查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">住院号:</label>
      <el-input v-model="form.visitNo" class="formWidth wd160" placeholder="请输入住院号查询"></el-input>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">患者姓名:</label>
      <el-input v-model="form.patientName" class="formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
    </div>
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
      <el-button type="ff9526" size="mini" @click="exportTable">导出</el-button>
      <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
    </div>
  </div>
  <el-table :data="tableData" style="width: 100%">
    <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-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>
<!-- </body> -->
<!-- </html> -->

+ 85 - 22
component/statistics/BuildBed/index.js

@ -20,29 +20,32 @@ Vue.component('build-bed', {
      yearType: '1',
      chooseYear: null,
      chooseTime: null,
      form:{},
      form: {},
      tableData: [],
      tableHeader: [
        {label: '病人姓名',prop: 'b'},
        {label: '性别',prop: 'c'},
        {label: '年龄',prop: 'c'},
        {label: '手机号',prop: 'd'},
        {label: '身份证号',prop: 'e'},
        {label: '住院号',prop: 'a'},
        {label: '护理等级',prop: 'a'},
        {label: '病情',prop: 'a'},
        {label: '主诊断',prop: 'a'},
        {label: '责任医师',prop: 'a'},
        {label: '上级医师',prop: 'a'},
        {label: '主营护士',prop: 'a'},
        {label: '床位名称',prop: 'a'},
        {label: '建床时间',prop: 'a'},
      ]
        { label: '病人姓名', prop: 'patientName', width: '90' },
        { label: '性别', prop: 'sex',width: '80' },
        { label: '年龄', prop: 'age',width:'80' },
        { label: '手机号', prop: 'mobile',width: '130' },
        { label: '身份证号', prop: 'idcard',width: '170' },
        { label: '住院号', prop: 'visitNo',width: '110' },
        { label: '护理等级', prop: 'sickTendLevelName',width: '110' },
        { label: '病情', prop: 'sickStateName',width: '110' },
        { label: '主诊断', prop: 'sickDiagnoseCodeName',width: '110' },
        { label: '责任医师', prop: 'adminVisitOperatorName',width: '90' },
        { label: '上级医师', prop: 'upperOperatorName',width: '90' },
        { label: '主营护士', prop: 'adminTendOperatorName',width: '90' },
        { label: '床位名称', prop: 'sickBedName' ,width: '110'},
        { label: '建床时间', prop: 'buildingTime',width: '160' }
      ],
      page: 1,
      size: 10,
      total: 0
    }
  },
  methods: {
    initTime() {
      var  vm = this
      var vm = this
      var now = new Date()
      vm.nowyear = vm.chooseYear = now.getFullYear()
@ -51,22 +54,82 @@ Vue.component('build-bed', {
        vm.years.push(i)
      }
    },
    queryDate(){},
    exportTable(){},
    eliminateClick(){
    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 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59' 
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1] + ' 23:59'
        }
      }
      httpRequest.get('statistics/bed/getFamilyBedRecord', { 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
      this.loading = true
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59' 
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1] + ' 23:59'
        }
      }
      this.exportLoading = true
      var fileName = `建床人数${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/bed/exportGetFamilyBedRecord', fileName, params).then(function () {
        vm.exportLoading = false
      })
    },
    eliminateClick() {
      this.yearType = '1'
      this.chooseYear = new Date().getFullYear()
      this.chooseTime = null
      this.form = {}
    },
    closeDialog(){
    closeDialog() {
      this.dialogShow = false
    },
    previewRecord(row){
    previewRecord(row) {
      this.dialogShow = true
    },
    handleCurrentChange(val) {
      this.page = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.getList()
    }
  },
  mounted() {
    this.initTime()
    this.getList()
  }
})

+ 81 - 84
component/statistics/PatientSituation/index.html

@ -1,88 +1,85 @@
<!-- <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>患者情况分析</title>
    <link rel="stylesheet" type="text/css" href="index.css" />
  </head>
  <body> -->
    <!-- 家庭病床css文件位置位于/component/common/jtbc.css -->
<!-- 家庭病床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-time-picker
              is-range
              v-model="chooseTime"
              range-separator="至"
              start-placeholder="开始时间"
              end-placeholder="结束时间"
              placeholder="选择时间范围"
              value-format="yyyy-MM-dd"></el-time-picker>
          </label>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">转归情况:</label>
          <el-select class=" formWidth" v-model="turnStatus" placeholder="请选择">
            <el-option v-for="(option, index) in turnStatusOptions" :label="option.value" :value="option.code"></el-option>
          </el-select>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">患者姓名:</label>
          <el-input v-model="name" class=" formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
        </div>
<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-select class="formWidth" v-model="form.turnOver" placeholder="请选择">
        <el-option v-for="(option, index) in turnOverOptions" :label="option.value" :value="option.code"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">患者姓名:</label>
      <el-input v-model="form.patientName" class="formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
    </div>
        <div class="searchDiv pb20">
          <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
          <el-button type="ff9526" size="mini" @click="exportTable">导出</el-button>
          <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
        </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">{{scope.row[item.prop]}}</template>
    </el-table-column>
    <el-table-column label="操作" width="130" align="center">
      <template slot-scope="scope">
        <el-button type="text" @click="previewRecord(scope.row)">查看结算记录</el-button>
      </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>
  <el-dialog :visible.sync="dialogShow" title="结算单据记录" @close="closeDialog">
    <div class="dialog-title">住院信息</div>
    <div style="display: flex" class="pb20">
      <div class="pr20">
        <label class="c-909399 c-f14">姓名:</label>
        {{settlementInfo.name}}
      </div>
      <div class="pr20">
        <label class="c-909399 c-f14">医保卡号:</label>
        {{settlementInfo.yibao}}
      </div>
      <div class="pr20">
        <label class="c-909399 c-f14">费用总额:</label>
        {{settlementInfo.pay}}
      </div>
      <el-table :data="tableData" style="width: 100%">
        <el-table-column type="index" min-width="60" label="序号"></el-table-column>
        <el-table-column :label="item.label" v-for="item in tableHeader">
          <template slot-scope="scope">{{scope.row[item.prop]}}</template>
        </el-table-column>
        <el-table-column label="操作">
          <template slot-scope="row">
            <el-button type="text" @click="previewRecord(row)">查看结算记录</el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-dialog :visible.sync="dialogShow" title="结算单据记录" @close="closeDialog">
        <div class="dialog-title">住院信息</div>
        <div style="display: flex;" class="pb20">
          <div class="pr20">
            <label class="c-909399 c-f14">姓名:</label>
            {{settlementInfo.name}}
          </div>
          <div class="pr20">
            <label class="c-909399 c-f14">医保卡号:</label>
            {{settlementInfo.yibao}}
          </div>
          <div class="pr20">
            <label class="c-909399 c-f14">费用总额:</label>
            {{settlementInfo.pay}}
          </div>
        </div>
        <el-table style="width: 100%" :data="dialogTable">
          <el-table-column type="index" min-width="60" label="序号"></el-table-column>
          <el-table-column :label="item.label" v-for="item in dialogHeader" :width="item.width">
            <template slot-scope="scope">{{scope.row[item.prop]}}</template>
          </el-table-column>
        </el-table>
      </el-dialog>
    </div>
  <!-- </body> -->
<!-- </html> -->
    <el-table style="width: 100%" :data="dialogTable">
      <el-table-column type="index" min-width="60" label="序号"></el-table-column>
      <el-table-column :label="item.label" v-for="item in dialogHeader" :width="item.width">
        <template slot-scope="scope">{{scope.row[item.prop]}}</template>
      </el-table-column>
    </el-table>
  </el-dialog>
</div>

+ 121 - 39
component/statistics/PatientSituation/index.js

@ -20,26 +20,27 @@ Vue.component('patient-situation', {
      yearType: '1',
      chooseYear: null,
      chooseTime: null,
      turnStatus: null,
      turnStatusOptions: [],
      name: '',
      turnOverOptions: [],
      form: {},
      loading: false,
      exportLoading: false,
      tableData: [],
      tableHeader: [
        { label: '住院号', prop: 'a' },
        { label: '病人姓名', prop: 'b' },
        { label: '性别', prop: 'c' },
        { label: '手机号', prop: 'd' },
        { label: '身份证号', prop: 'e' },
        { label: '费别', prop: 'a' },
        { label: '建床科室', prop: 'a' },
        { label: '护理等级', prop: 'a' },
        { label: '病情', prop: 'a' },
        { label: '建床诊断', prop: 'a' },
        { label: '建床日期', prop: 'a' },
        { label: '建床天数', prop: 'a' },
        { label: '撤床日期', prop: 'a' },
        { label: '撤床诊断', prop: 'a' },
        { label: '转归情况', prop: 'a' }
        { label: '住院号', prop: 'visitNo', width: '110' },
        { label: '病人姓名', prop: 'patientName', width: '90' },
        { label: '性别', prop: 'sex', width: '80' },
        { label: '手机号', prop: 'mobile', width: '130' },
        { label: '身份证号', prop: 'idcard', width: '170' },
        { label: '费别', prop: 'rateTypeName', width: '90' },
        { label: '建床科室', prop: 'sickVisitDeptName', width: '90' },
        { label: '护理等级', prop: 'sickTendLevelName', width: '90' },
        { label: '病情', prop: 'sickStateName', width: '110' },
        { label: '建床诊断', prop: 'sickDiagnoseCodeName', width: '110' },
        { label: '建床日期', prop: 'buildingTime', width: '170' },
        { label: '建床天数', prop: 'budildDays', width: '90' },
        { label: '撤床日期', prop: 'withdrawalTime', width: '130' },
        { label: '撤床诊断', prop: 'bedWithdrawDiagnoseName', width: '130' },
        { label: '转归情况', prop: 'turnOver', width: '110' }
      ],
      dialogShow: false,
      settlementInfo: {
@ -49,21 +50,24 @@ Vue.component('patient-situation', {
      },
      dialogTable: [],
      dialogHeader: [
        { label: '结算时间', prop: 'a', width: '120' },
        { label: '结算状态', prop: 'a', width: '80' },
        { label: '金额', prop: 'a', width: '80' },
        { label: '自付', prop: 'a', width: '80' },
        { label: '优惠金额', prop: 'a', width: '80' },
        { label: '减免金额', prop: 'a', width: '80' },
        { label: '单位支付', prop: 'a', width: '80' },
        { label: '医保支付', prop: 'a', width: '80' },
        { label: '结算总预交金', prop: 'a', width: '120' },
        { label: '结算时收退款', prop: 'a', width: '120' },
        { label: '结算后余额', prop: 'a', width: '120' },
        { label: '结算号', prop: 'a', width: '80' },
        { label: '就诊科室', prop: 'a', width: '80' },
        { label: '收费科室', prop: 'a', width: '80' }
      ]
        { label: '结算时间', prop: 'SETTLE_TIME', width: '160' },
        { label: '结算状态', prop: 'SETTLE_STATUS_NAME', width: '80' },
        { label: '金额', prop: 'COST', width: '80' },
        { label: '自付', prop: 'CHARGE', width: '80' },
        { label: '优惠金额', prop: 'PREFER_PAYMENT', width: '80' },
        { label: '减免金额', prop: 'DERATE_PAYMENT', width: '80' },
        { label: '单位支付', prop: 'COMPANY_PAYMENT', width: '80' },
        { label: '医保支付', prop: 'INSUR_PAYMENT', width: '80' },
        { label: '结算总预交金', prop: 'SETTLE_SUM_PREPAY', width: '120' },
        { label: '结算时收退款', prop: 'SETTLE_SICK_PREPAY', width: '120' },
        { label: '结算后余额', prop: 'SETTLE_SICK_BALANCE', width: '120' },
        { label: '结算号', prop: 'SETTLE_NO', width: '80' },
        { label: '就诊科室', prop: 'VISIT_DEPT_NAME', width: '100' },
        { label: '收费科室', prop: 'SETTLE_DEPT_NAME', width: '100' }
      ],
      page: 1,
      size: 10,
      total: 0
    }
  },
  methods: {
@ -77,11 +81,61 @@ Vue.component('patient-situation', {
        vm.years.push(i)
      }
    },
    queryDate() {},
    exportTable() {},
    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 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1]+ ' 23:59'
        }
      }
      httpRequest.get('statistics/bed/getFamilyBedRecord', { 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
      this.loading = true
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1]+ ' 23:59'
        }
      }
      this.exportLoading = true
      var fileName = `患者情况${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/bed/exportGatientFamilyBedRecordStatistics', fileName, params).then(function () {
        vm.exportLoading = false
      })
    },
    eliminateClick() {
      this.turnStatus = null
      this.name = ''
      this.form = {}
      this.yearType = '1'
      this.chooseYear = new Date().getFullYear()
      this.chooseTime = null
@ -90,18 +144,46 @@ Vue.component('patient-situation', {
      this.dialogShow = false
    },
    previewRecord(row) {
      var vm = this
      this.dialogShow = true
      vm.dialogTable = []
      vm.settlementInfo = {}
      // doctor/familyBed/getFamilyBedSettleRecord?bedRecordCode=008d17ac9111439fab54f27c4e7f8376
      httpRequest.get('doctor/familyBed/getFamilyBedSettleRecord', { data: { bedRecordCode: row.code } }).then(function (res) {
        if (res.status == 200) {
          vm.dialogTable = res.data
          var pay = 0
          
          for(var item of res.data){
            pay += item.COST
          }
          vm.settlementInfo = {
            name: row.patientName,
            yibao: row.cardNo,
            pay: pay
          }
        }
      })
    },
    getDictData() {
      var vm = this
      statisticAPI.getDictByDictName({ name: 'jkcopd_disease_conversion' }).then(function (res) {
        vm.turnStatusOptions = [{ label: '全部', value: '' }]
        vm.turnStatusOptions = vm.turnStatusOptions.concat(res.list)
        vm.turnOverOptions = [{ value: '全部' }]
        vm.turnOverOptions = vm.turnOverOptions.concat(res.list)
      })
    },
    handleCurrentChange(val) {
      this.page = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.getList()
    }
  },
  mounted() {
    this.initTime()
    this.getDictData()
    this.getList()
  }
})

+ 71 - 71
component/statistics/PlanService/index.html

@ -1,75 +1,75 @@
<!-- <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>患者情况分析</title>
    <link rel="stylesheet" type="text/css" href="index.css" />
  </head>
  <body> -->
    <!-- 家庭病床css文件位置位于/component/common/jtbc.css -->
<!-- 家庭病床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-time-picker
              is-range
              v-model="chooseTime"
              range-separator="至"
              start-placeholder="开始时间"
              end-placeholder="结束时间"
              placeholder="选择时间范围"
              value-format="yyyy-MM-dd"></el-time-picker>
          </label>
        </div>
        <div class="searchDiv pb20 pr20">
          <label class="c-333 c-f14">查床人员:</label>
          <el-input v-model="form.doctor"></el-input>
        </div>
        <div class="searchDiv pb20">
          <label class="c-333 c-f14">患者姓名:</label>
          <el-input v-model="form.name" class=" formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
        </div>
<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.doctorName" class="formWidth wd160" placeholder="请输入医生姓名查询"></el-input>
    </div>
    <div class="searchDiv pb20">
      <label class="c-333 c-f14">患者姓名:</label>
      <el-input v-model="form.patientName" class="formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
    </div>
        <div class="searchDiv pb20">
          <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
          <el-button type="ff9526" size="mini" @click="exportTable">导出</el-button>
          <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
        </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%">
    <el-table-column type="index" min-width="60" label="序号"></el-table-column>
    <el-table-column :label="item.label" v-for="item in tableHeader" :key="item.prop" :width="item.width">
      <template slot-scope="scope">{{scope.row[item.prop]}}</template>
    </el-table-column>
    <el-table-column label="操作" align="center">
      <template slot-scope="scope">
        <el-button type="text" @click="previewRecord(scope.row)">查看查床记录</el-button>
      </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>
  <el-dialog :visible.sync="dialogShow" title="查床计划" @close="closeDialog" width="750px">
    <div class="timeline-box">
      <div class="timeline" v-for="item in planList" :key="item.id">
        <div class="time">{{item.checkTime.substring(0,10)}}</div>
        <div class="circle" :class="getStatusCircleColor(item.checkPlanStatus)"></div>
        <div class="line"></div>
        <div class="name">{{item.patientName}}</div>
        <div class="statusName" :class="getStatusTextColor(item.checkPlanStatus)">{{item.checkPlanStatusName}}</div>
      </div>
      <div class="nodata" v-if="planList.length == 0">
        <img src="../../../images/nodata.png" alt="">
        暂无查床计划
      </div>
      <el-table :data="tableData" style="width: 100%">
        <el-table-column type="index" min-width="60" label="序号"></el-table-column>
        <el-table-column :label="item.label" v-for="item in tableHeader">
          <template slot-scope="scope">{{scope.row[item.prop]}}</template>
        </el-table-column>
        <el-table-column label="操作">
          <template slot-scope="row">
            <el-button type="text" @click="previewRecord(row)">查看查床记录</el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-dialog :visible.sync="dialogShow" title="查床计划" @close="closeDialog" width="750px">
        <div class="timeline-box">
          <div class="timeline" v-for="item in planList">
            <div class="time">{{item.checkTime}}</div>
            <div class="circle">
            </div>
            <div class="line"></div>
            <div class="name">{{item.patientName}}</div>
            <div class="statusName">{{item.checkPlanStatusName}}</div>
          </div>
        </div>
      </el-dialog>
    </div>
  <!-- </body> -->
<!-- </html> -->
  </el-dialog>
</div>

+ 104 - 13
component/statistics/PlanService/index.js

@ -23,22 +23,27 @@ Vue.component('plan-service', {
      form: {},
      tableData: [],
      tableHeader: [
        { label: '住院号', prop: 'a' },
        { label: '患者姓名', prop: 'b' },
        { label: '性别', prop: 'c' },
        { label: '年龄', prop: 'c' },
        { label: '建床日期', prop: 'a' },
        { label: '查床周期', prop: 'a' },
        { label: '查床开始日期', prop: 'a' },
        { label: '查床人员', prop: 'a' }
        { label: '住院号', prop: 'visitNo' },
        { label: '患者姓名', prop: 'patientName' },
        { label: '性别', prop: 'sex' },
        { label: '年龄', prop: 'age' },
        { label: '建床日期', prop: 'buildingTime', width: '140' },
        { label: '查床周期', prop: 'checkBedCircleName' },
        { label: '查床开始日期', prop: 'checkTime' },
        { label: '查床人员', prop: 'doctorName' }
      ],
      dialogShow: true,
      dialogShow: false,
      planList: [
        { checkTime: '2024-11-01 9:30', patientName: '黄小蕾', checkPlanStatusName: '计划中', color: '#0099ff' },
        { checkTime: '2024-11-02 9:30', patientName: '黄小蕾', checkPlanStatusName: '已完成', color: '#099d09' },
        { checkTime: '2024-11-03 9:30', patientName: '黄小蕾', checkPlanStatusName: '计划超时', color: '#ff0000' },
        { checkTime: '2024-11-04 9:30', patientName: '黄小蕾', checkPlanStatusName: '计划中', color: '#0099ff' }
      ]
      ],
      page: 1,
      size: 10,
      total: 0,
      loading: false,
      exportLoading: false
    }
  },
  methods: {
@ -52,8 +57,59 @@ Vue.component('plan-service', {
        vm.years.push(i)
      }
    },
    queryDate() {},
    exportTable() {},
    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 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1]+ ' 23:59'
        }
      }
      httpRequest.get('statistics/bed/getFamilyBedRecordPlanStatistics', { 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
      this.loading = true
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1]+ ' 23:59'
        }
      }
      this.exportLoading = true
      var fileName = `计划服务${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/bed/exportGetFamilyBedRecordPlanStatistics', fileName, params).then(function () {
        vm.exportLoading = false
      })
    },
    eliminateClick() {
      this.form = {}
      this.yearType = '1'
@ -64,10 +120,45 @@ Vue.component('plan-service', {
      this.dialogShow = false
    },
    previewRecord(row) {
      var vm = this
      this.dialogShow = true
    }
      vm.planList = []
      httpRequest.get('doctor/familyBed/findBedCheckPlanList', { data: { bedRecordCode: row.code,bedTeamId:row.adminTeamId } }).then(function (res) {
        vm.planList = res.data
      })
    },
    handleCurrentChange(val) {
      this.page = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.getList()
    },
    getStatusTextColor: function (status) {
      switch (status) {
        case '0':
          return 'c-ff5e6c'
        case '1':
          return 'c-17b3ec'
        case '2':
          return 'c-20d7ad'
      }
    },
    getStatusCircleColor: function (status) {
      switch (status) {
        case '0':
          return 'bg-ff5e6c'
        case '1':
          return 'bg-17b3ec'
        case '2':
          return 'bg-20d7ad'
      }
    },
  },
  mounted() {
    this.initTime()
    this.getList()
  }
})

+ 38 - 26
component/statistics/Referral/index.html

@ -13,25 +13,24 @@
    <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-time-picker
          is-range
        <el-date-picker
          v-model="chooseTime"
          type="daterange"
          range-separator="至"
          start-placeholder="开始时间"
          end-placeholder="结束时间"
          placeholder="选择时间范围"
          value-format="yyyy-MM-dd"></el-time-picker>
          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-select class="formWidth" v-model="turnStatus" placeholder="请选择">
        <el-option v-for="(option, index) in turnStatusOptions" :label="option.value" :value="option.code"></el-option>
      <el-select class="formWidth" v-model="form.turnOver" placeholder="请选择">
        <el-option v-for="(option, index) in turnOverOptions" :label="option.value" :value="option.code"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">患者姓名:</label>
      <el-input v-model="name" class="formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
      <el-input v-model="form.patientName" class="formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
    </div>
    <div class="searchDiv pb20">
@ -42,69 +41,82 @@
  </div>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column type="index" min-width="60" label="序号"></el-table-column>
    <el-table-column :label="item.label" v-for="item in tableHeader">
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.id">
      <template slot-scope="scope">{{scope.row[item.prop]}}</template>
    </el-table-column>
    <el-table-column label="操作">
      <template slot-scope="row">
        <el-button type="text" @click="previewRecord(row)">撤床记录单</el-button>
    <el-table-column label="操作" align="center">
      <template slot-scope="scope">
        <el-button type="text" @click="previewRecord(scope.row)">撤床记录单</el-button>
      </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>
  <el-dialog :visible.sync="dialogShow" title="撤床记录单" @close="closeDialog" width="700px">
    <div class="dialog-title">撤床记录单</div>
    <div style="padding:0 16px;">
      <div class="form-item">
        <div class="form-label">申请人姓名</div>
        <div class="form-value">陈xx</div>
        <div class="form-value">{{info.patientName}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">年龄</div>
        <div class="form-value">77</div>
        <div class="form-value">{{info.age}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">性别</div>
        <div class="form-value">男</div>
        <div class="form-value">{{sexDict[info.sex]}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">建床日期</div>
        <div class="form-value">2021-11-16</div>
        <div class="form-value">{{info.buildingTime}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">撤床日期</div>
        <div class="form-value">2021-11-16</div>
        <div class="form-value">{{info.withdrawalTime}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">建床诊断</div>
        <div class="form-value">诊断名称</div>
        <div class="form-value">{{info.buildingDiagnosis}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">建床天数</div>
        <div class="form-value">55天</div>
        <div class="form-value">{{info.buildingDays}}天</div>
      </div>
      <div class="form-item">
        <div class="form-label">查床次数</div>
        <div class="form-value">111次</div>
        <div class="form-value">{{info.checkBedNum}}次</div>
      </div>
      <div class="form-item">
        <div class="form-label">撤床诊断</div>
        <div class="form-value">诊断名称</div>
        <div class="form-value">{{info.sickOutDiagnoseName}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">小结</div>
        <div class="form-value textarea-content">小结</div>
        <div class="form-value textarea-content">{{info.summary}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">转归</div>
        <div class="form-value">好转</div>
        <div class="form-value">{{turnOverObj[info.turnOver]}}</div>
      </div>
      <div class="form-item">
        <div class="form-label">患者(或监护人签字)</div>
        <div class="form-value"></div>
        <div class="form-value">
          <img :src="getImgUrl(info.patientSign)" alt="">
        </div>
      </div>
      <div class="form-item">
        <div class="form-label">责任医师签字</div>
        <div class="form-value"></div>
        <div class="form-value">
          <img :src="getImgUrl(info.doctorSign)" alt="">
        </div>
      </div>
    </div>
  </el-dialog>

+ 108 - 43
component/statistics/Referral/index.js

@ -20,50 +20,38 @@ Vue.component('referral', {
      yearType: '1',
      chooseYear: null,
      chooseTime: null,
      turnStatus: null,
      turnStatusOptions: [],
      name: "",
      turnOverOptions: [],
      form: {},
      tableData: [],
      tableHeader: [
        {label: '住院号',prop: 'a'},
        {label: '病人姓名',prop: 'b'},
        {label: '性别',prop: 'c'},
        {label: '年龄',prop: 'd'},
        {label: '建床诊断',prop: 'a'},
        {label: '建床日期',prop: 'a'},
        {label: '建床天数',prop: 'a'},
        {label: '撤床日期',prop: 'a'},
        {label: '撤床诊断',prop: 'a'},
        {label: '转归情况',prop: 'a'},
        { label: '住院号', prop: 'visitNo' },
        { label: '病人姓名', prop: 'patientName' },
        { label: '性别', prop: 'sex' },
        { label: '年龄', prop: 'age' },
        { label: '建床诊断', prop: 'diagnoseName' },
        { label: '建床日期', prop: 'buildingDate', width: '140' },
        { label: '建床天数', prop: 'buildingDays' },
        { label: '撤床日期', prop: 'withdrawalTime', width: '140' },
        { label: '撤床诊断', prop: 'sickOutDiagnoseName' },
        { label: '转归情况', prop: 'turnOver' }
      ],
      dialogShow: true,
      settlementInfo: {
        name:'黄小蕾',
        yibao: 'dk',
        pay: '1049'
      dialogShow: false,
      info: {},
      page: 1,
      size: 10,
      total: 0,
      loading: false,
      exportLoading: false,
      sexDict: {
        1: '男',
        2: '女'
      },
      dialogTable: [],
      dialogHeader: [
        {label: '结算时间',prop: 'a',width: '120'},
        {label: '结算状态',prop: 'a',width:'80'},
        {label: '金额',prop: 'a',width: '80'},
        {label: '自付',prop: 'a',width: '80'},
        {label: '优惠金额',prop: 'a',width: '80'},
        {label: '减免金额',prop: 'a',width: '80'},
        {label: '单位支付',prop: 'a',width: '80'},
        {label: '医保支付',prop: 'a',width: '80'},
        {label: '结算总预交金',prop: 'a',width: '120'},
        {label: '结算时收退款',prop: 'a',width: '120'},
        {label: '结算后余额',prop: 'a',width: '120'},
        {label: '结算号',prop: 'a',width: '80'},
        {label: '就诊科室',prop: 'a',width: '80'},
        {label: '收费科室',prop: 'a',width: '80'},
      ]
      turnOverObj: {}
    }
  },
  methods: {
    initTime() {
      var  vm = this
      var vm = this
      var now = new Date()
      vm.nowyear = vm.chooseYear = now.getFullYear()
@ -72,23 +60,100 @@ Vue.component('referral', {
        vm.years.push(i)
      }
    },
    queryDate(){},
    exportTable(){},
    eliminateClick(){
      this.turnStatus = null
      this.name = ""
    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 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1] + ' 23:59'
        }
      }
      httpRequest.get('statistics/bed/getFamilyBedWithdrawalStatistics', { 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
      this.loading = true
      var params = {
        ...this.form,
        page: this.page,
        pageSize: this.size
      }
      if (this.yearType == '1') {
        params.startDate = this.chooseYear + '-01-01 00:00'
        params.endDate = this.chooseYear + '-12-31 23:59'
      } else {
        if (this.chooseTime) {
          params.startDate = this.chooseTime[0] + ' 00:00'
          params.endDate = this.chooseTime[1] + ' 23:59'
        }
      }
      this.exportLoading = true
      var fileName = `患者情况${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('statistics/bed/exportGetFamilyBedWithdrawalStatistics', fileName, params).then(function () {
        vm.exportLoading = false
      })
    },
    eliminateClick() {
      this.form = {}
      this.yearType = '1'
      this.chooseYear = new Date().getFullYear()
      this.chooseTime = null
    },
    closeDialog(){
    closeDialog() {
      this.dialogShow = false
    },
    previewRecord(row){
    previewRecord(row) {
      var vm = this
      this.dialogShow = true
      httpRequest.get('doctor/familyBed/findBedWithdrawal', { data: { bedRecordCode: row.code } }).then(function (res) {
        vm.info = res.data
      })
    },
    getDictData() {
      var vm = this
      statisticAPI.getDictByDictName({ name: 'jkcopd_disease_conversion' }).then(function (res) {
        vm.turnOverOptions = [{ value: '全部' }]
        vm.turnOverOptions = vm.turnOverOptions.concat(res.list)
        for (var item of res.list) {
          vm.turnOverObj[item.code] = item.value
        }
      })
    },
    handleCurrentChange(val) {
      this.page = val
      this.getList()
    },
    handleSizeChange(val) {
      this.size = val
      this.getList()
    },
    getImgUrl(url) {
      return httpRequest.getImgUrl(url)
    }
  },
  mounted() {
    this.initTime()
    this.getDictData()
    this.getList()
  }
})

+ 0 - 27
component/statistics/jtbcTablePage/index.css

@ -1,27 +0,0 @@
.ad-schedule-import, .schedule-import .fileName{
    width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    white-space: nowrap;
    vertical-align: middle;
    text-align: left;
    margin-top: -1px;
}
.red{
    color: red;
}
.down-temp{
    color: #12b7f5;
    font-size: 14px;
    text-align: left;
    margin-top: 5px;
}
.err-list{
    border: 1px solid #e1e1e1;
    padding: 10px;
    color: red;
    font-size: 14px;
    margin: 10px 15px;
    text-align: left;
}

+ 0 - 168
component/statistics/jtbcTablePage/index.html

@ -1,168 +0,0 @@
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta
          name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  <title>慢阻肺患者档案</title>
  <link rel="stylesheet" type="text/css" href="index.css" />
</head>
<body>
<div id="app">
  <div class="copd-table-main">
      <div class="copd-filter-group ui-col-1 bgc-fff" style="min-width: 900px">
          <template v-if="show1">
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">患者姓名:</label>
                  <el-input v-model="name" class="pr20 formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
              </div>
          </template>
          <template v-if="show2 || show4">
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">费别:</label>
                  <el-input v-model="obj2.cost" class="pr20 formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
              </div>
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">入院病情:</label>
                  <el-select class="pr20 formWidth" v-model="obj2.toHospital" placeholder="请选择">
                      <el-option
                              v-for="(option, index) in toHospitalOptions"
                              :label="option.value"
                              :value="option.code"></el-option>
                      <!-- <el-option label="全部" value="item.value"></el-option> -->
                  </el-select>
              </div>
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">入院方式:</label>
                  <el-select class="pr20 formWidth" v-model="obj2.way" placeholder="请选择">
                      <el-option
                              v-for="(option, index) in toHospitalOptions"
                              :label="option.value"
                              :value="option.code"></el-option>
                      <!-- <el-option label="全部" value="item.value"></el-option> -->
                  </el-select>
              </div>
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">患者姓名:</label>
                  <el-input v-model="obj2.name" class="pr20 formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
              </div>
          </template>
          <template v-if="show3">
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">医生姓名:</label>
                  <el-input v-model="obj3.doctorName" class="pr20 formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
              </div>
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">患者姓名:</label>
                  <el-input v-model="obj3.name" class="pr20 formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
              </div>
          </template>
          <template v-if="show5">
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">转诊机构:</label>
                  <el-input v-model="obj5.organization" class="pr20 formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
              </div>
              <div class="searchDiv pb20">
                  <label class="c-333 c-f14">患者姓名:</label>
                  <el-input v-model="obj5.name" class="pr20 formWidth wd160" placeholder="请输入患者姓名查询"></el-input>
              </div>
          </template>
          <div class="searchDiv pb20">
              <el-button type="primary" size="mini">查询</el-button>
              <el-button type="ff9526" size="mini" >导出</el-button>
              <span class="eliminate" >清除筛选条件</span>
          </div>
      </div>
    <el-table style="width: 100%" :data="dataList" v-loading="daLoading" v-if="show1">
      <el-table-column type="selection" width="55"></el-table-column>
      <el-table-column prop="name" label="患者姓名" width="180"></el-table-column>
      <el-table-column prop="nationality" label="国籍" width="180"></el-table-column>
      <el-table-column prop="nationName" label="民族" width="180"></el-table-column>
      <el-table-column prop="idcardTypeName" label="证件类型" width="180"></el-table-column>
      <el-table-column prop="idcard" label="证件号码" width="180"></el-table-column>
      <el-table-column prop="sexName" label="性别" width="180"></el-table-column>
      <el-table-column prop="birthday" label="出生日期" width="180"></el-table-column>
      <el-table-column prop="age" label="年龄" width="180"></el-table-column>
      <el-table-column prop="mobile" label="联系电话" width="180"></el-table-column>
      <el-table-column prop="liveAddress" label="常住地址" width="180"></el-table-column>
      <el-table-column prop="registAddress" label="户籍地址" width="180"></el-table-column>
      <el-table-column prop="occupationName" label="职业" width="180"></el-table-column>
      <el-table-column prop="marriageName" label="婚姻状态" width="180"></el-table-column>
      <el-table-column prop="firstChargeType" label="医保类型" width="180"></el-table-column>
      <el-table-column prop="turnDownStatusName" label="下转状态" width="180"></el-table-column>
      <el-table-column prop="receiveStatusName" label="接收状态" width="180"></el-table-column>
      <el-table-column prop="hospitalName" label="接收医院" width="180"></el-table-column>
      <el-table-column prop="doctorName" label="接收医生" width="180"></el-table-column>
      <el-table-column prop="archivesStatusName" label="随访状态" width="180"></el-table-column>
      <el-table-column prop="isLiveName" label="生存状态" width="180"></el-table-column>
      <el-table-column prop="deathTime" label="死亡日期" width="180"></el-table-column>
      <el-table-column label="操作" min-width="220" fixed="right">
        <template slot-scope="{row}">
          <el-button type="text" @click="onClickEdit(row)">编辑</el-button>
          <el-button type="text" @click="onClickServiceRecord(row)">服务记录</el-button>
          <el-button type="text" @click="onClickHealthRecord(row)">健康档案</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-table style="width: 100%" :data="dataList" v-loading="daLoading" v-if="show2">
      <el-table-column type="index" width="55"></el-table-column>
      <el-table-column prop="name" label="姓名" width="180"></el-table-column>
      <el-table-column prop="nationality" label="性别" width="180"></el-table-column>
      <el-table-column prop="nationName" label="年龄" width="180"></el-table-column>
      <el-table-column prop="idcardTypeName" label="证件号" width="180"></el-table-column>
      <el-table-column prop="idcard" label="人群分类(职业)" width="180"></el-table-column>
      <el-table-column prop="sexName" label="住院号" width="180"></el-table-column>
      <el-table-column prop="birthday" label="住院次数" width="180"></el-table-column>
      <el-table-column prop="age" label="床位" width="180"></el-table-column>
      <el-table-column prop="mobile" label="费别" width="180"></el-table-column>
      <el-table-column prop="liveAddress" label="通讯地址" width="180"></el-table-column>
      <el-table-column prop="registAddress" label="联系电话" width="180"></el-table-column>
      <el-table-column prop="occupationName" label="入院病情" width="180"></el-table-column>
      <el-table-column prop="marriageName" label="入院方式" width="180"></el-table-column>
      <el-table-column prop="firstChargeType" label="入院办理人" width="180"></el-table-column>
      <el-table-column prop="firstChargeType" label="入院科室" width="180"></el-table-column>
      <el-table-column prop="firstChargeType" label="入院时间" width="180"></el-table-column>
    </el-table>
    <el-table style="width: 100%" :data="dataList" v-loading="daLoading" v-if="show3">
        <el-table-column type="index" width="55"></el-table-column>
        <el-table-column prop="name" label="患者姓名" width="180"></el-table-column>
        <el-table-column prop="nationality" label="诊断" width="180"></el-table-column>
        <el-table-column prop="nationName" label="责任医生" width="180"></el-table-column>
        <el-table-column prop="idcardTypeName" label="药物治疗服务情况" width="180"></el-table-column>
        <el-table-column prop="idcard" label="康复治疗服务情况" width="180"></el-table-column>
        <el-table-column prop="sexName" label="家庭病床查床服务情况" width="180"></el-table-column>
        <el-table-column prop="birthday" label="服务时间" width="180"></el-table-column>
    </el-table>
    <el-table style="width: 100%" :data="dataList" v-loading="daLoading" v-if="show4">
        <el-table-column type="index" width="55"></el-table-column>
        <el-table-column prop="name" label="患者姓名" width="180"></el-table-column>
        <el-table-column prop="nationality" label="诊断" width="180"></el-table-column>
        <el-table-column prop="nationName" label="责任医生" width="180"></el-table-column>
        <el-table-column prop="idcardTypeName" label="查床时间" width="180"></el-table-column>
        <el-table-column prop="idcard" label="查床情况" width="180"></el-table-column>
        <el-table-column prop="sexName" label="查床结果" ></el-table-column>
    </el-table>
    <el-table style="width: 100%" :data="dataList" v-loading="daLoading" v-if="show5">
        <el-table-column type="index" width="55"></el-table-column>
        <el-table-column prop="name" label="患者姓名" width="180"></el-table-column>
        <el-table-column prop="nationality" label="诊断" width="180"></el-table-column>
        <el-table-column prop="nationName" label="转诊时间" width="180"></el-table-column>
        <el-table-column prop="idcardTypeName" label="撤床时间" width="180"></el-table-column>
        <el-table-column prop="idcard" label="转诊机构" width="180"></el-table-column>
        <el-table-column prop="sexName" label="评价情况" ></el-table-column>
    </el-table>
    <div class="c-t-right mt20">
        <!-- TODO 修正 -->
        <el-pagination
                @current-change="handleCurrentChange"
                :current-page.sync="currentPage"
                :page-size="currentSize"
                layout="total, prev, pager, next, jumper"
                :total="totalCount"></el-pagination>
      </div>
  </div>
</div>
</body>
</html>

+ 0 - 69
component/statistics/jtbcTablePage/index.js

@ -1,69 +0,0 @@
// 慢阻肺患者档案表格组件
var template = ''
$.ajax('../../../component/statistics/jtbcTablePage/index.html', {
    data: {},
    dataType: 'html',
    cache: false,
    timeout: 60000,
    async: false,
    error: function (res) {},
    success: function (res) {
        template = res
    }
})
Vue.component('jtbc-table-page', {
    template: template,
    props: [],
    data() {
        return {
            show1: true,
            show2: false,
            show3: false,
            show4: false,
            show5: false,
            currentSize:50,
            currentPage: 1,
            totalCount: 0,
            docInfo: JSON.parse(window.localStorage.getItem('docInfo')),
            daLoading:false,
            dataList: [
            ],
            // show1
            name: '',
            // show2 || show4
            obj2: {name: '1', way: '1', toHospital: '1', cost: '2'},
            toHospitalOptions: [{value: '1', code: '1'}],
            // show3
            obj3: { name: '123', doctorName: '456' },
            // show5
            obj5: {organization: '1', name: '1'}
        }
    },
    mounted() {
        var vm = this
        EventBus.$on('jtbc-table-page', function (obj) {
            vm.show1 = false
            vm.show2 = false
            vm.show3 = false
            vm.show4 = false
            vm.show5 = false
            if (obj.id == 71) vm.show1 = true
            else if (obj.id == 72) vm.show2 = true
            else if (obj.id == 73) vm.show3 = true
            else if (obj.id == 74) vm.show4 = true
            if (obj.id == 75) vm.show5 = true
        })
    },
    destroyed() {
        // EventBus.$off('jtbc-table-page')
    },
    methods: {
        handleCurrentChange:function(val) {
            console.log(val)
        },
    }
})

binární
images/nodata.png