|
@@ -5,6 +5,9 @@
|
|
|
<view>
|
|
|
<u-popup :show="show" :overlay="false">
|
|
|
<view class="pop">
|
|
|
+ <view class="contentXZ">
|
|
|
+ <u-parse :content="content"></u-parse>
|
|
|
+ </view><br><br><br><br><br>
|
|
|
<view class="bottom-container">
|
|
|
<u-button @click="handleAgree" text="我已知晓" color="#5298ff" shape="circle"></u-button>
|
|
|
</view>
|
|
@@ -12,18 +15,18 @@
|
|
|
</u-popup>
|
|
|
</view>
|
|
|
<!-- ---------- -->
|
|
|
- <view class="content">
|
|
|
- <u--form labelPosition="top" labelWidth="150" :model="form" :rules="rules" ref="uForm">
|
|
|
- <u-form-item label="商品名称" prop="form.title" borderBottom ref="item1">
|
|
|
+ <view v-if="!show" class="content">
|
|
|
+ <u--form labelPosition="top" labelWidth="150" :model="form" :rules="rules" ref="form">
|
|
|
+ <u-form-item label="商品名称" prop="title" required borderBottom ref="title">
|
|
|
<u--input v-model="form.title" placeholder="请输入商品名称" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="商品描述" prop="form.content" borderBottom ref="item1">
|
|
|
+ <u-form-item label="商品描述" prop="content" required borderBottom ref="item1">
|
|
|
<u--input v-model="form.content" placeholder="请输入" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="商品图片" prop="form.name" borderBottom ref="item1">
|
|
|
- <zj-upload key="cp" @getFiles="getFiles" :fileList="fileList" :count="1" />
|
|
|
+ <u-form-item label="商品图片" prop="" required borderBottom ref="item1">
|
|
|
+ <zj-upload key="cp" @getFiles="getFiles" :fileList="fileList" :count="9" />
|
|
|
</u-form-item>
|
|
|
- <u-form-item labelPosition="left" label="商品分类" prop="form.categoryId" borderBottom ref="item1">
|
|
|
+ <u-form-item labelPosition="left" required label="商品分类" prop="categoryId" borderBottom ref="item1">
|
|
|
<u-radio-group v-model="form.categoryId" placement="column">
|
|
|
<u-radio
|
|
|
v-for="(v, i) in categoryList"
|
|
@@ -35,20 +38,20 @@
|
|
|
</u-radio>
|
|
|
</u-radio-group>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="所在位置" labelPosition="left" prop="form.name" borderBottom ref="item1">
|
|
|
+ <u-form-item label="所在位置" labelPosition="left" prop="" required borderBottom ref="item1">
|
|
|
<view @click="handleDW" class="letText">
|
|
|
<text v-if="form.address">{{ form.address }}</text>
|
|
|
<text v-if="!form.address">请选择定位</text>
|
|
|
<u-icon name="arrow-right"></u-icon>
|
|
|
</view>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="商品价格(含运费) " labelPosition="left" prop="form.amount" borderBottom ref="item1">
|
|
|
+ <u-form-item label="商品价格(含运费) " labelPosition="left" required prop="amount" borderBottom ref="item1">
|
|
|
<u--input v-model="form.amount" inputAlign="right" placeholder="请输入数字" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="上架数量" labelPosition="left" prop="form.num" borderBottom ref="item1">
|
|
|
+ <u-form-item label="上架数量" labelPosition="left" required prop="num" borderBottom ref="item1">
|
|
|
<u--input v-model="form.num" inputAlign="right" placeholder="请输入" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="商品品牌" labelPosition="left" prop="form.brand" borderBottom ref="item1">
|
|
|
+ <u-form-item label="商品品牌" labelPosition="left" prop="brand" borderBottom ref="item1">
|
|
|
<u--input
|
|
|
v-model="form.brand"
|
|
|
inputAlign="right"
|
|
@@ -56,10 +59,10 @@
|
|
|
border="none"
|
|
|
></u--input>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="功率(W)" labelPosition="left" prop="form.power" borderBottom ref="item1">
|
|
|
+ <u-form-item label="功率(W)" labelPosition="left" prop="power" borderBottom ref="item1">
|
|
|
<u--input v-model="form.power" inputAlign="right" placeholder="请输入" border="none"></u--input>
|
|
|
</u-form-item>
|
|
|
- <u-form-item labelPosition="left" label="能效标识" prop="form.energy" borderBottom ref="item1">
|
|
|
+ <u-form-item labelPosition="left" label="能效标识" prop="energy" borderBottom ref="item1">
|
|
|
<u-radio-group v-model="form.energy" placement="column">
|
|
|
<u-radio
|
|
|
v-for="(v, i) in dictList"
|
|
@@ -71,9 +74,11 @@
|
|
|
</u-radio>
|
|
|
</u-radio-group>
|
|
|
</u-form-item>
|
|
|
- <u-form-item label="制造日期" labelPosition="left" prop="form.goodsCreateTime" borderBottom ref="item1">
|
|
|
+ <u-form-item label="制造日期" labelPosition="left" prop="goodsCreateTime" borderBottom ref="item1">
|
|
|
<view class="letText" @click="handleTime">
|
|
|
- <text v-if="form.goodsCreateTime">{{ form.goodsCreateTime || '' }}</text>
|
|
|
+ <text v-if="form.goodsCreateTime">{{
|
|
|
+ form.goodsCreateTime.split('-')[0] + '-' + form.goodsCreateTime.split('-')[1] || ''
|
|
|
+ }}</text>
|
|
|
<text v-if="!form.goodsCreateTime">请选择</text>
|
|
|
<u-icon name="arrow-right"></u-icon>
|
|
|
</view>
|
|
@@ -120,46 +125,156 @@ export default {
|
|
|
brand: '',
|
|
|
power: '',
|
|
|
energy: '',
|
|
|
+ province: '',
|
|
|
+ city: '',
|
|
|
+ area: '',
|
|
|
+ street: '',
|
|
|
goodsCreateTime: ''
|
|
|
},
|
|
|
+ rules: {
|
|
|
+ title: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必传',
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ content: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必传',
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ categoryId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必传',
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ amount: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必传',
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ num: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必传',
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ power: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必传',
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ energy: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必传',
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ goodsCreateTime: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '必传',
|
|
|
+ trigger: ['change', 'blur']
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
time: Number(new Date()),
|
|
|
- rules: {},
|
|
|
categoryList: [],
|
|
|
dictList: [],
|
|
|
fileList: [],
|
|
|
- url:''
|
|
|
+ url: [],
|
|
|
+ content: ''
|
|
|
}
|
|
|
},
|
|
|
+ onReady() {
|
|
|
+ //如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
|
|
|
+ this.$refs.form.setRules(this.rules)
|
|
|
+ },
|
|
|
onShow() {
|
|
|
+ this.getConfig()
|
|
|
this.getList()
|
|
|
this.getDictList()
|
|
|
},
|
|
|
methods: {
|
|
|
+ getConfig() {
|
|
|
+ this.$api
|
|
|
+ .get('/app/config/detail-by-type', {
|
|
|
+ configType: '4'
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ this.content = res.data.content
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
+ },
|
|
|
getFiles(value) {
|
|
|
- console.log(value, 67676)
|
|
|
- this.fileList =
|
|
|
- this.url = value[0]
|
|
|
+ this.url = []
|
|
|
+ value.forEach(v => {
|
|
|
+ this.url.push({
|
|
|
+ imgUrl: v
|
|
|
+ })
|
|
|
+ })
|
|
|
},
|
|
|
submin() {
|
|
|
- this.form.categoryName = this.categoryList.find(v => v.categoryId === this.form.categoryId)?.categoryName ?? ''
|
|
|
- let params = {
|
|
|
- ...this.form,
|
|
|
- goodsFiles: [
|
|
|
- {
|
|
|
- goodsId: '',
|
|
|
- imgUrl: this.url,
|
|
|
+ this.$refs.form
|
|
|
+ .validate()
|
|
|
+ .then(valid => {
|
|
|
+ if (valid) {
|
|
|
+ this.form.categoryName =
|
|
|
+ this.categoryList.find(v => v.categoryId === this.form.categoryId)?.categoryName ?? ''
|
|
|
+ let params = {
|
|
|
+ ...this.form,
|
|
|
+ goodsFiles: this.url
|
|
|
+ }
|
|
|
+ this.$api
|
|
|
+ .post('/goods/add', params)
|
|
|
+ .then(res => {
|
|
|
+ this.form = {
|
|
|
+ title: '',
|
|
|
+ content: '',
|
|
|
+ categoryName: '',
|
|
|
+ categoryId: '',
|
|
|
+ lng: '',
|
|
|
+ lat: '',
|
|
|
+ address: '',
|
|
|
+ amount: '',
|
|
|
+ num: '',
|
|
|
+ brand: '',
|
|
|
+ power: '',
|
|
|
+ province: '',
|
|
|
+ city: '',
|
|
|
+ area: '',
|
|
|
+ street: '',
|
|
|
+ energy: '',
|
|
|
+ goodsCreateTime: ''
|
|
|
+ }
|
|
|
+ this.$refs.form.clearValidate()
|
|
|
+ this.show = true
|
|
|
+ this.$navToPage(
|
|
|
+ {
|
|
|
+ url: '/pages/index/index'
|
|
|
+ },
|
|
|
+ 'switchTab'
|
|
|
+ )
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
}
|
|
|
- ]
|
|
|
- }
|
|
|
- this.$api
|
|
|
- .post('/goods/add',params)
|
|
|
- .then(res => {
|
|
|
- console.log(res);
|
|
|
- this.$navToPage({
|
|
|
- url: '/pages/index/index'
|
|
|
- }, 'switchTab')
|
|
|
})
|
|
|
- .catch(() => {})
|
|
|
+ .catch(err => {
|
|
|
+ this.$toast('缺少必要参数,请检查')
|
|
|
+ })
|
|
|
+
|
|
|
+ return
|
|
|
},
|
|
|
//获取商品分类数据
|
|
|
async getList() {
|
|
@@ -177,7 +292,6 @@ export default {
|
|
|
dictCode: '能效'
|
|
|
})
|
|
|
.then(res => {
|
|
|
- console.log(res)
|
|
|
this.dictList = res.data
|
|
|
})
|
|
|
.catch(() => {})
|
|
@@ -188,6 +302,16 @@ export default {
|
|
|
this.form.lng = res.longitude
|
|
|
this.form.lat = res.latitude
|
|
|
this.form.address = res.address
|
|
|
+ this.$api
|
|
|
+ .post(`/lbs/amap/region/query?lng=${res.longitude}&lat=${res.latitude}`)
|
|
|
+ .then(res => {
|
|
|
+ console.log(res)
|
|
|
+ this.form.province = res.data.provinceName
|
|
|
+ this.form.city = res.data.cityName
|
|
|
+ this.form.area = res.data.areaName
|
|
|
+ this.form.street = res.data.name
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -221,10 +345,21 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+.contentXZ {
|
|
|
+ padding: 20px;
|
|
|
+}
|
|
|
.pop {
|
|
|
+ overflow: auto;
|
|
|
// padding: 0 20rpx;
|
|
|
- height: calc(100vh - 44px);
|
|
|
+ /* #ifdef H5 */
|
|
|
+ // height: calc(100vh - 44px);
|
|
|
+ height: 100vh;
|
|
|
+ /* #endif */
|
|
|
+ /* #ifndef H5 */
|
|
|
+ height: 100vh;
|
|
|
+ /* #endif */
|
|
|
}
|
|
|
+
|
|
|
.content {
|
|
|
padding: 0 40rpx;
|
|
|
margin: 20rpx 0;
|