// 慢阻肺患者档案表格组件 var template = '' $.ajax('../../../component/statistics/CopdPatientRecord/index.html', { data: {}, dataType: 'html', cache: false, timeout: 60000, async: false, error: function (res) {}, success: function (res) { template = res } }) Vue.component('copd-patient-record', { template: template, props: [], data() { return { docInfo: JSON.parse(window.localStorage.getItem('docInfo')), daLoading: false, dataList: [], // 当前编辑的数据,点击编辑按钮后设置,取消或退出则清空 currentEditData: null, // 编辑页面是否显示 editViewVisable: false, userRoleCode: '', //服务记录是否显示 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: '全部' }], // 健康档案是否显示 healthRecordVisable: false, page: 1, size: 20, rangeList: [ { name: '按区', code: 'town' }, { name: '按社区', code: 'hospital' } ], rangeCode: 'town', totalPage: 0, totalCount: 0, name: '', years: '', turnDownStatus: '', receiveStatus: '', archivesStatus: '', hospital: '', doctorName: '', isLive: '', patientCode: '', firstOrg: '', currentSelect: [], followupStatus: [], dicName: ['jkcopd_archivesStatus', 'jkcopd_turnDownStatus', 'jkcopd_isLive', 'jkcopd_followup_status'], isShow: false, startTime: '', endTime: '', chooseYear: '', nowyear: '', areaList: [], areaCode: null, communityCode: null, fileList: [], file: undefined, isProgressShow: false, percentage: 0, success: false, loading: false, isOver: false, status: '', errList: [], pickerOptions: { disabledDate(time) { let timeSpace = time.getTime() <= moment.toDate().getTime() return timeSpace } }, communityList: [], allocationForm: {}, doctorList: [], allocationDialog: false, isGuGan: false, // 判断是否是骨干,若是显示分配,若不是显示批量分配 exportStandardLoading: false, selectLoading: false } }, computed: { showTotalTable() { return this.currentEditData == null && this.editViewVisable == false && this.serviceRecordVisable == false && this.healthRecordVisable == false }, showEditView() { return this.currentEditData && this.editViewVisable } }, mounted() { var vm = this var userRole = window.sessionStorage.getItem('selectedRole') vm.userRoleCode = JSON.parse(userRole).code this.initTime(vm) if(this.docInfo.expandLevelName){ this.isGuGan = this.docInfo.expandLevelName.indexOf('慢病骨干') > -1 } this.initScope(3) if(this.isGuGan){ // 如何是慢病骨干 则只能选社区,并且限定死社区 this.rangeList = [ { name: '按社区', code: 'hospital' } ] this.rangeCode = 'hospital' this.areaList = [ {name: this.docInfo.hospitalName.substring(0,3),code:this.docInfo.town} ] this.areaCode = this.docInfo.town this.communityList = [ { name: this.docInfo.hospitalName,code:this.docInfo.hospital } ] this.communityCode = this.docInfo.hospital vm.receivingHospitalList = [{code:this.docInfo.hospital,name:this.docInfo.hospitalName}] this.hospital = this.docInfo.hospital }else{ this.hospitalList() } EventBus.$on('copd-reset-select', function () { vm.currentEditData = null vm.editViewVisable = false vm.serviceRecordVisable = false vm.healthRecordVisable = false }) EventBus.$on('copd-reset-save', function () { vm.currentEditData = null 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) }) }) this.dicName.forEach(function (item) { vm.getDictByDictName(item) }) setTimeout(function(){ // vm.getJkCopdPatientPage() },200) }, watch:{ rangeCode(nv){ if(nv == 'hospital'){ this.initScope(5) } } }, destroyed() { EventBus.$off('copd-reset-select') 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) } }, // 数据范围初始化 initScope(type) { var vm = this //获得缓存中缓存的角色权限 var userRole = window.sessionStorage.getItem('selectedRole') if (!userRole) { return false } vm.userRole = JSON.parse(userRole) vm.areaTitle = vm.userRole.name if(vm.isGuGan){ return } if (type == 3) { this.areaCode = null this.communityCode = null if (vm.userRole.code == '350200' || vm.userRole.code == 'jk_350200') { vm.getDistrict(type, 350200, '厦门市') } else if (vm.userRole.code.indexOf('jk_') > -1) { vm.getDistrict(type, vm.userRole.code.substring(3), vm.areaTitle.substring(0, 3)) } else if (vm.userRole.code.length == 6) { vm.getDistrict(type, vm.userRole.code, vm.areaTitle.substring(0, 3)) } }else{ this.communityCode = null if(this.rangeCode == 'hospital')vm.getDistrict(type, vm.areaCode) } //level:2、市,3、区,4、社区,5、团队 // vm.initareaLevel = vm.areaLevel = vm.userRole.code == 'jk_350200' ? 2 : vm.userRole.code.length == 9 ? 3 : 4 // vm.initlevel = vm.level = vm.userRole.code == 'jk_350200' ? 4 : vm.userRole.code.length == 9 ? 3 : 2 // // if(vm.userRole.code == 'jk_350200'||vm.userRole.code =='350200'){ // // vm.initareaLevel = vm.areaLevel = 2 // // vm.initlevel = vm.level = 4 // // }else if(vm.userRole.code.length == 9){ // // vm.initareaLevel = vm.areaLevel = 3 // // vm.initlevel = vm.level = 3 // // }else{ // // vm.initareaLevel = vm.areaLevel = 4 // // vm.initlevel = vm.level = 2 // // } // console.log(vm.initlevel); // vm.initarea = vm.area = vm.userRole.code // vm.areaTitle = vm.userRole.name // if (vm.initlevel == 4) { // //市获取区 // if(vm.userRole.code == 'jk_350200'){ // vm.getDistrict(3, vm.initarea.substring(3), vm.areaTitle.substr(0, 3)) // }else{ // vm.getDistrict(3, vm.initarea, vm.areaTitle.substr(0, 3)) // } // vm.rangeCode = vm.rangeList[0].code // } else if (vm.initlevel == 3) { // //区获取社区 // vm.areaList = [{ code: vm.initarea, name: vm.areaTitle }] // vm.areaCode = vm.initarea // vm.rangeCode = vm.rangeList[0].code // } else if (vm.initlevel == 2) { // //社区获取团队 // vm.communityList = [{ code: vm.initarea, name: vm.areaTitle }] // vm.communityCode = vm.initarea // vm.rangeList.shift() // vm.rangeCode = vm.rangeList[0]?.code // } // vm.range = vm.rangeCode }, handlePreview(value) { var vm = this var file = value.target.files[0] this.daLoading = true if (file && file.size) { var formFile = new FormData() formFile.append('file', file) httpRequest .post('doctor/jkCopd/importExcel', { data: formFile, cache: false, //上传文件无需缓存 processData: false, //用于对data参数进行序列化处理 这里必须false contentType: false //必须 }) .then(function (res) { if (res.status == 200) { vm.getJkCopdPatientPage() vm.dicName.forEach(function (item) { vm.getDictByDictName(item) }) vm.daLoading = false vm.$message({ message: '导入成功!', type: 'success' }) } else { vm.$message.error('导入失败!') vm.daLoading = false } }) .catch(function (e) { console.error(e) vm.daLoading = false }) // statisticAPI.importExcel({file:formFile}).then(function(res){ // console.log('22222222222',res) // }) } }, //获取省市区 type:区3 getDistrict: function (type, code, name) { var vm = this, list = [], param = '' if (type == 3) { list = [{ code: code, name: name }] param = 'area' } else if (type == 5) { list = [{ code: '', name: '全部' }] param = 'community' } var params = { type: type, code: code } homeAPI.getDistrict(params).then(function (res) { if (res.status == 200) { vm[param + 'List'] = list.concat(res.list) // vm[param + 'Code'] = vm[param + 'List'][0].code // console.log(vm.areaList) } else { vm.$message.error(res.msg) } }) }, hospitalList() { var vm = this statisticAPI.hospitalList({ queryArea: vm.userRoleCode }).then(function (res) { vm.receivingHospitalList = vm.receivingHospitalList && vm.receivingHospitalList.concat(res.detailModelList) }) }, exportTable() { if(this.rangeCode == 'town' && this.areaCode == null){ this.$message.warning("请选择地区") return } if(this.rangeCode == 'hospital' && this.communityCode == null){ this.$message.warning("请选择社区") return } 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, hospital: this.hospital, doctorName: this.doctorName, isLive: this.isLive, firstOrg: this.firstOrg, queryArea: this.areaCode, queryHospital: this.communityCode == null?'':this.communityCode, } statisticAPI.exportJkCopdAchives(params, '居民档案.xls').then(function (res) { vm.daLoading = false vm.$message({ message: '导出成功!', type: 'success' }) }) }, selectionLineChangeHandle(val) { var vm = this var arr = [] val.forEach(function (item) { arr.push(item.id) }) vm.currentSelect = arr }, synPatient() { var vm = this if (vm.currentSelect.length) { statisticAPI .synPatient({ ids: vm.currentSelect.join(','), doctor: vm.docInfo.code }) .then(function (res) { if (res.status == '200') { vm.$message({ message: res.message, type: 'success' }) vm.getJkCopdPatientPage() vm.dicName.forEach(function (item) { vm.getDictByDictName(item) }) } else { vm.$message({ message: res.message, type: 'warning' }) } }) } else { vm.$message('请勾选患者!') } }, queryDate() { if(this.rangeCode == 'town' && this.areaCode == null){ this.$message.warning("请选择地区") return } if(this.rangeCode == 'hospital' && this.communityCode == null){ this.$message.warning("请选择社区") return } this.getJkCopdPatientPage() }, distributionHospital() { var vm = this if (vm.currentSelect.length) { vm.daLoading = true statisticAPI .distributionHospital({ type: 1, ids: vm.currentSelect.join(','), doctor: vm.docInfo.code }) .then(function (res) { if (res.status == '200') { vm.daLoading = false vm.$message({ message: res.message, type: 'success' }) vm.getJkCopdPatientPage() vm.dicName.forEach(function (item) { vm.getDictByDictName(item) }) } else { vm.daLoading = false vm.$message({ message: res.message, type: 'warning' }) } }) } else { vm.daLoading = false vm.$message('请勾选患者!') } }, eliminateClick() { ;(this.name = ''), (this.turnDownStatus = ''), (this.receiveStatus = ''), (this.archivesStatus = ''), (this.hospital = ''), (this.doctorName = ''), (this.isLive = ''), (this.firstOrg = '') }, //下转状态 getDictByDictName(value) { var vm = this statisticAPI.getDictByDictName({ name: value }).then(function (res) { if (value == 'jkcopd_turnDownStatus') { vm.transferStatusOptions = vm.transferStatusOptions.concat(res.list) } else if (value == 'jkcopd_archivesStatus') { 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 } this.currentEditData = record this.editViewVisable = true }, onClickServiceRecord(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() //window.open(url); }, onClickHealthRecord(record) { 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 this.getJkCopdPatientPage() }, handleSizeChange(val) { this.size = val this.getJkCopdPatientPage() }, getJkCopdPatientPage: function (val) { this.daLoading = true var vm = this var params = { page: this.page, size: this.size, name: this.name, turnDownStatus: this.turnDownStatus, receiveStatus: this.receiveStatus, archivesStatus: this.archivesStatus, hospital: this.hospital, doctorName: this.doctorName, isLive: this.isLive, queryArea: this.areaCode, firstOrg: this.firstOrg, startTime: this.chooseYear == '全部' ? '' : this.chooseYear + '-01-01', endTime: this.chooseYear == '全部' ? '' : this.chooseYear + '-12-31' } if(this.rangeCode == 'hospital'){ params.queryHospital = this.communityCode } statisticAPI.jkCopdAchivesPage(params).then(function (res) { vm.totalCount = res.totalCount vm.totalPage = res.totalPage vm.dataList = res.detailModelList vm.daLoading = false }) }, //上传 toggle(isShow) { this.isShow = isShow if (!isShow) { this.reset() } }, reset(type) { this.percentage = 0 this.success = false this.isOver = false this.errList = [] if (type != 1) { this.loading = false this.file = undefined this.month = '' } }, close(type) { this.reset(type) this.isProgressShow = false if (type != 1) { this.isShow = false } }, beforeUploadPic(file) { this.file = file }, check() { var vm = this vm.loading = true if (!vm.file) { vm.loading = false vm.$message('请选择文件') return } vm.save() }, save() { var vm = this vm.daLoading = true var formData = new FormData() formData.append('file', vm.file) // vm.initProgress() httpRequest .post('doctor/jkCopd/importExcel', { data: formData, cache: false, //上传文件无需缓存 processData: false, //用于对data参数进行序列化处理 这里必须false contentType: false //必须 }) .then(function (res) { if (res.status == 200) { vm.getJkCopdPatientPage() vm.dicName.forEach(function (item) { vm.getDictByDictName(item) }) vm.daLoading = false vm.isShow = false vm.$message({ message: '导入成功!', type: 'success' }) } else { vm.$message.error('导入失败!') vm.daLoading = false } }) .catch(function (e) { console.error(e) vm.daLoading = false }) }, initProgress() { var vm = this this.isProgressShow = true setTimeout(() => { if (!vm.isOver && vm.percentage != 90) { vm.percentage += 10 vm.initProgress() } }, 1000) }, openAllocationDialog() { if (this.currentSelect.length == 0) { this.$message.warning('请选择患者') return } var vm = this this.allocationDialog = true this.selectLoading = true statisticAPI.findDoctorList({ hospital: this.docInfo.hospital }).then(function (res) { vm.doctorList = res.detailModelList vm.selectLoading = false }) }, closeAllocationDialog() { this.allocationDialog = false }, back() { var vm = this vm.currentEditData = null vm.editViewVisable = false vm.serviceRecordVisable = false vm.healthRecordVisable = false }, allocationFn() { var vm = this this.$refs.allocationForm.validate(function (valid) { if (valid) { statisticAPI.distributionPatient({ ids: vm.currentSelect.join(','), doctor: vm.allocationForm.doctor }).then(function (res) { if (res.status == 200) { vm.allocationDialog = false vm.$message.success('分配成功') vm.getJkCopdPatientPage() } else { vm.$message.error(res.msg) } }) } }) }, standardExport() { if(this.rangeCode == 'town' && this.areaCode == null){ this.$message.warning("请选择地区") return } if(this.rangeCode == 'hospital' && this.communityCode == null){ this.$message.warning("请选择社区") return } var vm = this vm.exportStandardLoading = true var params = { name: this.name, turnDownStatus: this.turnDownStatus, receiveStatus: this.receiveStatus, archivesStatus: this.archivesStatus, hospital: this.hospital, doctorName: this.doctorName, isLive: this.isLive, queryArea: this.areaCode, firstOrg: this.firstOrg, queryHospital: this.communityCode == null?'':this.communityCode, startTime: this.chooseYear == '全部' ? '' : this.chooseYear + '-01-01', endTime: this.chooseYear == '全部' ? '' : this.chooseYear + '-12-31' } var time = new Date().getTime() statisticAPI.exportCountryStandard(params, `国家标准${time}.xls`).then(function (res) { vm.exportStandardLoading = false vm.$message({ message: '导出成功!', type: 'success' }) }) } } })