<template>
	<view class="form">
		<view class="shopName">
			<view>物品分类</view>
			<view class="list">
				<view :class="{act : form.categoryId == item.id}" @click="form.categoryId = item.id" :key="index"
					v-for="(item, index) in category">
					{{ item.name }}
				</view>
			</view>
		</view>
		<view class="shopName">
			<view>物品照片</view>
			<view>
				<uv-upload :fileList="fileList" multiple :maxCount="1" width="180rpx" height="180rpx" multiple
					@afterRead="afterRead" @delete="deleteImage">
					<image src="../../static/help/uploading.png" mode="aspectFill"
						style="width: 180rpx;height: 180rpx;" />
				</uv-upload>
			</view>
		</view>
		<view class="shopName">
			<view>物品名称</view>
			<view>
				<input v-model="form.name" placeholder="请输入物品名称" clearable></input>
			</view>
		</view>
		<view class="shopName">
			<view>物品长度CM</view>
			<view>
				<input v-model="form.length" type="number" placeholder="请输入物品长度" clearable></input>
			</view>
		</view>
		<view class="shopName">
			<view>物品宽度CM</view>
			<view>
				<input v-model="form.wide" type="number" placeholder="请输入物品宽度" clearable></input>
			</view>
		</view>
		<view class="shopName">
			<view>物品数量</view>
			<view>
				<uv-number-box v-model="form.num" :min="1"></uv-number-box>
			</view>
		</view>
	</view>
</template>

<script>
	import { mapState } from 'vuex'
	export default {
		data() {
			return {
				form: {
					categoryId: 0,
					name: '',
					num: 1,
					length: '',
					wide: '',
				},
				fileList: [],
			}
		},
		computed: {
			...mapState(['category']),
		},
		mounted() {
			this.closeForm()
		},
		methods: {
			submit(fn) {
				this.form.pic = this.fileList.map((item) => item.url).join(",")
				let form = {
					...this.form
				}
				if (this.$utils.verificationAll(form, {
						pic: '请上传物品照片',
						name: '请输入物品名称',
						length: '请输入物品长度',
						wide: '请输入物品宽度',
					})) {
					return
				}
				fn && fn(form)
			},
			closeForm() {
				this.form = {
					categoryId: 0,
					name: '',
					num: 1,
					length: '',
					wide: '',
				}
				this.fileList = []
				if (this.category.length) {
					this.form.categoryId = this.category[0].id
				}
			},
			deleteImage(e) {
				this.fileList.splice(e.index, 1)
			},
			afterRead(e) {
				let self = this
				e.file.forEach(file => {
					self.$Oss.ossUpload(file.url).then(url => {
						self.fileList.push({
							url
						})
					})
				})
			},
		}
	}
</script>

<style scoped lang="scss">
	.form {
		padding: 20rpx 0;

		.shopName {
			display: flex;
			align-items: center;
			background-color: #FFF;
			margin: 10rpx 0 0 0;
			padding: 10rpx 20rpx;

			>view:nth-of-type(1) {
				width: 30%;
				// font-weight: 700;
			}

			>view:nth-of-type(2) {
				width: 70%;
				// padding: 0 20rpx 0 0;
				border-radius: 10rpx;
				overflow: hidden;

				input {
					background-color: #f5f5f5;
					// color: #a4a4a4;
					font-size: 28rpx;
					padding: 8rpx 8rpx 8rpx 15rpx;
				}
			}
		}
	}
	.list {
		display: flex;
		flex-wrap: wrap;
		font-size: 22rpx;
	
		.act {
			color: $uni-color;
			border: 1px solid $uni-color;
			background-color: #F9E7DE;
		}
	
		view {
			border-radius: 15rpx;
			background-color: #F3F3F3;
			border: 1px solid #F3F3F3;
			margin: 10rpx;
			display: flex;
			justify-content: center;
			padding: 10rpx 20rpx;
		}
	}
</style>