<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.Name" 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 class="searchInput">
            <el-input style="display:inline-block;width:225px;height:30px" placeholder="电话"
              v-model="msg.Telephone" 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 style="display:inline-block;">
            <el-button @click="operateShelves(1)" style="margin-left:10px;" size="mini">启用</el-button>
            <el-button @click="operateShelves(2)" style="margin-left:10px;" size="mini">禁用</el-button>
          </div>
        </div>
        <el-table :data="dataList" v-loading="loading" border style="width: 100%;margin:20px 0"
          @selection-change="tableSelect">
          <el-table-column type="selection" width="55">
          </el-table-column>
          <el-table-column label="头像" width="100">
            <template slot-scope="scope">
              <img :src="scope.row.ServiceLogo" style="width:35px;height:35px;">
            </template>
          </el-table-column>
          <el-table-column prop="Name" label="名称">
          </el-table-column>
          <el-table-column prop="StoreName" label="店铺名称">
          </el-table-column>
          <el-table-column prop="OrderNum" label="预约次数">
          </el-table-column>
          <el-table-column prop="CreateDateStr" label="创建时间" width="180">
          </el-table-column>
          <el-table-column label="状态" width="120">
            <template slot-scope="scope">
              <el-tag v-if="scope.row.ServiceStatus==1" type="success">启用中</el-tag>
              <el-tag v-if="scope.row.ServiceStatus==2" type="warning">禁用中</el-tag>
            </template>
          </el-table-column>
          <el-table-column prop="Telephone" label="电话" width="180">
          </el-table-column>
          <el-table-column prop="Major" label="职务" width="180">
          </el-table-column>
          <el-table-column prop="GenderStr" label="性别" width="180">
          </el-table-column>
          <el-table-column label="操作" width="120">
            <template slot-scope="scope">
              <img @click="EditNavIcon(scope.row)" src="../../assets/img/userman/edit.png" alt="">
              <!-- <img style="margin-left:10px;" src="../../assets/img/userman/del.png" alt=""> -->
            </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="100px" style="padding:0 20px;">
          <el-form-item label="头像">
            <div>
              <el-tooltip class="item" effect="dark" content="建议尺寸:88*88" placement="top-start">
                <el-button size="small" @click="choicImg=true">选择文件</el-button>
              </el-tooltip>
            </div>
            <div class="navNavIconImg">
              <img v-if="addMsg.ServiceLogo" :src="addMsg.ServiceLogo" alt="" />
              <img v-else src="../../assets/img/default.png" alt="" />
            </div>
          </el-form-item>
          <el-form-item label="对应的类型">
            <div @click="getUseType(1)" style="margin-right: 15px">
              <el-radio :label="1" v-model="addMsg.ServiceType">分类</el-radio>
            </div>
            <div @click='getUseType(2)' style="margin-right: 15px">
              <el-radio :label="2" v-model="msg.ServiceType">部分商品</el-radio>
            </div>
            <el-radio :label="3" v-model="msg.ServiceType" @change="getUseType2" style="margin-right: 15px">全部商品</el-radio>
          </el-form-item>
          <el-form-item label="名称" prop="Name">
            <el-input v-model="addMsg.Name" class="w400" size="small" placeholder="请输入服务人员名称" maxlength="20" />
          </el-form-item>
          <el-form-item label="性别">
            <el-radio-group v-model="addMsg.Gender">
              <el-radio :label="item.Name" v-for="(item,index) in genderList" :key="index">{{item.Name}}</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="标签">
            <el-tag :key="tag" size="small" v-for="(tag,index) in addMsg.LableNameList" closable :disable-transitions="false"
              @close="handleClose(index)">
              {{tag}}
            </el-tag>
            <el-input
              class="input-new-tag"
              v-if="inputVisible"
              v-model="inputValue"
              ref="saveTagInput"
              size="small"
              @keyup.enter.native="handleInputConfirm"
              @blur="handleInputConfirm"
            >
            </el-input>
            <el-button class="button-new-tag" size="small" @click="showInput">+ 标签</el-button>
          </el-form-item>
          <el-form-item label="虚拟预约数">
            <el-input v-model="addMsg.FictitiousReserveNum" class="w400" size="small" placeholder="请输入预约次数" maxlength="20" />
          </el-form-item>
          <el-form-item label="电话">
            <el-input v-model="addMsg.Telephone" class="w400" size="small" placeholder="请输入电话" maxlength="20" />
          </el-form-item>
          <el-form-item label="状态">
            <el-switch
                v-model="addMsg.ServiceStatus"
                active-color="#409EFF"
                :active-value="1"
                :inactive-value="2"
                active-text="启用"
                inactive-text="禁用">
            </el-switch>
          </el-form-item>
          <el-form-item label="职务">
            <el-input v-model="addMsg.Major" class="w400" size="small" placeholder="职务" maxlength="20" />
          </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>
    <el-dialog title="选择链接" :visible.sync="isShowLink" width="800px">
      <chooseMenu ref="chooseMenu">
      </chooseMenu>
      <span slot="footer" class="dialog-footer">
        <el-button size="small" @click="isShowLink=false">取 消</el-button>
        <el-button size="small" type="danger" @click="getMenu()">确 定</el-button>
      </span>
    </el-dialog>
    <!-- 选择图片文件 -->
    <el-dialog title="选择文件" :visible.sync="choicImg" width="1240px">
      <ChooseImg @SelectId="SelectId"></ChooseImg>
    </el-dialog>
  </div>
</template>
<script>
  import chooseMenu from "../common/chooseMenu.vue";
  import ChooseImg from "@/components/global/ChooseImg.vue";
  export default {
    data() {
      let validataNavIconImg = (rule, value, callback) => {
        if (this.addMsg.NavIconImg == '') {
          return callback(new Error('请选择导航图标'));
        } else {
          callback();
        }
      }
      return {
        //选择图片
        choicImg: false,
        //是否线下链接弹窗
        isShowLink: false,
        loading: false,
        dataList: [],
        msg: {
          pageIndex: 1,
          pageSize: 15,
          Name:'', //服务人员姓名
          ID:0, //编号
          Telephone:'' //电话
        },
        addMsg:{
          LableNameList:[], //	标签
          StoreId:'', //	店铺id
          Gender:'', //性别
          ServiceType:'', //对应的类型
          ProductList:[], //商品信息
          ID:0, //编号
          Name:'', //服务人员名称
          ServiceLogo:'', //头像、
          Major:'', //职务
          ServiceStatus:1, //	启用/禁用 状态1启用 2禁用
          Telephone:'', //电话
          FictitiousReserveNum:'' //虚拟预约数
        },
        GoodsIds: [], //列表选中的商品编号
        total: 0,
        NavIconIsShowAdd: true,
        addMsg: {
          pageIndex: 1,
          pageSize: 10,
        },
        genderList:[], //性别枚举
        inputValue:'', //新增标签输入框值
        inputVisible: false, //切换新增标签输入框

        rules:{

        }
      };
    },
    components: {
      chooseMenu,
      ChooseImg
    },
    created() {

    },
    methods: {
      //新增标签
      showInput() {
        this.inputVisible = true;
        this.$nextTick(_ => {
          this.$refs.saveTagInput.$refs.input.focus();
        });
      },
      handleInputConfirm() {
        if (this.inputValue) {
          this.addMsg.LableNameList.push(this.inputValue);
        }
        this.inputVisible = false;
        this.inputValue = '';
      },
      //表格选中
      tableSelect(val) {
        this.GoodsIds = val;
        console.log(val,'val');
      },
      //操作上下架
      operateShelves(type){
        if (this.GoodsIds.length == 0) {
          this.Error("请先勾选要设置的服务人员!");
          return;
        }
        let idList = [];
        this.GoodsIds.forEach(item => {
          idList.push(item.ID)
        })
        let IdsList = idList.join(',');
        let msg = {
          Ids: IdsList,
          ServiceStatus: type
        }
        let str = "";
        if (type == 1) {
          str = "批量启用,是否继续";
        }
        if (type == 2) {
          str = "批量禁用,是否继续";
        }
        let that = this;
        that.Confirm(str, function () {
          that.apipost('/api/Reserve/EnableServicePersonalInfo', msg,
            res => {
              if (res.data.resultCode === 1) {
                that.getList();
                that.Success(res.data.message);
              } else {
                that.Error(res.data.message);
              }
            },
            null
          );
        });
      },
      //获取性别
      getMale(){
        this.apipost("/api/Reserve/GetGenderEnumList", {}, res => {
          if (res.data.resultCode == 1) {
            console.log(res,'数据');
            this.genderList = res.data.data;
          } else {
            this.Error(res.data.message);
          }
        })
      },
      //删除标签
      handleClose(tag) {
        this.addMsg.LableNameList.splice(index, 1);
      },
      //操作对应商品类型
      getUseType(){

      },
      getUseType2(){
        
      },

      getMenu() {
        //调用子组件方法
        var obj = this.$refs.chooseMenu.getChooseMenu();
        this.addMsg.NavIconUrl = obj.PageUrl;
        this.isShowLink = false;
      },
      handleCurrentChange(val) {
        this.msg.pageIndex = val;
        this.getList();
      },
      getList() {
        this.loading=true;
        this.apipost("/api/Reserve/GetServicePersonalPageList", this.msg, res => {
          this.loading=false;
          if (res.data.resultCode == 1) {
            console.log(res,'数据');
            this.dataList = res.data.data.pageData;
            this.total = res.data.data.count;
          } else {
            this.Error(res.data.message);
          }
        })
      },
      //选择图片
      SelectId(msg) {
        this.addMsg.ServiceLogo = this.getIconLink(msg.url);
        this.choicImg = false;
      },
      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);
          }
        })
      },
    },
    mounted() {
      this.getList();
      this.getMale();
    }
  };

</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>
