diff --git a/canteen/pages/delivery/apply.vue b/canteen/pages/delivery/apply.vue index 6cf15d7..3776533 100644 --- a/canteen/pages/delivery/apply.vue +++ b/canteen/pages/delivery/apply.vue @@ -34,14 +34,29 @@ data(){ return { headers: [{ - label: '菜品名称', + label: '物资名称', key: 'material_name' },{ label: '规格', key: 'spec_name' + },{ + key: 'brand', + label: '品牌' + },{ + key: 'quality_level', + label: '品级' + },{ + label: '编号', + key: 'm_sn' + },{ + label: '供应商', + key: 'supplier_name' },{ label: '批次', key: 'purchase_id' + },{ + key: 'delivery_number', + label: '出库数量' }], contents: [], warehouse_list: {} diff --git a/canteen/pages/index/index.vue b/canteen/pages/index/index.vue index 56fcd16..5e39a1f 100644 --- a/canteen/pages/index/index.vue +++ b/canteen/pages/index/index.vue @@ -3,7 +3,8 @@ {{ canteen.name }} - {{ canteen.role.name }} + {{ canteen.role }} + 联系电话 {{order.deliver_phone}} - - 证明材料 + + 证明材料-供应端 + + 证明材料-食堂端 + + + + @@ -55,7 +61,7 @@ - + @@ -63,6 +69,28 @@ 已完成 + + + + + 上传凭证信息 + 请在此处上传检验检疫凭证、售卖资质等证书 + + + + + + + + + + + + 取消 + 确定 + + + @@ -89,17 +117,92 @@ contents: [], order: {}, p_sn: '', - type: 4 + type: 4, + is_show_voucher: false, + voucher_list: [] } }, onLoad(options){ // TODO 1、凭证上传流程变动:当采购单状态为已发货状态时,食堂可以上传凭证图片; // TODO 2、食堂收货时,实到数、实收数默认填充采购数量; + // todo 上传凭证参考页面:/uniapp-supplychain/supplier/pages/gonghuo/detail this.p_sn = options.p_sn || ''; // TODO 显示车辆等信息,显示table信息 this.getData(); }, methods: { + // 预览图片 + lookPopupImage(current){ + if(this.voucher_list.length <= 0) return; + this.$u.throttle(() => { + uni.previewImage({ + urls: this.voucher_list, + current: current + }) + }, 500); + }, + // 移除图片 + removeInage(current){ + this.voucher_list.splice(current, 1); + }, + // 上传凭证图片 + uploadImage(){ + let current_count = this.voucher_count - this.voucher_list.length; + if(current_count == 0) return; + uni.chooseImage({ + count: current_count, + complete: result => { + this.voucher_list.push(...result.tempFilePaths); + } + }) + }, + // 用户点击确定,将图片上传至oss,并将url发送给后端 + submitImage(){ + let that = this; + let voucher_list = that.voucher_list; + if(voucher_list.length <= 0){ + return that.$msg('您未上传图片哦'); + }; + that.is_show_voucher = false; + uni.showLoading({ + title: '正在上传中...' + }) + let http_list = []; + voucher_list.map(item => { + let itemP = new Promise((resolve, reject) => { + uploadFile(item, (res) => { + resolve(res); + }, (err) => { + reject(err); + }, this); + }) + http_list.push(itemP); + }) + + Promise.all(http_list).then(res => { + console.log("上传完毕", res); + let images = res.map(item => item.url); + + // todo 图片上传url给后端 + // that.$http(that.API.API_SUPPLIER_PURCHASESAVEVOUCHER, { + // p_sn: that.p_sn, + // images: images, + // }).then(result => { + // uni.hideLoading(); + // that.voucher_list = []; + // that.$msg('凭证已上传成功!') + // }).catch(err => uni.hideLoading()); + + }).catch(err => { + uni.hideLoading(); + uni.showModal({ + title: '', + content: JSON.stringify(err), + showCancel: false, + confirmColor: '#1833F2' + }) + }) + }, getData(){ this.$http(this.API.API_CANTEEN_PURCHASEDETAIL, { p_sn: this.p_sn @@ -223,4 +326,89 @@ margin-right: 0rpx; } } + + .popup-box{ + width: 686rpx; + height: max-content; + display: flex; + justify-content: space-between; + flex-direction: column; + .content{ + .popup-title{ + font-size: 32rpx; + font-weight: bold; + color: #222222; + text-align: center; + margin-top: 40rpx; + } + .popup-desc{ + font-size: 28rpx; + color: #555555; + text-align: center; + margin-top: 20rpx; + margin-bottom: 18rpx; + } + .popup-images{ + display: flex; + flex-wrap: wrap; + padding: 22rpx; + margin-bottom: 18rpx; + .popup-image-item{ + width: 198rpx; + height: 198rpx; + margin: 8rpx; + background: #F5F5F5; + border-radius: 10rpx; + position: relative; + image{ + width: 100%; + height: 100%; + } + .remove-image{ + position: absolute; + right: -8rpx; + top: -16rpx; + color: #e74c3c; + font-size: 40rpx; + padding: 8rpx; + } + } + .popup-image-item-after::after{ + content: '+'; + position: absolute; + left: 30%; + top: 14%; + font-size: 100rpx; + color: #777777; + } + } + .popup-input{ + padding: 0 60rpx; + box-sizing: border-box; + height: 90rpx; + font-size: 28rpx; + color: #555555; + input{ + text-align: right; + } + } + } + .foot-btn{ + height: 90rpx; + width: 100%; + border-top: 1rpx solid #E5E5E5; + display: flex; + box-sizing: border-box; + .popup-btn{ + width: 50%; + height: 100%; + border: none; + border-radius: initial; + &:last-child{ + border-left: 1rpx solid #E5E5E5; + color: #1833F2; + } + } + } + } diff --git a/canteen/pages/purchase/launch.vue b/canteen/pages/purchase/launch.vue index dbd000e..1553bb4 100644 --- a/canteen/pages/purchase/launch.vue +++ b/canteen/pages/purchase/launch.vue @@ -25,7 +25,7 @@ 收货时间 - {{ date }} + {{ date || '请选择收货时间...' }} @@ -64,7 +64,8 @@ }, data(){ return { - date: this.$shared.recordTime(new Date(), '-', 'date'), // 选择时间 + // date: this.$shared.recordTime(new Date(), '-', 'date'), // 选择时间, 默认今天 + date: '', material_list: {}, // 供应商,物资列表,不被渲染,在底层逻辑运作 show_material: false, // 是否显示采购清单按钮 render_material_list: {} // 渲染出来的物资列表 @@ -142,7 +143,18 @@ let detailValue = event.detailValue; // 取出table input被输入的值 let supplier_item = this.render_material_list[supplier_id]; // 取出所在供应商 let material_item = supplier_item.material_list[material_index]; // 取出物资 - material_item.purchase_number.value = detailValue; // 将输入的值赋值给物资 + if(material_item.purchase_limit <= detailValue){ + material_item.purchase_number.value = detailValue; // 将输入的值赋值给物资 + }else{ + uni.showModal({ + title: '温馨提示', + content: '采购数量必须大于起购数量', + showCancel: false, + success: result => { + material_item.purchase_number.value = material_item.purchase_limit; + } + }) + } console.log("render_material_list_change", this.render_material_list); }, // table 操作按钮被点击 @@ -186,18 +198,22 @@ let material_list = this.render_material_list; let list = []; let is_empty = true; // 物资数据是否为空 + let is_right = true; // 采购份数为正常的情况 for(let i in material_list){ if(Object.keys(material_list[i].material_list).length){ is_empty = false; let material = material_list[i].material_list; // 数组写法 let arr = material.map(item => { + if(item.purchase_limit > item.purchase_number.value){ + is_right = false; + }; return { m_id: item.material_id, m_spec_id: item.spec_id, tax_price: item.tax_price, non_tax_price: item.non_tax_price, - purchase_number: item.purchase_number.value || 0 + purchase_number: Number(item.purchase_number.value) || item.purchase_limit } }); // 对象写法: @@ -219,14 +235,24 @@ } console.log("list", list) + let deadline = this.date; + if(!deadline){ + this.$msg('请选择收货时间'); + return; + } if(is_empty){ this.$msg('您未选择物资'); return; } - // let state = ['待发单', '待接单'][_t]; + if(!is_right){ + this.$msg('采购数量需大于起购数量'); + return; + } + // let state = ['待发单', '待审核'][_t]; this.$http(this.API.API_CANTEEN_PURCHASEAPPLY, { order: list, - state: _t + state: _t, + deadline: deadline }).then(res => { console.log("save", res); this.$msg('操作成功'); diff --git a/supplier/pages/index/index.vue b/supplier/pages/index/index.vue index 5c35d23..29998af 100644 --- a/supplier/pages/index/index.vue +++ b/supplier/pages/index/index.vue @@ -3,6 +3,7 @@ {{ supplier.name }} + {{ supplier.role }} { - this.$msg(res.data).then(result => { + this.$msg('操作成功').then(result => { this.$toBack(); }) }) @@ -271,7 +272,7 @@ m_spec_id: item.spec_id, tax_price: item.tax_price.value, non_tax_price: item.non_tax_price.value, - purchase_limit: item.purchase_limit.value || 1 + purchase_limit: Number(item.purchase_limit.value) || 1 }) } }); diff --git a/supplier/pages/order/detail.vue b/supplier/pages/order/detail.vue index df458c3..1c5dba7 100644 --- a/supplier/pages/order/detail.vue +++ b/supplier/pages/order/detail.vue @@ -73,7 +73,8 @@ key: 'non_tax_price' }], contents: [], - q_sn: '' // 订单号 + q_sn: '', // 订单号 + show_count: 0 } }, computed: { @@ -93,6 +94,12 @@ this.q_sn = options.q_sn; this.getDetail(); }, + onShow(options){ + this.show_count++; + if(this.show_count > 1){ + this.getDetail(); + } + }, methods: { stateType(val){ let type = 0;