Mr.Shi
2023-09-01 1bda72a44cccfb9f79673b95c33cce91057214d2
小程序
已添加7个文件
已修改6个文件
2712 ■■■■■ 文件已修改
minipro_standard/components/Search.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages.json 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/components/Material.vue 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/components/ProductionProcess.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/components/location.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/InventoryQuery/InventoryQuery.vue 485 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/addReceipt/addReceipt.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/newOutbound/newOutbound.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/outboundDetails/outboundDetails.vue 331 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/outboundList/outboundList.vue 551 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/transferList/transferList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/warehousingDetails1/warehousingDetails1.vue 346 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/warehousingList/warehousingList.vue 562 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/Search.vue
@@ -11,9 +11,9 @@
            </view>
        </view>
        <u-popup :show="open" :round="10" mode="bottom">
            <view class="content">
            <scroll-view scroll-y class="content">
                <slot name="content"></slot>
            </view>
            </scroll-view>
            <view class="zhanwei"></view>
            <view class="footer">
                <view class="footer_close" @click="closes">重置</view>
@@ -71,6 +71,9 @@
        }
        .content {
            padding: 30rpx 30rpx 0 30rpx;
            width: 100%;
            height: 800rpx;
            box-sizing: border-box;
        }
        .footer {
            width: 100%;
minipro_standard/pages.json
@@ -96,9 +96,16 @@
            "root": "pages_adjust",
            "pages": [
                {
                    "path": "pages/newOutbound/newOutbound",
                    "style": {
                        "navigationBarTitleText": "新建出库",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/addReceipt/addReceipt",
                    "style": {
                        "navigationBarTitleText": "新增入库",
                        "navigationBarTitleText": "新建入库",
                        "enablePullDownRefresh": false
                    }
                },
@@ -143,6 +150,34 @@
                        "navigationBarTitleText": "出库单列表",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/outboundDetails/outboundDetails",
                    "style": {
                        "navigationBarTitleText": "出库详情",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/warehousingList/warehousingList",
                    "style": {
                        "navigationBarTitleText": "入库单列表",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/warehousingDetails1/warehousingDetails1",
                    "style": {
                        "navigationBarTitleText": "入库详情",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "pages/InventoryQuery/InventoryQuery",
                    "style": {
                        "navigationBarTitleText": "库存量查询",
                        "enablePullDownRefresh": false
                    }
                }
            ]
        },
minipro_standard/pages_adjust/components/Material.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,131 @@
<template>
    <u-popup :show="show" mode="bottom" :closeable="true" :round="10" @open="open" @close="close">
        <view class="title">
            <text>选择物料</text>
        </view>
        <view class="content">
            <view class="content_search">
                <u-search :showAction="false" placeholder="搜索物料名称" v-model="keyword"></u-search>
            </view>
            <div class="content_total">共{{total}}条数据</div>
            <view class="content_list">
                <u-list @scrolltolower="scrolltolower">
                    <u-list-item v-for="(item, index) in indexList" :key="index">
                        <div class="content_list_item" @click="getVal(item)">
                            <div class="content_list_item_name">
                                <span>{{item.name}}</span>
                            </div>
                        </div>
                    </u-list-item>
                </u-list>
            </view>
        </view>
    </u-popup>
</template>
<script>
    export default {
        props: {
            show: Boolean
        },
        data() {
            return {
                keyword: '',
                total: 0,
                indexList: []
            };
        },
        methods: {
            getVal(item) {
                this.$emit('value', item)
            },
            open() {
                this.indexList = []
                this.loadmore()
            },
            scrolltolower() {
                this.loadmore()
            },
            loadmore() {
                for (let i = 0; i < 20; i++) {
                    this.indexList.push({
                        id: i,
                        name: `仓库${i}`
                    })
                }
            },
            close() {
                this.$emit('close')
            }
        }
    }
</script>
<style lang="scss" scoped>
    .title {
        width: 100%;
        height: 85rpx;
        line-height: 85rpx;
        text-align: center;
        text {
            font-size: 30rpx;
            font-family: PingFangSC-Medium, PingFang SC;
            font-weight: 500;
            color: #222222;
        }
    }
    .content {
        width: 100%;
        .content_search {
            width: 100%;
            padding: 0 30rpx 30rpx 30rpx;
            background: white;
            position: sticky;
            top: 85rpx;
            z-index: 9;
            box-sizing: border-box;
        }
        .content_total {
            padding: 24rpx 30rpx;
            background: #F7F7F7;
            font-size: 24rpx;
            font-weight: 400;
            color: #666666;
        }
        .content_list {
            width: 100%;
            height: 800rpx;
            display: flex;
            flex-direction: column;
            .content_list_item {
                padding: 30rpx;
                display: flex;
                border-bottom: 1rpx solid #ececec;
                .serious {
                    color: $nav-stateColor4 !important;
                }
                .success {
                    color: $nav-stateColor2 !important;
                }
                .warning {
                    color: $nav-stateColor5 !important;
                }
                .content_list_item_status {
                    font-size: 28rpx;
                    margin-right: 10rpx;
                }
                .content_list_item_name {
                    width: 100%;
                    display: flex;
                    align-items: center;
                    span {
                        font-size: 30rpx;
                        font-family: PingFangSC-Regular, PingFang SC;
                        font-weight: 400;
                        color: #222222;
                    }
                }
            }
        }
    }
</style>
minipro_standard/pages_adjust/components/ProductionProcess.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
<template>
    <u-popup :show="show" mode="bottom" :closeable="true" :round="10" @open="open" @close="close">
        <view class="title">
            <text>选择工序</text>
        </view>
        <view class="content">
            <scroll-view scroll-y class="content_list">
                <div class="content_list_item" v-for="(item, index) in list" :key="index" @click="getVal(item)">
                    <div class="content_list_item_name">
                        <span>{{item.name}}</span>
                    </div>
                </div>
            </scroll-view>
        </view>
    </u-popup>
</template>
<script>
    export default {
        props: {
            show: {
                type: Boolean,
                required: true
            },
            list: {
                type: Array,
                required: true
            }
        },
        methods: {
            getVal(item) {
                this.$emit('value', item)
            },
            open() {
                this.indexList = []
            },
            close() {
                this.$emit('close')
            }
        }
    }
</script>
<style lang="scss" scoped>
    .title {
        width: 100%;
        height: 85rpx;
        line-height: 85rpx;
        text-align: center;
        text {
            font-size: 30rpx;
            font-family: PingFangSC-Medium, PingFang SC;
            font-weight: 500;
            color: #222222;
        }
    }
    .content {
        width: 100%;
        .content_search {
            width: 100%;
            padding: 0 30rpx 30rpx 30rpx;
            background: white;
            position: sticky;
            top: 85rpx;
            z-index: 9;
            box-sizing: border-box;
        }
        .content_total {
            padding: 24rpx 30rpx;
            background: #F7F7F7;
            font-size: 24rpx;
            font-weight: 400;
            color: #666666;
        }
        .content_list {
            width: 100%;
            height: 800rpx;
            display: flex;
            flex-direction: column;
            .content_list_item {
                padding: 30rpx;
                display: flex;
                border-bottom: 1rpx solid #ececec;
                .serious {
                    color: $nav-stateColor4 !important;
                }
                .success {
                    color: $nav-stateColor2 !important;
                }
                .warning {
                    color: $nav-stateColor5 !important;
                }
                .content_list_item_status {
                    font-size: 28rpx;
                    margin-right: 10rpx;
                }
                .content_list_item_name {
                    width: 100%;
                    display: flex;
                    align-items: center;
                    span {
                        font-size: 30rpx;
                        font-family: PingFangSC-Regular, PingFang SC;
                        font-weight: 400;
                        color: #222222;
                    }
                }
            }
        }
    }
</style>
minipro_standard/pages_adjust/components/location.vue
@@ -1,19 +1,13 @@
<template>
    <u-popup :show="show" mode="bottom" :closeable="true" :round="10" @open="open" @close="close">
    <u-popup :show="show" mode="bottom" :closeable="true" :round="10" @close="close">
        <view class="title">
            <text>选择货位</text>
        </view>
        <view class="content">
            <view class="content_list">
                <u-list @scrolltolower="scrolltolower">
                    <u-list-item v-for="(item, index) in indexList" :key="index">
                        <div class="content_list_item">
                            <div class="content_list_item_name">
                                è´§ä½{{index}}
                <div class="content_list_item" v-for="(item, i) in list" :key="i" @click="jump(item)">
                    <div class="content_list_item_name">{{item.unionName}}</div>
                            </div>
                        </div>
                    </u-list-item>
                </u-list>
            </view>
        </view>
    </u-popup>
@@ -22,13 +16,23 @@
<script>
    export default {
        props: {
            show: Boolean
            show: {
                type: Boolean,
                required: true
        },
        data() {
            return {
                indexList: [1,2,3,4,5,6,7,8,9]
            };
            list: {
                type: Array,
                required: true
            }
        },
        methods: {
            close() {
                this.$emit('close')
            },
            jump(item) {
                this.$emit('value', item)
            }
        }
    }
</script>
minipro_standard/pages_adjust/pages/InventoryQuery/InventoryQuery.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,485 @@
<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">
                            <view class="tag">
                                <view
                                    class="tag_item"
                                    :class="{ tag_active: item.isActive }"
                                    v-for="(item, i) in groupTypes"
                                    :key="item.id"
                                    @click="changeGroup(i)"
                                >
                                    {{ item.name }}
                                </view>
                            </view>
                        </view>
                    </view>
                </template>
            </Search>
        </view>
        <view class="content_total" :style="{top: top}">共{{controlData.total}}条数据</view>
        <view class="content_list">
            <scroll-view @scrolltolower="getLists" scroll-y :style="{height: height}">
                <view class="content_list_item" v-for="(item, i) in list" :key="i">
                    <view class="content_list_item_top">
                        <view class="content_list_item_top_left">
                            <text>{{ item.materialName }}&nbsp;|&nbsp;{{ item.materialCode }}</text>
                        </view>
                        <view class="content_list_item_top_right">
                            <text class="created">{{ '库存:' + item.num + item.unitName }}</text>
                        </view>
                    </view>
                    <view class="content_list_item_sx">
                        <text v-if="item.qualityType == 0" class="green">合格 | </text>
                        <text v-if="item.qualityType == 1" class="yellow">不良 | </text>
                        <text v-if="item.qualityType == 2" class="red">报废 | </text>
                        <text>{{ item.procedureName ? item.procedureName : '-' }} | </text>
                        <text>{{ item.batch ? item.batch : '-' }}</text>
                    </view>
                    <!-- item主题信息部分 -->
                    <view class="content_list_item_content">
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">规格:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.attr }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item" v-if="data.groupType == '3' || data.groupType == '2'">
                            <view class="content_list_item_content_item_label">仓库:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.wareHouseName ? item.wareHouseName : '-' }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item" v-if="data.groupType == '3' || data.groupType == '2'">
                            <view class="content_list_item_content_item_label">货位:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.locationName }}
                            </view>
                        </view>
                    </view>
                </view>
            </scroll-view>
        </view>
    </view>
</template>
<script>
    import Search from '@/components/Search.vue'
    import { orderTyepToStr } from '@/util/constData.js'
    export default {
        components: {
            Search
        },
        data() {
            return {
                height: '',
                top: '',
                controlData: {
                    finished: false,
                    loading: false,
                    total: 0,
                    page: 0,
                    capacity: 10,
                },
                groupTypes: [
                    { name: '默认', id: '3', isActive: true },
                    { name: '物料', id: '1', isActive: false },
                    { name: '物料+仓库', id: '2', isActive: false }
                ],
                data: {
                    materialName: '',
                    groupType: '3'
                },
                list: []
            };
        },
        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()
            })
        },
        methods: {
            changeGroup(i) {
                this.groupTypes[i].isActive = !this.groupTypes[i].isActive;
                this.data.groupType = this.groupTypes[i].id
                for (const index in this.groupTypes) {
                    if (index != i) {
                        // console.log(index, i)
                        const item = this.groupTypes[index]
                        item.isActive = false
                    }
                }
            },
            tyepToStr(type) {
                //  <!-- 1、车间领料;2、车间备料;3、其他;4、完工入库 -->
                for (const item of this.orderType) {
                    if (item.id == type) {
                        return item.name
                    }
                }
                return '-'
            },
            // è·³è½¬
            jump(item) {
                uni.navigateTo({
                    url: `/pages/planDetails/planDetails?id=${item.id}`
                })
            },
            // èŽ·å–å¤´éƒ¨ç»„ä»¶é«˜åº¦
            getHeight(height) {
                this.height = height
            },
            // é‡ç½®
            reset() {
                this.listData.page = 0
                this.finished = false
                this.lists = []
                this.listData.mixParam = ''
                this.listData.startDate = ''
                this.listData.endDate = ''
                this.listData.procedureIds = []
                if (this.factoryList.length > 0) {
                    this.listData.departIds = this.factoryList[0].id
                }
                if (this.data.length > 0) {
                    this.data.forEach(item => {
                        item.isActive = false
                    })
                }
                // this.getLists()
                // this.pageCounts()
            },
            // æ—¥æœŸç¡®å®š
            timeConfirm(val) {
                this.listData.startDate = val[0]
                this.listData.endDate = val[val.length - 1]
                this.timeShow = false
            },
            // åˆ‡æ¢å·¥åŽ‚
            changeTags(i, id) {
                this.listData.departIds = id
                this.getWorkingProcedures(id)
                this.factoryList.forEach((item, index) => {
                    if (index === i) {
                        item.isActive = true
                    } else {
                        item.isActive = false
                    }
                })
            },
            // æ‰“开日期插件
            openDate() {
                this.timeShow = true
            },
            // æœç´¢
            searchInput(val) {
                this.listData.mixParam = val
                this.listData.page = 0
                this.finished = false
                this.lists = []
                this.getLists()
            },
            // ç‚¹å‡»æ ‡ç­¾æœç´¢
            clickTag(ids) {
                this.listData.cateIds = ids
                this.listData.page = 0
                this.finished = false
                this.lists = []
                // this.getLists()
            },
            // èŽ·å–åˆ—è¡¨ç»Ÿè®¡
            pageCounts() {
                pageCount({
                    factoryId: this.listData.departIds,
                    procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
                    startDate: this.listData.startDate,
                    endDate: this.listData.endDate,
                    statusList: this.listData.cateIds
                }).then(res => {
                    if (res.code === 200 && res.data) {
                        this.tagList[0].num = res.data.allNum.toString()
                        this.tagList[1].num = res.data.startNum.toString()
                        this.tagList[2].num = res.data.ingNum.toString()
                        this.tagList[3].num = res.data.endNum.toString()
                    }
                })
            },
            // èŽ·å–å·¥åŽ‚æ•°æ®
            getOrganizations() {
                getOrganization({
                    type: 1
                }).then(res => {
                    if (res.code === 200 && res.data && res.data.length !== 0) {
                        res.data.forEach((item, i) => {
                            item.isActive = i === 0;
                        })
                        if (res.data.length > 0) {
                            this.factoryList = res.data
                            this.listData.departIds = this.factoryList[0].id
                            this.listData.procedureIds = ''
                            this.finished = false
                            this.getWorkingProcedures(this.factoryList[0].id)
                            this.getLists()
                            this.pageCounts()
                        }
                    }
                })
            },
            // èŽ·å–å·¥åºæ•°æ®
            getWorkingProcedures(orgId) {
                this.data = []
                getWorkingProcedure({
                        orgId
                    })
                    .then(res => {
                        if (res.code === 200 && res.data && res.data.length !== 0) {
                            res.data.forEach((item, i) => {
                                item.isActive = false;
                            })
                            this.data = res.data
                        }
                    })
            },
            // æœç´¢å¼¹æ¡†æäº¤
            submit() {
                let pmodelOrgId = []
                this.data.forEach((item) => {
                    if (item.isActive) {
                        pmodelOrgId.push(item.id)
                    }
                })
                this.listData.procedureIds = pmodelOrgId
                this.listData.page = 0
                this.finished = false
                this.lists = []
                // this.getLists()
                // this.pageCounts()
            },
            // èŽ·å–è®¡åˆ’åˆ—è¡¨æ•°æ®
            getLists() {
                console.log('getLists')
                if (!this.finished) {
                    this.loading = true
                    this.listData.page = this.listData.page++
                    getList({
                        capacity: this.listData.capacity,
                        model: {
                            mixParam: this.listData.mixParam,
                            startDate: this.listData.startDate,
                            endDate: this.listData.endDate,
                            procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
                            factoryId: this.listData.departIds,
                            statusList: this.listData.cateIds
                        },
                        page: this.listData.page,
                        sorts: [{
                            direction: 'ASC',
                            property: 'publishDate'
                        }]
                    }).then(res => {
                        this.loading = false
                        this.listData.total = res.data.total
                        if (this.refreshing) {
                            this.lists = []
                            this.refreshing = false;
                        }
                        if (res.code === 200 && res.data.records.length !== 0) {
                            if (this.lists.length === 0) {
                                this.lists = res.data.records
                            } else {
                                this.lists.push(...res.data.records)
                            }
                        } else {
                            this.finished = true
                        }
                    }).catch(err => {
                        this.loading = false
                        this.finished = true
                        if (this.refreshing) {
                            this.lists = []
                            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;
                    .tag {
                        display: flex;
                        flex-wrap: wrap;
                        align-items: center;
                        .tag_active {
                            background: $nav-color !important;
                            color: #ffffff !important;
                        }
                        .tag_item {
                            padding: 22rpx 26rpx;
                            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;
                        }
                    }
                    text {
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                        margin: 0 30rpx;
                    }
                    .Search_item_content_a {
                        padding: 20rpx 0;
                        flex: 1;
                        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 {
                background: #ffffff;
                padding: 30rpx;
                display: flex;
                flex-direction: column;
                border-bottom: 1rpx solid #ececec;
                .content_list_item_sx {
                    margin-top: 20rpx;
                }
                .content_list_item_top {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    .content_list_item_top_left {
                        text {
                            font-size: 32rpx;
                            font-weight: 500;
                            color: #333333;
                        }
                    }
                    .content_list_item_top_right {
                        font-size: 26rpx;
                        font-weight: 400;
                        .created {
                            color: $nav-stateColor1 !important;
                        }
                        .warning {
                            color: $nav-stateColor5 !important;
                        }
                        .green {
                            color: $nav-stateColor6 !important;
                        }
                        .info {
                            color: $nav-stateColor3 !important;
                        }
                    }
                }
                .content_list_item_content {
                    padding: 24rpx 30rpx;
                    background: #f7f7f7;
                    border-radius: 16rpx;
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: space-between;
                    margin-top: 32rpx;
                    .content_list_item_content_item {
                        width: 100%;
                        display: flex;
                        margin-top: 24rpx;
                        &:nth-child(1) {
                            margin-top: 0 !important;
                        }
                        .content_list_item_content_item_label {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #666666;
                            flex-shrink: 0;
                        }
                        .content_list_item_content_item_nr {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #222222;
                            margin-right: 10rpx;
                        }
                    }
                }
            }
        }
        .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>
minipro_standard/pages_adjust/pages/addReceipt/addReceipt.vue
@@ -29,14 +29,14 @@
            </view>
            <van-swipe-cell v-for="(item, index) in list" :key="index">
                <view class="rework_qd_list">
                    <view class="rework_qd_item">
                    <view class="rework_qd_item" @click="locationShow = true">
                        <text><b>*</b>入库货位</text>
                        <view class="rework_qd_item_right">
                            <text :class="item.locationName ? 'black' : ''">{{item.locationName ? item.locationName : '请选择'}}</text>
                            <u-icon name="arrow-right"></u-icon>
                        </view>
                    </view>
                    <view class="rework_qd_item">
                    <view class="rework_qd_item" @click="materialsShow = true">
                        <text><b>*</b>入库物料</text>
                        <view class="rework_qd_item_right">
                            <text :class="item.materialName ? 'black' : ''">{{item.materialName ? item.materialName : '请选择'}}</text>
@@ -44,7 +44,7 @@
                        </view>
                    </view>
                    <template v-if="form.type !== 25">
                        <view class="rework_qd_item">
                        <view class="rework_qd_item" @click="productionShow = true">
                            <text>生产工序</text>
                            <view class="rework_qd_item_right">
                                <text :class="item.procedureName ? 'black' : ''">{{item.procedureName ? item.procedureName : '请选择'}}</text>
@@ -52,7 +52,7 @@
                            </view>
                        </view>
                    </template>
                    <view class="rework_qd_item">
                    <view class="rework_qd_item" @click="qualityShow = true">
                        <text><b>*</b>质量属性</text>
                        <view class="rework_qd_item_right">
                            <text :class="item.qualityTypeName ? 'black' : ''">{{item.qualityTypeName ? item.qualityTypeName : '请选择'}}</text>
@@ -62,13 +62,13 @@
                    <view class="rework_qd_item">
                        <text>批次号</text>
                        <view class="rework_qd_item_right">
                            <u--input placeholder="请输入" style="width: 230rpx;" border="surround" v-model="item.batch"></u--input>
                            <u--input placeholder="请输入" inputAlign="right" :customStyle="{width: '230rpx'}" border="surround" v-model="item.batch"></u--input>
                        </view>
                    </view>
                    <view class="rework_qd_item">
                        <text><b>*</b>入库数量<template v-if="item.unitName">({{ item.unitName }})</template></text>
                        <view class="rework_qd_item_right">
                            <u--input placeholder="0" border="surround" v-model="item.num"></u--input>
                            <u--input placeholder="0" inputAlign="right" :customStyle="{width: '230rpx'}" border="surround" v-model="item.num"></u--input>
                        </view>
                    </view>
                </view>
@@ -78,32 +78,51 @@
            </van-swipe-cell>
        </view>
        <view class="rework_zw"></view>
        <!-- åº•部操作按钮 -->
        <view class="rework_footer">
            <button class="rework_footer_submit">提交</button>
        </view>
        <u-toast ref="uToast"></u-toast>
        <!-- ä»“库 -->
        <Warehouse :show="warehouseShow" @close="close" @value="getValue" />
        <!-- ç‰©æ–™ -->
        <Material :show="materialsShow" @close="close1" @value="getValue1" />
        <!-- è´§ä½ -->
        <location :show="locationShow" @close="close1" @value="getValue1" />
        <location :show="locationShow" :list="locationList" @close="close3" @value="getValue3" />
        <!-- å·¥åº -->
        <ProductionProcess :show="productionShow" :list="productionList" @close="close4" @value="getValue4" />
        <!-- å•据类型 -->
        <u-picker :show="typeShow" keyName="name" :columns="typeList" @confirm="confirm" @cancel="typeClose"></u-picker>
        <!-- è´¨é‡å±žæ€§ -->
        <u-picker :show="qualityShow" :columns="columns" @cancel="qualityShow = false" keyName="name" @confirm="onConfirm1"></u-picker>
    </view>
</template>
<script>
    import Warehouse from '../../components/Warehouse.vue'
    import location from '../../components/location.vue'
    import Material from '../../components/Material.vue'
    import ProductionProcess from '../../components/ProductionProcess.vue'
    export default {
        components: { Warehouse, location },
        components: { Warehouse, location, Material, ProductionProcess },
        data() {
            return {
                i: 0,
                form: {
                    warehouseName: '',
                    warehouseId: '',
                    type: '',
                    typeName: ''
                },
                locationList: [],
                productionList: [],
                columns: [
                    [
                        { name: '合格', id: '0' },
                        { name: '不良', id: '1' },
                        { name: '报废', id: '2' }
                    ]
                ],
                list: [
                    {
                        batch: '',
@@ -125,10 +144,71 @@
                typeList: [[{name: '采购入库', id: 25}, {name: '库存调整', id: 28}]],
                warehouseShow: false,
                typeShow: false,
                locationShow: false
                locationShow: false,
                materialsShow: false,
                productionShow: false,
                qualityShow: false
            };
        },
        methods: {
            // è´¨é‡å±žæ€§ç¡®è®¤
            onConfirm1(value) {
                this.form.typeName = value.name
                this.form.type = value.id
                if (value.id == 25) {
                    this.list.forEach(item => {
                        item.procedureId = ''
                        item.procedureName = ''
                    })
                }
                this.typeShow = false
            },
            // é€‰æ‹©ç‰©æ–™
            getValue1(item) {
                this.list[this.i].materialName = item.mmodelUnionName
                this.list[this.i].materialId = item.id
                this.list[this.i].unitId = item.unitId
                this.list[this.i].hasBom = item.hasBom
                this.list[this.i].unitName = item.umodelName
                // èŽ·å–ç‰©æ–™ä¸‹å·¥åº
                getListByMaterialId({
                    materialId: item.id
                }).then(res => {
                    if (res.code === 200) {
                        productionList.value = res.data
                        this.list[this.i].procedureId = ''
                        this.list[this.i].procedureName = ''
                    }
                })
                materialsShow.value = false
            },
            // å…³é—­ä»“库选择弹框
            close1() {
                this.materialsShow = false
            },
            // é€‰æ‹©è´§ä½
            getValue3(item) {
                this.list[this.i].locationId = item.id
                this.list[this.i].locationName = item.unionName
                this.list[this.i].qualityType = ''
                this.list[this.i].qualityTypeName = ''
                this.list[this.i].locationIdLabel = item.label
                if (item.label === 'APPLIANCE_ONTEST') {
                    this.list[this.i].qualityType = '0'
                    this.list[this.i].qualityTypeName = '合格'
                } else if (item.label === 'APPLIANCE_OFFTEST') {
                    this.list[this.i].qualityType = '1'
                    this.list[this.i].qualityTypeName = '不良'
                } else if (item.label === 'APPLIANCE_USELESS') {
                    this.list[this.i].qualityType = '2'
                    this.list[this.i].qualityTypeName = '报废'
                }
                this.locationShow = false
            },
            // å…³é—­è´§ä½é€‰æ‹©å¼¹æ¡†
            close3() {
                this.locationShow = false
            },
            // ç¡®è®¤å•据类型
            confirm(val) {
                this.form.type = val.value[0].id
minipro_standard/pages_adjust/pages/newOutbound/newOutbound.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<template>
    <view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
            };
        }
    }
</script>
<style lang="scss">
</style>
minipro_standard/pages_adjust/pages/outboundDetails/outboundDetails.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,331 @@
<template>
    <view class="content1">
        <view class="order-message">
            <view class="content_list_item_top">
                <view class="content_list_item_top_left">
                    <!--          <text>出库单号:</text>-->
                    <text>{{ data.code }}</text>
                </view>
                <view class="content_list_item_top_right">
                    <text class="warning" v-if="data.status === 0">待出库</text>
                    <text class="green" v-else-if="data.status === 1">已出库</text>
                    <text class="info" v-else-if="data.status === 2">已取消</text>
                </view>
            </view>
            <view class="content_list_item_content">
                <view style="margin-top: 0 " class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">单据类型:</view>
                    <view class="content_list_item_content_item_nr" v-if="data.billType">
                        {{ orderTyepToStr(data.billType) }}
                    </view>
                </view>
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">出货仓库:</view>
                    <view class="content_list_item_content_item_nr">
                        {{ data.warehouseCode + ' | ' + data.warehouseName }}
                    </view>
                </view>
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">计划日期:</view>
                    <view class="content_list_item_content_item_nr">
                        {{ data.planDate }}
                    </view>
                </view>
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">来源类型:</view>
                    <view class="content_list_item_content_item_nr" v-if="data.originType">
                        {{ tyepToStr(data.originType) }}
                    </view>
                </view>
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">来源单号:</view>
                    <view class="content_list_item_content_item_nr">
                        {{ data.originCode ? data.originCode : '-' }}
                    </view>
                </view>
                <view v-if="data.updateName" class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">操作人:</view>
                    <view class="content_list_item_content_item_nr">
                        {{ data.updateName + ' - ' + data.updateMobile }}
                    </view>
                </view>
                <view v-if="data.updateTime" class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">操作时间:</view>
                    <view class="content_list_item_content_item_nr">
                        {{ data.updateTime }}
                    </view>
                </view>
            </view>
        </view>
        <!-- è½¬åº“物料 -->
        <view class="title">
            <text class="title-prefix"></text>
            <text>{{ data.status == 1 ? '已出库物料' : '待出库物料' }}</text>
        </view>
        <view class="material-content">
            <view class="item-style" v-for="(item, index) in materailArray" :key="index">
                <view class="item-title-style">
                    <text style="font-weight: 500;">{{ item.materialName + ' | ' + item.materialCode}}</text>
                </view>
                <view class="item-content-style">
                    <view class="content_list_item_content_item">
                        <view class="content_list_item_content_item_label">批次号:</view>
                        <view class="content_list_item_content_item_nr">
                            {{ item.batch }}
                        </view>
                    </view>
                    <view class="content_list_item_content_item">
                        <view class="content_list_item_content_item_label">数量:</view>
                        <view class="content_list_item_content_item_nr">
                            {{ item.num + item.unitName }}
                        </view>
                    </view>
                    <view class="content_list_item_content_item">
                        <view class="content_list_item_content_item_label">工序:</view>
                        <view class="content_list_item_content_item_nr">
                            {{ item.procedureName || '-' }}
                        </view>
                    </view>
                    <view class="content_list_item_content_item">
                        <view class="content_list_item_content_item_label">质量:</view>
                        <view class="content_list_item_content_item_nr">
                            <text v-if="item.qualityType == 0" class="green">合格</text>
                            <text v-else-if="item.qualityType == 1" class="yellow">不良</text>
                            <text v-else-if="item.qualityType == 2" class="red">报废</text>
                            <text v-else>-</text>
                        </view>
                    </view>
                    <view class="content_list_item_content_item">
                        <view class="content_list_item_content_item_label">出库货位:</view>
                        <view class="content_list_item_content_item_nr">
                            {{ item.locationName }}
                        </view>
                    </view>
                </view>
                <!--        <view style="margin-top:10rpx; background: #cccccc; height:0.5rpx"></view>-->
            </view>
        </view>
        <view v-if="data.status === 0" style="height:94rpx"></view>
        <view v-if="data.status === 0" class="bottom-button">
            <button class="button button-action" @click="submit">去出库</button>
            <button class="button button-cancel" @click="cancel">取消</button>
        </view>
    </view>
</template>
<script>
    import { orderTyepToStr } from '@/util/constData.js'
    export default {
        data() {
            return {
                data: {},
                types: [
                    { name: '全部', id: '', isActive: true },
                    { name: '采购订单', id: '0', isActive: false },
                    { name: '生产工单', id: '1', isActive: false },
                    { name: '销售订单', id: '2', isActive: false },
                    { name: '转库单', id: '3', isActive: false },
                    { name: '盘点单', id: '4', isActive: false },
                ],
                materailArray: []
            };
        },
        methods: {
            tyepToStr(type) {
                //  <!-- 1、车间领料;2、车间备料;3、其他;4、完工入库 -->
                for (const item of this.types) {
                    if (parseInt(item.id) === type) {
                        return item.name
                    }
                }
                return '-'
            },
            submit() {
            },
            cancel() {
            }
        }
    }
</script>
<style lang="scss" scoped>
    .content1 {
        padding: 30rpx;
        background: white;
        .order-message {
            display: flex;
            flex-direction: column;
            // border-bottom: 1rpx solid #ececec;
            .content_list_item_top {
                display: flex;
                align-items: center;
                justify-content: space-between;
                .content_list_item_top_left {
                    display: flex;
                    // align-items: center;
                    text {
                        font-size: 32rpx;
                        font-weight: 500;
                        color: #333333;
                    }
                }
                .content_list_item_top_right {
                    font-size: 26rpx;
                    font-weight: 400;
                    .created {
                        color: $nav-stateColor1 !important;
                    }
                    .warning {
                        color: $nav-stateColor5 !important;
                    }
                    .green {
                        color: $nav-stateColor6 !important;
                    }
                    .info {
                        color: $nav-stateColor3 !important;
                    }
                }
            }
            .content_list_item_content {
                padding: 24rpx 30rpx;
                background: #f7f7f7;
                border-radius: 16rpx;
                display: flex;
                flex-wrap: wrap;
                justify-content: space-between;
                margin-top: 32rpx;
                .content_list_item_content_item {
                    width: 100%;
                    display: flex;
                    margin-top: 24rpx;
                    .content_list_item_content_item_label {
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #666666;
                        flex-shrink: 0;
                    }
                    .content_list_item_content_item_nr {
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #222222;
                        margin-right: 10rpx;
                    }
                }
            }
        }
        .title {
            font-size: 30rpx;
            display: flex;
            align-items: center;
            margin-top: 30rpx;
            .title-prefix {
                display: inline-block;
                background-color: #4275FC;
                height: 30rpx;
                width: 8rpx;
                border-radius: 1rpx;
                margin-right: 12rpx;
            }
        }
        .material-content {
            margin-top: 30rpx;
            .item-style {
                width: initial;
                border-bottom: 1rpx solid #ececec;
                margin-top: 30rpx;
                &:last-child {
                    border: none;
                }
                .item-title-style {
                    margin-bottom: 12rpx;
                    font-size: 30rpx;
                }
                .item-content-style {
                    // padding: 24rpx 30rpx;
                    // background-color: #f7f7f7;
                    // border-radius: 16rpx;
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: space-between;
                    padding: 1rpx 1rpx 30rpx 1rpx;
                    .content_list_item_content_item {
                        width: 100%;
                        display: flex;
                        margin-top: 24rpx;
                        .content_list_item_content_item_label {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #666666;
                            flex-shrink: 0;
                        }
                        .content_list_item_content_item_nr {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #222222;
                            margin-right: 10rpx;
                        }
                    }
                }
            }
        }
        .bottom-button {
            padding: 1rpx;
            background-color: #f7f7f7;
            position: fixed;
            width: 100%;
            bottom: 0;
            height: 188rpx;
            display: flex;
            justify-content: space-between;
            .button-action {
                background: #fff;
                color: $nav-color;
            }
            .button-cancel {
                background: $nav-color;
                color: #FFFFFF;
            }
            .button {
                margin: 32rpx 32rpx 68rpx 32rpx;
                height: 88rpx;
                width: 334rpx;
                border: none;
                border-radius: 8rpx;
                box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
                display: flex;
                align-items: center;
                justify-content: center;
            }
        }
    }
</style>
minipro_standard/pages_adjust/pages/outboundList/outboundList.vue
@@ -1,19 +1,562 @@
<template>
    <view>
        å‡ºåº“单列表
    <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="openDate">
                            <view class="Search_item_content_a" :style="listData.startDate ? 'color: #000' : ''">
                                {{ listData.startDate ? listData.startDate : '开始日期'}}</view>
                            <text>-</text>
                            <view class="Search_item_content_a" :style="listData.endDate ? 'color: #000' : ''">
                                {{ listData.endDate ? listData.endDate : '结束日期'}}</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 types"
                                :key="item.id" @click="changeTags(i)">{{item.name}}</view>
                            </view>
                        </view>
                    </view>
                </template>
            </Search>
            <view class="content_search_x"></view>
            <LabelSelection :TagList="tagList" :isShow="true" @change="clickTag" />
        </view>
        <view class="content_total" :style="{top: top}">共{{listData.total}}条数据</view>
        <view class="content_list">
            <scroll-view @scrolltolower="getLists" scroll-y :style="{height: height}">
                <view class="content_list_item" v-for="(item, i) in lists" :key="i" @click="jump(item)">
                    <!-- item头部视图 -->
                    <view class="content_list_item_top">
                        <view class="content_list_item_top_left">
                            <!--                <text>转库单号:</text>-->
                            <text>{{ item.code }}</text>
                        </view>
                        <view class="content_list_item_top_right">
                            <span class="warning" v-if="item.status === 0">待出库</span>
                            <span class="green" v-else-if="item.status === 1">已出库</span>
                            <span class="info" v-else-if="item.status === 2">已取消</span>
                        </view>
                    </view>
                    <!-- item主题信息部分 -->
                    <view class="content_list_item_content">
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">单据类型:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ orderTyepToStr(item.billType) }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">出库仓库:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.warehouseName + ' | ' + item.warehouseCode }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">计划出库:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.planDate }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">来源类型:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ tyepToStr(item.originType) }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">来源单号:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.originCode ? item.originCode : '-' }}
                            </view>
                        </view>
                    </view>
                </view>
            </scroll-view>
        </view>
        <!-- é€‰æ‹©æ—¥æœŸ -->
        <u-calendar :show="timeShow" @close="timeShow = false" @confirm="timeConfirm"></u-calendar>
    </view>
</template>
<script>
    import Search from '@/components/Search.vue'
    import LabelSelection from '@/components/LabelSelection.vue'
    import { orderTyepToStr } from '@/util/constData.js'
    export default {
        components: {
            Search,
            LabelSelection
        },
        data() {
            return {
                height: '',
                top: '',
                listData: {
                    capacity: 10,
                    page: 0,
                    total: 0,
                    planDateEnd: "",
                    planDateStart: "",
                    code: "",
                    originType: "",
                    status: ""
                },
                types: [
                    { name: '车间领料', id: '1', isActive: false },
                    { name: '机台备料', id: '2', isActive: false },
                    { name: '车间转库', id: '3', isActive: false },
                    { name: '完工入库', id: '4', isActive: false },
                    { name: '计划领料', id: '5', isActive: false },
                    { name: '外协领料', id: '6', isActive: false },
                    { name: '外协完工转库', id: '7', isActive: false },
                    { name: '产品入库', id: '8', isActive: false },
                    { name: '产品转库', id: '9', isActive: false },
                    { name: '让步放行入库', id: '10', isActive: false },
                    { name: '让步放行转库', id: '11', isActive: false },
                    { name: '客返返修领料', id: '12', isActive: false },
                    { name: '客返返修入库', id: '13', isActive: false },
                    { name: '跨组织转库', id: '14', isActive: false },
                    { name: '工序报废', id: '15', isActive: false },
                    { name: '客退返修领料', id: '16', isActive: false },
                    { name: '客退返修入库', id: '17', isActive: false },
                    { name: '销售出库', id: '18', isActive: false },
                    { name: '让步销售', id: '19', isActive: false },
                    { name: '工单投料', id: '20', isActive: false },
                    { name: '仓库报废', id: '21', isActive: false },
                    { name: '客退检验领料', id: '22', isActive: false },
                    { name: '客返检验领料', id: '23', isActive: false },
                    { name: '库存调整', id: '28', isActive: false },
                    { name: '废品入库', id: '30', isActive: false }
                ],
                tagList: [
                    {
                        id: "",
                        name: "全部",
                        num: '0',
                    },
                    {
                        id: "0",
                        name: "待出库",
                        num: '0',
                    },
                    {
                        id: "1",
                        name: "已出库",
                        num: "0",
                    },
                    {
                        id: "2",
                        name: "已取消",
                        num: "0",
                    }
                ],
                data: [], // å·¥åºæ•°æ®
                factoryList: [],
                finished: true,
                loading: false,
                refreshing: false,
                timeShow: false,
                lists: []
            };
        },
        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()
            })
        },
        methods: {
            tyepToStr(type) {
                //  <!-- 1、车间领料;2、车间备料;3、其他;4、完工入库 -->
                for (const item of this.orderType) {
                    if (item.id == type) {
                        return item.name
                    }
                }
                return '-'
            },
            // è·³è½¬
            jump(item) {
                uni.navigateTo({
                    url: `/pages/planDetails/planDetails?id=${item.id}`
                })
            },
            // èŽ·å–å¤´éƒ¨ç»„ä»¶é«˜åº¦
            getHeight(height) {
                this.height = height
            },
            // é‡ç½®
            reset() {
                this.listData.page = 0
                this.finished = false
                this.lists = []
                this.listData.mixParam = ''
                this.listData.startDate = ''
                this.listData.endDate = ''
                this.listData.procedureIds = []
                if (this.factoryList.length > 0) {
                    this.listData.departIds = this.factoryList[0].id
                }
                if (this.data.length > 0) {
                    this.data.forEach(item => {
                        item.isActive = false
                    })
                }
                // this.getLists()
                // this.pageCounts()
            },
            // æ—¥æœŸç¡®å®š
            timeConfirm(val) {
                this.listData.startDate = val[0]
                this.listData.endDate = val[val.length - 1]
                this.timeShow = false
            },
            // åˆ‡æ¢å·¥åŽ‚
            changeTags(i, id) {
                this.listData.departIds = id
                this.getWorkingProcedures(id)
                this.factoryList.forEach((item, index) => {
                    if (index === i) {
                        item.isActive = true
                    } else {
                        item.isActive = false
                    }
                })
            },
            // æ‰“开日期插件
            openDate() {
                this.timeShow = true
            },
            // æœç´¢
            searchInput(val) {
                this.listData.mixParam = val
                this.listData.page = 0
                this.finished = false
                this.lists = []
                this.getLists()
            },
            // ç‚¹å‡»æ ‡ç­¾æœç´¢
            clickTag(ids) {
                this.listData.cateIds = ids
                this.listData.page = 0
                this.finished = false
                this.lists = []
                // this.getLists()
            },
            // èŽ·å–åˆ—è¡¨ç»Ÿè®¡
            pageCounts() {
                pageCount({
                    factoryId: this.listData.departIds,
                    procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
                    startDate: this.listData.startDate,
                    endDate: this.listData.endDate,
                    statusList: this.listData.cateIds
                }).then(res => {
                    if (res.code === 200 && res.data) {
                        this.tagList[0].num = res.data.allNum.toString()
                        this.tagList[1].num = res.data.startNum.toString()
                        this.tagList[2].num = res.data.ingNum.toString()
                        this.tagList[3].num = res.data.endNum.toString()
                    }
                })
            },
            // èŽ·å–å·¥åŽ‚æ•°æ®
            getOrganizations() {
                getOrganization({
                    type: 1
                }).then(res => {
                    if (res.code === 200 && res.data && res.data.length !== 0) {
                        res.data.forEach((item, i) => {
                            item.isActive = i === 0;
                        })
                        if (res.data.length > 0) {
                            this.factoryList = res.data
                            this.listData.departIds = this.factoryList[0].id
                            this.listData.procedureIds = ''
                            this.finished = false
                            this.getWorkingProcedures(this.factoryList[0].id)
                            this.getLists()
                            this.pageCounts()
                        }
                    }
                })
            },
            // èŽ·å–å·¥åºæ•°æ®
            getWorkingProcedures(orgId) {
                this.data = []
                getWorkingProcedure({
                        orgId
                    })
                    .then(res => {
                        if (res.code === 200 && res.data && res.data.length !== 0) {
                            res.data.forEach((item, i) => {
                                item.isActive = false;
                            })
                            this.data = res.data
                        }
                    })
            },
            // æœç´¢å¼¹æ¡†æäº¤
            submit() {
                let pmodelOrgId = []
                this.data.forEach((item) => {
                    if (item.isActive) {
                        pmodelOrgId.push(item.id)
                    }
                })
                this.listData.procedureIds = pmodelOrgId
                this.listData.page = 0
                this.finished = false
                this.lists = []
                // this.getLists()
                // this.pageCounts()
            },
            // èŽ·å–è®¡åˆ’åˆ—è¡¨æ•°æ®
            getLists() {
                console.log('getLists')
                if (!this.finished) {
                    this.loading = true
                    this.listData.page = this.listData.page++
                    getList({
                        capacity: this.listData.capacity,
                        model: {
                            mixParam: this.listData.mixParam,
                            startDate: this.listData.startDate,
                            endDate: this.listData.endDate,
                            procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
                            factoryId: this.listData.departIds,
                            statusList: this.listData.cateIds
                        },
                        page: this.listData.page,
                        sorts: [{
                            direction: 'ASC',
                            property: 'publishDate'
                        }]
                    }).then(res => {
                        this.loading = false
                        this.listData.total = res.data.total
                        if (this.refreshing) {
                            this.lists = []
                            this.refreshing = false;
                        }
                        if (res.code === 200 && res.data.records.length !== 0) {
                            if (this.lists.length === 0) {
                                this.lists = res.data.records
                            } else {
                                this.lists.push(...res.data.records)
                            }
                        } else {
                            this.finished = true
                        }
                    }).catch(err => {
                        this.loading = false
                        this.finished = true
                        if (this.refreshing) {
                            this.lists = []
                            this.refreshing = false;
                        }
                    })
                }
            }
        }
    }
</script>
<style lang="scss">
<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;
                    .tag {
                        display: flex;
                        flex-wrap: wrap;
                        align-items: center;
                        .tag_active {
                            background: $nav-color !important;
                            color: #ffffff !important;
                        }
                        .tag_item {
                            padding: 22rpx 26rpx;
                            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;
                        }
                    }
                    text {
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                        margin: 0 30rpx;
                    }
                    .Search_item_content_a {
                        padding: 20rpx 0;
                        flex: 1;
                        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;
                display: flex;
                flex-direction: column;
                border-bottom: 1rpx solid #ececec;
                background: white;
                .content_list_item_top {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    .content_list_item_top_left {
                        display: flex;
                        align-items: center;
                        text {
                            font-size: 32rpx;
                            font-weight: 500;
                            color: #333333;
                        }
                    }
                    .content_list_item_top_right {
                        font-size: 26rpx;
                        font-weight: 400;
                        .created {
                            color: $nav-stateColor1 !important;
                        }
                        .warning {
                            color: $nav-stateColor5 !important;
                        }
                        .green {
                            color: $nav-stateColor6 !important;
                        }
                        .info {
                            color: $nav-stateColor3 !important;
                        }
                    }
                }
                .content_list_item_content {
                    padding: 24rpx 30rpx;
                    background: #f7f7f7;
                    border-radius: 16rpx;
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: space-between;
                    margin-top: 32rpx;
                    .content_list_item_content_item {
                        width: 100%;
                        display: flex;
                        margin-top: 24rpx;
                        &:first-child {
                            margin-top: 0;
                        }
                        // &:nth-child(1) {
                        //   margin-top: 0 !important;
                        // }
                        // &:nth-child(2) {
                        //   margin-top: 0 !important;
                        // }
                        .content_list_item_content_item_label {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #666666;
                            flex-shrink: 0;
                        }
                        .content_list_item_content_item_nr {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #222222;
                            margin-right: 10rpx;
                        }
                    }
                }
            }
        }
        .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>
minipro_standard/pages_adjust/pages/transferList/transferList.vue
@@ -2,7 +2,7 @@
    <view class="content">
        <view class="content_search">
            <Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
                placeholder="搜索物料名称/编码/工序名称">
                placeholder="搜索转库单号">
                <template v-slot:content>
                    <view class="Search_item">
                        <view class="Search_item_label">计划日期</view>
minipro_standard/pages_adjust/pages/warehousingDetails1/warehousingDetails1.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,346 @@
<template>
    <view class="content">
        <view class="order-message">
            <view class="content_list_item_top">
                <view class="content_list_item_top_left">
                    <!--<text>入库单号:</text>-->
                    <text>{{ data.code }}</text>
                </view>
                <view class="content_list_item_top_right">
                    <text class="warning" v-if="data.status === 0">待入库</text>
                    <text class="green" v-else-if="data.status === 1">已入库</text>
                    <text class="info" v-else-if="data.status === 2">已取消</text>
                </view>
            </view>
            <view class="content_list_item_content">
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">单据类型:</view>
                    <view class="content_list_item_content_item_nr" v-if="data.billType">
                        {{ orderTyepToStr(data.billType) }}
                    </view>
                </view>
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">入库仓库:</view>
                    <view class="content_list_item_content_item_nr">
                        {{ data.warehouseCode + ' | ' + data.warehouseName }}
                    </view>
                </view>
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">计划入库:</view>
                    <view class="content_list_item_content_item_nr">
                        {{ data.planDate }}
                    </view>
                </view>
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">来源类型:</view>
                    <view class="content_list_item_content_item_nr" v-if="data.originType">
                        {{ tyepToStr(data.originType) }}
                    </view>
                </view>
                <view class="content_list_item_content_item">
                    <view class="content_list_item_content_item_label">来源单号:</view>
                    <view class="content_list_item_content_item_nr">
                        {{ data.originCode ? data.originCode : '-' }}
                    </view>
                </view>
            </view>
        </view>
        <!-- è½¬åº“物料 -->
        <view class="title">
            <text class="title-prefix"></text>
            <text>入出库物料</text>
        </view>
        <view class="material-content">
            <view class="item-style" v-for="(item, index) in materailArray" :key="index">
                <view class="item-title-style">
                    <text style="font-weight: 500;">{{ item.materialName + ' | ' + item.materialCode}}</text>
                </view>
                <view class="item-content-style">
                    <view class="content_list_item_content_item">
                        <text class="content_list_item_content_item_label">批次号:</text>
                        <text class="content_list_item_content_item_nr">{{ item.batch || '-' }}</text>
                    </view>
                    <view class="content_list_item_content_item">
                        <text class="content_list_item_content_item_label">数量:</text>
                        <text class="content_list_item_content_item_nr">{{ item.doneNum + item.unitName }}</text>
                    </view>
                    <view class="content_list_item_content_item">
                        <text class="content_list_item_content_item_label">工序:</text>
                        <text class="content_list_item_content_item_nr">{{ item.procedureName || '-' }}</text>
                    </view>
                    <view class="content_list_item_content_item">
                        <view class="content_list_item_content_item_label">质量:</view>
                        <view class="content_list_item_content_item_nr">
                            <text v-if="item.qualityType == 0" class="green">合格</text>
                            <text v-else-if="item.qualityType == 1" class="yellow">不良</text>
                            <text v-else-if="item.qualityType == 2" class="red">报废</text>
                            <text v-else>-</text>
                        </view>
                    </view>
                    <view class="content_list_item_content_item">
                        <text class="content_list_item_content_item_label">入库货位:</text>
                        <text class="content_list_item_content_item_nr">{{ item.locationName ? item.locationName : '-' }}</text>
                    </view>
                </view>
            </view>
        </view>
        <view v-if="data.status === 0" style="height:94rpx"></view>
        <view v-if="data.status === 0" class="bottom-button">
            <button class="button button-cancel" @click="submit">去入库</button>
            <!-- <button class="button button-cancel" @click="cancel">取消</button> -->
        </view>
    </view>
</template>
<script>
    import {
        orderTyepToStr
    } from '@/util/constData.js'
    export default {
        data() {
            return {
                types: [{
                        name: '全部',
                        id: '',
                        isActive: true
                    },
                    {
                        name: '采购订单',
                        id: '0',
                        isActive: false
                    },
                    {
                        name: '生产工单',
                        id: '1',
                        isActive: false
                    },
                    {
                        name: '销售订单',
                        id: '2',
                        isActive: false
                    },
                    {
                        name: '转库单',
                        id: '3',
                        isActive: false
                    },
                    {
                        name: '盘点单',
                        id: '4',
                        isActive: false
                    },
                ],
                data: {},
                materailArray: []
            };
        },
        methods: {
            tyepToStr(type) {
                //  <!-- 1、车间领料;2、车间备料;3、其他;4、完工入库 -->
                for (const item of this.types) {
                    if (parseInt(item.id) === this.type) {
                        return item.name
                    }
                }
                return '-'
            },
            submit() {
            }
        }
    }
</script>
<style lang="scss" scoped>
    .content {
        background: white;
        .order-message {
            padding: 30rpx;
            display: flex;
            flex-direction: column;
            // border-bottom: 1rpx solid #ececec;
            .content_list_item_top {
                display: flex;
                align-items: center;
                justify-content: space-between;
                .content_list_item_top_left {
                    display: flex;
                    // align-items: center;
                    text {
                        font-size: 32rpx;
                        font-weight: 500;
                        color: #333333;
                    }
                }
                .content_list_item_top_right {
                    font-size: 26rpx;
                    font-weight: 400;
                    .created {
                        color: $nav-stateColor1 !important;
                    }
                    .warning {
                        color: $nav-stateColor5 !important;
                    }
                    .green {
                        color: $nav-stateColor6 !important;
                    }
                    .info {
                        color: $nav-stateColor3 !important;
                    }
                }
            }
            .content_list_item_content {
                padding: 24rpx 30rpx;
                background: #f7f7f7;
                border-radius: 16rpx;
                display: flex;
                flex-wrap: wrap;
                justify-content: space-between;
                margin-top: 32rpx;
                .content_list_item_content_item:first-child {
                    margin-top: 0;
                }
                .content_list_item_content_item {
                    width: 100%;
                    display: flex;
                    align-items: center;
                    margin-top: 24rpx;
                    .content_list_item_content_item_label {
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #666666;
                        flex-shrink: 0;
                    }
                    .content_list_item_content_item_nr {
                        font-size: 24rpx;
                        font-weight: 400;
                        color: #222222;
                        margin-right: 10rpx;
                    }
                }
            }
        }
        .title {
            background-color: #f7f7f7;
            padding: 30rpx;
            font-size: 30rpx;
            display: flex;
            align-items: center;
            .title-prefix {
                display: inline-block;
                background-color: #4275FC;
                height: 30rpx;
                width: 8rpx;
                border-radius: 1rpx;
                margin-right: 12rpx;
            }
        }
        .material-content {
            padding: 30rpx;
            .item-style {
                width: initial;
                border-bottom: 1rpx solid #ececec;
                margin-top: 30rpx;
                &:first-child {
                    margin-top: 0 !important;
                }
                &:last-child {
                    border: none;
                }
                .item-title-style {
                    margin-bottom: 12rpx;
                    font-size: 30rpx;
                }
                .item-content-style {
                    // padding: 24rpx 30rpx;
                    // background-color: #f7f7f7;
                    // border-radius: 16rpx;
                    display: flex;
                    flex-wrap: wrap;
                    padding-bottom: 30rpx;
                    justify-content: space-between;
                    &:last-child {
                        padding-bottom: 0;
                    }
                    .content_list_item_content_item {
                        width: 100%;
                        display: flex;
                        margin-top: 24rpx;
                        .content_list_item_content_item_label {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #666666;
                            flex-shrink: 0;
                        }
                        .content_list_item_content_item_nr {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #222222;
                            margin-right: 10rpx;
                        }
                    }
                }
            }
        }
        .bottom-button {
            padding: 1rpx;
            background-color: #f7f7f7;
            position: fixed;
            width: 100%;
            bottom: 0;
            height: 188rpx;
            display: flex;
            justify-content: space-between;
            .button-action {
                background: #fff;
                color: $nav-color;
            }
            .button-cancel {
                background: $nav-color;
                color: #FFFFFF;
            }
            .button {
                margin: 32rpx 32rpx 68rpx 32rpx;
                height: 88rpx;
                /*width: 668rpx;*/
                // width: 334rpx;
                border: none;
                border-radius: 8rpx;
                box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
                display: flex;
                align-items: center;
                justify-content: center;
            }
        }
    }
</style>
minipro_standard/pages_adjust/pages/warehousingList/warehousingList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,562 @@
<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="openDate">
                            <view class="Search_item_content_a" :style="listData.startDate ? 'color: #000' : ''">
                                {{ listData.startDate ? listData.startDate : '开始日期'}}</view>
                            <text>-</text>
                            <view class="Search_item_content_a" :style="listData.endDate ? 'color: #000' : ''">
                                {{ listData.endDate ? listData.endDate : '结束日期'}}</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 types"
                                    :key="item.id" @click="changeTags(i)">{{item.name}}</view>
                            </view>
                        </view>
                    </view>
                </template>
            </Search>
            <view class="content_search_x"></view>
            <LabelSelection :TagList="tagList" :isShow="true" @change="clickTag" />
        </view>
        <view class="content_total" :style="{top: top}">共{{listData.total}}条数据</view>
        <view class="content_list">
            <scroll-view @scrolltolower="getLists" scroll-y :style="{height: height}">
                <view class="content_list_item" v-for="(item, i) in lists" :key="i" @click="jump(item)">
                    <!-- item头部视图 -->
                    <view class="content_list_item_top">
                        <view class="content_list_item_top_left">
                            <!--                <text>转库单号:</text>-->
                            <text>{{ item.code }}</text>
                        </view>
                        <view class="content_list_item_top_right">
                            <span class="warning" v-if="item.status == 0">待入库</span>
                            <span class="green" v-else-if="item.status == 1">已入库</span>
                            <span class="info" v-else-if="item.status == 2">已取消</span>
                        </view>
                    </view>
                    <!-- item主题信息部分 -->
                    <view class="content_list_item_content">
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">单据类型:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ orderTyepToStr(item.billType) }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">入库仓库:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.warehouseName + ' | ' + item.warehouseCode }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">计划入库:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.planDate }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">来源类型:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ tyepToStr(item.originType) }}
                            </view>
                        </view>
                        <view class="content_list_item_content_item">
                            <view class="content_list_item_content_item_label">来源单号:</view>
                            <view class="content_list_item_content_item_nr">
                                {{ item.originCode ? item.originCode : '-' }}
                            </view>
                        </view>
                    </view>
                </view>
            </scroll-view>
        </view>
        <!-- é€‰æ‹©æ—¥æœŸ -->
        <u-calendar :show="timeShow" @close="timeShow = false" @confirm="timeConfirm"></u-calendar>
    </view>
</template>
<script>
    import Search from '@/components/Search.vue'
    import LabelSelection from '@/components/LabelSelection.vue'
    import { orderTyepToStr } from '@/util/constData.js'
    export default {
        components: {
            Search,
            LabelSelection
        },
        data() {
            return {
                height: '',
                top: '',
                listData: {
                    capacity: 10,
                    page: 0,
                    total: 0,
                    planDateEnd: "",
                    planDateStart: "",
                    code: "",
                    originType: "",
                    status: ""
                },
                types: [
                    { name: '车间领料', id: '1', isActive: false },
                    { name: '机台备料', id: '2', isActive: false },
                    { name: '车间转库', id: '3', isActive: false },
                    { name: '完工入库', id: '4', isActive: false },
                    { name: '计划领料', id: '5', isActive: false },
                    { name: '外协领料', id: '6', isActive: false },
                    { name: '外协完工转库', id: '7', isActive: false },
                    { name: '产品入库', id: '8', isActive: false },
                    { name: '产品转库', id: '9', isActive: false },
                    { name: '让步放行入库', id: '10', isActive: false },
                    { name: '让步放行转库', id: '11', isActive: false },
                    { name: '客返返修领料', id: '12', isActive: false },
                    { name: '客返返修入库', id: '13', isActive: false },
                    { name: '跨组织转库', id: '14', isActive: false },
                    { name: '工序报废', id: '15', isActive: false },
                    { name: '客退返修领料', id: '16', isActive: false },
                    { name: '客退返修入库', id: '17', isActive: false },
                    { name: '销售出库', id: '18', isActive: false },
                    { name: '让步销售', id: '19', isActive: false },
                    { name: '工单投料', id: '20', isActive: false },
                    { name: '仓库报废', id: '21', isActive: false },
                    { name: '客退检验领料', id: '22', isActive: false },
                    { name: '客返检验领料', id: '23', isActive: false },
                    { name: '库存调整', id: '28', isActive: false },
                    { name: '废品入库', id: '30', isActive: false }
                ],
                tagList: [
                    {
                        id: "",
                        name: "全部",
                        num: '0',
                    },
                    {
                        id: "0",
                        name: "待出库",
                        num: '0',
                    },
                    {
                        id: "1",
                        name: "已出库",
                        num: "0",
                    },
                    {
                        id: "2",
                        name: "已取消",
                        num: "0",
                    }
                ],
                data: [], // å·¥åºæ•°æ®
                factoryList: [],
                finished: true,
                loading: false,
                refreshing: false,
                timeShow: false,
                lists: []
            };
        },
        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()
            })
        },
        methods: {
            tyepToStr(type) {
                //  <!-- 1、车间领料;2、车间备料;3、其他;4、完工入库 -->
                for (const item of this.orderType) {
                    if (item.id == type) {
                        return item.name
                    }
                }
                return '-'
            },
            // è·³è½¬
            jump(item) {
                uni.navigateTo({
                    url: `/pages/planDetails/planDetails?id=${item.id}`
                })
            },
            // èŽ·å–å¤´éƒ¨ç»„ä»¶é«˜åº¦
            getHeight(height) {
                this.height = height
            },
            // é‡ç½®
            reset() {
                this.listData.page = 0
                this.finished = false
                this.lists = []
                this.listData.mixParam = ''
                this.listData.startDate = ''
                this.listData.endDate = ''
                this.listData.procedureIds = []
                if (this.factoryList.length > 0) {
                    this.listData.departIds = this.factoryList[0].id
                }
                if (this.data.length > 0) {
                    this.data.forEach(item => {
                        item.isActive = false
                    })
                }
                // this.getLists()
                // this.pageCounts()
            },
            // æ—¥æœŸç¡®å®š
            timeConfirm(val) {
                this.listData.startDate = val[0]
                this.listData.endDate = val[val.length - 1]
                this.timeShow = false
            },
            // åˆ‡æ¢å·¥åŽ‚
            changeTags(i, id) {
                this.listData.departIds = id
                this.getWorkingProcedures(id)
                this.factoryList.forEach((item, index) => {
                    if (index === i) {
                        item.isActive = true
                    } else {
                        item.isActive = false
                    }
                })
            },
            // æ‰“开日期插件
            openDate() {
                this.timeShow = true
            },
            // æœç´¢
            searchInput(val) {
                this.listData.mixParam = val
                this.listData.page = 0
                this.finished = false
                this.lists = []
                this.getLists()
            },
            // ç‚¹å‡»æ ‡ç­¾æœç´¢
            clickTag(ids) {
                this.listData.cateIds = ids
                this.listData.page = 0
                this.finished = false
                this.lists = []
                // this.getLists()
            },
            // èŽ·å–åˆ—è¡¨ç»Ÿè®¡
            pageCounts() {
                pageCount({
                    factoryId: this.listData.departIds,
                    procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
                    startDate: this.listData.startDate,
                    endDate: this.listData.endDate,
                    statusList: this.listData.cateIds
                }).then(res => {
                    if (res.code === 200 && res.data) {
                        this.tagList[0].num = res.data.allNum.toString()
                        this.tagList[1].num = res.data.startNum.toString()
                        this.tagList[2].num = res.data.ingNum.toString()
                        this.tagList[3].num = res.data.endNum.toString()
                    }
                })
            },
            // èŽ·å–å·¥åŽ‚æ•°æ®
            getOrganizations() {
                getOrganization({
                    type: 1
                }).then(res => {
                    if (res.code === 200 && res.data && res.data.length !== 0) {
                        res.data.forEach((item, i) => {
                            item.isActive = i === 0;
                        })
                        if (res.data.length > 0) {
                            this.factoryList = res.data
                            this.listData.departIds = this.factoryList[0].id
                            this.listData.procedureIds = ''
                            this.finished = false
                            this.getWorkingProcedures(this.factoryList[0].id)
                            this.getLists()
                            this.pageCounts()
                        }
                    }
                })
            },
            // èŽ·å–å·¥åºæ•°æ®
            getWorkingProcedures(orgId) {
                this.data = []
                getWorkingProcedure({
                        orgId
                    })
                    .then(res => {
                        if (res.code === 200 && res.data && res.data.length !== 0) {
                            res.data.forEach((item, i) => {
                                item.isActive = false;
                            })
                            this.data = res.data
                        }
                    })
            },
            // æœç´¢å¼¹æ¡†æäº¤
            submit() {
                let pmodelOrgId = []
                this.data.forEach((item) => {
                    if (item.isActive) {
                        pmodelOrgId.push(item.id)
                    }
                })
                this.listData.procedureIds = pmodelOrgId
                this.listData.page = 0
                this.finished = false
                this.lists = []
                // this.getLists()
                // this.pageCounts()
            },
            // èŽ·å–è®¡åˆ’åˆ—è¡¨æ•°æ®
            getLists() {
                console.log('getLists')
                if (!this.finished) {
                    this.loading = true
                    this.listData.page = this.listData.page++
                    getList({
                        capacity: this.listData.capacity,
                        model: {
                            mixParam: this.listData.mixParam,
                            startDate: this.listData.startDate,
                            endDate: this.listData.endDate,
                            procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
                            factoryId: this.listData.departIds,
                            statusList: this.listData.cateIds
                        },
                        page: this.listData.page,
                        sorts: [{
                            direction: 'ASC',
                            property: 'publishDate'
                        }]
                    }).then(res => {
                        this.loading = false
                        this.listData.total = res.data.total
                        if (this.refreshing) {
                            this.lists = []
                            this.refreshing = false;
                        }
                        if (res.code === 200 && res.data.records.length !== 0) {
                            if (this.lists.length === 0) {
                                this.lists = res.data.records
                            } else {
                                this.lists.push(...res.data.records)
                            }
                        } else {
                            this.finished = true
                        }
                    }).catch(err => {
                        this.loading = false
                        this.finished = true
                        if (this.refreshing) {
                            this.lists = []
                            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;
                    .tag {
                        display: flex;
                        flex-wrap: wrap;
                        align-items: center;
                        .tag_active {
                            background: $nav-color !important;
                            color: #ffffff !important;
                        }
                        .tag_item {
                            padding: 22rpx 26rpx;
                            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;
                        }
                    }
                    text {
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                        margin: 0 30rpx;
                    }
                    .Search_item_content_a {
                        padding: 20rpx 0;
                        flex: 1;
                        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;
                display: flex;
                flex-direction: column;
                border-bottom: 1rpx solid #ececec;
                background: white;
                .content_list_item_top {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    .content_list_item_top_left {
                        display: flex;
                        align-items: center;
                        text {
                            font-size: 32rpx;
                            font-weight: 500;
                            color: #333333;
                        }
                    }
                    .content_list_item_top_right {
                        font-size: 26rpx;
                        font-weight: 400;
                        .created {
                            color: $nav-stateColor1 !important;
                        }
                        .warning {
                            color: $nav-stateColor5 !important;
                        }
                        .green {
                            color: $nav-stateColor6 !important;
                        }
                        .info {
                            color: $nav-stateColor3 !important;
                        }
                    }
                }
                .content_list_item_content {
                    padding: 24rpx 30rpx;
                    background: #f7f7f7;
                    border-radius: 16rpx;
                    display: flex;
                    flex-wrap: wrap;
                    justify-content: space-between;
                    margin-top: 32rpx;
                    .content_list_item_content_item {
                        width: 100%;
                        display: flex;
                        margin-top: 24rpx;
                        &:first-child {
                            margin-top: 0;
                        }
                        // &:nth-child(1) {
                        //   margin-top: 0 !important;
                        // }
                        // &:nth-child(2) {
                        //   margin-top: 0 !important;
                        // }
                        .content_list_item_content_item_label {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #666666;
                            flex-shrink: 0;
                        }
                        .content_list_item_content_item_nr {
                            font-size: 24rpx;
                            font-weight: 400;
                            color: #222222;
                            margin-right: 10rpx;
                        }
                    }
                }
            }
        }
        .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>