components/FIFOListModule/FIFOListComponent.vue
@@ -25,6 +25,10 @@ <text>下架数量: </text> {{ FIFOItem['下架数量'] }} </view> <view class="item"> <text>生产日期: </text> {{ FIFOItem['控制值'] }} </view> </view> </uni-card> </view> manifest.json
@@ -2,8 +2,8 @@ "name" : "智云LMES", "appid" : "__UNI__B002F49", "description" : "", "versionName" : "2.0.43", "versionCode" : 243, "versionName" : "2.0.46", "versionCode" : 246, "transformPx" : false, /* 5+App特有相关 */ "app-plus" : { pages.json
@@ -1410,6 +1410,27 @@ { "navigationBarTitleText" : "在库检验单" } }, { "path" : "pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill", "style" : { "navigationBarTitleText" : "设备保养记录单" } }, { "path" : "pages/MJGL/Sb_EquipDotCheckBill/Sb_EquipDotCheckBill", "style" : { "navigationBarTitleText" : "设备点检记录单" } }, { "path" : "pages/ZLGL/zaikujianyandan/InStockCheckBillList", "style" : { "navigationBarTitleText" : "在库检验单列表" } } ], pages/MJGL/Sb_EquipDotCheckBill/Sb_EquipDotCheckBill.vue
New file @@ -0,0 +1,708 @@ <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="{ height: containerHeight + 'px', overflow: 'auto' }"> <view class="form-item"> <view class="title">设备条码:</view> <view class="right"> <input v-model="hform.HBarCode" @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.HBeginDate"> <input :value="hform.HBeginDate" /> </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.HEndDate"> <input :value="hform.HEndDate" /> </uni-datetime-picker> </view> </view> <view class="form-item"> <view class="title">数量:</view> <view class="right"> <input type="number" v-model="hform.HQty" /> </view> </view> <view class="form-item"> <view class="title">最终结论:</view> <view class="right none-border"> <radio-group @change="radioChange" class="radio_Container"> <label> <view> <radio value="OK" :checked="hform.HLastResult == 'OK'" /> <text>OK</text> </view> </label> </label> <view> <radio value="NG" :checked="hform.HLastResult == 'NG'" /> <text>NG</text> </view> </label> </radio-group> </view> </view> <view class="form-item"> <view class="title">异常情况记录:</view> <view class="right"> <input v-model="hform.HErrNote" placeholder="请输入异常情况记录" /> </view> </view> <view class="form-item"> <view class="title">重大安全隐患记录:</view> <view class="right"> <input v-model="hform.HBigSafeNote" placeholder="请输入重大安全隐患记录" /> </view> </view> <view class="form-item"> <view class="title">点检数据:</view> <view class="right"> <input v-model="hform.HDotCheckNote" placeholder="请输入点检数据" /> </view> </view> <view class="form-item"> <view class="title">生产班次:</view> <zxz-uni-data-select class="right" :localdata="HShiftsList" dataKey="班次名称" dataValue="HItemID" v-model="hform.HShiftsID"> </zxz-uni-data-select> </view> <view class="form-item"> <view class="title">单据号:</view> <view class="righton"> <input disabled v-model="hform.HBillNo" /> </view> </view> <view class="form-item"> <view class="title">单据日期:</view> <view class="righton"> <input disabled v-model="hform.HDate" /> </view> </view> <view class="form-item"> <view class="title">部门:</view> <zxz-uni-data-select class="right" :localdata="HDeptList" dataKey="部门名称" dataValue="HItemID" v-model="hform.HDeptID"> </zxz-uni-data-select> <!-- <input disabled v-model="hform.HDeptName" placeholder="请选择部门" /> --> </view> <view class="form-item"> <view class="title">备注:</view> <view class="right"> <input v-model="hform.HRemark" placeholder="请输入备注" /> </view> </view> <view class="form-item"> <view class="title">设备名称:</view> <view class="righton"> <input v-model="hform.HBarName" disabled /> </view> </view> <view class="form-item"> <view class="title">设备规格:</view> <view class="righton"> <input v-model="hform.HBarSpec" disabled /> </view> </view> <view class="form-item"> <view class="title">设备型号:</view> <view class="righton"> <input v-model="hform.HBarModel" disabled /> </view> </view> <view class="form-item"> <view class="title">点检计划:</view> <view class="righton"> <input v-model="hform.HPlanNo" disabled /> </view> </view> </view> </template> <!-- 明细信息 --> <template v-if="tabs == 1"> <view class="form"> <view class="form-item"> <view class="left"> 设备点检规程 </view> <view class="right"> <input type="text" :value="hform.HEquipDotCheckRuleInterNo" /> </view> <view class="icon-wrapper"> <uni-icons type="search" size="20" @click="toCheckFile"></uni-icons> </view> </view> </view> <view class="list" v-for="(item,index) in HCheckFileList" :key="index"> <uni-card style="margin: 10px;"> <view class="card-detail"> <view class="detail"> <text>序号:</text>{{index+1}} </view> <view class="detail"> <text>结果:</text> <checkbox-group style="display: inline-block;" @change="checkBoxChangeHandler(index, $event)"> <checkbox value="enabled" :checked="item.HDotCheckResult" /> </checkbox-group> </view> <view class="detail"> <text>点检项目分类:</text>{{item.HDotCheckItemClassName}} </view> <view class="detail"> <text>点检方法:</text>{{item.HDotCheckItemMethodName}} </view> <view class="detail"> <text>点检部位:</text>{{item.HDotCheckPart}} </view> <view class="detail"> <text>负责人名称:</text>{{item.HManagerName}} </view> <view class="detail"> <text>备注:</text>{{item.HRemark}} </view> </view> </uni-card> </view> <view class="over" v-if="HCheckFileList.length == 0">暂无数据</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> <!-- 附件信息 --> <template v-if="tabs == 3"> <view class="card-item-wrapper"> <view class="attachment-btns"> <button type="primary" size="mini" @tap="fileUpload">选择文件</button> <view style="flex: 1;"></view> </view> <view v-for="(item, index) in attachmentInfo" :key="index"> <uni-card :title="item['fileName']" :thumbnail="item.filePath"> <view class="card-detail"> <view class="detail"> <text>大小:</text>{{item["size"]}} </view> <view class="detail"> <text>状态:</text>{{item["status"]}} </view> <view class="detail operation" v-if="item['status']!='上传成功'"> <text>操作:</text> <button class="btn-a" size="mini" @tap.stop="uploadFile(index)">上传</button> <button class="btn-b" size="mini" @tap.stop="delFile(index)">删除</button> </view> </view> </uni-card> </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> <xe-upload ref="XeUpload" :options="uploadOptions" @callback="handleUploadCallback"></xe-upload> </view> </template> <script> import dayjs from "dayjs"; import { CommonUtils } from "@/utils/common"; import { MpaasScan } from "@/utils/mpaasScan.js" import "@/pages/MJGL/style/MJBillStyle.scss" import { getUserInfo } from "../../../utils/auth"; import { TrackOpTypes } from "vue"; export default { name: 'sb_EquipDotCheckBill', data() { return { tabs: 0, HMainSourceBillType: "", btnTop: 0, tabsBottom: 0, HModName: "sb_EquipDotCheckBill", HBillType: '3903', operationType: 1, uploadOptions: {}, HDeptList: [], HShiftsList: [], HCheckFileList: [], attachmentInfo: [], hform: { HBarCode: "", HBeginDate: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"), HEndDate: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"), HQty: 0, HErrNote: "", HBigSafeNote: "", HDotCheckNote: "", HShiftsName: "", HShiftsID: 0, HBillNo: "", HInterID: 0, HDate: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"), HDeptName: "", HDeptID: 0, HRemark: "", HBarName: "", HEquipID: 0, HBarSpec: "", HBarModel: "", HPlanNo: "", HPlanInterID: 0, HPlanEntryID: 0, HEquipDotCheckRuleInterID: 0, HEquipDotCheckRuleInterNo: "", HMaker: getUserInfo()['Czymc'], HMakeDate: dayjs(new Date()).format("YYYY-MM-DD"), HUpDater: "", HUpDateDate: "", HChecker: "", HCheckDate: "", HDeleteMan: "", HDeleteDate: "", lngBillKey: 0, lngBillSubKey: 0, HLastResult: "OK" } }; }, computed: { containerHeight: { get() { return this.btnTop - this.tabsBottom - 5 } } }, methods: { checkBoxChangeHandler(index, e) { let cr = e.detail.value if (cr.length == 0) { this.HCheckFileList[index]["HDotCheckResult"] = false } else { this.HCheckFileList[index]["HDotCheckResult"] = true } }, uploadFile(index) { console.log('filePath: ', this.attachmentInfo[index].filePath); // 通过临时路径读取文件 uni.uploadFile({ url: CommonUtils.getServerUrl() + "/Sb_EquipDotCheckBill/UploadFile", filePath: this.attachmentInfo[index].filePath, name: 'file', formData: { HBillNo: this.hform.HBillNo, HRemark: "", HUserName: getUserInfo()["Czymc"] }, success: (uploadRes) => { CommonUtils.showTips({ message: "上传成功" }) this.attachmentInfo[index].status = "上传成功" }, fail: (err) => { CommonUtils.showTips({ title: '温馨提示', message: `上传失败: ${err}` }) } }) }, delFile(index) { console.log('attachmentInfo: ', this.attachmentInfo[index]); uni.showModal({ title: '提示', content: '确认要删除 " ' + this.attachmentInfo[index].fileName + ' " 删除后将不可恢复!', success: (res) => { if (res.confirm) { this.attachmentInfo.splice(index, 1) } }, }) }, handleUploadCallback(res) { // 文件上传回调 console.log('file: ', res); let fileInfo = res.data[0] this.attachmentInfo.push({ fileName: fileInfo.name, size: fileInfo.size, status: '等待上传', filePath: fileInfo.tempFilePath }) }, // 上传文件 fileUpload() { this.$refs.XeUpload.upload('file', {}); }, //获取班次数据 async getShiftList() { try { let res = await CommonUtils.doRequest2Async({ url: '/Web/GetGy_ShiftsList_Json', data: { Shifts: "", } }) let { data, count, Message } = res.data if (count == 1) { this.HShiftsList = data } else { CommonUtils.showTips({ title: '温馨提示', message: Message }) } } catch (err) { CommonUtils.showTips({ title: '温馨提示', message: err }) } }, //获取使用部门数据 async getHDeptList() { try { let res = await CommonUtils.doRequest2Async({ url: '/Gy_Department/list', data: { sWhere: "", 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 }) } }, toScanCode() { MpaasScan.scanCode(cb => { this.hfrom.HBarCode = cb this.GetMessageByBarCode(cb) }) }, async GetMessageByBarCode(HBarCode) { try { let res = await CommonUtils.doRequest2Sync({ url: "/Gy_EquipFileBill/txtHBarCode_KeyDown", data: { HBarCode: HBarCode, user: getUserInfo()["Czymc"] }, }) if (!res) { return } let { data, count, Message } = res.data console.log('data: ', data); this.hform.HEquipID = data[0].HInterID this.hform.HBarName = data[0].设备名称 this.hform.HBarSpec = data[0].设备规格 this.hform.HBarModel = data[0].设备型号 this.hform.HQty = 1 // 获取检验规程 this.GetItemByEquipFile() } catch (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 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.HLastResult = 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 = 0 this.hform.HBillNo = data[0]["HBillNo"] } catch (err) { CommonUtils.showTips({ title: "温馨提示", message: "获取单据信息异常: " + err }) } }, async submit() { try { let oMain = JSON.stringify(this.hform); let sSubStr = JSON.stringify(this.HCheckFileList); let sMainSub = oMain + ';' + sSubStr; let res = await CommonUtils.doRequest2Sync({ url: "/Sb_PDA_EquipDotCheckBill/SaveGetEquipDotCheckBillList", data: { "msg": sMainSub }, method: "POST" }) 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: '/pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill?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 } if (this.operationType == 1) { // 新增 this.getMaxNum() } else if (this.operationType == 2) { // 复制 } else if (this.operationType == 3) { // 编辑 } else if (this.operationType == 4) { // 浏览 } this.getHDeptList() this.getShiftList() }, 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"> </style> pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill.vue
New file @@ -0,0 +1,19 @@ <template> <view> </view> </template> <script> export default { data() { return { }; } } </script> <style lang="scss"> </style> pages/MJGL/style/MJBillStyle.scss
New file @@ -0,0 +1,264 @@ .buttons { box-sizing: border-box; width: 100%; height: 120rpx; position: fixed; bottom: 0; left: 0; background-color: #fff; box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4); padding: 30rpx 40rpx 40rpx 40rpx; display: flex; flex-direction: row; gap: 10rpx; button { border-radius: 50rpx; width: 180rpx; height: 66rpx; line-height: 66rpx; font-size: 28rpx; } .btn-a { background-color: #3a78ff; color: #fff; } .btn-b { background-color: #41a863; color: #fff; } .btn-c { background-color: #acacac; color: #fff; // position: absolute; // right: 120rpx; } .btn-d { background-color: #ff8901; color: #fff; } .placeholder-view { flex: 1; } } .tabs { width: 100%; display: flex; border-bottom: 1px solid #ddd; view { width: 25%; font-size: 30rpx; color: #555; text-align: center; padding: 16rpx 0; } .on { color: #3a78ff; font-weight: bold; border-bottom: 3px solid #3a78ff; } } .form { display: flex; flex-direction: column; gap: 10rpx; box-sizing: border-box; padding: 20rpx 40rpx; } .form-item { display: flex; align-items: center; font-size: 30rpx; padding: 6rpx 0; gap: 12rpx; .title { width: 208rpx; flex-shrink: 0; text { color: red; font-weight: bold; } } .right { // width: 450rpx; flex: 1; border-radius: 22rpx; border: 1px solid #acacac; position: relative; display: flex; picker { width: 100%; } .uni-combox { width: 100% } } .righton { width: 450rpx; border-radius: 22rpx; border: 1px solid #e4e4e4; background-color: #e4e4e4; } input { width: 100%; padding: 8rpx 20rpx; font-size: 30rpx; } textarea { width: 98%; padding: 8rpx 20rpx; font-size: 30rpx; } .icon-wrapper { background-color: #3A78FF; width: 52rpx; height: 52rpx; border-radius: 100%; display: flex; justify-content: center; align-items: center; flex-shrink: 0; .uni-icons { color: #fff !important; } } .icon-wrapper[disabled] { background-color: rgba(228, 228, 228, 1); pointer-events: none; touch-action: none; } } .none-border { border: none !important; } .radio_Container { display: flex; flex-direction: row; gap: 30rpx; } .list { width: 100%; .card-detail { width: 100%; display: flex; flex-wrap: wrap; justify-content: space-between; line-height: 120%; .detail { // width: 50%; font-size: 26rpx; margin-bottom: 12rpx; color: #555; margin-right: 20rpx; text { color: #999; font-size: 26rpx; } } } .more { color: #888; font-size: 24rpx; display: flex; border-top: 1px solid #eee; padding-top: 20rpx; .part { width: 50%; text-align: center; } } } .card-item-wrapper { display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; padding: 20rpx 20rpx; .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; } } .operation { display: flex; align-items: center; gap: 10rpx; .btn-a { background-color: #3A78FF; color: #fff; } .btn-b { background-color: rgb(255, 87, 34); color: #fff; } uni-button {} } } .more { color: #888; font-size: 24rpx; display: flex; border-top: 1px solid #eee; padding-top: 20rpx; .part { width: 50%; text-align: center; } } } .attachment-btns { display: flex; flex-direction: row; justify-content: flex-start; gap: 6rpx; } pages/MJGL/style/MJListStyle.scss
pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast.vue
@@ -461,8 +461,9 @@ }) }, HKeeperNameChange(e) { console.log(e) let keeperItem = this.HKeeperList.find(elem => elem.HName = e) console.log(this.HKeeperList) let keeperItem = this.HKeeperList.find(elem => elem.HName == e) console.log(keeperItem) this.detailManifestItem.HKeeperID = keeperItem.HItemID this.detailManifestItem.HKeeperName = keeperItem.HName pages/ZLGL/zaikujianyandan/InStockCheckBillList.vue
New file @@ -0,0 +1,333 @@ <template> <view> <view class="header" id="list_header"> <view class="form"> <view class="form-item"> <view class="title">单据号:</view> <view class="right"> <input name="HBillNo" v-model="hform.HBillNo" placeholder="请输入单据号" /> </view> </view> <view class="form-item"> <view class="title">开始时间:</view> <view class="right"> <picker mode="date" :value="hform.HBeginDate" @change="HBeginDateChange"> <view class="picker-overlay"></view> <input name="HBeginDate" disabled :value="hform.HBeginDate" placeholder="请选择" /> </picker> </view> </view> <view class="form-item"> <view class="title">结束时间:</view> <view class="right"> <picker mode="date" :value="hform.HEndDate" @change="HEndDateChange"> <view class="picker-overlay"></view> <input name="HEndDate" disabled :value="hform.HEndDate" placeholder="请选择" /> </picker> </view> </view> </view> <view class="buttons"> <button class="btn-a" size="mini" type="default" @tap="clear">重置</button> <button class="btn-b" size="mini" type="default" @tap="creat">新增</button> <button class="btn-c" size="mini" type="default" @tap="search">查询</button> </view> </view> <scroll-view scroll-y="true" @scroll="scrollHandler" :scroll-top="contentScrollTop" :style="{height: calcHeight + 'px'}" class="content"> <view class="over" v-if="billList.length == 0"> 暂无数据 </view> <view v-else class="list" v-for="(item,index) in billList" :key="index"> <uni-card style="margin: 10px;"> <view class="card-detail"> <view class="detail"> <text>单据号:</text>{{item["单据号"]}} </view> <view class="detail"> <text>物料代码:</text>{{item["物料代码"]}} </view> <view class="detail"> <text>物料名称:</text>{{item["物料名称"]}} </view> <view class="detail"> <text>规格型号:</text>{{item["规格型号"]}} </view> <view class="detail"> <text>计量单位:</text>{{item["计量单位"]}} </view> <view class="detail"> <text>合格数量:</text>{{item["合格数量"]}} </view> <view class="detail"> <text>不合格数量:</text>{{item["不合格数量"]}} </view> </view> </uni-card> </view> </scroll-view> <uni-pagination id="pagination" v-model="curPage" :pageSize="size" :total="length"></uni-pagination> </view> </template> <script> import dayjs from 'dayjs'; import { CommonUtils } from '../../../utils/common'; import { getUserInfo } from '../../../utils/auth'; export default { name: "InStockCheckBillList", data() { return { contentScrollTop: 0, contentScrollTopOld: 0, headerHeight: 0, paginationHeight: 0, curPage: 1, size: 50, length: 0, hform: { HBillNo: "", HBeginDate: dayjs(new Date()).subtract(30, "d").format("YYYY-MM-DD"), HEndDate: dayjs(new Date()).format("YYYY-MM-DD") }, billList: [], }; }, computed: { calcHeight: { get() { console.log('this.paginationHeight - this.headerHeight: ', this.paginationHeight - this .headerHeight); return this.paginationHeight - this.headerHeight } } }, onLoad() { this.getDisplayPage() }, onReady() { this.getScrollHeight() }, methods: { getScrollHeight() { const query = uni.createSelectorQuery().in(this) query .select("#list_header") .boundingClientRect() .select("#pagination") .boundingClientRect() .exec(res => { this.headerHeight = Math.ceil(res[0].bottom) this.paginationHeight = Math.floor(res[1].top) }) }, scrollToTop() { this.contentScrollTop = this.contentScrollTopOld; this.$nextTick(() => { this.contentScrollTop = 0 }); }, scrollHandler(e) { this.contentScrollTopOld = e.detail.scrollTop }, creat() { uni.navigateTo({ url: "/pages/ZLGL/zaikujianyandan/InStockCheckBill?operationType=1" }) }, search() { this.getDisplayPage() }, clear() { this.hform.HBillNo = "" this.hform.HBeginDate = dayjs(new Date()).subtract(7, 'd').format("YYYY-MM-DD") this.hform.HEndDate = dayjs(new Date()).format("YYYY-MM-DD") this.getDisplayPage() }, async getDisplayPage() { let sWhere = ` and 日期 BETWEEN CAST('${this.hform.HBeginDate}' AS DATE) AND CAST('${this.hform.HEndDate}' AS DATE) ` if(this.hform.HBillNo){ sWhere += ` and 单据号 like '${this.hform.HBillNo}'` } try { let res = await CommonUtils.doRequest2Async({ url: 'QC_InStockCheckBillController/getListPage', data: { sWhere: sWhere, user: getUserInfo()['Czymc'], page: this.curPage, size: this.size } }) let { count, data, Message } = res.data if (count >= 0) { console.log('data: ',data); this.length = count this.billList = data } else { CommonUtils.showTips({ title: '温馨提示', message: '获取在库检验单失败: ' + Message }) } } catch (err) { CommonUtils.showTips({ title: '温馨提示', message: '获取在库检验单失败: ' + err }) } } } } </script> <style lang="scss"> .header { padding: 20rpx 20rpx; } .form { width: 640rpx; } .form-item { display: flex; align-items: center; font-size: 28rpx; padding: 6rpx 0; .title { width: 180rpx; text { color: red; font-weight: bold; } } .right { width: 450rpx; border-radius: 22rpx; border: 1px solid #acacac; position: relative; } .righton { width: 450rpx; border-radius: 22rpx; border: 1px solid #e4e4e4; background-color: #e4e4e4; } input { width: 100%; padding: 8rpx 20rpx; font-size: 30rpx; } } .buttons { width: 100%; display: flex; justify-content: center; padding-top: 20rpx; button { border-radius: 50rpx; width: 180rpx; height: 66rpx; line-height: 66rpx; font-size: 28rpx; } .btn-a { background-color: #acacac; color: #fff; } .btn-b { background-color: #41a863; color: #fff; } .btn-c { background-color: #3a78ff; color: #fff; } } #pagination { position: fixed; bottom: 0; width: 100%; padding: 20rpx 0; } .list { width: 100%; .card-detail { width: 100%; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; line-height: 120%; gap: 10rpx 0; input { font-size: 26rpx; } .detail { // width: 50%; box-sizing: border-box; font-size: 26rpx; color: #555; padding-right: 20rpx; text { color: #999; font-size: 26rpx; } } .editable { width: 50%; display: inline-flex; flex-direction: row; align-items: center; text { flex-shrink: 0; } .sampleDestory { border: 1px solid #acacac; border-radius: 5rpx; padding: 0 12rpx; } } } } </style> pages/index/login.vue
@@ -105,7 +105,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/', // 小卫内外网 pages/index/tab3.vue
@@ -131,6 +131,26 @@ id: 14, hidden: true, }, "img": "../../static/icon/icon8.png", "text": "模具报废出库单列表", "url": "/pages/MJGL/MouldScrapOutBill/MouldScrapOutBillList", "id": 51, "hidden": false }, { "img": "../../static/icon/icon8.png", "text": "设备保养记录单", "url": "/pages/MJGL/Sb_EquipMaintainBill/Sb_EquipMaintainBill", "id": 53, "hidden": false }, { "img": "../../static/icon/icon8.png", "text": "设备点检记录单", "url": "/pages/MJGL/Sb_EquipDotCheckBill/Sb_EquipDotCheckBill", "id": 55, "hidden": false } ] } }, pages/index/tab4.vue
@@ -112,7 +112,28 @@ "id": 55, "hidden": false }, { "img": "../../static/icon/icon8.png", "text": "车间自检单查询", "url": "/pages/ZLGL/WorkSelfCheckBill/WorkSelfCheckBillList", "id": 55, "hidden": false }, { "img": "../../static/icon/icon8.png", "text": "在库检验单", "url": "/pages/ZLGL/zaikujianyandan/InStockCheckBill", "id": 57, "hidden": false }, { "img": "../../static/icon/icon8.png", "text": "在库检验单缓存", "url": "/pages/ZLGL/zaikujianyandan/InStockCheckBillList", "id": 57, "hidden": false } ] } pages/shengchanbuliaojiaoyan/MateReplenishOutCheckBill.vue
@@ -502,7 +502,7 @@ for (var i = 0; i < this.HStockPlaceNameList.length; i++) { if (this.HStockPlaceNameList[i].仓位名称 == e) { this.hform.HStockPlaceName = this.HStockPlaceNameList[i].仓位名称 this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HItemID this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HMainID } } }, pages/shengchandiaobo/MoveStockBill.vue
@@ -439,6 +439,7 @@ console.log('调入仓库: ',e); for (var i = 0; i < this.HWHNameList.length; i++) { if (this.HWHNameList[i].仓库名称 == e) { console.log('调入仓库: ',this.HWHNameList[i]); this.hform.HWHName = this.HWHNameList[i].仓库名称 this.hform.HWHID = this.HWHNameList[i].HItemID @@ -457,12 +458,13 @@ console.log('调出仓库: ',e); for (var i = 0; i < this.HWHNameList.length; i++) { if (this.HWHNameList[i].仓库名称 == e) { console.log('调出仓库: ',this.HWHNameList[i]); this.hform.HSCWHName = this.HWHNameList[i].仓库名称 this.hform.HSCWHID = this.HWHNameList[i].HItemID if (this.HWHNameList[i]['启用仓位'] == 'Y') { this.showHSCStockPlaceName = true } else { this.hform.HStockPlaceName = '' this.hform.HSCSPName = '' this.showHSCStockPlaceName = false } } @@ -473,7 +475,7 @@ for (var i = 0; i < this.HStockPlaceNameList.length; i++) { if (this.HStockPlaceNameList[i].仓位名称 == e) { this.hform.HStockPlaceName = this.HStockPlaceNameList[i].仓位名称 this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HItemID this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HMainID } } }, @@ -482,7 +484,7 @@ for (var i = 0; i < this.HStockPlaceNameList.length; i++) { if (this.HStockPlaceNameList[i].仓位名称 == e) { this.hform.HSCSPName = this.HStockPlaceNameList[i].仓位名称 this.hform.HSCSPID = this.HStockPlaceNameList[i].HItemID this.hform.HSCSPID = this.HStockPlaceNameList[i].HMainID } } }, @@ -649,7 +651,6 @@ var sOldBarCode = HBarCode var HDeleteFlag = sOldBarCode.substring(0, 1); var sBarCode = sOldBarCode.slice(1); var sHWHID = this.hform.HWHID var sHSPID = this.hform.HStockPlaceID let sHSCWHID = this.hform.HSCWHID @@ -750,10 +751,10 @@ HBillType: this.hform.HBillType, HBillNo: this.hform.HBillNo, HMaker: this.hform.HMaker, HWhID: sHWHID, HSPID: sHSPID, HSCWHID: sHSCWHID, HSCSPID: sHSCSPID, HWhID: this.hform.HSCWHID, HSPID: this.hform.HSCSPID, HSCWHID: this.hform.HWHID, HSCSPID: this.hform.HStockPlaceID, HQty: sHQty, // HRedBlueFlag: this.hform.HRedBlueFlag, // SourceFlag: HSourceFlag, pages/shengchanlingliao/PPickingCheckBill.vue
@@ -598,8 +598,9 @@ HStockPlaceNameChange(e) { for (var i = 0; i < this.HStockPlaceNameList.length; i++) { if (this.HStockPlaceNameList[i].仓位名称 == e) { console.log('e: ',this.HStockPlaceNameList[i]); this.hform.HStockPlaceName = this.HStockPlaceNameList[i].仓位名称 this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HItemID this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HMainID } } }, uni_modules/zxz-uni-data-select/components/zxz-uni-data-select/zxz-uni-data-select.vue
@@ -604,7 +604,7 @@ box-sizing: border-box; //border-radius: 4px; border-radius: 22rpx; border: 1px solid #acacac; // border: 1px solid #acacac; padding: 0 5px; padding-left: 10px; position: relative;