123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719 |
- // 慢阻肺患者档案表格组件
- 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'
- })
- })
- }
- }
- })
|