<template>
							 | 
						|
									<view class="publishPost">
							 | 
						|
										<navbar 
							 | 
						|
										leftClick
							 | 
						|
										@leftClick="$utils.navigateBack"
							 | 
						|
										title="编辑商品"/>
							 | 
						|
										
							 | 
						|
										<!-- <view class="title-input box">
							 | 
						|
											<input type="text" placeholder="取个吸引人的标题吧" v-model="form.title"/>
							 | 
						|
										</view> -->
							 | 
						|
										
							 | 
						|
										<view class="category">
							 | 
						|
											<view class="title">
							 | 
						|
												商品图片
							 | 
						|
											</view>
							 | 
						|
											<uv-upload 
							 | 
						|
											:fileList="fileList" 
							 | 
						|
											:maxCount="imageMax" 
							 | 
						|
											multiple 
							 | 
						|
											width="150rpx" 
							 | 
						|
											height="150rpx"
							 | 
						|
											name="fileList"
							 | 
						|
											@delete="deleteImage"
							 | 
						|
											@afterRead="afterRead"
							 | 
						|
											:previewFullImage="true"></uv-upload>
							 | 
						|
										</view>
							 | 
						|
								
							 | 
						|
										<view class="category">
							 | 
						|
											<view class="title">
							 | 
						|
												选择分类
							 | 
						|
											</view>
							 | 
						|
											<view class="tagList">
							 | 
						|
												<view 
							 | 
						|
												:class="{act : t.value == form.className}"
							 | 
						|
												@click="clickCategory(t, i)"
							 | 
						|
												v-for="(t, i) in productCategory"
							 | 
						|
												:key="i">
							 | 
						|
													{{ t.name }}
							 | 
						|
												</view>
							 | 
						|
											</view>
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<view class="title-input box">
							 | 
						|
											<view class="shop-box">
							 | 
						|
												标题
							 | 
						|
											</view>
							 | 
						|
											<input type="text" placeholder="请输入标题" v-model="form.name"/>
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<view class="title-input box">
							 | 
						|
											<view class="shop-box">
							 | 
						|
												副标题
							 | 
						|
											</view>
							 | 
						|
											<input type="text" placeholder="请输入商品副标题" v-model="form.nameSub"/>
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<view class="title-input box">
							 | 
						|
											<view class="shop-box">
							 | 
						|
												价格
							 | 
						|
											</view>
							 | 
						|
											<input type="number" placeholder="请输入商品价格" v-model="form.price"/>
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<view class="title-input box">
							 | 
						|
											<view class="shop-box">
							 | 
						|
												原价
							 | 
						|
											</view>
							 | 
						|
											<input type="number" placeholder="请输入商品原价" v-model="form.oldPrice"/>
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<view class="title-input box">
							 | 
						|
											<view class="shop-box">
							 | 
						|
												积分
							 | 
						|
											</view>
							 | 
						|
											<input type="number" placeholder="请输入积分" v-model="form.points"/>
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<view class="category">
							 | 
						|
											<view class="title">
							 | 
						|
												商品详情图片
							 | 
						|
											</view>
							 | 
						|
											<view class="images box">
							 | 
						|
												<uv-upload 
							 | 
						|
												:fileList="imageDetailsList" 
							 | 
						|
												:maxCount="imageMax" 
							 | 
						|
												multiple 
							 | 
						|
												width="150rpx" 
							 | 
						|
												height="150rpx"
							 | 
						|
												name="imageDetailsList"
							 | 
						|
												@delete="deleteImage"
							 | 
						|
												@afterRead="afterRead"
							 | 
						|
												:previewFullImage="true"></uv-upload>
							 | 
						|
											</view>
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<!-- <view class="category">
							 | 
						|
											<view class="title">
							 | 
						|
												选择地区
							 | 
						|
											</view>
							 | 
						|
											<view class="tagList">
							 | 
						|
												<view 
							 | 
						|
												:class="{act : t.name == form.address}"
							 | 
						|
												@click="clickAddress(t, i)"
							 | 
						|
												v-for="(t, i) in cityList"
							 | 
						|
												:key="i">
							 | 
						|
													{{ t.name }}
							 | 
						|
												</view>
							 | 
						|
											</view>
							 | 
						|
										</view> -->
							 | 
						|
										
							 | 
						|
										
							 | 
						|
										<!-- <view class="configBtn"
							 | 
						|
										@click="$refs.configPopup.open()">
							 | 
						|
											《发布须知》
							 | 
						|
										</view> -->
							 | 
						|
										
							 | 
						|
										<view class="uni-color-btn"
							 | 
						|
										@click="submit">
							 | 
						|
											发布
							 | 
						|
										</view>
							 | 
						|
										
							 | 
						|
										<configPopup
							 | 
						|
										ref="configPopup"
							 | 
						|
										:text="headInfo.save_no && headInfo.save_no.keyDetails"
							 | 
						|
										/>
							 | 
						|
										
							 | 
						|
									</view>
							 | 
						|
								</template>
							 | 
						|
								
							 | 
						|
								<script>
							 | 
						|
									import { mapState } from 'vuex'
							 | 
						|
									import productMixins from '@/mixins/product.js'
							 | 
						|
									export default {
							 | 
						|
										components : {
							 | 
						|
										},
							 | 
						|
								        mixins : [productMixins],
							 | 
						|
										data() {
							 | 
						|
											return {
							 | 
						|
												form : {
							 | 
						|
													name : '',
							 | 
						|
													nameSub : '',
							 | 
						|
													price : '',
							 | 
						|
													num : '',
							 | 
						|
													oldPrice : '',
							 | 
						|
													className : 0,
							 | 
						|
													points : '',
							 | 
						|
													isOpen : 'Y',
							 | 
						|
													shopId : '',
							 | 
						|
												},
							 | 
						|
												id : 0,
							 | 
						|
												fileList : [],
							 | 
						|
												imageDetailsList : [],
							 | 
						|
												codeFileList : [],
							 | 
						|
												imageMax : 9,
							 | 
						|
											};
							 | 
						|
										},
							 | 
						|
										computed : {
							 | 
						|
											...mapState([]),
							 | 
						|
										},
							 | 
						|
										onLoad(args) {
							 | 
						|
											this.id = args.id
							 | 
						|
											this.form.shopId = args.shopId
							 | 
						|
											// this.form.address = this.cityList[0].name
							 | 
						|
											this.imageMax = args.imageMax || 9
							 | 
						|
											this.getDateil()
							 | 
						|
										},
							 | 
						|
										onShow() {
							 | 
						|
										},
							 | 
						|
										methods : {
							 | 
						|
											clickCategory(item, index){
							 | 
						|
												this.form.className = item.value
							 | 
						|
											},
							 | 
						|
											getDateil(){
							 | 
						|
												if(!this.id){
							 | 
						|
													return
							 | 
						|
												}
							 | 
						|
												
							 | 
						|
												let self = this
							 | 
						|
												
							 | 
						|
												this.$api('getShopPingDetail', {
							 | 
						|
													id : this.id
							 | 
						|
												}, res => {
							 | 
						|
													if (res.code == 200) {
							 | 
						|
														self.form.id = res.result.id
							 | 
						|
														self.form.name = res.result.name
							 | 
						|
														self.form.nameSub = res.result.nameSub
							 | 
						|
														self.form.points = res.result.points
							 | 
						|
														self.form.price = res.result.price
							 | 
						|
														self.form.oldPrice = res.result.oldPrice
							 | 
						|
														self.form.className = res.result.className || self.form.className
							 | 
						|
														
							 | 
						|
														if(res.result.image){
							 | 
						|
															res.result.image.split(',')
							 | 
						|
															.forEach(url => {
							 | 
						|
																self.fileList.push({
							 | 
						|
																	url
							 | 
						|
																})
							 | 
						|
															})
							 | 
						|
														}
							 | 
						|
														
							 | 
						|
														if(res.result.imageDetails){
							 | 
						|
															res.result.imageDetails.split(',')
							 | 
						|
															.forEach(url => {
							 | 
						|
																self.imageDetailsList.push({
							 | 
						|
																	url
							 | 
						|
																})
							 | 
						|
															})
							 | 
						|
														}
							 | 
						|
													}
							 | 
						|
												})
							 | 
						|
											},
							 | 
						|
											deleteImage(e){
							 | 
						|
												this[e.name].splice(e.index, 1)
							 | 
						|
											},
							 | 
						|
											afterRead(e){
							 | 
						|
												let self = this
							 | 
						|
												e.file.forEach(file => {
							 | 
						|
													self.$Oss.ossUpload(file.url).then(url => {
							 | 
						|
														self[e.name].push({
							 | 
						|
															url
							 | 
						|
														})
							 | 
						|
													})
							 | 
						|
												})
							 | 
						|
											},
							 | 
						|
											
							 | 
						|
											// 提交
							 | 
						|
											submit(){
							 | 
						|
												
							 | 
						|
												this.form.image = this.fileList.map((item) => item.url).join(",")
							 | 
						|
												this.form.imageDetails = this.imageDetailsList.map((item) => item.url).join(",")
							 | 
						|
												
							 | 
						|
												if (this.$utils.verificationAll(this.form, {
							 | 
						|
														image : '请上传商品图片',
							 | 
						|
														name: '请输入商品标题',
							 | 
						|
														nameSub: '请输入商品副标题',
							 | 
						|
														price: '请输入商品价格',
							 | 
						|
														oldPrice: '请输入商品原价',
							 | 
						|
														points: '请输入积分',
							 | 
						|
														imageDetails : '请上传商品详情图片',
							 | 
						|
													})) {
							 | 
						|
													return
							 | 
						|
												}
							 | 
						|
												
							 | 
						|
												delete this.form.shop
							 | 
						|
												this.$api('orderSaveOrUpdate', this.form, res => {
							 | 
						|
													if(res.code == 200){
							 | 
						|
														uni.showToast({
							 | 
						|
															title: '保存成功!',
							 | 
						|
															icon: 'none'
							 | 
						|
														})
							 | 
						|
														
							 | 
						|
														setTimeout(uni.navigateBack, 1000, -1)
							 | 
						|
													}
							 | 
						|
												})
							 | 
						|
											},
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								</script>
							 | 
						|
								
							 | 
						|
								<style lang="scss" scoped>
							 | 
						|
								.publishPost{
							 | 
						|
									background-color: #fff;
							 | 
						|
									min-height: 100vh;
							 | 
						|
									font-size: 28rpx;
							 | 
						|
									padding-bottom: 150rpx;
							 | 
						|
									/deep/ .uv-textarea{
							 | 
						|
										background-color: transparent;
							 | 
						|
										border: none;
							 | 
						|
									}
							 | 
						|
									/deep/ .uv-textarea__count{
							 | 
						|
										background-color: transparent !important;
							 | 
						|
									}
							 | 
						|
									.box{
							 | 
						|
										padding: 0 20rpx;
							 | 
						|
									}
							 | 
						|
									.images{
							 | 
						|
										display: flex;
							 | 
						|
										flex-wrap: wrap;
							 | 
						|
										padding: 20rpx;
							 | 
						|
									}
							 | 
						|
									.title-input{
							 | 
						|
										margin: 10rpx;
							 | 
						|
										border-bottom: 1px solid #00000015;
							 | 
						|
										padding-bottom: 25rpx;
							 | 
						|
										margin-bottom: 15rpx;
							 | 
						|
										display: flex;
							 | 
						|
										align-items: center;
							 | 
						|
										justify-content: space-between;
							 | 
						|
										input{
							 | 
						|
											width: 100%;
							 | 
						|
										}
							 | 
						|
										.shop-box{
							 | 
						|
											font-size: 28rpx;
							 | 
						|
											flex-shrink: 0;
							 | 
						|
											font-weight: 900;
							 | 
						|
											width: 140rpx;
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									.content-input{
							 | 
						|
										min-height: 400rpx;
							 | 
						|
										/deep/ .uv-textarea{
							 | 
						|
											min-height: 400rpx;
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									.upTop{
							 | 
						|
										.title{
							 | 
						|
											padding-top: 20rpx;
							 | 
						|
											padding-left: 20rpx;
							 | 
						|
											border-top: 1px solid #00000015;
							 | 
						|
											display: flex;
							 | 
						|
											align-items: center;
							 | 
						|
										}
							 | 
						|
										.list{
							 | 
						|
											padding-top: 30rpx;
							 | 
						|
											width: 100%;
							 | 
						|
											.item{
							 | 
						|
												display: flex;
							 | 
						|
												padding: 20rpx;
							 | 
						|
												padding-left: 80rpx;
							 | 
						|
												justify-content: space-between;
							 | 
						|
												width: 600rpx;
							 | 
						|
												border-bottom: 1px solid #00000015;
							 | 
						|
												align-items: center;
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									
							 | 
						|
									.configBtn{
							 | 
						|
										padding: 20rpx;
							 | 
						|
										color: #777;
							 | 
						|
										padding-top: 40rpx;
							 | 
						|
										font-size: 28rpx;
							 | 
						|
									}
							 | 
						|
									
							 | 
						|
									.confirmationPopup{
							 | 
						|
										display: flex;
							 | 
						|
										flex-direction: column;
							 | 
						|
										align-items: center;
							 | 
						|
										justify-content: center;
							 | 
						|
										width: 100%;
							 | 
						|
										height: 300rpx;
							 | 
						|
										image{
							 | 
						|
											margin-top: 40rpx;
							 | 
						|
										}
							 | 
						|
										.info{
							 | 
						|
											margin-top: 40rpx;
							 | 
						|
											font-size: 26rpx;
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								.category{
							 | 
						|
									padding: 20rpx;
							 | 
						|
									.title{
							 | 
						|
										font-weight: 900;
							 | 
						|
										// font-size: 30rpx;
							 | 
						|
										padding-bottom: 20rpx;
							 | 
						|
									}
							 | 
						|
									.tagList{
							 | 
						|
										display: flex;
							 | 
						|
										flex-wrap: wrap;
							 | 
						|
										padding: 10rpx 0;
							 | 
						|
										view{
							 | 
						|
											background: rgba($uni-color, 0.1);
							 | 
						|
											padding: 10rpx 20rpx;
							 | 
						|
											margin: 10rpx;
							 | 
						|
											border-radius: 10rpx;
							 | 
						|
											font-size: 26rpx;
							 | 
						|
										}
							 | 
						|
										.act{
							 | 
						|
											color: #fff;
							 | 
						|
											background: $uni-color;
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								</style>
							 |