<template>
	<view class="container">
		<headersVue :titles="titles"><u-icon name="arrow-left" color="#fff" size="18"></u-icon></headersVue>
		<view class="content">
			<view class="top_">
				<view class="search_box">
						<u-search placeholder="请输入员工姓名进行搜索" @search="getindex" :showAction="false" searchIconColor="#427FFE" v-model="workName"></u-search>
				</view>

				<scroll-view scroll-x="true" class="tap_box">
					<view class="tap_list" :class="{ 'acColor': tapIndex == index}" v-for="(item,index) in  tabList"
						:key="index" @click="gettap(index,item.id)">
						<view class=""> {{item.name}}</view>
						<view class="gang" :class="{ 'actColor': tapIndex == index}"></view>

					</view>
				</scroll-view>
			</view>
      <view class="lsit_">
        <view class="list_box" v-for="(item, index) in goodsList" :key="index">
          <view class="checkbox_" @click="setIndex(item.id)">
            <u-icon name="checkmark" color="#2979ff" size="18" v-if="workids.includes(item.id)"></u-icon>
          </view>
          <view class="right_box" >
            <view class="d_s" @click="toInfo(item)">
              <view class="user_">
                <image :src="item.avatar" mode="" v-if="item.avatar"></image>
                <image src="/static/imgs/yh.png" v-else mode=""></image>
              </view>
              <view class="name_">{{ item.nickname || item.username }}</view>
              <view class="icon_"><u-text :lines="1" :text="item.roleNames" /></view>
            </view>
            <view class="d_b">
              <view class="">
                <text style="color: #8D90A6;">电话:</text>
                <text>{{ item.mobile || item.username }}</text>
              </view>
              <view class="tel_" @click="gettel(item)">
                <image src="/static/imgs/tel.png" mode=""></image>
              </view>
            </view>
          </view>
        </view>
      </view>
			<view style="width: 100%; height: 128rpx; "></view>
		</view>
		<view class="bottom_">
			<view class="bottom_left" @click="getdelete()">删除员工</view>
			<view class="bottom_right" @click="goAdd()" >添加员工</view>
		</view>
	</view>
</template>

<script>
	import headersVue from '../../components/header/headers.vue';
  import request from "@/utils/request";
  import config from "@/config";

	export default {
		data() {
			return {
				titles: "员工管理",
				keyword:'',
				List: [],
				listIndex:[],
				tapIndex:0,
				tapList: [],
				show: false,
				status: 'loading',
        msg: '3',
        goodsList: [],
        tabList: [],
        renList: [],
        baseUrl: "http://192.168.1.4:8080/lanan",
        partnerId: '',
        isListing: 1,
        goodsTitle: "",
        taplist: [{
          Text: '已发布',
          id: 1
        },
          {
            Text: '待上架',
            id: 0
          },
        ],
        pageNum: 1, //第几页
        pageSize: 10, //一页多少张
        totalPages: 0, //总数
        realName: "",
        phoneNum: "",
        workName: "",
        workids: [],
        postid: '',
        gwindex: 0,
        gwid: 0,
        roleId: undefined,
        addRoleId: undefined,
        education: null,
        educationText: null,
        idCard: null,
        joinDate: null,
        probationPeriod: null,
        socialSecurityBuyDate: null,
        educations: [],
        showEducation: false,
        showJoinedDate: false,
        showFormalDate: false,
        showSafeDate: false,
        files: [],
        showDriveType: false,
        driverLicenseType: [],
        driverLicenseTypeArr: [],
        driverLicenseTypeArrStr: null
			}
		},
		components:{
			headersVue
		},
    onLoad() {
      this.getDriveType()
      this.gettab()
    },
    onReachBottom() {
      if (this.pageNum >= this.totalPages) {
        uni.showToast({
          title: '没有下一页数据',
          icon: 'none'
        })

      } else {
        this.pageNum++
        this.gettab()
      }
    },
		methods:{
      gettap(index, id) {
        this.tapIndex = index
        this.roleId = id
        this.goodsList = []
        this.pageNum = 1
        this.getindex()


      },
			setIndex(num){
				 const index = this.workids.indexOf(num); // 查找是否包含此数字
				    if (index === -1) {
				     this.workids.push(num);          // 若不存在,
				    } else {
				       this.workids.splice(index, 1);   // 存在的话,则删除这个数
				    }
					console.log(this.workids);
			},

      gettel(num) {
        const value = num.mobile || num.username
        uni.makePhoneCall({
          phoneNumber: value //仅为示例
        });
      },
      toInfo(data){
        uni.navigateTo({
          url: '/pages/index/addStaff?id=' + data.id
        })
      },
      async getdelete() {
        if (this.workids == '') {
          uni.showToast({
            title: '请至少选择一名要删除的员工!',
            icon: 'none'
          })
          return
        } else {
          // this.workids = this.workids.join(",")
        }
        let res = await request({
          url: '/system/user/deleteUserByIds',
          method: 'delete',
          data: this.workids

        })
        if (res.code == 200) {
          uni.showToast({
            title: "操作成功",

          })
          this.pageNum = 1
          this.goodsList = []
          this.getindex()
        }
      },
      getDriveType() {
        return request({
          url: '/common/down/getDriverLicenseType',
          method: 'get'
        }).then(res => {
          //提取出数组中的id属性
          this.driverLicenseType = res.data
        })
      },
			goAdd(){
				uni.navigateTo({
					url:'/pages/index/addStaff'
				})
			},
			goManage(num){
				if(num == 1){
					uni.navigateTo({
						url:'/pages/index/staffManagement'
					})
				}

			},
      async gettab() {
        let res = await request({
          url: '/system/role/pageByQuery',
          method: 'get',
          params: {
            servicePackageId: 'jiance'
          }
        })
        this.tabList = [{
          name: '全部',
          id: undefined
        }]
        this.tabList.push(...res.data)
        this.roleId = this.tabList[0].id
        this.renList = res.data
        this.getindex()
      },
      async getindex() {
        if (this.workName != '') {
          this.pageNum = 1
          this.goodsList = []
        }

        let data = {
          nickname: this.workName,
          roleId: this.roleId,
          pageNo: this.pageNum, //第几页
          pageSize: this.pageSize, //一页多少张
        }
        let res = await request({

          url: '/system/role/selectListByRoleId',
          method: 'get',
          params: data
        })
        if (res.code == 200) {

          if (this.pageNum != 1) {
            this.goodsList = this.goodsList.concat(res.rows)
          } else {
            this.goodsList = res.rows
          }
          this.goodsList.forEach(item => {
            if (item.avatar && !item.avatar.includes(config.baseImageUrl)){
              item.avatar = config.baseImageUrl + (item.avatar[0] === '/' ? item.avatar : '/' + item.avatar)
            }
          })
          let total = res.total
          this.totalPages = Math.ceil(total / this.pageSize);
        }
        const newUsers = this.goodsList.filter(item => !item.roleName)
        if (newUsers && newUsers.length > 0) {
          const ids = newUsers.map(item => item.id)
          request({
            url: '/inspection/util/getRoleNameByIds?ids=' + ids,
            method: 'get'
          }).then(res => {
            this.goodsList.filter(item => !item.roleName).map(item => {
              this.$set(item, "roleName", res.data[item.id])
            })
          })
        }
      },
		}

		}
</script>

<style scoped lang="scss">
.icon_ {
  background: #eaf2fe;
  border-radius: 8rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 5rpx 10rpx;
  color: #427FFE;
  font-size: 14px;
  max-width: 200rpx; /* 限制最大宽度 */
  white-space: nowrap; /* 不换行 */
  overflow: hidden; /* 超出部分隐藏 */
  text-overflow: ellipsis; /* 超出部分显示省略号 */
  flex-shrink: 0; /* 禁止挤压 */
}

.user_ {
  width: 90rpx; /* 固定宽度 */
  height: 90rpx; /* 固定高度 */
  border-radius: 4rpx;
  overflow: hidden;
  margin-right: 20rpx;
  flex-shrink: 0; /* 禁止挤压 */
}

.d_s {
  display: flex;
  align-items: center;
  margin-bottom: 30rpx;
  width: 100%; /* 确保宽度占满父容器 */
}

.name_ {
  font-size: 32rpx;
  color: #101A3E;
  margin-right: 20rpx;
  flex-shrink: 0; /* 禁止挤压 */
}
	image{
		width: 100%;
		height: 100%;
	}
	.container{
		background: #F1F3F6;
		height: 100vh;
	}
	.content{
		width: 100%;
		box-sizing: border-box;

		padding-top: 170rpx;
	}
	.top_{
		width: 100%;
		box-sizing: border-box;
		padding: 20rpx;
		background: #fff;
		padding-bottom: 0px;
	}
	.tap_box {
		width: 100%;
		white-space: nowrap;
		margin: 5px 0px;
		box-sizing: border-box;
		padding-bottom: 5px;

	}
	.tap_list {
		color: #333333;
		margin: 0px 10px;
		display: inline-block;
	}

	.acColor {
		font-weight: bold;
		color: #5384fd;
	}
	.right_box{
		width: 88%;
	}
	.gang {
		width: 20px;
		height: 4px;
		margin-top: 5px;
		// background-color: #5384fd;
		border-radius: 30px;
		margin: 5px auto;
	}

	.actColor {
		background-color: #5384fd;
	}
	.search_box{
		box-sizing: border-box;
		padding-bottom: 20rpx;
		border-bottom: 2rpx solid #F5F5F5;
    margin-top: 30rpx;
	}
	.lsit_{
		background: #F1F3F6;
		box-sizing: border-box;
		padding: 30rpx;
	}
	.list_box{
		width: 100%;
		background: #fff;
		margin-bottom:30rpx ;
		box-sizing: border-box;
		padding: 20rpx;
		display: flex;
	}
	.checkbox_{
		width: 48rpx;
		height: 48rpx;
		border-radius: 8rpx;
		border: 2rpx solid #E0E0E0;
		margin-right: 15rpx;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	//.d_s{
	//	display: flex;
	//	align-items: center;
	//	margin-bottom: 30rpx;
	//}
	.d_b{
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	//.user_{
	//	width: 90rpx;
	//	height: 90rpx;
	//	border-radius: 4rpx;
	//	overflow: hidden;
	//	margin-right: 20rpx;
	//}
	//.icon_{
	//	background: #eaf2fe;
	//	border-radius: 8rpx;
	//	display: flex;
	//	align-items: center;
	//	justify-content: center;
	//	box-sizing: border-box;
	//	padding:5rpx 10rpx;
	//	color: #427FFE;
	//	font-size: 14px;
  //
  //
	//}
	.tel_{
		width: 36rpx;
		height: 36rpx;
	}
	//.name_{
	//	font-size: 32rpx;
	//	color: #101A3E;
	//	margin-right: 20rpx;
	//}
	.bottom_{
		width: 100%;
		height: 158rpx;
		background: #FFFFFF;
		box-shadow: 0rpx -1rpx 24rpx 0rpx rgba(0,0,0,0.1);
		border-radius: 15px 15px 0px 0px;
		position: fixed;
		left: 0;
		bottom: 0;
		z-index: 999;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.bottom_left{
		width: 301rpx;
		height: 78rpx;
		border: 2rpx solid #427FFE;
		display: flex;
		align-items: center;
		justify-content: center;
		color: #427FFE;
		font-size: 28rpx;
		border-radius: 50px;
		margin: 30rpx;

	}
	.bottom_right{
		width: 301rpx;
		height: 78rpx;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 28rpx;
		color: #fff;
		background: #427FFE;
		border: 2rpx solid #427FFE;
		border-radius: 50px;
		margin: 30rpx;
	}
.roleName{
  white-space: nowrap;      /* 不换行 */
  overflow: hidden;         /* 超出部分隐藏 */
  text-overflow: ellipsis;  /* 超出部分显示省略号 */
  width: 200rpx;            /* 根据需要设置宽度 */
}
</style>