wtt
2026-01-26 034093edb928c798057262156a09531718aa0604
Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev

# Conflicts:
# pages/ZLGL/mojianjianyan/ProcessCheckBill.vue
2个文件已添加
14个文件已修改
11754 ■■■■■ 已修改文件
manifest.json 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/EmployeeRecords/EmployeeRecordsBill.vue 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/Sc_MouldRepairSendWork/Sc_MouldRepairSendWorkBill.vue 1444 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/mujudianjianjiludan/Sc_MouldDotCheckBill.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/awaitCheckBillList/awaitCheckBillList.vue 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/mojianjianyan/ProcessCheckBill.vue 4861 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/shoujianjianyan/firstCheckBill.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/xunjianjianyan/PatrolProcCheckBill.vue 4298 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/caigoudingdan/caigoudingdanList.vue 575 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/login.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/tab3.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/tab4.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchandiaobo/MoveStockBill.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json
@@ -2,8 +2,8 @@
    "name" : "智云LMES",
    "appid" : "__UNI__B002F49",
    "description" : "",
    "versionName" : "2.0.60",
    "versionCode" : 260,
    "versionName" : "2.0.61",
    "versionCode" : 261,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
@@ -82,11 +82,11 @@
                    "unipush" : {
                        "icons" : {
                            "small" : {
                                "ldpi" : "static/logo_icon.png",
                                "mdpi" : "static/logo_icon.png",
                                "hdpi" : "static/logo_icon.png",
                                "xhdpi" : "static/logo_icon.png",
                                "xxhdpi" : "static/logo_icon.png"
                                "hdpi" : "static/logo.png",
                                "ldpi" : "static/logo.png",
                                "mdpi" : "static/logo.png",
                                "xhdpi" : "static/logo.png",
                                "xxhdpi" : "static/logo.png"
                            }
                        }
                    }
pages.json
@@ -573,6 +573,12 @@
                "navigationBarTitleText": "条码生成"
            }
        },
        {
            "path": "pages/caigoudingdan/caigoudingdanList",
            "style": {
                "navigationBarTitleText": "采购订单列表"
            }
        },
        {
            "path": "pages/caigoudingdan/caigoudingdan",
            "style": {
@@ -1676,11 +1682,12 @@
            "style": {
                "navigationBarTitleText": "设备维修记录单列表"
            }
        },
  },
        {
            "path": "pages/tiaomachaima/tiaomachaimaCopy",
            "style": {
                "navigationBarTitleText": "条码拆码3"
            "path" : "pages/ZLGL/awaitCheckBillList/awaitCheckBillList",
            "style" :
            {
                "navigationBarTitleText" : "待检验列表"
            }
        }
pages/EmployeeRecords/EmployeeRecordsBill.vue
@@ -84,12 +84,47 @@
            <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">制单信息</view>
        </view>
        <!-- 装箱信息 -->
        <view v-if="tabs == 1">
            <zb-table id="list-table" :checked-highlight="true" :fit="true" :style="{height: `${listTableHeight}px`}"
                :columns="columns" :data="listData" :show-header="true" :border="true" :row-key="row => row.index"
                @toggleRowSelection="handleSelect" @toggleAllSelection="handleSelectAll"
                @rowClick="onTableRowClickHandler" />
        </view>
        <view v-if="tabs == 1" class="work-order-cards">
                    <view v-for="(item, index) in listData" :key="item.index" class="work-order-card">
                        <view class="card-header">
                            <text class="card-title">工单信息 {{ index + 1 }}</text>
                            <checkbox :checked="item.checked" style="transform:scale(0.8)" color="#3A78FF"
                                @change="onCardCheckChange(item, index)" />
                        </view>
                        <view class="card-content">
                            <view class="card-row">
                                <text class="card-label">流转卡号:</text>
                                <text class="card-value">{{ item['流转卡号'] || '-' }}</text>
                            </view>
                            <view class="card-row">
                                <text class="card-label">物料代码:</text>
                                <text class="card-value">{{ item['物料代码'] || '-' }}</text>
                            </view>
                            <view class="card-row">
                                <text class="card-label">物料名称:</text>
                                <text class="card-value">{{ item['物料名称'] || '-' }}</text>
                            </view>
                            <view class="card-row">
                                <text class="card-label">规格型号:</text>
                                <text class="card-value">{{ item['规格型号'] || '-' }}</text>
                            </view>
                            <view class="card-row">
                                <text class="card-label">数量:</text>
                                <text class="card-value">{{ item['数量'] || '0' }}</text>
                            </view>
                            <view class="card-row">
                                <text class="card-label">生产资源:</text>
                                <text class="card-value">{{ item['生产资源'] || '-' }}</text>
                            </view>
                        </view>
                    </view>
                    <view v-if="listData.length === 0" class="empty-card">
                        <uni-icons type="info" size="30" color="#999"></uni-icons>
                        <text class="empty-text">暂无工单信息</text>
                        <text class="empty-tip">请先扫描条码获取工单信息</text>
                    </view>
                </view>
        <view v-if="tabs == 0" class="machine-info-container">
            <view class="form-item" v-if="false">
                <view class="title">设备ID:</view>
@@ -282,7 +317,8 @@
                arrayHProcName: [], //工序
                HProcNameList: [],
                
                maskShow:false,
                printInfo:false,
                EnableScanBarCodePack: true,
                EnableSubmit: true,
                HBarCodePackFocus: false,
@@ -434,6 +470,18 @@
            }
        },
        methods: {
            onCardCheckChange(item, index) {
                            item.checked = !item.checked;
                            if (item.checked) {
                                this.selectedRows.push(item);
                            } else {
                                const idx = this.selectedRows.findIndex(row => row.index === item.index);
                                if (idx > -1) {
                                    this.selectedRows.splice(idx, 1);
                                }
                            }
                            console.log('当前选中的行:', this.selectedRows);
                        },
            onTableRowClickHandler(row, index) {
                console.log('row: ', row);
                if (!this.listData[index].checked) {
@@ -760,7 +808,6 @@
                })
            },
            GetMeesageByBarCode(HBarCode) {
                let sBarCode = this.HBarCode
                if (!sBarCode) {
                    return uni.showToast({
@@ -790,6 +837,7 @@
                            this.hform.HMouldNo = data[0][0].模具编码
                            this.hform.HMouldName = data[0][0].模具名称
                            this.hform.HMouldState = data[0][0].模具状态
                            this.listData = []
                            let tabledata = data[1][0]
                            if (data[1].length > 0) {
@@ -802,11 +850,23 @@
                                    }))
                                }
                            }
                            if(data[0][0].模具id===0 && data[0][0].模具编码===""&& data[0][0].模具名称===""&&data[1].length<=0)
                            {
                                CommonUtils.playSound(0)
                                this.listData = []
                                this.HBarCodeFocusRefresh()
                                uni.showToast({
                                    icon: 'none',
                                    title: Message
                                })
                                return;
                            }
                        } else {
                            CommonUtils.playSound(0)
                            this.listData = []
                            this.HBarCodeFocusRefresh()
                            uni.showToast({
                                icon: 'none',
@@ -1493,4 +1553,88 @@
            }
        }
    }
    .work-order-cards {
            padding: 30rpx;
            display: flex;
            flex-direction: column;
            gap: 20rpx;
            .work-order-card {
                background: #fff;
                border-radius: 16rpx;
                padding: 24rpx;
                box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);
                border: 1px solid #e8e8e8;
                .card-header {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    padding-bottom: 20rpx;
                    border-bottom: 1px solid #f0f0f0;
                    margin-bottom: 20rpx;
                    .card-title {
                        font-size: 32rpx;
                        font-weight: bold;
                        color: #333;
                    }
                }
                .card-content {
                    .card-row {
                        display: flex;
                        align-items: center;
                        padding: 12rpx 0;
                        border-bottom: 1px dashed #f5f5f5;
                        &:last-child {
                            border-bottom: none;
                        }
                        .card-label {
                            width: 160rpx;
                            font-size: 28rpx;
                            color: #666;
                            flex-shrink: 0;
                        }
                        .card-value {
                            flex: 1;
                            font-size: 28rpx;
                            color: #333;
                            word-break: break-all;
                        }
                    }
                }
                &:hover {
                    box-shadow: 0 4rpx 16rpx rgba(58, 120, 255, 0.15);
                    border-color: #3a78ff;
                }
            }
            .empty-card {
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                padding: 80rpx 30rpx;
                background: #f8f9fa;
                border-radius: 16rpx;
                border: 2rpx dashed #dcdfe6;
                .empty-text {
                    font-size: 30rpx;
                    color: #999;
                    margin-top: 20rpx;
                    margin-bottom: 10rpx;
                }
                .empty-tip {
                    font-size: 26rpx;
                    color: #ccc;
                }
            }
        }
</style>
pages/MJGL/Sc_MouldRepairSendWork/Sc_MouldRepairSendWorkBill.vue
@@ -1,47 +1,47 @@
<template>
    <view>
        <view class="tabs" id="tabs">
            <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">基本信息</view>
            <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">其他信息</view>
            <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">制单信息</view>
            <!-- <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">附件信息</view> -->
        </view>
        <!-- 基本信息 -->
        <template v-if="tabs == 0">
            <view class="form" :style="{
    <view>
        <view class="tabs" id="tabs">
            <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">基本信息</view>
            <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">其他信息</view>
            <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">制单信息</view>
            <!-- <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">附件信息</view> -->
        </view>
        <!-- 基本信息 -->
        <template v-if="tabs == 0">
            <view class="form" :style="{
                height: containerHeight + 'px',
                overflow: 'auto'
            }">
                <!-- 原内容保持不变 -->
                <view class="form-item">
                    <view class="title">器具条码:</view>
                    <view :class="enableEdit?'right':'righton'">
                        <input v-model="hform.HBarCode" :disabled="!enableEdit"
                            @confirm="GetMessageByBarCode(hform.HBarCode)" placeholder="请输入(或扫描)器具条码" />
                    </view>
                    <view class="icon-wrapper">
                        <uni-icons type="scan" size="20" @click="toScanCode"></uni-icons>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修开始日期:</view>
                    <view class="right">
                        <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HRepairBeginDate">
                            <input :value="hform.HRepairBeginDate" />
                        </uni-datetime-picker>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修结束日期:</view>
                    <view class="right">
                        <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HRepairEndDate">
                            <input :value="hform.HRepairEndDate" />
                        </uni-datetime-picker>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">器具条码:</view>
                    <view :class="enableEdit?'right':'righton'">
                        <input v-model="hform.HBarCode" :disabled="!enableEdit"
                            @confirm="GetMessageByBarCode(hform.HBarCode)" placeholder="请输入(或扫描)器具条码" />
                    </view>
                    <view class="icon-wrapper">
                        <uni-icons type="scan" size="20" @click="toScanCode"></uni-icons>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修开始日期:</view>
                    <view class="right">
                        <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HRepairBeginDate">
                            <input :value="hform.HRepairBeginDate" />
                        </uni-datetime-picker>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修结束日期:</view>
                    <view class="right">
                        <uni-datetime-picker type="date" :clear-icon="false" v-model="hform.HRepairEndDate">
                            <input :value="hform.HRepairEndDate" />
                        </uni-datetime-picker>
                    </view>
                </view>
                <!-- 新增源单类型和故障登记单选择 -->
                <view class="form-item">
                <view class="form-item">
                    <view class="title">源单类型</view>
                    <view class="right" v-show="showHMainSourceBillType">
                        <picker :range="arrayHMainSourceBillType" @change="HMainSourceBillTypeChange">
@@ -50,93 +50,93 @@
                                placeholder="请选择源单类型" />
                            <view class="picker-overlay"></view>
                        </picker>
                    </view>
                    </view>
                    <view class="righton" v-show="!showHMainSourceBillType">
                        <input name="HMainSourceBillType" disabled v-model="HMainSourceBillType"
                            placeholder="请选择源单类型" />
                    </view>
                </view>
                </view>
                <view class="form-item">
                <view class="form-item">
                    <view class="title required">故障登记单</view>
                    <view class="right" v-show="hform.HMainSourceBillType != 1">
                        <input type="text" name="HBarCode" v-model="hform.HMainSourceBillNo" />
                    </view>
                    </view>
                    <view class="icon-wrapper" v-show="hform.HMainSourceBillType != 1"
                        :disabled="hform.HMainSourceBillType == -1">
                        <uni-icons type="search" size="20" @click="showBillList"></uni-icons>
                    </view>
                </view>
                    <view class="righton" v-show="hform.HMainSourceBillType == 1">
                        <input type="text" disabled name="HBarCode" v-model="hform.HMainSourceBillNo" />
                    </view>
                </view>
                </view>
                <view class="form-item">
                <view class="form-item">
                    <view class="title">单据号:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HBillNo" />
                    </view>
                </view>
                <view class="form-item">
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">单据日期:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HDate" />
                    </view>
                </view>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title required">维修部门:</view>
                    <zxz-uni-data-select required class="right" :localdata="HDeptList" dataKey="部门名称"
                        dataValue="HItemID" v-model="hform.HDeptID">
                <view class="form-item">
                    <view class="title required">维修部门:</view>
                    <zxz-uni-data-select required class="right" :localdata="HDeptList" dataKey="部门名称"
                        dataValue="HItemID" v-model="hform.HDeptID">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title required">维修人:</view>
                    <zxz-uni-data-select required class="right" :localdata="HEmpList" dataKey="HName"
                        dataValue="HItemID" v-model="hform.HEmpID">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title required">维修人:</view>
                    <zxz-uni-data-select required class="right" :localdata="HEmpList" dataKey="HName"
                        dataValue="HItemID" v-model="hform.HEmpID">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title required">维修项目:</view>
                    <zxz-uni-data-select required class="right" :localdata="HRepairList" dataKey="维修项目"
                        dataValue="hitemid" v-model="hform.HRepairID">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title required">维修项目:</view>
                    <zxz-uni-data-select required class="right" :localdata="HRepairList" dataKey="维修项目"
                        dataValue="hitemid" v-model="hform.HRepairID">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title required">主管:</view>
                    <zxz-uni-data-select required class="right" :localdata="HEmpList" dataKey="HName"
                        dataValue="HItemID" v-model="hform.HManagerID">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title required">主管:</view>
                    <zxz-uni-data-select required class="right" :localdata="HEmpList" dataKey="HName"
                        dataValue="HItemID" v-model="hform.HManagerID">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title">器具名称:</view>
                    <view class="righton">
                        <input v-model="hform.HMouldName" disabled />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">器具规格:</view>
                    <view class="righton">
                        <input v-model="hform.HMouldModel" disabled />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">器具型号:</view>
                    <view class="righton">
                        <input v-model="hform.HMouldSpec" disabled />
                    </view>
                </view>
            </view>
        </template>
        <!-- 其他信息(非重要信息) -->
        <template v-if="tabs == 1">
            <view class="form" :style="{
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title">器具名称:</view>
                    <view class="righton">
                        <input v-model="hform.HMouldName" disabled />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">器具规格:</view>
                    <view class="righton">
                        <input v-model="hform.HMouldModel" disabled />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">器具型号:</view>
                    <view class="righton">
                        <input v-model="hform.HMouldSpec" disabled />
                    </view>
                </view>
            </view>
        </template>
        <!-- 其他信息(非重要信息) -->
        <template v-if="tabs == 1">
            <view class="form" :style="{
                height: containerHeight + 'px',
                overflow: 'auto'
            }">
                <view class="form-item">
                <view class="form-item">
                    <view class="title">时间单位:</view>
                    <zxz-uni-data-select class="right" :localdata="[
                                   {key: '小时', value: '小时'},
@@ -158,249 +158,249 @@
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">供应商:</view>
                    <view class="right">
                        <input v-model="hform.HSupID" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修类型:</view>
                    <zxz-uni-data-select class="right" :localdata="[
                                       {key: '内部维修', value: '内部维修'},
                                       {key: '外部维修', value: '外部维修'},
                                   ]" dataKey="key" dataValue="value" v-model="hform.HRepairType">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title">维修后新规格:</view>
                    <view class="right">
                        <input type="number" v-model="hform.HNewModel" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">新设计寿命:</view>
                    <view class="right">
                        <input type="number" v-model="hform.HNewDesignLife" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">设备:</view>
                    <view class="right">
                        <input v-model="hform.HEquipID" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修费用:</view>
                    <view class="right">
                        <input type="number" v-model="HDetailList[0].HMoney" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修内容:</view>
                    <view class="right">
                        <textarea v-model="hform.HRepairContent" placeholder="请输入维修内容" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修要求:</view>
                    <view class="right">
                        <textarea v-model="hform.HExplanation" placeholder="请输入维修要求" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">备注:</view>
                    <view class="right">
                        <textarea v-model="hform.HRemark" placeholder="请输入备注" />
                    </view>
                </view>
            </view>
        </template>
        <!-- 制单信息  -->
        <template v-if="tabs == 2">
            <view class="form" :style="{
                               height: containerHeight + 'px',
                               overflow: 'auto'
                           }">
                <view class="form-item">
                    <view class="title">创建人:</view>
                    <view class="righton">
                        <input v-model="hform.HMaker" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">创建日期:</view>
                    <view class="righton">
                        <input v-model="hform.HMakeDate" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">修改人:</view>
                    <view class="righton">
                        <input v-model="hform.HUpDater" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">修改日期:</view>
                    <view class="righton">
                        <input v-model="hform.HUpDateDate" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">审核人:</view>
                    <view class="righton">
                        <input v-model="hform.HChecker" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">审核时间:</view>
                    <view class="righton">
                        <input v-model="hform.HCheckDate" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">作废人:</view>
                    <view class="righton">
                        <input v-model="hform.HDeleteMan" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">作废日期:</view>
                    <view class="righton">
                        <input v-model="hform.HDeleteDate" />
                    </view>
                </view>
            </view>
                    <view class="title">供应商:</view>
                    <view class="right">
                        <input v-model="hform.HSupID" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修类型:</view>
                    <zxz-uni-data-select class="right" :localdata="[
                        {key: '内部维修', value: '内部维修'},
                        {key: '外部维修', value: '外部维修'},
                    ]" dataKey="key" dataValue="value" v-model="hform.HRepairType">
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title">维修后新规格:</view>
                    <view class="right">
                        <input type="number" v-model="hform.HNewModel" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">新设计寿命:</view>
                    <view class="right">
                        <input type="number" v-model="hform.HNewDesignLife" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">设备:</view>
                    <view class="right">
                        <input v-model="hform.HEquipID" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修费用:</view>
                    <view class="right">
                        <input type="number" v-model="HDetailList[0].HMoney" placeholder="" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修内容:</view>
                    <view class="right">
                        <textarea v-model="hform.HRepairContent" placeholder="请输入维修内容" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修要求:</view>
                    <view class="right">
                        <textarea v-model="hform.HExplanation" placeholder="请输入维修要求" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">备注:</view>
                    <view class="right">
                        <textarea v-model="hform.HRemark" placeholder="请输入备注" />
                    </view>
                </view>
            </view>
        </template>
        <!-- 制单信息  -->
        <template v-if="tabs == 2">
            <view class="form" :style="{
                height: containerHeight + 'px',
                overflow: 'auto'
            }">
                <view class="form-item">
                    <view class="title">创建人:</view>
                    <view class="righton">
                        <input v-model="hform.HMaker" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">创建日期:</view>
                    <view class="righton">
                        <input v-model="hform.HMakeDate" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">修改人:</view>
                    <view class="righton">
                        <input v-model="hform.HUpDater" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">修改日期:</view>
                    <view class="righton">
                        <input v-model="hform.HUpDateDate" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">审核人:</view>
                    <view class="righton">
                        <input v-model="hform.HChecker" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">审核时间:</view>
                    <view class="righton">
                        <input v-model="hform.HCheckDate" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">作废人:</view>
                    <view class="righton">
                        <input v-model="hform.HDeleteMan" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">作废日期:</view>
                    <view class="righton">
                        <input v-model="hform.HDeleteDate" />
                    </view>
                </view>
            </view>
        </template>
        <!-- 操作按钮 -->
        <view class="buttons" id="buttons">
            <button class="btn-a" size="mini" @tap="submit">提交</button>
            <view style="flex: 1;"></view>
            <button class="btn-a" size="mini" @tap="addNew">新增</button>
            <button class="btn-c" size="mini" @tap="goBack">退出</button>
        </view>
        <!-- 操作按钮 -->
        <view class="buttons" id="buttons">
            <button class="btn-a" size="mini" @tap="submit">提交</button>
            <view style="flex: 1;"></view>
            <button class="btn-a" size="mini" @tap="addNew">新增</button>
            <button class="btn-c" size="mini" @tap="goBack">退出</button>
        </view>
        <!-- 新增弹窗组件 -->
        <BillListPopupMouldConkBookBillVue ref="billList" :HBillType="hform.HBillType"
            :HSourceBillType="hform.HMainSourceBillType" :HStockOrgID="hform.HStockOrgID">
        </BillListPopupMouldConkBookBillVue>
    </view>
    </view>
</template>
<script>
    import dayjs from "dayjs";
    import {
        CommonUtils
    } from "@/utils/common";
    import {
        MpaasScan
    } from "@/utils/mpaasScan.js"
    import {
        getUserInfo
    } from "../../../utils/auth";
    import dayjs from "dayjs";
    import {
        CommonUtils
    } from "@/utils/common";
    import {
        MpaasScan
    } from "@/utils/mpaasScan.js"
    import {
        getUserInfo
    } from "../../../utils/auth";
    // 新增引入组件
    import BillListPopupMouldConkBookBillVue from '../../../components/BillListPopup/BillListPopupMouldConkBookBill.vue';
    export default {
        // 器具维修派工单
        name: 'Sc_MouldRepairSendWorkBill',
    export default {
        // 器具维修派工单
        name: 'Sc_MouldRepairSendWorkBill',
        components: {
            BillListPopupMouldConkBookBillVue,
        },
        data() {
            return {
                tabs: 0,
        data() {
            return {
                tabs: 0,
                HMainSourceBillType: '模具故障登记单', // 新增
                showHMainSourceBillType: true, // 新增
                arrayHMainSourceBillType: ['模具故障登记单'], // 新增
                arrayHMainSourceBillTypeID: ['3815'], // 新增
                btnTop: 0,
                tabsBottom: 0,
                HModName: "Sc_MouldRepairSendWorkBill",
                HBillType: '3843',
                operationType: 1,
                uploadOptions: {},
                enableEdit: true,
                btnTop: 0,
                tabsBottom: 0,
                HModName: "Sc_MouldRepairSendWorkBill",
                HBillType: '3843',
                operationType: 1,
                uploadOptions: {},
                enableEdit: true,
                HDeptList: [],
                HRepairCheckList: [],
                HEmpList: [],
                HRepairList: [],
                HDeptList: [],
                HRepairCheckList: [],
                HEmpList: [],
                HRepairList: [],
                hform: {
                    "HBarCode": "",
                    "HBillNo": "",
                    "HInterID": "0",
                    "HDate": dayjs(new Date()).format('YYYY-MM-DD'),
                    "HInnerBillNo": "",
                    "MouldHNumber": "",
                    "HMouldID": "0",
                    "HRepairIDName": "",
                    "HRepairID": "0",
                    "HCycleUnit": "小时",
                    "MouldHName": "",
                    "MouldHModel": "",
                    "HDeptName": getUserInfo()["HDeptName"],
                    "HDeptID": getUserInfo()["HDeptID"],
                    "HEmpName": getUserInfo().HEmpName,
                    "HEmpID": getUserInfo().HEmpID,
                    "HManagerName": getUserInfo().HSecManager,
                    "HManagerID": getUserInfo().HSecManagerID,
                    "HRepairBeginDate": dayjs(new Date()).format('YYYY-MM-DD'),
                hform: {
                    "HBarCode": "",
                    "HBillNo": "",
                    "HInterID": "0",
                    "HDate": dayjs(new Date()).format('YYYY-MM-DD'),
                    "HInnerBillNo": "",
                    "MouldHNumber": "",
                    "HMouldID": "0",
                    "HRepairIDName": "",
                    "HRepairID": "0",
                    "HCycleUnit": "小时",
                    "MouldHName": "",
                    "MouldHModel": "",
                    "HDeptName": getUserInfo()["HDeptName"],
                    "HDeptID": getUserInfo()["HDeptID"],
                    "HEmpName": getUserInfo().HEmpName,
                    "HEmpID": getUserInfo().HEmpID,
                    "HManagerName": getUserInfo().HSecManager,
                    "HManagerID": getUserInfo().HSecManagerID,
                    "HRepairBeginDate": dayjs(new Date()).format('YYYY-MM-DD'),
                    "HMainSourceBillType": 3815, // 新增:默认模具故障登记单
                    "HMainSourceInterID": "0", // 新增
                    "HMainSourceEntryID": "0", // 新增
                    "HPlanTimes": "0",
                    "HTimes": "0",
                    "HRepairEndDate": dayjs(new Date()).format('YYYY-MM-DD'),
                    "HPlanTimes": "0",
                    "HTimes": "0",
                    "HRepairEndDate": dayjs(new Date()).format('YYYY-MM-DD'),
                    "HMainSourceBillNo": "", // 新增
                    "HSupIDName": "",
                    "HSupID": "0",
                    "HRepairType": "内部维修",
                    "HNewModel": "0",
                    "HOrgID": "",
                    "HNewDesignLife": "0",
                    "HEquipIDName": "",
                    "HEquipID": "0",
                    "HRepairContent": "",
                    "HExplanation": "",
                    "HRemark": "",
                    "HMaker": getUserInfo()["Czymc"],
                    "HChecker": "",
                    "HCloseMan": "",
                    "HUpDater": "",
                    "HMakeDate": dayjs(new Date()).format('YYYY-MM-DD'),
                    "HCheckDate": "",
                    "HCloseDate": "",
                    "HUpDateDate": "",
                    "HDeleteMan": "",
                    "HDeleteDate": "",
                    HMouldName: "",
                    HMouldSpec: "",
                    HMouldModel: "",
                    "HSupIDName": "",
                    "HSupID": "0",
                    "HRepairType": "内部维修",
                    "HNewModel": "0",
                    "HOrgID": "",
                    "HNewDesignLife": "0",
                    "HEquipIDName": "",
                    "HEquipID": "0",
                    "HRepairContent": "",
                    "HExplanation": "",
                    "HRemark": "",
                    "HMaker": getUserInfo()["Czymc"],
                    "HChecker": "",
                    "HCloseMan": "",
                    "HUpDater": "",
                    "HMakeDate": dayjs(new Date()).format('YYYY-MM-DD'),
                    "HCheckDate": "",
                    "HCloseDate": "",
                    "HUpDateDate": "",
                    "HDeleteMan": "",
                    "HDeleteDate": "",
                    HMouldName: "",
                    HMouldSpec: "",
                    HMouldModel: "",
                    "HStockOrgID": uni.getStorageSync("OrganizationID") || "0" // 新增
                },
                HDetailList: [{ // 后端接口提交需要 明细信息
                    "子维修项目": "",
                    "HRepairID": 0,
                    "子维修项目代码": "",
                    "HRepairExplanation": "",
                    "子负责人代码": "",
                    "HManagerID": "",
                    "子负责人": "",
                    "HMoney": 0,
                    "HRemark": ""
                }]
            };
        },
        computed: {
            containerHeight: {
                get() {
                    return this.btnTop - this.tabsBottom - 5
                }
            },
        },
        methods: {
                },
                HDetailList: [{ // 后端接口提交需要 明细信息
                    "子维修项目": "",
                    "HRepairID": 0,
                    "子维修项目代码": "",
                    "HRepairExplanation": "",
                    "子负责人代码": "",
                    "HManagerID": "",
                    "子负责人": "",
                    "HMoney": 0,
                    "HRemark": ""
                }]
            };
        },
        computed: {
            containerHeight: {
                get() {
                    return this.btnTop - this.tabsBottom - 5
                }
            },
        },
        methods: {
            // 新增:选择源单类型
            HMainSourceBillTypeChange(e) {
                if (e.detail.value == -1 || e.detail.value == NaN) {
@@ -438,43 +438,43 @@
                }
            },
            // 维修项目
            async getRepairList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_Repair/GetRepairList',
                        data: {
                            sWhere: '',
                            user: getUserInfo()["Czymc"]
                        }
                    })
            // 维修项目
            async getRepairList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_Repair/GetRepairList',
                        data: {
                            sWhere: '',
                            user: getUserInfo()["Czymc"]
                        }
                    })
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        this.HRepairList = data
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: `获取检验项目失败: ${Message}`
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: `获取检验项目失败: ${err}`
                    })
                }
            },
            // 删除明细
            delDetail(item) {
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        this.HRepairList = data
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: `获取检验项目失败: ${Message}`
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: `获取检验项目失败: ${err}`
                    })
                }
            },
            // 删除明细
            delDetail(item) {
            },
            // 提交数据有效性校验
            ValidCheck() {
            },
            // 提交数据有效性校验
            ValidCheck() {
                // 新增:检查故障登记单
                if (this.hform.HMainSourceBillType != 1 && !this.hform.HMainSourceBillNo) {
                    return {
@@ -483,391 +483,391 @@
                    }
                }
                if (this.hform.HMouldID == 0) {
                    return {
                        Message: "未录入器具信息,请先录入器具信息!",
                        state: false
                    }
                }
                if (this.hform.HDeptID == 0) {
                    return {
                        Message: "部门不得为空!",
                        state: false
                    }
                }
                if (this.hform.HEmpID == 0) {
                    return {
                if (this.hform.HMouldID == 0) {
                    return {
                        Message: "未录入器具信息,请先录入器具信息!",
                        state: false
                    }
                }
                if (this.hform.HDeptID == 0) {
                    return {
                        Message: "部门不得为空!",
                        state: false
                    }
                }
                if (this.hform.HEmpID == 0) {
                    return {
                        Message: "维修人不得为空!",
                        state: false
                    }
                }
                        state: false
                    }
                }
                if (this.hform.HRepairID == 0) {
                    return {
                    return {
                        Message: "维修项目不得为空!",
                        state: false
                    }
                }
                if (this.hform.HManagerID == 0) {
                    return {
                        state: false
                    }
                }
                if (this.hform.HManagerID == 0) {
                    return {
                        Message: "主管不得为空!",
                        state: false
                    }
                }
                if (this.hform.HPlanTimes == '') {
                    return {
                        Message: "计划维修工时不得为空!",
                        state: false
                    }
                }
                if (this.hform.HTimes == '') {
                    return {
                        Message: "实际维修工时不得为空!",
                        state: false
                    }
                }
                        state: false
                    }
                }
                if (this.hform.HPlanTimes == '') {
                    return {
                        Message: "计划维修工时不得为空!",
                        state: false
                    }
                }
                if (this.hform.HTimes == '') {
                    return {
                        Message: "实际维修工时不得为空!",
                        state: false
                    }
                }
                return {
                    Message: "",
                    state: true
                }
            },
            addNew() {
                uni.redirectTo({
                    url: './Sc_MouldRepairSendWorkBill?operationType=1'
                })
            },
            goBack() {
                uni.navigateBack()
            },
            checkBoxChangeHandler(index, e) {
                let cr = e.detail.value
                if (cr.length == 0) {
                    this.HCheckFileList[index]["HDotCheckResult"] = false
                } else {
                    this.HCheckFileList[index]["HDotCheckResult"] = true
                }
            },
            //获取使用部门数据
            async getHDeptList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_Department/list',
                        data: {
                            sWhere: ` and HUSEORGID = ${uni.getStorageSync('OrganizationID')}`,
                            user: uni.getStorageSync('HUserName'),
                            Organization: uni.getStorageSync('Organization')
                        }
                    })
                return {
                    Message: "",
                    state: true
                }
            },
            addNew() {
                uni.redirectTo({
                    url: './Sc_MouldRepairSendWorkBill?operationType=1'
                })
            },
            goBack() {
                uni.navigateBack()
            },
            checkBoxChangeHandler(index, e) {
                let cr = e.detail.value
                if (cr.length == 0) {
                    this.HCheckFileList[index]["HDotCheckResult"] = false
                } else {
                    this.HCheckFileList[index]["HDotCheckResult"] = true
                }
            },
            //获取使用部门数据
            async getHDeptList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_Department/list',
                        data: {
                            sWhere: ` and HUSEORGID = ${uni.getStorageSync('OrganizationID')}`,
                            user: uni.getStorageSync('HUserName'),
                            Organization: uni.getStorageSync('Organization')
                        }
                    })
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        this.HDeptList = data
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: Message
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: err
                    })
                }
            },
            // 获取职员数据
            async getEmpList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/PublicPageMethod/UserList',
                        data: {
                            sWhere: " where 1=1",
                        }
                    })
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        this.HDeptList = data
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: Message
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: err
                    })
                }
            },
            // 获取职员数据
            async getEmpList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/PublicPageMethod/UserList',
                        data: {
                            sWhere: " where 1=1",
                        }
                    })
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        this.HEmpList = data
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: Message
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: err
                    })
                }
            },
            // 获取验证项目数据
            async getCheckProjList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_RepairCheck/GetRepairCheckList',
                        data: {
                            sWhere: "",
                            user: uni.getStorageSync('HUserName'),
                        }
                    })
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        this.HEmpList = data
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: Message
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: err
                    })
                }
            },
            // 获取验证项目数据
            async getCheckProjList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_RepairCheck/GetRepairCheckList',
                        data: {
                            sWhere: "",
                            user: uni.getStorageSync('HUserName'),
                        }
                    })
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        this.HRepairCheckList = data
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: Message
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: err
                    })
                }
            },
            toScanCode() {
                MpaasScan.scanCode(cb => {
                    this.hform.HBarCode = cb
                    this.GetMessageByBarCode(cb)
                })
            },
            async GetMessageByBarCode(HBarCode) {
                try {
                    let res = await CommonUtils.doRequest2Sync({
                        url: "/Sc_PDA_MouldRepairCheckBill/txtHBarCode_KeyDown_List",
                        data: {
                            HBarCode: HBarCode,
                        },
                    })
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        this.HRepairCheckList = data
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: Message
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: err
                    })
                }
            },
            toScanCode() {
                MpaasScan.scanCode(cb => {
                    // this.hform.HBarCode = cb
                    this.GetMessageByBarCode(cb)
                })
            },
            async GetMessageByBarCode(HBarCode) {
                try {
                    let res = await CommonUtils.doRequest2Sync({
                        url: "/Sc_PDA_MouldRepairCheckBill/txtHBarCode_KeyDown_List",
                        data: {
                            HBarCode: HBarCode,
                        },
                    })
                    if (!res) {
                        return
                    }
                    if (!res) {
                        return
                    }
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    let {
                        data,
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        console.log('data: ', data);
                        this.hform.HMouldID = data[0].hmainid
                        this.hform.HMouldName = data[0].模具名称
                        this.hform.HMouldSpec = data[0].模具品类
                        this.hform.HMouldModel = data[0].模具型号
                        this.hform.HQty = 1
                    if (count == 1) {
                        console.log('data: ', data);
                        this.hform.HMouldID = data[0].hmainid
                        this.hform.HMouldName = data[0].模具名称
                        this.hform.HMouldSpec = data[0].模具品类
                        this.hform.HMouldModel = data[0].模具型号
                        this.hform.HQty = 1
                        this.enableEdit = false
                    } else {
                        CommonUtils.showTips({
                            title: "温馨提示",
                            message: Message
                        })
                    }
                        this.enableEdit = false
                    } else {
                        CommonUtils.showTips({
                            title: "温馨提示",
                            message: Message
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: "温馨提示",
                        message: err
                    })
                }
            },
            async GetItemByEquipFile() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: "/Web/GetItemByEquipFile",
                        data: {
                            "EquipProjectID": this.hform.HEquipID,
                            "Type": "DJ",
                            "HDate": this.hform.HBeginDate
                        }
                    })
                } catch (err) {
                    CommonUtils.showTips({
                        title: "温馨提示",
                        message: err
                    })
                }
            },
            async GetItemByEquipFile() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: "/Web/GetItemByEquipFile",
                        data: {
                            "EquipProjectID": this.hform.HEquipID,
                            "Type": "DJ",
                            "HDate": this.hform.HBeginDate
                        }
                    })
                    let {
                        data,
                        Message,
                        count
                    } = res.data
                    if (count == 1) {
                        this.hform.HEquipDotCheckRuleInterID = data[0].点检规程ID
                        this.hform.HEquipDotCheckRuleInterNo = data[0].点检规程单号
                        this.hform.HPlanNo = data[0].点检计划单
                        this.hform.HPlanInterID = (data[0].点检计划ID == null ? 0 : data[0].点检计划ID) == "" ? 0 : data[0]
                            .点检计划ID
                        this.hform.HPlanEntryID = (data[0].点检计划子ID == null ? 0 : data[0].点检计划子ID) == "" ? 0 : data[
                            0].点检计划子ID
                    let {
                        data,
                        Message,
                        count
                    } = res.data
                    if (count == 1) {
                        this.hform.HEquipDotCheckRuleInterID = data[0].点检规程ID
                        this.hform.HEquipDotCheckRuleInterNo = data[0].点检规程单号
                        this.hform.HPlanNo = data[0].点检计划单
                        this.hform.HPlanInterID = (data[0].点检计划ID == null ? 0 : data[0].点检计划ID) == "" ? 0 : data[0]
                            .点检计划ID
                        this.hform.HPlanEntryID = (data[0].点检计划子ID == null ? 0 : data[0].点检计划子ID) == "" ? 0 : data[
                            0].点检计划子ID
                        this.HCheckFileList = Array.from(data).map(item => {
                            return {
                                "HDotCheckItemID": item.HDotCheckItemID,
                                "HDotCheckCode": item.点检项目代码,
                                "HDotCheckItem": item.点检项目,
                                "HDotCheckPart": item.点检部位,
                                "HClaim": item.具体要求,
                                "HManagerID": item.负责人ID,
                                "HManagerCode": item.负责人代码,
                                "HManagerName": item.负责人名称,
                                "HSourceInterID": item.点检计划ID == null ? 0 : item.点检计划ID,
                                "HSourceEntryID": item.点检计划子ID == null ? 0 : item.点检计划子ID,
                                "HSourceBillNo": item.点检计划单,
                                "HDotCheckItemClassID": 0,
                                "HDotCheckItemClassName": "",
                                "HDotCheckItemMethodID": 0,
                                "HDotCheckItemMethodName": "",
                                "HDotCheckResult": item.默认结论 == 1 ? true : false
                            }
                        })
                        this.HCheckFileList = Array.from(data).map(item => {
                            return {
                                "HDotCheckItemID": item.HDotCheckItemID,
                                "HDotCheckCode": item.点检项目代码,
                                "HDotCheckItem": item.点检项目,
                                "HDotCheckPart": item.点检部位,
                                "HClaim": item.具体要求,
                                "HManagerID": item.负责人ID,
                                "HManagerCode": item.负责人代码,
                                "HManagerName": item.负责人名称,
                                "HSourceInterID": item.点检计划ID == null ? 0 : item.点检计划ID,
                                "HSourceEntryID": item.点检计划子ID == null ? 0 : item.点检计划子ID,
                                "HSourceBillNo": item.点检计划单,
                                "HDotCheckItemClassID": 0,
                                "HDotCheckItemClassName": "",
                                "HDotCheckItemMethodID": 0,
                                "HDotCheckItemMethodName": "",
                                "HDotCheckResult": item.默认结论 == 1 ? true : false
                            }
                        })
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: `获取点检规程错误: ${Message}`
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: `获取点检规程错误: ${err}`
                    })
                }
            },
            radioChange({
                detail: {
                    value
                }
            }) {
                this.hform.HCheckResult = value
            },
            async getMaxNum() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: "/Web/GetMAXNum",
                        data: {
                            "HBillType": this.HBillType
                        }
                    })
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: `获取点检规程错误: ${Message}`
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: `获取点检规程错误: ${err}`
                    })
                }
            },
            radioChange({
                detail: {
                    value
                }
            }) {
                this.hform.HCheckResult = value
            },
            async getMaxNum() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: "/Web/GetMAXNum",
                        data: {
                            "HBillType": this.HBillType
                        }
                    })
                    let {
                        count,
                        data,
                        Message
                    } = res.data
                    console.log('data: ', data);
                    this.hform.HInterID = data[0]["HInterID"]
                    this.hform.HBillNo = data[0]["HBillNo"]
                } catch (err) {
                    CommonUtils.showTips({
                        title: "温馨提示",
                        message: "获取单据信息异常: " + err
                    })
                }
            },
            async submit() {
                let valid = this.ValidCheck()
                if (!valid.state) {
                    CommonUtils.showTips({
                        message: valid.Message
                    })
                    return
                }
                    let {
                        count,
                        data,
                        Message
                    } = res.data
                    console.log('data: ', data);
                    this.hform.HInterID = data[0]["HInterID"]
                    this.hform.HBillNo = data[0]["HBillNo"]
                } catch (err) {
                    CommonUtils.showTips({
                        title: "温馨提示",
                        message: "获取单据信息异常: " + err
                    })
                }
            },
            async submit() {
                let valid = this.ValidCheck()
                if (!valid.state) {
                    CommonUtils.showTips({
                        message: valid.Message
                    })
                    return
                }
                try {
                    let oMain = JSON.stringify(this.hform);
                    this.HDetailList[0].HManagerID = this.hform.HManagerID
                    this.HDetailList[0].HRepairID = this.hform.HRepairID
                    let sSubStr = JSON.stringify(this.HDetailList);
                    let sMainSub = oMain + ';' + sSubStr + `;${this.operationType}` + ';' + getUserInfo()[
                        'Czymc'];
                    let res = await CommonUtils.doRequest2Sync({
                        url: "/Sc_MouldRepairSendWorkBill/AddBill",
                        data: {
                            "sMainSub": sMainSub
                        },
                        method: "POST"
                    })
                try {
                    let oMain = JSON.stringify(this.hform);
                    this.HDetailList[0].HManagerID = this.hform.HManagerID
                    this.HDetailList[0].HRepairID = this.hform.HRepairID
                    let sSubStr = JSON.stringify(this.HDetailList);
                    let sMainSub = oMain + ';' + sSubStr + `;${this.operationType}` + ';' + getUserInfo()[
                        'Czymc'];
                    let res = await CommonUtils.doRequest2Sync({
                        url: "/Sc_MouldRepairSendWorkBill/AddBill",
                        data: {
                            "sMainSub": sMainSub
                        },
                        method: "POST"
                    })
                    if (!res) {
                        return
                    }
                    if (!res) {
                        return
                    }
                    let {
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        uni.showModal({
                            title: '提示',
                            content: res.data.Message + '。是否继续新增?(点击取消返回上级页面)',
                            success: (res) => {
                                if (res.confirm) {
                                    console.log('用户点击确定');
                                    uni.redirectTo({
                                        url: './Sc_MouldRepairSendWorkBill?operationType=1'
                                    })
                                } else if (res.cancel) {
                                    console.log('用户点击取消');
                                    setTimeout(() => {
                                        uni.navigateBack();
                                    }, 50)
                                }
                            }
                        });
                    } else {
                        CommonUtils.showTips({
                            title: "温馨提示",
                            message: "提交单据失败: " + Message
                        })
                    }
                    let {
                        count,
                        Message
                    } = res.data
                    if (count == 1) {
                        uni.showModal({
                            title: '提示',
                            content: res.data.Message + '。是否继续新增?(点击取消返回上级页面)',
                            success: (res) => {
                                if (res.confirm) {
                                    console.log('用户点击确定');
                                    uni.redirectTo({
                                        // url: './Sc_MouldRepairSendWorkBill?operationType=1'
                                    })
                                } else if (res.cancel) {
                                    console.log('用户点击取消');
                                    setTimeout(() => {
                                        uni.navigateBack();
                                    }, 50)
                                }
                            }
                        });
                    } else {
                        CommonUtils.showTips({
                            title: "温馨提示",
                            message: "提交单据失败: " + Message
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: "温馨提示",
                        message: "提交单据失败: " + err
                    })
                }
            }
        },
        onLoad(e) {
            console.log('e: ', e);
            if (!e.operationType) {
                this.operationType = 1
            } else {
                this.operationType = e.operationType
            }
                } catch (err) {
                    CommonUtils.showTips({
                        title: "温馨提示",
                        message: "提交单据失败: " + err
                    })
                }
            }
        },
        onLoad(e) {
            console.log('e: ', e);
            if (!e.operationType) {
                this.operationType = 1
            } else {
                this.operationType = e.operationType
            }
            if (this.operationType == 1) {
                // 新增
                this.getMaxNum()
            } else if (this.operationType == 2) {
                // 复制
            } else if (this.operationType == 3) {
                // 编辑
            if (this.operationType == 1) {
                // 新增
                this.getMaxNum()
            } else if (this.operationType == 2) {
                // 复制
            } else if (this.operationType == 3) {
                // 编辑
            } else if (this.operationType == 4) {
                // 浏览
            } else if (this.operationType == 4) {
                // 浏览
            }
            }
            this.getHDeptList()
            this.getEmpList()
            this.getCheckProjList()
            this.getRepairList()
            this.getHDeptList()
            this.getEmpList()
            this.getCheckProjList()
            this.getRepairList()
            this.loadCache() // 新增:加载缓存
            // 新增:监听单据选择完成事件
@@ -886,26 +886,26 @@
                }
                this.$refs.billList.exit()
            })
        },
        },
        onUnload() {
            uni.$off('BillSelectComplete') // 新增:移除事件监听
        },
        onReady() {
            const query = uni.createSelectorQuery().in(this)
            query.select("#buttons")
                .boundingClientRect()
                .select("#tabs")
                .boundingClientRect()
                .exec(res => {
                    this.btnTop = Math.floor(res[0].top)
                    this.tabsBottom = Math.ceil(res[1].bottom)
                })
        }
    }
        onReady() {
            const query = uni.createSelectorQuery().in(this)
            query.select("#buttons")
                .boundingClientRect()
                .select("#tabs")
                .boundingClientRect()
                .exec(res => {
                    this.btnTop = Math.floor(res[0].top)
                    this.tabsBottom = Math.ceil(res[1].bottom)
                })
        }
    }
</script>
<style lang="scss" scoped>
    @import "@/pages/MJGL/style/MJBillStyle.scss";
    // @import "@/pages/MJGL/style/MJBillStyle.scss";
    .picker-overlay {
        position: absolute;
pages/MJGL/mujudianjianjiludan/Sc_MouldDotCheckBill.vue
@@ -536,6 +536,7 @@
                    this.hform.HBarSpec = data[0].HModel
                    this.hform.HBarModel = data[0].HModel2
                    this.hform.HQty = 1
                    this.tabs = 1
                    // 获取检验规程
                    this.GetItemByMouldFile()
                } catch (err) {
pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBill.vue
@@ -11,14 +11,14 @@
                </view>
            </view>
            <view class="form-item">
                <view class="title">工序:</view>
                <view class="title required">工序:</view>
                <view class="right">
                    <uni-combox :candidates="HProcNameArray" name="HProcName" id="HProcName" placeholder="请选择工序号"
                        v-model="hform.HProcName" @input="onHProcNameChangeHandler"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">取样数量:</view>
                <view class="title required">取样数量:</view>
                <view class="right">
                    <input type="number" name="HQty" id="HQty" v-model="hform.HQty" />
                </view>
@@ -31,7 +31,7 @@
                </view>
            </view>
            <view class="form-item">
                <view class="title">送测类型:</view>
                <view class="title required">送测类型:</view>
                <view class="right">
                    <uni-combox :candidates="TestTypeArray" v-model="hform.TestType"
                        @input="TestTypeChange"></uni-combox>
@@ -51,14 +51,14 @@
                </view>
            </view>
            <view class="form-item">
                <view class="title">生产班次:</view>
                <view class="title required">生产班次:</view>
                <view class="right">
                    <uni-combox :candidates="HShiftsNameArray" name="HShiftsName" id="HShiftsName" placeholder="请选择生产班次"
                        v-model="hform.HShiftsName" @input="HShiftsNameChangeHandler"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">生产班组:</view>
                <view class="title required">生产班组:</view>
                <view class="right">
                    <uni-combox :candidates="HGroupNameArray" name="HGroupName" id="HGroupName" placeholder="请选择生产班组"
                        v-model="hform.HGroupName" @input="HGroupNameChangeHandler"></uni-combox>
@@ -793,7 +793,7 @@
            }
            .title {
                width: 5em;
                width: 6em;
                font-size: 30rpx;
                flex-shrink: 0;
                text-align: right;
@@ -864,4 +864,11 @@
    .placeholder__view {
        flex: 1;
    }
    .required::after{
          content: "*";
          color: red;
          margin-left: 4px;
          font-weight: bold;
    }
</style>
pages/ZLGL/QuYangHuangYang/QC_TakeSampleCheckBill/QC_TakeSampleCheckBillList.vue
@@ -596,7 +596,6 @@
        width: 100%;
        box-sizing: border-box;
        padding: 32rpx 10rpx;
    }
</style>
pages/ZLGL/awaitCheckBillList/awaitCheckBillList.vue
New file
@@ -0,0 +1,240 @@
<template>
    <view>
        <view class="tabs" id="tabs">
            <view :class="tabs == 0 ? 'on':''" @tap="switchTab(0)">首件检验单</view>
            <view :class="tabs == 1 ? 'on':''" @tap="switchTab(1)">巡检检验单</view>
            <view :class="tabs == 2 ? 'on':''" @tap="switchTab(2)">末件检验单</view>
        </view>
        <!-- 待检验列表 -->
        <view class="list" v-for="(item,index) in reportBillsDisplay" :key="index">
            <uni-card :title="item.单据号" :extra="`日期: ${dayjs(item.日期).format('YYYY-MM-DD')}`" style="margin: 10px;">
                <view class="card-detail">
                    <template v-for="(HBillField, index) in CommonUtils.emptyValueFilter(item,HFieldList).slice(0,10)">
                        <view class="detail" v-if="HBillField.ColmType == 'DateTime'">
                            <text>{{ HBillField.ColmCols }}:</text>{{ item[HBillField.ColmCols] ? dayjs(item[HBillField.ColmCols]).format("YYYY-MM-DD HH:mm:ss") : "" }}
                        </view>
                        <view class="detail" v-else>
                            <text>{{ HBillField.ColmCols }}:</text>{{ item[HBillField.ColmCols] }}
                        </view>
                    </template>
                </view>
                <view class="card-detail" v-if="showDetail == index">
                    <view class="card-detail">
                        <template
                            v-for="(HBillField, index) in CommonUtils.emptyValueFilter(item,HFieldList).slice(10,-1)">
                            <view class="detail" v-if="HBillField.ColmType == 'DateTime'">
                                <text>{{ HBillField.ColmCols }}:</text>{{ item[HBillField.ColmCols] ? dayjs(item[HBillField.ColmCols]).format("YYYY-MM-DD HH:mm:ss") : "" }}
                            </view>
                            <view class="detail" v-else>
                                <text>{{ HBillField.ColmCols }}:</text>{{ item[HBillField.ColmCols] }}
                            </view>
                        </template>
                    </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 class="part" @tap.stop="operations = operations==index?-1:index">
                        <uni-icons type="more-filled" 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 class="part" @tap.stop="operations = operations==index?-1:index">
                        <uni-icons type="more-filled" style="color: #888;margin-right: 10rpx;" size="14"></uni-icons>操作
                    </view>
                </view>
                <view class="op" v-if="operations == index">
                    <!-- <button class="op3" size="mini" plain @tap.stop="edit(item)">编辑</button> -->
                    <!-- <button class="op4" size="mini" plain @tap.stop="del(item)">删除</button> -->
                    <button v-if="tabs == 0" class="op3" size="mini" plain
                        @tap.stop="pushFirstCheckBill(item)">下推首检单</button>
                    <button v-if="tabs == 1" class="op3" size="mini" plain
                        @tap.stop="pushPatrolCheckBill(item)">下推巡检单</button>
                    <button v-if="tabs == 2" class="op3" size="mini" plain
                        @tap.stop="pushProcessCheckBill(item)">下推末检单</button>
                    <button class="op5" size="mini" plain @tap.stop="operations = -1">取消操作</button>
                </view>
            </uni-card>
        </view>
        <view class="over" v-if="reportBillsDisplay.length == 0">暂无数据</view>
    </view>
</template>
<script>
    import {
        getUserInfo
    } from '../../../utils/auth';
    import {
        CommonUtils
    } from '../../../utils/common';
    import dayjs from 'dayjs';
    export default {
        // 设备维修任务 模块
        name: 'Sb_EquipRepairTaskReport',
        data() {
            return {
                dayjs,
                CommonUtils,
                tabs: 0,
                reportBillsDisplay: [],
                reportBillsAwaitRepair: [], // 待维修
                reportBillsRepaired: [], // 已维修
                reportBillsAll: [], // 全部任务
                HFieldList: [], // 字段列表
                sWhere: "",
                showDetail: -1,
                operations: -1,
            };
        },
        methods: {
            switchTab(tabIndex) {
                this.tabs = tabIndex
                switch (tabIndex) {
                    case 0:
                        this.reportBillsDisplay = this.reportBillsAwaitRepair;
                        break;
                    case 1:
                        this.reportBillsDisplay = this.reportBillsRepaired;
                        break;
                    case 2:
                        this.reportBillsDisplay = this.reportBillsAll;
                        break;
                }
            },
            async getRepairList() {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: 'WEBSController/AwaitCheckSampleBillList',
                        data: {
                            user: getUserInfo()["Czymc"]
                        }
                    })
                    let {
                        count,
                        data,
                        Message,
                        list
                    } = res.data
                    if (count == 1) {
                        console.log('data: ', data);
                        this.reportBillsAwaitRepair = data[0]
                        this.reportBillsRepaired = data[1]
                        this.reportBillsAll = data[2]
                        let fieldList = CommonUtils.fieldListFilterRole({
                            ExcludeKeys: ['单据号', '日期'],
                            FieldList: list
                        })
                        if (fieldList.status == false) {
                            CommonUtils.showTips({
                                title: '温馨提示',
                                message: `获取表单结构失败: ${fieldList.Message}`
                            })
                        }
                        this.HFieldList = fieldList.data
                        this.switchTab(0)
                    } else {
                        CommonUtils.showTips({
                            title: '温馨提示',
                            message: `获取维修单异常: ${Message}`
                        })
                    }
                } catch (err) {
                    CommonUtils.showTips({
                        title: '温馨提示',
                        message: `获取维修单异常: ${err}`
                    })
                }
            },
            pushFirstCheckBill(item) {
                uni.navigateTo({
                    url: '/pages/ZLGL/shoujianjianyan/firstCheckBill?operationType=2&linterid=' +
                        item.hmainid + '&HBillNo=' + item.单据号 + '&HSouceBillType=7521',
                    // success: () => {
                    //     // 跳转成功后触发查询
                    //     this.onSearchClickHandler()
                    // }
                })
            },
            pushProcessCheckBill(item) {
                uni.navigateTo({
                    url: '/pages/ZLGL/mojianjianyan/ProcessCheckBill?operationType=2&linterid=' +
                        item.hmainid + '&HBillNo=' + item.单据号 + '&HSouceBillType=7521',
                    // success: () => {
                    //     // 跳转成功后触发查询
                    //     this.onSearchClickHandler()
                    // }
                })
            },
            pushPatrolCheckBill(item) {
                uni.navigateTo({
                    url: '/pages/ZLGL/xunjianjianyan/PatrolProcCheckBill?operationType=2&linterid=' +
                        item.hmainid + '&HBillNo=' + item.单据号 + '&HSouceBillType=7521',
                    // success: () => {
                    //     // 跳转成功后触发查询
                    //     this.onSearchClickHandler()
                    // }
                })
            }
        },
        onLoad() {},
        onShow() {
            this.getRepairList()
        }
    }
</script>
<style lang="scss">
    @import "@/pages/MJGL/style/MJBillStyle.scss";
    .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/ZLGL/mojianjianyan/ProcessCheckBill.vue
Diff too large
pages/ZLGL/shoujianjianyan/firstCheckBill.vue
@@ -88,13 +88,13 @@
                        </view>
                    </view>
                    <view class="form-item">
                        <view class="left">检验数量</view>
                        <view class="left required">检验数量</view>
                        <view class="right">
                            <input type="number" v-model="hform.HCheckQty" />
                        </view>
                    </view>
                    <view class="form-item">
                        <view class="left">检验员</view>
                        <view class="left required">检验员</view>
                        <view class="right">
                            <uni-combox :candidates="GyFirstCheckEmpNameList" placeholder="请选择检验员"
                                v-model="hform.HFirstCheckEmpName"
@@ -784,6 +784,33 @@
                        this.hform.HTakeSampleCheckBillNo = data[0].单据号
                        this.hform.HTakeSampleCheckBillID = data[0].HInterID
                    }
                    else if(this.hform.HSourceBillType=="3790"){
                        this.hform.HMaterID = data[0]['HMaterID']
                        this.hform.HMaterName = data[0]['产品名称']
                        this.hform.HMaterNumber = data[0]['产品代码']
                        this.hform.HMainSourceBillNo = data[0].单据号
                        this.hform.HSourceBillNo = data[0].单据号
                        this.hform.HMainSourceInterID = data[0].HInterID
                        this.hform.HMainSourceEntryID = data[0].HEntryID
                        this.hform.HQCSchemeName = data[0].检验方案名称
                        this.hform.HQCSchemeID = data[0].检验方案ID
                        this.hform.HSourceBillQty = data[0].检验数量
                        this.hform.HICMOBillNo = data[0].任务单号
                        this.hform.HICMOInterID = data[0].HICMOInterID
                        this.hform.HICMOEntryID = data[0].HICMOEntryID
                        this.hform.HICMOQty = data[0].生产数量
                        this.hform.HCheckQty = data[0].进站数量
                        this.hform.HProcExchBillNo = data[0].HProcExchBillNo
                        this.hform.HProcExchInterID = data[0].HProcExchInterID
                        this.hform.HProcExchEntryID = data[0].HProcExchEntryID
                        this.hform.HProcExchQty = data[0].流转卡数量
                        this.hform.HSourceName = data[0].生产资源
                        this.hform.HSourceID = data[0].HSourceID
                        this.hform.HProcID = data[0].HProcID
                        this.hform.HProcName = data[0].当前工序
                        this.hform.HTakeSampleCheckBillNo = data[0].单据号
                        this.hform.HTakeSampleCheckBillID = data[0].HInterID
                    }
                    else{
                        this.hform.HMaterID = data[0]['HMaterID']
                        this.hform.HMaterName = data[0]['产品名称']
@@ -1222,6 +1249,7 @@
                    this.hform.HQCSchemeName = data[0].检验方案名称;
                    this.hform.HQCSchemeID = data[0].检验方案ID;
                    this.hform.HProcName = data[0].当前工序;
                    this.hform.HCheckQty = data[0].取样数量
                    this.hasSourceBill = true
                    this.get_CheckItem();
                } catch (err) {
@@ -1935,6 +1963,12 @@
                    });
                    return false;
                }
                if (this.hform.HCheckQty == 0) {
                    CommonUtils.showTips({
                        message: "检验数量不得为0!",
                    });
                    return false;
                }
                for (let key in this.checkItems) {
                    if (!this.checkItems[key].HQCCheckItemID) {
@@ -2242,7 +2276,9 @@
                    if (uni.getStorageSync('Organization')  == "宁波市华舟包装有限公司") {
                        this.HSourceBillType = "取样单"; // 显示名称
                        this.hform.HSourceBillType = "7521"; // 对应的值
                    }
                        this.hform.HSourceBillNo = e.HBillNo
                    }
                    this.hform.HTakeSampleCheckBillNo=e.HBillNo;
                    this.hform.HTakeSampleCheckBillID=e.linterid;
                    //取样单查询数据
@@ -2550,4 +2586,11 @@
        border-radius: 100%;
        pointer-events: none;
    }
    .required::after{
          content: "*";
          color: red;
          margin-left: 4px;
          font-weight: bold;
    }
</style>
pages/ZLGL/xunjianjianyan/PatrolProcCheckBill.vue
Diff too large
pages/caigoudingdan/caigoudingdanList.vue
New file
@@ -0,0 +1,575 @@
<template>
    <view>
        <view class="page-header">
            <view class="search-item">
                <view class="left">日期间隔</view>
                <view class="right">
                    <picker mode="selector" :value="curDateGap" :range="dateRangePicker"
                        @change="onDateRangePickerChangeHandler">
                        <input disabled v-model="curDateGap" placeholder="请选择日期间隔" />
                        <view class="picker-overlay"></view>
                    </picker>
                </view>
            </view>
            <view class="search-item">
                <view class="left">开始日期</view>
                <view class="right">
                    <uni-datetime-picker :clear-icon="false" type="date" v-model="startDate"
                        :disabled="!enableCustomDateRange">
                        <view class="datetime-picker-inner"
                            :class="enableCustomDateRange?'font__enable':'font__disable'">
                            <text>{{ startDate }}</text>
                        </view>
                    </uni-datetime-picker>
                </view>
            </view>
            <view class="search-item">
                <view class="left">结束日期</view>
                <view class="right">
                    <uni-datetime-picker :clear-icon="false" type="date" v-model="endDate"
                        :disabled="!enableCustomDateRange">
                        <view class="datetime-picker-inner"
                            :class="enableCustomDateRange?'font__enable':'font__disable'">{{ endDate }}</view>
                    </uni-datetime-picker>
                </view>
            </view>
            <view class="search-item">
                <view class="left">单据号</view>
                <view class="right">
                    <input type="text" auto-focus v-model="HBillNo" />
                </view>
            </view>
            <view class="button-groups">
                <button type="default" size="mini" class="btn-b" @tap.stop="onAddClickHandler">新增</button>
                <button type="default" size="mini" class="btn-c" @tap.stop="onSearchClickHandler">查询</button>
                <button type="default" size="mini" class="btn-a" @tap.stop="onResetClickHandler">重置</button>
            </view>
        </view>
        <view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
        <scroll-view id="pageContent" scroll-y class="page-content" :style="{height: pageContentHeight + 'px'}">
            <view v-for="(item,index) in listData" :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.结算方式}}
                        </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.含税单价}}
                        </view>
                        <view class="detail" v-if="item.折扣率">
                            <text>折扣率:</text>{{item.折扣率}}
                        </view>
                        <view class="detail" v-if="item.实际含税单价">
                            <text>实际含税单价:</text>{{item.实际含税单价}}
                        </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.制单日期.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 class="detail" v-if="item.作废日期">
                            <text>作废日期:</text>{{item.作废日期.substr(0,10)}}
                        </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 class="part" @tap.stop="operations = operations==index?-1:index">
                            <uni-icons type="more-filled" 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 class="part" @tap.stop="operations = operations==index?-1:index">
                            <uni-icons type="more-filled" style="color: #888;margin-right: 10rpx;"
                                size="14"></uni-icons>操作
                        </view>
                    </view>
                    <view class="op" v-if="operations == index">
                        <!-- <button class="op3" size="mini" plain @tap.stop="edit(item)">编辑</button> -->
                        <button class="op4" size="mini" plain @tap.stop="del(item)">删除</button>
                        <button class="op5" size="mini" plain @tap.stop="operations = -1">取消操作</button>
                    </view>
                </uni-card>
            </view>
            <view class="over" v-if="listData.length == 0">暂无数据</view>
        </scroll-view>
        <!-- 分页器 -->
        <view class="page-footer">
            <uni-pagination id="pagination" title="标题文字" v-model="pageMeta.curPage" :pageSize="pageMeta.size"
                :total="pageMeta.total" @change="onPageChangeHandler"></uni-pagination>
        </view>
    </view>
</template>
<script>
    import dayjs from 'dayjs'
    import {
        CommonUtils
    } from '@/utils/common.js'
    import {
        getUserInfo
    } from "../../utils/auth";
    export default {
        data() {
            return {
                // 计算卡片列表高度
                pagination_top: 0,
                pageContent_top: 0,
                // 分页控制
                pageMeta: {
                    curPage: 1,
                    size: 50,
                    total: 0,
                },
                // 滚动控制
                scrollTop: 0,
                old: {
                    scrollTop: 0
                },
                dateRangePicker: ["任意间隔", "今天", "近两天", "近三天", "近四天", "近五天", "近六天", "近七天", "近30天"],
                curDateGap: "近七天",
                enableCustomDateRange: false,
                startDate: dayjs(new Date()).subtract(7, 'day').format('YYYY-MM-DD'),
                endDate: dayjs(new Date()).format('YYYY-MM-DD'),
                HBillNo: '',
                listData: [],
                showDetail: -1,
                operations: -1,
            }
        },
        computed: {
            pageContentHeight: {
                get() {
                    return (this.pagination_top - this.pageContent_top)
                }
            },
        },
        onLoad() {
            this.onSearchClickHandler()
        },
        onPullDownRefresh() {
            this.onSearchClickHandler()
        },
        async onReady() {
            // #ifndef MP-WEIXIN
            let query = uni.createSelectorQuery().in(this)
            query.select("#pagination")
                .boundingClientRect((data) => {
                    if (data) {
                        this.pagination_top = data.top
                    } else {
                        console.log("未找到#pagination节点");
                    }
                })
                .exec();
            query.select("#pageContent")
                .boundingClientRect((data) => {
                    if (data) {
                        this.pageContent_top = data.top
                    } else {
                        console.log("未找到#pageContent节点");
                    }
                })
                .exec();
            // #endif
        },
        methods: {
            goTop: function(e) {
                // 解决view层不同步的问题
                this.scrollTop = this.old.scrollTop
                this.$nextTick(function() {
                    this.scrollTop = 0
                });
            },
            onDateRangePickerChangeHandler({
                detail
            }) {
                this.enableCustomDateRange = false
                this.curDateGap = this.dateRangePicker[detail.value]
                let date = new Date()
                switch (this.curDateGap) {
                    case "今天":
                        this.startDate = dayjs(date).format("YYYY-MM-DD")
                        break;
                    case "近一天":
                        this.startDate = dayjs(date).subtract(1, 'day').format("YYYY-MM-DD")
                        break;
                    case "近两天":
                        this.startDate = dayjs(date).subtract(2, 'day').format("YYYY-MM-DD")
                        break;
                    case "近三天":
                        this.startDate = dayjs(date).subtract(3, 'day').format("YYYY-MM-DD")
                        break;
                    case "近四天":
                        this.startDate = dayjs(date).subtract(4, 'day').format("YYYY-MM-DD")
                        break;
                    case "近五天":
                        this.startDate = dayjs(date).subtract(5, 'day').format("YYYY-MM-DD")
                        break;
                    case "近六天":
                        this.startDate = dayjs(date).subtract(6, 'day').format("YYYY-MM-DD")
                        break;
                    case "近七天":
                        this.startDate = dayjs(date).subtract(7, 'day').format("YYYY-MM-DD")
                        break;
                    case "近30天":
                        this.startDate = dayjs(date).subtract(30, 'day').format("YYYY-MM-DD")
                        break;
                }
                if (this.curDateGap == '任意间隔') {
                    this.enableCustomDateRange = true
                }
            },
            onSearchClickHandler() {
                let sWhere = ""
                if (this.startDate) {
                    sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.startDate + "'";
                }
                if (this.endDate) {
                    sWhere += " and CONVERT(varchar(100),日期, 23) <= '" + this.endDate + "'";
                }
                if (this.HBillNo) {
                    sWhere += " and 单据号 like '%" + this.HBillNo + "%'";
                }
                this.get_DisplayPage(sWhere);
            },
            clear() {
                this.curDateGap = "近七天"
                this.enableCustomDateRange = false
                this.startDate = dayjs(new Date()).subtract(7, 'day').format('YYYY-MM-DD')
                this.endDate = dayjs(new Date()).format('YYYY-MM-DD')
                this.HBillNo = ''
            },
            async onResetClickHandler() {
                this.clear()
                await this.$nextTick()
                this.onSearchClickHandler()
            },
            get_DisplayPage(sWhere) {
                CommonUtils.doRequest2({
                    url: '/Cg_POOrderBill/QueryListEdit',
                    data: {
                        "sWhere": sWhere,
                        "user": getUserInfo()["Czymc"],
                    },
                    resFunction: (res) => {
                        let {
                            data,
                            Message,
                            count
                        } = res.data
                        console.log('res.data: ', res.data);
                        this.listData = data;
                        this.pageMeta.total = count
                        uni.stopPullDownRefresh()
                    }
                })
            },
            onPageChangeHandler() {
                this.onSearchClickHandler()
                this.goTop()
            },
            // 新增
            onAddClickHandler() {
                uni.navigateTo({
                    url: "/pages/EmployeeRecords/EmployeeRecordsBill?operationType=1"
                })
            },
            //删除点检记录单
            del(item) {
                console.log(item);
                uni.showModal({
                    title: '删除确认',
                    content: '确认要删除吗,删除后不能恢复',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            CommonUtils.doRequest2({
                                url: '/Sc_EmployeeSignInNoteBillController/deleteBill',
                                data: {
                                    HItemID: item['HInterID'],
                                    user: getUserInfo()['Czymc']
                                },
                                resFunction: (res) => {
                                    let {
                                        data,
                                        count,
                                        Message
                                    } = res.data
                                    if (count == 1) {
                                        uni.showToast({
                                            icon: count === 1 ? 'success' : 'error',
                                            title: Message,
                                            duration: 2000
                                        });
                                        // 等待提示显示完成再刷新
                                        setTimeout(() => {
                                            this.onSearchClickHandler();
                                        }, 2000);
                                    } else {
                                        uni.showToast({
                                            icon: 'none',
                                            title: Message
                                        })
                                    }
                                }
                            })
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            }
        },
    }
</script>
<style lang="scss">
    .page-header {
        display: flex;
        box-sizing: border-box;
        padding: 20rpx;
        flex-direction: column;
        gap: 10rpx;
        font-size: 32rpx;
        .search-item {
            display: flex;
            flex-direction: row;
            gap: 10rpx;
            justify-content: center;
            align-items: center;
            .left {
                width: 4em;
            }
            .right {
                flex: 1;
                position: relative;
                border-radius: 22rpx;
                border: 1px solid #acacac;
                display: flex;
                padding: 4rpx 10rpx;
                picker {
                    width: 100%;
                }
            }
        }
        input {
            width: inherit;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
        .datetime-picker-inner {
            padding: 8rpx 20rpx;
            font-size: 30rpx;
            display: flex;
            align-items: center;
        }
        .font__enable {
            color: #000;
        }
        .font__disable {
            color: #cccccc;
        }
    }
    .button-groups {
        box-sizing: border-box;
        padding: 10rpx 0 0 0;
        display: flex;
        flex-direction: row;
        gap: 10rpx;
        justify-content: space-between;
        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;
        }
    }
    .page-content {
        // height: 40vh;
        box-sizing: border-box;
        padding: 10rpx 0;
        .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;
            }
        }
    }
    .page-footer {
        position: fixed;
        bottom: 0;
        width: 100%;
        box-sizing: border-box;
        padding: 32rpx 40rpx;
    }
</style>
pages/index/login.vue
@@ -110,7 +110,7 @@
                    "杭州凯贝奈特外网": 'http://erp.hzcabinet.cn:9090/API/',
                    "翁涛涛本地测试": 'http://localhost:81/API/',
                    "陈镐哲本地测试": 'http://192.168.0.121:81/API/',
                    "陈镐哲本地测试2": 'http://192.168.0.102:81/API/',
                    "陈镐哲本地测试2": 'http://192.168.89.27:81/API/',
                    "张瑞广本地测试": 'http://localhost:8082/API/',
                    "余思杰本地测试": 'http://localhost:8082/LuBaoAPI/',
                    // 小卫内外网
@@ -127,7 +127,7 @@
                    "宁波华舟包装2": "http://192.168.88.167:8082/API_NW/",
                    "宁波华舟包装": "http://61.164.64.222:8082/API_WW/",
                },
                serverUrlName: uni.getStorageSync('serverUrlName') || '浙江智云迈思',
                serverUrlName: uni.getStorageSync('serverUrlName') || '宁波华舟包装',
                arrayOrganization: [],
                Organization: '',
@@ -339,11 +339,11 @@
                                uni.setStorageSync('HSecManagerID', res.data.data[0].HSecManagerID); //对应验收
                                uni.setStorageSync('HSecManagerName', res.data.data[0].HSecManagerName);
                                uni.setStorageSync('HGroupID', res.data.data[0].HGroupID); //对应班组
                                uni.setStorageSync('HGroupName', res.data.data[0].HGroup);
                                uni.setStorageSync('HGroupName', res.data.data[0].HGroupName);
                                uni.setStorageSync('HProcID', res.data.data[0].HProcID); //对应工序
                                uni.setStorageSync('HProcName', res.data.data[0].HProcName);
                                uni.setStorageSync('HSourceID', res.data.data[0].HSourceID); //对应生产资源
                                uni.setStorageSync('HSourceName', res.data.data[0].HSource);
                                uni.setStorageSync('HSourceName', res.data.data[0].HSourceName);
                                this.CommonUtils.setServerUrl(this.serverUrl)
                                // this.WebSocketServices.createConnect(res.data.data[0].Czybm,res.data.data[0].Czymc);
                                // getuiUtils.getClientID()
pages/index/tab3.vue
@@ -43,15 +43,14 @@
                menuListName: 'tab3',
                canEdit: false,
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                itemData: [
                    {
                        img: '../../static/icon/icon8.png',
                        text: '器具档案查询',
                        url: `/pages/MJGL/Gy_MouldFile/Gy_MouldFileList`,
                        id: 1,
                        hidden: false,
                    },
                    {
                itemData: [{
                        img: '../../static/icon/icon8.png',
                        text: '器具档案查询',
                        url: `/pages/MJGL/Gy_MouldFile/Gy_MouldFileList`,
                        id: 1,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon6.png',
                        text: '器具状态分析',
                        tip: '查看详情',
@@ -184,11 +183,11 @@
                    },
                    {
                        "img": "../../static/icon/icon8.png",
   "text": "设备故障登记单",
                        "url": "/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill?operationType=1",
                        "id": 20,
                        "hidden": false
                    },
                        "text": "设备故障登记单",
                        "url": "/pages/MJGL/Sb_EquipConkBook/Sb_EquipConkBookBill?operationType=1",
                        "id": 20,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon8.png",
                        "text": "设备维修派工单",
@@ -199,11 +198,11 @@
                    {
                        "text": "设备维修验收单",
                        "img": "../../static/icon/icon8.png",
                        "text": "设备维修记录单",
                        "url": "/pages/MJGL/Sb_EqpMaintenance/Sb_EqpMaintenanceBill",
                        "id": 22,
                        "hidden": false
                    },
                        "text": "设备维修记录单",
                        "url": "/pages/MJGL/Sb_EqpMaintenance/Sb_EqpMaintenanceBill",
                        "id": 22,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon8.png",
                        "text": "设备保养任务",
pages/index/tab4.vue
@@ -175,7 +175,20 @@
                        "id": 18,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon15.png",
                        "text": "待检验列表",
                        "url": "/pages/ZLGL/awaitCheckBillList/awaitCheckBillList",
                        "id": 19,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon15.png",
                        "text": "采购订单列表",
                        "url": "/pages/caigoudingdan/caigoudingdanList",
                        "id": 20,
                        "hidden": false
                    },
                ]
            }
        },
pages/shengchandiaobo/MoveStockBill.vue
@@ -709,12 +709,15 @@
                }
            },
            HOutStockPlaceNameChange(e) {
                console.log('e: ',e);
                console.log('this.HStockPlaceNameList: ',this.HStockPlaceNameList);
                let index = this.HStockPlaceNameList.findIndex(elem => elem['仓位名称'] == e)
                this.hform.HOutStockPlaceName = ''
                this.hform.HOutStockPlaceID = 0
                this.hform.HSCSPName = ''
                this.hform.HSCSPID = 0
                if (index != -1) {
                    this.hform.HOutStockPlaceName = this.HStockPlaceNameList[index].仓位名称
                    this.hform.HOutStockPlaceID = this.HStockPlaceNameList[index].HMainID
                    this.hform.HSCSPName = this.HStockPlaceNameList[index].仓位名称
                    this.hform.HSCSPID = this.HStockPlaceNameList[index].HMainID
                }
            
                // for (var i = 0; i < this.HStockPlaceInNameList.length; i++) {