<template>
  <div class="navigation">
    <template v-if="NavIconIsShowAdd">
      <div class="head-title">
        导航图标列表
        <el-button @click="NavIconIsShowAdd=false" style="float:right;margin-top: -5px;" size="small" type="primary">
          添加导航图标
        </el-button>
      </div>
      <div class="content">
        <div>
          <div class="searchInput">
            <el-input style="display:inline-block;width:225px;height:30px" placeholder="请输入搜索内容"
              v-model="msg.NavIconName" size="small" clearable @keyup.enter.native="msg.pageIndex=1,getList()">
            </el-input>
            <span class="el-icon-search" style="color:#979dad;font-size:14px;position:relative;top:1px"  @click="msg.pageIndex=1,getList()"> </span>
          </div>
        </div>
        <el-table :data="dataList" v-loading="loading" border style="width: 100%;margin:20px 0">
          <el-table-column prop="NavIconId" label="编号" width="100">
          </el-table-column>
          <el-table-column prop="NavIconName" width="120" label="名称">
          </el-table-column>
          <el-table-column label="导航图标" width="80">
            <template slot-scope="scope">
              <img :src="scope.row.NavIconImg">
            </template>
          </el-table-column>
          <el-table-column prop="NavIconUrl" label="导航链接">
          </el-table-column>
          <el-table-column prop="NavIconSort" label="排序" width="180">
          </el-table-column>
          <el-table-column prop="NavIconIsShowStr" label="是否显示" width="120">
          </el-table-column>
          <el-table-column width="220" label="操作">
            <template slot-scope="scope">
              <el-button size="mini" type="info" plain @click="EditNavIcon(scope.row)">编辑 </el-button>
              <el-button size="mini" type="info" plain @click="RemmoveNavIcon(scope.row)">删除</el-button>
            </template>
          </el-table-column>
        </el-table>
        <el-pagination style="text-align:right" background @current-change="handleCurrentChange"
          :page-size="msg.pageSize" layout="prev, pager, next" :total="total">
        </el-pagination>
      </div>
    </template>
    <template v-else>
      <div class="head-title">
        <span @click="NavIconIsShowAdd=true" style="color:rgb(64, 158, 255);cursor:pointer;">导航图标列表</span><span
          style="margin:0 9px;color:#C0C4CC">/</span><span>导航图标编辑</span>
      </div>
      <div class="content">
        <el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="80px" style="padding:0 20px;">
          <el-form-item label="名称" prop="NavIconName">
            <el-input v-model="addMsg.NavIconName" class="w400" size="small" placeholder="请输入名称" maxlength="20" />
          </el-form-item>
          <el-form-item label="排序" prop="NavIconSort">
            <el-input type="text" v-model="addMsg.NavIconSort" size="small" class="w400" placeholder="请输入排序"
              maxlength="4" />
          </el-form-item>
          <el-form-item label="导航图标" prop="NavIconImg">
            <div>
              <el-tooltip class="item" effect="dark" content="建议尺寸:88*88" placement="top-start">
                <el-upload class="avatar-uploader" action="" accept="image/jpeg,image/gif,image/png,image/bmp"
                  :show-file-list="false" :http-request="UploadImage">
                  <el-button size="small">选择文件</el-button>
                </el-upload>
              </el-tooltip>
            </div>
            <div class="navNavIconImg">
              <img v-if="addMsg.NavIconImg" :src="addMsg.NavIconImg" alt="" />
              <img v-else src="../../assets/img/default.png" alt="" />
            </div>
          </el-form-item>
          <el-form-item label="导航链接" prop="NavIconUrl">
            <el-input v-model="addMsg.NavIconUrl" class="w400" size="small" maxlength="100" />
            <el-button plain size="small">选择链接</el-button>
          </el-form-item>
          <el-form-item label="是否显示">
            <el-switch v-model="addMsg.NavIconIsShow" :active-value="1" :inactive-value="0"></el-switch>
          </el-form-item>
        </el-form>
      </div>
      <el-button size="small" style="margin-top:20px;padding:9px 25px;" type="primary" @click="submitform('addMsg')">保存
      </el-button>
    </template>
  </div>
</template>
<script>
  export default {
    data() {
      let validataNavIconImg = (rule, value, callback) => {
        if (this.addMsg.NavIconImg == '') {
          return callback(new Error('请选择导航图标'));
        } else {
          callback();
        }
      }
      return {
        loading: false,
        dataList: [],
        msg: {
          pageIndex: 1,
          pageSize: 15,
          NavIconName: "",
          MallBaseId: 0,
        },
        total: 0,
        NavIconIsShowAdd: true,
        addMsg: {
          NavIconId: 0, //导航Id
          MallBaseId: 0, //小程序Id
          NavIconName: '', //导航名称
          NavIconSort: 100, //导航排序
          NavIconImg: '', //导航图标
          NavIconUrl: '', //导航链接
          NavIconIsShow: 0, //是否显示
        },
        rules: {
          NavIconName: [{
            required: true,
            message: "请输入导航名称",
            trigger: "blur"
          }],
          NavIconSort: [{
            required: true,
            message: "请输入导航排序",
            trigger: "blur"
          }],
          NavIconImg: [{
            validator: validataNavIconImg,
            trigger: "blur",
            required: true
          }],
          NavIconUrl: [{
            required: true,
            message: "请选择导航链接",
            trigger: "blur"
          }]
        },
      };
    },
    created() {

    },
    methods: {
      handleCurrentChange(val) {
        this.msg.pageIndex = val;
        this.getList();
      },
      getList() {
        this.apipost("/api/Tenant/GetMiniProgrameNaviconPage", this.msg, res => {
          if (res.data.resultCode == 1) {
            this.dataList = res.data.data.pageData;
            this.total = res.data.data.count;
          } else {
            this.Info(res.data.message);
          }
        })
      },
      //上传图片
      UploadImage(file) {
        this.UploadFileToTencent(this.FileType().UserNavIconImg, file.file, res => {
          if (res.resultCode == 1) {
            this.addMsg.NavIconImg = res.FileUrl;
          }
        })
      },
      submitform(addMsg) {
        //提交创建、修改表单
        this.$refs[addMsg].validate(valid => {
          if (valid) {
            this.saveMsg();
          } else {
            return false;
          }
        });
      },
      //保存
      saveMsg() {
        this.apipost("/api/Tenant/SetMiniProgrameNavicon", this.addMsg, res => {
          if (res.data.resultCode == 1) {
            this.getList();
            this.NavIconIsShowAdd = true;
            this.addMsg.NavIconId = 0;
            this.addMsg.NavIconName = "";
            this.addMsg.NavIconSort = 100;
            this.addMsg.NavIconImg = "";
            this.addMsg.NavIconUrl = "";
            this.addMsg.NavIconIsShow = 0;
          } else {
            this.Info(res.data.message);
          }
        })
      },
      //修改
      EditNavIcon(item) {
        this.apipost("/api/Tenant/GetMiniProgrameNavicon", {
          NavIconId: item.NavIconId
        }, res => {
          if (res.data.resultCode == 1) {
            this.addMsg = res.data.data;
            this.NavIconIsShowAdd = false;
          } else {
            this.Info(res.data.message);
          }
        })
      },
      //删除
      RemmoveNavIcon(item) {
        var that = this;
        that.Confirm("是否要删除?", function () {
          that.apipost("/api/Tenant/RemoveMiniProgrameNavicon", {
            NavIconId: item.NavIconId
          }, res => {
            if (res.data.resultCode == 1) {
              that.getList();
            } else {
              that.Info(res.data.message);
            }
          })
        })
      },
    },
    mounted() {
      this.addMsg.MallBaseId = this.getLocalStorage().MallBaseId;
      this.msg.MallBaseId = this.getLocalStorage().MallBaseId;;
      this.getList();
    }
  };

</script>
<style>
  .navNavIconImg {
    width: 80px;
    height: 80px;
  }

  .navNavIconImg img {
    width: 100%;
    height: 100%;
  }

  .navigation .blue {
    color: #409EFF;

  }

  .navigation .content .searchInput {
    border: 1px solid #DCDFE6;
    border-radius: 4px;
  }

  .navigation .content .searchInput .el-input__inner {
    border: none;
    outline: none;
    height: 30px;
    line-height: 30px;
  }

  .navigation .content .searchInput {
    line-height: normal;
    display: inline-table;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    width: 250px;
    margin-right: 20px;
  }

  .navigation .content {
    background: #fff;
    margin-top: 10px;
    padding: 20px;
    box-sizing: border-box;
  }

</style>
