<template> 
 | 
    <view class="content"> 
 | 
        <view class="content_search"> 
 | 
            <Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true" placeholder="搜索工单编码/物料编码"> 
 | 
                <template v-slot:content> 
 | 
                    <view class="Search_item"> 
 | 
                        <view class="Search_item_label">检验日期</view> 
 | 
                        <view class="Search_item_content" @click="timeShow = true"> 
 | 
                            <view class="Search_item_content_a" :style="pageData.checkStartDate ? 'color: #000;' : ''">{{ pageData.checkStartDate ? pageData.checkStartDate : '开始日期'}}</view> 
 | 
                            <text>-</text> 
 | 
                            <view class="Search_item_content_a" :style="pageData.checkEndDate ? 'color: #000;' : ''">{{ pageData.checkEndDate ? pageData.checkEndDate : '结束日期'}}</view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="Search_item"> 
 | 
                        <view class="Search_item_label">检验类型</view> 
 | 
                        <view class="Search_item_content"> 
 | 
                            <view class="tag"> 
 | 
                                <view class="tag_item" :class="{'tag_active': item.isActive}" v-for="(item, i) in data" :key="item.id" @click="changeTag(i)">{{item.name}}</view> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="Search_item"> 
 | 
                        <view class="Search_item_label">检验工序</view> 
 | 
                        <view class="Search_item_content"> 
 | 
                            <view class="tag"> 
 | 
                                <view class="tag_item" :class="{'tag_active': item.isActive}" v-for="(item, i) in workingProcedure" :key="item.id" @click="changeTag1(i)">{{item.name}}</view> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="Search_item"> 
 | 
                        <view class="Search_item_label">批次号</view> 
 | 
                        <view class="Search_item_content"> 
 | 
                            <u--input placeholder="请输入批次号" border="surround" v-model="pageData.batch"></u--input> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                </template> 
 | 
            </Search> 
 | 
        </view> 
 | 
        <view class="content_total" :style="{top: top}">共{{pageData.total}}条数据</view> 
 | 
        <view class="content_list"> 
 | 
            <scroll-view 
 | 
            :refresher-enabled="true" 
 | 
            :refresher-triggered="isLoading" 
 | 
            @refresherrefresh="onRefresh" 
 | 
            refresher-background="#fff" 
 | 
            @scrolltolower="onLoads" 
 | 
            scroll-y 
 | 
            :style="{height: height}"> 
 | 
                <view class="content_list_item" v-for="item in listData" :key="item.id" @click="jumpDesc(item)"> 
 | 
                    <view class="content_list_item_title"> 
 | 
                        <text>{{item.code}}</text> 
 | 
                        <text class="warning" v-if="item.checkType === 0">巡线</text> 
 | 
                        <text v-if="item.checkType === 1">巡检</text> 
 | 
                        <text class="green" v-if="item.checkType === 2">完工检</text> 
 | 
                    </view> 
 | 
                    <view class="content_list_item_nr"> 
 | 
                        <view class="content_list_item_nr_box"> 
 | 
                            <view class="label">物料信息:</view> 
 | 
                            <view class="cr" v-if="item.mmodel">{{item.mmodel.name}}丨{{item.mmodel.code}}</view> 
 | 
                        </view> 
 | 
                        <view class="content_list_item_nr_boxs"> 
 | 
                            <view class="label">生产数量:</view> 
 | 
                            <view class="cr" v-if="item.umodel">{{item.num}}{{item.umodel.name}}</view> 
 | 
                        </view> 
 | 
                        <view class="content_list_item_nr_box"> 
 | 
                            <view class="label">生产批次:</view> 
 | 
                            <view class="cr">{{item.batch}}</view> 
 | 
                        </view> 
 | 
                        <view class="content_list_item_nr_boxs"> 
 | 
                            <view class="label">生产工序:</view> 
 | 
                            <view class="cr" v-if="item.pmodel">{{item.pmodel.name}}</view> 
 | 
                        </view> 
 | 
                        <view class="content_list_item_nr_box"> 
 | 
                            <view class="label">工单编号:</view> 
 | 
                            <view class="cr">{{item.workorderCode}}</view> 
 | 
                        </view> 
 | 
                        <view class="content_list_item_nr_boxs"> 
 | 
                            <view class="label">检验人员:</view> 
 | 
                            <view class="cr">{{item.smodelRealName}}/{{item.checkUserDepartName}}</view> 
 | 
                        </view> 
 | 
                        <!-- <view class="content_list_item_nr_box"> 
 | 
                            <view class="label">检验日期:</view> 
 | 
                            <view class="cr">{{item.checkDate}}</view> 
 | 
                        </view> --> 
 | 
                        <!-- <view class="content_list_item_nr_boxs"> 
 | 
                            <view class="label">工装码:</view> 
 | 
                            <view class="cr" v-if="item.amodel">{{item.amodel.code}}</view> 
 | 
                        </view> --> 
 | 
                        <view class="content_list_item_nr_box"> 
 | 
                            <view class="label">合格数量:</view> 
 | 
                            <view class="cr" v-if="item.umodel">{{item.qualifiedNum}}{{item.umodel.name}}</view> 
 | 
                        </view> 
 | 
                        <view class="content_list_item_nr_boxs"> 
 | 
                            <view class="label">不良数量:</view> 
 | 
                            <view class="cr warning" v-if="item.umodel">{{item.unqualifiedNum}}{{item.umodel.name}}</view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                </view> 
 | 
            </scroll-view> 
 | 
        </view> 
 | 
        <!-- 选择日期 --> 
 | 
        <!-- <u-calendar :show="timeShow" mode="range" @confirm="timeConfirm" @close="timeShow = false"></u-calendar> --> 
 | 
        <l-calendar :lunar="false" v-model="timeShow" @change="timeConfirm" :isRange="true" activeBgColor="#305ED5" 
 | 
            rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar> 
 | 
    </view> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
    import Search from '@/components/Search.vue' 
 | 
    import { page } from '@/util/api/QualityAPI' 
 | 
    import { getWorkingProcedure, deletejy } from "@/util/api/PlanningAPI" 
 | 
    import { mapState } from 'vuex' 
 | 
     
 | 
    export default { 
 | 
        components: { Search }, 
 | 
        data() { 
 | 
            return { 
 | 
                height: '', 
 | 
                top: '', 
 | 
                isLoading: false, 
 | 
                pageData: { 
 | 
                    capacity: 10, 
 | 
                    page: 0, 
 | 
                    total: 0, 
 | 
                    checkStartDate: '', 
 | 
                    checkEndDate: '', 
 | 
                    minParam: '', 
 | 
                    batch: '', 
 | 
                    checkType: '', 
 | 
                    procedureId: '', 
 | 
                    workorderId: '' 
 | 
                }, 
 | 
                data: [        // 检验类型 
 | 
                    { id: '0', name: '巡线', isActive: false }, 
 | 
                    { id: '1', name: '巡检', isActive: false }, 
 | 
                    { id: '2', name: '完工检', isActive: false } 
 | 
                ], 
 | 
                minDate: new Date(2021, 0, 1), 
 | 
                maxDate: new Date(new Date().getFullYear() + 1, 12, 30), 
 | 
                listData: [], 
 | 
                workingProcedure: [],    // 工序 
 | 
                loading: false, 
 | 
                finished: false, 
 | 
                refreshing: false, 
 | 
                timeShow: false 
 | 
            }; 
 | 
        }, 
 | 
        onReady() { 
 | 
            var that = this 
 | 
            this.$nextTick(() => { 
 | 
                uni.createSelectorQuery().in(this).select('.content_search').boundingClientRect((rect) => { 
 | 
                    that.height = `calc(100vh - ${rect.height + 80}px)` 
 | 
                    that.top = `${rect.height}px` 
 | 
                }).exec() 
 | 
            }) 
 | 
        }, 
 | 
        computed: { 
 | 
            ...mapState(['userInfo']) 
 | 
        }, 
 | 
        onLoad(option) { 
 | 
            if (option.id) { 
 | 
                this.pageData.workorderId = option.id 
 | 
            } 
 | 
            this.onLoads() 
 | 
            this.getWorkingProcedures() 
 | 
        }, 
 | 
        methods: { 
 | 
            // 跳转 
 | 
            jumpDesc(item) { 
 | 
                uni.navigateTo({ 
 | 
                    url: `/pages_inspect/pages/InspectionDetails/InspectionDetails?id=${item.id}` 
 | 
                }) 
 | 
            }, 
 | 
            // 获取头部组件高度 
 | 
            getHeight(height) { 
 | 
                this.height = height 
 | 
            }, 
 | 
            onRefresh() { 
 | 
                if (this.isLoading) return 
 | 
                this.isLoading = true 
 | 
                this.listData = [] 
 | 
                this.pageData.page = 0 
 | 
                this.onLoads() 
 | 
            }, 
 | 
            // 重置 
 | 
            reset() { 
 | 
                this.pageData.checkStartDate = '' 
 | 
                this.pageData.checkEndDate = '' 
 | 
                this.pageData.minParam = '' 
 | 
                this.pageData.checkType = '' 
 | 
                this.pageData.procedureId = '' 
 | 
                this.pageData.batch = '' 
 | 
                this.pageData.page = 0 
 | 
                this.listData = [] 
 | 
                this.finished = false 
 | 
                this.data.forEach(item => { item.isActive = false }) 
 | 
                this.workingProcedure.forEach(item => { item.isActive = false }) 
 | 
                this.onLoads() 
 | 
            }, 
 | 
            // 日期确定 
 | 
            timeConfirm(val) { 
 | 
                this.pageData.checkStartDate = val.startDate 
 | 
                this.pageData.checkEndDate = val.endDate 
 | 
                this.timeShow = false 
 | 
            }, 
 | 
            // 切换检类型 
 | 
            changeTag(i) { 
 | 
                this.data.forEach((item, index) => { 
 | 
                    item.isActive = index === i; 
 | 
                }) 
 | 
            }, 
 | 
            // 切换检工序 
 | 
            changeTag1(i) { 
 | 
                this.workingProcedure.forEach((item, index) => { 
 | 
                    item.isActive = index === i; 
 | 
                }) 
 | 
            }, 
 | 
            // 打开日期插件 
 | 
            openDate() { 
 | 
                this.timeShow = true 
 | 
            }, 
 | 
            // 搜索 
 | 
            searchInput(val) { 
 | 
                this.pageData.minParam = val 
 | 
                this.pageData.page = 0 
 | 
                this.listData = [] 
 | 
                this.finished = false 
 | 
                this.onLoads() 
 | 
            }, 
 | 
            // 获取工序数据 
 | 
            getWorkingProcedures() { 
 | 
                getWorkingProcedure({ 
 | 
                    capacity: 100, 
 | 
                    page: 1, 
 | 
                    model: { 
 | 
                        userId: this.userInfo.id 
 | 
                    } 
 | 
                }).then(res => { 
 | 
                    if (res.code === 200 && res.data.records.length !== 0) { 
 | 
                        res.data.records.forEach((item, index) => { 
 | 
                            // if (index === 0) { 
 | 
                            //     workingProcedure.push({ id: item.id, name: item.name, isActive: true }) 
 | 
                            // } else { 
 | 
                                this.workingProcedure.push({ id: item.id, name: item.name, isActive: false }) 
 | 
                            // } 
 | 
                        }) 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            // 搜索弹框提交 
 | 
            submit() { 
 | 
                this.data.forEach(item => { 
 | 
                    if (item.isActive) { 
 | 
                        this.pageData.checkType = item.id 
 | 
                    } 
 | 
                }) 
 | 
                this.workingProcedure.forEach(item => { 
 | 
                    if (item.isActive) { 
 | 
                        this.pageData.procedureId = item.id 
 | 
                    } 
 | 
                }) 
 | 
                this.pageData.page = 0 
 | 
                this.listData = [] 
 | 
                this.finished = false 
 | 
                this.onLoads() 
 | 
            }, 
 | 
            // 列表 
 | 
            onLoads() { 
 | 
                if (!this.finished) { 
 | 
                    this.pageData.page = this.pageData.page += 1 
 | 
                    this.loading = true 
 | 
                    page({ 
 | 
                        capacity: this.pageData.capacity, 
 | 
                        page: this.pageData.page, 
 | 
                        model: { 
 | 
                            minParam: this.pageData.minParam, 
 | 
                            checkStartDate: this.pageData.checkStartDate, 
 | 
                            checkEndDate: this.pageData.checkEndDate, 
 | 
                            checkType: this.pageData.checkType, 
 | 
                            procedureId: this.pageData.procedureId, 
 | 
                            workorderId: this.pageData.workorderId, 
 | 
                            batch: this.pageData.batch 
 | 
                        } 
 | 
                    }).then(res => { 
 | 
                        this.isLoading = false 
 | 
                        if (this.refreshing) { 
 | 
                            this.listData = [] 
 | 
                            this.refreshing = false; 
 | 
                        } 
 | 
                        this.loading = false 
 | 
                        if (res.code === 200 && res.data.records && res.data.records.length !== 0) { 
 | 
                            this.pageData.total = res.data.total 
 | 
                            this.listData.push(...res.data.records) 
 | 
                        } else { 
 | 
                            this.finished = true 
 | 
                        } 
 | 
                    }).catch(err => { 
 | 
                        this.isLoading = false 
 | 
                        this.loading = false 
 | 
                        this.finished = true 
 | 
                        if (this.refreshing) { 
 | 
                            this.listData = [] 
 | 
                            this.refreshing = false; 
 | 
                        } 
 | 
                    }) 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
    .content { 
 | 
        .content_search { 
 | 
            width: 100%; 
 | 
            padding: 30rpx; 
 | 
            background: white; 
 | 
            position: sticky; 
 | 
            top: 0; 
 | 
            z-index: 999; 
 | 
            box-sizing: border-box; 
 | 
            .Search_item { 
 | 
                margin-bottom: 40rpx; 
 | 
                .Search_item_label { 
 | 
                    font-size: 30rpx; 
 | 
                    font-weight: 500; 
 | 
                    color: #222222; 
 | 
                } 
 | 
                .Search_item_content { 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
                    justify-content: space-between; 
 | 
                    margin-top: 30rpx; 
 | 
                    input { 
 | 
                        width: 100%; 
 | 
                        height: 70rpx; 
 | 
                        border-radius: 10rpx; 
 | 
                        padding: 0 20rpx; 
 | 
                        box-sizing: border-box; 
 | 
                        border: 1rpx solid #939393; 
 | 
                        color: black; 
 | 
                        font-size: 26rpx; 
 | 
                    } 
 | 
                    input::-webkit-input-placeholder { 
 | 
                        color: #999999; 
 | 
                        font-size: 26rpx; 
 | 
                    } 
 | 
                    input:-moz-placeholder { 
 | 
                        color: #999999; 
 | 
                        font-size: 26rpx; 
 | 
                    } 
 | 
                    input::-moz-placeholder { 
 | 
                        color: #999999; 
 | 
                        font-size: 26rpx; 
 | 
                    } 
 | 
                    input:-ms-input-placeholder { 
 | 
                        color: #999999; 
 | 
                        font-size: 26rpx; 
 | 
                    } 
 | 
                    .tag { 
 | 
                        display: flex; 
 | 
                        flex-wrap: wrap; 
 | 
                        align-items: center; 
 | 
                        .tag_active { 
 | 
                            background: $nav-color !important; 
 | 
                            color: #ffffff !important; 
 | 
                        } 
 | 
                        .tag_item { 
 | 
                            width: 156rpx; 
 | 
                            height: 70rpx; 
 | 
                            box-sizing: border-box; 
 | 
                            background: #F2F2F2; 
 | 
                            border-radius: 8rpx; 
 | 
                            font-size: 26rpx; 
 | 
                            font-weight: 400; 
 | 
                            color: #333333; 
 | 
                            display: flex; 
 | 
                            align-items: center; 
 | 
                            justify-content: center; 
 | 
                            margin-right: 22rpx; 
 | 
                            margin-bottom: 22rpx; 
 | 
                            &:nth-child(4n) { 
 | 
                                margin-right: 0; 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                    text { 
 | 
                        font-size: 26rpx; 
 | 
                        font-weight: 400; 
 | 
                        color: #333333; 
 | 
                    } 
 | 
                    .Search_item_content_a { 
 | 
                        width: 308rpx; 
 | 
                        height: 70rpx; 
 | 
                        background: #F7F7F7; 
 | 
                        border-radius: 8rpx; 
 | 
                        border: 1rpx solid #EEEEEE; 
 | 
                        font-size: 26rpx; 
 | 
                        font-weight: 400; 
 | 
                        color: #B2B2B2; 
 | 
                        display: flex; 
 | 
                        align-items: center; 
 | 
                        justify-content: center; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            .content_search_x { 
 | 
                height: 24rpx; 
 | 
            } 
 | 
        } 
 | 
        .content_list { 
 | 
            width: 100%; 
 | 
            display: flex; 
 | 
            flex-direction: column; 
 | 
            .content_list_item { 
 | 
                width: 100%; 
 | 
                box-sizing: border-box; 
 | 
                padding: 30rpx; 
 | 
                background: #ffffff; 
 | 
                margin-bottom: 20rpx; 
 | 
                .content_list_item_title { 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
                    justify-content: space-between; 
 | 
                    .warning { 
 | 
                        color: $nav-stateColor5 !important; 
 | 
                    } 
 | 
                    .green { 
 | 
                        color: $nav-stateColor2 !important; 
 | 
                    } 
 | 
                    text { 
 | 
                        font-size: 32rpx; 
 | 
                        font-weight: 500; 
 | 
                        color: #333333; 
 | 
                    } 
 | 
                } 
 | 
                .content_list_item_nr { 
 | 
                    padding: 24rpx 30rpx; 
 | 
                    background: #F7F7F7; 
 | 
                    border-radius: 16rpx; 
 | 
                    margin-top: 30rpx; 
 | 
                    display: flex; 
 | 
                    justify-content: space-between; 
 | 
                    flex-wrap: wrap; 
 | 
                    .content_list_item_nr_boxs { 
 | 
                        width: 45%; 
 | 
                        display: flex; 
 | 
                        margin-top: 24rpx; 
 | 
                        &:nth-child(1) { 
 | 
                            margin-top: 0; 
 | 
                        } 
 | 
                        &:nth-child(2) { 
 | 
                            margin-top: 0; 
 | 
                        } 
 | 
                        .warning { 
 | 
                            color: $nav-stateColor4 !important; 
 | 
                        } 
 | 
                        .label { 
 | 
                            flex-shrink: 0; 
 | 
                            font-size: 24rpx; 
 | 
                            font-weight: 400; 
 | 
                            color: #666666; 
 | 
                        } 
 | 
                        .cr { 
 | 
                            flex: 1; 
 | 
                            font-size: 24rpx; 
 | 
                            font-weight: 400; 
 | 
                            color: #222222; 
 | 
                            overflow: hidden; 
 | 
                            white-space: nowrap; 
 | 
                            text-overflow: ellipsis; 
 | 
                            -o-text-overflow:ellipsis; 
 | 
                        } 
 | 
                    } 
 | 
                    .content_list_item_nr_box { 
 | 
                        width: 55%; 
 | 
                        display: flex; 
 | 
                        margin-top: 24rpx; 
 | 
                        &:nth-child(1) { 
 | 
                            margin-top: 0; 
 | 
                        } 
 | 
                        &:nth-child(2) { 
 | 
                            margin-top: 0; 
 | 
                        } 
 | 
                        .label { 
 | 
                            font-size: 24rpx; 
 | 
                            font-weight: 400; 
 | 
                            color: #666666; 
 | 
                            flex-shrink: 0; 
 | 
                        } 
 | 
                        .cr { 
 | 
                            font-size: 24rpx; 
 | 
                            font-weight: 400; 
 | 
                            color: #222222; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        .content_total { 
 | 
            width: 100%; 
 | 
            height: 80rpx; 
 | 
            padding: 24rpx 30rpx; 
 | 
            background: #F7F7F7; 
 | 
            font-size: 24rpx; 
 | 
            font-weight: 400; 
 | 
            box-sizing: border-box; 
 | 
            color: #666666; 
 | 
            position: sticky; 
 | 
            z-index: 99; 
 | 
        } 
 | 
    } 
 | 
</style> 
 |