提交 d421172a 编写于 作者: chengxiang.li's avatar chengxiang.li

Merge branch 'release' into dev-account-20191008

...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta content="云鹊医,云鹊健康,工作站,项目管理,教培项目,学情报告,随访管理,预约随访" name="keywords"> <meta content="云鹊医,云鹊健康,工作站,项目管理,教培项目,学情报告,履约管理,预约履约" name="keywords">
<meta content="云鹊医工作站用于管理人员的日常操作,支持提交内容审核、管理项目、管理随访计划等功能。" name="description"> <meta content="云鹊医工作站用于管理人员的日常操作,支持提交内容审核、管理项目、管理履约计划等功能。" name="description">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
<meta name="screen-orientation" content="portrait"/> <meta name="screen-orientation" content="portrait"/>
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
......
<template> <template>
<el-dialog title="本次随访详情" :visible.sync="dialogFormVisible" center :close-on-click-modal="false" :close-on-press-escape="false" width="800px"> <el-dialog title="本次履约详情" :visible.sync="dialogFormVisible" center :close-on-click-modal="false" :close-on-press-escape="false" width="800px">
<!--<el-form ref="statusForm" :model="statusForm" :rules="rules" label-suffix=":" label-width="120px">--> <!--<el-form ref="statusForm" :model="statusForm" :rules="rules" label-suffix=":" label-width="120px">-->
<!--<el-form-item label="居民" style="margin-bottom:0;">--> <!--<el-form-item label="居民" style="margin-bottom:0;">-->
<!--<span>{{statusForm.nickname}}</span>--> <!--<span>{{statusForm.nickname}}</span>-->
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<el-button <el-button
v-if="item.formType === 'button'" v-if="item.formType === 'button'"
type="primary" type="primary"
:disabled="item.disabled"
@click="item.clickFunc ? item.clickFunc($event) : defaultClick($event)" @click="item.clickFunc ? item.clickFunc($event) : defaultClick($event)"
:icon="item.icon">{{ item.btnText }} :icon="item.icon">{{ item.btnText }}
</el-button> </el-button>
...@@ -65,6 +66,7 @@ ...@@ -65,6 +66,7 @@
<el-checkbox-group <el-checkbox-group
v-else-if="item.formType === 'checkbox'" v-else-if="item.formType === 'checkbox'"
v-model="form[item.model]" v-model="form[item.model]"
:disabled="item.disabled"
@change="item.changeFun ? item.changeFun($event) : defaultFun($event)" @change="item.changeFun ? item.changeFun($event) : defaultFun($event)"
> >
<el-checkbox <el-checkbox
...@@ -79,6 +81,7 @@ ...@@ -79,6 +81,7 @@
<el-radio-group <el-radio-group
v-else-if="item.formType === 'radio'" v-else-if="item.formType === 'radio'"
v-model="form[item.model]" v-model="form[item.model]"
:disabled="item.disabled"
@change="item.changeFun ? item.changeFun($event) : defaultFun($event)" @change="item.changeFun ? item.changeFun($event) : defaultFun($event)"
> >
<el-radio <el-radio
......
...@@ -81,7 +81,7 @@ const followRouters = { ...@@ -81,7 +81,7 @@ const followRouters = {
component: newPlan, component: newPlan,
name: 'newPlan', name: 'newPlan',
meta: { meta: {
title: '新建随访计划', title: '新建履约计划',
keepAlive: false //页面不需要缓存 keepAlive: false //页面不需要缓存
}, },
}, },
......
...@@ -9,6 +9,7 @@ const itemComponent = r => require.ensure([], () => r(require('../views/educatio ...@@ -9,6 +9,7 @@ const itemComponent = r => require.ensure([], () => r(require('../views/educatio
const createComponent = r => require.ensure([], () => r(require('../views/education/create-component.vue')),'create-component') const createComponent = r => require.ensure([], () => r(require('../views/education/create-component.vue')),'create-component')
const roleManager = r => require.ensure([], () => r(require('../views/system/role.vue')),'role') const roleManager = r => require.ensure([], () => r(require('../views/system/role.vue')),'role')
const addManager = r => require.ensure([], () => r(require('../views/education/add-manager.vue')), 'add-manager') const addManager = r => require.ensure([], () => r(require('../views/education/add-manager.vue')), 'add-manager')
const editManager = r => require.ensure([], () => r(require('../views/education/edit-manager.vue')), 'edit-manager')
const itemRole = r => require.ensure([], () => r(require('../views/system/item-role.vue')), 'item-role') const itemRole = r => require.ensure([], () => r(require('../views/system/item-role.vue')), 'item-role')
const msgPush = r => require.ensure([], () => r(require('../views/msgpush/msg-push.vue')), 'msg-push') const msgPush = r => require.ensure([], () => r(require('../views/msgpush/msg-push.vue')), 'msg-push')
...@@ -50,6 +51,9 @@ export default [{ ...@@ -50,6 +51,9 @@ export default [{
},{ },{
path: '/add-manager', path: '/add-manager',
component: addManager component: addManager
},{
path: '/edit-manager',
component: editManager
},{ },{
path: '/item-component', path: '/item-component',
component: itemComponent component: itemComponent
......
...@@ -22,26 +22,26 @@ export default { ...@@ -22,26 +22,26 @@ export default {
groupList: [], //分组列表 groupList: [], //分组列表
residentDetail: {}, //居民详情, residentDetail: {}, //居民详情,
planDetail: {}, // 计划详情页, planDetail: {}, // 计划详情页,
nodeTimeList: [], //随访时间节点列表, nodeTimeList: [], //履约时间节点列表,
nodeContent: {}, //时间节点详情 nodeContent: {}, //时间节点详情
planOption: [], //随访计划select planOption: [], //履约计划select
timeNodeList: [], timeNodeList: [],
setTimeNodeList: [], //新建计划设置时间节点 setTimeNodeList: [], //新建计划设置时间节点
planList: {}, //随访计划列表 planList: {}, //履约计划列表
remarkOption: [], //随访计划备注常量 remarkOption: [], //履约计划备注常量
markOptions: [], //随访 随访时间节点单位 常量 markOptions: [], //履约 履约时间节点单位 常量
followTypeList: [], //随访 随访方式 常量 followTypeList: [], //履约 履约方式 常量
remindOptions: [], //随访 提醒医生天数 常量 remindOptions: [], //履约 提醒医生天数 常量
pushTimeOptions: [], //随访 推送患教提醒天数 常量 pushTimeOptions: [], //履约 推送患教提醒天数 常量
planStatusOption: [], //随访计划状态常量 planStatusOption: [], //履约计划状态常量
formOptions: [],// 获取量表 formOptions: [],// 获取量表
templateOptions: [ // 获取随访计划模板 templateOptions: [ // 获取履约计划模板
{ {
id: 0, id: 0,
name: '自定义模板' name: '自定义模板'
} }
], ],
followStartTimeList: [], //随访时间 followStartTimeList: [], //履约时间
residentCrumb: [], //居民面包屑 residentCrumb: [], //居民面包屑
planModifyCrumb: [], //修改计划面包屑 planModifyCrumb: [], //修改计划面包屑
selectResidentList: [], //修改计划已选居民 selectResidentList: [], //修改计划已选居民
...@@ -176,7 +176,7 @@ export default { ...@@ -176,7 +176,7 @@ export default {
}); });
}, },
getDateUnit(context, payload){ getDateUnit(context, payload){
// 随访时间节点单位 // 履约时间节点单位
getBasicData({ getBasicData({
numList: 'P017' numList: 'P017'
}).then(({data})=>{ }).then(({data})=>{
...@@ -184,7 +184,7 @@ export default { ...@@ -184,7 +184,7 @@ export default {
}) })
}, },
getFollowTypeList(context, payload){ getFollowTypeList(context, payload){
// 随访方式 // 履约方式
getBasicData({ getBasicData({
numList: 'P212' numList: 'P212'
}).then(({data})=>{ }).then(({data})=>{
...@@ -214,7 +214,7 @@ export default { ...@@ -214,7 +214,7 @@ export default {
}) })
}, },
getFollowupTemplate(context, payload){ getFollowupTemplate(context, payload){
// 获取随访模板 // 获取履约模板
getFollowupTemplate().then(({data})=>{ getFollowupTemplate().then(({data})=>{
context.commit('GET_FOLLOW_TEMPLATE', data); context.commit('GET_FOLLOW_TEMPLATE', data);
}) })
......
...@@ -3,9 +3,9 @@ import {getTodayAppointsList, getTodayOverview, getTodayPlans} from '@/utils/fol ...@@ -3,9 +3,9 @@ import {getTodayAppointsList, getTodayOverview, getTodayPlans} from '@/utils/fol
export default { export default {
namespaced: true, namespaced: true,
state: { state: {
todayPlansList: [], //今日随访列表 todayPlansList: [], //今日履约列表
todayAppointsList: [], //今日预约列表 todayAppointsList: [], //今日预约列表
todayOverview: [], //查询今日随访、预约、随访人数count todayOverview: [], //查询今日履约、预约、履约人数count
}, },
mutations: { mutations: {
GET_TODAY_PLAN_LIST(state, payload) { GET_TODAY_PLAN_LIST(state, payload) {
......
import Vue from 'vue' import Vue from 'vue'
import Vuex from 'vuex' import Vuex from 'vuex'
import common from './education/common'; import common from './education/common';
//随访 //履约
import followModules from './followup/index'; import followModules from './followup/index';
import getters from './getters' import getters from './getters'
//居民诊断 //居民诊断
......
...@@ -236,20 +236,21 @@ html,body{ ...@@ -236,20 +236,21 @@ html,body{
background-color: #449284 !important; background-color: #449284 !important;
border-color: #449284 !important; border-color: #449284 !important;
} }
//popover组件的特殊处理 .prot-dialog {
.el-popover { .el-dialog__body {
::-webkit-scrollbar padding: 25px 25px 10px;
{
width: 4px;
height: 10px;
background-color: #D8D8D8;
} }
::-webkit-scrollbar-thumb { &-tips-1 {
background-color: #D8D8D8; margin-top: 0px;
}
&-tips-2 {
margin-top: 20px;
font-size: 12px;
color: #aaa;
} }
.more-text { &-tips-3 {
padding: 0 5px 0 5px; margin-top: 20px;
max-height: 55px; font-size: 12px;
overflow-y: scroll; color: #FF9A4B;
} }
} }
\ No newline at end of file
...@@ -2,7 +2,7 @@ import fetch from '../fetch'; ...@@ -2,7 +2,7 @@ import fetch from '../fetch';
import { getBaseUrl } from '@/utils/index'; import { getBaseUrl } from '@/utils/index';
export const uploadExcel = (data,projectId) => { export const uploadExcel = (data, projectId) => {
// return utils.checkAuth(()=>{ // return utils.checkAuth(()=>{
return fetch({ return fetch({
headers: { headers: {
...@@ -10,10 +10,40 @@ export const uploadExcel = (data,projectId) => { ...@@ -10,10 +10,40 @@ export const uploadExcel = (data,projectId) => {
sysCode: 12, sysCode: 12,
token: localStorage.getItem('storageToken'), token: localStorage.getItem('storageToken'),
}, },
url: getBaseUrl('portal/portalProjectOrRole/importRoleFile?projectId='+projectId), url: getBaseUrl('portal/v2/role/importRoleFile?projectId=' + projectId),
method: 'post', method: 'post',
data: data, data: data,
description: '上传excel文件', description: '上传excel文件',
}) })
// }) // })
}
export const uploadOrgExcel = (data, projectId) => {
// return utils.checkAuth(()=>{
return fetch({
headers: {
'Content-Type': 'application/json;charset=UTF-8',
sysCode: 12,
token: localStorage.getItem('storageToken'),
},
url: getBaseUrl('portal/new/scope/org/v1/' + projectId + '/import'),
method: 'put',
data: data,
description: '上传excel文件',
})
// })
}
export const uploadPersonExcel = (data, projectId) => {
// return utils.checkAuth(()=>{
return fetch({
headers: {
'Content-Type': 'application/json;charset=UTF-8',
sysCode: 12,
token: localStorage.getItem('storageToken'),
},
url: getBaseUrl('portal/new/scope/doctor/v1/' + projectId + '/import'),
method: 'put',
data: data,
description: '上传excel文件',
})
// })
} }
\ No newline at end of file
...@@ -10,27 +10,28 @@ export const envConfig = { ...@@ -10,27 +10,28 @@ export const envConfig = {
// baseUrl: 'https://uat-sc.yunqueyi.com/', // baseUrl: 'https://uat-sc.yunqueyi.com/',
// baseUrl: 'http://10.177.15.150:10401/', // baseUrl: 'http://10.177.15.150:10401/',
// baseUrl: 'http://10.177.15.150:11905/', // baseUrl: 'http://10.177.15.150:11905/',
baseUrl: 'https://dev-sc.yunqueyi.com/', // baseUrl: 'https://dev-sc.yunqueyi.com/',
// baseUrl: 'https://test1-sc.yunqueyi.com/', // baseUrl: 'https://test1-sc.yunqueyi.com/',
// baseUrl: 'https://uat-sc.yunqueyi.com/', baseUrl: 'https://uat-sc.yunqueyi.com/',
apiUrl: 'https://dev-api.yunqueyi.com/', apiUrl: 'https://uat-api.yunqueyi.com/',
qiniuFileUrl: "https://dev-sc.yunqueyi.com/contents/admin/qiniu/token1", qiniuFileUrl: "https://uat-sc.yunqueyi.com/contents/admin/qiniu/token1",
qiniuResourceUrl: "https://test1-videos.yunqueyi.com", qiniuResourceUrl: "https://test1-videos.yunqueyi.com",
qiniuImgUrl: "https://test1-file.yunqueyi.com", qiniuImgUrl: "https://test1-file.yunqueyi.com",
loginUrl: 'https://dev-saas.yunqueyi.com/pica-login/work_station.html', loginUrl: 'https://uat-saas.yunqueyi.com/pica-login/work_station.html',
innerLoginUrl: 'http://localhost:8090/PICA_SSO_FE/html/pica_index.html', innerLoginUrl: 'http://localhost:8090/PICA_SSO_FE/html/pica_index.html',
yuequeyiIndexUrl: 'https://dev-saas.yunqueyi.com/pica_index.html', yuequeyiIndexUrl: 'https://uat-saas.yunqueyi.com/pica_index.html',
followUpSCSoSo: 'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/73', followUpSCSoSo: 'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/73',
followUpSC: 'https://dev-sc.yunqueyi.com', followUpSC: 'https://uat-sc.yunqueyi.com',
saasDomainUrl: 'https://dev-saas.yunqueyi.com/', saasDomainUrl: 'https://uat-saas.yunqueyi.com/',
workApiUrl: 'https://dev-work.yunqueyi.com/web', workApiUrl: 'https://uat-work.yunqueyi.com/web',
workApiSrc: 'https://dev-work.yunqueyi.com', workApiSrc: 'https://uat-work.yunqueyi.com',
// reportUrl: 'http://10.177.15.150:10401/', // reportUrl: 'http://10.177.15.150:10401/',
// reportUrl: 'http://192.168.140.13:10401/', // reportUrl: 'http://192.168.140.13:10401/',
reportUrl: 'https://dev-sc-report.yunqueyi.com/', // reportUrl: 'https://dev-sc-report.yunqueyi.com/',
// reportUrl: 'https://test1-sc-report.yunqueyi.com/', reportUrl: 'https://uat-sc-report.yunqueyi.com/',
// reportUrl: 'https://uat-sc-report.yunqueyi.com/', // reportUrl: 'https://uat-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/', excelUrl: 'https://uat-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
}, },
dev: { dev: {
baseUrl: 'https://dev-sc.yunqueyi.com/', baseUrl: 'https://dev-sc.yunqueyi.com/',
...@@ -47,6 +48,7 @@ export const envConfig = { ...@@ -47,6 +48,7 @@ export const envConfig = {
workApiSrc: 'https://dev-work.yunqueyi.com', workApiSrc: 'https://dev-work.yunqueyi.com',
reportUrl: 'https://dev-sc-report.yunqueyi.com/', reportUrl: 'https://dev-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/', excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
}, },
test: { test: {
baseUrl: 'https://test1-sc.yunqueyi.com/', baseUrl: 'https://test1-sc.yunqueyi.com/',
...@@ -63,6 +65,7 @@ export const envConfig = { ...@@ -63,6 +65,7 @@ export const envConfig = {
workApiSrc: 'https://test1-work.yunqueyi.com', workApiSrc: 'https://test1-work.yunqueyi.com',
reportUrl: 'https://test1-sc-report.yunqueyi.com/', reportUrl: 'https://test1-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/', excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
}, },
test2: { test2: {
baseUrl: 'https://test2-work.yunqueyi.com/sc/', baseUrl: 'https://test2-work.yunqueyi.com/sc/',
...@@ -78,6 +81,7 @@ export const envConfig = { ...@@ -78,6 +81,7 @@ export const envConfig = {
workApiSrc: 'https://test2-work.yunqueyi.com', workApiSrc: 'https://test2-work.yunqueyi.com',
reportUrl: 'https://test2-sc-report.yunqueyi.com/', reportUrl: 'https://test2-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/', excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
}, },
uat: { uat: {
baseUrl: 'https://uat-sc.yunqueyi.com/', baseUrl: 'https://uat-sc.yunqueyi.com/',
...@@ -94,6 +98,7 @@ export const envConfig = { ...@@ -94,6 +98,7 @@ export const envConfig = {
workApiSrc: 'https://uat-work.yunqueyi.com', workApiSrc: 'https://uat-work.yunqueyi.com',
reportUrl: 'https://uat-sc-report.yunqueyi.com/', reportUrl: 'https://uat-sc-report.yunqueyi.com/',
excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/', excelUrl: 'https://test-file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
}, },
pro: { pro: {
baseUrl: 'https://sc.yunqueyi.com/', baseUrl: 'https://sc.yunqueyi.com/',
...@@ -110,5 +115,6 @@ export const envConfig = { ...@@ -110,5 +115,6 @@ export const envConfig = {
workApiSrc: 'https://work.yunqueyi.com', workApiSrc: 'https://work.yunqueyi.com',
reportUrl: 'https://sc-report.yunqueyi.com/', reportUrl: 'https://sc-report.yunqueyi.com/',
excelUrl: 'https://file.yunqueyi.com/File/template/portal/', excelUrl: 'https://file.yunqueyi.com/File/template/portal/',
itemFileUrl: 'http://pica-test-huabei2.oss-cn-beijing.aliyuncs.com/File/template/portal/',
} }
} }
...@@ -55,7 +55,9 @@ service.interceptors.request.use(config => { ...@@ -55,7 +55,9 @@ service.interceptors.request.use(config => {
if( process.env.BUILD_ENV == "development" ){ // 本地开发环境 if( process.env.BUILD_ENV == "development" ){ // 本地开发环境
// console.log('环境变量>>>> ', process.env.BUILD_ENV); // console.log('环境变量>>>> ', process.env.BUILD_ENV);
// config.headers['token'] = 'BFD804F3A3194FBBBE113962222839F6'; // config.headers['token'] = 'BFD804F3A3194FBBBE113962222839F6';
config.headers['token'] = 'F8209898391C40A0B8DBC1ED9E157291'; // config.headers['token'] = 'F8209898391C40A0B8DBC1ED9E157291';
// config.headers['token'] = 'E5F82EDD958941C29BCDDDED410ACDB3';
config.headers['token'] = '04BEB8CAF7DE4E1AB861FC487E7ADAC8';
}else{ }else{
config.headers['token'] = localStorage.getItem('storageToken') config.headers['token'] = localStorage.getItem('storageToken')
} }
......
...@@ -237,17 +237,17 @@ const vueFilter = { ...@@ -237,17 +237,17 @@ const vueFilter = {
return time; return time;
}, },
shieldStatus: (value) => { shieldStatus: (value) => {
if(value == 0) { if(value == 1) {
return '已屏蔽';
} else if(value == 1) {
return '未屏蔽'; return '未屏蔽';
} else if(value == 2) {
return '已屏蔽';
} }
}, },
shieldButton: (value) => { shieldButton: (value) => {
if(value == 0) { if(value == 1) {
return '取消屏蔽';
} else if(value == 1) {
return '屏蔽'; return '屏蔽';
} else if(value == 2) {
return '取消屏蔽';
} }
}, },
areaText: (value) => { areaText: (value) => {
......
...@@ -27,7 +27,7 @@ export const getTodayOverview = (params) => { ...@@ -27,7 +27,7 @@ export const getTodayOverview = (params) => {
url: getFollowUpSC(`/followup/overView/todayOverview`), url: getFollowUpSC(`/followup/overView/todayOverview`),
method: 'get', method: 'get',
params: params, params: params,
description: '获取今日随访、预约、随访人数', description: '获取今日履约、预约、履约人数',
}) })
}; };
export const getTodayPlans = (params) => { export const getTodayPlans = (params) => {
...@@ -36,7 +36,7 @@ export const getTodayPlans = (params) => { ...@@ -36,7 +36,7 @@ export const getTodayPlans = (params) => {
url: getFollowUpSC(`/followup/overView/todayPlans`), url: getFollowUpSC(`/followup/overView/todayPlans`),
method: 'get', method: 'get',
params: params, params: params,
description: '查询今日随访计划', description: '查询今日履约计划',
}) })
}; };
...@@ -48,7 +48,7 @@ export const createFollowPlan = (data) => { ...@@ -48,7 +48,7 @@ export const createFollowPlan = (data) => {
url: getFollowUpSC(`/followup/plans`), url: getFollowUpSC(`/followup/plans`),
method: 'post', method: 'post',
data: data, data: data,
description: '新增、修改随访计划', description: '新增、修改履约计划',
}) })
}) })
...@@ -82,7 +82,7 @@ export const getNodeTimeList = (planId) => { ...@@ -82,7 +82,7 @@ export const getNodeTimeList = (planId) => {
headers, headers,
url: getFollowUpSC(`/followup/plans/${planId}/time`), url: getFollowUpSC(`/followup/plans/${planId}/time`),
method: 'get', method: 'get',
description: '获取随访时间节点列表', description: '获取履约时间节点列表',
}) })
// }) // })
...@@ -128,7 +128,7 @@ export const getFollowStartTimeList = (planId) => { ...@@ -128,7 +128,7 @@ export const getFollowStartTimeList = (planId) => {
headers, headers,
url: getFollowUpSC(`/followup/planPatient/${planId}/times`), url: getFollowUpSC(`/followup/planPatient/${planId}/times`),
method: 'get', method: 'get',
description: '获取随访开始时间列表(居民相关)', description: '获取履约开始时间列表(居民相关)',
}) })
// }) // })
...@@ -272,7 +272,7 @@ export const changeEnteringStatus = (data) => { ...@@ -272,7 +272,7 @@ export const changeEnteringStatus = (data) => {
url: getFollowUpSC(`/followup/entering/status/change`), url: getFollowUpSC(`/followup/entering/status/change`),
method: 'post', method: 'post',
data: data, data: data,
description: '变更随访状态', description: '变更履约状态',
}) })
}) })
...@@ -284,7 +284,7 @@ export const getEnteringInfo = (patientId, fuPlanPatientTimesId) => { ...@@ -284,7 +284,7 @@ export const getEnteringInfo = (patientId, fuPlanPatientTimesId) => {
url: getFollowUpSC(`/followup/entering/${patientId}/fuInfo/${fuPlanPatientTimesId}`), url: getFollowUpSC(`/followup/entering/${patientId}/fuInfo/${fuPlanPatientTimesId}`),
method: 'get', method: 'get',
// params: params, // params: params,
description: '随访单条信息查看', description: '履约单条信息查看',
},) },)
// }) // })
...@@ -319,7 +319,7 @@ export const getPlanPatientsList = (data) =>{ ...@@ -319,7 +319,7 @@ export const getPlanPatientsList = (data) =>{
} }
// 获取随访计划模板列表 // 获取履约计划模板列表
export const getFollowupTemplate = (data) => { export const getFollowupTemplate = (data) => {
// return utils.checkAuth(()=>{ // return utils.checkAuth(()=>{
return fetch({ return fetch({
...@@ -327,13 +327,13 @@ export const getFollowupTemplate = (data) => { ...@@ -327,13 +327,13 @@ export const getFollowupTemplate = (data) => {
url: getFollowUpSC(`/followup/plans/templets`), url: getFollowUpSC(`/followup/plans/templets`),
method: 'get', method: 'get',
data: data, data: data,
description: '获取随访计划模板列表', description: '获取履约计划模板列表',
}) })
// }) // })
} }
// 获取随访量表固定模板 // 获取履约量表固定模板
export const getFollowupTableTemplate = (id) => { export const getFollowupTableTemplate = (id) => {
// return utils.checkAuth(()=>{ // return utils.checkAuth(()=>{
return fetch({ return fetch({
...@@ -341,7 +341,7 @@ export const getFollowupTableTemplate = (id) => { ...@@ -341,7 +341,7 @@ export const getFollowupTableTemplate = (id) => {
url: getFollowUpSC(`/followup/plans/templets/${id}`), url: getFollowUpSC(`/followup/plans/templets/${id}`),
method: 'get', method: 'get',
data: {}, data: {},
description: '获取随访量表固定模板', description: '获取履约量表固定模板',
}) })
// }) // })
...@@ -484,4 +484,65 @@ export const updateScalesStatus = ( data ) => { ...@@ -484,4 +484,65 @@ export const updateScalesStatus = ( data ) => {
}) })
} }
// 获取量表详情
export const getFirstAccess = () => {
return fetch({
url: getFollowUpSC(`/followup/overView/firstAccess`),
method: 'get',
data: {},
})
}
/**
* Add by Anndy Yang
* 统一验证:量表内是否存在敏感字段、居民是否签署隐私协议、7天内是否发送过授权短信
* @param {[type]} data
{
"scaleNo":"String,量表编号",
// "patientIds":"List<Integer>,医生/居民id集合", // pc端只传这个字段
"planPatientsTimesId": "planPatientsTimesId", // app端只传这个字段
"protocolType":"Integer,协议类型(1:平台用户协议,5:隐私协议)",
"userType":"Integer,用户类型(1:居民,2:医生,3:其他)",
"validateType":"1:3个条件依次校验,2:后面2个条件依次校验"
}
* @return {[type]}
{
"code": "000000",
"message": "成功",
"data": {
"levelType":"类型 1:量表不存在敏感字段,2:居民都已签署协议,3:7天内发送过授权短信,4:7天内未发送过授权短信"
"ids":"List<Integer>,未签署协议的id集合(需要发送授权短信的居民id集合)"
}
}
*/
export const uniteValidate = (data) => {
return fetch({
url: getFollowUpSC(`/followup/protocol/uniteValidate`),
method: 'post',
data: data,
})
};
/**
* Add by Anndy Yang
* [批量]医生给居民发送授权短信
* @param {[type]} data {"patientIds":"List<Integer>,居民id集合"}
* @return {[type]} [description]
*/
export const authMessage = (data) => {
return fetch({
url: getFollowUpSC(`/followup/protocol/authMessage`),
method: 'post',
data: data,
})
};
// 关于权限获取展示的模块信息
export const getScaleModels2 = (domain,scaleNo, params) => {
return fetch({
url: `${domain}/followup/protocol/${scaleNo}/models`,
method: 'get',
params: params,
})
}
import rangeJson from './rangConfig'; import rangeJson from './rangConfig';
// 这个方法,是用户在选择随访轮次(6个月,12个月)后续操作 // 这个方法,是用户在选择履约轮次(6个月,12个月)后续操作
let checkNeedRule = (val) => { let checkNeedRule = (val) => {
const needRule = sessionStorage.getItem('needRule'); const needRule = sessionStorage.getItem('needRule');
if( val!='0' && (!val||val=='') && (!needRule || needRule=='true') ){ if( val!='0' && (!val||val=='') && (!needRule || needRule=='true') ){
......
...@@ -60,13 +60,13 @@ export default { ...@@ -60,13 +60,13 @@ export default {
if (res.code == '000000') { if (res.code == '000000') {
if (res.data == 1) { if (res.data == 1) {
// 点击 去加入,进入加入机构流程 // 点击 去加入,进入加入机构流程
alertMessage('您当前暂无机构,无法使用居民管理、随访管理和群发消息等功能,请在加入机构后重试。','去加入','暂不加入', ()=>{ alertMessage('您当前暂无机构,无法使用居民管理、履约管理和群发消息等功能,请在加入机构后重试。','去加入','暂不加入', ()=>{
location.href = getSaasHost() + '/pica-base/pica_join.html' location.href = getSaasHost() + '/pica-base/pica_join.html'
}) })
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
}) })
} else if (res.data == 2) { } else if (res.data == 2) {
alertMessage('您创建的机构正在审核中,暂无法使用居民管理、随访管理和群发消息等功能,请在审核通过后重试。','查看审核','取消', ()=>{ alertMessage('您创建的机构正在审核中,暂无法使用居民管理、履约管理和群发消息等功能,请在审核通过后重试。','查看审核','取消', ()=>{
location.href = getWsHost() + '/outside/status?tk=' + localStorage.getItem('storageToken') location.href = getWsHost() + '/outside/status?tk=' + localStorage.getItem('storageToken')
}) })
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
...@@ -92,11 +92,11 @@ export default { ...@@ -92,11 +92,11 @@ export default {
// res.data = 2 // res.data = 2
if (res.code == '000000') { if (res.code == '000000') {
if (res.data == 1) { if (res.data == 1) {
alertMessage('您当前暂无机构,无法使用居民管理、随访管理和群发消息等功能,请在加入机构后重试。','去加入','暂不加入', ()=>{ alertMessage('您当前暂无机构,无法使用居民管理、履约管理和群发消息等功能,请在加入机构后重试。','去加入','暂不加入', ()=>{
location.href = getSaasHost() + '/pica-base/pica_join.html' location.href = getSaasHost() + '/pica-base/pica_join.html'
}) })
} else if (res.data == 2) { } else if (res.data == 2) {
alertMessage('您创建的机构正在审核中,暂无法使用居民管理、随访管理和群发消息等功能,请在审核通过后重试。','查看审核','取消', ()=>{ alertMessage('您创建的机构正在审核中,暂无法使用居民管理、履约管理和群发消息等功能,请在审核通过后重试。','查看审核','取消', ()=>{
location.href = getWsHost() + '/outside/status?tk=' + localStorage.getItem('storageToken') location.href = getWsHost() + '/outside/status?tk=' + localStorage.getItem('storageToken')
}) })
} else if (res.data == 3) { } else if (res.data == 3) {
......
...@@ -26,7 +26,7 @@ export default [ ...@@ -26,7 +26,7 @@ export default [
}, },
{ {
field: 'nextBodyWeight', field: 'nextBodyWeight',
name: '下次随访体重', name: '下次履约体重',
min: 35, min: 35,
max: 250 max: 250
}, },
...@@ -44,7 +44,7 @@ export default [ ...@@ -44,7 +44,7 @@ export default [
}, },
{ {
field: 'nextSmokingAmount', field: 'nextSmokingAmount',
name: '下次随访日吸烟量', name: '下次履约日吸烟量',
min: 0, min: 0,
max: 99 max: 99
}, },
...@@ -56,7 +56,7 @@ export default [ ...@@ -56,7 +56,7 @@ export default [
}, },
{ {
field: 'nextAlcoholConsumption', field: 'nextAlcoholConsumption',
name: '下次随访日饮酒量', name: '下次履约日饮酒量',
min: 0, min: 0,
max: 99 max: 99
}, },
...@@ -74,13 +74,13 @@ export default [ ...@@ -74,13 +74,13 @@ export default [
}, },
{ {
field: 'nextWorkoutOfWeek', field: 'nextWorkoutOfWeek',
name: '下次随访运动情况', name: '下次履约运动情况',
min: 0, min: 0,
max: 99 max: 99
}, },
{ {
field: 'nextWorkoutDuration', field: 'nextWorkoutDuration',
name: '下次随访运动情况', name: '下次履约运动情况',
min: 0, min: 0,
max: 99 max: 99
}, },
......
...@@ -172,7 +172,7 @@ export function uploadImg() { ...@@ -172,7 +172,7 @@ export function uploadImg() {
return getConfigByEnvType('qiniuImgUrl') return getConfigByEnvType('qiniuImgUrl')
} }
// 获取随访微服务服务器域名地址 // 获取履约微服务服务器域名地址
export function getFollowUpSC(url) { export function getFollowUpSC(url) {
return getConfigByEnvType('followUpSC') + url return getConfigByEnvType('followUpSC') + url
} }
...@@ -212,7 +212,12 @@ export function getReportUrl(url) { ...@@ -212,7 +212,12 @@ export function getReportUrl(url) {
return getConfigByEnvType('reportUrl') + url return getConfigByEnvType('reportUrl') + url
} }
// 获取SC服务器域名地址 // 获取Excel地址
export function getExeclUrl(url) { export function getExeclUrl(url) {
return getConfigByEnvType('excelUrl') + url return getConfigByEnvType('excelUrl') + url
}
// 获取教培项目文件地址
export function getItemFileUrl(url) {
return getConfigByEnvType('itemFileUrl') + url
} }
\ No newline at end of file
...@@ -263,7 +263,15 @@ module.exports = { ...@@ -263,7 +263,15 @@ module.exports = {
data: para data: para
}) })
}, },
// 通用PUT请求
PUT(api, para, callback) {
// para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE"
return fetch({
url: getBaseUrl(api),
method: 'put',
data: para
})
},
// 通用POST请求 // 通用POST请求
POST(api, para, callback) { POST(api, para, callback) {
// para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE" // para.token = para.token || this.token || "343BCABC890349ACAF357FA79122F9FE"
......
...@@ -285,7 +285,7 @@ export function isOverlap(startA, endA, startB, endB) { ...@@ -285,7 +285,7 @@ export function isOverlap(startA, endA, startB, endB) {
} }
export function setRegionOption(data) { export function setRegionOption(data) {
let option = []; let option = [];
option[0] = {id: 0, value: 0, label: "全部", leaf: true}; option[0] = { id: 0, value: 0, label: "全部", leaf: true };
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
let obj = data[i]; let obj = data[i];
obj.label = data[i].provinceName; obj.label = data[i].provinceName;
...@@ -294,6 +294,24 @@ export function setRegionOption(data) { ...@@ -294,6 +294,24 @@ export function setRegionOption(data) {
} }
return option; return option;
} }
export function setRegionOption2(data) {
let option = [];
option[0] = { id: 0, value: '0', label: "全部地区", leaf: true };
for (let i = 0; i < data.length; i++) {
let obj = data[i];
obj.label = data[i].provinceName;
obj.value = data[i].provinceId;
option.push(obj);
}
return option;
}
export function setAdministrativeId(value) {
let areaId = '000';
for (let i = 0; i < value.length; i++) {
areaId += '_' + value[i];
}
return areaId;
}
export function getRegionOption() { export function getRegionOption() {
let option = [{ let option = [{
value: 1, value: 1,
...@@ -313,7 +331,7 @@ export function getRegionOption() { ...@@ -313,7 +331,7 @@ export function getRegionOption() {
return option; return option;
} }
export function getLearnOrganization(data) { export function getLearnOrganization(data) {
if(data.length == 0) { if (data.length == 0) {
let arr = []; let arr = [];
return arr; return arr;
} }
...@@ -480,11 +498,11 @@ export function getRank(xAxisData, seriesData) { ...@@ -480,11 +498,11 @@ export function getRank(xAxisData, seriesData) {
}; };
return option; return option;
} }
export function getSearchType(formData,checkAll) { export function getSearchType(formData, checkAll) {
let type = 0; let type = 0;
if (formData.region.length == 1 || formData.region.length == 2) { if (formData.region.length == 1 || formData.region.length == 2) {
type = formData.region.length; type = formData.region.length;
if(formData.region.length == 1 && formData.region[0] == 0) { if (formData.region.length == 1 && formData.region[0] == 0) {
type = 6; type = 6;
} }
} else if (formData.region.length == 3) { } else if (formData.region.length == 3) {
...@@ -493,7 +511,7 @@ export function getSearchType(formData,checkAll) { ...@@ -493,7 +511,7 @@ export function getSearchType(formData,checkAll) {
} else { } else {
type = 4; type = 4;
} }
} else if (formData.region.length == 4) { } else if (formData.region.length == 4) {
if (formData.organization.length == 0 || checkAll === true) { if (formData.organization.length == 0 || checkAll === true) {
type = 5; type = 5;
} else { } else {
...@@ -560,23 +578,23 @@ export function getAjustmentList(data) { ...@@ -560,23 +578,23 @@ export function getAjustmentList(data) {
} }
export function removeZero(data) { export function removeZero(data) {
let list = []; let list = [];
for(let i = 0;i<data.length;i++) { for (let i = 0; i < data.length; i++) {
if(data[i].value != 0) { if (data[i].value != 0) {
list.push(data[i]); list.push(data[i]);
} }
} }
return list; return list;
} }
export function initRank(data) { export function initRank(data) {
let list = [{gradeFlag: -1, gradeName: "全部"}]; let list = [{ gradeFlag: -1, gradeName: "全部" }];
for(let i=0;i<data.length;i++) { for (let i = 0; i < data.length; i++) {
list.push(data[i]); list.push(data[i]);
} }
return list; return list;
} }
export function getAvgTime(data) { export function getAvgTime(data) {
let list = [0,0]; let list = [0, 0];
if(data != null && data !='') { if (data != null && data != '') {
list[0] = Math.floor(data / 60); list[0] = Math.floor(data / 60);
list[1] = data % 60; list[1] = data % 60;
} }
...@@ -584,16 +602,16 @@ export function getAvgTime(data) { ...@@ -584,16 +602,16 @@ export function getAvgTime(data) {
} }
export function getComponent(data) { export function getComponent(data) {
let list = []; let list = [];
for(let i=0;i<data.length;i++) { for (let i = 0; i < data.length; i++) {
list.push(data[i].value); list.push(data[i].value);
} }
return list; return list;
} }
export function getSimpleCheckedNodes(store) { export function getSimpleCheckedNodes(store) {
const checkedNodes = []; const checkedNodes = [];
const traverse = function(node) { const traverse = function (node) {
const childNodes = node.root ? node.root.childNodes : node.childNodes; const childNodes = node.root ? node.root.childNodes : node.childNodes;
childNodes.forEach(child => { childNodes.forEach(child => {
if (child.checked) { if (child.checked) {
checkedNodes.push(child.data); checkedNodes.push(child.data);
...@@ -606,16 +624,16 @@ export function getSimpleCheckedNodes(store) { ...@@ -606,16 +624,16 @@ export function getSimpleCheckedNodes(store) {
traverse(store) traverse(store)
return checkedNodes; return checkedNodes;
} }
export function setSelectedKeys(checkedKeys,halfCheckedKeys) { export function setSelectedKeys(checkedKeys, halfCheckedKeys) {
let selected = []; let selected = [];
for(let i=0;i<checkedKeys.length;i++) { for (let i = 0; i < checkedKeys.length; i++) {
let obj = { let obj = {
key: checkedKeys[i].id, key: checkedKeys[i].id,
type: 1, type: 1,
}; };
selected.push(obj); selected.push(obj);
} }
for(let j=0;j<halfCheckedKeys.length;j++) { for (let j = 0; j < halfCheckedKeys.length; j++) {
let obj = { let obj = {
key: halfCheckedKeys[j], key: halfCheckedKeys[j],
type: 2, type: 2,
......
...@@ -281,6 +281,9 @@ ...@@ -281,6 +281,9 @@
</el-tree> </el-tree>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="11">
<p class="area-p">
项目范围包含下列区域所有机构和人员({{ tagsRegion.length }})
</p>
<el-tag <el-tag
v-for="tag in tagsRegion" v-for="tag in tagsRegion"
:key="tag.name" :key="tag.name"
...@@ -3570,6 +3573,10 @@ export default { ...@@ -3570,6 +3573,10 @@ export default {
} }
.second-step { .second-step {
margin: 10px 0 0 20px; margin: 10px 0 0 20px;
.area-p {
margin-bottom: 15px;
font-size: 14px;
}
.span_ecology { .span_ecology {
line-height: 45px; line-height: 45px;
margin-left: 8px; margin-left: 8px;
......
因为 它太大了无法显示 源差异 。您可以改为 查看blob
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
<span>{{ [scope.row.projectStatus , idType] | statusProject }}</span> <span>{{ [scope.row.projectStatus , idType] | statusProject }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" min-width="200" align="center"> <el-table-column fixed="right" label="操作" min-width="300" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@click="changeStatus(scope.row,0)" @click="changeStatus(scope.row,0)"
...@@ -155,6 +155,12 @@ ...@@ -155,6 +155,12 @@
type="primary" type="primary"
size="small" size="small"
>删除</el-button> >删除</el-button>
<el-button
@click="toShield(scope.row)"
v-show="scope.row.blackModifiable == true"
type="primary"
size="small"
>屏蔽</el-button>
</template> </template>
</el-table-column> </el-table-column>
<div slot="empty"> <div slot="empty">
...@@ -286,7 +292,10 @@ export default { ...@@ -286,7 +292,10 @@ export default {
}, },
methods: { methods: {
toPage() { toPage() {
this.$router.push("add-manager"); this.$router.push("edit-manager");
},
toShield(row) {
this.$router.push("item-shield?projectId="+row.id);
}, },
searchList() { searchList() {
this.formInline.pageNo = 1; this.formInline.pageNo = 1;
...@@ -344,7 +353,7 @@ export default { ...@@ -344,7 +353,7 @@ export default {
let level = row.level; let level = row.level;
if (type === 0) { if (type === 0) {
//编辑 //编辑
this.$router.push("add-manager?projectId=" + projectId +"&level="+level); this.$router.push("edit-manager?projectId=" + projectId +"&level="+level);
} else if (type === 7) { } else if (type === 7) {
//提醒审核 //提醒审核
let req = { let req = {
......
此差异已折叠。
<template> <template>
<div class="finish-followup" v-if="showThisPage"> <div class="finish-followup" v-if="showThisPage">
<el-dialog <el-dialog
title="选择随访开始时间" title="选择履约开始时间"
:visible.sync="showAddPatientTime" :visible.sync="showAddPatientTime"
v-if="showThisPage" v-if="showThisPage"
:before-close="clickClose" :before-close="clickClose"
...@@ -16,11 +16,11 @@ ...@@ -16,11 +16,11 @@
<el-form-item label="已选居民:"> <el-form-item label="已选居民:">
{{addPatientData.patientNames}} {{addPatientData.patientNames}}
</el-form-item> </el-form-item>
<el-form-item label="随访开始时间:" prop="joinTime"> <el-form-item label="履约开始时间:" prop="joinTime">
<el-date-picker <el-date-picker
v-model="addPatientData.joinTime" v-model="addPatientData.joinTime"
type="date" type="date"
placeholder="请选择随访开始时间" placeholder="请选择履约开始时间"
:editable="false" :editable="false"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="timestamp" value-format="timestamp"
...@@ -34,11 +34,24 @@ ...@@ -34,11 +34,24 @@
<el-button class="button-green" @click="addPatient" size="small" type="primary">确 定</el-button> <el-button class="button-green" @click="addPatient" size="small" type="primary">确 定</el-button>
</span> </span>
</el-dialog> </el-dialog>
<!-- 敏感词及协议校验 -->
<el-dialog class="prot-dialog" title="" :visible.sync="isShowProtocolDialog" width="30%" center :show-close=false>
<p class="prot-dialog-tips-1">您选择的居民中有部分居民尚未同意《云鹊平台隐私协议》,将导致履约量表部分信息无法录入,为了方便您的工作开展,请您发送短信提醒未授权居民完成授权</p>
<p v-show="!isSentedProt" class="prot-dialog-tips-2">若您选择暂不发送,您只能录入量表的非敏感信息</p>
<p v-show="isSentedProt" class="prot-dialog-tips-3">为避免打扰居民,7天内只能发送1次,您已发送过短信,请尽快联系居民同意授权</p>
<span v-show="!isSentedProt" slot="footer" class="dialog-footer">
<el-button size="small" @click="closeProtocolDialog"> 暂不发送 </el-button>
<el-button size="small" type="primary" @click="sendMsg"> 发送短信 </el-button>
</span>
<span v-show="isSentedProt" slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="closeProtocolDialog"> 我知道了 </el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { createFollowPlan } from '../../../../utils/followup/followapis' import { createFollowPlan, uniteValidate, authMessage } from '../../../../utils/followup/followapis'
import { mapState, mapActions} from 'vuex'; import { mapState, mapActions} from 'vuex';
export default { export default {
name: "add-patient-time", name: "add-patient-time",
...@@ -62,13 +75,17 @@ ...@@ -62,13 +75,17 @@
showAddPatientTime: true, showAddPatientTime: true,
rules: { rules: {
joinTime: [ joinTime: [
{ required: true, message: '请选择随访开始时间', trigger: 'change' }, { required: true, message: '请选择履约开始时间', trigger: 'change' },
], ],
} },
isShowProtocolDialog: false,
isSentedProt: false,
patientIds: [],
sendMsgPatientIds: [],
} }
}, },
mounted() { mounted() {
//this.getFollowStartTimeList(this.$route.query.planId);// 获取随访时间列表 //this.getFollowStartTimeList(this.$route.query.planId);// 获取履约时间列表
}, },
computed: { computed: {
...mapState('planManage', { ...mapState('planManage', {
...@@ -82,50 +99,153 @@ ...@@ -82,50 +99,153 @@
this.$emit('closeAddPatientTime',false) this.$emit('closeAddPatientTime',false)
}, },
addPatient() { addPatient() {
// 创建/修改履约计划
// 4、校验居民/医生是否签署协议
this.patientIds = this.addPatientData.patientIdList
this.$refs['addPatientData'].validate(valid => { this.$refs['addPatientData'].validate(valid => {
if (valid) { if (valid) {
if(this.$route.name == 'planModify') { console.log(this.addPatientData)
this.$emit('sendJoinTime',this.addPatientData.joinTime) // 4、校验居民/医生是否签署协议
this.$emit('closeAddPatientTime',false)
} else {
const { id, patientIdList, joinTime } = this.addPatientData;
createFollowPlan({
id,
addPatients: true,
patientIdList,
joinTime
}).then((data) => {
if(data.code == '000000') {
this.$message({
message: '添加成功!',
type: 'success'
});
this.getResidentList({
planId: this.addPatientData.id,
status: this.addPatientData.status
})
this.$emit('closeAddPatientTime',false)
} else {
this.$message({
message: `${data.message}`,
type: 'error'
});
}
}).catch((err) => {
this.$message({
message: `${err.message}`,
type: 'error'
});
});
}
// if(this.$route.name == 'planModify') {
// this.$emit('sendJoinTime',this.addPatientData.joinTime)
// this.$emit('closeAddPatientTime',false)
// } else {
// const { id, patientIdList, joinTime } = this.addPatientData;
// createFollowPlan({
// id,
// addPatients: true,
// patientIdList,
// joinTime
// }).then((data) => {
// if(data.code == '000000') {
// this.$message({
// message: '添加成功!',
// type: 'success'
// });
// this.getResidentList({
// planId: this.addPatientData.id,
// status: this.addPatientData.status
// })
// this.$emit('closeAddPatientTime',false)
// } else {
// this.$message({
// message: `${data.message}`,
// type: 'error'
// });
// }
// }).catch((err) => {
// this.$message({
// message: `${err.message}`,
// type: 'error'
// });
// });
// }
this.uniteValidateAction()
} else { } else {
return false; return false;
} }
}); });
} },
// Add by Anndy Yang
// 统一验证:量表内是否存在敏感字段、居民是否签署隐私协议、7天内是否发送过授权短信
uniteValidateAction() {
if(!this.patientIds.length) {
return;
}
let validParams = {
scaleNo: '',
patientIds: this.patientIds, // pc端只传这个字段
// planPatientsTimesId: planPatientsTimesId, // app端只传这个字段
protocolType: 5,
userType: 1,
validateType: 2
};
uniteValidate(validParams).then(res => {
let result = res;
// 请求成功
if (result.code === '000000') {
let levelType = result.data.levelType;
// 没有敏感字段或者居民已经签订过协议,则直接返回
if (levelType === 1 || levelType === 2) {
this.jumpToAddOrModifyPlan();
} else if (levelType === 3) {
this.isShowProtocolDialog = true;
this.isSentedProt = true;
} else if (levelType === 4) {
this.isShowProtocolDialog = true;
this.isSentedProt = false;
this.sendMsgPatientIds = result.data.ids;
}
}
});
},
// 发送协议授权短信给居民
sendMsgToPatients() {
authMessage({ patientIds: this.sendMsgPatientIds }).then(res => {
if (res.code === '000000') {
this.$message({
message: '已发送,请尽快联系居民同意授权',
type: 'success'
});
}
});
this.isShowProtocolDialog = false;
},
// 统一跳转到量表页面
jumpToAddOrModifyPlan() {
if(this.$route.name == 'planModify') {
this.$emit('sendJoinTime',this.addPatientData.joinTime)
this.$emit('closeAddPatientTime',false)
} else {
const { id, patientIdList, joinTime } = this.addPatientData;
createFollowPlan({
id,
addPatients: true,
patientIdList,
joinTime
}).then((data) => {
if(data.code == '000000') {
this.$message({
message: '添加成功!',
type: 'success'
});
this.getResidentList({
planId: this.addPatientData.id,
status: this.addPatientData.status
})
this.$emit('closeAddPatientTime',false)
} else {
this.$message({
message: `${data.message}`,
type: 'error'
});
}
}).catch((err) => {
this.$message({
message: `${err.message}`,
type: 'error'
});
});
}
},
// 关闭协议确认窗口
closeProtocolDialog() {
this.isShowProtocolDialog = false
this.jumpToAddOrModifyPlan()
},
// 发送短信通知
sendMsg() {
this.sendMsgToPatients();
this.closeProtocolDialog()
},
} }
} }
</script> </script>
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="随访计划:" prop="planId"> <el-form-item label="履约计划:" prop="planId">
<el-select <el-select
v-model="planChangeData.planId" v-model="planChangeData.planId"
@change="selectPlan" @change="selectPlan"
...@@ -35,14 +35,14 @@ ...@@ -35,14 +35,14 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="随访开始时间:" prop="startDate"> <el-form-item label="履约开始时间:" prop="startDate">
<el-date-picker <el-date-picker
v-model="planChangeData.startDate" v-model="planChangeData.startDate"
type="date" type="date"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="timestamp" value-format="timestamp"
:editable="false" :editable="false"
placeholder="选择随访开始时间"> placeholder="选择履约开始时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -91,10 +91,10 @@ ...@@ -91,10 +91,10 @@
selectedGroup: [], selectedGroup: [],
rules: { rules: {
planId: [ planId: [
{ required: true, message: '请选择随访计划', trigger: 'change' }, { required: true, message: '请选择履约计划', trigger: 'change' },
], ],
startDate: [ startDate: [
{ required: true, message: '请选择随访开始时间', trigger: 'change' }, { required: true, message: '请选择履约开始时间', trigger: 'change' },
] ]
}, },
realGroup: [], realGroup: [],
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
}, },
mounted() { mounted() {
this.getPlanOptions(); this.getPlanOptions();
// 获取随访时间列表 // 获取履约时间列表
}, },
computed: { computed: {
...mapState('planManage', { ...mapState('planManage', {
......
<template> <template>
<div class="follow-time"> <div class="follow-time">
<el-dialog <el-dialog
title="随访开始时间" title="履约开始时间"
:visible.sync="showFollowTime" :visible.sync="showFollowTime"
v-if="showThisPage" v-if="showThisPage"
:before-close="clickClose" :before-close="clickClose"
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
style="width: 100%;margin-top: 20px;"> style="width: 100%;margin-top: 20px;">
<el-table-column <el-table-column
prop="timeStr" prop="timeStr"
label="随访计划开始时间" label="履约计划开始时间"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
......
<template> <template>
<div class="finish-followup" v-if="showThisPage"> <div class="finish-followup" v-if="showThisPage">
<el-dialog <el-dialog
title="恢复随访" title="恢复履约"
:visible.sync="showFinishFollowup" :visible.sync="showFinishFollowup"
v-if="showThisPage" v-if="showThisPage"
:before-close="clickClose" :before-close="clickClose"
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
class="form-div" class="form-div"
> >
<el-form :ref="itemTimeForm.formRef" :model="itemTimeForm" :rules="timeFormRules" label-suffix=":" label-width="140px" :inline-message="false" size="small"> <el-form :ref="itemTimeForm.formRef" :model="itemTimeForm" :rules="timeFormRules" label-suffix=":" label-width="140px" :inline-message="false" size="small">
<el-form-item label="本次随访时间" required> <el-form-item label="本次履约时间" required>
<div style="display: flex;"> <div style="display: flex;">
<el-form-item prop="timeNo"> <el-form-item prop="timeNo">
<el-input <el-input
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</el-form-item> </el-form-item>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="随访方式" prop="type"> <el-form-item label="履约方式" prop="type">
<el-radio-group v-model="itemTimeForm.type" size="small"> <el-radio-group v-model="itemTimeForm.type" size="small">
<el-radio v-for="(item,index) in followTypeList" :key="index" :label="item.no" :disabled="itemIsDisabled(itemTimeForm)">{{item.value}}</el-radio> <el-radio v-for="(item,index) in followTypeList" :key="index" :label="item.no" :disabled="itemIsDisabled(itemTimeForm)">{{item.value}}</el-radio>
</el-radio-group> </el-radio-group>
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
<p class="yellow-font">当前计划中共{{totalNumber}}位居民(微信:{{wechatPatientNum}}位,短信:{{messagePatientNum}}位),本次定时推送任务在发送当日预计需要{{messagePatientNum}}条短信额度(微信推送不消耗额度,建议您让居民关注云鹊健康微信公众号),务必提前确保短信额度的充足。</p> <p class="yellow-font">当前计划中共{{totalNumber}}位居民(微信:{{wechatPatientNum}}位,短信:{{messagePatientNum}}位),本次定时推送任务在发送当日预计需要{{messagePatientNum}}条短信额度(微信推送不消耗额度,建议您让居民关注云鹊健康微信公众号),务必提前确保短信额度的充足。</p>
<p>需要更多额度,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约,您也可以联系云鹊医客服购买短信额度,客服电话:400-920-8877</p> <p>需要更多额度,请前往「云鹊医App-个人中心-啾啾币中心」兑换短信额度后再进行预约,您也可以联系云鹊医客服购买短信额度,客服电话:400-920-8877</p>
</div> </div>
<el-form-item label="随访登记表"> <el-form-item label="履约登记表">
<el-select <el-select
v-if="planId || itemTimeForm.followResourceId" v-if="planId || itemTimeForm.followResourceId"
v-model="itemTimeForm.followResourceId" v-model="itemTimeForm.followResourceId"
...@@ -170,9 +170,9 @@ ...@@ -170,9 +170,9 @@
timeUnit: '', timeUnit: '',
timeUnitStr: '', timeUnitStr: '',
timeFormRules: { timeFormRules: {
timeNo: [{ required: true, message: '请添加随访时间', trigger: 'change' },{ validator: checkDay, trigger: 'blur' }], timeNo: [{ required: true, message: '请添加履约时间', trigger: 'change' },{ validator: checkDay, trigger: 'blur' }],
timeUnit: [{ required: true, message: '请添加随访时间', trigger: 'change' }], timeUnit: [{ required: true, message: '请添加履约时间', trigger: 'change' }],
type: [{ required: true, message: '请选择随访方式', trigger: 'change' }], type: [{ required: true, message: '请选择履约方式', trigger: 'change' }],
}, },
isSelectCartoon: false, isSelectCartoon: false,
activeTab: '0', activeTab: '0',
...@@ -261,7 +261,7 @@ ...@@ -261,7 +261,7 @@
header_name: pushData.sendContent header_name: pushData.sendContent
} }
} }
if(item.followupList && item.followupList.length > 0){ //followResourceId 随访量表 if(item.followupList && item.followupList.length > 0){ //followResourceId 履约量表
item.followResourceId = [] item.followResourceId = []
item.followupList.forEach((kkk)=>{ item.followupList.forEach((kkk)=>{
if(this.isStandedTemplate){ if(this.isStandedTemplate){
...@@ -328,12 +328,12 @@ ...@@ -328,12 +328,12 @@
initNewForm(){ initNewForm(){
this.setTimeNodeList.push({ this.setTimeNodeList.push({
formRef: 'form' + this.setTimeNodeList.length, formRef: 'form' + this.setTimeNodeList.length,
type: '',//随访方式 type: '',//履约方式
timeNo: '',//随访时间 timeNo: '',//履约时间
timeUnit: '',//随访时间单位 timeUnit: '',//履约时间单位
remindList: [],//提醒医生预约提前天数 remindList: [],//提醒医生预约提前天数
pushContentList: [],//推送患教提前天数 漫画id pushContentList: [],//推送患教提前天数 漫画id
followupList: [],//随访量表id followupList: [],//履约量表id
hasSelected: false, hasSelected: false,
isDisabled: false, isDisabled: false,
remindDay: [], remindDay: [],
...@@ -348,11 +348,11 @@ ...@@ -348,11 +348,11 @@
}, },
// 一次性获取常量接口数据 // 一次性获取常量接口数据
getConstData(){ getConstData(){
// 随访时间节点单位 // 履约时间节点单位
getBasicData({numList: 'P017'}).then(res=>{ getBasicData({numList: 'P017'}).then(res=>{
this.markOptions = res.data.P017 this.markOptions = res.data.P017
}) })
// 随访方式 // 履约方式
getBasicData({numList: 'P212'}).then(res=>{ getBasicData({numList: 'P212'}).then(res=>{
this.followTypeList = res.data.P212 this.followTypeList = res.data.P212
}) })
...@@ -561,7 +561,7 @@ ...@@ -561,7 +561,7 @@
const lastIndex = this.activeTab; const lastIndex = this.activeTab;
const timeNo = this.setTimeNodeList[this.activeTab].timeNo; const timeNo = this.setTimeNodeList[this.activeTab].timeNo;
setTimeout(()=>{ setTimeout(()=>{
// 这里设置定时器是因为,如果填完时间,直接点击随访方式radio,会立即出发排序和重复事件 // 这里设置定时器是因为,如果填完时间,直接点击履约方式radio,会立即出发排序和重复事件
this.checkIsRepeat(timeNo,lastIndex); this.checkIsRepeat(timeNo,lastIndex);
// // 新增成功之后 // // 新增成功之后
// this.setTimeNodeList = this.sortKey(this.setTimeNodeList,'timeNo'); // this.setTimeNodeList = this.sortKey(this.setTimeNodeList,'timeNo');
...@@ -706,7 +706,7 @@ ...@@ -706,7 +706,7 @@
this.setTimeNodeList[this.activeTab].pushContentList[0] = obj this.setTimeNodeList[this.activeTab].pushContentList[0] = obj
this.$forceUpdate(); this.$forceUpdate();
}, },
// 选择随访量表 // 选择履约量表
changeFollowId(val){ changeFollowId(val){
this.setTimeNodeList[this.activeTab].followupList = [] this.setTimeNodeList[this.activeTab].followupList = []
val.forEach((item)=>{ val.forEach((item)=>{
......
此差异已折叠。
...@@ -16,25 +16,25 @@ ...@@ -16,25 +16,25 @@
<div class="base-info" > <div class="base-info" >
<div class="resident-info base-content"> <div class="resident-info base-content">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访计划名称:</div> <div class="c-title">履约计划名称:</div>
<div class="c-content">{{planDetail.name}}</div> <div class="c-content">{{planDetail.name}}</div>
</div> </div>
</div> </div>
<div class="group-info base-content"> <div class="group-info base-content">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访居民:</div> <div class="c-title">履约居民:</div>
<div class="c-content has-operation">{{planDetail.num}}<el-button type="text" @click="goToResidentList">查看居民></el-button></div> <div class="c-content has-operation">{{planDetail.num}}<el-button type="text" @click="goToResidentList">查看居民></el-button></div>
</div> </div>
</div> </div>
<div class="followup-info base-content"> <div class="followup-info base-content">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访模板:</div> <div class="c-title">履约模板:</div>
<div class="c-content">{{planDetail.resourceName}}</div> <div class="c-content">{{planDetail.resourceName}}</div>
</div> </div>
</div> </div>
<div class="followup-info base-content"> <div class="followup-info base-content">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访开始时间:</div> <div class="c-title">履约开始时间:</div>
<div class="c-content has-operation">{{planDetail.timeStr}} <el-button class="btn-text" type="text" @click="goToFollowTime">查看全部></el-button></div> <div class="c-content has-operation">{{planDetail.timeStr}} <el-button class="btn-text" type="text" @click="goToFollowTime">查看全部></el-button></div>
</div> </div>
</div> </div>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</div> </div>
</div> </div>
<div class="time-nodes" > <div class="time-nodes" >
<p class="title">随访时间节点</p> <p class="title">履约时间节点</p>
<div class="node-div"> <div class="node-div">
<el-radio-group v-model="timeNodes" size="small"> <el-radio-group v-model="timeNodes" size="small">
<el-radio-button :key="item.id" v-for="item in planDetail.fPlanTimeReqList" :label="item.id">{{item.timeStr}}</el-radio-button> <el-radio-button :key="item.id" v-for="item in planDetail.fPlanTimeReqList" :label="item.id">{{item.timeStr}}</el-radio-button>
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
</div> </div>
<div class="followup-contents" v-if="nodeContent.length"> <div class="followup-contents" v-if="nodeContent.length">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访方式:</div> <div class="c-title">履约方式:</div>
<div class="c-content">{{nodeContent[0].typeStr}}</div> <div class="c-content">{{nodeContent[0].typeStr}}</div>
</div> </div>
<div class="content-div"> <div class="content-div">
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
</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" v-for="item in nodeContent[0].followupList" @click="goToScale(item)">{{item.sendContent}}</p> <p class="click-text" v-for="item in nodeContent[0].followupList" @click="goToScale(item)">{{item.sendContent}}</p>
</div> </div>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
data() { data() {
return { return {
/*面包屑配置*/ /*面包屑配置*/
curmbFirst: '随访管理', curmbFirst: '履约管理',
curmbSecond: '计划管理', curmbSecond: '计划管理',
curmbThird: '计划详情', curmbThird: '计划详情',
jumPathThird: '/followUp/plan-manage', jumPathThird: '/followUp/plan-manage',
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
}, },
mounted() { mounted() {
this.getPlanDetail(this.$route.query.planId); //获取计划详情 this.getPlanDetail(this.$route.query.planId); //获取计划详情
this.getNodeTimeList(this.$route.query.planId); // 获取随访时间列表 this.getNodeTimeList(this.$route.query.planId); // 获取履约时间列表
}, },
computed: { computed: {
...mapState('planManage', { ...mapState('planManage', {
...@@ -137,7 +137,7 @@ ...@@ -137,7 +137,7 @@
goToResidentList() { goToResidentList() {
let residentCrumb = [ let residentCrumb = [
{ {
name: '随访管理', name: '履约管理',
href: null href: null
}, },
{ {
...@@ -159,7 +159,7 @@ ...@@ -159,7 +159,7 @@
changePlan() { changePlan() {
let planModifyCrumb = [ let planModifyCrumb = [
{ {
name: '随访管理', name: '履约管理',
href: null href: null
}, },
{ {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<div class="search-div"> <div class="search-div">
<div class="search-input"> <div class="search-input">
<el-form ref="serchForm" :model="searchData" :inline="true" label-suffix=":" label-width="125px" size="small"> <el-form ref="serchForm" :model="searchData" :inline="true" label-suffix=":" label-width="125px" size="small">
<el-form-item label="随访计划名称"> <el-form-item label="履约计划名称">
<el-input v-model="searchData.name" placeholder="请输入关键词" maxlength="20" style="width: 250px" clearable></el-input> <el-input v-model="searchData.name" placeholder="请输入关键词" maxlength="20" style="width: 250px" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="开始年份"> <el-form-item label="开始年份">
...@@ -28,12 +28,12 @@ ...@@ -28,12 +28,12 @@
</div> </div>
</div> </div>
<div class="table-content"> <div class="table-content">
<div class="content-group-btn"><el-button type="primary" size="small" @click="addNewPlan">新建随访计划</el-button></div> <div class="content-group-btn"><el-button type="primary" size="small" @click="addNewPlan">新建履约计划</el-button></div>
<div> <div>
<el-table :data="planList.fPlanDtoList" style="width: 100%;margin-top: 20px;"> <el-table :data="planList.fPlanDtoList" style="width: 100%;margin-top: 20px;">
<el-table-column <el-table-column
prop="name" prop="name"
label="随访计划名称" label="履约计划名称"
min-width="180" min-width="180"
align="left" align="left"
:show-overflow-tooltip="true"> :show-overflow-tooltip="true">
...@@ -81,21 +81,31 @@ ...@@ -81,21 +81,31 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 协议提醒 -->
<el-dialog class="prot-dialog" title="" :visible.sync="isShowProtocolDialog" width="30%" center :show-close=false>
<p class="prot-dialog-tips-1">根据相关规定,在您开展履约之前,需要居民授权同意《云鹊平台隐私协议》,否则将导致履约量表部分信息无法录入</p>
<span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="isShowProtocolDialog = false"> 我知道了 </el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import BreadCrumb from "@/components/breadcrumb"; import BreadCrumb from "@/components/breadcrumb";
import { mapState, mapActions} from 'vuex' import { mapState, mapActions } from 'vuex'
import {deletePlan, getVerifyStatus} from '@/utils/followup/followapis' import { deletePlan, getVerifyStatus } from '@/utils/followup/followapis'
import { getSaasDomain } from '@/utils/index' import { getSaasDomain } from '@/utils/index'
import { getFirstAccess } from '@/utils/followup/followapis'
// import { messageBox } from '@/utils/utils'
export default { export default {
components:{ components:{
BreadCrumb, BreadCrumb,
}, },
data(){ data(){
return{ return{
curmbFirst: '随访管理', curmbFirst: '履约管理',
curmbSecond: '计划管理', curmbSecond: '计划管理',
searchData: { searchData: {
name: '', name: '',
...@@ -149,6 +159,7 @@ ...@@ -149,6 +159,7 @@
total: 0, total: 0,
pageSizes: [10,20,50,100] pageSizes: [10,20,50,100]
}, },
isShowProtocolDialog: false,
} }
}, },
computed: { computed: {
...@@ -157,14 +168,26 @@ ...@@ -157,14 +168,26 @@
}) })
}, },
created() { created() {
},
mounted() {
this.init(); this.init();
}, },
watch: {}, watch: {},
methods: { methods: {
...mapActions('planManage', ['getPlanList', 'setResidentCrumb', 'setPlanModifyCrumb']), ...mapActions('planManage', ['getPlanList', 'setResidentCrumb', 'setPlanModifyCrumb']),
// 验证是否首次进入 ################
isFirstEnter() {
getFirstAccess().then((res) => {
if(res.code == '000000') {
this.isShowProtocolDialog = res.data
}
});
},
init() { init() {
getVerifyStatus().then((res) => { getVerifyStatus().then((res) => {
if(res.code === '000000') { if(res.code === '000000') {
//认证通过,判断是否首次进入
this.isFirstEnter();
this.search(1); this.search(1);
}else if(res.code === '200008'){ }else if(res.code === '200008'){
this.$confirm(`${res.message}`, '提示', { this.$confirm(`${res.message}`, '提示', {
...@@ -212,7 +235,7 @@ ...@@ -212,7 +235,7 @@
visitRow(row){ visitRow(row){
let residentCrumb = [ let residentCrumb = [
{ {
name: '随访管理', name: '履约管理',
href: null href: null
}, },
{ {
...@@ -230,7 +253,7 @@ ...@@ -230,7 +253,7 @@
changeRow(row){ changeRow(row){
let planModifyCrumb = [ let planModifyCrumb = [
{ {
name: '随访管理', name: '履约管理',
href: null href: null
}, },
{ {
...@@ -278,11 +301,30 @@ ...@@ -278,11 +301,30 @@
filters: {}, filters: {},
} }
</script> </script>
<style lang="scss">
.plan-list-alert {
height: 200px !important;
.el-message-box__content {
padding: 0 35px 20px;
}
.el-message-box__message {
text-align: left;
}
.el-message-box__btns {
.el-button {
width: 200px;
span {
padding: 10px 50px;
}
}
}
}
</style>
<style scoped lang="scss"> <style scoped lang="scss">
@import '../../../style/followup/followup-common'; @import '../../../style/followup/followup-common';
@import '../../../style/followup/element-reset.css'; @import '../../../style/followup/element-reset.css';
.plan-list-wrapper{ .plan-list-wrapper{
.plan-list-content{ .plan-list-content{
.search-input{ .search-input{
......
...@@ -19,25 +19,25 @@ ...@@ -19,25 +19,25 @@
</div> </div>
</div> </div>
<el-form ref="baseInfo" :model="planDetailData" :rules="rules" label-suffix=":" label-width="140px"> <el-form ref="baseInfo" :model="planDetailData" :rules="rules" label-suffix=":" label-width="140px">
<el-form-item label="随访计划名称" prop="name"> <el-form-item label="履约计划名称" prop="name">
<el-input v-model="planDetailData.name" maxlength="20" style="width: 30%" size="small" clearable></el-input> <el-input v-model="planDetailData.name" maxlength="20" style="width: 30%" size="small" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="随访居民" required> <el-form-item label="履约居民" required>
<div class="select-patients"> <div class="select-patients">
<el-button plain icon="el-icon-plus" size="small" @click="selectPatientHandler">{{planDetailData.patientIdList ? '继续添加' : '选择居民'}}</el-button><br> <el-button plain icon="el-icon-plus" size="small" @click="selectPatientHandler">{{planDetailData.patientIdList ? '继续添加' : '选择居民'}}</el-button><br>
<el-button type="text" class="mt10" size="small" @click="seeSelectedHandler" v-if="planDetailData.patientIdList">已选{{hasSelectedList.length}}<i class="el-icon-arrow-right"></i></el-button> <el-button type="text" class="mt10" size="small" @click="seeSelectedHandler" v-if="planDetailData.patientIdList">已选{{hasSelectedList.length}}<i class="el-icon-arrow-right"></i></el-button>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="随访模板" prop="resourceName"> <el-form-item label="履约模板" prop="resourceName">
{{planDetailData.resourceName}} {{planDetailData.resourceName}}
</el-form-item> </el-form-item>
<el-form-item label="随访开始时间" prop="timeStr"> <el-form-item label="履约开始时间" prop="timeStr">
{{planDetailData.timeStr}} <el-button class="btn-text" type="text" @click="goToFollowTime" size="small">查看全部></el-button> {{planDetailData.timeStr}} <el-button class="btn-text" type="text" @click="goToFollowTime" size="small">查看全部></el-button>
</el-form-item> </el-form-item>
<el-form-item label="备注"> <el-form-item label="备注">
<el-select <el-select
v-model="planDetailData.remarksStatus" v-model="planDetailData.remarksStatus"
placeholder="请选择随访种类" placeholder="请选择履约种类"
size="small" size="small"
:popper-append-to-body="false" :popper-append-to-body="false"
clearable> clearable>
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
import FollowTime from '@/views/followup/plan-manage/dialog/follow-time'; import FollowTime from '@/views/followup/plan-manage/dialog/follow-time';
import {createFollowPlan} from '@/utils/followup/followapis' import {createFollowPlan} from '@/utils/followup/followapis'
//添加居民选择随访时间 //添加居民选择履约时间
import addPatientTime from '@/views/followup/plan-manage/dialog/add-patient-time'; import addPatientTime from '@/views/followup/plan-manage/dialog/add-patient-time';
import { mapState, mapActions } from 'vuex' import { mapState, mapActions } from 'vuex'
...@@ -111,27 +111,27 @@ ...@@ -111,27 +111,27 @@
setTimeNodeList: [], setTimeNodeList: [],
planDetailData: {}, planDetailData: {},
planId: '', planId: '',
isStandedTemplate: false, // 是否是固定的随访模板 isStandedTemplate: false, // 是否是固定的履约模板
standedTimeNodeList: [], // 如果是国定随访模板,获取固定数据后不可更改,只读 standedTimeNodeList: [], // 如果是国定履约模板,获取固定数据后不可更改,只读
checkForm: false, checkForm: false,
patientIdList: [], //获取的病人列表 patientIdList: [], //获取的病人列表
hasSelectedList: [], //已选居民 hasSelectedList: [], //已选居民
planModifyCrumb: [], //面包屑 planModifyCrumb: [], //面包屑
rules: { rules: {
name: [{ required: true, message: '请输入随访计划名称', trigger: 'blur' }], name: [{ required: true, message: '请输入履约计划名称', trigger: 'blur' }],
followupTemplate: [{ required: true, message: '请选择随访模板', trigger: 'change' }], followupTemplate: [{ required: true, message: '请选择履约模板', trigger: 'change' }],
startTime: [{ required: true, message: '请选择随访开始时间', trigger: 'change' }], startTime: [{ required: true, message: '请选择履约开始时间', trigger: 'change' }],
}, },
templateOptions: [ templateOptions: [
{ {
value: '0', value: '0',
label: '随访模板一' label: '履约模板一'
}, { }, {
value: '1', value: '1',
label: '随访模板二' label: '履约模板二'
}, { }, {
value: '2', value: '2',
label: '随访模板三' label: '履约模板三'
} }
], ],
isShowSelectPatient: false, //显示居民选择框 isShowSelectPatient: false, //显示居民选择框
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
this.planId = String(this.$route.query.planId) this.planId = String(this.$route.query.planId)
this.getPlanDetail(this.$route.query.planId); //获取计划详情 this.getPlanDetail(this.$route.query.planId); //获取计划详情
this.getRemarkOption() this.getRemarkOption()
this.getNodeTimeList(this.$route.query.planId); // 获取随访时间列表 this.getNodeTimeList(this.$route.query.planId); // 获取履约时间列表
let planModifyCrumbList = sessionStorage.getItem('planModifyCrumb'); let planModifyCrumbList = sessionStorage.getItem('planModifyCrumb');
this.planModifyCrumb = JSON.parse(planModifyCrumbList); this.planModifyCrumb = JSON.parse(planModifyCrumbList);
...@@ -218,6 +218,7 @@ ...@@ -218,6 +218,7 @@
id: this.$route.query.planId, id: this.$route.query.planId,
addPatients: true, addPatients: true,
patientNames: showNames, patientNames: showNames,
patientIdList: newIds,
} }
} else { } else {
this.hasSelectedList = JSON.parse(JSON.stringify(this.newHasSelectedList)); this.hasSelectedList = JSON.parse(JSON.stringify(this.newHasSelectedList));
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
<div class="title"><p>基本信息</p></div> <div class="title"><p>基本信息</p></div>
<div class="h-btn"> <div class="h-btn">
<el-button class="button-white" plain size="small" @click="changePlan">计划变更</el-button> <el-button class="button-white" plain size="small" @click="changePlan">计划变更</el-button>
<el-button v-if="status==3" class="button-white" plain size="small" @click="finishFollowup">恢复随访</el-button> <el-button v-if="status==3" class="button-white" plain size="small" @click="finishFollowup">恢复履约</el-button>
<el-button v-else class="button-white" plain size="small" @click="finishFollowup">结束随访</el-button> <el-button v-else class="button-white" plain size="small" @click="finishFollowup">结束履约</el-button>
</div> </div>
</div> </div>
<div class="base-info"> <div class="base-info">
...@@ -48,11 +48,11 @@ ...@@ -48,11 +48,11 @@
</div> </div>
<div class="followup-info base-content"> <div class="followup-info base-content">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访模板:</div> <div class="c-title">履约模板:</div>
<div class="c-content">{{planDetails.resourceName}}</div> <div class="c-content">{{planDetails.resourceName}}</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">{{planDetails.timeStr}}</div> <div class="c-content">{{planDetails.timeStr}}</div>
</div> </div>
<div class="content-div"> <div class="content-div">
...@@ -60,13 +60,13 @@ ...@@ -60,13 +60,13 @@
<div class="c-content">{{planDetails.remarksStatusStr}}</div> <div class="c-content">{{planDetails.remarksStatusStr}}</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">{{planDetails.statusStr}}</div> <div class="c-content">{{planDetails.statusStr}}</div>
</div> </div>
</div> </div>
</div> </div>
<div class="time-nodes"> <div class="time-nodes">
<p class="title">随访时间节点</p> <p class="title">履约时间节点</p>
<div class="node-div"> <div class="node-div">
<el-radio-group v-model="timeNodes" size="small"> <el-radio-group v-model="timeNodes" size="small">
<el-radio-button :key="item.id" v-for="item in timeNodeList" :label="item.id">{{item.timeStr}}</el-radio-button> <el-radio-button :key="item.id" v-for="item in timeNodeList" :label="item.id">{{item.timeStr}}</el-radio-button>
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
</div> </div>
<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">{{nodeContent.typeStr}}</div> <div class="c-content">{{nodeContent.typeStr}}</div>
</div> </div>
<div class="content-div"> <div class="content-div">
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
</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" v-for="item in nodeContent.followupList" @click="goToScale(item)" >{{item.sendContent}}</p> <p class="click-text" v-for="item in nodeContent.followupList" @click="goToScale(item)" >{{item.sendContent}}</p>
</div> </div>
...@@ -107,7 +107,7 @@ ...@@ -107,7 +107,7 @@
<script> <script>
//变更计划dialog //变更计划dialog
import ChangePlan from '@/views/followup/plan-manage/dialog/change-plan'; import ChangePlan from '@/views/followup/plan-manage/dialog/change-plan';
//结束随访dialog //结束履约dialog
import FinishFollowup from '@/views/followup/plan-manage/dialog/finish-followup'; import FinishFollowup from '@/views/followup/plan-manage/dialog/finish-followup';
import { mapState, mapActions } from 'vuex' import { mapState, mapActions } from 'vuex'
...@@ -120,14 +120,14 @@ ...@@ -120,14 +120,14 @@
data() { data() {
return { return {
/*面包屑配置*/ /*面包屑配置*/
curmbFirst: '随访管理', curmbFirst: '履约管理',
curmbSecond: '计划管理', curmbSecond: '计划管理',
curmbThird: '查看居民', curmbThird: '查看居民',
jumPathThird: '/followUp/plan-manage', jumPathThird: '/followUp/plan-manage',
/*面包屑配置*/ /*面包屑配置*/
timeNodes: 0,//时间节点 timeNodes: 0,//时间节点
showChangePlan: false,//是否展示变更计划 showChangePlan: false,//是否展示变更计划
showFinishFollowup: false, //是否展示结束随访, showFinishFollowup: false, //是否展示结束履约,
planChangeData: {}, //变更信息 planChangeData: {}, //变更信息
finishData: {}, //结束信息 finishData: {}, //结束信息
planDetails: {}, //计划详情 planDetails: {}, //计划详情
...@@ -185,7 +185,7 @@ ...@@ -185,7 +185,7 @@
planId: this.residentDetail.fPlanDto.id, planId: this.residentDetail.fPlanDto.id,
patientName: this.residentDetail.patientName, patientName: this.residentDetail.patientName,
patientIdList: patientIdList, patientIdList: patientIdList,
title: this.status==3?'恢复随访':'结束随访', title: this.status==3?'恢复履约':'结束履约',
reasonName: this.status==3?'恢复原因:':'结束原因:', reasonName: this.status==3?'恢复原因:':'结束原因:',
planPatientsIdList: planPatientsIdList planPatientsIdList: planPatientsIdList
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="resident-list"> <div class="resident-list">
<div class="bread-crumb"> <div class="bread-crumb">
<el-breadcrumb separator="/" > <el-breadcrumb separator="/" >
<el-breadcrumb-item v-for="item in residentCrumb"> <el-breadcrumb-item v-for="(item, index) in residentCrumb" :key="index">
<a v-if="item.href" :href="item.href">{{item.name}}</a> <a v-if="item.href" :href="item.href">{{item.name}}</a>
<span v-else >{{item.name}}</span> <span v-else >{{item.name}}</span>
</el-breadcrumb-item> </el-breadcrumb-item>
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="随访开始时间:" prop="startDate" size="small"> <el-form-item label="履约开始时间:" prop="startDate" size="small">
<el-select v-model="searchData.startDate" size="small" clearable :popper-append-to-body="false"> <el-select v-model="searchData.startDate" size="small" clearable :popper-append-to-body="false">
<el-option label="全部" value=""></el-option> <el-option label="全部" value=""></el-option>
<el-option <el-option
...@@ -56,8 +56,8 @@ ...@@ -56,8 +56,8 @@
<el-radio-button label="3">已结束({{residentList.yesCount}})</el-radio-button> <el-radio-button label="3">已结束({{residentList.yesCount}})</el-radio-button>
</el-radio-group> </el-radio-group>
<div class="btn-left"> <div class="btn-left">
<el-button class="button-white" plain size="small" v-if="status==3" @click="finishFollowup('all')">恢复随访</el-button> <el-button class="button-white" plain size="small" v-if="status==3" @click="finishFollowup('all')">恢复履约</el-button>
<el-button class="button-white" plain size="small" v-else @click="finishFollowup('all')">结束随访</el-button> <el-button class="button-white" plain size="small" v-else @click="finishFollowup('all')">结束履约</el-button>
<el-button class="button-green" type="primary" size="small" @click="selectPatientHandler">添加居民</el-button> <el-button class="button-green" type="primary" size="small" @click="selectPatientHandler">添加居民</el-button>
</div> </div>
</div> </div>
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
<el-table-column <el-table-column
width="160" width="160"
prop="time" prop="time"
label="随访开始时间" label="履约开始时间"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -109,8 +109,8 @@ ...@@ -109,8 +109,8 @@
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button class="btn-right-class" type="text" @click="changePlan(scope.row)" >变更计划</el-button>| <el-button class="btn-right-class" type="text" @click="changePlan(scope.row)" >变更计划</el-button>|
<el-button class="btn-right-class" type="text" v-if="status==3" @click="finishFollowup(scope.row)" >恢复随访</el-button> <el-button class="btn-right-class" type="text" v-if="status==3" @click="finishFollowup(scope.row)" >恢复履约</el-button>
<el-button class="btn-right-class" type="text" v-else @click="finishFollowup(scope.row)" >结束随访</el-button> <el-button class="btn-right-class" type="text" v-else @click="finishFollowup(scope.row)" >结束履约</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -142,19 +142,20 @@ ...@@ -142,19 +142,20 @@
<add-patient-time <add-patient-time
:showThisPage="showAddPatientTime" :showThisPage="showAddPatientTime"
:addPatientData="addPatientData" :addPatientData="addPatientData"
@closeAddPatientTime="closeAddPatientTime"></add-patient-time> @closeAddPatientTime="closeAddPatientTime">
</add-patient-time>
</div> </div>
</template> </template>
<script> <script>
//变更计划dialog //变更计划dialog
import ChangePlan from '@/views/followup/plan-manage/dialog/change-plan'; import ChangePlan from '@/views/followup/plan-manage/dialog/change-plan';
//结束随访dialog //结束履约dialog
import FinishFollowup from '@/views/followup/plan-manage/dialog/finish-followup'; import FinishFollowup from '@/views/followup/plan-manage/dialog/finish-followup';
//添加居民 //添加居民
// import SelectPatient from '@/views/followup/plan-manage/dialog/select-patient'; // import SelectPatient from '@/views/followup/plan-manage/dialog/select-patient';
import SelectPatient from '@/views/patients/labels-manage/dialog/select-patitents'; import SelectPatient from '@/views/patients/labels-manage/dialog/select-patitents';
//添加居民选择随访时间 //添加居民选择履约时间
import addPatientTime from '@/views/followup/plan-manage/dialog/add-patient-time'; import addPatientTime from '@/views/followup/plan-manage/dialog/add-patient-time';
import { mapState, mapActions } from 'vuex' import { mapState, mapActions } from 'vuex'
...@@ -180,16 +181,16 @@ ...@@ -180,16 +181,16 @@
status: 1, //列表筛选条件 status: 1, //列表筛选条件
showChangePlan: false,//是否展示变更计划 showChangePlan: false,//是否展示变更计划
planChangeData: {}, //变更计划数据 planChangeData: {}, //变更计划数据
showFinishFollowup: false, //是否展示结束随访 showFinishFollowup: false, //是否展示结束履约
finishData: {}, //结束数据 finishData: {}, //结束数据
isShowSelectPatient: false, //显示居民选择框 isShowSelectPatient: false, //显示居民选择框
hasSelectedList: [], //已选居民 hasSelectedList: [], //已选居民
finishPatientList: [], //结束随访居民(多选) finishPatientList: [], //结束履约居民(多选)
initialPatientIdList: [], //初始居民 initialPatientIdList: [], //初始居民
showAddPatientTime: false,//是否展示添加居民选择时间 showAddPatientTime: false,//是否展示添加居民选择时间
addPatientData: {}, //选择时间数据 addPatientData: {}, //选择时间数据
statusTotal: null, //每种状态的总数 statusTotal: null, //每种状态的总数
planTitle: '', //随访计划名称 planTitle: '', //履约计划名称
residentCrumb: [], //面包屑 residentCrumb: [], //面包屑
selectPatientType: 1, selectPatientType: 1,
getRowKeys(row) { getRowKeys(row) {
...@@ -207,7 +208,7 @@ ...@@ -207,7 +208,7 @@
}); });
this.getPlanStatusOption() this.getPlanStatusOption()
this.getGroupList(); //获取分组列表 this.getGroupList(); //获取分组列表
this.getFollowStartTimeList(this.$route.query.planId);// 获取随访时间列表 this.getFollowStartTimeList(this.$route.query.planId);// 获取履约时间列表
let residentCrumbList = sessionStorage.getItem('residentCrumb'); let residentCrumbList = sessionStorage.getItem('residentCrumb');
residentCrumbList = JSON.parse(residentCrumbList); residentCrumbList = JSON.parse(residentCrumbList);
if(residentCrumbList.length==4&&residentCrumbList[residentCrumbList.length-1].name!='查看居民') { if(residentCrumbList.length==4&&residentCrumbList[residentCrumbList.length-1].name!='查看居民') {
...@@ -264,7 +265,7 @@ ...@@ -264,7 +265,7 @@
if(this.residentCrumb.length === 3) { if(this.residentCrumb.length === 3) {
residentCrumbs = [ residentCrumbs = [
{ {
name: '随访管理', name: '履约管理',
href: null href: null
}, },
{ {
...@@ -283,7 +284,7 @@ ...@@ -283,7 +284,7 @@
} else if(this.residentCrumb.length === 4) { } else if(this.residentCrumb.length === 4) {
residentCrumbs = [ residentCrumbs = [
{ {
name: '随访管理', name: '履约管理',
href: null href: null
}, },
{ {
...@@ -372,7 +373,7 @@ ...@@ -372,7 +373,7 @@
planId: this.$route.query.planId, planId: this.$route.query.planId,
patientName: patientNames, patientName: patientNames,
patientIdList: patientIds, patientIdList: patientIds,
title: this.status==3?'恢复随访':'结束随访', title: this.status==3?'恢复履约':'结束履约',
reasonName: this.status==3?'恢复原因:':'结束原因:', reasonName: this.status==3?'恢复原因:':'结束原因:',
planPatientsIdList:planPatientsIdList planPatientsIdList:planPatientsIdList
}; };
...@@ -386,7 +387,7 @@ ...@@ -386,7 +387,7 @@
planId: this.$route.query.planId, planId: this.$route.query.planId,
patientName: row.patientName, patientName: row.patientName,
patientIdList: patientIds, patientIdList: patientIds,
title: this.status==3?'恢复随访':'结束随访', title: this.status==3?'恢复履约':'结束履约',
reasonName: this.status==3?'恢复原因:':'结束原因:', reasonName: this.status==3?'恢复原因:':'结束原因:',
planPatientsIdList: planPatientsIdList planPatientsIdList: planPatientsIdList
}; };
...@@ -417,6 +418,8 @@ ...@@ -417,6 +418,8 @@
patientIds.push(item.patientId) patientIds.push(item.patientId)
patientNames.push(item.nickname) patientNames.push(item.nickname)
}) })
// 将选择的patientIds存入Store中
if(patientNames.length>5) { if(patientNames.length>5) {
const le = patientNames.length const le = patientNames.length
patientNames = patientNames.slice(0,5) patientNames = patientNames.slice(0,5)
......
<template> <template>
<div class="dialog-wrap"> <div class="dialog-wrap">
<el-dialog <el-dialog
title="变更随访状态" title="变更履约状态"
:visible.sync="dialogFormVisible" :visible.sync="dialogFormVisible"
v-if="isShowChangeDialog" v-if="isShowChangeDialog"
center center
...@@ -73,9 +73,9 @@ ...@@ -73,9 +73,9 @@
reason: this.statusForm.reason, reason: this.statusForm.reason,
}).then(({data}) => { }).then(({data}) => {
if(data == 2) { if(data == 2) {
this.$message.success('随访状态变更成功!'); this.$message.success('履约状态变更成功!');
}else { }else {
this.$message.error('随访状态变更失败!'); this.$message.error('履约状态变更失败!');
} }
this.$emit('closeChangeStatus',false); this.$emit('closeChangeStatus',false);
this.$refs['statusForm'].resetFields(); this.$refs['statusForm'].resetFields();
......
<template> <template>
<el-dialog title="本次随访详情" <el-dialog title="本次履约详情"
:visible.sync="dialogDetail" :visible.sync="dialogDetail"
v-if="dialogFormVisible" v-if="dialogFormVisible"
center center
...@@ -36,36 +36,36 @@ ...@@ -36,36 +36,36 @@
<div class="base-info pt10"> <div class="base-info pt10">
<div class="base-content"> <div class="base-content">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访计划名称:</div> <div class="c-title">履约计划名称:</div>
<div class="c-content">{{enteringInfo.name | emptyFileter}}</div> <div class="c-content">{{enteringInfo.name | emptyFileter}}</div>
</div> </div>
</div> </div>
<div class="group-info base-content"> <div class="group-info base-content">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访时间点:</div> <div class="c-title">履约时间点:</div>
<div class="c-content" v-if="enteringInfo.timeNo">{{enteringInfo.timeNo}}随访</div> <div class="c-content" v-if="enteringInfo.timeNo">{{enteringInfo.timeNo}}履约</div>
<div class="c-content" v-else>{{enteringInfo.timeNo | emptyFileter}}</div> <div class="c-content" v-else>{{enteringInfo.timeNo | emptyFileter}}</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">{{enteringInfo.fuPlanType | emptyFileter}}</div> <div class="c-content">{{enteringInfo.fuPlanType | emptyFileter}}</div>
</div> </div>
<div class="content-div" v-if="enteringInfo.executePlanTime"> <div class="content-div" v-if="enteringInfo.executePlanTime">
<div class="c-title">实际随访时间:</div> <div class="c-title">实际履约时间:</div>
<div class="c-content">{{enteringInfo.executePlanTime}}</div> <div class="c-content">{{enteringInfo.executePlanTime}}</div>
</div> </div>
<div class="content-div" v-else> <div class="content-div" v-else>
<div class="c-title">计划随访时间:</div> <div class="c-title">计划履约时间:</div>
<div class="c-content">{{enteringInfo.fuPlanTime}}</div> <div class="c-content">{{enteringInfo.fuPlanTime}}</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">{{enteringInfo.appointmentTime | emptyFileter}}</div> <div class="c-content">{{enteringInfo.appointmentTime | emptyFileter}}</div>
</div> </div>
</div> </div>
<div class="group-info base-content flex-start"> <div class="group-info base-content flex-start">
<div class="content-div"> <div class="content-div">
<div class="c-title">随访状态:</div> <div class="c-title">履约状态:</div>
<div class="c-content">{{enteringInfo.status | emptyFileter}}</div> <div class="c-content">{{enteringInfo.status | emptyFileter}}</div>
</div> </div>
<div class="content-div"> <div class="content-div">
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
</div> </div>
<div class="base-info console-list"> <div class="base-info console-list">
<div class="list-item"> <div class="list-item">
<p class="title">随访登记表</p> <p class="title">履约登记表</p>
</div> </div>
<div class="list-item" v-for="(item, index) in enteringInfo.fuTable" :key="index" v-if="enteringInfo.fuTable.length>0"> <div class="list-item" v-for="(item, index) in enteringInfo.fuTable" :key="index" v-if="enteringInfo.fuTable.length>0">
<p class="link-p" @click="goToScale(item)">{{item.name}}</p> <p class="link-p" @click="goToScale(item)">{{item.name}}</p>
......
<template>
<div class="form-show-scrollY">
<div class="form-template">
<BreadCrumb
:curmbFirst="'履约管理'"
:curmbSecond="breadTxt"
:curmbThird="'录入量表'"
:jumPathThird="jumPathThird"
/>
<div class="resident-content f-main-content screenSet">
<el-row :gutter="24" align="middle" type="flex" class="form-header">
<el-col :span="18">{{titleText}}</el-col>
<el-col :span="6" v-if="showBtn=='1'">
<el-button type="primary" size="small" class="formSubmit" @click="formSubmit(1)">提交</el-button>
<el-button class="button-white formTempSave" size="small" plain @click="formSubmit(2)">暂存</el-button>
</el-col>
</el-row>
<div class="title-box">
<h1>{{titleText}}</h1>
<h2>{{titleSmText}}</h2>
</div>
<!--模板页面除了显示居民基本信息,将病种展示作为组件引入-->
<div class="form-container">
<!--脑卒中-->
<stroke v-if="scaleNo=='SCALE0003'" :showBtn="showBtn" :scaleType="scaleNo" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" />
<!--高血压-->
<hypertension v-if="scaleNo=='SCALE0001'" :showBtn="showBtn" :scaleType="scaleNo" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" ></hypertension>
<!--糖尿病-->
<diabetes v-if="scaleNo=='SCALE0002'" :showBtn="showBtn" :scaleType="scaleNo" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" ></diabetes>
</div>
</div>
</div>
</div>
</template>
<script>
import BreadCrumb from '@/components/breadcrumb'
// 脑卒中
import stroke from './patient-scale/stroke'
import hypertension from './patient-scale/hypertension'
import diabetes from './patient-scale/diabetes'
export default {
data(){
return {
titleText: '',
titleSmText: '',
breadTxt: '录入管理',
jumPathThird: '/followup/record-manage/record-list',
checkStart: false,
showBtn: '1',
// resourceId: '',
saveWay: 1,
scaleNo: ''
}
},
components: {
stroke,
hypertension,
BreadCrumb,
diabetes,
},
methods: {
formSubmit(val){
this.saveWay = val
this.checkStart = true;
},
checkEnd(val){
this.checkStart = false
}
},
created(){
this.scaleNo = this.$route.query.scaleNo;
console.log('scaleNo=>',this.scaleNo)
// 0003 脑卒中、0002 糖尿病、0001 高血压
if(this.scaleNo == 'SCALE0003'){
this.titleText = '心脑血管病危险因素社区、乡镇人群履约表';
this.titleSmText = '(适用于社区、乡镇脑卒中高危人群满6个月、12个月时履约和中危人群满12个月时履约使用)';
}else if(this.scaleNo == 'SCALE0001'){
this.titleText = '高血压患者履约服务记录表';
this.titleSmText = '(本表为高血压患者在接受履约服务时由医生填写)';
}else if(this.scaleNo == 'SCALE0002'){
this.titleText = '2 型糖尿病患者履约服务记录表 ';
this.titleSmText = '(本表为2型糖尿病患者在接受履约服务时由医生填写)';
}
if(this.$route.query.showBtn=='0'){
this.showBtn = String(this.$route.query.showBtn);
}
},
}
</script>
<style lang="scss" scoped>
@import '../../../style/followup/followup-common';
@import '../../../style/followup/element-reset.css';
.form-show-scrollY{
width: 100%; height: 100%; overflow: hidden; overflow-y: scroll;
&::-webkit-scrollbar{
width: 8px; height: 8px;
background: #fff;
}
}
.form-template{
.form-header{
/*position: fixed;*/
/*z-index:100000;*/
line-height: 60px;
height: 60px;
border-bottom: 1px solid #e1e1e1;
}
.patient-base-info{
line-height: 60px;
height: 60px;
border-bottom: 1px dashed #ccc;
[class*=el-col-]{
float: left;
}
}
.title-box{
padding: 20px;
text-align: center;
h1{
font-size: 18px;
font-weight: normal;
}
h2{
font-size: 16px;
font-weight: normal;
margin-top: 15px;
}
}
.formSubmit{
float: right;
margin-left: 10px;
}
.formTempSave{
float: right;
}
.form-container{
padding: 0 10px;
}
}
.title{
font-weight: bold;
}
</style>
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="form-show-scrollY"> <div class="form-show-scrollY">
<div class="form-template"> <div class="form-template">
<BreadCrumb <BreadCrumb
:curmbFirst="'随访管理'" :curmbFirst="'履约管理'"
:curmbSecond="breadTxt" :curmbSecond="breadTxt"
:curmbThird="'录入量表'" :curmbThird="'录入量表'"
:jumPathThird="jumPathThird" :jumPathThird="jumPathThird"
...@@ -32,8 +32,6 @@ ...@@ -32,8 +32,6 @@
<!--糖尿病--> <!--糖尿病-->
<diabetes v-if="scaleNo=='SCALE0002'" :showBtn="showBtn" :scaleType="scaleNo" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" ></diabetes> <diabetes v-if="scaleNo=='SCALE0002'" :showBtn="showBtn" :scaleType="scaleNo" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" ></diabetes>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
...@@ -54,7 +52,7 @@ ...@@ -54,7 +52,7 @@
breadTxt: '录入管理', breadTxt: '录入管理',
jumPathThird: '/followup/record-manage/record-list', jumPathThird: '/followup/record-manage/record-list',
checkStart: false, checkStart: false,
showBtn: '1', showBtn: '1', //值为0隐藏右上角按钮,值为1显示按钮
// resourceId: '', // resourceId: '',
saveWay: 1, saveWay: 1,
scaleNo: '' scaleNo: ''
...@@ -80,14 +78,14 @@ ...@@ -80,14 +78,14 @@
console.log('scaleNo=>',this.scaleNo) console.log('scaleNo=>',this.scaleNo)
// 0003 脑卒中、0002 糖尿病、0001 高血压 // 0003 脑卒中、0002 糖尿病、0001 高血压
if(this.scaleNo == 'SCALE0003'){ if(this.scaleNo == 'SCALE0003'){
this.titleText = '心脑血管病危险因素社区、乡镇人群随访表'; this.titleText = '心脑血管病危险因素社区、乡镇人群履约表';
this.titleSmText = '(适用于社区、乡镇脑卒中高危人群满6个月、12个月时随访和中危人群满12个月时随访使用)'; this.titleSmText = '(适用于社区、乡镇脑卒中高危人群满6个月、12个月时履约和中危人群满12个月时履约使用)';
}else if(this.scaleNo == 'SCALE0001'){ }else if(this.scaleNo == 'SCALE0001'){
this.titleText = '高血压患者随访服务记录表'; this.titleText = '高血压患者履约服务记录表';
this.titleSmText = '(本表为高血压患者在接受随访服务时由医生填写)'; this.titleSmText = '(本表为高血压患者在接受履约服务时由医生填写)';
}else if(this.scaleNo == 'SCALE0002'){ }else if(this.scaleNo == 'SCALE0002'){
this.titleText = '2 型糖尿病患者随访服务记录表 '; this.titleText = '2 型糖尿病患者履约服务记录表 ';
this.titleSmText = '(本表为2型糖尿病患者在接受随访服务时由医生填写)'; this.titleSmText = '(本表为2型糖尿病患者在接受履约服务时由医生填写)';
} }
if(this.$route.query.showBtn=='0'){ if(this.$route.query.showBtn=='0'){
this.showBtn = String(this.$route.query.showBtn); this.showBtn = String(this.$route.query.showBtn);
......
...@@ -3,7 +3,6 @@ import { checkRange, checkIsInteger, checkNumberIsToFixed, checkNumberIsToFixedT ...@@ -3,7 +3,6 @@ import { checkRange, checkIsInteger, checkNumberIsToFixed, checkNumberIsToFixedT
export default ($this) => { export default ($this) => {
let hanldeValue = () => { let hanldeValue = () => {
$this.addComponents.forEach((item,index)=>{ $this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseAuxiliary'){ if(item.name == 'diabetesSourseAuxiliary'){
const glycosylatedHemoglobinPercent = item.formObject.glycosylatedHemoglobinPercent const glycosylatedHemoglobinPercent = item.formObject.glycosylatedHemoglobinPercent
const glycosylatedHemoglobinDate = item.formObject.glycosylatedHemoglobinDate const glycosylatedHemoglobinDate = item.formObject.glycosylatedHemoglobinDate
......
...@@ -8,7 +8,7 @@ export default ($this) => { ...@@ -8,7 +8,7 @@ export default ($this) => {
prop: 'name', prop: 'name',
model: 'name', model: 'name',
label: '姓名:', label: '姓名:',
disabled: false, disabled: true,
placeholder: '请输入姓名', placeholder: '请输入姓名',
spanNum: 12, spanNum: 12,
maxlength: 30, maxlength: 30,
...@@ -37,12 +37,12 @@ export default ($this) => { ...@@ -37,12 +37,12 @@ export default ($this) => {
prop: 'followupDate', prop: 'followupDate',
model: 'followupDate', model: 'followupDate',
placeholder: '请选择', placeholder: '请选择',
label: '随访日期:', label: '履约日期:',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd', valueFormat: 'yyyy-MM-dd',
dateType: 'date', dateType: 'date',
type: 'date', type: 'date',
rules: [{required: true, message: '请选择随访日期', trigger: ['submit','change']}], rules: [{required: true, message: '请选择履约日期', trigger: ['submit','change']}],
spanNum: 12, spanNum: 12,
}, },
...@@ -52,13 +52,13 @@ export default ($this) => { ...@@ -52,13 +52,13 @@ export default ($this) => {
prop: 'followupType', prop: 'followupType',
model: 'followupType', model: 'followupType',
spanNum: 24, spanNum: 24,
label: '随访方式:', label: '履约方式:',
options: [ options: [
{ label: '门诊', value: '门诊' }, { label: '门诊', value: '门诊' },
{ label: '家庭', value: '家庭' }, { label: '家庭', value: '家庭' },
{ label: '电话', value: '电话' }, { label: '电话', value: '电话' },
], ],
rules: [{ required: true, message: '请选择随访方式', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择履约方式', trigger: ['submit','change'] }],
changeFun: (e)=>{ changeFun: (e)=>{
} }
}, },
......
...@@ -24,14 +24,14 @@ export default ($this) => { ...@@ -24,14 +24,14 @@ export default ($this) => {
prop: 'nextSmokingAmount', prop: 'nextSmokingAmount',
model: 'nextSmokingAmount', model: 'nextSmokingAmount',
disabled: false, disabled: false,
label: '下次随访目标日吸烟量:', label: '下次履约目标日吸烟量:',
placeholder: '请输入下次随访日吸烟量', placeholder: '请输入下次履约日吸烟量',
spanNum: 8, spanNum: 8,
maxlength: 30, maxlength: 30,
type: 'number', type: 'number',
labmsg: '', labmsg: '',
slots: [{name: '支/日', type: 'append'}], slots: [{name: '支/日', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访日吸烟量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }] rules: [{ required: true, message: '请输入下次履约日吸烟量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
}, },
{ {
formType: 'input', formType: 'input',
...@@ -54,14 +54,14 @@ export default ($this) => { ...@@ -54,14 +54,14 @@ export default ($this) => {
prop: 'nextAlcoholConsumption', prop: 'nextAlcoholConsumption',
model: 'nextAlcoholConsumption', model: 'nextAlcoholConsumption',
disabled: false, disabled: false,
label: '下次随访目标日饮酒量:', label: '下次履约目标日饮酒量:',
placeholder: '请输入下次随访日饮酒量', placeholder: '请输入下次履约日饮酒量',
spanNum: 8, spanNum: 8,
maxlength: 30, maxlength: 30,
type: 'number', type: 'number',
labmsg: '', labmsg: '',
slots: [{name: '两/日', type: 'append'}], slots: [{name: '两/日', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访日饮酒量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }] rules: [{ required: true, message: '请输入下次履约日饮酒量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
}, },
{ {
...@@ -100,14 +100,14 @@ export default ($this) => { ...@@ -100,14 +100,14 @@ export default ($this) => {
prop: 'nextWorkoutOfWeek', prop: 'nextWorkoutOfWeek',
model: 'nextWorkoutOfWeek', model: 'nextWorkoutOfWeek',
disabled: false, disabled: false,
label: '下次随访目标运动情况:', label: '下次履约目标运动情况:',
placeholder: '请输入下次随访运动情况', placeholder: '请输入下次履约运动情况',
spanNum: 8, spanNum: 8,
maxlength: 30, maxlength: 30,
type: 'number', type: 'number',
labmsg: '', labmsg: '',
slots: [{name: '次/周', type: 'append'}], slots: [{name: '次/周', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }] rules: [{ required: true, message: '请输入下次履约运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
}, },
{ {
formType: 'input', formType: 'input',
...@@ -115,13 +115,13 @@ export default ($this) => { ...@@ -115,13 +115,13 @@ export default ($this) => {
prop: 'nextWorkoutDuration', prop: 'nextWorkoutDuration',
model: 'nextWorkoutDuration', model: 'nextWorkoutDuration',
disabled: false, disabled: false,
placeholder: '请输入下次随访运动情况', placeholder: '请输入下次履约运动情况',
spanNum: 8, spanNum: 8,
maxlength: 30, maxlength: 30,
type: 'number', type: 'number',
labmsg: '', labmsg: '',
slots: [{name: '分钟/次', type: 'append'}], slots: [{name: '分钟/次', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }] rules: [{ required: true, message: '请输入下次履约运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
}, },
{ {
formType: 'input', formType: 'input',
......
...@@ -65,15 +65,16 @@ export default ($this) => { ...@@ -65,15 +65,16 @@ export default ($this) => {
className: 'obj-form-title radio-block', className: 'obj-form-title radio-block',
prop: 'followUpClassification', prop: 'followUpClassification',
model: 'followUpClassification', model: 'followUpClassification',
disabled: false,
spanNum: 24, spanNum: 24,
label: '此次随访分类:', label: '此次履约分类:',
options: [ options: [
{ label: '控制满意(血压控制满意,无其他异常)', value: '控制满意(血压控制满意,无其他异常)' }, { label: '控制满意(血压控制满意,无其他异常)', value: '控制满意(血压控制满意,无其他异常)' },
{ label: '控制不满意(血压控制不满意,无其他异常)', value: '控制不满意(血压控制不满意,无其他异常)' }, { label: '控制不满意(血压控制不满意,无其他异常)', value: '控制不满意(血压控制不满意,无其他异常)' },
{ label: '不良反应(存在药物不良反应)', value: '不良反应(存在药物不良反应)' }, { label: '不良反应(存在药物不良反应)', value: '不良反应(存在药物不良反应)' },
{ label: '并发症(出现新的并发症或并发症出现异常)', value: '并发症(出现新的并发症或并发症出现异常)' }, { label: '并发症(出现新的并发症或并发症出现异常)', value: '并发症(出现新的并发症或并发症出现异常)' },
], ],
rules: [{ required: true, message: '请选择此次随访分类', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择此次履约分类', trigger: ['submit','change'] }],
changeFun: (e)=>{ changeFun: (e)=>{
} }
}, },
......
...@@ -120,14 +120,14 @@ export default ($this) => { ...@@ -120,14 +120,14 @@ export default ($this) => {
className: 'float-none', className: 'float-none',
prop: 'nextBodyWeight', prop: 'nextBodyWeight',
model: 'nextBodyWeight', model: 'nextBodyWeight',
label: '下次随访目标体重:', label: '下次履约目标体重:',
disabled: false, disabled: false,
placeholder: '请输入(体重可以带1位小数点)', placeholder: '请输入(体重可以带1位小数点)',
spanNum: 8, spanNum: 8,
type: 'number', type: 'number',
labmsg: '次', labmsg: '次',
slots: [{name: 'kg', type: 'append'}], slots: [{name: 'kg', type: 'append'}],
rules: [{required: true, message: '请输入下次随访体重', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkNumberIsToFixed , trigger: ['submit','change']}], rules: [{required: true, message: '请输入下次履约体重', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkNumberIsToFixed , trigger: ['submit','change']}],
changeFun: (val)=>{ changeFun: (val)=>{
$this.addComponents.forEach((item,index)=>{ $this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseSign'){ if(item.name == 'diabetesSourseSign'){
...@@ -155,7 +155,7 @@ export default ($this) => { ...@@ -155,7 +155,7 @@ export default ($this) => {
className: 'float-none', className: 'float-none',
prop: 'nextBmi', prop: 'nextBmi',
model: 'nextBmi', model: 'nextBmi',
label: '下次随访BMI(系统自动生成):', label: '下次履约BMI(系统自动生成):',
disabled: true, disabled: true,
placeholder: '(这里是自动计算所得)', placeholder: '(这里是自动计算所得)',
spanNum: 8, spanNum: 8,
......
...@@ -8,12 +8,12 @@ export default ($this) => { ...@@ -8,12 +8,12 @@ export default ($this) => {
prop: 'nextFollowDay', prop: 'nextFollowDay',
model: 'nextFollowDay', model: 'nextFollowDay',
placeholder: '请选择', placeholder: '请选择',
label: '下次随访日期:', label: '下次履约日期:',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd', valueFormat: 'yyyy-MM-dd',
dateType: 'date', dateType: 'date',
type: 'date', type: 'date',
rules: [{required: true, message: '请选择下次随访日期', trigger: ['submit','change']}], rules: [{required: true, message: '请选择下次履约日期', trigger: ['submit','change']}],
spanNum: 12, spanNum: 12,
}, },
// { // {
...@@ -21,14 +21,14 @@ export default ($this) => { ...@@ -21,14 +21,14 @@ export default ($this) => {
// className: 'float-none', // className: 'float-none',
// prop: 'doctorSignature', // prop: 'doctorSignature',
// model: 'doctorSignature', // model: 'doctorSignature',
// label: '随访医生签名:', // label: '履约医生签名:',
// disabled: false, // disabled: false,
// placeholder: '请输入随访人员姓名', // placeholder: '请输入履约人员姓名',
// spanNum: 12, // spanNum: 12,
// maxlength: 30, // maxlength: 30,
// type: 'text', // type: 'text',
// labmsg: '次', // labmsg: '次',
// rules: [{required: true, message: '请输入随访医生签名', trigger: ['submit','change']}], // rules: [{required: true, message: '请输入履约医生签名', trigger: ['submit','change']}],
// }, // },
] ]
} }
...@@ -12,9 +12,9 @@ export default ($this) => { ...@@ -12,9 +12,9 @@ export default ($this) => {
spanNum: 24, spanNum: 24,
options: [ options: [
{ label: '无', value: '无', disabled: false }, { label: '无', value: '无', disabled: false },
{ label: '有', value: '有', disabled: false }, { label: '有', value: '有', disabled: false},
], ],
rules: [{ required: true, message: '请选择随访期间有无症状', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择履约期间有无症状', trigger: ['submit','change'] }],
changeFun: (e) => { changeFun: (e) => {
if(e == '有') { if(e == '有') {
$this.addComponents.forEach((item,index)=>{ $this.addComponents.forEach((item,index)=>{
......
...@@ -8,7 +8,7 @@ export default ($this) => { ...@@ -8,7 +8,7 @@ export default ($this) => {
prop: 'name', prop: 'name',
model: 'name', model: 'name',
label: '姓名:', label: '姓名:',
disabled: false, disabled: true,
placeholder: '请输入姓名', placeholder: '请输入姓名',
spanNum: 12, spanNum: 12,
maxlength: 30, maxlength: 30,
...@@ -36,12 +36,12 @@ export default ($this) => { ...@@ -36,12 +36,12 @@ export default ($this) => {
prop: 'followupDate', prop: 'followupDate',
model: 'followupDate', model: 'followupDate',
placeholder: '请选择', placeholder: '请选择',
label: '随访日期:', label: '履约日期:',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd', valueFormat: 'yyyy-MM-dd',
dateType: 'date', dateType: 'date',
type: 'date', type: 'date',
rules: [{required: true, message: '请选择随访日期', trigger: ['submit','change']}], rules: [{required: true, message: '请选择履约日期', trigger: ['submit','change']}],
spanNum: 12, spanNum: 12,
}, },
...@@ -51,13 +51,13 @@ export default ($this) => { ...@@ -51,13 +51,13 @@ export default ($this) => {
prop: 'followupType', prop: 'followupType',
model: 'followupType', model: 'followupType',
spanNum: 24, spanNum: 24,
label: '随访方式:', label: '履约方式:',
options: [ options: [
{ label: '门诊', value: '门诊' }, { label: '门诊', value: '门诊' },
{ label: '家庭', value: '家庭' }, { label: '家庭', value: '家庭' },
{ label: '电话', value: '电话' }, { label: '电话', value: '电话' },
], ],
rules: [{ required: true, message: '请选择随访方式', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择履约方式', trigger: ['submit','change'] }],
changeFun: (e)=>{ changeFun: (e)=>{
} }
}, },
......
...@@ -69,14 +69,14 @@ export default ($this) => { ...@@ -69,14 +69,14 @@ export default ($this) => {
prop: 'followUpClassification', prop: 'followUpClassification',
model: 'followUpClassification', model: 'followUpClassification',
spanNum: 24, spanNum: 24,
label: '此次随访分类:', label: '此次履约分类:',
options: [ options: [
{ label: '控制满意(血压控制满意,无其他异常)', value: '控制满意(血压控制满意,无其他异常)' }, { label: '控制满意(血压控制满意,无其他异常)', value: '控制满意(血压控制满意,无其他异常)' },
{ label: '控制不满意(血压控制不满意,无其他异常)', value: '控制不满意(血压控制不满意,无其他异常)' }, { label: '控制不满意(血压控制不满意,无其他异常)', value: '控制不满意(血压控制不满意,无其他异常)' },
{ label: '不良反应(存在药物不良反应)', value: '不良反应(存在药物不良反应)' }, { label: '不良反应(存在药物不良反应)', value: '不良反应(存在药物不良反应)' },
{ label: '并发症(出现新的并发症或并发症出现异常)', value: '并发症(出现新的并发症或并发症出现异常)' }, { label: '并发症(出现新的并发症或并发症出现异常)', value: '并发症(出现新的并发症或并发症出现异常)' },
], ],
rules: [{ required: true, message: '请选择此次随访分类', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择此次履约分类', trigger: ['submit','change'] }],
changeFun: (e)=>{ changeFun: (e)=>{
} }
}, },
......
...@@ -24,14 +24,14 @@ export default ($this) => { ...@@ -24,14 +24,14 @@ export default ($this) => {
prop: 'nextSmokingAmount', prop: 'nextSmokingAmount',
model: 'nextSmokingAmount', model: 'nextSmokingAmount',
disabled: false, disabled: false,
label: '下次随访日吸烟量:', label: '下次履约日吸烟量:',
placeholder: '请输入下次随访日吸烟量', placeholder: '请输入下次履约日吸烟量',
spanNum: 8, spanNum: 8,
maxlength: 30, maxlength: 30,
type: 'number', type: 'number',
labmsg: '', labmsg: '',
slots: [{name: '支/日', type: 'append'}], slots: [{name: '支/日', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访日吸烟量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }] rules: [{ required: true, message: '请输入下次履约日吸烟量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
}, },
...@@ -56,14 +56,14 @@ export default ($this) => { ...@@ -56,14 +56,14 @@ export default ($this) => {
prop: 'nextAlcoholConsumption', prop: 'nextAlcoholConsumption',
model: 'nextAlcoholConsumption', model: 'nextAlcoholConsumption',
disabled: false, disabled: false,
label: '下次随访日饮酒量:', label: '下次履约日饮酒量:',
placeholder: '请输入下次随访日饮酒量', placeholder: '请输入下次履约日饮酒量',
spanNum: 8, spanNum: 8,
maxlength: 30, maxlength: 30,
type: 'number', type: 'number',
labmsg: '', labmsg: '',
slots: [{name: '两/日', type: 'append'}], slots: [{name: '两/日', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访日饮酒量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }] rules: [{ required: true, message: '请输入下次履约日饮酒量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
}, },
{ {
...@@ -102,14 +102,14 @@ export default ($this) => { ...@@ -102,14 +102,14 @@ export default ($this) => {
prop: 'nextWorkoutOfWeek', prop: 'nextWorkoutOfWeek',
model: 'nextWorkoutOfWeek', model: 'nextWorkoutOfWeek',
disabled: false, disabled: false,
label: '下次随访运动情况:', label: '下次履约运动情况:',
placeholder: '请输入下次随访运动情况', placeholder: '请输入下次履约运动情况',
spanNum: 8, spanNum: 8,
maxlength: 30, maxlength: 30,
type: 'number', type: 'number',
labmsg: '', labmsg: '',
slots: [{name: '次/周', type: 'append'}], slots: [{name: '次/周', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }] rules: [{ required: true, message: '请输入下次履约运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
}, },
{ {
formType: 'input', formType: 'input',
...@@ -117,13 +117,13 @@ export default ($this) => { ...@@ -117,13 +117,13 @@ export default ($this) => {
prop: 'nextWorkoutDuration', prop: 'nextWorkoutDuration',
model: 'nextWorkoutDuration', model: 'nextWorkoutDuration',
disabled: false, disabled: false,
placeholder: '请输入下次随访运动情况', placeholder: '请输入下次履约运动情况',
spanNum: 8, spanNum: 8,
maxlength: 30, maxlength: 30,
type: 'number', type: 'number',
labmsg: '', labmsg: '',
slots: [{name: '分钟/次', type: 'append'}], slots: [{name: '分钟/次', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }] rules: [{ required: true, message: '请输入下次履约运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
}, },
...@@ -149,13 +149,13 @@ export default ($this) => { ...@@ -149,13 +149,13 @@ export default ($this) => {
prop: 'nextSaltIntake', prop: 'nextSaltIntake',
model: 'nextSaltIntake', model: 'nextSaltIntake',
spanNum: 24, spanNum: 24,
label: '下次随访摄盐情况(咸淡):', label: '下次履约摄盐情况(咸淡):',
options: [ options: [
{ label: '轻', value: '轻' }, { label: '轻', value: '轻' },
{ label: '中', value: '中' }, { label: '中', value: '中' },
{ label: '重', value: '重' }, { label: '重', value: '重' },
], ],
rules: [{ required: true, message: '请选择下次随访摄盐情况', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择下次履约摄盐情况', trigger: ['submit','change'] }],
changeFun: (e)=>{ changeFun: (e)=>{
} }
}, },
......
...@@ -6,12 +6,12 @@ export default ($this) => { ...@@ -6,12 +6,12 @@ export default ($this) => {
prop: 'nextFollowDay', prop: 'nextFollowDay',
model: 'nextFollowDay', model: 'nextFollowDay',
placeholder: '请选择', placeholder: '请选择',
label: '下次随访日期:', label: '下次履约日期:',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd', valueFormat: 'yyyy-MM-dd',
dateType: 'date', dateType: 'date',
type: 'date', type: 'date',
rules: [{required: true, message: '请选择下次随访日期', trigger: ['submit','change']}], rules: [{required: true, message: '请选择下次履约日期', trigger: ['submit','change']}],
spanNum: 12, spanNum: 12,
}, },
// { // {
...@@ -19,14 +19,14 @@ export default ($this) => { ...@@ -19,14 +19,14 @@ export default ($this) => {
// className: 'float-none', // className: 'float-none',
// prop: 'doctorSignature', // prop: 'doctorSignature',
// model: 'doctorSignature', // model: 'doctorSignature',
// label: '随访医生签名:', // label: '履约医生签名:',
// disabled: false, // disabled: false,
// placeholder: '请输入随访人员姓名', // placeholder: '请输入履约人员姓名',
// spanNum: 12, // spanNum: 12,
// maxlength: 30, // maxlength: 30,
// type: 'text', // type: 'text',
// labmsg: '次', // labmsg: '次',
// rules: [{required: true, message: '请输入随访医生签名', trigger: ['submit','change']}], // rules: [{required: true, message: '请输入履约医生签名', trigger: ['submit','change']}],
// }, // },
] ]
} }
...@@ -119,14 +119,14 @@ export default ($this) => { ...@@ -119,14 +119,14 @@ export default ($this) => {
className: 'float-none', className: 'float-none',
prop: 'nextBodyWeight', prop: 'nextBodyWeight',
model: 'nextBodyWeight', model: 'nextBodyWeight',
label: '下次随访体重:', label: '下次履约体重:',
disabled: false, disabled: false,
placeholder: '请输入(体重可以带1位小数点)', placeholder: '请输入(体重可以带1位小数点)',
spanNum: 8, spanNum: 8,
type: 'number', type: 'number',
labmsg: '次', labmsg: '次',
slots: [{name: 'kg', type: 'append'}], slots: [{name: 'kg', type: 'append'}],
rules: [{required: true, message: '请输入下次随访体重', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkNumberIsToFixed , trigger: ['submit','change']}], rules: [{required: true, message: '请输入下次履约体重', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkNumberIsToFixed , trigger: ['submit','change']}],
changeFun: (val)=>{ changeFun: (val)=>{
$this.addComponents.forEach((item,index)=>{ $this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceSign'){ if(item.name == 'hypeDataSourceSign'){
...@@ -154,7 +154,7 @@ export default ($this) => { ...@@ -154,7 +154,7 @@ export default ($this) => {
className: 'float-none', className: 'float-none',
prop: 'nextBmi', prop: 'nextBmi',
model: 'nextBmi', model: 'nextBmi',
label: '下次随访BMI(系统自动生成):', label: '下次履约BMI(系统自动生成):',
disabled: true, disabled: true,
placeholder: '(这里是自动计算所得)', placeholder: '(这里是自动计算所得)',
spanNum: 8, spanNum: 8,
......
...@@ -14,7 +14,7 @@ export default ($this) => { ...@@ -14,7 +14,7 @@ export default ($this) => {
prop: 'name', prop: 'name',
model: 'name', model: 'name',
label: '姓名:', label: '姓名:',
disabled: false, disabled: true,
placeholder: '请输入姓名', placeholder: '请输入姓名',
spanNum: 12, spanNum: 12,
maxlength: 30, maxlength: 30,
...@@ -42,12 +42,12 @@ export default ($this) => { ...@@ -42,12 +42,12 @@ export default ($this) => {
prop: 'inTurn', prop: 'inTurn',
model: 'inTurn', model: 'inTurn',
spanNum: 24, spanNum: 24,
label: '随访轮次(距离建档时间):', label: '履约轮次(距离建档时间):',
options: [ options: [
{ label: '6个月', value: '6个月' }, { label: '6个月', value: '6个月' },
{ label: '12个月', value: '12个月' }, { label: '12个月', value: '12个月' },
], ],
rules: [{ required: true, message: '请选择随访轮次', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择履约轮次', trigger: ['submit','change'] }],
changeFun: (e)=>{ changeFun: (e)=>{
// console.log(e) // console.log(e)
// if(e == '12个月'){ // if(e == '12个月'){
......
...@@ -7,42 +7,42 @@ export default ($this) => { ...@@ -7,42 +7,42 @@ export default ($this) => {
className: 'float-none', className: 'float-none',
prop: 'followUpOrgName', prop: 'followUpOrgName',
model: 'followUpOrgName', model: 'followUpOrgName',
label: '随访单位名称:', label: '履约单位名称:',
disabled: false, disabled: false,
placeholder: '请输入随访单位名称', placeholder: '请输入履约单位名称',
spanNum: 12, spanNum: 12,
maxlength: 30, maxlength: 30,
type: 'text', type: 'text',
labmsg: '次', labmsg: '次',
rules: [{required: true, message: '请输入随访单位名称', trigger: ['submit','change']}], rules: [{required: true, message: '请输入履约单位名称', trigger: ['submit','change']}],
}, },
{ {
formType: 'input', formType: 'input',
className: 'float-none', className: 'float-none',
prop: 'followUpUser', prop: 'followUpUser',
model: 'followUpUser', model: 'followUpUser',
label: '随访人员姓名:', label: '履约人员姓名:',
disabled: false, disabled: false,
placeholder: '请输入随访人员姓名', placeholder: '请输入履约人员姓名',
spanNum: 12, spanNum: 12,
maxlength: 30, maxlength: 30,
type: 'text', type: 'text',
labmsg: '次', labmsg: '次',
rules: [{required: true, message: '请输入随访人员姓名', trigger: ['submit','change']}], rules: [{required: true, message: '请输入履约人员姓名', trigger: ['submit','change']}],
}, },
{ {
formType: 'input', formType: 'input',
className: 'float-none', className: 'float-none',
prop: 'followUpMobile', prop: 'followUpMobile',
model: 'followUpMobile', model: 'followUpMobile',
label: '随访人员联系电话:', label: '履约人员联系电话:',
disabled: false, disabled: false,
placeholder: '请输入随访人员联系电话', placeholder: '请输入履约人员联系电话',
spanNum: 12, spanNum: 12,
maxlength: 11, maxlength: 11,
type: 'tel', type: 'tel',
labmsg: '次', labmsg: '次',
rules: [{required: true, message: '请输入随访人员联系电话', trigger: ['submit','change']},{ validator: checkMobile , trigger: ['submit','change'] }], rules: [{required: true, message: '请输入履约人员联系电话', trigger: ['submit','change']},{ validator: checkMobile , trigger: ['submit','change'] }],
}, },
{ {
formType: 'date-picker', formType: 'date-picker',
......
...@@ -41,7 +41,7 @@ export default ($this) => { ...@@ -41,7 +41,7 @@ export default ($this) => {
spanNum: 24, spanNum: 24,
options: [ options: [
{ label: '面对面', value: '面对面', disabled: false }, { label: '面对面', value: '面对面', disabled: false },
{ label: '电话(限中危人群,高危人群6个月随访)', value: '电话(限中危人群,高危人群6个月随访)', disabled: false }, { label: '电话(限中危人群,高危人群6个月履约)', value: '电话(限中危人群,高危人群6个月履约)', disabled: false },
], ],
rules: [{ required: true, message: '请选择调查方式', trigger: ['submit','change'] }] rules: [{ required: true, message: '请选择调查方式', trigger: ['submit','change'] }]
}, },
......
...@@ -12,14 +12,14 @@ export default ($this) => { ...@@ -12,14 +12,14 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'diseasedHappened', prop: 'diseasedHappened',
model: 'diseasedHappened', model: 'diseasedHappened',
label: '随访期间有无新发脑血管病事件:', label: '履约期间有无新发脑血管病事件:',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
{ label: '无', value: '无', disabled: false }, { label: '无', value: '无', disabled: false },
{ label: '有', value: '有', disabled: false }, { label: '有', value: '有', disabled: false },
], ],
rules: [{ required: true, message: '请选择随访期间有无新发脑血管病事件', trigger: ['submit','change'] }] rules: [{ required: true, message: '请选择履约期间有无新发脑血管病事件', trigger: ['submit','change'] }]
}, },
{ {
formType: 'input', formType: 'input',
...@@ -42,13 +42,13 @@ export default ($this) => { ...@@ -42,13 +42,13 @@ export default ($this) => {
prop: 'firstTime', prop: 'firstTime',
model: 'firstTime', model: 'firstTime',
placeholder: '请选择', placeholder: '请选择',
label: '随访期间第一次发病时间:', label: '履约期间第一次发病时间:',
linkageRule: [{ name: 'diseasedHappened', value: ['有'] }], linkageRule: [{ name: 'diseasedHappened', value: ['有'] }],
format: 'yyyy', format: 'yyyy',
valueFormat: 'yyyy', valueFormat: 'yyyy',
dateType: 'year', dateType: 'year',
type: 'date', type: 'date',
rules: [{ required: true, message: '请选择随访期间第一次发病时间', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择履约期间第一次发病时间', trigger: ['submit','change'] }],
spanNum: 12, spanNum: 12,
}, },
{ {
......
...@@ -12,14 +12,14 @@ export default ($this) => { ...@@ -12,14 +12,14 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'happenedAgain', prop: 'happenedAgain',
model: 'happenedAgain', model: 'happenedAgain',
label: '随访期间是否新发心脏病:', label: '履约期间是否新发心脏病:',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
{ label: '无', value: '无', disabled: false }, { label: '无', value: '无', disabled: false },
{ label: '有', value: '有', disabled: false }, { label: '有', value: '有', disabled: false },
], ],
rules: [{ required: true, message: '请选择随访期间是否新发心脏病', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择履约期间是否新发心脏病', trigger: ['submit','change'] }],
changeFun(e){ changeFun(e){
if(e == '有') { if(e == '有') {
$this.addComponents.forEach((item,index)=>{ $this.addComponents.forEach((item,index)=>{
...@@ -139,7 +139,7 @@ export default ($this) => { ...@@ -139,7 +139,7 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'atrialFibrillation', prop: 'atrialFibrillation',
model: 'atrialFibrillation', model: 'atrialFibrillation',
label: '是否有房颤(包括既往及本次随访期间新发现的房颤患者):', label: '是否有房颤(包括既往及本次履约期间新发现的房颤患者):',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
......
...@@ -13,14 +13,14 @@ export default ($this) => { ...@@ -13,14 +13,14 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'haveHypertension', prop: 'haveHypertension',
model: 'haveHypertension', model: 'haveHypertension',
label: '随访期间新发现有高血压:', label: '履约期间新发现有高血压:',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
{ label: '无', value: '无', disabled: false }, { label: '无', value: '无', disabled: false },
{ label: '有', value: '有', disabled: false }, { label: '有', value: '有', disabled: false },
], ],
rules: [{ required: true, message: '请选择随访期间新发现有高血压', trigger: ['submit','change'] }] rules: [{ required: true, message: '请选择履约期间新发现有高血压', trigger: ['submit','change'] }]
}, },
{ {
formType: 'date-picker', formType: 'date-picker',
...@@ -43,7 +43,7 @@ export default ($this) => { ...@@ -43,7 +43,7 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'takeHypotensorFf', prop: 'takeHypotensorFf',
model: 'takeHypotensorFf', model: 'takeHypotensorFf',
label: '是否有高血压(包括既往及本次随访期间新发现的高血压患者):', label: '是否有高血压(包括既往及本次履约期间新发现的高血压患者):',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
......
...@@ -12,14 +12,14 @@ export default ($this) => { ...@@ -12,14 +12,14 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'haveDyslipidemia', prop: 'haveDyslipidemia',
model: 'haveDyslipidemia', model: 'haveDyslipidemia',
label: '随访期间是否新发现有血脂异常:', label: '履约期间是否新发现有血脂异常:',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
{ label: '否', value: '否', disabled: false }, { label: '否', value: '否', disabled: false },
{ label: '是', value: '是', disabled: false }, { label: '是', value: '是', disabled: false },
], ],
rules: [{ required: true, message: '请选择随访期间是否新发现有血脂异常', trigger: ['submit','change'] }], rules: [{ required: true, message: '请选择履约期间是否新发现有血脂异常', trigger: ['submit','change'] }],
changeFun(e){ changeFun(e){
if(e == '是') { if(e == '是') {
$this.addComponents.forEach((item,index)=>{ $this.addComponents.forEach((item,index)=>{
...@@ -75,7 +75,7 @@ export default ($this) => { ...@@ -75,7 +75,7 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'dyslipidemiaIf', prop: 'dyslipidemiaIf',
model: 'dyslipidemiaIf', model: 'dyslipidemiaIf',
label: '是否有血脂异常(包括既往及本次随访期间新发现的血脂异常患者):', label: '是否有血脂异常(包括既往及本次履约期间新发现的血脂异常患者):',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
......
...@@ -10,14 +10,14 @@ export default ($this) => { ...@@ -10,14 +10,14 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'haveDiabetes', prop: 'haveDiabetes',
model: 'haveDiabetes', model: 'haveDiabetes',
label: '随访期间是否新发现有糖尿病:', label: '履约期间是否新发现有糖尿病:',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
{ label: '否', value: '否', disabled: false }, { label: '否', value: '否', disabled: false },
{ label: '是', value: '是', disabled: false }, { label: '是', value: '是', disabled: false },
], ],
rules: [{ required: true, message: '请选择随访期间是否新发现有糖尿病', trigger: ['submit','change'] }] rules: [{ required: true, message: '请选择履约期间是否新发现有糖尿病', trigger: ['submit','change'] }]
}, },
{ {
formType: 'date-picker', formType: 'date-picker',
...@@ -40,7 +40,7 @@ export default ($this) => { ...@@ -40,7 +40,7 @@ export default ($this) => {
className: 'obj-form-title', className: 'obj-form-title',
prop: 'strokeMedicalIf', prop: 'strokeMedicalIf',
model: 'strokeMedicalIf', model: 'strokeMedicalIf',
label: '是否为糖尿病患者(包括既往及本次随访期间新发现的糖尿病患者):', label: '是否为糖尿病患者(包括既往及本次履约期间新发现的糖尿病患者):',
disabled: false, disabled: false,
spanNum: 24, spanNum: 24,
options: [ options: [
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<!--渲染不同的模块表单--> <!--渲染不同的模块表单-->
<div v-if="canRender" v-for="(item, index) in addComponents"> <div v-if="canRender" v-for="(item, index) in addComponents">
<div v-if="item.showModule" class="content-box" > <div v-if="item.showModule" class="content-box" >
<div v-if="!item.hideTitle" class="title">{{item.title}}</div> <div v-if="!item.hideTitle" class="title">{{item.title}}<span class="gray-tip" v-if="item.disabled"><i class="el-icon-warning-outline" style="margin-right: 5px;"></i>获得居民授权才可进行此项填写</span></div>
<el-form <el-form
:ref="'form' + index" :ref="'form' + index"
:id="'form' + index" :id="'form' + index"
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</template> </template>
<script> <script>
import { getDomain, getScaleModels, getScaleDetail, postScale, updateScalesStatus, submitScale } from '@/utils/followup/followapis' import { getDomain, getScaleModels, getScaleDetail, postScale, updateScalesStatus, submitScale, getScaleModels2 } from '@/utils/followup/followapis'
// 量表 template // 量表 template
import FormScale from '@/components/followup/form/index' import FormScale from '@/components/followup/form/index'
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
scaleNo: '', scaleNo: '',
doctorId: '', doctorId: '',
planTimesId: '', planTimesId: '',
addComponents: [], addComponents: [], //所需要展示的模块
addComponentsSourceList: [], addComponentsSourceList: [],
formData: {},//整个表单对象 formData: {},//整个表单对象
dialogFormVisible: false,//是否显示添加用药情况dialog dialogFormVisible: false,//是否显示添加用药情况dialog
...@@ -116,6 +116,7 @@ ...@@ -116,6 +116,7 @@
}) })
return; return;
}else{ }else{
// 校验内容是否全部填写
this.valid = true; this.valid = true;
} }
} }
...@@ -204,16 +205,42 @@ ...@@ -204,16 +205,42 @@
// }, // },
// 获取展示的模块 // 获取展示的模块
getFormModules(){ getFormModules(){
getScaleModels(this.domain,this.scaleNo).then(res=>{ let para = {
planPatientsTimesId: this.planPatientsTimesId
}
// getScaleModels(this.domain,this.scaleNo).then(res=>{
getScaleModels2(this.domain,this.scaleNo,para).then(res=>{
if(res.code=='000000'){ if(res.code=='000000'){
this.moduleList = res.data; this.moduleList = res.data;
for(let i=0;i<this.moduleList.length;i++){ for(let i=0;i<this.moduleList.length;i++){
for(let j=0;j<this.addComponentsSourceList.length;j++){ for(let j=0;j<this.addComponentsSourceList.length;j++){
if(this.moduleList[i]==this.addComponentsSourceList[j].formName){ // if(this.moduleList[i]==this.addComponentsSourceList[j].formName){
this.addComponents.push(this.addComponentsSourceList[j]) if(this.moduleList[i].modelCode==this.addComponentsSourceList[j].formName){
// this.addComponents.push(this.addComponentsSourceList[j])
//把获取到每个模块的disabeld状态更新进将要渲染的数组
this.addComponents.push({...this.addComponentsSourceList[j],disabled: this.moduleList[i].disabled})
} }
} }
} }
/*start--根据当前模块是否获得居民权限,来判断是否可填写当前模块*/
this.addComponents.forEach((item,index)=>{
if (item.disabled === true) {
item.dataSource.forEach((item2,index2)=>{
// item2.disabled = true;
this.addComponents[index].dataSource[index2].disabled = true;
if (this.addComponents[index].dataSource[index2].rules) {
this.addComponents[index].dataSource[index2].rules[0].required = false;
}
})
}
})
console.log('糖尿病数组', this.addComponents)
/*end--*/
// if(this.showBtn!='0'){
// // 获取量表详情
// this.getFormDetail();
// }
}else{ }else{
this.$message({ this.$message({
message: res.message, message: res.message,
...@@ -242,6 +269,7 @@ ...@@ -242,6 +269,7 @@
for(let i=0;i<this.addComponents.length;i++){ for(let i=0;i<this.addComponents.length;i++){
let formName = this.addComponents[i].formName; let formName = this.addComponents[i].formName;
// let type2Obj = {}; // let type2Obj = {};
//对用药情况模块的数据做特殊处理
if(this.formData[formName] && formName == 'h_s_002'){ if(this.formData[formName] && formName == 'h_s_002'){
let getDataHS002 = this.formData[formName]; let getDataHS002 = this.formData[formName];
if(Array.isArray(getDataHS002)){ if(Array.isArray(getDataHS002)){
...@@ -256,7 +284,7 @@ ...@@ -256,7 +284,7 @@
arrList: this.medication, arrList: this.medication,
...this.type2Obj ...this.type2Obj
} }
}else if(this.formData[formName] && formName == 'diabetes_001'){ }else if(this.formData[formName] && formName == 'diabetes_001'){ //对症状模块做处理
this.addComponents[i].formObject = this.formData[formName]; this.addComponents[i].formObject = this.formData[formName];
let symptom = this.formData[formName].symptom; let symptom = this.formData[formName].symptom;
this.addComponents[i].formObject.symptom = JSON.parse(symptom || '[]'); this.addComponents[i].formObject.symptom = JSON.parse(symptom || '[]');
...@@ -293,9 +321,27 @@ ...@@ -293,9 +321,27 @@
}); });
this.medication = [...this.medication,...arrNew]; this.medication = [...this.medication,...arrNew];
this.formData.h_s_002 = this.medication this.formData.h_s_002 = this.medication
//判断是否放开敏感字段
let hasDisabled = false;
this.addComponents.forEach((item,index)=>{
if (item.disabled === true) {
hasDisabled = true
}
})
postScale(this.domain,this.formData).then(res=>{ postScale(this.domain,this.formData).then(res=>{
if(res.code=='000000'){ if(res.code=='000000'){
let doMsg = (this.saveWay==1) ? '提交成功' : '保存成功'; // let doMsg = (this.saveWay==1) ? '提交成功' : '保存成功';
// let doMsg = (this.saveWay==1 && hasDisabled === true) ? '非敏感信息提交成功' : '保存成功';
let doMsg = '';
if (this.saveWay==1) {
if(hasDisabled === true){
doMsg = '非敏感信息提交成功'
}else {
doMsg = '提交成功'
}
}else {
doMsg = '保存成功'
}
this.$message({ this.$message({
message: doMsg, message: doMsg,
type: 'success' type: 'success'
...@@ -309,7 +355,7 @@ ...@@ -309,7 +355,7 @@
}) })
},1000) },1000)
}else{ }else{
let doMsg = (this.saveWay==1) ? '提交失败' : '保存失败'; let doMsg = (this.saveWay==1) ? '提交失败,请重试' : '保存失败';
this.$message({ this.$message({
message: doMsg, message: doMsg,
type: 'error' type: 'error'
...@@ -338,6 +384,11 @@ ...@@ -338,6 +384,11 @@
font-weight: bold; font-weight: bold;
font-size: 18px; font-size: 18px;
border-bottom: 1px dashed #ccc; border-bottom: 1px dashed #ccc;
.gray-tip{
color: #8C8C8C;
margin-left: 20px;
font-size: 16px;
}
} }
} }
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<!--渲染不同的模块表单--> <!--渲染不同的模块表单-->
<div v-if="canRender" v-for="(item, index) in addComponents"> <div v-if="canRender" v-for="(item, index) in addComponents">
<div v-if="item.showModule" class="content-box" > <div v-if="item.showModule" class="content-box" >
<div v-if="!item.hideTitle" class="title">{{item.title}}</div> <div v-if="!item.hideTitle" class="title">{{item.title}}<span class="gray-tip" v-if="item.disabled"><i class="el-icon-warning-outline" style="margin-right: 5px;"></i>获得居民授权才可进行此项填写</span></div>
<el-form <el-form
:ref="'form' + index" :ref="'form' + index"
:id="'form' + index" :id="'form' + index"
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</template> </template>
<script> <script>
import { getDomain, getScaleModels, getScaleDetail, postScale, updateScalesStatus, submitScale } from '@/utils/followup/followapis' import { getDomain, getScaleModels, getScaleDetail, postScale, updateScalesStatus, submitScale, getScaleModels2 } from '@/utils/followup/followapis'
// 量表 template // 量表 template
import FormScale from '@/components/followup/form/index' import FormScale from '@/components/followup/form/index'
...@@ -114,6 +114,7 @@ ...@@ -114,6 +114,7 @@
}) })
return; return;
}else{ }else{
// 校验内容是否全部填写
this.valid = true; this.valid = true;
} }
} }
...@@ -167,7 +168,7 @@ ...@@ -167,7 +168,7 @@
{name: 'hypeDataSourceHelpChecking',formObject: {},showModule: true,formName: 'hypertension_004',className: 'obj-form-title',dataSource: hypeDataSourceHelpChecking(this), hideTitle: false, title: '辅助检查'}, {name: 'hypeDataSourceHelpChecking',formObject: {},showModule: true,formName: 'hypertension_004',className: 'obj-form-title',dataSource: hypeDataSourceHelpChecking(this), hideTitle: false, title: '辅助检查'},
{name: 'hypeDataSourceMedicationUse',formObject: {arrList:this.medication,dosageDay:'',dosageNum:'',medicinesName:'',medicineType:''},showModule: true,formName: 'h_s_002',className: 'obj-form-title',dataSource: hypeDataSourceMedicationUse(this), hideTitle: false, title: '用药情况'}, {name: 'hypeDataSourceMedicationUse',formObject: {arrList:this.medication,dosageDay:'',dosageNum:'',medicinesName:'',medicineType:''},showModule: true,formName: 'h_s_002',className: 'obj-form-title',dataSource: hypeDataSourceMedicationUse(this), hideTitle: false, title: '用药情况'},
{name: 'hypeDataSourceReferral',formObject: {reason:'',mechanism:'',department:''},showModule: true,formName: 'h_s_003',className: 'obj-form-title',dataSource: hypeDataSourceReferral(this), hideTitle: false, title: '转诊'}, {name: 'hypeDataSourceReferral',formObject: {reason:'',mechanism:'',department:''},showModule: true,formName: 'h_s_003',className: 'obj-form-title',dataSource: hypeDataSourceReferral(this), hideTitle: false, title: '转诊'},
{name: 'hypeDataSourceNextFollowDay',formObject: {nextFollowDay:''},showModule: true,formName: 'h_s_004',className: 'obj-form-title',dataSource: hypeDataSourceNextFollowDay(this), hideTitle: true, title: '下次随访日期'}, {name: 'hypeDataSourceNextFollowDay',formObject: {nextFollowDay:''},showModule: true,formName: 'h_s_004',className: 'obj-form-title',dataSource: hypeDataSourceNextFollowDay(this), hideTitle: true, title: '下次履约日期'},
] ]
}, },
// 获取白名单域名 // 获取白名单域名
...@@ -179,7 +180,10 @@ ...@@ -179,7 +180,10 @@
// 获取量表模块 // 获取量表模块
this.getFormModules(); this.getFormModules();
if(this.showBtn!='0'){
// 获取量表详情
this.getFormDetail();
}
}else{ }else{
this.$message({ this.$message({
message: res.message, message: res.message,
...@@ -195,21 +199,42 @@ ...@@ -195,21 +199,42 @@
// 获取展示的模块 // 获取展示的模块
getFormModules(){ getFormModules(){
getScaleModels(this.domain,this.scaleNo).then(res=>{ let para = {
planPatientsTimesId: this.planPatientsTimesId
}
// getScaleModels(this.domain,this.scaleNo).then(res=>{
getScaleModels2(this.domain,this.scaleNo,para).then(res=>{
if(res.code=='000000'){ if(res.code=='000000'){
this.moduleList = res.data; this.moduleList = res.data;
for(let i=0;i<this.moduleList.length;i++){ for(let i=0;i<this.moduleList.length;i++){
for(let j=0;j<this.addComponentsSourceList.length;j++){ for(let j=0;j<this.addComponentsSourceList.length;j++){
if(this.moduleList[i]==this.addComponentsSourceList[j].formName){ // if(this.moduleList[i]==this.addComponentsSourceList[j].formName){
this.addComponents.push(this.addComponentsSourceList[j]) if(this.moduleList[i].modelCode==this.addComponentsSourceList[j].formName){
// this.addComponents.push(this.addComponentsSourceList[j])
//把获取到每个模块的disabeld状态更新进将要渲染的数组
this.addComponents.push({...this.addComponentsSourceList[j],disabled: this.moduleList[i].disabled})
} }
} }
} }
console.log('高血压展示模块',this.addComponents)
/*start--根据当前模块是否获得居民权限,来判断是否可填写当前模块*/
this.addComponents.forEach((item,index)=>{
if (item.disabled === true) {
item.dataSource.forEach((item2,index2)=>{
// item2.disabled = true;
this.addComponents[index].dataSource[index2].disabled = true;
if (this.addComponents[index].dataSource[index2].rules) {
this.addComponents[index].dataSource[index2].rules[0].required = false;
}
})
}
})
/*end--*/
if(this.showBtn!='0'){ // if(this.showBtn!='0'){
// 获取量表详情 // // 获取量表详情
this.getFormDetail(); // this.getFormDetail();
} // }
}else{ }else{
this.$message({ this.$message({
...@@ -315,9 +340,26 @@ ...@@ -315,9 +340,26 @@
} }
this.formData.hypertension_001.symptom = JSON.stringify(this.formData.hypertension_001.symptom); this.formData.hypertension_001.symptom = JSON.stringify(this.formData.hypertension_001.symptom);
// console.log(this.formData) // console.log(this.formData)
//判断是否放开敏感字段
let hasDisabled = false;
this.addComponents.forEach((item,index)=>{
if (item.disabled === true) {
hasDisabled = true
}
})
postScale(this.domain,this.formData).then(res=>{ postScale(this.domain,this.formData).then(res=>{
if(res.code=='000000'){ if(res.code=='000000'){
let doMsg = (this.saveWay==1) ? '提交成功' : '保存成功'; // let doMsg = (this.saveWay==1) ? '非敏感信息提交成功' : '保存成功';
let doMsg = '';
if (this.saveWay==1) {
if(hasDisabled === true){
doMsg = '非敏感信息提交成功'
}else {
doMsg = '提交成功'
}
}else {
doMsg = '保存成功'
}
this.$message({ this.$message({
message: doMsg, message: doMsg,
type: 'success' type: 'success'
...@@ -331,7 +373,7 @@ ...@@ -331,7 +373,7 @@
}) })
},1000) },1000)
}else{ }else{
let doMsg = (this.saveWay==1) ? '提交失败' : '保存失败'; let doMsg = (this.saveWay==1) ? '提交失败,请重试' : '保存失败';
this.$message({ this.$message({
message: doMsg, message: doMsg,
type: 'error' type: 'error'
...@@ -359,6 +401,11 @@ ...@@ -359,6 +401,11 @@
font-weight: bold; font-weight: bold;
font-size: 22px; font-size: 22px;
border-bottom: 1px dashed #ccc; border-bottom: 1px dashed #ccc;
.gray-tip{
color: #8C8C8C;
margin-left: 20px;
font-size: 16px;
}
} }
} }
} }
......
此差异已折叠。
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<p class="warn-tips" v-if="reservationForm.appointmentDate">该日期已经成功预约{{getRevervationNum}}人,请确保能在此时间段完成预约的随访任务</p> <p class="warn-tips" v-if="reservationForm.appointmentDate">该日期已经成功预约{{getRevervationNum}}人,请确保能在此时间段完成预约的履约任务</p>
</el-form-item> </el-form-item>
<el-form-item label="变更原因" prop="reason"> <el-form-item label="变更原因" prop="reason">
<el-input type="textarea" v-model="reservationForm.changeReason" placeholder="请输入变更原因" maxlength="30" rows="3" style="width:60%;"></el-input> <el-input type="textarea" v-model="reservationForm.changeReason" placeholder="请输入变更原因" maxlength="30" rows="3" style="width:60%;"></el-input>
......
<template> <template>
<div class="dialog-wrap"> <div class="dialog-wrap">
<el-dialog title="预约随访居民" <el-dialog title="预约履约居民"
:visible.sync="reservationDialog" :visible.sync="reservationDialog"
v-if="isDialogShow" v-if="isDialogShow"
center center
...@@ -43,13 +43,13 @@ ...@@ -43,13 +43,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<p class="warn-tips" v-if="reservationForm.appointmentDate">该日期已经成功预约{{getRevervationNum}}人,请确保能在此时间段完成预约的随访任务</p> <p class="warn-tips" v-if="reservationForm.appointmentDate">该日期已经成功预约{{getRevervationNum}}人,请确保能在此时间段完成预约的履约任务</p>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="reservation-content content-list" v-if="reservationForm.appointmentDate && reservationForm.appointmentRange"> <div class="reservation-content content-list" v-if="reservationForm.appointmentDate && reservationForm.appointmentRange">
<div class="item"> <div class="item">
<span class="title">发送内容:</span> <span class="title">发送内容:</span>
<p>{{userName}}医生邀请您在{{reservationForm.appointmentDate}}{{reservationForm.appointmentRange}}进行随访,请确认是否参加。</p> <p>{{userName}}医生邀请您在{{reservationForm.appointmentDate}}{{reservationForm.appointmentRange}}进行履约,请确认是否参加。</p>
</div> </div>
<div class="item"> <div class="item">
<span class="title">本次推送:</span> <span class="title">本次推送:</span>
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
<div class="search-div"> <div class="search-div">
<div class="search-input"> <div class="search-input">
<el-form :model="searchData" ref="searchData" :inline="true" :label-width="labelWidth"> <el-form :model="searchData" ref="searchData" :inline="true" :label-width="labelWidth">
<el-form-item label="随访计划名称:" prop="planName"> <el-form-item label="履约计划名称:" prop="planName">
<el-input v-model="searchData.planName" size="small" placeholder="请输入随访计划名称" clearable></el-input> <el-input v-model="searchData.planName" size="small" placeholder="请输入履约计划名称" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="姓名:" prop="nickname"> <el-form-item label="姓名:" prop="nickname">
<el-input v-model="searchData.nickname" size="small" placeholder="请输入姓名" clearable></el-input> <el-input v-model="searchData.nickname" size="small" placeholder="请输入姓名" clearable></el-input>
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<el-form-item label="手机号:" prop="mobilePhone"> <el-form-item label="手机号:" prop="mobilePhone">
<el-input v-model="searchData.mobilePhone" size="small" placeholder="请输入手机号" clearable></el-input> <el-input v-model="searchData.mobilePhone" size="small" placeholder="请输入手机号" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="随访时间范围:" prop="planTimes" clearable> <el-form-item label="履约时间范围:" prop="planTimes" clearable>
<el-date-picker <el-date-picker
v-model="searchData.planTimes" v-model="searchData.planTimes"
type="daterange" type="daterange"
...@@ -86,18 +86,18 @@ ...@@ -86,18 +86,18 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="name"
label="随访计划名称" label="履约计划名称"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="160" width="160"
prop="fuPlanTime" prop="fuPlanTime"
label="随访计划时间" label="履约计划时间"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="160" width="160"
label="随访预约时间" label="履约预约时间"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.status==1" style="color: #49C688;">未发送</span> <span v-if="scope.row.status==1" style="color: #49C688;">未发送</span>
...@@ -136,6 +136,13 @@ ...@@ -136,6 +136,13 @@
<no-enough :isNoEnoughShow="isNoEnoughShow" @closeTipsDialog="closeTipsDialog"></no-enough> <no-enough :isNoEnoughShow="isNoEnoughShow" @closeTipsDialog="closeTipsDialog"></no-enough>
<change-reservation :isChangeReservation="isChangeReservation" @closeChangeReserve="closeChangeReserve" :reservationForm="needPara"></change-reservation> <change-reservation :isChangeReservation="isChangeReservation" @closeChangeReserve="closeChangeReserve" :reservationForm="needPara"></change-reservation>
<followup-detail :dialogFormVisible="dialogDetailShow" @closeDetail="closeDetail" :enteringInfo="enteringInfo"></followup-detail> <followup-detail :dialogFormVisible="dialogDetailShow" @closeDetail="closeDetail" :enteringInfo="enteringInfo"></followup-detail>
<!-- 协议提醒 -->
<el-dialog class="prot-dialog" title="" :visible.sync="isShowProtocolDialog" width="30%" center :show-close=false>
<p class="prot-dialog-tips-1">根据相关规定,在您开展履约之前,需要居民授权同意《云鹊平台隐私协议》,否则将导致履约量表部分信息无法录入</p>
<span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="isShowProtocolDialog = false"> 我知道了 </el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
...@@ -149,6 +156,7 @@ ...@@ -149,6 +156,7 @@
import NoEnough from './dialog/no-enough'; import NoEnough from './dialog/no-enough';
import ChangeReservation from "./dialog/change-reservation"; import ChangeReservation from "./dialog/change-reservation";
import followupDetail from "@/views/followup/record-manage/dialog/followupDetail"; import followupDetail from "@/views/followup/record-manage/dialog/followupDetail";
import { getFirstAccess } from '@/utils/followup/followapis'
export default { export default {
name: "reservation-list", name: "reservation-list",
components: { components: {
...@@ -161,7 +169,7 @@ ...@@ -161,7 +169,7 @@
data() { data() {
return { return {
/*面包屑配置*/ /*面包屑配置*/
curmbFirst: '随访管理', curmbFirst: '履约管理',
curmbSecond: '预约管理', curmbSecond: '预约管理',
/*面包屑配置*/ /*面包屑配置*/
labelWidth: '125px', //标题长度 labelWidth: '125px', //标题长度
...@@ -199,12 +207,17 @@ ...@@ -199,12 +207,17 @@
return row.fuPlanPatientTimesId; return row.fuPlanPatientTimesId;
}, },
statusTotal: null, //每种状态的总数 statusTotal: null, //每种状态的总数
isShowProtocolDialog: false,
} }
}, },
created() { created() {
}, },
mounted() { mounted() {
// 验证是否首次进入 ################
// this.init();
this.isFirstEnter();
if(this.$route.query.planName && this.$route.query.appointTime && this.$route.query.status) { if(this.$route.query.planName && this.$route.query.appointTime && this.$route.query.status) {
this.searchData.planName = this.$route.query.planName; this.searchData.planName = this.$route.query.planName;
this.searchData.planTimes = [this.$route.query.appointTime,this.$route.query.appointTime]; this.searchData.planTimes = [this.$route.query.appointTime,this.$route.query.appointTime];
...@@ -234,6 +247,15 @@ ...@@ -234,6 +247,15 @@
methods: { methods: {
...mapActions('reservationManage', ['getReservationList','getCheckReservation']), ...mapActions('reservationManage', ['getReservationList','getCheckReservation']),
...mapActions('recordManage', [ 'getEnteringInfo']), ...mapActions('recordManage', [ 'getEnteringInfo']),
// 验证是否首次进入 ################
isFirstEnter() {
getFirstAccess().then((res) => {
if(res.code == '000000') {
this.isShowProtocolDialog1 = res.data
}
});
},
handleSizeChangePre(pageSize) { handleSizeChangePre(pageSize) {
this.getReservationList({ this.getReservationList({
pageSize, pageSize,
...@@ -311,7 +333,7 @@ ...@@ -311,7 +333,7 @@
sendReservation() { sendReservation() {
// console.log('选择人员长度',this.selectionData.length) // console.log('选择人员长度',this.selectionData.length)
if(this.selectionData.length > 100) { if(this.selectionData.length > 100) {
this.$message.warning('每次最多选择100条单条随访进行预约!'); this.$message.warning('每次最多选择100条单条履约进行预约!');
return; return;
}else if(this.selectionData.length <= 0){ }else if(this.selectionData.length <= 0){
this.$message.warning('请选择要发送预约的居民!'); this.$message.warning('请选择要发送预约的居民!');
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
}, },
mounted(){ mounted(){
if(vm.storageIdType==2){ if(vm.storageIdType==2){
// vm.setFollowSide() vm.setFollowSide()
} }
}, },
watch: { watch: {
...@@ -170,15 +170,15 @@ ...@@ -170,15 +170,15 @@
} }
}, },
storageIdType(val,ov){ storageIdType(val,ov){
if(val==2){ // if(val==2){ // 调试时已经去掉了
// vm.setFollowSide() vm.setFollowSide()
} // } // 调试时已经去掉了
} }
}, },
methods: { methods: {
setFollowSide(){ setFollowSide(){
const followSider = { const followSider = {
title: '随访管理', title: '履约管理',
icon: 'el-icon-edit-outline', icon: 'el-icon-edit-outline',
index: 'followup', index: 'followup',
subs: [ subs: [
......
...@@ -27,8 +27,8 @@ export default { ...@@ -27,8 +27,8 @@ export default {
color: ["#FF9999", "#66CCFF"], color: ["#FF9999", "#66CCFF"],
text: '培训前后知识点掌握情况变化', text: '培训前后知识点掌握情况变化',
xAxisData: [ xAxisData: [
"转诊与随访", "转诊与履约",
"转诊与随访", "转诊与履约",
"周三", "周三",
"治疗原则及降压目标", "治疗原则及降压目标",
"周五", "周五",
...@@ -42,8 +42,8 @@ export default { ...@@ -42,8 +42,8 @@ export default {
color: ["#33FFFF", "#FF9999"], color: ["#33FFFF", "#FF9999"],
text: '不同学历培训前后正确率对比', text: '不同学历培训前后正确率对比',
xAxisData: [ xAxisData: [
"转诊与随访", "转诊与履约",
"转诊与随访", "转诊与履约",
"周三", "周三",
"治疗原则及降压目标", "治疗原则及降压目标",
"周五", "周五",
......
<template> <template>
<div class="select-patient-dialog"> <div class="select-patient-dialog">
<el-dialog <el-dialog
title="添加居民" :title="selectPatientDialogTitle"
:visible.sync="showSelectPatient" :visible.sync="showSelectPatient"
v-if="isShowSelectPatient" v-if="isShowSelectPatient"
:before-close="clickClose" :before-close="clickClose"
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
collapse-tags collapse-tags
filterable filterable
class="set-width" class="set-width"
placeholder="请选择随访计划" placeholder="请选择履约计划"
clearable> clearable>
<el-option <el-option
v-for="(item,index) in fuPlanOptions" v-for="(item,index) in fuPlanOptions"
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
<el-table-column <el-table-column
v-if="selectPatientType == 1" v-if="selectPatientType == 1"
prop="fuPlanName" prop="fuPlanName"
label="随访计划" label="履约计划"
align="center" align="center"
width="180" width="180"
:show-overflow-tooltip="true"> :show-overflow-tooltip="true">
...@@ -297,18 +297,23 @@ ...@@ -297,18 +297,23 @@
getRowKeys(row) { getRowKeys(row) {
return row.patientId; return row.patientId;
}, },
// 添加居民
} }
}, },
props: { props: {
isShowSelectPatient: Boolean, //是否显示model, isShowSelectPatient: Boolean, //是否显示model,
patientIdList: Array,// 确定已经选过的居民 patientIdList: Array,// 确定已经选过的居民
oldPatientIdList: Array,// 确定已经选过的居民 oldPatientIdList: Array,// 确定已经选过的居民
selectPatientType: Number, //获取居民列表所需字段,随访是1,分组是2,患教是3 selectPatientType: Number, //获取居民列表所需字段,履约是1,分组是2,患教是3
sourceId: { sourceId: {
type: String, type: String,
required: false, required: false,
default: '', default: '',
}, },
selectPatientDialogTitle: {
type: String,
default: '添加居民'
}
}, },
watch: { watch: {
isShowSelectPatient(val){ isShowSelectPatient(val){
...@@ -347,7 +352,7 @@ ...@@ -347,7 +352,7 @@
this.labelOptions = this.labelOptions.concat(res.data.labelNameList); this.labelOptions = this.labelOptions.concat(res.data.labelNameList);
}); });
// 获取随访计划列表 // 获取履约计划列表
getPlanList({ getPlanList({
pageNo: -1, pageNo: -1,
}).then(res => { }).then(res => {
...@@ -399,9 +404,9 @@ ...@@ -399,9 +404,9 @@
sex: this.searchData.sex, sex: this.searchData.sex,
searchCondition:this.searchData.searchCondition, searchCondition:this.searchData.searchCondition,
srvPackageId:this.srvPackageId, srvPackageId:this.srvPackageId,
addType: this.selectPatientType, //随访是1,分组是2,患教是3 addType: this.selectPatientType, //履约是1,分组是2,患教是3
fuPlanIdList: this.searchData.fuPlanIdList || [], fuPlanIdList: this.searchData.fuPlanIdList || [],
sourceId: this.sourceId, //若是随访的话,传planId;若是分组的话,传labeledId; sourceId: this.sourceId, //若是履约的话,传planId;若是分组的话,传labeledId;
icdCodeList: this.searchData.icdCodeList icdCodeList: this.searchData.icdCodeList
} }
getPatientInfoList(data).then(res=>{ getPatientInfoList(data).then(res=>{
...@@ -435,7 +440,7 @@ ...@@ -435,7 +440,7 @@
}else { }else {
item.showDiseaseNames = '-'; item.showDiseaseNames = '-';
} }
//针对随访项目 //针对履约项目
if(this.patientIdList.length > 0){ if(this.patientIdList.length > 0){
if(this.patientIdList.includes(item.patientId)){// 如果已经选过居民 if(this.patientIdList.includes(item.patientId)){// 如果已经选过居民
this.$nextTick(()=>{ this.$nextTick(()=>{
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<section class="not-complete-content screenSet"> <section class="not-complete-content screenSet">
<h1 class="page-title">资料不全居民</h1> <h1 class="page-title">资料不全居民</h1>
<p class="tip" v-if="notCompleteList.length"> <p class="tip" v-if="notCompleteList.length">
<span class="fontGreen">{{pagination.totalRows}}</span>居民仅通过微信扫码与您绑定,但未完善姓名、手机号等关键信息。提醒居民完善信息后,您将可以对居民进行消息推送和随访计划设置。 <span class="fontGreen">{{pagination.totalRows}}</span>居民仅通过微信扫码与您绑定,但未完善姓名、手机号等关键信息。提醒居民完善信息后,您将可以对居民进行消息推送和履约计划设置。
<el-button type="primary" style="float: right;" size="small" @click="sendCompleteMessageMultiple">批量提醒</el-button> <el-button type="primary" style="float: right;" size="small" @click="sendCompleteMessageMultiple">批量提醒</el-button>
</p> </p>
<el-table <el-table
......
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册