Skip to content

Commit a33f10a

Browse files
committed
add workshop【uploadImg、viewBigImg】
1 parent 18f7cbc commit a33f10a

File tree

6 files changed

+142
-5
lines changed

6 files changed

+142
-5
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
# vue_iview_admin
22

3+
## 简介
4+
> iview后台管理系统模版、菜单自动注册/管理、mock login、html2pdf、上传图片、查看大图
5+
6+
37
## 项目结构
48

59
```bash
610
+-- src
711
|
812
| +-- assets -> 全局资源目录
13+
| | +-- css -> css资源文件
914
| | +-- img -> 图片资源文件
1015
| | +-- mock -> 接口mock数据
1116
| |

src/components/uploadImg/index.vue

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<div class="upload-img">
3-
<Upload type="drag" action="" :format="['jpg','jpeg','png','gif']" :show-upload-list="false"
3+
<Upload type="drag" action="//jsonplaceholder.typicode.com/posts/" :format="['jpg','jpeg','png','gif']" :show-upload-list="false"
44
:on-success="rst => $emit('uploadSuccess', rst)" :on-error="uploadError" :on-format-error="uploadFormatError">
55
<div class="upload">
66
<div class="upload-remind" v-show="!imgLink">
@@ -14,6 +14,7 @@
1414
</div>
1515
</div>
1616
</Upload>
17+
<p>{{uploadPictureSize}}</p>
1718
<ViewBigImg :imgSrc="viewImgSrc" @close="viewImgSrc = ''" />
1819
</div>
1920
</template>
@@ -33,16 +34,41 @@ export default {
3334
},
3435
data() {
3536
return {
36-
viewImgSrc: ""
37+
viewImgSrc: "",
38+
uploadPictureSize: ""
3739
}
3840
},
41+
watch: {
42+
imgLink() {
43+
this.getImgSize()
44+
}
45+
},
46+
created() {
47+
this.getImgSize()
48+
},
3949
methods: {
4050
uploadError() {
4151
this.$Message.error("上传失败")
4252
},
4353
uploadFormatError() {
4454
this.$Message.error("请上传jpg,jpeg,png,gif格式的图片")
45-
}
55+
},
56+
getImgSize() {
57+
if (this.imgLink) {
58+
const image = new Image()
59+
image.src = this.imgLink
60+
image.onload = () => {
61+
const { width, height } = image
62+
this.uploadPictureSize = width && height ? `${width} x ${height}` : ""
63+
}
64+
image.onerror = () => {
65+
this.uploadPictureSize = ""
66+
this.$Message.error("图像加载过程中发生错误")
67+
}
68+
} else {
69+
this.uploadPictureSize = ""
70+
}
71+
},
4672
}
4773
}
4874
</script>

src/router/index.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ const Login = () => import(/* webpackChunkName: "loginReg" */ '../views/login/in
77

88
const Html2pdf = () => import(/* webpackChunkName: "html2pdf" */ '../views/html2pdf/index')
99

10+
const Workshop = () => import(/* webpackChunkName: "workshop" */ '../views/workshop/index')
11+
const WorkshopViewBigImg = () => import(/* webpackChunkName: "workshop" */ '../views/workshop/cell/viewBigImg')
12+
const WorkshopUploadImg = () => import(/* webpackChunkName: "workshop" */ '../views/workshop/cell/uploadImg')
1013

1114
Vue.use(Router)
1215

@@ -17,7 +20,7 @@ const router = new Router({
1720
path: '/',
1821
name: 'home',
1922
component: Home,
20-
meta: { title: '首页'}
23+
meta: { title: '首页' }
2124
},
2225
{
2326
path: '/login',
@@ -30,7 +33,28 @@ const router = new Router({
3033
name: 'html2pdf',
3134
component: Html2pdf,
3235
meta: { title: 'html2pdf' }
33-
}
36+
},
37+
{
38+
path: '/workshop',
39+
name: 'workshop',
40+
component: Workshop,
41+
meta: { title: 'workshop' },
42+
redirect: "/workshop/viewBigImg",
43+
children: [
44+
{
45+
path: '/workshop/viewBigImg',
46+
name: 'workshoViewBigImg',
47+
component: WorkshopViewBigImg,
48+
meta: { title: '查看大图' }
49+
},
50+
{
51+
path: '/workshop/uploadImg',
52+
name: 'workshoUploadImg',
53+
component: WorkshopUploadImg,
54+
meta: { title: '上传图片' }
55+
}
56+
]
57+
},
3458
]
3559
})
3660

src/views/workshop/cell/uploadImg.vue

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<template>
2+
<div class="upload-img-demo">
3+
<UploadImg :imgLink="imgLink" @uploadSuccess="rst => uploadSuccess('try', rst)" @delete="imgLink = ''" />
4+
<cellGroup>
5+
<Cell>组件功能:增删改图片、获取尺寸、预览大图</Cell>
6+
</cellGroup>
7+
</div>
8+
</template>
9+
10+
<script>
11+
import UploadImg from "../../../components/uploadImg/index"
12+
export default {
13+
name: "WorkshopUploadImg",
14+
components: {
15+
UploadImg
16+
},
17+
data() {
18+
return {
19+
imgLink: ''
20+
}
21+
},
22+
methods: {
23+
uploadSuccess(type, res) {
24+
// (type === 'try') && (this.imgLink = res.id)
25+
(type === 'try') && (this.imgLink = "http://pic1.win4000.com/wallpaper/c/56984cb655731.jpg")
26+
this.$Message.success("文件上传成功")
27+
}
28+
}
29+
}
30+
</script>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<template>
2+
<div class="view-big-img-demo">
3+
<Card>
4+
<img :src="item" v-for="item in mockImgArr" :key="item" @click="viewImgSrc = item" />
5+
</Card>
6+
7+
<Button @click="model = true">在modal中引用</Button>
8+
<Modal v-model="model" width="1200" :footer-hide="true" class="flag">
9+
<img :src="item" v-for="item in mockImgArr" :key="item" @click="viewImgSrc = item" />
10+
</Modal>
11+
12+
<ViewBigImg :imgSrc="viewImgSrc" @close="viewImgSrc = ''" />
13+
</div>
14+
</template>
15+
16+
<script>
17+
import ViewBigImg from "../../../components/viewBigImg/index"
18+
export default {
19+
name: "WorkshopViewBigImg",
20+
components: {
21+
ViewBigImg
22+
},
23+
data() {
24+
return {
25+
mockImgArr: ["http://pic1.win4000.com/wallpaper/c/56984cb655731.jpg", "http://pic1.win4000.com/wallpaper/4/56985459a06ce.jpg", "https://imgsa.baidu.com/%B0%B2%B6%E0%B7%D2_/pic/item/db1ce83c8922382cac4b5f95.jpg"],
26+
viewImgSrc: '',
27+
model: false
28+
}
29+
}
30+
}
31+
</script>
32+
33+
<style lang="scss" scoped>
34+
.view-big-img-demo .ivu-card /deep/.ivu-card-body, .flag /deep/.ivu-modal-body{
35+
display: flex;
36+
justify-content: space-around;
37+
img{
38+
width: 30%;
39+
height: 300px;
40+
cursor: pointer;
41+
object-fit: contain;
42+
}
43+
}
44+
.ivu-btn{
45+
margin-top: 20px;
46+
}
47+
</style>

src/views/workshop/index.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<template>
2+
<div class="workshop">
3+
<router-view />
4+
</div>
5+
</template>

0 commit comments

Comments
 (0)