diff --git a/api/hj.js b/api/hj.js index 3fdfa28..6c003b3 100644 --- a/api/hj.js +++ b/api/hj.js @@ -40,7 +40,7 @@ export const reqGetPointBatchDetail = (id) => get(`NDETrust/getPointBatchDetail? /** * 包装管理列表 */ -export const reqPackagingInformationList = (data)=> get(`PackagingManage/GetPackagingInformationList?unitId=${data.unitId}&projectId=${data.projectId}&pageindex=${data.pageIndex}&pagesize=${data.pageSize}&packagingCode=${data.packagingCode}&hasTrainNumber=${data.hasTrainNumber}`) +export const reqPackagingInformationList = (data={})=> get(`PackagingManage/GetPackagingInformationList?unitId=${data.unitId}&projectId=${data.projectId}&pageindex=${data.pageIndex}&pagesize=${data.pageSize}&packagingCode=${data.packagingCode}&hasTrainNumber=${data.hasTrainNumber}`) /** * 获取包装编号 */ @@ -53,4 +53,24 @@ export const reqPackagingManage = ()=>get(`PackagingManage/GetPackagingCategorie /** * 保存包装 */ -export const reqSavePackaging = (data)=> post(`PackagingManage/SavePackaging`, data) \ No newline at end of file +export const reqSavePackaging = (data)=> post(`PackagingManage/SavePackaging`, data) +/** + * 请求包装详情 + */ +export const reqPackagingInformationById = (params={})=>get(`PackagingManage/GetPackagingInformationById?projectId=${params.projectId||''}&personId=${params.personId||''}&packagingManageId=${params.packagingManageId||''}`) +/** + * 请求预制组件详情 + */ +export const reqPipelineComponentById = (params={})=>get(`/PipelineComponent/GetPipelineComponentById?projectId=${params.projectId}&personId=${params.personId}&PipelineComponentId=${params.PipelineComponentId}`) +/** + * 添加预制组件到包装中 + */ +export const reqSavePipelineComponentToPackaging = (params={})=>get(`/PackagingManage/SavePipelineComponentToPackaging?packagingManageId=${params.packagingManageId}&pipelineComponentId=${params.pipelineComponentId}`) +/** + * 从预制组件中删除包装 + */ +export const reqDeletePipelineComponentFromPackaging = (id)=>get(`/PackagingManage/DeletePipelineComponentFromPackaging?pipelineComponentId=${id}`) +/** + * 包装确认到场 + */ +export const reqPackingInfoConfirmArrival = (params={})=>get(`/PackagingManage/GetPackingInfoConfirmArrival?packagingManageId=${params.packagingManageId}&PersonId=${params.personId}`) \ No newline at end of file diff --git a/assets/css/page.scss b/assets/css/page.scss index cac3593..36cc379 100644 --- a/assets/css/page.scss +++ b/assets/css/page.scss @@ -813,10 +813,145 @@ white-space: nowrap; } + .card-tag { + display: inline-block; + padding: 6rpx 16rpx; + border-radius: 20rpx; + font-size: 24rpx; + background: rgba(153, 153, 153, 0.1); + color: #999; + + &.status-0 { + background: rgba(153, 153, 153, 0.1); + color: #999; + } + + &.status-1 { + background: rgba(255, 167, 38, 0.1); + color: #ffa726; + } + + &.status-2 { + background: rgba(76, 175, 80, 0.1); + color: #4caf50; + } + } + .u-input { flex: 1; background: transparent; } + + &.info-link { + .info-value { + color: #999; + } + + .scan-icon { + margin-left: auto; + } + + &:active { + background: #f8f9fa; + } + } +} + +// 预制组件列表 +.package-group { + margin: 24rpx; + background: #ffffff; + border-radius: 16rpx; + padding: 24rpx; + + .section-title { + font-size: 30rpx; + font-weight: 600; + color: #333; + margin-bottom: 20rpx; + + .section-count { + font-size: 26rpx; + color: #999; + font-weight: 400; + margin-left: 8rpx; + } + } + + .package-card { + background: linear-gradient(135deg, #f8f9fa 0%, #f0f1f3 100%); + border-radius: 12rpx; + padding: 20rpx; + margin-bottom: 16rpx; + box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06); + border: 1rpx solid #e8e9eb; + + &:last-child { + margin-bottom: 0; + } + + .card-header { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 16rpx; + border-bottom: 1rpx dashed #d0d0d0; + + .card-title { + font-size: 28rpx; + font-weight: 600; + color: #333; + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .del-btn { + width: 50rpx; + height: 50rpx; + background: linear-gradient(135deg, #ff6b6b, #ff4d4f); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 4rpx 16rpx rgba(255, 77, 79, 0.4); + border: 2rpx solid rgba(255, 255, 255, 0.3); + flex-shrink: 0; + margin-left: 16rpx; + + &:active { + transform: scale(0.9); + box-shadow: 0 2rpx 8rpx rgba(255, 77, 79, 0.3); + } + } + } + + .card-body { + padding-top: 16rpx; + + .card-row { + display: flex; + justify-content: space-between; + align-items: center; + padding: 10rpx 0; + + .row-label { + font-size: 24rpx; + color: #999; + } + + .row-value { + font-size: 26rpx; + color: #333; + max-width: 60%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } + } + } } // 底部按钮 @@ -837,7 +972,6 @@ flex: 1; margin: 0; } - } // 网格页面(试压管理等) diff --git a/pages.json b/pages.json index 38d54b6..691f250 100644 --- a/pages.json +++ b/pages.json @@ -73,6 +73,12 @@ "style": { "navigationBarTitleText": "包装管理" } + }, + { + "path": "deliver/list", + "style": { + "navigationBarTitleText": "发货管理" + } } ] } diff --git a/pipe/deliver/list.vue b/pipe/deliver/list.vue new file mode 100644 index 0000000..e69de29 diff --git a/pipe/packaging/add.vue b/pipe/packaging/add.vue index 790d3f6..2cb186e 100644 --- a/pipe/packaging/add.vue +++ b/pipe/packaging/add.vue @@ -16,18 +16,19 @@ *包装分类 - + - 保存 + 保存 - + @@ -68,7 +69,10 @@ // ===== 弹窗 ===== const showCategory = ref(false) const categoryList = ref([]) - const selectedCategory = ref({ label: '', value: '' }) + const selectedCategory = ref({ + label: '', + value: '' + }) // ===== 选择事件 ===== const handleShowCategory = () => { @@ -93,7 +97,10 @@ const getCategoryList = async () => { try { const res = await reqPackagingManage() - categoryList.value = Object.entries(res.data || {}).map(([label, value]) => ({ label, value })) + categoryList.value = Object.entries(res.data || {}).map(([label, value]) => ({ + label, + value + })) // 设置默认值为第一个 if (categoryList.value.length > 0 && !form.value.CategoryName) { form.value.CategoryName = categoryList.value[0].label @@ -106,6 +113,14 @@ // ===== 保存 ===== const handleSave = async () => { + + setTimeout(() => { + uni.redirectTo({ + url: '/pipe/packaging/detail?id' + res.data.id + }) + }, 1500) + return + if (!form.value.StackingPosition) { uni.showToast({ title: '请输入预制工作包', @@ -138,7 +153,7 @@ }) setTimeout(() => { uni.redirectTo({ - url: '/pipe/packaging/detail?id'+res.data.id + url: '/pipe/packaging/detail?id' + res.data.id }) }, 1500) } @@ -166,4 +181,4 @@ getPackagingNo() getCategoryList() }) - + \ No newline at end of file diff --git a/pipe/packaging/detail.vue b/pipe/packaging/detail.vue index 02409e3..cecb599 100644 --- a/pipe/packaging/detail.vue +++ b/pipe/packaging/detail.vue @@ -1,8 +1,309 @@ - + \ No newline at end of file diff --git a/pipe/packaging/list.vue b/pipe/packaging/list.vue index 8f9794d..324424d 100644 --- a/pipe/packaging/list.vue +++ b/pipe/packaging/list.vue @@ -233,7 +233,7 @@ n // 列表项点击 const handleItemClick = (item) => { uni.navigateTo({ - url: `/pipe/packaging/detail?id=${item.PackagingManageId}` + url: `/pipe/packaging/detail?id=${item.PackagingManageId}&from=1` }) }