Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
frontend-h5
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
songrui
frontend-h5
Commits
8cd2d6c8
Commit
8cd2d6c8
authored
Dec 02, 2024
by
gengchunlei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
居民端小程序 v1.2 模板组件
parent
0f6d77b6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
299 additions
and
34 deletions
+299
-34
base.js
src/api/base.js
+5
-4
workbench.js
src/api/doctor/workbench.js
+11
-0
Doctor.vue
src/doctor/Doctor.vue
+1
-1
temDetail.vue
src/doctor/components/template/temDetail.vue
+4
-1
temList.vue
src/doctor/components/template/temList.vue
+226
-4
GeneralFUForm.vue
src/doctor/followUp/generalFU/form/GeneralFUForm.vue
+52
-24
No files found.
src/api/base.js
View file @
8cd2d6c8
...
@@ -41,12 +41,14 @@ export function fileUpload(params) {
...
@@ -41,12 +41,14 @@ export function fileUpload(params) {
return
fetchBase
({
url
:
`/chronic-admin/v1/pictures-info/qiniu`
,
body
:
params
,
contentType
:
'file'
})
return
fetchBase
({
url
:
`/chronic-admin/v1/pictures-info/qiniu`
,
body
:
params
,
contentType
:
'file'
})
}
}
// 获取
模板
管理数据
// 获取
字典
管理数据
export
function
getTemplateList
()
{
export
function
getTemplateList
()
{
return
fetchBase
({
url
:
`/tumour-admin/v1/h5-app/dict`
,
loading
:
true
})
return
fetchBase
({
url
:
`/tumour-admin/v1/h5-app/dict`
,
loading
:
true
})
}
}
//
模板
数据主键查询
//
字典
数据主键查询
export
function
getTemplateById
()
{
export
function
getTemplateById
()
{
return
fetchBase
({
url
:
`/tumour-admin/v1/h5-app/dict`
,
loading
:
true
})
return
fetchBase
({
url
:
`/tumour-admin/v1/h5-app/dict`
,
loading
:
true
})
}
}
\ No newline at end of file
src/api/doctor/workbench.js
View file @
8cd2d6c8
...
@@ -13,4 +13,14 @@ export function getVisitByPage(params, loading) {
...
@@ -13,4 +13,14 @@ export function getVisitByPage(params, loading) {
// 待随访列表忽略
// 待随访列表忽略
export
function
delVisit
(
params
)
{
export
function
delVisit
(
params
)
{
return
fetchBase
({
url
:
`/chronic-admin/v1/chronic-visit-task/delete`
,
body
:
params
,
loading
:
true
})
return
fetchBase
({
url
:
`/chronic-admin/v1/chronic-visit-task/delete`
,
body
:
params
,
loading
:
true
})
}
// 模板 分页查询
export
function
getTemplateByPage
(
params
)
{
return
fetchBase
({
url
:
`/tumour-admin/v1/template/page`
,
body
:
params
,
loading
:
true
})
}
// 模板 主键查询
export
function
getTemplateDetail
(
id
,
loading
=
true
)
{
return
fetchBase
({
url
:
`/tumour-admin/v1/template/query-id/
${
id
}
`
,
loading
})
}
}
\ No newline at end of file
src/doctor/Doctor.vue
View file @
8cd2d6c8
...
@@ -52,7 +52,7 @@ export default {
...
@@ -52,7 +52,7 @@ export default {
if
(
!
token
)
{
if
(
!
token
)
{
token
=
sessionStorage
.
getItem
(
'token'
)
token
=
sessionStorage
.
getItem
(
'token'
)
if
(
process
.
env
.
NODE_ENV
!==
'production'
)
{
if
(
process
.
env
.
NODE_ENV
!==
'production'
)
{
token
=
'e
85be59c-b842-4e7a-b8eb-b9be87df2b56
'
token
=
'e
b060856-4b3b-4231-8c0f-1dff5b3c7657
'
}
}
}
}
if
(
token
)
{
if
(
token
)
{
...
...
src/doctor/components/template/temDetail.vue
View file @
8cd2d6c8
...
@@ -4,7 +4,10 @@
...
@@ -4,7 +4,10 @@
<
script
>
<
script
>
export
default
{
export
default
{
name
:
'temDetail'
name
:
'temDetail'
,
data
()
{
}
}
}
</
script
>
</
script
>
...
...
src/doctor/components/template/temList.vue
View file @
8cd2d6c8
<
template
>
<
template
>
<van-popup
v-model:show=
"show"
position=
"right"
:style=
"
{ height: '100%' }" >
<van-popup
v-model:show=
'innerShow'
position=
'right'
:style=
"
{ height: '100%', width: '100%' }">
<div>
1111111
</div>
<div
class=
'bg flex flex-col'
>
<div
class=
'p-3 flex items-center shrink-0 justify-between title bg-white'
>
<div
@
click=
'onBack'
class=
'text-12 back-bt'
>
<doc-icon
type=
'doc-left2'
/>
</div>
<div>
随访详情
</div>
<div
class=
'text-primary left-btn'
@
click=
'openSearch'
>
筛查
</div>
</div>
<div
class=
'grow p-10 overflow-y-auto'
ref=
'list'
>
<van-pull-refresh
v-model=
'loadingRefresh'
@
refresh=
'onRefresh'
:disabled=
'isRefreshDisable'
style=
'min-height: 100%'
>
<van-list
v-model:loading=
'loading'
:finished=
'finished'
:finished-text=
"list.length ? '没有更多了' : ''"
:immediate-check=
'false'
@
load=
'onMore'
>
<div
class=
'flex flex-col gap-y-2.5'
>
<div
class=
'py-3 px-4 doc-list-card'
v-for=
'item in list'
:key=
'item.id'
>
<div
class=
'flex flex-col gap-y-2.5'
>
<div>
<span
class=
'label'
>
模板分类
</span>
<span>
{{
item
.
idCard
}}
</span>
</div>
<div>
<span
class=
'label'
>
模板名称
</span>
<span>
{{
item
.
serviceTypeName
}}
</span>
</div>
</div>
<div
class=
'divider my-3'
></div>
<div
class=
'bt-group'
>
<div>
<van-button
round
size=
'small'
class=
'doc-btn-primary mr-3'
@
click=
'toDetail(item)'
>
查看
</van-button>
<van-button
round
size=
'small'
class=
'doc-btn-primary'
@
click=
'toDetail(item)'
>
引用
</van-button>
</div>
</div>
</div>
</div>
</van-list>
<div
class=
'text-center shrink-0 empty'
v-if=
'!list.length'
>
<img
src=
'@/assets/image/doctor/empty.png'
alt=
''
style=
'width: 1.2rem;'
>
<p>
暂无数据
</p>
</div>
</van-pull-refresh>
<van-popup
v-model:show=
'searchVisible'
position=
'top'
:style=
"
{ height: '60%' }"
style='position: absolute;transition: none'
:overlay-style="{ position: 'absolute' }"
transition='viewer-fade'
:teleport='listDom'>
<div
class=
'h-full flex flex-col workbench-search-box'
>
<div
class=
'px-4 py-3 grow overflow-y-auto'
style=
''
>
<van-field
v-model=
'form.templateName'
placeholder=
'请输入要查询的模板名称'
maxlength=
'100'
class=
'doc-input'
/>
<div
class=
'my-3'
>
模板分类
</div>
<CheckBtn
:options=
"store.getDict('DC00082')"
v-model:value=
'form.templateClassify'
column-3
class=
'check-btn-workbench'
/>
<div
class=
'my-3'
>
文件类型
</div>
<CheckBtn
:options=
"store.getDict('DC00093')"
v-model:value=
'form.fileType'
column-3
class=
'check-btn-workbench'
/>
<div
class=
'my-3'
>
共享类型
</div>
<CheckBtn
:options=
"store.getDict('DC00053')"
v-model:value=
'form.templateType'
column-3
class=
'check-btn-workbench'
/>
</div>
<div
class=
'text-16 flex shrink-0 text-center bt-group'
>
<div
class=
'grow py-3'
@
click=
'reset'
>
重置
</div>
<div
class=
'grow py-3 submit-btn'
@
click=
'search'
>
确定
</div>
</div>
</div>
</van-popup>
</div>
</div>
</van-popup>
</van-popup>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
showToast
}
from
'vant'
import
CheckBtn
from
'@/doctor/components/checkBtn/CheckBtn'
import
{
getTemplateByPage
}
from
'@/api/doctor/workbench'
import
{
useStore
}
from
'@/doctor/store'
const
DefaultForm
=
{
templateName
:
undefined
,
templateClassify
:
undefined
,
//慢病
businessType
:
1
,
//文件类型
fileType
:
undefined
,
//共享类型
templateType
:
1
}
export
default
{
export
default
{
name
:
'temList'
,
name
:
'temList'
,
components
:
{
CheckBtn
},
props
:
{
show
:
{
default
:
false
}
},
data
()
{
data
()
{
return
{
return
{
show
:
false
store
:
useStore
(),
list
:
[],
pagination
:
{
total
:
0
,
pageIndex
:
1
,
pageSize
:
8
},
loading
:
false
,
finished
:
false
,
loadingRefresh
:
false
,
isRefreshDisable
:
false
,
// 搜索弹出框
searchVisible
:
false
,
form
:
{
...
DefaultForm
}
}
},
computed
:
{
innerShow
()
{
return
this
.
show
},
listDom
()
{
return
this
.
$refs
.
list
}
},
created
()
{
this
.
load
()
},
mounted
()
{
const
list
=
this
.
$refs
.
list
if
(
list
)
{
list
.
addEventListener
(
'scroll'
,
()
=>
{
if
(
list
.
scrollTop
>
0
)
{
this
.
isRefreshDisable
=
true
}
else
{
this
.
isRefreshDisable
=
false
}
})
}
},
methods
:
{
load
(
loading
=
true
)
{
const
query
=
{
pageIndex
:
this
.
pagination
.
pageIndex
,
pageSize
:
this
.
pagination
.
pageSize
,
...
this
.
form
}
getTemplateByPage
(
query
,
loading
).
then
(
res
=>
{
if
(
this
.
pagination
.
pageIndex
===
1
)
{
this
.
list
=
[]
}
this
.
list
=
this
.
list
.
concat
(
res
.
data
.
dataList
||
[])
this
.
pagination
.
total
=
res
.
data
.
total
||
0
this
.
finished
=
this
.
list
.
length
>=
this
.
pagination
.
total
}).
finally
(()
=>
{
this
.
loading
=
false
this
.
loadingRefresh
=
false
})
},
search
()
{
this
.
pagination
.
pageIndex
=
1
this
.
load
()
this
.
searchVisible
=
false
},
reset
()
{
this
.
form
=
{
...
DefaultForm
}
this
.
search
()
},
onMore
()
{
this
.
pagination
.
pageIndex
++
this
.
load
(
false
)
},
onRefresh
()
{
this
.
pagination
.
pageIndex
=
1
this
.
load
()
},
openSearch
()
{
this
.
searchVisible
=
true
},
toDetail
(
record
)
{
if
(
!
record
)
return
if
(
record
.
residentInfoId
==
null
)
{
showToast
(
'暂时无法查看 详情信息'
)
return
}
this
.
$router
.
push
({
path
:
'/doctor/patient-detail'
,
query
:
{
residentInfoId
:
record
.
residentInfoId
}
})
},
onBack
()
{
this
.
$emit
(
'closed'
,
false
)
}
}
}
}
}
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
lang=
'less'
>
.title {
font-size: 18px;
font-weight: 600;
}
.bg-white {
background: #FFFFFF;
}
.left-btn {
font-size: 14px;
font-weight: 400;
}
.bg {
background: rgb(245, 245, 245);
height: 100vh;
}
.p-10 {
padding: 10px;
}
:deep(.workbench-search-box) {
color: #595959;
.bt-group {
border-top: 1px solid #EBEBEC;
color: #262626;
.submit-btn {
color: #fff;
background-color: var(--van-primary-color);
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/doctor/followUp/generalFU/form/GeneralFUForm.vue
View file @
8cd2d6c8
...
@@ -26,9 +26,9 @@
...
@@ -26,9 +26,9 @@
/>
/>
</div>
</div>
<div
v-if=
'showTwo'
>
<div
v-if=
'showTwo'
>
<div
class=
'flex justify-between items-center'
>
<div
class=
'flex justify-between items-center
mt-5
'
>
<div
class=
'label-title
mt-5
'
>
健康指导
</div>
<div
class=
'label-title '
>
健康指导
</div>
<van-button
class=
'doc-btn-p
rimary
'
>
选择内容
</van-button>
<van-button
class=
'doc-btn-p
'
@
click=
'toShowTem
'
>
选择内容
</van-button>
</div>
</div>
<div
class=
'health mt-2'
>
<div
class=
'health mt-2'
>
...
@@ -51,7 +51,8 @@
...
@@ -51,7 +51,8 @@
<div
class=
'tel-back mt-2'
>
<div
class=
'tel-back mt-2'
>
<div
class=
'tel'
>
<div
class=
'tel'
>
<div
style=
'text-indent: 2em;line-height: .2rem'
>
<div
style=
'text-indent: 2em;line-height: .2rem'
>
<span
v-if=
'modeEnumList.urgeResidentShow'
>
{{
firstForm
.
residentsRecord
.
residentName
}}
先生/女士,
</span>
<span
v-if=
'modeEnumList.urgeResidentShow'
>
{{
firstForm
.
residentsRecord
.
residentName
}}
先生/女士,
</span>
<span
v-else
>
您好,
</span>
<span
v-else
>
您好,
</span>
<span>
请您于
{{
form
.
screenTime
}}
</span>
<span>
请您于
{{
form
.
screenTime
}}
</span>
<span>
到
{{
authInfo
.
unitName
}}
</span>
<span>
到
{{
authInfo
.
unitName
}}
</span>
...
@@ -64,33 +65,33 @@
...
@@ -64,33 +65,33 @@
</div>
</div>
</div>
</div>
<van-popup
v-model:show=
'showTime1'
position=
'bottom'
>
<van-popup
v-model:show=
'showTime1'
position=
'bottom'
>
<van-date-picker
v-model=
'currentTime1'
@
confirm=
'timeConfirm1'
@
cancel=
'showTime1 = false'
/>
<van-date-picker
v-model=
'currentTime1'
@
confirm=
'timeConfirm1'
@
cancel=
'showTime1 = false'
/>
</van-popup>
</van-popup>
</div>
</div>
<!-- 上传随访照片-->
<!-- 上传随访照片-->
<div
v-if=
'showOne'
>
<div
v-if=
'showOne'
>
<div
class=
'no-req-label mt-5'
>
上传随访记录
</div>
<div
class=
'no-req-label mt-5'
>
上传随访记录
</div>
<DocImageUpload
<DocImageUpload
description=
"支持上传jpg、png、jpeg文件,大小请在10M以内"
description=
'支持上传jpg、png、jpeg文件,大小请在10M以内'
lengthMessage=
"抱歉,最多可上传6个文件。"
lengthMessage=
'抱歉,最多可上传6个文件。'
:imageData=
"[]"
:imageData=
'[]'
@
change=
"(ids, option) => form.uploadVisitRecord = ids"
@
change=
'(ids, option) => form.uploadVisitRecord = ids'
:maxLength=
"6"
:maxLength=
'6'
class=
"mt-2"
class=
'mt-2'
/>
/>
</div>
</div>
<!-- 现场随访照片-->
<!-- 现场随访照片-->
<div>
<div>
<div
class=
'no-req-label mt-5'
>
现场随访照片
</div>
<div
class=
'no-req-label mt-5'
>
现场随访照片
</div>
<DocImageUpload
<DocImageUpload
description=
"支持上传jpg、png、jpeg文件,大小请在10M以内"
description=
'支持上传jpg、png、jpeg文件,大小请在10M以内'
lengthMessage=
"抱歉,最多可上传6个文件。"
lengthMessage=
'抱歉,最多可上传6个文件。'
:imageData=
"[]"
:imageData=
'[]'
@
change=
"(ids, option) => form.sceneVisitImage = ids"
@
change=
'(ids, option) => form.sceneVisitImage = ids'
:maxLength=
"6"
:maxLength=
'6'
class=
"mt-2"
class=
'mt-2'
/>
/>
</div>
</div>
...
@@ -114,6 +115,10 @@
...
@@ -114,6 +115,10 @@
</van-popup>
</van-popup>
</div>
</div>
</van-form>
</van-form>
<div>
<temList
:show=
'showTem'
@
closed=
'closedTem'
></temList>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -124,10 +129,11 @@ import DocIcon from '@/components/docIcon/DocIcon'
...
@@ -124,10 +129,11 @@ import DocIcon from '@/components/docIcon/DocIcon'
import
{
showToast
}
from
'vant'
import
{
showToast
}
from
'vant'
import
{
fetchDataHandle
}
from
'@/utils/common'
import
{
fetchDataHandle
}
from
'@/utils/common'
import
DocImageUpload
from
'@/doctor/components/docImageUpload/DocImageUpload'
import
DocImageUpload
from
'@/doctor/components/docImageUpload/DocImageUpload'
import
TemList
from
'@/doctor/components/template/temList'
export
default
{
export
default
{
name
:
'GeneralFUForm'
,
name
:
'GeneralFUForm'
,
components
:
{
DocImageUpload
,
DocIcon
},
components
:
{
TemList
,
DocImageUpload
,
DocIcon
},
props
:
{
props
:
{
info
:
{
info
:
{
default
:
()
=>
{
default
:
()
=>
{
...
@@ -157,6 +163,7 @@ export default {
...
@@ -157,6 +163,7 @@ export default {
imgInputList2
:
[],
imgInputList2
:
[],
showDate
:
false
,
showDate
:
false
,
showTime1
:
false
,
showTime1
:
false
,
showTem
:
false
,
currentTime1
:
null
,
currentTime1
:
null
,
showImgList
:
[],
showImgList
:
[],
initSwipe
:
0
,
initSwipe
:
0
,
...
@@ -222,7 +229,7 @@ export default {
...
@@ -222,7 +229,7 @@ export default {
res
=
true
res
=
true
}
}
return
res
return
res
}
,
}
},
},
created
()
{
created
()
{
const
date
=
dayjs
()
const
date
=
dayjs
()
...
@@ -243,7 +250,7 @@ export default {
...
@@ -243,7 +250,7 @@ export default {
id
:
info
.
id
,
id
:
info
.
id
,
diseaseType
:
info
.
diseaseType
,
diseaseType
:
info
.
diseaseType
,
visitDate
:
info
.
visitDate
||
new
dayjs
(),
visitDate
:
info
.
visitDate
||
new
dayjs
(),
nextVisitDate
:
info
.
nextVisitDate
||
new
dayjs
().
add
(
1
,
'day'
).
format
(
'YYYY-MM-DD'
),
nextVisitDate
:
info
.
nextVisitDate
||
new
dayjs
().
add
(
1
,
'day'
).
format
(
'YYYY-MM-DD'
),
isSms
:
info
.
isSms
,
isSms
:
info
.
isSms
,
isWx
:
info
.
isWx
,
isWx
:
info
.
isWx
,
screenTime
:
new
dayjs
().
add
(
1
,
'day'
).
format
(
'YYYY-MM-DD'
),
screenTime
:
new
dayjs
().
add
(
1
,
'day'
).
format
(
'YYYY-MM-DD'
),
...
@@ -274,6 +281,12 @@ export default {
...
@@ -274,6 +281,12 @@ export default {
this
.
form
.
screenTime
=
selectedValues
.
join
(
'-'
)
this
.
form
.
screenTime
=
selectedValues
.
join
(
'-'
)
this
.
showTime1
=
false
this
.
showTime1
=
false
},
},
toShowTem
()
{
this
.
showTem
=
true
},
closedTem
(
val
)
{
this
.
showTem
=
val
},
onSubmit
()
{
onSubmit
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
...
@@ -303,6 +316,21 @@ export default {
...
@@ -303,6 +316,21 @@ export default {
</
script
>
</
script
>
<
style
scoped
lang=
'less'
>
<
style
scoped
lang=
'less'
>
// 按钮样式
.doc-btn {
border: 0;
padding: 4px 8px;
height: 26px;
border-radius: 38px;
}
.doc-btn-p {
.doc-btn();
color: var(--van-primary-color);
background: #F0F3FF;
font-size: 13px;
}
.title {
.title {
font-weight: bold;
font-weight: bold;
margin-bottom: 20px;
margin-bottom: 20px;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment