<template>
    <view class="mainWrapper">
        <view v-show="!searchResultShow" class="headSearch">
            <view class="search-view">
                <view class="search-item">
                    <image src="../../static/img/search.svg" style="width: 32rpx;height: 32rpx;" mode=""></image>
                    <input type="text" confirm-type="搜索" v-model="keywords" @confirm="getNewList('search')"
                        placeholder="搜零工岗位/搜全职岗位/搜政策" />
                    <view @click="getNewList('search')"
                        style="width: 80rpx;height: 50rpx;color:#fff;background-color: #0091ff;font-size:24rpx;text-align: center;line-height: 50rpx;border-radius: 25rpx;;">
                        搜索</view>
                </view>
                <!-- <view class="close" @click="closeBack">
					取消
				</view> -->
            </view>
        </view>
        <view v-show="searchResultShow" class="headSearch">
            <view class="search-view">
                <view class="search-item" @click="clearCurrentKeyWords">
                    <!-- <image src="../../static/img/search.svg" style="width: 32rpx;height: 32rpx;" mode=""></image> -->
                    <!-- <input type="text" confirm-type="搜索" v-model="keywords" @confirm="getNewList('search')"
						placeholder="搜零工任务/搜岗位/搜政策" /> -->
                    <!-- <view @click="getNewList('search')" style="width: 80rpx;height: 50rpx;color:#fff;background-color: #0091ff;font-size:24rpx;text-align: center;line-height: 50rpx;border-radius: 25rpx;;">搜索</view> -->
                    <view
                        style="font-size: 24rpx;height: 50rpx;background-color: #ddd;border-radius: 25rpx;line-height: 50rpx;padding: 0 20rpx;padding-right: 40rpx;position:relative;">
                        {{ keywords }}
                        <u-icon name="close" size="14" style="position:absolute;right:10rpx;top:13rpx;"></u-icon>
                    </view>

                </view>

            </view>
        </view>
        <view v-show="searchResultShow" class="search-result">
            <view>
                <view>岗位/任务</view>
                <view>政策</view>
            </view>
            <view class="title">搜索结果</view>
            <view v-for="(item, index) in searchResultList" class="search-item" @click="toDetail(item)">
                <image src="../../static/img/search.svg" style="width: 32rpx;height: 32rpx;margin-right: 10rpx;"
                    mode=""></image>
                <view style="flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.name }}</view>
                <view class="type" v-if="item.type == 0">零工岗位</view>
                <view class="type" v-else-if="item.type == 1">全职岗位</view>
                <view class="type" v-else-if="item.type1 == 2">政策</view>
                <view class="type" v-else-if="item.type == 3">招工</view>
            </view>
            <view v-if="searchResultList.length > 0"
                style="text-align: center;font-size: 26rpx;margin-top: 20rpx;color:#999;">没有更多数据了</view>
            <view v-if="searchResultList.length == 0" style="text-align: center;font-size: 26rpx;margin-top: 20rpx;">
                暂无数据</view>
        </view>
        <view v-show="!searchResultShow" class="search-history">
            <view class="title">搜索记录</view>
            <view class="clear" @click="clearKeyWords">
                <image src="../../static/img/delete.png" style="width: 24rpx;height: 24rpx;" mode=""></image>
                <view style="margin-left: 5rpx;">清空</view>
            </view>
            <view class="wrapper" v-if="searchHistoryList.length > 0">
                <view class="item" v-for="(item, index) in searchHistoryList" @click="keyWordsClick(item.keywords)">
                    {{ item.keywords }}
                </view>
            </view>
            <view v-else class="empty">暂无历史记录</view>
        </view>
        <v-tabs v-show="!searchResultShow" :tabs="['推荐零工岗位', '推荐全职岗位', '推荐政策']" height="45px" v-model="activeTab"
            color="#999" activeColor="#000" fontSize="30rpx" activeFontSize="31rpx" @change='changeTab' />


        <block v-if="(activeTab == 0)&&!searchResultShow">
            <view v-if="companyList.length > 0">
                <block v-for="(item, index) in companyList" :key="item.id">
                    <companyList :companyitem="item"></companyList>
                </block>
            </view>
            <view v-else>
                <image src="../../static/img/pic_notask.svg" mode="" class="nothing"></image>
                <view class="nothingContnt">
                    暂无信息
                </view>
            </view>
        </block>
        <block v-if="(activeTab == 1)&&!searchResultShow">
            <view v-if="newList.length > 0">
                <block v-for="(item, index) in newList" :key="item.id">
                    <workList :companyitem="item" :near="activeTab === 0"></workList>
                </block>
            </view>
            <view v-else>
                <image src="../../static/img/pic_notask.svg" class="nothing" mode=""></image>
                <view class="nothingContnt">暂无信息</view>
            </view>
        </block>



        <block v-if="(activeTab == 2)&&!searchResultShow">
            <view v-if="recommendList.length > 0">
                <!--    <block v-for="(item, index) in recommendList" :key="item.id">
                    <companyList :companyitem="item"></companyList>
                </block> -->
                <view v-for="(item, index) in recommendList" :key="index"
                    style="width: 90%;height: 100rpx;background-color: #fff;border-radius: 10rpx;margin:20rpx 5% 20rpx 5%;display: flex;align-items: center"
                    @click="goPolicyInfo(item.id)">
                    <image :src="item.headPic" style="width: 60rpx;height: 60rpx;margin: 0 20rpx;"></image>
                    <view style="font-size: 26rpx;">{{ item.articleTitle }}</view>
                </view>
            </view>


            <view v-else>
                <image src="../../static/img/pic_notask.svg" mode="" class="nothing"></image>
                <view class="nothingContnt">
                    完善技能，获取精推荐
                </view>
                <!-- <view class="btn" @click="goResume">
					完善技能
				</view> -->
            </view>
        </block>

        <!-- <view v-if="companyList.length > 0">
			<block v-for="(item, index) in companyList" :key="item.id">
				<companyList :companyitem="item"></companyList>
				<view class="baddd"></view>
			</block>
		</view>
		<view v-else>
			<image src="../../static/img/pic_notask.svg" mode="" class="nothing"></image>
			<view class="nothingContnt">
				暂无任务信息
			</view>
		</view> -->
    </view>
</template>

<script>
    import {
        newMissionAll,
        getSearchKeyWordsList,
        clearSearchKeyWords,
        getListByKeyWords,
        nearMission,
        getPolicyContentList
    } from '@/api/mission.js';
    import companyList from '@/components/companyList/companyList.vue';
    import vTabs from '@/components/v-tabs/v-tabs.vue';
    import testData from '@/common/textdata.js';
    import workList from '@/components/companyList/workList.vue'
    export default {
        components: {
            companyList,
            vTabs,
            workList
        },
        data() {
            return {
                activeTab: 0,
                companyList: [],
                recommendList: [],
                newList: [],
                keywords: '',
                page: {
                    current: 1,
                    size: 10,
                    total: 0
                },
                searchHistoryList: [],
                searchResultShow: false,
                searchResultList: []
            };
        },
        onLoad: function(option) {
            this.keywords = option.keywords ? option.keywords : ''
        },
        onShow: function() {
            this.getList('refresh');
            this.getKeyWordsList()
        },
        /*页面滚动到底部*/
        onReachBottom: function() {
            this.upLoad()
        },
        methods: {
            clearCurrentKeyWords() {
                this.keywords = '';
                let that = this;
                setTimeout(function() {
                    that.searchResultShow = false;
                }, 100);

            },
            // 新面板搜索
            getNewList() {
                getListByKeyWords(this.keywords).then(res => {
                    this.searchResultShow = true
                    this.searchResultList = res.data.data
                    // this.searchResultList.forEach((item, index) => {
                    // 	item.name = this.getInf(item.name, this.keywords);
                    // })
                })
            },
            // 获取搜索历史记录
            getKeyWordsList() {
                getSearchKeyWordsList().then(res => {
                    let response = res.data
                    if (response.code == 200) {
                        this.searchHistoryList = response.data
                    }
                })
            },
            keyWordsClick(keyWords) {
                // console.log(keyWords)
                this.searchResultShow = true;
                this.keywords = keyWords;
                this.getNewList();
            },
            //最新任务；
            getList: function(type = 'add') {
                //改变搜索条件，页码值变为1
                if (type === 'refresh') {
                    this.page.current = 1;
                };
                // if (this.keywords) {
                newMissionAll(this.page.current, this.page.size, this.keywords).then(res => {
                    this.page.total = res.data.data.total;
                    if (type === 'refresh') {
                        this.companyList = res.data.data.records
                    } else if (res.data.data && res.data.data.records.length) {
                        this.companyList = this.companyList.concat(res.data.data.records);
                    }
                    this.page.current += 1;
                })
            },
            getgwList(type = 'add') {
                if (type === 'refresh') {
                    this.page.current = 1;
                };
                nearMission(this.page.current, this.page.size).then(res => {
                    this.page.total = res.data.data.total;
                    if (type === 'refresh') {
                        this.newList = res.data.data.records
                    } else if (res.data.data && res.data.data.records.length) {
                        this.newList = this.newList.concat(res.data.data.records);
                    }
                    this.page.current += 1;
                })
            },
            getPoliyList(type = 'add') {
                if (type === 'refresh') {
                    this.page.current = 1;
                };
                let params = {
                    current: this.page.current,
                    size: this.page.size,
                    type: 1
                }
                getPolicyContentList(params).then(res => {
                    this.page.total = res.data.data.total;
                    if (type === 'refresh') {
                        this.recommendList = res.data.data.records
                    } else if (res.data.data && res.data.data.records.length) {
                        this.recommendList = this.recommendList.concat(res.data.data.records);
                    }
                    this.page.current += 1;
                })
            },
            goPolicyInfo(data) {
                if (data) {
                    uni.navigateTo({
                        url: `/pages/user/policyContent?id=${data}`
                    })
                } else {
                    // uni.showToast({
                    // 	title:'暂无内容',
                    // 	icon:'none'
                    // })
                }
            },
            //上拉加载
            upLoad: function() {
                if (this.page.current <= Math.ceil(this.page.total / this.page.size)) {
                    switch (this.activeTab) {
                        case 0:
                            this.getList();
                            break;
                        case 1:
                            this.getgwList();
                            break;
                        case 2:
                            this.getPoliyList()
                            break;
                    }
                } else {
                    uni.showToast({
                        icon: "none",
                        title: '已经是最后一页',
                    })
                    return
                }
            },
            closeBack() {
                uni.navigateBack({
                    delta: 1
                })
            },
            /**
             * 指定关键字高亮
             * @param {*} str 字符串
             * @param {*} key  关键字
             */
            getInf(str, key) {
                if (str && key) {
                    let replaceReg = new RegExp(key, 'g') // 匹配关键字正则
                    let replaceString = "<span style='color: #1b66ff;'>" + key + "</span>" // 高亮替换
                    return str.replace(replaceReg, replaceString);
                }
            },

            toDetail(item) {
                const no = item.id
                // 判断是岗位还是任务 0：任务，1：岗位，2：政策
                if (item.type == 0) {
                    uni.navigateTo({
                        url: `/pages/projectInfo/projectInfo?missionNo=${encodeURIComponent(no)}&isCan=1`
                    })
                } else if (item.type == 1) {
                    uni.navigateTo({
                        url: `/pages/projectInfo/workInfo?workId=${encodeURIComponent(no)}&isCan=1`
                    })
                } else if (item.type == 2) {
                    uni.navigateTo({
                        url: `/pages/user/policyContent?id=${no}`
                    })
                }

            },

            changeTab: function(e) {
                this.activeTab = e;
                switch (e) {
                    case 0:
                        this.getList('refresh');
                        break;
                    case 1:
                        this.getgwList('refresh');
                        break;
                    case 2:
                        this.getPoliyList('refresh')
                        break;
                }
            },
            // 清空搜索历史
            clearKeyWords() {
                clearSearchKeyWords().then(res => {
                    if (res.data.code == 200) {
                        this.getKeyWordsList()
                    }
                })
            }
        }
    };
</script>

<style scoped>
    .mainWrapper {
        background-color: #f3f4f8;
        min-height: 95vh;
    }

    .baddd {
        background-color: #f6f6f6;
        height: 20rpx;
    }

    .close {
        position: absolute;
        right: 24rpx;
        top: 6rpx;
        height: 60rpx;
        padding: 5rpx 0;
        line-height: 60rpx;
        font-family: PingFangSC-Regular;
        font-size: 32rpx;
        color: #333333;
    }

    .headSearch .search-view {
        border-bottom: 1rpx solid #dddddd;
        padding: 14rpx 32rpx;
        background: rgba(255, 255, 255, 1);
    }

    .headSearch .search-item {
        display: flex;
        padding: 0 10rpx;
        height: 60rpx;
        line-height: 60rpx;
        background: rgba(249, 249, 249, 1);
        border-radius: 200px;
        align-items: center;
        border: 1px solid #0091ff;
    }

    .headSearch .search-item input {
        padding: 0 24rpx;
        height: 80rpx;
        font-weight: 400;
        flex: 1;
        text-align: start;
        font-size: 28rpx;
        font-family: PingFang-SC-Bold, PingFang-SC;
        color: rgba(51, 51, 51, 1);
    }

    .headSearch .search-item .placeholderClass {
        color: #CCCCCC;
    }

    .headSearch .search-item image {
        height: 32rpx;
        width: 32rpx;
    }

    .nothing {
        width: 400rpx;
        height: 200rpx;
        display: block;
        margin: 0 auto;
        margin-top: 50%;
    }

    .nothingContnt {
        font-family: PingFangSC-Regular;
        font-size: 28rpx;
        color: #333333;
        margin-top: 30rpx;
        text-align: center;
    }

    .search-history {
        background-color: #fff;
        padding: 10rpx 40rpx;
        position: relative;
    }

    .search-history .title {
        font-size: 28rpx;
        font-weight: bold;
    }

    .search-history .clear {
        position: absolute;
        right: 40rpx;
        top: 10rpx;
        font-size: 24rpx;
        display: flex;
        align-items: center;
        color: #707070;
    }

    .search-history .empty {
        font-size: 24rpx;
        text-align: center;
        color: #707070;
    }

    .search-history .wrapper {
        display: flex;
        flex-wrap: wrap;
        margin-top: 10rpx;
    }

    .search-history .wrapper .item {
        font-size: 24rpx;
        background-color: #f6f6f6;
        padding: 8rpx 12rpx;
        border-radius: 20rpx;
        margin-right: 10rpx;
    }

    .search-result {
        padding: 20rpx 30rpx;
        background-color: #fff;
        height: 100vh;
    }

    .search-result .title {
        font-size: 26rpx;
        font-weight: bold;
        border-bottom: 1rpx solid #ddd;
        height: 60rpx;
        line-height: 60rpx;
    }

    .search-result .search-item {
        display: flex;
        align-items: center;
        font-size: 26rpx;
        border-bottom: 1rpx solid #ddd;
        height: 80rpx;
        line-height: 80rpx;

    }

    .search-result .search-item .type {
        font-size: 20rpx;
        color: #707070;
        background-color: #dddddd;
        border-radius: 15rpx;
        height: 30rpx;
        line-height: 30rpx;
        padding: 0 20rpx;
    }
</style>