llj
6 天以前 1a26634572c3bf5582e136cda9a3cabef06c71bf
委外接收单新增组件
1个文件已添加
1个文件已修改
579 ■■■■ 已修改文件
components/StationOutBillPopup/StationEntrustOutBillListPopup.vue 444 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/weiwaigxOut/Cj_StationEntrustOutBillList.vue 135 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/StationOutBillPopup/StationEntrustOutBillListPopup.vue
New file
@@ -0,0 +1,444 @@
<template>
    <view>
        <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
            <view class="form">
                <!-- 合格数量 -->
                <view class="form-item">
                    <view class="title">合格数量:</view>
                    <view class="right">
                        <input v-model="hform.HQty" placeholder="请输入合格数量" />
                    </view>
                </view>
                <!-- 不良数量 -->
                <view class="form-item">
                    <view class="title">不良数量:</view>
                    <view class="right">
                        <input v-model="hform.HBadCount" placeholder="请输入不良数量" />
                    </view>
                </view>
                <!-- 报废数量 -->
                <view class="form-item">
                    <view class="title">报废数量:</view>
                    <view class="right">
                        <input v-model="hform.HWasterQty" placeholder="请输入报废数量" />
                    </view>
                </view>
                <!-- 生产资源 -->
                <view class="form-item">
                    <view class="title">生产资源:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHSourceName" placeholder="请选择生产资源" v-model="hform.HSourceName"
                            @input="HSourceNameChange"></uni-combox>
                    </view>
                </view>
                <!-- 工作中心 -->
                <view class="form-item">
                    <view class="title">工作中心:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHCenterName" placeholder="请选择工作中心" v-model="hform.HCenterName"
                            @input="HCenterNameChange"></uni-combox>
                    </view>
                </view>
                <!-- 生产班组 -->
                <view class="form-item">
                    <view class="title">生产班组:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHGroupName" placeholder="请选择生产班组" v-model="hform.HGroupName"
                            @input="HGroupNameChange"></uni-combox>
                    </view>
                </view>
                <!-- 操作员 -->
                <view class="form-item">
                    <view class="title"><text>*</text>操作员:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHEmpName" placeholder="请选择操作员" v-model="hform.HEmpName"
                            @input="HEmpNameChange"></uni-combox>
                    </view>
                </view>
                <!-- 底部提交按钮 -->
                <view class="bottom-btn">
                    <button class="btn-a" size="mini" @tap="submit">提交</button>
                </view>
            </view>
        </uni-popup>
    </view>
</template>
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import {
        getUserInfo
    } from "@/utils/auth.js";
    import {
        CommonUtils
    } from '../../utils/common';
    export default {
        name: "BillListPopup_gongxuOut",
        data() {
            return {
                userInfo: getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                // 下拉框候选数组
                arrayHSourceName: [],
                HSourceNameList: [],
                arrayHGroupName: [],
                HGroupNameList: [],
                arrayHEmpName: [],
                HEmpNameList: [],
                arrayHCenterName: [],
                HCenterNameList: [],
                hform: {
                    HInterID: '',          // 内部使用,不展示
                    HBillNo: '',            // 内部使用,不展示
                    HQty: '',
                    HBadCount: 0,
                    HWasterQty: 0,
                    HSourceName: '',
                    HSourceID: 0,
                    HCenterName: '',
                    HCenterID: 0,
                    HGroupName: '',
                    HGroupID: 0,
                    HEmpName: '',
                    HEmpID: 0,
                }
            }
        },
        mounted() {
            this.getNewData();               // 获取新单号
            this.getHSourceList();            // 生产资源
            this.getHGroupList();              // 生产班组
            this.getHEmpList();                 // 操作员
            this.getHCenterList();               // 工作中心
            this.getDefValByUser();              // 用户默认值
        },
        methods: {
            // 弹窗开关处理
            popupChangeHandler(e) {
                if (e.show === false) {
                    // 关闭时重置数量
                    this.hform.HQty = '';
                    this.hform.HBadCount = 0;
                    this.hform.HWasterQty = 0;
                    this.getNewData();
                }
            },
            // 打开弹窗
            showPopup(item) {
                this.hform.HInterID=item.HInterID
                this.hform.HQty=item.接收合格数量
                this.hform.HWasterQty=item.报废数量
                this.hform.HBadCount=item.不良数量
                this.hform.HSourceID=item.HSourceID
                this.hform.HSourceID=item.HSourceID
                this.hform.HSourceName=item.生产资源
                this.hform.HCenterID=item.HCenterID
                this.hform.HCenterName=item.工作中心
                this.hform.HGroupID=item.HGroupID
                this.hform.HGroupName=item.班组
                this.hform.HEmpID=item.HEmpID
                this.hform.HEmpName=item.操作员
                this.$refs.popup.open();
            },
            // 通过登录用户获取默认值
            getDefValByUser() {
                uni.request({
                    url: this.serverUrl + '/Cj_StationInBill/GetDefValByUser',
                    method: "GET",
                    async: false,
                    data: {
                        "Czybm": this.userInfo.Czybm,
                        "Czymc": this.userInfo.Czymc
                    },
                    success: (res) => {
                        if (res.data.count == 1) {
                            var data = res.data.data[0];
                            this.hform.HGroupID = data.HGroupID;
                            this.hform.HGroupName = data.生产班组名称;
                            this.hform.HEmpID = data.HEmpID;
                            this.hform.HEmpName = data.操作员名称;
                            this.hform.HSourceID = data.HSourceID;
                            this.hform.HSourceName = data.生产资源名称;
                            this.hform.HCenterID = data.HWorkCenterID;
                            this.hform.HCenterName = data.工作中心名称;
                        } else {
                            uni.showToast({
                                title: '获取默认值失败',
                                icon: 'none'
                            });
                        }
                    },
                    fail: () => {
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        });
                    },
                });
            },
            // 生产资源列表
            getHSourceList() {
                uni.request({
                    url: this.serverUrl + '/api/newBill/getSourceList',
                    data: { sWhere: '' },
                    success: (res) => {
                        if (res.data.code == 1) {
                            this.HSourceNameList = res.data.data.Gy_Source;
                            this.arrayHSourceName = this.HSourceNameList.map(item => item.生产资源);
                            this.$forceUpdate();
                        } else {
                            uni.showToast({ title: res.data.Message, icon: 'none' });
                        }
                    },
                    fail: () => {
                        uni.showToast({ title: '接口请求失败', icon: 'none' });
                    },
                });
            },
            HSourceNameChange(e) {
                const found = this.HSourceNameList.find(item => item.生产资源 == e);
                if (found) this.hform.HSourceID = found.HItemID;
            },
            // 生产班组列表
            getHGroupList() {
                uni.request({
                    url: this.serverUrl + '/Web/GetProductionTeamList_Json',
                    data: { sWhere: "and HUSEORGID = " + uni.getStorageSync('OrganizationID') },
                    success: (res) => {
                        if (res.data.count == 1) {
                            this.HGroupNameList = res.data.data;
                            this.arrayHGroupName = this.HGroupNameList.map(item => item.班组);
                            this.$forceUpdate();
                        } else {
                            uni.showToast({ title: res.data.Message, icon: 'none' });
                        }
                    },
                    fail: () => {
                        uni.showToast({ title: '接口请求失败', icon: 'none' });
                    },
                });
            },
            HGroupNameChange(e) {
                const found = this.HGroupNameList.find(item => item.班组 == e);
                if (found) this.hform.HGroupID = found.HItemID;
            },
            // 操作员列表
            getHEmpList() {
                uni.request({
                    url: this.serverUrl + '/Web/GetEmployeeList_Json',
                    data: {
                        Employee: '',
                        HGroupID: 0,
                        HDeptID: uni.getStorageSync("HDeptID")
                    },
                    success: (res) => {
                        if (res.data.count == 1) {
                            this.HEmpNameList = res.data.data;
                            this.arrayHEmpName = this.HEmpNameList.map(item => item.HName);
                            this.$forceUpdate();
                        } else {
                            uni.showToast({ title: res.data.Message, icon: 'none' });
                        }
                    },
                    fail: () => {
                        uni.showToast({ title: '接口请求失败', icon: 'none' });
                    },
                });
            },
            HEmpNameChange(e) {
                const found = this.HEmpNameList.find(item => item.HName == e);
                if (found) this.hform.HEmpID = found.HItemID;
            },
            // 工作中心列表
            getHCenterList() {
                uni.request({
                    url: this.serverUrl + '/api/newBill/getWorkCenterList',
                    data: { sWhere: '' },
                    success: (res) => {
                        if (res.data.code == 1) {
                            this.HCenterNameList = res.data.data.Gy_Source;
                            this.arrayHCenterName = this.HCenterNameList.map(item => item.工作中心);
                            this.$forceUpdate();
                        } else {
                            uni.showToast({ title: res.data.Message, icon: 'none' });
                        }
                    },
                    fail: () => {
                        uni.showToast({ title: '接口请求失败', icon: 'none' });
                    },
                });
            },
            HCenterNameChange(e) {
                const found = this.HCenterNameList.find(item => item.工作中心 == e);
                if (found) this.hform.HCenterID = found.HItemID;
            },
            // 获取新单据号(内部使用)
            getNewData() {
                uni.request({
                    url: this.serverUrl + '/Web/GetMAXNum',
                    data: { HBillType: '3791' },
                    success: (res) => {
                        if (res.data.count == 1) {
                            this.hform.HInterID = res.data.data[0].HInterID;
                            this.hform.HBillNo = res.data.data[0].HBillNo;
                        } else {
                            uni.showToast({ title: res.data.Message, icon: 'none' });
                        }
                    },
                    fail: () => {
                        uni.showToast({ title: '接口请求失败', icon: 'none' });
                    },
                });
            },
            // 提交前校验
            preSubmitCheck() {
                if (CommonUtils.isEmpty(this.hform.HQty)) {
                    return { pass: false, message: '合格数量不能为空' };
                }
                if (CommonUtils.isEmpty(this.hform.HBadCount)) {
                    return { pass: false, message: '不良数量不能为空' };
                }
                if (CommonUtils.isEmpty(this.hform.HWasterQty)) {
                    return { pass: false, message: '报废数量不能为空' };
                }
                if (!this.hform.HEmpName) {
                    return { pass: false, message: '请选择操作员' };
                }
                return { pass: true, message: '' };
            },
            // 提交
            submit() {
                const { pass, message } = this.preSubmitCheck();
                if (!pass) {
                    return uni.showToast({ icon: 'none', title: message });
                }
                uni.showLoading({ title: '提交中...' });
                const submitData = {
                    HInterID: this.hform.HInterID,
                    HBillNo: this.hform.HBillNo,
                    HQty: this.hform.HQty,
                    HBadCount: this.hform.HBadCount,
                    HWasterQty: this.hform.HWasterQty,
                    HSourceID: this.hform.HSourceID,
                    HSourceName: this.hform.HSourceName,
                    HCenterID: this.hform.HCenterID,
                    HCenterName: this.hform.HCenterName,
                    HGroupID: this.hform.HGroupID,
                    HGroupName: this.hform.HGroupName,
                    HEmpID: this.hform.HEmpID,
                    HEmpName: this.hform.HEmpName,
                };
                uni.request({
                    url: this.serverUrl + '/Cj_StationEntrustOutBill/setOtherProperty',
                    method: 'POST',
                    data: {
                        oMain: JSON.stringify(submitData)+ ";" + uni.getStorageSync('HUserName'),
                    },
                    success: (res) => {
                        uni.hideLoading();
                        if (res.data.count == 1) {
                            uni.showToast({ title: '提交成功', icon: 'none' });
                            setTimeout(() => {
                                this.$refs.popup.close();
                            }, 1500);
                        } else {
                            uni.showToast({ title: res.data.Message, icon: 'none' });
                        }
                    },
                    fail: () => {
                        uni.hideLoading();
                        uni.showToast({ title: '接口请求失败', icon: 'none' });
                    },
                });
            }
        }
    }
</script>
<style lang="scss" scoped>
    .form {
        box-sizing: border-box;
        border-radius: 15rpx 15rpx 0 0;
         padding: 20rpx 20rpx 160rpx 20rpx;
        background-color: #fff;
        display: flex;
        flex-direction: column;
        gap: 10rpx;
        overflow-y: auto;
        // max-height: 70vh;
        max-height: calc(80vh - 120px);
    }
    .form-item {
        display: flex;
        align-items: center;
        font-size: 30rpx;
        padding: 6rpx 0;
        .title {
            width: 180rpx;
            flex-shrink: 0;
            text {
                color: red;
                font-weight: bold;
            }
        }
        .right {
            flex: 1;
            border-radius: 22rpx;
            border: 1px solid #acacac;
        }
        input, .uni-combox {
            width: 100%;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
    }
    .bottom-btn {
        width: 100%;
        box-sizing: border-box;
        position: fixed;
        bottom: 0;
        left: 0;
        background-color: #fff;
        box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
        padding: 30rpx 40rpx 40rpx 40rpx;
        display: flex;
        justify-content: center;
        button {
            border-radius: 50rpx;
            width: 300rpx;
            height: 66rpx;
            line-height: 66rpx;
            font-size: 28rpx;
            background-color: #3A78FF;
            color: #fff;
        }
    }
</style>
pages/weiwaigxOut/Cj_StationEntrustOutBillList.vue
@@ -2,6 +2,17 @@
    <view class="content">
        <view class="form">
            <view class="form-item">
                    <view class="title">流转卡号:</view>
                    <view class="right">
                        <input v-model="hform.HProcExchBillNo" placeholder="请输入工序流转卡号" />
                    </view>
                    <view>
                    <uni-icons type="scan"
                        style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;font-weight: 500;"
                        size="20" @click="toScanCode"></uni-icons>
                    </view>
                </view>
            <view class="form-item">
                <view class="title">状态:</view>
                <view class="right">
                    <picker :range="arrayStatus" :value="hform.HStatus" @change="HStatusChange">
@@ -38,17 +49,7 @@
                        <input v-model="hform.HBillNo" placeholder="请输入单据号" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">流转卡号:</view>
                    <view class="right">
                        <input v-model="hform.HProcExchBillNo" placeholder="请输入工序流转卡号" />
                    </view>
                    <view>
                    <uni-icons type="scan"
                        style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;font-weight: 500;"
                        size="20" @click="toScanCode"></uni-icons>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">产品代码:</view>
                    <view class="right">
@@ -213,52 +214,41 @@
                </view>
                
                <view class="op" v-if="operations == index">
                    <button class="op1" size="mini" plain @tap.stop="check(item)">审核</button>
                    <button class="op1" size="mini" plain @tap.stop="check(item)" v-if="item.审核人===''">审核</button>
                    <!-- <button class="op2" size="mini" plain @tap.stop="antiCheck(item)">反审核</button> -->
                    <button class="op1" size="mini" plain @tap.stop="firstCheck(item)" v-if="false">首检</button>
                    <button class="op3" size="mini" plain @tap.stop="edit(item)" v-if="hform.HStatus === '已审核'">编辑</button>
                    <button class="op3" size="mini" plain @tap.stop="edit(item)" v-if="item.审核人===''">编辑</button>
                    <button class="op4" size="mini" plain @tap.stop="del(item)" v-if="false">删除</button>
                    <button class="op5" size="mini" plain @tap.stop="operations = -1">取消操作</button>
                </view>
            </uni-card>
        
        </view>
        <StationOutBillPopup ref="billList"> </StationOutBillPopup>
        <view class="over" v-if="listData.length == 0">暂无数据</view>
        <view class="over" v-if="listData.length != 0 && listData.length != showList.length">加载中...</view>
        <view class="over" v-if="listData.length != 0 && listData.length == showList.length">已到底</view>
            <!-- 审核弹窗 -->
        <view class="popup-mask" v-if="popupVisible" @tap="cancelCheck">
            <view class="popup-content" @tap.stop>
                <view class="popup-title">审核确认</view>
                <view class="popup-item">
                    <text class="popup-label">数量:</text>
                    <input class="popup-input" type="number" v-model="popupForm.HQty" placeholder="请输入数量" />
                </view>
                <view class="popup-item">
                    <text class="popup-label">制单人:</text>
                    <input class="popup-input" v-model="popupForm.HUser" placeholder="请输入制单人" />
                </view>
                <view class="popup-btns">
                    <button class="popup-btn cancel" @tap="cancelCheck">取消</button>
                    <button class="popup-btn confirm" @tap="confirmCheck()">确定</button>
                </view>
            </view>
        </view>
    </view>
        
</template>
<script>
    import { getUserInfo } from "@/utils/auth.js";
    import StationOutBillPopup from "../../components/StationOutBillPopup/StationEntrustOutBillListPopup.vue"
    export default {
        components:{StationOutBillPopup},
        data() {
            return {
                popupVisible: false,
                popupItem: null,
                popupForm: {
                    HQty: '',
                    HUser: ''
                    HUser: '',
                    HWasterQty:'',//报废
                    HPieceQty:'',//不良
                    HSourceName:'',//生产资源
                    HCenter:'',//工作中心
                },
                userInfo:getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl')||'http://47.96.97.237/API',
@@ -283,6 +273,7 @@
                page:1,
            }
        },
        onLoad() {
            this.getList()
            // console.log(this.userInfo,uni.getStorageSync('HUserName'))
@@ -322,7 +313,7 @@
                })
            },
            getList(){
                this.sWhere += ` and 制单人 like '%${this.userInfo.Czymc}'`
                // this.sWhere += ` and 制单人 like '%${this.userInfo.Czymc}'`
                console.log(this.sWhere)
                uni.showLoading({
                    title:'加载中...'
@@ -396,12 +387,12 @@
                        this.sWhere += " and 关闭人<>''";
                    }
                }
                // if (this.hform.HBeginDate) {
                //     this.sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.hform.HBeginDate + "'";
                // }
                // if (this.hform.HEndDate) {
                //     this.sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.hform.HEndDate + "'";
                // }
                if (this.hform.HBeginDate) {
                    this.sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.hform.HBeginDate + "'";
                }
                if (this.hform.HEndDate) {
                    this.sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.hform.HEndDate + "'";
                }
                if (this.hform.HBillNo) {
                    this.sWhere += " and 单据号 like '%" + this.hform.HBillNo + "%'";
                }
@@ -418,7 +409,7 @@
                    this.sWhere += " and 流转卡号 like '%" + this.hform.HProcExchBillNo + "%'";
                }
                
                this.getList()
                this.search()
            },
            //新增
            creat(){
@@ -509,65 +500,11 @@
            //审核
            check(item){
                console.log(item)
                if (item.HBillStatus > 0) {
                    // uni.showToast({
                    //     title:'单据不为未审核状态!'
                    // })
                    this.popupItem = item;
                    this.popupForm.HQty = 0;
                    this.popupForm.HUser = uni.getStorageSync('HUserName');
                    this.popupVisible = true;
                }
                 console.log(this.$refs.billList);
                this.$refs.billList.showPopup(item)
            },
                
            },
            confirmCheck(item) {
                // if (!this.popupForm.HQty) {
                //     uni.showToast({ title: '请输入数量', icon: 'none' });
                //     return;
                // }
                // if (!this.popupForm.HUser) {
                //     uni.showToast({ title: '请输入制单人', icon: 'none' });
                //     return;
                // }
                uni.request({
                    url: this.serverUrl + '/Cj_StationEntrustOutBill/setOtherProperty',
                    method: 'Get',
                    data: {
                        HInterID: this.popupItem.HInterID,
                        HQty: this.popupForm.HQty,
                        user: this.popupForm.HUser // 制单人
                    },
                    success: (res) => {
                        console.log(1, res);
                        if (res.data.count == 1) {
                            this.popupVisible = false;
                            uni.showToast({
                                title: '审核成功',
                                icon: 'none'
                            });
                            this.search();
                        } else {
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
                            });
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        });
                    }
                });
            },
            cancelCheck() {
                this.popupVisible = false;
                this.popupItem = null;
                this.popupForm.HQty = '';
                this.popupForm.HUser = '';
            }
            // //反审核
            // antiCheck(item){