Mr.Shi
2023-09-01 68d975c737a051975cbb9b7c5bada7f37ae9e722
Merge branch 'dev' of ssh://139.186.142.91:29418/productDev/dmMes into dev
已添加6个文件
已修改7个文件
1651 ■■■■■ 文件已修改
minipro_standard/common/config.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/common/css/lib.css 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/SelectMultipleMaterial.vue 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/Tooling.vue 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/selectMaterial.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages.json 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/inspectComplete/inspectComplete.vue 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/inspectPatrol/inspectPatrol.vue 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/linePatrol/linePatrol.vue 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue 494 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/public/template/material_import_template.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/common/config.js
@@ -7,5 +7,11 @@
        positiveInteger: /^[0-9]*[1-9][0-9]*$/,
        decimal: /^0$|^[1-9]\d{0,15}$|^[1-9]\d{0,15}\.{1}\d{1,4}$|^0\.{1}\d{1,4}$/g,
        positiveIntegerDecimal: /^([1-9][0-9]*|0)(\.[0-9]?[1-9][1-9][1-9])?$/,
        number: /^\d+(?:\.\d{1,4})?$/
    number: /^\d+(?:\.\d{1,4})?$/,
    Attribute: {
        HH: 'APPLIANCE_MIX',
        HG: 'APPLIANCE_ONTEST',
        BL: 'APPLIANCE_OFFTEST',
        BF: 'APPLIANCE_USELESS'
    }
}
minipro_standard/common/css/lib.css
@@ -77,7 +77,7 @@
.ibm{ display: inline-block; vertical-align: middle;}
.bbox{ box-sizing: border-box;}
.rauto{ margin-left:auto; margin-right:auto}
.fixedBottom{position: fixed;        left: 0;        bottom: 0;        width: 100%;}
.fixedBottom{position: fixed;        left: 0;        bottom: env(safe-area-inset-bottom);        width: 100%;}
.lh1-6{line-height: 1.6;}
.lh1-6{line-height: 1.6;}
.lh1-8{line-height: 1.8;}
minipro_standard/components/SelectMultipleMaterial.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,274 @@
<template>
    <u-popup :show="show" :round="10" closeable @close="show=false">
        <view class="material-content bbox p30 rp">
            <view class="tc b f24 c2 mb20">选择物料</view>
            <v-Search ref="V" @searchInput="searchInput" @submit="submit" :isShow="false" placeholder="搜索物料名称/编码">
            </v-Search>
            <div class="content_total">共{{pages.total}}条数据</div>
            <view class="scroll-content">
                <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
                    <u-list-item v-for="(item1, index) in list" :key="index">
                        <view class="flex mb20" @click="selectMaterialAction(index)">
                            <view class="img36 mr20 pt10">
                                <u-checkbox-group style="display: block;" name="" @change="selectMaterialAction(index)">
                                    <u-checkbox :checked="item1.isActive"></u-checkbox>
                                </u-checkbox-group>
                            </view>
                            <view class="fx1">
                                <div class="page_content_title_top">
                                    <span>{{ item1.materialName + ' | ' + item1.materialCode }}</span>
                                </div>
                                <div class="page_content_title_bottom">
                                    <span class="green" v-if="item1.qualityType == 0">
                                        åˆæ ¼
                                        <text class="c1" decode>{{ splite }}</text>
                                    </span>
                                    <span class="orange" v-else-if="item1.qualityType == 1">
                                        ä¸è‰¯
                                        <text class="c1" decode>{{ splite }}</text>
                                    </span>
                                    <span class="red" v-else-if="item1.qualityType == 2">
                                        æŠ¥åºŸ
                                        <text class="c1" decode>{{ splite }}</text>
                                    </span>
                                    <span v-else>
                                        -
                                        <text class="c1" decode>{{ splite }}</text>
                                    </span>
                                    <span>
                                        {{item1.procedureName ? item1.procedureName : '-'}}
                                        <text class="c1" decode>{{ splite }}</text>
                                    </span>
                                    <span>{{item1.batch ? item1.batch : '-'}}</span>
                                </div>
                                <div class="mt20 plr25 ptb20 bg_f7 f26">
                                    <div class="c2 mb10"><span class="c6">货位:</span>{{ item1.locationName }}</div>
                                    <div class="c2"><span class="c6">数量:</span>{{ item1.num }}{{ item1.unitName }}</div>
                                </div>
                            </view>
                        </view>
                    </u-list-item>
                </u-list>
            </view>
                <view style="height: 98rpx;"></view>
            <!-- <view class="">
                <u-safe-bottom></u-safe-bottom>
            </view> -->
            <view class="fixedBottom bottom cY">
                <view class="fx1 bbox plr30">
                    <u-checkbox-group style="display: block;" name="" @change="selectAll()">
                        <u-checkbox :checked="isAll" label="全选"></u-checkbox>
                    </u-checkbox-group>
                </view>
                <view class="submit sbtn_green bbox tc">提交()</view>
            </view>
        </view>
    </u-popup>
</template>
<script>
    import vSearch from '@/components/Search.vue'
    export default {
        name: "selectMaterial",
        components: {
            vSearch
        },
        data() {
            return {
                show: false,
                splite:'&nbsp;|&nbsp;',
                isAll: false,
                pages: {
                    size: 10,
                    index: 1,
                    total: 0
                },
                list: []
            };
        },
        methods: {
            open(target) {
                this.show = true
                this.workorderId = target.workorderId
                this.deviceId = target.deviceId
                this.list = []
                this.pages = {
                    size: 10,
                    index: 1,
                    total: 0
                }
                this.loadData()
            },
            loadData() {
                this.list = [{
                    batch: '1',
                    materialName: 'dsadas',
                    materialCode: '1m0001',
                    locationName: 'a仓2号位',
                    num: '1',
                    unitName: '块',
                    qualityType: 0,
                    procedureName: '压制',
                    isActive: false
                },
                {
                    batch: '1',
                    materialName: 'dsadas',
                    materialCode: '1m0001',
                    locationName: 'a仓2号位',
                    num: '1',
                    unitName: '块',
                    qualityType: 0,
                    procedureName: '压制',
                    isActive: false
                },
                {
                    batch: '1',
                    materialName: 'dsadas',
                    materialCode: '1m0001',
                    locationName: 'a仓2号位',
                    num: '1',
                    unitName: '块',
                    qualityType: 0,
                    procedureName: '压制',
                    isActive: false
                },
                {
                    batch: '1',
                    materialName: 'dsadas',
                    materialCode: '1m0001',
                    locationName: 'a仓2号位',
                    num: '1',
                    unitName: '块',
                    qualityType: 0,
                    procedureName: '压制',
                    isActive: false
                },
                {
                    batch: '1',
                    materialName: 'dsadas',
                    materialCode: '1m0001',
                    locationName: 'a仓2号位',
                    num: '1',
                    unitName: '块',
                    qualityType: 0,
                    procedureName: '压制',
                    isActive: false
                },
                {
                    batch: '1',
                    materialName: 'dsadas',
                    materialCode: '1m0001',
                    locationName: 'a仓2号位',
                    num: '1',
                    unitName: '块',
                    qualityType: 0,
                    procedureName: '压制',
                    isActive: false
                },
                {
                    batch: '1',
                    materialName: 'dsadas',
                    materialCode: '1m0001',
                    locationName: 'a仓2号位',
                    num: '1',
                    unitName: '块',
                    qualityType: 0,
                    procedureName: '压制',
                    isActive: false
                }
                ]
            },
            scrolltoupper() {
                this.loadData()
            },
            scrolltolower() {
                this.loadData()
            },
            selectMaterialAction(index) {
                // console.log('12');
                this.list[index].isActive = !this.list[index].isActive
            },
            selectAll() {}
        }
    }
    /*
    */
</script>
<style lang="scss" scoped>
    .material-content {
        display: flex;
        flex-direction: column;
        height: 1200rpx;
        box-sizing: border-box;
        .scroll-content {
            height: calc(1100rpx - env(safe-area-inset-bottom));
            overflow: scroll;
        }
    }
    .content_total {
        margin-top: 20rpx;
        margin-bottom: 20rpx;
        // padding: 24rpx 30rpx;
        // background: #F7F7F7;
        font-size: 24rpx;
        font-weight: 400;
        color: #666666;
    }
    .page_content_title_top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        span {
            &:nth-child(1) {
                font-size: 30rpx;
                font-weight: 500;
                color: #222222;
            }
            &:nth-child(2) {
                flex-shrink: 0;
                font-size: 24rpx;
                font-weight: 400;
                color: #333333;
                // span {
                //     font-size: 24rpx;
                //     color: $nav-color;
                // }
            }
        }
    }
    .page_content_title_bottom {
        margin-top: 24rpx;
        span {
            font-size: 24rpx;
            font-weight: 400;
            color: #666666;
        }
    }
    .page_content_title {
        display: flex;
        flex-direction: column;
        margin-bottom: 10rpx;
    }
    .bottom {
        height: 98rpx;
        .submit {
            width: 272rpx;
            height: 98rpx;
            line-height: 98rpx;
        }
    }
</style>
minipro_standard/components/Tooling.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,144 @@
<template>
    <u-popup :show="show" position="bottom" :round="10" closeable @close="show=false">
        <div class="content">
            <div :class="{ 'content_top': status }" class="content_search">
                <v-Search ref="V" @searchInput="searchInput" @submit="submit" :isShow="false" placeholder="搜索工装编码">
                </v-Search>
                <template v-if="classification">
                    <div class="content_search_x"></div>
                    <v-LableSelection :TagList="tagList" :isShow="false" @change="clickTag"></v-LableSelection>
                </template>
            </div>
            <div class="content_total">共{{page.total}}条数据</div>
            <div class="content_list">
                <u-list>
                    <u-list-item v-for="(item, i) in list" :key="i">
                        <div class="content_list_item" @click="jump(item)">
                            <div class="content_list_item_status success" v-if="item.smodelLabel === Attribute.HG">
                                [{{item.smodelCode}}]</div>
                            <div class="content_list_item_status warning" v-else-if="item.smodelLabel === Attribute.BL">
                                [{{item.smodelCode}}]</div>
                            <div class="content_list_item_status serious" v-else-if="item.smodelLabel === Attribute.BF">
                                [{{item.smodelCode}}]</div>
                            <div class="content_list_item_status black" v-else-if="item.smodelLabel === Attribute.HH">
                                [{{item.smodelCode}}]</div>
                            <div class="content_list_item_name">{{item.cmodel1BigName}}-{{item.code}}</div>
                        </div>
                    </u-list-item>
                </u-list>
            </div>
        </div>
    </u-popup>
</template>
<script>
    import vSearch from '@/components/Search.vue'
    import vLableSelection from '@/components/LabelSelection.vue'
    import {
        Attribute
    } from '@/common/config.js'
    export default {
        name: "Tooling",
        components: {
            vSearch,
            vLableSelection
        },
        data() {
            return {
                show: false,
                classification: false,
                attribute: '',
                tagList: [],
                statusname: '1,2,3',
                list: [],
                page: {
                    total: 0,
                    size: 10,
                    index: 1
                }
            };
        },
        methods: {
            open(target) {
                this.show = true
                this.classification = target.classification
                this.attribute = target.attribute
                this.statusname = target.statusname
            },
            searchInput(v) {},
            submit() {},
            clickTag() {},
            jump(item) {}
        }
    }
</script>
<style lang="scss">
    .content {
        .content_code {
            position: fixed;
            right: 30rpx;
            bottom: 100rpx;
            img {
                width: 138rpx;
                height: 138rpx;
            }
        }
        .content_top {
            top: 0 !important;
        }
        .content_search {
            padding: 30rpx;
            background: white;
            position: sticky;
            top: 88rpx;
            z-index: 9;
            .content_search_x {
                height: 24rpx;
            }
        }
        .content_total {
            padding: 24rpx 30rpx;
            background: #F7F7F7;
            font-size: 24rpx;
            font-weight: 400;
            color: #666666;
        }
        .content_list {
            width: 100%;
            height: 100%;
            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 {
                    font-size: 28rpx;
                }
            }
        }
    }
</style>
minipro_standard/components/selectMaterial.vue
@@ -69,7 +69,6 @@
                    unitName: '块',
                    qualityType: 0,
                    procedureName: '压制',
                }]
            },
            scrolltoupper() {
@@ -90,7 +89,7 @@
<style lang="scss" scoped>
    .material-content {
        height: 800rpx;
        height: 1100rpx;
    }
    .page_content_title_top {
minipro_standard/pages.json
@@ -90,6 +90,42 @@
            }
            
        }
        ,{
            "path" : "pages/inspectComplete/inspectComplete",
            "style" :
            {
                "navigationBarTitleText": "完工检",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/selectWorkOrder/selectWorkOrder",
            "style" :
            {
                "navigationBarTitleText": "选择工单",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/inspectPatrol/inspectPatrol",
            "style" :
            {
                "navigationBarTitleText": "巡检",
                "enablePullDownRefresh": false
            }
        }
        ,{
            "path" : "pages/linePatrol/linePatrol",
            "style" :
            {
                "navigationBarTitleText": "巡线",
                "enablePullDownRefresh": false
            }
        }
    ],
    "subPackages": [
        {
minipro_standard/pages/inspectComplete/inspectComplete.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,228 @@
<template>
    <view class="inspection">
        <div class="inspection_list">
            <div class="inspection_list_item">
                <span>检验类型</span>
                <div class="right">
                    <div class="right_item active">完工检</div>
                    <!-- <div class="right_item active" v-if="form.status == '1'">巡检</div>
                            <div class="right_item active" v-if="form.status == '2'">完工检</div> -->
                </div>
            </div>
        </div>
        <div class="x"></div>
        <div class="inspection_list">
            <div class="inspection_list_item" @click="jumpGD">
                <span>检验工单</span>
                <div class="right1">
                    <span :style="form.gdmc ? 'color: #000;' : ''">{{ form.gdmc ? form.gdmc : '点击选择检验工单'}}</span>
                    <u-icon name="arrow-right" color="#999999" size="18" />
                </div>
            </div>
            <div class="inspection_list_item" v-if="form.gdmc">
                <span>计划数量</span>
                <div class="right1">
                    <span
                        style="color: black;">{{info.planNum}}{{info.umodel ? info.umodel.name : ''}}</span>
                </div>
            </div>
        </div>
        <div class="x"></div>
        <div class="inspection_list">
            <div class="inspection_list_item">
                <span>良品数</span>
                <div class="right1">
                    <input type="number" v-model="form.hgsl" placeholder="0" />
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item">
                <span>不良数量</span>
                <div class="right1">
                    <input type="number" v-model="form.blsl" placeholder="0" />
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item" @click="selectBad" v-show="form.blsl > 0">
                <span>不良说明</span>
                <div class="right1">
                    <span :style="form.blsm ? 'color: #000;' : ''">{{ form.blsm ? form.blsm : '点击选择不良原因'}}</span>
                    <u-icon name="arrow-right" color="#999999" size="18" />
                </div>
            </div>
        </div>
        <div class="inspection_footer">
            <button class="inspection_footer_sub" @click="submit" v-preventReClick>提交</button>
        </div>
        <u-picker :show="show1" title="请选择不良说明" :columns="columns" @cancel="show1=false" @confirm="badConfirm"></u-picker>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                info: {},
                show1: false,
                columns: [['中国', '美国', '日本']],
                columns1: [],
                form: {
                    status: '0',
                    gdid: '',
                    gdmc: '',
                    jygz: '',
                    jygzmc: '',
                    hgsl: 0,
                    blsl: 1,
                    blgz: '',
                    blgzmc: '',
                    blsm: '',
                    dw: ''
                }
            };
        },
        onLoad() {
            uni.$on('workOrder', (data) => {
                this.form.gdmc = data.mmodel.name + '-' + data.pgmodel.name
                this.form.gdid = data.id
                this.info = data
            })
        },
        methods: {
            jumpGD() {
                uni.navigateTo({
                    url: '/pages/selectWorkOrder/selectWorkOrder'
                })
            },
            openBL() {},
            getValue1() {},
            selectBad() {
                console.log('------0-----');
                this.show1 = true
            },
            badConfirm(value) {
                console.log(value);
                this.show1 = false
            }
        }
    }
</script>
<style lang="scss" scoped>
    .inspection {
        width: 100%;
        height: 100%;
        position: absolute;
        background: #F7F7F7;
        .x {
            height: 20rpx;
        }
        .inspection_list {
            padding: 0 30rpx;
            background: white;
            .inspection_list_item {
                height: 98rpx;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-bottom: 1rpx solid #E5E5E5;
                &:last-child {
                    border: none;
                }
                span {
                    font-size: 30rpx;
                    font-weight: 400;
                    color: #222222;
                }
                .right1 {
                    display: flex;
                    align-items: center;
                    span {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                        margin-right: 10rpx;
                    }
                    input {
                        width: 180rpx;
                        height: 60rpx;
                        border-radius: 8rpx;
                        border: 1rpx solid #CCCCCC;
                        margin-right: 10rpx;
                        padding: 0 30rpx;
                        box-sizing: border-box;
                        font-size: 28rpx;
                    }
                    input::-webkit-input-placeholder {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                    .dw {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #666666;
                    }
                }
                .right {
                    display: flex;
                    align-items: center;
                    .active {
                        background: $nav-color !important;
                        color: #ffffff !important;
                    }
                    .right_item {
                        padding: 18rpx 32rpx;
                        background: #F2F2F2;
                        border-radius: 8rpx;
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        margin-left: 20rpx;
                    }
                }
            }
        }
        .inspection_footer {
            position: fixed;
            bottom: 0;
            left: 0;
            width: calc(100% - 60rpx);
            padding: 30rpx 30rpx 68rpx 30rpx;
            background: #F7F7F7;
            .inspection_footer_sub {
                width: 100%;
                height: 88rpx;
                background: #4275FC;
                box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.0800);
                border-radius: 8rpx;
                font-size: 30rpx;
                font-weight: 500;
                color: #FFFFFF;
                display: flex;
                align-items: center;
                justify-content: center;
                border: none;
            }
        }
    }
</style>
minipro_standard/pages/inspectPatrol/inspectPatrol.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,227 @@
<template>
    <view class="inspection">
        <div class="inspection_list">
            <div class="inspection_list_item">
                <span>检验类型</span>
                <div class="right">
                    <div class="right_item active">巡检</div>
                    <!-- <div class="right_item active" v-if="form.status == '1'">巡检</div>
                            <div class="right_item active" v-if="form.status == '2'">完工检</div> -->
                </div>
            </div>
        </div>
        <div class="x"></div>
        <div class="inspection_list">
            <div class="inspection_list_item" @click="jumpGD">
                <span>检验工单</span>
                <div class="right1">
                    <span :style="form.gdmc ? 'color: #000;' : ''">{{ form.gdmc ? form.gdmc : '点击选择检验工单'}}</span>
                    <u-icon name="arrow-right" color="#999999" size="18" />
                </div>
            </div>
            <div class="inspection_list_item" v-if="form.gdmc">
                <span>计划数量</span>
                <div class="right1">
                    <span
                        style="color: black;">{{info.planNum}}{{info.umodel ? info.umodel.name : ''}}</span>
                </div>
            </div>
        </div>
        <div class="x"></div>
        <div class="inspection_list">
            <div class="inspection_list_item">
                <span>良品数</span>
                <div class="right1">
                    <input type="number" v-model="form.hgsl" placeholder="0" />
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item">
                <span>不良数量</span>
                <div class="right1">
                    <input type="number" v-model="form.blsl" placeholder="0" />
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item" @click="selectBad" v-show="form.blsl > 0">
                <span>不良说明</span>
                <div class="right1">
                    <span :style="form.blsm ? 'color: #000;' : ''">{{ form.blsm ? form.blsm : '点击选择不良原因'}}</span>
                    <u-icon name="arrow-right" color="#999999" size="18" />
                </div>
            </div>
        </div>
        <div class="inspection_footer">
            <button class="inspection_footer_sub" @click="submit" v-preventReClick>提交</button>
        </div>
        <u-picker :show="show1" title="请选择不良说明" :columns="columns" @cancel="show1=false" @confirm="badConfirm"></u-picker>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                info: {},
                show1: false,
                columns: [['中国', '美国', '日本']],
                columns1: [],
                form: {
                    status: '0',
                    gdid: '',
                    gdmc: '',
                    jygz: '',
                    jygzmc: '',
                    hgsl: 0,
                    blsl: 1,
                    blgz: '',
                    blgzmc: '',
                    blsm: '',
                    dw: ''
                }
            };
        },
        onLoad() {
            uni.$on('workOrder', (data) => {
                this.form.gdmc = data.mmodel.name + '-' + data.pgmodel.name
                this.form.gdid = data.id
                this.info = data
            })
        },
        methods: {
            jumpGD() {
                uni.navigateTo({
                    url: '/pages/selectWorkOrder/selectWorkOrder'
                })
            },
            openBL() {},
            getValue1() {},
            selectBad() {
                console.log('------0-----');
                this.show1 = true
            },
            badConfirm(value) {
                this.show1 = false;
            }
        }
    }
</script>
<style lang="scss" scoped>
    .inspection {
        width: 100%;
        height: 100%;
        position: absolute;
        background: #F7F7F7;
        .x {
            height: 20rpx;
        }
        .inspection_list {
            padding: 0 30rpx;
            background: white;
            .inspection_list_item {
                height: 98rpx;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-bottom: 1rpx solid #E5E5E5;
                &:last-child {
                    border: none;
                }
                span {
                    font-size: 30rpx;
                    font-weight: 400;
                    color: #222222;
                }
                .right1 {
                    display: flex;
                    align-items: center;
                    span {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                        margin-right: 10rpx;
                    }
                    input {
                        width: 180rpx;
                        height: 60rpx;
                        border-radius: 8rpx;
                        border: 1rpx solid #CCCCCC;
                        margin-right: 10rpx;
                        padding: 0 30rpx;
                        box-sizing: border-box;
                        font-size: 28rpx;
                    }
                    input::-webkit-input-placeholder {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                    .dw {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #666666;
                    }
                }
                .right {
                    display: flex;
                    align-items: center;
                    .active {
                        background: $nav-color !important;
                        color: #ffffff !important;
                    }
                    .right_item {
                        padding: 18rpx 32rpx;
                        background: #F2F2F2;
                        border-radius: 8rpx;
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        margin-left: 20rpx;
                    }
                }
            }
        }
        .inspection_footer {
            position: fixed;
            bottom: 0;
            left: 0;
            width: calc(100% - 60rpx);
            padding: 30rpx 30rpx 68rpx 30rpx;
            background: #F7F7F7;
            .inspection_footer_sub {
                width: 100%;
                height: 88rpx;
                background: #4275FC;
                box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.0800);
                border-radius: 8rpx;
                font-size: 30rpx;
                font-weight: 500;
                color: #FFFFFF;
                display: flex;
                align-items: center;
                justify-content: center;
                border: none;
            }
        }
    }
</style>
minipro_standard/pages/linePatrol/linePatrol.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,225 @@
<template>
    <view class="inspection">
        <div class="inspection_list">
            <div class="inspection_list_item">
                <span>检验类型</span>
                <div class="right">
                    <div class="right_item active">巡线</div>
                </div>
            </div>
        </div>
        <div class="x"></div>
        <div class="inspection_list">
            <div class="inspection_list_item" @click="jumpGD">
                <span>检验工单</span>
                <div class="right1">
                    <span :style="form.gdmc ? 'color: #000;' : ''">{{ form.gdmc ? form.gdmc : '点击选择检验工单'}}</span>
                    <u-icon name="arrow-right" color="#999999" size="18" />
                </div>
            </div>
            <div class="inspection_list_item" v-if="form.gdmc">
                <span>计划数量</span>
                <div class="right1">
                    <span
                        style="color: black;">{{info.planNum}}{{info.umodel ? info.umodel.name : ''}}</span>
                </div>
            </div>
        </div>
        <div class="x"></div>
        <div class="inspection_list">
            <div class="inspection_list_item">
                <span>良品数</span>
                <div class="right1">
                    <input type="number" v-model="form.hgsl" placeholder="0" />
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item">
                <span>不良数量</span>
                <div class="right1">
                    <input type="number" v-model="form.blsl" placeholder="0" />
                    <span class="dw" v-if="info.umodel">{{info.umodel.name}}</span>
                </div>
            </div>
            <div class="inspection_list_item" @click="selectBad" v-show="form.blsl > 0">
                <span>不良说明</span>
                <div class="right1">
                    <span :style="form.blsm ? 'color: #000;' : ''">{{ form.blsm ? form.blsm : '点击选择不良原因'}}</span>
                    <u-icon name="arrow-right" color="#999999" size="18" />
                </div>
            </div>
        </div>
        <div class="inspection_footer">
            <button class="inspection_footer_sub" @click="submit" v-preventReClick>提交</button>
        </div>
        <u-picker :show="show1" title="请选择不良说明" :columns="columns" @cancel="show1=false" @confirm="badConfirm"></u-picker>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                info: {},
                show1: false,
                columns: [['中国', '美国', '日本']],
                columns1: [],
                form: {
                    status: '0',
                    gdid: '',
                    gdmc: '',
                    jygz: '',
                    jygzmc: '',
                    hgsl: 0,
                    blsl: 1,
                    blgz: '',
                    blgzmc: '',
                    blsm: '',
                    dw: ''
                }
            };
        },
        onLoad() {
            uni.$on('workOrder', (data) => {
                this.form.gdmc = data.mmodel.name + '-' + data.pgmodel.name
                this.form.gdid = data.id
                this.info = data
            })
        },
        methods: {
            jumpGD() {
                uni.navigateTo({
                    url: '/pages/selectWorkOrder/selectWorkOrder'
                })
            },
            openBL() {},
            getValue1() {},
            selectBad() {
                console.log('------0-----');
                this.show1 = true
            },
            badConfirm() {
                this.show1 = false;
            }
        }
    }
</script>
<style lang="scss" scoped>
    .inspection {
        width: 100%;
        height: 100%;
        position: absolute;
        background: #F7F7F7;
        .x {
            height: 20rpx;
        }
        .inspection_list {
            padding: 0 30rpx;
            background: white;
            .inspection_list_item {
                height: 98rpx;
                display: flex;
                align-items: center;
                justify-content: space-between;
                border-bottom: 1rpx solid #E5E5E5;
                &:last-child {
                    border: none;
                }
                span {
                    font-size: 30rpx;
                    font-weight: 400;
                    color: #222222;
                }
                .right1 {
                    display: flex;
                    align-items: center;
                    span {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                        margin-right: 10rpx;
                    }
                    input {
                        width: 180rpx;
                        height: 60rpx;
                        border-radius: 8rpx;
                        border: 1rpx solid #CCCCCC;
                        margin-right: 10rpx;
                        padding: 0 30rpx;
                        box-sizing: border-box;
                        font-size: 28rpx;
                    }
                    input::-webkit-input-placeholder {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #999999;
                    }
                    .dw {
                        font-size: 28rpx;
                        font-weight: 400;
                        color: #666666;
                    }
                }
                .right {
                    display: flex;
                    align-items: center;
                    .active {
                        background: $nav-color !important;
                        color: #ffffff !important;
                    }
                    .right_item {
                        padding: 18rpx 32rpx;
                        background: #F2F2F2;
                        border-radius: 8rpx;
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        margin-left: 20rpx;
                    }
                }
            }
        }
        .inspection_footer {
            position: fixed;
            bottom: 0;
            left: 0;
            width: calc(100% - 60rpx);
            padding: 30rpx 30rpx 68rpx 30rpx;
            background: #F7F7F7;
            .inspection_footer_sub {
                width: 100%;
                height: 88rpx;
                background: #4275FC;
                box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.0800);
                border-radius: 8rpx;
                font-size: 30rpx;
                font-weight: 500;
                color: #FFFFFF;
                display: flex;
                align-items: center;
                justify-content: center;
                border: none;
            }
        }
    }
</style>
minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,494 @@
<template>
    <view class="content">
        <div :class="{ 'content_top': status }" class="content_search">
            <v-Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
                placeholder="搜索工单编码/工序名称">
                <template v-slot:content>
                    <div class="Search_item">
                        <div class="Search_item_label">计划日期</div>
                        <div class="Search_item_content" @click="isOpenDate=true">
                            <div class="Search_item_content_a" :style="form.startDate ? 'color: #000;' : ''">
                                {{ form.startDate ? form.startDate : '开始日期'}}</div>
                            <span>-</span>
                            <div class="Search_item_content_a" :style="form.endDate ? 'color: #000;' : ''">
                                {{ form.endDate ? form.endDate : '结束日期'}}</div>
                        </div>
                    </div>
                </template>
            </v-Search>
            <div class="content_search_x"></div>
            <v-LableSelection :TagList="tagList" :isShow="true" @change="clickTag"></v-LableSelection>
        </div>
        <div class="content_total">共{{page.total}}条数据</div>
        <div class="content_list">
            <u-list @scrolltolower="scrolltolower" @scrolltoupper="scrolltoupper">
                <u-list-item  v-for="(item, i) in list" :key="i">
                    <div class="content_list_item" @click="jump(item)">
                        <div class="content_list_item_top">
                            <div class="content_list_item_top_left">
                                <span v-if="item.mmodel">{{item.mmodel.name}} | {{item.procedureName}}</span>
                                <div class="content_list_item_top_left_tag" v-if="item.urgent">优先{{item.urgent}}</div>
                                <div class="content_list_item_top_left_tagW" v-if="item.paused === 1">停</div>
                            </div>
                            <div class="content_list_item_top_right">
                                <span class="yellow" v-if="item.status === 0">已创建</span>
                                <span class="green" v-if="item.status === 1">已备料</span>
                                <span v-if="item.status === 2">已完工</span>
                                <span class="purple" v-if="item.status === 3">已检验</span>
                                <span v-if="item.status === 4">已报工</span>
                                <span v-if="item.status === 5">已入库</span>
                                <span v-if="item.status === 6">已取消</span>
                            </div>
                        </div>
                        <span>工单编码: {{item.code}}</span>
                        <div class="content_list_item_content">
                            <div class="content_list_item_content_item">
                                <div class="content_list_item_content_item_label">物料编码:</div>
                                <div class="content_list_item_content_item_nr" v-if="item.mmodel">{{item.mmodel.code}}
                                </div>
                            </div>
                            <div class="content_list_item_content_item">
                                <div class="content_list_item_content_item_label">计划开工:</div>
                                <div class="content_list_item_content_item_nr">{{item.planDate}}</div>
                            </div>
                            <div class="content_list_item_content_item">
                                <div class="content_list_item_content_item_label">生产批次:</div>
                                <div class="content_list_item_content_item_nr">{{item.batch}}</div>
                            </div>
                            <div class="content_list_item_content_item">
                                <div class="content_list_item_content_item_label">计划数量:</div>
                                <div class="content_list_item_content_item_nr" v-if="item.umodel">
                                    {{item.planNum}}{{item.umodel.name}}</div>
                            </div>
                            <div class="content_list_item_content_item">
                                <div class="content_list_item_content_item_label">生产设备:</div>
                                <div class="content_list_item_content_item_nr" v-if="item.pgmodel">{{item.pgmodel.name}}
                                </div>
                            </div>
                            <div class="content_list_item_content_item" v-if="item.status === 5">
                                <div class="content_list_item_content_item_label">完工数量:</div>
                                <div class="content_list_item_content_item_nr">{{item.proNum}}</div>
                            </div>
                        </div>
                    </div>
                </u-list-item>
            </u-list>
        </div>
        <!-- <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
            <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了~" @load="onLoad">
            </van-list>
        </van-pull-refresh> -->
        <u-calendar :show="isOpenDate" mode="range" @close="isOpenDate=false" @confirm="onConfirm"></u-calendar>
        <!-- <van-calendar v-model:show="isOpenDate" type="range" :min-date="minDate" :max-date="maxDate" color="#4275FC"
            @confirm="onConfirm" /> -->
        <!-- <v-ScanCode
                    :openCode="openCode"
                    :infos="['第一次扫码']"
                    @closePopup="closePopup"
                    @onDecode="onDecode">
                </v-ScanCode> -->
    </view>
</template>
<script>
    import vSearch from '@/components/Search.vue'
    import vLableSelection from '@/components/LabelSelection.vue'
    import { gsdate } from '@/util/utils'
    export default {
        components: {
            vSearch,
            vLableSelection
        },
        data() {
            return {
                status: true,
                isOpenDate: false,
                // tagList: [1,2,3],
                form: {
                    startDate: '',
                    endDate: ''
                },
                list: [
                    {
                        mmodel: { name: 'adsa', },
                        mmodel: { code: 'wl-001' },
                        umodel: { name: '吨' },
                        pgmodel: { name: '液压机' },
                        procedureName: '压制',
                        urgent: 10,
                        paused: 0,
                        status: 0,
                        code: '00100',
                        planDate: '2023-08-30',
                        batch: 'kk-yw',
                        planNum: 300,
                        proNum: 100,
                    },
                    {
                        mmodel: { name: 'adsa', },
                        mmodel: { code: 'wl-001' },
                        umodel: { name: '吨' },
                        pgmodel: { name: '液压机' },
                        procedureName: '压制',
                        urgent: 10,
                        paused: 0,
                        status: 1,
                        code: '00100',
                        planDate: '2023-08-30',
                        batch: 'kk-yw',
                        planNum: 300,
                        proNum: 100
                    },
                    {
                        mmodel: { name: 'adsa', },
                        mmodel: { code: 'wl-001' },
                        umodel: { name: '吨' },
                        pgmodel: { name: '液压机' },
                        procedureName: '压制',
                        urgent: 10,
                        paused: 0,
                        status: 2,
                        code: '00100',
                        planDate: '2023-08-30',
                        batch: 'kk-yw',
                        planNum: 300,
                        proNum: 100,
                    },
                    {
                        mmodel: { name: 'adsa', },
                        mmodel: { name: '物料001', code: 'wl-001' },
                        umodel: { name: '吨' },
                        pgmodel: { name: '液压机' },
                        procedureName: '压制',
                        urgent: 10,
                        paused: 0,
                        status: 3,
                        code: '00100',
                        planDate: '2023-08-30',
                        batch: 'kk-yw',
                        planNum: 300,
                        proNum: 100,
                    },
                    {
                        mmodel: { name: 'adsa', },
                        mmodel: { code: 'wl-001' },
                        umodel: { name: '吨' },
                        pgmodel: { name: '液压机' },
                        procedureName: '压制',
                        urgent: 10,
                        paused: 0,
                        status: 4,
                        code: '00100',
                        planDate: '2023-08-30',
                        batch: 'kk-yw',
                        planNum: 300,
                        proNum: 100,
                    },
                    {
                        mmodel: { name: 'adsa', },
                        mmodel: { code: 'wl-001' },
                        umodel: { name: '吨' },
                        pgmodel: { name: '液压机' },
                        procedureName: '压制',
                        urgent: 10,
                        paused: 0,
                        status: 5,
                        code: '00100',
                        planDate: '2023-08-30',
                        batch: 'kk-yw',
                        planNum: 300,
                        proNum: 100,
                    },
                    {
                        mmodel: { name: 'adsa', },
                        mmodel: { code: 'wl-001' },
                        umodel: { name: '吨' },
                        pgmodel: { name: '液压机' },
                        procedureName: '压制',
                        urgent: 10,
                        paused: 0,
                        status: 6,
                        code: '00100',
                        planDate: '2023-08-30',
                        batch: 'kk-yw',
                        planNum: 300,
                        proNum: 100,
                    },
                    {
                        mmodel: { name: 'adsa', },
                        mmodel: { code: 'wl-001' },
                        umodel: { name: '吨' },
                        pgmodel: { name: '液压机' },
                        procedureName: '压制',
                        urgent: 10,
                        paused: 0,
                        status: 7,
                        code: '00100',
                        planDate: '2023-08-30',
                        batch: 'kk-yw',
                        planNum: 300,
                        proNum: 100,
                    },
                ],
                page: {
                    size: 10,
                    index: 1,
                    total: 0
                }
            };
        },
        methods: {
            reset() {},
            submit() {},
            onConfirm(value) {
                const [start, end] = value
                this.form.startDate = gsdate(start)
                this.form.endDate = gsdate(end)
                this.isOpenDate = false
            },
            scrolltolower() {},
            scrolltoupper() {},
            jump(item) {
                uni.$emit('workOrder', item)
                uni.navigateBack()
            }
        }
    }
</script>
<style lang="scss" scoped>
    .content {
        .content_code {
            position: fixed;
            right: 30rpx;
            bottom: 100rpx;
            img {
                width: 138rpx;
                height: 138rpx;
            }
        }
        .content_top {
            top: 0 !important;
        }
        .content_search {
            padding: 30rpx;
            background: white;
            position: sticky;
            top: 88rpx;
            z-index: 9;
            .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 {
                            width: 156rpx;
                            height: 70rpx;
                            box-sizing: border-box;
                            background: #F2F2F2;
                            border-radius: 8rpx;
                            font-size: 26rpx;
                            font-weight: 400;
                            color: #333333;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            margin-right: 22rpx;
                            margin-bottom: 22rpx;
                            &:nth-child(4n) {
                                margin-right: 0;
                            }
                        }
                    }
                    span {
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #333333;
                    }
                    .Search_item_content_a {
                        width: 308rpx;
                        height: 70rpx;
                        background: #F7F7F7;
                        border-radius: 8rpx;
                        border: 1rpx solid #EEEEEE;
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #B2B2B2;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                    }
                }
            }
            .content_search_x {
                height: 24rpx;
            }
        }
        .content_total {
            padding: 24rpx 30rpx;
            background: #F7F7F7;
            font-size: 24rpx;
            font-weight: 400;
            color: #666666;
        }
        .content_list {
            width: 100%;
            height: 100%;
            display: flex;
            flex-direction: column;
            .content_list_item {
                padding: 30rpx;
                display: flex;
                flex-direction: column;
                border-bottom: 1rpx solid #ececec;
                background: white;
                span {
                    color: #5a5a5a;
                    margin-top: 15rpx;
                }
                .content_list_item_top {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    .content_list_item_top_left {
                        display: flex;
                        align-items: center;
                        width: 80%;
                        span {
                            font-size: 32rpx;
                            font-weight: 500;
                            color: #333333;
                            overflow: hidden;
                            white-space: nowrap;
                            text-overflow: ellipsis;
                            -o-text-overflow: ellipsis;
                        }
                        .content_list_item_top_left_tagW {
                            margin-top: 14rpx;
                            flex-shrink: 0;
                            box-sizing: border-box;
                            padding: 5rpx 10rpx;
                            background: $nav-stateColor5;
                            border-radius: 8rpx;
                            font-size: 22rpx;
                            font-weight: 400;
                            color: #FFFFFF;
                            margin-left: 16rpx;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                        }
                        .content_list_item_top_left_tag {
                            margin-top: 14rpx;
                            flex-shrink: 0;
                            padding: 5rpx 10rpx;
                            background: $nav-stateColor4;
                            border-radius: 8rpx;
                            font-size: 22rpx;
                            font-weight: 400;
                            color: #FFFFFF;
                            margin-left: 16rpx;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                        }
                    }
                    .content_list_item_top_right {
                        font-size: 26rpx;
                        font-weight: 400;
                        color: #666666;
                        flex-shrink: 0;
                        .purple {
                            color: $nav-color !important;
                        }
                        .green {
                            color: $nav-stateColor6 !important;
                        }
                        .yellow {
                            color: $nav-stateColor1 !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: 50%;
                        display: flex;
                        margin-top: 24rpx;
                        &: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;
                        }
                    }
                }
            }
        }
    }
</style>
minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
@@ -213,7 +213,7 @@
                    <div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
                        <div class="bl_list_item_left">
                            <u-checkbox-group>
                                <u-checkbox  :key="index" :checked="item.active" :label="item.name"
                                <u-checkbox :checked="item.active" :label="item.name"
                                    :name="item.name">
                                </u-checkbox>
                            </u-checkbox-group>
minipro_standard/pages_adjust/pages/manualFeed/manualFeed.vue
@@ -49,12 +49,14 @@
            </u-swipe-action-item>
        </u-swipe-action>
        <SelectMaterial ref="selectMaterial" @selectAction="getValue"/>
        <SelectMultipleMaterial ref="selectMultipleMaterial"/>
    </view>
</template>
<script>
    import workOrderInfo from '@/components/workOrderInfo.vue'
    import SelectMaterial from '@/components/selectMaterial.vue'
    import SelectMultipleMaterial from '@/components/SelectMultipleMaterial.vue'
    
    import {
        positiveInteger,
@@ -63,7 +65,8 @@
    export default {
        components: {
            workOrderInfo,
            SelectMaterial
            SelectMaterial,
            SelectMultipleMaterial
        },
        data() {
            return {
@@ -100,7 +103,8 @@
        },
        methods: {
            open1(index) {
                this.$refs.selectMaterial.open({})
                // this.$refs.selectMaterial.open({})
                this.$refs.selectMultipleMaterial.open({})
            },
            deleItem(index) {
                if (this.materialList.length === 1) {
web_standard/public/template/material_import_template.xlsx
Binary files differ