Bladeren bron

超级会员

huangzhiguo 2 jaren geleden
bovenliggende
commit
79c1a31587

+ 10 - 0
src/api/member/manage/manage.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+export function fetchMemberList(params) {
+  return request({
+    url: '/svip/member/memberList',
+    method: 'get',
+    params
+  })
+}
+

+ 16 - 0
src/api/member/meal/meal.js

@@ -0,0 +1,16 @@
+import request from '@/utils/request'
+
+export function fetchFindPackage() {
+  return request({
+    url: '/svip/member/findPackage',
+    method: 'get'
+  })
+}
+
+export function updatePrice(params) {
+  return request({
+    url: '/svip/member/updatePrice',
+    method: 'post',
+    params
+  })
+}

+ 9 - 0
src/api/member/product/product.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function fetchFindProductList(params) {
+  return request({
+    url: '/svip/member/findProductList',
+    method: 'get',
+    params
+  })
+}

+ 57 - 20
src/views/member/meal/index.vue

@@ -3,53 +3,90 @@
     <div class="filter-container">
       <el-form :model="form" label-width="200px">
         <div class="filter-control">
-          <label>套餐1:</label>
-          <el-form-item label="12个月超级会员,售价">
-            <el-input v-model="form.setMealOne" type="text" size="mini" />
-          </el-form-item>
+          <div>
+            <label class="label_width">套餐1:</label>
+            <span>12个月超级会员,售价: </span>
+            <el-input v-model="form.price1" type="text" size="mini" style="width:150px">
+              <template slot="append">元</template>
+            </el-input>
+          </div>
         </div><br>
         <div class="filter-control">
-          <label>套餐2:</label>
-          <el-form-item label="3个月超级会员,售价">
-            <el-input v-model="form.setMealOne" type="text" size="mini" />
-          </el-form-item>
+          <div>
+            <label class="label_width">套餐2:</label>
+            <span>3个月超级会员,售价</span>
+            <el-input v-model="form.price2" type="text" size="mini" style="width:150px">
+              <template slot="append">元</template>
+            </el-input>
+          </div>
         </div><br>
         <div class="filter-control">
-          <label>采美豆兑换套餐:</label>
-          <el-form-item label="采美豆兑换超会员套餐比例为">
-            <el-input v-model="form.scale" size="mini" style="width:150px">
+          <div>
+            <label class="label_width">采美豆兑换套餐:</label>
+            <span>采美豆兑换超会员套餐比例为</span>
+            <el-input v-model="form.proportion" size="mini" style="width:150px">
               <template slot="append">:1</template>
             </el-input>
-          </el-form-item>
+          </div>
         </div>
       </el-form>
       <div>
-        <el-button type="primary" size="mini">保存</el-button>
+        <el-button type="primary" size="mini" @click="updateMeal()">保存</el-button>
       </div>
     </div>
+    <el-dialog title="提示" :visible.sync="dialogTableVisible" width="50%">
+      <span>超级会员套餐以修改完成</span>
+      <div slot="footer">
+        <el-button type="primary" @click="renovate()">确定</el-button>
+        <el-button type="primary" @click="dialogTableVisible = false">取消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import { fetchFindPackage, updatePrice } from '@/api/member/meal/meal'
 
 export default {
   name: 'MemberMeal',
   data() {
     return {
       form: {
-        setMealOne: null,
-        setMealTwo: null,
-        scale: null
-      }
+        price1: '',
+        price2: '',
+        proportion: ''
+      },
+      dialogTableVisible: false
     }
   },
   created() {
-
+    this.getData()
   },
   methods: {
-
+    async getData() {
+      const res = await fetchFindPackage()
+      this.form.price1 = res.data.price1
+      this.form.price2 = res.data.price2
+      this.form.proportion = res.data.proportion
+    },
+    async updateMeal() {
+      const res = await updatePrice(this.form)
+      if (res.code === 1) {
+        this.dialogTableVisible = true
+      }
+    },
+    // 提示信息确认刷新数据
+    renovate() {
+      this.dialogTableVisible = false
+      this.getData()
+    }
   }
 }
 </script>
 
-<style></style>
+<style>
+.label_width{
+  width: 150px;
+  text-align: right;
+}
+</style>

+ 20 - 39
src/views/member/member/list.vue

@@ -50,9 +50,9 @@
             <span>会员状态:</span>
             <el-select v-model="listQuery.status" style="width:120px;" clearable @change="getList">
               <el-option value="" label="请选择" />
-              <el-option :value="1" label="全部" />
-              <el-option :value="2" label="已生效" />
-              <el-option :value="3" label="已过期" />
+              <el-option value="" label="全部" />
+              <el-option :value="1" label="已生效" />
+              <el-option :value="2" label="已过期" />
             </el-select>
           </div><br>
           <div class="filter-control">
@@ -85,16 +85,16 @@
             <el-button type="primary" @click="getList">查询</el-button>
           </div>
         </div>
-        <el-table :data="tableData" height="550" border style="width: 100%">
+        <el-table v-loading="isLoading" :data="tableData" height="550" border style="width: 100%">
           <el-table-column prop="clubName" label="机构名称" width="180" />
           <el-table-column prop="linkMan" label="联系人" width="180" />
           <el-table-column prop="mobile" label="手机号" />
           <el-table-column prop="status" label="会员状态">
             <template slot-scope="{ row }">
-              <span v-if="row.status === 1" class="el-span-status">
+              <span v-if="row.status === '1'" class="el-span-status">
                 已生效
               </span>
-              <span v-else-if="row.status === 2" class="el-span-notStatus">
+              <span v-else-if="row.status === '2'" class="el-span-notStatus">
                 已过期
               </span>
               <span v-else class="el-span-notEffective">
@@ -112,8 +112,8 @@
         <!-- 页码 -->
         <pagination
           :total="total"
-          :page-sizes="[100]"
-          :page-size="100"
+          :page-sizes="[20, 30, 50, 100]"
+          :page-size="20"
           :page.sync="listQuery.pageNum"
           :limit.sync="listQuery.pageSize"
         />
@@ -194,6 +194,9 @@
 </template>
 
 <script>
+
+import { fetchMemberList } from '@/api/member/manage/manage'
+
 const defaultListQuery = {
   clubName: '', // 机构名称
   linkMan: '', // 联系人
@@ -205,7 +208,7 @@ const defaultListQuery = {
   startEndTime: '', //  到期开始时间
   endEndTime: '', // 到期结束时间
   pageNum: 1,
-  pageSize: 100
+  pageSize: 20
 }
 export default {
   name: 'MemberList',
@@ -309,6 +312,7 @@ export default {
       ]
     }
     return {
+      isLoading: true,
       activeName: 'first',
       pickerOptions,
       pickerEndOptions,
@@ -316,34 +320,7 @@ export default {
       listQuery: Object.assign({}, defaultListQuery),
       // 会员列表总数
       total: 0,
-      tableData: [
-        {
-          clubName: '2016-05-03',
-          linkMan: '王小虎',
-          mobile: '15874692135',
-          status: 1
-        }, {
-          clubName: '2016-05-03',
-          linkMan: '王小虎',
-          mobile: '15874692135',
-          status: 2
-        }, {
-          clubName: '2016-05-03',
-          linkMan: '王小虎',
-          mobile: '15874692135',
-          status: 1
-        }, {
-          clubName: '2016-05-03',
-          linkMan: '王小虎',
-          mobile: '15874692135',
-          status: 2
-        }, {
-          clubName: '2016-05-03',
-          linkMan: '王小虎',
-          mobile: '15874692135',
-          status: 3
-        }
-      ],
+      tableData: [],
       form: {
         month: 0
       },
@@ -397,8 +374,12 @@ export default {
       console.log('row', row)
     },
     // 会员列表数据
-    getList() {
-
+    async getList() {
+      this.isLoading = true
+      const res = await fetchMemberList(this.listQuery)
+      this.tableData = res.data.results
+      this.total = res.data.totalRecord
+      this.isLoading = false
     }
   }
 }

+ 21 - 44
src/views/member/product/list.vue

@@ -48,13 +48,19 @@
             <el-button type="primary" @click="getList">添加</el-button>
           </div>
         </div>
-        <el-table :data="tableData" height="550" border style="width: 100%">
+        <el-table v-loading="isLoading" :data="tableData" height="550" border style="width: 100%">
           <el-table-column prop="productId" label="商品id" />
           <el-table-column prop="coupon" label="商品图片">
-            <template slot-scope="{ row }">
-              <span v-if="row">
-                {{ row.productImage }}
-              </span>
+            <template v-if="row.productId" slot-scope="{ row }">
+              <el-popover
+                placement="top-start"
+                title=""
+                width="180"
+                trigger="hover"
+              >
+                <img :src="row.productImage" alt="" style="width:150px;height:150px;">
+                <img slot="reference" :src="row.productImage" alt="" style="width:30px;height:30px;">
+              </el-popover>
             </template>
           </el-table-column>
           <el-table-column prop="productName" label="商品名称" />
@@ -105,7 +111,7 @@
   </div>
 </template>
 <script>
-
+import { fetchFindProductList } from '@/api/member/product/product'
 export default {
   name: 'MemberProduct',
   data() {
@@ -121,50 +127,21 @@ export default {
       },
       // 超级会员商品列表
       total: 0,
-      tableData: [
-        {
-          productId: 7523,
-          productImage: '',
-          productName: '测试AAAAA',
-          shopName: '深圳艾斯佰丽生物科技有限公司',
-          price: 200.0,
-          discount: '50.0%',
-          discountPrice: 100.0,
-          sort: 1,
-          status: 0,
-          addTime: '2023-02-28 14:18:17'
-        }, {
-          productId: 7523,
-          productImage: '',
-          productName: '测试AAAAA',
-          shopName: '深圳艾斯佰丽生物科技有限公司',
-          price: 200.0,
-          discount: '50.0%',
-          discountPrice: 100.0,
-          sort: 1,
-          status: 1,
-          addTime: '2023-02-28 14:18:17'
-        }, {
-          productId: 7523,
-          productImage: '',
-          productName: '测试AAAAA',
-          shopName: '深圳艾斯佰丽生物科技有限公司',
-          price: 200.0,
-          discount: '50.0%',
-          discountPrice: 100.0,
-          sort: 1,
-          status: 1,
-          addTime: '2023-02-28 14:18:17'
-        }
-      ]
+      isLoading: true,
+      tableData: []
     }
   },
   created() {
     this.getList()
   },
   methods: {
-    getList() {
-      console.log('2222')
+    async getList() {
+      this.isLoading = true
+      const res = await fetchFindProductList(this.listQuery)
+      this.tableData = res.data.results
+      this.total = res.data.totalRecord
+      this.isLoading = false
+      console.log(this.tableData)
     }
   }
 }

+ 5 - 5
src/views/user/record/list.vue

@@ -87,7 +87,7 @@
           </el-select>
         </div>
         <div class="filter-control">
-          <span>标签:</span>
+          <span>供应商标签:</span>
           <el-select v-model="tagsList" multiple filterable placeholder="请选择" @change="handleTagsOptions">
             <el-option
               v-for="item in tagsOptions"
@@ -175,7 +175,7 @@
             <p v-else>---</p>
           </template>
         </el-table-column>
-        <el-table-column prop="spName" label="标签" align="center" width="120">
+        <el-table-column prop="spName" label="供应商标签" align="center" width="120">
           <template slot-scope="{ row }">
             {{ row.label ? row.label : '---' }}
           </template>
@@ -225,7 +225,7 @@ const defaultListQuery = {
   companyType: '', // 公司类型
   accessClient: '', // 访问客户端
   relevanceShop: '', // 供应商名称
-  label: '', // 标签
+  label: '', // 供应商标签
   contacts: '', //  联系人
   phoneNumber: '', // 手机号
   spName: '', // 协销
@@ -419,7 +419,7 @@ export default {
       }
     },
 
-    // 获取标签库列表选项
+    // 获取供应商标签库列表选项
     async searchBehaviorList() {
       try {
         const res = await searchBehaviorList()
@@ -456,7 +456,7 @@ export default {
           const filterVal = ['ip', 'region', 'accessClient', 'companyType', 'corporateName', 'contacts', 'phoneNumber', 'spName', 'relevanceShop', 'label', 'addTime', 'numbers', 'accessDuration', 'accessDate']
           const data = this.formatJson(filterVal, this.list.slice(0))
           export_json_to_excel({
-            header: ['IP', '地区', '访问客户端', '公司类型', '公司名称', '联系人', '手机号', '所属协销', '关联供应商', '标签', '注册时间', '访问页面数量', '总时长', '访问日期'],
+            header: ['IP', '地区', '访问客户端', '公司类型', '公司名称', '联系人', '手机号', '所属协销', '关联供应商', '供应商标签', '注册时间', '访问页面数量', '总时长', '访问日期'],
             data,
             filename: '用户行为记录'
           })