提交 d94eb141 编写于 作者: Yuanzhao.dai's avatar Yuanzhao.dai

选人优化

上级 a653627b
......@@ -136,6 +136,9 @@ export default {
...payload
}).then(({data}) => {
context.commit('GET_RESIDENT_LIST', data);
context.dispatch('getSelectResident',{
planId: payload.planId
})
});
},
getGroupList(context, payload) {
......@@ -159,6 +162,9 @@ export default {
getPlanDetail(context, payload) {
getPlanDetail(payload).then(({data}) => {
context.commit('GET_PLAN_DETAIL', data);
context.dispatch('getSelectResident',{
planId: data.id
})
});
},
getRemarkOption(context, payload) {
......
......@@ -10,7 +10,13 @@
width="65%"
center>
<div class="finish-content">
<el-form ref="searchData" :model="searchData" :inline="true" class="select-width" size="small">
<el-form
ref="searchData"
:model="searchData"
:inline="true"
class="select-width"
size="small">
<el-form-item>
<el-select v-model="searchData.sex" @change="changeSex">
<el-option
......@@ -62,10 +68,13 @@
ref="multipleTable"
center
style="width: 100%;margin-top: 20px;"
:row-key="getRowKeys"
@selection-change="handleSelectionChange">
<el-table-column
type="selection"
align="center">
align="center"
:reserve-selection="true"
:selectable="checkboxInit">
</el-table-column>
<el-table-column
prop="nickname"
......@@ -124,7 +133,7 @@
</template>
<script>
import { mapState, mapActions } from 'vuex'
import { getBasicData, getPlanPatientsList, getAllDiseases, getAllLabels } from '@/utils/followup/followapis'
export default {
components: {},
......@@ -133,7 +142,7 @@
return {
showSelectPatient: true,
allSelects: [],
eachSelects: [],//仅仅是操作选择的总人员
// eachSelects: [],//仅仅是操作选择的总人员
// totalSelect: [],// 当前所选的人
labelId: '',
diseaseId: '',
......@@ -143,7 +152,6 @@
ageEnd: '',
srvPackageId: '',
searchCondition: '',
patientsData: [],
searchData: {
sex: '性别',
......@@ -175,12 +183,22 @@
labelId: '',
labelName: '分组'
}],
trueAdd:[], //真正新加
newSelects: [], //新选中的人
getRowKeys(row) {
// console.log('sshkdhdk',row)
return row.patientId;
},
}
},
computed: {
...mapState('planManage', {
eachSelects: state => state.eachSelects,
})
},
props: {
isShowSelectPatient: Boolean, //是否显示model,
patientIdList: Array,// 确定已经选过的居民
oldPatientIdList: Array,// 确定已经选过的居民
},
watch: {
isShowSelectPatient(val){
......@@ -221,31 +239,16 @@
})
}
},
eachSelects(val, oldVal){
if(val.length&&oldVal.length) {
console.log('新',val);
console.log('新',oldVal);
if(val.length>oldVal.length) {
let add = val.filter(function(n) {
return oldVal.indexOf(n) == -1
});
this.trueAdd.push(add)
console.log('加人',this.trueAdd)
} else if(val.length<=oldVal.length) {
let reduce = oldVal.filter(function(n) {
return val.indexOf(n) == -1
});
/*this.trueAdd = this.trueAdd.filter(function(n) {
return reduce.indexOf(n) == -1
});*/
console.log('减人',reduce)
} else {
}
}
}
},
methods: {
checkboxInit(row,index){
if(row.disableNum == undefined) {
return 1
} else {
return row.disableNum
}
},
getPatientsList(){
const data = {
pageSize: this.paginationSet.pageSize,
......@@ -265,15 +268,29 @@
this.getSex()
this.paginationSet.total = res.data.totalRows
// 设置所请求的当页人员是否成为选中状态
if(this.patientIdList.length > 0){
this.patientsData.forEach((item)=>{
// console.log('传入的已选居民',this.patientIdList)
this.patientsData.forEach((item)=>{
item.disableNum = 1;
if(this.patientIdList.length > 0){
if(this.patientIdList.includes(item.patientId)){// 如果已经选过居民
this.$nextTick(()=>{
this.$refs.multipleTable.toggleRowSelection(item,true);
})
}
})
}
}
if(this.oldPatientIdList!=undefined&&this.oldPatientIdList.length) {
this.patientsData.forEach((item)=>{
if(this.oldPatientIdList.includes(item.patientId)){// 如果已经选过居民
item.disableNum = 0
} else {
item.disableNum = 1
}
})
}
})
// console.log(this.oldPatientIdList)
}else{
this.patientsData = []
}
......@@ -296,12 +313,16 @@
},
// 选择居民
handleSelectionChange(val) {
console.log('每次选中居民',val)
this.eachSelects = val
const _this = this;
_this.newSelects = [];
val.forEach(item => {
if(item.disableNum == 1) {
_this.newSelects.push(item)
}
})
},
// 切换分页
handleCurrentChangePre(val) {
// console.log('handleCurrentChangePre')
this.paginationSet.pageNum = val
this.getPatientsList()
},
......@@ -309,7 +330,7 @@
this.$emit('closeSelectPatient',false)
},
sureClick(){
this.$emit('sureSelectPatient',false,this.eachSelects)
this.$emit('sureSelectPatient',false,this.newSelects)
},
handleSizeChangePre(val) {
// console.log('handleSizeChangePre')
......
......@@ -238,13 +238,13 @@
let getArguments = arguments[0];
this.isShowSelectPatient = getArguments[0];
const selectPatients = getArguments[1]; // 每次选中获取的人
this.hasSelectedList = selectPatients;
console.log('呵呵呵呵',arguments)
this.baseInfo.patientIdList = [];
selectPatients.forEach((item)=>{
if(!this.baseInfo.patientIdList.includes(item.patientId)){
this.hasSelectedList.push(item)
this.baseInfo.patientIdList.push(item.patientId); // 页面中数据存储所有选择的人,没有去重
}
this.baseInfo.patientIdList.push(item.patientId);
})
this.baseInfo.hasSelectedNum = this.baseInfo.patientIdList.length;
this.baseInfo.hasSelectedNum = this.hasSelectedList.length;
},
continueAdd(val) {
this.isShowSelectedDialog = val;
......
......@@ -64,6 +64,7 @@
<select-patient
:isShowSelectPatient="isShowSelectPatient"
:patientIdList="planDetailData.patientIdList"
:oldPatientIdList="selectResidentIdList"
@closeSelectPatient="closeSelectPatient"
@sureSelectPatient="sureSelectPatient(arguments)">
</select-patient>
......@@ -135,10 +136,12 @@
showFollowTime: false, //是否展示全部时间
showAddPatientTime: false,//是否展示添加居民选择时间
addPatientData: {}, //选择时间数据
/*joinSelectedList: [], //新添加居民
joinPatientIdList: [], //新添加居民id
joinSelectedNames: [], //新添加居民名字*/
selectPatients: [], //选择居民列表已选人
oldSelect:[],
selectResidentIdList: [], //oldID
newHasSelectedList: [],
initResidentList: [], //重置需要的居民列表
initResidentIdList: [], //重置需要的id
}
},
created() {
......@@ -146,9 +149,7 @@
this.getPlanDetail(this.$route.query.planId); //获取计划详情
this.getRemarkOption()
this.getNodeTimeList(this.$route.query.planId); // 获取随访时间列表
this.getSelectResident({
planId: this.$route.query.planId
}); //已选居民
let planModifyCrumbList = sessionStorage.getItem('planModifyCrumb');
this.planModifyCrumb = JSON.parse(planModifyCrumbList);
},
......@@ -158,7 +159,6 @@
nodeTimeList: state => state.nodeTimeList,
residentList: state => state.residentList,
remarkOption: state => state.remarkOption,
// setTimeNodeList: state => state.setTimeNodeList,
selectResidentList: state => state.selectResidentList
})
},
......@@ -185,37 +185,32 @@
this.isShowSelectedDialog = val;
},
sureSelectPatient() {
console.log('getArguments',arguments[0])
let getArguments = arguments[0];
// alert(this.selectResidentList.length+'-'+getArguments[1].length)
this.isShowSelectPatient = getArguments[0];
this.selectPatients = getArguments[1]; // 每次选中获取的人
let selectPeople = [];
let selectPeopleIds = [];
let selectNames = []
this.hasSelectedList.forEach(function (item) {
selectPeople.push(item)
});
this.patientIdList.forEach(function (item) {
selectPeopleIds.push(item)
const newAddPatientList = getArguments[1]; // 新选中的人
const showNames = [];
const newIds = [];
newAddPatientList.forEach(item => {
showNames.push(item.nickname)
newIds.push(item.patientId)
})
this.selectPatients.forEach((item)=>{
if(!this.planDetailData.patientIdList.includes(item.patientId)){// 页面中数据存储所有选择的人,没有去重
selectPeople.push(item);
selectPeopleIds.push(item.id)
selectNames.push(item.nickname)
this.newHasSelectedList = JSON.parse(JSON.stringify(this.initResidentList));
this.newHasSelectedList = this.newHasSelectedList.concat(newAddPatientList);
if(this.newHasSelectedList.length > this.hasSelectedList.length) {
this.showAddPatientTime = true;
this.addPatientData = {
id: this.$route.query.planId,
addPatients: true,
patientNames: showNames.join('、'),
}
})
this.addPatientData = {
id: this.$route.query.planId,
addPatients: true,
patientIdList: selectPeopleIds,
patientNames: selectNames.join('、'),
} else {
this.hasSelectedList = JSON.parse(JSON.stringify(this.newHasSelectedList));
this.planDetailData.patientIdList = JSON.parse(JSON.stringify(this.initResidentIdList));
const _this = this;
newAddPatientList.forEach(item => {
_this.planDetailData.patientIdList.push(item.patientId)
})
}
this.showAddPatientTime = true
},
continueAdd(val) {
this.isShowSelectedDialog = val;
......@@ -301,36 +296,33 @@
this.showAddPatientTime = isShow
},
sendJoinTime(joinData) {
console.log('this.hasSelectedList new',this.hasSelectedList)
const _this = this;
if(joinData) {
// alert(joinData)
this.planDetailData.joinTime =joinData;
console.log('新添加时间',this.planDetailData.joinTime)
this.selectPatients.forEach((item)=>{
if(!this.planDetailData.patientIdList.includes(item.patientId)){// 页面中数据存储所有选择的人,没有去重
this.hasSelectedList.push(item)
this.planDetailData.patientIdList.push(item.patientId);
}
_this.hasSelectedList = [];
_this.planDetailData.patientIdList = [];
_this.newHasSelectedList.forEach(item => {
_this.hasSelectedList.push(item)
_this.planDetailData.patientIdList.push(item.patientId)
})
this.planDetailData.hasSelectedNum = this.patientIdList.length;
this.planDetailData.joinTime = joinData;
} else {
}
},
},
watch: {
planDetail(val) {
// console.log(val)
this.planDetailData = val
this.planDetailData = val;
this.setTimeNodeList = val.fPlanTimeReqList
if(this.planDetailData.resourceId){
this.isStandedTemplate = true
}else{
this.isStandedTemplate = false
}
},
selectResidentList(val) {
const _this = this
_this.planDetailData.patientIdList = []
let people = {}
if(val) {
val.forEach(function (item, index) {
......@@ -341,10 +333,14 @@
mobilePhone: item.mobilePhone,
labelId: item.labelName,
patientId: item.patientId
}
_this.patientIdList.push(item.patientId)
_this.hasSelectedList.push(people)
};
_this.hasSelectedList.push(people);
_this.planDetailData.patientIdList.push(item.patientId)
_this.selectResidentIdList.push(item.patientId)
_this.initResidentList.push(people);
_this.initResidentIdList.push(item.patientId);
})
_this.newHasSelectedList = JSON.parse(JSON.stringify(_this.initResidentIdList));
}
}
}
......@@ -354,6 +350,23 @@
<style lang="scss" scoped>
@import '../../../style/followup/followup-common';
@import '../../../style/followup/element-reset.css';
.bread-crumb {
position: fixed;
left: 255px;
top: 64px;
width: 100%;
background: #fff;
height: 61px;
padding: 20px 20px 30px;
z-index: 99;
border-top: 3px solid #F0F2F5;
.el-breadcrumb__inner {
font-size: 14px;
}
a:hover {
color: #449284;
}
}
.header{
display: flex;
align-items: center;
......
......@@ -129,6 +129,7 @@
<select-patient
:isShowSelectPatient="isShowSelectPatient"
:patientIdList="initialPatientIdList"
:oldPatientIdList="initialPatientIdList"
@closeSelectPatient="closeSelectPatient"
@sureSelectPatient="sureSelectPatient(arguments)">
</select-patient>
......@@ -223,6 +224,7 @@
groupList: state => state.groupList,
planStatusOption: state => state.planStatusOption,
followStartTimeList: state => state.followStartTimeList,
selectResidentList: state => state.selectResidentList
})
},
methods: {
......@@ -369,20 +371,16 @@
this.showAddPatientTime = isShow
},
sureSelectPatient() {
console.log('arguments',arguments)
let getArguments = arguments[0];
this.isShowSelectPatient = getArguments[0];
const selectPatients = getArguments[1]; // 每次选中获取的人
// this.hasSelectedList = selectPatients;
console.log(selectPatients)
let patientIds = []
let patientNames = []
selectPatients.forEach((item)=>{
if(!this.initialPatientIdList.includes(item.patientId)){
patientIds.push(item.patientId)
patientNames.push(item.nickname)
}
patientIds.push(item.patientId)
patientNames.push(item.nickname)
})
this.addPatientData = {
id: this.$route.query.planId,
......@@ -392,7 +390,6 @@
status: this.status
}
this.showAddPatientTime = true
// this.baseInfo.hasSelectedNum = this.baseInfo.patientIdList.length;
},
handleSelectionChange(val) {
console.log('已选居民',val)
......@@ -408,21 +405,21 @@
})
},
residentList(val) {
const _this = this
if(val.fPlanPatientInfoDtoList) {
val.fPlanPatientInfoDtoList.forEach(function (item,index) {
_this.initialPatientIdList.push(item.patientId)
})
}
if(_this.status == 1) {
_this.statusTotal = val.notCount
} else if (_this.status == 2) {
_this.statusTotal = val.handCount
if(this.status == 1) {
this.statusTotal = val.notCount
} else if (this.status == 2) {
this.statusTotal = val.handCount
} else if (_this.status == 3) {
_this.statusTotal = val.yesCount
this.statusTotal = val.yesCount
}
}
},
selectResidentList(val) {
const _this = this
val.forEach(function (item,index) {
_this.initialPatientIdList.push(item.patientId)
});
},
},
beforeRouteEnter(to, from, next) {
next(vm=> {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册