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

todays work

上级 b9bb7aaa
const followUp = r => require.ensure([], () => r(require('../views/followup/layout.vue')), 'followUp'); const followUp = r => require.ensure([], () => r(require('../views/followup/layout.vue')), 'followUp');
/*计划*/
const planManage = r => require.ensure([], () => r(require('../views/followup/plan-manage/layout.vue')), 'planManage'); const planManage = r => require.ensure([], () => r(require('../views/followup/plan-manage/layout.vue')), 'planManage');
const planList = r => require.ensure([], () => r(require('../views/followup/plan-manage/plan-list.vue')), 'planList'); const planList = r => require.ensure([], () => r(require('../views/followup/plan-manage/plan-list.vue')), 'planList');
const planDetail = r => require.ensure([], () => r(require('../views/followup/plan-manage/plan-detail.vue')), 'planDetail'); const planDetail = r => require.ensure([], () => r(require('../views/followup/plan-manage/plan-detail.vue')), 'planDetail');
const planModify = r => require.ensure([], () => r(require('../views/followup/plan-manage/plan-modify.vue')), 'planModify');
const residentList = r => require.ensure([], () => r(require('../views/followup/plan-manage/resident-list.vue')), 'residentList'); const residentList = r => require.ensure([], () => r(require('../views/followup/plan-manage/resident-list.vue')), 'residentList');
const residentDetail = r => require.ensure([], () => r(require('../views/followup/plan-manage/resident-detail.vue')), 'residentDetail'); const residentDetail = r => require.ensure([], () => r(require('../views/followup/plan-manage/resident-detail.vue')), 'residentDetail');
const newPlan = r => require.ensure([], () => r(require('../views/followup/plan-manage/new-plan.vue')), 'newPlan'); const newPlan = r => require.ensure([], () => r(require('../views/followup/plan-manage/new-plan.vue')), 'newPlan');
/*预约*/
const reservationManage = r => require.ensure([], () => r(require('../views/followup/reservation-manage/layout.vue')), 'reservationManage'); const reservationManage = r => require.ensure([], () => r(require('../views/followup/reservation-manage/layout.vue')), 'reservationManage');
const reservationList = r => require.ensure([], () => r(require('../views/followup/reservation-manage/reservation-list.vue')), 'reservationList'); const reservationList = r => require.ensure([], () => r(require('../views/followup/reservation-manage/reservation-list.vue')), 'reservationList');
/*录入*/
const recordManage = r => require.ensure([], () => r(require('../views/followup/record-manage/layout.vue')), 'recordManage'); const recordManage = r => require.ensure([], () => r(require('../views/followup/record-manage/layout.vue')), 'recordManage');
const recordList = r => require.ensure([], () => r(require('../views/followup/record-manage/record-list.vue')), 'recordList'); const recordList = r => require.ensure([], () => r(require('../views/followup/record-manage/record-list.vue')), 'recordList');
......
import planManage from './planManage' import planManage from './planManage'
import reservationManage from './reservationManage' import reservationManage from './reservationManage'
import workbench from './workbench'
const followModules = { const followModules = {
planManage, planManage,
reservationManage reservationManage,
workbench
} }
export default followModules export default followModules
...@@ -13,6 +13,7 @@ export default { ...@@ -13,6 +13,7 @@ export default {
planDetail: {}, // 计划详情页, planDetail: {}, // 计划详情页,
nodeTimeList: [], //随访时间节点列表, nodeTimeList: [], //随访时间节点列表,
nodeContent: {}, //时间节点详情 nodeContent: {}, //时间节点详情
planOption: [], //随访计划select
}, },
mutations: { mutations: {
...@@ -33,6 +34,9 @@ export default { ...@@ -33,6 +34,9 @@ export default {
}, },
GET_NODE_CONTENT(state, payload) { GET_NODE_CONTENT(state, payload) {
state.nodeContent = payload state.nodeContent = payload
},
GET_PLAN_OPTION(state, payload) {
state.planOption = payload
} }
}, },
actions: { actions: {
......
import followApi from '../../utils/followup/followapis'
export default {
namespaced: true,
state: {
todayPlans: [], //今日随访列表
todayAppointsList: [], //今日预约列表
todayOverview: [], //查询今日随访、预约、随访人数count
},
mutations: {
GET_TODAY_PLAN_LIST(state, payload) {
state.groupList = payload
},
GET_TODAY_APPOINTS_LIST(state, payload) {
state.groupList = payload
},
GET_TODAY_OVERVIEW(state, payload) {
state.groupList = payload
}
},
actions: {
getTodayPlansList(context, payload) {
followApi.getTodayPlansSC({
...payload
}).then(({data}) => {
context.commit('GET_TODAY_PLAN_LIST', data);
});
},
getTodayAppointsList(context, payload) {
followApi.getTodayAppointsListSC({
...payload
}).then(({data}) => {
context.commit('GET_TODAY_APPOINTS_LIST', data);
});
},
getTodayOverview(context, payload) {
followApi.getTodayOverviewSC({
...payload
}).then(({data}) => {
context.commit('GET_TODAY_OVERVIEW', data);
});
}
},
}
...@@ -18,6 +18,7 @@ export const envConfig = { ...@@ -18,6 +18,7 @@ export const envConfig = {
yuequeyiIndexUrl: 'https://dev-saas.yunqueyi.com/pica_index.html', yuequeyiIndexUrl: 'https://dev-saas.yunqueyi.com/pica_index.html',
followUpApi: '', followUpApi: '',
followUpApiSoSoApi:'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/73', followUpApiSoSoApi:'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/73',
followUpSC: 'https://dev-sc.yunqueyi.com/followup'
}, },
dev: { dev: {
baseUrl: 'https://dev-sc.yunqueyi.com/portal/', baseUrl: 'https://dev-sc.yunqueyi.com/portal/',
...@@ -28,6 +29,7 @@ export const envConfig = { ...@@ -28,6 +29,7 @@ export const envConfig = {
innerLoginUrl: 'https://dev-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html', innerLoginUrl: 'https://dev-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://dev-saas.yunqueyi.com/pica_index.html', yuequeyiIndexUrl: 'https://dev-saas.yunqueyi.com/pica_index.html',
followUpApi: '', followUpApi: '',
followUpSC: 'https://dev-sc.yunqueyi.com/followup'
}, },
test: { test: {
baseUrl: 'https://test1-sc.yunqueyi.com/portal/', baseUrl: 'https://test1-sc.yunqueyi.com/portal/',
...@@ -38,6 +40,7 @@ export const envConfig = { ...@@ -38,6 +40,7 @@ export const envConfig = {
innerLoginUrl: 'https://test1-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html', innerLoginUrl: 'https://test1-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://test-saas.yunqueyi.com/pica_index.html', yuequeyiIndexUrl: 'https://test-saas.yunqueyi.com/pica_index.html',
followUpApi: '', followUpApi: '',
followUpSC: 'https://test1-sc.yunqueyi.com/followup'
}, },
uat: { uat: {
baseUrl: 'https://uat-sc.yunqueyi.com/portal/', baseUrl: 'https://uat-sc.yunqueyi.com/portal/',
...@@ -48,6 +51,7 @@ export const envConfig = { ...@@ -48,6 +51,7 @@ export const envConfig = {
innerLoginUrl: 'https://uat-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html', innerLoginUrl: 'https://uat-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://uat-saas.yunqueyi.com/pica_index.html', yuequeyiIndexUrl: 'https://uat-saas.yunqueyi.com/pica_index.html',
followUpApi: '', followUpApi: '',
followUpSC: 'https://uat-sc.yunqueyi.com/followup'
}, },
pro: { pro: {
baseUrl: 'https://sc.yunqueyi.com/portal/', baseUrl: 'https://sc.yunqueyi.com/portal/',
...@@ -58,5 +62,6 @@ export const envConfig = { ...@@ -58,5 +62,6 @@ export const envConfig = {
innerLoginUrl: 'https://sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html', innerLoginUrl: 'https://sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://saas.yunqueyi.com/pica_index.html', yuequeyiIndexUrl: 'https://saas.yunqueyi.com/pica_index.html',
followUpApi: '', followUpApi: '',
followUpSC: 'https://sc.yunqueyi.com/followup'
} }
} }
import fetch from '../fetch'; import fetch from '../fetch';
import { getFollowUpApi, getBasicDataApi } from '@/utils/index' import { getFollowUpApi, getBasicDataApi, getFollowUpSC } from '@/utils/index'
import utils from './followupUtils'; import utils from './followupUtils';
...@@ -7,6 +7,13 @@ import utils from './followupUtils'; ...@@ -7,6 +7,13 @@ import utils from './followupUtils';
/*计划管理API*/ /*计划管理API*/
const planManageApi = [ const planManageApi = [
{
url: '/followup/plans',
method: 'get',
params: 'params',
name: 'getPlanList',
description: '获取计划列表',
},
{ {
url: '/plans/', url: '/plans/',
method: 'get', method: 'get',
...@@ -83,11 +90,35 @@ const reservationManageApi = [ ...@@ -83,11 +90,35 @@ const reservationManageApi = [
}, },
] ]
/*工作台*/
const workbenchApi = [
{
url: '/overView/todayAppoints',
method: 'get',
params: 'params',
name: 'getTodayAppointsListSC',
description: '获取今日预约列表',
},
{
url: '/overView/todayOverview',
method: 'get',
params: 'params',
name: 'getTodayOverviewSC',
description: '获取今日随访、预约、随访人数',
},
{
url: '/overView/todayPlans',
method: 'get',
params: 'params',
name: 'getTodayPlansSC',
description: '查询今日随访计划',
},
]
/*常量API*/ /*常量API*/
const basicDataApi = [ const basicDataApi = [
{ {
url: '/basic-data/constants/', url: '/overView/todayAppoints',
method: 'get', method: 'get',
params: 'params', params: 'params',
name: 'getBasicData', name: 'getBasicData',
...@@ -97,7 +128,7 @@ const basicDataApi = [ ...@@ -97,7 +128,7 @@ const basicDataApi = [
const api = {}; const api = {};
const apis = [...planManageApi, ...reservationManageApi, ...basicDataApi]; const apis = [...planManageApi, ...reservationManageApi, ...basicDataApi, ...workbenchApi];
apis.forEach(item => api[item.name] = (params = {}, extraConfig = {}) => { apis.forEach(item => api[item.name] = (params = {}, extraConfig = {}) => {
// const config = { // const config = {
...@@ -116,6 +147,11 @@ apis.forEach(item => api[item.name] = (params = {}, extraConfig = {}) => { ...@@ -116,6 +147,11 @@ apis.forEach(item => api[item.name] = (params = {}, extraConfig = {}) => {
url: getFollowUpApi(url), url: getFollowUpApi(url),
method: item.method, method: item.method,
}; };
} else if (item.name.indexOf("SC")!=-1) {
config = {
url: getFollowUpSC(item.url),
method: item.method,
};
} else { } else {
config = { config = {
url: getFollowUpApi(item.url), url: getFollowUpApi(item.url),
......
...@@ -175,6 +175,10 @@ export function uploadImg() { ...@@ -175,6 +175,10 @@ export function uploadImg() {
export function getFollowUpApi(url) { export function getFollowUpApi(url) {
return getConfigByEnvType('followUpApiSoSoApi') + url //当前使用sosoapi mock数据 return getConfigByEnvType('followUpApiSoSoApi') + url //当前使用sosoapi mock数据
} }
// 获取随访微服务服务器域名地址
export function getFollowUpSC(url) {
return getConfigByEnvType('followUpSC') + url
}
// 获取常量接口域名地址 // 获取常量接口域名地址
export function getBasicDataApi(url) { export function getBasicDataApi(url) {
......
...@@ -3,18 +3,18 @@ ...@@ -3,18 +3,18 @@
<el-dialog <el-dialog
title="变更计划" title="变更计划"
:visible.sync="showChangePlan" :visible.sync="showChangePlan"
width="30%" width="35%"
v-if="showThisPage" v-if="showThisPage"
:before-close="clickClose" :before-close="clickClose"
center> center>
<el-form :model="planChangeData" label-width="100px"> <el-form :model="planChangeData" label-width="110px">
<el-form-item label="分组:"> <el-form-item label="分组:">
<el-select v-model="planChangeData.group" > <el-select v-model="planChangeData.group" >
<el-option <el-option
v-for="item in groupOption" v-for="item in groupOption"
:key="item.value" :key="item.labelId"
:label="item.label" :label="item.labelName"
:value="item.value"> :value="item.labelId">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
......
<template>
<div class="plan-modify">
修改计划
</div>
</template>
<script>
export default {
name: "plan-modify"
}
</script>
<style scoped>
</style>
...@@ -62,39 +62,37 @@ ...@@ -62,39 +62,37 @@
</div> </div>
</div> </div>
</div> </div>
<div class="time-nodes" v-if="residentDetail.fPlanPatientDatilDtoList"> <!--<div class="time-nodes">
<p class="title">随访时间节点</p> <p class="title">随访时间节点</p>
<el-radio-group v-model="timeNodes"> <el-radio-group v-model="timeNodes">
<el-radio-button :key="item.nodeId" v-for="item in residentDetail.fPlanPatientDatilDtoList.timeNodeList" :label="item.nodeId">{{item.timeNodeContent}}</el-radio-button> <el-radio-button :key="item.id" v-for="item in residentDetail.fPlanTimeDtoList" :label="item.nodeId">{{item.timeStr}}</el-radio-button>
</el-radio-group> </el-radio-group>
<div class="followup-contents"> <div class="followup-contents">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访方式:</div> <div class="c-title">随访方式:</div>
<div class="c-content">门诊随访</div> <div class="c-content">{{nodeContent.typeStr}}</div>
</div> </div>
<div class="content-div"> <div class="content-div">
<div class="c-title">提醒医生预约居民:</div> <div class="c-title">提醒医生预约居民:</div>
<div class="c-content more-content"> <div class="c-content more-content">
<p>开始前20天提醒</p> <p v-for="item in nodeContent.remindList">{{item.startDaysStr}}</p>
<p>开始前10天提醒</p>
</div> </div>
</div> </div>
<div class="content-div"> <div class="content-div">
<div class="c-title">推送患教:</div> <div class="c-title">推送患教:</div>
<div class="c-content more-content"> <div class="c-content more-content">
<p>开始前30天 <span class="click-text">《患教内容患教内容患教内容</span></p> <p>{{item.startDaysStr}} <span class="click-text" >{{item.sendContent}}</span></p>
<p class="reminding">推送规则:优先微信推送,如果居民没关注云鹊医公众号,将短信推送,短信推送会消耗您的额度。推送详情请前往云鹊医app患教中心查询</p> <p class="reminding">推送规则:优先微信推送,如果居民没关注云鹊医公众号,将短信推送,短信推送会消耗您的额度。推送详情请前往云鹊医app患教中心查询</p>
</div> </div>
</div> </div>
<div class="content-div"> <div class="content-div">
<div class="c-title">随访登记表:</div> <div class="c-title">随访登记表:</div>
<div class="c-content more-content"> <div class="c-content more-content">
<p class="click-text">《登记表名登记表名登记表名》</p> <p v-for="item in nodeContent.followupList">{{item.sendContent}}</p>
<p class="click-text">《登记表名登记表名登记表名登记表名》</p>
</div>
</div> </div>
</div> </div>
</div> </div>
</div>-->
</div> </div>
<change-plan :showThisPage="showChangePlan" @closeChangePlan="closeChangePlan"></change-plan> <change-plan :showThisPage="showChangePlan" @closeChangePlan="closeChangePlan"></change-plan>
<finish-followup :showThisPage="showFinishFollowup" @closeFinishFollowup="closeFinishFollowup"></finish-followup> <finish-followup :showThisPage="showFinishFollowup" @closeFinishFollowup="closeFinishFollowup"></finish-followup>
...@@ -140,7 +138,8 @@ ...@@ -140,7 +138,8 @@
}, },
computed: { computed: {
...mapState('planManage', { ...mapState('planManage', {
residentDetail: state => state.residentDetail residentDetail: state => state.residentDetail,
nodeContent: state => state.nodeContent
}) })
}, },
methods: { methods: {
...@@ -157,6 +156,14 @@ ...@@ -157,6 +156,14 @@
closeFinishFollowup(isShow) { closeFinishFollowup(isShow) {
this.showFinishFollowup = isShow this.showFinishFollowup = isShow
}, },
},
watch: {
planDetail(val) {
this.timeNodes = val.fPlanTimeDtoList[0].id
},
timeNodes(val) {
this.getNodeTimeContent(val)
}
} }
} }
</script> </script>
......
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
</div> </div>
</div> </div>
</div> </div>
<change-plan :showThisPage="showChangePlan" @closeChangePlan="closeChangePlan"></change-plan> <change-plan :showThisPage="showChangePlan" :groupOption="groupList" @closeChangePlan="closeChangePlan"></change-plan>
<finish-followup :showThisPage="showFinishFollowup" @closeFinishFollowup="closeFinishFollowup"></finish-followup> <finish-followup :showThisPage="showFinishFollowup" @closeFinishFollowup="closeFinishFollowup"></finish-followup>
</div> </div>
</template> </template>
......
...@@ -3,19 +3,43 @@ ...@@ -3,19 +3,43 @@
<bread-crumb :curmbFirst="curmbFirst"></bread-crumb> <bread-crumb :curmbFirst="curmbFirst"></bread-crumb>
<div class="message-content"> <div class="message-content">
<el-row> <el-row>
<el-col class="visitor" :span="24" v-if="tableData.length > 0"> <el-col class="visitor screenSet" :span="24">
<div class="visitor-title"> <div class="visitor-title">
<div class="title">今日随访:<span style="color:#449284;">10人</span></div> <div class="title">今日随访:
<span style="color:#449284;margin-right: 10px">10人</span>
<span class="type-button" >未完成</span>
<span class="type-button">已过期</span>
</div>
<span class="visitor-more" @click="lookMore">查看更多</span>
</div>
<div class="visitor-info">
<el-table
:data="tableData"
style="width: 100%">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="date" label="预约时间"></el-table-column>
<el-table-column prop="style" label="随访方式"></el-table-column>
<el-table-column prop="content" label="操作"></el-table-column>
</el-table>
</div>
</el-col>
<el-col class="visitor screenSet" :span="24" style="margin-top: 0;margin-bottom: 0;">
<div class="visitor-title">
<div class="title">今日预约
<span class="type-button" style="margin-left: 10px;">未完成</span>
<span class="type-button">已过期</span>
</div>
<span class="visitor-more" @click="lookMore">查看更多</span> <span class="visitor-more" @click="lookMore">查看更多</span>
</div> </div>
<div class="visitor-info"> <div class="visitor-info">
<el-table <el-table
:data="tableData" :data="tableData"
style="width: 100%"> style="width: 100%">
<el-table-column prop="date" label="预约时间" min-width="30"></el-table-column> <el-table-column prop="date" label="随访计划名称"></el-table-column>
<el-table-column prop="name" label="姓名" min-width="20"></el-table-column> <el-table-column prop="name" label="随访计划时间"></el-table-column>
<el-table-column prop="style" label="随访方式" min-width="30"></el-table-column> <el-table-column prop="style" label="已经预约"></el-table-column>
<el-table-column prop="content" label="随访内容"></el-table-column> <el-table-column prop="content" label="未预约"></el-table-column>
<el-table-column prop="content" label="操作"></el-table-column>
</el-table> </el-table>
</div> </div>
</el-col> </el-col>
...@@ -46,7 +70,7 @@ ...@@ -46,7 +70,7 @@
<script> <script>
import BreadCrumb from '../components/breadcrumb.vue' import BreadCrumb from '../components/breadcrumb.vue'
import { setTimeout, setInterval } from 'timers' import { setTimeout, setInterval } from 'timers'
import { mapGetters } from 'vuex' import { mapGetters, mapState, mapActions } from 'vuex'
let vm = null let vm = null
export default { export default {
components: { components: {
...@@ -65,13 +89,22 @@ export default { ...@@ -65,13 +89,22 @@ export default {
created() { created() {
vm = this vm = this
vm.getSystemData() vm.getSystemData()
vm.getTodayPlansList({
status:0
})
}, },
computed: { computed: {
...mapGetters([ ...mapGetters([
'_token' '_token'
]) ]),
...mapState('workbench', {
todayPlans: state => state.todayPlans,
todayAppointsList: state => state.todayAppointsList,
todayOverview: state => state.todayOverview,
})
}, },
methods: { methods: {
...mapActions('workbench', ['getTodayPlansList', 'getTodayAppointsList', 'getTodayOverview']),
// 查看更多 // 查看更多
lookMore() { lookMore() {
...@@ -95,7 +128,16 @@ export default { ...@@ -95,7 +128,16 @@ export default {
padding: 0 25px 30px; padding: 0 25px 30px;
margin-bottom: 20px; margin-bottom: 20px;
background: #fff; background: #fff;
margin-top: 88px;
// min-height: 348px; // min-height: 348px;
@media screen and (min-width:1240px) and (max-width:1900px) {
width: 95%;
height: 300px !important;
}
@media screen and (min-width:1900px) {
width: 96.7%;
height: 380px !important;
}
.visitor-title { .visitor-title {
height: 80px; height: 80px;
line-height: 80px; line-height: 80px;
...@@ -112,6 +154,17 @@ export default { ...@@ -112,6 +154,17 @@ export default {
padding: 5px 14px; padding: 5px 14px;
border-radius: 3px; border-radius: 3px;
background: rgba(68,146,132,0.06); background: rgba(68,146,132,0.06);
cursor: pointer;
}
.type-button {
font-size: 12px;
color: #449284;
border: 1px solid rgba(68,146,132,0.3);
padding: 5px 14px;
border-radius: 3px;
/*background: rgba(68,146,132,0.06);*/
background: #ffffff;
cursor: pointer;
} }
} }
.visitor-info { .visitor-info {
...@@ -120,8 +173,16 @@ export default { ...@@ -120,8 +173,16 @@ export default {
} }
.message { .message {
padding: 0 25px 30px; padding: 0 25px 30px;
margin-top: 20px;
background: #fff; background: #fff;
// min-height: 436px; @media screen and (min-width:1240px) and (max-width:1900px) {
width: 95%;
height: 320px !important;
}
@media screen and (min-width:1900px) {
width: 96.7%;
height: 400px !important;
}
.message-title { .message-title {
font-size: 20px; font-size: 20px;
height: 80px; height: 80px;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册