Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-admin-consultation
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.education.frontend
pica-admin-consultation
提交
af7d58c2
提交
af7d58c2
编写于
3月 05, 2024
作者:
xinglee23
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'release' into feature/wxl
上级
c23aef10
d84b056a
变更
9
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
2137 行增加
和
2079 行删除
+2137
-2079
.env
.env
+1
-1
.env.development.local
.env.development.local
+1
-1
.eslintrc.js
.eslintrc.js
+88
-70
diagnosis.js
src/api/diagnosis.js
+3
-2
diagnosis-editor.vue
src/views/IM/diagnosis-admin/diagnosis-editor.vue
+470
-447
diagnosis-list-new.vue
src/views/IM/diagnosis-admin/diagnosis-list-new.vue
+849
-830
newScheduling.vue
src/views/IM/diagnosis-admin/modal/newScheduling.vue
+500
-503
overviewScheduling.vue
src/views/IM/diagnosis-admin/overviewScheduling.vue
+224
-224
vue.config.js
vue.config.js
+1
-1
未找到文件。
.env
浏览文件 @
af7d58c2
NODE_ENV=development
NODE_ENV=development
# baseUrl
# baseUrl
BASE_URL=/pica-admin-consultation/
BASE_URL=/
consultation/
pica-admin-consultation/
# 路由 base
# 路由 base
VUE_APP_BASE_ROUTE_URL=/consultation/pica-admin-consultation/
VUE_APP_BASE_ROUTE_URL=/consultation/pica-admin-consultation/
...
...
.env.development.local
浏览文件 @
af7d58c2
...
@@ -17,4 +17,4 @@ VUE_APP_IS_LOCAL=true
...
@@ -17,4 +17,4 @@ VUE_APP_IS_LOCAL=true
VUE_APP_APPID=wxf4e66242d31c81c2
VUE_APP_APPID=wxf4e66242d31c81c2
#本地token
#本地token
VUE_APP_TOKEN=B
D84987E12C94A659DA95DE2BF177A76
VUE_APP_TOKEN=B
638EE700AD348B8B432E7DF53A48E87
.eslintrc.js
浏览文件 @
af7d58c2
...
@@ -2,7 +2,7 @@ module.exports = {
...
@@ -2,7 +2,7 @@ module.exports = {
root
:
true
,
root
:
true
,
parserOptions
:
{
parserOptions
:
{
parser
:
'babel-eslint'
,
parser
:
'babel-eslint'
,
sourceType
:
'module'
sourceType
:
'module'
,
},
},
env
:
{
env
:
{
browser
:
true
,
browser
:
true
,
...
@@ -12,80 +12,98 @@ module.exports = {
...
@@ -12,80 +12,98 @@ module.exports = {
extends
:
[
'plugin:vue/recommended'
,
'eslint:recommended'
],
extends
:
[
'plugin:vue/recommended'
,
'eslint:recommended'
],
// 全局变量
// 全局变量
globals
:
{
globals
:
{
'gdp'
:
true
,
gdp
:
true
,
},
},
// add your custom rules here
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
//it is base on https://github.com/vuejs/eslint-config-vue
rules
:
{
rules
:
{
'no-console'
:
0
,
'no-console'
:
0
,
'no-debugger'
:
0
,
'no-debugger'
:
0
,
'comma-spacing'
:
[
2
,
{
// 控制逗号前面没有空格,后面必须有空格
'comma-spacing'
:
[
'before'
:
false
,
2
,
'after'
:
true
{
}],
// 控制逗号前面没有空格,后面必须有空格
'arrow-spacing'
:
[
2
,
{
// 要求箭头函数前后有空格
before
:
false
,
'before'
:
true
,
after
:
true
,
'after'
:
true
},
}],
],
'no-multi-spaces'
:
2
,
// 禁止使用多个空格,
'arrow-spacing'
:
[
'no-spaced-func'
:
2
,
// 禁止 function 标识符和括号之间出现空格,this.getList () 报错
2
,
'semi-spacing'
:
[
2
,
{
// 强制分号之前不允许有空格
{
'before'
:
false
,
// 要求箭头函数前后有空格
'after'
:
true
before
:
true
,
}],
after
:
true
,
'space-infix-ops'
:
2
,
// 要求操作符前后必须有空格: 2 + 3 2 === 2 3 > 2
},
],
'no-multi-spaces'
:
2
,
// 禁止使用多个空格,
'no-spaced-func'
:
2
,
// 禁止 function 标识符和括号之间出现空格,this.getList () 报错
'semi-spacing'
:
[
2
,
{
// 强制分号之前不允许有空格
before
:
false
,
after
:
true
,
},
],
'space-infix-ops'
:
2
,
// 要求操作符前后必须有空格: 2 + 3 2 === 2 3 > 2
'spaced-comment'
:
[
2
,
'always'
],
// 强制在注释中 // 或 /* 使用一致的空格
'spaced-comment'
:
[
2
,
'always'
],
// 强制在注释中 // 或 /* 使用一致的空格
'array-bracket-spacing'
:
[
2
,
'never'
],
// 指定数组的元素之间要以空格隔开(, 后面), never参数:[ 之后和 ] 之前不能带空格,always参数:[ 之后和 ] 之前必须带空格
'array-bracket-spacing'
:
[
2
,
'never'
],
// 指定数组的元素之间要以空格隔开(, 后面), never参数:[ 之后和 ] 之前不能带空格,always参数:[ 之后和 ] 之前必须带空格
"space-before-blocks"
:
2
,
// if/function等的大括号之前需要有空格
'space-before-blocks'
:
2
,
// if/function等的大括号之前需要有空格
"vue/script-indent"
:
[
"error"
,
2
,
{
// script标签缩进设置
'vue/script-indent'
:
'off'
,
"baseIndent"
:
1
,
"switchCase"
:
0
,
"ignores"
:
[]
}],
'no-undef-init'
:
2
,
// 禁止将变量初始化为 undefined,保存时会将let a = undefined变成let a
'no-undef-init'
:
2
,
// 禁止将变量初始化为 undefined,保存时会将let a = undefined变成let a
'semi'
:
[
2
,
'always'
],
//强制结尾必须有分号;
semi
:
[
2
,
'always'
],
//强制结尾必须有分号;
'prefer-const'
:
2
,
// 要求使用 const 声明那些声明后不再被修改的变量
'prefer-const'
:
2
,
// 要求使用 const 声明那些声明后不再被修改的变量
'quotes'
:
[
2
,
'single'
],
//js中强制使用单引号
quotes
:
[
2
,
'single'
],
//js中强制使用单引号
'no-multiple-empty-lines'
:
[
2
,
{
// 不允许多个空行,最多一行
'no-multiple-empty-lines'
:
[
'max'
:
1
2
,
}],
{
'vue/order-in-components'
:
[
'error'
,
{
// 不允许多个空行,最多一行
'order'
:
[
max
:
1
,
'el'
,
},
'name'
,
],
'parent'
,
'vue/order-in-components'
:
[
'functional'
,
'error'
,
[
'delimiters'
,
'comments'
],
{
[
'components'
,
'directives'
,
'filters'
],
order
:
[
'extends'
,
'el'
,
'mixins'
,
'name'
,
'inheritAttrs'
,
'parent'
,
'model'
,
'functional'
,
[
'props'
,
'propsData'
],
[
'delimiters'
,
'comments'
],
'data'
,
[
'components'
,
'directives'
,
'filters'
],
'computed'
,
'extends'
,
'watch'
,
'mixins'
,
'LIFECYCLE_HOOKS'
,
'inheritAttrs'
,
'methods'
,
'model'
,
[
'template'
,
'render'
],
[
'props'
,
'propsData'
],
'renderError'
'data'
,
]
'computed'
,
}],
'watch'
,
'vue/attributes-order'
:
[
'error'
,
{
'LIFECYCLE_HOOKS'
,
'order'
:
[
'methods'
,
'DEFINITION'
,
[
'template'
,
'render'
],
'LIST_RENDERING'
,
'renderError'
,
'CONDITIONALS'
,
],
'RENDER_MODIFIERS'
,
},
'GLOBAL'
,
],
'UNIQUE'
,
'vue/attributes-order'
:
[
'TWO_WAY_BINDING'
,
'error'
,
'OTHER_DIRECTIVES'
,
{
'OTHER_ATTR'
,
order
:
[
'EVENTS'
,
'DEFINITION'
,
'CONTENT'
'LIST_RENDERING'
,
]
'CONDITIONALS'
,
}],
'RENDER_MODIFIERS'
,
}
'GLOBAL'
,
}
'UNIQUE'
,
'TWO_WAY_BINDING'
,
'OTHER_DIRECTIVES'
,
'OTHER_ATTR'
,
'EVENTS'
,
'CONTENT'
,
],
},
],
},
};
src/api/diagnosis.js
浏览文件 @
af7d58c2
...
@@ -92,10 +92,11 @@ export const messageSend = async (data) => {
...
@@ -92,10 +92,11 @@ export const messageSend = async (data) => {
// diagnosis-list-new
// diagnosis-list-new
export
const
getCountQuery
=
async
()
=>
{
export
const
getCountQuery
=
async
(
params
)
=>
{
return
request
({
return
request
({
url
:
'/diagnose/admin/diagnose/countQuery'
,
url
:
'/diagnose/admin/diagnose/countQuery'
,
method
:
'get'
,
method
:
'post'
,
data
:
params
});
});
};
};
...
...
src/views/IM/diagnosis-admin/diagnosis-editor.vue
浏览文件 @
af7d58c2
...
@@ -401,6 +401,15 @@
...
@@ -401,6 +401,15 @@
<el-option
v-for=
"item of sexList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
<el-option
v-for=
"item of sexList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
-->
</el-select>
-->
</el-form-item>
</el-form-item>
<el-form-item
label=
"助诊医生地区"
>
<el-input
:value=
"`$
{formData.userProvince || ''}${formData.userCity || ''}${
formData.userCounty || ''
}${formData.userTown || ''}`"
class="set-width"
disabled
/>
</el-form-item>
<el-form-item
label=
"助诊医生所在机构"
>
<el-form-item
label=
"助诊医生所在机构"
>
<el-input
<el-input
v-model=
"formData.userHospital"
v-model=
"formData.userHospital"
...
@@ -484,6 +493,15 @@
...
@@ -484,6 +493,15 @@
<el-option
v-for=
"item of sexList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
<el-option
v-for=
"item of sexList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
-->
</el-select>
-->
</el-form-item>
</el-form-item>
<el-form-item
label=
"接诊医生地区"
>
<el-input
:value=
"`$
{formData.doctorProvince || ''}${
formData.doctorCity || ''
}${formData.doctorCounty || ''}${formData.doctorTown || ''}`"
class="set-width"
disabled
/>
</el-form-item>
<el-form-item
label=
"接诊医生所在机构"
>
<el-form-item
label=
"接诊医生所在机构"
>
<el-input
<el-input
v-model=
"formData.doctorHospital"
v-model=
"formData.doctorHospital"
...
@@ -963,254 +981,254 @@
...
@@ -963,254 +981,254 @@
<
/div
>
<
/div
>
<
/template
>
<
/template
>
<
script
>
<
script
>
import
uploadImg
from
'@/components/editor/upload-img'
;
import
{
import
uploadMusic
from
'@/components/editor/upload-music'
;
diagnoseUpdate
,
import
{
getAdminDiagnose
,
TYPE_LIST
,
getDiagnoseLog
,
PAY_LIST
,
getDoctorList
,
SOURCE_LIST
,
}
from
'@/api/diagnosis'
;
STATUS_LIST
,
import
uploadImg
from
'@/components/editor/upload-img'
;
CAR_LIST
,
import
uploadMusic
from
'@/components/editor/upload-music'
;
SEX_LIST
,
import
{
RELATION
_LIST
,
CAR
_LIST
,
D_S_LIST
,
D_S_LIST
,
FOLLW_LIST
,
FOLLW_LIST
,
}
from
'@/utils/constants'
;
PAY_LIST
,
import
{
getBirth
}
from
'@/utils/index'
;
RELATION_LIST
,
import
{
SEX_LIST
,
getAdminDiagnose
,
SOURCE_LIST
,
getDoctorList
,
STATUS_LIST
,
getDiagnoseLog
,
TYPE_LIST
,
diagnoseUpdate
,
}
from
'@/utils/constants'
;
}
from
'@/api/diagnosis
'
;
import
{
getBirth
}
from
'@/utils/index
'
;
const
PAY_TYPE
=
{
const
PAY_TYPE
=
{
1
:
'自动付款'
,
1
:
'自动付款'
,
2
:
'手动付款'
,
2
:
'手动付款'
,
}
;
}
;
export
default
{
export
default
{
components
:
{
components
:
{
uploadImg
,
uploadImg
,
uploadMusic
,
uploadMusic
,
}
,
}
,
data
()
{
data
()
{
return
{
return
{
asd
:
123
,
asd
:
123
,
diagnoseLogId
:
''
,
diagnoseLogId
:
''
,
birthDisable
:
false
,
birthDisable
:
false
,
noable
:
false
,
noable
:
false
,
editorType
:
1
,
// //1为编辑状态,2为查看
editorType
:
1
,
// //1为编辑状态,2为查看
loading
:
true
,
loading
:
true
,
btnDisable
:
false
,
btnDisable
:
false
,
oldDiagnoseAdvice
:
''
,
// 旧的诊断建议
oldDiagnoseAdvice
:
''
,
// 旧的诊断建议
formData
:
{
formData
:
{
// 预约单信息
// 预约单信息
diagnoseType
:
''
,
diagnoseType
:
''
,
appointSource
:
''
,
appointSource
:
''
,
createdTime
:
''
,
createdTime
:
''
,
operateTime
:
''
,
operateTime
:
''
,
doneTime
:
''
,
doneTime
:
''
,
payType
:
''
,
payType
:
''
,
crrsName
:
''
,
crrsName
:
''
,
// 预约信息
// 预约信息
status
:
1
,
status
:
1
,
operateUserName
:
''
,
operateUserName
:
''
,
appointBeginTime
:
''
,
appointBeginTime
:
''
,
appointEndTime
:
''
,
appointEndTime
:
''
,
triageOperatorName
:
''
,
// 分诊人员姓名
triageOperatorName
:
''
,
// 分诊人员姓名
receptionOperatorName
:
''
,
// 接诊人员姓名
receptionOperatorName
:
''
,
// 接诊人员姓名
assistantBeginTime
:
''
,
// 助诊意向开始时间
assistantBeginTime
:
''
,
// 助诊意向开始时间
assistantEndTime
:
''
,
// 助诊意向结束时间
assistantEndTime
:
''
,
// 助诊意向结束时间
assistantRemark
:
''
,
// 助诊备注
assistantRemark
:
''
,
// 助诊备注
triageDepartmentId
:
''
,
// 分诊科室id,
triageDepartmentId
:
''
,
// 分诊科室id,
triageDepartment
:
''
,
// 分诊科室名
triageDepartment
:
''
,
// 分诊科室名
triageRemark
:
''
,
// 分诊备注
triageRemark
:
''
,
// 分诊备注
receptionBeginTime
:
''
,
// 接诊意向开始时间
receptionBeginTime
:
''
,
// 接诊意向开始时间
receptionEndTime
:
''
,
// 接诊意向结束时间
receptionEndTime
:
''
,
// 接诊意向结束时间
// 患者信息
// 患者信息
patientName
:
''
,
patientName
:
''
,
idCardType
:
1
,
idCardType
:
1
,
idCard
:
''
,
idCard
:
''
,
birthdayStr
:
''
,
birthdayStr
:
''
,
birthday
:
''
,
birthday
:
''
,
sex
:
1
,
sex
:
1
,
patientMobilePhone
:
''
,
patientMobilePhone
:
''
,
// 助诊信息
// 助诊信息
userName
:
''
,
userName
:
''
,
userTitle
:
''
,
userTitle
:
''
,
userHospital
:
''
,
userHospital
:
''
,
userDepartment
:
''
,
userDepartment
:
''
,
userMobile
:
''
,
userMobile
:
''
,
patientRelation
:
''
,
patientRelation
:
''
,
// crrsName: '', // 招募人
// crrsName: '', // 招募人
// 医生信息
// 医生信息
doctorName
:
''
,
doctorName
:
''
,
doctorTitle
:
''
,
doctorTitle
:
''
,
doctorHospital
:
''
,
doctorHospital
:
''
,
doctorDepartment
:
''
,
doctorDepartment
:
''
,
doctorMobile
:
''
,
doctorMobile
:
''
,
doctorSource
:
''
,
doctorSource
:
''
,
serviceFee
:
''
,
serviceFee
:
''
,
outsideDoctor
:
''
,
// 站外医生姓名
outsideDoctor
:
''
,
// 站外医生姓名
// 问诊信息
// 问诊信息
diagnoseStage
:
''
,
diagnoseStage
:
''
,
determineFlag
:
''
,
determineFlag
:
''
,
diagnoseDisease
:
''
,
diagnoseDisease
:
''
,
illnessDetail
:
''
,
illnessDetail
:
''
,
illnessImageUrls
:
[],
illnessImageUrls
:
[],
diagnoseAdvice
:
''
,
diagnoseAdvice
:
''
,
illnessAudioUrls
:
[],
illnessAudioUrls
:
[],
followFlag
:
1
,
followFlag
:
1
,
drugFollow
:
''
,
drugFollow
:
''
,
drugFollowStatus
:
''
,
drugFollowStatus
:
''
,
checkFollow
:
''
,
checkFollow
:
''
,
checkFollowStatus
:
''
,
checkFollowStatus
:
''
,
otherFollowStatus
:
''
,
otherFollowStatus
:
''
,
otherFollow
:
''
,
otherFollow
:
''
,
remark
:
''
,
remark
:
''
,
maritalStatus
:
2
,
maritalStatus
:
2
,
createType
:
1
,
// //创建方式1.系统创建 2.手动创建
createType
:
1
,
// //创建方式1.系统创建 2.手动创建
// 备注信息
// 备注信息
patInFlag
:
''
,
// 患者是否在场 1是 2否
patInFlag
:
''
,
// 患者是否在场 1是 2否
valueFlag
:
''
,
// 是否有价值 1是 2否
valueFlag
:
''
,
// 是否有价值 1是 2否
worthlessReason
:
''
,
// 无价值原因
worthlessReason
:
''
,
// 无价值原因
otherRemark
:
''
,
// 其他备注
otherRemark
:
''
,
// 其他备注
// 结算信息
// 结算信息
receptionServiceFee
:
0
,
// 接诊医生服务费单位分
receptionServiceFee
:
0
,
// 接诊医生服务费单位分
receptionServiceFeeStr
:
''
,
// 接诊医生服务费展示字段
receptionServiceFeeStr
:
''
,
// 接诊医生服务费展示字段
receptionPayType
:
''
,
// 接诊医生付款方式1自动打款2手动打款
receptionPayType
:
''
,
// 接诊医生付款方式1自动打款2手动打款
receptionSettleTime
:
''
,
// 接诊医生结算时间
receptionSettleTime
:
''
,
// 接诊医生结算时间
assistantServiceFee
:
0
,
// 助诊医生服务费单位分
assistantServiceFee
:
0
,
// 助诊医生服务费单位分
assistantServiceFeeStr
:
''
,
// 助诊医生服务费展示字段
assistantServiceFeeStr
:
''
,
// 助诊医生服务费展示字段
assistantPayType
:
''
,
// 助诊医生付款方式1自动打款2手动打款
assistantPayType
:
''
,
// 助诊医生付款方式1自动打款2手动打款
assistantSettleTime
:
''
,
// 助诊医生结算时间
assistantSettleTime
:
''
,
// 助诊医生结算时间
// 录像信息
// 录像信息
vodList
:
{
vodList
:
{
name
:
''
,
name
:
''
,
url
:
''
,
url
:
''
,
}
,
}
,
tyleList
:
TYPE_LIST
,
payList
:
PAY_LIST
,
sourceList
:
SOURCE_LIST
,
statusList
:
STATUS_LIST
,
carList
:
CAR_LIST
,
sexList
:
SEX_LIST
,
relationList
:
RELATION_LIST
,
doctorSourceList
:
D_S_LIST
,
followList
:
FOLLW_LIST
,
doctorList
:
[],
rules
:
{
appointBeginTime
:
[
{
required
:
true
,
message
:
'请输入预约时间'
,
trigger
:
'change'
}
,
],
patientName
:
[
{
required
:
true
,
message
:
'请输入患姓名'
,
trigger
:
[
'blur'
,
'change'
],
}
,
{
min
:
2
,
max
:
20
,
message
:
'长度在 2 到 20 个字符'
,
trigger
:
[
'blur'
,
'change'
],
}
,
],
idCardType
:
[
{
required
:
true
,
message
:
'请选择证件类型'
,
trigger
:
'change'
}
,
],
idCard
:
[
{
min
:
18
,
message
:
'长度18个字符'
,
trigger
:
'blur'
}
,
{
pattern
:
/
[
0-9A-Za-z
]
{6,24
}
$/
,
message
:
'只能是数字或字母'
}
,
],
birth
:
[{
required
:
true
,
message
:
'请选择生日'
,
trigger
:
'change'
}
],
sex
:
[{
required
:
true
,
message
:
'请选择性别'
,
trigger
:
'change'
}
],
maritalStatus
:
[
{
required
:
true
,
message
:
'请选择婚否'
,
trigger
:
'change'
}
,
],
patientMobilePhone
:
[
{
required
:
true
,
message
:
'请输入患者电话'
,
trigger
:
[
'blur'
,
'change'
],
}
,
],
doctorName
:
[
{
required
:
true
,
message
:
'请选择接诊医生'
,
trigger
:
'change'
}
,
],
serviceFee
:
[
{
required
:
false
,
message
:
'请输入医生服务费'
,
trigger
:
'change'
}
,
{
pattern
:
/
(
^
[
1-9
]([
0-9
]
+
)?(\.[
0-9
]
{1,2
}
)?
$
)
|
(
^
(
0
)
{1
}
$
)
|
(
^
[
0-9
]\.[
0-9
]([
0-9
])?
$
)
/
,
message
:
'请输入正确额格式,可保留两位小数'
,
}
,
],
diagnoseStage
:
[
{
required
:
true
,
message
:
'请选择初/复诊'
,
trigger
:
'change'
}
,
],
determineFlag
:
[
{
required
:
true
,
message
:
'是否确诊'
,
trigger
:
'change'
}
,
],
illnessDetail
:
[
{
required
:
true
,
message
:
'请输入病情描述'
,
trigger
:
'change'
}
,
],
diagnoseAdvice
:
[
{
required
:
true
,
message
:
'请输入诊断建议'
,
trigger
:
'change'
}
,
],
worthlessReason
:
[
{
required
:
true
,
min
:
2
,
max
:
1000
,
message
:
'必填项,支持2-1000个字符'
,
trigger
:
'change'
,
}
,
],
otherRemark
:
[
{
required
:
true
,
min
:
2
,
max
:
1000
,
message
:
'必填项,支持2-1000个字符'
,
trigger
:
'change'
,
}
,
],
patInFlag
:
[
{
required
:
true
,
message
:
'必填项'
,
}
,
],
valueFlag
:
[
{
required
:
true
,
message
:
'必填项'
,
}
,
],
}
,
}
,
endDateOpt
:
{
}
,
disabledData
:
(
time
)
=>
{
tyleList
:
TYPE_LIST
,
if
(
payList
:
PAY_LIST
,
this
.
formData
.
appointEndTime
!=
''
&&
sourceList
:
SOURCE_LIST
,
this
.
formData
.
appointEndTime
!=
null
statusList
:
STATUS_LIST
,
)
{
carList
:
CAR_LIST
,
return
(
sexList
:
SEX_LIST
,
time
.
getTime
()
>
new
Date
(
this
.
formData
.
appointEndTime
).
getTime
()
relationList
:
RELATION_LIST
,
);
doctorSourceList
:
D_S_LIST
,
}
followList
:
FOLLW_LIST
,
doctorList
:
[],
rules
:
{
appointBeginTime
:
[
{
required
:
true
,
message
:
'请输入预约时间'
,
trigger
:
'change'
}
,
],
patientName
:
[
{
required
:
true
,
message
:
'请输入患姓名'
,
trigger
:
[
'blur'
,
'change'
],
}
,
}
,
}
,
{
endDateOpt1
:
{
min
:
2
,
disabledDate
:
(
time
)
=>
{
max
:
20
,
message
:
'长度在 2 到 20 个字符'
,
trigger
:
[
'blur'
,
'change'
],
}
,
],
idCardType
:
[
{
required
:
true
,
message
:
'请选择证件类型'
,
trigger
:
'change'
}
,
],
idCard
:
[
{
min
:
18
,
message
:
'长度18个字符'
,
trigger
:
'blur'
}
,
{
pattern
:
/
[
0-9A-Za-z
]
{6,24
}
$/
,
message
:
'只能是数字或字母'
}
,
],
birth
:
[{
required
:
true
,
message
:
'请选择生日'
,
trigger
:
'change'
}
],
sex
:
[{
required
:
true
,
message
:
'请选择性别'
,
trigger
:
'change'
}
],
maritalStatus
:
[
{
required
:
true
,
message
:
'请选择婚否'
,
trigger
:
'change'
}
,
],
patientMobilePhone
:
[
{
required
:
true
,
message
:
'请输入患者电话'
,
trigger
:
[
'blur'
,
'change'
],
}
,
],
doctorName
:
[
{
required
:
true
,
message
:
'请选择接诊医生'
,
trigger
:
'change'
}
,
],
serviceFee
:
[
{
required
:
false
,
message
:
'请输入医生服务费'
,
trigger
:
'change'
}
,
{
pattern
:
/
(
^
[
1-9
]([
0-9
]
+
)?(\.[
0-9
]
{1,2
}
)?
$
)
|
(
^
(
0
)
{1
}
$
)
|
(
^
[
0-9
]\.[
0-9
]([
0-9
])?
$
)
/
,
message
:
'请输入正确额格式,可保留两位小数'
,
}
,
],
diagnoseStage
:
[
{
required
:
true
,
message
:
'请选择初/复诊'
,
trigger
:
'change'
}
,
],
determineFlag
:
[
{
required
:
true
,
message
:
'是否确诊'
,
trigger
:
'change'
}
,
],
illnessDetail
:
[
{
required
:
true
,
message
:
'请输入病情描述'
,
trigger
:
'change'
}
,
],
diagnoseAdvice
:
[
{
required
:
true
,
message
:
'请输入诊断建议'
,
trigger
:
'change'
}
,
],
worthlessReason
:
[
{
required
:
true
,
min
:
2
,
max
:
1000
,
message
:
'必填项,支持2-1000个字符'
,
trigger
:
'change'
,
}
,
],
otherRemark
:
[
{
required
:
true
,
min
:
2
,
max
:
1000
,
message
:
'必填项,支持2-1000个字符'
,
trigger
:
'change'
,
}
,
],
patInFlag
:
[
{
required
:
true
,
message
:
'必填项'
,
}
,
],
valueFlag
:
[
{
required
:
true
,
message
:
'必填项'
,
}
,
],
}
,
endDateOpt
:
{
disabledData
:
(
time
)
=>
{
if
(
this
.
formData
.
appointEndTime
!=
''
&&
this
.
formData
.
appointEndTime
!=
null
)
{
return
(
return
(
time
.
getTime
()
<
new
Date
(
this
.
formData
.
appointBegin
Time
).
getTime
()
time
.
getTime
()
>
new
Date
(
this
.
formData
.
appointEnd
Time
).
getTime
()
);
);
}
,
}
}
,
}
,
// 操作日志数据
}
,
/* 元素结构
endDateOpt1
:
{
disabledDate
:
(
time
)
=>
{
return
(
time
.
getTime
()
<
new
Date
(
this
.
formData
.
appointBeginTime
).
getTime
()
);
}
,
}
,
// 操作日志数据
/* 元素结构
{
{
operateTime: '2016-05-02',
operateTime: '2016-05-02',
operateUserName: '赵丽颖',
operateUserName: '赵丽颖',
...
@@ -1218,233 +1236,233 @@
...
@@ -1218,233 +1236,233 @@
from: '助诊医生时间不匹配'
from: '助诊医生时间不匹配'
}
}
*/
*/
logData
:
[],
logData
:
[],
// 分页功能与产品沟通不做
// 分页功能与产品沟通不做
// logCurrentPage: 1,
// logCurrentPage: 1,
// logTotalCount: 0
// logTotalCount: 0
}
;
}
;
}
,
computed
:
{
getReceptionPayType
()
{
return
PAY_TYPE
[
this
.
formData
.
receptionPayType
];
}
,
}
,
computed
:
{
getAssistantPayType
()
{
getReceptionPayType
()
{
return
PAY_TYPE
[
this
.
formData
.
assistantPayType
];
return
PAY_TYPE
[
this
.
formData
.
receptionPayType
];
}
,
getAssistantPayType
()
{
return
PAY_TYPE
[
this
.
formData
.
assistantPayType
];
}
,
illnessImageUrls
()
{
const
m
=
this
.
formData
.
illnessImageUrls
.
filter
((
i
)
=>
{
console
.
log
(
'---'
,
i
);
}
);
return
m
;
}
,
}
,
}
,
created
()
{
illnessImageUrls
()
{
this
.
editorType
=
this
.
$route
.
query
.
editorType
;
const
m
=
this
.
formData
.
illnessImageUrls
.
filter
((
i
)
=>
{
this
.
diagnoseLogId
=
this
.
$route
.
query
.
id
;
console
.
log
(
'---'
,
i
);
this
.
search
();
}
);
return
m
;
}
,
}
,
mounted
()
{
}
,
}
,
methods
:
{
created
()
{
search
()
{
this
.
editorType
=
this
.
$route
.
query
.
editorType
;
this
.
loading
=
true
;
this
.
diagnoseLogId
=
this
.
$route
.
query
.
id
;
getAdminDiagnose
({
this
.
search
();
id
:
this
.
diagnoseLogId
,
}
,
}
)
mounted
()
{
}
,
.
then
((
res
)
=>
{
methods
:
{
this
.
loading
=
false
;
search
()
{
if
(
res
.
code
==
'000000'
)
{
this
.
loading
=
true
;
this
.
formData
=
res
.
data
;
getAdminDiagnose
({
this
.
formData
.
price
=
this
.
priceFilter
(
this
.
formData
.
price
);
id
:
this
.
diagnoseLogId
,
this
.
formData
.
serviceFee
=
this
.
priceFilter
(
}
)
this
.
formData
.
serviceFee
.
then
((
res
)
=>
{
);
this
.
loading
=
false
;
if
(
!
this
.
formData
.
illnessImageUrls
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
formData
.
illnessImageUrls
=
[];
this
.
formData
=
res
.
data
;
}
else
{
this
.
formData
.
price
=
this
.
priceFilter
(
this
.
formData
.
price
);
this
.
formData
.
illnessImageUrls
=
this
.
setObjectArr
(
this
.
formData
.
serviceFee
=
this
.
priceFilter
(
this
.
formData
.
illnessImageUrls
this
.
formData
.
serviceFee
);
);
}
if
(
!
this
.
formData
.
illnessImageUrls
)
{
console
.
log
(
this
.
formData
.
illnessImageUrls
=
[];
'this.formData.illnessImageUrls'
,
}
else
{
this
.
formData
.
illnessImageUrls
=
this
.
setObjectArr
(
this
.
formData
.
illnessImageUrls
this
.
formData
.
illnessImageUrls
);
);
if
(
!
this
.
formData
.
illnessAudioUrls
)
{
}
this
.
formData
.
illnessAudioUrls
=
[];
console
.
log
(
}
else
{
'this.formData.illnessImageUrls'
,
this
.
formData
.
illnessAudioUrls
=
this
.
setObjectArr
(
this
.
formData
.
illnessImageUrls
this
.
formData
.
illnessAudioUrls
);
);
if
(
!
this
.
formData
.
illnessAudioUrls
)
{
}
this
.
formData
.
illnessAudioUrls
=
[];
if
(
this
.
formData
.
diagnoseAdvice
)
{
this
.
oldDiagnoseAdvice
=
this
.
formData
.
diagnoseAdvice
;
this
.
formData
.
diagnoseAdvice
=
''
;
}
if
(
!
this
.
formData
.
sex
)
{
this
.
formData
.
sex
=
1
;
}
if
(
!
this
.
formData
.
maritalStatus
)
{
this
.
formData
.
maritalStatus
=
1
;
}
}
else
{
}
else
{
this
.
$message
.
info
(
'请稍后重试'
);
this
.
formData
.
illnessAudioUrls
=
this
.
setObjectArr
(
this
.
formData
.
illnessAudioUrls
);
}
}
this
.
getDoctorList
();
if
(
this
.
formData
.
diagnoseAdvice
)
{
this
.
queryOperationLogs
();
this
.
oldDiagnoseAdvice
=
this
.
formData
.
diagnoseAdvice
;
}
)
this
.
formData
.
diagnoseAdvice
=
''
;
.
catch
(()
=>
{
}
if
(
!
this
.
formData
.
sex
)
{
this
.
formData
.
sex
=
1
;
}
if
(
!
this
.
formData
.
maritalStatus
)
{
this
.
formData
.
maritalStatus
=
1
;
}
}
else
{
this
.
$message
.
info
(
'请稍后重试'
);
this
.
$message
.
info
(
'请稍后重试'
);
}
);
}
}
,
this
.
getDoctorList
();
getDoctorList
()
{
this
.
queryOperationLogs
();
this
.
loading
=
true
;
getDoctorList
({
diagnoseType
:
this
.
formData
.
diagnoseType
,
}
)
}
)
.
then
((
res
)
=>
{
.
catch
(()
=>
{
this
.
loading
=
false
;
this
.
$message
.
info
(
'请稍后重试'
);
if
(
res
.
code
==
'000000'
)
{
}
);
this
.
doctorList
=
res
.
data
;
}
,
}
else
{
getDoctorList
()
{
this
.
$message
.
info
(
'请稍后重试'
);
this
.
loading
=
true
;
}
getDoctorList
({
}
)
diagnoseType
:
this
.
formData
.
diagnoseType
,
.
catch
(()
=>
{
}
)
this
.
loading
=
false
;
.
then
((
res
)
=>
{
this
.
loading
=
false
;
if
(
res
.
code
==
'000000'
)
{
this
.
doctorList
=
res
.
data
;
}
else
{
this
.
$message
.
info
(
'请稍后重试'
);
this
.
$message
.
info
(
'请稍后重试'
);
}
);
}
}
,
queryOperationLogs
()
{
getDiagnoseLog
({
id
:
this
.
diagnoseLogId
,
}
)
}
)
.
catch
(()
=>
{
this
.
loading
=
false
;
this
.
$message
.
info
(
'请稍后重试'
);
}
);
}
,
queryOperationLogs
()
{
getDiagnoseLog
({
id
:
this
.
diagnoseLogId
,
}
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
logData
=
res
.
data
;
}
// 非交互性功能接口不提示
}
)
.
catch
(()
=>
{
this
.
loading
=
false
;
}
);
}
,
// 预约开始时间选择时
continueBeginChange
(
val
)
{
if
(
this
.
formData
.
appointEndTime
)
{
if
(
new
Date
(
val
).
getTime
()
>
new
Date
(
this
.
formData
.
appointEndTime
).
getTime
()
)
{
this
.
$message
.
info
(
'开始时间要小于结束时间'
);
this
.
formData
.
appointBeginTime
=
''
;
return
;
}
}
}
,
// 预约结束时间选择时
continueEndChange
(
val
)
{
if
(
this
.
formData
.
appointBeginTime
)
{
if
(
new
Date
(
val
).
getTime
()
<=
new
Date
(
this
.
formData
.
appointBeginTime
).
getTime
()
)
{
this
.
$message
.
info
(
'结束时间要大于开始时间'
);
this
.
formData
.
appointEndTime
=
''
;
return
;
}
}
}
,
blurFn
()
{
if
(
this
.
formData
.
idCardType
==
1
&&
this
.
formData
.
idCard
&&
this
.
formData
.
idCard
.
length
==
18
)
{
this
.
formData
.
birthdayStr
=
getBirth
(
this
.
formData
.
idCard
);
this
.
birthDisable
=
true
;
}
else
{
this
.
formData
.
birthdayStr
=
''
;
this
.
birthDisable
=
false
;
}
}
,
cancle
()
{
this
.
$router
.
back
();
}
,
priceFilter
(
value
)
{
if
(
!
value
)
return
0
;
if
(
value
)
{
return
value
/
100
;
}
}
,
setPrice
(
value
)
{
if
(
!
value
)
return
0
;
if
(
value
)
{
return
value
*
100
;
}
}
,
doctorChanged
(
value
)
{
const
selected
=
this
.
doctorList
.
find
((
item
)
=>
item
.
doctorId
===
value
);
if
(
selected
)
{
this
.
formData
.
doctorId
=
value
;
this
.
formData
.
doctorName
=
selected
.
doctorName
;
this
.
formData
.
doctorTitle
=
selected
.
doctorTitle
;
this
.
formData
.
doctorHospital
=
selected
.
doctorHospital
;
this
.
formData
.
doctorDepartment
=
selected
.
doctorDepartment
;
this
.
formData
.
doctorMobile
=
selected
.
doctorMobile
;
this
.
formData
.
serviceFee
=
this
.
priceFilter
(
selected
.
serviceFee
);
}
}
,
save
()
{
this
.
$refs
.
form
.
validate
(()
=>
{
this
.
formData
.
birthday
=
new
Date
(
this
.
formData
.
birthdayStr
);
// this.formData.birthday = this.formData.birthdayStr;
const
params
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
formData
));
params
.
illnessImageUrls
=
this
.
$refs
.
imgComponent
?
[...
this
.
$refs
.
imgComponent
.
setNewArr
()]
:
[];
params
.
illnessAudioUrls
=
this
.
$refs
.
musicComponent
?
[...
this
.
$refs
.
musicComponent
.
setNewArr
()]
:
[];
params
.
price
=
this
.
setPrice
(
params
.
price
);
params
.
serviceFee
=
this
.
setPrice
(
params
.
serviceFee
);
if
(
!
params
.
diagnoseAdvice
)
{
params
.
diagnoseAdvice
=
this
.
oldDiagnoseAdvice
;
}
this
.
loading
=
true
;
this
.
btnDisable
=
true
;
diagnoseUpdate
(
params
)
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
this
.
loading
=
false
;
this
.
btnDisable
=
false
;
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
logData
=
res
.
data
;
this
.
$message
.
success
(
'保存成功'
);
this
.
$router
.
back
();
}
else
{
this
.
$message
({
message
:
res
.
message
,
type
:
'error'
,
}
);
}
}
// 非交互性功能接口不提示
}
)
}
)
.
catch
(()
=>
{
.
catch
(()
=>
{
this
.
btnDisable
=
false
;
this
.
loading
=
false
;
this
.
loading
=
false
;
}
);
}
);
}
,
}
);
// 预约开始时间选择时
continueBeginChange
(
val
)
{
if
(
this
.
formData
.
appointEndTime
)
{
if
(
new
Date
(
val
).
getTime
()
>
new
Date
(
this
.
formData
.
appointEndTime
).
getTime
()
)
{
this
.
$message
.
info
(
'开始时间要小于结束时间'
);
this
.
formData
.
appointBeginTime
=
''
;
return
;
}
}
}
,
// 预约结束时间选择时
continueEndChange
(
val
)
{
if
(
this
.
formData
.
appointBeginTime
)
{
if
(
new
Date
(
val
).
getTime
()
<=
new
Date
(
this
.
formData
.
appointBeginTime
).
getTime
()
)
{
this
.
$message
.
info
(
'结束时间要大于开始时间'
);
this
.
formData
.
appointEndTime
=
''
;
return
;
}
}
}
,
blurFn
()
{
if
(
this
.
formData
.
idCardType
==
1
&&
this
.
formData
.
idCard
&&
this
.
formData
.
idCard
.
length
==
18
)
{
this
.
formData
.
birthdayStr
=
getBirth
(
this
.
formData
.
idCard
);
this
.
birthDisable
=
true
;
}
else
{
this
.
formData
.
birthdayStr
=
''
;
this
.
birthDisable
=
false
;
}
}
,
cancle
()
{
this
.
$router
.
back
();
}
,
priceFilter
(
value
)
{
if
(
!
value
)
return
0
;
if
(
value
)
{
return
value
/
100
;
}
}
,
setPrice
(
value
)
{
if
(
!
value
)
return
0
;
if
(
value
)
{
return
value
*
100
;
}
}
,
doctorChanged
(
value
)
{
const
selected
=
this
.
doctorList
.
find
((
item
)
=>
item
.
doctorId
===
value
);
if
(
selected
)
{
this
.
formData
.
doctorId
=
value
;
this
.
formData
.
doctorName
=
selected
.
doctorName
;
this
.
formData
.
doctorTitle
=
selected
.
doctorTitle
;
this
.
formData
.
doctorHospital
=
selected
.
doctorHospital
;
this
.
formData
.
doctorDepartment
=
selected
.
doctorDepartment
;
this
.
formData
.
doctorMobile
=
selected
.
doctorMobile
;
this
.
formData
.
serviceFee
=
this
.
priceFilter
(
selected
.
serviceFee
);
}
}
,
save
()
{
this
.
$refs
.
form
.
validate
(()
=>
{
this
.
formData
.
birthday
=
new
Date
(
this
.
formData
.
birthdayStr
);
// this.formData.birthday = this.formData.birthdayStr;
const
params
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
formData
));
params
.
illnessImageUrls
=
this
.
$refs
.
imgComponent
?
[...
this
.
$refs
.
imgComponent
.
setNewArr
()]
:
[];
params
.
illnessAudioUrls
=
this
.
$refs
.
musicComponent
?
[...
this
.
$refs
.
musicComponent
.
setNewArr
()]
:
[];
params
.
price
=
this
.
setPrice
(
params
.
price
);
params
.
serviceFee
=
this
.
setPrice
(
params
.
serviceFee
);
if
(
!
params
.
diagnoseAdvice
)
{
params
.
diagnoseAdvice
=
this
.
oldDiagnoseAdvice
;
}
this
.
loading
=
true
;
this
.
btnDisable
=
true
;
diagnoseUpdate
(
params
)
.
then
((
res
)
=>
{
this
.
loading
=
false
;
this
.
btnDisable
=
false
;
if
(
res
.
code
==
'000000'
)
{
this
.
$message
.
success
(
'保存成功'
);
this
.
$router
.
back
();
}
else
{
this
.
$message
({
message
:
res
.
message
,
type
:
'error'
,
}
);
}
}
)
.
catch
(()
=>
{
this
.
btnDisable
=
false
;
this
.
loading
=
false
;
}
);
}
);
}
,
// 格式话音频/视频数组
setObjectArr
(
array
)
{
const
newArr
=
[];
array
.
forEach
((
element
)
=>
{
newArr
.
push
({
from
:
'all'
,
url
:
element
}
);
}
);
return
newArr
;
}
,
openPdf
(
item
)
{
window
.
open
(
item
.
url
);
}
,
}
,
}
,
}
;
// 格式话音频/视频数组
setObjectArr
(
array
)
{
const
newArr
=
[];
array
.
forEach
((
element
)
=>
{
newArr
.
push
({
from
:
'all'
,
url
:
element
}
);
}
);
return
newArr
;
}
,
openPdf
(
item
)
{
window
.
open
(
item
.
url
);
}
,
}
,
}
;
<
/script
>
<
/script
>
<
style
lang
=
"scss"
scoped
>
<
style
lang
=
"scss"
scoped
>
.
diagnosis
-
list
-
content
{
.
diagnosis
-
list
-
content
{
...
@@ -1519,4 +1537,9 @@
...
@@ -1519,4 +1537,9 @@
}
}
}
}
}
}
/deep/
.
el
-
input
.
is
-
disabled
.
el
-
input__inner
,
/deep/
.
el
-
textarea
.
is
-
disabled
.
el
-
textarea__inner
{
color
:
#
666
;
}
<
/style
>
<
/style
>
src/views/IM/diagnosis-admin/diagnosis-list-new.vue
浏览文件 @
af7d58c2
...
@@ -390,7 +390,7 @@
...
@@ -390,7 +390,7 @@
<el-button
<el-button
type=
"primary"
type=
"primary"
class=
"submit-btn"
class=
"submit-btn"
@
click=
"getsearch"
@
click=
"getsearch
()
"
>
>
搜索
搜索
</el-button>
</el-button>
...
@@ -602,464 +602,456 @@
...
@@ -602,464 +602,456 @@
</div>
</div>
</template>
</template>
<
script
>
<
script
>
let
vm
=
null
;
let
vm
=
null
;
import
{
updateDiagnosis
,
callAssistantDoctor
}
from
'../../../utils/diagnosis'
;
import
{
import
{
outbounNote
}
from
'../../../api/diagnosis'
;
departmentAll
,
import
{
base64decode
}
from
'../../../utils/utils.js'
;
diagnoseExport
,
import
{
DIAGNOS_LIST_NEW
}
from
'@/utils/GeneralData/diagnosis-list-new'
;
diagnoseList
,
import
{
getCountQuery
,
TYPE_LIST
,
getDepartments
,
IS_FLLOW
,
reMatchDoctor
,
SOURCE_LIST
,
}
from
'@/api/diagnosis'
;
ALL_TAB_LIST
,
import
{
DIAGNOS_LIST_NEW
}
from
'@/utils/GeneralData/diagnosis-list-new'
;
TRIAGE_TAB_LIST
,
import
{
RECEPTION
_TAB_LIST
,
ALL
_TAB_LIST
,
RUN_TAB_LIST
,
IS_FLLOW
,
MATCH_TAB
_LIST
,
MATCHING
_LIST
,
ORDER_PRICE
,
MATCH_TAB_LIST
,
MATCHING_LIST
,
ORDER_PRICE
,
}
from
'@/utils/constants'
;
RECEPTION_TAB_LIST
,
import
{
RUN_TAB_LIST
,
getCountQuery
,
SOURCE_LIST
,
getDepartments
,
TRIAGE_TAB_LIST
,
diagnoseExport
,
TYPE_LIST
,
diagnoseList
,
}
from
'@/utils/constants'
;
departmentAll
,
import
{
outbounNote
}
from
'../../../api/diagnosis'
;
reMatchDoctor
,
import
{
callAssistantDoctor
,
updateDiagnosis
}
from
'../../../utils/diagnosis'
;
}
from
'@/api/diagnosi
s'
;
import
{
base64decode
}
from
'../../../utils/utils.j
s'
;
import
MatchComponent
from
'@/components/common/match'
;
import
MatchComponent
from
'@/components/common/match'
;
import
RefundComponent
from
'@/components/common/refund'
;
import
RefundComponent
from
'@/components/common/refund'
;
import
FollowupComponent
from
'../../../components/common/followup'
;
import
TableSetComponent
from
'@/components/list/table-set-component'
;
import
MatchingDoctor
from
'../../../components/common/matching-doctor'
;
import
applyCancelComponent
from
'../../../components/common/applyCancel'
;
import
DiagnosisComponent
from
'../../../components/common/diagnosis'
;
import
AppointmentTime
from
'../../../components/common/appointment-time'
;
import
CoordinatingDoctor
from
'../../../components/common/coordinating-doctor'
;
import
CoordinatingDoctor
from
'../../../components/common/coordinating-doctor'
;
import
DiagnosisDoctor
from
'../../../components/common/diagnosis-doctor'
;
import
DiagnosisComponent
from
'../../../components/common/diagnosis'
;
import
AppointmentTime
from
'../../../components/common/appointment-time'
;
import
DiagnosisDoctor
from
'../../../components/common/diagnosis-doctor'
;
import
DiagnosisTime
from
'../../../components/common/diagnosis-time'
;
import
DiagnosisTime
from
'../../../components/common/diagnosis-time'
;
import
RematchingDoctor
from
'../../../components/common/rematching-doctor'
;
import
FollowupComponent
from
'../../../components/common/followup'
;
import
TableSetComponent
from
'@/components/list/table-set-component'
;
import
MatchingDoctor
from
'../../../components/common/matching-doctor'
;
import
applyCancelComponent
from
'../../../components/common/applyCancel'
;
import
RematchingDoctor
from
'../../../components/common/rematching-doctor'
;
import
updateDeparId
from
'../../../components/common/updateDepartId'
;
import
updateDeparId
from
'../../../components/common/updateDepartId'
;
export
default
{
export
default
{
components
:
{
components
:
{
TableSetComponent
,
TableSetComponent
,
FollowupComponent
,
FollowupComponent
,
MatchComponent
,
MatchComponent
,
RefundComponent
,
RefundComponent
,
MatchingDoctor
,
MatchingDoctor
,
DiagnosisComponent
,
DiagnosisComponent
,
CoordinatingDoctor
,
CoordinatingDoctor
,
DiagnosisDoctor
,
DiagnosisDoctor
,
AppointmentTime
,
AppointmentTime
,
DiagnosisTime
,
DiagnosisTime
,
RematchingDoctor
,
RematchingDoctor
,
applyCancelComponent
,
applyCancelComponent
,
updateDeparId
,
updateDeparId
,
},
},
data
()
{
data
()
{
return
{
return
{
onlyChangeTime
:
false
,
onlyChangeTime
:
false
,
saveFresh
:
true
,
saveFresh
:
true
,
isUp
:
false
,
isUp
:
false
,
endFlag
:
false
,
endFlag
:
false
,
beginFlag
:
false
,
beginFlag
:
false
,
loading
:
false
,
loading
:
false
,
activeName
:
'99'
,
activeName
:
'99'
,
createRangeTime
:
''
,
createRangeTime
:
''
,
cancelRangeTime
:
''
,
cancelRangeTime
:
''
,
orderRangeTime
:
''
,
orderRangeTime
:
''
,
completeRangeTime
:
''
,
completeRangeTime
:
''
,
assistantTime
:
''
,
assistantTime
:
''
,
depList
:
[],
depList
:
[],
tabrefresh
:
true
,
tabrefresh
:
true
,
searchParam
:
{
searchParam
:
{
id
:
''
,
id
:
''
,
type
:
''
,
type
:
''
,
operateName
:
''
,
operateName
:
''
,
assistantVal
:
''
,
assistantVal
:
''
,
receptionVal
:
''
,
receptionVal
:
''
,
sort
:
null
,
sort
:
null
,
triageDepartmentId
:
''
,
triageDepartmentId
:
''
,
diagnoseType
:
''
,
// 预约问诊类型:1、音频 2、视频 3、图文
diagnoseType
:
''
,
// 预约问诊类型:1、音频 2、视频 3、图文
createdTimeBegin
:
''
,
createdTimeBegin
:
''
,
createdTimeEnd
:
''
,
createdTimeEnd
:
''
,
operateTimeBegin
:
''
,
operateTimeBegin
:
''
,
operateTimeEnd
:
''
,
operateTimeEnd
:
''
,
appointBeginTime
:
''
,
appointBeginTime
:
''
,
appointEndTime
:
''
,
appointEndTime
:
''
,
doneTimeBegin
:
''
,
doneTimeBegin
:
''
,
doneTimeEnd
:
''
,
doneTimeEnd
:
''
,
assistantBeginTime
:
''
,
assistantBeginTime
:
''
,
assistantEndTime
:
''
,
assistantEndTime
:
''
,
pageSize
:
15
,
pageSize
:
15
,
pageNo
:
1
,
pageNo
:
1
,
menuType
:
1
,
// 菜单类型:1、all 2、运营 3、待分诊 4、待接诊 5、外呼
menuType
:
1
,
// 菜单类型:1、all 2、运营 3、待分诊 4、待接诊 5、外呼
status
:
''
,
status
:
''
,
price
:
''
,
price
:
''
,
refundRemark
:
''
,
refundRemark
:
''
,
orderPlacer
:
''
,
orderPlacer
:
''
,
matchingWay
:
null
,
matchingWay
:
null
,
consultRoad
:
null
,
consultRoad
:
null
,
patientName
:
null
,
patientName
:
null
,
},
noteList
:
[],
alltabslist
:
[],
tyleList
:
TYPE_LIST
,
fllowList
:
IS_FLLOW
,
sourceList
:
SOURCE_LIST
,
priceList
:
ORDER_PRICE
,
matchingWayList
:
MATCHING_LIST
,
orderBusinessList
:
[
{
label
:
'中医实践'
,
value
:
1
,
},
},
noteList
:
[],
{
alltabslist
:
[],
label
:
'向上问诊'
,
tyleList
:
TYPE_LIST
,
value
:
0
,
fllowList
:
IS_FLLOW
,
sourceList
:
SOURCE_LIST
,
priceList
:
ORDER_PRICE
,
matchingWayList
:
MATCHING_LIST
,
orderBusinessList
:
[
{
label
:
'中医实践'
,
value
:
1
,
},
{
label
:
'向上问诊'
,
value
:
0
,
},
{
label
:
'报告解读'
,
value
:
2
,
},
],
nextPersonList
:
[
{
label
:
'基层医生'
,
value
:
0
,
},
{
label
:
'患者'
,
value
:
1
,
},
],
tabpaneList
:
[],
rematchingOptions
:
[],
// 备注信息
Raw_tabpaneList
:
[],
tableData
:
[],
totalRows
:
0
,
timeClickFlag
:
true
,
tableHeight
:
500
,
diagnoseLogId
:
0
,
toFollowReason
:
''
,
matchVisible
:
false
,
refundVisible
:
false
,
followupVisible
:
false
,
doctorVisible
:
false
,
diagnosisVisible
:
false
,
diaUpdateDeIdVisible
:
false
,
coordinatingVisible
:
false
,
diagnosisDoctorVisible
:
false
,
diagnoseFlag
:
false
,
rangeTimeData
:
''
,
appointmentTimeVisible
:
false
,
diagnosisTimeVisible
:
false
,
rematchingVisible
:
false
,
multipleSelection
:
[],
batchFlag
:
false
,
dialogFormVisible
:
false
,
bizType
:
0
,
diagnoseType
:
0
,
consultRoad
:
''
,
doctorId
:
0
,
operateUserID
:
''
,
triageDepartmentId
:
0
,
saveTableData
:
DIAGNOS_LIST_NEW
,
pickerOptions1
:
{
disabledDate
:
(
time
)
=>
{
return
time
.
getTime
()
>
new
Date
().
getTime
();
// 减去一天的时间代表可以选择同一天;
},
},
},
pickerOptions2
:
{
{
disabledDate
:
(
time
)
=>
{
label
:
'报告解读'
,
return
time
.
getTime
()
<
new
Date
().
getTime
();
// 减去一天的时间代表可以选择同一天;
value
:
2
,
},
},
},
timer
:
null
,
],
fromType
:
0
,
// 1或不传为为预约单列表 2为运营预约单列表 3为分诊台 4为接诊台
nextPersonList
:
[
doctorInfo
:
{},
{
userName
:
''
,
label
:
'基层医生'
,
userNamePhone
:
''
,
value
:
0
,
triageDepartment
:
''
,
},
departmentId
:
''
,
{
allTilst
:
[],
label
:
'患者'
,
allList
:
{},
value
:
1
,
consultationTypeList
:
[
},
{
],
label
:
'全部'
,
tabpaneList
:
[],
value
:
''
,
rematchingOptions
:
[],
// 备注信息
},
Raw_tabpaneList
:
[],
{
tableData
:
[],
label
:
'名医问诊'
,
totalRows
:
0
,
value
:
2
,
timeClickFlag
:
true
,
},
tableHeight
:
500
,
{
diagnoseLogId
:
0
,
label
:
'极速问诊'
,
toFollowReason
:
''
,
value
:
1
,
matchVisible
:
false
,
},
refundVisible
:
false
,
{
followupVisible
:
false
,
label
:
'-'
,
doctorVisible
:
false
,
value
:
0
,
diagnosisVisible
:
false
,
},
diaUpdateDeIdVisible
:
false
,
],
coordinatingVisible
:
false
,
};
diagnosisDoctorVisible
:
false
,
},
diagnoseFlag
:
false
,
watch
:
{
rangeTimeData
:
''
,
$route
:
{
appointmentTimeVisible
:
false
,
handler
(
newVal
)
{
diagnosisTimeVisible
:
false
,
if
(
newVal
)
{
rematchingVisible
:
false
,
this
.
isUp
=
false
;
multipleSelection
:
[],
this
.
reset
();
batchFlag
:
false
,
this
.
init
();
dialogFormVisible
:
false
,
}
bizType
:
0
,
diagnoseType
:
0
,
consultRoad
:
''
,
doctorId
:
0
,
operateUserID
:
''
,
triageDepartmentId
:
0
,
saveTableData
:
DIAGNOS_LIST_NEW
,
pickerOptions1
:
{
disabledDate
:
(
time
)
=>
{
return
time
.
getTime
()
>
new
Date
().
getTime
();
// 减去一天的时间代表可以选择同一天;
},
},
pickerOptions2
:
{
disabledDate
:
(
time
)
=>
{
return
time
.
getTime
()
<
new
Date
().
getTime
();
// 减去一天的时间代表可以选择同一天;
},
},
deep
:
true
,
immediate
:
true
,
},
},
timer
:
null
,
fromType
:
0
,
// 1或不传为为预约单列表 2为运营预约单列表 3为分诊台 4为接诊台
doctorInfo
:
{},
userName
:
''
,
userNamePhone
:
''
,
triageDepartment
:
''
,
departmentId
:
''
,
allTilst
:
[],
allList
:
{},
consultationTypeList
:
[
{
label
:
'全部'
,
value
:
''
,
},
{
label
:
'名医问诊'
,
value
:
2
,
},
{
label
:
'极速问诊'
,
value
:
1
,
},
{
label
:
'-'
,
value
:
0
,
},
],
};
},
watch
:
{
$route
:
{
handler
(
newVal
)
{
if
(
newVal
)
{
this
.
isUp
=
false
;
this
.
reset
();
this
.
init
();
}
},
deep
:
true
,
immediate
:
true
,
},
},
created
()
{
},
vm
=
this
;
created
()
{
vm
=
this
;
// this.getDep();
// this.getDep();
},
mounted
()
{
this
.
setTableHeight
();
this
.
getOutboundNote
();
this
.
departmentAll
();
},
destroyed
()
{
clearInterval
(
this
.
timer
);
},
methods
:
{
departmentAll
()
{
departmentAll
().
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
allList
=
res
.
data
||
{};
this
.
showListALL
();
}
});
},
showListALL
()
{
const
arr
=
[];
const
{
departmentMapList
,
parentDepartmentList
}
=
this
.
allList
;
parentDepartmentList
.
map
((
item
)
=>
{
const
obj
=
{
label
:
item
.
departmentName
,
value
:
item
.
departmentId
,
children
:
[],
};
departmentMapList
.
map
((
info
)
=>
{
if
(
info
.
parentDepartmentId
===
obj
.
value
)
{
const
children
=
[];
info
.
diagnoseDepartmentRespList
.
map
((
detail
)
=>
{
const
secondObj
=
{
label
:
detail
.
departmentName
,
value
:
detail
.
departmentId
,
text
:
''
,
};
let
secondChildren
=
''
;
(
detail
.
departmentDeseaseRespList
||
[]).
map
((
res
)
=>
{
secondChildren
+=
res
.
deseaseName
+
' '
;
});
secondObj
.
text
=
secondChildren
?
`(
${
secondChildren
}
)`
:
''
;
children
.
push
(
secondObj
);
});
obj
.
children
=
children
;
}
});
arr
.
push
(
obj
);
});
this
.
allTilst
=
arr
;
},
changeDepart
()
{
const
checkedNodes
=
this
.
$refs
[
'cascader'
].
getCheckedNodes
();
if
(
checkedNodes
.
length
>
0
)
{
this
.
searchParam
.
triageDepartmentId
=
checkedNodes
[
0
].
value
;
}
else
{
this
.
searchParam
.
triageDepartmentId
=
''
;
}
},
},
mounted
()
{
changeStartTime
(
time
)
{
this
.
setTableHeight
();
this
.
rangeTimeData
=
time
this
.
getOutboundNote
();
?
time
.
time
this
.
departmentAll
();
?
new
Date
(
time
.
time
).
format
(
'yyyy-MM-dd hh:mm:ss'
)
:
''
:
''
;
},
},
destroyed
()
{
getTableData
(
val
)
{
this
.
saveTableData
=
val
||
[];
},
selectToggle
()
{
this
.
isUp
=
!
this
.
isUp
;
},
// 每隔1分钟对比数据
contrastData
()
{
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer
);
this
.
timer
=
setInterval
(()
=>
{
this
.
getTabs
();
},
60000
);
// 600000
},
},
methods
:
{
// 获取tabs数据
departmentAll
()
{
getTabs
()
{
departmentAll
().
then
((
res
)
=>
{
getCountQuery
(
this
.
searchParam
).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
allList
=
res
.
data
||
{};
this
.
setTable
(
res
.
data
);
this
.
showListALL
();
this
.
tabrefresh
=
false
;
}
this
.
$nextTick
(()
=>
{
});
this
.
tabrefresh
=
true
;
},
showListALL
()
{
const
arr
=
[];
const
{
departmentMapList
,
parentDepartmentList
}
=
this
.
allList
;
parentDepartmentList
.
map
((
item
)
=>
{
const
obj
=
{
label
:
item
.
departmentName
,
value
:
item
.
departmentId
,
children
:
[],
};
departmentMapList
.
map
((
info
)
=>
{
if
(
info
.
parentDepartmentId
===
obj
.
value
)
{
const
children
=
[];
info
.
diagnoseDepartmentRespList
.
map
((
detail
)
=>
{
const
secondObj
=
{
label
:
detail
.
departmentName
,
value
:
detail
.
departmentId
,
text
:
''
,
};
let
secondChildren
=
''
;
(
detail
.
departmentDeseaseRespList
||
[]).
map
((
res
)
=>
{
secondChildren
+=
res
.
deseaseName
+
' '
;
});
secondObj
.
text
=
secondChildren
?
`(
${
secondChildren
}
)`
:
''
;
children
.
push
(
secondObj
);
});
obj
.
children
=
children
;
}
});
});
arr
.
push
(
obj
);
return
true
;
});
this
.
allTilst
=
arr
;
},
changeDepart
()
{
const
checkedNodes
=
this
.
$refs
[
'cascader'
].
getCheckedNodes
();
if
(
checkedNodes
.
length
>
0
)
{
this
.
searchParam
.
triageDepartmentId
=
checkedNodes
[
0
].
value
;
}
else
{
this
.
searchParam
.
triageDepartmentId
=
''
;
}
}
},
});
changeStartTime
(
time
)
{
},
this
.
rangeTimeData
=
time
init
()
{
?
time
.
time
const
fullPath
=
this
.
$route
.
fullPath
;
?
new
Date
(
time
.
time
).
format
(
'yyyy-MM-dd hh:mm:ss'
)
let
fromType
=
1
;
:
''
if
(
fullPath
.
indexOf
(
'?'
)
>
-
1
)
{
:
''
;
const
str
=
base64decode
(
fullPath
.
split
(
'?'
)[
1
]);
},
if
(
str
.
indexOf
(
'?'
))
{
getTableData
(
val
)
{
fromType
=
str
.
split
(
'='
)[
1
];
this
.
saveTableData
=
val
||
[];
},
selectToggle
()
{
this
.
isUp
=
!
this
.
isUp
;
},
// 每隔1分钟对比数据
contrastData
()
{
clearInterval
(
this
.
timer
);
this
.
timer
=
setInterval
(()
=>
{
this
.
getTabs
();
},
60000
);
// 600000
},
// 获取tabs数据
getTabs
()
{
return
getCountQuery
().
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
setTable
(
res
.
data
);
this
.
tabrefresh
=
false
;
this
.
$nextTick
(()
=>
{
this
.
tabrefresh
=
true
;
});
return
true
;
}
});
},
init
()
{
const
fullPath
=
this
.
$route
.
fullPath
;
let
fromType
=
1
;
if
(
fullPath
.
indexOf
(
'?'
)
>
-
1
)
{
const
str
=
base64decode
(
fullPath
.
split
(
'?'
)[
1
]);
if
(
str
.
indexOf
(
'?'
))
{
fromType
=
str
.
split
(
'='
)[
1
];
}
}
}
// this.fromType = +(this.$route.query.fromType || 1);
}
this
.
fromType
=
+
fromType
;
// this.fromType = +(this.$route.query.fromType || 1);
this
.
fromType
=
+
fromType
;
this
.
searchParam
.
menuType
=
this
.
fromType
||
1
;
this
.
activeName
=
'99'
;
this
.
activeName
=
'99'
;
this
.
searchParam
.
status
=
''
;
this
.
searchParam
.
status
=
''
;
this
.
Raw_tabpaneList
=
[];
this
.
Raw_tabpaneList
=
[];
this
.
getTabs
().
then
((
res
)
=>
{
this
.
getsearch
();
if
(
res
)
{
// this.getTabs().then((res) => {
this
.
getsearch
();
// if (res) {
}
// this.getsearch();
});
// }
// });
this
.
contrastData
();
this
.
contrastData
();
},
},
getOutboundNote
()
{
getOutboundNote
()
{
outbounNote
().
then
((
res
)
=>
{
outbounNote
().
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
noteList
=
res
.
data
||
[];
this
.
noteList
=
res
.
data
||
[];
}
}
});
});
},
},
// 不同也main切换不同的tab
// 不同也main切换不同的tab
setTable
(
data
)
{
setTable
(
data
)
{
let
tabs
=
ALL_TAB_LIST
;
let
tabs
=
ALL_TAB_LIST
;
switch
(
this
.
fromType
)
{
switch
(
this
.
fromType
)
{
case
1
:
case
1
:
tabs
=
ALL_TAB_LIST
;
tabs
=
ALL_TAB_LIST
;
this
.
searchParam
.
menuType
=
1
;
break
;
break
;
case
2
:
case
2
:
tabs
=
RUN_TAB_LIST
;
tabs
=
RUN_TAB_LIST
;
this
.
searchParam
.
menuType
=
2
;
break
;
break
;
case
3
:
case
3
:
tabs
=
TRIAGE_TAB_LIST
;
tabs
=
TRIAGE_TAB_LIST
;
this
.
searchParam
.
menuType
=
3
;
break
;
break
;
case
4
:
case
4
:
tabs
=
RECEPTION_TAB_LIST
;
tabs
=
RECEPTION_TAB_LIST
;
this
.
searchParam
.
menuType
=
4
;
break
;
break
;
case
5
:
case
5
:
tabs
=
MATCH_TAB_LIST
;
tabs
=
MATCH_TAB_LIST
;
this
.
searchParam
.
menuType
=
5
;
break
;
break
;
default
:
default
:
tabs
=
ALL_TAB_LIST
;
tabs
=
ALL_TAB_LIST
;
this
.
searchParam
.
menuType
=
1
;
break
;
}
let
count
=
0
;
break
;
for
(
let
i
=
0
;
i
<
tabs
.
length
;
i
++
)
{
}
const
index
=
data
.
findIndex
((
val
)
=>
{
let
count
=
0
;
return
val
.
status
==
tabs
[
i
].
active
;
for
(
let
i
=
0
;
i
<
tabs
.
length
;
i
++
)
{
});
const
index
=
data
.
findIndex
((
val
)
=>
{
if
(
index
>
0
)
{
return
val
.
status
==
tabs
[
i
].
active
;
count
=
count
+
data
[
index
].
dgCount
;
});
let
isdot
=
false
;
if
(
index
>
-
1
)
{
if
(
this
.
Raw_tabpaneList
.
length
>
0
)
{
count
=
count
+
data
[
index
].
dgCount
;
isdot
=
let
isdot
=
false
;
data
[
index
].
dgCount
>
this
.
Raw_tabpaneList
[
i
].
dgCount
if
(
this
.
Raw_tabpaneList
.
length
>
0
)
{
?
true
isdot
=
:
false
;
data
[
index
].
dgCount
>
this
.
Raw_tabpaneList
[
i
].
dgCount
}
?
true
tabs
[
i
]
=
{
:
false
;
...
tabs
[
i
],
dgCount
:
data
[
index
].
dgCount
,
isdot
:
isdot
,
};
}
}
tabs
[
i
]
=
{
...
tabs
[
i
],
dgCount
:
data
[
index
].
dgCount
,
isdot
:
isdot
,
};
}
}
tabs
[
0
].
dgCount
=
count
;
}
this
.
tabpaneList
=
tabs
;
tabs
[
0
].
dgCount
=
count
;
if
(
this
.
Raw_tabpaneList
.
length
==
0
)
{
console
.
log
(
'tabs'
,
JSON
.
stringify
(
tabs
));
this
.
Raw_tabpaneList
=
JSON
.
parse
(
JSON
.
stringify
(
tabs
));
this
.
tabpaneList
=
tabs
;
}
if
(
this
.
Raw_tabpaneList
.
length
==
0
)
{
},
this
.
Raw_tabpaneList
=
JSON
.
parse
(
JSON
.
stringify
(
tabs
));
}
},
resetPage
()
{
resetPage
()
{
this
.
searchParam
.
pageSize
=
15
;
this
.
searchParam
.
pageSize
=
15
;
this
.
searchParam
.
pageNo
=
1
;
this
.
searchParam
.
pageNo
=
1
;
},
},
// 设置table的高度
// 设置table的高度
setTableHeight
()
{
setTableHeight
()
{
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
if
(
if
(
document
.
getElementsByClassName
(
'from-box'
)
&&
document
.
getElementsByClassName
(
'from-box'
)
&&
document
.
getElementsByClassName
(
'from-box'
)[
0
].
clientHeight
document
.
getElementsByClassName
(
'from-box'
)[
0
].
clientHeight
)
{
)
{
const
height
=
const
height
=
window
.
innerHeight
-
window
.
innerHeight
-
50
-
50
-
140
-
140
-
10
-
10
-
160
-
160
-
document
.
getElementsByClassName
(
'from-box'
)[
0
].
clientHeight
;
document
.
getElementsByClassName
(
'from-box'
)[
0
].
clientHeight
;
if
(
height
>
300
)
{
if
(
height
>
300
)
{
this
.
tableHeight
=
height
;
this
.
tableHeight
=
height
;
}
}
}
});
},
20
);
},
// tab切换
handleClick
(
val
)
{
for
(
let
i
=
0
;
i
<
this
.
tabpaneList
.
length
;
i
++
)
{
if
(
this
.
tabpaneList
[
i
].
active
==
val
.
paneName
)
{
this
.
tabpaneList
[
i
].
isdot
=
false
;
this
.
Raw_tabpaneList
[
i
]
=
this
.
tabpaneList
[
i
];
}
}
});
},
20
);
},
// tab切换
handleClick
(
val
)
{
for
(
let
i
=
0
;
i
<
this
.
tabpaneList
.
length
;
i
++
)
{
if
(
this
.
tabpaneList
[
i
].
active
==
val
.
paneName
)
{
this
.
tabpaneList
[
i
].
isdot
=
false
;
this
.
Raw_tabpaneList
[
i
]
=
this
.
tabpaneList
[
i
];
}
}
this
.
searchParam
.
status
=
}
val
.
paneName
==
99
this
.
searchParam
.
status
=
?
''
val
.
paneName
==
99
:
val
.
paneName
==
101
||
val
.
paneName
==
102
?
''
?
'21'
:
val
.
paneName
==
101
||
val
.
paneName
==
102
:
val
.
paneName
;
?
'21'
if
(
:
val
.
paneName
;
(
this
.
fromType
==
5
||
this
.
fromType
==
1
)
&&
if
(
this
.
searchParam
.
status
(
this
.
fromType
==
5
||
this
.
fromType
==
1
)
&&
)
{
this
.
searchParam
.
status
if
(
val
.
paneName
==
101
)
{
)
{
this
.
searchParam
.
hasToFollowReason
=
1
;
if
(
val
.
paneName
==
101
)
{
}
else
if
(
val
.
paneName
==
102
)
{
this
.
searchParam
.
hasToFollowReason
=
1
;
this
.
searchParam
.
hasToFollowReason
=
2
;
}
else
if
(
val
.
paneName
==
102
)
{
}
else
{
this
.
searchParam
.
hasToFollowReason
=
2
;
if
(
Object
.
prototype
.
hasOwnProperty
.
call
(
this
.
searchParam
,
'hasToFollowReason'
)
)
{
delete
this
.
searchParam
.
hasToFollowReason
;
}
}
}
else
{
}
else
{
if
(
if
(
Object
.
prototype
.
hasOwnProperty
.
call
(
Object
.
prototype
.
hasOwnProperty
.
call
(
...
@@ -1070,444 +1062,461 @@
...
@@ -1070,444 +1062,461 @@
delete
this
.
searchParam
.
hasToFollowReason
;
delete
this
.
searchParam
.
hasToFollowReason
;
}
}
}
}
this
.
getsearch
();
}
else
{
this
.
saveFresh
=
false
;
if
(
this
.
$nextTick
(()
=>
{
Object
.
prototype
.
hasOwnProperty
.
call
(
this
.
saveFresh
=
true
;
this
.
searchParam
,
});
'hasToFollowReason'
},
)
// 初始化时间
initTime
()
{
const
{
createRangeTime
,
cancelRangeTime
,
orderRangeTime
,
completeRangeTime
,
assistantTime
,
}
=
this
;
this
.
setTime
(
'createdTimeBegin'
,
'createdTimeEnd'
,
createRangeTime
);
this
.
setTime
(
'cancelTimeBegin'
,
'cancelTimeEnd'
,
cancelRangeTime
);
this
.
setTime
(
'appointBeginTime'
,
'appointEndTime'
,
orderRangeTime
);
this
.
setTime
(
'doneTimeBegin'
,
'doneTimeEnd'
,
completeRangeTime
);
this
.
setTime
(
'assistantBeginTime'
,
'assistantEndTime'
,
assistantTime
);
},
/**
* btime开始时间
* etime结束时间
* arrtime 时间数组
*/
setTime
(
btime
,
etime
,
arrtime
)
{
arrtime
=
arrtime
||
[
''
,
''
];
this
.
searchParam
[
btime
]
=
arrtime
[
0
];
this
.
searchParam
[
etime
]
=
arrtime
[
1
];
},
// 重置页面后搜索
getsearch
()
{
this
.
resetPage
();
this
.
search
(
true
);
},
sortfunc
(
data
)
{
// ascending 升序
// descending 降序
if
(
data
.
prop
==
'appointBeginTime'
&&
data
.
order
==
'ascending'
)
{
this
.
searchParam
.
sort
=
1
;
}
else
if
(
data
.
prop
==
'appointBeginTime'
&&
data
.
order
==
'descending'
)
{
this
.
searchParam
.
sort
=
2
;
}
else
if
(
data
.
prop
==
'assistantBeginTime'
&&
data
.
order
==
'ascending'
)
{
this
.
searchParam
.
sort
=
3
;
}
else
if
(
data
.
prop
==
'assistantBeginTime'
&&
data
.
order
==
'descending'
)
{
)
{
this
.
searchParam
.
sort
=
4
;
delete
this
.
searchParam
.
hasToFollowReason
;
}
else
{
this
.
searchParam
.
sort
=
null
;
}
this
.
search
(
true
);
},
search
(
isTabs
)
{
this
.
loading
=
true
;
if
(
!
isTabs
)
{
this
.
getTabs
();
}
}
this
.
initTime
();
}
this
.
getsearch
(
true
);
this
.
saveFresh
=
false
;
this
.
$nextTick
(()
=>
{
this
.
saveFresh
=
true
;
});
},
// 初始化时间
initTime
()
{
const
{
createRangeTime
,
cancelRangeTime
,
orderRangeTime
,
completeRangeTime
,
assistantTime
,
}
=
this
;
this
.
setTime
(
'createdTimeBegin'
,
'createdTimeEnd'
,
createRangeTime
);
this
.
setTime
(
'cancelTimeBegin'
,
'cancelTimeEnd'
,
cancelRangeTime
);
this
.
setTime
(
'appointBeginTime'
,
'appointEndTime'
,
orderRangeTime
);
this
.
setTime
(
'doneTimeBegin'
,
'doneTimeEnd'
,
completeRangeTime
);
this
.
setTime
(
'assistantBeginTime'
,
'assistantEndTime'
,
assistantTime
);
},
/**
* btime开始时间
* etime结束时间
* arrtime 时间数组
*/
setTime
(
btime
,
etime
,
arrtime
)
{
arrtime
=
arrtime
||
[
''
,
''
];
this
.
searchParam
[
btime
]
=
arrtime
[
0
];
this
.
searchParam
[
etime
]
=
arrtime
[
1
];
},
// 重置页面后搜索
getsearch
(
isTabs
)
{
this
.
resetPage
();
this
.
search
(
isTabs
);
},
sortfunc
(
data
)
{
// ascending 升序
// descending 降序
if
(
data
.
prop
==
'appointBeginTime'
&&
data
.
order
==
'ascending'
)
{
this
.
searchParam
.
sort
=
1
;
}
else
if
(
data
.
prop
==
'appointBeginTime'
&&
data
.
order
==
'descending'
)
{
this
.
searchParam
.
sort
=
2
;
}
else
if
(
data
.
prop
==
'assistantBeginTime'
&&
data
.
order
==
'ascending'
)
{
this
.
searchParam
.
sort
=
3
;
}
else
if
(
data
.
prop
==
'assistantBeginTime'
&&
data
.
order
==
'descending'
)
{
this
.
searchParam
.
sort
=
4
;
}
else
{
this
.
searchParam
.
sort
=
null
;
}
this
.
search
(
true
);
},
search
(
isTabs
)
{
this
.
loading
=
true
;
if
(
!
isTabs
)
{
this
.
getTabs
();
}
this
.
initTime
();
diagnoseList
(
this
.
searchParam
).
then
((
res
)
=>
{
diagnoseList
(
this
.
searchParam
).
then
((
res
)
=>
{
this
.
loading
=
false
;
if
(
res
.
code
==
'000000'
)
{
this
.
tableData
=
(
res
.
data
.
list
||
[]).
map
((
item
)
=>
{
return
{
...
item
,
price
:
item
.
price
>
0
?
item
.
price
/
100
:
0
,
};
});
this
.
totalRows
=
res
.
data
.
allSize
;
}
});
},
// 获取科室
getDep
()
{
getDepartments
().
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
this
.
depList
=
[
{
id
:
''
,
name
:
'全部'
,
},
...
res
.
data
,
];
}
});
},
// 重置
reset
()
{
this
.
createRangeTime
=
''
;
this
.
cancelRangeTime
=
''
;
this
.
orderRangeTime
=
''
;
this
.
completeRangeTime
=
''
;
this
.
assistantTime
=
''
;
this
.
searchParam
=
Object
.
assign
(
this
.
searchParam
,
{
id
:
''
,
type
:
''
,
operateName
:
''
,
assistantVal
:
''
,
receptionVal
:
''
,
triageDepartmentId
:
''
,
price
:
''
,
refundRemark
:
''
,
orderPlacer
:
''
,
matchingWay
:
null
,
diagnoseType
:
''
,
// 预约问诊类型:1、音频 2、视频 3、图文
createdTimeBegin
:
''
,
createdTimeEnd
:
''
,
operateTimeBegin
:
''
,
operateTimeEnd
:
''
,
sort
:
null
,
appointBeginTime
:
''
,
appointEndTime
:
''
,
doneTimeBegin
:
''
,
doneTimeEnd
:
''
,
assistantBeginTime
:
''
,
assistantEndTime
:
''
,
inNewTimeObj
:
{},
consultRoad
:
null
,
patientName
:
null
,
});
},
// 导出
download
()
{
this
.
initTime
();
const
params
=
this
.
searchParam
;
diagnoseExport
(
params
)
.
then
((
res
)
=>
{
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
tableData
=
(
res
.
data
.
list
||
[]).
map
((
item
)
=>
{
this
.
$confirm
(
'将于24小时内导出成功,是否跳转下载列表页?'
,
'提示'
,
{
return
{
confirmButtonText
:
'确定'
,
...
item
,
cancelButtonText
:
'取消'
,
price
:
item
.
price
>
0
?
item
.
price
/
100
:
0
,
type
:
'warning'
,
};
}).
then
(()
=>
{
this
.
$router
.
push
(
'/down-list'
);
});
});
this
.
totalRows
=
res
.
data
.
allSize
;
}
}
})
.
catch
((
err
)
=>
{
console
.
log
(
err
);
});
});
},
},
// 获取科室
// 设为待问诊
getDep
()
{
witeDiagnose
(
row
)
{
getDepartments
().
then
((
res
)
=>
{
this
.
appointmentTimeVisible
=
true
;
if
(
res
.
code
===
'000000'
)
{
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
depList
=
[
this
.
bizType
=
11
;
{
},
id
:
''
,
// 更换运营
name
:
'全部'
,
changeRun
(
row
)
{
},
this
.
matchVisible
=
true
;
...
res
.
data
,
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
];
this
.
batchFlag
=
false
;
this
.
operateUserID
=
row
.
operateUserId
;
},
// 查看详情/编辑详情
goDetail
(
row
,
flag
)
{
const
target
=
this
.
$refs
.
target
;
const
{
origin
}
=
window
.
location
;
const
editorType
=
flag
?
1
:
2
;
const
u
=
`
${
origin
}
/consultation/pica-admin-consultation/diagnosis-editor?id=
${
row
.
diagnoseLogId
}
&editorType=
${
editorType
}
`
;
target
.
setAttribute
(
'href'
,
u
);
target
.
click
();
},
// 取消/退款
cancelRefund
(
row
)
{
this
.
refundVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
},
// 设为稍后跟进
witeGo
(
row
)
{
this
.
followupVisible
=
true
;
this
.
toFollowReason
=
row
.
toFollowReason
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
},
// 申请取消
applyCancel
(
row
)
{
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
dialogFormVisible
=
true
;
},
// 设为待匹配医生
waitMatchDot
(
row
)
{
this
.
doctorData
=
row
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
userName
=
row
.
userName
;
this
.
diagnoseType
=
row
.
diagnoseType
;
this
.
consultRoad
=
row
.
consultRoad
;
this
.
userNamePhone
=
row
.
userMobile
;
this
.
triageDepartment
=
row
.
triageDepartment
;
this
.
departmentId
=
row
.
triageDepartmentId
;
this
.
patientName
=
row
.
patientName
;
this
.
patientMobilePhone
=
row
.
patientMobilePhone
;
this
.
bizType
=
5
;
if
(
this
.
diagnoseType
==
'4'
)
{
this
.
$confirm
(
'是否重新匹配医生'
,
'提示'
,
{
confirmButtonText
:
'是'
,
cancelButtonText
:
'否'
,
type
:
'warning'
,
}).
then
(()
=>
{
this
.
loading
=
true
;
reMatchDoctor
(
this
.
diagnoseLogId
)
.
then
(()
=>
{
this
.
loading
=
false
;
this
.
search
(
false
);
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
});
}
else
{
this
.
diagnosisTimeVisible
=
true
;
}
// }
},
// 修改科室
updateDepartId
(
row
)
{
console
.
log
(
row
);
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
userName
=
row
.
userName
;
this
.
userNamePhone
=
row
.
userMobile
;
this
.
triageDepartment
=
row
.
triageDepartment
;
this
.
diaUpdateDeIdVisible
=
true
;
},
callAssistant
(
row
)
{
const
i
=
row
.
consultRoadType
==
2
?
'确定呼叫居民吗?'
:
'确定呼叫助诊医生吗?'
;
this
.
$confirm
(
i
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
callAssistantDoctor
(
row
.
diagnoseLogId
).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
vm
.
$message
.
success
(
'呼叫成功'
);
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
}
});
});
},
});
// 重置
},
reset
()
{
// 发送消息
this
.
createRangeTime
=
''
;
sendMessage
(
row
)
{
this
.
cancelRangeTime
=
''
;
// this.$router.push({
this
.
orderRangeTime
=
''
;
// path: '/diagnosis-im',
this
.
completeRangeTime
=
''
;
// query: { tid: row.imTeamId },
this
.
assistantTime
=
''
;
// });
this
.
searchParam
=
Object
.
assign
(
this
.
searchParam
,
{
id
:
''
,
const
target
=
this
.
$refs
.
target
;
type
:
''
,
const
{
origin
}
=
window
.
location
;
operateName
:
''
,
const
u
=
`
${
origin
}
/consultation/pica-admin-consultation/diagnosis-im?tid=
${
row
.
imTeamId
}
`
;
assistantVal
:
''
,
target
.
setAttribute
(
'href'
,
u
);
receptionVal
:
''
,
target
.
click
();
triageDepartmentId
:
''
,
},
price
:
''
,
refundRemark
:
''
,
// 加入问诊
orderPlacer
:
''
,
joinDiagnose
(
row
)
{
matchingWay
:
null
,
this
.
$confirm
(
'确定加入问诊吗?'
,
'提示'
,
{
diagnoseType
:
''
,
// 预约问诊类型:1、音频 2、视频 3、图文
confirmButtonText
:
'确定'
,
createdTimeBegin
:
''
,
cancelButtonText
:
'取消'
,
createdTimeEnd
:
''
,
type
:
'warning'
,
operateTimeBegin
:
''
,
}).
then
(()
=>
{
operateTimeEnd
:
''
,
this
.
clearSession
();
sort
:
null
,
appointBeginTime
:
''
,
// this.$router.push({
appointEndTime
:
''
,
// path: "/diagnosis-live",
doneTimeBegin
:
''
,
// query: { tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId },
doneTimeEnd
:
''
,
// })
assistantBeginTime
:
''
,
const
newpage
=
this
.
$router
.
resolve
({
assistantEndTime
:
''
,
path
:
'/diagnosis-live'
,
inNewTimeObj
:
{},
query
:
{
tid
:
row
.
imTeamId
,
diagnoseLogId
:
row
.
diagnoseLogId
},
consultRoad
:
null
,
patientName
:
null
,
});
});
},
window
.
open
(
newpage
.
href
,
'_blank'
);
// 导出
});
download
()
{
},
this
.
initTime
();
// 匹配运营
const
params
=
this
.
searchParam
;
matchRun
(
row
)
{
diagnoseExport
(
params
)
this
.
$confirm
(
'确定匹配并跟进该预约单?'
,
'确定匹配?'
,
{
.
then
((
res
)
=>
{
confirmButtonText
:
'确定'
,
this
.
loading
=
false
;
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
const
req
=
{
id
:
row
.
diagnoseLogId
,
bizType
:
3
,
};
updateDiagnosis
(
req
)
.
then
(
function
(
res
)
{
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
$confirm
(
'将于24小时内导出成功,是否跳转下载列表页?'
,
'提示'
,
{
vm
.
search
(
false
);
confirmButtonText
:
'确定'
,
}
else
{
cancelButtonText
:
'取消'
,
vm
.
$message
.
error
(
res
.
message
);
type
:
'warning'
,
}).
then
(()
=>
{
this
.
$router
.
push
(
'/down-list'
);
});
}
}
})
})
.
catch
((
err
)
=>
{
.
catch
(
function
(
error
)
{
console
.
log
(
err
);
vm
.
$message
.
error
(
error
);
});
},
// 设为待问诊
witeDiagnose
(
row
)
{
this
.
appointmentTimeVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
bizType
=
11
;
},
// 更换运营
changeRun
(
row
)
{
this
.
matchVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
batchFlag
=
false
;
this
.
operateUserID
=
row
.
operateUserId
;
},
// 查看详情/编辑详情
goDetail
(
row
,
flag
)
{
const
target
=
this
.
$refs
.
target
;
const
{
origin
}
=
window
.
location
;
const
editorType
=
flag
?
1
:
2
;
const
u
=
`
${
origin
}
/consultation/pica-admin-consultation/diagnosis-editor?id=
${
row
.
diagnoseLogId
}
&editorType=
${
editorType
}
`
;
target
.
setAttribute
(
'href'
,
u
);
target
.
click
();
},
// 取消/退款
cancelRefund
(
row
)
{
this
.
refundVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
},
// 设为稍后跟进
witeGo
(
row
)
{
this
.
followupVisible
=
true
;
this
.
toFollowReason
=
row
.
toFollowReason
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
},
// 申请取消
applyCancel
(
row
)
{
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
dialogFormVisible
=
true
;
},
// 设为待匹配医生
waitMatchDot
(
row
)
{
this
.
doctorData
=
row
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
userName
=
row
.
userName
;
this
.
diagnoseType
=
row
.
diagnoseType
;
this
.
consultRoad
=
row
.
consultRoad
;
this
.
userNamePhone
=
row
.
userMobile
;
this
.
triageDepartment
=
row
.
triageDepartment
;
this
.
departmentId
=
row
.
triageDepartmentId
;
this
.
patientName
=
row
.
patientName
;
this
.
patientMobilePhone
=
row
.
patientMobilePhone
;
this
.
bizType
=
5
;
if
(
this
.
diagnoseType
==
'4'
)
{
this
.
$confirm
(
'是否重新匹配医生'
,
'提示'
,
{
confirmButtonText
:
'是'
,
cancelButtonText
:
'否'
,
type
:
'warning'
,
}).
then
(()
=>
{
this
.
loading
=
true
;
reMatchDoctor
(
this
.
diagnoseLogId
)
.
then
(()
=>
{
this
.
loading
=
false
;
this
.
search
(
false
);
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
});
});
}
else
{
});
this
.
diagnosisTimeVisible
=
true
;
},
}
// 设为待分诊
waitDiagnose
(
row
)
{
// }
this
.
diagnosisTimeVisible
=
true
;
},
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
// 修改科室
this
.
bizType
=
5
;
updateDepartId
(
row
)
{
},
console
.
log
(
row
);
// 设为待协调医生
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
waitHzeDot
(
row
)
{
this
.
userName
=
row
.
userName
;
this
.
coordinatingVisible
=
true
;
this
.
userNamePhone
=
row
.
userMobile
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
triageDepartment
=
row
.
triageDepartment
;
this
.
bizType
=
8
;
this
.
diaUpdateDeIdVisible
=
true
;
},
},
// 设为待确认时间
callAssistant
(
row
)
{
waitMatchTime
(
row
,
onlyChangeTime
)
{
const
i
=
row
.
consultRoadType
==
2
?
'确定呼叫居民吗?'
:
'确定呼叫助诊医生吗?'
;
this
.
onlyChangeTime
=
onlyChangeTime
;
this
.
$confirm
(
i
,
'提示'
,
{
this
.
doctorInfo
=
row
;
this
.
rangeTimeData
=
row
.
assistantBeginTime
;
this
.
diagnoseFlag
=
true
;
this
.
diagnosisDoctorVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
diagnoseType
=
row
.
diagnoseType
;
this
.
consultRoad
=
row
.
consultRoad
;
if
(
row
.
doctorId
==
0
)
{
this
.
doctorId
=
''
;
}
else
{
this
.
doctorId
=
row
.
doctorId
;
}
// this.$nextTick(() => {
// this.diagnoseFlag = true;
// this.diagnosisDoctorVisible = true;
// });
},
// 重新匹配医生
reMatchDot
(
row
,
type
)
{
this
.
rematchingOptions
=
[
'接诊医生爽约'
,
'上级医生日程改变,提前取消'
,
'操作失误,重新匹配医生'
,
'助诊医生爽约'
,
];
// this.rematchingOptions=
// this.options=
this
.
rematchingVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
bizType
=
type
;
},
// 修改时间
changeTime
(
row
)
{
this
.
appointmentTimeVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
bizType
=
12
;
},
// 发起问诊
// call(row) {
// this.$confirm('确定发起问诊吗?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// this.clearSession()
// this.$router.push({path: '/diagnosis-live', query: {tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId}})
// })
// },
// 设为已完成
doneHandle
(
row
)
{
this
.
$confirm
(
'请先确定问诊已结束?再将问诊设为已完成,确定继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
type
:
'warning'
,
}).
then
(()
=>
{
}
callAssistantDoctor
(
row
.
diagnoseLogId
).
then
(
res
=>
{
).
then
(()
=>
{
const
req
=
{
id
:
row
.
diagnoseLogId
,
bizType
:
13
,
};
updateDiagnosis
(
req
)
.
then
(
function
(
res
)
{
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
vm
.
$message
.
success
(
'呼叫成功'
);
// this.cancel();
}
else
{
vm
.
search
(
false
);
}
else
{
vm
.
$message
.
error
(
res
.
message
);
vm
.
$message
.
error
(
res
.
message
);
}
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
});
});
});
},
},
// 发送消息
// 设置科室
sendMessage
(
row
)
{
setOffice
(
row
)
{
this
.
$router
.
push
({
this
.
doctorVisible
=
true
;
path
:
'/diagnosis-im'
,
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
query
:
{
tid
:
row
.
imTeamId
},
this
.
bizType
=
15
;
});
this
.
triageDepartmentId
=
row
.
triageDepartmentId
;
},
},
handleSizeChange
(
value
)
{
// 加入问诊
this
.
searchParam
.
pageSize
=
value
;
joinDiagnose
(
row
)
{
this
.
$confirm
(
'确定加入问诊吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
this
.
clearSession
();
// this.$router.push({
this
.
search
(
true
);
// path: "/diagnosis-live",
},
// query: { tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId },
handleCurrentChange
(
value
)
{
// })
this
.
searchParam
.
pageNo
=
value
;
const
newpage
=
this
.
$router
.
resolve
({
this
.
search
(
true
);
path
:
'/diagnosis-live'
,
},
query
:
{
tid
:
row
.
imTeamId
,
diagnoseLogId
:
row
.
diagnoseLogId
},
// 清除直播时间相关的seession
});
clearSession
()
{
window
.
open
(
newpage
.
href
,
'_blank'
);
sessionStorage
.
removeItem
(
'TIME_askTime'
);
});
sessionStorage
.
removeItem
(
'TIME_answerTime'
);
},
sessionStorage
.
removeItem
(
'TIME_useTime'
);
// 匹配运营
sessionStorage
.
removeItem
(
'TIME_loseTime'
);
matchRun
(
row
)
{
},
this
.
$confirm
(
'确定匹配并跟进该预约单?'
,
'确定匹配?'
,
{
// 取消预约
confirmButtonText
:
'确定'
,
// cancelBtn(row) {},
cancelButtonText
:
'取消'
,
// 批量设置运营
batchSetOperator
()
{
if
(
this
.
multipleSelection
.
length
==
0
)
{
this
.
$message
({
message
:
'请先选择要操作的数据'
,
type
:
'warning'
,
type
:
'warning'
,
}).
then
(()
=>
{
const
req
=
{
id
:
row
.
diagnoseLogId
,
bizType
:
3
,
};
updateDiagnosis
(
req
)
.
then
(
function
(
res
)
{
if
(
res
.
code
==
'000000'
)
{
vm
.
search
(
false
);
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
});
},
// 设为待分诊
waitDiagnose
(
row
)
{
this
.
diagnosisTimeVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
bizType
=
5
;
},
// 设为待协调医生
waitHzeDot
(
row
)
{
this
.
coordinatingVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
bizType
=
8
;
},
// 设为待确认时间
waitMatchTime
(
row
,
onlyChangeTime
)
{
this
.
onlyChangeTime
=
onlyChangeTime
;
this
.
doctorInfo
=
row
;
this
.
rangeTimeData
=
row
.
assistantBeginTime
;
this
.
diagnoseFlag
=
true
;
this
.
diagnosisDoctorVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
diagnoseType
=
row
.
diagnoseType
;
this
.
consultRoad
=
row
.
consultRoad
;
if
(
row
.
doctorId
==
0
)
{
this
.
doctorId
=
''
;
}
else
{
this
.
doctorId
=
row
.
doctorId
;
}
// this.$nextTick(() => {
// this.diagnoseFlag = true;
// this.diagnosisDoctorVisible = true;
// });
},
// 重新匹配医生
reMatchDot
(
row
,
type
)
{
this
.
rematchingOptions
=
[
'接诊医生爽约'
,
'上级医生日程改变,提前取消'
,
'操作失误,重新匹配医生'
,
'助诊医生爽约'
,
];
// this.rematchingOptions=
// this.options=
this
.
rematchingVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
bizType
=
type
;
},
// 修改时间
changeTime
(
row
)
{
this
.
appointmentTimeVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
bizType
=
12
;
},
// 发起问诊
// call(row) {
// this.$confirm('确定发起问诊吗?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// this.clearSession()
// this.$router.push({path: '/diagnosis-live', query: {tid: row.imTeamId, diagnoseLogId: row.diagnoseLogId}})
// })
// },
// 设为已完成
doneHandle
(
row
)
{
this
.
$confirm
(
'请先确定问诊已结束?再将问诊设为已完成,确定继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}
).
then
(()
=>
{
const
req
=
{
id
:
row
.
diagnoseLogId
,
bizType
:
13
,
};
updateDiagnosis
(
req
)
.
then
(
function
(
res
)
{
if
(
res
.
code
==
'000000'
)
{
// this.cancel();
vm
.
search
(
false
);
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
});
});
},
return
;
// 设置科室
}
setOffice
(
row
)
{
this
.
doctorVisible
=
true
;
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
bizType
=
15
;
this
.
triageDepartmentId
=
row
.
triageDepartmentId
;
},
handleSizeChange
(
value
)
{
this
.
searchParam
.
pageSize
=
value
;
this
.
search
(
true
);
},
handleCurrentChange
(
value
)
{
this
.
searchParam
.
pageNo
=
value
;
this
.
search
(
true
);
},
// 清除直播时间相关的seession
clearSession
()
{
sessionStorage
.
removeItem
(
'TIME_askTime'
);
sessionStorage
.
removeItem
(
'TIME_answerTime'
);
sessionStorage
.
removeItem
(
'TIME_useTime'
);
sessionStorage
.
removeItem
(
'TIME_loseTime'
);
},
// 取消预约
// cancelBtn(row) {},
// 批量设置运营
batchSetOperator
()
{
if
(
this
.
multipleSelection
.
length
==
0
)
{
this
.
$message
({
message
:
'请先选择要操作的数据'
,
type
:
'warning'
,
});
return
;
}
this
.
matchVisible
=
true
;
this
.
matchVisible
=
true
;
this
.
batchFlag
=
true
;
this
.
batchFlag
=
true
;
},
},
patientNameChange
(
value
)
{
patientNameChange
(
value
)
{
this
.
searchParam
.
patientName
=
value
?
value
:
null
;
this
.
searchParam
.
patientName
=
value
?
value
:
null
;
},
},
},
};
},
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.diagnosis-list-content
{
.diagnosis-list-content
{
...
@@ -1516,24 +1525,29 @@
...
@@ -1516,24 +1525,29 @@
padding
:
10px
;
padding
:
10px
;
background
:
#fff
;
background
:
#fff
;
overflow
:
hidden
!
important
;
overflow
:
hidden
!
important
;
.title
{
.title
{
height
:
50px
;
height
:
50px
;
display
:
flex
;
display
:
flex
;
justify-content
:
flex-start
;
justify-content
:
flex-start
;
align-items
:
center
;
align-items
:
center
;
}
}
.form-container
{
.form-container
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
.form-li
{
.form-li
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
// justify-content: space-between;
// justify-content: space-between;
}
}
.form-btn
{
.form-btn
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
justify-content
:
flex-start
;
justify-content
:
flex-start
;
.form-btn-li
{
.form-btn-li
{
display
:
flex
;
display
:
flex
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
...
@@ -1541,6 +1555,7 @@
...
@@ -1541,6 +1555,7 @@
}
}
}
}
}
}
.select-bottom
{
.select-bottom
{
height
:
50px
;
height
:
50px
;
cursor
:
pointer
;
cursor
:
pointer
;
...
@@ -1549,6 +1564,7 @@
...
@@ -1549,6 +1564,7 @@
align-items
:
center
;
align-items
:
center
;
color
:
#0d9078
;
color
:
#0d9078
;
}
}
.btn-wrap
{
.btn-wrap
{
text-align
:
right
;
text-align
:
right
;
}
}
...
@@ -1557,6 +1573,7 @@
...
@@ -1557,6 +1573,7 @@
margin-bottom
:
10px
;
margin-bottom
:
10px
;
}
}
}
}
.component-content
{
.component-content
{
padding
:
10px
;
padding
:
10px
;
background
:
#fff
;
background
:
#fff
;
...
@@ -1569,6 +1586,7 @@
...
@@ -1569,6 +1586,7 @@
right
:
5px
;
right
:
5px
;
top
:
10px
;
top
:
10px
;
}
}
body
.el-table
th
.gutter
{
body
.el-table
th
.gutter
{
display
:
table-cell
!
important
;
display
:
table-cell
!
important
;
}
}
...
@@ -1576,6 +1594,7 @@ body .el-table th.gutter {
...
@@ -1576,6 +1594,7 @@ body .el-table th.gutter {
body
.el-table
colgroup
.gutter
{
body
.el-table
colgroup
.gutter
{
display
:
table-cell
!
important
;
display
:
table-cell
!
important
;
}
}
.el-table
.warning-row
{
.el-table
.warning-row
{
background
:
oldlace
;
background
:
oldlace
;
}
}
...
...
src/views/IM/diagnosis-admin/modal/newScheduling.vue
浏览文件 @
af7d58c2
...
@@ -146,137 +146,137 @@
...
@@ -146,137 +146,137 @@
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
dayjs
from
'dayjs'
;
import
FullCalendar
from
'@fullcalendar/vue'
;
import
FullCalendar
from
'@fullcalendar/vue'
;
import
dayGridPlugin
from
'@fullcalendar/daygrid'
;
import
dayGridPlugin
from
'@fullcalendar/daygrid'
;
import
interactionPlugin
from
'@fullcalendar/interaction'
;
import
timeGridPlugin
from
'@fullcalendar/timegrid'
;
import
timeGridPlugin
from
'@fullcalendar/timegrid'
;
import
interactionPlugin
from
'@fullcalendar/interaction'
;
import
{
import
{
dutyRosterQuery
,
dutyRosterQuery
,
getDoctorInfo
,
saveDutyRoster
,
getLevel
,
getLevel
,
getLevelAndDayCount
,
getDoctorInfo
,
saveDutyRoster
,
saveLevelAndDayCount
,
saveLevelAndDayCount
,
getLevelAndDayCount
,
}
from
'@/api/serviceSchedule'
;
}
from
'@/api/serviceSchedule'
;
import
dayjs
from
'dayjs'
;
export
default
{
export
default
{
name
:
'Scheduing'
,
name
:
'Scheduing'
,
components
:
{
components
:
{
FullCalendar
,
FullCalendar
,
},
},
data
()
{
data
()
{
return
{
return
{
maxPreNum
:
''
,
maxPreNum
:
''
,
chooseList
:
true
,
chooseList
:
true
,
id
:
''
,
id
:
''
,
doctorId
:
''
,
doctorId
:
''
,
schedulingTypeValue
:
{},
schedulingTypeValue
:
{},
schedulingType
:
1
,
// 1 新增 2 编辑 3 查看
schedulingType
:
1
,
// 1 新增 2 编辑 3 查看
createList
:
[],
createList
:
[],
listDate
:
[],
listDate
:
[],
week
:
1
,
// 1:当前周 2:上一周 3:下一周
week
:
1
,
// 1:当前周 2:上一周 3:下一周
currentIndex
:
3
,
currentIndex
:
3
,
haveWeek
:
[
1
],
haveWeek
:
[
1
],
businessHours
:
true
,
businessHours
:
true
,
calendarOptions
:
{
calendarOptions
:
{
// 引入的插件,比如fullcalendar/daygrid,fullcalendar/timegrid引入后才可显示月,周,日
// 引入的插件,比如fullcalendar/daygrid,fullcalendar/timegrid引入后才可显示月,周,日
plugins
:
[
dayGridPlugin
,
interactionPlugin
,
timeGridPlugin
],
plugins
:
[
dayGridPlugin
,
interactionPlugin
,
timeGridPlugin
],
initialView
:
'timeGridWeek'
,
// 默认为那个视图(月:dayGridMonth,周:timeGridWeek,日:timeGridDay)
initialView
:
'timeGridWeek'
,
// 默认为那个视图(月:dayGridMonth,周:timeGridWeek,日:timeGridDay)
selectable
:
true
,
selectable
:
true
,
selectMirror
:
true
,
selectMirror
:
true
,
selectAllow
:
this
.
selectAllow
,
selectAllow
:
this
.
selectAllow
,
selectOverlap
:
false
,
selectOverlap
:
false
,
select
:
this
.
selectInfo
,
select
:
this
.
selectInfo
,
selectMinDistance
:
0
,
selectMinDistance
:
0
,
eventOverlap
:
false
,
eventOverlap
:
false
,
navLinks
:
true
,
navLinks
:
true
,
navLinkDayClick
:
this
.
navLinkDayClick
,
navLinkDayClick
:
this
.
navLinkDayClick
,
// eventDurationEditable:false,
// eventDurationEditable:false,
eventDrop
:
this
.
eventDrop
,
eventDrop
:
this
.
eventDrop
,
editable
:
true
,
editable
:
true
,
overlap
:
false
,
overlap
:
false
,
defaultDate
:
new
Date
(),
defaultDate
:
new
Date
(),
datesSet
:
this
.
handleDatesSet
,
datesSet
:
this
.
handleDatesSet
,
events
:
[],
events
:
[],
slotEventOverlap
:
true
,
slotEventOverlap
:
true
,
header
:
{
header
:
{
center
:
'month,agendaFourDay'
,
// buttons for switching between views
center
:
'month,agendaFourDay'
,
// buttons for switching between views
},
},
firstDay
:
1
,
// 设置一周中显示的第一天是哪天,周日是0,周一是1,类推
firstDay
:
1
,
// 设置一周中显示的第一天是哪天,周日是0,周一是1,类推
locale
:
'zh-cn'
,
// 切换语言,当前为中文
locale
:
'zh-cn'
,
// 切换语言,当前为中文
eventColor
:
'#fff'
,
// 全部日历日程背景色3BB2E3
eventColor
:
'#fff'
,
// 全部日历日程背景色3BB2E3
eventBackgroundColor
:
'#E7F4F5'
,
eventBackgroundColor
:
'#E7F4F5'
,
// themeSystem: 'bootstrap', // 主题色(本地测试未能生效)
// themeSystem: 'bootstrap', // 主题色(本地测试未能生效)
// initialDate: moment().format('YYYY-MM-DD'), // 自定义设置背景颜色时一定要初始化日期时间
// initialDate: moment().format('YYYY-MM-DD'), // 自定义设置背景颜色时一定要初始化日期时间
timeGridEventMinHeight
:
'40'
,
// 设置事件的最小高度
timeGridEventMinHeight
:
'40'
,
// 设置事件的最小高度
aspectRatio
:
1.35
,
// 设置日历单元格宽度与高度的比例。
aspectRatio
:
1.35
,
// 设置日历单元格宽度与高度的比例。
// displayEventTime: false, // 是否显示时间
// displayEventTime: false, // 是否显示时间
allDaySlot
:
false
,
// 周,日视图时,all-day 不显示
allDaySlot
:
false
,
// 周,日视图时,all-day 不显示
eventLimit
:
true
,
// 设置月日程,与all-day slot的最大显示数量,超过的通过弹窗显示
eventLimit
:
true
,
// 设置月日程,与all-day slot的最大显示数量,超过的通过弹窗显示
customButtons
:
{
customButtons
:
{
myCustomButton
:
{
myCustomButton
:
{
text
:
'本周'
,
text
:
'本周'
,
},
},
headerToolbar
:
{
// 日历头部按钮位置
left
:
''
,
center
:
'prev myCustomButton next'
,
right
:
''
,
},
},
expandRows
:
true
,
},
slotMinWidth
:
50
,
headerToolbar
:
{
slotDuration
:
'01:00:00'
,
// 日历头部按钮位置
slotMinTime
:
'09:00'
,
left
:
''
,
slotMaxTime
:
'21:00'
,
center
:
'prev myCustomButton next'
,
slotLabelInterval
:
''
,
right
:
''
,
scrollTime
:
false
,
},
slotLabelFormat
:
{
expandRows
:
true
,
hour
:
'numeric'
,
slotMinWidth
:
50
,
minute
:
'2-digit'
,
slotDuration
:
'01:00:00'
,
meridiem
:
'short'
,
slotMinTime
:
'01:00'
,
hour12
:
false
,
// 设置时间为24小时
slotMaxTime
:
'23:00'
,
slotLabelInterval
:
''
,
scrollTime
:
false
,
slotLabelFormat
:
{
hour
:
'numeric'
,
minute
:
'2-digit'
,
meridiem
:
'short'
,
hour12
:
false
,
// 设置时间为24小时
},
eventLimitNum
:
{
// 事件显示数量限制(本地测试未能生效)
dayGrid
:
{
eventLimit
:
5
,
},
},
eventLimitNum
:
{
timeGrid
:
{
// 事件显示数量限制(本地测试未能生效)
eventLimit
:
4
,
// adjust to 6 only for timeGridWeek/timeGridDay
dayGrid
:
{
eventLimit
:
5
,
},
timeGrid
:
{
eventLimit
:
4
,
// adjust to 6 only for timeGridWeek/timeGridDay
},
},
},
eventClick
:
this
.
handleEventClick
,
},
},
workingTicketVisible
:
false
,
// 工作表票详情页面
eventClick
:
this
.
handleEventClick
,
scrollerHeight
:
0
,
loading
:
false
,
isDoIt
:
false
,
getStartWeek
:
''
,
copyArr
:
[],
centerDialogVisible
:
false
,
maxNumValue
:
''
,
showFirNum
:
''
,
showMaxNum
:
''
,
};
},
computed
:
{},
watch
:
{
week
(
newV
,
oldV
)
{
if
(
this
.
haveWeek
.
indexOf
(
newV
)
==
-
1
)
{
this
.
haveWeek
.
push
(
newV
);
this
.
handleInitSearch
();
}
if
(
newV
!==
oldV
)
{
this
.
handleInitSearch
();
this
.
saveDoctoreScheduling
(
2
,
oldV
);
}
},
},
workingTicketVisible
:
false
,
// 工作表票详情页面
scrollerHeight
:
0
,
loading
:
false
,
isDoIt
:
false
,
getStartWeek
:
''
,
copyArr
:
[],
centerDialogVisible
:
false
,
maxNumValue
:
''
,
showFirNum
:
''
,
showMaxNum
:
''
,
};
},
computed
:
{},
watch
:
{
week
(
newV
,
oldV
)
{
if
(
this
.
haveWeek
.
indexOf
(
newV
)
==
-
1
)
{
this
.
haveWeek
.
push
(
newV
);
this
.
handleInitSearch
();
}
if
(
newV
!==
oldV
)
{
this
.
handleInitSearch
();
this
.
saveDoctoreScheduling
(
2
,
oldV
);
}
},
},
created
()
{
},
this
.
schedulingType
=
this
.
$route
.
query
.
type
||
1
;
created
()
{
this
.
id
=
this
.
$route
.
query
.
id
;
this
.
schedulingType
=
this
.
$route
.
query
.
type
||
1
;
(
this
.
doctorId
=
this
.
$route
.
query
.
doctorId
),
this
.
id
=
this
.
$route
.
query
.
id
;
(
this
.
doctorId
=
this
.
$route
.
query
.
doctorId
),
getDoctorInfo
({
id
:
this
.
id
}).
then
((
res
)
=>
{
getDoctorInfo
({
id
:
this
.
id
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
schedulingTypeValue
=
res
.
data
;
this
.
schedulingTypeValue
=
res
.
data
;
...
@@ -285,412 +285,409 @@
...
@@ -285,412 +285,409 @@
this
.
$toast
(
res
.
message
);
this
.
$toast
(
res
.
message
);
}
}
});
});
getLevel
().
then
((
res
)
=>
{
getLevel
().
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
if
(
res
.
code
==
'000000'
)
{
this
.
createList
=
res
.
data
;
this
.
createList
=
res
.
data
;
}
}
});
});
},
},
mounted
()
{
mounted
()
{
this
.
scrollerHeight
=
this
.
$refs
.
agment
.
clientHeight
+
'px'
;
this
.
scrollerHeight
=
this
.
$refs
.
agment
.
clientHeight
+
'px'
;
this
.
init
();
this
.
init
();
},
methods
:
{
/**
* 点击日历日程事件
*
* info: 事件信息
* event是日程(事件)对象
* jsEvent是个javascript事件
* view是当前视图对象。
*/
init
()
{
// schedulingType 1,2 表示编辑新加,其他表示查看
if
(
this
.
schedulingType
==
1
||
this
.
schedulingType
==
2
)
{
this
.
calendarOptions
.
editable
=
true
;
}
else
{
// 查看
this
.
calendarOptions
.
slotDuration
=
'01:00:00'
;
this
.
calendarOptions
.
selectable
=
false
;
this
.
calendarOptions
.
editable
=
false
;
}
this
.
handleInitSearch
();
this
.
getLevelAndDayCount
();
},
},
methods
:
{
getLevelAndDayCount
(
newV
)
{
/**
const
params
=
{
* 点击日历日程事件
workId
:
newV
?
newV
:
this
.
id
,
*
};
* info: 事件信息
getLevelAndDayCount
(
params
).
then
((
res
)
=>
{
* event是日程(事件)对象
if
(
res
.
code
===
'000000'
)
{
* jsEvent是个javascript事件
console
.
log
(
res
,
'res'
);
* view是当前视图对象。
this
.
currentIndex
=
res
.
data
.
level
;
*/
this
.
maxNumValue
=
res
.
data
.
preNum
;
init
()
{
(
this
.
showFirNum
=
res
.
data
.
level
),
// schedulingType 1,2 表示编辑新加,其他表示查看
if
(
this
.
schedulingType
==
1
||
this
.
schedulingType
==
2
)
{
this
.
calendarOptions
.
editable
=
true
;
}
else
{
// 查看
this
.
calendarOptions
.
slotDuration
=
'01:00:00'
;
this
.
calendarOptions
.
selectable
=
false
;
this
.
calendarOptions
.
editable
=
false
;
}
this
.
handleInitSearch
();
this
.
getLevelAndDayCount
();
},
getLevelAndDayCount
(
newV
)
{
const
params
=
{
workId
:
newV
?
newV
:
this
.
id
,
};
getLevelAndDayCount
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
console
.
log
(
res
,
'res'
);
this
.
currentIndex
=
res
.
data
.
level
;
this
.
maxNumValue
=
res
.
data
.
preNum
;
(
this
.
showFirNum
=
res
.
data
.
level
),
(
this
.
showMaxNum
=
res
.
data
.
preNum
);
(
this
.
showMaxNum
=
res
.
data
.
preNum
);
}
});
},
navLinkDayClick
(
date
)
{
const
day
=
dayjs
(
date
).
day
();
const
dayDate
=
dayjs
(
date
).
date
();
const
dayFormat
=
dayjs
(
date
).
format
(
'YYYY-MM-DD'
);
let
selectDate
=
dayFormat
+
' '
+
'09:00:00'
;
selectDate
=
dayjs
(
selectDate
).
unix
();
const
nowDate
=
dayjs
(
new
Date
()).
unix
();
let
isAddAllDay
=
true
;
const
haveSelectDate
=
this
.
calendarOptions
.
events
;
const
len
=
haveSelectDate
.
length
;
const
differenceTime
=
((
nowDate
-
selectDate
)
/
3600
)
|
0
;
if
(
differenceTime
>
0
&&
differenceTime
>=
24
)
{
return
this
.
$message
.
info
(
'你不能添加过去的时间的排班'
);
}
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
const
itemDay
=
dayjs
(
haveSelectDate
[
i
].
start
).
day
();
if
(
!
haveSelectDate
[
i
].
constraint
&&
day
===
itemDay
)
{
haveSelectDate
[
i
].
allStatus
&&
(
isAddAllDay
=
false
);
const
index
=
this
.
getIdDeleteData
(
haveSelectDate
[
i
].
id
);
this
.
isDoIt
=
true
;
this
.
calendarOptions
.
events
.
splice
(
index
,
1
);
i
--
;
}
}
}
if
(
isAddAllDay
)
{
});
// 添加日期
},
const
selectAllDay
=
[
navLinkDayClick
(
date
)
{
{
startTime
:
'09:00:00'
,
endTime
:
'12:00:00'
},
const
day
=
dayjs
(
date
).
day
();
{
startTime
:
'13:00:00'
,
endTime
:
'21:00:00'
},
const
dayDate
=
dayjs
(
date
).
date
();
];
const
dayFormat
=
dayjs
(
date
).
format
(
'YYYY-MM-DD'
);
selectAllDay
.
forEach
((
item
)
=>
{
let
selectDate
=
dayFormat
+
' '
+
'01:00:00'
;
const
allDayData
=
{};
selectDate
=
dayjs
(
selectDate
).
unix
();
allDayData
.
id
=
const
nowDate
=
dayjs
(
new
Date
()).
unix
();
dayDate
+
(
this
.
calendarOptions
.
events
.
length
+
1
)
*
10
;
let
isAddAllDay
=
true
;
allDayData
.
week
=
this
.
week
;
const
haveSelectDate
=
this
.
calendarOptions
.
events
;
allDayData
.
end
=
dayFormat
+
' '
+
item
.
endTime
;
const
len
=
haveSelectDate
.
length
;
allDayData
.
start
=
dayFormat
+
' '
+
item
.
startTime
;
const
differenceTime
=
((
nowDate
-
selectDate
)
/
3600
)
|
0
;
allDayData
.
allStatus
=
true
;
if
(
differenceTime
>
0
&&
differenceTime
>=
24
)
{
console
.
log
(
allDayData
);
return
this
.
$message
.
info
(
'你不能添加过去的时间的排班'
);
this
.
calendarOptions
.
events
.
push
(
allDayData
);
}
});
for
(
var
i
=
0
;
i
<
len
;
i
++
)
{
const
itemDay
=
dayjs
(
haveSelectDate
[
i
].
start
).
day
();
if
(
!
haveSelectDate
[
i
].
constraint
&&
day
===
itemDay
)
{
haveSelectDate
[
i
].
allStatus
&&
(
isAddAllDay
=
false
);
const
index
=
this
.
getIdDeleteData
(
haveSelectDate
[
i
].
id
);
this
.
isDoIt
=
true
;
this
.
isDoIt
=
true
;
this
.
calendarOptions
.
events
.
splice
(
index
,
1
);
i
--
;
}
}
},
}
getCopyData
(
lastWeekData
)
{
if
(
isAddAllDay
)
{
const
copyDate
=
[];
// 添加日期
const
addDay
=
7
;
const
selectAllDay
=
[{
startTime
:
'01:00:00'
,
endTime
:
'23:00:00'
}];
lastWeekData
.
noAcceptList
.
map
((
item
)
=>
{
selectAllDay
.
forEach
((
item
)
=>
{
const
nowWeekTime
=
{};
const
allDayData
=
{};
nowWeekTime
[
'startTime'
]
=
dayjs
(
item
.
startTime
)
allDayData
.
id
=
.
add
(
addDay
,
'day'
)
dayDate
+
(
this
.
calendarOptions
.
events
.
length
+
1
)
*
10
;
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
allDayData
.
week
=
this
.
week
;
nowWeekTime
[
'endTime'
]
=
dayjs
(
item
.
endTime
)
allDayData
.
end
=
dayFormat
+
' '
+
item
.
endTime
;
.
add
(
addDay
,
'day'
)
allDayData
.
start
=
dayFormat
+
' '
+
item
.
startTime
;
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
allDayData
.
allStatus
=
true
;
copyDate
.
push
(
nowWeekTime
);
console
.
log
(
allDayData
);
this
.
calendarOptions
.
events
.
push
(
allDayData
);
});
});
this
.
calendarOptions
.
events
=
[];
lastWeekData
.
noAcceptList
=
copyDate
;
this
.
isDoIt
=
true
;
this
.
isDoIt
=
true
;
},
}
handleInitSearch
(
isReset
,
isLoopLast
)
{
},
//
getCopyData
(
lastWeekData
)
{
if
(
isReset
&&
isLoopLast
!=
1
)
{
const
copyDate
=
[];
this
.
calendarOptions
.
events
=
this
.
calendarOptions
.
events
.
filter
(
const
addDay
=
7
;
(
v
)
=>
v
.
week
!==
this
.
week
lastWeekData
.
noAcceptList
.
map
((
item
)
=>
{
);
const
nowWeekTime
=
{};
}
nowWeekTime
[
'startTime'
]
=
dayjs
(
item
.
startTime
)
let
copyWeek
=
''
;
.
add
(
addDay
,
'day'
)
if
(
isLoopLast
==
1
)
{
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
if
(
this
.
week
==
1
)
{
nowWeekTime
[
'endTime'
]
=
dayjs
(
item
.
endTime
)
copyWeek
=
2
;
.
add
(
addDay
,
'day'
)
}
else
if
(
this
.
week
==
3
)
{
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
copyWeek
=
1
;
copyDate
.
push
(
nowWeekTime
);
}
else
if
(
this
.
week
==
4
)
{
});
copyWeek
=
3
;
this
.
calendarOptions
.
events
=
[];
}
else
if
(
this
.
week
==
5
)
{
lastWeekData
.
noAcceptList
=
copyDate
;
copyWeek
=
4
;
this
.
isDoIt
=
true
;
}
},
handleInitSearch
(
isReset
,
isLoopLast
)
{
//
if
(
isReset
&&
isLoopLast
!=
1
)
{
this
.
calendarOptions
.
events
=
this
.
calendarOptions
.
events
.
filter
(
(
v
)
=>
v
.
week
!==
this
.
week
);
}
let
copyWeek
=
''
;
if
(
isLoopLast
==
1
)
{
if
(
this
.
week
==
1
)
{
copyWeek
=
2
;
}
else
if
(
this
.
week
==
3
)
{
copyWeek
=
1
;
}
else
if
(
this
.
week
==
4
)
{
copyWeek
=
3
;
}
else
if
(
this
.
week
==
5
)
{
copyWeek
=
4
;
}
}
const
searchLastWeek
=
{};
}
searchLastWeek
.
doctorId
=
this
.
doctorId
;
const
searchLastWeek
=
{};
searchLastWeek
.
week
=
isLoopLast
==
1
?
copyWeek
:
this
.
week
;
searchLastWeek
.
doctorId
=
this
.
doctorId
;
// isLoopLast == 1 表示 copy
searchLastWeek
.
week
=
isLoopLast
==
1
?
copyWeek
:
this
.
week
;
searchLastWeek
.
workId
=
this
.
id
;
// isLoopLast == 1 表示 copy
dutyRosterQuery
(
searchLastWeek
).
then
((
res
)
=>
{
searchLastWeek
.
workId
=
this
.
id
;
if
(
res
.
code
==
'000000'
)
{
dutyRosterQuery
(
searchLastWeek
).
then
((
res
)
=>
{
console
.
log
(
res
.
data
.
noAcceptList
,
'res.data.noAcceptList'
);
if
(
res
.
code
==
'000000'
)
{
if
(
isLoopLast
==
1
&&
!
res
.
data
.
noAcceptList
.
length
)
{
console
.
log
(
res
.
data
.
noAcceptList
,
'res.data.noAcceptList'
);
return
this
.
$toast
(
'没有上周的排班信息可以用'
);
if
(
isLoopLast
==
1
&&
!
res
.
data
.
noAcceptList
.
length
)
{
}
else
{
return
this
.
$toast
(
'没有上周的排班信息可以用'
);
this
.
calendarOptions
.
events
=
[];
}
if
(
isLoopLast
==
1
&&
res
.
data
.
noAcceptList
.
length
)
{
this
.
getCopyData
(
res
.
data
);
}
this
.
handleInitData
(
res
.
data
);
}
else
{
}
else
{
this
.
$toast
(
res
.
message
)
;
this
.
calendarOptions
.
events
=
[]
;
}
}
});
if
(
isLoopLast
==
1
&&
res
.
data
.
noAcceptList
.
length
)
{
},
this
.
getCopyData
(
res
.
data
);
handleInitData
(
weekData
)
{
}
var
newDate
=
null
;
this
.
handleInitData
(
res
.
data
);
if
(
this
.
schedulingType
!=
3
)
{
newDate
=
[].
concat
(
weekData
.
noAcceptList
);
}
else
{
}
else
{
var
acceptList
=
[];
this
.
$toast
(
res
.
message
);
weekData
.
acceptList
.
forEach
((
item
)
=>
{
item
.
type
=
88
;
acceptList
.
push
(
item
);
});
newDate
=
[].
concat
(
acceptList
,
weekData
.
noAcceptList
);
}
}
newDate
.
forEach
((
item
)
=>
{
});
const
selectDate
=
{};
},
const
id
=
(
this
.
calendarOptions
.
events
.
length
+
1
)
*
10
;
handleInitData
(
weekData
)
{
selectDate
[
'week'
]
=
this
.
week
;
var
newDate
=
null
;
selectDate
[
'id'
]
=
id
;
if
(
this
.
schedulingType
!=
3
)
{
selectDate
[
'end'
]
=
item
.
endTime
;
newDate
=
[].
concat
(
weekData
.
noAcceptList
);
selectDate
[
'start'
]
=
item
.
startTime
;
}
else
{
selectDate
[
'type'
]
=
item
.
type
;
var
acceptList
=
[];
if
(
item
.
type
==
88
)
{
weekData
.
acceptList
.
forEach
((
item
)
=>
{
selectDate
[
'color'
]
=
'#FFEDE9'
;
item
.
type
=
88
;
}
acceptList
.
push
(
item
);
this
.
calendarOptions
.
events
.
push
(
selectDate
);
});
});
this
.
limmitDateFun
();
newDate
=
[].
concat
(
acceptList
,
weekData
.
noAcceptList
);
},
}
limmitDateFun
()
{
newDate
.
forEach
((
item
)
=>
{
for
(
let
i
=
0
;
i
<
7
;
i
++
)
{
const
selectDate
=
{};
const
limitTime
=
{};
const
id
=
(
this
.
calendarOptions
.
events
.
length
+
1
)
*
10
;
const
day
=
dayjs
(
this
.
getEveryDay
)
selectDate
[
'week'
]
=
this
.
week
;
.
add
(
i
,
'day'
)
selectDate
[
'id'
]
=
id
;
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
selectDate
[
'end'
]
=
item
.
endTime
;
limitTime
.
start
=
dayjs
(
day
)
selectDate
[
'start'
]
=
item
.
startTime
;
.
add
(
12
,
'hour'
)
selectDate
[
'type'
]
=
item
.
type
;
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
if
(
item
.
type
==
88
)
{
limitTime
.
end
=
dayjs
(
day
)
selectDate
[
'color'
]
=
'#FFEDE9'
;
.
add
(
13
,
'hour'
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
limitTime
.
constraint
=
'businessHours'
;
limitTime
.
color
=
'#ccc'
;
limitTime
.
display
=
'background'
;
limitTime
.
editable
=
false
;
this
.
calendarOptions
.
events
.
push
(
limitTime
);
}
console
.
log
(
'obj'
,
this
.
getEveryDay
);
},
handleDatesSet
(
dataInfo
)
{
this
.
getEveryDay
=
dayjs
(
dataInfo
.
start
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
const
currentTime
=
new
Date
().
getTime
();
// 今天的时间戳
const
getTime
=
new
Date
(
dataInfo
.
start
).
getTime
();
// 每周周一的时间戳
const
cz
=
currentTime
-
getTime
;
// 每周周一时间戳 - 今天的时间
const
oneHour
=
1
*
60
*
60
*
1000
*
24
;
// 一天的时间戳
const
timeDifference
=
(
cz
/
oneHour
)
|
0
;
// 每周一时间距离今天时间数量
const
weekHeadTitle
=
this
.
calendarOptions
.
customButtons
.
myCustomButton
;
console
.
log
(
timeDifference
,
'timeDifference'
,
cz
/
oneHour
);
// debugger;
const
exactTime
=
cz
/
oneHour
;
if
(
timeDifference
==
0
&&
exactTime
>
0
)
{
this
.
week
=
1
;
weekHeadTitle
.
text
=
'本周'
;
return
;
}
}
if
(
timeDifference
>
0
&&
timeDifference
<=
6
)
{
this
.
calendarOptions
.
events
.
push
(
selectDate
);
// 过去
});
this
.
week
=
1
;
// this.limmitDateFun();
weekHeadTitle
.
text
=
'本周'
;
},
}
else
if
(
timeDifference
>=
-
6
&&
timeDifference
<=
0
)
{
limmitDateFun
()
{
// 未来
for
(
let
i
=
0
;
i
<
7
;
i
++
)
{
this
.
week
=
3
;
const
limitTime
=
{};
weekHeadTitle
.
text
=
'下周'
;
const
day
=
dayjs
(
this
.
getEveryDay
)
}
else
if
(
timeDifference
>=
-
13
&&
timeDifference
<=
-
7
)
{
.
add
(
i
,
'day'
)
// 未来
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
this
.
week
=
4
;
weekHeadTitle
.
text
=
'第二周'
;
limitTime
.
start
=
dayjs
(
day
)
}
else
if
(
timeDifference
>=
-
20
&&
timeDifference
<=
-
14
)
{
.
add
(
12
,
'hour'
)
// 未来
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
this
.
week
=
5
;
limitTime
.
end
=
dayjs
(
day
)
weekHeadTitle
.
text
=
'第三周'
;
.
add
(
13
,
'hour'
)
}
else
if
(
timeDifference
>=
7
)
{
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
// 现在
limitTime
.
constraint
=
'businessHours'
;
weekHeadTitle
.
text
=
'上周'
;
limitTime
.
color
=
'#ccc'
;
this
.
week
=
2
;
limitTime
.
display
=
'background'
;
limitTime
.
editable
=
false
;
this
.
calendarOptions
.
events
.
push
(
limitTime
);
}
},
handleDatesSet
(
dataInfo
)
{
this
.
getEveryDay
=
dayjs
(
dataInfo
.
start
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
const
currentTime
=
new
Date
().
getTime
();
// 今天的时间戳
const
getTime
=
new
Date
(
dataInfo
.
start
).
getTime
();
// 每周周一的时间戳
const
cz
=
currentTime
-
getTime
;
// 每周周一时间戳 - 今天的时间
const
oneHour
=
1
*
60
*
60
*
1000
*
24
;
// 一天的时间戳
const
timeDifference
=
(
cz
/
oneHour
)
|
0
;
// 每周一时间距离今天时间数量
const
weekHeadTitle
=
this
.
calendarOptions
.
customButtons
.
myCustomButton
;
console
.
log
(
timeDifference
,
'timeDifference'
,
cz
/
oneHour
);
// debugger;
const
exactTime
=
cz
/
oneHour
;
if
(
timeDifference
==
0
&&
exactTime
>
0
)
{
this
.
week
=
1
;
weekHeadTitle
.
text
=
'本周'
;
return
;
}
if
(
timeDifference
>
0
&&
timeDifference
<=
6
)
{
// 过去
this
.
week
=
1
;
weekHeadTitle
.
text
=
'本周'
;
}
else
if
(
timeDifference
>=
-
6
&&
timeDifference
<=
0
)
{
// 未来
this
.
week
=
3
;
weekHeadTitle
.
text
=
'下周'
;
}
else
if
(
timeDifference
>=
-
13
&&
timeDifference
<=
-
7
)
{
// 未来
this
.
week
=
4
;
weekHeadTitle
.
text
=
'第二周'
;
}
else
if
(
timeDifference
>=
-
20
&&
timeDifference
<=
-
14
)
{
// 未来
this
.
week
=
5
;
weekHeadTitle
.
text
=
'第三周'
;
}
else
if
(
timeDifference
>=
7
)
{
// 现在
weekHeadTitle
.
text
=
'上周'
;
this
.
week
=
2
;
}
},
eventResize
(
event
)
{
const
index
=
this
.
getIdDeleteData
(
event
.
event
.
id
);
const
oldData
=
this
.
calendarOptions
.
events
;
const
keyAll
=
Object
.
keys
(
oldData
[
index
]);
const
dataObj
=
{};
keyAll
.
forEach
((
item
)
=>
{
if
(
item
===
'week'
||
item
===
'type'
)
{
dataObj
[
item
]
=
oldData
[
index
][
item
];
}
else
{
dataObj
[
item
]
=
event
.
event
[
item
];
}
}
},
});
eventResize
(
event
)
{
oldData
.
splice
(
index
,
1
,
dataObj
);
this
.
getHandleTime
(
dataObj
);
},
handleEventClick
(
event
)
{
if
(
!
this
.
calendarOptions
.
selectable
||
event
.
event
.
constraint
)
{
return
;
}
this
.
$confirm
(
'你要取消日期吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
((
_
)
=>
{
console
.
log
(
_
);
const
index
=
this
.
getIdDeleteData
(
event
.
event
.
id
);
const
index
=
this
.
getIdDeleteData
(
event
.
event
.
id
);
const
oldData
=
this
.
calendarOptions
.
events
;
this
.
isDoIt
=
true
;
const
keyAll
=
Object
.
keys
(
oldData
[
index
]);
this
.
calendarOptions
.
events
.
splice
(
index
,
1
);
const
dataObj
=
{};
});
keyAll
.
forEach
((
item
)
=>
{
},
if
(
item
===
'week'
||
item
===
'type'
)
{
eventDrop
(
event
)
{
dataObj
[
item
]
=
oldData
[
index
][
item
];
event
.
revert
();
}
else
{
return
;
dataObj
[
item
]
=
event
.
event
[
item
];
},
}
// 每小时接诊上限人数
});
getMaxNumValue
(
value
)
{
oldData
.
splice
(
index
,
1
,
dataObj
);
console
.
log
(
value
,
'getMaxNumValue'
);
this
.
getHandleTime
(
dataObj
);
this
.
maxNumValue
=
value
;
},
},
handleEventClick
(
event
)
{
// 提交优先级和人数
if
(
!
this
.
calendarOptions
.
selectable
||
event
.
event
.
constraint
)
{
submitSetData
()
{
return
;
const
params
=
{
doctorId
:
this
.
doctorId
,
level
:
this
.
currentIndex
,
workId
:
this
.
id
,
preNum
:
this
.
maxNumValue
,
};
saveLevelAndDayCount
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
this
.
$message
({
message
:
'设置成功'
,
type
:
'success'
,
});
this
.
centerDialogVisible
=
false
;
this
.
getLevelAndDayCount
();
}
}
this
.
$confirm
(
'你要取消日期吗?'
,
'提示'
,
{
});
confirmButtonText
:
'确定'
,
},
cancelButtonText
:
'取消'
,
selectInfo
(
info
)
{
type
:
'warning'
,
console
.
log
(
info
,
'infoinfoinfo'
);
}).
then
((
_
)
=>
{
const
day
=
dayjs
(
info
.
start
).
date
();
console
.
log
(
_
);
const
id
=
day
+
(
this
.
calendarOptions
.
events
.
length
+
1
)
*
10
;
const
index
=
this
.
getIdDeleteData
(
event
.
event
.
id
);
info
.
id
=
id
;
this
.
isDoIt
=
true
;
const
keyAll
=
[
'end'
,
'id'
,
'start'
,
'week'
];
this
.
calendarOptions
.
events
.
splice
(
index
,
1
);
const
selectTime
=
{};
keyAll
.
forEach
((
item
)
=>
{
if
(
item
==
'week'
)
{
selectTime
[
item
]
=
this
.
week
;
}
else
{
selectTime
[
item
]
=
info
[
item
];
}
});
console
.
log
(
selectTime
,
'dataObjdataObj'
);
this
.
calendarOptions
.
events
.
push
(
selectTime
);
},
selectAllow
(
info
)
{
this
.
isDoIt
=
true
;
const
startDay
=
new
Date
(
info
.
start
).
getDay
();
const
endDay
=
new
Date
(
info
.
end
).
getDay
();
console
.
log
(
dayjs
(
info
.
start
).
format
(
'YYYY-MM-DD HH:mm:ss'
));
if
(
startDay
!=
endDay
)
{
return
false
;
}
const
currentDate
=
new
Date
();
const
start
=
info
.
start
;
const
end
=
info
.
end
;
return
start
<=
end
&&
start
>=
currentDate
;
},
getIdDeleteData
(
eventId
)
{
// 删除现有排班
const
data
=
this
.
calendarOptions
.
events
;
const
index
=
data
.
findIndex
((
event
)
=>
event
.
id
==
eventId
);
return
index
;
},
getHandleTime
(
info
)
{
// 对于排班交叉部分处理
const
infoStart
=
new
Date
(
info
.
start
).
getTime
();
const
infoEnd
=
new
Date
(
info
.
end
).
getTime
();
const
haveSelectTime
=
this
.
calendarOptions
.
events
;
const
correctDate
=
[];
let
isRepeat
=
false
;
haveSelectTime
.
forEach
((
item
)
=>
{
const
selectEndTime
=
new
Date
(
item
.
end
).
getTime
();
const
selectStartTime
=
new
Date
(
item
.
start
).
getTime
();
if
(
selectStartTime
>
infoStart
&&
infoEnd
>=
selectEndTime
)
{
isRepeat
=
true
;
}
else
if
(
selectStartTime
>
infoStart
&&
infoEnd
>=
selectStartTime
)
{
isRepeat
=
true
;
}
else
{
const
id
=
(
correctDate
.
length
+
1
)
*
10
;
item
.
id
=
id
;
correctDate
.
push
(
item
);
}
});
this
.
calendarOptions
.
events
=
correctDate
;
return
isRepeat
;
},
handlePriority
(
index
)
{
this
.
isDoIt
=
true
;
this
.
currentIndex
=
index
;
},
resetDoctoreScheduling
()
{
this
.
handleInitSearch
(
true
);
},
copyDoctoreScheduling
()
{
this
.
handleInitSearch
(
true
,
1
);
},
saveDoctoreScheduling
(
type
,
weekV
=
0
)
{
if
(
this
.
isDoIt
)
{
this
.
loading
=
true
;
const
saveParms
=
{};
saveParms
.
week
=
weekV
?
weekV
:
this
.
week
;
saveParms
.
workId
=
this
.
schedulingTypeValue
.
id
;
const
lastData
=
[];
const
haveSelectDate
=
this
.
calendarOptions
.
events
;
haveSelectDate
.
forEach
((
item
)
=>
{
if
(
item
.
week
==
(
weekV
?
weekV
:
this
.
week
))
{
const
saveDate
=
{};
saveDate
.
startTime
=
dayjs
(
item
.
start
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
saveDate
.
endTime
=
dayjs
(
item
.
end
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
lastData
.
push
(
saveDate
);
}
});
});
},
console
.
log
(
'saveParms======='
,
saveParms
);
eventDrop
(
event
)
{
// saveParms.list = lastData.filter((item) => {
event
.
revert
();
// return item.startTime.split(' ')[1] !== '12:00:00';
return
;
// });
},
saveParms
.
list
=
lastData
.
slice
(
0
);
// 每小时接诊上限人数
saveDutyRoster
(
saveParms
).
then
((
res
)
=>
{
getMaxNumValue
(
value
)
{
console
.
log
(
value
,
'getMaxNumValue'
);
this
.
maxNumValue
=
value
;
},
// 提交优先级和人数
submitSetData
()
{
const
params
=
{
doctorId
:
this
.
doctorId
,
level
:
this
.
currentIndex
,
workId
:
this
.
id
,
preNum
:
this
.
maxNumValue
,
};
saveLevelAndDayCount
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
if
(
res
.
code
===
'000000'
)
{
this
.
loading
=
false
;
this
.
$message
({
this
.
$message
({
message
:
'
设置
成功'
,
message
:
'
排班保存
成功'
,
type
:
'success'
,
type
:
'success'
,
});
});
this
.
centerDialogVisible
=
false
;
this
.
isDoIt
=
false
;
this
.
getLevelAndDayCount
();
this
.
handleInitSearch
(
true
);
}
});
},
selectInfo
(
info
)
{
console
.
log
(
info
,
'infoinfoinfo'
);
const
day
=
dayjs
(
info
.
start
).
date
();
const
id
=
day
+
(
this
.
calendarOptions
.
events
.
length
+
1
)
*
10
;
info
.
id
=
id
;
const
keyAll
=
[
'end'
,
'id'
,
'start'
,
'week'
];
const
selectTime
=
{};
keyAll
.
forEach
((
item
)
=>
{
if
(
item
==
'week'
)
{
selectTime
[
item
]
=
this
.
week
;
}
else
{
}
else
{
selectTime
[
item
]
=
info
[
item
]
;
this
.
$message
.
error
(
res
.
message
||
'排班保存失败'
)
;
}
}
});
});
console
.
log
(
selectTime
,
'dataObjdataObj'
);
if
(
!
this
.
maxNumValue
&&
this
.
maxNumValue
!=
0
)
{
this
.
calendarOptions
.
events
.
push
(
selectTime
);
return
this
.
$message
({
},
message
:
'请设置优先级和接诊上限设置'
,
selectAllow
(
info
)
{
type
:
'warning'
,
this
.
isDoIt
=
true
;
const
startDay
=
new
Date
(
info
.
start
).
getDay
();
const
endDay
=
new
Date
(
info
.
end
).
getDay
();
const
startHour
=
dayjs
(
info
.
start
).
hour
();
console
.
log
(
dayjs
(
info
.
start
).
format
(
'YYYY-MM-DD HH:mm:ss'
));
if
(
startDay
!=
endDay
||
startHour
==
12
)
{
return
false
;
}
const
currentDate
=
new
Date
();
const
start
=
info
.
start
;
const
end
=
info
.
end
;
return
start
<=
end
&&
start
>=
currentDate
;
},
getIdDeleteData
(
eventId
)
{
// 删除现有排班
const
data
=
this
.
calendarOptions
.
events
;
const
index
=
data
.
findIndex
((
event
)
=>
event
.
id
==
eventId
);
return
index
;
},
getHandleTime
(
info
)
{
// 对于排班交叉部分处理
const
infoStart
=
new
Date
(
info
.
start
).
getTime
();
const
infoEnd
=
new
Date
(
info
.
end
).
getTime
();
const
haveSelectTime
=
this
.
calendarOptions
.
events
;
const
correctDate
=
[];
let
isRepeat
=
false
;
haveSelectTime
.
forEach
((
item
)
=>
{
const
selectEndTime
=
new
Date
(
item
.
end
).
getTime
();
const
selectStartTime
=
new
Date
(
item
.
start
).
getTime
();
if
(
selectStartTime
>
infoStart
&&
infoEnd
>=
selectEndTime
)
{
isRepeat
=
true
;
}
else
if
(
selectStartTime
>
infoStart
&&
infoEnd
>=
selectStartTime
)
{
isRepeat
=
true
;
}
else
{
const
id
=
(
correctDate
.
length
+
1
)
*
10
;
item
.
id
=
id
;
correctDate
.
push
(
item
);
}
});
this
.
calendarOptions
.
events
=
correctDate
;
return
isRepeat
;
},
handlePriority
(
index
)
{
this
.
isDoIt
=
true
;
this
.
currentIndex
=
index
;
},
resetDoctoreScheduling
()
{
this
.
handleInitSearch
(
true
);
},
copyDoctoreScheduling
()
{
this
.
handleInitSearch
(
true
,
1
);
},
saveDoctoreScheduling
(
type
,
weekV
=
0
)
{
if
(
this
.
isDoIt
)
{
this
.
loading
=
true
;
const
saveParms
=
{};
saveParms
.
week
=
weekV
?
weekV
:
this
.
week
;
saveParms
.
workId
=
this
.
schedulingTypeValue
.
id
;
const
lastData
=
[];
const
haveSelectDate
=
this
.
calendarOptions
.
events
;
haveSelectDate
.
forEach
((
item
)
=>
{
if
(
item
.
week
==
(
weekV
?
weekV
:
this
.
week
))
{
const
saveDate
=
{};
saveDate
.
startTime
=
dayjs
(
item
.
start
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
saveDate
.
endTime
=
dayjs
(
item
.
end
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
lastData
.
push
(
saveDate
);
}
});
console
.
log
(
'saveParms======='
,
saveParms
);
saveParms
.
list
=
lastData
.
filter
((
item
)
=>
{
return
item
.
startTime
.
split
(
' '
)[
1
]
!==
'12:00:00'
;
});
saveDutyRoster
(
saveParms
).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
this
.
loading
=
false
;
this
.
$message
({
message
:
'排班保存成功'
,
type
:
'success'
,
});
this
.
isDoIt
=
false
;
this
.
handleInitSearch
(
true
);
}
else
{
this
.
$message
.
error
(
res
.
message
||
'排班保存失败'
);
}
});
});
if
(
!
this
.
maxNumValue
&&
this
.
maxNumValue
!=
0
)
{
return
this
.
$message
({
message
:
'请设置优先级和接诊上限设置'
,
type
:
'warning'
,
});
}
}
}
}
,
}
},
},
};
},
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/IM/diagnosis-admin/overviewScheduling.vue
浏览文件 @
af7d58c2
...
@@ -106,244 +106,244 @@
...
@@ -106,244 +106,244 @@
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
departmentAll
}
from
'@/api/diagnosis'
;
import
{
departmentAll
}
from
'@/api/diagnosis'
;
import
FullCalendar
from
'@fullcalendar/vue'
;
import
{
import
dayGridPlugin
from
'@fullcalendar/daygrid'
;
getPlatformUpper
,
import
timeGridPlugin
from
'@fullcalendar/timegrid'
;
previewWork
,
import
interactionPlugin
from
'@fullcalendar/interaction'
;
setPlatformUpper
,
import
resourceTimeGridPlugin
from
'@fullcalendar/resource-timegrid'
;
}
from
'@/api/serviceSchedule'
;
import
{
import
FullCalendar
from
'@fullcalendar/vue'
;
previewWork
,
import
dayGridPlugin
from
'@fullcalendar/daygrid'
;
setPlatformUpper
,
import
interactionPlugin
from
'@fullcalendar/interaction'
;
getPlatformUpper
,
import
resourceTimeGridPlugin
from
'@fullcalendar/resource-timegrid'
;
}
from
'@/api/serviceSchedule'
;
import
timeGridPlugin
from
'@fullcalendar/timegrid'
;
export
default
{
export
default
{
name
:
'Index'
,
name
:
'Index'
,
components
:
{
components
:
{
FullCalendar
,
FullCalendar
,
},
},
data
()
{
data
()
{
return
{
return
{
maxDiaNum
:
10
,
maxDiaNum
:
10
,
dateTime
:
''
,
dateTime
:
''
,
interfaceOptions
:
[],
interfaceOptions
:
[],
innerform
:
[],
innerform
:
[],
props
:
{
props
:
{
// props定义的值根据接口返回的数据定的
// props定义的值根据接口返回的数据定的
label
:
'value'
,
label
:
'value'
,
value
:
'no'
,
value
:
'no'
,
children
:
'interface'
,
children
:
'interface'
,
},
},
departmentId
:
''
,
departmentId
:
''
,
id
:
''
,
id
:
''
,
doctorId
:
''
,
doctorId
:
''
,
schedulingTypeValue
:
{},
schedulingTypeValue
:
{},
schedulingType
:
1
,
// 1 新增 2 编辑 3 查看
schedulingType
:
1
,
// 1 新增 2 编辑 3 查看
createList
:
[],
createList
:
[],
listDate
:
[],
listDate
:
[],
week
:
1
,
// 1:当前周 2:上一周 3:下一周
week
:
1
,
// 1:当前周 2:上一周 3:下一周
currentIndex
:
3
,
currentIndex
:
3
,
haveWeek
:
[
1
],
haveWeek
:
[
1
],
calendarOptions
:
{
calendarOptions
:
{
plugins
:
[
plugins
:
[
dayGridPlugin
,
dayGridPlugin
,
interactionPlugin
,
interactionPlugin
,
timeGridPlugin
,
timeGridPlugin
,
resourceTimeGridPlugin
,
resourceTimeGridPlugin
,
],
],
// timeZone: 'UTC',
// timeZone: 'UTC',
locale
:
'zh-cn'
,
locale
:
'zh-cn'
,
aspectRatio
:
2.8
,
// 设置日历单元格宽度与高度的比例。
aspectRatio
:
2.8
,
// 设置日历单元格宽度与高度的比例。
schedulerLicenseKey
:
'CC-Attribution-NonCommercial-NoDerivatives'
,
schedulerLicenseKey
:
'CC-Attribution-NonCommercial-NoDerivatives'
,
initialView
:
'resourceTimeGridDay'
,
initialView
:
'resourceTimeGridDay'
,
resources
:
[],
resources
:
[],
eventColor
:
'#fff'
,
eventColor
:
'#fff'
,
eventBackgroundColor
:
'#fff'
,
eventBackgroundColor
:
'#fff'
,
events
:
[],
events
:
[],
slotMinWidth
:
50
,
slotMinWidth
:
50
,
resourceAreaWidth
:
'5%'
,
resourceAreaWidth
:
'5%'
,
allDaySlot
:
false
,
// 周,日视图时,all-day 不显示
allDaySlot
:
false
,
// 周,日视图时,all-day 不显示
slotDuration
:
'01:00:00'
,
slotDuration
:
'01:00:00'
,
slotMinTime
:
'09:00'
,
slotMinTime
:
'01:00'
,
slotMaxTime
:
'21:00'
,
slotMaxTime
:
'23:00'
,
slotLabelInterval
:
''
,
slotLabelInterval
:
''
,
scrollTime
:
false
,
scrollTime
:
false
,
initialDate
:
'2021-10-31'
,
initialDate
:
'2021-10-31'
,
slotLabelFormat
:
{
slotLabelFormat
:
{
hour
:
'numeric'
,
hour
:
'numeric'
,
minute
:
'2-digit'
,
minute
:
'2-digit'
,
meridiem
:
'short'
,
meridiem
:
'short'
,
hour12
:
false
,
// 设置时间为24小时
hour12
:
false
,
// 设置时间为24小时
},
expandRows
:
true
,
},
},
workingTicketVisible
:
false
,
// 工作表票详情页面
expandRows
:
true
,
scrollerHeight
:
0
,
},
loading
:
false
,
workingTicketVisible
:
false
,
// 工作表票详情页面
doctorList
:
[],
scrollerHeight
:
0
,
index
:
0
,
loading
:
false
,
getWidth
:
'100%'
,
doctorList
:
[],
getMaxWidth
:
'100%'
,
index
:
0
,
allTilst
:
[],
getWidth
:
'100%'
,
allList
:
{},
getMaxWidth
:
'100%'
,
allTilst
:
[],
allList
:
{},
};
},
watch
:
{},
created
()
{
this
.
departmentAll
();
// this.getPlatformUpper();
},
mounted
()
{},
methods
:
{
getPlatformUpper
()
{
getPlatformUpper
().
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
console
.
log
(
res
);
this
.
maxDiaNum
=
res
.
data
;
}
});
},
setPlatformUpper
()
{
const
params
=
{
num
:
this
.
maxDiaNum
,
};
};
setPlatformUpper
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
this
.
$message
({
message
:
'保存成功'
,
type
:
'success'
,
});
this
.
getPlatformUpper
();
}
});
},
},
watch
:
{},
getInputNumber
(
value
)
{
created
()
{
console
.
log
(
value
,
'getInputNumbergetInputNumber'
);
this
.
departmentAll
();
// this.getPlatformUpper();
},
},
mounted
()
{},
departmentAll
()
{
methods
:
{
departmentAll
().
then
((
res
)
=>
{
getPlatformUpper
()
{
if
(
res
.
code
==
'000000'
)
{
getPlatformUpper
().
then
((
res
)
=>
{
console
.
log
(
res
,
'res111'
);
if
(
res
.
code
===
'000000'
)
{
this
.
allList
=
res
.
data
||
{};
console
.
log
(
res
);
this
.
showListALL
();
this
.
maxDiaNum
=
res
.
data
;
}
}
});
});
},
},
showListALL
()
{
setPlatformUpper
()
{
const
arr
=
[];
const
params
=
{
const
{
departmentMapList
,
parentDepartmentList
}
=
this
.
allList
;
num
:
this
.
maxDiaNum
,
parentDepartmentList
.
map
((
item
)
=>
{
const
obj
=
{
label
:
item
.
departmentName
,
value
:
item
.
departmentId
,
children
:
[],
};
};
setPlatformUpper
(
params
).
then
((
res
)
=>
{
departmentMapList
.
map
((
info
)
=>
{
if
(
res
.
code
===
'000000'
)
{
if
(
info
.
parentDepartmentId
===
obj
.
value
)
{
this
.
$message
({
const
children
=
[];
message
:
'保存成功'
,
info
.
diagnoseDepartmentRespList
.
map
((
detail
)
=>
{
type
:
'success'
,
const
secondObj
=
{
label
:
detail
.
departmentName
,
value
:
detail
.
departmentId
,
text
:
''
,
};
let
secondChildren
=
''
;
(
detail
.
departmentDeseaseRespList
||
[]).
map
((
res
)
=>
{
secondChildren
+=
res
.
deseaseName
+
' '
;
});
secondObj
.
text
=
secondChildren
?
`(
${
secondChildren
}
)`
:
''
;
children
.
push
(
secondObj
);
});
});
this
.
getPlatformUpper
()
;
obj
.
children
=
children
;
}
}
});
});
},
arr
.
push
(
obj
);
getInputNumber
(
value
)
{
});
console
.
log
(
value
,
'getInputNumbergetInputNumber'
);
},
console
.
log
(
arr
);
departmentAll
()
{
this
.
allTilst
=
arr
;
departmentAll
().
then
((
res
)
=>
{
},
if
(
res
.
code
==
'000000'
)
{
// 获取选择的值
console
.
log
(
res
,
'res111'
);
changeDepartment
()
{
this
.
allList
=
res
.
data
||
{};
const
checkedNodes
=
this
.
$refs
[
'cascader'
].
getCheckedNodes
();
this
.
showListALL
();
if
(
checkedNodes
.
length
>
0
)
{
}
this
.
departmentId
=
checkedNodes
[
0
].
value
;
}
else
{
this
.
departmentId
=
''
;
}
},
getNowDate
(
value
)
{
this
.
dateTime
=
value
;
},
search
()
{
if
(
!
this
.
dateTime
||
!
this
.
departmentId
)
{
return
this
.
$message
({
message
:
'科室和时间都需要选择哦!'
,
type
:
'warning'
,
});
});
},
}
showListALL
()
{
const
params
=
{
const
arr
=
[];
dateTime
:
this
.
dateTime
,
const
{
departmentMapList
,
parentDepartmentList
}
=
this
.
allList
;
departmentId
:
this
.
departmentId
,
parentDepartmentList
.
map
((
item
)
=>
{
};
const
obj
=
{
previewWork
({
...
params
}).
then
((
res
)
=>
{
label
:
item
.
departmentName
,
if
(
res
.
code
===
'000000'
&&
res
.
data
)
{
value
:
item
.
departmentId
,
this
.
calendarOptions
.
resources
=
(
res
.
data
.
doctorList
||
[]).
map
(
children
:
[],
(
item
)
=>
{
};
return
{
departmentMapList
.
map
((
info
)
=>
{
id
:
item
.
doctorId
,
if
(
info
.
parentDepartmentId
===
obj
.
value
)
{
title
:
item
.
doctorName
,
const
children
=
[];
};
info
.
diagnoseDepartmentRespList
.
map
((
detail
)
=>
{
const
secondObj
=
{
label
:
detail
.
departmentName
,
value
:
detail
.
departmentId
,
text
:
''
,
};
let
secondChildren
=
''
;
(
detail
.
departmentDeseaseRespList
||
[]).
map
((
res
)
=>
{
secondChildren
+=
res
.
deseaseName
+
' '
;
});
secondObj
.
text
=
secondChildren
?
`(
${
secondChildren
}
)`
:
''
;
children
.
push
(
secondObj
);
});
obj
.
children
=
children
;
}
}
});
);
arr
.
push
(
obj
);
const
dutyRosterPreList
=
(
res
.
data
.
dutyRosterPreList
||
[]).
map
(
});
(
item
,
index
)
=>
{
return
{
console
.
log
(
arr
);
id
:
index
,
this
.
allTilst
=
arr
;
resourceId
:
item
.
doctorId
,
},
end
:
item
.
endTime
,
// 获取选择的值
start
:
item
.
startTime
,
changeDepartment
()
{
color
:
'#FFEDE9'
,
const
checkedNodes
=
this
.
$refs
[
'cascader'
].
getCheckedNodes
();
};
if
(
checkedNodes
.
length
>
0
)
{
}
this
.
departmentId
=
checkedNodes
[
0
].
value
;
);
}
else
{
const
dutyWorkList
=
(
res
.
data
.
dutyWorkList
||
[]).
map
(
this
.
departmentId
=
''
;
(
item
,
index
)
=>
{
}
return
{
},
id
:
index
,
getNowDate
(
value
)
{
resourceId
:
item
.
doctorId
,
this
.
dateTime
=
value
;
end
:
item
.
endTime
,
},
start
:
item
.
startTime
,
search
()
{
color
:
'#E7F4F5'
,
if
(
!
this
.
dateTime
||
!
this
.
departmentId
)
{
};
return
this
.
$message
({
message
:
'科室和时间都需要选择哦!'
,
type
:
'warning'
,
});
}
const
params
=
{
dateTime
:
this
.
dateTime
,
departmentId
:
this
.
departmentId
,
};
previewWork
({
...
params
}).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
&&
res
.
data
)
{
this
.
calendarOptions
.
resources
=
(
res
.
data
.
doctorList
||
[]).
map
(
(
item
)
=>
{
return
{
id
:
item
.
doctorId
,
title
:
item
.
doctorName
,
};
}
);
const
dutyRosterPreList
=
(
res
.
data
.
dutyRosterPreList
||
[]).
map
(
(
item
,
index
)
=>
{
return
{
id
:
index
,
resourceId
:
item
.
doctorId
,
end
:
item
.
endTime
,
start
:
item
.
startTime
,
color
:
'#FFEDE9'
,
};
}
);
const
dutyWorkList
=
(
res
.
data
.
dutyWorkList
||
[]).
map
(
(
item
,
index
)
=>
{
return
{
id
:
index
,
resourceId
:
item
.
doctorId
,
end
:
item
.
endTime
,
start
:
item
.
startTime
,
color
:
'#E7F4F5'
,
};
}
);
if
(
res
.
data
)
{
this
.
calendarOptions
.
events
=
[].
concat
(
dutyRosterPreList
,
dutyWorkList
);
}
}
);
if
(
res
.
data
)
{
this
.
calendarOptions
.
events
=
[].
concat
(
dutyRosterPreList
,
dutyWorkList
);
}
const
calendarApi
=
this
.
$refs
.
fullCalendar
.
getApi
();
const
calendarApi
=
this
.
$refs
.
fullCalendar
.
getApi
();
this
.
getWidth
=
`
${
this
.
getWidth
=
`
${
(
this
.
calendarOptions
.
resources
.
length
+
1
)
*
150
(
this
.
calendarOptions
.
resources
.
length
+
1
)
*
150
}
px`
;
}
px`
;
this
.
getMaxWidth
=
`
${
this
.
getMaxWidth
=
`
${
this
.
calendarOptions
.
resources
.
length
*
150
+
100
this
.
calendarOptions
.
resources
.
length
*
150
+
100
}
px`
;
}
px`
;
calendarApi
.
gotoDate
(
this
.
dateTime
);
calendarApi
.
gotoDate
(
this
.
dateTime
);
console
.
log
(
this
.
calendarOptions
.
resources
);
console
.
log
(
this
.
calendarOptions
.
resources
);
console
.
log
(
this
.
calendarOptions
.
events
);
console
.
log
(
this
.
calendarOptions
.
events
);
}
else
{
}
else
{
this
.
calendarOptions
.
events
=
[];
this
.
calendarOptions
.
events
=
[];
this
.
calendarOptions
.
resources
=
[];
this
.
calendarOptions
.
resources
=
[];
}
}
});
});
},
},
},
};
},
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
vue.config.js
浏览文件 @
af7d58c2
...
@@ -70,7 +70,7 @@ module.exports = {
...
@@ -70,7 +70,7 @@ module.exports = {
port
:
8080
,
port
:
8080
,
proxy
:
{
proxy
:
{
'/proxy'
:
{
'/proxy'
:
{
target
:
'https://
uat
-sc.yunqueyi.com/'
,
target
:
'https://
dev
-sc.yunqueyi.com/'
,
ws
:
false
,
ws
:
false
,
changeOrigin
:
true
,
changeOrigin
:
true
,
secure
:
true
,
secure
:
true
,
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录