hwy 3 dienas atpakaļ
vecāks
revīzija
2609debd89

+ 3 - 2
component/statistics/CopdServiceRecordPatient/index.html

@ -65,7 +65,7 @@
            <div class="timeline-time" :id="'left-' + eI">{{event.time&& event.time.slice(5) }}</div>
            <div class="timeline-time" :id="'left-' + eI">{{event.time&& event.time.slice(5) }}</div>
            <div class="timeline-content" :id="'right-' + eI">
            <div class="timeline-content" :id="'right-' + eI">
              <div class="data-item">
              <div class="data-item">
                <div class="data-title">{{getTypeName(event.type)}}</div>
                <div class="data-title">{{event.typeName}}</div>
                <div class="data-cont" v-if="event.type == 1">
                <div class="data-cont" v-if="event.type == 1">
                  <div style="width: 50%">
                  <div style="width: 50%">
                    <span style="color: #9fa2a8">预约医院:</span>
                    <span style="color: #9fa2a8">预约医院:</span>
@ -328,7 +328,8 @@
    <el-button @click="recordBack">返回</el-button>
    <el-button @click="recordBack">返回</el-button>
  </div>
  </div>
  <el-dialog :title="title" :visible.sync="formDialogVisible" width="50%">
  <el-dialog :title="title" :visible.sync="formDialogVisible" width="60%">
    <lasc-modify-patient :currentInfo="currentInfo" v-if="type==1" :readonly="readonly"></lasc-modify-patient>
    <lasc-lascClinical-examination :data="detailData" v-if="type==2"></lasc-lascClinical-examination>
    <lasc-lascClinical-examination :data="detailData" v-if="type==2"></lasc-lascClinical-examination>
    <lasc-breast-cduInspect-entity-list :data="detailData" v-if="type==3"></lasc-breast-cduInspect-entity-list>
    <lasc-breast-cduInspect-entity-list :data="detailData" v-if="type==3"></lasc-breast-cduInspect-entity-list>
    <lasc-breast-molybdenum-inspect-list :data="detailData" v-if="type==4"></lasc-breast-molybdenum-inspect-list>
    <lasc-breast-molybdenum-inspect-list :data="detailData" v-if="type==4"></lasc-breast-molybdenum-inspect-list>

+ 9 - 2
component/statistics/CopdServiceRecordPatient/index.js

@ -50,6 +50,7 @@ Vue.component('Copd-service-record-patient', {
      orGlevelName: '',
      orGlevelName: '',
      occupationArr: [],
      occupationArr: [],
      occupation: '',
      occupation: '',
      currentInfo: {},
      smokeArr: [],
      smokeArr: [],
      drinkArr: [],
      drinkArr: [],
      archivesArr: [],
      archivesArr: [],
@ -91,7 +92,8 @@ Vue.component('Copd-service-record-patient', {
      moreFlag: true,
      moreFlag: true,
      detailInfo: {},
      detailInfo: {},
      detailData: {},
      detailData: {},
      type: ''
      type: '',
      readonly: ''
    }
    }
  },
  },
  watch: {
  watch: {
@ -108,6 +110,11 @@ Vue.component('Copd-service-record-patient', {
      this.detailData = {}
      this.detailData = {}
      var vm = this
      var vm = this
      if (item.type == 1) {
      if (item.type == 1) {
        this.currentInfo = {
          id: this.detailInfo.screenId
        }
        this.readonly = true
        vm.formDialogVisible = true
      } else {
      } else {
        var params = {
        var params = {
          id: item.id,
          id: item.id,
@ -190,7 +197,7 @@ Vue.component('Copd-service-record-patient', {
  },
  },
  mounted() {
  mounted() {
    var vm = this
    var vm = this
    this.getDealRecord()
    this.getDealRecord('')
    this.getYearList()
    this.getYearList()
  }
  }
})
})

+ 2 - 2
component/statistics/LascModifyPatient/index.html

@ -1,5 +1,5 @@
<div id="app">
<div id="app">
  <el-form label-width="200px" :model="form" size="mini" :rules="rules" ref="ruleForm">
  <el-form label-width="200px" :model="form" size="mini" :rules="rules" ref="ruleForm" :style="readonly? 'pointer-events: none;':''">
    <div class="copd-data-para-item">
    <div class="copd-data-para-item">
      <div class="copd-d-p-i-title" id="copdBaseInfo">基本信息</div>
      <div class="copd-d-p-i-title" id="copdBaseInfo">基本信息</div>
      <div class="diver-line"></div>
      <div class="diver-line"></div>
@ -344,7 +344,7 @@
      </div>
      </div>
    </div>
    </div>
  </el-form>
  </el-form>
  <div class="copd-edit-bottom-box">
  <div class="copd-edit-bottom-box" v-if="!readonly">
    <el-button type="primary" @click="updJkCopdPatient">保存</el-button>
    <el-button type="primary" @click="updJkCopdPatient">保存</el-button>
  </div>
  </div>
</div>
</div>

+ 118 - 122
component/statistics/LascModifyPatient/index.js

@ -15,12 +15,16 @@ Vue.component('lasc-modify-patient', {
  template: template,
  template: template,
  name: 'lasc-modify-patient',
  name: 'lasc-modify-patient',
  props: {
  props: {
    currentInfo: {}
    currentInfo: {},
    readonly: {
      type: Boolean,
      default: false
    }
  },
  },
  data: function () {
  data: function () {
    return {
    return {
      form: {
      form: {
        baseinfo:{
        baseinfo: {
          sickName: '',
          sickName: '',
          age: '',
          age: '',
          nation: '',
          nation: '',
@ -31,12 +35,12 @@ Vue.component('lasc-modify-patient', {
          address: '',
          address: '',
          womenCategory: '',
          womenCategory: '',
          accountFeeType: '',
          accountFeeType: '',
          unitName:'',
          height:'',
          weight:'',
          edu:'',
          monthlyIncome:'',
          vaccinationHpv:''
          unitName: '',
          height: '',
          weight: '',
          edu: '',
          monthlyIncome: '',
          vaccinationHpv: ''
        },
        },
        disease: {
        disease: {
          menophagia: '',
          menophagia: '',
@ -46,38 +50,38 @@ Vue.component('lasc-modify-patient', {
          menopause: '',
          menopause: '',
          menopauseAge: '',
          menopauseAge: '',
          copd: '',
          copd: '',
          copdAge: '',
          copdAge: ''
        },
        },
        fertility: {
        fertility: {
          menophaniaAge: '',
          menophaniaAge: '',
          menopause: '',
          menopause: '',
          lmp:'',
          miscarriage:'',
          reproductiveHistory:'',
          breastCancerFir:'',
          breastCancerSec:'',
          partusMaturus:'',
          prematureDelivery:'',
          firstDeliveryAge:'',
          breastCancerSecNum:'',
          oophoromaNum:'',
          cervicalCancerFir:'',
          brcaGeneticTesting:'',
          chestRadiotherapy:'',
          chestRadiotherapy:'',
          hormoneUseMonth:'',
          breastBiopsySurgery:'',
          oophoromaSec:'',
          breastSurgeryNum:'',
          breastSurgeryResult:'',
          accessoryExcision:'',
          hysterectomy:'',
          hysterectomyAge:'',
          contraceptiveOtherMethod:'',
          contraceptiveMethod:'',
          accessoryExcision:'',
          contactBleeding:'',
          irregularVaginalBleeding:''
          lmp: '',
          miscarriage: '',
          reproductiveHistory: '',
          breastCancerFir: '',
          breastCancerSec: '',
          partusMaturus: '',
          prematureDelivery: '',
          firstDeliveryAge: '',
          breastCancerSecNum: '',
          oophoromaNum: '',
          cervicalCancerFir: '',
          brcaGeneticTesting: '',
          chestRadiotherapy: '',
          chestRadiotherapy: '',
          hormoneUseMonth: '',
          breastBiopsySurgery: '',
          oophoromaSec: '',
          breastSurgeryNum: '',
          breastSurgeryResult: '',
          accessoryExcision: '',
          hysterectomy: '',
          hysterectomyAge: '',
          contraceptiveOtherMethod: '',
          contraceptiveMethod: '',
          accessoryExcision: '',
          contactBleeding: '',
          irregularVaginalBleeding: ''
        }
        }
      },
      },
      menophaniaAgeList: [],
      menophaniaAgeList: [],
@ -95,16 +99,16 @@ Vue.component('lasc-modify-patient', {
        checkStrictly: true, // 可以只选父级
        checkStrictly: true, // 可以只选父级
        emitPath: true // 只返回最后一级的值
        emitPath: true // 只返回最后一级的值
      },
      },
      currentStreet:[]
      currentStreet: []
    }
    }
  },
  },
  methods: {
  methods: {
    getTableInfo(){
      var vm = this;
      vm.selectedStreet='';
      vm.selAddress=''
      vm.form={
        baseinfo:{
    getTableInfo() {
      var vm = this
      vm.selectedStreet = ''
      vm.selAddress = ''
      vm.form = {
        baseinfo: {
          sickName: '',
          sickName: '',
          age: '',
          age: '',
          nation: '',
          nation: '',
@ -115,12 +119,12 @@ Vue.component('lasc-modify-patient', {
          address: '',
          address: '',
          womenCategory: '',
          womenCategory: '',
          accountFeeType: '',
          accountFeeType: '',
          unitName:'',
          height:'',
          weight:'',
          edu:'',
          monthlyIncome:'',
          vaccinationHpv:''
          unitName: '',
          height: '',
          weight: '',
          edu: '',
          monthlyIncome: '',
          vaccinationHpv: ''
        },
        },
        disease: {
        disease: {
          menophagia: '',
          menophagia: '',
@ -130,90 +134,86 @@ Vue.component('lasc-modify-patient', {
          menopause: '',
          menopause: '',
          menopauseAge: '',
          menopauseAge: '',
          copd: '',
          copd: '',
          copdAge: '',
          copdAge: ''
        },
        },
        fertility: {
        fertility: {
          menophaniaAge: '',
          menophaniaAge: '',
          menopause: '',
          menopause: '',
          lmp:'',
          miscarriage:'',
          reproductiveHistory:'',
          breastCancerFir:'',
          breastCancerSec:'',
          partusMaturus:'',
          prematureDelivery:'',
          firstDeliveryAge:'',
          breastCancerSecNum:'',
          oophoromaNum:'',
          cervicalCancerFir:'',
          brcaGeneticTesting:'',
          chestRadiotherapy:'',
          chestRadiotherapy:'',
          hormoneUseMonth:'',
          breastBiopsySurgery:'',
          oophoromaSec:'',
          breastSurgeryNum:'',
          breastSurgeryResult:'',
          accessoryExcision:'',
          hysterectomy:'',
          hysterectomyAge:'',
          contraceptiveOtherMethod:'',
          contraceptiveMethod:'',
          accessoryExcision:'',
          contactBleeding:'',
          irregularVaginalBleeding:''
          lmp: '',
          miscarriage: '',
          reproductiveHistory: '',
          breastCancerFir: '',
          breastCancerSec: '',
          partusMaturus: '',
          prematureDelivery: '',
          firstDeliveryAge: '',
          breastCancerSecNum: '',
          oophoromaNum: '',
          cervicalCancerFir: '',
          brcaGeneticTesting: '',
          chestRadiotherapy: '',
          chestRadiotherapy: '',
          hormoneUseMonth: '',
          breastBiopsySurgery: '',
          oophoromaSec: '',
          breastSurgeryNum: '',
          breastSurgeryResult: '',
          accessoryExcision: '',
          hysterectomy: '',
          hysterectomyAge: '',
          contraceptiveOtherMethod: '',
          contraceptiveMethod: '',
          accessoryExcision: '',
          contactBleeding: '',
          irregularVaginalBleeding: ''
        }
        }
      }
      }
      var params={
        id:'', // 表单id
        screenId:this.currentInfo.id,// 筛查id
        type:'1' //表单类型
      var params = {
        id: '', // 表单id
        screenId: this.currentInfo.id, // 筛查id
        type: '1' //表单类型
      }
      }
      httpRequest.get('doctor/twoCancers/count/tableDetail', { data: params }).then(function (res) {
      httpRequest.get('doctor/twoCancers/count/tableDetail', { data: params }).then(function (res) {
        if (res.status == 200) {
        if (res.status == 200) {
          if(res.obj.baseinfo){
            vm.form.baseinfo=res.obj.baseinfo
          if (res.obj.baseinfo) {
            vm.form.baseinfo = res.obj.baseinfo
            _.filter(vm.areaList.city_list, function (v, k) {
            _.filter(vm.areaList.city_list, function (v, k) {
              if (v.indexOf(vm.form.baseinfo.sickCity) === 0) {
              if (v.indexOf(vm.form.baseinfo.sickCity) === 0) {
                vm.selAddress=k;
                vm.selAddress = k
              }
              }
            })
            })
            vm.getStreetData(vm.selAddress,vm.form.baseinfo.sickStreet)
            vm.getStreetData(vm.selAddress, vm.form.baseinfo.sickStreet)
          }
          }
          if(res.obj.disease){
            vm.form.disease=res.obj.disease
          if (res.obj.disease) {
            vm.form.disease = res.obj.disease
          }
          }
          if(res.obj.fertility){
            vm.form.fertility=res.obj.fertility
          if (res.obj.fertility) {
            vm.form.fertility = res.obj.fertility
          }
          }
          // vm.form = res.obj;
          // vm.form = res.obj;
        }
        }
      })
      })
    },
    },
    // 编辑
    // 编辑
    updJkCopdPatient() {
    updJkCopdPatient() {
      var vm =this
      var vm = this
      var params = {
      var params = {
        baseInfoJson:JSON.stringify(this.form.baseinfo),
        fertilityJson:JSON.stringify(this.form.fertility),
        cervicalDiseaseHistoryJson:JSON.stringify(this.form.disease)
        baseInfoJson: JSON.stringify(this.form.baseinfo),
        fertilityJson: JSON.stringify(this.form.fertility),
        cervicalDiseaseHistoryJson: JSON.stringify(this.form.disease)
      }
      }
      httpRequest.post('doctor/twoCancers/updBaseInfoSave', { data: params }).then(function (res) {
      httpRequest.post('doctor/twoCancers/updBaseInfoSave', { data: params }).then(function (res) {
        console.log('333333333333333',res)
        if(res.status==200){
          toastr.error("保存成功")
        console.log('333333333333333', res)
        if (res.status == 200) {
          toastr.error('保存成功')
          vm.getTableInfo()
          vm.getTableInfo()
        }else{
        } else {
          toastr.error(res.msg)
          toastr.error(res.msg)
        }
        }
        
      })
      })
    },
    },
    getStreetData(cityCode,streetName) {
      console.log('1111111111111111',cityCode,streetName)
    getStreetData(cityCode, streetName) {
      console.log('1111111111111111', cityCode, streetName)
      var cityCode = cityCode.substring(0, 4)
      var cityCode = cityCode.substring(0, 4)
      var streetList = []
      var streetList = []
      _.filter(this.areaList.county_list, function (v, k) {
      _.filter(this.areaList.county_list, function (v, k) {
@ -238,19 +238,18 @@ Vue.component('lasc-modify-patient', {
          }
          }
        })
        })
      }, 1000)
      }, 1000)
      
    },
    },
    handleItemChange(item) {
    handleItemChange(item) {
      var sickProvince = '';
      var sickProvince = ''
      var sickCity = ''
      var sickCity = ''
      _.filter(this.areaList.province_list, function (v, k) {
      _.filter(this.areaList.province_list, function (v, k) {
        if (k.indexOf(item[0]) === 0) {
        if (k.indexOf(item[0]) === 0) {
          sickProvince=v||''
          sickProvince = v || ''
        }
        }
      })
      })
      _.filter(this.areaList.city_list, function (v, k) {
      _.filter(this.areaList.city_list, function (v, k) {
        if (k.indexOf(item[1]) === 0) {
        if (k.indexOf(item[1]) === 0) {
          sickCity=v||''
          sickCity = v || ''
        }
        }
      })
      })
      this.form.baseinfo.sickProvince = sickProvince
      this.form.baseinfo.sickProvince = sickProvince
@ -274,8 +273,7 @@ Vue.component('lasc-modify-patient', {
      this.streetList.map(item => {
      this.streetList.map(item => {
        this.fetchStreetList(item)
        this.fetchStreetList(item)
      })
      })
      console.log('111111111111111112222222222222222',this.currentStreet)
      
      console.log('111111111111111112222222222222222', this.currentStreet)
    },
    },
    loadAreaData() {
    loadAreaData() {
      this.areaOptions = Object.keys(this.areaList.province_list).map(provinceCode => ({
      this.areaOptions = Object.keys(this.areaList.province_list).map(provinceCode => ({
@ -305,7 +303,7 @@ Vue.component('lasc-modify-patient', {
        if (res.status == 200) {
        if (res.status == 200) {
          res.data.forEach(element => {
          res.data.forEach(element => {
            vm.currentStreet.push(element)
            vm.currentStreet.push(element)
          });
          })
          var children =
          var children =
            !res.data || !res.data.length
            !res.data || !res.data.length
              ? []
              ? []
@ -314,26 +312,25 @@ Vue.component('lasc-modify-patient', {
                    label: v.name,
                    label: v.name,
                    value: v.code
                    value: v.code
                  }
                  }
                });
           
                })
        }
        }
        item.children = children
        item.children = children
      })
      })
    },
    },
    handleStreetChange(item){
      this.form.baseinfo.sickCounty= this.areaList.county_list[item[0]]
    handleStreetChange(item) {
      this.form.baseinfo.sickCounty = this.areaList.county_list[item[0]]
      this.currentStreet.forEach(element => {
      this.currentStreet.forEach(element => {
          if(element.code==item[1]){
            this.form.baseinfo.sickStreet= element.name
          }
      });
        if (element.code == item[1]) {
          this.form.baseinfo.sickStreet = element.name
        }
      })
    }
    }
  },
  },
  watch: {
  watch: {
    currentInfo: {
    currentInfo: {
      handler(newVal, oldVal) {
      handler(newVal, oldVal) {
        if (newVal) {
        if (newVal) {
          this.getTableInfo();
          this.getTableInfo()
        }
        }
      },
      },
      deep: true
      deep: true
@ -346,8 +343,7 @@ Vue.component('lasc-modify-patient', {
      this.menophaniaAgeList.push(i)
      this.menophaniaAgeList.push(i)
    }
    }
    this.loadAreaData()
    this.loadAreaData()
    this.getTableInfo();
    console.log('3333333333333333333333333',this)
    this.getTableInfo()
    console.log('3333333333333333333333333', this)
  }
  }
})
})

+ 1 - 1
component/statistics/LascPatient/index.html

@ -65,7 +65,7 @@
        <template slot-scope="scope">
        <template slot-scope="scope">
          <el-button type="text" @click="openDialog(scope.row)">编辑</el-button>
          <el-button type="text" @click="openDialog(scope.row)">编辑</el-button>
          <el-button type="text" @click="onClickServiceRecord(scope.row)">服务记录</el-button>
          <el-button type="text" @click="onClickServiceRecord(scope.row)">服务记录</el-button>
          <el-button type="text">就医记录</el-button>
          <el-button type="text" @click="getCode(scope.row.idcardStr)">就医记录</el-button>
        </template>
        </template>
      </el-table-column>
      </el-table-column>
    </el-table>
    </el-table>

+ 17 - 0
component/statistics/LascPatient/index.js

@ -25,6 +25,7 @@ Vue.component('lasc-patient', {
      chooseYear: null,
      chooseYear: null,
      chooseTime1: null,
      chooseTime1: null,
      chooseTime: null,
      chooseTime: null,
      patientCode: '',
      formDialogVisible: true,
      formDialogVisible: true,
      rangeOptions: [
      rangeOptions: [
        { label: '区', value: '1' },
        { label: '区', value: '1' },
@ -275,6 +276,22 @@ Vue.component('lasc-patient', {
      this.dialogVisible = true
      this.dialogVisible = true
      // console.log(row)
      // console.log(row)
      this.currentInfo = row
      this.currentInfo = row
    },
    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://ijk.xmsmjk.com/wlyy/profileweb/#/menzhen' //健康档案服务
          //var healthRecordServer="https://ijk.xmsmjk.com/wlyytest/profileweb/#/menzhen"  //健康档案服务wlyytest
          window.open(healthRecordServer + '?patientCode=' + res.data.patientCode)
        } else {
          vm.patientCode = ''
          this.$message.error('获取授权码失败')
          return
        }
      })
    }
    }
  },
  },
  mounted() {
  mounted() {

+ 132 - 54
component/statistics/LascProgress/index.html

@ -1,58 +1,136 @@
<!-- css文件位置位于/component/common/jtbc.css -->
<div id="app" class="jtbc">
<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" style="display: flex; align-items: center">
        评估时间:
        <el-date-picker
          v-model="chooseTime"
          type="daterange"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd"></el-date-picker>
      </label>
    </div>
  <template v-if="!serviceRecordVisable">
    <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" style="display: flex; align-items: center">
          评估时间:
          <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.range" placeholder="请选择" @change="resetArea">
        <el-option v-for="(option, index) in rangeOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20">
      <label class="c-333 c-f14">地区:</label>
      <el-select class="formWidth" v-model="form.town" placeholder="请选择" @change="getHospital">
        <el-option v-for="(option, index) in areaOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
      </el-select>
    </div>
    <div class="searchDiv pb20 pr20" v-if="form.range == '2'">
      <label class="c-333 c-f14">社区:</label>
      <el-select class="formWidth" v-model="form.hospital" placeholder="请选择" @change="getTeam">
        <el-option v-for="(option, index) in hospitalOptions" :label="option.name" :value="option.code" :key="option.code"></el-option>
      </el-select>
    </div>
   
    <div class="searchDiv pb20">
      <el-button type="primary" size="mini" @click="searchFn">查询</el-button>
      <el-button type="ff9526" size="mini" @click="exportTable" :disabled="exportLoading">导出</el-button>
      <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">数据范围:</label>
        <el-select class="formWidth" v-model="form.range" placeholder="请选择" @change="resetArea">
          <el-option v-for="(option, index) in rangeOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </div>
      <div class="searchDiv pb20 pr20">
        <label class="c-333 c-f14">地区:</label>
        <el-select class="formWidth" v-model="form.town" placeholder="请选择" @change="getHospital">
          <el-option v-for="(option, index) in areaOptions" :label="option.label" :value="option.value" :key="option.value"></el-option>
        </el-select>
      </div>
      <div class="searchDiv pb20 pr20" v-if="form.range == '2'">
        <label class="c-333 c-f14">社区:</label>
        <el-select class="formWidth" v-model="form.hospital" placeholder="请选择" @change="getTeam">
          <el-option v-for="(option, index) in hospitalOptions" :label="option.name" :value="option.code" :key="option.code"></el-option>
        </el-select>
      </div>
      <div class="searchDiv pb20">
        <el-button type="primary" size="mini" @click="searchFn">查询</el-button>
        <el-button type="ff9526" size="mini" @click="exportTable" :disabled="exportLoading">导出</el-button>
        <span class="eliminate" @click="eliminateClick">清除筛选条件</span>
      </div>
    </div>
    </div>
  </div>
  <el-table :data="tableData" style="width: 100%" v-loading="loading" row-key="code" lazy :load="load" border class="mt20">
    <el-table-column label="序号" type="index"></el-table-column>
    <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop" :prop="item.prop">
      <template slot-scope="scope">{{scope.row[item.prop]}}</template>
    </el-table-column>
  </el-table>
  <el-pagination
    @current-change="handleCurrentChange"
    @size-change="handleSizeChange"
    :current-page.sync="page"
    :page-size="size"
    :page-sizes="[10, 20, 50]"
    layout="total, sizes, prev, pager, next, jumper"
    :total="total"
    class="pagination"></el-pagination>
    <el-table :data="tableData" style="width: 100%" v-loading="loading" row-key="code" lazy border class="mt20">
      <el-table-column label="序号" type="index"></el-table-column>
      <el-table-column :label="item.label" v-for="item in tableHeader" :min-width="item.width" :key="item.prop" :prop="item.prop">
        <template slot-scope="scope">
          <span :class="`${item.prop!='gynOrg'?'pointer c-409eff':''}`" @click="openDialog(scope.row, item.prop)">{{scope.row[item.prop]}}</span>
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
      @current-change="handleCurrentChange"
      @size-change="handleSizeChange"
      :current-page.sync="page"
      :page-size="size"
      :page-sizes="[10, 20, 50]"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total"
      class="pagination"></el-pagination>
    <el-dialog :visible.sync="visible" title="个案数据列表" @close="closeDialog" width="1200px">
      <el-form inline size="mini">
        <el-form-item label="居民姓名:">
          <el-input v-model="query.name" placeholder="请输入居民姓名查询"></el-input>
        </el-form-item>
        <el-form-item label="手机号码:">
          <el-input v-model="query.mobile" placeholder="请输入手机号码"></el-input>
        </el-form-item>
        <el-form-item label="证件号码:">
          <el-input v-model="query.idcard" placeholder="请输入证件号码查询"></el-input>
        </el-form-item>
        <el-form-item label="个人筛查状态:">
          <el-select v-model="query.status">
            <el-option label="全部" value=""></el-option>
            <el-option label="待评估" value="0"></el-option>
            <el-option label="已评估" value="1"></el-option>
            <el-option label="已评估且管理" value="2"></el-option>
            <el-option label="宫颈待完善乳腺待完善" value="3"></el-option>
            <el-option label="宫颈待完善乳腺完成筛查" value="4"></el-option>
            <el-option label="宫颈完成筛查乳腺待完善" value="5"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="数据范围:">
          <el-select v-model="form.range" disabled>
            <el-option v-for="item in rangeOptions" :value="item.value" :label="item.label" :key="item.value"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="地区:" v-if="form.range == 'town'">
          <el-select v-model="form.area" disabled>
            <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="社区:" v-if="form.range == 'hospital'">
          <el-select v-model="form.hospital" disabled>
            <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="团队:" v-if="form.range == 'team'">
          <el-select v-model="form.team" disabled>
            <el-option v-for="(option, index) in dataRangeOption" :label="option.label" :value="option.value" :key="option.value"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="dialogSearchFn">查询</el-button>
          <el-button type="warning" @click="dialogExportFn" :disabled="dialogExportLoading">导出</el-button>
          <span @click="dialogResetFn" style="color: #676a6c; cursor: pointer">清除筛选条件</span>
        </el-form-item>
      </el-form>
      <el-table :data="dialogTableData" border v-loading="dialogLoading">
        <el-table-column type="index" label="序号"></el-table-column>
        <el-table-column v-for="item in dialogHeader" :label="item.label" :prop="item.prop" :key="item.prop">
          <template slot-scope="scope">
            <span>{{scope.row[item.prop]}}</span>
          </template>
        </el-table-column>
        <el-table-column label="操作">
          <template slot-scope="scope">
            <el-button type="text" @click="gotoService(scope.row)">查看服务记录</el-button>
          </template>
        </el-table-column>
      </el-table>
      <div style="display: flex; justify-content: flex-end; margin-top: 10px">
        <el-pagination
          @current-change="handleCurrentChange1"
          @size-change="handleSizeChange1"
          :current-page.sync="query.page"
          :page-size="query.size"
          :page-sizes="[10, 20, 50]"
          layout="total, sizes, prev, pager, next, jumper"
          :total="query.total"></el-pagination>
      </div>
    </el-dialog>
  </template>
  <template v-if="serviceRecordVisable">
    <Copd-service-record-patient :patient="currentEditData" @back="back"></Copd-service-record-patient>
  </template>
</div>
</div>

+ 112 - 2
component/statistics/LascProgress/index.js

@ -53,7 +53,22 @@ Vue.component('lasc-progress', {
      ],
      ],
      level: 0,
      level: 0,
      visible: false,
      visible: false,
      query: {},
      query: {
        page: 1,
        size: 10,
        total: 0
      },
      dialogHeader: [
        { label: '居民姓名', prop: 'name', width: '100' },
        { label: '证件号码', prop: 'idcard', width: '100' },
        { label: '手机号', prop: 'mobile', width: '110' },
        { label: '年龄', prop: 'age', width: '90' },
        { label: '出生日期', prop: 'birthday', width: '90' },
        { label: '常驻地址', prop: 'address', width: '100' },
        { label: '个人筛查状态', prop: 'statusName', width: '100' }
      ],
      currentEditData: '',
      serviceRecordVisable: false,
      page: 1,
      page: 1,
      size: 10,
      size: 10,
      total: 0,
      total: 0,
@ -73,10 +88,15 @@ Vue.component('lasc-progress', {
      communityHospitals: [],
      communityHospitals: [],
      title: '',
      title: '',
      dialogVisible: false,
      dialogVisible: false,
      signatoryList: []
      signatoryList: [],
      dialogTableData: []
    }
    }
  },
  },
  methods: {
  methods: {
    back() {
      this.currentEditData = ''
      this.serviceRecordVisable = false
    },
    init() {
    init() {
      var selectedRole = JSON.parse(sessionStorage.getItem('selectedRole'))
      var selectedRole = JSON.parse(sessionStorage.getItem('selectedRole'))
      if (selectedRole.code.indexOf('350200') > -1) {
      if (selectedRole.code.indexOf('350200') > -1) {
@ -117,6 +137,10 @@ Vue.component('lasc-progress', {
      this.searchFn()
      this.searchFn()
      this.hospitalsByType()
      this.hospitalsByType()
    },
    },
    gotoService(item) {
      this.currentEditData = item.patient
      this.serviceRecordVisable = true
    },
    initTime() {
    initTime() {
      var vm = this
      var vm = this
      var now = new Date()
      var now = new Date()
@ -321,6 +345,92 @@ Vue.component('lasc-progress', {
      } else {
      } else {
        this.init()
        this.init()
      }
      }
    },
    openDialog(scope, prop) {
      var vm = this
      if (prop != 'total') {
        this.query.status = prop.charAt(prop.length - 1)
      }
      console.log(this.query, '0000000000000000000000000')
      vm.dialogLoading = true
      this.query.type = 't_' + prop
      var params = {
        ...this.query,
        range: (this.form && this.form.range) || '',
        town: (this.form && this.form.town) || ''
      }
      vm.dialogTableData = []
      if (this.chooseTime) {
        params.startTime = this.chooseTime[0]
        params.endTime = this.chooseTime[1]
      }
      delete params.total
      httpRequest.get('doctor/twoCancers/count/caseDataList', { data: params }).then(function (res) {
        vm.dialogTableData = res.detailModelList
        vm.query.total = res.totalCount
        vm.visible = true
        vm.dialogLoading = false
      })
    },
    caseDataList() {
      var vm = this
      vm.dialogLoading = true
      var params = {
        ...this.query,
        range: (this.form && this.form.range) || '',
        town: (this.form && this.form.town) || '',
        hospital: (this.form && this.form.hospital) || ''
      }
      vm.dialogTableData = []
      if (this.chooseTime) {
        params.startTime = this.chooseTime[0]
        params.endTime = this.chooseTime[1]
      }
      delete params.total
      httpRequest.get('doctor/twoCancers/count/caseDataList', { data: params }).then(function (res) {
        vm.dialogTableData = res.detailModelList
        vm.query.total = res.totalCount
        vm.dialogLoading = false
      })
    },
    dialogSearchFn() {
      this.caseDataList()
    },
    handleCurrentChange1(val) {
      this.query.page = val
      this.caseDataList()
    },
    handleSizeChange1(val) {
      this.query.size = val
      this.caseDataList()
    },
    dialogExportFn() {
      var vm = this
      this.dialogExportLoading = true
      var params = {
        ...this.query,
        range: (this.form && this.form.range) || '',
        town: (this.form && this.form.town) || '',
        hospital: (this.form && this.form.hospital) || ''
      }
      if (this.chooseTime) {
        params.startTime = this.chooseTime[0]
        params.endTime = this.chooseTime[1]
      }
      var fileName = `个案数据列表${new Date().getTime()}.xls`
      httpRequest.downLoadFileForAjax('doctor/twoCancers/count/exportCaseDataList', fileName, params).then(function () {
        vm.dialogExportLoading = false
      })
    },
    dialogResetFn() {
      this.query = {
        page: 1,
        size: 10,
        total: 0
      }
      this.caseDataList()
    }
    }
  },
  },
  mounted() {
  mounted() {