提交 86bad729 编写于 作者: tao.wu's avatar tao.wu

no message

上级 62a85f8f
......@@ -250,6 +250,17 @@ export const getFollowupTemplate = (data) => {
})
}
// 获取随访量表固定模板
export const getFollowupTableTemplate = (id) => {
return fetch({
headers,
url: getFollowUpSC(`/followup/plans/templets/${id}`),
method: 'get',
data: {},
description: '获取随访量表固定模板',
})
}
// 获取量表列表
export const getFormOptions = (data)=>{
return fetch({
......
......@@ -3,7 +3,6 @@
<el-dialog
title="已选居民"
:visible.sync="showSelectedDialog"
v-if="isShowSelectedDialog"
:before-close="clickClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
......@@ -13,7 +12,7 @@
<el-button type="primary" size="small" @click="continueAdd">继续添加</el-button>
</div>
<el-table
:data="hasSelectedList"
:data="eachHasSelectedList"
center
style="width: 100%;margin-top: 20px;">
<el-table-column
......@@ -48,12 +47,13 @@
<el-row type="flex" justify="end" class="margin-top20">
<el-pagination
background
v-if="hasSelectedList.length"
v-if="eachHasSelectedList.length"
@size-change="handleSizeChangePre"
@current-change="handleCurrentChangePre"
layout="total, sizes, prev, pager, next, jumper"
:current-page="paginationSet.pageNum"
:page-sizes="[10, 20, 50, 100]"
:page-sizes="[5,10,50,100]"
:page-count="paginationSet.total"
:page-size="paginationSet.pageSize"
:total="paginationSet.total">
</el-pagination>
......@@ -71,41 +71,41 @@
data() {
return {
showSelectedDialog: true,
eachHasSelectedList: [], // 由分页pageSize算出一页多少条数
paginationSet: {
pageNum: 1,
pageSize: 10,
pageSize: 5,
total: 0
},
}
},
props: {
isShowSelectedDialog: { //是否显示model
type: Boolean,
default: function() {
return false;
}
},
hasSelectedList: {
type: Array,
default: function() {
return []
}
}
hasSelectedList: Array, // 所有已选人数
},
mounted() {
// if(this.planId) {
//
// }
this.eachHasSelectedList = this.getPageList(this.hasSelectedList)
const totalLength = this.hasSelectedList.length
this.paginationSet.total = totalLength
},
methods: {
getPageList(list){
const pageNum = this.paginationSet.pageNum -1
const pageSize = this.paginationSet.pageSize
return list.slice(pageNum,pageSize)
},
clickClose() {
this.$emit('closeSelectedDialog',false)
},
continueAdd() {
this.$emit('continueAdd', false)
},
handleSizeChangePre() {},
handleCurrentChangePre() {},
handleSizeChangePre(val) {
console.log(val)
},
handleCurrentChangePre(val) {
this.paginationSet.pageNum = val
this.eachHasSelectedList = this.getPageList(this.hasSelectedList)
},
}
}
</script>
......
......@@ -133,6 +133,15 @@
allSelects: [],
eachSelects: [],//仅仅是操作选择的总人员
// totalSelect: [],// 当前所选的人
labelId: '',
diseaseId: '',
age: '',
sex: '',
ageBegin: '',
ageEnd: '',
srvPackageId: '',
searchCondition: '',
patientsData: [],
searchData: {
sex: '性别',
......@@ -173,41 +182,58 @@
watch: {
isShowSelectPatient(val){
if(val){
this.getPatientsList({pageNum: this.paginationSet.pageNum})
this.getPatientsList()
// 获取常量 性别、年龄
getBasicData({
numList: 'P057,P006'
}).then(res=>{
this.sexOptions = [{
no: '',
value: '性别'
}];
this.sexOptions = this.sexOptions.concat(res.data.P006);//性别
this.ageOptions = [{
no: '',
value: '年龄范围'
}]
this.ageOptions = this.ageOptions.concat(res.data.P057);//年龄段
})
// 获取所有疾病
getAllDiseases().then(res=>{
this.diseaseOptions = [{
diseaseId: '',
diseaseName: '基础疾病'
}]
this.diseaseOptions = this.diseaseOptions.concat(res.data);
})
// 获取所有分组
getAllLabels({type: 1}).then(res=>{
this.labelOptions = [{
labelId: '',
labelName: '分组'
}]
this.labelOptions = this.labelOptions.concat(res.data.labelNameList);
})
}
}
},
methods: {
getPatientsList(opts){
getPlanPatientsList({
getPatientsList(){
const data = {
pageSize: this.paginationSet.pageSize,
pageNo: opts.pageNum,
labelId:opts.labelId,
diseaseId: opts.diseaseId,
age: opts.age,
sex: opts.sex,
ageBegin: opts.ageBegin,
ageEnd: opts.ageEnd,
srvPackageId:opts.srvPackageId,
searchCondition:opts.searchCondition,
}).then(res=>{
pageNo: this.paginationSet.pageNum,
labelId:this.labelId,
diseaseId: this.diseaseId,
age: this.age,
sex: this.sex,
ageBegin: this.ageBegin,
ageEnd: this.ageEnd,
srvPackageId:this.srvPackageId,
searchCondition:this.searchCondition,
}
getPlanPatientsList(data).then(res=>{
if(res.data.patientList){
this.patientsData = res.data.patientList //接口获取的当页居民
this.getSex()
......@@ -222,6 +248,8 @@
}
})
}
}else{
this.patientsData = []
}
})
},
......@@ -248,9 +276,8 @@
// 切换分页
handleCurrentChangePre(val) {
console.log('handleCurrentChangePre')
this.getPatientsList({
pageNum: val
})
this.paginationSet.pageNum = val
this.getPatientsList()
},
clickClose(){
this.$emit('closeSelectPatient',false)
......@@ -261,45 +288,33 @@
handleSizeChangePre(val) {
console.log('handleSizeChangePre')
this.paginationSet.pageSize = val
this.getPatientsList({
pageNum:this.paginationSet.pageNum
})
this.getPatientsList()
},
changeSex(val){
this.getPatientsList({
sex: val,
pageNum: this.paginationSet.pageNum
})
this.sex = val
this.getPatientsList()
},
changeAge(val){
if(val=='年龄范围'){
val = null
}
this.getPatientsList({
age: val,
ageBegin: this.ageDate(val).ageBegin,
ageEnd: this.ageDate(val).ageEnd,
pageNum: this.paginationSet.pageNum
})
this.age = val;
this.ageBegin = this.ageDate(val).ageBegin;
this.ageEnd = this.ageDate(val).ageEnd;
this.getPatientsList()
},
changeDisease(val){
this.getPatientsList({
diseaseId: val,
pageNum: this.paginationSet.pageNum
})
this.diseaseId = val
this.getPatientsList()
},
changeLabel(val){
this.getPatientsList({
labelId: val,
pageNum: this.paginationSet.pageNum
})
this.labelId = val
this.getPatientsList()
},
searchHandler() {
const searchCondition = this.searchData.searchCondition
this.getPatientsList({
searchCondition: searchCondition,
pageNum: this.paginationSet.pageNum
})
this.searchCondition = searchCondition
this.getPatientsList()
},
ageDate(val){
var ageObj;
......
......@@ -6,16 +6,26 @@
<el-form-item prop="timeNo">
<el-input
v-model="timeForm.timeNo"
type="number"
type="tel"
size="small"
placeholder="请输入"
:disabled="isStandedTemplate"
maxlength="2"
clearable />
</el-form-item>
<el-form-item prop="timeUnit" class="ml20">
<el-select v-model="timeForm.timeUnit" placeholder="请选择" :disabled="timeForm.isDisabled">
<el-select v-if="!isStandedTemplate" v-model="timeForm.timeUnit" placeholder="请选择" :disabled="timeForm.isDisabled">
<el-option
v-for="item in markOptions"
:key="item.no"
v-for="(item,index) in markOptions"
:key="index"
:label="item.value"
:value="item.no">
</el-option>
</el-select>
<el-select v-if="isStandedTemplate" v-model="timeForm.timeUnit" placeholder="请选择" :disabled="isStandedTemplate">
<el-option
v-for="(item,index) in markOptions"
:key="index"
:label="item.value"
:value="item.no">
</el-option>
......@@ -25,43 +35,76 @@
</el-form-item>
<el-form-item label="随访方式" prop="type">
<el-radio-group v-model="timeForm.type" size="small">
<el-radio v-for="item in followTypeList" :label="item.no">{{item.value}}</el-radio>
<el-radio v-for="(item,index) in followTypeList" :key="index" :label="item.no" :disabled="isStandedTemplate">{{item.value}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="提醒医生预约居民">
<el-select
v-if="!isStandedTemplate"
v-model="timeForm.remindDay"
multiple
:multiple-limit=3
@change="changeRemindDay"
placeholder="请选择">
<el-option
v-for="item in remindOptions"
:key="item.no"
v-for="(item,index) in remindOptions"
:key="index"
:label="item.value"
:value="item.no">
</el-option>
</el-select>
<!--固定模板需要填充-->
<el-select
v-if="isStandedTemplate"
v-model="timeForm.remindDay"
multiple
:multiple-limit=3
:disabled="isStandedTemplate"
placeholder="请选择">
<el-option
v-for="(item,index) in remindOptionsCopy"
:key="index"
:label="item.startDaysStr"
:value="item.startDays">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="推送患教">
<div style="display: flex">
<el-select
v-if="!isStandedTemplate"
v-model="timeForm.pushDay"
placeholder="选择推送时间"
clearable
>
<el-option
v-for="item in pushTimeOptions"
:key="item.no"
v-for="(item,index) in pushTimeOptions"
:key="index"
:label="item.value"
:value="item.no">
</el-option>
</el-select>
<!--固定模板需要填充-->
<el-select
v-if="isStandedTemplate"
v-model="timeForm.pushDay"
placeholder="选择推送时间"
clearable
:disabled="isStandedTemplate"
>
<el-option
:label="timeForm.startDaysStr"
:value="timeForm.pushDay">
</el-option>
</el-select>
<el-button plain class="ml20" @click="goSelectCartoon" v-if="!timeForm.hasSelected">选择健康漫画</el-button>
<div class="selected-div ml20" v-if="timeForm.hasSelected">
<span>{{timeForm.comentMsg.header_name}}</span>
<el-button type="text" @click="goSelectCartoon">重选</el-button>
<el-button type="text" @click="deleteClick">删除</el-button>
<el-button type="text" @click="goSelectCartoon" v-if="!isStandedTemplate">重选</el-button>
<el-button type="text" @click="deleteClick" v-if="!isStandedTemplate">删除</el-button>
</div>
</div>
</el-form-item>
......@@ -71,21 +114,43 @@
</div>
<el-form-item label="随访登记表">
<el-select
v-if="!isStandedTemplate"
v-model="timeForm.followResourceId"
multiple
:multiple-limit=2
:multiple-limit=3
@change="changeFollowId"
placeholder="请选择">
<el-option
v-for="item in formOptions"
:key="item.scaleNo"
v-for="(item,index) in formOptions"
:key="index"
:label="item.name"
:value="item.scaleNo">
</el-option>
</el-select>
<!--固定模板需要填充-->
<el-select
v-if="isStandedTemplate"
v-model="timeForm.followResourceId"
multiple
:multiple-limit=3
@change="changeFollowId"
:disabled="isStandedTemplate"
placeholder="请选择">
<el-option
v-for="(item,index) in formOptionsCopy"
:key="index"
:label="item.sendContent"
:value="item.startDays">
</el-option>
</el-select>
</el-form-item>
</el-form>
<select-cartoon :isSelectCartoon="isSelectCartoon" @closeSelectCartoon="closeSelectCartoon" @pushConmentMsg="pushConmentMsg"></select-cartoon>
<select-cartoon
:isSelectCartoon="isSelectCartoon"
@closeSelectCartoon="closeSelectCartoon"
@pushConmentMsg="pushConmentMsg"
/>
</div>
</template>
<script>
......@@ -106,10 +171,9 @@
callback();
}
return {
remindOptionsCopy: [],//提升医生预约居民 - 标准模板
formOptionsCopy: [], //量表 - 标准模板
isSelectCartoon: false,
// followResourceId: '',
// pushDay: '',
// remindDay: '',
timeFormRules: {
timeNo: [{ required: true, message: '请添加随访时间', trigger: 'change' },{ validator: checkDay, trigger: 'blur' }],
timeUnit: [{ required: true, message: '请添加随访时间', trigger: 'change' }],
......@@ -126,13 +190,44 @@
remindOptions:Array,
pushTimeOptions:Array,
formOptions: Array,
patientIdList: Array
patientIdList: Array,
isStandedTemplate: Boolean,
},
watch: {
// timeForm(val){
// this.timeForm = val
// console.log('表单子组件监听到的form数据',this.timeForm)
// },
timeForm(val){
this.timeForm = val
if(this.isStandedTemplate){
console.log('表单子组件监听到的form数据',this.timeForm)
this.timeForm.isDisabled = true
if(this.timeForm.remindList.length > 0){// remindDay
this.remindOptionsCopy = this.timeForm.remindList
this.timeForm.remindDay = []
this.timeForm.remindList.forEach((item)=>{
this.timeForm.remindDay.push(item.startDays)
})
}
if(this.timeForm.pushContentList.length > 0){//pushDay
let pushData = this.timeForm.pushContentList[0]
this.timeForm.pushDay = pushData.startDays
this.timeForm.startDaysStr = pushData.startDaysStr
this.timeForm.comentMsg = {
id: pushData.resourceId,
header_name: pushData.sendContent
}
this.closeSelectCartoon({
closeStatus: false,
hasSelected: this.timeForm.comentMsg
})
}
if(this.timeForm.followupList.length > 0){ //followResourceId
this.formOptionsCopy = this.timeForm.followupList
this.timeForm.followResourceId = []
this.timeForm.followupList.forEach((item)=>{
this.timeForm.followResourceId.push(item.startDays)
})
}
}
},
valBegin(val){
if(val){
this.$refs[this.timeForm.formRef].validate((valid) => {
......@@ -142,7 +237,6 @@
},
saveValiedBegin(val){
console.log('保存按钮子组件的校验',val)
console.log(this.timeForm.formRef)
if(val && this.timeForm.formRef){
this.$refs[this.timeForm.formRef].validate((valid) => {
console.log('告诉父组件,校验结果' + valid)
......@@ -179,14 +273,14 @@
return formName;
},
goSelectCartoon() {
this.isSelectCartoon = true;
this.isSelectCartoon = true;
},
closeSelectCartoon(val) {
this.isSelectCartoon = val.closeStatus;
this.timeForm.hasSelected = val.hasSelected;
},
deleteClick() {
this.timeForm.hasSelected = '';
this.timeForm.hasSelected = '';
},
pushConmentMsg(val){
this.timeForm.comentMsg = val
......@@ -194,8 +288,8 @@
patientIdList: this.patientIdList
}).then(res=>{
if(res.code=='000000'){
this.timeForm.wechatPatientNum = res.data.wechatPatientNum
this.timeForm.messagePatientNum = res.data.messagePatientNum
this.timeForm.wechatPatientNum = res.data.wechatPatientNum;
this.timeForm.messagePatientNum = res.data.messagePatientNum;
this.timeForm.totalNumber = this.timeForm.wechatPatientNum + this.timeForm.messagePatientNum
}else{
this.$notify.success({
......
......@@ -29,6 +29,7 @@
>
<set-time-form
v-if="index == activeTab"
:isStandedTemplate="isStandedTemplate"
:timeForm="timeFormHas"
:valBegin="valBegin"
:saveValiedBegin="saveValiedBegin"
......@@ -99,6 +100,7 @@
setTimeNodeList: Array,
patientIdList: Array,
checkForm: Boolean,
isStandedTemplate: Boolean,
},
computed: {
...mapState('planManage',{
......@@ -119,12 +121,27 @@
}
},
},
created() {
this.initNewForm();
this.getConstData()
console.log(this.isStandedTemplate)
if(this.isStandedTemplate){
this.deleteAddNode()
}else{
//初始化一个随访时间节点
this.activeTab = 'setNewRef';
this.timeForm.formRef = this.getNowTime();
}
},
watch: {
setTimeNodeList(val){
this.setTimeNodeList = val
if(this.setTimeNodeList.length>0) {
this.timeForm.isDisabled = true;
this.timeForm.timeUnit = this.setTimeNodeList[0].timeUnit;
console.log(this.timeForm)
if(this.timeForm){
this.timeForm.isDisabled = true;
this.timeForm.timeUnit = this.setTimeNodeList[0].timeUnit;
}
}
},
checkForm(val){
......@@ -157,14 +174,6 @@
// this.setTimeNodeList1 = this.sortKey(this.setTimeNodeList,'timeNo')
},
},
created() {
this.initNewForm();
this.getConstData()
//初始化一个随访时间节点
this.activeTab = 'setNewRef';
this.timeForm.formRef = this.getNowTime();
console.log(this.timeForm.formRef)
},
methods: {
...mapActions('planManage', [
'getDateUnit',
......@@ -304,7 +313,7 @@
// 初始化新的表单
initNewForm(){
const timeFormInit = {
formRef: '',
formRef: this.getNowTime(),
type: '',//随访方式
timeNo: '',//随访时间
timeUnit: '',//随访时间单位
......
......@@ -81,6 +81,7 @@
<div class="edit-plan-content" v-if="activeTab === 'second'">
<set-time-node
ref="getTimeNodeList"
:isStandedTemplate="isStandedTemplate"
:setTimeNodeList="setTimeNodeList"
@setTimeNodeListOnCom="setTimeNodeListOnCom"
:patientIdList="baseInfo.patientIdList"
......@@ -97,7 +98,7 @@
@sureSelectPatient="sureSelectPatient(arguments)"
/>
<has-selected-patient
:isShowSelectedDialog="isShowSelectedDialog"
v-if="isShowSelectedDialog"
:hasSelectedList="hasSelectedList"
@closeSelectedDialog="closeSelectedDialog"
@continueAdd="continueAdd"
......@@ -110,7 +111,7 @@
import SelectPatient from '@/views/followup/plan-manage/dialog/select-patient';
import HasSelectedPatient from '@/views/followup/plan-manage/dialog/has-selected-patient';
import SetTimeNode from '@/views/followup/plan-manage/dialog/set-time-node';
import {createFollowPlan} from '@/utils/followup/followapis'
import { createFollowPlan, getFollowupTableTemplate } from '@/utils/followup/followapis'
import { mapState, mapActions } from 'vuex'
export default {
......@@ -123,6 +124,8 @@
},
data() {
return {
isStandedTemplate: false, // 是否是固定的随访模板
standedTimeNodeList: [], // 如果是国定随访模板,获取固定数据后不可更改,只读
checkForm: false,
/*面包屑配置*/
curmbFirst: '随访管理',
......@@ -278,6 +281,17 @@
}
if (valid) {
// this.$refs['statusForm'].resetFields();
console.log('当前选择的随访模板id为',this.baseInfo.resourceId)
if(this.baseInfo.resourceId){
this.isStandedTemplate = true
getFollowupTableTemplate(this.baseInfo.resourceId).then(res=>{
this.standedTimeNodeList = res.data
this.getTimeNodeList(this.standedTimeNodeList)
})
}else{
this.isStandedTemplate = false
}
this.activeTab = 'second';
} else {
return false;
......@@ -288,6 +302,12 @@
this.activeTab = 'first';
},
},
beforeRouteLeave (to, from, next) {
// 离开页面,需要清除缓存的时间节点
this.getTimeNodeList([])
next()
},
}
</script>
<style lang="scss" scoped>
......
......@@ -63,7 +63,7 @@
@sureSelectPatient="sureSelectPatient(arguments)">
</select-patient>
<has-selected-patient
:isShowSelectedDialog="isShowSelectedDialog"
v-if="isShowSelectedDialog"
:hasSelectedList="hasSelectedList"
@closeSelectedDialog="closeSelectedDialog"
@continueAdd="continueAdd" />
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册