Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
025fe70a
Commit
025fe70a
authored
Nov 29, 2023
by
“yiyousong”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
perf: 评价报表添加评价人视频和音频信息查看
parent
c8bda477
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
285 additions
and
84 deletions
+285
-84
portal-manager-ui/admin/.env.development
portal-manager-ui/admin/.env.development
+3
-3
portal-manager-ui/admin/src/assets/css/common.less
portal-manager-ui/admin/src/assets/css/common.less
+7
-0
portal-manager-ui/admin/src/assets/images/out.mp3
portal-manager-ui/admin/src/assets/images/out.mp3
+0
-0
portal-manager-ui/admin/src/components/PrevieModal.vue
portal-manager-ui/admin/src/components/PrevieModal.vue
+27
-14
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/components/HandlingDetails.vue
...nts/evaluationRecordReport/components/HandlingDetails.vue
+64
-18
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/departmentEvaluation.vue
...omponents/evaluationRecordReport/departmentEvaluation.vue
+59
-13
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue
...in/components/evaluationRecordReport/matterEvaluation.vue
+57
-12
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/windowEvaluation.vue
...in/components/evaluationRecordReport/windowEvaluation.vue
+58
-12
portal-manager-ui/admin/src/views/signIn/signIn.vue
portal-manager-ui/admin/src/views/signIn/signIn.vue
+10
-12
No files found.
portal-manager-ui/admin/.env.development
View file @
025fe70a
# 开发环境配置
NODE_ENV = development
# VUE_APP_API_BASE_URL=http://8.136.255.30:11078
VUE_APP_API_BASE_URL=http://192.168.0.
98
:11078
VUE_APP_API_BASE_URL=http://192.168.0.
124
:11078
#图片显示拼接
# VUE_APP_API_IMG_URL=http://8.136.255.30:11078/
VUE_APP_API_IMG_URL=http://192.168.0.
98
:11078/
VUE_APP_API_IMG_URL=http://192.168.0.
124
:11078/
#余林
# VUE_APP_API_PHP_URL=http://8.136.255.30:8090
VUE_APP_API_PHP_URL=http://192.168.0.
98
:8090
VUE_APP_API_PHP_URL=http://192.168.0.
124
:8090
#宜宾
#VUE_APP_API_BASE_URL=http://10.12.185.213:11072
portal-manager-ui/admin/src/assets/css/common.less
View file @
025fe70a
...
...
@@ -778,6 +778,13 @@ img {
// }
// }
.anticon-sound {
font-size: 20px;
color: #1890ff;
cursor: pointer;
}
// 统一设置表格为空时的展示
.ant-table-tbody {
td:empty::after {
...
...
portal-manager-ui/admin/src/assets/images/out.mp3
0 → 100644
View file @
025fe70a
File added
portal-manager-ui/admin/src/components/PrevieModal.vue
View file @
025fe70a
<
template
>
<div
class=
"previe-modal"
v-if=
"Visible"
@
click=
"Visible = false"
>
<img
@
click
.
stop
v-if=
"previeData.type === 'img'"
:src=
"previeData.url"
/>
<video
@
click
.
stop
v-else
:src=
"previeData.url"
autoplay
muted
controls
></video>
<a-icon
type=
"close-circle"
/>
<div
class=
"previe-modal"
v-if=
"Visible"
>
<div
class=
"main"
>
<img
v-if=
"previeData.type === 'img'"
:src=
"previeData.url"
/>
<video
v-else-if=
"previeData.type === 'video'"
:src=
"previeData.url"
autoplay
muted
controls
></video>
<audio
v-else-if=
"previeData.type === 'audio'"
controls
src=
"@/assets/images/out.mp3"
></audio>
</div>
<a-icon
@
click=
"Visible = false"
type=
"close-circle"
/>
</div>
</
template
>
...
...
@@ -55,10 +61,17 @@ export default {
flex-direction: column;
justify-content: center;
align-items: center;
img,
video {
.main {
height: 400px;
max-width: 800px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
img,
video {
height: 100%;
object-fit: contain;
}
.anticon-close-circle {
...
...
@@ -68,4 +81,4 @@ export default {
cursor: pointer;
}
}
</
style
>
\ No newline at end of file
</
style
>
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/components/HandlingDetails.vue
View file @
025fe70a
...
...
@@ -120,24 +120,35 @@
>
</a-col>
<a-col
:span=
"12"
>
<span>
<span
class=
"flex"
>
<span
class=
"lable"
>
评价人照片:
</span>
<a-avatar
v-if=
"!detailsInfo.picture"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl + '/' + detailsInfo.picture"
@
click=
"
$viewerApi(
{
images: [baseurl + '/' + detailsInfo.picture],
})
"
class="cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
/>
<span
v-if=
"detailsInfo.picture || detailsInfo.process"
>
<img
v-if=
"detailsInfo.picture"
:src=
"baseurl + '/' + detailsInfo.picture"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
@
click=
"
$viewerApi(
{
images: [baseurl + '/' + detailsInfo.picture],
})
"
/>
<video
v-else-if=
"
detailsInfo.process &&
estimateVideo(detailsInfo.process)
"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
:src=
"baseurl + '/' + detailsInfo.process"
@
click=
"checkMultimedia(detailsInfo.process)"
></video>
<a-icon
v-else
type=
"sound"
@
click=
"checkMultimedia(detailsInfo.process)"
/>
</span>
<a-avatar
v-else
shape=
"square"
:size=
"40"
icon=
"user"
/>
</span>
</a-col>
</a-row>
...
...
@@ -382,11 +393,17 @@
</a-step>
</a-steps>
</div>
<!-- 音视频查看 -->
<PrevieModal
:previeData=
"previeData"
:previeVisible.sync=
"previeVisible"
></PrevieModal>
</a-drawer>
</div>
</
template
>
<
script
>
import
PrevieModal
from
"
@/components/PrevieModal.vue
"
;
export
default
{
props
:
{
type
:
{
...
...
@@ -412,9 +429,14 @@ export default {
},
},
},
components
:
{
PrevieModal
,
},
data
()
{
return
{
baseurl
:
process
.
env
.
VUE_APP_API_PHP_URL
,
previeData
:
{},
previeVisible
:
false
,
};
},
computed
:
{
...
...
@@ -462,6 +484,30 @@ export default {
}
}
},
// 判断是否是视频文件
estimateVideo
(
url
)
{
let
index
=
url
.
lastIndexOf
(
"
.
"
);
let
type
=
url
.
slice
(
index
+
1
);
return
type
===
"
mp4
"
;
},
// 查看音视频
checkMultimedia
(
url
)
{
let
isVideo
=
this
.
estimateVideo
(
url
);
let
curUrl
=
this
.
baseurl
+
"
/
"
+
url
;
if
(
isVideo
)
{
this
.
previeData
=
{
type
:
"
video
"
,
url
:
curUrl
,
};
}
else
{
this
.
previeData
=
{
type
:
"
audio
"
,
url
:
curUrl
,
};
}
this
.
previeVisible
=
true
;
},
},
};
</
script
>
...
...
@@ -517,4 +563,4 @@ export default {
color: #656565;
}
}
</
style
>
\ No newline at end of file
</
style
>
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/departmentEvaluation.vue
View file @
025fe70a
...
...
@@ -24,14 +24,27 @@
@change="changeTable"
>
<!-- 评价人照片 -->
<template
slot=
"picture"
slot-scope=
"text"
>
<a-avatar
v-if=
"!text"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl + '/' + text"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
@
click=
"$viewerApi(
{ images: [baseurl + '/' + text] })"
/>
<template
slot=
"picture"
slot-scope=
"text, record"
>
<div
v-if=
"text || record.process"
>
<img
v-if=
"text"
:src=
"baseurl + '/' + text"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
@
click=
"$viewerApi(
{ images: [baseurl + '/' + text] })"
/>
<video
v-else-if=
"record.process && estimateVideo(record.process)"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
:src=
"baseurl + '/' + record.process"
@
click=
"checkMultimedia(record.process)"
></video>
<a-icon
v-else
type=
"sound"
@
click=
"checkMultimedia(record.process)"
/>
</div>
<a-avatar
v-else
shape=
"square"
:size=
"40"
icon=
"user"
/>
</
template
>
<!-- 操作 -->
...
...
@@ -61,13 +74,19 @@
:title=
"title"
:type=
"detailsType"
></HandlingDetails>
<!-- 音视频查看 -->
<PrevieModal
:previeData=
"previeData"
:previeVisible.sync=
"previeVisible"
></PrevieModal>
</div>
</template>
<
script
>
<
script
>
import
{
mapState
}
from
"
vuex
"
;
import
storage
from
"
@/utils/js/Storage
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
PrevieModal
from
"
@/components/PrevieModal.vue
"
;
import
{
export2Excel
}
from
"
@/utils/js/exportExcel
"
;
import
{
getEvaList
,
getEvaData
,
getEvaDetil
}
from
"
@/api/dataAdmin
"
;
const
tHeader
=
[
...
...
@@ -93,6 +112,7 @@ const filterVal = [
export
default
{
components
:
{
HandlingDetails
,
PrevieModal
,
},
data
()
{
const
columns
=
[
...
...
@@ -205,6 +225,8 @@ export default {
return
{
baseurl
:
process
.
env
.
VUE_APP_API_PHP_URL
,
siteId
:
storage
.
get
(
2
,
"
siteId
"
),
previeData
:
{},
previeVisible
:
false
,
columns
,
tHeader
,
filterVal
,
...
...
@@ -417,9 +439,33 @@ export default {
onCancel
()
{},
});
},
// 判断是否是视频文件
estimateVideo
(
url
)
{
let
index
=
url
.
lastIndexOf
(
"
.
"
);
let
type
=
url
.
slice
(
index
+
1
);
return
type
===
"
mp4
"
;
},
// 查看音视频
checkMultimedia
(
url
)
{
let
isVideo
=
this
.
estimateVideo
(
url
);
let
curUrl
=
this
.
baseurl
+
"
/
"
+
url
;
if
(
isVideo
)
{
this
.
previeData
=
{
type
:
"
video
"
,
url
:
curUrl
,
};
}
else
{
this
.
previeData
=
{
type
:
"
audio
"
,
url
:
curUrl
,
};
}
this
.
previeVisible
=
true
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
<
style
lang=
"less"
scoped
></
style
>
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/matterEvaluation.vue
View file @
025fe70a
...
...
@@ -23,14 +23,27 @@
@change="changeTable"
>
<!-- 评价人照片 -->
<template
slot=
"picture"
slot-scope=
"text"
>
<a-avatar
v-if=
"!text"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl + '/' + text"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
@
click=
"$viewerApi(
{ images: [baseurl + '/' + text] })"
/>
<template
slot=
"picture"
slot-scope=
"text, record"
>
<div
v-if=
"text || record.process"
>
<img
v-if=
"text"
:src=
"baseurl + '/' + text"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
@
click=
"$viewerApi(
{ images: [baseurl + '/' + text] })"
/>
<video
v-else-if=
"record.process && estimateVideo(record.process)"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
:src=
"baseurl + '/' + record.process"
@
click=
"checkMultimedia(record.process)"
></video>
<a-icon
v-else
type=
"sound"
@
click=
"checkMultimedia(record.process)"
/>
</div>
<a-avatar
v-else
shape=
"square"
:size=
"40"
icon=
"user"
/>
</
template
>
<!-- 操作 -->
...
...
@@ -60,13 +73,19 @@
:title=
"title"
:type=
"detailsType"
></HandlingDetails>
<!-- 音视频查看 -->
<PrevieModal
:previeData=
"previeData"
:previeVisible.sync=
"previeVisible"
></PrevieModal>
</div>
</template>
<
script
>
import
{
mapState
}
from
"
vuex
"
;
import
storage
from
"
@/utils/js/Storage
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
PrevieModal
from
"
@/components/PrevieModal.vue
"
;
import
{
export2Excel
}
from
"
@/utils/js/exportExcel
"
;
import
{
getEvaList
,
getEvaDetil
,
getQueEvaData
}
from
"
@/api/dataAdmin
"
;
const
tHeader
=
[
...
...
@@ -92,6 +111,7 @@ const filterVal = [
export
default
{
components
:
{
HandlingDetails
,
PrevieModal
,
},
data
()
{
const
columns
=
[
...
...
@@ -202,6 +222,8 @@ export default {
return
{
baseurl
:
process
.
env
.
VUE_APP_API_PHP_URL
,
siteId
:
storage
.
get
(
2
,
"
siteId
"
),
previeData
:
{},
previeVisible
:
false
,
columns
,
tHeader
,
filterVal
,
...
...
@@ -413,9 +435,32 @@ export default {
onCancel
()
{},
});
},
// 判断是否是视频文件
estimateVideo
(
url
)
{
let
index
=
url
.
lastIndexOf
(
"
.
"
);
let
type
=
url
.
slice
(
index
+
1
);
return
type
===
"
mp4
"
;
},
// 查看音视频
checkMultimedia
(
url
)
{
let
isVideo
=
this
.
estimateVideo
(
url
);
let
curUrl
=
this
.
baseurl
+
"
/
"
+
url
;
if
(
isVideo
)
{
this
.
previeData
=
{
type
:
"
video
"
,
url
:
curUrl
,
};
}
else
{
this
.
previeData
=
{
type
:
"
audio
"
,
url
:
curUrl
,
};
}
this
.
previeVisible
=
true
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
<
style
lang=
"less"
scoped
></
style
>
portal-manager-ui/admin/src/views/dataAdmin/components/evaluationRecordReport/windowEvaluation.vue
View file @
025fe70a
...
...
@@ -24,14 +24,27 @@
@change="changeTable"
>
<!-- 评价人照片 -->
<template
slot=
"picture"
slot-scope=
"text"
>
<a-avatar
v-if=
"!text"
shape=
"square"
:size=
"40"
icon=
"user"
/>
<img
v-else
:src=
"baseurl + '/' + text"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
@
click=
"$viewerApi(
{ images: [baseurl + '/' + text] })"
/>
<template
slot=
"picture"
slot-scope=
"text, record"
>
<div
v-if=
"text || record.process"
>
<img
v-if=
"text"
:src=
"baseurl + '/' + text"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
@
click=
"$viewerApi(
{ images: [baseurl + '/' + text] })"
/>
<video
v-else-if=
"record.process && estimateVideo(record.process)"
class=
"cursor-pointer w-[50px] max-h-[50px] rounded-[4px]"
:src=
"baseurl + '/' + record.process"
@
click=
"checkMultimedia(record.process)"
></video>
<a-icon
v-else
type=
"sound"
@
click=
"checkMultimedia(record.process)"
/>
</div>
<a-avatar
v-else
shape=
"square"
:size=
"40"
icon=
"user"
/>
</
template
>
<!-- 操作 -->
...
...
@@ -61,13 +74,19 @@
:title=
"title"
:type=
"detailsType"
></HandlingDetails>
<!-- 音视频查看 -->
<PrevieModal
:previeData=
"previeData"
:previeVisible.sync=
"previeVisible"
></PrevieModal>
</div>
</template>
<
script
>
import
{
mapState
}
from
"
vuex
"
;
import
storage
from
"
@/utils/js/Storage
"
;
import
HandlingDetails
from
"
./components/HandlingDetails.vue
"
;
import
PrevieModal
from
"
@/components/PrevieModal.vue
"
;
import
{
export2Excel
}
from
"
@/utils/js/exportExcel
"
;
import
{
getEvaList
,
getEvaData
,
getEvaDetil
}
from
"
@/api/dataAdmin
"
;
const
tHeader
=
[
...
...
@@ -93,6 +112,7 @@ const filterVal = [
export
default
{
components
:
{
HandlingDetails
,
PrevieModal
,
},
data
()
{
const
columns
=
[
...
...
@@ -206,6 +226,8 @@ export default {
columns
,
tHeader
,
filterVal
,
previeData
:
{},
previeVisible
:
false
,
tableData
:
[],
current
:
1
,
size
:
10
,
...
...
@@ -415,9 +437,33 @@ export default {
onCancel
()
{},
});
},
// 判断是否是视频文件
estimateVideo
(
url
)
{
let
index
=
url
.
lastIndexOf
(
"
.
"
);
let
type
=
url
.
slice
(
index
+
1
);
return
type
===
"
mp4
"
;
},
// 查看音视频
checkMultimedia
(
url
)
{
let
isVideo
=
this
.
estimateVideo
(
url
);
let
curUrl
=
this
.
baseurl
+
"
/
"
+
url
;
if
(
isVideo
)
{
this
.
previeData
=
{
type
:
"
video
"
,
url
:
curUrl
,
};
}
else
{
this
.
previeData
=
{
type
:
"
audio
"
,
url
:
curUrl
,
};
}
this
.
previeVisible
=
true
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
<
style
lang=
"less"
scoped
></
style
>
portal-manager-ui/admin/src/views/signIn/signIn.vue
View file @
025fe70a
...
...
@@ -333,6 +333,7 @@ export default {
speed
:
1000
,
// 时长
// simulateTouch: false, //是否允许鼠标滑动切换
grabCursor
:
false
,
// 手形鼠标
shortSwipes
:
false
,
cubeEffect
:
{
shadow
:
false
,
// 取消盒子阴影
slideShadows
:
false
,
// 取消子项拖动时候的阴影
...
...
@@ -457,33 +458,30 @@ export default {
// }
// }
@media
(max-width: 1900px)
{
.slogan{
@media
(max-width: 1900px)
{
.slogan
{
// font-size: 60px !important;
margin-left: 200px !important;
}
}
@media (max-width: 1700px){
.slogan{
@media (max-width: 1700px)
{
.slogan
{
// font-size: 60px !important;
margin-left: 100px !important;
}
}
@media (max-width: 1500px){
.slogan{
@media (max-width: 1500px)
{
.slogan
{
margin-left: 0px !important;
margin-right: 0px !important;
}
}
.login {
--pd: 9%;
--input-height: 50px;
--input-border-color: rgba(238, 238, 238, 1);
--time: 1s;
--time: 1
.5
s;
background: url("@/assets/images/login_bg.png");
background-size: 100% auto;
animation: bg-roll 150s cubic-bezier(0.21, 0.07, 0.88, 1.02) infinite;
...
...
@@ -506,11 +504,11 @@ export default {
overflow: hidden;
}
.slogan-text-1 {
animation: printText var(--time)
steps(5)
both;
animation: printText var(--time) both;
}
.slogan-text-2 {
margin-left: 1em;
animation: var(--time) printText var(--time)
steps(5)
both;
animation: var(--time) printText var(--time) both;
}
.swiper {
width: 100%;
...
...
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