Browse Source

1、优化第二十五期需求

shenjj 7 years ago
parent
commit
3229e38e34

+ 2 - 1
components/mobile/center/index.js

@@ -1,4 +1,5 @@
 import Seek from './Seek.vue'
 import Seek from './Seek.vue'
 import Message from './Message.vue'
 import Message from './Message.vue'
 import addinvoice from './addinvoice.vue'
 import addinvoice from './addinvoice.vue'
-export { Seek, Message, addinvoice }
+import upoffMaterial from './upoff-material.vue'
+export { Seek, Message, addinvoice, upoffMaterial }

+ 736 - 0
components/mobile/center/upoff-material.vue

@@ -0,0 +1,736 @@
+<template>
+    <div class="upoff-material-wrapper" v-if="showUpoff">
+      <div class="mobile-nav">
+        <div class="mobile-header mobile-center-header">
+          <a @click="showUpoff = false"><i class="iconfont icon-fanhui"></i></a>
+          <p>编辑上下架</p>
+          <p class="en-name">
+            <img :src="`/images/mobile/center/${user.data.enterprise && user.data.enterprise.uu ? 'en' : 'self'}.png`" alt="">{{currentEnName}}
+          </p>
+        </div>
+      </div>
+      <div class="upoff-materiel-wrapper" @click="clearInfo()">
+        <div class="opoff-title clearfix">
+          <!-- :class="item.standard ? 'standed' : 'istanded'"-->
+          <div class="icon standed"  :class="chooseItem.standard ? 'standed' : 'istanded'"></div>
+          <div class="opoff-title-text pull-left">{{chooseItem.pcmpcode || '-'}}</div>
+        </div>
+        <div class="off-content">
+          <div class="clearfix">
+            <span class="name">品牌:</span>
+            <span class="con">{{chooseItem.pbranden || chooseItem.pbrand || '-'}}</span>
+          </div>
+          <div class="clearfix">
+            <span class="name">物料名称:</span>
+            <span class="con">{{chooseItem.kind || chooseItem.kinden || '-'}}</span>
+          </div>
+          <div class="clearfix">
+            <span class="name">规格:</span>
+            <span class="con">{{chooseItem.spec || '-'}}</span>
+          </div>
+          <div class="clearfix">
+            <span class="name">库存(PCS):</span>
+            <span class="con">{{chooseItem.erpReserve || '-'}}</span>
+          </div>
+          <div class="clearfix">
+            <span class="name">平均成本:</span>
+            <span class="con">{{chooseItem.price || '-'}}</span>
+          </div>
+        </div>
+        <div class="off-info clearfix">
+          <div class="minBuyqty pull-left">
+            <span>最小起订量:</span>
+            <input type="number" maxlength="10" @blur="minBuyqtyBlur()" v-model="chooseItem.goods.minBuyQty" placeholder="请输入最小起订量" />
+          </div>
+          <div class="pull-left" style="margin-left:0.2rem">
+            <span>可拆卖:</span>
+            <div class="progress-wrapper" :class="{active: chooseItem.goods.breakUp}" @click="changeBreakUp()">
+              <div class="progress-btn"></div>
+            </div>
+          </div>
+          <div class="pull-left">
+            <span>上架:</span>
+            <div class="progress-wrapper" :class="{active: chooseItem.goods.autoPublish}" @click="changeautoPublish()">
+              <div class="progress-btn"></div>
+            </div>
+          </div>
+        </div>
+        <div class="off-info clearfix">
+          <div class="pull-left">
+            <span class="name">销售方式:</span>
+            <div class="selectInput" @click.stop="showdropmenu()">
+              <span v-if="chooseItem.storeInfoOms">{{chooseItem.storeInfoOms}}</span>
+              <span v-else>{{chooseItem.storeid === '33069557578d44e69bd91ad12d28a8d4' ? '寄售' : '自营'}}</span>
+              <img src="/images/mobile/product/drop_icon.png" v-if="!ShowShopshelfOff"/>
+              <ul :class="{active : showDrop }" v-if="!ShowShopshelfOff">
+                <li v-for="item in storeObj" @click.stop="chooseStore(item)">{{item}}</li>
+              </ul>
+            </div>
+          </div>
+          <div class="pull-left" style="margin-left: 0.2rem">
+            <span class="name">交期:</span>
+            <input type="tel" placeholder="天数" v-model="chooseItem.goods.b2cMinDelivery" class="input startInput" maxlength="3" @blur="minDeliveryBlur(chooseItem.goods.b2cMinDelivery)" />
+            -
+            <input type="tel" placeholder="天数" v-model="chooseItem.goods.b2cMaxDelivery" class="input endInput" maxlength="3" @blur="minDeliveryBlur(chooseItem.goods.b2cMaxDelivery)"/>
+          </div>
+        </div>
+        <div class="off-info clearfix">
+          <div class="pscList-top clearfix">
+            <div class="pull-left">梯度/pcs</div>
+            <div class="pull-right">单价</div>
+          </div>
+          <ul class="prices">
+            <li v-for="(item, index) in chooseItem.goods.prices" v-bind:key="index">
+              <div class="clearfix">
+                <div class="pull-left">
+                  <input v-if="index > 0" oninput="if(value.length>5)value=value.slice(0,9)"
+                         type="tel" placeholder="数量" class="otherNumber"
+                         :class="{firstNumber: index === 0}"
+                         v-model.lazy.trim="item.start"
+                         :disabled="index === 0" :readonly="index === 0"
+                         @blur="startpriceBlur(item, index)" maxlength="9"
+                  />
+                  <input v-else oninput="if(value.length>5)value=value.slice(0,9)"
+                         type="tel" placeholder="数量" class="otherNumber"
+                         :class="{firstNumber: index === 0}"
+                         v-model.lazy.trim="chooseItem.goods.minBuyQty"
+                         :disabled="index === 0" :readonly="index === 0"
+                         @blur="startpriceBlur(item, index)" maxlength="9"
+                  />
+                  <!--<label v-if="index !== chooseItem.goods.prices.length - 1">-</label>-->
+                  <label v-if="index !== chooseItem.goods.prices.length - 1">以上</label>
+                  <label v-if="index === chooseItem.goods.prices.length - 1">以上</label>
+                  <!--<input oninput="if(value.length>5)value=value.slice(0,9)"-->
+                         <!--type="tel" placeholder="数量" class="otherNumber"-->
+                         <!--v-model.lazy.trim="item.end"-->
+                         <!--v-if="index !== chooseItem.goods.prices.length - 1"-->
+                         <!--@blur="endpriceBlur(item, index)"-->
+                         <!--maxlength="9"/>-->
+                </div>
+                <div class="pull-right">
+                  <input v-show="chooseItem.currencyName === 'RMB'"
+                         class="priceM" type="text"
+                         placeholder="单价(¥)"
+                         v-model.lazy="item.rMBPrice"
+                         @blur="rMBPriceBlur(item)"/>
+                  <input v-show="chooseItem.currencyName !== 'RMB'"
+                         class="priceM" type="text"
+                         placeholder="单价($)"
+                         v-model.lazy="item.rMBPrice"
+                         @blur="rMBPriceBlur(item)"/>
+                  <span @click="miuPrice(index)"><img src="/images/mobile/product/mui_icon.png"/></span>
+                  <span @click="addPrice()"><img src="/images/mobile/product/add_icon.png"/></span>
+                </div>
+              </div>
+            </li>
+          </ul>
+        </div>
+      </div>
+      <div class="update-materiel-wrapper-controll clearfix">
+        <div class="pull-left" @click.stop="saveMateriel()">保存</div>
+        <div class="pull-right" @click.stop="hide()">取消</div>
+      </div>
+      <remind-box :title="collectResult" :timeoutCount="timeoutCount"></remind-box>
+    </div>
+</template>
+<script>
+  import { RemindBox } from '~components/mobile/common'
+    export default {
+      props: {
+        chooseItem: {
+          type: Object,
+          default: {}
+        }
+      },
+      computed: {
+        storeInfoStore() {
+          return this.$store.state.option.storeStatus.data
+        }
+      },
+      data() {
+        return {
+          collectResult: '',
+          timeoutCount: 0,
+          ShowShopshelfOff: false,
+          showDrop: false,
+          storeObj: ['寄售', '自营'],
+          showUpoff: false
+        }
+      },
+      methods: {
+        clearInfo() {},
+        changeBreakUp() {
+          this.chooseItem.goods.breakUp = !this.chooseItem.goods.breakUp
+          this.minBuyQtyBlur()
+        },
+        saveMateriel() {
+          if (!/^\d{1,6}$/.test(this.chooseItem.goods.minBuyQty)) {
+            this.timeoutCount++
+            this.collectResult = '最小起订量只能输入数字'
+            return false
+          } else if (this.chooseItem.goods.minBuyQty && !toString(this.chooseItem.goods.minBuyQty).trim()) {
+            this.timeoutCount++
+            this.collectResult = '最小起订量不能为空'
+            return false
+          } else if (!this.chooseItem.goods.b2cMinDelivery && !toString(this.chooseItem.goods.b2cMinDelivery).trim()) {
+            this.timeoutCount++
+            this.collectResult = '请填写最小交期时间'
+            return false
+          } else if (!this.chooseItem.goods.b2cMaxDelivery && !toString(this.chooseItem.goods.b2cMaxDelivery).trim()) {
+            this.timeoutCount++
+            this.collectResult = '请填写最大交期时间'
+            return false
+          } else if (!this.chooseItem.goods.b2cMinDelivery || !this.chooseItem.goods.b2cMaxDelivery) {
+            this.timeoutCount++
+            this.collectResult = '交期不能为空'
+            return false
+          } else if (!/^\d{1,3}$/.test(this.chooseItem.goods.b2cMinDelivery) || !/^\d{1,3}$/.test(this.chooseItem.goods.b2cMaxDelivery)) {
+            this.timeoutCount++
+            this.collectResult = '交期只能输入数字'
+            return false
+          } else {
+            let isHas = false
+            for (let i = 0; i < this.chooseItem.goods.prices.length; i++) {
+              if (!this.chooseItem.goods.prices[i].start || (this.chooseItem.goods.prices[i].end === '' && i !== this.chooseItem.goods.prices.length - 1)) {
+                this.timeoutCount++
+                this.collectResult = '分段数量必须填写'
+                isHas = true
+                break
+              } else if (i !== this.chooseItem.goods.prices.length - 1 && Math.abs(this.chooseItem.goods.prices[i].start) > Math.abs(this.chooseItem.goods.prices[i].end)) {
+                this.timeoutCount++
+                this.collectResult = '存在分段的起始值大于分段的结束值'
+                isHas = true
+                break
+              } else if (Math.abs(this.chooseItem.goods.prices[i].rMBPrice) <= 0) {
+                this.timeoutCount++
+                this.collectResult = '单价必须是大于0的数字'
+                isHas = true
+                break
+              } else if (!/^\d+$/.test(this.chooseItem.goods.prices[i].start) || (this.chooseItem.goods.prices[i].end !== '' && !/^\d+$/.test(this.chooseItem.goods.prices[i].end))) {
+                this.timeoutCount++
+                this.collectResult = '分段数量必须是正整数'
+                isHas = true
+                break
+              } else if (!/^[0-9]+([.]{1}[0-9]{1,6})?$/.test(this.chooseItem.goods.prices[i].rMBPrice)) {
+                this.timeoutCount++
+                this.collectResult = '单价只能输入数字'
+                isHas = true
+                break
+              }
+            }
+            if (isHas === true) {
+              return false
+            }
+          }
+          this.chooseItem.goods.selfSale = this.storeInfoStore.uuid ? 1 : 2
+          if (!this.chooseItem.storeInfoOms) {
+            this.chooseItem.storeInfoOms = this.chooseItem.storeid === '33069557578d44e69bd91ad12d28a8d4' ? '寄售' : '自营'
+          }
+          if (this.storeInfoStore.uuid) {
+            if (this.chooseItem.storeInfoOms === '寄售') {
+              this.chooseItem.selfSale = 2
+            } else if (this.chooseItem.storeInfoOms === '自营') {
+              this.chooseItem.selfSale = 1
+            }
+          }
+          this.chooseItem.goods.prices[this.chooseItem.goods.prices.length - 1].end = '9999999999'
+          this.$http.put('/trade/goods', this.chooseItem.goods).then(res => {
+            if (res.data.success) {
+              this.timeoutCount++
+              this.collectResult = '保存成功'
+              setTimeout(() => {
+                this.hide()
+              }, 300)
+            } else {
+              this.timeoutCount++
+              this.collectResult = res.data.message
+            }
+          }, err => {
+            this.timeoutCount++
+            this.collectResult = err.response.data
+          })
+        },
+        // 最低起订量失去焦点操作
+        minBuyQtyBlur() {
+          if (Math.abs(this.chooseItem.minPackQty) <= 0) {
+            this.timeoutCount++
+            this.collectResult = '包装数必须是大于0的整数'
+            this.chooseItem.minPackQty = 1
+          } else if (Math.abs(this.chooseItem.goods.minBuyQty) <= 0) {
+            this.timeoutCount++
+            this.collectResult = '起订量必须是大于0的整数'
+            this.chooseItem.goods.minBuyQty = 1
+          } else if ((!this.chooseItem.breakUp && this.chooseItem.goods.minBuyQty) && this.chooseItem.goods.minBuyQty % this.chooseItem.minPackQty !== 0) {
+            this.timeoutCount++
+            this.collectResult = '不可拆卖时,起订量必须是包装数量的倍数'
+            if (!this.chooseItem.minPackQty) {
+              this.chooseItem.minPackQty = 1
+            } else {
+              if (this.chooseItem.minPackQty > this.chooseItem.goods.minBuyQty) {
+                this.chooseItem.goods.minBuyQty = this.chooseItem.minPackQty
+              } else {
+                this.chooseItem.goods.minBuyQty = this.chooseItem.goods.minBuyQty - this.chooseItem.goods.minBuyQty % this.chooseItem.minPackQty
+              }
+            }
+          }
+          this.chooseItem.goods.prices[0].start = this.chooseItem.minBuyQty
+        },
+        changeautoPublish() {
+          this.chooseItem.goods.autoPublish = !this.chooseItem.goods.autoPublish
+        },
+        showdropmenu() {
+          this.showDrop = !this.showDrop
+        },
+        // 选择销售方式
+        chooseStore(item) {
+          this.chooseItem.storeInfoOms = item
+          this.showdropmenu()
+        },
+        minDeliveryBlur(str) {
+          if (Math.abs(this.chooseItem.goods.b2cMinDelivery) === 0) {
+            this.timeoutCount++
+            this.collectResult = `交期天数不能为0`
+            this.chooseItem.goods.b2cMinDelivery = ''
+            return false
+          } else if (Math.abs(this.chooseItem.goods.b2cMinDelivery) === 0) {
+            this.timeoutCount++
+            this.collectResult = `交期天数不能为0`
+            this.chooseItem.goods.b2cMinDelivery = ''
+            return false
+          }
+          if (Math.abs(this.chooseItem.goods.b2cMinDelivery) > Math.abs(this.chooseItem.goods.b2cMinDelivery)) {
+            this.timeoutCount++
+            this.collectResult = `最短交期应小于等于最长交期`
+            this.chooseItem.goods.b2cMinDelivery = ''
+          }
+        },
+        show() {
+          this.showUpoff = true
+        },
+        hide() {
+          this.showUpoff = false
+        },
+        // 开始价格阶段失去焦点
+        startpriceBlur(item, index) {
+          if (index > 0) {
+            if (item.start === '' || toString(item.start).trim() === '') {
+              return false
+            } else if (Math.abs(item.start) <= Math.abs(this.chooseItem.goods.prices[index - 1].start)) {
+              this.timeoutCount++
+              this.collectResult = '输入值会导致梯度重叠,请重新修改'
+              item.start = ''
+              return false
+            }
+            if (index === 2) {
+              this.chooseItem.goods.prices[index - 1].end = item.start - 1
+              return false
+            }
+            if (item.end && toString(item.end).trim() !== '' && Math.abs(item.start) > Math.abs(item.end)) {
+              this.timeoutCount++
+              this.collectResult = `输入值必须小于${item.end}`
+              item.start = ''
+              return false
+            }
+            this.chooseItem.goods.prices[index - 1].end = item.start - 1
+          }
+        },
+        // 单价失去焦点
+        rMBPriceBlur(item) {
+          if (item.rMBPrice === '' || !item.rMBPrice) { return false }
+          if (!/^[0-9]+([.]{1}[0-9]{1,6})?$/.test(item.rMBPrice)) {
+            this.timeoutCount++
+            this.collectResult = '单价只能输入数字带6位小数'
+          } else if (Math.abs(item.rMBPrice) === 0) {
+            return false
+          } else if (Math.abs(item.rMBPrice) >= 10000) {
+            this.timeoutCount++
+            item.rMBPrice = 9999
+            this.collectResult = '单价不能高于10000'
+            return false
+          }
+          item.rMBPrice = item.rMBPrice.toString()
+          let splits = item.rMBPrice.split('.')
+          if (splits[0].length >= 4) {
+            splits[0] = splits[0].substr(0, 4)
+            item.rMBPrice = splits[0]
+          }
+          if (splits[1]) {
+            item.rMBPrice = splits[0] + '.' + splits[1]
+          }
+          if (splits[1] && splits[1].length > 6) {
+            splits[1] = splits[1].substr(0, 7)
+            let str = splits[1].substr(0, 6)
+            if (splits[1][splits[1].length - 1] >= 5) {
+              str = splits[1].substr(0, 6)
+              str = Math.abs(str) + 1
+            }
+            item.rMBPrice = splits[0] + '.' + Math.ceil(str)
+          }
+        },
+        addPrice() {
+          if (this.chooseItem.goods.prices.length === 3) {
+            this.timeoutCount++
+            this.collectResult = '价格梯度最多只能有三个分段'
+            return false
+          }
+          let copy = Object.assign({}, this.chooseItem.goods.prices[this.chooseItem.goods.prices.length - 1], {
+            end: ''
+          })
+          this.chooseItem.goods.prices[this.chooseItem.goods.prices.length - 1] = copy
+          this.chooseItem.goods.prices.push({
+            end: '',
+            rMBNTPrice: '',
+            rMBPrice: '',
+            start: ''
+          })
+        },
+        miuPrice(index) {
+          if (index === 0) {
+            if (this.chooseItem.goods.prices.length === 3) {
+              this.chooseItem.goods.prices[0].rMBPrice = this.chooseItem.goods.prices[1].rMBPrice
+              this.chooseItem.goods.prices[0].end = this.chooseItem.goods.prices[1].end
+              this.chooseItem.goods.prices[1].start = this.chooseItem.goods.prices[2].start
+              this.chooseItem.goods.prices[1].rMBPrice = this.chooseItem.goods.prices[2].rMBPrice
+              this.chooseItem.goods.prices[1].end = '9999999999'
+              this.chooseItem.goods.prices.splice(2, 1)
+            } else {
+              index++
+              if (this.chooseItem.prices.length === 1) return
+              this.chooseItem.goods.prices[0].rMBPrice = this.chooseItem.goods.prices[1].rMBPrice
+              this.chooseItem.goods.prices[0].end = '9999999999'
+              this.chooseItem.goods.prices.splice(index, 1)
+            }
+          } else if (index === 1) {
+            if (this.chooseItem.prices.length === 3) {
+              this.chooseItem.goods.prices[1].rMBPrice = this.chooseItem.goods.prices[2].rMBPrice
+              this.chooseItem.goods.prices[1].end = '9999999999'
+              this.chooseItem.goods.prices.splice(2, 1)
+            } else {
+              this.chooseItem.goods.prices[0].end = '9999999999'
+              this.chooseItem.goods.prices.splice(index, 1)
+            }
+          } else {
+            this.chooseItem.goods.prices[1].end = '9999999999'
+            this.chooseItem.goods.prices.splice(index, 1)
+          }
+          console.log(this.chooseItem.goods.prices)
+        },
+        // 结束价格阶段失去焦点
+        endpriceBlur(item, index) {
+          if (item.end === '') {
+            return false
+          } else if (Math.abs(item.end) + 1 <= Math.abs(item.start)) {
+            this.timeoutCount++
+            this.collectResult = `输入值不能小于${item.start}`
+            item.end = ''
+            return false
+          } else if (this.chooseItem.goods.prices[index + 1].start !== '' && toString(this.chooseItem.goods.prices[index + 1].start).trim() !== '' && Math.abs(item.end) + 1 > Math.abs(this.chooseItem.goods.prices[index + 1].start)) {
+            this.timeoutCount++
+            this.collectResult = `输入值不能大于${this.chooseItem.goods.prices[index + 1].start - 1}`
+            item.end = ''
+            return false
+          } else if (this.chooseItem.goods.prices[index + 1].end !== '' && toString(this.chooseItem.goods.prices[index + 1].end).trim() !== '' && Math.abs(item.end) + 1 > Math.abs(this.chooseItem.goods.prices[index + 1].end)) {
+            this.timeoutCount++
+            this.collectResult = `输入值不能大于${this.chooseItem.goods.prices[index + 1].end}`
+            item.end = ''
+            return false
+          }
+          this.chooseItem.goods.prices[index + 1].start = Math.abs(item.end) + 1
+          console.log(this.chooseItem.goods.prices)
+        }
+      },
+      components: {
+        RemindBox
+      }
+    }
+</script>
+<style scoped lang='scss'>
+  @mixin overFlowHidden {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  @mixin lineHeight($value) {
+    height: $value;
+    line-height: $value;
+  }
+  .upoff-material-wrapper {
+    position: fixed;
+    z-index: 1000;
+    background: #f1f3f6;
+    /*background: red;*/
+    top: 0;
+    left: 0;
+    bottom: 0;
+    right: 0;
+    .mobile-header{
+      position: fixed;
+      top: 0;
+      z-index: 100;
+      width:100%;
+      height: 1.26rem;
+      line-height: 1.26rem;
+      /*border-bottom:.01rem solid #ccc;*/
+      background: #3e82f5;
+      padding:0 .2rem 0 .1rem;
+      color:#fff;
+    }
+    .mobile-header p{
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+      font-size:.36rem;
+      text-align: center;
+      width: 6rem;
+      padding-left: 1rem;
+    }
+    .mobile-center-header p.en-name {
+      font-size: .3rem;
+    }
+    .mobile-header a{
+      font-size:.28rem;
+      color:#fff;
+      position: absolute;
+    }
+    .mobile-header a i{
+      font-size: .48rem;
+      margin-right: -.1rem;
+    }
+    .upoff-materiel-wrapper {
+      border-radius: 0.07rem;
+      position: fixed;
+      overflow: hidden;
+      bottom: 0;
+      top: 1.46rem;
+      left: 0.2rem;
+      right: 0.2rem;
+      padding: 0 0.25rem;
+      background: #fff;
+      .opoff-title {
+        border-bottom: 1px solid #dcdcdc;
+        padding: 0.25rem 0;
+        .opoff-title-text {
+          font-size: 0.28rem;
+          color: #3f84f6;
+          @include overFlowHidden();
+          width: 5.81rem;
+        }
+        .icon {
+          width: 0.6rem;
+          height: 0.36rem;
+          line-height: 0.36rem;
+          float: left;
+          background-size: 100%;
+          background-repeat: no-repeat;
+          margin-right: 0.12rem;
+          text-align: center;
+          &.istanded {
+            background-image: url('/images/mobile/@2x/istanded.png')
+          }
+          &.standed {
+            background-image: url('/images/mobile/@2x/standed.png')
+          }
+        }
+      }
+      .off-content {
+        padding: 0.42rem 0;
+        border-bottom: 1px solid #dcdcdc;
+        .clearfix {
+          margin-bottom: 0.25rem;
+          &:nth-last-of-type(1) {
+            margin-bottom: 0;
+          }
+          @include overFlowHidden();
+        }
+        .name {
+          color: #666;
+          font-size:0.28rem;
+        }
+        .con{
+          color: #333;
+          font-size:0.28rem;
+        }
+      }
+      .off-info {
+        margin-top: 0.3rem;
+        @include lineHeight(0.5rem);
+        span {
+          color: #666;
+          font-size: 0.28rem;
+        }
+        .minBuyqty {
+          input {
+            border: 1px solid #d2d2d2;
+            border-radius: 2px;
+            text-indent: .12rem;
+            width: 1.5rem;
+            font-size: 0.24rem;
+            color: #333;
+          }
+        }
+        .progress-wrapper {
+          width: .68rem;
+          height: .32rem;
+          border-radius: 0.32rem;
+          position: relative;
+          display: inline-block;
+          vertical-align: top;
+          margin-left: 0.15rem;
+          margin-top: 0.12rem;
+          background: #c4c5c6;
+          .progress-btn {
+            position: absolute;
+            height: 0.28rem;
+            width: 0.28rem;
+            border-radius: 50%;
+            left: 0.01rem;
+            top: 0.01rem;
+            background: #fff;
+            box-shadow: 0 0 5px #000;
+          }
+          &.active {
+            background: #22ac38;
+            .progress-btn {
+              left: 0.37rem;
+            }
+          }
+        }
+        .selectInput {
+          display: inline-block;
+          position: relative;
+          vertical-align: top;
+          height: 0.5rem;
+          line-height: 0.5rem;
+          border: 1px solid #d2d2d2;
+          border-radius: 2px;
+          width: 1.78rem;
+          text-indent: 0.12rem;
+          img {
+            position: absolute;
+            width: 0.17rem;
+            height: 0.11rem;
+            right:0.1rem;
+            top: 0.17rem;
+          }
+          &.selectInput2 {
+            width: 1.56rem;
+          }
+          span {
+            height: 0.5rem;
+            line-height: 0.5rem;
+            display: block;
+          }
+          ul {
+            position: absolute;
+            left: 0;
+            top: .5rem;
+            z-index: 12;
+            width: 100%;
+            max-height: 3rem;
+            overflow-y: auto;
+            display: none;
+            li {
+              text-indent: 0px;
+              width: 100%;
+              background: #666;
+              color: rgba(255, 255, 255, 0.89);
+              text-align: center;
+              font-size: .3rem;
+            }
+            &.active {
+              display: block;
+            }
+          }
+        }
+        .startInput, .endInput {
+          text-indent: 0;
+          text-align: center;
+          width: 1rem;
+          height: 0.5rem;
+          line-height: 0.5rem;
+          border: 1px solid #d2d2d2;
+          border-radius: 2px;
+        }
+        .pscList-top {
+          height: 0.5rem;
+          line-height: 0.5rem;
+          background: #e5e5e5;
+          font-size: 0.28rem;
+          color: #666;
+          border-radius: 3px;
+          .pull-left {
+            margin-left: 0.2rem
+          }
+          .pull-right {
+            margin-right: 0.2rem
+          }
+        }
+        ul.prices{
+          margin: 0.2rem 0 0;
+          padding-bottom: 0.2rem;
+          .clearfix {
+            margin-bottom: 0.14rem;
+            font-size: 0.24rem;
+            color: #666;
+            .priceM {
+              width: 1.6rem;
+              height: 0.5rem;
+              border: 1px solid #d2d2d2;
+              text-align: center;
+              line-height: 0.5rem;
+              border-radius: 3px;
+            }
+            span {
+              width: 0.34rem;
+              height: 0.34rem;
+              margin-top: 0.08rem;
+              display: inline-block;
+              vertical-align: top;
+              &:nth-of-type(1){
+                margin: 0.08rem 0.2rem 0;
+              }
+              img {
+                width: 100%;
+              }
+            }
+            .firstNumber {
+              width: 0.4rem;
+              background: #eeeeee !important;
+              height: 0.5rem;
+              border:1px solid #d2d2d2;
+              border-radius: 3px;
+              line-height: 0.5rem;
+              text-align: center;
+              font-size: 0.24rem;
+            }
+            .otherNumber {
+              width: 1.6rem;
+              background: #fff;
+              height: 0.5rem;
+              border:1px solid #d2d2d2;
+              border-radius: 3px;
+              line-height: 0.5rem;
+              text-align: center;
+              font-size: 0.24rem;
+            }
+          }
+        }
+      }
+    }
+    .update-materiel-wrapper-controll {
+      margin: 0.4rem 0.2rem 0;
+      div {
+        width: 48%;
+        background: #b5b5b5;
+        font-size: 0.3rem;
+        color: #fafbfc;
+        text-align: center;
+        @include lineHeight(0.62rem);
+        border-radius: 0.07rem;
+        &:first-child {
+          background: #3f84f6;
+        }
+      }
+    }
+  }
+</style>

+ 29 - 15
pages/mobile/center/vendor/material.vue

@@ -20,7 +20,7 @@
               {{item.pcmpcode}}
               {{item.pcmpcode}}
             </div>
             </div>
             <div class="text" style="width: 1rem;color: #666;font-size: 0.28rem">
             <div class="text" style="width: 1rem;color: #666;font-size: 0.28rem">
-              {{item.goods && item.goods.selfSale ? '寄售' : '自营' || '-'}}
+              {{item.goods && item.goods.selfSale === 1 ? '自营' : '寄售' || '-'}}
             </div>
             </div>
             <div class="text" style="width: 1rem;color: #666;font-size: 0.28rem">
             <div class="text" style="width: 1rem;color: #666;font-size: 0.28rem">
               {{item.goods && item.goods.autoPublish ? '已上架' : '已下架' }}
               {{item.goods && item.goods.autoPublish ? '已上架' : '已下架' }}
@@ -262,12 +262,20 @@
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>
+
+    <!-- 物料上下架 -->
+    <div>
+      <upoff-material ref="upoffMaterial" :chooseItem="MaterielItem">
+
+      </upoff-material>
+    </div>
+    <!-- /end 物料上下架 -->
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
   import { RemindBox, PullUp } from '~components/mobile/common'
   import { RemindBox, PullUp } from '~components/mobile/common'
-  import BScroll from 'better-scroll'
+  import { upoffMaterial } from '~components/mobile/center'
   export default {
   export default {
     layout: 'mobile',
     layout: 'mobile',
     middleware: 'authenticated',
     middleware: 'authenticated',
@@ -383,7 +391,12 @@
             this.timeoutCount++
             this.timeoutCount++
           })
           })
       },
       },
-      toAddpro(list) {},
+      toAddpro(item) {
+        this.MaterielItem = item
+        this.$item = this.baseUtils.deepCopy(item)
+        console.log(this.MaterielItem)
+        this.$refs.upoffMaterial.show()
+      },
       update2 (e) {
       update2 (e) {
         // 上传图片
         // 上传图片
         let file = e.target.files[0]
         let file = e.target.files[0]
@@ -593,21 +606,22 @@
           this.MaterielItem.spec = this.baseUtils.cutOutString(this.MaterielItem.spec, 100)
           this.MaterielItem.spec = this.baseUtils.cutOutString(this.MaterielItem.spec, 100)
         }
         }
       },
       },
-      _initScroll() {
-        this.$nextTick(() => {
-          if (!this.scroll) {
-            this.scroll = new BScroll(this.$refs.scroll, {
-              click: true
-            })
-          } else {
-            this.scroll.refresh()
-          }
-        })
-      }
+      // _initScroll() {
+      //   this.$nextTick(() => {
+      //     if (!this.scroll) {
+      //       this.scroll = new BScroll(this.$refs.scroll, {
+      //         click: true
+      //       })
+      //     } else {
+      //       this.scroll.refresh()
+      //     }
+      //   })
+      // }
     },
     },
     components: {
     components: {
       RemindBox,
       RemindBox,
-      PullUp
+      PullUp,
+      upoffMaterial
     }
     }
   }
   }
 </script>
 </script>

+ 3 - 1
pages/mobile/center/vendor/productdetails.vue

@@ -117,7 +117,9 @@
               />
               />
               <label v-if="index !== chooseItem.prices.length - 1">-</label>
               <label v-if="index !== chooseItem.prices.length - 1">-</label>
               <label v-if="index === chooseItem.prices.length - 1">以上</label>
               <label v-if="index === chooseItem.prices.length - 1">以上</label>
-              <input oninput="if(value.length>5)value=value.slice(0,9)" type="tel" placeholder="数量" class="otherNumber" v-model.lazy.trim="item.end" v-if="index !== chooseItem.prices.length - 1" @blur="endpriceBlur(item, index)" maxlength="9"/>
+              <input oninput="if(value.length>5)value=value.slice(0,9)"
+                     type="tel" placeholder="数量"
+                     class="otherNumber" v-model.lazy.trim="item.end" v-if="index !== chooseItem.prices.length - 1" @blur="endpriceBlur(item, index)" maxlength="9"/>
             </div>
             </div>
             <div class="pull-right">
             <div class="pull-right">
               <input v-show="chooseItem.currencyName === 'RMB'" class="priceM" type="text" placeholder="单价(¥)" v-model.lazy="item.rMBPrice" @blur="rMBPriceBlur(item)"/>
               <input v-show="chooseItem.currencyName === 'RMB'" class="priceM" type="text" placeholder="单价(¥)" v-model.lazy="item.rMBPrice" @blur="rMBPriceBlur(item)"/>