Browse Source

Merge remote-tracking branch 'origin/master'

sparkly 8 months ago
parent
commit
afadd630d3

+ 4 - 0
api/statistics-api.js

@ -348,6 +348,10 @@
    dealRecordPage: function (data) {
      return httpRequest.get('/doctor/jkCopd/dealRecordPage', { data: data })
    },
    
    getPatientAccetokenByIdcard: function (data) {
      return httpRequest.post('/doctor/archives/getPatientAccetokenByIdcard', { data: data })
    },
    followupDetail: function (data) {
      return httpRequest.get('/doctor/jkCopd/followupDetail', { data: data })
    },

+ 2 - 1
app/statistics/js/comprehensive-query.js

@ -259,7 +259,7 @@ new Vue({
      {id: '4', text: '专科综合查询', show: false},
      // {id:'5',text:'慢阻肺综合查询',show:false},
      {id: '6', text: '慢阻肺统计', show: false},
      {id: '7', text: '慢阻肺监测', show: false}
      {id: '7', text: '疾控慢阻肺监测', show: false}
    ],
    tabsId: '1',
    facility: '', //体征数据分析  - 设备类型
@ -1065,6 +1065,7 @@ new Vue({
    // 点击明细查询树形图
    handleNodeClick: function (item, type) {
      var vm = this;
      vm.copdFilterCheckValue=[]
      vm.handleNodeId = 0;
      vm.derive = item.label;
      // if(data.id>=33) {     //明细查询以下

+ 20 - 11
component/statistics/CopdPatientRecord/index.html

@ -14,7 +14,16 @@
      <div class="copd-table-main">
        <template v-if="showTotalTable">
          <!--过滤器-->
       
          <div class="copd-filter-group ui-col-1 bgc-fff" style="min-width: 900px">
            <div class="searchDiv pb20">
              <label class="c-333 c-f14">
                  <label class="c-333 c-f14">确诊年份:</label>
                  <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">
              <label class="c-333 c-f14">患者姓名:</label>
@ -58,10 +67,10 @@
            </div>
            <!--=======================================================-->
            <div class="searchDiv pb20">
              <label class="c-333 c-f14">档案状态:</label>
              <label class="c-333 c-f14">随访状态:</label>
              <el-select class="pr20 formWidth" v-model="archivesStatus" placeholder="请选择">
                <el-option
                  v-for="(option, index) in recordStatusOptions"
                  v-for="(option, index) in followStatusArr"
                  :label="option.value"
                  :value="option.code"></el-option>
              </el-select>
@ -77,12 +86,12 @@
              </el-select>
            </div>
            <!--=======================================================-->
            <div class="searchDiv">
            <div class="searchDiv pb20">
              <label class="c-333 c-f14">首次诊断医院名称:</label>
              <el-input class="pr20 formWidth wd160" v-model="firstOrg" placeholder="请输入医院名称查询"></el-input>
            </div>
            <!--=======================================================-->
            <div class="searchDiv">
            <div class="searchDiv pb20">
              <el-button type="primary" size="mini" @click="queryDate">查询</el-button>
              <!-- <el-upload
                class="upload-demo"
@ -98,7 +107,7 @@
              <el-button type="success  " size="mini" @click="toggle(true)">导入</el-button>
              <el-button type="ff9526" size="mini" @click="exportTable">导出</el-button>
              <el-button type="success" size="mini" @click="synPatient">档案同步</el-button>
              <el-button type="5692fb" size="mini" @click="distributionHospital">批量分配</el-button>
              <el-button type="primary" size="mini" @click="distributionHospital">批量分配</el-button>
              <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
            </div>
            <!--=======================================================-->
@ -179,11 +188,11 @@
            <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="receivingHospital" label="接收医院" width="180"></el-table-column>
            <el-table-column prop="receivingDoctor" label="接收医生" width="180"></el-table-column>
            <el-table-column prop="archivesStatusName" 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="deathDate" 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>
@ -203,10 +212,10 @@
          </div>
        </template>
        <template v-else-if="showEditView">
          <copd-patient-record-edit :editData="currentEditData"></copd-patient-record-edit>
          <copd-patient-record-edit :editData="currentEditData" ref="editName"></copd-patient-record-edit>
        </template>
        <template v-else-if="serviceRecordVisable">
          <copd-service-record :detailInfo="currentEditData"></copd-service-record>
          <copd-service-record :detailInfo="currentEditData" ></copd-service-record>
        </template>
        <template v-else-if="healthRecordVisable">
          <health-record></health-record>

+ 77 - 8
component/statistics/CopdPatientRecord/index.js

@ -30,6 +30,7 @@ Vue.component('copd-patient-record', {
      serviceRecordVisable: false,
      transferStatusOptions:[{code:'',value:'全部'}],
      recordStatusOptions:[{code:'',value:'全部'}],
      followStatusArr:[{code:'',value:'全部'}],
      receivingHospitalList:[{code:'',name:'全部'}],
      receiveStatusOptions:[{value:'',label:'全部'},{value:'1',label:' 已接收'},{value:'0',label:' 未接收'}],
      survivalStatusOption:[{code:'',value:'全部'}],
@ -42,16 +43,23 @@ Vue.component('copd-patient-record', {
      totalPage: 0,
      totalCount: 0,
      name:'',
      years:'',
      turnDownStatus:'',
      receiveStatus:'',
      archivesStatus:'',
      hospital:'',
      doctorName:'',
      isLive: '',
      patientCode:'',
      firstOrg: '',
      currentSelect:[],
      dicName:['jkcopd_archivesStatus','jkcopd_turnDownStatus','jkcopd_isLive'],
      followupStatus:[],
      dicName:['jkcopd_archivesStatus','jkcopd_turnDownStatus','jkcopd_isLive','jkcopd_followup_status'],
      isShow: false,
      startTime:'',
      endTime:'',
      chooseYear: '',
      nowyear:'',
            fileList: [],
            file: undefined,
            isProgressShow: false,
@ -85,6 +93,7 @@ Vue.component('copd-patient-record', {
  },
  mounted() {
    var vm = this
    this.initTime(vm)
    this.hospitalList()
    EventBus.$on('copd-reset-select', function () {
      vm.currentEditData = null
@ -97,6 +106,11 @@ Vue.component('copd-patient-record', {
      vm.editViewVisable = false
      vm.serviceRecordVisable = false
      vm.healthRecordVisable = false
      vm.transferStatusOptions=[{code:'',value:'全部'}],
      vm.recordStatusOptions=[{code:'',value:'全部'}],
      vm.followStatusArr=[{code:'',value:'全部'}],
      vm.receiveStatusOptions=[{value:'',label:'全部'},{value:'1',label:' 已接收'},{value:'0',label:' 未接收'}],
      vm.survivalStatusOption=[{code:'',value:'全部'}],
      vm.getJkCopdPatientPage()
      vm.dicName.forEach(function(item) {
        vm.getDictByDictName(item)
@ -112,6 +126,21 @@ Vue.component('copd-patient-record', {
    EventBus.$off('copd-reset-save')
  },
  methods: {
    // 初始化时间
 initTime(vm) {
  var now = new Date();
  vm.endTime = now.format('yyyy-MM-dd');
  var start = now.getFullYear()+'-'+'01-01';
  vm.startTime = new Date(start).format('yyyy-MM-dd');
  vm.nowyear = vm.chooseYear = now.getFullYear();
  vm.chooseYear='全部'
  vm.nowmonth = now.getMonth() + 1;
  vm.years = ['全部'];
  for (i = vm.nowyear; i >= 2013; i--) {
    vm.years.push(i);
  }
},    
    handlePreview(value) {
      var vm = this
			var file = value.target.files[0]
@ -152,13 +181,16 @@ Vue.component('copd-patient-record', {
    hospitalList(){
      var vm=this
    statisticAPI.hospitalList().then(function(res){
      vm.receivingHospitalList=vm.receivingHospitalList.concat(res.detailModelList)
      vm.receivingHospitalList=vm.receivingHospitalList&& vm.receivingHospitalList.concat(res.detailModelList)
    })
    },
    exportTable(){
      var vm=this
      vm.daLoading=true
      var params = {
        startTime: this.chooseYear=='全部'?'': this.chooseYear+'-01-01',
        endTime:this.chooseYear=='全部'?'': this.chooseYear+'-12-31',
        name:this.name,
        turnDownStatus:this.turnDownStatus,
        receiveStatus:this.receiveStatus,
        archivesStatus:this.archivesStatus,
@ -270,11 +302,15 @@ Vue.component('copd-patient-record', {
        vm.recordStatusOptions=vm.recordStatusOptions.concat(res.list)
      }else if(value=='jkcopd_isLive'){
        vm.survivalStatusOption=  vm.survivalStatusOption.concat(res.list)
      }else if(value=='jkcopd_followup_status'){
        vm.followStatusArr=  vm.followStatusArr.concat(res.list)
      }
      
    })
  
    },
    onClickEdit(record) {
      window.localStorage.setItem('editDetail',JSON.stringify(record))
      if (!record) {
        return
      }
@ -285,12 +321,43 @@ Vue.component('copd-patient-record', {
      this.currentEditData = record
      this.serviceRecordVisable = true
    },
    /*打开预览链接*/
openURL (url) {
  let aLabel = document.createElement('a');
  //设置链接
  aLabel.setAttribute('href', url);
  //新窗口打开链接
  aLabel.setAttribute('target', '_blank');
  //设置标签ID
  aLabel.setAttribute('id', 'reportpoint');
  // 防止反复添加
  if (document.getElementById('reportpoint')) {
      document.body.removeChild(document.getElementById('reportpoint'));
     }
  document.body.appendChild(aLabel);
  aLabel.click();
  console.log("打开链接:",url);
  //window.open(url);
},
    onClickHealthRecord(record) {
      console.log('ssssssssssssssss',record)
    var  healthRecordServer="http://www.xmtyw.cn/wlyy/profileweb/#/"  //健康档案服务
     var healthRecordServer="https://www.xmtyw.cn/wlyytest/profileweb/#/"  //健康档案服务wlyytest
       window.open(healthRecordServer + '?patientCode=' + record.patient)
      // this.healthRecordVisable = true
      this.getCode(record.idcard)
    },
    getCode(idcard){
      var vm=this
      this.patientCode = ''
      statisticAPI.getPatientAccetokenByIdcard({idcard:idcard}).then(function(res){
      if (res.status == 200) {
        vm.patientCode=res.data.patientCode
        var  healthRecordServer="http://www.xmtyw.cn/wlyy/profileweb/#/menzhen"  //健康档案服务
        //var healthRecordServer="https://www.xmtyw.cn/wlyytest/profileweb/#/menzhen"  //健康档案服务wlyytest
      window.open(healthRecordServer + '?patientCode=' + res.data.patientCode)
      }else{
        vm.patientCode=''
        this.$message.error('获取授权码失败')
          return
      }
      })
    },
  	handleCurrentChange:function(val) {
      this.page = val
@ -309,7 +376,9 @@ Vue.component('copd-patient-record', {
        hospital:this.hospital,
        doctorName:this.doctorName,
        isLive: this.isLive,
        firstOrg: this.firstOrg
        firstOrg: this.firstOrg,
        startTime: this.chooseYear=='全部'?"": this.chooseYear+'-01-01',
        endTime:this.chooseYear=='全部'?"": this.chooseYear+'-12-31',
      }
      statisticAPI.jkCopdAchivesPage(params).then(function (res) {
        vm.totalCount = res.totalCount

+ 6 - 0
component/statistics/CopdPatientRecordEdit/index.css

@ -1,5 +1,7 @@
.copd-r-e-box {
  width: 100%;
  /* overflow-y: scroll;
  height: 100vh; */
}
.copd-data-para-item {
@ -129,4 +131,8 @@
.el-cascader{
  width: 100%; 
  margin: 0 
}
.el-form-item--mini .el-form-item__error {
  z-index: 999;
}

+ 23 - 23
component/statistics/CopdPatientRecordEdit/index.html

@ -13,7 +13,7 @@
    </el-radio-group>
  </div>
  <div class="copd-r-e-box">
    <el-form label-width="220px" size="mini">
    <el-form label-width="220px" :model="formData" size="mini" :rules="rules" ref="ruleForm" >
      <div class="copd-data-para-item">
        <div class="copd-d-p-i-title" id="copdBaseInfo">
          基本信息
@ -41,7 +41,7 @@
            <el-form-item label="证件号码:" class="copd-form-item">
              <el-input class="copd-form-input" disabled :value="formData.idcard" ></el-input>
            </el-form-item>
            <el-form-item label="联系电话:" class="copd-form-item">
            <el-form-item label="联系电话:" prop="mobile" class="copd-form-item">
              <el-input class="copd-form-input" v-model="formData.mobile"></el-input>
            </el-form-item>
            <el-form-item label="婚姻状态:" class="copd-form-item">
@ -67,10 +67,11 @@
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="出生日期:" v-if="formData.idcardType!='idCard'" v-model="formData.birthday" class="copd-form-item">
            <el-form-item label="出生日期:" v-if="formData.idcardType!='idCard'" class="copd-form-item">
              <el-date-picker
                class="copd-edit-datepicker"
                v-model="formData.birthday"
                value-format="yyyy-MM-dd"
                placeholder="选择日期时间"
              ></el-date-picker>
            </el-form-item>
@ -114,7 +115,7 @@
              <el-date-picker
              class="copd-edit-datepicker"
              v-model="formData.deathTime"
              type="datetime"
              value-format="yyyy-MM-dd"
              placeholder="选择日期时间"
            ></el-date-picker>
            </el-form-item>
@ -148,8 +149,7 @@
              </el-select>
            </el-form-item>
            <el-form-item label="常住地区:" class="copd-form-item">
              <div     class="copd-form-input">
              <div class="copd-form-input">
                <el-cascader
                clearable
                width="100%"
@ -197,15 +197,15 @@
              <el-input class="copd-form-input" disabled readonly :value="formData.receiveStatus==1?'已接收':'未接收'"></el-input>
            </el-form-item>
            <el-form-item label="接收医院:" class="copd-form-item">
              <el-input class="copd-form-input" disabled readonly></el-input>
              <el-input class="copd-form-input" disabled readonly :value="formData.hospitalName"></el-input>
            </el-form-item>
            <el-form-item label="接收医生:" class="copd-form-item">
              <el-input class="copd-form-input" disabled readonly :value="formData.hospital"></el-input>
              <el-input class="copd-form-input" disabled readonly :value="formData.doctorName" ></el-input>
            </el-form-item>
            <el-form-item label="档案状态:" class="copd-form-item">
            <el-form-item label="随访状态:" class="copd-form-item">
              <el-select placeholder="请选择" v-model="formData.archivesStatus" style="width: 100%;">
                <el-option
                  v-for="item in archivesArr"
                  v-for="item in followupArr"
                  :key="item.value"
                  :label="item.value"
                  :value="item.code">
@ -243,8 +243,8 @@
                <el-option
                  v-for="item in copdArr"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                  :label="item.value"
                  :value="item.code">
                </el-option>
              </el-select>
            </el-form-item>
@ -269,8 +269,8 @@
                <el-option
                  v-for="item in copdArr"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                  :label="item.value"
                  :value="item.code">
                </el-option>
              </el-select>
            </el-form-item>
@ -279,8 +279,8 @@
                <el-option
                  v-for="item in  copdArr"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                  :label="item.value"
                  :value="item.code">
                </el-option>
              </el-select>
            </el-form-item>
@ -289,8 +289,8 @@
                <el-option
                  v-for="item in copdArr"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
                  :label="item.value"
                  :value="item.code">
                </el-option>
              </el-select>
            </el-form-item>
@ -329,7 +329,7 @@
            <el-form-item label="首次诊断时间:"  class="copd-form-item">
              <el-date-picker
                v-model="formData.firstVisitTime"
                type="datetime"
                value-format="yyyy-MM-dd"
                placeholder="选择日期时间"
              ></el-date-picker>
            </el-form-item>
@ -386,7 +386,7 @@
              <el-input class="copd-form-input" v-model="formData.comorbidityNum" ></el-input>
            </el-form-item>
            <el-form-item label="共病情况:" class="copd-form-item copd-fill-width">
              <el-input class="copd-form-input" v-model="formData.comorbiditySituation" ></el-input>
              <el-input class="copd-form-input" type="textarea" v-model="formData.comorbiditySituation" ></el-input>
            </el-form-item>
            <div class="copd-sub-title">
              <div class="title">
@ -407,7 +407,7 @@
            <el-form-item label="检验报告时间:"  class="copd-form-item">
              <el-date-picker
                v-model="formData.checkReportTime"
                type="datetime"
                value-format="yyyy-MM-dd"
                placeholder="选择日期时间"
              ></el-date-picker>
            </el-form-item>
@ -475,10 +475,10 @@
              ></el-date-picker>
            </el-form-item>
            <el-form-item label="脉冲振荡肺功能测定-检查项目:"  class="copd-form-item copd-fill-width">
              <el-input class="copd-form-input"  v-model="formData.lungItem2"></el-input>
              <el-input class="copd-form-input" type="textarea"  v-model="formData.lungItem2"></el-input>
            </el-form-item>
            <el-form-item label="脉冲振荡肺功能测定-检查结论:"  class="copd-form-item copd-fill-width">
              <el-input class="copd-form-input"  v-model="formData.lungConclusion2"></el-input>
              <el-input class="copd-form-input" type="textarea"  v-model="formData.lungConclusion2"></el-input>
            </el-form-item>
            <div class="copd-sub-title">
              <div class="title">

+ 108 - 51
component/statistics/CopdPatientRecordEdit/index.js

@ -21,8 +21,9 @@ Vue.component('copd-patient-record-edit', {
    return {
      formData:{},
      nationDict:[],
      dicName:['jkcopd_isLive','jkcopd_first_area','jkcopd_first_org_level', 'jkcopd_marriage','jkcopd_occupation','jkcopd_smoke','jkcopd_drink','jkcopd_archivesStatus','jkcopd_disease_conversion','jkcopd_firstVisitType','jkcopd_educational','idCardType'],
      dicName:['jkcopd_followup_status','jkcopd_isLive','jkcopd_first_area','jkcopd_first_org_level', 'jkcopd_marriage','jkcopd_occupation','jkcopd_smoke','jkcopd_drink','jkcopd_archivesStatus','jkcopd_disease_conversion','jkcopd_firstVisitType','jkcopd_educational','idCardType'],
      marriageArr:[],
      followupArr:[],
      idCardTypeArr:[],
      firstAreaArr:[],
      isLiveArr:[],
@ -34,7 +35,7 @@ Vue.component('copd-patient-record-edit', {
      conversionArr:[],
      firstVisitTypeArr:[],
      educationalArr:[],
      copdArr:[{value:'是',code:1},{value:'否',code:0}],
      copdArr:[{value:'是',code:'1'},{value:'否',code:'0'}],
      addressOptions:[],
      props: {
        label: 'name',
@ -44,15 +45,36 @@ Vue.component('copd-patient-record-edit', {
      addressVal:[],
      resiginAddressVal:[],
      docInfo: JSON.parse(window.localStorage.getItem('docInfo')),
      rules: {
        mobile:[
          { required: true, message: '请输入联系方式', trigger: 'blur' },
          { min: 11, max: 11, message: '请输入正确的联系方式', trigger: 'blur' }
        ]
      }
    }
  },
  created() {
    vm=this
  },
  watch:{
    'formData.isLive':{
      handler:function(o) {
      if(o=='1'){
        this.formData.deathTime=''
        this.formData.deathReason=''
      }
      },
      deep: true,
      immediate: true
   },
   addressVal(value){
    console.log(value,'0000000000000000000000')
   }
  },
  mounted() {
    var vm=this
    this.formData=this.editData
    console.log('222222222222222222222222',this.formData)
    this.formData=  JSON.parse(window.localStorage.getItem('editDetail'))
    console.log(this.formData,'00000000000000000000000000000')
    if(this.formData.liveStreet){
    this.addressVal=[this.formData.liveProvince,this.formData.liveCity,this.formData.liveTown,this.formData.liveStreet]
    this.getDistrict(0)
@ -65,7 +87,6 @@ Vue.component('copd-patient-record-edit', {
    if(this.formData.liveStreet){
      this.resiginAddressVal=[this.formData.registProvince,this.formData.registCity,this.formData.registTown,this.formData.registStreet]
      this.getDistrict(1)
      console.log('999999999999999999999999999999',this.resiginAddressVal)
      }else{
        this.resiginAddressVal=[this.formData.registProvince,this.formData.registCity,this.formData.registTown]
        this.getDistrict(1)
@ -74,6 +95,7 @@ Vue.component('copd-patient-record-edit', {
      vm.getDictByDictName(item)
    });
  },
  methods: {
    handleItemChange(val) {
      // 获取地址
@ -120,7 +142,11 @@ Vue.component('copd-patient-record-edit', {
        vm.orgLevelArr=res.list
      }else if(value=='jkcopd_isLive'){
        vm.isLiveArr=res.list
      }else if(value=='jkcopd_followup_status'){
        vm.followupArr=res.list
      }
      
      
     
    })
  
@ -129,7 +155,6 @@ Vue.component('copd-patient-record-edit', {
      var vm=this
       statisticAPI.getNationDict().then(function(res){
           vm.nationDict= res.data
           console.log('2222222222222222',vm.nationDict)
       })
    },
    getDistrict(id){
@ -249,7 +274,6 @@ Vue.component('copd-patient-record-edit', {
      homeAPI.getDistrict({ type:4,code:val[2] }).then( function(res){
        if (res.status == 200) {
          var detailModelList = res.list
          console.log(vm.addressOptions, 'vm.addressOptions')
          if (vm.addressOptions[provinceIndex].children[activeIndex].children[xIndex]) {
            vm.addressOptions[provinceIndex].children[activeIndex].children[xIndex].children = detailModelList
          }
@ -261,52 +285,85 @@ Vue.component('copd-patient-record-edit', {
    },
    updJkCopdPatient(){
      var vm =this
      if(!this.formData.mobile){
        this.$message.error('请填写手机号!')
        return false
      }
      if(this.formData.sexName=='男'){
        this.formData.sex=1
      }else{
        this.formData.sex=2
      }
      this.addressVal.forEach(function(item,index){
         if(index==0){
          vm.formData.liveProvince=item
          vm.formData.liveProvinceName=vm.$refs.cascader.currentLabels[index]
         }else if(index==1){
          vm.formData.liveCity=item
          vm.formData.liveCityName=vm.$refs.cascader.currentLabels[index]
         }else if(index==2){
          vm.formData.liveTown=item
          vm.formData.liveTownName=vm.$refs.cascader.currentLabels[index]
         }else if(index==3){
          vm.formData.liveStreet=item
          vm.formData.liveStreetName=vm.$refs.cascader.currentLabels[index]
         }
      })
      this.resiginAddressVal.forEach(function(item,index){
        if(index==0){
         vm.formData.registProvince=item
         vm.formData.registProvinceName=vm.$refs.cas.currentLabels[index]
        }else if(index==1){
         vm.formData.registCity=item
         vm.formData.registCityName=vm.$refs.cas.currentLabels[index]
        }else if(index==2){
         vm.formData.registTown=item
         vm.formData.registTownName=vm.$refs.cas.currentLabels[index]
        }else if(index==3){
         vm.formData.registStreet=item
         vm.formData.registStreetName=vm.$refs.cas.currentLabels[index]
        }
     })
      statisticAPI.updJkCopdPatient({jsonData:JSON.stringify(vm.formData),doctor:vm.docInfo.code}).then(
        function(res){
          if(res.status==200){
            EventBus.$emit('copd-reset-save')
      this.$refs.ruleForm.validate(function(valid){
        if(valid){
          if(!vm.formData.mobile){
            this.$message.error('请填写联系方式!')
            return false
          }
          if(vm.formData.sexName=='男'){
            vm.formData.sex=1
          }else{
            vm.formData.sex=2
          }
          if(vm.addressVal.length){
            
            vm.addressVal.forEach(function(item,index){
               if(index==0){
                vm.formData.liveProvince=item
                vm.formData.liveProvinceName=vm.$refs.cascader.currentLabels[index]
               }else if(index==1){
                vm.formData.liveCity=item
                vm.formData.liveCityName=vm.$refs.cascader.currentLabels[index]
               }else if(index==2){
                vm.formData.liveTown=item
                vm.formData.liveTownName=vm.$refs.cascader.currentLabels[index]
               }else if(index==3){
                vm.formData.liveStreet=item
                vm.formData.liveStreetName=vm.$refs.cascader.currentLabels[index]
               }
            })
          }else{
            vm.formData.liveProvince=''
            vm.formData.liveProvinceName=''
            vm.formData.liveCity=''
            vm.formData.liveCityName=''
            vm.formData.liveTown=''
            vm.formData.liveTownName=''
            vm.formData.liveStreet=''
            vm.formData.liveStreetName=''
          }
          if(vm.resiginAddressVal.length){
            vm.resiginAddressVal.forEach(function(item,index){
              if(index==0){
               vm.formData.registProvince=item
               vm.formData.registProvinceName=vm.$refs.cas.currentLabels[index]
              }else if(index==1){
               vm.formData.registCity=item
               vm.formData.registCityName=vm.$refs.cas.currentLabels[index]
              }else if(index==2){
               vm.formData.registTown=item
               vm.formData.registTownName=vm.$refs.cas.currentLabels[index]
              }else if(index==3){
               vm.formData.registStreet=item
               vm.formData.registStreetName=vm.$refs.cas.currentLabels[index]
              }
           })
          }else{
            vm.formData.registProvince=''
            vm.formData.registProvinceName=''
            vm.formData.registCity=''
            vm.formData.registCityName=''
            vm.formData.registTown=''
            vm.formData.registTownName=''
            vm.formData.registStreet=''
            vm.formData.registStreetName=''
          }
          statisticAPI.updJkCopdPatient({jsonData:JSON.stringify(vm.formData),doctor:vm.docInfo.code}).then(
            function(res){
              if(res.status==200){
                EventBus.$emit('copd-reset-save')
              }
            }
          )
        }else{
          vm.$message.error('请填写联系方式!')
          window.scrollTo({ top: top, behavior: 'smooth' });
        }
      )
      }) 
      return false
    
    }
  }
});

+ 1 - 1
component/statistics/CopdRecordSearch/index.css

@ -1,5 +1,5 @@
.copd-filter-group .searchDiv {
  max-width: 35%;
  /* max-width: 35%; */
  display: flex;
  margin: 0 4px;
  align-items: center;

+ 22 - 19
component/statistics/CopdRecordSearch/index.html

@ -152,25 +152,28 @@
      </el-select>
    </div>
    <!--=======================================================-->
    <div class="searchDiv pb20">
      <label class="c-333 c-f14">
        地区:
      </label>
      <el-select v-model="areaCode" style="width: 100px" class="pr10">
      <el-option v-for="(item , index) in areaList" :key="index" :label="item.name"
        :value="item.code"></el-option>
    </el-select>
    </div>
    <!--=======================================================-->
    <div class="searchDiv pb20" v-show="rangeCode!='town'&&rangeCode!='specHos'">
      <label class="c-333 c-f14">
        社区:
      </label>
      <el-select v-model="communityCode" style="width: 200px" class="pr10">
      <el-option v-for="(item , index) in communityList" :key="index" :label="item.name"
        :value="item.code"></el-option>
    </el-select>
    </div>
    <template v-if="rangeCode!='city'">
      <div class="searchDiv pb20">
        <label class="c-333 c-f14">
          地区:
        </label>
        <el-select v-model="areaCode" style="width: 100px" class="pr10">
        <el-option v-for="(item , index) in areaList" :key="index" :label="item.name"
          :value="item.code"></el-option>
      </el-select>
      </div>
      <!--=======================================================-->
      <div class="searchDiv pb20" v-show="rangeCode!='town'&&rangeCode!='specHos'">
        <label class="c-333 c-f14">
          社区:
        </label>
        <el-select v-model="communityCode" style="width: 200px" class="pr10">
        <el-option v-for="(item , index) in communityList" :key="index" :label="item.name"
          :value="item.code"></el-option>
      </el-select>
      </div>
    </template>
    <!--=======================================================-->
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="search">查询</el-button>

+ 28 - 6
component/statistics/CopdRecordSearch/index.js

@ -24,7 +24,9 @@ Vue.component('copd-record-search', {
      quotaStrArr:[],
      value1:[],
      rangeList:[  {name: '按区', code: 'town'},
    {name: '按社区', code: 'hospital'}],
    {name: '按社区', code: 'hospital'},
    {name: '按市', code: 'city'}
  ],
      startTime:'',
      endTime:'',
      rangeCode:'town',
@ -166,10 +168,10 @@ Vue.component('copd-record-search', {
  vm.startTime = new Date(start).format('yyyy-MM-dd');
  vm.nowyear = vm.chooseYear = now.getFullYear();
  vm.chooseYear='2021'
  vm.chooseYear='2022'
  vm.nowmonth = now.getMonth() + 1;
  vm.years = [];
  for (i = vm.nowyear; i >= 2016; i--) {
  for (i = vm.nowyear; i >= 2013; i--) {
    vm.years.push(i);
  }
},    
@ -219,7 +221,7 @@ initScope(vm) {
      endTime:this.radio==1? this.chooseYear+'-12-31': this.endTime,
      quotaStr:this.quotaStrArr.join(','),
      range:this.rangeCode,
      area:this.area,
      area:this.areaCode=='350200'?'':this.areaCode,
      hospital:this.communityCode,
      page:1,
      size:50,
@ -262,6 +264,22 @@ initScope(vm) {
        vm.daLoading=false
      })
    },
    bubbleSort(array) {
      for (var i = 0; i < array.length - 1; i++) {
        for (var j = 0; j < array.length - i - 1; j++) {
          // 1.对每一个值和它的下一个值进行比较
          if (array[j] > array[j + 1]) {
            // 如果第一个值更多,则将其赋予自定义计数值 count
             var count = array[j];
              // 反复交换
              array[j] = array[j + 1];
              array[j + 1] = count;
           };
        };
      };
      return array;
    },
    
    search(){
      if(this.quotaStrArr.length){
        this.manageInfo()
@ -282,7 +300,7 @@ initScope(vm) {
        vm.getCommunityHospital();
      } else if (type == 5) {
        vm.initSelOption('team');
        vm.teamListByArea();
        // vm.teamListByArea();
      }
    },
    initSelOption: function (param) {
@ -309,12 +327,16 @@ initScope(vm) {
    exportTable(){
      var vm=this
      vm.daLoading=true
      //  var quotaStrs= this.bubbleSort(this.quotaStrArr)
      this.quotaStrArr.sort(function(a, b) {
        
       return a - b});
      var params={
        startTime: this.radio==1? this.chooseYear+'-01-01' : this.startTime,
        endTime:this.radio==1? this.chooseYear+'-12-31': this.endTime,
        quotaStr:this.quotaStrArr.join(','),
        range:this.rangeCode,
        area:this.area,
        area:this.areaCode=='350200'?'':this.areaCode,
        hospital:this.communityCode,
        page:1,
        size:50,

+ 227 - 120
component/statistics/CopdServiceRecord/index.html

@ -19,15 +19,28 @@
      <div class="base-info-item">
        下转状态:{{detailInfo.turnDownStatus==1?'已下转':'未下转'}}
      </div>
      <template v-if="detailInfo.turnDownStatus==1&&detailInfo.receiveStatus!=1">
        
        <div class="base-info-item">
          分配医院:{{detailInfo.hospitalName}}
        </div>
        <div class="base-info-item">
          分配医生:{{detailInfo.basicDoctorName}}
        </div>
      </template>
      <div class="base-info-item">
        接收状态:{{detailInfo.receiveStatus==1?'已下转':'未下转'}}
      </div>
      <div class="base-info-item">
        接收医院:{{detailInfo.hospital}}
      </div>
      <div class="base-info-item">
        接收医生:{{detailInfo.doctorName}}
        接收状态:{{detailInfo.receiveStatus==1?'已接收':'未接收'}}
      </div>
      <template v-if="detailInfo.receiveStatus==1">
        
        <div class="base-info-item">
          接收医院:{{detailInfo.hospitalName}}
        </div>
        <div class="base-info-item">
          接收医生:{{detailInfo.doctorName}}
        </div>
      </template>
      
    </div>
  </div>
  <div class="service-record-timeline">
@ -46,9 +59,9 @@
              <div class="data-item">
                <div class="data-title">
                  {{event.type==1?'下转患者':event.type==2?'医生接收':event.type==3?'居民流转':
                  event.type==4?'医生退回':event.type==5?'医生随访':'档案修改'}}
                  event.type==4?'医生退回':event.type==5?'医生随访':event.type==6?'档案修改':'档案同步'}}
                </div>
                <div class="data-cont" v-if="event.type!=5&&event.type!=6">
                <div class="data-cont" v-if="event.type!=5&&event.type!=6&&event.type!=7">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">下转状态:</span>
                    <span style="color: #656565">
@ -61,12 +74,21 @@
                      <template>{{event.receiveStatus==0?'未接收':'已接收'}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">接收医生:</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                  <template v-if="event.receiveStatus!=0">
                    
                    <div style="width: 50%">
                      <span style="color: #9fa2a8">接收医生:</span>
                      <span style="color: #656565">
                        <template>{{event.doctorName}}</template>
                      </span>
                    </div>
                    <div style="width: 50%">
                      <span style="color: #9fa2a8">接收医院:</span>
                      <span style="color: #656565">
                        <template>{{event.hospitalName}}</template>
                      </span>
                    </div>
                  </template>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">是否流转:</span>
                    <span style="color: #656565">
@ -75,7 +97,7 @@
                    <template v-else>这是数据值,他可能会很长</template> -->
                    </span>
                  </div>
                  <div style="width: 50%">
                  <div style="width: 50%" v-if="event.isCirculation!=0">
                    <span style="color: #9fa2a8">流转去向:</span>
                    <span style="color: #656565">
                      <template v-if="event.isCirculation==0">———</template>
@ -90,11 +112,11 @@
                    <template v-else>这是数据值,他可能会很长</template> -->
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">是否回退:</span>
                  <div style="width: 50%" v-if="event.isBack!=0">
                    <span style="color: #9fa2a8">回退原因:</span>
                    <span style="color: #656565">
                      <template v-if="event.isBack==0">———</template>
                      <template v-else>{{event.backReason}}</template>
                      <template v-else>{{event.backType==1?'找到本人或家属,但否认慢阻肺病史':event.backType==2?'找到本人或家属,非本辖区,也不清楚现在的住址':event.backReason}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
@ -136,18 +158,21 @@
                      <template>{{event.receiveStatus==0?'未接收':'已接收'}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">接收医院:</span>
                    <span style="color: #656565">
                      <template>{{event.hospitalName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">接收医生:</span>
                    <span style="color: #656565">
                      <template>{{event.doctorName}}</template>
                    </span>
                  </div>
                  <template v-if="event.receiveStatus==1">
                    <div style="width: 50%">
                      <span style="color: #9fa2a8">接收医院:</span>
                      <span style="color: #656565">
                        <template>{{event.hospitalName}}</template>
                      </span>
                    </div>
                    <div style="width: 50%">
                      <span style="color: #9fa2a8">接收医生:</span>
                      <span style="color: #656565">
                        <template>{{event.doctorName}}</template>
                      </span>
                    </div>
                  </template>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">是否流转:</span>
                    <span style="color: #656565">
@ -156,7 +181,7 @@
                    <template v-else>这是数据值,他可能会很长</template> -->
                    </span>
                  </div>
                  <div style="width: 50%">
                  <div style="width: 50%" v-if="event.isCirculation!=0">
                    <span style="color: #9fa2a8">流转去向:</span>
                    <span style="color: #656565">
                      <template v-if="event.isCirculation==0">———</template>
@ -171,11 +196,11 @@
                    <template v-else>这是数据值,他可能会很长</template> -->
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">是否回退:</span>
                  <div style="width: 50%" v-if="event.isBack!=0">
                    <span style="color: #9fa2a8">回退原因:</span>
                    <span style="color: #656565">
                      <template v-if="event.isBack==0">———</template>
                      <template v-else>{{event.backReason}}</template>
                      <template v-else>{{event.backType==1?'找到本人或家属,但否认慢阻肺病史':event.backType==2?'找到本人或家属,非本辖区,也不清楚现在的住址':event.backReason}}</template>
                    </span>
                  </div>
                  <div style="display: flex; justify-content: space-between; width: 100%; ">
@ -207,15 +232,49 @@
                  </div>
                  
                </div>
                <div class="data-cont" v-else-if="event.type==7">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">常住地址:</span>
                    <span style="color: #656565">
                      <template>{{event.backReason}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">操作医生:</span>
                    <span style="color: #656565">
                      <template>{{event.operaterName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">操作机构:</span>
                    <span style="color: #656565">
                      <template>{{event.orgName}}</template>
                    </span>
                  </div>
                  </div>
                <div class="data-title" style="color: #12B7F5; font-size: 14px" v-if="event.type==5" @click="showDetail(event)"> 查看随访详情</div>
                <div class="data-cont" v-else>
                
                  <div style="width: 50%" v-for="item in event.achievesRecordList" :key="item.id">
                    <span style="color: #9fa2a8">{{item.classFieldName}}:</span>
                    <span style="color: #656565">
                      <template>{{item.newCommentName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">操作医生:</span>
                    <span style="color: #656565">
                      <template>{{event.operaterName}}</template>
                    </span>
                  </div>
                  <div style="width: 50%" >
                    <span style="color: #9fa2a8">操作机构:</span>
                    <span style="color: #656565">
                      <template>{{event.orgName}}</template>
                    </span>
                  </div>
                </div>
                
              </div>
            </div>
          </div>
@ -226,116 +285,164 @@
  <div class="cops-service-record-bottom-box">
    <el-button @click="recordBack">返回</el-button>
  </div>
  <el-dialog title="随访详情" :visible.sync="dialog" width="50%">
  <el-dialog title="随访详情" :visible.sync="dialog" width="50%" :destroy-on-close="true">
    <div class="copd-follow-up-dialog-box">
      <div class="copd-bb-record-info">
        <div class="title ki-title ta-title">
          随访信息
        </div>
        <div class="copd-bb-base-content">
          <div class="copd-bb-base-info-item">
          <div class="copd-bb-base-info-item" v-if="followInfo.createTime"> 
            随访时间:{{followInfo.createTime}}
          </div>
          <div class="copd-bb-base-info-item">
          <div class="copd-bb-base-info-item" v-if="followInfo.doctorName">
            随访医生:{{followInfo.doctorName}}
          </div>
          <div class="copd-bb-base-info-item">
            {{followInfo.hospitalName}}
          </div>
        </div>
      </div>
      <div class="copd-bb-record-info">
        <div class="title ki-title">
          基本信息
        </div>
        <div class="copd-bb-base-content">
          <div class="copd-bb-base-info-item">
            姓名:{{followInfo.name}}
          <div class="copd-bb-base-info-item" v-if="followInfo.hospitalName">
            随访机构: {{followInfo.hospitalName}}
          </div>
          <div class="copd-bb-base-info-item">
            性别:{{followInfo.sex==1?'男':'女'}}
          <div class="copd-bb-base-info-item" v-if="followup"> 
            随访状态:{{followup}}
          </div>
          <div class="copd-bb-base-info-item">
            出生日期:{{followInfo.birthday}}
          </div>
          <div class="copd-bb-base-info-item">
            证件类型:{{followInfo.idcardType}}
          </div>
          <div class="copd-bb-base-info-item">
            证件号码:{{followInfo.idcard}}
          </div>
          <div class="copd-bb-base-info-item">
            联系电话:{{followInfo.mobile}}
          </div>
          <div class="copd-bb-base-info-item">
            现住地址:{{followInfo.liveAddress}}
          </div>
          <div class="copd-bb-base-info-item">
            户籍地址:{{followInfo.registAddress}}
          <div class="copd-bb-base-info-item" v-if="followInfo.status==4"> 
            失访原因:{{followInfo.lostReason}}
          </div>
        </div>
      </div>
      <div class="copd-bb-record-info">
        <div class="title ki-title  ta-title">
          随访情况
        </div>
        <div class="copd-bb-base-content">
          <div class="copd-bb-base-info-item">
            生存状态:{{followInfo.isLive==1?'生存':'死亡'}}
      <template v-if="followInfo.status!='4'">
        <div class="copd-bb-record-info">
          <div class="title ki-title">
            基本信息
          </div>
          <div class="copd-bb-base-info-item">
            随访状态:{{
              followInfo.status == 1 ? '接收随访' :
              followInfo.status == 2 ? '拒访' :
              followInfo.status == 3 ? '不详' :
              followInfo.status == 4 ? '失访' :
              followInfo.status == 5 ? '非本辖区—退回再根据现住址下推' :
              ''
            }}
          </div>
          <div class="copd-bb-base-info-item">
            慢阻肺首次诊断时间:{{followInfo.firstVisitTime}}
          <div class="copd-bb-base-content">
            <div class="copd-bb-base-info-item" v-if="followInfo.name">
              姓名:{{followInfo.name}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="followInfo.sex">
              性别:{{followInfo.sex==1?'男':'女'}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="nationName">
              民族:{{nationName}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="followInfo.birthday">
              出生日期:{{followInfo.birthday}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="idcardTypeName">
              证件类型:{{idcardTypeName}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="followInfo.idcard">
              证件号码:{{followInfo.idcard}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="followInfo.mobile">
              联系电话:{{followInfo.mobile}}
            </div>
            <div class="copd-bb-base-info-item" v-if="educational">
              学历:{{educational}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="marriageName">
              婚姻状况:{{marriageName}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="occupation">
              职业类型:{{occupation}}
            </div>
            <div class="copd-bb-base-info-item"  v-if="followInfo.liveProvinceName">
              常住地区:{{followInfo.liveProvinceName}}{{followInfo.liveCityName}}{{followInfo.liveTownName}}{{followInfo.liveStreetName}}
            </div>
            <div class="copd-bb-base-info-item" v-if="followInfo.liveAddress">
              常住地址:{{followInfo.liveAddress}}
            </div>
              <div class="copd-bb-base-info-item" v-if="followInfo.registProvinceName" >
              户籍地区:{{followInfo.registProvinceName}}{{followInfo.registCityName}}{{followInfo.registTownName}}{{followInfo.registStreetName}}
            </div>
            <div class="copd-bb-base-info-item" v-if="followInfo.registAddress">
              户籍地址:{{followInfo.registAddress}}
          </div>
          <div class="copd-bb-base-info-item">
            慢阻肺首次诊断地区:{{followInfo.firstVisitArea}}
        </div>
        <div class="copd-bb-record-info">
          <div class="title ki-title  ta-title">
            随访情况
          </div>
          <div class="copd-bb-base-info-item">
            慢阻肺首次诊断机构级别:{{
              followInfo.firstVisitOrgLevel == 1 ? '三级医院' :
              followInfo.firstVisitOrgLevel == 2 ? '二级医院' :
              followInfo.firstVisitOrgLevel == 3 ? '村卫生室' :
              followInfo.firstVisitOrgLevel == 4 ? '乡镇卫生院/社区卫生服务机构' :
              followInfo.firstVisitOrgLevel == 5 ? '其他医疗卫生机构' :
              ''
            }}
          <div class="copd-bb-base-content">
            <div class="copd-bb-base-info-item" v-if="followInfo.isLive">
              生存状态:{{followInfo.isLive==1?'生存':'死亡'}}
            </div>
            <template v-if="followInfo.isLive==1">
              <div class="copd-bb-base-info-item" v-if="followInfo.hasSmoke">
                是否抽烟:{{followInfo.hasSmoke==1?'是':followInfo.hasSmoke==0?'否':'已戒烟'}}
              </div>
              <div class="copd-bb-base-info-item" v-if="followInfo.hasDrink">
                是否饮酒:{{followInfo.hasDrink==1?'是':followInfo.hasDrink==0?'否':'已戒酒'}}
              </div>
              <div class="copd-bb-base-info-item" v-if="diseaseConversion">
                病情归转:{{diseaseConversion}}
              </div>
            </template>
            
            <!-- <div class="copd-bb-base-info-item">
              是否做过肺功能检查:{{followInfo.hasLung}}
            </div> -->
            <!-- <div class="copd-bb-base-info-item">e
              是否做过胸部CT或X线检查:{{followInfo.birthday}}
            </div> -->
         
          </div>
          <!-- <div class="copd-bb-base-info-item">
            是否做过肺功能检查:{{followInfo.hasLung}}
          </div> -->
          <!-- <div class="copd-bb-base-info-item">e
            是否做过胸部CT或X线检查:{{followInfo.birthday}}
          </div> -->
          <div class="copd-bb-base-info-item">
            是否抽烟:{{followInfo.hasSmoke==1?'是':followInfo.hasSmoke==0?'':'已戒'}}
        </div>
        <template v-if="followInfo.isLive==1">
        <div class="copd-bb-record-info">
          <div class="title ki-title ta-title">
            首次确诊情况
          </div>
          <div class="copd-bb-base-info-item">
            是否饮酒:{{followInfo.hasDrink==1?'是':followInfo.hasDrink==0?'':'已戒'}}
          <div class="copd-bb-base-content">
            <div class="copd-bb-base-info-item" v-if="followInfo.firstVisitTime">
              慢阻肺首次诊断时间:{{followInfo.firstVisitTime}}
            </div>
            <div class="copd-bb-base-info-item" v-if="firstAreaName">
              慢阻肺首次诊断地区:{{firstAreaName}}
            </div>
            <div class="copd-bb-base-info-item" v-if="orGlevelName">
              <!-- 慢阻肺首次诊断机构级别:{{
                followInfo.firstVisitOrgLevel == 1 ? '三级医院' :
                followInfo.firstVisitOrgLevel == 2 ? '二级医院' :
                followInfo.firstVisitOrgLevel == 3 ? '村卫生室' :
                followInfo.firstVisitOrgLevel == 4 ? '乡镇卫生院/社区卫生服务机构' :
                followInfo.firstVisitOrgLevel == 5 ? '其他医疗卫生机构' :
                ''
              }} -->
              慢阻肺首次诊断机构级别:{{orGlevelName}}
            </div>
            <div class="copd-bb-base-info-item" v-if="diagnosticBasisName">
              最高诊断依据:{{diagnosticBasisName}}
            </div>
            <div class="copd-bb-base-info-item" v-if="symptom">
              症状:{{symptom}}
            </div>
            <div class="copd-bb-base-info-item" v-if="followInfo.drugBefore">
              使用支气管扩张剂前FEV1/FVC(%):{{followInfo.drugBefore}}
            </div>
            <div class="copd-bb-base-info-item" v-if="followInfo.drugAfter">
              使用支气管扩张剂后FEV1/FVC(%):{{followInfo.drugAfter}}
            </div>
          </div>
        </div>
      </div>
      <div class="copd-bb-record-info">
        <div class="title ki-title ta-title">
          死亡情况
        </div>
        <div class="copd-bb-base-content">
          <div class="copd-bb-base-info-item">
            死亡情况:{{followInfo.isLive==1?'生存':'死亡'}}
        </template>
        <div class="copd-bb-record-info" v-if="followInfo.isLive!=1">
          <div class="title ki-title ta-title">
            死亡情况
          </div>
          <div class="copd-bb-base-info-item">
            死亡时间:{{followInfo.deathTime}}
          <div class="copd-bb-base-content" >
            <template v-if="followInfo.isLive!=1">
              <div class="copd-bb-base-info-item" v-if="followInfo.deathTime">
                死亡时间:{{followInfo.deathTime}}
              </div>
              <div class="copd-bb-base-info-item"  v-if="followInfo.deathReason">
                死亡原因:{{followInfo.deathReason}}
              </div>
            </template>
          </div>
        </div>
      </div>
      </template>
    </div>
    <span slot="footer" class="dialog-footer">
      <el-button @click="dialog = false">关闭</el-button>

+ 162 - 2
component/statistics/CopdServiceRecord/index.js

@ -23,6 +23,8 @@ Vue.component('copd-service-record', {
      loading:false,
      page:1,
      size:999,
      
      idcardTypeName:'',
      followInfo:{},
      events: [
        {date: '2023年'},
@ -31,10 +33,48 @@ Vue.component('copd-service-record', {
        {date: '2025年', description: 'Description for event 3'},
        {date: '2026年', description: 'Description for event 4'},
        {title: 'Event 5', date: '2027年', description: 'Description for event 5'}
      ]
      ],
      dicName:['jkcopd_back_type','jkcopd_followup_status','jkcopd_symptom','jkcopd_isLive','jkcopd_first_area','jkcopd_first_org_level', 'jkcopd_marriage','jkcopd_occupation','jkcopd_smoke','jkcopd_drink','jkcopd_archivesStatus','jkcopd_disease_conversion','jkcopd_firstVisitType','jkcopd_educational','idCardType','jkcopd_diagnosticBasis'],
      marriageArr:[],
      backTypeName:'',
      diagnosticBasisName:'',
      marriageName:'',
      symptom:'',
      symptomsArr:[],
      followupArr:[],
      followup:'',
      idCardTypeArr:[],
      firstAreaArr:[],
      firstAreaName:'',
      isLiveArr:[],
      orgLevelArr:[],
      orGlevelName:'',
      occupationArr:[],
      occupation:'',
      smokeArr:[],
      drinkArr:[],
      archivesArr:[],
      diseaseConversion:'',
      conversionArr:[],
      firstVisitTypeArr:[],
      educationalArr:[],
      educational:'',
      nationDict:[],
      nationName:''
    }
  },
  methods: {
    getNation(){
      var vm=this
       statisticAPI.getNationDict().then(function(res){
           vm.nationDict= res.data
           vm.nationDict.forEach(function(item){
            if(item.NATION_CODE==vm.followInfo.nation){
              vm.nationName=item.NATION_NAME
            }
           })
       })
    },
    setLeftHeights() {
      this.$nextTick(() => {
        this.events.forEach((event, index) => {
@ -46,6 +86,112 @@ Vue.component('copd-service-record', {
        });
      });
    },
       //字典
       getDictByDictName(value){
        var vm=this
      statisticAPI.getDictByDictName({name:value}).then(function(res){
        if(value=='jkcopd_marriage'){
         var arr = res.list
          arr.forEach(function(item){
            if(item.code==vm.followInfo.marriage){
              vm.marriageName=item.value
            }
          })
        }else if(value=='jkcopd_smoke'){
          // var vm=this
          // vm.smokeArr=res.list
        }else if(value=='jkcopd_drink'){
          // var vm=this
          // vm.drinkArr=res.list
        }else if(value=='jkcopd_first_area'){
          var arr = res.list
          arr.forEach(function(item){
            if(item.code==vm.followInfo.firstVisitArea){
              vm.firstAreaName=item.value
            }
          })
        }else if(value=='jkcopd_disease_conversion'){
          var arr = res.list
          arr.forEach(function(item){
            if(item.code==vm.followInfo.diseaseConversion){
              vm.diseaseConversion=item.value
            }
          })
        }else if(value=='jkcopd_firstVisitType'){
          // vm.firstVisitTypeArr=res.list
        }else if(value=='jkcopd_first_org_level'){
          var arr = res.list
          arr.forEach(function(item){
            if(item.code==vm.followInfo.firstVisitOrgLevel){
              vm.orGlevelName=item.value
            }
          })
          
        }else if(value=='jkcopd_followup_status'){
          vm.followupArr= res.list
          vm.followupArr.forEach(function(item){
            if(item.code==vm.followInfo.status){
              vm.followup=item.value
            }
          })
        }else if(value=='idCardType'){
          var arr = res.list
          arr.forEach(function(item){
            if(item.code==vm.followInfo.idcardType){
              vm.idcardTypeName=item.value
            }
          })
        }else if(value=='jkcopd_occupation'){
          var arr = res.list
          arr.forEach(function(item){
            if(item.code==vm.followInfo.occupation){
              vm.occupation=item.value
            }
          })
        }else if(value=='jkcopd_educational'){
          var arr = res.list
          arr.forEach(function(item){
            if(item.code==vm.followInfo.educational){
              vm.educational=item.value
            }
          })
        }else if(value=='jkcopd_symptom'){
          var arr = res.list
          vm.symptomsArr=[]
          var symptoms=vm.followInfo.symptom.split(',')
          arr.forEach(function(item){
            symptoms.forEach(function(v){
              if(v==item.code){
                vm.symptomsArr.push(item.value)
              }
            })
          })
          vm.symptom=vm.symptomsArr.join()
        }
        else if(value=='jkcopd_diagnosticBasis'){
          var arr = res.list
          arr.forEach(function(item){
            if(item.code==vm.followInfo.diagnosticBasis){
              vm.diagnosticBasisName=item.value
            }
          })
        }
        // }else if(value=='jkcopd_back_type'){
        //   var arr = res.list
        //   arr.forEach(function(item){
        //     if(item.code==vm.followInfo.backType){
        //       vm.backTypeName=item.value
        //       console.log('wwwwwwwwwwwwwwwwwwwww',vm.backTypeName)
        //     }
        //   })
        // }
        
       
      })
    
      },
    recordBack(){
      EventBus.$emit('copd-reset-select')
    },
@ -89,10 +235,21 @@ Vue.component('copd-service-record', {
    },
    showDetail(item){
      var vm =this
      console.log(item,'oooooooooooooo')
       statisticAPI.followupDetail({id:item.jkcopdFollowup.id}).then(function(res){
        console.log(res)
        vm.followInfo=res.obj
        vm.dicName.forEach(function(item) {
          vm.getDictByDictName(item)
        });
    vm.getNation()
        // statisticAPI.getDictByDictName({name:'idCardType'}).then(function(res){
        //   res.list.forEach(function(item){
        //     if(item.code==vm.followInfo.idcardType){
        //       vm.idcardTypeName=item.value
        //     }
        //   })
        // })
        console.log(vm.followInfo,'sssss')
        vm.dialog=true
       })
@ -102,6 +259,9 @@ Vue.component('copd-service-record', {
    // this.$nextTick(() => {
    //   this.setLeftHeights();
    // });
    console.log('pppppppppppppp--------',this.detailInfo)
    var vm =this
    this.getDealRecord()
   
  },
});