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

todays work

上级 b9bb7aaa
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 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 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 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 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 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');
......
import planManage from './planManage'
import reservationManage from './reservationManage'
import workbench from './workbench'
const followModules = {
planManage,
reservationManage
reservationManage,
workbench
}
export default followModules
......@@ -13,6 +13,7 @@ export default {
planDetail: {}, // 计划详情页,
nodeTimeList: [], //随访时间节点列表,
nodeContent: {}, //时间节点详情
planOption: [], //随访计划select
},
mutations: {
......@@ -33,6 +34,9 @@ export default {
},
GET_NODE_CONTENT(state, payload) {
state.nodeContent = payload
},
GET_PLAN_OPTION(state, payload) {
state.planOption = payload
}
},
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 = {
yuequeyiIndexUrl: 'https://dev-saas.yunqueyi.com/pica_index.html',
followUpApi: '',
followUpApiSoSoApi:'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/73',
followUpSC: 'https://dev-sc.yunqueyi.com/followup'
},
dev: {
baseUrl: 'https://dev-sc.yunqueyi.com/portal/',
......@@ -28,6 +29,7 @@ export const envConfig = {
innerLoginUrl: 'https://dev-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://dev-saas.yunqueyi.com/pica_index.html',
followUpApi: '',
followUpSC: 'https://dev-sc.yunqueyi.com/followup'
},
test: {
baseUrl: 'https://test1-sc.yunqueyi.com/portal/',
......@@ -38,6 +40,7 @@ export const envConfig = {
innerLoginUrl: 'https://test1-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://test-saas.yunqueyi.com/pica_index.html',
followUpApi: '',
followUpSC: 'https://test1-sc.yunqueyi.com/followup'
},
uat: {
baseUrl: 'https://uat-sc.yunqueyi.com/portal/',
......@@ -48,6 +51,7 @@ export const envConfig = {
innerLoginUrl: 'https://uat-sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://uat-saas.yunqueyi.com/pica_index.html',
followUpApi: '',
followUpSC: 'https://uat-sc.yunqueyi.com/followup'
},
pro: {
baseUrl: 'https://sc.yunqueyi.com/portal/',
......@@ -58,5 +62,6 @@ export const envConfig = {
innerLoginUrl: 'https://sso.yunqueyi.com/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://saas.yunqueyi.com/pica_index.html',
followUpApi: '',
followUpSC: 'https://sc.yunqueyi.com/followup'
}
}
import fetch from '../fetch';
import { getFollowUpApi, getBasicDataApi } from '@/utils/index'
import { getFollowUpApi, getBasicDataApi, getFollowUpSC } from '@/utils/index'
import utils from './followupUtils';
......@@ -7,6 +7,13 @@ import utils from './followupUtils';
/*计划管理API*/
const planManageApi = [
{
url: '/followup/plans',
method: 'get',
params: 'params',
name: 'getPlanList',
description: '获取计划列表',
},
{
url: '/plans/',
method: 'get',
......@@ -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*/
const basicDataApi = [
{
url: '/basic-data/constants/',
url: '/overView/todayAppoints',
method: 'get',
params: 'params',
name: 'getBasicData',
......@@ -97,7 +128,7 @@ const basicDataApi = [
const api = {};
const apis = [...planManageApi, ...reservationManageApi, ...basicDataApi];
const apis = [...planManageApi, ...reservationManageApi, ...basicDataApi, ...workbenchApi];
apis.forEach(item => api[item.name] = (params = {}, extraConfig = {}) => {
// const config = {
......@@ -116,6 +147,11 @@ apis.forEach(item => api[item.name] = (params = {}, extraConfig = {}) => {
url: getFollowUpApi(url),
method: item.method,
};
} else if (item.name.indexOf("SC")!=-1) {
config = {
url: getFollowUpSC(item.url),
method: item.method,
};
} else {
config = {
url: getFollowUpApi(item.url),
......
......@@ -175,6 +175,10 @@ export function uploadImg() {
export function getFollowUpApi(url) {
return getConfigByEnvType('followUpApiSoSoApi') + url //当前使用sosoapi mock数据
}
// 获取随访微服务服务器域名地址
export function getFollowUpSC(url) {
return getConfigByEnvType('followUpSC') + url
}
// 获取常量接口域名地址
export function getBasicDataApi(url) {
......
......@@ -3,18 +3,18 @@
<el-dialog
title="变更计划"
:visible.sync="showChangePlan"
width="30%"
width="35%"
v-if="showThisPage"
:before-close="clickClose"
center>
<el-form :model="planChangeData" label-width="100px">
<el-form :model="planChangeData" label-width="110px">
<el-form-item label="分组:">
<el-select v-model="planChangeData.group" >
<el-option
v-for="item in groupOption"
:key="item.value"
:label="item.label"
:value="item.value">
:key="item.labelId"
:label="item.labelName"
:value="item.labelId">
</el-option>
</el-select>
</el-form-item>
......
<template>
<div class="plan-modify">
修改计划
</div>
</template>
<script>
export default {
name: "plan-modify"
}
</script>
<style scoped>
</style>
......@@ -62,39 +62,37 @@
</div>
</div>
</div>
<div class="time-nodes" v-if="residentDetail.fPlanPatientDatilDtoList">
<!--<div class="time-nodes">
<p class="title">随访时间节点</p>
<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>
<div class="followup-contents">
<div class="content-div">
<div class="c-title">随访方式:</div>
<div class="c-content">门诊随访</div>
<div class="c-content">{{nodeContent.typeStr}}</div>
</div>
<div class="content-div">
<div class="c-title">提醒医生预约居民:</div>
<div class="c-content more-content">
<p>开始前20天提醒</p>
<p>开始前10天提醒</p>
<p v-for="item in nodeContent.remindList">{{item.startDaysStr}}</p>
</div>
</div>
<div class="content-div">
<div class="c-title">推送患教:</div>
<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>
</div>
</div>
<div class="content-div">
<div class="c-title">随访登记表:</div>
<div class="c-content more-content">
<p class="click-text">《登记表名登记表名登记表名》</p>
<p class="click-text">《登记表名登记表名登记表名登记表名》</p>
<p v-for="item in nodeContent.followupList">{{item.sendContent}}</p>
</div>
</div>
</div>
</div>
</div>-->
</div>
<change-plan :showThisPage="showChangePlan" @closeChangePlan="closeChangePlan"></change-plan>
<finish-followup :showThisPage="showFinishFollowup" @closeFinishFollowup="closeFinishFollowup"></finish-followup>
......@@ -140,7 +138,8 @@
},
computed: {
...mapState('planManage', {
residentDetail: state => state.residentDetail
residentDetail: state => state.residentDetail,
nodeContent: state => state.nodeContent
})
},
methods: {
......@@ -157,6 +156,14 @@
closeFinishFollowup(isShow) {
this.showFinishFollowup = isShow
},
},
watch: {
planDetail(val) {
this.timeNodes = val.fPlanTimeDtoList[0].id
},
timeNodes(val) {
this.getNodeTimeContent(val)
}
}
}
</script>
......
......@@ -110,7 +110,7 @@
</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>
</div>
</template>
......
......@@ -3,22 +3,46 @@
<bread-crumb :curmbFirst="curmbFirst"></bread-crumb>
<div class="message-content">
<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="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="date" label="预约时间" min-width="30"></el-table-column>
<el-table-column prop="name" label="姓名" min-width="20"></el-table-column>
<el-table-column prop="style" label="随访方式" min-width="30"></el-table-column>
<el-table-column prop="content" label="随访内容"></el-table-column>
<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>
</div>
<div class="visitor-info">
<el-table
:data="tableData"
style="width: 100%">
<el-table-column prop="date" label="随访计划名称"></el-table-column>
<el-table-column prop="name" label="随访计划时间"></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>
</div>
</el-col>
<el-col class="message screenSet" :span="24">
<div class="message-title">系统消息 <span>今日消息:{{count}}</span></div>
<div class="message-info" v-if="messageList.length > 0">
......@@ -46,7 +70,7 @@
<script>
import BreadCrumb from '../components/breadcrumb.vue'
import { setTimeout, setInterval } from 'timers'
import { mapGetters } from 'vuex'
import { mapGetters, mapState, mapActions } from 'vuex'
let vm = null
export default {
components: {
......@@ -65,13 +89,22 @@ export default {
created() {
vm = this
vm.getSystemData()
vm.getTodayPlansList({
status:0
})
},
computed: {
...mapGetters([
'_token'
])
]),
...mapState('workbench', {
todayPlans: state => state.todayPlans,
todayAppointsList: state => state.todayAppointsList,
todayOverview: state => state.todayOverview,
})
},
methods: {
...mapActions('workbench', ['getTodayPlansList', 'getTodayAppointsList', 'getTodayOverview']),
// 查看更多
lookMore() {
......@@ -95,7 +128,16 @@ export default {
padding: 0 25px 30px;
margin-bottom: 20px;
background: #fff;
margin-top: 88px;
// 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 {
height: 80px;
line-height: 80px;
......@@ -112,6 +154,17 @@ export default {
padding: 5px 14px;
border-radius: 3px;
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 {
......@@ -120,8 +173,16 @@ export default {
}
.message {
padding: 0 25px 30px;
margin-top: 20px;
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 {
font-size: 20px;
height: 80px;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册