var template = ''
$.ajax('../html/dejdsqyyRzjd.html',{
data: {},
dataType: 'html',
cache: false,
timeout: 60000,
async: false,
error: function(res) {
},
success: function(res) {
template = res
}
})
Vue.component('mzf-dejdsqyy-rzjd', {
props: [],
template: template,
data: function() {
return {
dejdSqyyRzDate:[],
testArr1: [],
testArr2: [],
testArr3: [],
// testArr4: [],
testPosition1: 0,
testPosition2: 0,
testPosition3: 0,
// testPosition4: 0,
list:[],
startTime:new Date('2023','05','26'),
endTime:new Date(),
regionList:[],
regionData:[
{label:'全市',id:'1',type:'1'}
],
regionListList:[],
tertiaryHospitalsData:[
{label:'全部',id:'1',type:'2'}
],
communityHospitalsList:[],
communityHospitalsData:[
{label:'全部',id:'1',type:'3'}
],
groupingList:[],
groupingData:[
{label:'全部',id:'1',type:'4'}
],
administrationStatusList:[],
administrationStatusData:[
{label:'全部',id:'1',type:'5'}
],
show:false,
showTwo:false,
showThree:false,
currentPage:1,
currentSize:10,
datatotal:0, //总数
loadingTwo:false,
setDisabled:{
disabledDate:function(time) {
return time.getTime() < new Date('2023','05','26') || time.getTime() > Date.now();
}
},
s:'',
e:'',
courseArr: [],
coursePos: 0,
mergeObj: {},
mergeArr: ['areaName', 'gradeHospitalName', 'entryRate','communityHospitalName','targetEntryCont','v1MonthCount','v1AllCount','firstV1FinishDate'],
}
},
created: function(){
this.s = this.startTime.format('yyyy-MM-dd')
this.e = this.endTime.format('yyyy-MM-dd')
this.list.unshift({type:'0',id:'time',label:this.s +"~"+ this.e})
this.getCommunityHospitalEntryData()
},
watch:{
'startTime':{
handler:function(o) {
if(!o) {
this.list.splice(0,1)
}
},
deep: true,
immediate: true
},
'endTime':{
handler:function(o) {
if(!o) {
this.list.splice(0,1)
}
},
deep: true,
immediate: true
},
},
methods: {
getCommunityHospitalEntryData:function() {
var vm = this
vm.loadingTwo = true
var data = {
startTime:this.startTime.format('yyyy-MM-dd'),
endTime:this.endTime.format('yyyy-MM-dd')
}
statisticAPI.getCommunityHospitalEntryData({
jsonStr:JSON.stringify(data)
}).then(function(res){
if(res.status == 200) {
vm.loadingTwo = false
// vm.dejdSqyyRzDate =res.data
vm.dejdSqyyRzDate= vm.mergeArrays(res.data.data01,res.data.data02)
console.log('第二阶段社区医院入组进度',vm.dejdSqyyRzDate)
vm.getSpanArr(vm.dejdSqyyRzDate)
}
}).catch(function(err){
vm.loadingTwo = false
})
},
mergeArrays:function(array1, array2) {
var mergedArray = [];
array1.forEach(function(item1,index){
array2.slice(index*3,index*3+3).forEach(function(item2){
var mergedObj = Object.assign({}, item1, item2, { newDetail: 'Detail ' + i });
mergedArray.push(mergedObj);
})
})
return mergedArray;
},
startTimeChange:function(o) {
if(!this.list[0] || this.list[0].type!=0) {
this.list.unshift({type:'0',id:'time',label:o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
}else{
this.list[0].label = o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
}
},
endTimeChange:function(o) {
if(!this.list[0] || this.list[0].type!=0) {
this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')})
}else{
this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')
}
},
deleteClick:function(item) {
if(item.id == "time") {
this.startTime = ''
this.endTime = ''
this.list.splice(0,1)
}
var index = this.list.findIndex(function(v){
return item.id == v.id
})
this.list.splice(index,1)
},
// 下一页 上一页
handleCurrentChange:function(val) {
var vm = this
vm.currentPage = val
},
change:function(val) {
this.list = this.list.concat(val)
},
// 确定
confirm:function() {
this.getCommunityHospitalEntryData()
},
// 取消
cancel:function() {
this.startTime = new Date('2023','05','26')
this.endTime = new Date()
if(!this.list[0] || this.list[0].type!=0) {
this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
}else{
this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
}
},
// 导出
exportHandle:function() {
var vm = this
vm.loadingTwo = true
var data = {
startTime:this.startTime.format('yyyy-MM-dd'),
endTime:this.endTime.format('yyyy-MM-dd')
}
var jsonStr = JSON.stringify(data)
statisticAPI.exportCommunityHospitalEntryData({
jsonStr: encodeURIComponent(jsonStr)
},'慢阻肺第二阶段社区医院入组总明细.xls').then(function(res){
vm.loadingTwo = false
})
},
// getSpanArr方法
// getSpanArr(data) {
// this.mergeArr.forEach((key, index1) => {
// var count = 0; // 用来记录需要合并行的起始位置
// this.mergeObj[key] = []; // 记录每一列的合并信息
// data.forEach((item, index) => {
// // index == 0表示数据为第一行,直接 push 一个 1
// if(index === 0) {
// this.mergeObj[key].push(1);
// } else {
// // 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
// if(item[key] === data[index - 1][key]) {
// this.mergeObj[key][count] += 1;
// this.mergeObj[key].push(0);
// } else {
// // 如果当前行和上一行其值不相等
// count = index; // 记录当前位置
// this.mergeObj[key].push(1); // 重新push 一个 1
// }
// }
// })
// })
// },
getSpanArr(data) {
this.mergeArr.forEach((key, index1) => {
var count = 0; // 用来记录需要合并行的起始位置
this.mergeObj[key] = []; // 记录每一列的合并信息
data.forEach((item, index) => {
// index == 0表示数据为第一行,直接 push 一个 1
if(index === 0) {
this.mergeObj[key].push(1);
} else {
// 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
if(key==='v1MonthCount'||key==='targetEntryCont'||key==='firstV1FinishDate'||key==='v1AllCount'||key==='entryRate'){
if(item[key] === data[index - 1][key] && this.mergeObj[key][count]%3!=0) {
this.mergeObj[key][count] += 1;
this.mergeObj[key].push(0);
} else {
// 如果当前行和上一行其值不相等
count = index; // 记录当前位置
this.mergeObj[key].push(1); // 重新push 一个 1
}
}else{
if(item[key] === data[index - 1][key] ) {
this.mergeObj[key][count] += 1;
this.mergeObj[key].push(0);
} else {
// 如果当前行和上一行其值不相等
count = index; // 记录当前位置
this.mergeObj[key].push(1); // 重新push 一个 1
}
}
}
})
})
},
//得到行、列的合并值
objectSpanMethod: function({row, column, rowIndex, columnIndex}) {
if(this.mergeArr.indexOf(column.property) !== -1) {
// 判断其值是不是为0
if(this.mergeObj[column.property][rowIndex]) {
return [this.mergeObj[column.property][rowIndex], 1]
} else {
// 如果为0则为需要合并的行
return [0, 0];
}
}
},
renderHeadeRexpert: function(h, item) {
var index = item.$index
console.log(index,"我是index",item)
return [
index=='1'?'目标V2入组例数':index=='2'?'首例V1入筛时间(YYYY/MM/DD)':index=='9'?'入组完成率(%)':index=='6'?'首例V2入组时间':'',
h(
'el-tooltip',
{
props: {
content: (function() {
return index=='1'?'即目标入组例数(与管理目标数一致)':index=='2'?'完成V1的提交时间,即“第一例完成V1并成功纳入筛选期的访视日期':index=='9'?'入组完成率=已入组/目标V2入组例数':index=='6'?'查询第一个入组的时间(访视2触发入组,统计第一个做访视2的患者,且是完成访视2提交的时间。)':''
})(),
placement: 'top'
}
},
[
h('span', {
class: {
'el-icon-question': true
}
})
]
)
]
},
}
})