Selaa lähdekoodia

产品报单,复消等类型筛选相关

theojeng 3 vuotta sitten
vanhempi
commit
37f1dfff1f

+ 250 - 232
backendEle/src/views/shop/goods-add.vue

@@ -1,245 +1,263 @@
 <template>
-    <div v-loading="loading">
-        <div class="white-box">
-            <el-form ref="form"  label-width="250px" class="form-page">
+  <div v-loading="loading">
+    <div class="white-box">
+      <el-form ref="form"  label-width="250px" class="form-page">
+        <el-form-item label="商品名称">
+          <el-input v-model="form.goodsName"></el-input>
+        </el-form-item>
+        <!-- <el-form-item label="商品来源">
+            <el-select v-model="form.type" placeholder="请选择商品来源">
+                <el-option v-for="(item,index) in goodsType" :key="index" :label="item.name"
+                           :value="index"></el-option>
+            </el-select>
+        </el-form-item> -->
+        <el-form-item label="会员折扣">
+            <el-input v-model="form.sellDiscount"></el-input>
+        </el-form-item>
+<!--                <el-form-item label="商品类型">-->
+<!--                    <el-checkbox  v-for="(value,key) in GiftTypeArr" v-model="form.giftType[key-1]" :key="key" >{{value.name}}</el-checkbox>-->
+<!--                </el-form-item>-->
+        <el-form-item label="商品类型">
+          <el-checkbox  v-for="(value,index) in GiftTypeArr" v-model="form.giftType[index-1]" :key="index" v-show="(index-1)%2!=0">{{value.name}}</el-checkbox>
+        </el-form-item>
+        <el-form-item label="报单类型">
+          <el-radio-group v-model="form.reconsumeType">
+              <el-radio v-for="(value,index) in GiftTypeArr" :label="index" :key="index" v-show="(index-1)%2==0" @click.native.prevent="reconsumeChange(index)">{{value.name}}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <!-- <el-form-item label="复消购买方式">
+              <el-checkbox  v-for="(value,key) in sellType" v-model="form.sellType[key-1]" :key="key" >{{value.name}}</el-checkbox>
+          </el-form-item> -->
 
-                <el-form-item label="商品名称">
-                    <el-input v-model="form.goodsName"></el-input>
-                </el-form-item>
-                <!-- <el-form-item label="商品来源">
-                    <el-select v-model="form.type" placeholder="请选择商品来源">
-                        <el-option v-for="(item,index) in goodsType" :key="index" :label="item.name"
-                                   :value="index"></el-option>
-                    </el-select>
-                </el-form-item> -->
-                <el-form-item label="会员折扣">
-                    <el-input v-model="form.sellDiscount"></el-input>
-                </el-form-item>
-                <el-form-item label="商品类型">
-                    <el-checkbox  v-for="(value,key) in GiftTypeArr" v-model="form.giftType[key-1]" :key="key" >{{value.name}}</el-checkbox>
-                </el-form-item>
-                <!-- <el-form-item label="复消购买方式">
-                    <el-checkbox  v-for="(value,key) in sellType" v-model="form.sellType[key-1]" :key="key" >{{value.name}}</el-checkbox>
-                </el-form-item> -->
-
-                <el-form-item label="商品编号">
-                    <el-input v-model="form.goodsNo"></el-input>
-                </el-form-item>
-                <el-form-item label="单位">
-                    <el-input v-model="form.unit"></el-input>
-                </el-form-item>
-                <el-form-item label="市场价格">
-                    <el-input v-model="form.marketPrice"></el-input>
-                </el-form-item>
-                <el-form-item label="销售价格">
-                    <el-input v-model="form.sellPrice"></el-input>
-                </el-form-item>
-                <el-form-item label="价格PV	">
-                    <el-input v-model="form.pricePv"></el-input>
-                </el-form-item>
-                <!-- <el-form-item label="兑换积分">
-                    <el-input v-model="form.point"></el-input>
-                </el-form-item> -->
-                <el-form-item label="库存">
-                    <el-input v-model="form.storeNums"></el-input>
-                </el-form-item>
-                <el-form-item label="商品详情">
-                    <el-input
-                            type="textarea"
-                            :rows="2"
-                            placeholder="请输入内容"
-                            v-model="form.content">
-                    </el-input>
-                </el-form-item>
-                <el-form-item label="排序">
-                    <el-input v-model="form.sort"></el-input>
-                </el-form-item>
-                <el-form-item label="上传图片">
-                    <div class='up_load'>
-                        <leo-uploader
-                            @on-success='upLoadSuccess'
-                            :request-route="'shop/upload'"
-                        ></leo-uploader>
-                    </div>
-                </el-form-item>
-                <el-form-item>
-                    <el-button type="primary" @click="addSubmit" :loading="submitButtonStat">添加</el-button>
-                </el-form-item>
-            </el-form>
-        </div>
-    </div>
+          <el-form-item label="商品编号">
+              <el-input v-model="form.goodsNo"></el-input>
+          </el-form-item>
+          <el-form-item label="单位">
+              <el-input v-model="form.unit"></el-input>
+          </el-form-item>
+          <el-form-item label="市场价格">
+              <el-input v-model="form.marketPrice"></el-input>
+          </el-form-item>
+          <el-form-item label="销售价格">
+              <el-input v-model="form.sellPrice"></el-input>
+          </el-form-item>
+          <el-form-item label="价格PV	">
+              <el-input v-model="form.pricePv"></el-input>
+          </el-form-item>
+          <!-- <el-form-item label="兑换积分">
+              <el-input v-model="form.point"></el-input>
+          </el-form-item> -->
+          <el-form-item label="库存">
+              <el-input v-model="form.storeNums"></el-input>
+          </el-form-item>
+          <el-form-item label="商品详情">
+            <el-input
+                    type="textarea"
+                    :rows="2"
+                    placeholder="请输入内容"
+                    v-model="form.content">
+            </el-input>
+          </el-form-item>
+          <el-form-item label="排序">
+              <el-input v-model="form.sort"></el-input>
+          </el-form-item>
+          <el-form-item label="上传图片">
+              <div class='up_load'>
+                  <leo-uploader
+                      @on-success='upLoadSuccess'
+                      :request-route="'shop/upload'"
+                  ></leo-uploader>
+              </div>
+          </el-form-item>
+          <el-form-item>
+              <el-button type="primary" @click="addSubmit" :loading="submitButtonStat">添加</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+  </div>
 </template>
 
 <script>
-    import store from '@/utils/vuexStore'
-    import network from '@/utils/network'
-    import tool from '@/utils/tool'
-    import baseInfo from '../../utils/baseInfo'
-    import LeoUploader from '@/components/Uploader';
-    export default {
-        name: "goods-add",
-        components:{LeoUploader},
-        mounted () {
-            this.getData();
-            this.getFileToken();
-        },
-        data(){
-            return{
-                dialogImageUrl: '',
-                dialogVisible: false,
-                disabled: false,
-                loading: false,
-                file:null,
-                uploadToken:'',
-                form:{
-                    goodsName:'',
-                    type:'',
-                    giftType:[false,false,false,false],
-                    sellType:[false,false],
-                    goodsNo:'',
-                    unit:'',
-                    marketPrice:'',
-                    sellPrice:'',
-                    pricePv:'',
-                    point:'',
-                    storeNums:'',
-                    content:'',
-                    sort:'',
-                    discount:'',
-                    cover:'',
-                    textarea:'',
-                    sellDiscount:'',
-                },
-                submitButtonStat: false,
-                goodsType:[],
-                GiftTypeArr:[],
-                sellType:null,
-                width:'100px',
-                height:'100px',
-            }
-        },
-        watch:{
-            dialogVisible(newVal,oldVal){
-                console.log(newVal,oldVal)
-            }
-        },
-        methods: {
-            handleRemove(file) {
-                console.log(file);
-            },
-            upLoadSuccess(file){
-                this.form.cover=file;
-                this.form.cover = tool.getLocaleLink(file, '/files/');
-                this.form.coverOrigin = file
-                this.img_show=false;
-            },
-            handlePictureCardPreview(file) {
-                this.dialogImageUrl = file.url;
-                this.dialogVisible = true;
-                this.file=file;
-                // console.log(file);
-
-            },
-            handleDownload(file) {
-                console.log(file);
-            },
-            getFile(){
-                let data={
-                    uploadToken:this.uploadToken,
-                    file:this.file
-                }
-                if(this.uploadToken){
-                    network.postData('shop/upload',data)
-                    .then(response=>{
-                        console.log(response);
-                    })
-                }
-            },
-            getFileToken(){
-                network.getData('shop/upload').then(response=>{
-                   this.uploadToken=response;
-                })
-            },
-            getData (page, pageSize) {
-                let filterData = this.filterModel
-                let vueObj = this
-                network.getPageData(this, 'shop/goods-add', page, pageSize, this.filterModel, response=>{
-                    console.log(response)
-                    this.goodsType=response.goodsType
-                    this.GiftTypeArr=response.giftType
-                    this.sellType=response.sellType
-                    this.form.sellType=this.form.sellType.map((item,index)=>{
-                      return response.sellType.some(val=>(index+1).toString()==val)
-                    })
-                })
-            },addSubmit() {
-                this.submitButtonStat = true
-                let path = 'shop/goods-add';
+import store from '@/utils/vuexStore'
+import network from '@/utils/network'
+import tool from '@/utils/tool'
+import baseInfo from '../../utils/baseInfo'
+import LeoUploader from '@/components/Uploader';
+export default {
+  name: 'goods-add',
+  components: {LeoUploader},
+  mounted () {
+    this.getData()
+    this.getFileToken()
+  },
+  data: function () {
+    return {
+      dialogImageUrl: '',
+      dialogVisible: false,
+      disabled: false,
+      loading: false,
+      file: null,
+      uploadToken: '',
+      form: {
+        goodsName: '',
+        type: '',
+        giftType: [false, false, false, false],
+        sellType: [false, false],
+        goodsNo: '',
+        unit: '',
+        marketPrice: '',
+        sellPrice: '',
+        pricePv: '',
+        point: '',
+        storeNums: '',
+        content: '',
+        sort: '',
+        discount: '',
+        cover: '',
+        textarea: '',
+        sellDiscount: '',
+        reconsumeType: ''
+      },
+      submitButtonStat: false,
+      goodsType: [],
+      GiftTypeArr: [],
+      sellType: null,
+      width: '100px',
+      height: '100px'
+    }
+  },
+  watch: {
+    dialogVisible (newVal, oldVal) {
+      console.log(newVal, oldVal)
+    }
+  },
+  methods: {
+    reconsumeChange (key) {
+      if (this.form.reconsumeType !== key) {
+        this.form.reconsumeType = key
+      } else {
+        this.form.reconsumeType = null
+      }
+    },
+    handleRemove (file) {
+      console.log(file)
+    },
+    upLoadSuccess (file) {
+      this.form.cover = file
+      this.form.cover = tool.getLocaleLink(file, '/files/')
+      this.form.coverOrigin = file
+      this.img_show = false
+    },
+    handlePictureCardPreview (file) {
+      this.dialogImageUrl = file.url
+      this.dialogVisible = true
+      this.file = file
+      // console.log(file);
+    },
+    handleDownload (file) {
+      console.log(file)
+    },
+    getFile () {
+      let data = {
+        uploadToken: this.uploadToken,
+        file: this.file
+      }
+      if (this.uploadToken) {
+        network.postData('shop/upload', data)
+          .then(response => {
+            console.log(response)
+          })
+      }
+    },
+    getFileToken () {
+      network.getData('shop/upload').then(response => {
+        this.uploadToken = response
+      })
+    },
+    getData (page, pageSize) {
+      let filterData = this.filterModel
+      let vueObj = this
+      network.getPageData(this, 'shop/goods-add', page, pageSize, this.filterModel, response => {
+        console.log(response)
+        this.goodsType = response.goodsType
+        this.GiftTypeArr = response.giftType
+        this.sellType = response.sellType
+        this.form.sellType = this.form.sellType.map((item, index) => {
+          return response.sellType.some(val => (index + 1).toString() == val)
+        })
+      })
+    },
+    addSubmit () {
+      this.submitButtonStat = true
+      let path = 'shop/goods-add'
 
-                let sellType =[]
-                this.form.sellType.map((item,index)=>{
-                  if(item){
-                    sellType.push((index+1).toString())
-                  }
-                });
+      let sellType = []
+      this.form.sellType.map((item, index) => {
+        if (item) {
+          sellType.push((index + 1).toString())
+        }
+      })
 
-                let sen_gift=[];
-                this.form.giftType.map((item,index)=>{
-                    if(item){
-                        sen_gift.push((index+1).toString())
-                    }
-                })
+      let sen_gift = []
+      this.form.giftType.map((item, index) => {
+        if (item) {
+          sen_gift.push((index + 1).toString())
+        }
+      })
+      if (this.form.reconsumeType) { // 复消类型,单选
+        sen_gift.push((this.form.reconsumeType).toString())
+      }
 
-                let postData = {
-                    goodsName: this.form.goodsName,
-                    sellDiscount: this.form.sellDiscount,
-                    discount: this.form.type.discount,
-                    type: this.form.type,
-                    giftType: sen_gift,
-                    sellType: sellType,
-                    goodsNo: this.form.goodsNo,
-                    unit: this.form.unit,
-                    marketPrice: this.form.marketPrice,
-                    sellPrice: this.form.sellPrice,
-                    pricePv: this.form.pricePv,
-                    // point: this.form.point,
-                    storeNums: this.form.storeNums,
-                    content: this.form.content,
-                    sort: this.form.sort,
-                    cover: this.form.cover,
-                }
+      let postData = {
+        goodsName: this.form.goodsName,
+        sellDiscount: this.form.sellDiscount,
+        discount: this.form.type.discount,
+        type: this.form.type,
+        giftType: sen_gift,
+        sellType: sellType,
+        goodsNo: this.form.goodsNo,
+        unit: this.form.unit,
+        marketPrice: this.form.marketPrice,
+        sellPrice: this.form.sellPrice,
+        pricePv: this.form.pricePv,
+        // point: this.form.point,
+        storeNums: this.form.storeNums,
+        content: this.form.content,
+        sort: this.form.sort,
+        cover: this.form.cover
+      }
 
-                return network.postData(path, postData).then(response => {
-                    console.log(response);
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    this.submitButtonStat = false
-                    this.$router.go(-1)
-                }).catch(() => {
-                    this.submitButtonStat = false
-                })
-            },
-           /*
-            handleEdit() {
-                this.dialogEditFormVisible = false
-                this.$message({
-                    message: '正在修改数据',
-                    type: 'info'
-                })
-                let path = 'finance/deal-type-edit'
-                network.postData(path, this.form).then(response => {
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    this.getData(this.currentPage, this.pageSize)
-                }).catch(response => {
-                })
-            },*/
-        }
+      return network.postData(path, postData).then(response => {
+        console.log(response)
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+        this.submitButtonStat = false
+        this.$router.go(-1)
+      }).catch(() => {
+        this.submitButtonStat = false
+      })
     }
+    /*
+    handleEdit() {
+        this.dialogEditFormVisible = false
+        this.$message({
+            message: '正在修改数据',
+            type: 'info'
+        })
+        let path = 'finance/deal-type-edit'
+        network.postData(path, this.form).then(response => {
+            this.$message({
+                message: response,
+                type: 'success'
+            })
+            this.getData(this.currentPage, this.pageSize)
+        }).catch(response => {
+        })
+    }, */
+  }
+}
 </script>
 
 <style scoped>

+ 29 - 6
backendEle/src/views/shop/index.vue

@@ -80,7 +80,12 @@
                         <el-input v-model="form.sellDiscount"></el-input>
                     </el-form-item>
                     <el-form-item label="商品类型">
-                        <el-checkbox  v-for="(value,index) in GiftTypeArr" v-model="value.checked" :key="index" >{{value.name}}</el-checkbox>
+                      <el-checkbox  v-for="(value,index) in GiftTypeArr" v-model="value.checked" :key="index" v-show="(index%2)!=0">{{value.name}}</el-checkbox>
+                    </el-form-item>
+                    <el-form-item label="报单类型">
+                      <el-radio-group v-model="form.reconsumeType">
+                        <el-radio v-for="(value,index) in GiftTypeArr" :label="index" :key="index" v-show="(index%2)==0" @click.native.prevent="reconsumeChange(index)">{{value.name}}</el-radio>
+                      </el-radio-group>
                     </el-form-item>
                     <!-- <el-form-item label="复消购买方式">
                          <el-checkbox  v-for="(value,index) in sell_type" v-model="value.checked" :key="index" >{{value.name}}</el-checkbox>
@@ -240,7 +245,8 @@ export default {
         sellDiscount: '',
         statusdate: '',
         goodsstatusdate: '',
-        goodsdate: ''
+        goodsdate: '',
+        reconsumeType: ''
       },
       submitButtonStat: false,
       goodsType: [],
@@ -250,6 +256,13 @@ export default {
     }
   },
   methods: {
+    reconsumeChange (key) {
+      if(this.form.reconsumeType!=key){
+        this.form.reconsumeType = key
+      }else{
+        this.form.reconsumeType = null
+      }
+    },
     handleSelectionChange (val) {
       this.multipleSelection = val
     },
@@ -298,6 +311,11 @@ export default {
               }
             })
           }
+          for (let j in gift){
+            if(gift[j]%2!=0){
+              vueObj.form.reconsumeType = gift[j]-1
+            }
+          }
         }
         vueObj.GiftTypeArr = giftType
 
@@ -407,7 +425,6 @@ export default {
         vueObj.form.cover = tool.getLocaleLink(response.goodsInfo.COVER, '/files/')
 
         this.$forceUpdate()
-
       })
     },
 
@@ -430,12 +447,18 @@ export default {
 
       let sen_gift = []
       this.GiftTypeArr.map((item, index) => {
-        if (item.checked) {
+        if (item.checked && (index % 2!=0)) {
           sen_gift.push(item.key)
         }
       })
+      // console.log('frt', this.form.reconsumeType)
+      if (this.form.reconsumeType==0||this.form.reconsumeType==2){ // 复消类型,单选
+        // console.log(this.form.reconsumeType)
+        sen_gift.push((this.form.reconsumeType+1).toString())
+      }
       this.form.giftType = sen_gift
       this.form.cover = this.form.coverOrigin
+      // console.log(this.form.giftType);
       delete this.form.coverOrigin
       network.postData(path, {...this.form}).then(response => {
         this.$message({
@@ -479,12 +502,12 @@ export default {
       let filterData = this.filterModel
       /* this.allData = response */
       network.getPageData(this, 'shop/index', page, pageSize, this.filterModel, response => {
-        console.log(response)
+        // console.log(response)
         this.filterTypes = response.filterTypes
       })
     },
     handleGoodUp (id) {
-      console.log(id)
+      // console.log(id)
       network.postData('shop/goods-status', {selectedIds: id, status: 1})
         .then(response => {
           this.$message({

+ 1 - 1
common/models/forms/OrderForm.php

@@ -494,7 +494,7 @@ class OrderForm extends Model
             $isResaleUmbrella = Cache::getSystemConfig()['isResaleUmbrella']['VALUE'];
             if($isResaleUmbrella){
                 $userId = Info::getUserIdByUserName($this->userName);
-                $userNetwork = UserNetwork::find()->where("USER_ID=:USER_ID AND INSTR(PARENT_UIDS,'{$loginUserId}')>0", ['USER_ID'=>$userId])->count();
+                $userNetwork = UserNetwork::find()->where("USER_ID=:USER_ID AND (USER_ID='{$loginUserId}' OR INSTR(PARENT_UIDS,'{$loginUserId}')>0)", ['USER_ID'=>$userId])->count();
                 if(!$userNetwork){
                     throw new Exception($this->userName.'不是您的伞下会员,不能为其复消!');
                 }

+ 1 - 5
frontendApi/modules/v1/controllers/ShopController.php

@@ -183,16 +183,12 @@ class ShopController extends BaseController {
      */
     public function actionReconsume() {
         $isStudio = User::getEnCodeInfo(\Yii::$app->user->id)['IS_STUDIO'];
-
         $condition = " AND STATUS=1";
         if($isStudio==1){
-            $condition .= " AND (FIND_IN_SET(4,GIFT_TYPE)>0";
-        }else{
-            $condition .= " AND (FIND_IN_SET(2,GIFT_TYPE)>0";
+            $condition .= " AND (FIND_IN_SET(2,GIFT_TYPE)>0 OR (FIND_IN_SET(4,GIFT_TYPE)>0)";
         }
         $condition.= ")";
 
-//        $condition = ' AND STATUS=1 AND (FIND_IN_SET(2,GIFT_TYPE)>0 OR FIND_IN_SET(4,GIFT_TYPE)>0)';
         $data = ShopGoods::lists($condition, [], [
             'orderBy' => 'SORT ASC,CREATED_AT DESC',
             'from' => ShopGoods::tableName(),

+ 2 - 2
frontendApi/modules/v1/controllers/UserController.php

@@ -318,7 +318,7 @@ class UserController extends BaseController {
 //            $query_condition = " AND (FIND_IN_SET(1,GIFT_TYPE)>0";
 //        }
         if($isStudio==1){
-            $query_condition = " AND (FIND_IN_SET(3,GIFT_TYPE)>0";
+            $query_condition = " AND ((FIND_IN_SET(1,GIFT_TYPE)>0 OR (FIND_IN_SET(3,GIFT_TYPE)>0)";
         }else{
             $query_condition = " AND (FIND_IN_SET(1,GIFT_TYPE)>0";
         }
@@ -374,7 +374,7 @@ class UserController extends BaseController {
         $isStudio = User::getEnCodeInfo(\Yii::$app->user->id)['IS_STUDIO'];
 
         if($isStudio==1){
-            $query_condition = " AND (FIND_IN_SET(3,GIFT_TYPE)>0";
+            $query_condition = " AND ((FIND_IN_SET(1,GIFT_TYPE)>0 OR (FIND_IN_SET(3,GIFT_TYPE)>0)";
         }else{
             $query_condition = " AND (FIND_IN_SET(1,GIFT_TYPE)>0";
         }