Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
factory_front
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qinjianhui
factory_front
Commits
7b436e4b
Commit
7b436e4b
authored
Oct 25, 2024
by
qinjianhui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 打版管理小图加hover查看大图
parent
f0b880d1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
125 additions
and
93 deletions
+125
-93
src/views/typesetting/reviewModel.vue
+112
-92
src/views/typesetting/submitReviewModal.vue
+13
-1
No files found.
src/views/typesetting/reviewModel.vue
View file @
7b436e4b
...
...
@@ -13,6 +13,7 @@
v-for=
"(val, index) in imageList"
:key=
"index"
class=
"color-image-item"
@
mouseover=
"setMainImage(val.imagePath)"
>
<!--
<button
class=
"remove"
type=
"button"
>
<i
class=
"el-icon-close"
></i>
...
...
@@ -26,102 +27,100 @@
</li>
-->
</ul>
<div
class=
"main-image"
>
<img
:src=
"row?.mainImage"
/>
<img
:src=
"
mainImageUrl ||
row?.mainImage"
/>
</div>
</div>
<div
class=
"review-from"
>
<ElForm
ref=
"reviewFormRef"
:model=
"reviewForm"
label-width=
"120px"
inline
>
<ElFormItem
label=
"编码"
prop=
"sku"
>
<ElInput
v-model=
"reviewForm.sku"
disabled
placeholder=
"编码"
style=
"width: 200px"
/>
</ElFormItem>
<ElFormItem
label=
"负责人"
prop=
"personInChargeId"
>
<ElSelect
v-model=
"reviewForm.personInChargeId"
style=
"width: 200px"
clearable
disabled
placeholder=
"请选择负责人"
>
<ElOption
v-for=
"item in userList"
:key=
"item.id"
:label=
"item.account"
:value=
"item.id"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"紧急程度"
prop=
"urgentLevel"
>
<el-radio-group
v-model=
"reviewForm.urgentLevel"
style=
"width: 200px"
>
<el-radio
v-for=
"(item, index) in emergencyLevel"
:key=
"index"
<div>
<ElForm
ref=
"reviewFormRef"
:model=
"reviewForm"
label-width=
"120px"
inline
>
<ElFormItem
label=
"编码"
prop=
"sku"
>
<ElInput
v-model=
"reviewForm.sku"
disabled
placeholder=
"编码"
style=
"width: 200px"
/>
</ElFormItem>
<ElFormItem
label=
"负责人"
prop=
"personInChargeId"
>
<ElSelect
v-model=
"reviewForm.personInChargeId"
style=
"width: 200px"
clearable
disabled
:label=
"item.value
"
placeholder=
"请选择负责人
"
>
<svg
t=
"1627697200171"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"629"
width=
"18"
height=
"18"
<ElOption
v-for=
"item in userList"
:key=
"item.id"
:label=
"item.account"
:value=
"item.id"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"紧急程度"
prop=
"urgentLevel"
>
<el-radio-group
v-model=
"reviewForm.urgentLevel"
style=
"width: 200px"
>
<el-radio
v-for=
"(item, index) in emergencyLevel"
:key=
"index"
disabled
:label=
"item.value"
>
<path
:fill=
"setColor(index)"
d=
"M444.970667 850.090667l151.978666-64.512a85.290667 85.290667 0 0 1-151.978666 64.512z m231.765333-760.746667c89.002667 48.597333 155.818667 111.018667 199.765333 187.178667 43.946667 76.117333 64.64 165.205333 62.250667 266.581333a32 32 0 0 1-64-1.536c2.133333-90.069333-15.872-167.552-53.674667-233.045333-37.802667-65.536-95.957333-119.850667-175.018666-163.029334a32 32 0 1 1 30.72-56.192z m-390.4 188.629333a248.490667 248.490667 0 0 1 324.266667 117.162667l4.181333 8.917333 54.954667 123.392 72.448 62.72c3.968 3.413333 7.381333 7.381333 11.349333 13.824l2.517333 4.906667a53.333333 53.333333 0 0 1-27.178666 70.357333L288.213333 874.24A53.333333 53.333333 0 0 1 213.333333 825.472l-0.042666-99.968-52.992-119.082667A248.405333 248.405333 0 0 1 286.293333 277.973333z m380.288-34.986666c41.258667 22.442667 74.325333 55.210667 98.816 97.621333 24.490667 42.453333 36.309333 87.466667 35.157333 134.442667a32 32 0 1 1-64-1.578667c0.853333-35.029333-7.893333-68.437333-26.581333-100.864-18.688-32.384-43.264-56.661333-74.026667-73.472a32 32 0 0 1 30.634667-56.192z"
p-id=
"630"
></path>
</svg>
</el-radio>
</el-radio-group>
</ElFormItem>
<ElFormItem
label=
"期望完成日期"
prop=
"expectCompleteTime"
>
<ElDatePicker
v-model=
"reviewForm.expectCompleteTime"
disabled
placeholder=
"期望完成日期"
style=
"width: 200px"
></ElDatePicker>
</ElFormItem>
<ElFormItem
label=
"承诺完成日期"
prop=
"promiseCompleteTime"
:rules=
"[
{
required: true,
message: '请选择承诺完成日期',
},
]"
>
<ElDatePicker
v-model=
"reviewForm.promiseCompleteTime"
style=
"width: 200px"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD HH:mm:ss"
placeholder=
"承诺完成日期"
></ElDatePicker>
</ElFormItem>
<p
v-dompurify-html=
"reviewForm.requirement"
style=
"height: 470px"
class=
"requirement"
></p>
</ElForm>
<svg
t=
"1627697200171"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"629"
width=
"18"
height=
"18"
>
<path
:fill=
"setColor(index)"
d=
"M444.970667 850.090667l151.978666-64.512a85.290667 85.290667 0 0 1-151.978666 64.512z m231.765333-760.746667c89.002667 48.597333 155.818667 111.018667 199.765333 187.178667 43.946667 76.117333 64.64 165.205333 62.250667 266.581333a32 32 0 0 1-64-1.536c2.133333-90.069333-15.872-167.552-53.674667-233.045333-37.802667-65.536-95.957333-119.850667-175.018666-163.029334a32 32 0 1 1 30.72-56.192z m-390.4 188.629333a248.490667 248.490667 0 0 1 324.266667 117.162667l4.181333 8.917333 54.954667 123.392 72.448 62.72c3.968 3.413333 7.381333 7.381333 11.349333 13.824l2.517333 4.906667a53.333333 53.333333 0 0 1-27.178666 70.357333L288.213333 874.24A53.333333 53.333333 0 0 1 213.333333 825.472l-0.042666-99.968-52.992-119.082667A248.405333 248.405333 0 0 1 286.293333 277.973333z m380.288-34.986666c41.258667 22.442667 74.325333 55.210667 98.816 97.621333 24.490667 42.453333 36.309333 87.466667 35.157333 134.442667a32 32 0 1 1-64-1.578667c0.853333-35.029333-7.893333-68.437333-26.581333-100.864-18.688-32.384-43.264-56.661333-74.026667-73.472a32 32 0 0 1 30.634667-56.192z"
p-id=
"630"
></path>
</svg>
</el-radio>
</el-radio-group>
</ElFormItem>
<ElFormItem
label=
"期望完成日期"
prop=
"expectCompleteTime"
>
<ElDatePicker
v-model=
"reviewForm.expectCompleteTime"
disabled
placeholder=
"期望完成日期"
style=
"width: 200px"
></ElDatePicker>
</ElFormItem>
<ElFormItem
label=
"承诺完成日期"
prop=
"promiseCompleteTime"
:rules=
"[
{
required: true,
message: '请选择承诺完成日期',
},
]"
>
<ElDatePicker
v-model=
"reviewForm.promiseCompleteTime"
style=
"width: 200px"
format=
"YYYY-MM-DD"
value-format=
"YYYY-MM-DD HH:mm:ss"
placeholder=
"承诺完成日期"
></ElDatePicker>
</ElFormItem>
</ElForm>
</div>
<p
v-dompurify-html=
"reviewForm.requirement"
class=
"requirement"
></p>
</div>
</div>
<template
#
footer
>
...
...
@@ -136,7 +135,11 @@
</template>
<
script
setup
lang=
"ts"
>
import
{
TypesettingListData
,
EmergencyLevel
,
ImageListData
}
from
'@/types/api/typesetting'
import
{
TypesettingListData
,
EmergencyLevel
,
ImageListData
,
}
from
'@/types/api/typesetting'
import
{
computed
,
defineEmits
,
...
...
@@ -144,6 +147,7 @@ import {
PropType
,
ref
,
onMounted
,
watch
,
}
from
'vue'
import
{
saveTypesettingReviewApi
}
from
'@/api/typesetting'
import
{
getUserListApi
}
from
'@/api/common'
...
...
@@ -167,6 +171,11 @@ const visible = computed({
emit
(
'update:modelValue'
,
val
)
},
})
watch
(
visible
,
(
val
)
=>
{
if
(
val
)
{
mainImageUrl
.
value
=
reviewForm
.
value
?.
mainImage
||
''
}
})
const
reviewForm
=
computed
({
get
()
{
return
props
.
row
...
...
@@ -175,6 +184,7 @@ const reviewForm = computed({
emit
(
'update:modelValue'
,
val
)
},
})
const
mainImageUrl
=
ref
(
''
)
const
emergencyLevel
=
ref
<
EmergencyLevel
[]
>
([])
emergencyLevel
.
value
=
[
{
...
...
@@ -251,6 +261,9 @@ const getUserList = async () => {
console
.
error
(
e
)
}
}
const
setMainImage
=
(
url
:
string
|
undefined
)
=>
{
mainImageUrl
.
value
=
url
||
''
}
onMounted
(()
=>
{
getUserList
()
})
...
...
@@ -265,7 +278,8 @@ const imageList = computed<ImageListData[]>(() => {
</
script
>
<
style
lang=
"scss"
scoped
>
ul
,
li
{
ul
,
li
{
margin
:
0
;
padding
:
0
;
}
...
...
@@ -284,6 +298,7 @@ ul,li {
.detail-info
{
display
:
flex
;
gap
:
10px
;
height
:
600px
;
}
.review-image
{
width
:
40%
;
...
...
@@ -292,10 +307,15 @@ ul,li {
}
.review-from
{
width
:
60%
;
display
:
flex
;
flex-direction
:
column
;
}
.requirement
{
border
:
1px
solid
#ddd
;
overflow
:
auto
;
flex
:
1
;
margin
:
0
;
}
.main-image
{
...
...
src/views/typesetting/submitReviewModal.vue
View file @
7b436e4b
...
...
@@ -19,12 +19,13 @@
v-for=
"(item, index) of row?.imageList"
:key=
"index"
class=
"color-image-item"
@
mouseover=
"onMouseover(item.imagePath)"
>
<img
:src=
"item.imagePath"
alt=
""
class=
"img-sign"
/>
</div>
</div>
<div
class=
"modals-image-big"
>
<img
:src=
"
row?.mainImage
"
alt=
""
class=
"img-sign"
/>
<img
:src=
"
mainImageUrl || row?.imageList[0]?.imagePath
"
alt=
""
class=
"img-sign"
/>
</div>
</div>
</div>
...
...
@@ -91,6 +92,7 @@
v-for=
"(item, index) of versionImageList"
:key=
"index"
class=
"color-image-item"
@
mousemove=
"onRightMouseover(item?.imagePath)"
>
<img
:src=
"item.imagePath"
alt=
""
class=
"img-sign"
/>
<span
...
...
@@ -407,6 +409,7 @@ watch(visible, (val) => {
}
else
{
activeName
.
value
=
'first'
}
mainImageUrl
.
value
=
props
.
row
?.
mainImage
}
})
const
opinion
=
ref
(
''
)
...
...
@@ -631,6 +634,13 @@ const getPriceDetail = async (data: TypesettingListData) => {
console
.
error
(
e
)
}
}
const
mainImageUrl
=
ref
<
string
>
(
''
)
const
onMouseover
=
(
url
:
string
)
=>
{
mainImageUrl
.
value
=
url
}
const
onRightMouseover
=
(
url
:
string
|
undefined
)
=>
{
versionImageUrl
.
value
=
url
||
''
}
defineExpose
({
getExamineInfo
,
reset
,
getPriceDetail
})
</
script
>
...
...
@@ -651,6 +661,8 @@ defineExpose({ getExamineInfo, reset, getPriceDetail })
width
:
60px
;
height
:
60px
;
border
:
1px
solid
#eee
;
margin-bottom
:
5px
;
cursor
:
pointer
;
img
{
width
:
100%
;
height
:
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