mui+vue实现图片上传

 

<!doctype html>
<html>

	<head>
		<meta charset="utf-8">
		<title>空箱入库-已选择空箱</title>
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<link href="../css/mui.min.css" rel="stylesheet" />
		<link href="../css/common.css" rel="stylesheet" />
		<link href="../css/myphone.css" rel="stylesheet" />
		<style>
		/* 	.mui-media-bodyEx {
				font-size: 13px;
				line-height: 15px;
				display: block;
				width: 100%;
				height: 15px;
				text-overflow: ellipsis;
				color: #6C6C6C;
			}

			[v-cloak] {
				display: none;
			}

			.mui-card {
				font-size: 14px;
				position: relative;
				overflow: hidden;
				margin: 0;
				border-radius: 2px;
				background-color: #fff;
				background-clip: padding-box;
				box-shadow: 0 1px 2px rgba(0, 0, 0, .3);
			}

			.floatLeftText {
				float: left;
				text-align: left;
				background-color: #C8C7CC;
				border-radius: 0.525rem;
				padding-left: 0.625rem;
			}

			.rightText {
				text-align: right;
			}

			.mui-table-view.mui-grid-view .mui-table-view-cell {
				font-size: 17px;
				display: inline-block;
				margin-right: -4px;
				text-align: left;
				vertical-align: middle;
				background: 0 0;
			}

			.headerMain {
				padding: 0.625rem 0 0.625rem 0.625rem;
				font-size: smaller;
			} */
		</style>
	</head>
	<body>
		<div id="imageUpload">
			<header class="mui-bar mui-bar-nav">
				<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
				<h1 class="mui-title">图片上传 </h1>
				<a class="mui-icon-right-nav mui-pull-right" v-on:click="headImage()">
					<span id="headImage" class="mui-icon mui-icon-camera"></span>
				</a>
			</header>
			<div class="mui-content" style="background-color:#fff">
				<template  v-if="viewFlage==1" >
					<ul id="imgs" class="mui-table-view mui-grid-view">
						<li class="mui-table-view-cell mui-media mui-col-xs-6" v-for="(item, index) in filePathList">
							<img class="mui-media-object" :src="item">
							<span class="mui-icon mui-icon-trash deleteBtn" v-on:click="removeImage(item,index)"></span>
						</li>
					</ul>
					<a class="mui-icon-right-nav mui-pull-right" v-on:click="uploadImage">
						<span id="uploadImage" class="mui-icon mui-icon-upload mui-btn"></span>
					</a>
				</template >
			</div>
		</div>
		<script src="../js/mui.min.js"></script>
		<script src="../js/vue.min.js"></script>
		<script src="../js/common.js"></script>
		<script src="../js/jquery.min.js"></script>
		<script src="../js/utils.js"></script>
		<script>
			var Vue = new Vue({
				el: '#imageUpload',
				data: {
					viewFlage: 0,
					fileArr: [],
					filePathList: [],
				},
				// 初期化的时候调用后台
				created: function() {},
				methods: {
					headImage: function() {
						if (mui.os.plus) {
							var buttonTit = [{
								title: "拍照"
							}, {
								title: "从手机相册选择"
							}];

							plus.nativeUI.actionSheet({
								title: "上传图片",
								cancel: "取消",
								buttons: buttonTit
							}, function(b) { /*actionSheet 按钮点击事件*/
								switch (b.index) {
									case 0:
										break;
									case 1:
										Vue.getImage(); /*拍照*/
										break;
									case 2:
										Vue.galleryImg(); /*打开相册*/
										break;
									default:
										break;
								}
							})
						}
					},
					// 拍照获取图片  
					getImage: function() {
						var c = plus.camera.getCamera();
						c.captureImage(function(e) {
							plus.io.resolveLocalFileSystemURL(e, function(entry) {
								var imgSrc = entry.toLocalURL() + "?version=" + new Date().getTime(); //拿到图片路径  
								Vue.setFile(imgSrc);
								Vue.filePathList.push(imgSrc);
								Vue.viewFlage =1
							}, function(e) {
								console.log("读取拍照文件错误:" + e.message);
							});
						}, function(s) {
							console.log("error" + s.message);
						}, {
							filename: "_doc/camera/"
						})
					},
					// 从相册中选择图片   
					galleryImg: function() {
						// 从相册中选择图片  
						plus.gallery.pick(function(e) {
							for (var i in e.files) {
								var fileSrc = e.files[i];
								Vue.viewFlage = 1
								Vue.setFile(fileSrc);
								Vue.filePathList.push(fileSrc);
							}
						}, function(e) {
							console.log("取消选择图片");
						}, {
							filter: "image",
							multiple: true,
							//maximum: 5,
							system: false,
							onmaxed: function() {
								plus.nativeUI.alert('最多只能选择5张图片');
							}
						});
					},
					setFile: function(fileSrc) {
						var image = new Image();
						image.src = fileSrc;
						this.viewFlage = 1
						this.fileArr.push(image);
					},
					removeImage: function(item, index) {
						Vue.filePathList.splice(index, 1)
						Vue.fileArr.splice(index, 1);
						if(Vue.filePathList.length==0){							
							Vue.viewFlage=0;
						}
					},
					uploadImage: function() {
						var files = this.fileArr;
						var wt = plus.nativeUI.showWaiting();
						var task = plus.uploader.createUpload('../privilege/Upload', {
								method: "POST"
							},
							function(t, status) { //上传完成
								if (status == 200) {
									alert("上传成功:" + t.responseText);
									wt.close(); //关闭等待提示按钮
								} else {
									alert("上传失败:" + status);
									wt.close(); //关闭等待提示按钮
								}
							}
						);
						//将文件集合添加到上传队列中
						for (var i = 0; i < files.length; i++) {
							var f = files[i];
							task.addFile(f.src, {
								key: i
							});
						}
						//传其他的参数 如备注
						//添加其他参数
						//遍历5个input框

						task.addData("comment", "test");
						task.start();
					}

				},
				watch: {}
			});
			mui.init({
				swipeBack: true //启用右滑关闭功能
			});
		</script>
	</body>
</html>

个人博客:十分钟空间:https://tmspace.cn/

更多内容关注公众号:tenmspace

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深夜程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值