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
提交
a6fdd0bb
提交
a6fdd0bb
编写于
2月 23, 2024
作者:
zhongyao.qiao
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'feature/qiao' into 'release'
Feature/qiao See merge request
!281
上级
d915135e
ca8aaa37
变更
5
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
1272 行增加
和
1235 行删除
+1272
-1235
.env.development.local
.env.development.local
+1
-1
.eslintrc.js
.eslintrc.js
+88
-66
diagnosis-editor.vue
src/views/IM/diagnosis-admin/diagnosis-editor.vue
+459
-441
newScheduling.vue
src/views/IM/diagnosis-admin/modal/newScheduling.vue
+500
-503
overviewScheduling.vue
src/views/IM/diagnosis-admin/overviewScheduling.vue
+224
-224
未找到文件。
.env.development.local
浏览文件 @
a6fdd0bb
...
@@ -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=
D321743AA7464709A42053132F5D2F8D
VUE_APP_TOKEN=
B638EE700AD348B8B432E7DF53A48E87
.eslintrc.js
浏览文件 @
a6fdd0bb
...
@@ -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,76 +12,98 @@ module.exports = {
...
@@ -12,76 +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"
:
'off'
,
'vue/script-indent'
:
'off'
,
'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/views/IM/diagnosis-admin/diagnosis-editor.vue
浏览文件 @
a6fdd0bb
...
@@ -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
{
import
{
diagnoseUpdate
,
diagnoseUpdate
,
getAdminDiagnose
,
getAdminDiagnose
,
getDiagnoseLog
,
getDiagnoseLog
,
getDoctorList
,
getDoctorList
,
}
from
'@/api/diagnosis'
;
}
from
'@/api/diagnosis'
;
import
uploadImg
from
'@/components/editor/upload-img'
;
import
uploadImg
from
'@/components/editor/upload-img'
;
import
uploadMusic
from
'@/components/editor/upload-music'
;
import
uploadMusic
from
'@/components/editor/upload-music'
;
import
{
import
{
CAR_LIST
,
CAR_LIST
,
D_S_LIST
,
D_S_LIST
,
FOLLW_LIST
,
FOLLW_LIST
,
PAY_LIST
,
PAY_LIST
,
RELATION_LIST
,
RELATION_LIST
,
SEX_LIST
,
SEX_LIST
,
SOURCE_LIST
,
SOURCE_LIST
,
STATUS_LIST
,
STATUS_LIST
,
TYPE_LIST
,
TYPE_LIST
,
}
from
'@/utils/constants'
;
}
from
'@/utils/constants'
;
import
{
getBirth
}
from
'@/utils/index'
;
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
,
tyleList
:
TYPE_LIST
,
sourceList
:
SOURCE_LIST
,
payList
:
PAY_LIST
,
statusList
:
STATUS_LIST
,
sourceList
:
SOURCE_LIST
,
carList
:
CAR_LIST
,
statusList
:
STATUS_LIST
,
sexList
:
SEX_LIST
,
carList
:
CAR_LIST
,
relationList
:
RELATION_LIST
,
sexList
:
SEX_LIST
,
doctorSourceList
:
D_S_LIST
,
relationList
:
RELATION_LIST
,
followList
:
FOLLW_LIST
,
doctorSourceList
:
D_S_LIST
,
doctorList
:
[],
followList
:
FOLLW_LIST
,
rules
:
{
doctorList
:
[],
appointBeginTime
:
[
rules
:
{
{
required
:
true
,
message
:
'请输入预约时间'
,
trigger
:
'change'
}
,
appointBeginTime
:
[
],
{
required
:
true
,
message
:
'请输入预约时间'
,
trigger
:
'change'
}
,
patientName
:
[
],
{
patientName
:
[
required
:
true
,
{
message
:
'请输入患姓名'
,
required
:
true
,
trigger
:
[
'blur'
,
'change'
],
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
)
=>
{
if
(
this
.
formData
.
appointEndTime
!=
''
&&
this
.
formData
.
appointEndTime
!=
null
)
{
return
(
time
.
getTime
()
>
new
Date
(
this
.
formData
.
appointEndTime
).
getTime
()
);
}
}
,
}
,
}
,
{
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 @@ import { getBirth } from '@/utils/index';
...
@@ -1218,233 +1236,233 @@ import { getBirth } from '@/utils/index';
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
()
{
.
catch
(()
=>
{
getDiagnoseLog
({
this
.
loading
=
false
;
id
:
this
.
diagnoseLogId
,
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
)
{
setObjectArr
(
array
)
{
if
(
const
newArr
=
[];
new
Date
(
val
).
getTime
()
>
array
.
forEach
((
element
)
=>
{
new
Date
(
this
.
formData
.
appointEndTime
).
getTime
()
newArr
.
push
({
from
:
'all'
,
url
:
element
}
);
)
{
}
);
this
.
$message
.
info
(
'开始时间要小于结束时间'
);
return
newArr
;
this
.
formData
.
appointBeginTime
=
''
;
}
,
return
;
openPdf
(
item
)
{
}
window
.
open
(
item
.
url
);
}
}
,
// 预约结束时间选择时
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
);
}
,
}
,
}
,
}
;
}
,
}
;
<
/script
>
<
/script
>
<
style
lang
=
"scss"
scoped
>
<
style
lang
=
"scss"
scoped
>
.
diagnosis
-
list
-
content
{
.
diagnosis
-
list
-
content
{
...
...
src/views/IM/diagnosis-admin/modal/newScheduling.vue
浏览文件 @
a6fdd0bb
...
@@ -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
浏览文件 @
a6fdd0bb
...
@@ -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
dayGridPlugin
from
'@fullcalendar/daygrid'
;
previewWork
,
import
interactionPlugin
from
'@fullcalendar/interaction'
;
setPlatformUpper
,
import
resourceTimeGridPlugin
from
'@fullcalendar/resource-timegrid'
;
getPlatformUpper
,
import
timeGridPlugin
from
'@fullcalendar/timegrid'
;
}
from
'@/api/serviceSchedule'
;
import
FullCalendar
from
'@fullcalendar/vue'
;
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
>
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录