chenhaozhe
2025-09-12 48d7400c9433026f3317d974530f62f4f292a005
Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev
1个文件已添加
2个文件已修改
586 ■■■■ 已修改文件
pages/caigouruku/form.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/gongxuOut/moneystatistics.vue 484 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/login.vue 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/caigouruku/form.vue
@@ -378,8 +378,15 @@
                this.RoadBillMain(e.HInterID)
                this.barCodeFocus = true
            } else {
                this.getNewData()
                this.HSourceBillNoFocus = true
                this.getNewData();
                //如果服务器地址时海诚
                if(this.serverUrl=='http://122.228.39.234:7177/API/')
                {
                    this.barCodeFocus = true
                }else{
                    this.HSourceBillNoFocus = true
                }
            }
            this.getHSupList()
pages/gongxuOut/moneystatistics.vue
New file
@@ -0,0 +1,484 @@
<template>
    <view class="content">
        <view class="form">
            <view class="form-item">
                <view class="title">月份:</view>
                <view class="right">
                    <picker :range="arrayHMonth" :value="hform.HMonth" @change="HMonthChange">
                        <input name="HMonth" disabled :value="hform.HMonth" placeholder="请选择月份" />
                    </picker>
                </view>
            </view>
            <view class="form-item">
                <view class="title">操作员:</view>
                <view class="right">
                    <picker :range="arrayHEmp" :value="hform.HEmp" @change="HEmpChange">
                        <input name="HEmp" disabled :value="hform.HEmp" placeholder="请选择"  style="pointer-events: none;"/>
                    </picker>
                </view>
            </view>
            <view class="buttons">
                <button class="btn-a" size="mini" type="default" @tap="clear">重置</button>
                <button class="btn-c" size="mini" type="default" @tap="search">查询</button>
            </view>
        </view>
        <view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
        <view class="tabs">
            <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">汇报合计</view>
            <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">明细信息</view>
        </view>
        <view class="list" v-for="(item,index) in showList" :key="index">
            <uni-card :title="item.任务单" :extra="item.单据号" style="margin: 10px;" @tap="showDetail = showDetail==index?-1:index">
                <view class="card-detail">
                    <view class="detail" v-if="item.工序流转卡号">
                        <text>流转卡号:</text>{{item.工序流转卡号}}
                    </view>
                    <view class="detail" v-if="item.产品名称">
                        <text>产品名称:</text>{{item.产品名称}}
                    </view>
                    <view class="detail" v-if="item.产品代码">
                        <text>产品代码:</text>{{item.产品代码}}
                    </view>
                    <view class="detail" v-if="item.款号">
                        <text>款号:</text>{{item.款号}}
                    </view>
                    <view class="detail" v-if="item.当前工序">
                        <text>当前工序:</text>{{item.当前工序}}
                    </view>
                    <view class="detail" v-if="item.当前工序代码">
                        <text>工序代码:</text>{{item.当前工序代码}}
                    </view>
                    <view class="detail" v-if="item.日期">
                        <text>日期:</text>{{item.日期.substr(0,10)}}
                    </view>
                </view>
                <view class="card-detail" v-if="showDetail == index">
                    <view class="detail" v-if="item.规格型号">
                        <text>规格型号:</text>{{item.规格型号}}
                    </view>
                    <view class="detail" v-if="item.流水号">
                        <text>流水号:</text>{{item.流水号}}
                    </view>
                    <view class="detail" v-if="item.出站数量">
                        <text>出站数量:</text>{{item.出站数量}}
                    </view>
                    <view class="detail" v-if="item.不良数量">
                        <text>不良数量:</text>{{item.不良数量}}
                    </view>
                    <view class="detail" v-if="item.报废数量">
                        <text>报废数量:</text>{{item.报废数量}}
                    </view>
                    <view class="detail" v-if="item.包装标识">
                        <text>包装标识:</text>{{item.包装标识}}
                    </view>
                    <view class="detail" v-if="item.包装标识代码">
                        <text>包装标识代码:</text>{{item.包装标识代码}}
                    </view>
                    <view class="detail" v-if="item.出站时间">
                        <text>出站时间:</text>{{item.出站时间.substr(0,19)}}
                    </view>
                    <view class="detail" v-if="item.操作员">
                        <text>操作员:</text>{{item.操作员}}
                    </view>
                    <view class="detail" v-if="item.操作员代码">
                        <text>操作员代码:</text>{{item.操作员代码}}
                    </view>
                    <view class="detail" v-if="item.生产资源">
                        <text>生产资源:</text>{{item.生产资源}}
                    </view>
                    <view class="detail" v-if="item.生产资源代码">
                        <text>生产资源代码:</text>{{item.生产资源代码}}
                    </view>
                    <view class="detail" v-if="item.生产班组">
                        <text>生产班组:</text>{{item.生产班组}}
                    </view>
                    <view class="detail" v-if="item.生产班组代码">
                        <text>生产班组代码:</text>{{item.生产班组代码}}
                    </view>
                    <view class="detail" v-if="item.LOT数量">
                        <text>LOT数量:</text>{{item.LOT数量}}
                    </view>
                    <view class="detail" v-if="item.制单人">
                        <text>制单人:</text>{{item.制单人}}
                    </view>
                    <view class="detail" v-if="item.制单日期">
                        <text>制单日期:</text>{{item.制单日期.substr(0,10)}}
                    </view>
                    <view class="detail" v-if="item.修改人">
                        <text>修改人:</text>{{item.修改人}}
                    </view>
                    <view class="detail" v-if="item.修改日期">
                        <text>修改日期:</text>{{item.修改日期.substr(0,10)}}
                    </view>
                    <view class="detail" v-if="item.审核人">
                        <text>审核人:</text>{{item.审核人}}
                    </view>
                    <view class="detail" v-if="item.审核日期">
                        <text>审核日期:</text>{{item.审核日期.substr(0,10)}}
                    </view>
                    <view class="detail" v-if="item.关闭人">
                        <text>关闭人:</text>{{item.关闭人}}
                    </view>
                    <view class="detail" v-if="item.关闭日期">
                        <text>关闭日期:</text>{{item.关闭日期.substr(0,10)}}
                    </view>
                    <view class="detail" v-if="item.备注">
                        <text>备注:</text>{{item.备注}}
                    </view>
                </view>
                <view class="more" v-if="showDetail == index && operations != index">
                    <view class="part" style="border-right: 1px solid #eee;">
                        <uni-icons type="top" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>收起
                    </view>
                </view>
                <view class="more" v-if="showDetail != index && operations != index">
                    <view class="part" style="border-right: 1px solid #eee;">
                        <uni-icons type="bottom" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>更多信息
                    </view>
                </view>
            </uni-card>
        </view>
        <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>
</template>
<script>
    import { getUserInfo } from "@/utils/auth.js";
    export default {
        data() {
            return {
                userInfo:getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl')||'http://47.96.97.237/API',
                showmore:false,
                hform:{
                    HMonth:'',
                    HEmp:'',
                },
                sWhere:'',
                listData:[],
                showList:[],
                showDetail:-1,
                operations:-1,
                page:1,
            }
        },
        onLoad() {
            this.getList()
            // console.log(this.userInfo,uni.getStorageSync('HUserName'))
        },
        onReachBottom: function() {
            this.page++
            setTimeout(() => {
                this.showList = this.showList.concat(this.getPage(this.page,this.listData))
            }, 100)
        },
        onPullDownRefresh: function() {
            this.clear()
            setTimeout(()=>{
                uni.stopPullDownRefresh();
            }, 1000);
        },
        methods: {
            getPage(page,list){
                let sindex = (parseInt(page) - 1) * 20
                let eindex = parseInt(page) * 20
                let newList = list.slice(sindex,eindex)
                return newList
            },
            getList(){
                this.sWhere += ` and 制单人 like N'%${this.userInfo.Czymc}'`
                uni.showLoading({
                    title:'加载中...'
                })
                uni.request({
                    url: this.serverUrl + '/Cj_StationOutBill/get_Display',
                    data:{
                        sWhere: this.sWhere,
                        user: uni.getStorageSync('HUserName'),
                        HBillSubType:'',
                    },
                    success: (res) => {
                        // console.log(1,res.data.data);
                        if(res.data.count == 1){
                            this.listData = res.data.data
                            this.showList = this.getPage(this.page,this.listData)
                            setTimeout(()=>{
                                 uni.hideLoading()
                            }, 1000)
                        }else{
                            uni.hideLoading()
                            uni.showToast({
                                title:res.data.Message,
                                icon:'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.hideLoading()
                        uni.showToast({
                            title:'接口请求失败',
                            icon:'none'
                        })
                    },
                });
                this.sWhere = ``
            },
            //搜索
            search(){
                this.sWhere = ''
                this.listData = []
                this.page = 1
                this.showList = []
                console.log(this.hform)
                if (this.hform.HStatus) {
                    if(this.hform.HStatus == '全部'){
                        this.sWhere += "";
                    }else if(this.hform.HStatus == '未审核'){
                        this.sWhere += " and 审核人=''";
                    }else if(this.hform.HStatus == '已审核'){
                        this.sWhere += " and 审核人<>''";
                    }else if(this.hform.HStatus == '已关闭'){
                        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.HBillNo) {
                    this.sWhere += " and 单据号 like '%" + this.hform.HBillNo + "%'";
                }
                if (this.hform.HNumber) {
                    this.sWhere += " and 产品代码 like '%" + this.hform.HNumber + "%'";
                }
                if (this.hform.HName) {
                    this.sWhere += " and 当前工序 like '%" + this.hform.HName + "%'";
                }
                if (this.hform.HWorkBillNo) {
                    this.sWhere += " and 任务单 like '%" + this.hform.HWorkBillNo + "%'";
                }
                if (this.hform.HProcExchBillNo) {
                    this.sWhere += " and 工序流转卡号 like '%" + this.hform.HProcExchBillNo + "%'";
                }
                if (this.hform.checkHWasterQty) {
                    this.sWhere +=  "  and 报废数量>0 ";
                }
                if (this.hform.ColName && this.hform.Comparator) {
                    var com = "";
                    if(this.hform.Comparator == '包含'){
                        com = "like'%" + this.hform.ColContent + "%'";
                    }else if(this.hform.Comparator == '左包含'){
                        com = "like'%" + this.hform.ColContent + "'";
                    }else if(this.hform.Comparator == '右包含'){
                        com = "like'" + this.hform.ColContent + "%'";
                    }else if(this.hform.Comparator == '不包含'){
                        com = "not like'%" + this.hform.ColContent + "%'";
                    }else{
                        com = "" + this.hform.Comparator + "'" + this.hform.ColContent + "'";
                    }
                    this.sWhere += " and " + this.hform.ColName + " " + com;
                }
                this.getList()
            },
            //新增
            creat(){
                uni.navigateTo({
                    url:'/pages/gongxuOut/form'
                })
            },
            //重置
            clear(){
                this.listData = []
                this.page = 1
                this.showList = []
                this.showmore = false
                this.sWhere = ''
                this.showDetail = -1,
                this.operations = -1,
                this.hform = {
                    HStatus:'全部',
                    HBeginDate:'',
                    HEndDate:'',
                    HWorkBillNo:'',
                    HBillNo:'',
                    HProcExchBillNo:'',
                    HNumber:'',
                    HName:'',
                    checkHWasterQty:'',
                    ColName:'',
                    Comparator:'',
                    ColContent:'',
                }
                this.getList()
            },
        }
    }
</script>
<style lang="scss" scoped>
    .form{
        width: 640rpx;
        margin: 20rpx auto;
    }
    picker input{
        pointer-events: none;
    }
    .other{
        margin-top: 8rpx;
        text-align: center;
        font-size: 28rpx;
        padding: 4rpx 18rpx;
        color: #1890FF;
    }
    .form-item{
        display: flex;
        align-items: center;
        font-size: 28rpx;
        padding: 6rpx 0;
        .title{
            width: 180rpx;
            text{
                color: red;
                font-weight: bold;
            }
        }
        .choose{
            padding: 4rpx 16rpx 0 0;
            width: 100%;
            text-align: right;
        }
        .left{
            width: 170rpx;
            padding: 10rpx 0;
            margin-right: 10rpx;
            border: 1px solid #acacac;
            border-radius: 22rpx;
            color: #888;
            text-align: center;
        }
        .right{
            width: 450rpx;
            border-radius: 22rpx;
            border: 1px solid #acacac;
        }
        .righton{
            width: 450rpx;
            border-radius: 22rpx;
            border: 1px solid #e4e4e4;
            background-color: #e4e4e4;
        }
        input{
            width: 100%;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
    }
    .buttons{
        width: 100%;
        display: flex;
        justify-content: center;
        margin-top: 20rpx;
        button{
            border-radius: 50rpx;
            width: 180rpx;
            height: 66rpx;
            line-height: 66rpx;
            font-size: 28rpx;
        }
        .btn-a{
            background-color: #acacac;
            color: #fff;
        }
        .btn-b{
            background-color: #41a863;
            color: #fff;
        }
        .btn-c{
            background-color: #3a78ff;
            color: #fff;
        }
    }
    .list{
        width: 100%;
        .card-detail{
            width: 100%;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            line-height: 120%;
            .detail{
                // width: 50%;
                font-size: 26rpx;
                margin-bottom: 12rpx;
                color: #555;
                margin-right: 20rpx;
                text{
                    color: #999;
                    font-size: 26rpx;
                }
            }
        }
        .more{
            color: #888;
            font-size: 24rpx;
            display: flex;
            border-top: 1px solid #eee;
            padding-top: 20rpx;
            .part{
                width: 50%;
                text-align: center;
            }
        }
        .op{
            display: flex;
            justify-content: space-around;
            margin-top: 20rpx;
            button{
                padding: 0;
                width: 150rpx;
                font-size: 25rpx;
            }
            .op1{
                border: 1px solid #41a863;
                color: #41a863;
            }
            .op2{
                border: 1px solid #d98d00;
                color: #d98d00;
            }
            .op3{
                border: 1px solid #3a78ff;
                color: #3a78ff;
            }
            .op4{
                border: 1px solid #da0000;
                color: #da0000;
            }
            .op5{
                border: 1px solid #888;
                color: #888;
            }
        }
    }
</style>
pages/index/login.vue
@@ -45,28 +45,17 @@
                    <view class="apibtn" @tap="changeApi=true">修改服务器地址</view> -->
                </view>
            </view>
            <!-- <hFormAlert v-if="changeApi" placeholder="请输入服务器地址" @confirm="confirm" @cancel="cancel"></hFormAlert> -->
            <uni-popup ref="popup" type="center">
                <uni-popup-dialog title="服务器设置" mode="input" @confirm="confirmHandler">
                    <view class="popup-content">
                        <picker class="pop-item" :range="arrayServerOrganization" :value="serverOrganization"
                            @change="serverOrganizationChange">
                            <view class="right" style="display: flex;align-items: center;">
                                <input type="text" disabled v-model="serverOrganization" placeholder="请选择当前组织">
                                <uni-icons type="forward" color="#808080"
                                    style="border-left: 1px solid #aaaaaa;padding: 0 8rpx;" size="18"></uni-icons>
                            </view>
                        </picker>
                        <view class="pop-item">
                            <input type="text" :value="serverUrlCache" placeholder="请输入服务器地址" />
                        </view>
                    </view>
                </uni-popup-dialog>
            </uni-popup>
            <uni-popup ref="popup" type="center">
                <uni-popup-dialog title="服务器设置" mode="input" @confirm="confirmHandler" :before-close="true" @close="close">
                    <view class="popup-content">
                        <input type="text" v-model="serverUrlName" placeholder="请输入服务器名称">
                    </view>
                </uni-popup-dialog>
            </uni-popup>
            <view class="btn" @tap="submit">登 录</view>
            <!-- <view class="btn apibtn" @tap="changeApi=true">服务器设置</view> -->
            <view class="btn apibtn" @click="openServerSettingHandler">服务器设置</view>
            <view class="btn apibtn" @click="openServerSettingHandler">服务器设置</view>
        </view>
    </view>
</template>
@@ -89,13 +78,10 @@
                CommonUtils,
                arrayDataBases: [],
                DataBases: '',
                arrayServerOrganization: ["浙江智云迈思", "温州海诚"],
                arrayServerOrganizationValues: [
                    'http://47.96.97.237/API/',
                    'http://122.228.39.234:7177/API/'
                ],
                serverOrganization: '',
                serverUrlandName:{"浙江智云迈思":'http://47.96.97.237/API/',"温州海诚光学":'http://122.228.39.234:7177/API/',"宁波惠康工业":'http://172.16.72.30:6699/API/'},
                serverUrlName:'浙江智云迈思',
                arrayOrganization: [],
                Organization: '',
                HOrgNameList: [],
@@ -103,7 +89,6 @@
                HOrgName: '',
                UserName: '', //admin    001
                PassWord: '', //123456
                changeApi: false,
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                serverUrlCache: '',
            }
@@ -118,16 +103,6 @@
                this.UserName = logindata.UserName
                this.PassWord = logindata.PassWord
            }
            this.serverUrlCache = this.serverUrl
            console.log('this.serverUrlCache: ', this.serverUrlCache);
            let index = this.arrayServerOrganizationValues.findIndex((e) => {
                return e == this.serverUrlCache
            })
            if (index == -1) {
                index = 0
            }
            this.serverOrganization = this.arrayServerOrganization[index]
            this.getOrganization()
            this.getDataBases()
        },
@@ -147,22 +122,26 @@
                    }
                })
            },
            confirm(e) {
                console.log(e)
                uni.setStorageSync('serverUrl', e)
                this.serverUrl = e
                this.changeApi = false
                this.getOrganization()
            },
            confirmHandler() {
                uni.setStorageSync('serverUrl', this.serverUrlCache)
                this.serverUrl = this.serverUrlCache
                // this.changeApi = false
                this.getOrganization()
                console.log(this.serverUrlName)
                console.log(this.serverUrlandName[this.serverUrlName])
                let url = this.serverUrlandName[this.serverUrlName];
                if(url!=undefined){
                    uni.setStorageSync('serverUrl', url)
                    this.serverUrl = url
                    this.changeApi = false
                    this.getOrganization()
                    this.$refs.popup.close()
                }else{
                    uni.showToast({
                        title: '服务器名称错误请重新输入',
                        icon: 'none',
                    })
                }
            },
            cancel() {
                this.changeApi = false
            },
            close(){
                this.$refs.popup.close()
            },
            openServerSettingHandler() {
                this.$refs.popup.open()
            },
@@ -218,12 +197,6 @@
                // console.log(e.detail.value)
                this.Organization = this.arrayOrganization[e.detail.value]
                this.HOrgName = this.HOrgNameList[e.detail.value]
            },
            serverOrganizationChange(e) {
                // console.log(e.detail.value)
                let index = e.detail.value
                this.serverOrganization = this.arrayServerOrganization[index]
                this.serverUrlCache = this.arrayServerOrganizationValues[index]
            },
            submit() {
                if (!this.Organization) {