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
提交
7dd7016a
提交
7dd7016a
编写于
4月 17, 2024
作者:
xinglee23
浏览文件
操作
浏览文件
下载
差异文件
feat: 新增小程序后台诊室跳转路径
上级
9151ffb2
d11fde16
变更
17
展开全部
显示空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
14211 行增加
和
12706 行删除
+14211
-12706
.env.development.local
.env.development.local
+1
-1
package.json
package.json
+2
-2
diagnosis.js
src/api/diagnosis.js
+15
-1
diagnosis-doctor.vue
src/components/common/diagnosis-doctor.vue
+8
-5
upload-img.vue
src/components/editor/upload-img.vue
+35
-9
upload-music.vue
src/components/editor/upload-music.vue
+35
-11
upload-video.vue
src/components/editor/upload-video.vue
+151
-0
table-set-component.vue
src/components/list/table-set-component.vue
+59
-5
global.scss
src/styles/global.scss
+3
-0
diagnosis-list-new.js
src/utils/GeneralData/diagnosis-list-new.js
+67
-54
constants.js
src/utils/constants.js
+101
-4
diagnosis-editor.vue
src/views/IM/diagnosis-admin/diagnosis-editor.vue
+368
-23
diagnosis-im.vue
src/views/IM/diagnosis-admin/diagnosis-im.vue
+46
-10
diagnosis-list-new.vue
src/views/IM/diagnosis-admin/diagnosis-list-new.vue
+178
-51
im.scss
src/views/IM/diagnosis-admin/im.scss
+43
-13
vue.config.js
vue.config.js
+1
-1
yarn.lock
yarn.lock
+13098
-12516
未找到文件。
.env.development.local
浏览文件 @
7dd7016a
...
@@ -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=
26D1BA0C935C4C92BB5BB33EF61D4AD9
VUE_APP_TOKEN=
E214A2D6B40345F98DE538DA793CF918
package.json
浏览文件 @
7dd7016a
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
"
socket.io-client
"
:
"
2.2.0
"
,
"
socket.io-client
"
:
"
2.2.0
"
,
"
storejs
"
:
"
^1.1.0
"
,
"
storejs
"
:
"
^1.1.0
"
,
"
vant
"
:
"
^2.12.27
"
,
"
vant
"
:
"
^2.12.27
"
,
"
vconsole
"
:
"
^3.
3.4
"
,
"
vconsole
"
:
"
^3.
15.1
"
,
"
vue
"
:
"
^2.6.11
"
,
"
vue
"
:
"
^2.6.11
"
,
"
vue-fragment
"
:
"
^1.5.1
"
,
"
vue-fragment
"
:
"
^1.5.1
"
,
"
vue-router
"
:
"
^3.3.1
"
,
"
vue-router
"
:
"
^3.3.1
"
,
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
"devDependencies"
:
{
"devDependencies"
:
{
"
@babel/plugin-proposal-object-rest-spread
"
:
"
^7.11.0
"
,
"
@babel/plugin-proposal-object-rest-spread
"
:
"
^7.11.0
"
,
"
@pica-cli/pica-cli-framework
"
:
"
^1.0.10
"
,
"
@pica-cli/pica-cli-framework
"
:
"
^1.0.10
"
,
"
@pica-cli/vue-cli-plugin-pica-cli-plugin
"
:
"
1.1.5
"
,
"
@pica-cli/vue-cli-plugin-pica-cli-plugin
"
:
"
~1.1.64
"
,
"
@pica-core/multiple-versions-plugin
"
:
"
^1.0.16
"
,
"
@pica-core/multiple-versions-plugin
"
:
"
^1.0.16
"
,
"
@pica-core/reset-pathfile-plugin
"
:
"
^1.0.16
"
,
"
@pica-core/reset-pathfile-plugin
"
:
"
^1.0.16
"
,
"
@pica-core/web-buried-point
"
:
"
^1.0.15
"
,
"
@pica-core/web-buried-point
"
:
"
^1.0.15
"
,
...
...
src/api/diagnosis.js
浏览文件 @
7dd7016a
...
@@ -96,7 +96,7 @@ export const getCountQuery = async (params) => {
...
@@ -96,7 +96,7 @@ export const getCountQuery = async (params) => {
return
request
({
return
request
({
url
:
'/diagnose/admin/diagnose/countQuery'
,
url
:
'/diagnose/admin/diagnose/countQuery'
,
method
:
'post'
,
method
:
'post'
,
data
:
params
data
:
params
,
});
});
};
};
...
@@ -331,3 +331,17 @@ export const savePCDayCount = async (data) => {
...
@@ -331,3 +331,17 @@ export const savePCDayCount = async (data) => {
method
:
'post'
,
method
:
'post'
,
});
});
};
};
export
const
personnelList
=
async
()
=>
{
return
request
({
url
:
'/contents/admin/homepage/floor/personnelList'
,
method
:
'get'
,
});
};
// 根据订单id获取群ID和群用户名
export
const
getUserIdByDiagnoseLogId
=
async
(
diagnoseLogId
)
=>
{
return
request
({
url
:
`/admin/diagnose/team/
${
diagnoseLogId
}
`
,
method
:
'get'
,
});
};
src/components/common/diagnosis-doctor.vue
浏览文件 @
7dd7016a
...
@@ -77,7 +77,7 @@
...
@@ -77,7 +77,7 @@
<span>
未选定医生
</span>
<span>
未选定医生
</span>
</div>
</div>
<div
class=
"work-info-Num"
>
<div
class=
"work-info-Num"
>
<div
v-if=
"diagnoseType != 4"
>
<div
v-if=
"diagnoseType != 4
&& formData.diagnoseChannel != 3
"
>
<span
<span
class=
"work-info-Num-span"
class=
"work-info-Num-span"
>
可选排班时间(预约已满需要沟通确定时间)
</span>
>
可选排班时间(预约已满需要沟通确定时间)
</span>
...
@@ -194,6 +194,10 @@
...
@@ -194,6 +194,10 @@
return
{};
return
{};
},
},
},
},
diagnoseChannel
:
{
type
:
Number
,
default
:
0
,
},
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -218,7 +222,7 @@
...
@@ -218,7 +222,7 @@
receptionBeginTime
:
''
,
receptionBeginTime
:
''
,
receptionEndTime
:
''
,
receptionEndTime
:
''
,
bizType
:
''
,
bizType
:
''
,
diagnoseChannel
:
1
,
diagnoseChannel
:
null
,
doctorDepartmentId
:
''
,
doctorDepartmentId
:
''
,
},
},
doctorList
:
[],
doctorList
:
[],
...
@@ -291,6 +295,7 @@
...
@@ -291,6 +295,7 @@
)
{
)
{
this
.
refreshData
();
this
.
refreshData
();
}
}
this
.
formData
.
diagnoseChannel
=
!
this
.
diagnoseChannel
?
1
:
this
.
diagnoseChannel
;
},
},
methods
:
{
methods
:
{
getChooseTimeValue
(
value
,
index
)
{
getChooseTimeValue
(
value
,
index
)
{
...
@@ -326,7 +331,6 @@
...
@@ -326,7 +331,6 @@
});
});
},
},
confirm
()
{
confirm
()
{
console
.
log
(
this
.
startTime
,
'starrrr'
);
if
(
this
.
formData
.
receptionName
==
''
)
{
if
(
this
.
formData
.
receptionName
==
''
)
{
this
.
$message
({
this
.
$message
({
message
:
'请先选择接诊医生'
,
message
:
'请先选择接诊医生'
,
...
@@ -335,7 +339,7 @@
...
@@ -335,7 +339,7 @@
});
});
return
false
;
return
false
;
}
}
if
(
this
.
startTime
==
''
&&
this
.
diagnoseType
!=
4
)
{
if
(
this
.
startTime
==
''
&&
this
.
diagnoseType
!=
4
&&
this
.
formData
.
diagnoseChannel
!=
3
)
{
this
.
$message
({
this
.
$message
({
message
:
'请选择排班时间'
,
message
:
'请选择排班时间'
,
type
:
'warning'
,
type
:
'warning'
,
...
@@ -409,7 +413,6 @@
...
@@ -409,7 +413,6 @@
doctorChanged
(
value
)
{
doctorChanged
(
value
)
{
const
selected
=
this
.
doctorList
.
find
((
item
)
=>
item
.
doctorId
===
value
);
const
selected
=
this
.
doctorList
.
find
((
item
)
=>
item
.
doctorId
===
value
);
if
(
selected
)
{
if
(
selected
)
{
console
.
log
(
selected
,
'selected'
);
this
.
formData
.
receptionId
=
value
;
this
.
formData
.
receptionId
=
value
;
this
.
formData
.
receptionName
=
selected
.
doctorName
;
this
.
formData
.
receptionName
=
selected
.
doctorName
;
this
.
formData
.
doctorTitle
=
selected
.
doctorTitle
;
this
.
formData
.
doctorTitle
=
selected
.
doctorTitle
;
...
...
src/components/editor/upload-img.vue
浏览文件 @
7dd7016a
<
template
>
<
template
>
<div>
<div>
<el-upload
<el-upload
:action=
"actionurl
"
action=
"#
"
:headers=
"headers"
:headers=
"headers"
:disabled=
"isDisable"
:disabled=
"isDisable"
list-type=
"picture-card"
list-type=
"picture-card"
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
:on-exceed=
"handleExceed"
:on-exceed=
"handleExceed"
:file-list=
"imgArr"
:file-list=
"imgArr"
:accept=
"accept"
:accept=
"accept"
:before-upload=
"beforeUploadFile"
>
>
<i
class=
"el-icon-plus"
/>
<i
class=
"el-icon-plus"
/>
</el-upload>
</el-upload>
...
@@ -26,7 +27,10 @@
...
@@ -26,7 +27,10 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getBaseUrl
}
from
'@/utils/index'
;
import
{
doUpload
,
getFilePath
}
from
'@/utils/qiniu-util'
;
import
{
openLoading
,
closeLoading
}
from
'@/utils/utils'
;
let
_this
=
null
;
export
default
{
export
default
{
props
:
{
props
:
{
isDisable
:
{
isDisable
:
{
...
@@ -48,17 +52,20 @@
...
@@ -48,17 +52,20 @@
headers
:
{
headers
:
{
token
:
localStorage
.
getItem
(
'token'
),
token
:
localStorage
.
getItem
(
'token'
),
},
},
actionurl
:
'#'
,
accept
:
'image/png,image/jpeg,image/jpg'
,
accept
:
'.png,.jpeg'
,
};
};
},
},
watch
:
{
watch
:
{
imgList
(
newv
)
{
imgList
(
newv
)
{
this
.
imgArr
=
newv
;
const
newImageList
=
newv
?.
filter
(
item
=>
{
const
videoUrl
=
item
?.
url
.
endsWith
(
'.jpeg'
)
||
item
?.
url
.
endsWith
(
'.png'
)
||
item
?.
url
.
endsWith
(
'.jpg'
);
if
(
videoUrl
)
return
item
;
});
this
.
imgArr
=
newImageList
;
},
},
},
},
created
()
{
created
()
{
this
.
actionurl
=
getBaseUrl
(
'/diagnose/illness/file'
)
;
_this
=
this
;
},
},
methods
:
{
methods
:
{
handleRemove
(
file
,
fileList
)
{
handleRemove
(
file
,
fileList
)
{
...
@@ -85,15 +92,34 @@
...
@@ -85,15 +92,34 @@
const
newArr
=
[];
const
newArr
=
[];
if
(
this
.
imgArr
&&
this
.
imgArr
.
length
)
{
if
(
this
.
imgArr
&&
this
.
imgArr
.
length
)
{
this
.
imgArr
.
forEach
((
item
)
=>
{
this
.
imgArr
.
forEach
((
item
)
=>
{
if
(
item
.
response
)
{
if
(
item
.
url
&&
item
.
status
===
'success'
)
{
newArr
.
push
(
item
.
response
.
data
);
}
else
if
(
item
.
url
&&
item
.
from
)
{
newArr
.
push
(
item
.
url
);
newArr
.
push
(
item
.
url
);
}
}
});
});
}
}
return
newArr
;
return
newArr
;
},
},
beforeUploadFile
(
file
)
{
openLoading
(
_this
);
doUpload
(
_this
,
file
,
getFilePath
(
file
,
null
),
null
,
null
,
1
).
then
(
function
(
res
)
{
closeLoading
(
_this
);
const
fileItem
=
{
name
:
res
.
name
,
size
:
res
.
size
,
status
:
'success'
,
url
:
res
.
fullPath
};
_this
.
imgArr
.
push
(
fileItem
);
_this
.
$message
.
success
(
'上传成功'
);
});
},
},
},
};
};
</
script
>
</
script
>
...
...
src/components/editor/upload-music.vue
浏览文件 @
7dd7016a
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
class=
"upload-demo"
class=
"upload-demo"
:disabled=
"isDisable"
:disabled=
"isDisable"
:before-upload=
"beforeMusicUpload"
:before-upload=
"beforeMusicUpload"
:action=
"actionurl
"
action=
"#
"
:headers=
"headers"
:headers=
"headers"
:on-remove=
"handleRemove"
:on-remove=
"handleRemove"
:on-success=
"sucess"
:on-success=
"sucess"
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
slot=
"tip"
slot=
"tip"
class=
"el-upload__tip"
class=
"el-upload__tip"
>
>
音频格式:mp3
音频格式:mp3
、mp4
</p>
</p>
<ul
<ul
slot=
"tip"
slot=
"tip"
...
@@ -48,7 +48,9 @@
...
@@ -48,7 +48,9 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getBaseUrl
}
from
'@/utils/index'
;
import
{
doUpload
,
getFilePath
}
from
'@/utils/qiniu-util'
;
import
{
openLoading
,
closeLoading
}
from
'@/utils/utils'
;
let
_this
=
null
;
export
default
{
export
default
{
props
:
{
props
:
{
isDisable
:
{
isDisable
:
{
...
@@ -67,24 +69,28 @@
...
@@ -67,24 +69,28 @@
dialogImageUrl
:
''
,
dialogImageUrl
:
''
,
dialogVisible
:
false
,
dialogVisible
:
false
,
musicArr
:
[],
musicArr
:
[],
actionUrl
:
''
,
headers
:
{
headers
:
{
token
:
localStorage
.
getItem
(
'token'
),
token
:
localStorage
.
getItem
(
'token'
),
},
},
loading
:
false
,
loading
:
false
,
accept
:
'.mp3,.mpeg'
,
accept
:
'.mp3,.mpeg
,.mp4
'
,
};
};
},
},
watch
:
{
watch
:
{
musicList
(
newv
)
{
musicList
(
newv
)
{
console
.
log
(
newv
);
console
.
log
(
newv
);
this
.
musicArr
=
newv
||
[];
const
newVideoList
=
newv
?.
filter
(
item
=>
{
const
suffixUrl
=
item
?.
url
.
substring
(
item
?.
url
.
lastIndexOf
(
'/'
)
+
1
);
// 接口不返回name,上传数据列表名称展示为截取url最后“/”后面的内容
item
.
name
=
suffixUrl
;
return
item
;
});
this
.
musicArr
=
newVideoList
||
[];
},
},
},
},
created
()
{
created
()
{
_this
=
this
;
this
.
musicArr
=
this
.
musicList
;
this
.
musicArr
=
this
.
musicList
;
console
.
log
(
console
.
log
(
'this.musicList'
,
this
.
musicArr
));
console
.
log
(
console
.
log
(
'this.musicList'
,
this
.
musicArr
));
this
.
actionurl
=
getBaseUrl
(
'/diagnose/illness/audio/upload'
);
},
},
methods
:
{
methods
:
{
musicUrl
(
item
)
{
musicUrl
(
item
)
{
...
@@ -114,14 +120,32 @@
...
@@ -114,14 +120,32 @@
this
.
loading
=
false
;
this
.
loading
=
false
;
},
},
// 上传mp3
// 上传mp3
beforeMusicUpload
()
{},
beforeMusicUpload
(
file
)
{
openLoading
(
_this
);
doUpload
(
_this
,
file
,
getFilePath
(
file
,
null
),
null
,
null
,
''
).
then
(
function
(
res
)
{
closeLoading
(
_this
);
const
fileItem
=
{
name
:
res
.
name
?
res
.
name
:
res
.
fullPath
,
size
:
res
.
size
,
status
:
'success'
,
url
:
res
.
fullPath
};
_this
.
musicArr
.
push
(
fileItem
);
_this
.
$message
.
success
(
'上传成功'
);
});
},
setNewArr
()
{
setNewArr
()
{
const
newArr
=
[];
const
newArr
=
[];
if
(
this
.
musicArr
&&
this
.
musicArr
.
length
)
{
if
(
this
.
musicArr
&&
this
.
musicArr
.
length
)
{
this
.
musicArr
.
forEach
((
item
)
=>
{
this
.
musicArr
.
forEach
((
item
)
=>
{
if
(
item
.
data
)
{
if
(
item
.
url
&&
item
.
status
===
'success'
)
{
newArr
.
push
(
item
.
data
.
domainPath
+
item
.
data
.
path
);
}
else
if
(
item
.
url
&&
item
.
from
)
{
newArr
.
push
(
item
.
url
);
newArr
.
push
(
item
.
url
);
}
}
});
});
...
...
src/components/editor/upload-video.vue
0 → 100644
浏览文件 @
7dd7016a
<
template
>
<div
class=
"upload"
>
<el-upload
action=
"#"
:headers=
"headers"
:disabled=
"isDisable"
:on-remove=
"handleRemove"
:on-success=
"sucess"
:on-exceed=
"handleExceed"
:file-list=
"imgArr"
accept=
"video/mp4"
:limit=
"15"
:before-upload=
"beforeUploadFile"
multiple
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
<div
class=
"upload-main"
>
<video
v-for=
"(value, index) in imgArr"
:key=
"index"
:src=
"value.url"
class=
"upload-main__video"
controls
preload
/>
</div>
</div>
</
template
>
<
script
>
import
{
doUpload
,
getFilePath
}
from
'@/utils/qiniu-util'
;
import
{
openLoading
,
closeLoading
}
from
'@/utils/utils'
;
let
_this
=
null
;
export
default
{
props
:
{
isDisable
:
{
type
:
Boolean
,
default
:
false
,
},
imgList
:
{
type
:
Array
,
default
:
()
=>
{
return
[];
},
},
},
data
()
{
return
{
dialogImageUrl
:
''
,
imgArr
:
[],
headers
:
{
token
:
localStorage
.
getItem
(
'token'
),
},
};
},
watch
:
{
imgList
(
newv
)
{
const
newVideoList
=
newv
?.
filter
(
item
=>
{
const
videoUrl
=
item
?.
url
.
endsWith
(
'.mp4'
);
if
(
videoUrl
)
{
const
suffixUrl
=
item
?.
url
.
substring
(
item
?.
url
.
lastIndexOf
(
'/'
)
+
1
);
// 接口不返回name,上传数据列表名称展示为截取url最后“/”后面的内容
item
.
name
=
suffixUrl
;
return
item
;
}
});
this
.
imgArr
=
newVideoList
;
},
},
created
()
{
_this
=
this
;
},
methods
:
{
handleRemove
(
file
,
fileList
)
{
console
.
log
(
file
);
this
.
imgArr
=
fileList
;
},
handleExceed
(
files
,
fileList
)
{
this
.
$message
.
warning
(
`当前限制选择 3 个文件,本次选择了
${
files
.
length
}
个文件,共选择了
${
files
.
length
+
fileList
.
length
}
个文件`
);
},
sucess
(
response
,
file
,
fileList
)
{
console
.
log
(
response
);
console
.
log
(
file
);
this
.
imgArr
=
fileList
;
},
setNewArr
()
{
const
newArr
=
[];
if
(
this
.
imgArr
&&
this
.
imgArr
.
length
)
{
this
.
imgArr
.
forEach
((
item
)
=>
{
if
(
item
.
url
&&
item
.
status
===
'success'
)
{
newArr
.
push
(
item
.
url
);
}
});
}
return
newArr
;
},
beforeUploadFile
(
file
)
{
openLoading
(
_this
);
doUpload
(
_this
,
file
,
getFilePath
(
file
,
null
),
null
,
null
,
''
).
then
(
function
(
res
)
{
closeLoading
(
_this
);
const
fileItem
=
{
name
:
res
.
name
?
res
.
name
:
res
.
fullPath
,
size
:
res
.
size
,
status
:
'success'
,
url
:
res
.
fullPath
};
_this
.
imgArr
.
push
(
fileItem
);
_this
.
$message
.
success
(
'上传成功'
);
});
}
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.upload
{
&
-main
{
overflow-y
:
scroll
;
&
__video
{
margin-top
:
5px
;
margin-right
:
25px
;
width
:
200px
;
height
:
200px
;
object-fit
:
fill
;
}
}
}
/* 隐藏滚动条 */
::-webkit-scrollbar
{
display
:
none
;
}
</
style
>
src/components/list/table-set-component.vue
浏览文件 @
7dd7016a
...
@@ -29,12 +29,16 @@
...
@@ -29,12 +29,16 @@
:label=
"item.label"
:label=
"item.label"
:show-overflow-tooltip=
"item.showtooltip"
:show-overflow-tooltip=
"item.showtooltip"
:sortable=
"
:sortable=
"
item.prop == 'appointBeginTime' || item.prop == 'assistantBeginTime'
item.prop == 'appointBeginTime' ||
item.prop == 'assistantBeginTime' ||
item.prop == 'assistantTime' ||
item.prop == 'receptionTime'
? 'custom'
? 'custom'
: false
: false
"
"
min-width=
"170"
min-width=
"170"
align=
"center"
align=
"center"
:fixed=
"item.fixed || false"
>
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<div
v-if=
"scope.column.property == 'appointBeginTime'"
>
<div
v-if=
"scope.column.property == 'appointBeginTime'"
>
...
@@ -49,6 +53,31 @@
...
@@ -49,6 +53,31 @@
<p>
{{
scope
.
row
.
receptionBeginTime
}}
</p>
<p>
{{
scope
.
row
.
receptionBeginTime
}}
</p>
<p>
{{
scope
.
row
.
receptionEndTime
}}
</p>
<p>
{{
scope
.
row
.
receptionEndTime
}}
</p>
</div>
</div>
<div
v-else-if=
"scope.column.property == 'assistantTime'"
>
<div
:style=
"
{
color:
scope.row.diagnoseChannel === 3
&&
scope.row.status === 3
? 'red'
: '',
}"
>
<p
v-if=
"scope.row.diagnoseChannel === 3 && scope.row.status === 3"
>
距自动结束还剩
</p>
<p>
{{
goTime
(
scope
.
row
.
assistantTime
)
}}
</p>
</div>
</div>
<div
v-else-if=
"scope.column.property == 'receptionTime'"
>
<div
:style=
"
{ color: isReceptionTime(scope) ? 'red' : '' }">
<p
v-if=
"isReceptionTime(scope)"
>
距自动取消还剩
</p>
<p>
{{
goTime
(
scope
.
row
.
receptionTime
)
}}
</p>
</div>
</div>
<div
v-else
>
<div
v-else
>
<p>
{{
scope
.
row
[
scope
.
column
.
property
]
}}
</p>
<p>
{{
scope
.
row
[
scope
.
column
.
property
]
}}
</p>
</div>
</div>
...
@@ -127,6 +156,7 @@
...
@@ -127,6 +156,7 @@
>
>
修改科室
修改科室
</el-button>
</el-button>
<!-- 问诊方式不能为小程序问诊 scope.row.diagnoseChannel!==3隐藏发送消息 -->
<el-button
<el-button
v-if=
"showBtn(scope.row, 3, 4, 5, 6, 21, 22, 23, 24, 25, 26)"
v-if=
"showBtn(scope.row, 3, 4, 5, 6, 21, 22, 23, 24, 25, 26)"
type=
"primary"
type=
"primary"
...
@@ -192,7 +222,11 @@
...
@@ -192,7 +222,11 @@
手动打回
手动打回
</el-button>
</el-button>
<el-button
<el-button
v-if=
"scope.row.diagnoseType !== 4 && showBtn(scope.row, 3, 26)"
v-if=
"
scope.row.diagnoseType !== 4 &&
showBtn(scope.row, 3, 26) &&
scope.row.diagnoseChannel !== 3
"
type=
"primary"
type=
"primary"
size=
"small"
size=
"small"
class=
"btn"
class=
"btn"
...
@@ -251,6 +285,9 @@
...
@@ -251,6 +285,9 @@
<
script
>
<
script
>
import
{
DIAGNOS_LIST_NEW
}
from
'@/utils/GeneralData/diagnosis-list-new'
;
import
{
DIAGNOS_LIST_NEW
}
from
'@/utils/GeneralData/diagnosis-list-new'
;
import
TabSet
from
'@/components/common/tab-set'
;
import
TabSet
from
'@/components/common/tab-set'
;
import
dayjs
from
'dayjs'
;
import
duration
from
'dayjs/plugin/duration'
;
dayjs
.
extend
(
duration
);
export
default
{
export
default
{
components
:
{
components
:
{
TabSet
,
TabSet
,
...
@@ -406,9 +443,9 @@ export default {
...
@@ -406,9 +443,9 @@ export default {
this
.
$emit
(
'changeTime'
,
row
);
this
.
$emit
(
'changeTime'
,
row
);
},
},
// 发起问诊
// 发起问诊
call
(
row
)
{
//
call(row) {
this
.
$emit
(
'call'
,
row
);
// this.$emit("call"
, row);
},
//
},
// 设为已完成
// 设为已完成
doneHandle
(
row
)
{
doneHandle
(
row
)
{
this
.
$emit
(
'doneHandle'
,
row
);
this
.
$emit
(
'doneHandle'
,
row
);
...
@@ -422,6 +459,23 @@ export default {
...
@@ -422,6 +459,23 @@ export default {
callAssistant
(
row
)
{
callAssistant
(
row
)
{
this
.
$emit
(
'callAssistant'
,
row
);
this
.
$emit
(
'callAssistant'
,
row
);
},
},
// 转成时分秒
goTime
(
time
)
{
return
dayjs
.
duration
(
time
,
'seconds'
).
format
(
'HH:mm:ss'
);
},
isReceptionTime
(
scope
)
{
if
(
scope
.
row
.
diagnoseChannel
===
3
&&
(
scope
.
row
.
status
===
2
||
scope
.
row
.
status
===
21
||
scope
.
row
.
status
===
22
||
scope
.
row
.
status
===
23
||
scope
.
row
.
status
===
24
||
scope
.
row
.
status
===
25
||
scope
.
row
.
status
===
26
)
)
return
true
;
},
},
},
};
};
</
script
>
</
script
>
...
...
src/styles/global.scss
浏览文件 @
7dd7016a
...
@@ -6,6 +6,9 @@
...
@@ -6,6 +6,9 @@
.flex
{
.flex
{
display
:
flex
;
display
:
flex
;
}
}
.flex-1
{
flex
:
1
;
}
.space-between
{
.space-between
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
...
...
src/utils/GeneralData/diagnosis-list-new.js
浏览文件 @
7dd7016a
export
const
DIAGNOS_LIST_NEW
=
[
export
const
DIAGNOS_LIST_NEW
=
[
{
{
prop
:
'diagnoseLogId'
,
prop
:
'diagnoseLogId'
,
label
:
'ID'
,
label
:
'
问诊
ID'
,
showtooltip
:
false
,
showtooltip
:
false
,
fixed
:
'left'
,
},
},
{
{
prop
:
'
orderNo
'
,
prop
:
'
userName
'
,
label
:
'
订单ID
'
,
label
:
'
助诊医生
'
,
showtooltip
:
false
,
showtooltip
:
false
,
fixed
:
'left'
,
},
},
{
{
prop
:
'
pric
e'
,
prop
:
'
doctorNam
e'
,
label
:
'
订单金额
'
,
label
:
'
接诊医生
'
,
showtooltip
:
false
,
showtooltip
:
false
,
fixed
:
'left'
,
},
},
{
{
prop
:
'orderPlacer'
,
prop
:
'triageDepartment'
,
label
:
'下单人'
,
label
:
'分诊科室'
,
showtooltip
:
false
,
},
{
prop
:
'patientName'
,
label
:
'患者姓名'
,
showtooltip
:
false
,
},
{
prop
:
'statusStr'
,
label
:
'状态'
,
showtooltip
:
false
,
},
{
prop
:
'price'
,
label
:
'订单金额'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
{
...
@@ -37,13 +55,43 @@ export const DIAGNOS_LIST_NEW = [
...
@@ -37,13 +55,43 @@ export const DIAGNOS_LIST_NEW = [
with
:
'200'
,
with
:
'200'
,
},
},
{
{
prop
:
'
refundRemark
'
,
prop
:
'
diagnoseChannelStr
'
,
label
:
'
外呼状态
'
,
label
:
'
问诊方式
'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
{
prop
:
'statusStr'
,
prop
:
'appointBeginTime'
,
label
:
'状态'
,
label
:
'预约时间'
,
showtooltip
:
false
,
},
{
prop
:
'doneTime'
,
label
:
'完成时间'
,
showtooltip
:
false
,
},
{
prop
:
'createdTime'
,
label
:
'创建时间'
,
showtooltip
:
false
,
},
{
prop
:
'assistantBeginTime'
,
label
:
'助诊医生意向时间'
,
showtooltip
:
false
,
},
{
prop
:
'orderNo'
,
label
:
'订单ID'
,
showtooltip
:
false
,
},
{
prop
:
'orderPlacer'
,
label
:
'下单人'
,
showtooltip
:
false
,
},
{
prop
:
'refundRemark'
,
label
:
'外呼状态'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
{
...
@@ -62,11 +110,15 @@ export const DIAGNOS_LIST_NEW = [
...
@@ -62,11 +110,15 @@ export const DIAGNOS_LIST_NEW = [
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
{
prop
:
'appointBeginTime'
,
prop
:
'assistantTime'
,
label
:
'预约时间'
,
label
:
'问诊时长'
,
showtooltip
:
false
,
},
{
prop
:
'receptionTime'
,
label
:
'接诊时长'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
// appointBeginTime appointEndTime 预约时间
{
{
prop
:
'operateUserId'
,
prop
:
'operateUserId'
,
label
:
'运营人员ID'
,
label
:
'运营人员ID'
,
...
@@ -77,21 +129,11 @@ export const DIAGNOS_LIST_NEW = [
...
@@ -77,21 +129,11 @@ export const DIAGNOS_LIST_NEW = [
label
:
'运营人员'
,
label
:
'运营人员'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
prop
:
'userName'
,
label
:
'助诊医生'
,
showtooltip
:
false
,
},
{
{
prop
:
'userMobile'
,
prop
:
'userMobile'
,
label
:
'助诊电话'
,
label
:
'助诊电话'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
prop
:
'assistantBeginTime'
,
label
:
'助诊医生意向时间'
,
showtooltip
:
false
,
},
// assistantBeginTime assistantEndTime 助诊医生意向时间
// assistantBeginTime assistantEndTime 助诊医生意向时间
{
{
prop
:
'assistantRemark'
,
prop
:
'assistantRemark'
,
...
@@ -103,21 +145,11 @@ export const DIAGNOS_LIST_NEW = [
...
@@ -103,21 +145,11 @@ export const DIAGNOS_LIST_NEW = [
label
:
'预约科室'
,
label
:
'预约科室'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
prop
:
'triageDepartment'
,
label
:
'分诊科室'
,
showtooltip
:
false
,
},
{
{
prop
:
'triageRemark'
,
prop
:
'triageRemark'
,
label
:
'分诊备注'
,
label
:
'分诊备注'
,
showtooltip
:
true
,
showtooltip
:
true
,
},
},
{
prop
:
'doctorName'
,
label
:
'接诊医生'
,
showtooltip
:
false
,
},
{
{
prop
:
'outsideDoctor'
,
prop
:
'outsideDoctor'
,
label
:
'站外医生姓名'
,
label
:
'站外医生姓名'
,
...
@@ -134,11 +166,7 @@ export const DIAGNOS_LIST_NEW = [
...
@@ -134,11 +166,7 @@ export const DIAGNOS_LIST_NEW = [
showtooltip
:
false
,
showtooltip
:
false
,
},
},
// receptionBeginTime receptionEndTime 接诊医生意向时间
// receptionBeginTime receptionEndTime 接诊医生意向时间
{
prop
:
'patientName'
,
label
:
'患者姓名'
,
showtooltip
:
false
,
},
{
{
prop
:
'age'
,
prop
:
'age'
,
label
:
'患者年龄'
,
label
:
'患者年龄'
,
...
@@ -199,26 +227,11 @@ export const DIAGNOS_LIST_NEW = [
...
@@ -199,26 +227,11 @@ export const DIAGNOS_LIST_NEW = [
label
:
'招募人'
,
label
:
'招募人'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
prop
:
'diagnoseChannelStr'
,
label
:
'问诊方式'
,
showtooltip
:
false
,
},
{
prop
:
'doneTime'
,
label
:
'完成时间'
,
showtooltip
:
false
,
},
{
{
prop
:
'cancelTime'
,
prop
:
'cancelTime'
,
label
:
'退款时间'
,
label
:
'退款时间'
,
showtooltip
:
false
,
showtooltip
:
false
,
},
},
{
prop
:
'createdTime'
,
label
:
'创建时间'
,
showtooltip
:
false
,
},
{
{
prop
:
'followFlagStr'
,
prop
:
'followFlagStr'
,
label
:
'是否跟进'
,
label
:
'是否跟进'
,
...
...
src/utils/constants.js
浏览文件 @
7dd7016a
...
@@ -5,10 +5,6 @@
...
@@ -5,10 +5,6 @@
// 预约类型list
// 预约类型list
export
const
TYPE_LIST
=
[
export
const
TYPE_LIST
=
[
{
label
:
'全部'
,
value
:
''
,
},
{
{
label
:
'语音问诊'
,
label
:
'语音问诊'
,
value
:
1
,
value
:
1
,
...
@@ -667,3 +663,104 @@ export const TABLE_COLUMN = [
...
@@ -667,3 +663,104 @@ export const TABLE_COLUMN = [
showtooltip
:
true
,
showtooltip
:
true
,
},
},
];
];
export
const
DIAGNOSE_CHANNEL
=
[
{
label
:
'app问诊'
,
value
:
1
,
},
{
label
:
'线下问诊'
,
value
:
2
,
},
{
label
:
'小程序问诊'
,
value
:
3
,
},
];
// 跟进状态
export
const
FOLLOW_STATUS_LIST
=
[
{
label
:
'待跟进'
,
value
:
1
,
},
{
label
:
'跟进中'
,
value
:
2
,
},
{
label
:
'已完成'
,
value
:
3
,
},
];
// 药品跟进结果
export
const
MEDICINE_FOLLOW_STATUS_LIST
=
[
{
label
:
'成交中药'
,
value
:
1
,
},
{
label
:
'成交西药'
,
value
:
2
,
},
{
label
:
'自备中药'
,
value
:
3
,
},
{
label
:
'自备西药'
,
value
:
4
,
},
];
// 治疗效果跟进状态
export
const
HEALING_EFFECT_FOLLOW_STATUS
=
[
{
label
:
'待跟进'
,
value
:
1
,
},
{
label
:
'跟进中'
,
value
:
2
,
},
{
label
:
'跟进完成'
,
value
:
3
,
},
{
label
:
'长期跟进'
,
value
:
4
,
},
];
// 治疗效果跟进结果
export
const
HEALING_EFFECT_FOLLOW_RESULT
=
[
{
label
:
'效果显著'
,
value
:
1
,
},
{
label
:
'有效果,不明显'
,
value
:
2
,
},
{
label
:
'无效果'
,
value
:
3
,
},
{
label
:
'治疗后更差了'
,
value
:
4
,
},
];
// 检查跟进结果
export
const
CHECK_FOLLOW_RESULT
=
[
{
label
:
'成交'
,
value
:
1
,
},
{
label
:
'未成交'
,
value
:
2
,
},
{
label
:
'线下自己做'
,
value
:
3
,
},
];
\ No newline at end of file
src/views/IM/diagnosis-admin/diagnosis-editor.vue
浏览文件 @
7dd7016a
此差异已折叠。
点击以展开。
src/views/IM/diagnosis-admin/diagnosis-im.vue
浏览文件 @
7dd7016a
...
@@ -117,21 +117,49 @@
...
@@ -117,21 +117,49 @@
>
>
<span>
该消息类型PC端暂不支持
</span>
<span>
该消息类型PC端暂不支持
</span>
</div>
</div>
<!-- 安排接诊医生 -->
<div
v-if=
"item.showType === 13"
class=
"time-box"
>
<div
class=
"physician-left"
>
{{
item
.
title
}}
</div>
<div
class=
"physician"
>
<div
class=
"physician-right"
>
<div
class=
"physician-right__top"
>
<span>
{{
item
.
text
.
doctorName
}}
</span>
<span>
{{
item
.
text
.
title
}}
{{
item
.
text
.
department
}}
</span>
</div>
<div
class=
"physician-right__center"
>
{{
item
.
text
.
hospital
}}
</div>
<div
class=
"physician-right__center"
>
擅长:
{{
item
.
text
.
goodAt
}}
</div>
</div>
</div>
</div>
<!-- 语音消息 -->
<!-- 语音消息 -->
<div
<div
v-if=
"item.showType == 6"
v-if=
"item.showType == 6"
class=
"audio-box"
class=
"audio-box"
>
>
<audio
controls
>
<
!--
<
audio
controls
>
<source
<source
:src=
"item.url"
:src=
"item.url"
type=
"audio/mpeg"
type=
"audio/mpeg"
>
>
</audio>
</audio>
-->
<audio
controls
:src=
"item.url"
/>
</div>
</div>
<!-- 问诊开始与病例模块 -->
<!-- 问诊开始与病例模块 showType == 7-->
<!-- 患者病情 showType == 12-->
<div
<div
v-if=
"item.showType == 7"
v-if=
"item.showType == 7
|| item.showType == 12
"
class=
"diagnosis-box"
class=
"diagnosis-box"
>
>
<div
class=
"title"
>
<div
class=
"title"
>
...
@@ -641,7 +669,15 @@
...
@@ -641,7 +669,15 @@
showType
=
11
;
showType
=
11
;
title
=
content
.
title
;
title
=
content
.
title
;
text
=
content
.
content
;
text
=
content
.
content
;
}
else
{
}
else
if
(
content
.
bizType
===
29
)
{
// 患者病情
showType
=
12
;
title
=
content
.
title
;
text
=
JSON
.
parse
(
content
.
content
);
}
else
if
(
content
.
bizType
===
30
)
{
// 接诊医生
showType
=
13
;
title
=
content
.
title
;
text
=
JSON
.
parse
(
content
.
content
);
}
else
{
showType
=
5
;
showType
=
5
;
}
}
}
else
if
(
msg
.
type
.
toLowerCase
()
==
'image'
||
msg
.
type
.
toLowerCase
()
==
'picture'
)
{
// 图片
}
else
if
(
msg
.
type
.
toLowerCase
()
==
'image'
||
msg
.
type
.
toLowerCase
()
==
'picture'
)
{
// 图片
...
...
src/views/IM/diagnosis-admin/diagnosis-list-new.vue
浏览文件 @
7dd7016a
此差异已折叠。
点击以展开。
src/views/IM/diagnosis-admin/im.scss
浏览文件 @
7dd7016a
...
@@ -342,8 +342,7 @@
...
@@ -342,8 +342,7 @@
}
}
}
}
}
}
.
msg-content
:
:-
webkit-scrollbar
.
msg-content
:
:-
webkit-scrollbar
{
{
width
:
0px
;
width
:
0px
;
height
:
0px
;
height
:
0px
;
background-color
:
#fff
;
background-color
:
#fff
;
...
@@ -423,6 +422,37 @@
...
@@ -423,6 +422,37 @@
-o-animation
:
rotate
3s
linear
infinite
;
-o-animation
:
rotate
3s
linear
infinite
;
animation
:
rotate
3s
linear
infinite
;
animation
:
rotate
3s
linear
infinite
;
}
}
.physician
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
flex-start
;
justify-content
:
flex-start
;
&
-left
{
font-size
:
14px
;
font-weight
:
600
;
padding-bottom
:
10px
;
}
&
-right
{
&
__top
{
span
{
&
:nth-child
(
1
)
{
font-size
:
14px
;
}
&
:nth-child
(
2
)
{
font-size
:
12px
;
}
}
}
&
__center
{
color
:
#999999
;
}
}
}
@-webkit-keyframes
rotate
{
from
{
-webkit-transform
:
rotate
(
0deg
)}
@-webkit-keyframes
rotate
{
from
{
-webkit-transform
:
rotate
(
0deg
)}
to
{
-webkit-transform
:
rotate
(
360deg
)}
to
{
-webkit-transform
:
rotate
(
360deg
)}
}
}
...
...
vue.config.js
浏览文件 @
7dd7016a
...
@@ -70,7 +70,7 @@ module.exports = {
...
@@ -70,7 +70,7 @@ module.exports = {
port
:
8080
,
port
:
8080
,
proxy
:
{
proxy
:
{
'/proxy'
:
{
'/proxy'
:
{
target
:
'https://
test1
-sc.yunqueyi.com/'
,
target
:
'https://
uat
-sc.yunqueyi.com/'
,
ws
:
false
,
ws
:
false
,
changeOrigin
:
true
,
changeOrigin
:
true
,
secure
:
true
,
secure
:
true
,
...
...
yarn.lock
浏览文件 @
7dd7016a
此差异已折叠。
点击以展开。
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录