提交 05f02ff9 编写于 作者: yi.li's avatar yi.li

录入列表,查看详情,更改随访状态接口调整

上级 83f1723c
import planManage from './planManage'
import reservationManage from './reservationManage'
import workbench from './workbench'
import recordManage from './recordManage'
const followModules = {
planManage,
reservationManage,
workbench
workbench,
recordManage
}
export default followModules
import followApi from '../../utils/followup/followapis'
export default {
namespaced: true,
state: {
recordList: {}, //录入列表
enteringInfo: {}, //单条信息查看
constantsData: {},//获取常量
},
mutations: {
GET_RECORD_LIST(state, payload) {
state.recordList = payload
},
GET_ENTERING_INFO(state, payload) {
state.enteringInfo = payload
},
GET_CONSTANS_DATA(state, payload) {
state.constantsData = payload
},
},
actions: {
async getRecordList(context, payload) {
await followApi.getEnteringList({
...payload
}).then(({data}) => {
context.commit('GET_RECORD_LIST', data);
});
},
async getEnteringInfo(context, payload) {
await followApi.getEnteringInfo({}, {
...payload
}).then(({data}) => {
context.commit('GET_ENTERING_INFO', data);
});
},
// async getConstantsData(context, payload) {
// await followApi.getBasicData({
// ...payload
// }).then(({data}) => {
// context.commit('GET_CONSTANS_DATA', data)
// })
// },
},
}
......@@ -135,12 +135,26 @@ const recordManageApi = [
name: 'getEnteringList',
description: '录入列表查看',
},
{
url: '/followup/entering/status/change',
method: 'post',
params: 'data',
name: 'changeEnteringStatus',
description: '变更随访状态',
},
{
url: ``,
method: 'get',
params: 'params',
name: 'getEnteringInfo',
description: '随访单条信息查看',
},
]
const api = {};
const apis = [...planManageApi, ...reservationManageApi, ...basicDataApi, ...workbenchApi];
const apis = [...planManageApi, ...reservationManageApi, ...basicDataApi, ...workbenchApi, ...recordManageApi];
apis.forEach(item => api[item.name] = (params = {}, extraConfig = {}) => {
// const config = {
......@@ -164,6 +178,12 @@ apis.forEach(item => api[item.name] = (params = {}, extraConfig = {}) => {
url: getFollowUpSC(item.url),
method: item.method,
};
} else if (item.name == 'getEnteringInfo') {
let url = `/followup/entering/${extraConfig.patientId}/fuInfo/${extraConfig.fuPlanPatientTimesId}`
config = {
url: getFollowUpApi(url),
method: item.method,
};
} else {
config = {
url: getFollowUpApi(item.url),
......
<template>
<div>
<p><el-button plain icon="el-icon-plus" round @click="addNewNode(timeForm.formRef)" :disabled="activeTab!=='setNewRef'">新增时间节点</el-button><br></p>
<p><el-button plain icon="el-icon-plus" round @click="addNewNode(timeForm.formRef)">新增时间节点</el-button><br></p>
<div class="add-time-content">
<div class="time-line-scroll">
<!--<el-button type="primary" size="mini" round>设置随访时间 <i class="el-icon-circle-close-outline"></i></el-button>-->
<!--<el-button type="primary" @click="changeTab(item)" size="mini" round v-for="(item, index) in setTimeNodeList" :key="index">开始后{{item.followupTime}}{{item.followupMark}} <i class="el-icon-circle-close-outline"></i></el-button>-->
<el-radio-group v-model="activeTab" @change="changeTab">
<el-radio-button v-if="setTimeNodeList.length > 0" :key="item.formRef" v-for="(item, index) in setTimeNodeList" :label="index">开始后{{item.followupTime + item.followupMark}} <i class="el-icon-circle-close-outline" @click="deleteTimeNode(item, index)"></i></el-radio-button>
<el-radio-button label="setNewRef">设置随访时间</el-radio-button>
<el-radio-button label="setNewRef" v-if="showSetBtn">设置随访时间 <i class="el-icon-circle-close-outline" @click="deleteAddNode" v-if="setTimeNodeList.length>0"></i></el-radio-button>
</el-radio-group>
<!--<el-button type="primary" :class="(activeTab || activeTab==0) ? 'blur-btn' : ''" @click="setTimeForm()">设置随访时间</el-button>-->
</div>
......@@ -125,16 +122,8 @@
activeTab: null,
setTimeNodeList: [],
currentFormRef: 1,
showSetBtn: true,
timeForm: _.cloneDeep(timeFormInit),
// timeForm: {
// formRef: '',
// followupTime: '',
// followupMark: '',
// followupWay: '',
// pushTime: '',
// remindTime: [],
// followupForm: [],
// },
indexOptions: [
{
value: '0',
......@@ -218,11 +207,11 @@
watch: {
activeTab(newVal, oldVal) {
console.log('tab变化',newVal,oldVal)
if(oldVal == 'setNewRef') {
return
}else {
// if(oldVal == 'setNewRef' || newVal== 'setNewRef') {
// return
// }else {
this.setTimeNodeList[oldVal] = this.timeForm;
}
// }
}
},
methods: {
......@@ -238,21 +227,24 @@
return formName;
},
addNewNode(formName) {
if(this.activeTab !== 'setNewRef') {
// 显示设置按钮
this.showSetBtn = true;
this.activeTab = 'setNewRef';
this.timeForm = _.cloneDeep(timeFormInit);
this.timeForm.formRef = this.getNowTime();
}else {
this.$refs[formName].validate((valid) => {
if (valid) {
this.setTimeNodeList.push(this.timeForm);
// this.store.commit('SET_TIME_NODE_LIST',this.setTimeNodeList)
// this.timeForm = JSON.parse(JSON.stringify(this.timeFormConst));
this.timeForm = _.cloneDeep(timeFormInit);
this.timeForm.formRef = this.getNowTime(); //新增一个form
// this.$refs[formRef].resetFields()
console.log('数组',this.setTimeNodeList)
console.log('timeForm新的',this.timeForm);
} else {
return false;
return;
}
});
}
},
goSelectCartoon() {
this.isSelectCartoon = true;
......@@ -265,7 +257,6 @@
this.timeForm.hasSelected = '';
},
changeTab(val){
console.log('tab切换',val)
this.activeTab = val;
if(val == 'setNewRef') {
this.timeForm = _.cloneDeep(timeFormInit);
......@@ -273,22 +264,20 @@
}else {
this.timeForm = _.cloneDeep(this.setTimeNodeList[val]);
}
// for(let i=0; i<this.setTimeNodeList.length; i++) {
// if(this.setTimeNodeList[i].formRef === val) {
// this.timeForm = this.setTimeNodeList[i];
// console.log('当前tab的form',this.timeForm)
// }
// }
},
setTimeForm() {
this.activeTab = null;
this.timeForm = _.cloneDeep(timeFormInit);
this.timeForm.formRef = this.getNowTime(); //新增一个form
},
deleteTimeNode(item, index) {
this.setTimeNodeList.splice(index, 1)
if(this.setTimeNodeList.length == 0) {
this.activeTab = 'setNewRef';
this.timeForm = _.cloneDeep(timeFormInit);
this.timeForm.formRef = this.getNowTime(); //新增一个form
}
},
deleteAddNode() {
this.showSetBtn = false;
this.activeTab = 0;
this.timeForm = this.setTimeNodeList[0];
}
},
}
</script>
......
......@@ -14,7 +14,7 @@
<span>{{statusForm.nickname}}</span>
</el-form-item>
<el-form-item label="变更状态">
<span>{{statusForm.status==1 ? '未完成' : '已完成'}}</span>
<span>{{statusForm.status==1 ? '已完成' : '未完成'}}</span>
</el-form-item>
<el-form-item label="变更原因" prop="reason">
<el-input type="textarea" v-model="statusForm.reason" placeholder="请输入变更原因" maxlength="30" rows="3" style="width:60%;"></el-input>
......@@ -28,7 +28,7 @@
</div>
</template>
<script>
import followApi from '@/utils/followup/followapis'
export default {
components: {},
data(){
......@@ -66,9 +66,22 @@
this.$refs[formName].validate((valid) => {
if (valid) {
//后面更改为接口调用
// this.$emit('closeChangeStatus',false,this.statusForm);
followApi.changeEnteringStatus({
info: {
fuPlanPatientTimesId: this.statusForm.fuPlanPatientTimesId,
patientId: this.statusForm.patientId,
status: this.statusForm.status,
reason: this.statusForm.reason,
}
}).then(({data}) => {
if(data == 1) {
this.$message.success('随访状态变更成功!');
this.$emit('closeChangeStatus',false);
this.$refs['statusForm'].resetFields();
}else {
return;
}
})
} else {
return false;
}
......
......@@ -12,23 +12,23 @@
<div class="base-content">
<div class="content-div">
<div class="c-title">姓名:</div>
<div class="c-content">戴佳康</div>
<div class="c-content">{{enteringInfo.nickname}}</div>
</div>
<div class="content-div ">
<div class="c-title">性别:</div>
<div class="c-content"></div>
<div class="c-content">{{enteringInfo.sex}}</div>
</div>
<div class="content-div">
<div class="c-title">年龄:</div>
<div class="c-content">55</div>
<div class="c-content">{{enteringInfo.age}}</div>
</div>
<div class="content-div">
<div class="c-title">身份证号:</div>
<div class="c-content">3101110196011022419</div>
<div class="c-content">{{enteringInfo.idNo}}</div>
</div>
<div class="content-div">
<div class="c-title">联系方式:</div>
<div class="c-content">13111111111</div>
<div class="c-content">{{enteringInfo.mobilePhone}}</div>
</div>
</div>
</div>
......@@ -36,34 +36,34 @@
<div class="base-content">
<div class="content-div">
<div class="c-title">随访计划名称:</div>
<div class="c-content">2018年糖尿病随访</div>
<div class="c-content">{{enteringInfo.name}}</div>
</div>
</div>
<div class="group-info base-content">
<div class="content-div">
<div class="c-title">随访时间点:</div>
<div class="c-content">3次随访</div>
<div class="c-content">{{enteringInfo.timeNo}}次随访</div>
</div>
<div class="content-div">
<div class="c-title">随访方式:</div>
<div class="c-content">门诊随访</div>
<div class="c-content">{{enteringInfo.fuPlanType}}</div>
</div>
<div class="content-div">
<div class="c-title">计划随访时间:</div>
<div class="c-content">2019-03-23</div>
<div class="c-content">{{enteringInfo.fuPlanTime}}</div>
</div>
<div class="content-div">
<div class="c-title">随访预约时间:</div>
<div class="c-content">2019-03-23 10:00-11:00</div>
<div class="c-content">{{enteringInfo.appointmentTime}}</div>
</div>
</div>
<div class="group-info base-content flex-start">
<div class="content-div">
<div class="c-title">随访状态:</div>
<div class="c-content">已过期</div>
<div class="c-content">{{enteringInfo.status}}</div>
</div>
<div class="content-div">
<p class="tip">备注:更改随访状态原因</p>
<p class="tip">备注:{{enteringInfo.remarks}}</p>
</div>
</div>
</div>
......@@ -71,20 +71,10 @@
<div class="list-item">
<p class="title">预约日志</p>
</div>
<div class="list-item">
<p class="title">2019-3-14,李时珍医生发送微信预约</p>
<p class="status">居民未响应</p>
<p class="reason"></p>
</div>
<div class="list-item">
<p class="title">2019-3-20,李时珍医生发送短信预约</p>
<p class="status">居民已预约</p>
<p class="reason"></p>
</div>
<div class="list-item">
<p class="title">2019-3-20,李时珍医生发送短信预约</p>
<p class="status">居民已拒绝</p>
<p class="reason">变更原因:当天居民临时有事</p>
<div class="list-item" v-for="(item, index) in enteringInfo.appointmentLogs" v-if="enteringInfo.appointmentLogs.length>0" :key="index">
<p class="title">{{item.appointmentDate}},{{item.appointmentInfo}}</p>
<p class="status">{{item.appointmentResult}}</p>
<p class="reason" v-if="item.reason">变更原因:{{item.reason}}</p>
</div>
</div>
<div class="base-info console-list">
......@@ -92,42 +82,54 @@
<p class="title">患教资料</p>
</div>
<div class="list-item">
<p class="time">开始前三十天</p>
<p class="link-p">患教内容啦啦啦</p>
<p class="time">{{enteringInfo.eduData.timeNodeInfo}}</p>
<a class="link-p" :href="enteringInfo.eduData.shortUrl">{{enteringInfo.eduData.eduTitle}}</a>
</div>
</div>
<div class="base-info console-list">
<div class="list-item">
<p class="title">随访登记表</p>
</div>
<div class="list-item">
<p class="link-p">随访登记表名称1</p>
</div>
<div class="list-item">
<p class="link-p">随访登记表名称2</p>
<div class="list-item" v-for="(item, index) in enteringInfo.fuTable" :key="index" v-if="enteringInfo.fuTable.length>0">
<p class="link-p">{{item.name}}</p>
</div>
</div>
</div>
</el-dialog>
</template>
<script>
import { mapState, mapActions } from 'vuex';
export default {
data(){
return{
dialogDetail: true
dialogDetail: true,
// eduData: {},
}
},
props: {
dialogFormVisible: {
type: Boolean,
default: false
},
enteringInfo: {
type: Object,
default: {}
}
},
computed: {
// ...mapState('recordManage',{
// enteringInfo: state => state.enteringInfo,
// })
},
created() {
// if(this.dialogFormVisible == true) {
// this.getEnteringInfo({patientId: this.enteringRow.patientId,fuPlanPatientTimesId: this.enteringRow.fuPlanPatientTimesId});
// }
},
mounted(){
},
methods: {
// ...mapActions('recordManage', ['getEnteringInfo']),
closeDetail(){
this.$emit('closeDetail',false)
},
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册