loulijun2021
2023-10-31 4a0e13df7532a226cd1f951b3ace001969d2ee88
1.模具出库、模具入库 100%
已修改3个文件
650 ■■■■■ 文件已修改
config/api.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/mjgl/mjck.vue 253 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/mjgl/mjrk.vue 392 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/api.js
@@ -140,3 +140,8 @@
export const EqpPermissions = (data) => http.get('/MouldManager/MouldEqpPermissions', {
    params: data
})
// 仓库库位基础资料
export const WareHouseLocation = (data) => http.get('/GeneralBasicData/WareHouseLocation',
    data)
pages/mjgl/mjck.vue
@@ -1,8 +1,259 @@
<template>
    <view>
        <page-nav title="模具出库"></page-nav>
        <view v-show="topContent.length===0">
            <div class="sacnBody">
                <div class="scanImg" @click="topScanClick"></div>
                <div class="scanText">扫描模具编码</div>
            </div>
        </view>
        <view v-show="topContent.length!==0">
            <view class="mainContent">
                <view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="max-height: 480rpx;overflow:scroll;">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    模具信息
                                </view>
                            </view>
                            <view class="marginRight20">
                                <u-icon name="scan" @click="topScanClick" color="red" size="24"></u-icon>
                            </view>
                        </view>
                        <view class="marginTop20 marginLeft20 marginRight20 flex_column">
                            <view class="marginBottom20 flex_between" v-for="item in topContent" :key="item.code">
                                <view style="display: flex;">
                                    <view class="flex_column titleFont">
                                        <view>模具编码:</view>
                                        <view>模具名称:</view>
                                        <view>规格型号:</view>
                                        <view>预计寿命:</view>
                                        <view>剩余寿命:</view>
                                        <view>出库仓库:</view>
                                        <view>出库库位:</view>
                                    </view>
                                    <view class="flex_column contentFont">
                                        <view>{{item.mould_code}}</view>
                                        <view>{{item.mould_name}}</view>
                                        <view>{{item.mould_spec?item.mould_spec:'/'}}</view>
                                        <view>{{item.surp_life}}</view>
                                        <view>{{item.resi_life}}</view>
                                        <view>{{item.warehousename}}</view>
                                        <view>{{item.location_name}}</view>
                                    </view>
                                </view>
                            </view>
                        </view>
                    </view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="padding-bottom: 10rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    出库描述
                                </view>
                            </view>
                        </view>
                        <view class='inputClass  contentFont' style="margin: 0 20rpx; width: 95%;">
                            <u--textarea placeholder="请输入" confirm-type="send" border="surround" height='80'
                                v-model="descMessage">
                            </u--textarea>
                        </view>
                    </view>
                </view>
            </view>
            <view class="footer">
                <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
                    @click="submit" text="确认提交">
                </u-button>
            </view>
        </view>
        <u-action-sheet :actions="eqpArr" @select="selectClick" round='20' :closeOnClickOverlay='true'
            @close="show=false" :closeOnClickAction="true" :safeAreaInsetBottom='true' :show="show"></u-action-sheet>
    </view>
</template>
<script>
    import {
        MouldOutWareHouseQrCodeData,
        MouldOutWareHouseSave
    } from '../../config/api.js'
    export default {
        onLoad(option) {
            //   const _this = this
            // uni.$off('scancodedate') // 每次进来先 移除全局自定义事件监听器
            // uni.$on('scancodedate', function(content) {
            //     console.log("扫描到的内容为:", content)
            //     _this.getMouldOutWareHouseQrCodeData(content)
            // })
        },
        onPullDownRefresh() {
            setTimeout(() => {
                this.init(() => {
                    uni.stopPullDownRefresh();
                })
            }, 1000);
        },
        data() {
            return {
                topRightMessageCount: 0,
                isDisabledSubmitButton: false,
                topContent: [],
                scanContent: '',
                selectValue: '',
                descMessage: '',
                show: false,
                eqpArr: []
            }
        },
        created() {
            // this.getMouldOutWareHouseQrCodeData('001')
        },
        mounted() {
            this.init()
        },
        methods: {
            init() {
                uni.stopPullDownRefresh();
            },
            selectClick(val) {
                console.log(val)
                this.selectValue = val.name
            },
            // 扫码工位  的扫码框点击
            topScanClick() {
                // if (this.topContent.length > 0) {
                //     return uni.$u.toast('请先提交此维修申请!')
                // }
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        that.scanContent = res.result;
                        let flag = false
                        that.topContent.forEach(item => {
                            if (item.code === res.result) {
                                flag = true
                            }
                        })
                        if (flag) {
                            that.$u.toast('此条码已扫描,已在列表中!')
                        } else {
                            //处理扫码事件
                            that.getMouldOutWareHouseQrCodeData(that.scanContent);
                        }
                    },
                    complete: function(res) {
                    },
                    fail: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                    }
                });
            },
            // 获取维修工位
            async getMouldOutWareHouseQrCodeData(val) {
                const data = {
                    mouldcode: val
                }
                const res = await MouldOutWareHouseQrCodeData(data)
                if (res.code === '200') {
                    this.topContent = []
                    this.topContent.unshift(res.data[0])
                }
            },
            // 确认提交按钮
            async submit() {
                // if (parseFloat(this.topContent[0].resi_life) < parseFloat(this.selectValue)) {
                //     uni.$u.toast('本次使用次数不能大于剩余寿命次数!')
                // }
                const data = {
                    mouldcode: this.topContent[0].mould_code,
                    warehousecode: this.topContent[0].warehousecode,
                    locationcode: this.topContent[0].location_code,
                    description: this.descMessage
                }
                // console.log(JSON.stringify(data))
                this.isDisabledSubmitButton = true
                const res = await MouldOutWareHouseSave(data)
                if (res.code === '200') {
                    uni.$u.toast('提交成功!')
                    this.isDisabledSubmitButton = false
                    this.topContent = []
                    this.selectValue = ''
                    this.descMessage = ''
                }
            },
        }
    }
</script>
<style>
<style lang="scss" scoped>
    @import url('@/style/global.css');
    ::v-deep .uicon-arrow-left>span {
        display: block;
    }
</style>
pages/mjgl/mjrk.vue
@@ -1,8 +1,398 @@
<template>
    <view>
        <page-nav title="模具入库"></page-nav>
        <view v-show="topContent.length===0">
            <div class="sacnBody">
                <div class="scanImg" @click="topScanClick"></div>
                <div class="scanText">扫描模具编码</div>
            </div>
        </view>
        <view v-show="topContent.length!==0">
            <view class="mainContent">
                <view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="max-height: 410rpx;overflow:scroll;">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    模具信息
                                </view>
                            </view>
                            <view class="marginRight20">
                                <u-icon name="scan" @click="topScanClick" color="red" size="24"></u-icon>
                            </view>
                        </view>
                        <view class="marginTop20 marginLeft20 marginRight20 flex_column">
                            <view class="marginBottom20 flex_between" v-for="item in topContent" :key="item.code">
                                <view style="display: flex;">
                                    <view class="flex_column titleFont">
                                        <view>模具编码:</view>
                                        <view>模具名称:</view>
                                        <view>规格型号:</view>
                                        <view>预计寿命:</view>
                                        <view>剩余寿命:</view>
                                    </view>
                                    <view class="flex_column contentFont">
                                        <view>{{item.code}}</view>
                                        <view>{{item.name}}</view>
                                        <view>{{item.spec?item.spec:'/'}}</view>
                                        <view>{{item.surp_life}}</view>
                                        <view>{{item.resi_life}}</view>
                                    </view>
                                </view>
                            </view>
                        </view>
                    </view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="padding-bottom: 10rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left" style="align-items: center;">
                                <view class="head_bar" style="margin-top: 0rpx;"></view>
                                <view class="head_title">
                                    库位信息
                                </view>
                                <view style="margin-left: 20rpx;">
                                    {{selectValue.name}}
                                </view>
                            </view>
                            <view class="marginRight20" style="display: flex;">
                                <u-button @click="show = true" type='primary' size="small" plain class="marginRight20"
                                    shape='circle'>请选择</u-button>
                                <u-icon name="scan" @click="centerScanClick" color="red" size="24"></u-icon>
                            </view>
                            <!--     <view class="marginRight20 marginBottom10">
                                <u-button @click="show = true" type='primary' size="small" plain
                                    shape='circle'>请选择</u-button>
                            </view> -->
                            <!-- <view class="marginRight20 marginBottom10" v-if='ckkwArr.length===0'>
                                暂无空余设备,请先下机
                            </view> -->
                        </view>
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left" style="align-items: center;">
                                <view class="head_bar" style="margin-top: 0rpx;"></view>
                                <view class="head_title">
                                    所属仓库
                                </view>
                                <view style="margin-left: 20rpx;">
                                    {{belongCk.text}}
                                </view>
                            </view>
                        </view>
                    </view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="padding-bottom: 10rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    入库描述
                                </view>
                            </view>
                        </view>
                        <view class='inputClass  contentFont' style="margin: 0 20rpx; width: 95%;">
                            <u--textarea placeholder="请输入" confirm-type="send" border="surround" height='80'
                                v-model="descMessage">
                            </u--textarea>
                        </view>
                    </view>
                </view>
            </view>
            <view class="footer">
                <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
                    :disabled="isDisabled" @click="submit" text="确认提交">
                </u-button>
            </view>
        </view>
        <u-action-sheet :actions="kwArr" @select="selectClick" round='20' :closeOnClickOverlay='true'
            @close="show=false" :closeOnClickAction="true" :safeAreaInsetBottom='true' :show="show"></u-action-sheet>
    </view>
</template>
<script>
    import {
        MouldInWareHouseQrCodeData,
        WareHouseLocation,
        MouldInWareHouseSave
    } from '../../config/api.js'
    export default {
        onLoad(option) {
            //   const _this = this
            // uni.$off('scancodedate') // 每次进来先 移除全局自定义事件监听器
            // uni.$on('scancodedate', function(content) {
            //     console.log("扫描到的内容为:", content)
            //     _this.getMouldInWareHouseQrCodeData(content)
            // })
        },
        onPullDownRefresh() {
            setTimeout(() => {
                this.init(() => {
                    uni.stopPullDownRefresh();
                })
            }, 1000);
        },
        data() {
            return {
                topRightMessageCount: 0,
                isDisabledSubmitButton: false,
                topContent: [],
                scanContent: '',
                selectValue: '',
                descMessage: '',
                show: false,
                ckkwArr: [],
                kwArr: [],
                belongCk: '',
                isDisabled: true
            }
        },
        created() {
            // this.getMouldInWareHouseQrCodeData('001')
        },
        mounted() {
            this.init()
            this.getWareHouseLocation()
        },
        methods: {
            init() {
                uni.stopPullDownRefresh();
            },
            async getWareHouseLocation() {
                const {
                    data: res
                } = await WareHouseLocation()
                this.ckkwArr = res
                this.kwArr = []
                this.ckkwArr.forEach(i => {
                    if (i.children && i.children.length > 0) {
                        i.children.forEach(j => {
                            this.kwArr.push({
                                code: j.value,
                                name: j.text
                            })
                        })
                    }
                })
            },
            selectClick(val) {
                this.selectValue = val
                this.belongCk = ''
                this.ckkwArr.forEach(i => {
                    if (i.children && i.children.length > 0) {
                        i.children.forEach(j => {
                            if (j.value === val.code) {
                                this.belongCk = i
                                this.isDisabled = false
                            }
                        })
                    }
                })
                // console.log(this.belongCk, 123)
            },
            // 扫码工位  的扫码框点击
            topScanClick() {
                // if (this.topContent.length > 0) {
                //     return uni.$u.toast('请先提交此维修申请!')
                // }
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        that.scanContent = res.result;
                        let flag = false
                        that.topContent.forEach(item => {
                            if (item.code === res.result) {
                                flag = true
                            }
                        })
                        if (flag) {
                            that.$u.toast('此条码已扫描,已在列表中!')
                        } else {
                            //处理扫码事件
                            that.getMouldInWareHouseQrCodeData(that.scanContent);
                        }
                    },
                    complete: function(res) {
                    },
                    fail: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                    }
                });
            },
            centerScanClick() {
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        that.ckkwArr.forEach(i => {
                            if (i.children && i.children.length > 0) {
                                i.children.forEach(j => {
                                    if (j.value === res.result) {
                                        that.belongCk = i
                                        console.log(j);
                                        that.selectValue = {
                                            code: j.value,
                                            name: j.text
                                        }
                                        that.isDisabled = false
                                    }
                                })
                            }
                        })
                    },
                    complete: function(res) {
                    },
                    fail: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                    }
                });
            },
            // 获取模具信息
            async getMouldInWareHouseQrCodeData(val) {
                const data = {
                    mouldcode: val
                }
                const res = await MouldInWareHouseQrCodeData(data)
                if (res.code === '200') {
                    this.topContent = []
                    this.topContent.unshift(res.data[0])
                }
            },
            // 确认提交按钮
            async submit() {
                const data = {
                    mouldcode: this.topContent[0].code,
                    warehousecode: this.belongCk.value,
                    locationcode: this.selectValue.code,
                    description: this.descMessage
                }
                console.log(JSON.stringify(data))
                this.isDisabledSubmitButton = true
                const res = await MouldInWareHouseSave(data)
                if (res.code === '200') {
                    uni.$u.toast('提交成功!')
                    this.isDisabledSubmitButton = false
                    this.topContent = []
                    this.selectValue = ''
                    this.belongCk = ''
                    this.descMessage = ''
                }
            },
        }
    }
</script>
<style>
<style lang="scss" scoped>
    @import url('@/style/global.css');
    ::v-deep .uicon-arrow-left>span {
        display: block;
    }
</style>
<style scoped>
    /deep/.u-action-sheet__item-wrap {
        overflow: auto;
        max-height: 50vh;
    }
</style>