| | |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | line-height: 58rpx; |
| | | padding: 8rpx 30rpx; |
| | | padding: 8rpx 24rpx; |
| | | color: #33a868; |
| | | margin-left: 13rpx; |
| | | margin-right: 13rpx; |
| | | margin-left: 6rpx; |
| | | margin-right: 6rpx; |
| | | border: 2rpx solid #F1F5F2; |
| | | } |
| | | .value-item.cur{ |
| | |
| | | cache_user: state => { |
| | | return state.currentInfo || {} |
| | | }, |
| | | sign: state => { |
| | | return state.sign || {} |
| | | }, |
| | | // currentEnId: state=>{ |
| | | // // console.log('currentEnId',state.currentInfo.enId,state.currentInfo) |
| | | // return state.currentInfo.enId || '' |
| | |
| | | </view>
|
| | | </view>
|
| | | <view class="form-item before-line">
|
| | | <view class="label required">商品名称</view>
|
| | | <view class="label">商品名称</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | | <input v-model="dto.name" placeholder="请选择分类" disabled
|
| | | style="margin-top: 16px;text-align: right;"></input>
|
| | |
| | | </view>
|
| | | </view>
|
| | | <view class="form-item before-line">
|
| | | <view class="label required">商品单位</view>
|
| | | <view class="label">商品单位</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | | <input v-model="dto.unit" placeholder="请选择分类" disabled
|
| | | style="margin-top: 16px;text-align: right;"></input>
|
| | |
| | | </view>
|
| | |
|
| | | <view class="form-item before-line">
|
| | | <view class="label required">商品颜色</view>
|
| | | <view class="label">商品颜色</view>
|
| | | <!-- <view class="m-l-a m-r-0 flex " :class="[!dto.color?'desc-gray':'']" @click="()=>{
|
| | | show_select_color=true
|
| | | }">
|
| | |
| | | </view>
|
| | |
|
| | | <view class="form-item before-line bottom-border-no">
|
| | | <view class="label required" style="width: 400rpx;">商品轮播图(300*160px)</view>
|
| | | <view class="label " style="width: 400rpx;">商品轮播图(300*160px)</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | | <!-- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}" -->
|
| | | <view class="component-button-upload" @click="uploadIcon('bannerList')">
|
| | |
| | |
|
| | |
|
| | | <view class="form-item before-line">
|
| | | <view class="label required">商品视频</view>
|
| | | <view class="label">商品视频</view>
|
| | | <view class="m-l-a m-r-0 flex">
|
| | | <!-- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}" -->
|
| | | <view class="component-button-upload m-r-15" @click="uploadIcon('video')">
|
| | |
| | | stock: 0,
|
| | | params: [], //id,value
|
| | | },
|
| | | requireFields: [{
|
| | | name: '商品分类',
|
| | | key: 'category'
|
| | | },{
|
| | | name: '列表封面图',
|
| | | key: 'cover'
|
| | | },{
|
| | | name: '商品等级',
|
| | | key: 'level'
|
| | | }],
|
| | | show_select_category: false,
|
| | | show_select_level: false,
|
| | | columns_categorys: [],
|
| | |
| | | }).then(res => {
|
| | | var data = res.data
|
| | | this.columns_levels = [data || []]
|
| | | this.columns_levels[0].unshift({
|
| | | label: '全部',
|
| | | value: ''
|
| | | })
|
| | | // this.columns_levels[0].unshift({
|
| | | // label: '全部',
|
| | | // value: ''
|
| | | // })
|
| | |
|
| | | })
|
| | | if (options.id) {
|
| | |
| | |
|
| | | },
|
| | | async submit() {
|
| | | 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 |
| | | }
|
| | | // if (!this.dto.applicationType) {
|
| | | // this.$message.showToast('未选择类型')
|
| | | // return
|
| | |
| | | this.$store.dispatch('sign_add', 'flower');
|
| | |
|
| | | this.backpage()
|
| | | } else {
|
| | | console.log('error re', re)
|
| | | if (re.code === 30000 && Array.isArray(re.msg)) {
|
| | | this.$message.showToast('字段未填写完整')
|
| | |
|
| | | }
|
| | | }
|
| | | },
|
| | | async deleteBanner(index) {
|
| | |
| | | const that = this
|
| | | if (key == 'video') {
|
| | | uni.chooseVideo({
|
| | | maxDuration: 30,
|
| | | sourceType: ['camera', 'album'],
|
| | | success: function(res) {
|
| | | // console.log('res',res)
|
| | | // size: 11082508
|
| | | if (res.size > 1024 * 1024 * 50) {
|
| | | that.$message.confirm('视频最多支持50M大小,超出大小限制')
|
| | | return
|
| | | }
|
| | | if (res.tempFilePath) {
|
| | | console.log('res.tempFilePath', res.tempFilePath)
|
| | | that.$message.showLoading()
|
| | |
| | | count: 1, // 最多可以选择的图片张数,默认9
|
| | | sizeType: ['compressed'], //original 原图,compressed 压缩图,默认二者都有
|
| | | sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
|
| | | success: function({
|
| | | errMsg,
|
| | | tempFiles
|
| | | }) {
|
| | | success: function(res) {
|
| | | let errMsg = res.errMsg
|
| | | let tempFiles = res.tempFiles
|
| | | if (errMsg === 'chooseImage:ok') {
|
| | | // console.log(tempFiles[0])
|
| | | if (tempFiles[0].size > 1024 * 1024 * 5) {
|
| | | that.$message.confirm('图片最多支持5M大小,超出大小限制')
|
| | | return
|
| | | }
|
| | | that.$message.showLoading()
|
| | | that.$http.upload(tempFiles[0].path).then(async res => {
|
| | | console.log('res1', res)
|
| | |
| | | <u-icon class="m-l-a" name="arrow-right"></u-icon> |
| | | </view> --> |
| | | <view class="m-l-a m-r-0 flex " :class="[!dto['province']?'desc-gray':'']"> |
| | | <uni-data-picker @change="(e)=>{PickArea(dto,e)}" placeholder="" :localdata="regionDataPlus"> |
| | | <uni-data-picker :area="true" @change="(e)=>{PickArea(dto,e)}" placeholder=""
|
| | | :localdata="regionDataPlus">
|
| | | {{ dto['province'] || '请选择' }}{{ dto['city'] && ('/' + dto['city']) || '' }}{{ |
| | | dto['region'] && ('/' + dto['region']) || '' |
| | | }} |
| | |
| | | city: '', |
| | | region: '', |
| | | }, |
| | | requireFields: [{
|
| | | name: '店铺类型',
|
| | | key: 'typeId'
|
| | | },
|
| | | {
|
| | | name: '店铺名称',
|
| | | key: 'name'
|
| | | },
|
| | | {
|
| | | name: '店铺头像',
|
| | | key: 'cover'
|
| | | },
|
| | | {
|
| | | name: '联系人姓名',
|
| | | key: 'contactName'
|
| | | },
|
| | | {
|
| | | name: '联系方式',
|
| | | key: 'contactTel'
|
| | | },
|
| | | {
|
| | | name: '集货站',
|
| | | key: 'stationId'
|
| | | },
|
| | | {
|
| | | name: '地区',
|
| | | key: 'province'
|
| | | },
|
| | | {
|
| | | name: '地址',
|
| | | key: 'address'
|
| | | },
|
| | | {
|
| | | name: '店铺简介',
|
| | | key: 'description'
|
| | | },
|
| | | ],
|
| | | show_select_type: false, |
| | | show_select_station: false, |
| | | columns_types: [], |
| | |
| | | this.regionDataPlus = res.data && JSON.parse(res.data.replaceAll('code', 'value').replaceAll('name', |
| | | 'text')) || [] |
| | | |
| | | console.log('area', this.regionDataPlus) |
| | | // console.log('area', this.regionDataPlus)
|
| | | |
| | | |
| | | }, |
| | |
| | | |
| | | if (this.dto.idcardType == '1') { |
| | | this.dto.idcardType = '身份证' |
| | | } else {
|
| | | this.dto.idcardType = '营业执照'
|
| | | } |
| | | this.dto.userId = this.currentInfo.id |
| | | |
| | |
| | | } |
| | | if (this.dto.idcardType == '1') { |
| | | this.dto.idcardType = '身份证' |
| | | } else {
|
| | | this.dto.idcardType = '营业执照'
|
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | }, |
| | | async submit() { |
| | | |
| | | for (var field of this.requireFields) {
|
| | | if (!this.dto[field.key]) {
|
| | | this.$message.showToast(`${field.name}信息未填写`)
|
| | | return
|
| | | }
|
| | | }
|
| | | if (this.dto.idcardType == '身份证' && this.dto.idCards.length == 0) {
|
| | | this.$message.showToast(`${this.dto.idcardType}信息未填写`)
|
| | | return
|
| | | }
|
| | | if (this.dto.idcardType !== '身份证' && this.dto.pictures.length == 0) {
|
| | | this.$message.showToast(`${this.dto.idcardType}信息未填写`)
|
| | | return
|
| | | }
|
| | | await this.$message.confirm(`是否确定提交/修改店铺信息`) |
| | | |
| | | |
| | |
| | | this.$store.dispatch('getCurrentInfo') |
| | | |
| | | this.backpage() |
| | | } else {
|
| | | console.log('error re', re)
|
| | | if (re.code === 30000 && Array.isArray(re.msg)) {
|
| | | this.$message.showToast('字段未填写完整')
|
| | |
|
| | | }
|
| | | } |
| | | }, |
| | | |
| | |
| | | }) { |
| | | if (errMsg === 'chooseImage:ok') { |
| | | // console.log(tempFiles[0]) |
| | | if (tempFiles[0].size > 1024 * 1024 * 5) { |
| | | that.$message.confirm('图片最多支持5M大小,超出大小限制') |
| | | return |
| | | }
|
| | | that.$message.showLoading() |
| | | that.$http.upload(tempFiles[0].path).then(async res => { |
| | | var pic = res.data && res.data.length > 0 && res.data[ |
| | |
| | | <data-picker-view class="picker-view" ref="pickerView" v-model="dataValue" :localdata="localdata" |
| | | :preload="preload" :collection="collection" :field="field" :orderby="orderby" :where="where" |
| | | :key="showpicker" |
| | | :area="area" |
| | | :step-searh="stepSearh" :self-field="selfField" :parent-field="parentField" :managed-mode="true" |
| | | :map="map" :ellipsis="ellipsis" @change="onchange" @datachange="ondatachange" @nodeclick="onnodeclick"> |
| | | </data-picker-view> |
| | |
| | | ellipsis: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | area:{ |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | area:{ |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | map: { |
| | | type: Object, |
| | | default () { |
| | |
| | | <view class="uni-data-pickerview"> |
| | | <scroll-view v-if="!isCloudDataList" class="selected-area" scroll-x="true"> |
| | | <view class="selected-list"> |
| | | <view |
| | | class="selected-item" |
| | | v-for="(item,index) in selected" |
| | | :key="index" |
| | | :class="{ |
| | | <view class="selected-item" v-for="(item,index) in selected" :key="index" :class="{
|
| | | 'selected-item-active':index == selectedIndex |
| | | }" |
| | | @click="handleSelect(index)" |
| | | > |
| | | }" @click="handleSelect(index)">
|
| | | <text>{{item.text || ''}}</text> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | <view class="tab-c"> |
| | | <!-- <view>
|
| | | selected:{{JSON.stringify(selected)}}
|
| | | </view> -->
|
| | | <!-- v-if="!area||!selected|| selected.length==0||area&&selected&&selected.length>0&&(item[map.text]!==selected[selected.length-1].text)" -->
|
| | | <scroll-view class="list" :scroll-y="true"> |
| | | <view class="item" :class="{'is-disabled': !!item.disable}" v-for="(item, j) in dataList[selectedIndex]" :key="j" |
| | | <view v-for="(item, j) in dynamicList" :key="j">
|
| | | <view class="item" :class="{'is-disabled': !!item.disable}" v-show="!item.hide"
|
| | | @click="handleNodeClick(item, selectedIndex, j)"> |
| | | <text class="item-text">{{item[map.text]}}</text> |
| | | <view class="check" v-if="selected.length > selectedIndex && item[map.value] == selected[selectedIndex].value"></view> |
| | | <view class="check"
|
| | | v-if="selected.length > selectedIndex && item[map.value] == selected[selectedIndex].value">
|
| | | </view> |
| | | </view>
|
| | | </view>
|
| | |
|
| | | </scroll-view> |
| | | |
| | | <view class="loading-cover" v-if="loading"> |
| | |
| | | ellipsis: { |
| | | type: Boolean, |
| | | default: true |
| | | }
|
| | | },
|
| | | computed: {
|
| | | dynamicList() {
|
| | | var lastnodes = []
|
| | | if (this.selected && this.selected.length > 0) {
|
| | | for (var name of this.selected) {
|
| | | lastnodes.push(name.text)
|
| | | }
|
| | | // lastnode = this.selected[this.selectedIndex].text
|
| | | }
|
| | | var arr = []
|
| | | console.log('lastnodes', lastnodes)
|
| | | if (this.dataList && this.dataList[this.selectedIndex]) {
|
| | | for (var item of this.dataList[this.selectedIndex]) {
|
| | | if (lastnodes.indexOf(item[this.map.text]) >= 0) { |
| | | item.hide = true
|
| | | arr.push(item)
|
| | | } else { |
| | | item.hide = false
|
| | | arr.push(item)
|
| | | }
|
| | | }
|
| | | }
|
| | | return arr
|
| | | } |
| | | }, |
| | | created() { |
| | |
| | | .selected-area { |
| | | width: 750rpx; |
| | | } |
| | |
|
| | | /* #endif */ |
| | | |
| | | .selected-list { |