Compare commits
No commits in common. "dev" and "main" have entirely different histories.
@ -5,12 +5,7 @@ VUE_APP_TITLE = 新医路院后患者管理平台
|
||||
ENV = 'development'
|
||||
|
||||
# 新医路院后患者管理平台/开发环境
|
||||
# VUE_APP_BASE_API = 'http://192.168.20.37:19090'
|
||||
# VUE_APP_BASE_API = 'http://8.131.93.145:54011'
|
||||
# VUE_APP_BASE_API = 'http://192.168.0.95:9090'
|
||||
# VUE_APP_BASE_API = 'https://1608.xinelu.cn'
|
||||
VUE_APP_BASE_API = 'http://192.168.124.7:19090'
|
||||
|
||||
VUE_APP_BASE_API = 'http://192.168.16.48:8080'
|
||||
|
||||
# 路由懒加载
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
||||
@ -5,9 +5,4 @@ VUE_APP_TITLE = 新医路院后患者管理平台
|
||||
ENV = 'production'
|
||||
|
||||
# 新医路院后患者管理平台/生产环境
|
||||
# VUE_APP_BASE_API = 'http://192.168.20.37:19090'
|
||||
# VUE_APP_BASE_API = 'http://8.131.93.145:54011'
|
||||
# VUE_APP_BASE_API = 'http://192.168.0.95:9090'
|
||||
# VUE_APP_BASE_API = 'https://1608.xinelu.cn'
|
||||
VUE_APP_BASE_API = 'http://192.168.124.7:19090'
|
||||
|
||||
VUE_APP_BASE_API = 'http://192.168.16.76:8080'
|
||||
|
||||
@ -7,8 +7,4 @@ NODE_ENV = production
|
||||
ENV = 'staging'
|
||||
|
||||
# 新医路院后患者管理平台/测试环境
|
||||
# VUE_APP_BASE_API = 'http://192.168.20.37:19090'
|
||||
# VUE_APP_BASE_API = 'http://8.131.93.145:54011'
|
||||
# VUE_APP_BASE_API = 'http://192.168.0.95:9090'
|
||||
# VUE_APP_BASE_API = 'https://1608.xinelu.cn'
|
||||
VUE_APP_BASE_API = 'http://192.168.124.7:19090'
|
||||
VUE_APP_BASE_API = '/stage-api'
|
||||
|
||||
@ -1,28 +0,0 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询列表
|
||||
export function uploadRobotPublishRecord(query) {
|
||||
return request({
|
||||
url: '/manage/signnode/uploadRobotPublishRecord',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 问卷列表
|
||||
|
||||
export function selectQuestionInfoList(query) {
|
||||
return request({
|
||||
url: '/system/question/selectQuestionInfoList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 问卷详情列表
|
||||
export function questionnaireTaskOptionList(query) {
|
||||
return request({
|
||||
url: '/system/statistics/questionnaireTaskOptionList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
@ -42,9 +42,3 @@ export function delCrowdInfo(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function type(dictValue) {
|
||||
return request({
|
||||
url: '/system/dict/data/type/' + dictValue,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
@ -1,61 +0,0 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询导入批次列表
|
||||
export function patientInfoImportBatchlist(query) {
|
||||
return request({
|
||||
url: '/manage/patientInfoimportmain/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 删除导入
|
||||
export function updateSn(sn) {
|
||||
return request({
|
||||
url: `/manage/patientInfoimportmain/updateSn?sn=${sn}`,
|
||||
method: 'POST'
|
||||
})
|
||||
}
|
||||
|
||||
//删除导入明细
|
||||
export function updatePatientInfoImport(data) {
|
||||
return request({
|
||||
url: `/manage/patientInfoimportmain/updatePatientInfoImport`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询最后一条信息
|
||||
export function outboundConfirmation() {
|
||||
return request({
|
||||
url: '/manage/signroute/outboundConfirmation',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
// 确认按钮
|
||||
export function directOutbound(data) {
|
||||
return request({
|
||||
url: `/manage/signroute/directOutbound`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取医院外呼时间起止详细信息
|
||||
export function selectDialTime() {
|
||||
return request({
|
||||
url: `/manage/patientInfoimportmain/selectDialTime`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
// 新增医院外呼时间起止
|
||||
export function addDialTime(data) {
|
||||
return request({
|
||||
url: `/manage/patientInfoimportmain/addDialTime`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -1,18 +0,0 @@
|
||||
import request from '@/utils/request'
|
||||
// 删除
|
||||
export function batchDeleteTask(query) {
|
||||
return request({
|
||||
url: '/manage/signroute/batchDeleteTask',
|
||||
method: 'post',
|
||||
data: query
|
||||
|
||||
})
|
||||
}
|
||||
// 查询列表
|
||||
export function taskManagement(query) {
|
||||
return request({
|
||||
url: '/manage/signroute/taskManagement',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
@ -1,26 +0,0 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 问卷任务统计右侧列表
|
||||
export function questionnaireTaskStatistics(query) {
|
||||
return request({
|
||||
url: '/system/statistics/questionnaireTaskStatistics',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 问卷任务统计左侧列表
|
||||
export function selectQuestionInfoList(query) {
|
||||
return request({
|
||||
url: '/system/question/selectQuestionInfoList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 问卷分页
|
||||
export function list(query) {
|
||||
return request({
|
||||
url: '/system/question/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
@ -49,31 +49,3 @@ export function delDepartment(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 导入
|
||||
export function patientUpload(data) {
|
||||
return request({
|
||||
url: '/manage/patientInfo/patientUpload',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 导入提交
|
||||
|
||||
export function secondaryUpload(data) {
|
||||
return request({
|
||||
url: '/manage/patientInfo/secondaryUpload',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 数量
|
||||
export function count(query) {
|
||||
return request({
|
||||
url: '/system/config/configKey/aiob_max_count',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
@ -5,22 +5,4 @@ export function manualFollowUpList(query) {
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//创建实时呼叫任务
|
||||
export function createActualTimeTask(query) {
|
||||
return request({
|
||||
url: '/manage/signroute/createActualTimeTask',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
//AI通话获取录音
|
||||
export function getPhoneDialVideo(id) {
|
||||
return request({
|
||||
url: `/manage/signnode/getPhoneDialVideo/${id}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 随访明细表查询
|
||||
export function getFollowUpDetail(query) {
|
||||
return request({
|
||||
url: '/system/statistics/getFollowUpDetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 随访成功率统计
|
||||
export function getFollowUpRate(query) {
|
||||
return request({
|
||||
url: `/system/statistics/getFollowUpRate`,
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 265 B |
Binary file not shown.
|
Before Width: | Height: | Size: 3.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.0 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 7.3 KiB |
@ -324,9 +324,6 @@ export default {
|
||||
this.Quill = null;
|
||||
},
|
||||
methods: {
|
||||
getEditor() {
|
||||
return this.Quill;
|
||||
},
|
||||
// 分页
|
||||
updateCPagefour(index, size) {
|
||||
this.querymaterial.pageNum = index
|
||||
@ -574,11 +571,6 @@ button.ql-scmages {
|
||||
margin-left: -14px;
|
||||
margin-top: -8px;
|
||||
width: 24px !important;
|
||||
cursor: none;
|
||||
-webkit-user-select: none; /* 针对WebKit浏览器的兼容性设置 */
|
||||
-moz-user-select: none; /* 针对Firefox浏览器的兼容性设置 */
|
||||
-ms-user-select: none; /* 针对IE浏览器的兼容性设置 */
|
||||
user-select: none; /* 标准属性 */
|
||||
}
|
||||
.bodytopxjsc {
|
||||
width: 100%;
|
||||
|
||||
@ -225,6 +225,7 @@ export default {
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -78,9 +78,6 @@ export default {
|
||||
height: 15px !important;
|
||||
background-color: #FAFAFA !important;
|
||||
}
|
||||
::v-deep .el-scrollbar__bar{
|
||||
width: 12px !important;
|
||||
}
|
||||
|
||||
::v-deep .el-table {
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ const service = axios.create({
|
||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
baseURL: process.env.VUE_APP_BASE_API,
|
||||
// 超时
|
||||
timeout: 1800000
|
||||
timeout: 10000
|
||||
})
|
||||
|
||||
// request拦截器
|
||||
@ -61,28 +61,28 @@ service.interceptors.request.use(config => {
|
||||
}
|
||||
return config
|
||||
}, error => {
|
||||
console.log(error)
|
||||
Promise.reject(error)
|
||||
console.log(error)
|
||||
Promise.reject(error)
|
||||
})
|
||||
|
||||
// 响应拦截器
|
||||
service.interceptors.response.use(res => {
|
||||
// 未设置状态码则默认成功状态
|
||||
const code = res.data.code || 200;
|
||||
// 获取错误信息
|
||||
const msg = errorCode[code] || res.data.msg || errorCode['default']
|
||||
// 二进制数据则直接返回
|
||||
if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
|
||||
return res.data
|
||||
}
|
||||
if (code === 401) {
|
||||
if (!isRelogin.show) {
|
||||
isRelogin.show = true;
|
||||
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
|
||||
confirmButtonText: '重新登录',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
// 未设置状态码则默认成功状态
|
||||
const code = res.data.code || 200;
|
||||
// 获取错误信息
|
||||
const msg = errorCode[code] || res.data.msg || errorCode['default']
|
||||
// 二进制数据则直接返回
|
||||
if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){
|
||||
return res.data
|
||||
}
|
||||
if (code === 401) {
|
||||
if (!isRelogin.show) {
|
||||
isRelogin.show = true;
|
||||
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
|
||||
confirmButtonText: '重新登录',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
).then(() => {
|
||||
isRelogin.show = false;
|
||||
store.dispatch('LogOut').then(() => {
|
||||
@ -92,28 +92,22 @@ service.interceptors.response.use(res => {
|
||||
isRelogin.show = false;
|
||||
});
|
||||
}
|
||||
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
|
||||
} else if (code === 500) {
|
||||
Message({
|
||||
message: msg,
|
||||
type: 'error'
|
||||
})
|
||||
return Promise.reject(new Error(msg))
|
||||
} else if (code !== 200) {
|
||||
Notification.error({
|
||||
title: msg
|
||||
})
|
||||
return Promise.reject('error')
|
||||
} else {
|
||||
if (res.config.url == '/manage/signroute/add' && window.location.pathname != "/patient/ManuallyCreatingTasks") {
|
||||
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
|
||||
} else if (code === 500) {
|
||||
Message({
|
||||
message: "创建任务已完成,正在拨打电话!",
|
||||
type: 'success'
|
||||
message: msg,
|
||||
type: 'error'
|
||||
})
|
||||
return Promise.reject(new Error(msg))
|
||||
} else if (code !== 200) {
|
||||
Notification.error({
|
||||
title: msg
|
||||
})
|
||||
return Promise.reject('error')
|
||||
} else {
|
||||
return res.data
|
||||
}
|
||||
return res.data
|
||||
}
|
||||
},
|
||||
},
|
||||
error => {
|
||||
console.log('err' + error)
|
||||
let { message } = error;
|
||||
|
||||
@ -291,7 +291,7 @@ export default {
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 10x;
|
||||
width: 5px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
@ -304,8 +304,8 @@ export default {
|
||||
}
|
||||
|
||||
.left {
|
||||
height: calc(100vh - 119px);
|
||||
// height: 100%;
|
||||
// height: calc(100vh - 119px);
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
position: relative;
|
||||
padding-right: 10px;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -72,8 +72,8 @@ export default {
|
||||
return {
|
||||
codeUrl: "",
|
||||
loginForm: {
|
||||
username: "",
|
||||
password: "",
|
||||
username: "admin",
|
||||
password: "admin123",
|
||||
rememberMe: false,
|
||||
code: "",
|
||||
uuid: ""
|
||||
|
||||
@ -1,545 +0,0 @@
|
||||
<template>
|
||||
<div class="app-container" ref="layout">
|
||||
<div ref="topform" class="form">
|
||||
<SearchFilter :labelWidths="310" labelWidth="90px" size="small" @search="handleQuery" @reset="resetQuery"
|
||||
@minShowCtrol="getMaxTableHeight" @handleRules="handleRules">
|
||||
<el-form-item label="姓名" prop="patientName">
|
||||
<el-input v-model="queryParams.patientName" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery"
|
||||
style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="patientPhone">
|
||||
<el-input v-model="queryParams.patientPhone" placeholder="请输入联系电话" clearable @keyup.enter.native="handleQuery"
|
||||
style="width: 200px" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="诊断" prop="mainDiagnosis">
|
||||
<el-input v-model="queryParams.mainDiagnosis" placeholder="请输入诊断" clearable style="width: 200px"
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="患者来源" prop="patientSource">
|
||||
<el-select v-model="queryParams.patientSource" placeholder="请选择患者来源" clearable style="width: 200px">
|
||||
<el-option v-for="dict in dict.type.patient_source" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="就诊方式" prop="visitMethod">
|
||||
<el-select v-model="queryParams.visitMethod" placeholder="请选择就诊方式" clearable style="width: 200px">
|
||||
<el-option v-for="dict in dict.type.visit_method" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="就诊时间" prop="visitDateStart">
|
||||
<el-date-picker v-model="visitDate" type="daterange" range-separator="至" start-placeholder="开始日期"
|
||||
style="width: 200px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="医院" prop="hospitalAgencyId">
|
||||
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width: 200px"
|
||||
clearable @clear="clearhospitalAgency" @change="changehospitalAgency">
|
||||
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="院区" prop="campusAgencyId">
|
||||
<el-select v-model="queryParams.campusAgencyId" filterable placeholder="请选择院区" style="width: 200px" clearable
|
||||
@clear="clearcampusAgency" @change="changecampusAgency">
|
||||
<el-option v-for="item in campusAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="科室" prop="departmentId">
|
||||
<el-select v-model="queryParams.departmentId" filterable placeholder="请选择科室" style="width: 200px" clearable
|
||||
@clear="cleardepartment" @change="changedepartment">
|
||||
<el-option v-for="item in departmentlist" :key="item.id" :label="item.departmentName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="病区" prop="wardId">
|
||||
<el-select v-model="queryParams.wardId" filterable placeholder="请选择病区" style="width: 200px" clearable>
|
||||
<el-option v-for="item in wardlist" :key="item.id" :label="item.departmentName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="主治医生" prop="attendingPhysicianId">
|
||||
<el-select v-model="queryParams.attendingPhysicianId" style="width: 200px" filterable placeholder="请选择主治医生"
|
||||
clearable>
|
||||
<el-option v-for="item in attendingPhysicianlist" :key="item.userId" :label="item.nickName"
|
||||
:value="item.userId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item> -->
|
||||
</SearchFilter>
|
||||
</div>
|
||||
<div ref="table">
|
||||
<el-table :max-height="maxTableHeight" v-loading="loading" :data="patientInfoList">
|
||||
<el-table-column label="序号" type="index" width="48" align="center" />
|
||||
<el-table-column label="姓名" align="center" prop="patientName" />
|
||||
<el-table-column label="联系电话" align="center" prop="patientPhone" />
|
||||
<el-table-column label="年龄" align="center" prop="age" />
|
||||
<el-table-column label="医院" align="center" prop="hospitalAgencyName" />
|
||||
<el-table-column label="科室名称" align="center" prop="departmentName" />
|
||||
<el-table-column label="导入日期" align="center" prop="visitDate">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.Timeimport, "{y}-{m}-{d}") }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="诊断" align="center" prop="mainDiagnosis" />
|
||||
<!-- <el-table-column label="性别" align="center" prop="sex">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.sex == "MALE" ? "男" : "" }}
|
||||
{{ scope.row.sex == "FEMALE" ? "女" : "" }}
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<!-- <el-table-column label="出生日期" align="center" prop="birthDate" width="130" />
|
||||
<el-table-column label="院区" align="center" prop="campusAgencyName" width="130" />
|
||||
<el-table-column label="病区名称" align="center" prop="wardName" width="130" />
|
||||
<el-table-column label="住院/门诊号" align="center" prop="inHospitalNumber" width="130" />
|
||||
<el-table-column label="主治医生" align="center" prop="attendingPhysicianName" />
|
||||
<el-table-column label="就诊方式" align="center" prop="visitMethod">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.visit_method" :value="scope.row.visitMethod" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="患者来源" align="center" prop="patientSource">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.patient_source" :value="scope.row.patientSource" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="住址" align="center" prop="address" /> -->
|
||||
<el-table-column label="操作" align="center" fixed="right" width="130">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:patientInfo:edit']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['manage:patientInfo:remove']">删除</el-button> -->
|
||||
<el-button size="mini" type="text" @click="handOutbound(scope.row)">外呼</el-button>
|
||||
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)">详情</el-button>
|
||||
<el-button size="mini" type="text" @click="handleDelete(scope.row)">删除</el-button>
|
||||
<!-- <el-button size="mini" type="text" @click="handleedit(scope.row)">画像编辑</el-button> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum" :indexFrom="queryParams.pageSize" @updateCPage="updateCPage"></myPagination>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getPatientList } from "@/api/manage/patientInfo";
|
||||
import { getAge } from "@/utils/age";
|
||||
import {
|
||||
selectAgencyList,
|
||||
getDepartmentList,
|
||||
getAgencyList,
|
||||
} from "@/api/manage/selectAgencyList";
|
||||
import { usergetList } from "@/api/unitconfig/patientConfiguration";
|
||||
import SearchFilter from "../../components/SearchForm.vue";
|
||||
import cardlist from "../components/cardlist.vue";
|
||||
import { updatePatientInfoImport } from "@/api/manage/patientInfoImport";
|
||||
|
||||
export default {
|
||||
name: "PatientInfo",
|
||||
dicts: ["patient_type", "visit_method", "sign_status", "patient_source"],
|
||||
components: { SearchFilter, cardlist },
|
||||
data() {
|
||||
return {
|
||||
searchData: {},
|
||||
maxTableHeight: undefined,
|
||||
attendingPhysicianlist: [],
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 患者信息表格数据
|
||||
patientInfoList: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 100,
|
||||
sn: this.$route.query.sn,
|
||||
patientName: null,
|
||||
patientPhone: null,
|
||||
birthDate: null,
|
||||
patientType: null,
|
||||
visitMethod: null,
|
||||
mainDiagnosis: null,
|
||||
attendingPhysicianId: null,
|
||||
hospitalAgencyId: null,
|
||||
hospitalAgencyName: null,
|
||||
campusAgencyId: null,
|
||||
campusAgencyName: null,
|
||||
departmentId: null,
|
||||
departmentName: null,
|
||||
wardId: null,
|
||||
wardName: null,
|
||||
surgicalName: null,
|
||||
admissionTimeStart: null,
|
||||
admissionTimeEnd: null,
|
||||
outpatientNumber: null,
|
||||
visitDateStart: null,
|
||||
visitDateEnd: null,
|
||||
dischargeMethod: null,
|
||||
patientSource: null,
|
||||
},
|
||||
visitDate: [],
|
||||
admissionTime: [],
|
||||
//医院list
|
||||
hospitalAgencylist: [],
|
||||
// 院区list
|
||||
campusAgencylist: [],
|
||||
//科室list
|
||||
departmentlist: [],
|
||||
//病区list
|
||||
wardlist: [],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
type: {
|
||||
handler(val) {
|
||||
// if (val == "table") {
|
||||
// this.queryParams.pageSize = 10;
|
||||
// this.indexFrom = "";
|
||||
// } else if (val == "card") {
|
||||
// this.indexFrom = 100;
|
||||
// }
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.selectAgencyinfo();
|
||||
},
|
||||
mounted() {
|
||||
this.getMaxTableHeight();
|
||||
this.screenChange();
|
||||
},
|
||||
methods: {
|
||||
updateCPage(index, size) {
|
||||
this.queryParams.pageNum = index;
|
||||
this.queryParams.pageSize = size;
|
||||
this.getList();
|
||||
},
|
||||
//主治医生
|
||||
usergetListinfo() {
|
||||
usergetList({
|
||||
hospitalAgencyId: this.queryParams.hospitalAgencyId,
|
||||
postName: "DOCTOR",
|
||||
}).then((res) => {
|
||||
this.attendingPhysicianlist = res.data;
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
var obj = {
|
||||
sn: this.$route.query.sn,
|
||||
patientName: row.patientName,
|
||||
patientPhone: row.patientPhone
|
||||
}
|
||||
this.$modal.confirm('是否确认删除?').then(function () {
|
||||
return updatePatientInfoImport(obj);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => { });
|
||||
},
|
||||
/** 详情操作 */
|
||||
handleAuthRole(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/patientdetails",
|
||||
query: {
|
||||
path: "/patient/patientInfo",
|
||||
patientId: row.id,
|
||||
patientName: row.patientName,
|
||||
patientPhone: row.patientPhone,
|
||||
familyMemberPhone: row.familyMemberPhone,
|
||||
cardNo: row.cardNo,
|
||||
address: row.address,
|
||||
mainDiagnosis: row.mainDiagnosis,
|
||||
hospitalAgencyName: row.hospitalAgencyName,
|
||||
campusAgencyName: row.campusAgencyName,
|
||||
departmentName: row.departmentName,
|
||||
wardName: row.wardName,
|
||||
certificateIssuingDoctorName: row.certificateIssuingDoctorName,
|
||||
appointmentTreatmentGroup: row.appointmentTreatmentGroup,
|
||||
responsibleNurse: row.responsibleNurse,
|
||||
registrationNo: row.registrationNo,
|
||||
registrationDate: row.registrationDate,
|
||||
appointmentDate: row.appointmentDate,
|
||||
sex: row.sex,
|
||||
birthDate: row.birthDate,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.age,
|
||||
},
|
||||
});
|
||||
},
|
||||
handOutbound(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/ManuallyCreatingTasks",
|
||||
query: {
|
||||
path: "/patient/ImportDetails",
|
||||
signPatientRecordId: row.signPatientRecordId ? row.signPatientRecordId : '',
|
||||
patientId: row.id ? row.id : '',
|
||||
patientName: row.patientName ? row.patientName : '',
|
||||
departmentId: row.departmentId ? row.departmentId : '',
|
||||
departmentName: row.departmentName ? row.departmentName : '',
|
||||
},
|
||||
});
|
||||
},
|
||||
// 画像编辑
|
||||
handleedit(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/Portraitedit",
|
||||
query: {
|
||||
path: "/patient/patientInfo",
|
||||
patientId: row.id,
|
||||
cardNo: row.cardNo,
|
||||
patientName: row.patientName,
|
||||
patientPhone: row.patientPhone,
|
||||
sex: row.sex,
|
||||
birthDate: row.birthDate,
|
||||
familyMemberPhone: row.familyMemberPhone,
|
||||
address: row.address,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
hospitalAgencyName: row.hospitalAgencyName,
|
||||
mainDiagnosis: row.mainDiagnosis,
|
||||
age: row.age,
|
||||
},
|
||||
});
|
||||
},
|
||||
/** 查询患者信息列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: "数据加载中",
|
||||
spinner: "el-icon-loading",
|
||||
background: "rgba(0, 0, 0, 0.7)",
|
||||
});
|
||||
getPatientList(this.queryParams).then((response) => {
|
||||
response.rows.forEach((e) => {
|
||||
e.birthDate ? (e.age = getAge(e.birthDate)) : e.age;
|
||||
});
|
||||
response.rows.forEach((e) => {
|
||||
e.Timeimport = this.$route.query.Timeimport
|
||||
});
|
||||
|
||||
this.patientInfoList = response.rows;
|
||||
this.total = response.total;
|
||||
loading.close();
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleRules() {
|
||||
this.getList()
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
if (this.visitDate?.length > 0) {
|
||||
this.queryParams.visitDateStart = this.visitDate[0];
|
||||
this.queryParams.visitDateEnd = this.visitDate[1];
|
||||
} else {
|
||||
this.queryParams.visitDateStart = null;
|
||||
this.queryParams.visitDateEnd = null;
|
||||
}
|
||||
if (this.admissionTime?.length > 0) {
|
||||
this.queryParams.admissionTimeStart = this.admissionTime[0];
|
||||
this.queryParams.admissionTimeEnd = this.admissionTime[1];
|
||||
} else {
|
||||
this.queryParams.admissionTimeStart = null;
|
||||
this.queryParams.admissionTimeEnd = null;
|
||||
}
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.queryParams = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
};
|
||||
// if (this.type == "card") {
|
||||
// this.queryParams = {
|
||||
// pageNum: 1,
|
||||
// pageSize: 100,
|
||||
// };
|
||||
// } else {
|
||||
// this.queryParams = {
|
||||
// pageNum: 1,
|
||||
// pageSize: 10,
|
||||
// };
|
||||
// }
|
||||
|
||||
this.admissionTime = [];
|
||||
this.queryParams.admissionTimeStart = null;
|
||||
this.queryParams.admissionTimeEnd = null;
|
||||
this.visitDate = [];
|
||||
this.queryParams.visitDateStart = null;
|
||||
this.queryParams.visitDateEnd = null;
|
||||
this.handleQuery();
|
||||
},
|
||||
selectAgencyinfo() {
|
||||
let query = {
|
||||
agencyStatus: "ON",
|
||||
nodeType: "HOSPITAL",
|
||||
};
|
||||
selectAgencyList(query).then((res) => {
|
||||
this.hospitalAgencylist = res.data;
|
||||
});
|
||||
},
|
||||
//获取下级单位
|
||||
getAgencyListinfo(nodeType, id) {
|
||||
let query = {
|
||||
nodeType: nodeType,
|
||||
};
|
||||
if (nodeType == "HOSPITAL") {
|
||||
query.hospitalId = id;
|
||||
} else if (nodeType == "CAMPUS") {
|
||||
query.campusId = id;
|
||||
} else if (nodeType == "DEPARTMENT") {
|
||||
query.departmentId = id;
|
||||
}
|
||||
getAgencyList(query).then((res) => {
|
||||
if (nodeType == "HOSPITAL") {
|
||||
this.campusAgencylist = res.data.campusList;
|
||||
this.departmentlist = res.data.departmentList;
|
||||
} else if (nodeType == "CAMPUS") {
|
||||
this.departmentlist = res.data.departmentList;
|
||||
}
|
||||
this.wardlist = res.data.wardList;
|
||||
});
|
||||
},
|
||||
//选中医院获取院区
|
||||
changehospitalAgency(id) {
|
||||
this.getAgencyListinfo("HOSPITAL", id);
|
||||
// let query = {
|
||||
// agencyStatus: 'ON',
|
||||
// nodeType: 'CAMPUS',
|
||||
// parentId: id,
|
||||
// }
|
||||
// selectAgencyList(query).then(res => {
|
||||
// this.campusAgencylist = res.data
|
||||
this.queryParams.campusAgencyId = null;
|
||||
this.queryParams.departmentId = null;
|
||||
this.queryParams.wardId = null;
|
||||
this.queryParams.attendingPhysicianId = null;
|
||||
// })
|
||||
//医生
|
||||
this.usergetListinfo();
|
||||
},
|
||||
//选中院区获取科室
|
||||
changecampusAgency(id) {
|
||||
this.getAgencyListinfo("CAMPUS", id);
|
||||
// let query = {
|
||||
// nodeType: 'DEPARTMENT',
|
||||
// hospitalAgencyId: id,
|
||||
// }
|
||||
// getDepartmentList(query).then(res => {
|
||||
// this.departmentlist = res.data
|
||||
this.queryParams.departmentId = null;
|
||||
this.queryParams.wardId = null;
|
||||
// })
|
||||
},
|
||||
//选中科室获取病区
|
||||
changedepartment(id) {
|
||||
this.getAgencyListinfo("DEPARTMENT", id);
|
||||
// let query = {
|
||||
// nodeType: 'WARD',
|
||||
// parentDepartmentId: id,
|
||||
// }
|
||||
// getDepartmentList(query).then(res => {
|
||||
// this.wardlist = res.data
|
||||
this.queryParams.wardId = null;
|
||||
// })
|
||||
},
|
||||
//清空医院
|
||||
clearhospitalAgency() {
|
||||
this.queryParams.campusAgencyId = null;
|
||||
this.queryParams.departmentId = null;
|
||||
this.queryParams.wardId = null;
|
||||
this.queryParams.attendingPhysicianId = null;
|
||||
setTimeout(() => {
|
||||
this.attendingPhysicianlist = [];
|
||||
}, 1000);
|
||||
},
|
||||
//清空院区
|
||||
clearcampusAgency() {
|
||||
this.queryParams.departmentId = null;
|
||||
this.queryParams.wardId = null;
|
||||
this.getAgencyListinfo("HOSPITAL", this.queryParams.hospitalAgencyId);
|
||||
},
|
||||
//清空科室
|
||||
cleardepartment() {
|
||||
this.queryParams.wardId = null;
|
||||
if (this.queryParams.departmentId) {
|
||||
this.getAgencyListinfo("DEPARTMENT", this.queryParams.departmentId);
|
||||
} else if (this.queryParams.campusAgencyId) {
|
||||
this.getAgencyListinfo("CAMPUS", this.queryParams.campusAgencyId);
|
||||
} else if (this.queryParams.hospitalAgencyId) {
|
||||
this.getAgencyListinfo("HOSPITAL", this.queryParams.hospitalAgencyId);
|
||||
}
|
||||
},
|
||||
// 获取表格最高高度
|
||||
getMaxTableHeight() {
|
||||
const windowInnerHeight = window.innerHeight; // 屏幕可视高度
|
||||
const layoutDiv = this.$refs.layout;
|
||||
const formDiv = this.$refs.topform;
|
||||
const mb8Div = this.$refs.mb8;
|
||||
this.maxTableHeight = windowInnerHeight - 134 - this.getBoxPadding(layoutDiv) - this.getBoxHeight(mb8Div) - this.getBoxHeight(formDiv);
|
||||
},
|
||||
// 屏幕resize监听
|
||||
screenChange() {
|
||||
// 屏幕resize监听事件:一旦屏幕宽高发生变化,就会执行resize
|
||||
window.addEventListener("resize", this.getMaxTableHeight, true);
|
||||
// 将屏幕监听事件移除
|
||||
// 这步是必须的。离开页面时不移除,再返回,或者进入到别的有相同元素的页面会报错
|
||||
// 或者将这里的方法直接写在beforeDestroy函数中也可以
|
||||
this.$once("hook:beforeDestroy", () => {
|
||||
window.removeEventListener("resize", this.getMaxTableHeight, true);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.cardlist {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.carditem {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
width: 260px;
|
||||
min-height: 200px;
|
||||
border: 1px solid #dcdfe6;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
::v-deep .el-table__body-wrapper {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
::v-deep .el-form {
|
||||
width: 100%;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.form {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// ::v-deep .el-table {
|
||||
// overflow: hidden;
|
||||
// }</style>
|
||||
@ -1,557 +0,0 @@
|
||||
<template>
|
||||
<div class="app-container" ref="layout">
|
||||
<div ref="topform" class="form">
|
||||
<SearchFilter :labelWidths="280" labelWidth="90px" size="small" @search="handleQuery" @reset="resetQuery"
|
||||
@minShowCtrol="getMaxTableHeight" @handleRules="handleRules">
|
||||
|
||||
<el-form-item label="患者姓名" prop="patientName">
|
||||
<el-input v-model="queryParams.patientName" placeholder="请输入患者姓名" clearable @keyup.enter.native="handleQuery"
|
||||
style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="患者电话" prop="patientPhone">
|
||||
<el-input v-model="queryParams.patientPhone" placeholder="请输入患者电话" clearable @keyup.enter.native="handleQuery"
|
||||
style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="cardNo">
|
||||
<el-input v-model="queryParams.cardNo" placeholder="请输入患者身份证号" clearable @keyup.enter.native="handleQuery"
|
||||
style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="诊断" prop="mainDiagnosis">
|
||||
<el-input v-model="queryParams.mainDiagnosis" placeholder="请输入诊断" clearable style="width: 200px"
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="患者来源" prop="patientSource">
|
||||
<el-select v-model="queryParams.patientSource" placeholder="请选择患者来源" clearable style="width: 200px">
|
||||
<el-option v-for="dict in dict.type.patient_source" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="就诊方式" prop="visitMethod">
|
||||
<el-select v-model="queryParams.visitMethod" placeholder="请选择就诊方式" clearable style="width: 200px">
|
||||
<el-option v-for="dict in dict.type.visit_method" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="就诊时间" prop="visitDateStart">
|
||||
<el-date-picker v-model="visitDate" type="daterange" range-separator="至" start-placeholder="开始日期"
|
||||
style="width: 200px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="医院" prop="hospitalAgencyId">
|
||||
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width: 200px"
|
||||
clearable @clear="clearhospitalAgency" @change="changehospitalAgency">
|
||||
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="院区" prop="campusAgencyId">
|
||||
<el-select v-model="queryParams.campusAgencyId" filterable placeholder="请选择院区" style="width: 200px" clearable
|
||||
@clear="clearcampusAgency" @change="changecampusAgency">
|
||||
<el-option v-for="item in campusAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="科室" prop="departmentId">
|
||||
<el-select v-model="queryParams.departmentId" filterable placeholder="请选择科室" style="width: 200px" clearable
|
||||
@clear="cleardepartment" @change="changedepartment">
|
||||
<el-option v-for="item in departmentlist" :key="item.id" :label="item.departmentName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="病区" prop="wardId">
|
||||
<el-select v-model="queryParams.wardId" filterable placeholder="请选择病区" style="width: 200px" clearable>
|
||||
<el-option v-for="item in wardlist" :key="item.id" :label="item.departmentName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="主治医生" prop="attendingPhysicianId">
|
||||
<el-select v-model="queryParams.attendingPhysicianId" style="width: 200px" filterable placeholder="请选择主治医生"
|
||||
clearable>
|
||||
<el-option v-for="item in attendingPhysicianlist" :key="item.userId" :label="item.nickName"
|
||||
:value="item.userId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item> -->
|
||||
</SearchFilter>
|
||||
|
||||
|
||||
</div>
|
||||
<div ref="table">
|
||||
<el-table :max-height="maxTableHeight" v-loading="loading" :data="patientInfoList">
|
||||
<el-table-column label="序号" type="index" width="48" align="center" />
|
||||
<el-table-column label="患者姓名" align="center" prop="patientName" />
|
||||
<el-table-column label="患者电话" align="center" prop="patientPhone" width="120" />
|
||||
<el-table-column label="性别" align="center" prop="sex">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.sex == "MALE" ? "男" : "" }}
|
||||
{{ scope.row.sex == "FEMALE" ? "女" : "" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年龄" align="center" prop="age" />
|
||||
<el-table-column label="出生日期" align="center" prop="birthDate" width="130" />
|
||||
<!-- <el-table-column label="签约状态" align="center" prop="signStatus">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.sign_status" :value="scope.row.signStatus" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="签约时间" align="center" prop="signTime" width='130'>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.signTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<!-- <el-table-column label="开证医生" align="center" prop="certificateIssuingDoctor" /> -->
|
||||
<el-table-column label="就诊时间" align="center" prop="visitDate" width="130">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.visitDate, "{y}-{m}-{d}") }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="诊断" align="center" prop="mainDiagnosis" />
|
||||
<!-- <el-table-column label="入院时间" align="center" prop="admissionTime" width='130' /> -->
|
||||
<el-table-column label="医院" align="center" prop="hospitalAgencyName" width="130" />
|
||||
<el-table-column label="院区" align="center" prop="campusAgencyName" width="130" />
|
||||
<el-table-column label="科室名称" align="center" prop="departmentName" width="130" />
|
||||
<el-table-column label="病区名称" align="center" prop="wardName" width="130" />
|
||||
<el-table-column label="住院/门诊号" align="center" prop="inHospitalNumber" width="130" />
|
||||
<el-table-column label="主治医生" align="center" prop="attendingPhysicianName" />
|
||||
<el-table-column label="就诊方式" align="center" prop="visitMethod">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.visit_method" :value="scope.row.visitMethod" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="出院方式" align="center" prop="dischargeMethod" /> -->
|
||||
<el-table-column label="患者来源" align="center" prop="patientSource">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.patient_source" :value="scope.row.patientSource" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="住址" align="center" prop="address" />
|
||||
<!-- class-name="small-padding fixed-width" fixed="right" -->
|
||||
<el-table-column label="操作" align="center" fixed="right" width="110">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:patientInfo:edit']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['manage:patientInfo:remove']">删除</el-button> -->
|
||||
<el-button size="mini" type="text" @click="handOutbound(scope.row)">外呼</el-button>
|
||||
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)">详情</el-button>
|
||||
<!-- <el-button size="mini" type="text" @click="handleedit(scope.row)">画像编辑</el-button> -->
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum" :indexFrom="queryParams.pageSize" @updateCPage="updateCPage"></myPagination>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getPatientList } from "@/api/manage/patientInfo";
|
||||
import { getAge } from "@/utils/age";
|
||||
import {
|
||||
selectAgencyList,
|
||||
getDepartmentList,
|
||||
getAgencyList,
|
||||
} from "@/api/manage/selectAgencyList";
|
||||
import { usergetList } from "@/api/unitconfig/patientConfiguration";
|
||||
import SearchFilter from "../../components/SearchForm.vue";
|
||||
import cardlist from "../components/cardlist.vue";
|
||||
export default {
|
||||
name: "Patientmanagement",
|
||||
dicts: ["patient_type", "visit_method", "sign_status", "patient_source"],
|
||||
components: { SearchFilter, cardlist },
|
||||
data() {
|
||||
return {
|
||||
searchData: {},
|
||||
maxTableHeight: undefined,
|
||||
attendingPhysicianlist: [],
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 患者信息表格数据
|
||||
patientInfoList: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 100,
|
||||
patientName: null,
|
||||
patientPhone: null,
|
||||
birthDate: null,
|
||||
patientType: null,
|
||||
visitMethod: null,
|
||||
mainDiagnosis: null,
|
||||
attendingPhysicianId: null,
|
||||
hospitalAgencyId: null,
|
||||
hospitalAgencyName: null,
|
||||
campusAgencyId: null,
|
||||
campusAgencyName: null,
|
||||
departmentId: null,
|
||||
departmentName: null,
|
||||
wardId: null,
|
||||
wardName: null,
|
||||
surgicalName: null,
|
||||
admissionTimeStart: null,
|
||||
admissionTimeEnd: null,
|
||||
outpatientNumber: null,
|
||||
visitDateStart: null,
|
||||
visitDateEnd: null,
|
||||
dischargeMethod: null,
|
||||
patientSource: null,
|
||||
},
|
||||
visitDate: [],
|
||||
admissionTime: [],
|
||||
//医院list
|
||||
hospitalAgencylist: [],
|
||||
// 院区list
|
||||
campusAgencylist: [],
|
||||
//科室list
|
||||
departmentlist: [],
|
||||
//病区list
|
||||
wardlist: [],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
type: {
|
||||
handler(val) {
|
||||
// if (val == "table") {
|
||||
// this.queryParams.pageSize = 10;
|
||||
// } else if (val == "card") {
|
||||
// this.queryParams.pageSize = 100;
|
||||
// }
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
|
||||
this.selectAgencyinfo();
|
||||
},
|
||||
mounted() {
|
||||
this.getMaxTableHeight();
|
||||
this.screenChange();
|
||||
},
|
||||
methods: {
|
||||
updateCPage(index, size) {
|
||||
this.queryParams.pageNum = index;
|
||||
this.queryParams.pageSize = size;
|
||||
this.getList();
|
||||
},
|
||||
//主治医生
|
||||
usergetListinfo() {
|
||||
usergetList({
|
||||
hospitalAgencyId: this.queryParams.hospitalAgencyId,
|
||||
postName: "DOCTOR",
|
||||
}).then((res) => {
|
||||
this.attendingPhysicianlist = res.data;
|
||||
});
|
||||
},
|
||||
/** 详情操作 */
|
||||
handleAuthRole(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/patientdetails",
|
||||
query: {
|
||||
path: "/patient/patientInfo",
|
||||
patientId: row.id,
|
||||
patientName: row.patientName,
|
||||
patientPhone: row.patientPhone,
|
||||
familyMemberPhone: row.familyMemberPhone,
|
||||
cardNo: row.cardNo,
|
||||
address: row.address,
|
||||
mainDiagnosis: row.mainDiagnosis,
|
||||
hospitalAgencyName: row.hospitalAgencyName,
|
||||
campusAgencyName: row.campusAgencyName,
|
||||
departmentName: row.departmentName,
|
||||
wardName: row.wardName,
|
||||
certificateIssuingDoctorName: row.certificateIssuingDoctorName,
|
||||
appointmentTreatmentGroup: row.appointmentTreatmentGroup,
|
||||
responsibleNurse: row.responsibleNurse,
|
||||
registrationNo: row.registrationNo,
|
||||
registrationDate: row.registrationDate,
|
||||
appointmentDate: row.appointmentDate,
|
||||
|
||||
sex: row.sex,
|
||||
birthDate: row.birthDate,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.age,
|
||||
},
|
||||
});
|
||||
},
|
||||
handOutbound(row) {
|
||||
console.log(row)
|
||||
this.$router.push({
|
||||
path: "/patient/ManuallyCreatingTasks",
|
||||
query: {
|
||||
path: "/task/Patientmanagement",
|
||||
signPatientRecordId: row.signPatientRecordId ? row.signPatientRecordId : '',
|
||||
patientId: row.id ? row.id : '',
|
||||
patientName: row.patientName ? row.patientName : '',
|
||||
departmentId: row.departmentId ? row.departmentId : '',
|
||||
departmentName: row.departmentName ? row.departmentName : '',
|
||||
},
|
||||
});
|
||||
|
||||
},
|
||||
// 画像编辑
|
||||
handleedit(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/Portraitedit",
|
||||
query: {
|
||||
path: "/patient/patientInfo",
|
||||
patientId: row.id,
|
||||
cardNo: row.cardNo,
|
||||
patientName: row.patientName,
|
||||
patientPhone: row.patientPhone,
|
||||
sex: row.sex,
|
||||
birthDate: row.birthDate,
|
||||
familyMemberPhone: row.familyMemberPhone,
|
||||
address: row.address,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
hospitalAgencyName: row.hospitalAgencyName,
|
||||
mainDiagnosis: row.mainDiagnosis,
|
||||
age: row.age,
|
||||
},
|
||||
});
|
||||
},
|
||||
/** 查询患者信息列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: "数据加载中",
|
||||
spinner: "el-icon-loading",
|
||||
background: "rgba(0, 0, 0, 0.7)",
|
||||
});
|
||||
getPatientList(this.queryParams).then((response) => {
|
||||
response.rows.forEach((e) => {
|
||||
e.birthDate ? (e.age = getAge(e.birthDate)) : e.age;
|
||||
});
|
||||
|
||||
this.patientInfoList = response.rows;
|
||||
console.log(this.patientInfoList, 'this.patientInfoList')
|
||||
this.total = response.total;
|
||||
loading.close();
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleRules() {
|
||||
console.log('this.patientInfoList')
|
||||
this.getList()
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
if (this.visitDate?.length > 0) {
|
||||
this.queryParams.visitDateStart = this.visitDate[0];
|
||||
this.queryParams.visitDateEnd = this.visitDate[1];
|
||||
} else {
|
||||
this.queryParams.visitDateStart = null;
|
||||
this.queryParams.visitDateEnd = null;
|
||||
}
|
||||
if (this.admissionTime?.length > 0) {
|
||||
this.queryParams.admissionTimeStart = this.admissionTime[0];
|
||||
this.queryParams.admissionTimeEnd = this.admissionTime[1];
|
||||
} else {
|
||||
this.queryParams.admissionTimeStart = null;
|
||||
this.queryParams.admissionTimeEnd = null;
|
||||
}
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.queryParams = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
};
|
||||
// if (this.type == "card") {
|
||||
// this.queryParams = {
|
||||
// pageNum: 1,
|
||||
// pageSize: 100,
|
||||
// };
|
||||
// } else {
|
||||
// this.queryParams = {
|
||||
// pageNum: 1,
|
||||
// pageSize: 10,
|
||||
// };
|
||||
// }
|
||||
|
||||
this.admissionTime = [];
|
||||
this.queryParams.admissionTimeStart = null;
|
||||
this.queryParams.admissionTimeEnd = null;
|
||||
this.visitDate = [];
|
||||
this.queryParams.visitDateStart = null;
|
||||
this.queryParams.visitDateEnd = null;
|
||||
this.handleQuery();
|
||||
},
|
||||
selectAgencyinfo() {
|
||||
let query = {
|
||||
agencyStatus: "ON",
|
||||
nodeType: "HOSPITAL",
|
||||
};
|
||||
selectAgencyList(query).then((res) => {
|
||||
this.hospitalAgencylist = res.data;
|
||||
});
|
||||
},
|
||||
//获取下级单位
|
||||
getAgencyListinfo(nodeType, id) {
|
||||
let query = {
|
||||
nodeType: nodeType,
|
||||
};
|
||||
if (nodeType == "HOSPITAL") {
|
||||
query.hospitalId = id;
|
||||
} else if (nodeType == "CAMPUS") {
|
||||
query.campusId = id;
|
||||
} else if (nodeType == "DEPARTMENT") {
|
||||
query.departmentId = id;
|
||||
}
|
||||
getAgencyList(query).then((res) => {
|
||||
if (nodeType == "HOSPITAL") {
|
||||
this.campusAgencylist = res.data.campusList;
|
||||
this.departmentlist = res.data.departmentList;
|
||||
} else if (nodeType == "CAMPUS") {
|
||||
this.departmentlist = res.data.departmentList;
|
||||
}
|
||||
this.wardlist = res.data.wardList;
|
||||
});
|
||||
},
|
||||
//选中医院获取院区
|
||||
changehospitalAgency(id) {
|
||||
this.getAgencyListinfo("HOSPITAL", id);
|
||||
// let query = {
|
||||
// agencyStatus: 'ON',
|
||||
// nodeType: 'CAMPUS',
|
||||
// parentId: id,
|
||||
// }
|
||||
// selectAgencyList(query).then(res => {
|
||||
// this.campusAgencylist = res.data
|
||||
this.queryParams.campusAgencyId = null;
|
||||
this.queryParams.departmentId = null;
|
||||
this.queryParams.wardId = null;
|
||||
this.queryParams.attendingPhysicianId = null;
|
||||
// })
|
||||
//医生
|
||||
this.usergetListinfo();
|
||||
},
|
||||
//选中院区获取科室
|
||||
changecampusAgency(id) {
|
||||
this.getAgencyListinfo("CAMPUS", id);
|
||||
// let query = {
|
||||
// nodeType: 'DEPARTMENT',
|
||||
// hospitalAgencyId: id,
|
||||
// }
|
||||
// getDepartmentList(query).then(res => {
|
||||
// this.departmentlist = res.data
|
||||
this.queryParams.departmentId = null;
|
||||
this.queryParams.wardId = null;
|
||||
// })
|
||||
},
|
||||
//选中科室获取病区
|
||||
changedepartment(id) {
|
||||
this.getAgencyListinfo("DEPARTMENT", id);
|
||||
// let query = {
|
||||
// nodeType: 'WARD',
|
||||
// parentDepartmentId: id,
|
||||
// }
|
||||
// getDepartmentList(query).then(res => {
|
||||
// this.wardlist = res.data
|
||||
this.queryParams.wardId = null;
|
||||
// })
|
||||
},
|
||||
//清空医院
|
||||
clearhospitalAgency() {
|
||||
this.queryParams.campusAgencyId = null;
|
||||
this.queryParams.departmentId = null;
|
||||
this.queryParams.wardId = null;
|
||||
this.queryParams.attendingPhysicianId = null;
|
||||
setTimeout(() => {
|
||||
this.attendingPhysicianlist = [];
|
||||
}, 1000);
|
||||
},
|
||||
//清空院区
|
||||
clearcampusAgency() {
|
||||
this.queryParams.departmentId = null;
|
||||
this.queryParams.wardId = null;
|
||||
this.getAgencyListinfo("HOSPITAL", this.queryParams.hospitalAgencyId);
|
||||
},
|
||||
//清空科室
|
||||
cleardepartment() {
|
||||
this.queryParams.wardId = null;
|
||||
if (this.queryParams.departmentId) {
|
||||
this.getAgencyListinfo("DEPARTMENT", this.queryParams.departmentId);
|
||||
} else if (this.queryParams.campusAgencyId) {
|
||||
this.getAgencyListinfo("CAMPUS", this.queryParams.campusAgencyId);
|
||||
} else if (this.queryParams.hospitalAgencyId) {
|
||||
this.getAgencyListinfo("HOSPITAL", this.queryParams.hospitalAgencyId);
|
||||
}
|
||||
},
|
||||
// 获取表格最高高度
|
||||
getMaxTableHeight() {
|
||||
const windowInnerHeight = window.innerHeight; // 屏幕可视高度
|
||||
const layoutDiv = this.$refs.layout;
|
||||
const formDiv = this.$refs.topform;
|
||||
const mb8Div = this.$refs.mb8;
|
||||
this.maxTableHeight =
|
||||
windowInnerHeight -
|
||||
134 -
|
||||
this.getBoxPadding(layoutDiv) -
|
||||
this.getBoxHeight(mb8Div) -
|
||||
this.getBoxHeight(formDiv);
|
||||
},
|
||||
// 屏幕resize监听
|
||||
screenChange() {
|
||||
// 屏幕resize监听事件:一旦屏幕宽高发生变化,就会执行resize
|
||||
window.addEventListener("resize", this.getMaxTableHeight, true);
|
||||
// 将屏幕监听事件移除
|
||||
// 这步是必须的。离开页面时不移除,再返回,或者进入到别的有相同元素的页面会报错
|
||||
// 或者将这里的方法直接写在beforeDestroy函数中也可以
|
||||
this.$once("hook:beforeDestroy", () => {
|
||||
window.removeEventListener("resize", this.getMaxTableHeight, true);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.cardlist {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.carditem {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
width: 260px;
|
||||
min-height: 200px;
|
||||
border: 1px solid #dcdfe6;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
::v-deep .el-table__body-wrapper {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
::v-deep .el-form {
|
||||
width: 100%;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.form {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// ::v-deep .el-table {
|
||||
// overflow: hidden;
|
||||
// }</style>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<div class="app-container" ref="layout">
|
||||
<div ref="topform" class="form">
|
||||
<SearchFilter labelWidth="90px" :labelWidths="310" size="small" @search="handleQuery" @reset="resetQuery"
|
||||
@minShowCtrol="getMaxTableHeight">
|
||||
<SearchFilter labelWidth="90px" :labelWidths="310" size="small" @search="handleQuery"
|
||||
@reset="resetQuery" @minShowCtrol="getMaxTableHeight">
|
||||
<el-form-item label="姓名" prop="patientName">
|
||||
<el-input style="width: 220px" v-model="queryParams.patientName" placeholder="请输入患者姓名" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
@ -12,7 +12,7 @@
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="异常原因" prop="abnormalCauseValue">
|
||||
<el-select v-model="queryParams.abnormalCauseValue" filterable placeholder="请输入异常原因" style="width:220px"
|
||||
<el-select v-model="queryParams.abnormalCauseValue" filterable placeholder="请输入异常原因" style="width:220px"
|
||||
clearable>
|
||||
<el-option v-for="item in abnormalCauselist" :key="item.id" :label="item.abnormalCauseValue"
|
||||
:value="item.id">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="headernewhandel">
|
||||
<!-- 左侧 -->
|
||||
<div :class="isshow ? 'left' : 'noleft'">
|
||||
<div :class="isshow ? 'left' : 'noleft'">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick" v-if="isshow">
|
||||
<el-tab-pane
|
||||
label="任务详情"
|
||||
@ -9,7 +9,11 @@
|
||||
v-if="$route.query.taskNodeType == 'PHONE_OUTBOUND'"
|
||||
>
|
||||
<div class="nexttime">
|
||||
<el-form ref="formlist" :model="formlist" label-width="110px">
|
||||
<el-form
|
||||
ref="formlist"
|
||||
:model="formlist"
|
||||
label-width="110px"
|
||||
>
|
||||
<el-form-item label="电话" prop="patientPhone">
|
||||
<el-input
|
||||
disabled
|
||||
@ -64,14 +68,14 @@
|
||||
<el-form-item label="第二次拨打时间" prop="secondTime ">
|
||||
<el-input
|
||||
disabled
|
||||
v-model="formlist.secondTime"
|
||||
v-model="formlist.secondTime "
|
||||
placeholder="请输入第二次拨打时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="第三次拨打时间" prop="thirdTime ">
|
||||
<el-input
|
||||
disabled
|
||||
v-model="formlist.thirdTime"
|
||||
v-model="formlist.thirdTime "
|
||||
placeholder="请输入第三次拨打时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
@ -87,6 +91,7 @@
|
||||
placeholder=""
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
@ -148,10 +153,6 @@
|
||||
<span v-if="item.questionType == 'FILL_IN_THE_BLANKS'"
|
||||
>(填空题)</span
|
||||
>
|
||||
<span v-if="item.questionType == 'FEEDBACK_BLANKS_SUBJECT'"
|
||||
>(反馈填空题)</span
|
||||
>
|
||||
|
||||
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'"
|
||||
>(组合打分题)</span
|
||||
>
|
||||
@ -202,8 +203,7 @@
|
||||
<div
|
||||
v-if="
|
||||
item.questionType == 'FILL_IN_THE_BLANKS' ||
|
||||
item.questionType == 'COMBINATION_BLANKS_SUBJECT' ||
|
||||
item.questionType == 'FEEDBACK_BLANKS_SUBJECT'
|
||||
item.questionType == 'COMBINATION_BLANKS_SUBJECT'
|
||||
"
|
||||
class="tk"
|
||||
>
|
||||
@ -569,13 +569,9 @@ export default {
|
||||
e.questionType == "COMBINATION_MULTIPLE_SUBJECT" ||
|
||||
e.questionType == "COMBINATION_SCORING_SUBJECT"
|
||||
) {
|
||||
if (e.whetherScore == true) {
|
||||
e.whetherScore = 1;
|
||||
} else if (e.whetherScore == false) {
|
||||
e.whetherScore = 0;
|
||||
}
|
||||
e.whetherScore = "1";
|
||||
} else {
|
||||
e.whetherScore = 0;
|
||||
e.whetherScore = "0";
|
||||
}
|
||||
e.questionSubjectOptionList.forEach((el) => {
|
||||
el.questionNumber = e.questionNumber;
|
||||
@ -593,13 +589,13 @@ export default {
|
||||
|
||||
/** 提交按钮 */
|
||||
submit() {
|
||||
// return
|
||||
if (this.$route.query.taskNodeType == "QUESTIONNAIRE_SCALE") {
|
||||
// 对象.新名字=对象.原数组
|
||||
this.$delete(this.questiondata, "updateBy");
|
||||
this.$delete(this.questiondata, "updateTime");
|
||||
var score = 0;
|
||||
// 单选、多选、打分分值
|
||||
var lengthScore = this.questiondata.questionSubjectList.filter(f => f.whetherScore == 0)
|
||||
this.questiondata.questionSubjectList.forEach((e) => {
|
||||
if (e.questionSubjectOptionList?.length > 0) {
|
||||
e.questionSubjectOptionList.forEach((el) => {
|
||||
@ -611,17 +607,12 @@ export default {
|
||||
e.questionType == "COMBINATION_MULTIPLE_SUBJECT" ||
|
||||
e.questionType == "COMBINATION_SCORING_SUBJECT"
|
||||
) {
|
||||
if (el.optionChooseSign == "0" && e.whetherScore == 1) {
|
||||
if (el.optionChooseSign == "0") {
|
||||
score += el.optionScore;
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
if (lengthScore.length == this.questiondata.questionSubjectList.length) {
|
||||
this.questiondata.totalScore = '';
|
||||
} else {
|
||||
this.questiondata.totalScore = score;
|
||||
}
|
||||
this.questiondata.totalScore = score;
|
||||
}
|
||||
});
|
||||
this.questiondata.subjectResultDTOList =
|
||||
@ -658,7 +649,6 @@ export default {
|
||||
// this.$delete(this.obj, 'totalScore',)
|
||||
}
|
||||
// 问卷
|
||||
// return
|
||||
if (this.$route.query.taskNodeType == "QUESTIONNAIRE_SCALE") {
|
||||
this.$refs["questiondata"].validate((valid) => {
|
||||
if (valid) {
|
||||
@ -672,17 +662,9 @@ export default {
|
||||
this.$store
|
||||
.dispatch("tagsView/delView", this.$route)
|
||||
.then(({ visitedViews }) => {
|
||||
if (this.$route.query.path == "/task/taskmanagement") {
|
||||
this.$router.push({
|
||||
path: "/task/taskmanagement",
|
||||
});
|
||||
} else {
|
||||
this.$router.push({
|
||||
path: "/task/followup",
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
this.$router.push({
|
||||
path: "/task/followup",
|
||||
});
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
@ -724,16 +706,9 @@ export default {
|
||||
this.$store
|
||||
.dispatch("tagsView/delView", this.$route)
|
||||
.then(({ visitedViews }) => {
|
||||
if (this.$route.query.path == "/task/taskmanagement") {
|
||||
this.$router.push({
|
||||
path: "/task/taskmanagement",
|
||||
});
|
||||
} else {
|
||||
this.$router.push({
|
||||
path: "/task/followup",
|
||||
});
|
||||
|
||||
}
|
||||
this.$router.push({
|
||||
path: "/task/followup",
|
||||
});
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
@ -842,16 +817,17 @@ export default {
|
||||
height: calc(100vh - 84px);
|
||||
// background-color: #f1f3f5;
|
||||
display: flex;
|
||||
::v-deep .el-tabs__item {
|
||||
::v-deep .el-tabs__item{
|
||||
padding: 0 13px;
|
||||
}
|
||||
.nexttime {
|
||||
.nexttime{
|
||||
height: calc(100vh - 300px);
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
// background: aliceblue;
|
||||
/* height: 30vh; */
|
||||
margin-top: 25px;
|
||||
|
||||
}
|
||||
|
||||
::v-deep .el-tabs__header {
|
||||
@ -866,7 +842,7 @@ export default {
|
||||
margin-top: 20px;
|
||||
width: 27%;
|
||||
// background: red;
|
||||
::v-deep .el-form {
|
||||
::v-deep .el-form{
|
||||
padding-right: 9px;
|
||||
// margin-left: -14px;
|
||||
}
|
||||
@ -947,10 +923,11 @@ export default {
|
||||
.right_top {
|
||||
// width: 39%;
|
||||
width: 350px;
|
||||
::v-deep .el-textarea__inner {
|
||||
::v-deep .el-textarea__inner{
|
||||
width: 338px;
|
||||
height: 250px;
|
||||
margin-top: 10px;
|
||||
height: 250px;
|
||||
margin-top: 10px;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,448 +0,0 @@
|
||||
<template>
|
||||
<div class="app-containers">
|
||||
<el-button
|
||||
size="small"
|
||||
@click="classificationOpen = true"
|
||||
style="
|
||||
width: 220px;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
"
|
||||
:style="handleselectId ? 'color:black' : 'color:#C0C4CC'"
|
||||
>{{ questionnaireName ? questionnaireName : "请选择模板名称" }}</el-button
|
||||
>
|
||||
<el-dialog
|
||||
title="模版名称选择"
|
||||
:visible.sync="classificationOpen"
|
||||
width="70%"
|
||||
:before-close="classificationOpenfalse"
|
||||
>
|
||||
<el-row :gutter="20">
|
||||
<!--用户数据-->
|
||||
<el-col :span="24" :xs="24">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryForm"
|
||||
size="small"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="100px"
|
||||
>
|
||||
<el-form-item label="问卷标题" prop="questionnaireName">
|
||||
<el-input
|
||||
v-model="queryParams.questionnaireName"
|
||||
placeholder="请输入问卷标题"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="病种名称" prop="diseaseTypeName">
|
||||
<el-input
|
||||
v-model="queryParams.diseaseTypeName"
|
||||
placeholder="请输入病种名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="PatientInfoImportBatchlist"
|
||||
@row-dblclick="handleselect"
|
||||
>
|
||||
<el-table-column
|
||||
label="序号"
|
||||
type="index"
|
||||
width="48"
|
||||
align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
label="问卷标题"
|
||||
align="center"
|
||||
prop="questionnaireName"
|
||||
/>
|
||||
<el-table-column
|
||||
label="问题个数"
|
||||
align="center"
|
||||
prop="questionCount"
|
||||
/>
|
||||
<el-table-column
|
||||
label="问卷模板ID"
|
||||
align="center"
|
||||
prop="questionnaireId"
|
||||
/>
|
||||
<el-table-column
|
||||
label="问卷类型"
|
||||
align="center"
|
||||
prop="questionType"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.questionType == 'REGULAR_QUESTIONNAIRE'">
|
||||
普通问卷
|
||||
</div>
|
||||
<div
|
||||
v-if="scope.row.questionType == 'SATISFACTION_QUESTIONNAIRE'"
|
||||
>
|
||||
满意度问卷
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="问卷状态"
|
||||
align="center"
|
||||
prop="questionnaireStatus"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
type="success"
|
||||
v-if="scope.row.questionnaireStatus == 'PUBLISHED'"
|
||||
>已发布</el-tag
|
||||
>
|
||||
<el-tag type="warning" v-else>未发布</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="病种名称"
|
||||
align="center"
|
||||
prop="diseaseTypeName"
|
||||
/>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleselect(scope.row)"
|
||||
v-if="handleselectId != scope.row.id"
|
||||
>选择</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="nohandleselect(scope.row)"
|
||||
v-if="handleselectId == scope.row.id"
|
||||
>取消选择</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getlist"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { list } from '@/api/system/TaskStatistics'
|
||||
|
||||
import { selectAgencyList, getAgencyList } from "@/api/manage/selectAgencyList";
|
||||
export default {
|
||||
props: ["templateId", 'query'],
|
||||
name: "Script",
|
||||
data() {
|
||||
return {
|
||||
createTime: "",
|
||||
//医院list
|
||||
hospitalAgencylist: [],
|
||||
// 院区list
|
||||
campusAgencylist: [],
|
||||
// 导入列表
|
||||
PatientInfoImportBatchlist: [],
|
||||
lookshow: false,
|
||||
phoneNodeContent: {
|
||||
scriptInfoId: null,
|
||||
flowScheme: null,
|
||||
nodes: [],
|
||||
edges: [],
|
||||
},
|
||||
handleselectId: "",
|
||||
questionnaireName: '',
|
||||
classificationOpen: false,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
questionnaireName: null,
|
||||
diseaseTypeName:null,
|
||||
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getlist();
|
||||
this.selectAgencyinfo();
|
||||
|
||||
},
|
||||
mounted() {
|
||||
this.handleselectId = this.templateId;
|
||||
},
|
||||
watch: {
|
||||
query: {
|
||||
handler(val) {
|
||||
if (val > 1) {
|
||||
this.questionnaireName = '';
|
||||
this.handleselectId = '';
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
templateId: {
|
||||
handler(val) {
|
||||
|
||||
if (val) {
|
||||
this.handleselectId = val;
|
||||
} else {
|
||||
this.questionnaireName = '';
|
||||
this.handleselectId = '';
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
|
||||
},
|
||||
methods: {
|
||||
//获取医院list
|
||||
selectAgencyinfo() {
|
||||
let query = {
|
||||
agencyStatus: 'ON',
|
||||
nodeType: 'HOSPITAL',
|
||||
}
|
||||
selectAgencyList(query).then(res => {
|
||||
this.hospitalAgencylist = res.data
|
||||
})
|
||||
},
|
||||
//获取下级单位
|
||||
getAgencyListinfo(nodeType, id, type) {
|
||||
let query = {
|
||||
nodeType: nodeType,
|
||||
}
|
||||
if (nodeType == 'HOSPITAL') {
|
||||
query.hospitalId = id
|
||||
} else if (nodeType == 'CAMPUS') {
|
||||
query.campusId = id
|
||||
}
|
||||
getAgencyList(query).then(res => {
|
||||
// if (type)
|
||||
console.log(nodeType);
|
||||
console.log(res.data.campusList);
|
||||
{
|
||||
if (nodeType == 'HOSPITAL') {
|
||||
this.campusAgencylist = res.data.campusList;
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
//选中医院获取院区
|
||||
changehospitalAgency(id, type, typetwo) {
|
||||
this.getAgencyListinfo('HOSPITAL', id, type)
|
||||
// let query = {
|
||||
// agencyStatus: 'ON',
|
||||
// nodeType: 'CAMPUS',
|
||||
// parentId: id,
|
||||
// }
|
||||
// selectAgencyList(query).then(res => {
|
||||
if (type) {
|
||||
if (!typetwo) {
|
||||
this.form.campusAgencyId = null
|
||||
}
|
||||
} else {
|
||||
this.queryParams.campusAgencyId = null
|
||||
}
|
||||
// })
|
||||
},
|
||||
//选中院区获取科室
|
||||
changecampusAgency(id, type, typetwo) {
|
||||
this.getAgencyListinfo('CAMPUS', id, type)
|
||||
},
|
||||
//清空医院
|
||||
clearhospitalAgency(type) {
|
||||
if (type) {
|
||||
this.form.campusAgencyId = null
|
||||
this.form.departmentId = null
|
||||
this.form.wardId = null
|
||||
} else {
|
||||
this.queryParams.campusAgencyId = null
|
||||
this.queryParams.departmentId = null
|
||||
this.queryParams.wardId = null
|
||||
}
|
||||
},
|
||||
//清空院区
|
||||
clearcampusAgency(type) {
|
||||
if (type) {
|
||||
this.form.departmentId = null
|
||||
this.form.wardId = null
|
||||
this.getAgencyListinfo('HOSPITAL', this.form.hospitalAgencyId, type)
|
||||
} else {
|
||||
this.queryParams.departmentId = null
|
||||
this.queryParams.wardId = null
|
||||
this.getAgencyListinfo('HOSPITAL', this.queryParams.hospitalAgencyId)
|
||||
}
|
||||
},
|
||||
// 取消选择
|
||||
nohandleselect() {
|
||||
this.handleselectId = "";
|
||||
this.questionnaireName = "";
|
||||
this.$emit("on-template", {
|
||||
id: '',
|
||||
});
|
||||
},
|
||||
// 选择
|
||||
handleselect(item) {
|
||||
console.log(item, '0000000000');
|
||||
this.handleselectId = item.id;
|
||||
this.questionnaireName = item.questionnaireName
|
||||
this.$emit("on-template", {
|
||||
questionInfoId: item.id,
|
||||
questionnaireName: item.questionnaireName,
|
||||
createTime:item.createTime,
|
||||
|
||||
});
|
||||
this.classificationOpen = false;
|
||||
},
|
||||
classificationOpenfalse() {
|
||||
this.classificationOpen = false;
|
||||
},
|
||||
/** 查询话术信息列表 */
|
||||
getlist() {
|
||||
this.loading = true;
|
||||
list(this.queryParams).then(response => {
|
||||
this.PatientInfoImportBatchlist = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
if (this.createTime?.length > 0) {
|
||||
this.queryParams.importTimeStart = this.createTime[0];
|
||||
this.queryParams.importTimeEnd = this.createTime[1];
|
||||
} else {
|
||||
this.queryParams.importTimeStart = null;
|
||||
this.queryParams.importTimeEnd = null;
|
||||
}
|
||||
this.getlist();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.queryParams = {
|
||||
pageNum: 1,
|
||||
pageSize: 10
|
||||
}
|
||||
this.createTime = '';
|
||||
this.handleQuery();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .el-input-number .el-input__inner {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__body {
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
|
||||
.app-containers {
|
||||
display: inline-block;
|
||||
padding: 0 !important;
|
||||
// background: red;
|
||||
height: 42px;
|
||||
}
|
||||
|
||||
::v-deep .el-textarea__inner {
|
||||
width: 206px;
|
||||
}
|
||||
|
||||
.leftscript {
|
||||
// width: 30%;
|
||||
height: 650px;
|
||||
overflow: auto;
|
||||
|
||||
.name {
|
||||
font-weight: 700;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.listitem {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
border-bottom: 1px solid #dcdfe6;
|
||||
position: relative;
|
||||
|
||||
.count {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 210px;
|
||||
color: #a4a6aa;
|
||||
top: 10px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.all {
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
padding-left: 13px;
|
||||
}
|
||||
|
||||
.allactive {
|
||||
background: #e8f4ff;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
padding-left: 13px;
|
||||
border-left: 3px solid #4d9de7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
left: 20px;
|
||||
top: -11px;
|
||||
}
|
||||
</style>
|
||||
@ -8,8 +8,6 @@
|
||||
@click="handleAuth(item, index)" />
|
||||
<img v-if="item.sex == 'MALE'" src="../../../assets/manage/touxiang.png" alt="" class="img"
|
||||
@click="handleAuth(item, index)" />
|
||||
<img v-if="!item.sex" src="../../../assets/manage/tx.png" alt="" class="img"
|
||||
style="height: 46px;margin-top: 15px;" @click="handleAuth(item, index)" />
|
||||
<el-tooltip class="name" effect="dark" :content="item.patientName" placement="top">
|
||||
<span @click="handleAuth(item, index)">
|
||||
{{ item.patientName }}
|
||||
@ -18,7 +16,7 @@
|
||||
<div class="agesex">
|
||||
{{ item.sex == "MALE" ? "男" : "" }}
|
||||
{{ item.sex == "FEMALE" ? "女" : "" }}
|
||||
<span style="padding: 0 1px" v-if="item.sex">|</span>
|
||||
<span style="padding: 0 1px">|</span>
|
||||
<span v-if="item.age"> {{ item.age }}岁 </span>
|
||||
<span class="zy" v-if="item.patientType == 'IN_HOSPITAL_PATIENT'">在院</span>
|
||||
<span class="cy" v-if="item.patientType == 'DISCHARGED_PATIENT'">出院</span>
|
||||
@ -26,9 +24,7 @@
|
||||
<span class="mz" v-if="item.patientType == 'OUTPATIENT'">门诊</span>
|
||||
<!-- <span class="mz" v-if="item.patientType == 'CONTRACTED_PATIENT'">签约</span> -->
|
||||
</div>
|
||||
<el-tooltip class="diagnosis" effect="dark" :content="item.mainDiagnosis" placement="right">
|
||||
<span>诊断名称:{{ item.mainDiagnosis }}</span>
|
||||
</el-tooltip>
|
||||
<div class="diagnosis">诊断名称:{{ item.mainDiagnosis }}</div>
|
||||
<div class="diagnosi">诊断状态:{{ item.patientSignStatus }}</div>
|
||||
<div class="formitembutton" @click.stop="handleedit(item)">
|
||||
画像编辑
|
||||
@ -102,25 +98,25 @@ export default {
|
||||
},
|
||||
// 双击进入详情
|
||||
handleAuthRole(item, index) {
|
||||
//这里写你实现双击后的逻辑代码
|
||||
this.$router.push({
|
||||
path: "/patient/patientdetails",
|
||||
query: {
|
||||
path: "/patient/patientInfo",
|
||||
patientId: item.id,
|
||||
cardNo: item.cardNo,
|
||||
patientName: item.patientName,
|
||||
patientPhone: item.patientPhone,
|
||||
sex: item.sex,
|
||||
birthDate: item.birthDate,
|
||||
familyMemberPhone: item.familyMemberPhone,
|
||||
address: item.address,
|
||||
patientSource: item.patientSource,
|
||||
createTime: item.createTime,
|
||||
age: item.birthDate ? getAge(item.birthDate) : "",
|
||||
},
|
||||
});
|
||||
|
||||
//这里写你实现双击后的逻辑代码
|
||||
this.$router.push({
|
||||
path: "/patient/patientdetails",
|
||||
query: {
|
||||
path: "/patient/patientInfo",
|
||||
patientId: item.id,
|
||||
cardNo: item.cardNo,
|
||||
patientName: item.patientName,
|
||||
patientPhone: item.patientPhone,
|
||||
sex: item.sex,
|
||||
birthDate: item.birthDate,
|
||||
familyMemberPhone: item.familyMemberPhone,
|
||||
address: item.address,
|
||||
patientSource: item.patientSource,
|
||||
createTime: item.createTime,
|
||||
age: item.birthDate ? getAge(item.birthDate) : "",
|
||||
},
|
||||
});
|
||||
|
||||
},
|
||||
// 画像编辑
|
||||
handleedit(item) {
|
||||
@ -291,8 +287,9 @@ export default {
|
||||
left: 70px;
|
||||
top: 42px;
|
||||
font-size: 12px;
|
||||
height: 32px;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
padding-right: 4px;
|
||||
|
||||
@ -1,461 +0,0 @@
|
||||
<template>
|
||||
<div class="app-containers">
|
||||
<el-button size="small" @click="classificationOpen = true" style="
|
||||
width: 220px;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
" :style="handleselectId ? 'color:black' : 'color:#C0C4CC'">
|
||||
{{ handleselectId ? handleselectId : "请选择批次" }}
|
||||
</el-button>
|
||||
<el-dialog title="批次选择" :visible.sync="classificationOpen" width="70%" :before-close="classificationOpenfalse">
|
||||
<el-row :gutter="20">
|
||||
<!--用户数据-->
|
||||
<el-col :span="24" :xs="24">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
|
||||
label-width="110px">
|
||||
<el-form-item label="导入日期" prop="">
|
||||
<el-date-picker v-model="createTime" type="daterange" range-separator="至" start-placeholder="开始日期"
|
||||
style="width: 220px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="流水号" prop="sn">
|
||||
<el-input v-model="queryParams.sn" placeholder="请输入流水号" clearable style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="批次名称" prop="importName">
|
||||
<el-input v-model="queryParams.importName" placeholder="请输入批次名称" clearable style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="医院" prop="">
|
||||
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width:220px"
|
||||
clearable @clear="clearhospitalAgency" @change="changehospitalAgency">
|
||||
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="院区" prop="">
|
||||
<el-select v-model="queryParams.campusAgencyId" filterable placeholder="请选择院区" style="width:220px"
|
||||
clearable @clear="clearcampusAgency">
|
||||
<el-option v-for="item in campusAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="loading" :data="PatientInfoImportBatchlist" @row-dblclick="handleselect">
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="流水号" prop="sn" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handsn(scope.row)">
|
||||
{{ scope.row.sn }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="批次名称" align="center" prop="importName" />
|
||||
<el-table-column label="患者数" align="center" prop="patientCount" />
|
||||
<!-- <el-table-column label="操作人" align="center" prop="createBy" /> -->
|
||||
<el-table-column label="导入日期" align="center" prop="createTime">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleselect(scope.row)"
|
||||
v-if="handleselectId != scope.row.sn">选择</el-button>
|
||||
<el-button size="mini" type="text" @click="nohandleselect(scope.row)"
|
||||
v-if="handleselectId == scope.row.sn">取消选择</el-button>
|
||||
<el-button size="mini" type="text" @click="handsn(scope.row)">明细</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getlist" />
|
||||
</el-dialog>
|
||||
<el-dialog title="导入明细" :visible.sync="ImportDetailsopen" width="70%" :before-close="ImportDetailsopenfalse">
|
||||
<!-- <el-form :model="ImportDetailqueryParams" size="small" :inline="true" label-width="100px" @submit.prevent>
|
||||
<el-form-item label="姓名" prop="patientName">
|
||||
<el-input v-model="ImportDetailqueryParams.patientName" placeholder="请输入姓名" clearable style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="patientPhone">
|
||||
<el-input v-model="ImportDetailqueryParams.patientPhone" placeholder="请输入联系电话" clearable
|
||||
style="width: 200px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="医院" prop="hospitalAgencyId">
|
||||
<el-select v-model="ImportDetailqueryParams.hospitalAgencyId" filterable placeholder="请选择医院"
|
||||
style="width: 200px" clearable @clear="clearhospitalAgency(1)" @change="changehospitalAgency($event, 1)">
|
||||
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="科室" prop="departmentId">
|
||||
<el-select v-model="ImportDetailqueryParams.departmentId" filterable placeholder="请选择科室" style="width: 200px"
|
||||
clearable>
|
||||
<el-option v-for="item in departmentlist" :key="item.id" :label="item.departmentName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="ImportDetailhandleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="ImportDetailresetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form> -->
|
||||
<el-table :data="patientInfoList">
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="姓名" align="center" prop="patientName" />
|
||||
<el-table-column label="联系电话" align="center" prop="patientPhone" />
|
||||
<el-table-column label="年龄" align="center" prop="age" />
|
||||
<el-table-column label="医院" align="center" prop="hospitalAgencyName" />
|
||||
<el-table-column label="科室名称" align="center" prop="departmentName" />
|
||||
<el-table-column label="诊断" align="center" prop="mainDiagnosis" />
|
||||
</el-table>
|
||||
<pagination v-show="ImportDetailtotal > 0" :total="ImportDetailtotal" :page.sync="ImportDetailqueryParams.pageNum"
|
||||
:limit.sync="ImportDetailqueryParams.pageSize" @pagination="getsn" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { patientInfoImportBatchlist } from "@/api/manage/patientInfoImport";
|
||||
import stationAcatar from "../../system/stationAvatar/index.vue";
|
||||
import { selectAgencyList, getAgencyList } from "@/api/manage/selectAgencyList";
|
||||
import { getPatientList } from "@/api/manage/patientInfo";
|
||||
import { usergetList } from "@/api/unitconfig/patientConfiguration";
|
||||
|
||||
export default {
|
||||
props: ["templateId"],
|
||||
components: { stationAcatar },
|
||||
name: "Script",
|
||||
data() {
|
||||
return {
|
||||
createTime: "",
|
||||
//医院list
|
||||
hospitalAgencylist: [],
|
||||
// 院区list
|
||||
campusAgencylist: [],
|
||||
// 导入列表
|
||||
PatientInfoImportBatchlist: [],
|
||||
lookshow: false,
|
||||
phoneNodeContent: {
|
||||
scriptInfoId: null,
|
||||
flowScheme: null,
|
||||
nodes: [],
|
||||
edges: [],
|
||||
},
|
||||
handleselectId: "",
|
||||
classificationOpen: false,
|
||||
ImportDetailsopen: false,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
hospitalAgencyId: null,
|
||||
importTimeStart: "",
|
||||
importTimeEnd: "",
|
||||
campusAgencyId: null,
|
||||
importName: null,
|
||||
sn: null,
|
||||
},
|
||||
patientInfoList: [],
|
||||
departmentlist: [],
|
||||
ImportDetailtotal: 0,
|
||||
ImportDetailqueryParams: {
|
||||
sn: null,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
patientName: null,
|
||||
patientPhone: null,
|
||||
patientType: null,
|
||||
visitMethod: null,
|
||||
mainDiagnosis: null,
|
||||
attendingPhysicianId: null,
|
||||
hospitalAgencyId: null,
|
||||
hospitalAgencyName: null,
|
||||
campusAgencyId: null,
|
||||
campusAgencyName: null,
|
||||
departmentId: null,
|
||||
departmentName: null,
|
||||
wardId: null,
|
||||
wardName: null,
|
||||
surgicalName: null,
|
||||
outpatientNumber: null,
|
||||
dischargeMethod: null,
|
||||
patientSource: null,
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getlist();
|
||||
this.selectAgencyinfo();
|
||||
},
|
||||
mounted() {
|
||||
this.handleselectId = this.templateId;
|
||||
},
|
||||
watch: {
|
||||
templateId(newValue, oldValue) {
|
||||
this.handleselectId = newValue;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
/** 搜索按钮操作 */
|
||||
ImportDetailhandleQuery() {
|
||||
this.ImportDetailqueryParams.pageNum = 1;
|
||||
this.getsn();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
ImportDetailresetQuery() {
|
||||
this.ImportDetailqueryParams = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
sn: this.ImportDetailqueryParams.sn
|
||||
};
|
||||
this.getsn();
|
||||
},
|
||||
getsn() {
|
||||
getPatientList(this.ImportDetailqueryParams).then((response) => {
|
||||
this.patientInfoList = response.rows;
|
||||
this.ImportDetailtotal = response.total;
|
||||
});
|
||||
},
|
||||
// 流水号/明细
|
||||
async handsn(row) {
|
||||
this.ImportDetailqueryParams.sn = row.sn;
|
||||
await this.getsn()
|
||||
this.ImportDetailsopen = true
|
||||
},
|
||||
//获取医院list
|
||||
selectAgencyinfo() {
|
||||
let query = {
|
||||
agencyStatus: 'ON',
|
||||
nodeType: 'HOSPITAL',
|
||||
}
|
||||
selectAgencyList(query).then(res => {
|
||||
this.hospitalAgencylist = res.data
|
||||
})
|
||||
},
|
||||
//获取下级单位
|
||||
getAgencyListinfo(nodeType, id, type) {
|
||||
let query = {
|
||||
nodeType: nodeType,
|
||||
}
|
||||
if (nodeType == 'HOSPITAL') {
|
||||
query.hospitalId = id
|
||||
} else if (nodeType == 'CAMPUS') {
|
||||
query.campusId = id
|
||||
}
|
||||
getAgencyList(query).then(res => {
|
||||
// if (type) {
|
||||
if (nodeType == 'HOSPITAL') {
|
||||
this.campusAgencylist = res.data.campusList;
|
||||
}
|
||||
// }
|
||||
})
|
||||
},
|
||||
//选中医院获取院区
|
||||
changehospitalAgency(id, type, typetwo) {
|
||||
this.getAgencyListinfo('HOSPITAL', id, type)
|
||||
// let query = {
|
||||
// agencyStatus: 'ON',
|
||||
// nodeType: 'CAMPUS',
|
||||
// parentId: id,
|
||||
// }
|
||||
// selectAgencyList(query).then(res => {
|
||||
if (type) {
|
||||
if (!typetwo) {
|
||||
this.queryParams.campusAgencyId = null
|
||||
}
|
||||
} else {
|
||||
this.ImportDetailqueryParams.campusAgencyId = null
|
||||
}
|
||||
//医生
|
||||
this.usergetListinfo();
|
||||
// })
|
||||
},
|
||||
//主治医生
|
||||
usergetListinfo() {
|
||||
usergetList({
|
||||
hospitalAgencyId: this.queryParams.hospitalAgencyId,
|
||||
postName: "DOCTOR",
|
||||
}).then((res) => {
|
||||
this.attendingPhysicianlist = res.data;
|
||||
});
|
||||
},
|
||||
//选中院区获取科室
|
||||
changecampusAgency(id, type, typetwo) {
|
||||
this.getAgencyListinfo('CAMPUS', id, type)
|
||||
},
|
||||
//清空医院
|
||||
clearhospitalAgency(type) {
|
||||
if (type) {
|
||||
this.ImportDetailqueryParams.campusAgencyId = null
|
||||
this.ImportDetailqueryParams.departmentId = null
|
||||
this.ImportDetailqueryParams.wardId = null
|
||||
} else {
|
||||
this.queryParams.campusAgencyId = null
|
||||
this.queryParams.departmentId = null
|
||||
this.queryParams.wardId = null
|
||||
}
|
||||
},
|
||||
//清空院区
|
||||
clearcampusAgency(type) {
|
||||
if (type) {
|
||||
this.ImportDetailqueryParams.departmentId = null
|
||||
this.ImportDetailqueryParams.wardId = null
|
||||
this.getAgencyListinfo('HOSPITAL', this.ImportDetailqueryParams.hospitalAgencyId, type)
|
||||
} else {
|
||||
this.queryParams.departmentId = null
|
||||
this.queryParams.wardId = null
|
||||
this.getAgencyListinfo('HOSPITAL', this.queryParams.hospitalAgencyId)
|
||||
}
|
||||
},
|
||||
// 取消选择
|
||||
nohandleselect() {
|
||||
this.handleselectId = "";
|
||||
this.$emit("on-template", {
|
||||
sn: '',
|
||||
});
|
||||
},
|
||||
// 选择
|
||||
handleselect(item) {
|
||||
this.handleselectId = item.sn;
|
||||
this.$emit("on-template", {
|
||||
sn: item.sn,
|
||||
});
|
||||
this.classificationOpen = false;
|
||||
},
|
||||
classificationOpenfalse() {
|
||||
this.classificationOpen = false;
|
||||
},
|
||||
ImportDetailsopenfalse() {
|
||||
this.ImportDetailsopen = false;
|
||||
},
|
||||
/** 查询话术信息列表 */
|
||||
getlist() {
|
||||
this.loading = true;
|
||||
patientInfoImportBatchlist(this.queryParams).then(response => {
|
||||
this.PatientInfoImportBatchlist = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
if (this.createTime?.length > 0) {
|
||||
this.queryParams.importTimeStart = this.createTime[0];
|
||||
this.queryParams.importTimeEnd = this.createTime[1];
|
||||
} else {
|
||||
this.queryParams.importTimeStart = null;
|
||||
this.queryParams.importTimeEnd = null;
|
||||
}
|
||||
this.getlist();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.queryParams = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
importName: null,
|
||||
hospitalAgencyId: null,
|
||||
importTimeStart: "",
|
||||
importTimeEnd: "",
|
||||
campusAgencyId: null,
|
||||
sn: null,
|
||||
}
|
||||
this.createTime = '';
|
||||
this.handleQuery();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .el-input-number .el-input__inner {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__body {
|
||||
padding-bottom: 60px;
|
||||
}
|
||||
|
||||
.app-containers {
|
||||
display: inline-block;
|
||||
padding: 0 !important;
|
||||
// background: red;
|
||||
height: 42px;
|
||||
}
|
||||
|
||||
::v-deep .el-textarea__inner {
|
||||
width: 206px;
|
||||
}
|
||||
|
||||
.leftscript {
|
||||
// width: 30%;
|
||||
height: 650px;
|
||||
overflow: auto;
|
||||
|
||||
.name {
|
||||
font-weight: 700;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.listitem {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
border-bottom: 1px solid #dcdfe6;
|
||||
position: relative;
|
||||
|
||||
.count {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 210px;
|
||||
color: #a4a6aa;
|
||||
top: 10px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.all {
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
padding-left: 13px;
|
||||
}
|
||||
|
||||
.allactive {
|
||||
background: #e8f4ff;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
padding-left: 13px;
|
||||
border-left: 3px solid #4d9de7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
left: 20px;
|
||||
top: -11px;
|
||||
}
|
||||
</style>
|
||||
@ -1,48 +1,18 @@
|
||||
<template>
|
||||
<div class="app-container" ref="layout">
|
||||
<div ref="topform" class="form">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryForm"
|
||||
size="small"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="人群名称" prop="crowdName">
|
||||
<el-input
|
||||
v-model="queryParams.crowdName"
|
||||
placeholder="请输入人群名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.crowdName" placeholder="请输入人群名称" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="人群类型" prop="crowdType">
|
||||
<el-select
|
||||
v-model="queryParams.crowdType"
|
||||
placeholder="请选择人群类型"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in dict.type.crowd_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
<el-select v-model="queryParams.crowdType" placeholder="请选择人群类型" clearable>
|
||||
<el-option v-for="dict in dict.type.crowd_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否禁用" prop="whetherDisable">
|
||||
<el-select
|
||||
v-model="queryParams.whetherDisable"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
<el-select v-model="queryParams.whetherDisable" clearable placeholder="请选择">
|
||||
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-input
|
||||
@ -53,55 +23,24 @@
|
||||
/> -->
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div ref="mb8" class="mb8">
|
||||
<el-row :gutter="10" class="">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['manage:crowdInfo:add']"
|
||||
>新增</el-button
|
||||
>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-hasPermi="['manage:crowdInfo:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['manage:crowdInfo:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||
v-hasPermi="['manage:crowdInfo:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['manage:crowdInfo:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||
v-hasPermi="['manage:crowdInfo:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
@ -114,31 +53,16 @@
|
||||
>导出</el-button
|
||||
>
|
||||
</el-col> -->
|
||||
<right-toolbar
|
||||
:showSearch.sync="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
</div>
|
||||
<div ref="table">
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="crowdInfoList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table v-loading="loading" :data="crowdInfoList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键" align="center" prop="id" /> -->
|
||||
<el-table-column label="人群名称" align="center" prop="crowdName" />
|
||||
<el-table-column
|
||||
label="最小适合年龄"
|
||||
align="center"
|
||||
prop="minSuitableAge"
|
||||
/>
|
||||
<el-table-column
|
||||
label="最大适合年龄"
|
||||
align="center"
|
||||
prop="maxSuitableAge"
|
||||
/>
|
||||
<el-table-column label="最小适合年龄" align="center" prop="minSuitableAge" />
|
||||
<el-table-column label="最大适合年龄" align="center" prop="maxSuitableAge" />
|
||||
<el-table-column label="适合性别" align="center" prop="suitableGender">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.suitableGender == "ALL" ? "全部" : "" }}
|
||||
@ -149,15 +73,15 @@
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="人群类型" align="center" prop="crowdType">
|
||||
<!-- <template slot-scope="scope">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.crowdType == "DEFAULT" ? "默认" : "" }}
|
||||
{{ scope.row.crowdType == "CHRONIC_DISEASE" ? "慢病" : "" }}
|
||||
{{ scope.row.crowdType == "SPECIAL_POPULATIONS" ? "特殊人群" : "" }}
|
||||
{{ scope.row.crowdType == "KEY_GROUPS" ? "重点人群" : "" }}
|
||||
</template> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="特殊人群" align="center" prop="specialType">
|
||||
<!-- <template slot-scope="scope">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.specialType == "1" ? "65岁及以上老年人" : "" }}
|
||||
{{ scope.row.specialType == "2" ? "60-64岁老年人" : "" }}
|
||||
{{ scope.row.specialType == "3" ? "60-0-6岁儿童" : "" }}
|
||||
@ -174,7 +98,8 @@
|
||||
{{ scope.row.specialType == "42" ? "肿瘤病" : "" }}
|
||||
{{ scope.row.specialType == "43" ? "贫困人口" : "" }}
|
||||
{{ scope.row.specialType == "44" ? "计划生育特殊家庭" : "" }}
|
||||
</template> -->
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否禁用" align="center" prop="whetherDisable">
|
||||
<template slot-scope="scope">
|
||||
@ -183,145 +108,64 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="排序" align="center" prop="sort" />
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:crowdInfo:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['manage:crowdInfo:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:crowdInfo:edit']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['manage:crowdInfo:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList" /> -->
|
||||
<myPagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum"
|
||||
@updateCPage="updateCPage"
|
||||
></myPagination>
|
||||
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
|
||||
<!-- 添加或修改人群信息对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="750px" append-to-body>
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
label-width="110px"
|
||||
:inline="true"
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="110px" :inline="true">
|
||||
<el-form-item label="人群名称" prop="crowdName">
|
||||
<el-input v-model="form.crowdName" placeholder="请输入人群名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="最小适合年龄" prop="minSuitableAge">
|
||||
<el-input
|
||||
oninput="value=value.replace(/[^\d.]/g,'')"
|
||||
v-model="form.minSuitableAge"
|
||||
placeholder="请输入最小适合年龄"
|
||||
/>
|
||||
<el-input oninput="value=value.replace(/[^\d.]/g,'')" v-model="form.minSuitableAge" placeholder="请输入最小适合年龄" />
|
||||
</el-form-item>
|
||||
<el-form-item label="最大适合年龄" prop="maxSuitableAge">
|
||||
<el-input
|
||||
oninput="value=value.replace(/[^\d.]/g,'')"
|
||||
v-model="form.maxSuitableAge"
|
||||
placeholder="请输入最大适合年龄"
|
||||
/>
|
||||
<el-input oninput="value=value.replace(/[^\d.]/g,'')" v-model="form.maxSuitableAge" placeholder="请输入最大适合年龄" />
|
||||
</el-form-item>
|
||||
<el-form-item label="适合性别" prop="suitableGender">
|
||||
<el-select
|
||||
style="width: 206px"
|
||||
v-model="form.suitableGender"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionssex"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
<el-select style="width:206px" v-model="form.suitableGender" clearable placeholder="请选择">
|
||||
<el-option v-for="item in optionssex" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="人群类型" prop="crowdType">
|
||||
<el-select
|
||||
v-model="form.crowdType"
|
||||
placeholder="请选择人群类型"
|
||||
style="width: 206px"
|
||||
@change="change"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in dict.type.crowd_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
<el-select v-model="form.crowdType" placeholder="请选择人群类型" style="width:206px">
|
||||
<el-option v-for="dict in dict.type.crowd_type" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="特殊人群" prop="specialType">
|
||||
<el-select
|
||||
v-model="form.specialType"
|
||||
placeholder="请选择特殊人群"
|
||||
style="width: 206px"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in typedata"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="dict.dictValue"
|
||||
></el-option>
|
||||
<el-select v-model="form.specialType" placeholder="请选择特殊人群" style="width:206px">
|
||||
<el-option v-for="dict in dict.type.special_type" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否禁用" prop="whetherDisable">
|
||||
<el-select
|
||||
style="width: 206px"
|
||||
v-model="form.whetherDisable"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionswhether"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
<el-select style="width:206px" v-model="form.whetherDisable" clearable placeholder="请选择">
|
||||
<el-option v-for="item in optionswhether" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input-number
|
||||
v-model="form.sort"
|
||||
controls-position="right"
|
||||
:min="0"
|
||||
placeholder="请输入排序"
|
||||
style="width: 206px"
|
||||
/>
|
||||
<el-input-number v-model="form.sort" controls-position="right" :min="0" placeholder="请输入排序"
|
||||
style="width: 206px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input
|
||||
v-model="form.remark"
|
||||
type="textarea"
|
||||
placeholder="请输入备注"
|
||||
maxlength="100"
|
||||
/>
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" maxlength="100" />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
@ -332,16 +176,14 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { type, listCrowdInfo, getCrowdInfo, delCrowdInfo, addCrowdInfo, updateCrowdInfo } from "@/api/manage/crowdInfo";
|
||||
import { listCrowdInfo, getCrowdInfo, delCrowdInfo, addCrowdInfo, updateCrowdInfo } from "@/api/manage/crowdInfo";
|
||||
|
||||
export default {
|
||||
name: "CrowdInfo",
|
||||
dicts: ['crowd_type'],
|
||||
dicts: ['crowd_type', 'special_type'],
|
||||
data() {
|
||||
return {
|
||||
maxTableHeight: undefined,
|
||||
typedata: [],//特殊人群
|
||||
type:'',
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
@ -452,20 +294,6 @@ export default {
|
||||
this.queryParams.pageSize = size
|
||||
this.getList();
|
||||
},
|
||||
// 查询人群类型
|
||||
gettype(){
|
||||
type(this.type).then(res => {
|
||||
this.typedata = res.data
|
||||
})
|
||||
|
||||
},
|
||||
// 人群类型
|
||||
change(e) {
|
||||
this.type = e.toLowerCase()
|
||||
this.form.specialType=null
|
||||
this.gettype()
|
||||
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
@ -520,8 +348,6 @@ export default {
|
||||
const id = row.id || this.ids
|
||||
getCrowdInfo(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.type=response.data.crowdType.toLowerCase()
|
||||
this.gettype()
|
||||
if (response.data.whetherDisable == 0) {
|
||||
this.form.whetherDisable = "否"
|
||||
} else if (response.data.whetherDisable == 1) {
|
||||
@ -602,7 +428,7 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .el-textarea__inner {
|
||||
::v-deep .el-textarea__inner{
|
||||
width: 533px !important;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
@ -2,42 +2,78 @@
|
||||
<div class="header">
|
||||
<div class="topheader">
|
||||
<div class="user">
|
||||
<img class="headsculpture" src="../../../assets/manage/touxiang.png" alt="" v-if="$route.query.sex == 'MALE'"
|
||||
@click="shiftCollapsiable" />
|
||||
<img class="headsculpture" src="../../../assets/manage/nvtouxiang.png" alt=""
|
||||
v-if="$route.query.sex == 'FEMALE'" @click="shiftCollapsiable" />
|
||||
<img
|
||||
class="headsculpture"
|
||||
src="../../../assets/manage/touxiang.png"
|
||||
alt=""
|
||||
v-if="$route.query.sex == 'MALE'"
|
||||
@click="shiftCollapsiable"
|
||||
/>
|
||||
<img
|
||||
class="headsculpture"
|
||||
src="../../../assets/manage/nvtouxiang.png"
|
||||
alt=""
|
||||
v-if="$route.query.sex == 'FEMALE'"
|
||||
@click="shiftCollapsiable"
|
||||
/>
|
||||
<div class="name" @click="shiftCollapsiable">
|
||||
{{ $route.query.patientName }}
|
||||
</div>
|
||||
<div class="gender">
|
||||
{{ $route.query.sex == "MALE" ? "男" : $route.query.sex == "FEMALE" ? "女" : "" }}
|
||||
{{
|
||||
$route.query.sex == "MALE"
|
||||
? "男"
|
||||
: $route.query.sex == "FEMALE"
|
||||
? "女"
|
||||
: ""
|
||||
}}
|
||||
</div>
|
||||
|
||||
<div class="source">
|
||||
<div class="item" style="color: #00e06e; border-color: #00e06e"
|
||||
v-if="$route.query.patientSource == 'WE_CHAT_OFFICIAL_ACCOUNT'">
|
||||
<img src="../../../assets/manage/gzh.png" alt="" style="width: 24px" />
|
||||
<div
|
||||
class="item"
|
||||
style="color: #00e06e; border-color: #00e06e"
|
||||
v-if="$route.query.patientSource == 'WE_CHAT_OFFICIAL_ACCOUNT'"
|
||||
>
|
||||
<img
|
||||
src="../../../assets/manage/gzh.png"
|
||||
alt=""
|
||||
style="width: 24px"
|
||||
/>
|
||||
<div>公众号</div>
|
||||
</div>
|
||||
<div class="item" style="color: #339de5; border-color: #339de5"
|
||||
v-if="$route.query.patientSource == 'WE_CHAT_APPLET'">
|
||||
<div
|
||||
class="item"
|
||||
style="color: #339de5; border-color: #339de5"
|
||||
v-if="$route.query.patientSource == 'WE_CHAT_APPLET'"
|
||||
>
|
||||
<img src="../../../assets/manage/xcx.png" alt="" />
|
||||
<div>小程序</div>
|
||||
</div>
|
||||
<div class="item" style="color: #f4881f; border-color: #f4881f"
|
||||
v-if="$route.query.patientSource == 'MANAGE_END'">
|
||||
<div
|
||||
class="item"
|
||||
style="color: #f4881f; border-color: #f4881f"
|
||||
v-if="$route.query.patientSource == 'MANAGE_END'"
|
||||
>
|
||||
<img src="../../../assets/manage/gld.png" alt="" />
|
||||
<div>管理端</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="age">
|
||||
{{ $route.query.age }}
|
||||
</div>
|
||||
<div class="age">身份证号:{{ $route.query.cardNo }}</div>
|
||||
<div class="age">身份证号:{{ $route.query.patientPhone }}</div>
|
||||
<div class="age">患者电话:{{ $route.query.patientPhone }}</div>
|
||||
<div class="age">出生日期:{{ $route.query.birthDate }}</div>
|
||||
<div class="age">预约时间:{{ $route.query.appointmentDate }}</div>
|
||||
<div class="rihgt">
|
||||
<Button v-show="collapsiable" type="text" @click="shiftCollapsiable" size="mini">
|
||||
<Button
|
||||
v-show="collapsiable"
|
||||
type="text"
|
||||
@click="shiftCollapsiable"
|
||||
size="mini"
|
||||
>
|
||||
<span style="font-size: 14px">
|
||||
{{ fold ? "收起" : "展开" }}
|
||||
<i :class="fold ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"></i>
|
||||
@ -50,7 +86,14 @@
|
||||
<div>家属电话:{{ $route.query.familyMemberPhone }}</div>
|
||||
<div>登记日期:{{ $route.query.registrationDate }}</div>
|
||||
<div>开证医生:{{ $route.query.certificateIssuingDoctorName }}</div>
|
||||
<div style="width: 50%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
|
||||
<div
|
||||
style="
|
||||
width: 50%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
"
|
||||
>
|
||||
主要诊断:{{ $route.query.mainDiagnosis }}
|
||||
</div>
|
||||
</div>
|
||||
@ -64,7 +107,14 @@
|
||||
<div>注册时间:{{ $route.query.createTime }}</div>
|
||||
<div>预约治疗组:{{ $route.query.appointmentTreatmentGroup }}</div>
|
||||
<div>责任护士:{{ $route.query.responsibleNurse }}</div>
|
||||
<div style="width: 50%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
|
||||
<div
|
||||
style="
|
||||
width: 50%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
"
|
||||
>
|
||||
登记号:{{ $route.query.registrationNo }}
|
||||
</div>
|
||||
</div>
|
||||
@ -72,7 +122,12 @@
|
||||
</div>
|
||||
<div class="selectitem" v-if="activeName == 'second' && value">
|
||||
<el-select v-model="value" placeholder="请选择" @change="changeitem">
|
||||
<el-option v-for="item in options" :key="item.id" :label="item.signRouteName" :value="item.id">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.id"
|
||||
:label="item.signRouteName"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
@ -82,17 +137,28 @@
|
||||
<visitRecords :fold="fold"></visitRecords>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="康复计划及记录" name="second">
|
||||
<RehabilitationPlanandRecords v-if="activeName == 'second'" :signPatientRecordld="signPatientRecordld"
|
||||
:fold="fold"></RehabilitationPlanandRecords>
|
||||
<RehabilitationPlanandRecords
|
||||
v-if="activeName == 'second'"
|
||||
:signPatientRecordld="signPatientRecordld"
|
||||
:fold="fold"
|
||||
></RehabilitationPlanandRecords>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="健康宣教" name="third">
|
||||
<healthEducation v-if="activeName == 'third'" :fold="fold"></healthEducation>
|
||||
<healthEducation
|
||||
v-if="activeName == 'third'"
|
||||
:fold="fold"
|
||||
></healthEducation>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="指标监测" name="fourth">
|
||||
<indicatorMonitoring v-if="activeName == 'fourth'"></indicatorMonitoring>
|
||||
<indicatorMonitoring
|
||||
v-if="activeName == 'fourth'"
|
||||
></indicatorMonitoring>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="签约记录" name="five">
|
||||
<signingRecords v-if="activeName == 'five'" :fold="fold"></signingRecords>
|
||||
<signingRecords
|
||||
v-if="activeName == 'five'"
|
||||
:fold="fold"
|
||||
></signingRecords>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
@ -101,6 +167,7 @@
|
||||
|
||||
<script>
|
||||
import { getRecordLists } from "@/api/manage/signingRecords";
|
||||
|
||||
import visitRecords from "../components/visitRecords.vue";
|
||||
import healthEducation from "../components/healthEducation.vue";
|
||||
import indicatorMonitoring from "../components/indicatorMonitoring.vue";
|
||||
@ -134,8 +201,10 @@ export default {
|
||||
};
|
||||
},
|
||||
created() {
|
||||
console.log(1111111111);
|
||||
// if(this.activeName == 'second'){
|
||||
this.info();
|
||||
|
||||
// }
|
||||
},
|
||||
methods: {
|
||||
@ -144,10 +213,12 @@ export default {
|
||||
this.fold = !this.fold;
|
||||
},
|
||||
changeitem(e) {
|
||||
console.log(e, "e");
|
||||
this.signPatientRecordld = e;
|
||||
},
|
||||
info() {
|
||||
getRecordLists(this.$route.query.patientId).then((res) => {
|
||||
console.log(res, "res");
|
||||
this.options = res.data;
|
||||
this.value = res.data[0].signRouteName;
|
||||
this.signPatientRecordld = res.data[0].id;
|
||||
@ -161,7 +232,6 @@ export default {
|
||||
overflow: hidden;
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
.selectitem {
|
||||
display: inline-block;
|
||||
width: 220px;
|
||||
@ -170,7 +240,6 @@ export default {
|
||||
z-index: 999;
|
||||
line-height: 65px;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: #f1f3f5;
|
||||
padding-top: 10px;
|
||||
@ -254,7 +323,6 @@ export default {
|
||||
.age {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.rihgt {
|
||||
position: absolute;
|
||||
right: 40px;
|
||||
|
||||
@ -158,12 +158,12 @@
|
||||
/>
|
||||
|
||||
<el-table-column label="字段类型" align="center" prop="fieldType">
|
||||
<!-- <template slot-scope="scope">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.fieldType == "STRING" ? "默认字符串" : "" }}
|
||||
{{ scope.row.fieldType == "INT" ? "整型" : "" }}
|
||||
{{ scope.row.fieldType == "DECIMAL" ? "数值" : "" }}
|
||||
{{ scope.row.fieldType == "ENUM" ? "枚举" : "" }}
|
||||
</template> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="字段排序" align="center" prop="fieldSort" />
|
||||
<!-- <el-table-column
|
||||
|
||||
@ -552,10 +552,13 @@ export default {
|
||||
crowNamechange(e) {
|
||||
this.form.crowName = this.optionscrowName.find(f => f.id == e).crowdName
|
||||
this.form.crowdId = e
|
||||
|
||||
|
||||
},
|
||||
/** 查询素材信息列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.queryParams.params = {};
|
||||
listMaterials(this.queryParams).then(response => {
|
||||
this.materialsList = response.rows;
|
||||
this.total = response.total;
|
||||
|
||||
@ -153,7 +153,7 @@
|
||||
<cardlist :maxTableHeight="maxTableHeight" :patientInfoList="patientInfoList"></cardlist>
|
||||
</div>
|
||||
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum" :indexFrom="queryParams.pageSize" @updateCPage="updateCPage"></myPagination>
|
||||
:indexFromWrap="queryParams.pageNum" :indexFrom="indexFrom" @updateCPage="updateCPage"></myPagination>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -175,6 +175,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
type: "card",
|
||||
indexFrom: "",
|
||||
searchData: {},
|
||||
maxTableHeight: undefined,
|
||||
attendingPhysicianlist: [],
|
||||
@ -229,8 +230,9 @@ export default {
|
||||
handler(val) {
|
||||
if (val == "table") {
|
||||
this.queryParams.pageSize = 10;
|
||||
this.indexFrom = "";
|
||||
} else if (val == "card") {
|
||||
this.queryParams.pageSize = 100;
|
||||
this.indexFrom = 100;
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
@ -288,7 +290,7 @@ export default {
|
||||
birthDate: row.birthDate,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
},
|
||||
});
|
||||
},
|
||||
@ -310,13 +312,14 @@ export default {
|
||||
createTime: row.createTime,
|
||||
hospitalAgencyName: row.hospitalAgencyName,
|
||||
mainDiagnosis: row.mainDiagnosis,
|
||||
age: row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
},
|
||||
});
|
||||
},
|
||||
/** 查询患者信息列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.queryParams.params = {};
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: "数据加载中",
|
||||
@ -325,14 +328,13 @@ export default {
|
||||
});
|
||||
getPatientList(this.queryParams).then((response) => {
|
||||
response.rows.forEach((e) => {
|
||||
e.birthDate ? (e.age = getAge(e.birthDate)) : e.age;
|
||||
e.birthDate ? (e.age = getAge(e.birthDate)) : "";
|
||||
});
|
||||
|
||||
this.patientInfoList = response.rows;
|
||||
this.total = response.total;
|
||||
loading.close();
|
||||
this.loading = false;
|
||||
}).catch(() => {
|
||||
loading.close();
|
||||
});
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
@ -357,11 +359,13 @@ export default {
|
||||
typeitem() {
|
||||
this.type = "card";
|
||||
this.queryParams.pageSize = 100;
|
||||
// console.log( this.queryParams.pageSize)
|
||||
this.getList();
|
||||
},
|
||||
typeitemtable() {
|
||||
this.type = "table";
|
||||
this.queryParams.pageSize = 10;
|
||||
// console.log( this.queryParams.pageSize)
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
@ -377,6 +381,7 @@ export default {
|
||||
pageSize: 10,
|
||||
};
|
||||
}
|
||||
|
||||
this.admissionTime = [];
|
||||
this.queryParams.admissionTimeStart = null;
|
||||
this.queryParams.admissionTimeEnd = null;
|
||||
|
||||
@ -1,474 +0,0 @@
|
||||
<template>
|
||||
<div class="app-container" ref="layout">
|
||||
<div ref="topform" class="form">
|
||||
<SearchFilter :labelWidths="310" :widths="70" size="small" @search="handleQuery" @handleRules="getList"
|
||||
patientUploadButtonVisible="true" @reset="resetQuery" @minShowCtrol="getMaxTableHeight" v-show="showSearch">
|
||||
<el-form-item label="导入日期" prop="" label-width="90px">
|
||||
<el-date-picker v-model="createTime" type="daterange" range-separator="至" start-placeholder="开始日期"
|
||||
style="width: 220px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="流水号" prop="sn" label-width="90px">
|
||||
<el-input v-model="queryParams.sn" placeholder="请输入流水号" style="width: 220px" clearable>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="批次名称" prop="importName" label-width="90px">
|
||||
<el-input v-model="queryParams.importName" placeholder="请输入批次名称" style="width: 220px" clearable>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="医院" prop="" label-width="90px">
|
||||
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width: 220px"
|
||||
clearable @clear="clearhospitalAgency" @change="changehospitalAgency">
|
||||
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="院区" prop="">
|
||||
<el-select v-model="queryParams.campusAgencyId" filterable placeholder="请选择院区" style="width: 220px" clearable
|
||||
@clear="clearcampusAgency">
|
||||
<el-option v-for="item in campusAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
</SearchFilter>
|
||||
</div>
|
||||
<!-- <div ref="mb8" class="mb8">
|
||||
<el-row :gutter="10" class="">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-hasPermi="['manage:blacklist:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||
v-hasPermi="['manage:blacklist:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||
v-hasPermi="['manage:blacklist:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||
v-hasPermi="['manage:blacklist:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
</div> -->
|
||||
<div ref="table">
|
||||
<el-table :max-height="maxTableHeight" v-loading="loading" :data="PatientInfoImportBatchlist"
|
||||
@selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="流水号" prop="sn" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handsn(scope.row)">
|
||||
{{ scope.row.sn }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="批次名称" align="center" prop="importName" />
|
||||
<el-table-column label="患者数" align="center" prop="patientCount" />
|
||||
<el-table-column label="操作人" align="center" prop="createBy" />
|
||||
<el-table-column label="导入日期" align="center" prop="createTime">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button size="mini" type="text" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:blacklist:edit']">修改</el-button>
|
||||
<el-button size="mini" type="text" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['manage:blacklist:remove']">删除</el-button> -->
|
||||
<el-button size="mini" type="text" @click="handOutbound(scope.row)">外呼</el-button>
|
||||
<el-button size="mini" type="text" @click="ljhandOutbound(scope.row)">立即外呼</el-button>
|
||||
<el-button size="mini" type="text" @click="handsn(scope.row)">明细</el-button>
|
||||
<el-button size="mini" type="text" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize" @pagination="getList" /> -->
|
||||
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
|
||||
<el-dialog title="立即外呼" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||
<el-form-item label="任务名称" prop="manageRouteName">
|
||||
<el-input v-model="form.manageRouteName" placeholder="请输入任务名称" />
|
||||
</el-form-item>
|
||||
<el-descriptions title="上次外呼数据简介" />
|
||||
<el-form-item label="流水号" prop="sn">
|
||||
<div class="formdiv">
|
||||
{{ form.sn }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务节点类型" prop="taskNodeType">
|
||||
<div class="formdiv">
|
||||
{{ form.taskNodeType == 'PHONE_OUTBOUND' ? '电话外呼' : '' }}
|
||||
{{ form.taskNodeType == 'QUESTIONNAIRE_SCALE' ? '问卷量表' : '' }}
|
||||
{{ form.taskNodeType == 'PROPAGANDA_ARTICLE' ? '宣教文案' : '' }}
|
||||
{{ form.taskNodeType == 'TEXT_REMIND' ? '文字提醒' : '' }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<span v-if="form.taskNodeType == 'PHONE_OUTBOUND'">
|
||||
<el-form-item label="话术模板" prop="phoneTemplateName">
|
||||
<div class="formdiv">
|
||||
{{ form.phoneTemplateName }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="推送方式" prop="phoneDialMethod">
|
||||
<div class="formdiv">
|
||||
{{ form.phoneDialMethod == 'COMMON' ? '人工电话' : '' }}
|
||||
{{ form.phoneDialMethod == 'AI' ? '自动外呼' : '' }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="重播次数" prop="phoneRedialTimes">
|
||||
<div class="formdiv">
|
||||
{{ returnphoneRedialTime(form.phoneRedialTimes) }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间间隔(分)" prop="phoneTimeInterval">
|
||||
<div class="formdiv">
|
||||
{{ form.phoneTimeInterval }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
</span>
|
||||
<span v-if="form.taskNodeType == 'QUESTIONNAIRE_SCALE'">
|
||||
<el-form-item label="问卷模板" prop="taskNodeType">
|
||||
<div class="formdiv">
|
||||
{{ form.questionnaireName }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="推送方式" prop="phoneDialMethod">
|
||||
<div class="formdiv">
|
||||
{{ form.phoneDialMethod == '' ? '小程序问卷' : '' }}
|
||||
{{ form.phoneDialMethod == 'AI' ? 'AI自动外呼' : '' }}
|
||||
{{ form.phoneDialMethod == 'COMMON' ? '人工随访' : '' }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
</span>
|
||||
<el-form-item v-if="form.taskNodeType == 'PROPAGANDA_ARTICLE'" label="宣教模板" prop="taskNodeType">
|
||||
<div class="formdiv">
|
||||
{{ form.propagandaTitle }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="Calloutimmediately">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { patientInfoImportBatchlist, updateSn, outboundConfirmation, directOutbound } from "@/api/manage/patientInfoImport";
|
||||
import { selectAgencyList, getDepartmentList, getAgencyList } from "@/api/manage/selectAgencyList";
|
||||
import SearchFilter from '../../components/SearchForm.vue'
|
||||
import { getAgencytype } from "@/api/system/agency";
|
||||
export default {
|
||||
name: "Importlist",
|
||||
components: { SearchFilter },
|
||||
data() {
|
||||
return {
|
||||
maxTableHeight: undefined,
|
||||
//医院list
|
||||
hospitalAgencylist: [],
|
||||
// 院区list
|
||||
campusAgencylist: [],
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 导入列表
|
||||
PatientInfoImportBatchlist: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
createTime: "",
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
hospitalAgencyId: null,
|
||||
importTimeStart: "",
|
||||
importTimeEnd: "",
|
||||
campusAgencyId: null,
|
||||
sn: "",
|
||||
importName: "",
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
//重播次数
|
||||
optionslisttime: [],
|
||||
// 表单校验
|
||||
rules: {
|
||||
manageRouteName: [
|
||||
{ required: true, message: '请输入任务名称', trigger: 'change' }
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.selectAgencyinfo();
|
||||
this.getList();
|
||||
},
|
||||
mounted() {
|
||||
this.getMaxTableHeight()
|
||||
this.screenChange()
|
||||
},
|
||||
methods: {
|
||||
// 流水号/明细
|
||||
handsn(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/ImportDetails",
|
||||
query: {
|
||||
path: "/patient/patientinfoimport",
|
||||
sn: row.sn,
|
||||
Timeimport: row.createTime,
|
||||
},
|
||||
});
|
||||
},
|
||||
// 外呼
|
||||
handOutbound(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/ManuallyCreatingTasks",
|
||||
query: {
|
||||
path: "/patient/patientinfoimport",
|
||||
// signPatientRecordId: row.id,
|
||||
sn: row.sn ? row.sn : '',
|
||||
patientName: row.patientName ? row.patientName : '',
|
||||
departmentId: row.departmentId ? row.departmentId : '',
|
||||
departmentName: row.departmentName ? row.departmentName : '',
|
||||
},
|
||||
});
|
||||
},
|
||||
returnphoneRedialTime(text) {
|
||||
let arr = this.optionslisttime;
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
if (arr[i].dictValue == text) {
|
||||
return arr[i].dictLabel;
|
||||
}
|
||||
}
|
||||
},
|
||||
// 立即外呼
|
||||
ljhandOutbound(row) {
|
||||
var dictType = "redial_times";
|
||||
getAgencytype(dictType).then((res) => {
|
||||
this.optionslisttime = res.data;
|
||||
outboundConfirmation().then(res => {
|
||||
if (res.data) {
|
||||
this.form = res.data;
|
||||
this.$set(this.form, 'sn', row.sn + '')
|
||||
this.open = true;
|
||||
} else {
|
||||
this.$modal.msgError("暂无最新外呼数据,请先进行手动外呼");
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
Calloutimmediately() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
directOutbound(this.form).then(res => {
|
||||
this.$modal.msgSuccess("操作成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
// const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除?').then(() => {
|
||||
return updateSn(row.sn);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => { });
|
||||
},
|
||||
updateCPage(index, size) {
|
||||
this.queryParams.pageNum = index
|
||||
this.queryParams.pageSize = size
|
||||
this.getList();
|
||||
},
|
||||
/** 查询 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
patientInfoImportBatchlist(this.queryParams).then(response => {
|
||||
this.PatientInfoImportBatchlist = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
if (this.createTime?.length > 0) {
|
||||
this.queryParams.importTimeStart = this.createTime[0];
|
||||
this.queryParams.importTimeEnd = this.createTime[1];
|
||||
} else {
|
||||
this.queryParams.importTimeStart = null;
|
||||
this.queryParams.importTimeEnd = null;
|
||||
}
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.queryParams = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
hospitalAgencyId: null,
|
||||
importTimeStart: "",
|
||||
importTimeEnd: "",
|
||||
campusAgencyId: null,
|
||||
sn: "",
|
||||
importName: "",
|
||||
}
|
||||
this.createTime = '';
|
||||
// this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('manage/blacklist/export', {
|
||||
...this.queryParams
|
||||
}, `blacklist_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
//获取医院list
|
||||
selectAgencyinfo() {
|
||||
let query = {
|
||||
agencyStatus: 'ON',
|
||||
nodeType: 'HOSPITAL',
|
||||
}
|
||||
selectAgencyList(query).then(res => {
|
||||
this.hospitalAgencylist = res.data
|
||||
})
|
||||
},
|
||||
//获取下级单位
|
||||
getAgencyListinfo(nodeType, id, type) {
|
||||
let query = {
|
||||
nodeType: nodeType,
|
||||
}
|
||||
if (nodeType == 'HOSPITAL') {
|
||||
query.hospitalId = id
|
||||
} else if (nodeType == 'CAMPUS') {
|
||||
query.campusId = id
|
||||
}
|
||||
getAgencyList(query).then(res => {
|
||||
// if (type) {
|
||||
if (nodeType == 'HOSPITAL') {
|
||||
this.campusAgencylist = res.data.campusList;
|
||||
}
|
||||
// }
|
||||
})
|
||||
},
|
||||
//选中医院获取院区
|
||||
changehospitalAgency(id, type, typetwo) {
|
||||
this.getAgencyListinfo('HOSPITAL', id, type)
|
||||
// let query = {
|
||||
// agencyStatus: 'ON',
|
||||
// nodeType: 'CAMPUS',
|
||||
// parentId: id,
|
||||
// }
|
||||
// selectAgencyList(query).then(res => {
|
||||
if (type) {
|
||||
if (!typetwo) {
|
||||
this.form.campusAgencyId = null
|
||||
}
|
||||
} else {
|
||||
this.queryParams.campusAgencyId = null
|
||||
}
|
||||
// })
|
||||
},
|
||||
//选中院区获取科室
|
||||
changecampusAgency(id, type, typetwo) {
|
||||
this.getAgencyListinfo('CAMPUS', id, type)
|
||||
},
|
||||
//清空医院
|
||||
clearhospitalAgency(type) {
|
||||
if (type) {
|
||||
this.form.campusAgencyId = null
|
||||
this.form.departmentId = null
|
||||
this.form.wardId = null
|
||||
} else {
|
||||
this.queryParams.campusAgencyId = null
|
||||
this.queryParams.departmentId = null
|
||||
this.queryParams.wardId = null
|
||||
}
|
||||
},
|
||||
//清空院区
|
||||
clearcampusAgency(type) {
|
||||
if (type) {
|
||||
this.form.departmentId = null
|
||||
this.form.wardId = null
|
||||
this.getAgencyListinfo('HOSPITAL', this.form.hospitalAgencyId, type)
|
||||
} else {
|
||||
this.queryParams.departmentId = null
|
||||
this.queryParams.wardId = null
|
||||
this.getAgencyListinfo('HOSPITAL', this.queryParams.hospitalAgencyId)
|
||||
}
|
||||
},
|
||||
// 获取表格最高高度
|
||||
getMaxTableHeight() {
|
||||
const windowInnerHeight = window.innerHeight // 屏幕可视高度
|
||||
const layoutDiv = this.$refs.layout
|
||||
const formDiv = this.$refs.topform
|
||||
const mb8Div = this.$refs.mb8
|
||||
this.maxTableHeight =
|
||||
windowInnerHeight - 134 -
|
||||
this.getBoxPadding(layoutDiv) -
|
||||
this.getBoxHeight(mb8Div) -
|
||||
this.getBoxHeight(formDiv)
|
||||
},
|
||||
// 屏幕resize监听
|
||||
screenChange() {
|
||||
// 屏幕resize监听事件:一旦屏幕宽高发生变化,就会执行resize
|
||||
window.addEventListener('resize', this.getMaxTableHeight, true)
|
||||
// 将屏幕监听事件移除
|
||||
// 这步是必须的。离开页面时不移除,再返回,或者进入到别的有相同元素的页面会报错
|
||||
// 或者将这里的方法直接写在beforeDestroy函数中也可以
|
||||
this.$once('hook:beforeDestroy', () => {
|
||||
window.removeEventListener('resize', this.getMaxTableHeight, true)
|
||||
})
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.formdiv {
|
||||
width: 340px;
|
||||
border: 1px solid #DCDFE6;
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
font-size: 14px;
|
||||
padding: 0 15px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
</style>
|
||||
@ -669,7 +669,7 @@ export default {
|
||||
birthDate: row.birthDate,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : '',
|
||||
|
||||
},
|
||||
});
|
||||
@ -702,7 +702,7 @@ export default {
|
||||
this.queryParams.patientType = 'PRE_HOSPITALIZED_PATIENT'
|
||||
listPatientInfo(this.queryParams).then(response => {
|
||||
response.rows.forEach(e => {
|
||||
e.birthDate ? e.age = getAge(e.birthDate) : e.age
|
||||
e.birthDate ? e.age = getAge(e.birthDate) : ''
|
||||
})
|
||||
this.patientInfoList = response.rows;
|
||||
this.total = response.total;
|
||||
|
||||
@ -21,7 +21,6 @@
|
||||
>
|
||||
<el-form-item label="创建时间" prop="">
|
||||
<el-date-picker
|
||||
style="width: 205px"
|
||||
v-model="queryParams.createTimeStart"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
@ -32,7 +31,6 @@
|
||||
</el-date-picker>
|
||||
-
|
||||
<el-date-picker
|
||||
style="width: 205px"
|
||||
v-model="queryParams.createTimeEnd"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
@ -46,7 +44,6 @@
|
||||
<el-select
|
||||
v-model="queryParams.propagandaType"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionstype"
|
||||
@ -68,7 +65,6 @@
|
||||
<el-select
|
||||
v-model="queryParams.propagandaStatus"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionsstate"
|
||||
@ -85,21 +81,6 @@
|
||||
@keyup.enter.native="handleQuery"
|
||||
/> -->
|
||||
</el-form-item>
|
||||
<el-form-item label="来源" prop="source" label-width="50">
|
||||
<el-select
|
||||
v-model="queryParams.source"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionspublick"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
@ -452,7 +433,7 @@
|
||||
<el-form-item label="正文内容" prop="propagandaContent" v-if="open">
|
||||
<editor
|
||||
id="id"
|
||||
ref="quillEditor"
|
||||
ref="myTextarea"
|
||||
v-model="form.propagandaContent"
|
||||
:min-height="192"
|
||||
style="width: 800px"
|
||||
@ -562,69 +543,65 @@
|
||||
append-to-body
|
||||
:before-close="canceldiseases"
|
||||
>
|
||||
<div style="padding-bottom: 23px">
|
||||
<el-form
|
||||
ref="queryForm"
|
||||
:model="querydisease"
|
||||
:rules="rules"
|
||||
label-width="80px"
|
||||
:inline="true"
|
||||
>
|
||||
<el-form-item
|
||||
label="病种名称"
|
||||
prop="diseaseTypeName"
|
||||
label-width="120"
|
||||
<div style="padding-bottom: 23px;">
|
||||
<el-form
|
||||
ref="queryForm"
|
||||
:model="querydisease"
|
||||
:rules="rules"
|
||||
label-width="80px"
|
||||
:inline="true"
|
||||
>
|
||||
<el-form-item label="病种名称" prop="diseaseTypeName" label-width="120">
|
||||
<el-input
|
||||
v-model="querydisease.diseaseTypeName"
|
||||
placeholder="请输入病种名称"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="infodisease"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-input
|
||||
v-model="querydisease.diseaseTypeName"
|
||||
placeholder="请输入病种名称"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetdisease"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="listdisease"
|
||||
@cell-dblclick="nurseclickdisease"
|
||||
v-loading="loading"
|
||||
>
|
||||
<el-table-column label="请选择" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="infodisease"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetdisease"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="listdisease"
|
||||
@cell-dblclick="nurseclickdisease"
|
||||
v-loading="loading"
|
||||
style="width: 15px; height: 15px"
|
||||
v-if="form.diseaseTypeId == scope.row.id"
|
||||
circle
|
||||
@click="nurseclickdisease(scope.row)"
|
||||
></el-button>
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="nurseclickdisease(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="diseaseTypeName"
|
||||
label="病种名称"
|
||||
align="center"
|
||||
:show-overflow-tooltip="true"
|
||||
>
|
||||
<el-table-column label="请选择" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 15px; height: 15px"
|
||||
v-if="form.diseaseTypeId == scope.row.id"
|
||||
circle
|
||||
@click="nurseclickdisease(scope.row)"
|
||||
></el-button>
|
||||
<el-button
|
||||
v-else
|
||||
style="width: 15px; height: 15px"
|
||||
circle
|
||||
@click="nurseclickdisease(scope.row)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
property="diseaseTypeName"
|
||||
label="病种名称"
|
||||
align="center"
|
||||
:show-overflow-tooltip="true"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <pagination v-show="diseasetotal > 0" :total="diseasetotal" :page.sync="querydisease.pageNum"
|
||||
:limit.sync="querydisease.pageSize" @pagination="infodisease" /> -->
|
||||
<myPagination
|
||||
@ -665,8 +642,8 @@
|
||||
<div>
|
||||
<img :src="baseUrl + formview.propagandaCoverPath" alt="" />
|
||||
<div class="know">知识卡片</div>
|
||||
<div class="knowlist" v-html="formview.propagandaContent"></div>
|
||||
<!-- <Editorxj v-model="formview.propagandaContent" :min-height="192" /> -->
|
||||
<div class="knowlist" v-html="formview.propagandaContent">
|
||||
</div> <!-- <Editorxj v-model="formview.propagandaContent" :min-height="192" /> -->
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
@ -896,18 +873,6 @@ export default {
|
||||
},//预览数据
|
||||
copyid: null,//复制id
|
||||
examineid: null,//审核id
|
||||
// 来源
|
||||
optionspublick: [
|
||||
{
|
||||
value: 'PRIVATE',
|
||||
label: '私有'
|
||||
},
|
||||
{
|
||||
value: 'PUBLIC',
|
||||
label: '公共'
|
||||
},
|
||||
|
||||
],
|
||||
optionstype: [{
|
||||
value: 'MEDICATION_KNOWLEDGE',
|
||||
label: '用药知识'
|
||||
@ -984,7 +949,6 @@ export default {
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
source: 'PRIVATE',
|
||||
patientId: null,
|
||||
propagandaId: null,
|
||||
departmentName: null,
|
||||
@ -1112,7 +1076,7 @@ export default {
|
||||
this.$forceUpdate()
|
||||
},
|
||||
// 粘贴事件
|
||||
async handlePaste(event) {
|
||||
handlePaste(event) {
|
||||
console.log(event, 'event')
|
||||
const clipboardData = event.clipboardData || window.clipboardData;
|
||||
const pastedText = clipboardData.getData('text');
|
||||
@ -1128,30 +1092,15 @@ export default {
|
||||
});
|
||||
}
|
||||
else {
|
||||
const editor = this.$refs.quillEditor.getEditor();
|
||||
let length = editor.selection.savedRange.index;
|
||||
const text = clipboardData.getData('text/plain');
|
||||
// 在光标位置插入文本,text为需要插入的文本
|
||||
console.log(text, 'length + text.length')
|
||||
editor.insertEmbed(length, text);
|
||||
|
||||
await setTimeout(() => {
|
||||
// 将光标移动到插入文本的末尾
|
||||
editor.setSelection(length + text.length);
|
||||
}, 10); // 使用 setTimeout 确保操作顺序
|
||||
|
||||
// editor.insertText(range.index, text);
|
||||
// editor.setSelection(range.index + text.length);
|
||||
// // 获取粘贴的文本内容
|
||||
// event.preventDefault();
|
||||
// // 将粘贴的文本插入到编辑器中
|
||||
// event.target.outerText += pastedText;
|
||||
// // 光标聚焦到末尾
|
||||
// const dom = document.getElementById('id')
|
||||
// dom && dom.focus()
|
||||
// // document.execCommand('selectAll', false, null);
|
||||
// // document.getSelection().collapseToEnd();
|
||||
// console.log(event, '222222222222222')
|
||||
event.preventDefault();
|
||||
// 将粘贴的文本插入到编辑器中
|
||||
event.target.outerText += pastedText;
|
||||
// 光标聚焦到末尾
|
||||
const dom = document.getElementById('id')
|
||||
dom && dom.focus()
|
||||
// document.execCommand('selectAll', false, null);
|
||||
// document.getSelection().collapseToEnd();
|
||||
console.log(event, '222222222222222')
|
||||
}
|
||||
},
|
||||
// checkContentLength(event) {
|
||||
@ -1468,9 +1417,8 @@ export default {
|
||||
resetQuery() {
|
||||
this.queryParams.createTimeEnd = null
|
||||
this.queryParams.createTimeStart = null
|
||||
this.queryParams.propagandaType = null
|
||||
this.queryParams.propagandaStatus = null
|
||||
this.queryParams.source = null
|
||||
this.queryParams.propagandaType=null
|
||||
this.queryParams.propagandaStatus=null
|
||||
this.informationqueryParams.hospitalAgencyId = JSON.parse(localStorage.getItem('user')).hospitalAgencyId
|
||||
this.queryParams.hospitalAgencyId = JSON.parse(localStorage.getItem('user')).hospitalAgencyId
|
||||
this.resetForm("queryForms");
|
||||
@ -1633,17 +1581,20 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .el-dialog {
|
||||
top: -25px;
|
||||
// height:95vh;
|
||||
::v-deep .el-dialog{
|
||||
top:-25px;
|
||||
height:95vh;
|
||||
}
|
||||
::v-deep .ql-editor {
|
||||
::v-deep .ql-video {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
}
|
||||
::v-deep .el-dialog__body {
|
||||
padding-top: 10px !important;
|
||||
::v-deep .el-dialog__body
|
||||
{
|
||||
padding-top: 10px !important;
|
||||
|
||||
}
|
||||
|
||||
.articleSummary {
|
||||
@ -1755,7 +1706,7 @@ audio {
|
||||
}
|
||||
|
||||
::v-deep img {
|
||||
max-width: 950px;
|
||||
max-width: 950px;
|
||||
// width: 362px;
|
||||
// height: 127px;
|
||||
margin: 0px 0px 0px 30px;
|
||||
|
||||
@ -623,7 +623,7 @@ export default {
|
||||
departmentName: row.departmentName,
|
||||
paymentStatus: row.paymentStatus,
|
||||
sex: row.sex,
|
||||
age: row.birthDate ? getAge(row.birthDate) : row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
patientId: row.patientId,
|
||||
createTime: row.createTime,
|
||||
},
|
||||
@ -765,7 +765,7 @@ export default {
|
||||
birthDate: row.birthDate,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.birthDate ? getAge(row.birthDate) : row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
},
|
||||
});
|
||||
},
|
||||
@ -785,7 +785,7 @@ export default {
|
||||
address: row.address,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.birthDate ? getAge(row.birthDate) : row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -703,7 +703,7 @@ export default {
|
||||
birthDate: row.birthDate,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.age
|
||||
age: row.birthDate ? getAge(row.birthDate) : ''
|
||||
},
|
||||
});
|
||||
},
|
||||
@ -753,7 +753,7 @@ export default {
|
||||
this.queryParams.patientType = 'IN_HOSPITAL_PATIENT'
|
||||
listPatientInfo(this.queryParams).then(response => {
|
||||
response.rows.forEach(e => {
|
||||
e.birthDate ? e.age = getAge(e.birthDate) :e.age
|
||||
e.birthDate ? e.age = getAge(e.birthDate) : ''
|
||||
})
|
||||
this.patientInfoList = response.rows;
|
||||
this.total = response.total;
|
||||
|
||||
@ -216,7 +216,7 @@
|
||||
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
|
||||
<!-- 添加或修改患者信息对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="1100px" append-to-body :before-close="handleClose">
|
||||
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body :before-close="handleClose">
|
||||
<el-form ref="openform" :model="form" :rules="rules" label-width="100px" :inline="true">
|
||||
<div class="titlenew">基本信息</div>
|
||||
<el-form-item label="患者姓名" prop="patientName">
|
||||
@ -326,13 +326,13 @@
|
||||
<el-input v-model="form.surgicalName" placeholder="请输入手术名称" style="width: 220px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="手术记录" prop="surgicalRecord" v-show="form.visitMethod == 'BE_IN_HOSPITAL'">
|
||||
<editor v-model="form.surgicalRecord" :min-height="192" style="width: 880px" />
|
||||
<editor v-model="form.surgicalRecord" :min-height="192" style="width: 838px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="入院病历">
|
||||
<editor v-model="form.inHospitalInfo" :min-height="192" style="width: 880px" />
|
||||
<editor v-model="form.inHospitalInfo" :min-height="192" style="width: 838px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出院病历" v-show="form.visitMethod == 'BE_IN_HOSPITAL'">
|
||||
<editor v-model="form.outHospitalInfo" :min-height="192" style="width: 880px" />
|
||||
<editor v-model="form.outHospitalInfo" :min-height="192" style="width: 838px" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="患者来源" prop="patientSource">
|
||||
<el-select v-model="form.patientSource" placeholder="请选择患者来源" clearable style="width:220px">
|
||||
@ -766,7 +766,7 @@ export default {
|
||||
departmentName: row.departmentName,
|
||||
paymentStatus: row.paymentStatus,
|
||||
sex: row.sex,
|
||||
age: row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
patientId: row.patientId,
|
||||
createTime: row.createTime,
|
||||
},
|
||||
@ -831,7 +831,7 @@ export default {
|
||||
birthDate: row.birthDate,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
},
|
||||
});
|
||||
},
|
||||
@ -841,11 +841,9 @@ export default {
|
||||
this.queryParams.patientType = "OUTPATIENT_DISCHARGE";
|
||||
listPatientInfo(this.queryParams).then((response) => {
|
||||
response.rows.forEach((e) => {
|
||||
e.birthDate ? (e.age = getAge(e.birthDate)) : e.age;
|
||||
e.birthDate ? (e.age = getAge(e.birthDate)) : "";
|
||||
});
|
||||
this.patientInfoList = response.rows;
|
||||
console.log(this.patientInfoList,'this.patientInfoList')
|
||||
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
@ -944,14 +942,7 @@ export default {
|
||||
console.log(id);
|
||||
getPatientInfo(id).then((response) => {
|
||||
this.form = response.data;
|
||||
if( this.form.dischargeTime && ! this.form.visitDate){
|
||||
this.form.dischargeTime = response.data.dischargeTime
|
||||
}else if(this.form.visitDate && ! this.form.dischargeTime){
|
||||
this.form.dischargeTime = response.data.visitDate
|
||||
}else if(this.form.visitDate && this.form.dischargeTime){
|
||||
this.form.dischargeTime = response.data.visitDate
|
||||
}
|
||||
|
||||
this.form = response.data;
|
||||
if (this.form.hospitalAgencyId) {
|
||||
this.changehospitalAgency(this.form.hospitalAgencyId, 1, 2);
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div style="background-color: #f1f3f5; padding-top: 10px">
|
||||
<div style="background-color: #f1f3f5;padding-top:10px">
|
||||
<div class="titlemengt" ref="layout">
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="upload">保存</el-button>
|
||||
@ -103,82 +103,44 @@
|
||||
</div> -->
|
||||
<!-- <el-button @click="submit" style="float:right">保存触发条件</el-button> -->
|
||||
</div>
|
||||
<div class="nodes" :style="{ height: heightLine + 'px' }">
|
||||
<div class="nodes" :style="{ 'height': heightLine + 'px' }">
|
||||
<div class="nodenames">
|
||||
<div class="timetitle">
|
||||
管理路径节点({{ list.length }})
|
||||
<i class="el-icon-circle-plus-outline" @click="additem"></i>
|
||||
</div>
|
||||
<el-timeline>
|
||||
<el-timeline-item v-for="(item, index) in list" :key="index" :color="listindex == index ? '#13CE66' : ''"
|
||||
<el-timeline-item v-for="(item, index) in list" :key="index" :color="listindex == index ? '#409EFF' : ''"
|
||||
@click.native="clicktimelineitem(item, index)">
|
||||
<div class="top">
|
||||
<div class="toptop">
|
||||
<el-radio v-model="item.checked1" :label="1" @change="handleCheckAllChange1($event, item)">
|
||||
<el-select style="width: 123px" v-model="item.routeNodeName" @focus="handleFocusone(item)">
|
||||
<el-option v-for="item in parentDictCodelist" :key="item.dictValue" :label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-input style="width: 90px" v-model="item.routeNodeDay" type="number"
|
||||
@focus="handleFocus(item)"></el-input>
|
||||
<span>天</span>
|
||||
</el-radio>
|
||||
<el-select style="width: 100px" v-model="item.routeNodeName">
|
||||
<el-option v-for="item in parentDictCodelist" :key="item.dictValue" :label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-input style="width: 90px" v-model="item.routeNodeDay" type="number"></el-input>
|
||||
<span>天</span>
|
||||
</div>
|
||||
<div>
|
||||
<i class="el-icon-delete" @click="delitem(item, index, list)"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="top">
|
||||
<div class="toptop">
|
||||
<el-radio v-model="item.checked2" :label="2" @change="handleCheckAllChange2($event, item, index)">
|
||||
<span style="width: 78px">指定时间:</span>
|
||||
<el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
v-model="item.nodePlanTime" type="datetime" placeholder="选择日期时间" :picker-options="pickerOptions"
|
||||
@input="input(item, index)" @focus="setCurrentTime(item, index)" ref="datePicker">
|
||||
</el-date-picker>
|
||||
</el-radio>
|
||||
</div>
|
||||
</div>
|
||||
<div class="top">
|
||||
<div class="toptop">
|
||||
<!-- <el-checkbox
|
||||
v-model="item.checked3"
|
||||
style="margin-right: 5px"
|
||||
@change="handleCheckAllChange3($event, item)"
|
||||
></el-checkbox> -->
|
||||
<el-radio v-model="item.checked3" :label="3" @change="handleCheckAllChange3($event, item)">
|
||||
<span>立即执行</span>
|
||||
</el-radio>
|
||||
</div>
|
||||
</div>
|
||||
<el-card :class="listindex == index ? 'cards' : ''">
|
||||
<h3 style="height: 20px">
|
||||
{{ item.taskNodeType == "PHONE_OUTBOUND" ? "电话外呼" : "" }}
|
||||
{{
|
||||
item.taskNodeType == "QUESTIONNAIRE_SCALE" ? "问卷量表" : ""
|
||||
}}
|
||||
{{
|
||||
item.taskNodeType == "PROPAGANDA_ARTICLE" ? "宣教文案" : ""
|
||||
}}
|
||||
{{ item.taskNodeType == "QUESTIONNAIRE_SCALE" ? "问卷量表" : "" }}
|
||||
{{ item.taskNodeType == "PROPAGANDA_ARTICLE" ? "宣教文案" : "" }}
|
||||
{{ item.taskNodeType == "TEXT_REMIND" ? "文字提醒" : "" }}
|
||||
{{
|
||||
item.taskNodeType == "ARTIFICIAL_FOLLOW_UP" ? "人工随访" : ""
|
||||
}}
|
||||
{{ item.taskNodeType == "ARTIFICIAL_FOLLOW_UP" ? "人工随访" : "" }}
|
||||
</h3>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
<div class="nodetexts">
|
||||
<div style="background-color: #fff; border-radius: 10px; padding: 20px" :style="formInline.taskNodeType
|
||||
? formInline.taskNodeType != 'PHONE_OUTBOUND'
|
||||
? formInline.taskNodeType == 'TEXT_REMIND'
|
||||
? 'height:260px'
|
||||
: 'height:179px'
|
||||
: 'height:80px'
|
||||
: 'height:80px'
|
||||
">
|
||||
<div style="background-color: #fff; border-radius: 10px; padding: 20px"
|
||||
:style="formInline.taskNodeType ? formInline.taskNodeType != 'PHONE_OUTBOUND' ? formInline.taskNodeType == 'TEXT_REMIND' ? 'height:260px' : 'height:160px' : 'height:80px' : 'height:80px'">
|
||||
<el-form :model="formInline" class="demo-form-inline">
|
||||
<el-form-item label="任务节点类型">
|
||||
<el-radio-group v-model="formInline.taskNodeType" @change="taskNodeTypechange">
|
||||
@ -208,65 +170,11 @@
|
||||
<el-form-item label="问卷模板">
|
||||
<question @on-template="questionontemplate" :node="formInline.phoneDialMethod"></question>
|
||||
</el-form-item>
|
||||
<el-form-item label="" style="margin-left: 57px">
|
||||
<el-radio-group v-model="formInline.phoneDialMethod">
|
||||
<el-radio label="">小程序问卷</el-radio>
|
||||
<el-radio label="AI">AI自动外呼</el-radio>
|
||||
<el-radio label="COMMON">人工随访</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<div class="flextow" v-if="
|
||||
formInline.phoneDialMethod == 'AI' ||
|
||||
formInline.phoneDialMethod == 'COMMON'
|
||||
">
|
||||
<div class="itemlist">
|
||||
重拨次数:
|
||||
<span>
|
||||
<el-select v-model="formInline.phoneRedialTimes" style="width: 120px">
|
||||
<el-option v-for="item in optionslisttime" :key="item.dictValue" :label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</span>
|
||||
</div>
|
||||
<div class="itemlist">
|
||||
时间间隔(分):
|
||||
<span>
|
||||
<el-input v-model.number="formInline.phoneTimeInterval" oninput="value=value.replace(/[^\d]/g,'')"
|
||||
style="width: 100px">
|
||||
</el-input>
|
||||
</span>
|
||||
</div>
|
||||
<div class="itemlist">
|
||||
短信提醒:
|
||||
<el-select v-model="formInline.phoneMessageRemind" style="width: 150px">
|
||||
<el-option v-for="item in optionslist" :key="item.dictValue" :label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="itemlist">
|
||||
短信模板:
|
||||
<span :class="formInline.phoneMessageRemind == 'NOT_SEND_MESSAGE'
|
||||
? 'spanname'
|
||||
: ''
|
||||
">
|
||||
<message style="width: 200px" @on-template="messageontemplateMESSAGE"
|
||||
:templateId="formInline.phoneMessageTemplateId" :templateName="formInline.phoneMessageTemplateName">
|
||||
</message>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <el-form-item label="开启人工随访" label-width="150px">
|
||||
<el-switch
|
||||
v-model="formInline.phoneDialMethod"
|
||||
active-color="#13ce66"
|
||||
active-value="COMMON"
|
||||
@change="changephoneDialMethodtwo"
|
||||
inactive-value="AI"
|
||||
>
|
||||
<el-form-item label="开启人工随访" label-width="150px">
|
||||
<el-switch v-model="formInline.phoneDialMethod" active-color="#13ce66" active-value="COMMON"
|
||||
@change="changephoneDialMethodtwo" inactive-value="AI">
|
||||
</el-switch>
|
||||
</el-form-item> -->
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="问卷有效期">
|
||||
<el-input-number v-model="formInline.questionExpirationDate" :min="1" :max="99"
|
||||
label="描述文字"></el-input-number>
|
||||
@ -274,11 +182,8 @@
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
</div>
|
||||
<div v-if="
|
||||
formInline.taskNodeType == 'TEXT_REMIND' ||
|
||||
formInline.taskNodeType == 'PROPAGANDA_ARTICLE' ||
|
||||
formInline.taskNodeType == 'QUESTIONNAIRE_SCALE'
|
||||
">
|
||||
<div
|
||||
v-if="formInline.taskNodeType == 'TEXT_REMIND' || formInline.taskNodeType == 'PROPAGANDA_ARTICLE' || formInline.taskNodeType == 'QUESTIONNAIRE_SCALE'">
|
||||
<!-- <div class="PushMethodrg" v-if="formInline.taskNodeType == 'ARTIFICIAL_FOLLOW_UP'">
|
||||
<div class="flex">
|
||||
<div class="itemlist">推送方式:人工电话</div>
|
||||
@ -396,7 +301,7 @@
|
||||
<div class="itemlist">
|
||||
重拨次数:
|
||||
<span>
|
||||
<el-select v-model="formInline.phoneRedialTimes" style="width: 120px">
|
||||
<el-select v-model="formInline.phoneRedialTimes" style="width: 100px">
|
||||
<el-option v-for="item in optionslisttime" :key="item.dictValue" :label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
@ -421,10 +326,7 @@
|
||||
</div>
|
||||
<div class="itemlist">
|
||||
短信模板:
|
||||
<span :class="formInline.phoneMessageRemind == 'NOT_SEND_MESSAGE'
|
||||
? 'spanname'
|
||||
: ''
|
||||
">
|
||||
<span :class="formInline.phoneMessageRemind == 'NOT_SEND_MESSAGE' ? 'spanname' : ''">
|
||||
<message style="width: 200px" @on-template="messageontemplateMESSAGE"
|
||||
:templateId="formInline.phoneMessageTemplateId" :templateName="formInline.phoneMessageTemplateName">
|
||||
</message>
|
||||
@ -449,25 +351,11 @@ import { signrouteadd } from "@/api/system/ManuallyCreatingTasks";
|
||||
import { getAgencytype } from "@/api/system/agency";
|
||||
import { list, triggerCondition, getList, } from "@/api/system/specialDiseaseNode";
|
||||
|
||||
|
||||
export default {
|
||||
components: { scriptphone, question, propaganda, scripts, message, officialAccount, miniProgram },
|
||||
name: "ManuallyCreatingTasks",
|
||||
data() {
|
||||
return {
|
||||
errorShown: false,
|
||||
hms: '',
|
||||
time: '',
|
||||
datePickerVisible: true,
|
||||
show: 0,
|
||||
pickerOptions: {
|
||||
disabledDate(time) {
|
||||
// 选择今天以及今天之后的日期
|
||||
return time.getTime() < Date.now() - 8.64e7// 如果没有后面的-8.64e7就是不可以选择
|
||||
// 选择今天以及今天之前的日期
|
||||
// return time.getTime() > Date.now() - 8.64e7// 如果没有后面的-8.64e7就是不可以选择今天的
|
||||
}
|
||||
},
|
||||
heightLine: 0,
|
||||
optionsname: '',
|
||||
options: [],
|
||||
@ -476,14 +364,13 @@ export default {
|
||||
optionslisttime: [],
|
||||
parentDictCodelist: [],
|
||||
updata: {
|
||||
sn: "",
|
||||
signPatientRecordId: "",
|
||||
patientId: "",
|
||||
patientName: "",
|
||||
departmentId: "",
|
||||
departmentName: "",
|
||||
routeName: "",
|
||||
suitRange: "OUTPATIENT_SERVICE_DISCHARGE",
|
||||
suitRange: "",
|
||||
routeNodeList: [],
|
||||
triggerConditionList: [
|
||||
{
|
||||
@ -517,7 +404,7 @@ export default {
|
||||
{
|
||||
routeNodeDay: "",
|
||||
taskNodeType: "",
|
||||
routeNodeName: "AFTER_VISIT_DISCHARGE",
|
||||
routeNodeName: "",
|
||||
// questionExpirationDate: 7,
|
||||
questionInfoId: "",
|
||||
questionnaireName: "",
|
||||
@ -531,11 +418,6 @@ export default {
|
||||
appletPushSign: "0",
|
||||
phonePushSign: "1",
|
||||
phoneDialMethod: "",
|
||||
plantype: "PLUSDAY",
|
||||
nodePlanTime: "",
|
||||
checked1: '',
|
||||
checked2: '',
|
||||
checked3: '',
|
||||
},
|
||||
],
|
||||
listindex: 0,
|
||||
@ -543,12 +425,7 @@ export default {
|
||||
// dictDataType: "",
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
|
||||
created() {
|
||||
console.log(this.$route.query, 'this.$route.quer')
|
||||
|
||||
this.infolist();
|
||||
this.infolistword();
|
||||
this.infolistMESSAGE();
|
||||
@ -557,212 +434,16 @@ export default {
|
||||
this.optiononditionOperator();
|
||||
this.updata.signPatientRecordId = this.$route.query.signPatientRecordId;
|
||||
this.updata.patientId = this.$route.query.patientId;
|
||||
this.updata.sn = this.$route.query.sn;
|
||||
this.updata.patientName = this.$route.query.patientName;
|
||||
this.updata.departmentId = this.$route.query.departmentId;
|
||||
this.updata.departmentName = this.$route.query.departmentName;
|
||||
this.formInline = this.list[0];
|
||||
if (this.$route.query.path == '/patient/signRecord') {
|
||||
this.list[0].checked1 = 1
|
||||
this.list[0].routeNodeName = 'AFTER_VISIT_DISCHARGE'
|
||||
this.list[0].plantype = 'PLUSDAY'
|
||||
|
||||
|
||||
}
|
||||
if (this.$route.query.path == "/patient/patientinfoimport" || this.$route.query.path == "/task/Patientmanagement"
|
||||
|| this.$route.query.path == "/patient/ImportDetails"
|
||||
|
||||
) {
|
||||
this.list[0].checked2 = 2
|
||||
this.list[0].routeNodeName = ''
|
||||
this.list[0].plantype = 'APPOINT'
|
||||
}
|
||||
|
||||
},
|
||||
// computed: {
|
||||
// currentDate() {
|
||||
// return this.formatDate(new Date());
|
||||
// },
|
||||
// },
|
||||
mounted() {
|
||||
this.getMaxTableHeight()
|
||||
this.screenChange()
|
||||
},
|
||||
methods: {
|
||||
formatDate(date) {
|
||||
// 格式化日期为想要的字符串格式
|
||||
// 例如: "2023-04-01 12:00:00"
|
||||
return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date.getSeconds().toString().padStart(2, '0')}`;
|
||||
},
|
||||
|
||||
|
||||
// 计划类型:plantype;
|
||||
// CURRENT:立即执行;
|
||||
// APPOINT:指定日期;
|
||||
// PLUSDAY:第几天
|
||||
// 第1行
|
||||
handleFocus(item) {
|
||||
console.log(item, 'item,index')
|
||||
item.checked1 = 1
|
||||
item.checked2 = ""
|
||||
item.checked3 = ""
|
||||
item.nodePlanTime = ""
|
||||
item.timedata = ""
|
||||
item.plantype = "PLUSDAY"
|
||||
|
||||
},
|
||||
// 第1行
|
||||
handleFocusone(item) {
|
||||
item.checked1 = 1
|
||||
item.checked2 = ""
|
||||
item.checked3 = ""
|
||||
item.nodePlanTime = ""
|
||||
item.timedata = ""
|
||||
item.plantype = "PLUSDAY"
|
||||
|
||||
|
||||
},
|
||||
// 第2行
|
||||
setCurrentTime(item, index) {
|
||||
console.log(item, 'item,index')
|
||||
item.checked1 = ""
|
||||
item.checked2 = 2
|
||||
item.checked3 = ""
|
||||
// item.routeNodeName = ""
|
||||
item.routeNodeDay = ""
|
||||
item.plantype = "APPOINT"
|
||||
item.timedata = ""
|
||||
},
|
||||
|
||||
input(item, index) {
|
||||
this.$forceUpdate()
|
||||
// const dateParts = item.nodePlanTime.split(' ');
|
||||
// const date = new Date();
|
||||
// // const year = date.getFullYear();
|
||||
// // const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以需要加1
|
||||
// // const day = String(date.getDate()).padStart(2, '0');
|
||||
// const hours = String(date.getHours()).padStart(2, '0');
|
||||
// const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
// const ss = String(date.getSeconds()).padStart(2, '0');
|
||||
// item.nodePlanTime = dateParts[0]+ ' ' + hours + ':' + minutes + ':' + ss ;
|
||||
|
||||
},
|
||||
// 出院/诊后
|
||||
handleCheckAllChange1(e, item) {
|
||||
console.log(e, item, 'value')
|
||||
item.checked2 = ""
|
||||
item.checked3 = ""
|
||||
item.checked1 = 1
|
||||
item.nodePlanTime = ""
|
||||
item.timedata = ""
|
||||
item.plantype = "PLUSDAY"
|
||||
},
|
||||
// 指定时间
|
||||
handleCheckAllChange2(e, item, index) {
|
||||
item.checked1 = ""
|
||||
item.checked3 = ""
|
||||
console.log(this.list, 'list')
|
||||
// item.routeNodeName = ""
|
||||
item.routeNodeDay = ""
|
||||
item.plantype = "APPOINT"
|
||||
item.timedata = ""
|
||||
},
|
||||
// 立即执行
|
||||
handleCheckAllChange3(e, item) {
|
||||
item.checked1 = ""
|
||||
item.checked2 = ""
|
||||
// item.routeNodeName = ""
|
||||
item.routeNodeDay = ""
|
||||
console.log(e, item, 'value3')
|
||||
let yy = new Date().getFullYear();
|
||||
let mm = (new Date().getMonth() + 1) < 10 ? '0' + (new Date().getMonth() + 1) : (new Date().getMonth() + 1);// 月份是从0开始的
|
||||
let dd = (new Date().getDate()) < 10 ? '0' + (new Date().getDate()) : (new Date().getDate());
|
||||
let hh = new Date().getHours() < 10 ? '0' + new Date().getHours() : new Date().getHours();
|
||||
let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes();
|
||||
let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds();
|
||||
var data = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss
|
||||
item.timedata = data
|
||||
item.plantype = "CURRENT"
|
||||
item.nodePlanTime = ""
|
||||
},
|
||||
// 保存
|
||||
upload() {
|
||||
this.$confirm('保存此任务, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
}).then(() => {
|
||||
this.updata.routeNodeList = this.list;
|
||||
var newObj = JSON.parse(JSON.stringify(this.updata));
|
||||
const invalidTimes = [];
|
||||
newObj.routeNodeList.forEach(e => {
|
||||
if (e.timedata) {
|
||||
e.nodePlanTime = e.timedata
|
||||
}
|
||||
const dateParts = e.nodePlanTime.split(' ');
|
||||
if (dateParts[1] == "00:00:00") {
|
||||
const date = new Date();
|
||||
const hours = String(date.getHours()).padStart(2, '0');
|
||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
const ss = String(date.getSeconds()).padStart(2, '0');
|
||||
e.nodePlanTime = dateParts[0] + ' ' + hours + ':' + minutes + ':' + ss;
|
||||
}
|
||||
delete e.timedata;
|
||||
delete e.checked1;
|
||||
delete e.checked3;
|
||||
const startTime = 8;
|
||||
const endTime = 20;
|
||||
const parts = e.nodePlanTime.split(' ');
|
||||
const time = parts[1].split(':');
|
||||
if (time[0] < startTime || time[0] >= endTime) {
|
||||
invalidTimes.push(e);
|
||||
}
|
||||
})
|
||||
if (invalidTimes.length > 0) {
|
||||
this.$message.error("时间点在8:00到20:00之间,请修改时间点");
|
||||
} else {
|
||||
signrouteadd(newObj).then((res) => {
|
||||
var message = ''
|
||||
if (this.$route.query.path == "/patient/signRecord") {
|
||||
message = '保存成功,即将返回签约患者列表'
|
||||
} else if (this.$route.query.path == "/patient/patientinfoimport") {
|
||||
message = '保存成功,即将返回患者导入列表'
|
||||
|
||||
} else if (this.$route.query.path == "/patient/ImportDetails") {
|
||||
message = '保存成功,即将返回导入明细列表'
|
||||
}
|
||||
else if (this.$route.query.path == "/task/Patientmanagement") {
|
||||
message = '保存成功,即将返回创建任务列表'
|
||||
}
|
||||
this.$notify({
|
||||
type: "success",
|
||||
title: "提示",
|
||||
message: message,
|
||||
duration: 3000,
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.$store
|
||||
.dispatch("tagsView/delView", this.$route)
|
||||
.then(({ visitedViews }) => {
|
||||
this.$router.push({
|
||||
path: this.$route.query.path
|
||||
});
|
||||
});
|
||||
}, 3000);
|
||||
}).catch(() => {
|
||||
});
|
||||
}
|
||||
// var nulllength= newObj.routeNodeList.filter(item => item.routeNodeName=="" || item.routeNodeName==null || item.routeNodeName==undefined);
|
||||
// console.log(nulllength,'nulllength')
|
||||
// if(nulllength.length>0){
|
||||
// this.$message.error('节点名称不能为空!');
|
||||
// return
|
||||
// }
|
||||
})
|
||||
},
|
||||
Typechange(e) {
|
||||
this.$forceUpdate();
|
||||
// this.formInline.radio = e
|
||||
},
|
||||
//点击任务内容
|
||||
taskNodeTypechange(e) {
|
||||
if (e == 'PHONE_OUTBOUND') {
|
||||
@ -770,11 +451,6 @@ export default {
|
||||
} else {
|
||||
this.formInline.phoneDialMethod = ''
|
||||
}
|
||||
if (e == 'QUESTIONNAIRE_SCALE') {
|
||||
this.formInline.phoneDialMethod = ''
|
||||
} else {
|
||||
|
||||
}
|
||||
},
|
||||
// 且或
|
||||
infolistoptionslistS() {
|
||||
@ -875,10 +551,6 @@ export default {
|
||||
var dictType = "suit_range";
|
||||
getAgencytype(dictType).then((res) => {
|
||||
this.options = res.data;
|
||||
if (this.options) {
|
||||
this.changeoptions(this.updata.suitRange)
|
||||
|
||||
}
|
||||
});
|
||||
},
|
||||
infolistword() {
|
||||
@ -894,7 +566,6 @@ export default {
|
||||
});
|
||||
},
|
||||
changeoptions(e) {
|
||||
console.log(e, 'e');
|
||||
let parentDictCode = this.options.find((el) => el.dictValue == e).dictCode;
|
||||
list(parentDictCode).then((res) => {
|
||||
this.parentDictCodelist = res.rows;
|
||||
@ -1005,15 +676,7 @@ export default {
|
||||
appletPushSign: "0",
|
||||
phonePushSign: "1",
|
||||
phoneDialMethod: "",
|
||||
nodePlanTime: '',
|
||||
checked1: 1,
|
||||
checked2: "",
|
||||
checked3: "",
|
||||
|
||||
timedata: "",
|
||||
|
||||
});
|
||||
console.log(this.list, 'this.list');
|
||||
},
|
||||
delitem(item, index, list) {
|
||||
list.splice(index, 1);
|
||||
@ -1035,6 +698,31 @@ export default {
|
||||
this.formInline.phoneTemplateName = ''
|
||||
}
|
||||
},
|
||||
upload() {
|
||||
this.$confirm('保存此任务, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
}).then(() => {
|
||||
this.updata.routeNodeList = this.list;
|
||||
signrouteadd(this.updata).then((res) => {
|
||||
this.$notify({
|
||||
type: "success",
|
||||
title: "提示",
|
||||
message: "保存成功,即将返回签约患者列表",
|
||||
duration: 3000,
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.$store
|
||||
.dispatch("tagsView/delView", this.$route)
|
||||
.then(({ visitedViews }) => {
|
||||
this.$router.push({
|
||||
path: "/patient/signRecord",
|
||||
});
|
||||
});
|
||||
}, 3000);
|
||||
});
|
||||
})
|
||||
},
|
||||
// 获取表格最高高度
|
||||
getMaxTableHeight() {
|
||||
const windowInnerHeight = window.innerHeight // 屏幕可视高度
|
||||
@ -1063,10 +751,6 @@ export default {
|
||||
float: inline-start !important;
|
||||
}
|
||||
|
||||
::v-deep .el-input.is-disabled .el-input__inner {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.titlemengt {
|
||||
width: 98.5%;
|
||||
border-radius: 10px;
|
||||
@ -1082,7 +766,7 @@ export default {
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 5px;
|
||||
background: #c0c0c0;
|
||||
background: #C0C0C0;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
@ -1150,6 +834,7 @@ export default {
|
||||
}
|
||||
|
||||
.nodesname {
|
||||
|
||||
// margin-left: 6%;
|
||||
// width: 660px;
|
||||
// display: flex;
|
||||
@ -1167,6 +852,12 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.selectnamelist {
|
||||
// position: absolute;
|
||||
// right: 54px;
|
||||
// top: -8px;
|
||||
}
|
||||
|
||||
.PushMethod {
|
||||
height: 100px;
|
||||
padding: 20px;
|
||||
@ -1179,6 +870,8 @@ export default {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.nodes {
|
||||
// height: var(--heightLine);
|
||||
background-color: #f1f3f5;
|
||||
@ -1194,8 +887,9 @@ export default {
|
||||
// height: calc(100vh - 320px);
|
||||
height: 100%;
|
||||
width: 25%;
|
||||
padding: 0 5px 20px 40px;
|
||||
padding: 0 40px 20px 40px;
|
||||
background-color: #fff;
|
||||
overflow-y: scroll;
|
||||
|
||||
.timetitle {
|
||||
height: 60px;
|
||||
@ -1206,9 +900,7 @@ export default {
|
||||
|
||||
::v-deep .el-timeline {
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
height: calc(100% - 60px);
|
||||
padding: 15px 30px 0 0 !important;
|
||||
padding: 15px 0 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1219,37 +911,6 @@ export default {
|
||||
width: 73%;
|
||||
// height: calc(100vh - 320px);
|
||||
height: 100%;
|
||||
|
||||
.flextow {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
// background: red;
|
||||
justify-content: space-between;
|
||||
margin-top: -43px;
|
||||
|
||||
.itemlist {
|
||||
height: 30px;
|
||||
margin-top: 30px;
|
||||
line-height: 30px;
|
||||
font-size: 14px;
|
||||
color: #64666a;
|
||||
|
||||
.spanname {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
::v-deep .el-input__inner {
|
||||
color: black;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
span {
|
||||
color: black;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1257,7 +918,6 @@ export default {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.toptop {
|
||||
display: flex;
|
||||
@ -1277,10 +937,6 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-timeline-item__node--normal {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
::v-deep .el-timeline-item__timestamp {
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
@ -1311,12 +967,4 @@ export default {
|
||||
::v-deep .el-form-item__content {
|
||||
display: inline-block !important;
|
||||
}
|
||||
|
||||
::v-deep .el-icon-circle-plus-outline {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::v-deep .el-icon-delete {
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div class="headesurver">
|
||||
<div class="topheaderSatisfaction">
|
||||
<div class="header">
|
||||
<div class="topheader">
|
||||
<div style="float: right;height:0;">
|
||||
<el-button style="margin: 10px 10px 0 0;" @click="goback">返回</el-button>
|
||||
</div>
|
||||
<div class="usersurve">
|
||||
<div class="user">
|
||||
<img class="headsculpture" src="../../../assets/manage/touxiang.png" alt="" v-if="list.sex == 'MALE'" />
|
||||
<img class="headsculpture" src="../../../assets/manage/nvtouxiang.png" alt="" v-if="list.sex == 'FEMALE'" />
|
||||
<div class="name">
|
||||
@ -32,7 +32,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="informationsurve">
|
||||
<div class="information">
|
||||
<div class="top">
|
||||
<div>身份证号:{{ list.cardNo }}</div>
|
||||
<div>患者电话:{{ list.patientPhone }}</div>
|
||||
@ -313,7 +313,7 @@ export default {
|
||||
// background: yellow;
|
||||
}
|
||||
|
||||
.headesurver {
|
||||
.header {
|
||||
background-color: #f1f3f5;
|
||||
padding-top: 10px;
|
||||
|
||||
@ -406,12 +406,12 @@ export default {
|
||||
// }
|
||||
}
|
||||
|
||||
.topheaderSatisfaction {
|
||||
.topheader {
|
||||
width: 99%;
|
||||
background-color: #fff;
|
||||
margin: 0 auto;
|
||||
|
||||
.informationsurve {
|
||||
.information {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 10px 20px;
|
||||
@ -429,7 +429,7 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.usersurve {
|
||||
.user {
|
||||
width: 100%;
|
||||
padding: 0 20px;
|
||||
display: flex;
|
||||
|
||||
@ -1,589 +0,0 @@
|
||||
<template>
|
||||
<div class="app-container home" ref="layout">
|
||||
<!-- 搜索条件 -->
|
||||
<div ref="topform" class="form">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
|
||||
<el-form-item label="任务时间" prop="taskStartTime" label-width="90px">
|
||||
<el-date-picker
|
||||
v-model="dischargeTime"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
style="width: 220px"
|
||||
value-format="yyyy-MM-dd"
|
||||
end-placeholder="结束日期"
|
||||
@change="changeTime"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="模板名称" prop="questionInfoId">
|
||||
<span>
|
||||
<TemplateName
|
||||
@on-template="messageontemplateword"
|
||||
:templateId="questionInfoId"
|
||||
:query="questionInfoIdname"
|
||||
></TemplateName>
|
||||
</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
label="出院/就诊时间"
|
||||
prop="visitStartTime"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="dischargeTimevisit"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
style="width: 220px"
|
||||
value-format="yyyy-MM-dd"
|
||||
end-placeholder="结束日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<!-- 底部 -->
|
||||
<div
|
||||
ref="table"
|
||||
:style="{ 'max-height': maxTableHeight + 'px' }"
|
||||
class="bottomsstics"
|
||||
>
|
||||
<!-- 左侧 -->
|
||||
<div class="left">
|
||||
<!-- <div> -->
|
||||
<div
|
||||
v-for="(item, index) in NameList"
|
||||
:key="index"
|
||||
class="itemlist"
|
||||
:class="itemid == item.id ? 'allactive' : 'all'"
|
||||
@click="itemdata(item)"
|
||||
>
|
||||
<div
|
||||
style="width: 88%; margin: 0 auto; border-bottom: 1px solid #dcdfe6"
|
||||
>
|
||||
<!-- <el-popover
|
||||
placement="top"
|
||||
trigger="hover"
|
||||
:content="item.questionnaireName"
|
||||
>
|
||||
<div class="title" slot="reference">
|
||||
{{ item.questionnaireName }}
|
||||
</div>
|
||||
</el-popover> -->
|
||||
<div class="title" slot="reference">
|
||||
{{ item.questionnaireName }}
|
||||
</div>
|
||||
|
||||
<div class="progress">时间:{{parseTime(item.createTime, "{y}-{m}-{d}")}}
|
||||
</div>
|
||||
<!-- <div class="times">填写率:{{ item.totle }}%</div>
|
||||
<div class="progress">
|
||||
<el-progress :percentage="50" :show-text="false"></el-progress>
|
||||
<span>12/45</span>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
<!-- 右侧 -->
|
||||
<div class="right">
|
||||
|
||||
<div class="righttitle">{{ newname }} {{parseTime(time, "{y}-{m}-{d}")}}</div>
|
||||
<div class="tabledata" v-for="(item, index) in tableData" :key="index">
|
||||
<div class="toptitle">
|
||||
第{{ index + 1 }}题:{{ item.questionName }}
|
||||
|
||||
<span v-if="item.questionType == 'MULTIPLE_CHOICE'"
|
||||
>【单选题】</span
|
||||
>
|
||||
<span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'"
|
||||
>【多选题】</span
|
||||
>
|
||||
<span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'"
|
||||
>【组合单选题】</span
|
||||
>
|
||||
<span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'"
|
||||
>【组合多选题】</span
|
||||
>
|
||||
</div>
|
||||
<div ref="table" class="tables">
|
||||
<el-table
|
||||
:max-height="maxTableHeight"
|
||||
v-loading="loading"
|
||||
:data="item.questionnaireTaskOptionStatisticsVos"
|
||||
>
|
||||
<el-table-column label="选项" align="center" prop="optionName" />
|
||||
<el-table-column
|
||||
label="人数"
|
||||
align="center"
|
||||
prop="choiceNumber"
|
||||
/>
|
||||
<el-table-column
|
||||
label="比例"
|
||||
align="center"
|
||||
prop="choiceProportion"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-progress
|
||||
:percentage="
|
||||
scope.row.choiceProportion
|
||||
? scope.row.choiceProportion
|
||||
: 0
|
||||
"
|
||||
></el-progress>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>查看</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { questionnaireTaskStatistics, selectQuestionInfoList } from '@/api/system/TaskStatistics'
|
||||
import TemplateName from "@/views/manage/components/TemplateName";
|
||||
|
||||
export default {
|
||||
name: "TaskStatistics",
|
||||
components: { TemplateName },
|
||||
data() {
|
||||
return {
|
||||
|
||||
show: false,
|
||||
maxTableHeight: undefined,
|
||||
// 任务时间
|
||||
dischargeTime: [],
|
||||
// 出院/就诊时间
|
||||
dischargeTimevisit: [],
|
||||
loading: false,
|
||||
newname: '',//标题
|
||||
time: '',//时间
|
||||
NameList: [],
|
||||
// 列表、
|
||||
tableData: [],
|
||||
itemid: "",
|
||||
questionInfoId: '',
|
||||
questionInfoIdname: 0,
|
||||
queryParams: {
|
||||
taskStartTime: null,
|
||||
taskEndTime: null,
|
||||
visitStartTime: null,
|
||||
visitEndTime: null,
|
||||
questionInfoId: null,
|
||||
},
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
dischargeTime: {
|
||||
handler(val) {
|
||||
if (val) {
|
||||
this.queryParams.taskStartTime = this.dischargeTime[0];
|
||||
this.queryParams.taskEndTime = this.dischargeTime[1];
|
||||
|
||||
}else{
|
||||
this.dischargeTime = []
|
||||
this.queryParams.taskStartTime = null
|
||||
this.queryParams.taskEndTime = null
|
||||
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
dischargeTimevisit: {
|
||||
handler(val) {
|
||||
if (val) {
|
||||
this.queryParams.visitStartTime = this.dischargeTimevisit[0];
|
||||
this.queryParams.visitEndTime = this.dischargeTimevisit[1];
|
||||
|
||||
}else{
|
||||
this.dischargeTimevisit = []
|
||||
this.queryParams.visitStartTime = null
|
||||
this.queryParams.visitEndTime = null
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDefaultDateRange()
|
||||
this.getlistleft()
|
||||
},
|
||||
mounted() {
|
||||
this.getMaxTableHeight()
|
||||
this.screenChange()
|
||||
|
||||
},
|
||||
methods: {
|
||||
hidePopover() {
|
||||
this.showPopover = false;
|
||||
},
|
||||
// 右侧列表
|
||||
getlist() {
|
||||
questionnaireTaskStatistics(this.queryParams).then(res => {
|
||||
this.tableData = res.data.data
|
||||
})
|
||||
},
|
||||
// 左侧列表
|
||||
getlistleft() {
|
||||
selectQuestionInfoList().then(res => {
|
||||
this.NameList = res
|
||||
this.queryParams.questionInfoId = this.NameList[0].id
|
||||
this.itemid = this.NameList[0].id
|
||||
this.newname = this.NameList[0].questionnaireName
|
||||
this.time = this.NameList[0].createTime
|
||||
this.getlist()
|
||||
})
|
||||
|
||||
},
|
||||
changeTime(e) {
|
||||
this.show = false;
|
||||
},
|
||||
//模版名称
|
||||
messageontemplateword(item) {
|
||||
this.queryParams.questionInfoId = item.questionInfoId;
|
||||
this.itemid = item.questionInfoId
|
||||
this.newname = item.questionnaireName
|
||||
this.time = item.createTime
|
||||
// this.getlist()
|
||||
// this.tableData=[]
|
||||
},
|
||||
//计算一周的时间
|
||||
getDefaultDateRange() {
|
||||
this.show = true;
|
||||
const endDate = new Date(); // 今天的日期
|
||||
const startDate = new Date();
|
||||
startDate.setDate(endDate.getDate() - 6); // 往前倒退七天
|
||||
console.log(startDate, endDate);
|
||||
this.dischargeTime[0] = startDate;
|
||||
this.dischargeTime[1] = endDate;
|
||||
if(this.dischargeTime[0]){
|
||||
this.queryParams.taskStartTime = this.formatDate(this.dischargeTime[0]);
|
||||
}
|
||||
if(this.dischargeTime[1]){
|
||||
this.queryParams.taskEndTime = this.formatDate(this.dischargeTime[1]);
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
formatDate(date) {
|
||||
if(date){
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}`;
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
// 查看
|
||||
handleUpdate(row) {
|
||||
this.$router.push({
|
||||
path: "/statisticalAnalysis/datialdata",
|
||||
query: {
|
||||
path: "/statisticalAnalysis/TaskStatistics",
|
||||
questionInfoId: row.questionInfoId ? row.questionInfoId : '',
|
||||
questionSubjectOptionId: row.questionSubjectOptionId ? row.questionSubjectOptionId : '',
|
||||
optionChooseSign: row.optionChooseSign ? row.optionChooseSign : '',
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
},
|
||||
// 左侧点击
|
||||
itemdata(item) {
|
||||
this.itemid = item.id
|
||||
this.newname = item.questionnaireName
|
||||
this.time = item.createTime
|
||||
this.queryParams.questionInfoId = item.id
|
||||
// this.getlist()
|
||||
// this.queryParams.questionInfoId = null
|
||||
this.questionInfoId = null
|
||||
this.questionInfoIdname += 1;
|
||||
this.getlist()
|
||||
// var obj = {
|
||||
// questionInfoId: item.id,
|
||||
// taskStartTime: this.queryParams.taskStartTime,
|
||||
// taskEndTime: this.queryParams.taskEndTime,
|
||||
// visitStartTime: this.queryParams.visitStartTime,
|
||||
// visitEndTime: this.queryParams.visitEndTime,
|
||||
// }
|
||||
// questionnaireTaskStatistics(obj).then(res => {
|
||||
// this.tableData = res.data.data
|
||||
// })
|
||||
},
|
||||
// 重置
|
||||
resetQuery() {
|
||||
this.queryParams.questionInfoId = null,
|
||||
this.questionInfoId = null,
|
||||
this.dischargeTime = [];
|
||||
this.dischargeTimevisit = [];
|
||||
this.queryParams.taskStartTime = "";
|
||||
this.queryParams.taskEndTime = "";
|
||||
this.resetForm("queryForm");
|
||||
this.questionInfoIdname += 1;
|
||||
console.log(this.queryParams, 'queryParams0000000000');
|
||||
this.getlistleft();
|
||||
},
|
||||
// 搜索
|
||||
handleQuery() {
|
||||
if(!this.queryParams.taskStartTime && !this.queryParams.taskEndTime &&
|
||||
!this.queryParams.questionInfoId && !this.queryParams.visitStartTime &&
|
||||
!this.queryParams.visitStartTime
|
||||
){
|
||||
this.itemid=null
|
||||
this.newname=''//标题
|
||||
this.time= ''//时间
|
||||
|
||||
}
|
||||
if (this.dischargeTime?.length > 0) {
|
||||
if (this.show == true) {
|
||||
this.queryParams.taskStartTime = this.formatDate(this.dischargeTime[0]);
|
||||
this.queryParams.taskEndTime = this.formatDate(this.dischargeTime[1]);
|
||||
|
||||
} else if (this.show == false) {
|
||||
this.queryParams.taskStartTime = this.dischargeTime[0];
|
||||
this.queryParams.taskEndTime = this.dischargeTime[1];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
this.queryParams.taskStartTime = null;
|
||||
this.queryParams.taskEndTime = null;
|
||||
}
|
||||
if (this.dischargeTimevisit?.length > 0) {
|
||||
this.queryParams.visitStartTime = this.dischargeTimevisit[0];
|
||||
this.queryParams.visitEndTime = this.dischargeTimevisit[1];
|
||||
} else {
|
||||
this.queryParams.visitStartTime = null;
|
||||
this.queryParams.visitEndTime = null;
|
||||
|
||||
}
|
||||
this.getlist();
|
||||
},
|
||||
// 获取表格最高高度
|
||||
getMaxTableHeight() {
|
||||
const windowInnerHeight = window.innerHeight // 屏幕可视高度
|
||||
const formDiv = this.$refs.topform
|
||||
this.maxTableHeight = windowInnerHeight - 104 - this.getBoxHeight(formDiv)
|
||||
},
|
||||
// 屏幕resize监听
|
||||
screenChange() {
|
||||
// 屏幕resize监听事件:一旦屏幕宽高发生变化,就会执行resize
|
||||
window.addEventListener('resize', this.getMaxTableHeight, true)
|
||||
// 将屏幕监听事件移除
|
||||
// 这步是必须的。离开页面时不移除,再返回,或者进入到别的有相同元素的页面会报错
|
||||
// 或者将这里的方法直接写在beforeDestroy函数中也可以
|
||||
this.$once('hook:beforeDestroy', () => {
|
||||
window.removeEventListener('resize', this.getMaxTableHeight, true)
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
::-webkit-scrollbar {
|
||||
width: 13px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 13px;
|
||||
background: #c0c0c0;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
width: 13px;
|
||||
}
|
||||
::v-deep .el-progress {
|
||||
width: 64%;
|
||||
display: inline-block;
|
||||
}
|
||||
.app-container {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.app-container {
|
||||
background: #f1f3f5;
|
||||
width: 100%;
|
||||
padding: 20px 20px 20px 20px;
|
||||
}
|
||||
.home {
|
||||
.form {
|
||||
width: 99%;
|
||||
margin: 10px auto;
|
||||
padding: 13px 0 0 0;
|
||||
background-color: #fff !important;
|
||||
border-top-left-radius: 10px;
|
||||
border-top-right-radius: 10px;
|
||||
margin: 10px auto 5px;
|
||||
}
|
||||
.bottomsstics {
|
||||
width: 99%;
|
||||
margin: 0 auto;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
.left {
|
||||
height: 100%;
|
||||
width: 18%;
|
||||
background: #fff;
|
||||
overflow-y: auto;
|
||||
// margin-left: 1%;
|
||||
.allactive {
|
||||
width: 100%;
|
||||
background: #e8f4ff;
|
||||
}
|
||||
.all {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
// height: 99px;
|
||||
}
|
||||
.itemlist {
|
||||
// width: 94%;
|
||||
margin: 0 auto;
|
||||
// height: 99px;
|
||||
|
||||
.title {
|
||||
font-size: 19px;
|
||||
font-weight: 600;
|
||||
color: black;
|
||||
// overflow: hidden;
|
||||
// text-overflow: ellipsis;
|
||||
// white-space: nowrap;
|
||||
// padding: 8px 0 10px 0px;
|
||||
padding: 23px 0 10px 0px;
|
||||
text-align: left;
|
||||
}
|
||||
.times {
|
||||
padding: 0px 0 10px 0px;
|
||||
font-size: 16px;
|
||||
color: #aaacb2;
|
||||
}
|
||||
.progress {
|
||||
font-size: 16px;
|
||||
color: #aaacb2;
|
||||
text-align: left;
|
||||
|
||||
|
||||
|
||||
padding: 0px 0 23px 0px;
|
||||
}
|
||||
span {
|
||||
margin-left: 17px;
|
||||
color: #aaacb2;
|
||||
}
|
||||
}
|
||||
}
|
||||
.right {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
margin-left: 4px;
|
||||
overflow-y: auto;
|
||||
.righttitle {
|
||||
font-size: 19px;
|
||||
font-weight: 600;
|
||||
color: black;
|
||||
padding: 20px 0 10px 30px;
|
||||
}
|
||||
.tabledata {
|
||||
margin-bottom: 13px;
|
||||
.tables {
|
||||
margin: 0 auto;
|
||||
width: 97%;
|
||||
}
|
||||
.toptitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: black;
|
||||
padding: 20px 0 15px 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.col-item {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
color: #676a6c;
|
||||
overflow-x: hidden;
|
||||
overflow-y: hidden;
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 10px;
|
||||
font-size: 26px;
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 10px;
|
||||
|
||||
b {
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
|
||||
.update-log {
|
||||
ol {
|
||||
display: block;
|
||||
list-style-type: decimal;
|
||||
margin-block-start: 1em;
|
||||
margin-block-end: 1em;
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: 0;
|
||||
padding-inline-start: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@ -724,10 +724,6 @@ export default {
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
nodeType:[
|
||||
{ required: true, message: "节点类型不能为空", trigger: "blur" },
|
||||
|
||||
],
|
||||
agencyName: [
|
||||
{ required: true, message: "机构名称不能为空", trigger: "blur" },
|
||||
],
|
||||
@ -1113,7 +1109,7 @@ export default {
|
||||
this.title = "添加机构信息";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
async handleUpdate(row) {
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
this.disabled = true;
|
||||
|
||||
@ -1122,7 +1118,7 @@ export default {
|
||||
this.$message.error("请先选择机构");
|
||||
} else {
|
||||
// const id = row.id || this.ids;
|
||||
await getAgency(this.id).then((response) => {
|
||||
getAgency(this.id).then((response) => {
|
||||
console.log(response.data, "response.data.parentId");
|
||||
this.form = response.data;
|
||||
this.form.communityCode = response.data.communityName;
|
||||
|
||||
@ -324,7 +324,7 @@
|
||||
<el-button
|
||||
type="primary"
|
||||
style="width: 15px; height: 15px"
|
||||
v-if="form.departmentId == scope.row.id"
|
||||
v-if="form.departmentId == scope.row.departmentCode"
|
||||
circle
|
||||
@click="nurseclick(scope.row)"
|
||||
></el-button>
|
||||
@ -441,8 +441,9 @@ export default {
|
||||
},
|
||||
// 科室名称圆点按钮
|
||||
nurseclick(row) {
|
||||
this.form.departmentId = row.id;
|
||||
this.form.departmentId = row.departmentCode;
|
||||
this.form.departmentName = row.departmentName;
|
||||
// console.log(this.departmentName, "0000");
|
||||
this.innerVisibleshow = false;
|
||||
},
|
||||
updateCPage(index, size) {
|
||||
|
||||
@ -1,45 +1,101 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-button size="small" @click="classificationOpen = true" style="
|
||||
<el-button
|
||||
size="small"
|
||||
@click="classificationOpen = true"
|
||||
style="
|
||||
width: 200px;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
" :style="handleselectName ? 'color:black' : 'color:#C0C4CC'">
|
||||
{{ handleselectName ? handleselectName : "选择公众号模板" }}
|
||||
</el-button>
|
||||
<el-dialog title="公众号模板选择" :visible.sync="classificationOpen" width="70%" :before-close="classificationOpenfalse">
|
||||
"
|
||||
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'"
|
||||
>{{ handleselectName ? handleselectName : "选择公众号模板" }}</el-button
|
||||
>
|
||||
<el-dialog
|
||||
title="公众号模板选择"
|
||||
:visible.sync="classificationOpen"
|
||||
width="70%"
|
||||
:before-close="classificationOpenfalse"
|
||||
>
|
||||
<el-row :gutter="20">
|
||||
<!--部门数据-->
|
||||
<el-col :span="6" :xs="24">
|
||||
<DepartmentList ref="DepartmentList" :modal="false" @clickdepartment="clickdepartment"
|
||||
:methods="'listWechatTemplateNumtwo'">
|
||||
<DepartmentList
|
||||
ref="DepartmentList"
|
||||
:modal="false"
|
||||
@clickdepartment="clickdepartment"
|
||||
:methods="'listWechatTemplateNumtwo'"
|
||||
>
|
||||
</DepartmentList>
|
||||
</el-col>
|
||||
<!--用户数据-->
|
||||
<el-col :span="18" :xs="24">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
|
||||
label-width="68px">
|
||||
<el-form-item label="微信模版名称" prop="wechatTemplateName" label-width="100px">
|
||||
<el-input v-model="queryParams.wechatTemplateName" placeholder="请输入模版名称" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryForm"
|
||||
size="small"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item
|
||||
label="微信模版名称"
|
||||
prop="wechatTemplateName"
|
||||
label-width="100px"
|
||||
>
|
||||
<el-input
|
||||
v-model="queryParams.wechatTemplateName"
|
||||
placeholder="请输入模版名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="模板ID" prop="templateId">
|
||||
<el-input v-model="queryParams.templateId" placeholder="请输入模板ID" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
<el-input
|
||||
v-model="queryParams.templateId"
|
||||
placeholder="请输入模板ID"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table v-loading="loading" :data="templateList" @row-dblclick="handleselect">
|
||||
<el-table-column type="index" width="48" align="center" label="序号" />
|
||||
<el-table-column label="微信模版名称" align="center" prop="wechatTemplateName" />
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="templateList"
|
||||
@row-dblclick="handleselect"
|
||||
>
|
||||
<el-table-column
|
||||
type="index"
|
||||
width="48"
|
||||
align="center"
|
||||
label="序号"
|
||||
/>
|
||||
<el-table-column
|
||||
label="微信模版名称"
|
||||
align="center"
|
||||
prop="wechatTemplateName"
|
||||
/>
|
||||
<el-table-column label="模板ID" align="center" prop="templateId" />
|
||||
<el-table-column label="模板来源" align="center" prop="templateSource">
|
||||
<el-table-column
|
||||
label="模板来源"
|
||||
align="center"
|
||||
prop="templateSource"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
scope.row.templateSource == "WE_CHAT_APPLET" ? "小程序" : ""
|
||||
@ -51,23 +107,55 @@
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="适用任务类型" align="center" prop="suitTaskTypeName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="病种名称" align="center" prop="diseaseTypeName" />
|
||||
<el-table-column label="模板内容" align="center" prop="templateContent" />
|
||||
<el-table-column
|
||||
label="适用任务类型"
|
||||
align="center"
|
||||
prop="suitTaskTypeName"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="病种名称"
|
||||
align="center"
|
||||
prop="diseaseTypeName"
|
||||
/>
|
||||
<el-table-column
|
||||
label="模板内容"
|
||||
align="center"
|
||||
prop="templateContent"
|
||||
/>
|
||||
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleselect(scope.row)"
|
||||
v-if="handleselectId != scope.row.templateId">选择</el-button>
|
||||
<el-button size="mini" type="text" @click="nohandleselect(scope.row)"
|
||||
v-if="handleselectId == scope.row.templateId">取消选择</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="handleselect(scope.row)"
|
||||
v-if="handleselectId != scope.row.templateId"
|
||||
>选择</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="nohandleselect(scope.row)"
|
||||
v-if="handleselectId == scope.row.templateId"
|
||||
>取消选择</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
@ -154,17 +242,17 @@ export default {
|
||||
nohandleselect() {
|
||||
this.handleselectId = ''
|
||||
this.handleselectName = ''
|
||||
this.$emit("on-template", { templateId: '', templateName: '', templateContent: "", officialTemplateCode: "" });
|
||||
this.$emit("on-template", { templateId: '', templateName: '', templateContent: "",officialTemplateCode:"" });
|
||||
},
|
||||
handleselect(item) {
|
||||
this.handleselectId = item.id
|
||||
this.handleselectName = item.wechatTemplateName
|
||||
this.$emit("on-template", {
|
||||
this.$emit("on-template", {
|
||||
templateId: item.id,
|
||||
templateName: item.wechatTemplateName,
|
||||
templateContent: item.textMessageContent,
|
||||
officialTemplateCode: item.officialTemplateCode,
|
||||
});
|
||||
templateName: item.wechatTemplateName,
|
||||
templateContent: item.textMessageContent,
|
||||
officialTemplateCode: item.officialTemplateCode,
|
||||
});
|
||||
this.classificationOpen = false
|
||||
},
|
||||
/** 查询微信模板信息列表 */
|
||||
|
||||
@ -26,26 +26,11 @@
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="宣教类型" prop="propagandaType">
|
||||
<el-select v-model="queryParams.propagandaType" placeholder="请选择" clearable>
|
||||
<el-select v-model="queryParams.propagandaType" placeholder="请选择">
|
||||
<el-option v-for="item in optionstype" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="来源" prop="source">
|
||||
<el-select
|
||||
v-model="queryParams.source"
|
||||
placeholder="请选择"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionspublick"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
@ -127,18 +112,6 @@ export default {
|
||||
handleselectName: "",
|
||||
handleselectId: "",
|
||||
classificationOpen: false,
|
||||
// 来源
|
||||
optionspublick:[
|
||||
{
|
||||
value: 'PRIVATE',
|
||||
label: '私有'
|
||||
},
|
||||
{
|
||||
value: 'PUBLIC',
|
||||
label: '公共'
|
||||
},
|
||||
|
||||
],
|
||||
optionstype: [
|
||||
{
|
||||
value: "MEDICATION_KNOWLEDGE",
|
||||
@ -182,7 +155,6 @@ export default {
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
source:'PRIVATE',
|
||||
patientId: null,
|
||||
propagandaId: null,
|
||||
departmentName: null,
|
||||
@ -308,10 +280,7 @@ export default {
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.queryParams.propagandaTitle = null
|
||||
this.queryParams.propagandaType=null
|
||||
this.queryParams.source=null
|
||||
// this.resetForm("queryForm");
|
||||
this.resetForm("queryForm");
|
||||
this.$refs.DepartmentList.resetQuery()
|
||||
// this.handleQuery();
|
||||
},
|
||||
|
||||
@ -14,7 +14,6 @@
|
||||
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'">(组合打分题)</span>
|
||||
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'">(日期填空题)</span>
|
||||
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'">(时间填空题)</span>
|
||||
<span v-if="item.questionType == 'FEEDBACK_BLANKS_SUBJECT'">(反馈填空题)</span>
|
||||
<el-radio-group v-if="item.questionType == 'MULTIPLE_CHOICE' ||
|
||||
item.questionType == 'COMBINATION_RADIO_SUBJECT' ||
|
||||
item.questionType == 'SCORING_QUESTIONS' ||
|
||||
@ -34,8 +33,7 @@
|
||||
</el-checkbox-group>
|
||||
<!-- 填空题、组合填空 -->
|
||||
<div v-if="item.questionType == 'FILL_IN_THE_BLANKS' ||
|
||||
item.questionType == 'COMBINATION_BLANKS_SUBJECT' ||
|
||||
item.questionType == 'FEEDBACK_BLANKS_SUBJECT'
|
||||
item.questionType == 'COMBINATION_BLANKS_SUBJECT'
|
||||
" class="tk">
|
||||
<el-input v-model="item.fillBlanksAnswer" disabled placeholder="请输入答案" type="textarea" />
|
||||
<!-- <el-input></el-input> -->
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -13,285 +13,103 @@
|
||||
/>
|
||||
</div>-->
|
||||
<div class="head-container">
|
||||
<el-tree
|
||||
:data="deptOptions"
|
||||
:props="defaultProps"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="filterNode"
|
||||
ref="tree"
|
||||
highlight-current
|
||||
@node-click="handleNodeClick"
|
||||
/>
|
||||
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
|
||||
:filter-node-method="filterNode" ref="tree" highlight-current @node-click="handleNodeClick" />
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="19" :xs="24">
|
||||
<div ref="topform" class="form">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryForm"
|
||||
size="small"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
|
||||
label-width="68px">
|
||||
<el-form-item label="科室名称" prop="departmentName">
|
||||
<el-input
|
||||
maxlength="100"
|
||||
v-model="queryParams.departmentName"
|
||||
placeholder="请输入科室名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
<el-input maxlength="100" v-model="queryParams.departmentName" placeholder="请输入科室名称" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="科室代码" prop="departmentCode">
|
||||
<el-input
|
||||
maxlength="30"
|
||||
v-model="queryParams.departmentCode"
|
||||
placeholder="请输入科室代码"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
<el-input maxlength="30" v-model="queryParams.departmentCode" placeholder="请输入科室代码" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div ref="mb8" class="mb8">
|
||||
<el-row :gutter="10" class="">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:department:add']"
|
||||
>新增</el-button
|
||||
>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-hasPermi="['system:department:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['system:department:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||
v-hasPermi="['system:department:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['system:department:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
|
||||
@click="handleDelete" v-hasPermi="['system:department:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="info"
|
||||
plain
|
||||
icon="el-icon-upload2"
|
||||
size="mini"
|
||||
@click="handleImport"
|
||||
v-hasPermi="['system:person:importStationPerson']"
|
||||
>导入</el-button
|
||||
>
|
||||
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport"
|
||||
v-hasPermi="['system:person:importStationPerson']">导入</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['system:department:export']"
|
||||
>导出</el-button
|
||||
>
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||
v-hasPermi="['system:department:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar
|
||||
:showSearch.sync="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
</div>
|
||||
<div ref="table">
|
||||
<el-table
|
||||
:max-height="maxTableHeight"
|
||||
v-loading="loading"
|
||||
:data="departmentList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table :max-height="maxTableHeight" v-loading="loading" :data="departmentList"
|
||||
@selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column
|
||||
label="科室名称"
|
||||
align="center"
|
||||
prop="departmentName"
|
||||
/>
|
||||
<el-table-column
|
||||
label="科室代码"
|
||||
align="center"
|
||||
prop="departmentCode"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="科室类型"
|
||||
align="center"
|
||||
prop="departmentType"
|
||||
>
|
||||
<!-- <template slot-scope="scope">
|
||||
{{
|
||||
scope.row.departmentType == "ADMINISTRATION_LOGISTICS"
|
||||
? "行政后勤类"
|
||||
: ""
|
||||
}}
|
||||
{{
|
||||
scope.row.departmentType == "MEDICAL_ASSISTANCE"
|
||||
? "医疗辅助类"
|
||||
: ""
|
||||
}}
|
||||
{{
|
||||
scope.row.departmentType == "MEDICAL_TECHNOLOGY"
|
||||
? "医疗技术类"
|
||||
: ""
|
||||
}}
|
||||
{{
|
||||
scope.row.departmentType == "CLINICAL_SERVICES"
|
||||
? "临床服务类"
|
||||
: ""
|
||||
}}
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="提供服务类别"
|
||||
align="center"
|
||||
prop="provideServiceCategory"
|
||||
>
|
||||
<!-- <template slot-scope="scope"
|
||||
>{{
|
||||
scope.row.provideServiceCategory == "OUTPATIENT_SERVICE"
|
||||
? "门诊"
|
||||
: ""
|
||||
}}
|
||||
{{
|
||||
scope.row.provideServiceCategory == "EMERGENCY_TREATMENT"
|
||||
? "急诊"
|
||||
: ""
|
||||
}}
|
||||
{{
|
||||
scope.row.provideServiceCategory == "BE_HOSPITALIZED"
|
||||
? "住院"
|
||||
: ""
|
||||
}}
|
||||
{{ scope.row.provideServiceCategory == "WARD" ? "病区" : "" }}
|
||||
{{
|
||||
scope.row.provideServiceCategory == "MEDICAL_TECHNOLOGY"
|
||||
? "医技"
|
||||
: ""
|
||||
}}
|
||||
{{ scope.row.provideServiceCategory == "DRUG" ? "药剂" : "" }}
|
||||
{{
|
||||
scope.row.provideServiceCategory == "FINANCE" ? "财务" : ""
|
||||
}}
|
||||
{{
|
||||
scope.row.provideServiceCategory == "ADMINISTRATION"
|
||||
? "行政"
|
||||
: ""
|
||||
}}
|
||||
{{
|
||||
scope.row.provideServiceCategory == "PHARMACY" ? "药房" : ""
|
||||
}}
|
||||
{{
|
||||
scope.row.provideServiceCategory == "DRUG_STORAGE"
|
||||
? "药库"
|
||||
: ""
|
||||
}}
|
||||
{{
|
||||
scope.row.provideServiceCategory == "PUBLIC_HEALTH"
|
||||
? "公卫"
|
||||
: ""
|
||||
}}
|
||||
</template> -->
|
||||
</el-table-column
|
||||
>
|
||||
<el-table-column
|
||||
label="科室电话"
|
||||
align="center"
|
||||
prop="departmentPhone"
|
||||
/>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<el-table-column label="科室名称" align="center" prop="departmentName" />
|
||||
<el-table-column label="科室代码" align="center" prop="departmentCode" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="科室类型" align="center" prop="departmentType">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:department:edit']"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:department:remove']"
|
||||
>删除</el-button
|
||||
>
|
||||
{{ scope.row.departmentType == "ADMINISTRATION_LOGISTICS" ? "行政后勤类" : "" }}
|
||||
{{ scope.row.departmentType == "MEDICAL_ASSISTANCE" ? "医疗辅助类" : "" }}
|
||||
{{ scope.row.departmentType == "MEDICAL_TECHNOLOGY" ? "医疗技术类" : "" }}
|
||||
{{ scope.row.departmentType == "CLINICAL_SERVICES" ? "临床服务类" : "" }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提供服务类别" align="center" prop="provideServiceCategory">
|
||||
<template slot-scope="scope">{{ scope.row.provideServiceCategory == "OUTPATIENT_SERVICE" ? "门诊" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "EMERGENCY_TREATMENT" ? "急诊" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "BE_HOSPITALIZED" ? "住院" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "WARD" ? "病区" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "MEDICAL_TECHNOLOGY" ? "医技" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "DRUG" ? "药剂" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "FINANCE" ? "财务" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "ADMINISTRATION" ? "行政" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "PHARMACY" ? "药房" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "DRUG_STORAGE" ? "药库" : "" }}
|
||||
{{ scope.row.provideServiceCategory == "PUBLIC_HEALTH" ? "公卫" : "" }}
|
||||
</template></el-table-column>
|
||||
<el-table-column label="科室电话" align="center" prop="departmentPhone" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:department:edit']">修改</el-button>
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:department:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize" @pagination="getList" /> -->
|
||||
<myPagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum"
|
||||
@updateCPage="updateCPage"
|
||||
></myPagination>
|
||||
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 导入 -->
|
||||
<el-dialog
|
||||
:title="upload.title"
|
||||
:visible.sync="upload.open"
|
||||
width="400px"
|
||||
append-to-body
|
||||
>
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:limit="1"
|
||||
accept=".xlsx, .xls"
|
||||
:headers="upload.headers"
|
||||
:action="upload.url"
|
||||
:disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress"
|
||||
:on-success="handleFileSuccess"
|
||||
:auto-upload="false"
|
||||
drag
|
||||
>
|
||||
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
||||
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url"
|
||||
:disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
|
||||
:auto-upload="false" drag>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">
|
||||
将文件拖到此处,或
|
||||
@ -299,13 +117,8 @@
|
||||
</div>
|
||||
<div class="el-upload__tip text-center" slot="tip">
|
||||
<span>仅允许导入xls、xlsx格式文件。</span>
|
||||
<el-link
|
||||
type="primary"
|
||||
:underline="false"
|
||||
style="font-size: 12px; vertical-align: baseline"
|
||||
@click="importTemplate"
|
||||
>下载模板</el-link
|
||||
>
|
||||
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
|
||||
@click="importTemplate">下载模板</el-link>
|
||||
</div>
|
||||
</el-upload>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@ -314,19 +127,8 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 添加或修改科室信息对话框 -->
|
||||
<el-dialog
|
||||
:title="title"
|
||||
:visible.sync="open"
|
||||
width="1000px"
|
||||
append-to-body
|
||||
>
|
||||
<el-form
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
label-width="120px"
|
||||
:inline="true"
|
||||
>
|
||||
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px" :inline="true">
|
||||
<!-- <el-form-item label="上级科室id" prop="parentDepartmentId">
|
||||
<el-input
|
||||
v-model="form.parentDepartmentId"
|
||||
@ -345,40 +147,19 @@
|
||||
<div class="nameinformation">基本信息</div>
|
||||
<div class="content">
|
||||
<el-form-item label="科室名称" prop="departmentName">
|
||||
<el-input
|
||||
maxlength="100"
|
||||
v-model="form.departmentName"
|
||||
placeholder="请输入科室名称"
|
||||
/>
|
||||
<el-input maxlength="100" v-model="form.departmentName" placeholder="请输入科室名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="科室代码" prop="departmentCode">
|
||||
<el-input
|
||||
maxlength="30"
|
||||
onKeyUp="value=value.replace(/[\W]/g,'')"
|
||||
v-model="form.departmentCode"
|
||||
placeholder="请输入科室代码"
|
||||
/>
|
||||
<el-input maxlength="30" onKeyUp="value=value.replace(/[\W]/g,'')" v-model="form.departmentCode"
|
||||
placeholder="请输入科室代码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="科室简称" prop="departmentAbbreviation">
|
||||
<el-input
|
||||
maxlength="100"
|
||||
v-model="form.departmentAbbreviation"
|
||||
placeholder="请输入科室简称"
|
||||
/>
|
||||
<el-input maxlength="100" v-model="form.departmentAbbreviation" placeholder="请输入科室简称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="科室类型" prop="departmentType">
|
||||
<el-select
|
||||
v-model="form.departmentType"
|
||||
placeholder="请选择"
|
||||
style="width: 205px"
|
||||
clearable=""
|
||||
>
|
||||
<el-option
|
||||
v-for="item in departmentoptions"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictLabel"
|
||||
:value="item.dictValue"
|
||||
>
|
||||
<el-select v-model="form.departmentType" placeholder="请选择" style="width: 205px" clearable="">
|
||||
<el-option v-for="item in departmentoptions" :key="item.dictValue" :label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -389,58 +170,26 @@
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="科室负责人姓名" prop="departmentPersonName">
|
||||
<el-input
|
||||
maxlength="20"
|
||||
v-model="form.departmentPersonName"
|
||||
placeholder="请输入科室负责人姓名"
|
||||
/>
|
||||
<el-input maxlength="20" v-model="form.departmentPersonName" placeholder="请输入科室负责人姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="节点类型" prop="nodeType">
|
||||
<el-select
|
||||
v-model="form.nodeType"
|
||||
placeholder="请选择"
|
||||
style="width: 205px"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in nodeTypeoptions"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictLabel"
|
||||
:value="item.dictValue"
|
||||
>
|
||||
<el-select v-model="form.nodeType" placeholder="请选择" style="width: 205px" clearable>
|
||||
<el-option v-for="item in nodeTypeoptions" :key="item.dictValue" :label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属机构" prop="hospitalAgencyName">
|
||||
<el-cascader
|
||||
clearable
|
||||
:props="{ checkStrictly: true }"
|
||||
:options="treeOptions"
|
||||
@change="change"
|
||||
style="width: 205px; color: black"
|
||||
v-model="form.hospitalAgencyIdtwo"
|
||||
:show-all-levels="false"
|
||||
:placeholder="
|
||||
form.hospitalAgencyName ? form.hospitalAgencyName : ''
|
||||
"
|
||||
ref="cascader"
|
||||
:key="isResouceShow"
|
||||
></el-cascader>
|
||||
<el-cascader clearable :props="{ checkStrictly: true }" :options="treeOptions" @change="change"
|
||||
style="width: 205px; color: black" v-model="form.hospitalAgencyIdtwo" :show-all-levels="false"
|
||||
:placeholder="form.hospitalAgencyName ? form.hospitalAgencyName : ''" ref="cascader"
|
||||
:key="isResouceShow"></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="上级科室" prop="parentDepartmentId">
|
||||
<el-select
|
||||
v-model="form.parentDepartmentName"
|
||||
placeholder="请选择"
|
||||
style="width: 205px"
|
||||
@change="changeparentDepartment"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionsparentDepartment"
|
||||
:key="item.id"
|
||||
:label="item.departmentName"
|
||||
:value="item.id"
|
||||
>
|
||||
<el-select v-model="form.parentDepartmentName" placeholder="请选择" style="width: 205px"
|
||||
@change="changeparentDepartment" clearable>
|
||||
<el-option v-for="item in optionsparentDepartment" :key="item.id" :label="item.departmentName"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-cascader
|
||||
@ -463,35 +212,16 @@
|
||||
<div class="nameinformation">扩展信息</div>
|
||||
<div class="content">
|
||||
<el-form-item label="提供服务类别" prop="provideServiceCategory">
|
||||
<el-select
|
||||
clearable
|
||||
v-model="form.provideServiceCategory"
|
||||
placeholder="请选择"
|
||||
style="width: 205px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.dictValue"
|
||||
:label="item.dictLabel"
|
||||
:value="item.dictValue"
|
||||
>
|
||||
<el-select clearable v-model="form.provideServiceCategory" placeholder="请选择" style="width: 205px">
|
||||
<el-option v-for="item in options" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="细分类别" prop="subdivisionCategoryId">
|
||||
<el-select
|
||||
v-model="form.subdivisionCategoryName"
|
||||
placeholder="请选择"
|
||||
style="width: 205px"
|
||||
clearable
|
||||
@change="optionsubdivision"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionsubdivisionCategory"
|
||||
:key="item.subdivisionCategoryCode"
|
||||
:label="item.subdivisionCategoryName"
|
||||
:value="item.subdivisionCategoryCode"
|
||||
>
|
||||
<el-select v-model="form.subdivisionCategoryName" placeholder="请选择" style="width: 205px" clearable
|
||||
@change="optionsubdivision">
|
||||
<el-option v-for="item in optionsubdivisionCategory" :key="item.subdivisionCategoryCode"
|
||||
:label="item.subdivisionCategoryName" :value="item.subdivisionCategoryCode">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -502,18 +232,9 @@
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="标准科室对照" prop="normDepartmentCompareId">
|
||||
<el-select
|
||||
v-model="form.normDepartmentCompareId"
|
||||
placeholder="请选择"
|
||||
style="width: 205px"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
v-for="item in compareList"
|
||||
:key="item.departmentId"
|
||||
:label="item.departmentName"
|
||||
:value="item.departmentId"
|
||||
>
|
||||
<el-select v-model="form.normDepartmentCompareId" placeholder="请选择" style="width: 205px" clearable>
|
||||
<el-option v-for="item in compareList" :key="item.departmentId" :label="item.departmentName"
|
||||
:value="item.departmentId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-input
|
||||
@ -528,48 +249,24 @@
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="编制床位数" prop="prepareBedsCount">
|
||||
<el-input
|
||||
maxlength="8"
|
||||
onKeyUp="value=value.replace(/[\W]/g,'')"
|
||||
v-model="form.prepareBedsCount"
|
||||
placeholder="请输入编制床位数"
|
||||
/>
|
||||
<el-input maxlength="8" onKeyUp="value=value.replace(/[\W]/g,'')" v-model="form.prepareBedsCount"
|
||||
placeholder="请输入编制床位数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="科室电话" prop="departmentPhone">
|
||||
<el-input
|
||||
maxlength="12"
|
||||
onKeyUp="value=value.replace(/[\W]/g,'')"
|
||||
v-model="form.departmentPhone"
|
||||
placeholder="请输入科室电话"
|
||||
/>
|
||||
<el-input maxlength="12" onKeyUp="value=value.replace(/[\W]/g,'')" v-model="form.departmentPhone"
|
||||
placeholder="请输入科室电话" />
|
||||
</el-form-item>
|
||||
<el-form-item label="科室邮箱" prop="departmentMail">
|
||||
<el-input
|
||||
maxlength="20"
|
||||
v-model="form.departmentMail"
|
||||
placeholder="请输入科室邮箱"
|
||||
/>
|
||||
<el-input maxlength="20" v-model="form.departmentMail" placeholder="请输入科室邮箱" />
|
||||
</el-form-item>
|
||||
<el-form-item label="成立日期" prop="establishDate">
|
||||
<el-date-picker
|
||||
clearable
|
||||
v-model="form.establishDate"
|
||||
type="date"
|
||||
style="width: 205px"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择成立日期"
|
||||
>
|
||||
<el-date-picker clearable v-model="form.establishDate" type="date" style="width: 205px"
|
||||
value-format="yyyy-MM-dd" placeholder="请选择成立日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="撤销日期" prop="revokeDate">
|
||||
<el-date-picker
|
||||
clearable
|
||||
v-model="form.revokeDate"
|
||||
type="date"
|
||||
style="width: 205px"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择撤销日期"
|
||||
>
|
||||
<el-date-picker clearable v-model="form.revokeDate" type="date" style="width: 205px"
|
||||
value-format="yyyy-MM-dd" placeholder="请选择撤销日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@ -728,8 +425,8 @@ export default {
|
||||
id: "",
|
||||
// 表单校验
|
||||
rules: {
|
||||
nodeType: [
|
||||
{ required: true, message: "节点类型不能为空", trigger: "blur" },
|
||||
nodeType:[
|
||||
{ required: true, message: "节点类型不能为空", trigger: "blur" },
|
||||
],
|
||||
hospitalAgencyName: [
|
||||
{ required: true, message: "所属机构不能为空", trigger: "blur" },
|
||||
@ -844,6 +541,7 @@ export default {
|
||||
},
|
||||
// 所属机构
|
||||
change(e) {
|
||||
console.log(this.form.hospitalAgencyIdtwo)
|
||||
if (e) {
|
||||
this.form.hospitalAgencyId = e[e.length - 1];
|
||||
if (this.form.hospitalAgencyId) {
|
||||
@ -976,7 +674,6 @@ export default {
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
parentDepartmentName:null,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
@ -996,46 +693,12 @@ export default {
|
||||
this.single = selection.length !== 1;
|
||||
this.multiple = !selection.length;
|
||||
},
|
||||
getLeafIds(nodes) {
|
||||
console.log(nodes, ';node')
|
||||
|
||||
this.form.hospitalAgencyIdtwo = JSON.parse(localStorage.getItem('user')).hospitalAgencyId;
|
||||
|
||||
let leafIds = [];
|
||||
nodes.forEach(node => {
|
||||
|
||||
if (node.id == this.form.hospitalAgencyIdtwo) {
|
||||
this.form.hospitalAgencyName = node.label;
|
||||
|
||||
|
||||
} else {
|
||||
if (node.children) {
|
||||
// 如果有子节点,递归调用getLeafIds
|
||||
leafIds = leafIds.concat(this.getLeafIds(node.children));
|
||||
} else {
|
||||
// 如果没有子节点,取当前节点的id
|
||||
leafIds.push(node.id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
return leafIds;
|
||||
},
|
||||
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
|
||||
this.getinfo()
|
||||
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加科室信息";
|
||||
if (localStorage.getItem('roleKey') != 'admin') {
|
||||
this.getLeafIds(this.treeOptions)
|
||||
|
||||
|
||||
}
|
||||
this.getinfo()
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
@ -1067,10 +730,6 @@ export default {
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
if (!this.form.hospitalAgencyId) {
|
||||
this.form.hospitalAgencyId = this.form.hospitalAgencyIdtwo
|
||||
}
|
||||
|
||||
addDepartment(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -141,8 +141,6 @@
|
||||
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
|
||||
>(时间填空题)</span
|
||||
>
|
||||
<span v-if="item.questionType == 'FEEDBACK_BLANKS_SUBJECT'">(反馈填空题)</span>
|
||||
|
||||
<el-radio-group
|
||||
v-if="
|
||||
item.questionType == 'MULTIPLE_CHOICE' ||
|
||||
@ -185,8 +183,7 @@
|
||||
style="margin: 20px 0 10px 30px"
|
||||
v-if="
|
||||
item.questionType == 'FILL_IN_THE_BLANKS' ||
|
||||
item.questionType == 'COMBINATION_BLANKS_SUBJECT' ||
|
||||
item.questionType == 'FEEDBACK_BLANKS_SUBJECT'
|
||||
item.questionType == 'COMBINATION_BLANKS_SUBJECT'
|
||||
"
|
||||
class="tk"
|
||||
>
|
||||
|
||||
@ -60,7 +60,10 @@
|
||||
<el-tab-pane label="签约记录" name="five">
|
||||
<signingRecords v-if="activeName == 'five'"></signingRecords>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="任务处理" name="six">
|
||||
<el-tab-pane
|
||||
label="任务处理"
|
||||
name="six"
|
||||
>
|
||||
<keep-alive>
|
||||
<Taskprocess v-if="activeName == 'six'" ref="process"></Taskprocess>
|
||||
</keep-alive>
|
||||
@ -130,17 +133,9 @@ export default {
|
||||
},
|
||||
// 取消
|
||||
cencal() {
|
||||
if (this.$route.query.path == "/task/taskmanagement") {
|
||||
this.$router.push({
|
||||
path: "/task/taskmanagement",
|
||||
});
|
||||
} else {
|
||||
this.$router.push({
|
||||
path: "/task/followup",
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
this.$router.push({
|
||||
path: "/task/followup",
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
@ -280,6 +275,7 @@ export default {
|
||||
background-color: #fff;
|
||||
margin: 10px auto;
|
||||
padding: 10px 0px 10px 20px;
|
||||
|
||||
}
|
||||
.topheaderup {
|
||||
width: 99%;
|
||||
|
||||
@ -49,32 +49,32 @@
|
||||
<div class="app">
|
||||
<div class="content">
|
||||
<div class="words">AI电话拨打次数</div>
|
||||
<div class="num">{{ echartlist.aiNum }}</div>
|
||||
<div class="num">1</div>
|
||||
<div class="rate">成功率:</div>
|
||||
<el-progress :percentage="echartlist.aiSuccessRate"></el-progress>
|
||||
<el-progress :percentage="12"></el-progress>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="words">人工电话拨打次数</div>
|
||||
<div class="num">{{ echartlist.commonNum }}</div>
|
||||
<div class="num">1</div>
|
||||
<div class="rate">成功率:</div>
|
||||
<el-progress :percentage="echartlist.commonSuccessRate"></el-progress>
|
||||
<el-progress :percentage="12"></el-progress>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="words">AI电话拨打人数</div>
|
||||
<div class="num">{{ echartlist.aiPatientNum }}</div>
|
||||
<div class="num">1</div>
|
||||
<div class="rate">成功率:</div>
|
||||
<el-progress :percentage="echartlist.aiPatientSuccessRate"></el-progress>
|
||||
<el-progress :percentage="12"></el-progress>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="words">人工电话拨打人数</div>
|
||||
<div class="num">{{ echartlist.commonPatientNum }}</div>
|
||||
<div class="num">1</div>
|
||||
<div class="rate">成功率:</div>
|
||||
<el-progress :percentage="echartlist.commonPatientSuccessRate"></el-progress>
|
||||
<el-progress :percentage="12"></el-progress>
|
||||
</div>
|
||||
<div class="content" style="margin-right: 0;">
|
||||
<div class="words" style="top:20px;font-size: 17px;">总通话人数:{{ echartlist.sumPatientNum }}</div>
|
||||
<div class="words" style="top:60px;font-size: 17px;">短信发送数:{{ echartlist.smsNum }}</div>
|
||||
<div class="words" style="top:100px;font-size: 17px;">小程序通知数:{{ echartlist.subscribeNum }}</div>
|
||||
<div class="words" style="top:20px;font-size: 17px;">总通话人数</div>
|
||||
<div class="words" style="top:60px;font-size: 17px;">短信发送数</div>
|
||||
<div class="words" style="top:100px;font-size: 17px;">小程序通知数</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="trend">
|
||||
@ -84,56 +84,6 @@
|
||||
<div id="rightechart" style="height:400px;width: 48%;"> </div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="trend" style="padding-bottom: 50px;">
|
||||
<div class="tabletitles">
|
||||
<div :class="queryParams.type == 'dept' ? 'tabletitleleft taptitle' : 'tabletitleleft'"
|
||||
@click="clicktype('dept')">
|
||||
科室/人员
|
||||
</div>
|
||||
<div :class="queryParams.type == 'date' ? 'tabletitleright taptitle' : 'tabletitleright'"
|
||||
@click="clicktype('date')">
|
||||
日期
|
||||
</div>
|
||||
</div>
|
||||
<el-descriptions title="随访明细表" style="padding:20px 0 0 15px;" />
|
||||
<el-table :data="tableData" style="width: 98%;margin:0 auto;" row-key="rowId" border v-loading="loading"
|
||||
:tree-props="{ children: 'childerenList', hasChildren: 'hasChildren' }">
|
||||
<el-table-column prop="rowName" :label="queryParams.type == 'dept' ? '科室/人员' : '统计时间'">
|
||||
</el-table-column>
|
||||
<el-table-column prop="patientNum" label="就诊/出院人数" sortable>
|
||||
</el-table-column>
|
||||
<el-table-column prop="followUpNum" label="有随访计划人数">
|
||||
</el-table-column>
|
||||
<el-table-column prop="followUpCoverRate" label="随访覆盖率" sortable>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.followUpCoverRate }}%
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="followUpSuccessNum" label="随访成功人数">
|
||||
</el-table-column>
|
||||
<el-table-column prop="followUpSuccessRate" label="随访成功率">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.followUpSuccessRate }}%
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="按随访任务(方式)" v-if="queryParams.type == 'date'">
|
||||
<el-table-column prop="aiNum" label="AI电话次数">
|
||||
</el-table-column>
|
||||
<el-table-column prop="aiSuccessRate" label="AI电话成功率">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.aiSuccessRate }}%
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="commonNum" label="人工随访次数">
|
||||
</el-table-column>
|
||||
<el-table-column prop="commonSuccessRate" label="人工随访成功率">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.commonSuccessRate }}%
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -143,10 +93,6 @@ import {
|
||||
selectAgencyList,
|
||||
getAgencyList,
|
||||
} from "@/api/manage/selectAgencyList";
|
||||
import {
|
||||
getFollowUpDetail,
|
||||
getFollowUpRate
|
||||
} from '@/api/system/followupstatistics'
|
||||
import * as echarts from 'echarts';
|
||||
export default {
|
||||
name: "followupstatistics",
|
||||
@ -155,6 +101,8 @@ export default {
|
||||
maxTableHeight: undefined,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
hospitalAgencyId: null,
|
||||
@ -165,7 +113,6 @@ export default {
|
||||
departmentName: null,
|
||||
wardId: null,
|
||||
wardName: null,
|
||||
type: 'dept'
|
||||
},
|
||||
visitDate: [],
|
||||
//医院list
|
||||
@ -176,25 +123,18 @@ export default {
|
||||
departmentlist: [],
|
||||
//病区list
|
||||
wardlist: [],
|
||||
echartlist: [],
|
||||
loading: false,
|
||||
tableData: [],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.selectAgencyinfo();
|
||||
this.getList();
|
||||
this.getFollowUpDetailinfo();
|
||||
},
|
||||
mounted() {
|
||||
this.echartinfo();
|
||||
this.echartinfotwo();
|
||||
this.getMaxTableHeight()
|
||||
this.screenChange()
|
||||
},
|
||||
methods: {
|
||||
clicktype(index) {
|
||||
this.queryParams.type = index
|
||||
this.getFollowUpDetailinfo();
|
||||
},
|
||||
echartinfo() {
|
||||
var chartDom = document.getElementById('leftechart');
|
||||
var myChart = echarts.init(chartDom);
|
||||
@ -213,7 +153,7 @@ export default {
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: this.echartlist.numTrendVoList.map(e => e.followUpMonth)
|
||||
data: ['2024年9月', '2024年10月']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
@ -223,7 +163,8 @@ export default {
|
||||
{
|
||||
name: 'AI电话拨打人数',
|
||||
type: 'line',
|
||||
data: this.echartlist.numTrendVoList.map(e => e.aiPatientNum),
|
||||
stack: 'Total',
|
||||
data: [120, 132],
|
||||
lineStyle: {
|
||||
width: 3,
|
||||
color: '#942CCA',
|
||||
@ -232,7 +173,8 @@ export default {
|
||||
{
|
||||
name: '人工电话拨打人数',
|
||||
type: 'line',
|
||||
data: this.echartlist.numTrendVoList.map(e => e.commonPatientNum),
|
||||
stack: 'Total',
|
||||
data: [220, 182],
|
||||
lineStyle: {
|
||||
width: 3,
|
||||
color: '#22B14C',
|
||||
@ -241,7 +183,8 @@ export default {
|
||||
{
|
||||
name: '短信发送数',
|
||||
type: 'line',
|
||||
data: this.echartlist.numTrendVoList.map(e => e.smsNum),
|
||||
stack: 'Total',
|
||||
data: [150, 232],
|
||||
lineStyle: {
|
||||
width: 3,
|
||||
color: '#ED1C24',
|
||||
@ -250,7 +193,8 @@ export default {
|
||||
{
|
||||
name: '小程序通知数',
|
||||
type: 'line',
|
||||
data: this.echartlist.numTrendVoList.map(e => e.subscribeNum),
|
||||
stack: 'Total',
|
||||
data: [320, 332],
|
||||
lineStyle: {
|
||||
width: 3,
|
||||
color: '#FF7F27',
|
||||
@ -265,18 +209,7 @@ export default {
|
||||
var myChart = echarts.init(chartDom);
|
||||
var option = {
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
formatter: function (params) {
|
||||
var result = params[0].name + "<br>";
|
||||
params.forEach(function (item) {
|
||||
if (item.value >= 0) {
|
||||
result += item.marker + " " + item.seriesName + " : " + item.value + "%</br>";
|
||||
} else {
|
||||
result += item.marker + " " + item.seriesName + " : - </br>";
|
||||
}
|
||||
});
|
||||
return result;
|
||||
},
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: ['AI电话拨打次数成功率', '人工电话拨打次数成功率', 'AI电话拨打人数成功率', '人工电话拨打人数成功率']
|
||||
@ -289,31 +222,18 @@ export default {
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: this.echartlist.rateTrendVoList.map(e => e.followUpMonth)
|
||||
data: ['2024年9月', '2024年10月']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
padding: [0, 50, 20, 20] // 加上padding可以调整其位置
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
padding: [0, 50, 20, 20], // 加上padding可以调整其位置
|
||||
// name: '单位(%)',
|
||||
nameGap: 35,
|
||||
nameTextStyle: { color: '#666666' },
|
||||
axisTick: { show: false },
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: 0, // 使x轴文字显示全
|
||||
color: '#666666',
|
||||
formatter: '{value}%' //y轴数值,带百分号
|
||||
},
|
||||
axisLine: { show: true, lineStyle: { color: '#dddddd' } },
|
||||
splitLine: { lineStyle: { type: 'dashed', color: '#eeeeee' } }
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: 'AI电话拨打次数成功率',
|
||||
type: 'line',
|
||||
data: this.echartlist.rateTrendVoList.map(e => e.aiSuccessRate),
|
||||
stack: 'Total',
|
||||
data: [150, 232],
|
||||
lineStyle: {
|
||||
width: 3,
|
||||
color: '#FFF200',
|
||||
@ -322,7 +242,8 @@ export default {
|
||||
{
|
||||
name: '人工电话拨打次数成功率',
|
||||
type: 'line',
|
||||
data: this.echartlist.rateTrendVoList.map(e => e.commonSuccessRate),
|
||||
stack: 'Total',
|
||||
data: [320, 332],
|
||||
lineStyle: {
|
||||
width: 3,
|
||||
color: '#00A2E8',
|
||||
@ -331,7 +252,8 @@ export default {
|
||||
{
|
||||
name: 'AI电话拨打人数成功率',
|
||||
type: 'line',
|
||||
data: this.echartlist.rateTrendVoList.map(e => e.aiPatientSuccessRate),
|
||||
stack: 'Total',
|
||||
data: [120, 132],
|
||||
lineStyle: {
|
||||
width: 3,
|
||||
color: '#3F48CC',
|
||||
@ -340,7 +262,8 @@ export default {
|
||||
{
|
||||
name: '人工电话拨打人数成功率',
|
||||
type: 'line',
|
||||
data: this.echartlist.rateTrendVoList.map(e => e.commonPatientSuccessRate),
|
||||
stack: 'Total',
|
||||
data: [220, 182],
|
||||
lineStyle: {
|
||||
width: 3,
|
||||
color: '#880015',
|
||||
@ -351,7 +274,7 @@ export default {
|
||||
option && myChart.setOption(option);
|
||||
},
|
||||
/** 查询 */
|
||||
async getList() {
|
||||
getList() {
|
||||
if (this.visitDate?.length > 0) {
|
||||
this.queryParams.startDate = this.visitDate[0];
|
||||
this.queryParams.endDate = this.visitDate[1];
|
||||
@ -359,40 +282,11 @@ export default {
|
||||
this.queryParams.startDate = null;
|
||||
this.queryParams.endDate = null;
|
||||
}
|
||||
await getFollowUpRate(this.queryParams).then(res => {
|
||||
this.echartlist = res.data
|
||||
this.echartinfo();
|
||||
this.echartinfotwo();
|
||||
})
|
||||
},
|
||||
async getFollowUpDetailinfo() {
|
||||
if (this.visitDate?.length > 0) {
|
||||
this.queryParams.startDate = this.visitDate[0];
|
||||
this.queryParams.endDate = this.visitDate[1];
|
||||
} else {
|
||||
this.queryParams.startDate = null;
|
||||
this.queryParams.endDate = null;
|
||||
}
|
||||
this.loading = true
|
||||
await getFollowUpDetail(this.queryParams).then(res => {
|
||||
var id = 1
|
||||
res.data.forEach(e => {
|
||||
id++
|
||||
e.rowId = id
|
||||
if (e.childerenList?.length > 0) {
|
||||
e.childerenList.forEach(el => {
|
||||
id++
|
||||
el.rowId = id
|
||||
})
|
||||
}
|
||||
})
|
||||
this.tableData = res.data
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
this.getFollowUpDetailinfo();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
@ -400,7 +294,6 @@ export default {
|
||||
this.queryParams.visitDateStart = null;
|
||||
this.queryParams.visitDateEnd = null;
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery()
|
||||
},
|
||||
selectAgencyinfo() {
|
||||
let query = {
|
||||
@ -498,41 +391,6 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
::v-deep .el-table .cell {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tabletitles {
|
||||
width: 130px;
|
||||
line-height: 30px;
|
||||
height: 50px;
|
||||
display: flex;
|
||||
text-align: center;
|
||||
padding-top: 20px;
|
||||
margin: 0 0 0 18px;
|
||||
}
|
||||
|
||||
.taptitle {
|
||||
color: #009982 !important;
|
||||
border: 1px solid #009982 !important;
|
||||
}
|
||||
|
||||
.tabletitleleft {
|
||||
border-radius: 3px 0 0 3px;
|
||||
width: 85px;
|
||||
color: #908490;
|
||||
border: 1px solid #DBDBDB;
|
||||
}
|
||||
|
||||
.tabletitleright {
|
||||
border-radius: 0 3px 3px 0;
|
||||
width: 45px;
|
||||
color: #908490;
|
||||
border: 1px solid #DBDBDB;
|
||||
}
|
||||
|
||||
.bottomstatistics {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
|
||||
@ -140,12 +140,12 @@
|
||||
align="center"
|
||||
prop="taskNodeType"
|
||||
>
|
||||
<!-- <template slot-scope="scope">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.taskNodeType=='PHONE_OUTBOUND'?'电话外呼':''}}
|
||||
{{scope.row.taskNodeType=='QUESTIONNAIRE_SCALE'?'问卷量表':''}}
|
||||
{{scope.row.taskNodeType=='PROPAGANDA_ARTICLE'?'宣教文章':''}}
|
||||
{{scope.row.taskNodeType=='TEXT_REMIND'?'文字提醒':''}}
|
||||
</template> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
@ -36,13 +36,7 @@
|
||||
<div ref="table">
|
||||
<el-table :max-height="maxTableHeight" v-loading="loading" :data="questionList">
|
||||
<el-table-column label="序号" type="index" width="48" align="center" />
|
||||
<el-table-column label="姓名" align="center" prop="patientName">
|
||||
<!-- <template slot-scope="scope">
|
||||
<el-button type="text" @click="handleAuthRole(scope.row)">
|
||||
{{ scope.row.patientName }}
|
||||
</el-button>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column label="姓名" align="center" prop="patientName" />
|
||||
<el-table-column label="问卷标题" align="center" prop="questionnaireName" />
|
||||
<el-table-column label="得分" align="center" prop="totalScore" />
|
||||
<el-table-column label="填写时间" align="center" prop="createTime" />
|
||||
@ -77,8 +71,6 @@
|
||||
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'">(组合打分题)</span>
|
||||
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'">(日期填空题)</span>
|
||||
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'">(时间填空题)</span>
|
||||
<span v-if="item.questionType == 'FEEDBACK_BLANKS_SUBJECT'">(反馈填空题)</span>
|
||||
|
||||
<el-radio-group
|
||||
v-if="item.questionType == 'MULTIPLE_CHOICE' || item.questionType == 'COMBINATION_RADIO_SUBJECT' || item.questionType == 'SCORING_QUESTIONS' || item.questionType == 'COMBINATION_SCORING_SUBJECT'"
|
||||
v-model="item.checked" class="custom-radio-group" @change="radioGroupChange($event, item)">
|
||||
@ -94,7 +86,7 @@
|
||||
{{ aitem.optionName }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
<div v-if="item.questionType == 'FILL_IN_THE_BLANKS' || item.questionType == 'COMBINATION_BLANKS_SUBJECT' || item.questionType == 'FEEDBACK_BLANKS_SUBJECT'"
|
||||
<div v-if="item.questionType == 'FILL_IN_THE_BLANKS' || item.questionType == 'COMBINATION_BLANKS_SUBJECT'"
|
||||
class="tk">
|
||||
<el-input disabled v-model="item.fillBlanksAnswer" placeholder="请输入答案" type="textarea" />
|
||||
</div>
|
||||
@ -187,36 +179,6 @@ export default {
|
||||
this.screenChange()
|
||||
},
|
||||
methods: {
|
||||
/** 详情操作 */
|
||||
handleAuthRole(row) {
|
||||
this.$router.push({
|
||||
path: "/patient/patientdetails",
|
||||
query: {
|
||||
path: "/patient/patientInfo",
|
||||
patientId: row.patientId,
|
||||
patientName: row.patientName,
|
||||
patientPhone: row.patientPhone,
|
||||
familyMemberPhone: row.familyMemberPhone,
|
||||
cardNo: row.cardNo,
|
||||
mainDiagnosis: row.mainDiagnosis,
|
||||
hospitalAgencyName: row.hospitalAgencyName,
|
||||
campusAgencyName: row.campusAgencyName,
|
||||
departmentName: row.departmentName,
|
||||
wardName: row.wardName,
|
||||
certificateIssuingDoctorName: row.certificateIssuingDoctorName,
|
||||
appointmentTreatmentGroup: row.appointmentTreatmentGroup,
|
||||
responsibleNurse: row.responsibleNurse,
|
||||
registrationNo: row.registrationNo,
|
||||
registrationDate: row.registrationDate,
|
||||
appointmentDate: row.appointmentDate,
|
||||
sex: row.sex,
|
||||
birthDate: row.birthDate,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.birthDate ? getAge(row.birthDate) :row.age,
|
||||
},
|
||||
});
|
||||
},
|
||||
//详情
|
||||
look(item) {
|
||||
selectQuestionnaireResult(item.patientQuestionSubmitResultId).then(res => {
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="informationrecord">
|
||||
<div class="information">
|
||||
<div class="top">
|
||||
<div>身份证号:{{ list.cardNo }}</div>
|
||||
<div>患者电话:{{ list.patientPhone }}</div>
|
||||
@ -242,7 +242,6 @@
|
||||
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
|
||||
>(时间填空题)</span
|
||||
>
|
||||
<span v-if="item.questionType == 'FEEDBACK_BLANKS_SUBJECT'">(反馈填空题)</span>
|
||||
<el-radio-group
|
||||
v-if="
|
||||
item.questionType == 'MULTIPLE_CHOICE' ||
|
||||
@ -286,8 +285,7 @@
|
||||
<div
|
||||
v-if="
|
||||
item.questionType == 'FILL_IN_THE_BLANKS' ||
|
||||
item.questionType == 'COMBINATION_BLANKS_SUBJECT' ||
|
||||
item.questionType == 'FEEDBACK_BLANKS_SUBJECT'
|
||||
item.questionType == 'COMBINATION_BLANKS_SUBJECT'
|
||||
"
|
||||
class="tk"
|
||||
>
|
||||
@ -975,7 +973,7 @@ export default {
|
||||
background-color: #fff;
|
||||
margin: 0 auto;
|
||||
|
||||
.informationrecord {
|
||||
.information {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 10px 20px;
|
||||
|
||||
@ -124,9 +124,10 @@ export default {
|
||||
/** 查询信息列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.queryParams.params = {};
|
||||
satisfactionSurvey(this.queryParams).then(response => {
|
||||
response.rows.forEach(e => {
|
||||
e.birthDate ? e.age = getAge(e.birthDate) : e.age
|
||||
e.birthDate ? e.age = getAge(e.birthDate) : ''
|
||||
})
|
||||
this.patientInfoList = response.rows;
|
||||
this.total = response.total;
|
||||
@ -154,7 +155,7 @@ export default {
|
||||
address: row.address,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
},
|
||||
});
|
||||
// })
|
||||
|
||||
@ -104,8 +104,9 @@
|
||||
<propaganda @on-template="propagandaontemplate" :templateId="form.templateId"
|
||||
:templateName="form.templateName"></propaganda>
|
||||
</el-form-item>
|
||||
<span style="display: inline-block; width: 10px"
|
||||
v-if="form.taskNodeType == 'PROPAGANDA_ARTICLE' && form.templateId">
|
||||
<span style="display: inline-block; width: 10px" v-if="
|
||||
form.taskNodeType == 'PROPAGANDA_ARTICLE' && form.templateId
|
||||
">
|
||||
<el-button @click="imagepreviews">预览</el-button>
|
||||
</span>
|
||||
</el-form>
|
||||
@ -515,10 +516,10 @@ export default {
|
||||
},
|
||||
mounted() { },
|
||||
methods: {
|
||||
//重拨次数
|
||||
//重播次数
|
||||
changephoneRedialTimes(e) {
|
||||
if (
|
||||
this.optionslistS.find((el) => el.dictValue == e)?.dictLabel != "不重拨"
|
||||
this.optionslistS.find((el) => el.dictValue == e)?.dictLabel != "不重播"
|
||||
) {
|
||||
this.form.phoneTimeInterval = 30;
|
||||
} else {
|
||||
@ -661,11 +662,17 @@ export default {
|
||||
);
|
||||
this.form = this.lists[0].list[0];
|
||||
// 宣教模板回显
|
||||
if (this.form.taskNodeType == "PROPAGANDA_ARTICLE" && this.form.templateId) {
|
||||
if (
|
||||
this.form.taskNodeType == "PROPAGANDA_ARTICLE" &&
|
||||
this.form.templateId
|
||||
) {
|
||||
getPropaganda(this.form.templateId).then((response) => {
|
||||
this.formview = response.data;
|
||||
});
|
||||
} else if (this.form.templateId && this.form.taskNodeType == "QUESTIONNAIRE_SCALE") {
|
||||
} else if (
|
||||
this.form.templateId &&
|
||||
this.form.taskNodeType == "QUESTIONNAIRE_SCALE"
|
||||
) {
|
||||
// 问卷模板回显
|
||||
questionname(this.form.templateId).then((res) => {
|
||||
this.lookitemnew = res.data;
|
||||
@ -806,12 +813,21 @@ export default {
|
||||
this.form.officialRemindContent = item.templateContent;
|
||||
},
|
||||
//暂存
|
||||
async TemporaryStorage() {
|
||||
console.log(this.form)
|
||||
if (this.form.taskNodeType != "QUESTIONNAIRE_SCALE" && this.form.taskNodeType != "PROPAGANDA_ARTICLE") {
|
||||
TemporaryStorage() {
|
||||
if (
|
||||
this.form.taskNodeType != "QUESTIONNAIRE_SCALE" &&
|
||||
this.form.taskNodeType != "PROPAGANDA_ARTICLE"
|
||||
) {
|
||||
this.$refs.wangeditor.emit();
|
||||
}
|
||||
await this.$confirm("确认暂存时将过滤掉部分内容未填写完成的子节点,是否确认暂存?", "提示", { confirmButtonText: "确认", cancelButtonText: "取消", }).then(() => {
|
||||
this.$confirm(
|
||||
"确认暂存时将过滤掉部分内容未填写完成的子节点,是否确认暂存?",
|
||||
"提示",
|
||||
{
|
||||
confirmButtonText: "确认",
|
||||
cancelButtonText: "取消",
|
||||
}
|
||||
).then(() => {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: "暂存中",
|
||||
@ -823,14 +839,17 @@ export default {
|
||||
e.list.length > 0 ? e.list.forEach((el) => {
|
||||
el.routeNodeDay = e.routeNodeDay;
|
||||
el.routeNodeName = e.routeNodeName;
|
||||
el.phonePushSign = null;
|
||||
if (el.phoneDialMethod == "COMMON" && el.templateId) {
|
||||
el.phonePushSign = "1";
|
||||
} else if (el.phoneDialMethod == "AI" && el.templateId) {
|
||||
el.phonePushSign = "1";
|
||||
} else if (el.phoneDialMethod == "COMMON" && el.phoneTemplateId) {
|
||||
el.taskNodeType = "QUESTIONNAIRE_SCALE";
|
||||
} else if (
|
||||
el.phoneDialMethod == "COMMON" &&
|
||||
el.phoneTemplateId
|
||||
) {
|
||||
el.phonePushSign = "1";
|
||||
el.taskNodeType = "PHONE_OUTBOUND";
|
||||
} else if (el.phoneDialMethod == "AI" && el.phoneTemplateId) {
|
||||
el.taskNodeType = "PHONE_OUTBOUND";
|
||||
el.phonePushSign = "1";
|
||||
}
|
||||
this.updata.specialDiseaseNodeList.push(el);
|
||||
@ -847,32 +866,43 @@ export default {
|
||||
// );
|
||||
// return;
|
||||
this.updata.specialDiseaseNodeList.forEach((ele) => {
|
||||
loading.close();
|
||||
if (ele.taskNodeType == "PHONE_OUTBOUND") {
|
||||
if (ele.phoneDialMethod == null || ele.phoneDialMethod == "") {
|
||||
loading.close();
|
||||
return this.$message.error("请先选择推送方式");
|
||||
} else if (ele.phoneTemplateId == null || ele.phoneTemplateId == "") {
|
||||
loading.close();
|
||||
return this.$message.error("请先选择话术模板");
|
||||
this.$message.error("请先选择推送方式");
|
||||
} else if (
|
||||
ele.phoneTemplateId == null ||
|
||||
ele.phoneTemplateId == ""
|
||||
) {
|
||||
this.$message.error("请先选择话术模板");
|
||||
} else {
|
||||
specialDiseaseNode(this.updata).then((res) => {
|
||||
let wangeditorlist = [];
|
||||
if (localStorage.getItem("wangeditorlist")) {
|
||||
wangeditorlist = JSON.parse(
|
||||
localStorage.getItem("wangeditorlist")
|
||||
);
|
||||
wangeditorlist = wangeditorlist.filter(
|
||||
(e) =>
|
||||
e.specialDiseaseNodeId == this.form.specialDiseaseNodeId
|
||||
);
|
||||
localStorage.setItem(
|
||||
"wangeditorlist",
|
||||
JSON.stringify(wangeditorlist)
|
||||
);
|
||||
}
|
||||
this.info();
|
||||
loading.close();
|
||||
this.$modal.msgSuccess("暂存成功!");
|
||||
this.listindex = 0;
|
||||
this.itemindex = 0;
|
||||
});
|
||||
setTimeout(() => {
|
||||
loading.close();
|
||||
}, 3000);
|
||||
}
|
||||
}
|
||||
});
|
||||
specialDiseaseNode(this.updata).then((res) => {
|
||||
let wangeditorlist = [];
|
||||
if (localStorage.getItem("wangeditorlist")) {
|
||||
wangeditorlist = JSON.parse(localStorage.getItem("wangeditorlist"));
|
||||
wangeditorlist = wangeditorlist.filter((e) => e.specialDiseaseNodeId == this.form.specialDiseaseNodeId);
|
||||
localStorage.setItem("wangeditorlist", JSON.stringify(wangeditorlist));
|
||||
}
|
||||
this.info();
|
||||
loading.close();
|
||||
this.$modal.msgSuccess("暂存成功!");
|
||||
this.listindex = 0;
|
||||
this.itemindex = 0;
|
||||
});
|
||||
setTimeout(() => {
|
||||
loading.close();
|
||||
}, 3000);
|
||||
});
|
||||
},
|
||||
//问卷传值
|
||||
@ -904,7 +934,6 @@ export default {
|
||||
},
|
||||
// 切换节点
|
||||
async bottomclickevent(uitem, index, uindex) {
|
||||
this.form = uitem;
|
||||
await this.onemit();
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
@ -941,6 +970,7 @@ export default {
|
||||
if (uitem.taskType) {
|
||||
this.changeTaskType(uitem.taskType, uitem.taskSubdivision);
|
||||
}
|
||||
this.form = uitem;
|
||||
setTimeout(() => {
|
||||
loading.close();
|
||||
}, 1200);
|
||||
@ -956,11 +986,13 @@ export default {
|
||||
});
|
||||
},
|
||||
//任务类型
|
||||
async changeTaskType(code, taskSubdivision) {
|
||||
changeTaskType(code, taskSubdivision) {
|
||||
this.taskPartitionDictId = "";
|
||||
let id = this.selectTaskTypeList?.find((e) => e.taskTypeCode == code)?.id;
|
||||
this.form.taskTypeName = this.selectTaskTypeList?.find((e) => e.taskTypeCode == code)?.taskTypeName;
|
||||
await taskPartitionList(id).then((res) => {
|
||||
this.form.taskTypeName = this.selectTaskTypeList?.find(
|
||||
(e) => e.taskTypeCode == code
|
||||
)?.taskTypeName;
|
||||
taskPartitionList(id).then((res) => {
|
||||
// res.data?.forEach(e => {
|
||||
// if (e.taskNodeType == 'PHONE_OUTBOUND') {
|
||||
// e.taskPartitionName = e.taskPartitionName + '(电话外呼)'
|
||||
@ -975,7 +1007,7 @@ export default {
|
||||
this.taskPartitionList = res.data;
|
||||
this.form.taskSubdivision = "";
|
||||
this.form.taskSubdivisionName = "";
|
||||
// this.form.taskNodeType = "";
|
||||
this.form.taskNodeType = "";
|
||||
this.taskStatusDictList = [];
|
||||
if (taskSubdivision) {
|
||||
this.form.taskSubdivision = taskSubdivision;
|
||||
@ -985,7 +1017,11 @@ export default {
|
||||
},
|
||||
//点击任务细分
|
||||
changetaskSubdivision(code, type) {
|
||||
if (this.form.taskNodeType != "QUESTIONNAIRE_SCALE" && this.form.taskNodeType != "PROPAGANDA_ARTICLE" && this.form.taskNodeType != "PHONE_OUTBOUND") {
|
||||
if (
|
||||
this.form.taskNodeType != "QUESTIONNAIRE_SCALE" &&
|
||||
this.form.taskNodeType != "PROPAGANDA_ARTICLE" &&
|
||||
this.form.taskNodeType != "PHONE_OUTBOUND"
|
||||
) {
|
||||
this.$refs.wangeditor.emit();
|
||||
}
|
||||
setTimeout(() => {
|
||||
@ -998,19 +1034,31 @@ export default {
|
||||
if (!type) {
|
||||
this.form.taskStatus = "";
|
||||
}
|
||||
this.form.taskSubdivisionName = this.taskPartitionList?.find((e) => e.taskPartitionCode == code)?.taskPartitionName;
|
||||
let id = this.taskPartitionList?.find((e) => e.taskPartitionCode == code)?.id;
|
||||
this.form.taskSubdivisionName = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.taskPartitionName;
|
||||
let id = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.id;
|
||||
this.taskPartitionDictId = id;
|
||||
this.form.secondClassifyDescribe = this.taskPartitionList?.find((e) => e.taskPartitionCode == code)?.secondClassifyDescribe;
|
||||
this.form.executionTime = this.taskPartitionList?.find((e) => e.taskPartitionCode == code)?.executionTime;
|
||||
this.form.secondClassifyDescribe = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.secondClassifyDescribe;
|
||||
this.form.executionTime = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.executionTime;
|
||||
taskStatusDictList(id).then((res) => {
|
||||
this.taskStatusDictList = res.data;
|
||||
});
|
||||
this.taskPartitionList.forEach((el) => {
|
||||
if (code == el.taskPartitionCode) {
|
||||
this.form.executionTime = el.executionTime;
|
||||
// this.form.taskNodeType = el.taskNodeType;
|
||||
if (this.form.taskNodeType == "PHONE_OUTBOUND" || this.form.taskNodeType == "PROPAGANDA_ARTICLE" || this.form.taskNodeType == "QUESTIONNAIRE_SCALE") {
|
||||
this.form.taskNodeType = el.taskNodeType;
|
||||
if (
|
||||
this.form.taskNodeType == "PHONE_OUTBOUND" ||
|
||||
this.form.taskNodeType == "PROPAGANDA_ARTICLE" ||
|
||||
this.form.taskNodeType == "QUESTIONNAIRE_SCALE"
|
||||
) {
|
||||
this.form.nodeContent = `<p></p>`;
|
||||
}
|
||||
if (!type) {
|
||||
@ -1022,11 +1070,15 @@ export default {
|
||||
if (localStorage.getItem("wangeditorlist")) {
|
||||
wangeditorlist = JSON.parse(localStorage.getItem("wangeditorlist"));
|
||||
this.form.nodeContent = "<p></p>";
|
||||
this.form.nodeContent = wangeditorlist.find((e) => e.taskSubdivision == this.form.taskSubdivision && e.specialDiseaseNodeId == this.form.specialDiseaseNodeId)?.nodeContent;
|
||||
this.form.nodeContent = wangeditorlist.find(
|
||||
(e) =>
|
||||
e.taskSubdivision == this.form.taskSubdivision &&
|
||||
e.specialDiseaseNodeId == this.form.specialDiseaseNodeId
|
||||
)?.nodeContent;
|
||||
}
|
||||
// this.form.taskNodeType = this.taskPartitionList?.find(
|
||||
// (e) => e.taskPartitionCode == code
|
||||
// )?.taskNodeType;
|
||||
this.form.taskNodeType = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.taskNodeType;
|
||||
});
|
||||
loading.close();
|
||||
}, 500);
|
||||
|
||||
@ -355,7 +355,7 @@ export default {
|
||||
address: row.address,
|
||||
patientSource: row.patientSource,
|
||||
createTime: row.createTime,
|
||||
age: row.birthDate ? getAge(row.birthDate) : row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : "",
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
@ -455,7 +455,7 @@ export default {
|
||||
this.form.phoneRedialTimes = '重拨二次'
|
||||
}
|
||||
else if (this.form.phoneRedialTimes == 'NOT_REPLAY') {
|
||||
this.form.phoneRedialTimes = '不重拨'
|
||||
this.form.phoneRedialTimes = '不重播'
|
||||
} else {
|
||||
this.form.phoneRedialTimes = ''
|
||||
}
|
||||
|
||||
@ -290,13 +290,13 @@
|
||||
</el-dialog>
|
||||
<!-- 设置机构 -->
|
||||
<el-dialog :title="title" :visible.sync="innerVisibleshow" width="1200px">
|
||||
<el-row :gutter="20" style="height: 650px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="10">
|
||||
<div class="table-title">
|
||||
<span v-if="agencyNum">可设置机构:{{ agencyNum }}条</span>
|
||||
<span v-else>可设置机构:0条</span>
|
||||
</div>
|
||||
<div style="margin-top: 3% ;">
|
||||
<div style="margin-top: 3%">
|
||||
<el-form ref="queryForm" :model="formmat" :rules="rules" label-width="80px" :inline="true">
|
||||
<el-form-item label="机构名称" prop="agencyName" label-width="120">
|
||||
<el-input v-model="formmat.agencyName" placeholder="请输入机构名称" clearable />
|
||||
@ -309,7 +309,7 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<!-- 穿梭框左边 -->
|
||||
<el-table ref="multipleTable" :data="tableData1" height="503" tooltip-effect="dark" style="width: 100%;"
|
||||
<el-table ref="multipleTable" :data="tableData1" height="300" tooltip-effect="dark" style="width: 100%"
|
||||
@selection-change="handleSelectionChangenleft" class="el-table-dialog" row-key="id">
|
||||
<el-table-column type="selection" width="55" align="center">
|
||||
</el-table-column>
|
||||
@ -399,7 +399,7 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<!-- 穿梭框左边 -->
|
||||
<el-table ref="multipleTabledep" :data="tableDatadep1" height="300" tooltip-effect="dark" style="width: 100%;height:503px"
|
||||
<el-table ref="multipleTabledep" :data="tableDatadep1" height="300" tooltip-effect="dark" style="width: 100%"
|
||||
@selection-change="handleSelectionChangendep" class="el-table-dialog" row-key="id">
|
||||
<el-table-column type="selection" width="55" align="center">
|
||||
</el-table-column>
|
||||
@ -434,7 +434,7 @@
|
||||
<!-- 穿梭框右边 -->
|
||||
<div style="margin-top: 5%">
|
||||
<el-table ref="multipleTablesdep" :data="tableDatadep2" max-height="300" tooltip-effect="dark"
|
||||
style="width: 100%;height:503px" @selection-change="handleSelectionChangenrightdep" row-key="id"
|
||||
style="width: 100%" @selection-change="handleSelectionChangenrightdep" row-key="id"
|
||||
class="el-table-dialog">
|
||||
<el-table-column type="selection" width="55" align="center"></el-table-column>
|
||||
<!-- <el-table-column type="index" label="序号" align="center">
|
||||
@ -1218,7 +1218,6 @@ export default {
|
||||
}
|
||||
|
||||
.pagination-container {
|
||||
left: 10px;
|
||||
height: 10vh;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -445,7 +445,7 @@ export default {
|
||||
patientName: row.patientName,
|
||||
patientPhone: row.patientPhone,
|
||||
sex: row.sex,
|
||||
age: row.birthDate ? getAge(row.birthDate) :row.age,
|
||||
age: row.birthDate ? getAge(row.birthDate) : '',
|
||||
hospitalAgencyId: row.hospitalAgencyId,
|
||||
hospitalAgencyName: row.hospitalAgencyName
|
||||
},
|
||||
|
||||
@ -97,7 +97,7 @@ module.exports = {
|
||||
.plugin('ScriptExtHtmlWebpackPlugin')
|
||||
.after('html')
|
||||
.use('script-ext-html-webpack-plugin', [{
|
||||
// `runtime` must same as runtimeChunk name. default is `runtime`
|
||||
// `runtime` must same as runtimeChunk name. default is `runtime`
|
||||
inline: /runtime\..*\.js$/
|
||||
}])
|
||||
.end()
|
||||
@ -127,8 +127,8 @@ module.exports = {
|
||||
})
|
||||
config.optimization.runtimeChunk('single'),
|
||||
{
|
||||
from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
|
||||
to: './' //到根目录下
|
||||
from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
|
||||
to: './' //到根目录下
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user