Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-admin-consultation
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
jingqi.liu
pica-admin-consultation
提交
f5f81a46
提交
f5f81a46
编写于
11月 09, 2021
作者:
xiaoping.di
浏览文件
操作
浏览文件
下载
差异文件
修改页面逻辑
上级
5a6504c9
a58e40c7
变更
10
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
718 行增加
和
75 行删除
+718
-75
package.json
package.json
+1
-1
diagnosis.js
src/api/diagnosis.js
+15
-0
serviceSchedule.js
src/api/serviceSchedule.js
+13
-0
diagnosis-doctor.vue
src/components/common/diagnosis-doctor.vue
+383
-19
table-serviceSchedule.vue
src/components/list/table-serviceSchedule.vue
+7
-0
diagnosis-list-new.vue
src/views/IM/diagnosis-admin/diagnosis-list-new.vue
+5
-1
index.scss
src/views/IM/diagnosis-admin/modal/index.scss
+4
-0
newScheduling.vue
src/views/IM/diagnosis-admin/modal/newScheduling.vue
+144
-13
overviewScheduling.vue
src/views/IM/diagnosis-admin/overviewScheduling.vue
+145
-40
yarn.lock
yarn.lock
+1
-1
未找到文件。
package.json
浏览文件 @
f5f81a46
...
...
@@ -28,7 +28,7 @@
"
axios
"
:
"
^0.19.2
"
,
"
clipboard
"
:
"
^2.0.6
"
,
"
core-js
"
:
"
^3.6.5
"
,
"
dayjs
"
:
"
^1.
8.30
"
,
"
dayjs
"
:
"
^1.
10.7
"
,
"
dsbridge
"
:
"
^3.1.4
"
,
"
element-ui
"
:
"
^2.6.1
"
,
"
js-cookie
"
:
"
^3.0.1
"
,
...
...
src/api/diagnosis.js
浏览文件 @
f5f81a46
...
...
@@ -265,3 +265,18 @@ export const opAck = async (data) => {
method
:
'post'
,
});
};
export
const
acceptsCeiling
=
async
(
data
)
=>
{
return
request
({
url
:
'/diagnose/admin/diagnose/accepts/ceiling'
,
params
:
data
,
method
:
'get'
,
});
};
export
const
getLeisureTime
=
async
(
data
)
=>
{
return
request
({
url
:
'/diagnose/doctor/work/getLeisureTime'
,
data
:
data
,
method
:
'post'
,
});
};
src/api/serviceSchedule.js
浏览文件 @
f5f81a46
...
...
@@ -65,3 +65,16 @@ export const previewWork = async (data) => {
data
:
data
,
});
};
export
const
setPlatformUpper
=
async
(
data
)
=>
{
return
request
({
url
:
`/diagnose/doctor/work/setPlatformUpper/
${
data
.
num
}
`
,
data
:
data
,
method
:
'post'
,
});
};
export
const
getPlatformUpper
=
async
()
=>
{
return
request
({
url
:
'/diagnose/doctor/work/getPlatformUpper'
,
method
:
'post'
,
});
};
src/components/common/diagnosis-doctor.vue
浏览文件 @
f5f81a46
...
...
@@ -7,7 +7,7 @@
@
open=
"opendialog"
>
<!--
<el-row
:gutter=
"30"
class=
"row search"
type=
"flex"
style=
"margin-bottom:0;"
>
-->
<el-form
<
!--
<
el-form
ref=
"setForm"
:rules=
"addRules"
:model=
"formData"
...
...
@@ -21,9 +21,9 @@
label=
"接诊医生"
class=
"required-label"
prop=
"receptionId"
>
>
-->
<!--
<el-input
v-model=
"formData.doctorName"
placeholder=
"请选择接诊医生"
class=
"set-width"
disabled
></el-input>
-->
<el-col
:span=
"15"
>
<!--
<el-col
:span=
"15"
>
<el-select
v-model=
"formData.receptionId"
filterable
...
...
@@ -49,11 +49,11 @@
class=
"set-width"
disabled
style=
"width: 100%"
/>
/>
-->
<!--
<el-select
v-model=
"formData.doctorTitle"
placeholder=
"请选择职称"
disabled
class=
"set-width"
>
<el-option
v-for=
"item of sexList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
-->
</el-col>
<!--
</el-col>
</el-form-item>
<el-form-item
label=
"接诊医生所在机构"
>
<el-col
:span=
"15"
>
...
...
@@ -64,11 +64,11 @@
disabled
style=
"width: 100%"
/>
</el-col>
</el-col>
-->
<!--
<el-select
v-model=
"formData.doctorHospital"
placeholder=
"请选择机构"
disabled
class=
"set-width"
>
<el-option
v-for=
"item of sexList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
-->
</el-form-item>
<!--
</el-form-item>
<el-form-item
label=
"接诊医生所在科室"
>
<el-col
:span=
"15"
>
<el-input
...
...
@@ -77,11 +77,11 @@
class=
"set-width"
disabled
style=
"width: 100%"
/>
/>
-->
<!--
<el-select
v-model=
"formData.doctorDepartment"
placeholder=
"请选择科室"
disabled
class=
"set-width"
>
<el-option
v-for=
"item of sexList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
-->
</el-col>
<!--
</el-col>
</el-form-item>
<el-form-item
label=
"接诊医生电话"
>
<el-col
:span=
"15"
>
...
...
@@ -158,9 +158,9 @@
</el-radio-group>
</el-col>
</el-form-item>
</el-form>
</el-form>
-->
<!--
</el-row>
-->
<span
<
!--
<
span
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center"
...
...
@@ -175,7 +175,108 @@
:disabled=
"isClick"
@
click=
"confirm"
>
确定
</el-button>
</span>
-->
<div
class=
"open-diagnosis-doctor"
>
<div
class=
"choose-diagnosis-doctor"
>
<el-select
v-model=
"formData.receptionId"
filterable
placeholder=
"请选择接诊医生"
class=
"set-width"
@
change=
"doctorChanged($event)"
>
<el-option
v-for=
"item of doctorList"
:key=
"item.doctorId"
:label=
"item.doctorReceptionName"
:value=
"item.doctorId"
/>
</el-select>
<el-date-picker
v-model=
"chooseTime"
type=
"date"
placeholder=
"选择日期"
@
change=
"getNowDate"
/>
</div>
<div
class=
"doctor-diagnosis-doctor"
>
<div
class=
"doctor-info"
>
<div
class=
"doctor-info-nameRate"
>
<span
class=
"name-info"
>
{{
formData
.
receptionName
}}
</span>
<span
class=
"name-info-rate"
>
<el-rate
v-model=
"rateValue"
:colors=
"colors"
disabled
/>
</span>
</div>
<div
class=
"doctor-info-phone"
>
<span>
{{
formData
.
doctorMobile
}}
</span>
</div>
<div
class=
"doctor-info-hisDep"
>
<span>
{{
formData
.
doctorHospital
}}
</span>
<span
class=
"diasName"
>
{{
formData
.
doctorDepartment
}}
</span>
</div>
</div>
<div
class=
"doctor-info-Num"
>
<div
class=
"doctor-info-NumToday"
>
<div
class=
"num-info-much"
>
90
</div>
<div>
今日接诊人数
</div>
</div>
<div
class=
"doctor-info-maxToday"
>
<div
class=
"num-info-much"
>
120
</div>
<div>
今日接诊上限人数
</div>
</div>
</div>
</div>
<div
class=
"work-info-Num"
>
<span
class=
"work-info-Num-span"
>
可排班时间
</span>
<div
class=
"time-list-show"
>
<div
v-for=
"(itemChild, indexChild) in timeChoosetList"
:key=
"indexChild"
class=
"home_grid_item"
>
<div
class=
"grid_text"
>
<span
:class=
"
chooseTimeIndex == indexChild
? 'choose-time-choose'
: 'noChoose-time-choose'
"
@
click=
"getChooseTimeValue(itemChild, indexChild)"
>
{{
itemChild
.
leisureTime
}}
</span>
</div>
</div>
</div>
<div
class=
"work-info-botton"
>
<span
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center"
>
<el-button
class=
"contest"
type=
"primary"
:disabled=
"isClick"
@
click=
"confirm"
>
确定
</el-button>
<el-button
class=
"refresh"
type=
"primary"
@
click=
"refreshData"
>
刷新数据
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</span>
</div>
</div>
</div>
</el-dialog>
<el-dialog
title=
"问诊开始时间"
...
...
@@ -299,7 +400,7 @@
<
script
>
import
{
updateDiagnosis
}
from
'../../utils/diagnosis'
;
import
dayjs
from
'dayjs'
;
import
{
getDoctorList
}
from
'@/api/diagnosis'
;
import
{
getDoctorList
,
getLeisureTime
,
acceptsCeiling
}
from
'@/api/diagnosis'
;
let
vm
=
null
;
export
default
{
...
...
@@ -324,9 +425,19 @@
type
:
[
Number
,
String
],
default
:
0
,
},
doctorInfo
:
{
type
:
Object
,
default
:
()
=>
{
return
{};
},
},
},
data
()
{
return
{
chooseTimeIndex
:
1000
,
chooseTime
:
''
,
rateValue
:
3
,
colors
:
[
'#0D9078'
,
'#0D9078'
,
'#0D9078'
],
show
:
false
,
title
:
'设置接诊医生'
,
confirmTxt
:
'确定'
,
...
...
@@ -373,6 +484,70 @@
endTimeValue
:
''
,
timeRange
:
''
,
selfTimeRange
:
''
,
timeChoosetList
:
[
{
id
:
1
,
leisureTime
:
'9:00-10:00'
,
allowClick
:
false
,
},
{
id
:
2
,
leisureTime
:
'10:00-11:00'
,
allowClick
:
false
,
},
{
id
:
3
,
leisureTime
:
'11:00-12:00'
,
allowClick
:
false
,
},
{
id
:
4
,
leisureTime
:
'12:00-13:00'
,
allowClick
:
false
,
},
{
id
:
5
,
leisureTime
:
'13:00-14:00'
,
allowClick
:
false
,
},
{
id
:
6
,
leisureTime
:
'14:00-15:00'
,
allowClick
:
false
,
},
{
id
:
7
,
leisureTime
:
'15:00-16:00'
,
allowClick
:
false
,
},
{
id
:
8
,
leisureTime
:
'16:00-17:00'
,
allowClick
:
false
,
},
{
id
:
9
,
leisureTime
:
'17:00-18:00'
,
allowClick
:
false
,
},
{
id
:
10
,
leisureTime
:
'18:00-19:00'
,
allowClick
:
false
,
},
{
id
:
11
,
leisureTime
:
'19:00-20:00'
,
allowClick
:
false
,
},
{
id
:
12
,
leisureTime
:
'20:00-21:00'
,
allowClick
:
false
,
},
],
startTime
:
''
,
endTime
:
''
,
};
},
watch
:
{
...
...
@@ -393,7 +568,7 @@
},
created
()
{
// this.startTimeValue = this.rangeTimeData;
console
.
log
(
'``````'
,
this
.
rangeTime
Data
);
console
.
log
(
'``````'
,
this
.
form
Data
);
// if (this.rangeTimeData) {
// this.timeRange = Number(20);
// this.endTimeValue = dayjs(this.rangeTimeData)
...
...
@@ -405,6 +580,27 @@
this
.
getDoctorList
();
},
methods
:
{
getChooseTimeValue
(
value
,
index
)
{
console
.
log
(
value
,
index
);
this
.
chooseTimeIndex
=
index
;
this
.
startTime
=
value
.
startDate
;
this
.
endTime
=
value
.
endDate
;
},
getNowDate
(
value
)
{
this
.
chooseTime
=
dayjs
(
value
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
this
.
getLeisureTime
(
this
.
chooseTime
);
},
getLeisureTime
(
chooseTime
)
{
const
params
=
{
dictorId
:
this
.
doctorInfo
.
doctorId
,
weekDay
:
chooseTime
,
};
getLeisureTime
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
console
.
log
(
res
);
}
});
},
confirm
()
{
this
.
$refs
.
setForm
.
validate
((
valid
)
=>
{
if
(
!
this
.
startTimeValue
||
!
this
.
endTimeValue
)
{
...
...
@@ -494,15 +690,28 @@
doctorChanged
(
value
)
{
const
selected
=
this
.
doctorList
.
find
((
item
)
=>
item
.
doctorId
===
value
);
if
(
selected
)
{
console
.
log
(
selected
,
'selected'
);
this
.
formData
.
receptionId
=
value
;
this
.
formData
.
receptionName
=
selected
.
doctorName
;
this
.
formData
.
doctorTitle
=
selected
.
doctorTitle
;
this
.
formData
.
doctorHospital
=
selected
.
doctorHospital
;
this
.
formData
.
doctorDepartment
=
selected
.
doctorDepartment
;
this
.
formData
.
doctorMobile
=
selected
.
doctorMobile
;
this
.
acceptsCeilings
(
this
.
formData
.
receptionId
);
// debugger;
// this.formData.serviceFee = this.priceFilter(selected.serviceFee)
}
},
acceptsCeilings
(
doctorId
)
{
const
params
=
{
doctorId
:
doctorId
,
};
acceptsCeiling
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
console
.
log
(
res
);
}
});
},
getDoctorList
()
{
this
.
loading
=
true
;
this
.
listKey
=
'sessionDoctorList'
+
this
.
diagnoseType
;
...
...
@@ -536,7 +745,7 @@
if
(
!
this
.
startTimeValue
)
{
this
.
timeRange
=
''
;
this
.
endTimeValue
=
''
;
}
else
{
}
else
{
this
.
timeRange
=
Number
(
20
);
this
.
endTimeValue
=
dayjs
(
this
.
rangeTimeData
)
.
add
(
this
.
timeRange
,
'minute'
)
...
...
@@ -671,4 +880,159 @@
margin-right
:
5px
;
width
:
130px
;
}
.open-diagnosis-doctor
{
padding
:
10px
40px
40px
40px
;
.choose-diagnosis-doctor
{
.el-select
{
margin-right
:
30px
;
padding-bottom
:
20px
;
.el-input
{
width
:
300px
;
.el-input__inner
{
width
:
300px
;
height
:
32px
;
background
:
#ffffff
;
border-radius
:
16px
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.15
);
}
.el-input__suffix
{
display
:
flex
;
align-items
:
center
;
}
}
}
.el-date-editor
{
.el-input__inner
{
width
:
180px
;
height
:
32px
;
background
:
#ffffff
;
border-radius
:
16px
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.15
);
}
.el-input__prefix
{
.el-input__icon
{
display
:
flex
;
align-items
:
center
;
}
}
}
}
.doctor-diagnosis-doctor
{
background
:
rgba
(
240
,
242
,
245
,
0
.6
);
border-radius
:
8px
;
height
:
120px
;
padding
:
20px
;
display
:
flex
;
.doctor-info
{
width
:
50%
;
.doctor-info-nameRate
{
display
:
flex
;
.name-info
{
min-width
:
54px
;
height
:
18px
;
font-size
:
18px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#02120f
;
line-height
:
18px
;
margin-right
:
10px
;
}
}
.doctor-info-phone
{
font-size
:
18px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#02120f
;
padding-top
:
10px
;
}
.doctor-info-hisDep
{
font-size
:
16px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#89888b
;
padding-top
:
10px
;
.diasName
{
padding-left
:
10px
;
}
}
}
.doctor-info-Num
{
display
:
flex
;
.doctor-info-NumToday
{
text-align
:
center
;
min-width
:
85px
;
margin-right
:
20px
;
.num-info-much
{
font-size
:
32px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#02120f
;
}
}
.doctor-info-maxToday
{
text-align
:
center
;
min-width
:
120px
;
.num-info-much
{
font-size
:
32px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#02120f
;
}
}
}
}
.work-info-Num
{
padding-top
:
20px
;
.work-info-Num-span
{
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#02120f
;
}
.time-list-show
{
display
:
flex
;
flex-wrap
:
wrap
;
height
:
100%
;
justify-content
:
space-between
;
padding-bottom
:
20px
;
.home_grid_item
{
flex-basis
:
25%
;
margin-bottom
:
10px
;
margin-top
:
15px
;
// text-align: center;
padding
:
0
;
border-radius
:
11px
;
.grid_text
{
.choose-time-choose
{
padding
:
5px
;
background
:
#edfbf9
;
border-radius
:
4px
;
border
:
1px
solid
#a1e1d9
;
color
:
#0d9078
;
}
.noChoose-time-choose
{
padding
:
5px
;
background
:
#f5f6f8
;
border-radius
:
4px
;
border
:
1px
solid
#f5f6f8
;
}
}
}
}
}
.work-info-botton
{
.contest
{
width
:
200px
;
border-radius
:
18px
;
}
.refresh
{
width
:
200px
;
border-radius
:
18px
;
}
.el-button--default
{
width
:
150px
;
border-radius
:
18px
;
}
}
}
</
style
>
src/components/list/table-serviceSchedule.vue
浏览文件 @
f5f81a46
...
...
@@ -91,6 +91,13 @@
align=
"center"
sortable
/>
<el-table-column
prop=
"createdId"
label=
"修改人ID"
width=
"170"
align=
"center"
sortable
/>
<el-table-column
prop=
"mobilePhone"
label=
"联系电话"
...
...
src/views/IM/diagnosis-admin/diagnosis-list-new.vue
浏览文件 @
f5f81a46
...
...
@@ -441,6 +441,7 @@
:diagnose-type=
"diagnoseType"
:doctor-id=
"doctorId"
:range-time-data=
"rangeTimeData"
:doctor-info=
"doctorInfo"
@
search=
"search"
@
changeStartTime=
"changeStartTime"
/>
...
...
@@ -621,6 +622,7 @@
},
timer
:
null
,
fromType
:
0
,
// 1或不传为为预约单列表 2为运营预约单列表 3为分诊台 4为接诊台
doctorInfo
:
{},
};
},
watch
:
{
...
...
@@ -1106,11 +1108,13 @@
},
// 设为待确认时间
waitMatchTime
(
row
)
{
// debugger;
console
.
log
(
row
,
'row'
);
this
.
doctorInfo
=
row
;
this
.
rangeTimeData
=
row
.
assistantBeginTime
;
this
.
diagnoseFlag
=
true
;
this
.
diagnosisDoctorVisible
=
true
;
// this.acceptsCeilings(row.doctorId);
this
.
diagnoseLogId
=
row
.
diagnoseLogId
;
this
.
diagnoseType
=
row
.
diagnoseType
;
if
(
row
.
doctorId
==
0
)
{
...
...
src/views/IM/diagnosis-admin/modal/index.scss
浏览文件 @
f5f81a46
...
...
@@ -62,6 +62,10 @@
overflow
:
hidden
;
border-radius
:
8px
;
}
.agment-left-copy
{
margin-top
:
34px
;
text-align
:
center
;
}
.agment-head
{
border-radius
:
5px
;
display
:
flex
;
...
...
src/views/IM/diagnosis-admin/modal/newScheduling.vue
浏览文件 @
f5f81a46
...
...
@@ -15,6 +15,20 @@
:class=
"
{ w2: week == 2, w3: week == 3 }"
>
<FullCalendar
:options=
"calendarOptions"
/>
<span>
上限
</span>
<div
class=
"setMaxNum"
>
<div
v-for=
"(item, index) in maxList"
:key=
"index"
>
<el-input-number
v-model=
"item.preNum"
:min=
"0"
class=
"input-value"
@
change=
"handleChange(item, index)"
/>
</div>
</div>
</div>
<div
class=
"agment-box-left"
...
...
@@ -27,7 +41,7 @@
/>
<!-- v-if="week == 2" -->
<div
v-if=
"week ==
3
"
v-if=
"week ==
5
"
class=
"ag-left2"
/>
<!-- -->
...
...
@@ -66,6 +80,19 @@
</div>
</div>
</div>
<div
v-if=
"this.schedulingType != 3"
class=
"agment-left-copy"
>
<el-button
round
class=
"copy-submit"
style=
"width: 210px"
@
click=
"copyDoctoreScheduling"
>
重复制上周排班
</el-button>
</div>
<div
v-if=
"this.schedulingType != 3"
class=
"agment-left-button"
...
...
@@ -93,6 +120,7 @@
<
script
>
// import '@fullcalendar/core/vdom'
// import moment from 'moment';
import
dayjs
from
'dayjs'
;
import
FullCalendar
from
'@fullcalendar/vue'
;
import
dayGridPlugin
from
'@fullcalendar/daygrid'
;
import
timeGridPlugin
from
'@fullcalendar/timegrid'
;
...
...
@@ -110,6 +138,16 @@
},
data
()
{
return
{
maxList
:
[
{
preNum
:
0
},
{
preNum
:
0
},
{
preNum
:
0
},
{
preNum
:
0
},
{
preNum
:
0
},
{
preNum
:
0
},
{
preNum
:
0
},
],
chooseList
:
true
,
id
:
''
,
doctorId
:
''
,
schedulingTypeValue
:
{},
...
...
@@ -164,7 +202,7 @@
},
expandRows
:
true
,
slotMinWidth
:
50
,
slotDuration
:
'0
0:3
0:00'
,
slotDuration
:
'0
1:0
0:00'
,
slotMinTime
:
'09:00'
,
slotMaxTime
:
'21:00'
,
slotLabelInterval
:
''
,
...
...
@@ -190,6 +228,8 @@
scrollerHeight
:
0
,
loading
:
false
,
isDoIt
:
false
,
getEveryDay
:
''
,
copyArr
:
[],
};
},
watch
:
{
...
...
@@ -249,22 +289,99 @@
}
this
.
handleInitSearch
();
},
handleInitSearch
(
isReset
)
{
handleChange
(
item
,
index
)
{
console
.
log
(
this
.
getEveryDay
,
'this.getEveryDay'
);
this
.
maxList
.
map
((
itemChild
,
indexChild
)
=>
{
console
.
log
(
indexChild
,
'indexChild'
);
return
(
itemChild
.
weekDay
=
dayjs
(
dayjs
(
this
.
getEveryDay
).
add
(
indexChild
,
'day'
)
).
format
(
'YYYY-MM-DD HH:mm:ss'
));
});
this
.
maxList
[
index
][
'preNum'
]
=
item
.
preNum
;
console
.
log
(
this
.
maxList
,
'this.maxList'
);
},
getCopyData
(
data
)
{
this
.
calendarOptions
.
events
=
[];
const
copyList
=
[];
const
addDay
=
7
;
data
.
noAcceptList
.
map
((
item
)
=>
{
const
obj
=
{};
obj
[
'startTime'
]
=
dayjs
(
item
.
startTime
)
.
add
(
addDay
,
'day'
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
obj
[
'endTime'
]
=
dayjs
(
item
.
endTime
)
.
add
(
addDay
,
'day'
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
copyList
.
push
(
obj
);
});
data
.
noAcceptList
=
copyList
;
this
.
isDoIt
=
true
;
},
getWeekMax
(
data
)
{
console
.
log
(
this
.
maxList
,
'this.maxList'
);
if
(
data
.
countList
.
length
>
0
)
{
data
.
countList
.
forEach
((
item
)
=>
{
const
clistDay
=
dayjs
(
item
.
workDay
).
day
();
let
index
=
1
;
if
(
clistDay
)
{
index
=
clistDay
;
}
else
{
index
=
7
;
}
// console.log(this.maxList, this.maxList[index - 1].preNum, 'index');
this
.
maxList
[
index
-
1
].
preNum
=
item
.
preNum
;
// debugger;
this
.
maxList
[
index
-
1
].
weekDay
=
dayjs
(
item
.
workDay
)
.
add
(
7
,
'day'
)
.
format
(
'YYYY-MM-DD HH:mm:ss'
);
console
.
log
(
this
.
maxList
,
'clistDay'
);
});
}
},
handleInitSearch
(
isReset
,
type
)
{
if
(
isReset
)
{
this
.
calendarOptions
.
events
=
this
.
calendarOptions
.
events
.
filter
(
(
v
)
=>
v
.
week
!==
this
.
week
);
console
.
log
(
this
.
calendarOptions
.
events
);
}
let
copyWeek
=
''
;
if
(
type
==
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
;
}
}
console
.
log
(
this
.
week
,
'this.week'
);
const
objParms
=
{};
objParms
.
doctorId
=
this
.
doctorId
;
objParms
.
week
=
this
.
week
;
objParms
.
week
=
t
ype
==
1
?
copyWeek
:
t
his
.
week
;
objParms
.
workId
=
this
.
id
;
// this.currentIndex = this.schedulingTypeValue.level
;
console
.
log
(
objParms
.
week
,
'objParms.week'
)
;
dutyRosterQuery
(
objParms
).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
this
.
calendarOptions
.
events
=
[];
if
(
type
==
1
)
{
this
.
getCopyData
(
res
.
data
);
this
.
getWeekMax
(
res
.
data
);
}
this
.
handleInitData
(
res
.
data
);
if
(
res
.
data
.
countList
.
length
>
0
&&
type
!=
1
)
{
const
newAR
=
res
.
data
.
countList
.
map
((
item
,
index
)
=>
{
if
(
item
.
weekDay
==
this
.
maxList
[
index
].
weekDay
)
{
return
{
preNum
:
item
.
preNum
,
};
}
});
this
.
maxList
=
newAR
;
console
.
log
(
newAR
,
'newAR'
);
}
}
else
{
this
.
$toast
(
res
.
message
);
}
...
...
@@ -284,7 +401,6 @@
console
.
log
(
data
.
acceptList
,
'data.acceptList'
);
newDate
=
[].
concat
(
acceptList
,
data
.
noAcceptList
);
}
// const keyAll = ['end', 'endStr', 'id', 'start', 'startStr'];
newDate
.
forEach
((
item
)
=>
{
const
dataObj
=
{};
const
id
=
(
this
.
calendarOptions
.
events
.
length
+
1
)
*
10
;
...
...
@@ -301,21 +417,36 @@
});
},
handleDatesSet
(
dataInfo
)
{
this
.
getEveryDay
=
dayjs
(
dataInfo
.
startStr
).
format
(
'YYYY-MM-DD HH:mm:ss'
);
console
.
log
(
this
.
getEveryDay
,
'dataInfo.startStrdataInfo.startStrdataInfo.startStr'
);
const
currentTime
=
new
Date
().
getTime
();
const
getTime
=
new
Date
(
dataInfo
.
startStr
).
getTime
();
const
cz
=
currentTime
-
getTime
;
const
oneHour
=
1
*
60
*
60
*
1000
*
24
;
const
timeDifference
=
(
cz
/
oneHour
)
|
0
;
const
headObj
=
this
.
calendarOptions
.
customButtons
.
myCustomButton
;
console
.
log
(
timeDifference
,
'timeDifference'
);
// debugger;
if
(
timeDifference
>=
0
&&
timeDifference
<
7
)
{
// 过去
this
.
week
=
1
;
headObj
.
text
=
'本周'
;
}
else
if
(
timeDifference
<
0
)
{
}
else
if
(
timeDifference
>=
-
6
&&
timeDifference
<=
-
1
)
{
// 未来
this
.
week
=
3
;
headObj
.
text
=
'下周'
;
}
else
{
}
else
if
(
timeDifference
>=
-
13
&&
timeDifference
<=
-
7
)
{
// 未来
this
.
week
=
4
;
headObj
.
text
=
'下二周'
;
}
else
if
(
timeDifference
>=
-
20
&&
timeDifference
<=
-
14
)
{
// 未来
this
.
week
=
5
;
headObj
.
text
=
'下三周'
;
}
else
if
(
timeDifference
>
7
)
{
// 现在
headObj
.
text
=
'上周'
;
this
.
week
=
2
;
...
...
@@ -355,7 +486,6 @@
.
catch
((
_
)
=>
{
console
.
log
(
_
);
});
// alert("你要取消日期吗");
},
eventDrop
(
event
)
{
event
.
revert
();
...
...
@@ -428,6 +558,10 @@
resetDoctoreScheduling
()
{
this
.
handleInitSearch
(
true
);
},
copyDoctoreScheduling
()
{
this
.
handleInitSearch
(
true
,
1
);
console
.
log
(
this
.
copyArr
,
'copyArr'
);
},
saveDoctoreScheduling
(
type
,
weekV
=
0
)
{
if
(
this
.
isDoIt
)
{
console
.
log
(
this
.
week
,
'this.week'
,
weekV
);
...
...
@@ -450,11 +584,9 @@
objParms
.
list
.
push
(
obj
);
}
});
objParms
.
countReqList
=
this
.
maxList
;
saveDutyRoster
(
objParms
).
then
((
res
)
=>
{
if
(
res
.
code
===
'000000'
)
{
// this.$toast(res.message);
// this.handleInitSearch(true);
// this.$router.go(0);
this
.
loading
=
false
;
if
(
type
==
1
)
{
this
.
$message
({
...
...
@@ -464,7 +596,6 @@
}
this
.
isDoIt
=
false
;
}
else
{
// this.$toast(res.message);
this
.
$message
.
error
(
res
.
message
||
'排班保存失败'
);
}
});
...
...
src/views/IM/diagnosis-admin/overviewScheduling.vue
浏览文件 @
f5f81a46
...
...
@@ -14,6 +14,7 @@
ref=
"agmentSelect"
class=
"serviceSchedule_select"
>
<div
class=
"agmentSelect-select-left"
>
<el-cascader
v-model=
"innerform"
class=
"serviceSchedule-cascader"
...
...
@@ -42,13 +43,32 @@
查询
</el-button>
</div>
<div
class=
"agmentSelect-select-right"
>
设置系统单日接诊总上限
<el-input-number
v-model=
"maxDiaNum"
:step=
"1"
:min=
"10"
:max=
"1000000"
step-strictly
@
change=
"getInputNumber"
/>
<el-button
type=
"primary"
class=
"submit-btn"
@
click=
"setPlatformUpper"
>
保存
</el-button>
</div>
</div>
<div
class=
"fullCalendar-show"
style=
"width: 100%"
>
<div
class=
"fullCalendar-show-out"
:style=
"
{
width: get
Width }"
:style=
"
{
minWidth: getWidth, maxWidth: getMax
Width }"
>
<FullCalendar
ref=
"fullCalendar"
...
...
@@ -70,6 +90,8 @@
getFirstLevelLable
,
childLabelList
,
previewWork
,
setPlatformUpper
,
getPlatformUpper
,
}
from
'@/api/serviceSchedule'
;
export
default
{
name
:
'Index'
,
...
...
@@ -78,6 +100,7 @@
},
data
()
{
return
{
maxDiaNum
:
100
,
dateTime
:
''
,
interfaceOptions
:
[],
innerform
:
[],
...
...
@@ -135,14 +158,37 @@
doctorList
:
[],
index
:
0
,
getWidth
:
'100%'
,
getMaxWidth
:
'100%'
,
};
},
watch
:
{},
created
()
{
this
.
getFirstLevelLable
();
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
.
getPlatformUpper
();
}
});
},
getInputNumber
(
value
)
{
console
.
log
(
value
,
'getInputNumbergetInputNumber'
);
},
// 通过监听expand-change事件(当展开节点发生变化时触发)获取第二层数据,组装interfaceOptions数据
handleItemChange
(
val
)
{
const
value
=
val
[
0
];
...
...
@@ -233,7 +279,42 @@
dutyRosterPreList
,
dutyWorkList
);
// this.calendarOptions.resources.push(
// {id: 1000105468, title: '吴明豪1'},
// {id: 1000205468, title: '吴明豪2'},
// {id: 1000305468, title: '吴明豪3'},
// {id: 1000405468, title: '吴明豪4'},
// {id: 1000505468, title: '吴明豪5'},
// {id: 1000605468, title: '吴明豪5'},
// {id: 1000705468, title: '吴明豪5'},
// {id: 1000805468, title: '吴明豪5'},
// {id: 1000905468, title: '吴明豪5'},
// {id: 1001505468, title: '吴明豪5'},
// {id: 1002505468, title: '吴明豪5'},
// {id: 1003505468, title: '吴明豪5'},
// {id: 1004505468, title: '吴明豪5'},
// {id: 1005505468, title: '吴明豪5'},
// {id: 1006505468, title: '吴明豪5'},
// {id: 1007505468, title: '吴明豪5'},
// {id: 1008505468, title: '吴明豪5'},
// {id: 1009505468, title: '吴明豪5'},
// {id: 1017505468, title: '吴明豪5'},
// {id: 1027505468, title: '吴明豪5'},
// {id: 1037505468, title: '吴明豪5'},
// {id: 1047505468, title: '吴明豪5'},
// {id: 1057505468, title: '吴明豪5'},
// {id: 1067505468, title: '吴明豪5'},
// {id: 1077505468, title: '吴明豪5'},
// {id: 1087505468, title: '吴明豪5'},
// {id: 1097505468, title: '吴明豪5'},
// {id: 1018505468, title: '吴明豪5'},
// {id: 1009505468, title: '吴明豪5'},);
// this.calendarOptions.resources = [{id: 1000105468, title: '吴明豪1'}, {id: 1000205468, title: '吴明豪2'}, {id: 1008505468, title: '吴明豪5'}, {id: 1008505461, title: '吴明豪5'}];
const
calendarApi
=
this
.
$refs
.
fullCalendar
.
getApi
();
this
.
getWidth
=
`
${
this
.
calendarOptions
.
resources
.
length
*
150
}
px`
;
this
.
getMaxWidth
=
`
${
this
.
calendarOptions
.
resources
.
length
*
150
+
100
}
px`
;
calendarApi
.
gotoDate
(
this
.
dateTime
);
console
.
log
(
this
.
calendarOptions
.
resources
);
...
...
@@ -262,9 +343,13 @@
background
:
#fff
;
display
:
flex
;
align-items
:
center
;
padding
:
20px
0
0px
20px
;
padding
:
20px
0
10px
20px
;
justify-content
:
space-between
;
.agmentSelect-select-left
{
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-start
;
.serviceSchedule-cascader
{
// height: 100%;
background
:
#fff
;
margin-right
:
15px
;
}
...
...
@@ -279,6 +364,23 @@
align-items
:
center
;
}
}
.agmentSelect-select-right
{
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-end
;
padding-right
:
30px
;
.el-input-number
{
margin
:
0
10px
;
}
.submit-btn
{
height
:
32px
;
background
:
#0d9078
;
border-radius
:
16px
;
display
:
flex
;
align-items
:
center
;
}
}
}
.fullCalendar-show
{
width
:
100%
;
overflow
:
scroll
;
...
...
@@ -332,6 +434,9 @@
// position: absolute !important;
left
:
0
!
important
;
}
/
deep
/
.fc-resource
{
width
:
150px
;
}
.agment-box-left
{
flex
:
1
;
height
:
100%
;
...
...
yarn.lock
浏览文件 @
f5f81a46
...
...
@@ -4663,7 +4663,7 @@ dateformat@^2.0.0:
resolved "http://192.168.110.93:4873/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
integrity sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=
dayjs@^1.
8.30
, dayjs@^1.8.31:
dayjs@^1.
10.7
, dayjs@^1.8.31:
version "1.10.7"
resolved "http://192.168.110.93:4873/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468"
integrity sha1-LPX5Gt0oEWdIRAhmoKHSbzps5Gg=
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录