<template>
    <div style="padding-left: 5px">
        <el-breadcrumb separator=">">
        <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
        <el-breadcrumb-item>
          <a href="#">基础信息管理</a>
        </el-breadcrumb-item>
        <el-breadcrumb-item>
          <a href="/base/mobileBannerInfo-list">移动端首页图</a>
        </el-breadcrumb-item>
      </el-breadcrumb>
      <el-divider></el-divider>
      <el-form
        ref="queryForm"
        :model="queryModel"
        inline
        class="demo-form-inline"
      >
        <el-form-item label="幻灯片标题" prop="name">
          <el-input type="text" size="mini" v-model="queryModel.name"></el-input>
        </el-form-item>
        <el-form-item>
          <el-button
            type="primary"
            size="mini"
            icon="ios-search"
            @click="changePage(1)"
            :loading="loading"
            >查询</el-button
          >&nbsp;
          <el-button
            type="info"
            size="mini"
            style="margin-left: 8px"
            @click="handleReset('queryForm')"
            >重置</el-button
          >&nbsp;
        </el-form-item>
      </el-form>
      <el-divider></el-divider>
      <el-row class="button-group">
        <el-button
          type="primary"
          size="small"
          plain
          icon="el-icon-circle-plus"
          @click="handleAdd"
          >新增</el-button
        >
        <el-button
          type="primary"
          size="small"
          plain
          icon="el-icon-remove"
          :disabled="multipleSelection.length == 0"
          @click="handleBatchDelete"
          >删除选中项</el-button
        >
      </el-row>
      <el-table
        ref="formTable"
        :data="tableData"
        v-loading="loading"
        stripe
        :height="tableHeight"
        @sort-change="sortChange"
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column
          prop="name"
          label="幻灯片标题"
          width="200"
        ></el-table-column>
        <el-table-column
          prop="sortNo"
          label="排序号"
        ></el-table-column>
        <el-table-column    prop="picUrl"   label="幻灯片图片"  width="150">
            <template slot-scope="{ row }">
              <a v-if="row.picUrl" :href="row.picUrl" target="_blank">
                <el-image
                  style="width: 50px; height: 50px"
                  :src="row.picUrl"
                  fit="fit"></el-image>
              </a>
            </template>
        </el-table-column>
        <el-table-column prop="enabled" label="审核状态">
            <template slot-scope="{ row }">
                <span v-if="row.enabled" style="color:green">已审核</span>
                <span v-else style="color:red">未审核</span>
            </template>
        </el-table-column>
        <el-table-column
          prop="createTime"
          label="创建时间"
           width="150"
        ></el-table-column>
        <el-table-column label="操作">
          <template slot-scope="{ row }">
            <el-row>
              <el-col>
                <el-link
                  type="primary"
                  :underline="false"
                  @click="handleEdit(row)"
                  >编辑</el-link
                >-
                <el-link
                    type="success"
                    :underline="false"
                    @click="handleCheck(row,true)"
                    >审核通过</el-link
                >-
                <el-link
                    type="danger"
                    :underline="false"
                    @click="handleCheck(row,false)"
                    >审核不通过</el-link
                >-
                <el-link
                  type="danger"
                  :underline="false"
                  @click="handleDelete(row)"
                  >删除</el-link>
              </el-col>
            </el-row>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
        :current-page.sync="pageIndex"
        :total="totalElements"
        :page-sizes="pageSizeList"
        @current-change="changePage"
        @size-change="pageSizeChange"
        layout="total, sizes, prev, pager, next, jumper"
      ></el-pagination>
      <mobileBannerInfo-detail
        v-if="showModal"
        :businessKey="businessKey"
        :title="modalTitle"
        @close="onDetailModalClose"
      ></mobileBannerInfo-detail>
    </div>
  </template>
  <script>
  
  import mobileBannerInfoDetail from "./mobileBannerInfo-detail";
  import mobileBannerInfoApi from "@/api/base/mobileBannerInfo";
  
  export default {
    name: "chargingMobileBannerInfoList",
    data() {
      var self = this;
      return {
        queryModel: {
          name: "",
        },
        formModel:{
          id:"",
          enabled:"",
        },
        loading: false,
        tableData: [],
        treeData: [],
        pageIndex: 1,
        pageSize: 10,
        totalPages: 0,
        totalElements: 0,
        field: "",
        direction: "",
        pageSizeList: [10, 20, 30],
        multipleSelection: [],
        showModal: false,
        modalTitle: "",
        businessKey: "",
        tableHeight: 300,
        showDeviceModal: false,
        companyId: "",
        qrCode: "",
        companyResult: [],
        props: {
          // 配置项（必选）
          value: "id",
          label: "name",
          children: "children",
        },
        batchImportVisible: false,
        batchImportFileList: [],
        xlsLoading: false,
        sceneData: [],
        typeData: [],
        deviceRelationTitle: "",
        showIconModal: false,
        iconModalTitle: "",
      };
    },
    created() {
  
      this.changePage(1);
    },
    methods: {
      changePage(pageIndex) {
        var self = this;
  
        self.loading = true;
  
        self.pageIndex = pageIndex;
        var formData = new FormData();
  
        formData.append("pageIndex", self.pageIndex);
        formData.append("pageSize", self.pageSize);
  
        formData.append("name", self.queryModel.name);
  
        mobileBannerInfoApi
          .pageList(formData)
          .then(function (response) {
            self.loading = false;
  
            var jsonData = response.data.data;
  
            self.tableData = jsonData.data;
            self.totalPages = jsonData.totalPages;
            self.totalElements = jsonData.recordsTotal;
            //45为分页栏的高度
            //页面高度-列表上面的高度-分页栏高度
            self.tableHeight =
              window.innerHeight - self.$refs.formTable.$el.offsetTop - 100;
          })
          .catch((error) => {
            self.loading = false;
            // self.$message.error(error + "");
          });
      },
      pageSizeChange(pageSize) {
        this.pageSize = pageSize;
      },
      sortChange(data) {
        this.field = data.column.field;
        this.direction = data.order == "ascending" ? "asc" : "desc";
  
        this.changePage(this.pageIndex);
      },
      handleSelectionChange(val) {
        this.multipleSelection = val;
      },
      handleReset(name) {
        this.$refs[name].resetFields();
      },
      handleCheck(record,checked){
          var self = this;
  
          var checkText = "";
  
          if(checked){
              checkText="审核通过?";
          }
          else{
              checkText="审核不通过?";
          }
  
          self
          .$confirm(checkText, "提示", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          })
          .then(() => {
              (function () {
  
                  self.formModel.id = record.id
  
                  if(checked){
                      self.formModel.enabled = true
                  }
                  else{
                      self.formModel.enabled = false
                  }
  
                  return mobileBannerInfoApi.checkBannerInfo(self.formModel);
                  
              })().then(function (response) {
                  var jsonData = response.data;
  
                  if (jsonData.result) {
                      self.$message({
                          message: "审核成功!",
                          type: "success",
                      });
  
                      self.changePage(self.pageIndex);
  
                  } else {
                  self.$message({
                      message: jsonData.message + "",
                      type: "warning",
                  });
                  }
              });
          })
      },
      handleAdd() {
        this.modalTitle = "新增";
        this.businessKey = "";
        this.showModal = true;
      },
      handleEdit(record) {
        this.modalTitle = "编辑";
        this.businessKey = record.id;
        this.showModal = true;
      },
      handleDelete(record) {
        var self = this;
  
        self
          .$confirm("是否确认删除?", "提示", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          })
          .then(() => {
            mobileBannerInfoApi.remove(record.id).then(function (response) {
              var jsonData = response.data;
  
              if (jsonData.result) {
                // var index = self.tableData.indexOf(record);
                // self.tableData.splice(index, 1);
                self.changePage(self.pageIndex);
  
                self.$message({
                  type: "success",
                  message: "删除成功!",
                });
              }
            });
          });
      },
      handleBatchDelete() {
        var self = this;
  
        var idList = this.multipleSelection.map((record) => {
          return record.id;
        });
  
        this.$confirm("是否确认删除选中项？", "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning",
        }).then(() => {
          mobileBannerInfoApi.batchRemove(idList).then(function (response) {
            var jsonData = response.data;
  
            if (jsonData.result) {
              self.changePage(self.pageIndex);
  
              self.$message({
                type: "success",
                message: "删除成功!",
              });
            }
          });
        });
      },
      onDetailModalClose(refreshed) {
        //保存成功后回调
        this.showModal = false;
        this.showDeviceModal = false;
  
        if (refreshed) {
          this.changePage(this.pageIndex);
        }
      },
    },
    mounted: function () {},
    components: {
      "mobileBannerInfo-detail": mobileBannerInfoDetail,
    },
  };
  </script>
  <style lang="scss" scoped>
  .el-breadcrumb {
    margin: 10px;
    line-height: 20px;
  }
  
  .el-divider {
    margin: 5px 0;
  }
  
  .demo-form-inline {
    margin-left: 10px;
    text-align: left;
  }
  
  .button-group {
    margin-left: 10px;
    text-align: left;
  }
  </style>