Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pet-business-web
Project
Project
Details
Activity
Releases
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
刘怀志
pet-business-web
Commits
70d1e421
Commit
70d1e421
authored
Jun 29, 2023
by
陈明豪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
轮播管理自测
parent
1779cf4c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
123 additions
and
50 deletions
+123
-50
index.vue
src/components/ImageUpload/index.vue
+5
-4
banner_add.vue
src/views/banner_management/banner_add.vue
+36
-8
banner_detail.vue
src/views/banner_management/banner_detail.vue
+1
-1
banner_edit.vue
src/views/banner_management/banner_edit.vue
+59
-21
banner_management.vue
src/views/banner_management/banner_management.vue
+22
-16
No files found.
src/components/ImageUpload/index.vue
View file @
70d1e421
...
@@ -35,10 +35,7 @@
...
@@ -35,10 +35,7 @@
width=
"800"
width=
"800"
append-to-body
append-to-body
>
>
<img
<img
:src=
"dialogImageUrl"
style=
"display: block; max-width: 100%; margin: 0 auto"
alt=
""
/>
:src=
"dialogImageUrl"
style=
"display: block; max-width: 100%; margin: 0 auto"
>
</el-dialog>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -224,5 +221,9 @@ export default {
...
@@ -224,5 +221,9 @@ export default {
opacity
:
0
;
opacity
:
0
;
transform
:
translateY
(
0
);
transform
:
translateY
(
0
);
}
}
::v-deep
.el-upload
:focus
{
border-color
:
#5FB54B
!
important
;
color
:
#5FB54B
!
important
;
}
</
style
>
</
style
>
src/views/banner_management/banner_add.vue
View file @
70d1e421
...
@@ -11,21 +11,23 @@
...
@@ -11,21 +11,23 @@
<div>
<div>
<el-form
ref=
"form"
:model=
"form"
label-width=
"133px"
:rules=
"rules"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"133px"
:rules=
"rules"
>
<el-form-item
label=
"标题:"
prop=
"title"
>
<el-form-item
label=
"标题:"
prop=
"title"
>
<el-input
v-model
.
trim=
"form.title"
class=
"form-input"
style=
"width: 420px"
maxlength=
"
20
"
show-word-limit
clearable
/>
<el-input
v-model
.
trim=
"form.title"
class=
"form-input"
style=
"width: 420px"
maxlength=
"
12
"
show-word-limit
clearable
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"轮播图:"
prop=
"img"
>
<el-form-item
label=
"轮播图:"
prop=
"img"
>
<image-upload
v-model=
"form.img"
:limit=
"1"
:is-show-tip=
"false"
/>
<image-upload
v-model=
"form.img"
:limit=
"1"
:is-show-tip=
"false"
file-size=
"20"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"跳转地址:"
prop=
"url"
>
<el-form-item
label=
"跳转地址:"
prop=
"url"
>
<el-input
v-model
.
trim=
"form.url"
class=
"form-input"
style=
"width: 420px"
maxlength=
"
30
"
show-word-limit
clearable
/>
<el-input
v-model
.
trim=
"form.url"
class=
"form-input"
style=
"width: 420px"
maxlength=
"
255
"
show-word-limit
clearable
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"权重:"
prop=
"sort"
>
<el-form-item
label=
"权重:"
prop=
"sort"
>
<el-input-number
<el-input-number
v-model=
"form.sort"
v-model
.
number
=
"form.sort"
class=
"weight-number"
class=
"weight-number"
:max=
"9999"
:max=
"9999"
:min=
"0"
:min=
"0"
controls-position=
"right"
controls-position=
"right"
:precision=
"0"
@
blur=
"form.sort === undefined || form.sort === null ? form.sort = 0:form.sort"
/>
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"创建日期:"
prop=
"createTime"
>
<el-form-item
label=
"创建日期:"
prop=
"createTime"
>
...
@@ -68,6 +70,9 @@ export default {
...
@@ -68,6 +70,9 @@ export default {
const
search
=
{
const
search
=
{
sort
:
value
sort
:
value
}
}
if
(
value
===
0
)
{
return
callback
(
new
Error
(
'权重不能为零'
))
}
// 调用后端api
// 调用后端api
listBanner
(
search
).
then
(
Response
=>
{
listBanner
(
search
).
then
(
Response
=>
{
if
(
Response
.
code
===
200
)
{
if
(
Response
.
code
===
200
)
{
...
@@ -78,6 +83,15 @@ export default {
...
@@ -78,6 +83,15 @@ export default {
}
}
})
})
}
}
const
titleTest
=
(
rule
,
value
,
callback
)
=>
{
// const title= /^[\u0391-\uFFE5A-Za-z]+$/
const
title
=
/^
[\a
-
\z\A
-
\Z
0-9
\u
4e00-
\u
9fe5
]
+$/
if
(
!
title
.
test
(
value
))
{
callback
(
new
Error
(
'请输入中英文数字'
))
}
else
{
callback
()
}
}
return
{
return
{
// 表单数据
// 表单数据
form
:
{
form
:
{
...
@@ -92,17 +106,18 @@ export default {
...
@@ -92,17 +106,18 @@ export default {
submitLoading
:
false
,
submitLoading
:
false
,
rules
:
{
rules
:
{
title
:
[
title
:
[
{
required
:
true
,
message
:
'请输入轮播标题'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'请输入标题'
,
trigger
:
'blur'
},
{
validator
:
titleTest
,
trigger
:
'blur'
}
],
],
img
:
[
img
:
[
{
required
:
false
,
message
:
'请选择轮播图'
,
trigger
:
'blur'
}
{
required
:
false
,
message
:
'请选择轮播图'
,
trigger
:
'blur'
}
],
],
url
:
[
url
:
[
{
required
:
tru
e
,
message
:
'请输入跳转地址'
,
trigger
:
'blur'
}
{
required
:
fals
e
,
message
:
'请输入跳转地址'
,
trigger
:
'blur'
}
],
],
sort
:
[
sort
:
[
{
required
:
true
,
message
:
'请输入权重'
,
trigger
:
'blur'
},
{
required
:
true
,
message
:
'请输入权重'
,
trigger
:
'blur'
},
{
validator
:
checkSort
,
trigger
:
'
change
'
}
{
validator
:
checkSort
,
trigger
:
'
blur
'
}
],
],
status
:
[
status
:
[
{
required
:
false
,
message
:
'请选择轮播状态'
,
trigger
:
'blur'
}
{
required
:
false
,
message
:
'请选择轮播状态'
,
trigger
:
'blur'
}
...
@@ -113,9 +128,22 @@ export default {
...
@@ -113,9 +128,22 @@ export default {
}
}
}
}
},
},
watch
:
{},
watch
:
{
'form.status'
(
newVal
)
{
if
(
newVal
===
'1'
)
{
this
.
rules
.
img
[
0
].
required
=
true
}
else
{
this
.
rules
.
img
[
0
].
required
=
false
}
}
},
created
()
{
created
()
{
this
.
getNowDate
()
this
.
getNowDate
()
if
(
this
.
form
.
status
===
'1'
)
{
this
.
rules
.
img
[
0
].
required
=
true
}
else
{
this
.
rules
.
img
[
0
].
required
=
false
}
},
},
methods
:
{
methods
:
{
// 获取当前日期
// 获取当前日期
...
...
src/views/banner_management/banner_detail.vue
View file @
70d1e421
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
<el-input
v-model
.
trim=
"form.title"
class=
"form-input"
style=
"width: 420px"
maxlength=
"20"
show-word-limit
clearable
disabled
/>
<el-input
v-model
.
trim=
"form.title"
class=
"form-input"
style=
"width: 420px"
maxlength=
"20"
show-word-limit
clearable
disabled
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"轮播图:"
prop=
"img"
>
<el-form-item
label=
"轮播图:"
prop=
"img"
>
<
el-image
:src=
"baseUrl + form.img"
class=
"formImg"
:preview-src-list=
"srcList
"
/>
<
ImagePreview
:height=
"100"
:src=
"baseUrl + form.img"
:width=
"100
"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"跳转地址:"
prop=
"url"
>
<el-form-item
label=
"跳转地址:"
prop=
"url"
>
<el-input
v-model
.
trim=
"form.url"
class=
"form-input"
style=
"width: 420px"
maxlength=
"30"
show-word-limit
clearable
disabled
/>
<el-input
v-model
.
trim=
"form.url"
class=
"form-input"
style=
"width: 420px"
maxlength=
"30"
show-word-limit
clearable
disabled
/>
...
...
src/views/banner_management/banner_edit.vue
View file @
70d1e421
...
@@ -11,22 +11,24 @@
...
@@ -11,22 +11,24 @@
<div>
<div>
<el-form
ref=
"form"
:model=
"form"
label-width=
"133px"
:rules=
"rules"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"133px"
:rules=
"rules"
>
<el-form-item
label=
"标题:"
prop=
"title"
>
<el-form-item
label=
"标题:"
prop=
"title"
>
<el-input
v-model
.
trim=
"form.title"
class=
"form-input"
style=
"width: 420px"
maxlength=
"
20
"
show-word-limit
clearable
:disabled=
"form.id === 1"
/>
<el-input
v-model
.
trim=
"form.title"
class=
"form-input"
style=
"width: 420px"
maxlength=
"
12
"
show-word-limit
clearable
:disabled=
"form.id === 1"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"轮播图:"
prop=
"img"
>
<el-form-item
label=
"轮播图:"
prop=
"img"
>
<image-upload
v-model=
"form.img"
:limit=
"1"
:is-show-tip=
"false"
/>
<image-upload
v-model=
"form.img"
:limit=
"1"
:is-show-tip=
"false"
file-size=
"20"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"跳转地址:"
prop=
"url"
>
<el-form-item
label=
"跳转地址:"
prop=
"url"
>
<el-input
v-model
.
trim=
"form.url"
class=
"form-input"
style=
"width: 420px"
maxlength=
"
30
"
show-word-limit
clearable
:disabled=
"form.id === 1"
/>
<el-input
v-model
.
trim=
"form.url"
class=
"form-input"
style=
"width: 420px"
maxlength=
"
255
"
show-word-limit
clearable
:disabled=
"form.id === 1"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"权重:"
prop=
"sort"
>
<el-form-item
label=
"权重:"
prop=
"sort"
>
<el-input-number
<el-input-number
v-model=
"form.sort"
v-model
.
number
=
"form.sort"
class=
"weight-number"
class=
"weight-number"
:max=
"9999"
:max=
"9999"
:min=
"0"
:min=
"0"
controls-position=
"right"
controls-position=
"right"
:disabled=
"form.id === 1"
:disabled=
"form.id === 1"
:precision=
"0"
@
blur=
"form.sort === undefined || form.sort === null ? form.sort = 0:form.sort"
/>
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"创建日期:"
prop=
"createTime"
>
<el-form-item
label=
"创建日期:"
prop=
"createTime"
>
...
@@ -47,7 +49,7 @@
...
@@ -47,7 +49,7 @@
</span>
</span>
</el-form-item>
</el-form-item>
<el-form-item
label=
"备注:"
prop=
"notes"
>
<el-form-item
label=
"备注:"
prop=
"notes"
>
<el-input
:disabled=
"form.id === 1"
v-model
.
trim=
"form.notes
"
class=
"form-input"
style=
"width: 420px"
maxlength=
"60"
show-word-limit
clearable
/>
<el-input
v-model
.
trim=
"form.notes"
:disabled=
"form.id === 1
"
class=
"form-input"
style=
"width: 420px"
maxlength=
"60"
show-word-limit
clearable
/>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
:loading=
"submitLoading"
class=
"queryBtn"
icon=
"el-icon-check"
@
click=
"submitForm"
>
提交
</el-button>
<el-button
:loading=
"submitLoading"
class=
"queryBtn"
icon=
"el-icon-check"
@
click=
"submitForm"
>
提交
</el-button>
...
@@ -65,8 +67,10 @@ export default {
...
@@ -65,8 +67,10 @@ export default {
name
:
'BannerEdit'
,
name
:
'BannerEdit'
,
data
()
{
data
()
{
const
checkSort
=
(
rule
,
value
,
callback
)
=>
{
const
checkSort
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
if
(
value
===
undefined
||
value
===
null
)
{
return
callback
(
new
Error
(
'请输入权重'
))
return
callback
(
new
Error
(
'请输入权重'
))
}
else
if
(
value
===
0
)
{
return
callback
(
new
Error
(
'权重不能为零'
))
}
else
{
}
else
{
const
search
=
{
const
search
=
{
exceptId
:
this
.
id
,
exceptId
:
this
.
id
,
...
@@ -83,6 +87,15 @@ export default {
...
@@ -83,6 +87,15 @@ export default {
})
})
}
}
}
}
const
titleTest
=
(
rule
,
value
,
callback
)
=>
{
// const title= /^[\u0391-\uFFE5A-Za-z]+$/
const
title
=
/^
[\a
-
\z\A
-
\Z
0-9
\u
4e00-
\u
9fe5
]
+$/
if
(
!
title
.
test
(
value
))
{
callback
(
new
Error
(
'请输入中英文数字'
))
}
else
{
callback
()
}
}
return
{
return
{
id
:
undefined
,
id
:
undefined
,
// 表单数据
// 表单数据
...
@@ -98,17 +111,18 @@ export default {
...
@@ -98,17 +111,18 @@ export default {
submitLoading
:
false
,
submitLoading
:
false
,
rules
:
{
rules
:
{
title
:
[
title
:
[
{
required
:
true
,
message
:
'请输入轮播标题'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'请输入标题'
,
trigger
:
'blur'
},
{
validator
:
titleTest
,
trigger
:
'blur'
}
],
],
img
:
[
img
:
[
{
required
:
false
,
message
:
'请选择轮播图'
,
trigger
:
'blur'
}
{
required
:
false
,
message
:
'请选择轮播图'
,
trigger
:
'blur'
}
],
],
url
:
[
url
:
[
{
required
:
tru
e
,
message
:
'请输入跳转地址'
,
trigger
:
'blur'
}
{
required
:
fals
e
,
message
:
'请输入跳转地址'
,
trigger
:
'blur'
}
],
],
sort
:
[
sort
:
[
{
required
:
fals
e
,
message
:
'请输入权重'
,
trigger
:
'blur'
},
{
required
:
tru
e
,
message
:
'请输入权重'
,
trigger
:
'blur'
},
{
validator
:
checkSort
,
trigger
:
'
change
'
}
{
validator
:
checkSort
,
trigger
:
'
blur
'
}
],
],
status
:
[
status
:
[
{
required
:
false
,
message
:
'请选择轮播状态'
,
trigger
:
'blur'
}
{
required
:
false
,
message
:
'请选择轮播状态'
,
trigger
:
'blur'
}
...
@@ -119,7 +133,15 @@ export default {
...
@@ -119,7 +133,15 @@ export default {
}
}
}
}
},
},
watch
:
{},
watch
:
{
'form.status'
(
newVal
)
{
if
(
newVal
===
'1'
)
{
this
.
rules
.
img
[
0
].
required
=
true
}
else
{
this
.
rules
.
img
[
0
].
required
=
false
}
}
},
created
()
{
created
()
{
this
.
id
=
this
.
$route
.
query
.
id
this
.
id
=
this
.
$route
.
query
.
id
if
(
this
.
id
)
{
if
(
this
.
id
)
{
...
@@ -133,6 +155,11 @@ export default {
...
@@ -133,6 +155,11 @@ export default {
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
console
.
log
(
'轮播信息'
,
res
)
console
.
log
(
'轮播信息'
,
res
)
this
.
form
=
res
.
data
this
.
form
=
res
.
data
if
(
this
.
form
.
status
===
'1'
)
{
this
.
rules
.
img
[
0
].
required
=
true
}
else
{
this
.
rules
.
img
[
0
].
required
=
false
}
}
}
})
})
},
},
...
@@ -142,16 +169,27 @@ export default {
...
@@ -142,16 +169,27 @@ export default {
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
console
.
log
(
'校验通过'
)
console
.
log
(
'校验通过'
)
this
.
submitLoading
=
true
updateBanner
(
this
.
form
).
then
(
res
=>
{
this
.
$confirm
(
'系统将立即发布编辑内容,是否确定?'
,
'提示'
,
{
if
(
res
.
code
===
200
)
{
confirmButtonText
:
'确定'
,
this
.
submitLoading
=
false
cancelButtonText
:
'取消'
,
this
.
$message
({
customClass
:
'box-logout'
,
message
:
'修改成功!'
,
cancelButtonClass
:
'resetBtn'
,
type
:
'success'
confirmButtonClass
:
'queryBtn'
,
})
type
:
'warning'
,
this
.
goBack
()
closeOnClickModal
:
false
}
}).
then
(()
=>
{
this
.
submitLoading
=
true
updateBanner
(
this
.
form
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
submitLoading
=
false
this
.
$message
({
message
:
'修改成功!'
,
type
:
'success'
})
this
.
goBack
()
}
})
})
})
}
}
})
})
...
...
src/views/banner_management/banner_management.vue
View file @
70d1e421
...
@@ -320,12 +320,24 @@ export default {
...
@@ -320,12 +320,24 @@ export default {
/** 删除按钮操作 */
/** 删除按钮操作 */
handleDelete
(
row
)
{
handleDelete
(
row
)
{
const
ids
=
row
.
id
||
this
.
ids
const
ids
=
row
.
id
||
this
.
ids
this
.
$modal
.
confirm
(
'是否确认删除该轮播图信息?'
).
then
(
function
()
{
return
delBanner
(
ids
)
this
.
$confirm
(
'是否确认删除此条数据,删除后不可恢复'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
customClass
:
'box-logout'
,
cancelButtonClass
:
'resetBtn'
,
confirmButtonClass
:
'queryBtn'
,
type
:
'warning'
,
closeOnClickModal
:
false
}).
then
(()
=>
{
}).
then
(()
=>
{
this
.
getBannerList
()
this
.
submitLoading
=
true
this
.
$modal
.
msgSuccess
(
'删除成功'
)
delBanner
(
ids
).
then
(
res
=>
{
}).
catch
(()
=>
{})
if
(
res
.
code
===
200
)
{
this
.
getBannerList
()
this
.
$modal
.
msgSuccess
(
'删除成功'
)
}
})
})
},
},
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
...
@@ -339,17 +351,11 @@ export default {
...
@@ -339,17 +351,11 @@ export default {
id
:
row
.
id
,
id
:
row
.
id
,
status
:
'2'
status
:
'2'
}
}
this
.
$modal
.
confirm
(
'是否确认禁用该轮播图信息?'
).
then
(
function
()
{
updateBanner
(
update
).
then
(
res
=>
{
updateBanner
(
update
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
getBannerList
()
this
.
getBannerList
()
}
}
})
})
return
null
}).
then
(()
=>
{
this
.
getBannerList
()
this
.
$modal
.
msgSuccess
(
'禁用成功'
)
}).
catch
(()
=>
{})
}
}
}
}
}
}
...
...
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