| | |
| | | <view class="form-item before-line">
|
| | | <view class="label required">商品等级</view>
|
| | | <view class="m-l-a m-r-0 flex " :class="[!dto.level?'desc-gray':'']" @click="()=>{
|
| | | show_select_level=true
|
| | | if(dto.category){
|
| | | show_select_level=true
|
| | | }else{
|
| | | $message.showToast('请选择分类')
|
| | | }
|
| | | }">
|
| | | <view>{{dto.levelStr||dto.level || '请选择'}}</view>
|
| | | <u-icon class="m-l-a" name="arrow-right"></u-icon>
|
| | |
| | | <view class="form-item before-line">
|
| | | <view class="label required">售价(元)</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | | <input v-model="dto.price" placeholder="请输入数字" type="digit"
|
| | | style="margin-top: 16px;text-align: right;"></input>
|
| | | <!-- <input v-model="dto.price" placeholder="请输入数字" type="digit" class="text-right m-t-15"></input> -->
|
| | | <u-input v-model="dto.price" placeholder="请输入数字" type="digit" class="text-right m-t-15" />
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | <view class="form-item ">
|
| | | <view class="label required">库存</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | | <input v-model="dto.stock" placeholder="请输入数字" type="number"
|
| | | style="margin-top: 16px;text-align: right;"></input>
|
| | | <!-- <input v-model="dto.stock" placeholder="请输入数字" type="number" class="text-right m-t-15"></input> -->
|
| | |
|
| | | <u-input v-model="dto.stock" placeholder="请输入数字" type="number" class="text-right m-t-15" />
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | <!-- <view class="form-item ">
|
| | | <view class="label">限购数量</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | | <input v-model="dto.limited" placeholder="请输入数字" type="number"
|
| | | style="margin-top: 16px;text-align: right;"></input>
|
| | | </view>
|
| | | </view> -->
|
| | |
|
| | | <view class="line-gray-big"></view>
|
| | |
|
| | |
| | | </view>
|
| | | <view class="line-gray-big"></view>
|
| | |
|
| | | <view class="form-item before-line">
|
| | | <view class="label">商品描述</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | |
|
| | | <view class="form-item before-line">
|
| | | </view>
|
| | | </view>
|
| | | <view style="min-width: 500rpx;margin-left: 20rpx;margin-right: 20rpx;margin-top: 20rpx;">
|
| | | <u--textarea v-model="dto.description" autoHeight placeholder="请输入商品描述"></u--textarea>
|
| | | </view>
|
| | |
|
| | | <view class="form-item bottom-border-no">
|
| | | <view class="label">商品视频</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | | <!-- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}" -->
|
| | |
| | | </view>
|
| | | </view>
|
| | | <view v-if="dto.video">
|
| | | <video :src="dto.video" style="display: block;margin: 0 auto;"></video>
|
| | | </view>
|
| | | <view class="form-item bottom-border-no">
|
| | | <view class="label">商品描述</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | <view style="min-width: 500rpx;margin-left: 20rpx;margin-right: 20rpx;margin-top: 20rpx;">
|
| | | <u--textarea v-model="dto.description" autoHeight placeholder="请输入商品描述"></u--textarea>
|
| | | <video :src="dto.video" :auto-pause-if-navigate="true" style="display: block;margin: 0 auto;"></video>
|
| | | </view>
|
| | |
|
| | |
|
| | | <view style="min-height: 200rpx;">
|
| | |
|
| | | <view style="min-height: 240rpx;">
|
| | |
|
| | | </view>
|
| | | <view class="button-green-1 m-t-20 button-fixed-bottom " @click="submit" v-if="!dto.id">
|
| | |
| | | level: '', //FLOWER_LEVEL
|
| | | price: '',
|
| | | stock: '',
|
| | | limited: '',
|
| | | params: [], //id,value
|
| | | description: '',
|
| | | },
|
| | | requireFields: [{
|
| | | name: '商品分类',
|
| | | key: 'category'
|
| | | }, {
|
| | | name: '列表封面图',
|
| | | key: 'cover'
|
| | | }, {
|
| | | name: '商品等级',
|
| | | key: 'level'
|
| | | }, {
|
| | | name: '商品价格',
|
| | | key: 'price'
|
| | | }, {
|
| | | name: '商品库存',
|
| | | key: 'stock'
|
| | | }],
|
| | | name: '商品分类',
|
| | | key: 'category'
|
| | | }, {
|
| | | name: '列表封面图',
|
| | | key: 'cover'
|
| | | }, {
|
| | | name: '商品等级',
|
| | | key: 'level'
|
| | | }, {
|
| | | name: '商品价格',
|
| | | key: 'price'
|
| | | }, {
|
| | | name: '商品库存',
|
| | | key: 'stock'
|
| | | },
|
| | |
|
| | | ],
|
| | | show_select_category: false,
|
| | | show_select_level: false,
|
| | | columns_categorys: [],
|
| | |
| | | columns_categorys_dict: {},
|
| | | columns_categorys_search: '',
|
| | | columns_levels: [],
|
| | | columns_levels_all: [],
|
| | | // columns_params: [], //弹窗选择具体的值
|
| | | // cancel: {
|
| | | // color: '#999',
|
| | |
| | | }
|
| | | }).then(res => {
|
| | | var data = res.data
|
| | | this.columns_levels_all = data || []
|
| | | this.columns_levels = [data || []]
|
| | | // this.columns_levels[0].unshift({
|
| | | // label: '全部',
|
| | |
| | |
|
| | | methods: {
|
| | | updateValue(item, value) {
|
| | | if (item.value.indexOf(value) >= 0) {
|
| | | item.value.splice(item.value.indexOf(value), 1)
|
| | |
|
| | | if (item.name == '优点' || item.name === '缺点') {
|
| | | if (item.value.indexOf(value) < 0) {
|
| | | item.value.push(value)
|
| | | } else {
|
| | | item.value.splice(item.value.indexOf(value), 1)
|
| | | }
|
| | | } else {
|
| | | item.value.push(value)
|
| | | //单选
|
| | | item.value = [value]
|
| | | }
|
| | | // item.value = value
|
| | | // this.$set(item, 'value', value)
|
| | |
|
| | | this.$forceUpdate()
|
| | | // console.log('updateValue')
|
| | | },
|
| | | async updateSearch(search) {
|
| | | this.columns_categorys_search = search || ''
|
| | |
| | | this.$refs.picker_category.selectedClear()
|
| | | },
|
| | | async PickCategory(item, e) {
|
| | | console.log('PickCategory', item, e)
|
| | | console.log('PickCategory', item, e, this.columns_categorys_dict)
|
| | | if (e.detail.value) {
|
| | | var currentnode = this.columns_categorys_dict['@' + e.detail.value[e.detail.value.length - 1]
|
| | | .value]
|
| | | let levelLimit = currentnode && currentnode.levelLimit || ''
|
| | | if (!levelLimit) {
|
| | | if (currentnode.parentId) {
|
| | | var currentnodeParentNode = this.columns_categorys_dict['@' + currentnode.parentId]
|
| | | if (currentnodeParentNode) {
|
| | | levelLimit = currentnodeParentNode.levelLimit || ''
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | let tmpe = e
|
| | |
|
| | |
|
| | | if (this.dto.category && this.dto.category !== currentnode.id) {
|
| | | this.$message.confirm('修改分类将清空商品参数,确定修改吗').then(async res => {
|
| | | // console.log('currentnode',currentnode,this.columns_categorys_dict,'@'+e.detail.value[e.detail.value.length - 1].value)
|
| | | this.dto.categoryStr = currentnode.name
|
| | | this.dto.category = currentnode.id
|
| | |
|
| | | this.dto.name = currentnode.name
|
| | | this.dto.unit = currentnode.unit
|
| | | this.dto.color = currentnode.color
|
| | | //设置等级
|
| | | // console.log('tmpe', currentnode)
|
| | | if (levelLimit) {
|
| | |
|
| | | this.columns_levels = []
|
| | | var tarr = []
|
| | | var filterLevel = levelLimit.split(",")
|
| | | for (var t of this.columns_levels_all) {
|
| | | if (filterLevel.indexOf(t.value) >= 0) {
|
| | | tarr.push(t)
|
| | | }
|
| | | }
|
| | | this.columns_levels = [tarr]
|
| | | //如果不包含等级需要清除
|
| | | if (this.dto.level) {
|
| | | if (filterLevel.indexOf(this.dto.level) >= 0) {
|
| | |
|
| | | } else {
|
| | | this.dto.level = ''
|
| | | this.dto.levelStr = ''
|
| | | }
|
| | | }
|
| | | } else {
|
| | | this.columns_levels = [this.columns_levels_all]
|
| | | }
|
| | | //递归获取category的其他数据,用来做map?
|
| | | this.$message.showLoading()
|
| | | await this.refresh_category()
|
| | |
| | | this.$refs.picker_category.onchange(tmpe.detail.value)
|
| | | })
|
| | | } else {
|
| | | //设置等级
|
| | | // console.log('tmpe', currentnode)
|
| | | if (levelLimit) {
|
| | |
|
| | | this.columns_levels = []
|
| | | var tarr = []
|
| | | var filterLevel = levelLimit.split(",")
|
| | | for (var t of this.columns_levels_all) {
|
| | | if (filterLevel.indexOf(t.value) >= 0) {
|
| | | tarr.push(t)
|
| | | }
|
| | | }
|
| | | this.columns_levels = [tarr]
|
| | | //如果不包含等级需要清除
|
| | | if (this.dto.level) {
|
| | | if (filterLevel.indexOf(this.dto.level) >= 0) {
|
| | |
|
| | | } else {
|
| | | this.dto.level = ''
|
| | | this.dto.levelStr = ''
|
| | | }
|
| | | }
|
| | | } else {
|
| | | this.columns_levels = [this.columns_levels_all]
|
| | | }
|
| | | this.dto.categoryStr = currentnode.name
|
| | | this.dto.category = currentnode.id
|
| | | this.dto.name = currentnode.name
|
| | |
| | | } else {
|
| | | k.value = k.value.split(',') || []
|
| | | }
|
| | | } |
| | | }
|
| | | // console.log('init params',this.dto.params)
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | },
|
| | |
| | | // // console.log('this.dto', this.dto)
|
| | | if (!this.dto.bannerList) {
|
| | | this.dto.bannerList = []
|
| | | } |
| | | if(this.dto.params){ |
| | | for (var k of this.dto.params) { |
| | | if (!k.value) { |
| | | k.value = [] |
| | | } else { |
| | | k.value = k.value.split(',') || [] |
| | | } |
| | | } |
| | | } |
| | | |
| | | }
|
| | | if (this.dto.params) {
|
| | | for (var k of this.dto.params) {
|
| | | if (!k.value) {
|
| | | k.value = []
|
| | | } else {
|
| | | k.value = k.value.split(',') || []
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | // if (this.dto.category) {
|
| | | // await this.refresh_category()
|
| | | // }
|
| | |
| | | this.$message.showToast('商品库存格式错误,需要大于0')
|
| | | return
|
| | | }
|
| | | |
| | | |
| | | // if ( this.dto.limited && this.dto.limited !== '' && (!Number(this.dto.limited) || Number(this.dto.limited) <= 0)) {
|
| | | // this.$message.showToast('商品限购数量格式错误');
|
| | | // return;
|
| | | // }
|
| | |
|
| | |
|
| | |
|
| | | for (var field of this.requireFields) {
|
| | | if (!this.dto[field.key]) {
|
| | | this.$message.showToast(`${field.name}信息未填写`)
|
| | | return
|
| | | }
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | if (this.dto.params.length < 1) {
|
| | | this.$message.showToast('商品参数详情未设置')
|
| | | return
|
| | |
| | |
|
| | | // this.$message.showToast('1')
|
| | | // return
|
| | | var dto = JSON.parse(JSON.stringify(this.dto)) |
| | | if(dto.params){ |
| | | for(var k of dto.params){ |
| | | k.value = k.value.join(",") |
| | | } |
| | | var dto = JSON.parse(JSON.stringify(this.dto))
|
| | | if (dto.params) {
|
| | | for (var k of dto.params) {
|
| | | k.value = k.value.join(",")
|
| | | }
|
| | | }
|
| | | this.$message.showLoading()
|
| | | const re = await this.$http.request('post', `/api/supplier/flower/list/${this.id?'edit':'new'}`, {
|
| | |
| | | }).catch(res => {
|
| | | that.$message.hideLoading()
|
| | | console.error(res)
|
| | | that.$message.showToast('文件上传失败,请联系管理员')
|
| | | })
|
| | | }
|
| | | }
|
| | |
| | | }).catch(res => {
|
| | | that.$message.hideLoading()
|
| | | console.error(res)
|
| | | that.$message.showToast('文件上传失败,请联系管理员')
|
| | | })
|
| | | }
|
| | | }
|