yangfan 2 éve
szülő
commit
cdabb4bc04

+ 1 - 1
admin/src/views/channel/allSecondChannel.vue

@@ -36,7 +36,7 @@
         <el-table-column prop="onlineTime" label="生效时间"> </el-table-column>
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="{ row }">
-            <el-button @click="toEdit(row.id)" size="mini" type="text" icon="el-icon-edit">修改</el-button>
+            <el-button @click="toEdit(row.id)" size="mini" type="text" icon="el-icon-edit">編輯</el-button>
             <el-button size="mini" type="text" icon="el-icon-plus" @click="copy(row)">复制链接</el-button>
             <el-button @click="giveShort(row)" size="mini" type="text" icon="el-icon-delete">短链接</el-button>
             <el-button @click="ewm(row.id)" size="mini" type="text" icon="el-icon-delete">二维码</el-button>

+ 13 - 13
admin/src/views/channel/firstChannelList.vue

@@ -1,29 +1,29 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="add">新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="info" icon="el-icon-upload2" size="mini" @click="Refresh">刷新</el-button>
-      </el-col>
-    </el-row>
 
     <!--搜索-->
 
-    <el-form :inline="true" :model="searchForm" ref="searchForm" class="demo-form-inline">
+    <el-form :inline="true" :model="searchForm" ref="searchForm" size="small" class="demo-form-inline">
       <el-form-item label="渠道名称">
-        <el-input size="mini" v-model="searchForm.channelName" name="searchForm.channelName" placeholder="渠道名称" />
+        <el-input v-model="searchForm.channelName" name="searchForm.channelName" placeholder="渠道名称" />
       </el-form-item>
       <el-form-item label="合作方">
-        <el-input size="mini" v-model="searchForm.channelPartner" placeholder="合作方" />
+        <el-input v-model="searchForm.channelPartner" placeholder="合作方" />
       </el-form-item>
 
-      <el-form-item style="float: right">
+      <el-form-item>
         <el-button size="mini" type="primary" @click="init()">搜索</el-button>
         <el-button size="mini" @click="reset('searchForm')">重置</el-button>
       </el-form-item>
     </el-form>
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="add">新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="Refresh">刷新</el-button>
+      </el-col>
+    </el-row>
 
     <el-table :data="tableData">
       <el-table-column prop="channelName" label="一级渠道名称" width="180">
@@ -40,7 +40,7 @@
       <el-table-column prop="onlineTime" label="生效时间"> </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button @click="edit(scope.row.id)" size="mini" type="text" icon="el-icon-edit">修改</el-button>
+          <el-button @click="edit(scope.row.id)" size="mini" type="text" icon="el-icon-edit">編輯</el-button>
           <el-button size="mini" type="text" icon="el-icon-plus" @click="query(scope.row.id)">查询</el-button>
           <el-button @click="del(scope.row.id)" size="mini" type="text" icon="el-icon-delete">删除</el-button>
         </template>

+ 1 - 1
admin/src/views/channel/secondChannelList.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-descriptions class="margin-top" title="一级渠道信息" :column="4">
+    <el-descriptions class="margin-top" title="一级渠道信息">
       <template slot="extra">
         <el-button type="primary" size="mini" @click="oneTOEdit(id)">编辑</el-button>
         <el-button type="primary" @click="value5 = true" size="mini">历史记录</el-button>

+ 50 - 87
admin/src/views/dataPage/orderData/index.vue

@@ -3,7 +3,7 @@
     <el-container>
       <!--搜索-->
       <el-header class="searchBox">
-        <el-form :inline="true" :model="searchForm" class="demo-form-inline">
+        <el-form :inline="true" :model="searchForm" class="demo-form-inline" size="small">
           <el-form-item label="产品名称">
             <el-input v-model="searchForm.productName" placeholder="产品名称" />
           </el-form-item>
@@ -26,19 +26,10 @@
             </el-select>
           </el-form-item>
           <el-form-item label="时间范围">
-            <el-date-picker
-              v-model="value2"
-              type="datetimerange"
-              :picker-options="pickerOptions"
-              range-separator="至"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              align="right"
-              @change="dateChange"
-            />
+            <el-date-picker v-model="value2" type="datetimerange" :picker-options="pickerOptions" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right" @change="dateChange" />
           </el-form-item>
 
-          <el-form-item>
+          <el-form-item size="mini">
             <el-button type="primary" @click="searchBtn">查询</el-button>
             <el-button @click="reset">重置</el-button>
             <el-button type="warning" @click="download()">导出</el-button>
@@ -48,7 +39,7 @@
 
       <!--表格-->
       <el-main class="tableBox">
-        <el-table :data="tableData" stripe style="width: 100%">
+        <el-table :data="tableData" style="width: 100%">
           <el-table-column prop="tradeNo" label="订单号" width="120" />
           <el-table-column prop="cpid" label="CPID" width="70" />
           <el-table-column prop="spid" label="SPID" width="70" />
@@ -73,15 +64,7 @@
           <el-table-column prop="createTime" label="订购时间" width="160" />
         </el-table>
         <div class="block">
-          <el-pagination
-            :current-page.sync="searchForm['pageNum']"
-            :page-sizes="[20, 50, 100, 300]"
-            :page-size="searchForm['pageSize']"
-            layout="total, sizes, pager"
-            :total="total"
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
+          <pagination v-show="total > 0" :total="total" :page="searchForm.pageNo" :limit="searchForm.pageSize" @pagination="pagination" />
         </div>
       </el-main>
     </el-container>
@@ -89,23 +72,21 @@
 </template>
 
 <script>
-import { get } from "@/api/common";
+import { exportAccess, accessList } from '../api'
 import filter from "@/common/filter";
-import axios from "axios";
-import { getToken } from "../../../utils/auth";
+// import { get } from 'xe-utils';
 export default {
-  name: "RunData",
-  data() {
+  data () {
     return {
       searchForm: {
         // productName: '',
         // fullCode: '',
-        // phone: '',
+        // phone: '',              
         // handleType: '',
         // handleResult: '',
         // startTime: '',
         // endTime: '',
-        pageSize: 20,
+        pageSize: 3,
         pageNo: 1,
       },
       value2: "",
@@ -115,7 +96,7 @@ export default {
         shortcuts: [
           {
             text: "最近一周",
-            onClick(picker) {
+            onClick (picker) {
               const end = new Date();
               const start = new Date();
               start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
@@ -124,7 +105,7 @@ export default {
           },
           {
             text: "最近一个月",
-            onClick(picker) {
+            onClick (picker) {
               const end = new Date();
               const start = new Date();
               start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
@@ -133,7 +114,7 @@ export default {
           },
           {
             text: "最近三个月",
-            onClick(picker) {
+            onClick (picker) {
               const end = new Date();
               const start = new Date();
               start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
@@ -144,88 +125,70 @@ export default {
       },
     };
   },
-  created() {
-    var that = this;
-    that.search();
+  created () {
+
+    this.search();
   },
   methods: {
-    async search() {
+    // 改变页码触发
+    pagination (page) {
+      this.pageNo = page.page;
+      console.log(this.pageNo)
+      // 重新获取列表数据
+      this.search();
+    },
+    search () {
       // 同步搜索
-      await get("/record/access-record/page", this.searchForm)
-        .then((res) => {
-          this.tableData = res.data.list;
-          this.total = res.data.total;
-        })
-        .catch((err) => {
-          console.log(err);
-        });
+      accessList(this.searchForm).then(res => {
+        this.tableData = res.data.list;
+        console.log(res)
+        this.total = res.data.total;
+      })
+
+      // get("/record/access-record/page", this.searchForm).then(res => {
+      //   this.tableData = res.data.list;
+      //   this.total = res.data.total;
+
+      // })
     },
-    searchBtn() {
+    searchBtn () {
       // 搜索按钮
       this.search();
     },
-    reset() {
+    reset () {
       // 重置
       this.searchForm = {
         cpid: "",
         categoryName: "",
-        pageSize: 20,
-        pageNum: 1,
+        pageSize: 3,
+        pageNo: 1,
       };
       this.search();
     },
-    dateChange(e) {
+    dateChange (e) {
       console.log(e);
       this.searchForm.startTime = filter.frDateTime(e[0]);
       this.searchForm.endTime = filter.frDateTime(e[1]);
     },
-    handleSizeChange(e) {
+    handleSizeChange (e) {
       // 单页数量
       this.searchForm.pageSize = e;
       this.search();
     },
-    handleCurrentChange(e) {
+    handleCurrentChange (e) {
       // 跳页
       this.searchForm.pageNum = e;
       this.search();
     },
-    download() {
+    download () {
       // 导出
-      let formData = new FormData();
-      for (let i in this.searchForm) {
-        if (this.searchForm[i]) {
-          formData.append(i, this.searchForm[i]);
-        }
-      }
-      let loading = this.$loading({
-        lock: true,
-        text: "下载量较大,请耐心等待",
-        spinner: "el-icon-loading",
-        background: "rgba(0, 0, 0, 0.7)",
-      });
-      axios({
-        method: "post",
-        url: process.env.VUE_APP_BASE_API + "/handleRecord/download",
-        data: formData,
-        responseType: "blob",
-        headers: {
-          "Content-Type": "multipart/form-data",
-          token: getToken(),
-        },
-      }).then((res) => {
-        if (res.data) {
-          loading.close();
-          let a = document.createElement("a");
-          let blob = new Blob([res.data], {
-            type: "application/vnd.ms-excel",
-          });
-          let objectUrl = URL.createObjectURL(blob);
-          a.setAttribute("href", objectUrl);
-          a.setAttribute("download", "订购数据.xlsx");
-          a.click();
-          URL.revokeObjectURL(a.objectUrl);
-        }
-      });
+      this.$modal.confirm('是否确认导出所有渠道数据').then(function () {
+        return exportAccess();
+      }).then(response => {
+        this.$download.excel(response, '订单操作数据.xlsx')
+      })
+
+
     },
   },
 };

+ 281 - 301
admin/src/views/dataPage/receData/index.vue

@@ -1,332 +1,312 @@
 <template>
-    <div>
-        <el-container>
-            <!--搜索-->
-            <el-header class="searchBox">
-                <el-form :inline="true" :model="searchForm" class="demo-form-inline">
-                    <el-form-item label="产品名称">
-                        <el-input v-model="searchForm.productName" placeholder="产品名称"/>
-                    </el-form-item>
-                    <el-form-item label="渠道编码">
-                        <el-input v-model="searchForm.fullCode" placeholder="渠道编码"/>
-                    </el-form-item>
-                    <el-form-item label="手机号">
-                        <el-input v-model="searchForm.phone" placeholder="手机号"/>
-                    </el-form-item>
-                    <el-form-item label="状态">
-                        <el-select v-model="searchForm.joinActivityResult" placeholder="请选择">
-                            <el-option key="1" label="成功" value="1"/>
-                            <el-option key="0" label="失败" value="0"/>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="时间范围">
-                        <el-date-picker
-                                v-model="value2"
-                                type="datetimerange"
-                                :picker-options="pickerOptions"
-                                range-separator="至"
-                                start-placeholder="开始日期"
-                                end-placeholder="结束日期"
-                                align="right"
-                                @change="dateChange"
-                        />
-                    </el-form-item>
+  <div>
+    <el-container>
+      <!--搜索-->
+      <el-header class="searchBox">
+        <el-form :inline="true" :model="searchForm" class="demo-form-inline">
+          <el-form-item label="产品名称">
+            <el-input v-model="searchForm.productName" placeholder="产品名称" />
+          </el-form-item>
+          <el-form-item label="渠道编码">
+            <el-input v-model="searchForm.fullCode" placeholder="渠道编码" />
+          </el-form-item>
+          <el-form-item label="手机号">
+            <el-input v-model="searchForm.phone" placeholder="手机号" />
+          </el-form-item>
+          <el-form-item label="状态">
+            <el-select v-model="searchForm.joinActivityResult" placeholder="请选择">
+              <el-option key="1" label="成功" value="1" />
+              <el-option key="0" label="失败" value="0" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="时间范围">
+            <el-date-picker v-model="value2" type="datetimerange" :picker-options="pickerOptions" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right" @change="dateChange" />
+          </el-form-item>
 
-                    <el-form-item>
-                        <el-button type="primary" @click="searchBtn">查询</el-button>
-                        <el-button @click="reset">重置</el-button>
-                        <el-button type="warning" @click="value5 = true">手动领取</el-button>
-                    </el-form-item>
-                </el-form>
-            </el-header>
+          <el-form-item>
+            <el-button type="primary" @click="searchBtn">查询</el-button>
+            <el-button @click="reset">重置</el-button>
+            <el-button type="warning" @click="value5 = true">手动领取</el-button>
+          </el-form-item>
+        </el-form>
+      </el-header>
 
-            <!--表格-->
-            <el-main class="tableBox">
-                <!--批量领取窗口主体-->
-                <vxe-modal v-model="value5" width="60%" title="批量领取会员">
-                    <template #default>
-                        <el-form label-position="left" status-icon :rules="rules" ref="memberForm" label-width="80px"
-                                 :model="memberForm">
-                            <el-form-item label="名称" prop="index">
-                                <el-select filterable v-model="memberForm.index" placeholder="请选择产品">
-                                    <el-option v-for="(item, index) in productInfoList"
-                                               :key="item.id"
-                                               :label="`${item.productName}/${item.remark}/${item.spid}`"
-                                               :value="index"/>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item class="margin-top" label="手机号" prop="phones">
-                                <el-input v-model="memberForm.phones"></el-input>
-                            </el-form-item>
+      <!--表格-->
+      <el-main class="tableBox">
+        <!--批量领取窗口主体-->
+        <vxe-modal v-model="value5" width="60%" title="批量领取会员">
+          <template #default>
+            <el-form label-position="left" status-icon :rules="rules" ref="memberForm" label-width="80px" :model="memberForm">
+              <el-form-item label="名称" prop="index">
+                <el-select filterable v-model="memberForm.index" placeholder="请选择产品">
+                  <el-option v-for="(item, index) in productInfoList" :key="item.id" :label="`${item.productName}/${item.remark}/${item.spid}`" :value="index" />
+                </el-select>
+              </el-form-item>
+              <el-form-item class="margin-top" label="手机号" prop="phones">
+                <el-input v-model="memberForm.phones"></el-input>
+              </el-form-item>
 
-                            <el-form-item class="margin-top">
-                                <el-button type="primary" @click="giveMenmber('memberForm')">提交</el-button>
-                                <el-button @click="value5 = false">取消</el-button>
-                            </el-form-item>
-                        </el-form>
-                    </template>
-                </vxe-modal>
-                <!--表格主体-->
-                <el-table :data="tableData" stripe style="width: 100%">
-                    <el-table-column prop="parentChannelName" label="一级渠道" width="120">
-                        <template slot-scope="ppp">
-                            <div style="text-align: center">{{ ppp.row.parentChannelName ? ppp.row.parentChannelName :
+              <el-form-item class="margin-top">
+                <el-button type="primary" @click="giveMenmber('memberForm')">提交</el-button>
+                <el-button @click="value5 = false">取消</el-button>
+              </el-form-item>
+            </el-form>
+          </template>
+        </vxe-modal>
+        <!--表格主体-->
+        <el-table :data="tableData" stripe style="width: 100%">
+          <el-table-column prop="parentChannelName" label="一级渠道" width="120">
+            <template slot-scope="ppp">
+              <div style="text-align: center">{{ ppp.row.parentChannelName ? ppp.row.parentChannelName :
                                 '后台操作' }}
-                            </div>
-                        </template>
-                    </el-table-column>
-                    <el-table-column prop="channelName" label="二级渠道" width="120">
-                        <template slot-scope="ppp">
-                            <div style="text-align: center">{{ ppp.row.channelName ? ppp.row.channelName : '手动领取' }}
-                            </div>
-                        </template>
-                    </el-table-column>
-                    <el-table-column prop="fullCode" label="渠道代码" width="120">
-                        <template slot-scope="ppp">
-                            <div style="text-align: center">{{ ppp.row.fullCode ? ppp.row.fullCode : '— —' }}</div>
-                        </template>
-                    </el-table-column>
-                    <el-table-column prop="productName" label="产品名称"/>
-                    <el-table-column prop="phone" label="会员手机号"/>
-                    <el-table-column prop="joinActivityResult" label="领取结果" width="80">
-                        <template slot-scope="scope">
-                            <span>{{ scope.row.joinActivityResult > 0 ? '成功' : '失败' }}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column prop="createTime" label="订购时间" width="160"/>
-                </el-table>
-                <div class="block">
-                    <el-pagination
-                            :current-page.sync="searchForm['pageNum']"
-                            :page-sizes="[20, 50, 100, 300]"
-                            :page-size="searchForm['pageSize']"
-                            layout="total, sizes, pager"
-                            :total="total"
-                            @size-change="handleSizeChange"
-                            @current-change="handleCurrentChange"
-                    />
-                </div>
-            </el-main>
-        </el-container>
-    </div>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="channelName" label="二级渠道" width="120">
+            <template slot-scope="ppp">
+              <div style="text-align: center">{{ ppp.row.channelName ? ppp.row.channelName : '手动领取' }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="fullCode" label="渠道代码" width="120">
+            <template slot-scope="ppp">
+              <div style="text-align: center">{{ ppp.row.fullCode ? ppp.row.fullCode : '— —' }}</div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="productName" label="产品名称" />
+          <el-table-column prop="phone" label="会员手机号" />
+          <el-table-column prop="joinActivityResult" label="领取结果" width="80">
+            <template slot-scope="scope">
+              <span>{{ scope.row.joinActivityResult > 0 ? '成功' : '失败' }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="createTime" label="订购时间" width="160" />
+        </el-table>
+        <div class="block">
+          <el-pagination :current-page.sync="searchForm['pageNum']" :page-sizes="[20, 50, 100, 300]" :page-size="searchForm['pageSize']" layout="total, sizes, pager" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+        </div>
+      </el-main>
+    </el-container>
+  </div>
 
 </template>
 
 <script>
-    import {get, post} from '@/api/common'
-    import filter from '@/common/filter'
+import { get, post } from '@/api/common'
+import filter from '@/common/filter'
+import { receList } from '../api'
 
-    export default {
-        name: 'RunData',
-        data() {
-            return {
-                searchForm: {
-                    productName: '',
-                    fullCode: '',
-                    phone: '',
-                    handleType: '',
-                    handleResult: '',
-                    startTime: '',
-                    endTime: '',
-                    pageSize: 20,
-                    pageNum: 1
-                },
-                memberForm: {},
-                productInfoList: {},
-                value2: '',
-                value5: false,
-                tableData: [],
-                total: 5000,
-                pickerOptions: {
-                    shortcuts: [{
-                        text: '最近一周',
-                        onClick(picker) {
-                            const end = new Date()
-                            const start = new Date()
-                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
-                            picker.$emit('pick', [start, end])
-                        }
-                    }, {
-                        text: '最近一个月',
-                        onClick(picker) {
-                            const end = new Date()
-                            const start = new Date()
-                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
-                            picker.$emit('pick', [start, end])
-                        }
-                    }, {
-                        text: '最近三个月',
-                        onClick(picker) {
-                            const end = new Date()
-                            const start = new Date()
-                            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
-                            picker.$emit('pick', [start, end])
-                        }
-                    }]
-                },
-                rules: {
-                    index: [
-                        {required: true, message: '请选择产品', trigger: 'change'}
-                    ],
-                    phones: [
-                        {required: true, message: '请输入手机号', trigger: 'blur'}
-                    ],
-                },
-            }
-        },
-        created() {
-            var that = this
-            that.search()
-            get('/productInfo/page', {'pageSize': 9999, 'pageNum': 1}).then(res => {
-                this.productInfoList = res.data.list
-            });
-        },
-        methods: {
-            giveMenmber(formName) {
-                this.$confirm('您确定为这些手机号领取会员么?当前操作不可逆', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    this.$refs[formName].validate((valid) => {
-                        if (valid) {
-                            let d = this.memberForm
-                            let phones = d.phones.split(',')
-                            let data = {
-                                "activeType": this.productInfoList[d.index].activeType,
-                                "givecpId": "",
-                                "isCompositeProduct": this.productInfoList[d.index].isCompositeProduct,
-                                "phones": phones,
-                                "productId": this.productInfoList[d.index].id
-                            }
-                            post('/vip/batchjoin', data).then((res) => {
-                                if (res.code === 10000) {
-                                    this.value5 = false
-                                    this.reset()
-                                    this.$message({
-                                        type: 'info',
-                                        message: res.data,
-                                        duration:3000,
-                                        offset: 360
-                                    });
-                                }
-                            }).catch((err) => {
-                                this.$message({
-                                    type: 'worning',
-                                    message: err.message,
-                                    offset: 360
-                                });
-                            })
+export default {
+  name: 'RunData',
+  data () {
+    return {
+      searchForm: {
+        productName: '',
+        fullCode: '',
+        phone: '',
+        handleType: '',
+        handleResult: '',
+        startTime: '',
+        endTime: '',
+        pageSize: 20,
+        pageNum: 1
+      },
+      memberForm: {},
+      productInfoList: {},
+      value2: '',
+      value5: false,
+      tableData: [],
+      total: 5000,
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick (picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一个月',
+          onClick (picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近三个月',
+          onClick (picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
+          }
+        }]
+      },
+      rules: {
+        index: [
+          { required: true, message: '请选择产品', trigger: 'change' }
+        ],
+        phones: [
+          { required: true, message: '请输入手机号', trigger: 'blur' }
+        ],
+      },
+    }
+  },
+  created () {
+    var that = this
+    that.search()
+    get('/product/info/page', { 'pageSize': 100, 'pageNum': 1 }).then(res => {
+      this.productInfoList = res.data.list
+    });
 
-                        } else {
-                            console.log('error submit!!');
-                            return false;
-                        }
-                    });
-                }).catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消'
-                    });
+  },
+  methods: {
+    giveMenmber (formName) {
+      this.$confirm('您确定为这些手机号领取会员么?当前操作不可逆', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$refs[formName].validate((valid) => {
+          if (valid) {
+            let d = this.memberForm
+            let phones = d.phones.split(',')
+            let data = {
+              "activeType": this.productInfoList[d.index].activeType,
+              "givecpId": "",
+              "isCompositeProduct": this.productInfoList[d.index].isCompositeProduct,
+              "phones": phones,
+              "productId": this.productInfoList[d.index].id
+            }
+            post('/vip/batchjoin', data).then((res) => {
+              if (res.code === 10000) {
+                this.value5 = false
+                this.reset()
+                this.$message({
+                  type: 'info',
+                  message: res.data,
+                  duration: 3000,
+                  offset: 360
                 });
-            },
+              }
+            }).catch((err) => {
+              this.$message({
+                type: 'worning',
+                message: err.message,
+                offset: 360
+              });
+            })
 
-            async search() { // 同步搜索
-                await get('/joinActivityRecord/page', this.searchForm)
-                    .then((res) => {
-                        this.tableData = res.data.list
-                        this.total = res.data.total
-                    }).catch((err) => {
-                        console.log(err)
-                    })
-            },
-            searchBtn() { // 搜索按钮
-                this.search()
-            },
-            reset() { // 重置
-                this.searchForm = {
-                    cpid: '',
-                    categoryName: '',
-                    pageSize: 20,
-                    pageNum: 1
-                }
-                this.search()
-            },
-            dateChange(e) {
-                console.log(e)
-                this.searchForm.startTime = filter.frDateTime(e[0])
-                this.searchForm.endTime = filter.frDateTime(e[1])
-            },
-            handleSizeChange(e) { // 单页数量
-                this.searchForm.pageSize = e
-                this.search()
-            },
-            handleCurrentChange(e) { // 跳页
-                this.searchForm.pageNum = e
-                this.search()
-            }
-        }
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        });
+      });
+    },
+
+    search () { // 同步搜索
+      receList(this.searchForm).then(res => {
+        this.tableData = res.data.list
+        this.total = res.data.total
+      })
+
+
+    },
+    searchBtn () { // 搜索按钮
+      this.search()
+    },
+    reset () { // 重置
+      this.searchForm = {
+        cpid: '',
+        categoryName: '',
+        pageSize: 20,
+        pageNum: 1
+      }
+      this.search()
+    },
+    dateChange (e) {
+      console.log(e)
+      this.searchForm.startTime = filter.frDateTime(e[0])
+      this.searchForm.endTime = filter.frDateTime(e[1])
+    },
+    handleSizeChange (e) { // 单页数量
+      this.searchForm.pageSize = e
+      this.search()
+    },
+    handleCurrentChange (e) { // 跳页
+      this.searchForm.pageNum = e
+      this.search()
     }
+  }
+}
 </script>
 
 <style scoped lang="scss">
-    .margin-top {
-        margin-top: 30px;
-    }
+.margin-top {
+  margin-top: 30px;
+}
 
-    .searchBox {
-        background-color: #fff;
-        border-radius: 4px;
-        box-shadow: #bfbfbf 0 0 2px;
-        height: unset !important;
+.searchBox {
+  background-color: #fff;
+  border-radius: 4px;
+  box-shadow: #bfbfbf 0 0 2px;
+  height: unset !important;
 
-        form {
-            margin: auto;
+  form {
+    margin: auto;
 
-            .el-form-item {
-                margin: 5px 5px;
-            }
-        }
+    .el-form-item {
+      margin: 5px 5px;
     }
+  }
+}
 
-    .el-header {
-        padding: 20px
-    }
+.el-header {
+  padding: 20px;
+}
 
-    .el-form-item {
-        margin-bottom: unset
-    }
+.el-form-item {
+  margin-bottom: unset;
+}
 
-    .tableBox {
-        margin-top: 10px;
-        background-color: #fff;
-        border-radius: 4px;
-        box-shadow: #bfbfbf 0 0 2px;
-    }
+.tableBox {
+  margin-top: 10px;
+  background-color: #fff;
+  border-radius: 4px;
+  box-shadow: #bfbfbf 0 0 2px;
+}
 
-    .block {
-        margin-top: 20px;
-        float: right;
-    }
+.block {
+  margin-top: 20px;
+  float: right;
+}
 
-    .demo-drawer__content {
-        padding: 20px 5%;
-        line-height: 32px;
+.demo-drawer__content {
+  padding: 20px 5%;
+  line-height: 32px;
 
-        .el-form-item {
-            margin-top: 20px;
-        }
+  .el-form-item {
+    margin-top: 20px;
+  }
 
-        .demo-drawer__footer {
-            position: fixed;
-            bottom: 30px;
-            width: 45%;
-            margin-top: 20px;
-            display: flex;
+  .demo-drawer__footer {
+    position: fixed;
+    bottom: 30px;
+    width: 45%;
+    margin-top: 20px;
+    display: flex;
 
-            button {
-                flex: 1;
-            }
-        }
+    button {
+      flex: 1;
     }
+  }
+}
 </style>

+ 18 - 15
admin/src/views/produce/produceClass/index.vue

@@ -1,29 +1,27 @@
 <template>
   <!-- 产品分类 -->
-  <div class="app-container">
+  <div class="abtestIndex">
     <!--搜索-->
-
-    <el-form :inline="true" :model="searchForm" class="demo-form-inline">
+    <el-form :inline="true" :model="searchForm" size="small" class="demo-form-inline">
       <el-form-item label="分类名称">
-        <el-input v-model="searchForm.categoryName" placeholder="分类名称" clearable size="mini" />
+        <el-input v-model="searchForm.categoryName" placeholder="分类名称" clearable />
       </el-form-item>
       <el-form-item label="CPID">
-        <el-input v-model="searchForm.cpid" placeholder="CPID" clearable size="mini" />
+        <el-input v-model="searchForm.cpid" placeholder="CPID" clearable />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" size="mini" @click="searchBtn">查询</el-button>
-        <el-button @click="reset" size="mini">重置</el-button>
+        <el-button type="primary" @click="searchBtn">查询</el-button>
+        <el-button @click="reset">重置</el-button>
       </el-form-item>
     </el-form>
 
-    <!--表格-->
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button type="primary" style="float: right" plain icon="el-icon-plus" size="mini" @click="add" v-hasPermi="['system:menu:create']">新增</el-button>
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="add">新增</el-button>
       </el-col>
     </el-row>
-
-    <el-table :data="tableData">
+    <!--表格-->
+    <el-table v-loading="loading" :data="tableData">
       <el-table-column prop="parentCategory" label="产品大类" />
       <el-table-column prop="categoryName" label="分类名称" />
       <el-table-column prop="cpid" label="CPID" />
@@ -31,14 +29,14 @@
       <el-table-column prop="createTime" label="创建时间" />
       <el-table-column fixed="right" label="操作" width="100">
         <template slot-scope="scope">
-          <el-button type="text" size="mini" @click="edit(scope.row.id, scope.row)">编辑</el-button>
-          <el-button type="text" size="mini" @click="dele(scope.row.id)">删除</el-button>
+          <el-button type="text" size="mini" @click="edit(scope.row.id, scope.row)" icon="el-icon-edit">编辑</el-button>
+          <el-button type="text" size="mini" @click="dele(scope.row.id)" icon="el-icon-delete">删除</el-button>
         </template>
       </el-table-column>
 
     </el-table>
 
-    <pagination v-show="total > 0" :total="total" :page="searchForm.pageNo" :limit="searchForm.pageSizes" @pagination="pagination" />
+    <pagination class="mt10" v-show="total > 0" :total="total" :page="searchForm.pageNo" :limit="searchForm.pageSizes" @pagination="pagination" />
 
     <!--新增抽屉-->
     <el-drawer ref="addDrawer" title="编辑产品分类" size="50%" :before-close="addHandleClose" :with-header="false" :visible.sync="addDialog" direction="rtl" custom-class="demo-drawer">
@@ -93,7 +91,7 @@
 </template>
 
 <script>
-import { listProduct, addProduct } from "../api.js";
+// import { listProduct, addProduct } from "../api.js";
 import { post, get, del, put } from "@/api/common";
 import getTime from "@/utils/getTime.js";
 export default {
@@ -296,6 +294,11 @@ export default {
 </script>
 
 <style scoped lang="scss">
+.abtestIndex {
+  padding: 20px;
+  box-sizing: border-box;
+}
+
 .searchBox {
   background-color: #fff;
   border-radius: 4px;

+ 21 - 19
admin/src/views/produce/productV2/productManagement.vue

@@ -1,27 +1,29 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="24" class="rowBorder">
-      <el-col :span="5">
-        <span style="font-size: 14px; color: #606266; font-weight: bold">
-          产品名称:</span>
-        <el-input type="text" v-model="productName" style="width: 70%; margin-left: 15px" placeholder="产品名称" clearable size="mini"></el-input>
-      </el-col>
-      <el-col :span="5">
-        <span style="font-size: 14px; color: #606266; font-weight: bold">spid:</span>
-        <el-input style="width: 70%; margin-left: 15px" type="text" v-model="spid" placeholder="科创spid" size="mini"></el-input>
-      </el-col>
-      <el-col :offset="9" :span="3">
-        <el-button style="margin-left: 10px" type="primary" @click="search" size="mini">搜索</el-button>
-        <el-button style="margin-left: 10px" @click="reset" size="mini">重置</el-button>
-      </el-col>
-    </el-row>
+    <el-form :inline="true" size="small" class="demo-form-inline">
+      <el-row>
+        <el-col :span="5">
+          <span style="font-size: 14px; color: #606266; font-weight: bold">
+            产品名称:</span>
+          <el-input type="text" v-model="productName" style="width: 70%; margin-left: 15px" placeholder="产品名称" clearable size="small"></el-input>
+        </el-col>
+        <el-col :span="5">
+          <span style="font-size: 14px; color: #606266; font-weight: bold">spid:</span>
+          <el-input style="width: 70%; margin-left: 15px" type="text" v-model="spid" placeholder="科创spid" size="small"></el-input>
+        </el-col>
+        <el-col :span="3">
+          <el-button type="primary" @click="search" icon="el-icon-search" size="small">搜索</el-button>
+          <el-button @click="reset" size="small" icon="el-icon-refresh">重置</el-button>
+        </el-col>
+      </el-row>
+    </el-form>
     <el-form class="formBorder" :model="productFrom" label-width="0px" style="margin-top: 20px">
       <el-form-item>
-        <el-button style="float: left" @click="addPush" size="mini"> 新增 </el-button>
+        <el-button style="float: left" @click="addPush" size="mini" type="primary" plain icon="el-icon-plus"> 新增 </el-button>
         <el-button style="float: left" @click="init" size="mini"> 刷新 </el-button>
       </el-form-item>
-      <el-form-item>
 
+      <el-form-item>
         <el-table :data="productFrom.productData">
           <el-table-column label="产品名称" prop="productName" />
           <el-table-column label="spid" prop="spid" />
@@ -30,8 +32,8 @@
           <el-table-column label="时间" prop="createTime" />
           <el-table-column label="操作" prop="originalPrice">
             <template slot-scope="scope">
-              <el-button size="mini" type="text" icon="el-icon-delete" @click="edit(scope.row.id)">编辑</el-button>
-              <el-button size="mini" type="text" icon="el-icon-delete" @click="addPush(scope.row)">复制</el-button>
+              <el-button size="mini" type="text" icon="el-icon-edit" @click="edit(scope.row.id)">编辑</el-button>
+              <el-button size="mini" type="text" icon="el-icon-set-up" @click="addPush(scope.row)">复制</el-button>
               <el-button size="mini" type="text" icon="el-icon-delete" @click="dele(scope.row.id)">删除</el-button>
             </template>
           </el-table-column>