yangfan 2 år sedan
förälder
incheckning
9c6b8df06c

+ 15 - 16
admin/src/views/channel/firstChannelList.vue

@@ -10,23 +10,22 @@
     </el-row>
 
     <!--搜索-->
-    <el-header class="searchBox">
-      <el-form :inline="true" :model="searchForm" ref="searchForm" class="demo-form-inline">
-        <el-form-item label="渠道名称">
-          <el-input v-model="searchForm.channelName" name="searchForm.channelName" placeholder="策略名称" />
-        </el-form-item>
-        <el-form-item label="合作方">
-          <el-input v-model="searchForm.channelPartner" placeholder="合作方" />
-        </el-form-item>
 
-        <el-form-item style="float: right">
-          <el-button type="primary" @click="init()">搜索</el-button>
-          <el-button @click="reset('searchForm')">重置</el-button>
-        </el-form-item>
-      </el-form>
-    </el-header>
+    <el-form :inline="true" :model="searchForm" ref="searchForm" class="demo-form-inline">
+      <el-form-item label="渠道名称">
+        <el-input size="mini" 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-form-item>
 
-    <el-table :data="tableData" style="width: 100%">
+      <el-form-item style="float: right">
+        <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-table :data="tableData">
       <el-table-column prop="channelName" label="一级渠道名称" width="180">
       </el-table-column>
       <el-table-column prop="unicomContacts" label="负责人" width="180">
@@ -128,7 +127,7 @@ export default {
         console.log(res);
 
         // 一级列表的数组长度=total
-        this.total = res.data.list.length;
+        this.total = res.data.total;
         this.tableData = res.data.list;
       });
     },

+ 353 - 364
admin/src/views/channel/secondChannelList.vue

@@ -23,7 +23,6 @@
           {{ content.onlineTime }}
         </el-descriptions-item>
 
-
         <el-descriptions-item label="联系人">
           <template slot="label"> 联系人 </template>
           {{ content.partnerContacts }}
@@ -41,8 +40,8 @@
           {{ content.partnerPhone }}
         </el-descriptions-item>
       </el-descriptions>
-      <el-divider></el-divider>
-      <el-header class="searchBox">
+
+      <el-header>
         <el-form :inline="true" :model="searchForm" ref="searchForm" class="demo-form-inline">
           <el-form-item label="渠道名称">
             <el-input v-model="searchForm.channelName" name="searchForm.channelName" placeholder="策略名称" />
@@ -59,18 +58,18 @@
 
           <el-row :gutter="10" class="mb8">
             <el-col :span="1.5">
-              <el-button type="primary" plain icon="el-icon-plus" size="mini"
-                @click="add({ id: content.id }, 'erji', content.channelName)">新增</el-button>
+              <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="add({ id: content.id }, 'erji', content.channelName)">新增</el-button>
             </el-col>
             <el-col :span="1.5">
               <el-button type="info" icon="el-icon-upload2" size="mini" @click="init()">刷新</el-button>
             </el-col>
           </el-row>
+
         </el-form>
       </el-header>
       <el-divider></el-divider>
 
-      <el-dialog title="二维码下载" :visible.sync="dialogVisible" width="350px">
+      <el-dialog title="二维码下载" :visible.sync="dialogVisible">
         <div style="text-align: center">
           <div id="qrcode"></div>
           <div style="height: 25px; line-height: 25px; margin-top: 30px">
@@ -101,8 +100,7 @@
             </vxe-table-column>
             <vxe-table-column field="userName" title="操作人"></vxe-table-column>
           </vxe-table>
-          <vxe-pager :loading="loading" :current-page="channelogParam.pageNum" :page-size="channelogParam.pageSize"
-            :total="channelogParam.totalResult" :layouts="[
+          <vxe-pager :loading="loading" :current-page="channelogParam.pageNum" :page-size="channelogParam.pageSize" :total="channelogParam.totalResult" :layouts="[
               'PrevPage',
               'JumpNumber',
               'NextPage',
@@ -117,8 +115,7 @@
         <template #default>
           <el-form ref="form" label-width="80px">
             <el-form-item label="选择时间">
-              <el-date-picker v-model="pushdataDate" type="daterange" range-separator="至" start-placeholder="开始日期"
-                end-placeholder="结束日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd">
+              <el-date-picker v-model="pushdataDate" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
             <el-form-item>
@@ -153,183 +150,203 @@
           </template>
         </el-table-column>
       </el-table>
-    </el-container>
+    </el-container>、
+
+    <pagination v-show="total>0" :total="total" :page.sync="tableData.pageNo" :limit.sync="tableData.pageSize" @pagination="search" />
   </div>
 </template>
 
 <script>
-  import {
-    post,
-    get,
-    getExport
-  } from "@/api/common";
-  import QRCode from "qrcodejs2";
-  import axios from "axios";
-  import {
-    getToken
-  } from "../../utils/auth";
-  import XEUtils from "xe-utils";
+import { exportChannel } from './api'
+import {
+  post,
+  get,
 
-  export default {
-    name: "SchemeEdit",
-    data() {
-      return {
-        id: this.$route.query.id,
-        searchForm: {
-          channelName: "",
-          channelPartner: "",
-          parentId: 0,
-          pageNum: 1,
-          pageNo: 1,
-          pageSize: 10,
-          totalResult: 0,
-        },
-        pageNo: 1,
-        total: 100,
-        pageSizes: 20,
-        initfrom: {
-          channelName: "",
-          pageNo: 1,
-          pageSizes: 10,
-        },
-        loading: false,
-        tableData: [],
-        content: {
-          id: this.$route.query.id,
-        },
-        strategyStatus: [{
-            label: "生效中",
-            value: "1",
-          },
-          {
-            label: "未生效",
-            value: "0",
-          },
-        ],
-        typeList: [{
-            value: "集团渠道",
-            label: "集团渠道",
-          },
-          {
-            value: "省分线下渠道",
-            label: "省分线下渠道",
-          },
-          {
-            value: "省分线上渠道",
-            label: "省分线上渠道",
-          },
-          {
-            value: "互联网渠道",
-            label: "互联网渠道",
-          },
-          {
-            value: "自有线上渠道",
-            label: "自有线上渠道",
-          },
-          {
-            value: "社会代理和其他渠道",
-            label: "社会代理和其他渠道",
-          },
-        ],
-        patnerList: [{
-            value: "0",
-            label: "V1",
-          },
-          {
-            value: "1",
-            label: "V2",
-          },
-        ],
+} from "@/api/common";
+import QRCode from "qrcodejs2";
 
-        dialogVisible: false,
 
-        value5: false,
-        pushdata: false,
-        pushdataDate: "",
-        channelog: [],
-        channelogList: [],
-        filterName1: "",
-        channelogParam: {
-          channelId: this.$route.query.id,
-          pageNo: 1,
-          pageSize: 10,
-        },
-        oldform: {},
-      };
-    },
-    watch: {
-      value5(val) {
-        if (val) {
-          console.log(val, "val");
-          get("/channel/log/page", this.channelogParam).then((res) => {
-            // console.log(this.channelogParam, "历史记录");
-            // console.log(res, "历史记录");
-            this.channelog = res.data.list;
-            this.channelogParam.totalResult = res.data.total;
-          });
-          this.channelogParam.pageSize = 100;
-          get("/channel/log/page", this.channelogParam).then((res) => {
-            this.channelogList = JSON.parse(JSON.stringify(res.data.list));
-          });
-        }
+export default {
+  name: "SchemeEdit",
+  data () {
+    return {
+      id: this.$route.query.id,
+      searchForm: {
+        channelName: "",
+        channelPartner: "",
+        parentId: 0,
+        pageNum: 1,
+        pageNo: 1,
+        pageSize: 10,
+        totalResult: 0,
       },
-    },
-    created() {
-      // console.log(this.initfrom);
-      // 在哪呢?
-      this.getSecondList();
-    },
-    methods: {
-      //重置
-      reset() {
-
+      pageNo: 1,
+      total: 100,
+      pageSizes: 20,
+      initfrom: {
+        channelName: "",
+        pageNo: 1,
+        pageSizes: 10,
       },
-
-      //获取列表
-      getSecondList() {
-        document.title = "一级渠道详情";
-        this.searchForm.parentId = this.$route.query.id;
-        get("/channel/info/get", {
-          id: this.$route.query.id,
-        }).then((res) => {
-          // console.log(res, "一级列表详情");
-          this.content = res.data;
-          this.total = res.data.total;
-        });
-        this.init();
-        // console.log(this.$route.query.id);
+      loading: false,
+      tableData: [],
+      content: {
+        id: this.$route.query.id,
       },
-
-      pagination(page) {
-        this.pageNo = page.page;
-        // 重新获取列表数据
-        this.getSecondList();
+      strategyStatus: [{
+        label: "生效中",
+        value: "1",
       },
-      search() {
-        get("/channel/info/listChannels", this.searchForm).then((res) => {
-          console.log(res);
-          this.tableData = res.data.list
-        });
+      {
+        label: "未生效",
+        value: "0",
       },
-
-      // 一级编辑
-      oneTOEdit(id) {
-        this.$router.push("/channel/channelEdit?ids=" + id);
+      ],
+      typeList: [{
+        value: "集团渠道",
+        label: "集团渠道",
+      },
+      {
+        value: "省分线下渠道",
+        label: "省分线下渠道",
       },
-      //二级编辑
-      toEdit(id, type) {
-        this.$router.push("/channel/channelEdit?ids=" + id);
+      {
+        value: "省分线上渠道",
+        label: "省分线上渠道",
       },
+      {
+        value: "互联网渠道",
+        label: "互联网渠道",
+      },
+      {
+        value: "自有线上渠道",
+        label: "自有线上渠道",
+      },
+      {
+        value: "社会代理和其他渠道",
+        label: "社会代理和其他渠道",
+      },
+      ],
+      patnerList: [{
+        value: "0",
+        label: "V1",
+      },
+      {
+        value: "1",
+        label: "V2",
+      },
+      ],
+
+      dialogVisible: false,
 
-      formatterWotv({
-        cellValue
-      }) {
-        return cellValue !== "1" ? "关闭" : "开启";
+      value5: false,
+      pushdata: false,
+      pushdataDate: "",
+      channelog: [],
+      channelogList: [],
+      filterName1: "",
+      channelogParam: {
+        channelId: this.$route.query.id,
+        pageNo: 1,
+        pageSize: 10,
       },
-      //复制链接
-      copy(row) {
+      oldform: {},
+    };
+  },
+  watch: {
+    value5 (val) {
+      if (val) {
+        console.log(val, "val");
+        get("/channel/log/page", this.channelogParam).then((res) => {
+          // console.log(this.channelogParam, "历史记录");
+          // console.log(res, "历史记录");
+          this.channelog = res.data.list;
+          this.channelogParam.totalResult = res.data.total;
+        });
+        this.channelogParam.pageSize = 100;
+        get("/channel/log/page", this.channelogParam).then((res) => {
+          this.channelogList = JSON.parse(JSON.stringify(res.data.list));
+        });
+      }
+    },
+  },
+  created () {
+    // console.log(this.initfrom);
+    // 在哪呢?
+    this.getSecondList();
+  },
+  methods: {
+    //重置
+    reset () {
+
+    },
+
+    //获取列表
+    getSecondList () {
+      document.title = "一级渠道详情";
+      this.searchForm.parentId = this.$route.query.id;
+      get("/channel/info/get", {
+        id: this.$route.query.id,
+      }).then((res) => {
+        // console.log(res, "一级列表详情");
+        this.content = res.data;
+        this.total = res.data.list.length;
+
+      });
+      this.init();
+      // console.log(this.$route.query.id);
+    },
+
+    pagination (page) {
+      this.pageNo = page.page;
+      // 重新获取列表数据
+      this.getSecondList();
+    },
+    search () {
+      get("/channel/info/listChannels", this.searchForm).then((res) => {
+        console.log(res);
+        this.tableData = res.data.list
+        this.total = res.data.list.length;
+        console.log(res);
+
+      });
+    },
+
+    // 一级编辑
+    oneTOEdit (id) {
+      this.$router.push("/channel/channelEdit?ids=" + id);
+    },
+    //二级编辑
+    toEdit (id, type) {
+      this.$router.push("/channel/channelEdit?ids=" + id);
+    },
+
+    formatterWotv ({
+      cellValue
+    }) {
+      return cellValue !== "1" ? "关闭" : "开启";
+    },
+    //复制链接
+    copy (row) {
+      let oInput = document.createElement("input");
+      oInput.value = `https://operation.mige.tv/a/#/${row.channelKey}`;
+      document.body.appendChild(oInput);
+      oInput.select(); // 选择对象;
+      document.execCommand("Copy"); // 执行浏览器复制命令
+      this.$message({
+        message: "复制成功",
+        type: "success",
+      });
+      oInput.remove();
+    },
+    //短链接
+    giveShort (row) {
+      let stUrl = row.shortUrl;
+      // console.log(row);
+      if (stUrl) {
+        // console.log(111);
         let oInput = document.createElement("input");
-        oInput.value = `https://operation.mige.tv/a/#/${row.channelKey}`;
+        oInput.value = `http://v.mige.tv/${stUrl}`;
         document.body.appendChild(oInput);
         oInput.select(); // 选择对象;
         document.execCommand("Copy"); // 执行浏览器复制命令
@@ -338,15 +355,18 @@
           type: "success",
         });
         oInput.remove();
-      },
-      //短链接
-      giveShort(row) {
-        let stUrl = row.shortUrl;
-        // console.log(row);
-        if (stUrl) {
-          // console.log(111);
+      } else {
+        // console.log(222);
+        let data = {
+          channel: row.channelKey,
+          longUrl: `https://operation.mige.tv/a/#/${row.channelKey}`,
+        };
+        // console.log(data);
+        post("/channel/info/shorturl", data).then((res) => {
+          // console.log(res);
+          let resUrl = res.data.shortCode;
           let oInput = document.createElement("input");
-          oInput.value = `http://v.mige.tv/${stUrl}`;
+          oInput.value = `http://v.mige.tv/${resUrl}`;
           document.body.appendChild(oInput);
           oInput.select(); // 选择对象;
           document.execCommand("Copy"); // 执行浏览器复制命令
@@ -355,204 +375,173 @@
             type: "success",
           });
           oInput.remove();
-        } else {
-          // console.log(222);
-          let data = {
-            channel: row.channelKey,
-            longUrl: `https://operation.mige.tv/a/#/${row.channelKey}`,
-          };
-          // console.log(data);
-          post("/channel/info/shorturl", data).then((res) => {
-            // console.log(res);
-            let resUrl = res.data.shortCode;
-            let oInput = document.createElement("input");
-            oInput.value = `http://v.mige.tv/${resUrl}`;
-            document.body.appendChild(oInput);
-            oInput.select(); // 选择对象;
-            document.execCommand("Copy"); // 执行浏览器复制命令
-            this.$message({
-              message: "复制成功",
-              type: "success",
-            });
-            oInput.remove();
-          });
-        }
-      },
+        });
+      }
+    },
 
-      //导出
-      download() {
-        getExport("/channel/info/export-excel").then((res) => {
-          // let loading = this.$loading({
-          //   lock: true,
-          //   text: "下载量较大,请耐心等待",
-          //   spinner: "el-icon-loading",
-          //   background: "rgba(0, 0, 0, 0.7)",
-          // });
-          // 导出成功
-          if (res) {
-            // 关闭提示
 
-            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", "渠道数据.xls");
-            a.click();
-            URL.revokeObjectURL(a.objectUrl);
-          }
-        });
-      },
-      handlePageChange({
-        currentPage,
-        pageSize
-      }) {
-        this.searchForm.pageNum = currentPage;
-        this.searchForm.pageSize = pageSize;
-        this.init();
-      },
-      handlePageChangeChannelog({
-        currentPage,
-        pageSize
-      }) {
-        this.channelogParam.pageNum = currentPage;
-        this.channelogParam.pageSize = pageSize;
-        get("/channelInfo/channelogpage", this.channelogParam).then((res) => {
-          this.channelog = res.data.list;
-          this.channelogParam.totalResult = res.data.total;
-        });
-      },
-      init() {
-        get("/channel/info/listChannels", this.initfrom).then((res) => {
-          // console.log(this.$route.query.id);
-          let secondList = res.data.list.filter((item) => {
-            return item.parentId == this.$route.query.id;
-          });
-          this.tableData = secondList;
-          this.total = res.data.total;
-          this.oldform = secondList;
-          // console.log(this.tableData, "一级下的二级");
+    //导出
+    download () {
+      this.$modal.confirm('是否确认导出所有渠道数据?').then(function () {
+        return exportChannel();
+      }).then(response => {
+        this.$download.excel(response, '渠道数据.xlsx');
+      })
+    },
+    handlePageChange ({ currentPage, pageSize }) {
+      this.searchForm.pageNum = currentPage;
+      this.searchForm.pageSize = pageSize;
+      this.init();
+    },
+    handlePageChange ({
+      currentPage,
+      pageSize
+    }) {
+      this.searchForm.pageNum = currentPage;
+      this.searchForm.pageSize = pageSize;
+      this.init();
+    },
+    handlePageChangeChannelog ({
+      currentPage,
+      pageSize
+    }) {
+      this.channelogParam.pageNum = currentPage;
+      this.channelogParam.pageSize = pageSize;
+      get("/channelInfo/channelogpage", this.channelogParam).then((res) => {
+        this.channelog = res.data.list;
+        this.channelogParam.totalResult = res.data.total;
+      });
+    },
+    init () {
+      get("/channel/info/listChannels", this.initfrom).then((res) => {
+        // console.log(this.$route.query.id);
+        let secondList = res.data.list.filter((item) => {
+          return item.parentId == this.$route.query.id;
         });
-      },
+        this.tableData = secondList;
+        this.total = res.data.total;
+        this.oldform = secondList;
+        // console.log(this.tableData, "一级下的二级");
+      });
+    },
 
-      searchEvent() {
-        get("/channelInfo/channelogpage", this.channelogParam).then((res) => {
-          this.channelog = res.data.list;
-          this.channelogParam.totalResult = res.data.total;
-        });
-      },
-      ewm(row) {
-        this.dialogVisible = true;
-        this.$nextTick(function () {
-          document.getElementById("qrcode").innerHTML = "";
-          let qrcode = new QRCode("qrcode", {
-            width: 300,
-            height: 300,
-            text: `https://operation.mige.tv/a/#/${row.channelKey}`,
-          });
+    searchEvent () {
+      get("/channelInfo/channelogpage", this.channelogParam).then((res) => {
+        this.channelog = res.data.list;
+        this.channelogParam.totalResult = res.data.total;
+      });
+    },
+    ewm (row) {
+      this.dialogVisible = true;
+      this.$nextTick(function () {
+        document.getElementById("qrcode").innerHTML = "";
+        let qrcode = new QRCode("qrcode", {
+          width: 300,
+          height: 300,
+          text: `https://operation.mige.tv/a/#/${row.channelKey}`,
         });
-      },
-      // onSubmit() {
-      //   post(
-      //     "/channelInfo/pushdata?beginTime=" +
-      //       this.pushdataDate[0] +
-      //       "&endTime=" +
-      //       this.pushdataDate[1],
-      //     {}
-      //   ).then((res) => {
-      //     this.$message({
-      //       message: res.message,
-      //       type: "success",
-      //     });
-      //     this.pushdata = false;
-      //   });
-      // },
-      checkpushdata(e) {
-        get("/channelInfo/detail", {
-          id: e.id,
-        }).then((res1) => {
-          id;
-          let channel = res1.data;
-          get("/channelInfo/checkpushdata", {
-            fullCode: channel.fullCode,
-          }).then((res) => {
-            let data = JSON.parse(res.data)[0];
-            if (data.resdesc == "ok" && data.subchannelkey !== "null") {
+      });
+    },
+    // onSubmit() {
+    //   post(
+    //     "/channelInfo/pushdata?beginTime=" +
+    //       this.pushdataDate[0] +
+    //       "&endTime=" +
+    //       this.pushdataDate[1],
+    //     {}
+    //   ).then((res) => {
+    //     this.$message({
+    //       message: res.message,
+    //       type: "success",
+    //     });
+    //     this.pushdata = false;
+    //   });
+    // },
+    checkpushdata (e) {
+      get("/channelInfo/detail", {
+        id: e.id,
+      }).then((res1) => {
+        id;
+        let channel = res1.data;
+        get("/channelInfo/checkpushdata", {
+          fullCode: channel.fullCode,
+        }).then((res) => {
+          let data = JSON.parse(res.data)[0];
+          if (data.resdesc == "ok" && data.subchannelkey !== "null") {
+            this.$message({
+              message: data.subchannelname + "已同步",
+              type: "success",
+            });
+          } else {
+            let bigentime = channel.createTime;
+            let endtime = this.dateNew(new Date(bigentime).getTime() + 3600000);
+            this.pushdataDate = [bigentime, endtime];
+            post(
+              "/channelInfo/pushdata?beginTime=" +
+              this.pushdataDate[0] +
+              "&endTime=" +
+              this.pushdataDate[1], {}
+            ).then((res) => {
+              // console.log(res);
               this.$message({
-                message: data.subchannelname + "已同步",
+                message: channel.channelName + "同步成功",
                 type: "success",
               });
-            } else {
-              let bigentime = channel.createTime;
-              let endtime = this.dateNew(new Date(bigentime).getTime() + 3600000);
-              this.pushdataDate = [bigentime, endtime];
-              post(
-                "/channelInfo/pushdata?beginTime=" +
-                this.pushdataDate[0] +
-                "&endTime=" +
-                this.pushdataDate[1], {}
-              ).then((res) => {
-                // console.log(res);
-                this.$message({
-                  message: channel.channelName + "同步成功",
-                  type: "success",
-                });
-                // console.log("success");
-              });
-            }
-          });
+              // console.log("success");
+            });
+          }
         });
-      },
-      // dateNew(timestamp) {
-      //   var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
-      //   var Y = date.getFullYear() + "-";
-      //   var M =
-      //     (date.getMonth() + 1 < 10
-      //       ? "0" + (date.getMonth() + 1)
-      //       : date.getMonth() + 1) + "-";
-      //   // var D = date.getDate() + ' ';
-      //   var D =
-      //     (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
-      //   var h = date.getHours() + ":";
-      //   var m = date.getMinutes() + ":";
-      //   var s = date.getSeconds();
-      //   return Y + M + D + h + m + s;
-      // },
+      });
+    },
+    // dateNew(timestamp) {
+    //   var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
+    //   var Y = date.getFullYear() + "-";
+    //   var M =
+    //     (date.getMonth() + 1 < 10
+    //       ? "0" + (date.getMonth() + 1)
+    //       : date.getMonth() + 1) + "-";
+    //   // var D = date.getDate() + ' ';
+    //   var D =
+    //     (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
+    //   var h = date.getHours() + ":";
+    //   var m = date.getMinutes() + ":";
+    //   var s = date.getSeconds();
+    //   return Y + M + D + h + m + s;
+    // },
 
-      // editClosedEvent({ row, column }) {
-      //   const $table = this.$refs.xTable;
-      //   const field = column.property;
-      //   const cellValue = row[field];
-      //   // 判断单元格值是否被修改
-      //   if ($table.isUpdateByRow(row, field)) {
-      //     setTimeout(() => {
-      //       let param = {};
-      //       param[field] = cellValue;
-      //       post("/channelInfo/update/" + row.id, row).then((res) => {
-      //         this.$message({
-      //           message: res.message,
-      //           type: "success",
-      //         });
-      //       });
-      //       // 局部更新单元格为已保存状态
-      //       $table.reloadRow(row, null, field);
-      //     }, 300);
-      //   }
-      // },
+    // editClosedEvent({ row, column }) {
+    //   const $table = this.$refs.xTable;
+    //   const field = column.property;
+    //   const cellValue = row[field];
+    //   // 判断单元格值是否被修改
+    //   if ($table.isUpdateByRow(row, field)) {
+    //     setTimeout(() => {
+    //       let param = {};
+    //       param[field] = cellValue;
+    //       post("/channelInfo/update/" + row.id, row).then((res) => {
+    //         this.$message({
+    //           message: res.message,
+    //           type: "success",
+    //         });
+    //       });
+    //       // 局部更新单元格为已保存状态
+    //       $table.reloadRow(row, null, field);
+    //     }, 300);
+    //   }
+    // },
 
-      add(e, type, channelName) {
-        this.$router.push(
-          "/channel/channelEdit?id=" +
-          e.id +
-          "&type=" +
-          type +
-          "&firstChannelName=" +
-          channelName
-        );
-      },
+    add (e, type, channelName) {
+      this.$router.push(
+        "/channel/channelEdit?id=" +
+        e.id +
+        "&type=" +
+        type +
+        "&firstChannelName=" +
+        channelName
+      );
     },
-  };
+  },
+};
 
 </script>
 

+ 53 - 135
admin/src/views/produce/index.vue

@@ -21,9 +21,9 @@
       </el-header>
 
       <!--表格-->
-      <el-main class="tableBox" >
+      <el-main class="tableBox">
         <el-button style="float: right" type="warning" size="small" icon="el-icon-circle-plus-outline" @click="add">立即创建</el-button>
-        <el-table :data="tableData" stripe style="width: 100%">
+        <el-table :data="tableData" style="width: 100%" border>
           <el-table-column prop="productName" label="产品名称" width="200" />
           <el-table-column prop="spid" label="SPID" width="80" />
           <el-table-column prop="cpid" label="CPID" width="80" />
@@ -40,30 +40,13 @@
           </el-table-column>
         </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"
-          />
+          <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>
 
     <!--新增抽屉-->
-    <el-drawer
-      ref="addDrawer"
-      title="新增产品"
-      size="100%"
-      :before-close="addHandleClose"
-      :with-header="false"
-      :visible.sync="addDialog"
-      direction="rtl"
-      custom-class="demo-drawer"
-    >
+    <el-drawer ref="addDrawer" title="新增产品" size="100%" :before-close="addHandleClose" :with-header="false" :visible.sync="addDialog" direction="rtl" custom-class="demo-drawer">
       <div class="demo-drawer__content" style="overflow-y: scroll;height: 100vh">
         <span>新增产品</span>
         <el-form :model="addForm">
@@ -72,12 +55,7 @@
           </el-form-item>
           <el-form-item label="CPID" label-width="80px">
             <el-select v-model="addForm.cpid" placeholder="请选择">
-              <el-option
-                v-for="item in cateList"
-                :key="item.cpid"
-                :label="item.cpid"
-                :value="item.cpid"
-              />
+              <el-option v-for="item in cateList" :key="item.cpid" :label="item.cpid" :value="item.cpid" />
             </el-select>
           </el-form-item>
           <el-form-item label="SPID" label-width="80px">
@@ -88,9 +66,9 @@
           </el-form-item>
           <el-form-item label="产品形态" label-width="80px">
             <el-select v-model="addForm.isCompositeProduct" placeholder="请选择">
-              <el-option label="单产品" :value="0"/>
-              <el-option label="复合产品" :value="1"/>
-              <el-option label="多选一" :value="2"/>
+              <el-option label="单产品" :value="0" />
+              <el-option label="复合产品" :value="1" />
+              <el-option label="多选一" :value="2" />
             </el-select>
           </el-form-item>
           <el-form-item label="	产品原价" label-width="80px">
@@ -142,45 +120,24 @@
           </el-form-item>
 
           <el-form-item label="banner" label-width="80px">
-            <el-upload
-              :action="imgapi"
-              list-type="picture-card"
-              :file-list="bannerList"
-              :on-success="bannerPreview"
-              :on-remove="bannerRemove"
-            >
+            <el-upload :action="imgapi" list-type="picture-card" :file-list="bannerList" :on-success="bannerPreview" :on-remove="bannerRemove">
               <i class="el-icon-plus" />
             </el-upload>
           </el-form-item>
           <el-form-item label="logo" label-width="80px">
-            <el-upload
-              class="avatar-uploader"
-              :action="imgapi"
-              :show-file-list="false"
-              :on-success="logoPreview"
-            >
+            <el-upload class="avatar-uploader" :action="imgapi" :show-file-list="false" :on-success="logoPreview">
               <img v-if="logoUrl" :src="logoUrl" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon" />
             </el-upload>
           </el-form-item>
           <el-form-item label="推广图" label-width="80px">
-            <el-upload
-              class="avatar-uploader"
-              :action="imgapi"
-              :show-file-list="false"
-              :on-success="proPreview"
-            >
+            <el-upload class="avatar-uploader" :action="imgapi" :show-file-list="false" :on-success="proPreview">
               <img v-if="proUrl" :src="proUrl" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon" />
             </el-upload>
           </el-form-item>
           <el-form-item label="引导图" label-width="80px">
-            <el-upload
-              class="avatar-uploader"
-              :action="imgapi"
-              :show-file-list="false"
-              :on-success="guidPreview"
-            >
+            <el-upload class="avatar-uploader" :action="imgapi" :show-file-list="false" :on-success="guidPreview">
               <img v-if="guidUrl" :src="guidUrl" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon" />
             </el-upload>
@@ -188,12 +145,7 @@
         </el-form>
         <el-tabs type="border-card" style="margin-top: 20px">
           <el-tab-pane key="orderingInfo" label="产品订购说明">
-            <quill-editor
-              ref="text"
-              v-model="addForm.orderingInfo"
-              class="myQuillEditor"
-              :options="editorOption"
-            />
+            <quill-editor ref="text" v-model="addForm.orderingInfo" class="myQuillEditor" :options="editorOption" />
           </el-tab-pane>
           <el-tab-pane key="givePhoneInfo" label="赠送话费说明">
             <quill-editor ref="text" v-model="addForm.givePhoneInfo" class="myQuillEditor" :options="editorOption" />
@@ -207,16 +159,7 @@
     </el-drawer>
 
     <!--编辑抽屉-->
-    <el-drawer
-      ref="editDrawer"
-      title="新增产品"
-      size="100%"
-      :before-close="editHandleClose"
-      :with-header="false"
-      :visible.sync="editDialog"
-      direction="rtl"
-      custom-class="demo-drawer"
-    >
+    <el-drawer ref="editDrawer" title="新增产品" size="100%" :before-close="editHandleClose" :with-header="false" :visible.sync="editDialog" direction="rtl" custom-class="demo-drawer">
       <div class="demo-drawer__content" style="overflow-y: scroll;height: 100vh">
         <span>编辑产品</span>
         <el-form :model="editForm">
@@ -225,12 +168,7 @@
           </el-form-item>
           <el-form-item label="CPID" label-width="80px">
             <el-select v-model="editForm.cpid" placeholder="请选择">
-              <el-option
-                v-for="item in cateList"
-                :key="item.cpid"
-                :label="item.cpid"
-                :value="item.cpid"
-              />
+              <el-option v-for="item in cateList" :key="item.cpid" :label="item.cpid" :value="item.cpid" />
             </el-select>
           </el-form-item>
           <el-form-item label="SPID" label-width="80px">
@@ -241,9 +179,9 @@
           </el-form-item>
           <el-form-item label="产品形态" label-width="80px">
             <el-select v-model="editForm.isCompositeProduct" placeholder="请选择">
-              <el-option label="单产品" :value="0"/>
-              <el-option label="复合产品" :value="1"/>
-              <el-option label="多选一" :value="2"/>
+              <el-option label="单产品" :value="0" />
+              <el-option label="复合产品" :value="1" />
+              <el-option label="多选一" :value="2" />
             </el-select>
           </el-form-item>
           <el-form-item label="	产品原价" label-width="80px">
@@ -294,45 +232,24 @@
             </div>
           </el-form-item>
           <el-form-item label="banner" label-width="80px">
-            <el-upload
-              :action="imgapi"
-              list-type="picture-card"
-              :file-list="bannerList"
-              :on-success="bannerPreview"
-              :on-remove="bannerRemove"
-            >
+            <el-upload :action="imgapi" list-type="picture-card" :file-list="bannerList" :on-success="bannerPreview" :on-remove="bannerRemove">
               <i class="el-icon-plus" />
             </el-upload>
           </el-form-item>
           <el-form-item label="logo" label-width="80px">
-            <el-upload
-              class="avatar-uploader"
-              :action="imgapi"
-              :show-file-list="false"
-              :on-success="logoPreview"
-            >
+            <el-upload class="avatar-uploader" :action="imgapi" :show-file-list="false" :on-success="logoPreview">
               <img v-if="logoUrl" :src="logoUrl" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon" />
             </el-upload>
           </el-form-item>
           <el-form-item label="推广图" label-width="80px">
-            <el-upload
-              class="avatar-uploader"
-              :action="imgapi"
-              :show-file-list="false"
-              :on-success="proPreview"
-            >
+            <el-upload class="avatar-uploader" :action="imgapi" :show-file-list="false" :on-success="proPreview">
               <img v-if="proUrl" :src="proUrl" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon" />
             </el-upload>
           </el-form-item>
           <el-form-item label="引导图" label-width="80px">
-            <el-upload
-              class="avatar-uploader"
-              :action="imgapi"
-              :show-file-list="false"
-              :on-success="guidPreview"
-            >
+            <el-upload class="avatar-uploader" :action="imgapi" :show-file-list="false" :on-success="guidPreview">
               <img v-if="guidUrl" :src="guidUrl" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon" />
             </el-upload>
@@ -340,12 +257,7 @@
         </el-form>
         <el-tabs type="border-card" style="margin-top: 20px">
           <el-tab-pane key="orderingInfo" label="产品订购说明">
-            <quill-editor
-              ref="text"
-              v-model="editForm.orderingInfo"
-              class="myQuillEditor"
-              :options="editorOption"
-            />
+            <quill-editor ref="text" v-model="editForm.orderingInfo" class="myQuillEditor" :options="editorOption" />
           </el-tab-pane>
           <el-tab-pane key="givePhoneInfo" label="赠送话费说明">
             <quill-editor ref="text" v-model="editForm.givePhoneInfo" class="myQuillEditor" :options="editorOption" />
@@ -369,7 +281,7 @@ export default {
   components: {
     quillEditor
   },
-  data() {
+  data () {
     return {
       loading: false,
       editDialog: false,
@@ -466,7 +378,7 @@ export default {
       }
     }
   },
-  created() {
+  created () {
     var that = this
     that.search()
 
@@ -482,7 +394,7 @@ export default {
       })
   },
   methods: {
-    async search() { // 同步搜索
+    async search () { // 同步搜索
       await get('/productInfo/page', this.searchForm)
         .then((res) => {
           this.tableData = res.data.list
@@ -491,10 +403,10 @@ export default {
           console.log(err)
         })
     },
-    searchBtn() { // 搜索按钮
+    searchBtn () { // 搜索按钮
       this.search()
     },
-    reset() { // 重置
+    reset () { // 重置
       this.searchForm = {
         cpid: '',
         categoryName: '',
@@ -503,14 +415,14 @@ export default {
       }
       this.search()
     },
-    add() { // 新增
+    add () { // 新增
       this.addDialog = true
       this.bannerList = []
       this.logoUrl = ''
       this.proUrl = ''
       this.guidUrl = ''
     },
-    addHandleClose(done) { // 新增数据
+    addHandleClose (done) { // 新增数据
       if (this.loading) return
       this.$confirm('确定要提交吗?')
         .then(_ => {
@@ -533,7 +445,7 @@ export default {
           this.addDialog = false
         })
     },
-    edit(e) { // 编辑
+    edit (e) { // 编辑
       this.bannerList = []
       this.editForm = e
       var thc = JSON.parse(e.themeColor)
@@ -564,7 +476,7 @@ export default {
       }
       this.editDialog = true
     },
-    editHandleClose(done) { // 修改数据
+    editHandleClose (done) { // 修改数据
       if (this.loading) return
       this.$confirm('确定要提交吗?')
         .then(_ => {
@@ -587,7 +499,7 @@ export default {
           this.editDialog = false
         })
     },
-    refresh(row) {
+    refresh (row) {
       post('/productInfo/update/' + row.id, row)
         .then((res) => {
           this.$notify({
@@ -599,7 +511,7 @@ export default {
           console.log(err)
         })
     },
-    dele(e) { // 删除
+    dele (e) { // 删除
       this.$confirm('确定要删除么?')
         .then(_ => {
           post('/productInfo/delete', { ids: [e] })
@@ -608,7 +520,7 @@ export default {
             })
         })
     },
-    cancelForm() { // 关闭抽屉
+    cancelForm () { // 关闭抽屉
       this.loading = false
       this.editDialog = false
       this.addDialog = false
@@ -618,15 +530,15 @@ export default {
       this.guidUrl = ''
       clearTimeout(this.timer)
     },
-    handleSizeChange(e) { // 单页数量
+    handleSizeChange (e) { // 单页数量
       this.searchForm.pageSize = e
       this.search()
     },
-    handleCurrentChange(e) { // 跳页
+    handleCurrentChange (e) { // 跳页
       this.searchForm.pageNum = e
       this.search()
     },
-    bannerPreview(response) {
+    bannerPreview (response) {
       this.bannerList = this.bannerList.concat({ link: response.data, url: process.env.VUE_APP_BASE_IMG_URL + response.data })
       var newlist = []
       for (let i = 0; i < this.bannerList.length; i++) {
@@ -636,7 +548,7 @@ export default {
       this.editForm.bannerPics = JSON.stringify(newlist)
       console.log(this.addForm.bannerPics)
     },
-    bannerRemove(file, fileList) {
+    bannerRemove (file, fileList) {
       this.bannerList = fileList
       var newlist = []
       for (let i = 0; i < this.bannerList.length; i++) {
@@ -644,17 +556,17 @@ export default {
       }
       this.editForm.bannerPics = JSON.stringify(newlist)
     },
-    logoPreview(file) {
+    logoPreview (file) {
       this.logoUrl = process.env.VUE_APP_BASE_IMG_URL + file.data
       this.editForm.logoPic = file.data
       this.addForm.logoPic = file.data
     },
-    proPreview(file) {
+    proPreview (file) {
       this.proUrl = process.env.VUE_APP_BASE_IMG_URL + file.data
       this.editForm.promotionPic = file.data
       this.addForm.promotionPic = file.data
     },
-    guidPreview(file) {
+    guidPreview (file) {
       this.guidUrl = process.env.VUE_APP_BASE_IMG_URL + file.data
       this.editForm.guidancePic = file.data
       this.addForm.guidancePic = file.data
@@ -677,9 +589,13 @@ export default {
     margin: auto;
   }
 }
-.el-header {padding: 20px}
-.el-form-item {margin-bottom: unset}
-.tableBox{
+.el-header {
+  padding: 20px;
+}
+.el-form-item {
+  margin-bottom: unset;
+}
+.tableBox {
   margin-top: 10px;
   background-color: #fff;
   border-radius: 4px;
@@ -702,7 +618,9 @@ export default {
       flex: 1;
     }
   }
-  .ql-editor {height: 250px}
+  .ql-editor {
+    height: 250px;
+  }
 }
 
 .avatar-uploader {
@@ -724,7 +642,7 @@ export default {
   border-radius: 6px;
 }
 .avatar-uploader-icon:hover {
-  border-color: #409EFF;
+  border-color: #409eff;
 }
 .avatar {
   width: 148px;

+ 47 - 40
admin/src/views/produce/produceClass/index.vue

@@ -1,44 +1,44 @@
 <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.categoryName" placeholder="分类名称" />
-          </el-form-item>
-          <el-form-item label="CPID">
-            <el-input v-model="searchForm.cpid" placeholder="CPID" />
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" @click="searchBtn">查询</el-button>
-            <el-button @click="reset">重置</el-button>
-          </el-form-item>
-        </el-form>
-      </el-header>
+  <div class="app-container">
+    <!--搜索-->
 
-      <!--表格-->
-      <el-main class="tableBox">
-        <el-button style="float: right" type="warning" icon="el-icon-circle-plus-outline" @click="add">立即创建</el-button>
-        <el-table :data="tableData" stripe style="width: 100%">
-          <el-table-column prop="parentCategory" label="产品大类" />
-          <el-table-column prop="categoryName" label="分类名称" />
-          <el-table-column prop="cpid" label="CPID" />
-          <el-table-column prop="pwd" label="会员pwd" />
-          <el-table-column prop="createTime" label="创建时间" />
-          <el-table-column fixed="right" label="操作" width="100">
-            <template slot-scope="scope">
-              <el-button type="text" size="small" @click="edit(scope.row.id, scope.row)">编辑</el-button>
-              <el-button type="text" size="small" @click="dele(scope.row.id)">删除</el-button>
-            </template>
-          </el-table-column>
-        </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>
+    <el-form :inline="true" :model="searchForm" class="demo-form-inline">
+      <el-form-item label="分类名称">
+        <el-input v-model="searchForm.categoryName" placeholder="分类名称" clearable size="mini" />
+      </el-form-item>
+      <el-form-item label="CPID">
+        <el-input v-model="searchForm.cpid" placeholder="CPID" clearable size="mini" />
+      </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-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-col>
+    </el-row>
+
+    <el-table :data="tableData">
+      <el-table-column prop="parentCategory" label="产品大类" />
+      <el-table-column prop="categoryName" label="分类名称" />
+      <el-table-column prop="cpid" label="CPID" />
+      <el-table-column prop="pwd" label="会员pwd" />
+      <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>
+        </template>
+      </el-table-column>
+
+    </el-table>
+
+    <pagination v-show="total > 0" :total="total" :page="pageNo" :limit="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">
@@ -105,8 +105,8 @@ export default {
       searchForm: {
         cpid: null,
         categoryName: null,
-        pageSize: 20,
-        pageNum: 1,
+        pageSize: 10,
+        pageNo: 1,
       },
       addForm: {
         cpid: "",
@@ -131,6 +131,13 @@ export default {
     that.search();
   },
   methods: {
+    // 改变页码触发
+    pagination (page) {
+      this.pageNo = page.page;
+      // 重新获取列表数据
+      this.search();
+    },
+
     getTimeStr (timeStamp) {
       var now = new Date(timeStamp),
         y = now.getFullYear(),

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

@@ -1,10 +1,10 @@
 <template>
-  <div class="productManagement">
+  <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="产品名称"></el-input>
+        <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>
@@ -21,20 +21,23 @@
         <el-button style="float: left" @click="init"> 刷新 </el-button>
       </el-form-item>
       <el-form-item>
-        <vxe-table border :data="productFrom.productData">
-          <vxe-table-column field="productName" title="产品名称" />
-          <vxe-table-column field="spid" title="spid" />
-          <vxe-table-column field="remark" title="备注" />
-          <vxe-table-column field="originalPrice" title="原价" />
-          <vxe-table-column field="createTime" title="时间" />
-          <vxe-table-column title="操作">
-            <template #default="{ row }">
-              <vxe-button @click="edit(row.id)">编辑</vxe-button>
-              <vxe-button @click="addPush(row)">复制</vxe-button>
-              <vxe-button @click="dele(row.id)">删除</vxe-button>
+
+        <el-table :data="productFrom.productData">
+          <el-table-column label="产品名称" prop="productName" />
+          <el-table-column label="spid" prop="spid" />
+          <el-table-column label="备注" prop="remark" />
+          <el-table-column label="原价" prop="originalPrice" />
+          <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-delete" @click="dele(scope.row.id)">删除</el-button>
             </template>
-          </vxe-table-column>
-        </vxe-table>
+          </el-table-column>
+
+        </el-table>
+
       </el-form-item>
       <el-form-item>
         <el-pagination style="float: right" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="productFrom.currenttPage" :page-sizes="[10, 20, 30, 40, 50]" layout="total, sizes, prev, pager, next, jumper" :total="productFrom.total" :page-size="productFrom.pageSize">
@@ -140,7 +143,7 @@ export default {
 
 
       if (!data.productName || !data.spid) {
-       this.$message.error("请输入内容")
+        this.$message.error("请输入内容")
       } else {
         get("/product/info/page", data).then((res) => {
           console.log(res, "搜索");
@@ -190,24 +193,4 @@ export default {
 
 </script>
 
-<style lang="scss" scoped>
-.productManagement {
-  width: 100%;
-  height: 100%;
-
-  ::v-deep .rowBorder {
-    background-color: #fff;
-    border-radius: 4px;
-    box-shadow: #bfbfbf 0 0 2px;
-    height: unset !important;
-    padding: 10px 10px;
-  }
 
-  .formBorder {
-    padding: 20px 20px;
-    margin-top: 20px;
-    box-shadow: #bfbfbf 0 0 2px;
-    box-sizing: border-box;
-  }
-}
-</style>

+ 105 - 166
admin/src/views/schemeV2/index.vue

@@ -3,182 +3,112 @@
     <el-container>
       <!--搜索-->
       <el-header class="searchBox">
-        <el-form
-          :inline="true"
-          :model="searchForm"
-          ref="searchForm"
-          class="demo-form-inline"
-        >
+        <el-form :inline="true" :model="searchForm" ref="searchForm" class="demo-form-inline">
           <el-form-item label="策略名称">
-            <el-input
-              v-model="searchForm.strategyName"
-              name="searchForm.strategyName"
-              placeholder="策略名称"
-            />
+            <el-input v-model="searchForm.strategyName" name="searchForm.strategyName" placeholder="策略名称" size="mini" />
           </el-form-item>
           <el-form-item label="策略类型">
-            <el-select
-              v-model="searchForm.strategyType"
-              filterable
-              placeholder="请选择"
-            >
+            <el-select v-model="searchForm.strategyType" filterable placeholder="请选择" size="mini">
               <el-option label="基本" :value="0" />
               <el-option label="活动" :value="1" />
               <el-option label="测试" :value="2" />
             </el-select>
           </el-form-item>
           <el-form-item label="生效状态">
-            <el-select
-              v-model="searchForm.strategyStatus"
-              filterable
-              placeholder="请选择"
-            >
+            <el-select v-model="searchForm.strategyStatus" filterable placeholder="请选择" size="mini">
               <el-option label="生效中" :value="1" />
               <el-option label="未生效" :value="0" />
             </el-select>
           </el-form-item>
 
           <el-form-item style="float: right">
-            <el-button type="primary" @click="init()">搜索</el-button>
-            <el-button @click="reset('searchForm')">重置</el-button>
+            <el-button type="primary" @click="init()" size="mini">搜索</el-button>
+            <el-button @click="reset('searchForm')" size="mini">重置</el-button>
           </el-form-item>
         </el-form>
       </el-header>
+
       <!--表格-->
-      <el-main class="tableBox">
-        <vxe-toolbar>
-          <template #buttons>
-            <vxe-button icon="fa fa-plus" @click="toAdd">新增</vxe-button>
-            <vxe-button @click="init()">刷新</vxe-button>
-            <vxe-button
-              status="primary"
-              style="float: right"
-              icon="fa fa-plus"
-              @click="value5 = true"
-              >历史记录</vxe-button
-            >
+      <vxe-toolbar>
+        <template #buttons>
+          <vxe-button icon="fa fa-plus" @click="toAdd" size="mini">新增</vxe-button>
+          <vxe-button @click="init()" size="mini">刷新</vxe-button>
+          <vxe-button status="primary" style="float: right" icon="fa fa-plus" @click="value5 = true" size="mini">历史记录</vxe-button>
+        </template>
+      </vxe-toolbar>
+
+      <el-table :data="tableData" row-key="id" ref="xTable" @edit-closed="editClosedEvent" :edit-config="{ trigger: 'click', mode: 'cell', showStatus: true }">
+        <el-table-column prop="strategyName" label="策略名称" :edit-render="{ name: 'input' }"></el-table-column>
+        <el-table-column prop="maskText" label="策略备注" align="center"></el-table-column>
+        <el-table-column prop="strategyType" label="策略类型" align="center">
+          <template slot-scope="scope">
+            {{ strategyType[scope.row.strategyType].label }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="strategyStatus" label="状态" align="center">
+
+          <template slot-scope="scope">
+            <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
+          </template>
+        </el-table-column>
+        <el-table-column prop="templateId" label="使用模板" align="center">
+          <template slot-scope="scope">
+            {{ scope.row.templateName }}
           </template>
-        </vxe-toolbar>
-        <vxe-table
-          border
-          resizable
-          keep-source
-          show-overflow
-          highlight-hover-row
-          ref="xTable"
-          :data="tableData"
-          :edit-config="{ trigger: 'click', mode: 'cell', showStatus: true }"
-          @edit-closed="editClosedEvent"
-        >
-          <vxe-table-column field="strategyName" title="策略名称" />
-          <vxe-table-column
-            field="maskText"
-            title="策略备注"
-            :edit-render="{ name: 'input' }"
-            width="300"
-          />
-          <vxe-table-column field="strategyType" title="策略类型" width="100">
-            <template #default="{ row, _columnIndex }">
-              {{ strategyType[row.strategyType].label }}
+        </el-table-column>
+        <el-table-column prop="createTime" label="创建时间" align="center"></el-table-column>
+        <el-table-column label="操作" align="center">
+          <template slot-scope="scope">
+            <template>
+              <!--  v-if="$refs.xTable.isActiveByRow(scope.row)"-->
+              <el-button @click="saveRowEvent(scope.row)" size="mini">保存</el-button>
+              <el-button @click="cancelRowEvent(scope.row)" size="mini">取消</el-button>
             </template>
-          </vxe-table-column>
-          <vxe-table-column
-            field="strategyStatus"
-            title="状态"
-            :edit-render="{ name: '$select', options: strategyStatus }"
-            width="80"
-          />
-          <vxe-table-column field="templateId" title="使用模板">
-            <template #default="{ row, _columnIndex }">
-              {{ row.templateName }}
+            <template>
+              <el-button @click="toEdit(scope.row.id)" size="mini">编辑</el-button>
+              <el-button @click="toCopy(scope.row.id)" size="mini">复制</el-button>
+              <el-button @click="del(scope.row.id)" size="mini">删除</el-button>
             </template>
-          </vxe-table-column>
-          <vxe-table-column field="createTime" title="创建时间" />
-          <vxe-table-column title="操作" width="220">
-            <template #default="{ row }">
-              <template v-if="$refs.xTable.isActiveByRow(row)">
-                <vxe-button @click="saveRowEvent(row)">保存</vxe-button>
-                <vxe-button @click="cancelRowEvent(row)">取消</vxe-button>
-              </template>
-              <template v-else>
-                <vxe-button @click="toEdit(row.id)">编辑</vxe-button>
-                <vxe-button @click="toCopy(row.id)">复制</vxe-button>
-                <vxe-button @click="del(row.id)">删除</vxe-button>
-              </template>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <!--<vxe-table border resizable keep-source show-overflow highlight-hover-row ref="xTable" :data="tableData" :edit-config="{ trigger: 'click', mode: 'cell', showStatus: true }" @edit-closed="editClosedEvent">
+       </vxe-table>-->
+
+      <!-- <pagination v-show="total > 0" :total="total" :page="pageNo" :limit="pageSizes" @pagination="pagination" />-->
+
+      <!-- 历史记录 -->
+      <vxe-modal v-model="value5" width="60%" title="历史记录">
+        <template #default>
+          <vxe-toolbar>
+            <template #buttons>
+              <vxe-input v-model="schemelogParam.notes" type="search" clearable placeholder="搜索操作记录"></vxe-input>
+              <vxe-input v-model="schemelogParam.userName" type="search" clearable placeholder="搜索操作人"></vxe-input>
+              <vxe-button @click="searchEvent" content="搜索"></vxe-button>
             </template>
-          </vxe-table-column>
-        </vxe-table>
-        <vxe-pager
-          :loading="loading"
-          :current-page="searchForm.pageNum"
-          :page-size="searchForm.pageSize"
-          :total="searchForm.totalResult"
-          :layouts="[
-            'PrevPage',
-            'JumpNumber',
-            'NextPage',
-            'FullJump',
-            'Sizes',
-            'Total',
-          ]"
-          @page-change="handlePageChange"
-        />
+          </vxe-toolbar>
 
-        <!-- 历史记录 -->
-        <vxe-modal v-model="value5" width="60%" title="历史记录">
-          <template #default>
-            <vxe-toolbar>
-              <template #buttons>
-                <vxe-input
-                  v-model="schemelogParam.notes"
-                  type="search"
-                  clearable
-                  placeholder="搜索操作记录"
-                ></vxe-input>
-                <vxe-input
-                  v-model="schemelogParam.userName"
-                  type="search"
-                  clearable
-                  placeholder="搜索操作人"
-                ></vxe-input>
-                <vxe-button @click="searchEvent" content="搜索"></vxe-button>
+          <vxe-table auto-resize height="600" :data="schemelog">
+            <vxe-table-column field="createTime" title="时间"></vxe-table-column>
+            <vxe-table-column field="notes" title="操作记录">
+              <template slot-scope="props">
+                <div v-html="props.row.notes"></div>
               </template>
-            </vxe-toolbar>
-
-            <vxe-table auto-resize height="600" :data="schemelog">
-              <vxe-table-column
-                field="createTime"
-                title="时间"
-              ></vxe-table-column>
-              <vxe-table-column field="notes" title="操作记录">
-                <template slot-scope="props">
-                  <div v-html="props.row.notes"></div>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column
-                field="userName"
-                title="操作人"
-              ></vxe-table-column>
-            </vxe-table>
-            <vxe-pager
-              :loading="loading"
-              :current-page="schemelogParam.pageNum"
-              :page-size="schemelogParam.pageSize"
-              :total="schemelogParam.totalResult"
-              :layouts="[
+            </vxe-table-column>
+            <vxe-table-column field="userName" title="操作人"></vxe-table-column>
+          </vxe-table>
+          <vxe-pager :loading="loading" :current-page="schemelogParam.pageNum" :page-size="schemelogParam.pageSize" :total="schemelogParam.totalResult" :layouts="[
                 'PrevPage',
                 'JumpNumber',
                 'NextPage',
                 'FullJump',
                 'Sizes',
                 'Total',
-              ]"
-              @page-change="handlePageChangeChannelog"
-            />
-          </template>
-        </vxe-modal>
-      </el-main>
-      <!-- <a href="../model/index.vue"></a> -->
+              ]" @page-change="handlePageChangeChannelog" />
+        </template>
+      </vxe-modal>
+
     </el-container>
   </div>
 </template>
@@ -188,7 +118,7 @@ import { post, get, del } from "@/api/common";
 import getTime from "@/utils/getTime.js";
 export default {
   name: "Index",
-  data() {
+  data () {
     return {
       //  搜索相关内容
       searchForm: {
@@ -196,7 +126,7 @@ export default {
         strategyName: "",
         strategyType: "",
         strategyStatus: "",
-        pageNum: 1,
+        pageNo: 1,
         pageSize: 10,
         totalResult: 0,
       },
@@ -242,25 +172,33 @@ export default {
       },
     };
   },
-  mounted() {
+  mounted () {
+    // console.log(this.$refs.xTable)
     this.init();
   },
   methods: {
-    toEdit(id) {
+
+    pagination (page) {
+      this.pageNo = page.page;
+      // 重新获取列表数据
+      this.init();
+    },
+
+    toEdit (id) {
       this.$router.push("/schemeV2/schemeAdd?ids=" + id);
     },
 
-    getTimeStr(timeStamp) {
+    getTimeStr (timeStamp) {
       var now = new Date(timeStamp),
         y = now.getFullYear(),
         m = ("0" + (now.getMonth() + 1)).slice(-2),
         d = ("0" + now.getDate()).slice(-2);
       return y + "-" + m + "-" + d + " " + now.toTimeString().substr(0, 8);
     },
-    init() {
+    init () {
       get("/strategy/strategy-info/page", {
         pageSize: 100,
-        pageNum: 1,
+        pageNo: 1,
       }).then((res) => {
         res.data.list.map((res) => {
           res.templatePhoto =
@@ -268,14 +206,14 @@ export default {
           res.label = res.templateName;
           res.value = res.id;
         });
-
+        this.total = res.data.total;
         this.tableData = res.data.list;
-        this.tableData.forEach((item) => {
-          item.createTime = getTime(item.createTime);
-        });
+        // this.tableData.forEach((item) => {
+        //   item.createTime = getTime(item.createTime);
+        // });
       });
     },
-    editClosedEvent({ row, column }) {
+    editClosedEvent ({ row, column }) {
       const $table = this.$refs.xTable;
       const field = column.property;
       const cellValue = row[field];
@@ -295,20 +233,21 @@ export default {
         }, 300);
       }
     },
-    reset(formName) {
+    reset (formName) {
       // 重置
       // this.searchForm = {}
       // get('/strategyInfoNew/page', {}).then(res => {
       //   this.tableData = res.data.list
       // })
     },
-    toAdd() {
+    toAdd () {
       this.$router.push("/schemeV2/schemeAdd");
     },
-    toCopy(id) {
-         this.$router.push("/schemeV2/schemeAdd?copyId=" + id);
+    toCopy (id) {
+      this.$router.push("/schemeV2/schemeAdd?copyId=" + id);
     },
-    del(id) {
+    del (ids) {
+      console.log(ids)
       this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
@@ -317,7 +256,7 @@ export default {
         .then(() => {
           // const $table = this.$refs.xTable;
           // $table.remove(row);
-          del("/strategy/strategy-info/delete", { id }).then((res) => {
+          del("/strategy/strategy-info/delete", { ids }).then((res) => {
             this.init();
           });
         })
@@ -328,12 +267,12 @@ export default {
           });
         });
     },
-    handlePageChange({ currentPage, pageSize }) {
+    handlePageChange ({ currentPage, pageSize }) {
       this.searchForm.pageNum = currentPage;
       this.searchForm.pageSize = pageSize;
       this.init();
     },
-    handlePageChangeChannelog({ currentPage, pageSize }) {
+    handlePageChangeChannelog ({ currentPage, pageSize }) {
       this.schemelogParam.pageNum = currentPage;
       this.schemelogParam.pageSize = pageSize;
       get("/strategyInfoNew/getlog", this.schemelogParam).then((res) => {
@@ -341,7 +280,7 @@ export default {
         this.schemelogParam.totalResult = res.data.total;
       });
     },
-    searchEvent() {
+    searchEvent () {
       get("/strategyInfoNew/getlog", this.schemelogParam).then((res) => {
         this.schemelog = res.data.list;
         this.schemelogParam.totalResult = res.data.total;

+ 130 - 113
admin/src/views/schemeV2/schemeAdd.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div class="app-container">
     <el-container>
       <el-main>
         <el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px">
@@ -486,10 +486,10 @@ export default {
         activeEndDate: "",
         activeEndTime: "23:59:59",
 
-        strategyId: "",
+        // strategyId: "",
         strategyName: "",
         strategyType: "",
-        templateId: 104,
+        templateId: "",
         primaryProductId: "",
         strategyStatus: "1",
         extJson: "",
@@ -541,6 +541,7 @@ export default {
         weeks: "",
         firstChannelId: "",
         secondChannelIds: "",
+        strategyId: "",
       },
       btn: "立即创建",
 
@@ -622,22 +623,22 @@ export default {
     document.title = "编辑策略";
   },
   mounted () {
-    // console.log(this.$route.query.ids);
+    //判断是否是编辑
     if (this.$route.query.ids) {
+
+
+      //数据回显
       get("/strategy/strategy-info/list", {
         ids: this.$route.query.ids,
       }).then((res) => {
-
+        console.log(res)
         res = res.data[0];
         this.oldform = JSON.parse(JSON.stringify(res));
         this.datetimerange = [res.activeEndDate, res.activeStartDate]
-
-        console.log(res);
         this.form = {
           activeEndTime: res.activeEndTime,
           activeStartTime: res.activeStartTime,
-
-          strategyId: res.strategyName,
+          strategyId: res.id,
           strategyName: res.strategyName,
           strategyType: res.strategyType,
           templateId: res.templateId,
@@ -656,46 +657,75 @@ export default {
           linkUrl: res.linkUrl,
           directCharge: res.directCharge,
           id: res.id,
+          weeks: res.weeks
         };
-        if (res.extJson) {
-          this.extJson = JSON.parse(res.extJson);
-          if (this.extJson.dispose) {
-            this.disposeVal = this.extJson.dispose.split(",");
-          }
-        }
-        if (res.activeStartDate) {
-          this.from.datetimerange = [res.activeStartDate, res.activeEndDate];
-        }
+
         if (res.weeks) {
+          console.log(res.weeks);
           let checkedWeeks = res.weeks.split(",");
-          checkedWeeks.forEach((item) => {
-            this.checkedWeeks.push(weekOptions[item]);
+
+          let weekList = checkedWeeks.map((item) => {
+            return item == "0"
+              ? "周一"
+              : item == "1"
+                ? "周二"
+                : item == "2"
+                  ? "周三"
+                  : item == "3"
+                    ? "周四"
+                    : item == "4"
+                      ? "周五"
+                      : item == "5"
+                        ? "周六"
+                        : "周日";
           });
+          console.log(weekList);
+          this.weeks = weekList
+          console.log(this.weeks);
+          // checkedWeeks.forEach((item) => {
+          //   this.checkedWeeks.push(weekOptions[item]);
+          // });
         }
-        let checkedchannel = [];
-        console.log(res);
-        res.channelInfoDatas.forEach((item) => {
-          checkedchannel.push([item.firstChannelId, item.secondChannelId]);
-        });
-        this.checkedchannel = checkedchannel;
 
-        this.rulesform = {
 
+        let checkedchannel = [];
 
+        this.rulesform = {
           activeStartDate: res.activeStartDate,
           activeEndDate: res.activeEndDate,
-          strategyId: this.$route.query.id,
+          strategyId: this.$route.query.ids,
           firstChannelId: res.firstChannelId,
           secondChannelIds: res.secondChannelIds,
         };
+        console.log(this.rulesform)
+        res.channelInfoDatas.forEach((item) => {
+          checkedchannel.push([item.firstChannelId, item.secondChannelId]);
+        });
+        this.checkedchannel = checkedchannel;
+
+
+
+
+        if (res.extJson) {
+          this.extJson = JSON.parse(res.extJson);
+          if (this.extJson.dispose) {
+            this.disposeVal = this.extJson.dispose.split(",");
+          }
+        }
+        if (res.activeStartDate) {
+          this.from.datetimerange = [res.activeStartDate, res.activeEndDate];
+        }
+
+
       });
       this.btn = "编辑保存";
     }
+    //是否是拷贝
     if (this.$route.query.copyId) {
       get("/strategy/strategy-info/list", {
         ids: this.$route.query.copyId,
       }).then((res) => {
-        console.log(res);
+
         res = res.data[0];
         this.oldform = JSON.parse(JSON.stringify(res));
         this.form = {
@@ -727,10 +757,12 @@ export default {
           this.form.datetimerange = [res.activeStartDate, res.activeEndDate];
         }
         if (res.weeks) {
+          console.log(res.weeks)
           let checkedWeeks = res.weeks.split(",");
           checkedWeeks.forEach((item) => {
             this.checkedWeeks.push(weekOptions[item]);
           });
+
         }
         let checkedchannel = [];
         res.channelInfoDatas.forEach((item) => {
@@ -739,47 +771,50 @@ export default {
         this.checkedchannel = checkedchannel;
         this.rulesform = {
 
-          strategyId: this.$route.query.id,
+          strategyId: this.$route.query.ids,
           firstChannelId: res.firstChannelId,
           secondChannelIds: res.secondChannelIds,
         };
       });
     }
+
+    //获取产品列表
     get("/product/info/page", {
       pageSize: 100,
       pageNum: 1,
     }).then((res) => {
       this.productInfoList = res.data.list;
     });
-    //获取模板列表
-    // get('/templateInfo/page', {
-    //   'pageSize': 9999,
-    //   'pageNum': 1
-    // }).then(res => {
-    //   res.data.list.map(res => {
-    //     res.templatePhoto = process.env.VUE_APP_BASE_IMG_URL + res.templatePhoto
-    //   });
-    //   this.templateList = res.data.list
-    // });
+
+    // 获取模板列表
+    get('/template/template-info/page', {
+      'pageSize': 100,
+      'pageNum': 1
+    }).then(res => {
+      res.data.list.map(res => {
+        res.templatePhoto = process.env.VUE_APP_BASE_IMG_URL + res.templatePhoto
+      });
+      this.templateList = res.data.list
+    });
+
+    //获取策略列表
     get("/strategy/strategy-info/page", {
       pageSize: 100,
       pageNum: 1,
     }).then((res) => {
       this.strategyInfoNewList = res.data.list;
     });
+    //获取渠道列表
     get("/channel/info/page", {
       pageSize: 100,
       pageNum: 1,
     }).then((res) => {
-      console.log(res, 555555555);
-
       this.options = getArrayClassification({
         data: res.data.list,
         parent: "parentId",
         id: "id",
         child: "children",
       });
-      //this.parentChannelId=res.
       this.props = {
         multiple: true,
         label: "channelName",
@@ -801,33 +836,32 @@ export default {
           this.$refs[formName].validate((valid) => {
             console.log(valid);
             if (valid) {
-              console.log(1111);
-              // let ids = this.form.unsubscribeStrategyIds[0];
-              // this.form.unsubscribeStrategyIds =
-              //   ids !== "" && ids !== [] && ids ? [ids] : [];
-              // let template = this.templateList.find((n) => {
-              //   return n.id === this.form.templateId;
-              // });
-              // this.extJson.templateCode = template.templateCode;
-              // if (
-              //   this.extJson.isMask === "1" &&
-              //   (!this.extJson.maskText || this.extJson.maskText === "")
-              // ) {
-              //   this.$message.error("遮罩文案未填写");
-              //   return false;
-              // }
-              // if (this.extJson.isZoetrope === '1' && (!this.extJson.zoetropeText || this.extJson
-              //     .zoetropeText === "")) {
-              //   this.$message.error('走马灯文案未填写');
-              //   return false
-              // }
-              console.log(222);
+              let ids = this.form.unsubscribeStrategyIds[0];
+              this.form.unsubscribeStrategyIds =
+                ids !== "" && ids !== [] && ids ? [ids] : [];
+              let template = this.templateList.find((n) => {
+                return n.id === this.form.templateId;
+              });
+              this.extJson.templateCode = template.templateCode;
+              if (
+                this.extJson.isMask === "1" &&
+                (!this.extJson.maskText || this.extJson.maskText === "")
+              ) {
+                this.$message.error("遮罩文案未填写");
+                return false;
+              }
+              if (this.extJson.isZoetrope === '1' && (!this.extJson.zoetropeText || this.extJson
+                .zoetropeText === "")) {
+                this.$message.error('走马灯文案未填写');
+                return false
+              }
+
               this.form.extJson = JSON.stringify(this.extJson);
               this.form.weeks = this.checkedWeeks
                 .map((i) => weekOptions.findIndex((j) => j == i))
                 .sort()
                 .toString();
-
+              //编辑操作记录
               if (this.$route.query.ids) {
                 // post("/strategyInfoNew/savelog", {
                 //   type: array2.activityType ? array2.activityType : 0,
@@ -854,12 +888,14 @@ export default {
                     });
                   });
                   this.rulesform.channelInfoDatas = checkedchannel;
-                  //   post(
-                  //     "strategyInfoNew/updateStrategyRules",
-                  //     this.rulesform
-                  //   ).then((res) => {
-                  //     // this.close()
-                  //   });
+                  // 修改更新策略匹配信息
+                  console.log(this.rulesform)
+                  put(
+                    "/strategy/strategy-info/updaterule",
+                    this.rulesform
+                  ).then((res) => {
+                    console.log("修改更新策略匹配信息", res)
+                  });
                   this.$message({
                     message: "操作成功",
                     type: "success",
@@ -871,33 +907,27 @@ export default {
                   //   }, 1200);
                 });
               } else {
+                //创建
                 post(
                   "/strategy/strategy-info/create", this.form).then((res) => {
-                    console.log(this.form, this.rulesform, this.datetimerange);
-
+                    // console.log(this.form, this.rulesform, this.datetimerange);
                     // console.log(this.form);
-                    // let params = {
-                    //   activeStartDate: "",
-                    //   activeStartTime: "00:00:00",
-                    //   activeEndDate: "",
-                    //   activeEndTime: "23:59:59" ,
-                    //   channelInfoDatas: [
-                    //     {
-                    //       firstChannelId: "",
-                    //       secondChannelId: "",
-                    //     },
-                    //   ],
-                    //   strategyId: "",
-                    //   weeks: "",
-                    // };
-                    // console.log(res);
-                    // post("strategyInfoNew/updateStrategyRules", params).then(
-                    //   (res) => {
-                    //     // this.close()
-                    //   }
-                    // );
-
-
+                    let params = {
+                      channelInfoDatas: [
+                        {
+                          firstChannelId: "",
+                          secondChannelId: "",
+                        },
+                      ],
+                      strategyId: "",
+                      weeks: "",
+                    };
+                    console.log(res);
+                    put("/strategy/strategy-info/updaterule", params).then(
+                      (res) => {
+                        // this.close()
+                      }
+                    );
                     this.$message({
                       message: "操作成功",
                       type: "success",
@@ -983,23 +1013,10 @@ export default {
 
 </script>
 
-<style lang="scss">
-.el-main {
-  height: 93vh;
-  padding-bottom: 100px;
-}
-
-.avatar {
-  width: 100%;
-  max-width: 500px;
-}
-
-.el-divider {
-  margin-bottom: 40px !important;
-
-  .el-divider__text {
-    font-size: 17px !important;
-    font-weight: bold !important;
-  }
+<style>
+.bodyBox {
+  position: fixed;
+  right: 20px;
+  bottom: 20px;
 }
 </style>