From a243788a279cb0fdd3aa1721fec896f39a218353 Mon Sep 17 00:00:00 2001 From: jjLv <1981429112@qq.com> Date: Thu, 21 Aug 2025 15:29:01 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.js | 4 +- pages.json | 13 + pages/enterAndExit/enter/add.vue | 358 +++++++++++------- pages/enterAndExit/enter/index.vue | 4 +- pages/enterAndExit/enter/recordDetail.vue | 16 +- pages/enterAndExit/enter/selectDocument.vue | 7 +- pages/enterAndExit/enter/selectGoods.vue | 224 +++++------ pages/enterAndExit/exit/add.vue | 236 +++++++++--- pages/enterAndExit/exit/index.vue | 4 +- pages/enterAndExit/exit/selectDocument.vue | 5 +- pages/enterAndExit/exit/selectGoods.vue | 202 +++++----- pages/enterAndExit/goods/index.vue | 10 +- pages/enterAndExit/mine/index.vue | 73 ++++ static/images/handheld/tabbar/ic_mine.png | Bin 0 -> 1870 bytes .../images/handheld/tabbar/ic_mine_select.png | Bin 0 -> 2139 bytes static/images/ic_user_photo.png | Bin 0 -> 20521 bytes 16 files changed, 729 insertions(+), 427 deletions(-) create mode 100644 pages/enterAndExit/mine/index.vue create mode 100644 static/images/handheld/tabbar/ic_mine.png create mode 100644 static/images/handheld/tabbar/ic_mine_select.png create mode 100644 static/images/ic_user_photo.png diff --git a/config.js b/config.js index 430c987..8a17790 100644 --- a/config.js +++ b/config.js @@ -12,10 +12,10 @@ module.exports = { // baseUrl: 'http://192.168.2.69:58080',//董高文 // baseUrl: 'http://192.168.0.176:48380',//董高文 // baseUrl: 'http://192.168.2.75:48380',//盛旭 - // #endif + // #endif // #ifdef APP-PLUS // baseUrl: 'http://192.168.2.47:58080', - // baseUrl: 'http://192.168.0.244:38380',//测试 + baseUrl: 'http://192.168.0.244:48380',//测试 // #endif // baseUrl: 'http://localhost:8080', uploadFileUrl: '/app/common/appUploadFile', diff --git a/pages.json b/pages.json index b571aeb..00d7d13 100644 --- a/pages.json +++ b/pages.json @@ -36,6 +36,13 @@ "navigationBarTitleText": "出库" } }, + { + "path": "pages/enterAndExit/mine/index", + "style": { +// "navigationStyle": "custom" + "navigationBarTitleText": "我的" + } + }, { "path": "pages/enterAndExit/enter/recordDetail", "style": { @@ -110,6 +117,12 @@ "iconPath": "static/images/handheld/tabbar/ic_out.png", "selectedIconPath": "static/images/handheld/tabbar/ic_out_select.png", "text": "" + }, + { + "pagePath": "pages/enterAndExit/mine/index", + "iconPath": "static/images/handheld/tabbar/ic_mine.png", + "selectedIconPath": "static/images/handheld/tabbar/ic_mine_select.png", + "text": "" } ] }, diff --git a/pages/enterAndExit/enter/add.vue b/pages/enterAndExit/enter/add.vue index 99de33b..41f08d4 100644 --- a/pages/enterAndExit/enter/add.vue +++ b/pages/enterAndExit/enter/add.vue @@ -2,9 +2,9 @@ - + - + - - + - + - + - - - + + + + + + + + - + - - - - 选择货品 - - - - 选择采购订单 + + + + + 选择货品 + + + + 选择采购订单 + @@ -85,17 +82,25 @@ - 计量单位: + 计量单位: {{ item.unitName }} - 单价(元): - {{ item.unitPrice / 100 }} + 单价(元): + + + + - 供应商: + *供应商: - 数量: + *数量: - + - 生产日期: - + *生产日期: + @@ -126,8 +131,8 @@ - 保质截止日期: - + *保质截止日期: + @@ -138,31 +143,29 @@ + + + + + + 全选 + + + + 合计: + ¥{{ totalMoney }} + + + 总数量: + {{ totalNum }} + + + + + - - - - - - - 全选 - - - - 合计: - ¥{{ totalMoney }} - - - 总数量: - {{ totalNum }} - - - - - + { if (tf) { + this.isUploading = false + return + } + if (this.checkIsExist(item.supplierId)) { + this.isUploading = false + uni.showToast({ + title: '请选择【' + item.materialName + '】的供应商', + icon: 'none' + }) + tf = true return } if (this.checkIsExist(item.purNum)) { + this.isUploading = false uni.showToast({ title: '请输入货品:【' + item.materialName + '】的数量', icon: 'none' @@ -459,6 +482,7 @@ export default { return } if (item.orderNum && item.orderNum > 0 && item.purNum > item.orderNum) { + this.isUploading = false uni.showToast({ title: '货品:【' + item.materialName + '】的入库数量不能大于采购订单数量【'+item.orderNum+'】', icon: 'none' @@ -467,6 +491,7 @@ export default { return } if (this.checkIsExist(item.productDate)) { + this.isUploading = false uni.showToast({ title: '请选择货品:【' + item.materialName + '】的生产日期', icon: 'none' @@ -475,6 +500,7 @@ export default { return } if (this.checkIsExist(item.expireTime)) { + this.isUploading = false uni.showToast({ title: '请选择货品:【' + item.materialName + '】的保质截止日期', icon: 'none' @@ -484,6 +510,7 @@ export default { } //判断保质截止日期是否大于生产日期 if (new Date(item.expireTime) < new Date(item.productDate)) { + this.isUploading = false uni.showToast({ title: '货品:【' + item.materialName + '】的保质截止日期不能小于生产日期', icon: 'none' @@ -517,6 +544,7 @@ export default { this.$tab.reLaunch('/pages/enterAndExit/enter/index') }, 1000) }else { + this.isUploading = false uni.$u.toast('入库失败,请稍后再试') } @@ -524,9 +552,14 @@ export default { checkIsExist(param) { return param == null || param === '' || param === undefined }, - calculateTotal() { + calculateTotal(e) { + if (!e || typeof e.purNum === 'undefined' || typeof e.unitPrice === 'undefined') { + }else{ + e.totalPrice = (e.unitPrice * e.purNum || 0).toFixed(0) + } + this.totalMoney = this.imsIntoInventoryDetailVOList.reduce((sum, item) => { - return sum + (item.unitPrice * item.purNum / 100 || 0) + return sum + (item.unitPrice * item.purNum || 0) }, 0).toFixed(2) this.totalNum = this.imsIntoInventoryDetailVOList.reduce((sum, item) => { return sum + (item.purNum ? parseFloat(item.purNum) : 0); @@ -575,14 +608,44 @@ export default { diff --git a/pages/enterAndExit/exit/add.vue b/pages/enterAndExit/exit/add.vue index 5174e75..48e3af7 100644 --- a/pages/enterAndExit/exit/add.vue +++ b/pages/enterAndExit/exit/add.vue @@ -2,9 +2,9 @@ - + - + - - + - + - + - + - - + - - - - 选择货品 - - - - 选择领料单 + + + + + 选择货品 + + + + 选择领料单 + @@ -95,9 +91,10 @@ - 领取数量: + *领取数量: - + @@ -108,22 +105,20 @@ - + - 全选 + 全选 - - - 总数量: - {{ totalNum }} + + + 总数量: + {{ totalNum }} - - + + { if (tf) { + this.isUploading = false return } if (this.checkIsExist(item.fetchNum)) { + this.isUploading = false uni.showToast({ title: '请输入货品:【' + item.materialName + '】的数量', icon: 'none' @@ -383,8 +410,9 @@ export default { return } if (item.materialNum && item.materialNum > 0 && item.fetchNum > item.materialNum) { + this.isUploading = false uni.showToast({ - title: '货品:【' + item.materialName + '】的出库数量不能大于库存数量【'+item.materialNum+'】', + title: '货品:【' + item.materialName + '】的出库数量不能大于库存数量【' + item.materialNum + '】', icon: 'none' }) tf = true @@ -397,9 +425,9 @@ export default { }, async uploadDate() { - var list = this.imsOutInventoryDetailAddList; - const now = new Date(); - const dateTime = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}`; + var list = this.imsOutInventoryDetailAddList + const now = new Date() + const dateTime = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}` let param = { ...this.form, imsOutInventoryDetailAddList: list, @@ -413,19 +441,29 @@ export default { setTimeout(() => { this.$tab.reLaunch('/pages/enterAndExit/exit/index') }, 1000) - }else { - uni.$u.toast('入库失败,请稍后再试') + } else { + this.isUploading = false + uni.$u.toast('出库失败,请稍后再试') } }, checkIsExist(param) { return param == null || param === '' || param === undefined }, - calculateTotal() { + calculateTotal(e) { + if (!e || typeof e.fetchNum === 'undefined') { + this.totalNum = 0 + }else if(e.fetchNum && e.fetchNum < 0) { + uni.showToast({ + title: '领取数量不能小于0', + icon: 'none' + }) + e.fetchNum = undefined + } this.totalNum = this.imsOutInventoryDetailAddList.reduce((sum, item) => { - return sum + (item.fetchNum ? parseFloat(item.fetchNum) : 0); - }, 0); - }, + return sum + (item.fetchNum ? parseFloat(item.fetchNum) : 0) + }, 0) + } } } @@ -436,11 +474,41 @@ page { min-height: 100vh; background-size: 100% 100%; } +.u-form-item { + min-height: 80rpx !important; + padding: 20rpx 0 !important; +} +.button-group { + display: flex; + justify-content: space-around; + width: 100%; +} +.action-button { + width: 48%; + height: 110rpx; + border-radius: 8rpx; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.button-icon { + width: 40rpx; + height: 40rpx; + margin-bottom: 10rpx; +} + +.button-text { + color: #FFFFFF; + font-size: 28rpx; +} .health-form { padding: 20rpx; height: 100vh; background-color: #F7F7F7; + overflow-y: hidden; .chronic-diseases { margin-top: 20rpx; @@ -452,13 +520,70 @@ page { display: block; } } - - .submit-btn { - margin-top: 40rpx; - display: flex; - } } +.submit-btn { + display: flex; + align-items: center; + justify-content: space-between; + padding: 20rpx; + background: #fff; + position: fixed; + bottom: 0; + left: 0; + right: 0; + height: 100rpx; + box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05); +} + +.checked { + display: flex; + align-items: center; + width: 20%; +} + +.check-all-text { + margin-left: 10rpx; + font-size: 26rpx; +} + +.total-info { + width: 30%; +} + +.total-item { + display: flex; + align-items: center; +} + +.total-label { + font-size: 20rpx; + color: #A69F9A; +} + +.total-value { + font-size: 28rpx; + color: #FF6816; + font-weight: bold; + margin-left: 10rpx; +} + +.action-btn { + width: 150rpx !important; + height: 70rpx !important; + border-radius: 8rpx !important; + margin-left: 20rpx !important; +} + +.delete-btn { + background: linear-gradient(270deg, #F87665 0%, #E43D26 100%) !important; + color: white !important; +} + +.save-btn { + background: linear-gradient(270deg, #FFB679 0%, #EF882E 100%) !important; + color: white !important; +} .searchInput { width: 80%; height: 40px; @@ -475,6 +600,7 @@ page { background: #fff; margin-top: 10px; border-radius: 23rpx; + .scroll-view-item_content { width: 100%; display: flex; @@ -526,9 +652,11 @@ page { } } } -::v-deep .uni-scroll-view-content{ - max-height: 16vh!important; + +::v-deep .uni-scroll-view-content { + max-height: 16vh !important; } + ::v-deep .u-form-item { min-height: 100rpx; diff --git a/pages/enterAndExit/exit/index.vue b/pages/enterAndExit/exit/index.vue index 639e81c..7c7a8cc 100644 --- a/pages/enterAndExit/exit/index.vue +++ b/pages/enterAndExit/exit/index.vue @@ -12,10 +12,10 @@ - + {{ item.outDate }} - 详情 diff --git a/pages/enterAndExit/exit/selectDocument.vue b/pages/enterAndExit/exit/selectDocument.vue index 933bb14..7b5db4d 100644 --- a/pages/enterAndExit/exit/selectDocument.vue +++ b/pages/enterAndExit/exit/selectDocument.vue @@ -95,10 +95,11 @@ export default { pageSize: this.pageSize, materialName: this.searchValue, areaId: this.form.areaId, + warehouseId: this.form.warehouseId, } var param = "" if (this.form.areaId){ - param = "&areaId=" + this.form.areaId + param = "&areaId=" + this.form.areaId + "&warehouseId=" + this.form.warehouseId } try { const res = await getMaterialRequisitionForm(params,param) @@ -139,7 +140,7 @@ export default { const orderGoodsDetailList = res.rows orderGoodsDetailList.forEach(item => { item.materialNum = item.fetchNum - item.fetchNum = '' + this.form.remark = this.form.remark || '' }) url += '?selectList=' + encodeURIComponent(JSON.stringify(orderGoodsDetailList)) + '&form=' + JSON.stringify(this.form) uni.navigateTo({ diff --git a/pages/enterAndExit/exit/selectGoods.vue b/pages/enterAndExit/exit/selectGoods.vue index be2a85e..7a2a28b 100644 --- a/pages/enterAndExit/exit/selectGoods.vue +++ b/pages/enterAndExit/exit/selectGoods.vue @@ -1,52 +1,41 @@ @@ -56,11 +45,16 @@ import UButton from '@/uni_modules/uview-ui/components/u-button/u-button.vue' import UniEasyinput from '@/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue' import { getInBoundGoodsApi } from '@/api/enterExit' +import UniTr from '@/uni_modules/uni-table/components/uni-tr/uni-tr.vue' +import UniTd from '@/uni_modules/uni-table/components/uni-td/uni-td.vue' +import UniTh from '@/uni_modules/uni-table/components/uni-th/uni-th.vue' +import UniTable from '@/uni_modules/uni-table/components/uni-table/uni-table.vue' export default { - components: { UniEasyinput, UButton }, + components: { UniTable, UniTh, UniTd, UniTr, UniEasyinput, UButton }, data() { return { + fontValue: uni.getStorageSync('fontSize') || 8, tableList: [], allChecked: false, searchValue: '', @@ -101,6 +95,7 @@ export default { pageNum: this.pageNum, pageSize: this.pageSize, areaId: this.form.areaId, + warehouseId: this.form.warehouseId, materialName: this.searchValue } try { @@ -127,38 +122,16 @@ export default { console.log(error) } }, - // 单个商品的选择 - checkClick(item) { - item.checked = !item.checked - if (!item.checked) { - this.allChecked = false - } else { - // 判断每一个商品是否是被选择的状态 - const goods = this.tableList.every(item => { - return item.checked === true - }) - if (goods) { - this.allChecked = true - } else { - this.allChecked = false + selectChange(e){ + let arr = [] + this.selectList = [] + let selectedIndex = [] + selectedIndex = e.detail.index + selectedIndex.forEach(i => { + if (!this.selectList.some(item => item.materialId === this.tableList[i].materialId)) { + this.selectList.push(this.tableList[i]) } - } - this.selectList = this.tableList.filter(item => item.checked) - console.log('Selected items:', this.selectList) - }, - checkAll() { - this.allChecked = !this.allChecked - if (this.allChecked) { - this.tableList.map(item => { - item.checked = true - }) - } else { - this.tableList.map(item => { - item.checked = false - }) - } - this.selectList = this.tableList.filter(item => item.checked) - console.log('Selected items:', this.selectList) + }) }, navigateTo(url) { url += '?selectList=' + encodeURIComponent(JSON.stringify(this.selectList)) + '&form=' + JSON.stringify(this.form) @@ -176,56 +149,34 @@ export default { width: 100%; } -.search-form { - display: flex; - width: 98%; - margin-top: 10px; - - .searchInput { - width: 300px; - height: 40px; - margin-left: 10px; - font-size: 28rpx; - font-family: PingFang SC-Regular; - } - - .searchBtn { - margin-left: 10px; - height: 35px; - } -} - .content { display: flex; flex-direction: column; align-items: center; justify-content: center; - height: 100%; + height: 100vh; width: 100%; -} + .search-form { + display: flex; + width: 98%; -.logo { - height: 200rpx; - width: 200rpx; - margin-top: 200rpx; - margin-left: auto; - margin-right: auto; - margin-bottom: 50rpx; -} + .searchInput { + width: 300px; + height: 40px; + margin-left: 10px; + font-size: 28rpx; + font-family: PingFang SC-Regular; + } -.list_title { - color: black; - flex: 1; - display: flex; - justify-content: space-around; - align-items: center; - font-family: PingFang SC-Medium; - font-weight: 500; - color: #A69F9A; -} + .searchBtn { + margin-left: 10px; + height: 35px; + } + } +} .list_item { - flex: 1; + width: 25vw; display: flex; justify-content: space-around; align-items: center; @@ -246,7 +197,32 @@ export default { font-size: 36rpx; color: #8f8f94; } +/deep/ .tableHeader { + font-weight: bold; + color: #333; + background: #f8f8f8; + z-index: 20; + position: absolute; + top: 0; + width: 100%; + max-width: 100vw; +} +/deep/ .uni-table-td[data-v-321f8e79] { + display: flex; + padding: 12px 10px; + font-size: 14px; + border-bottom: 1px #EBEEF5 solid; + font-weight: 400; + color: #606266; + line-height: 23px; + box-sizing: border-box; +} + +/deep/ .tr-table--border[data-v-c2c83a8e] { + border-right: 1px #ebeef5 solid; + display: flex; +} ::v-deep .u-checkbox { margin-bottom: 16rpx; @@ -272,6 +248,8 @@ export default { /deep/ uni-checkbox .uni-checkbox-input:hover { border-color: #ddd; } - +/deep/.uni-table{ + min-width: 0 !important; +} diff --git a/pages/enterAndExit/goods/index.vue b/pages/enterAndExit/goods/index.vue index cfb3c67..3de3d5e 100644 --- a/pages/enterAndExit/goods/index.vue +++ b/pages/enterAndExit/goods/index.vue @@ -8,7 +8,7 @@ - + {{item.materialName}} @@ -84,6 +84,13 @@ export default { console.log(error) } }, + handleImage(item) { + if (item.materialImage) { + return item.materialImage + } else { + return '/static/images/handheld/ic_goods_img.jpg' + } + } } } @@ -93,6 +100,7 @@ page { //从上到下渐变 min-height: 88vh; background-size: 100% 100%; + overflow-y: hidden; } .content { diff --git a/pages/enterAndExit/mine/index.vue b/pages/enterAndExit/mine/index.vue new file mode 100644 index 0000000..d05bfa3 --- /dev/null +++ b/pages/enterAndExit/mine/index.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/static/images/handheld/tabbar/ic_mine.png b/static/images/handheld/tabbar/ic_mine.png new file mode 100644 index 0000000000000000000000000000000000000000..6f830c5fffa763574455d6c5252f87cc1dcf51c1 GIT binary patch literal 1870 zcmV-U2eJ5xP)Px+2uVaiRA@u(nQd%aR~g6u&#~h)OS;6BMiL513Cl_c6-8rX-Ai9UO1JK%6;rLo z*G+nFh;Py%TJd25#0MksfeHzARqNW`a&OYw-f%mnGHuW?Xor9eiLKg;7;8pZ%BYgD zHDyiG#V_Y!$BCoFsy1o8w?*Dh67oX=jgeyNN8jaS~0?>BsI1hlYqy)MW z4~s-1zShq!-AaN(U|tQPn&NYr$C&UZVt({Oj*_Nn=G@lfI&iZ8z^#JC06?E-=GQ^= zYcQV%5rMe{zy=~(&djHY(HZPA|KKLHtH4Ps79x-Z!kaAd?NFEb^rc`@R$>Fd4+3am zun{tPl5Rn}2AuAT-^PUB0d%6GCil%i;QlcM@zhg$E6%Fzy3!ut0(Y^C197 zHQnqetx5L9+k~KFEM=$G)pO8kE4u@1C!S{JCe1LvFk5iiPP_!>H-m<`NzJFM#1lkl z3hLo6&t8|Z;(sHeGeJGvwh(|RZN=YXz|stJ=Nu3_t}M1m5^eLaWH6;ccr2)!+vl!J z>>=i^pkZF^^zXFe7EVQ@eyZ}GV_=u2hgIgC8JU3tOLI~jCs6D3<0p{U0X&kQFyQM6oFs$N39ctXMDy4+WNd_`t0s#Bn0><~@am zj*i~9KMXiyS=Zz#Kf=s;Vtn1LBEl65m%wI<2jDaycg{X_&4y3*$J>ap4~%6Cws

~X7ZvcSk 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 R85IBk002ovPDHLkV1oXv1J3{e literal 0 HcmV?d00001 diff --git a/static/images/ic_user_photo.png b/static/images/ic_user_photo.png new file mode 100644 index 0000000000000000000000000000000000000000..4d0c916441b1d1aca4b810b18a18797f9dbc1596 GIT binary patch literal 20521 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 literal 0 HcmV?d00001