|
|
<template> <view> <view class="head"> <view class="list"> <view class="lf-row-between"> <view>供应商</view> <view class="lf-icon" @click="$url('/pages/canteen/classification/supplier')"> <u-icon name="plus-circle" size="42"></u-icon> </view> </view> </view> <view class="list"> <view class="lf-row-between"> <view>采购清单</view> <view class="lf-icon" @click="$url('/pages/canteen/classification/index?type=2')"> <u-icon name="plus-circle" size="42"></u-icon> </view> </view> <view class="lf-font-24 lf-color-gray">添加物资后可以编辑数量</view> </view> </view> <!-- 修饰条 --> <self-line></self-line> <!-- 收货时间 --> <view class="lf-row-between lf-p-30 lf-p-l-32 lf-p-r-32 lf-font-28"> <view class="lf-color-black">收货时间</view> <picker mode="date" :value="date" @change="pickerChange"> <view class="lf-color-555 lf-text-right" style="width: 400rpx;">{{ date }}</view> </picker> </view> <self-line></self-line> <!-- 物料table --> <view class="lf-p-32 lf-p-t-30 lf-p-b-30 lf-w-100 lf-h-maxcontent lf-border-box"> <view class="lf-font-32 lf-font-bold">物资明细</view> <!-- 多个供应商多个table :headers="headers" :contents="contents" --> <view v-for="(item,index) in 2" class="lf-m-t-20"> <view class="lf-m-b-10 lf-row-between"> <text>我是供应商</text> <text>删除</text> </view> <wyb-table contentBgColor="#ecfaf5" :first-line-fixed="true" @onInputChange="onInputChange" width="max-content" height="800rpx"></wyb-table> </view> </view> <!-- 操作按钮 --> <view style="height: 100rpx;"></view> <view class="fixed-bottom"> <button class="btn btn1" @click="save(1)">临时保存</button> <button class="btn btn2" @click="save(2)">保存并发单</button> </view> </view></template>
<script> import wybTable from '@/components/wyb-table/wyb-table'; export default { components: { wybTable }, data(){ return { headers: [{ label: '菜品名称', key: 'name' },{ label: '规格', key: 'spec' },{ label: '税前价', key: 'pre_tax_price' },{ label: '税后价', key: 'after_tax_price' }], contents: [], date: this.$shared.recordTime(new Date(), '-', 'date'), // 选择时间
material_list: {} // 供应商,物资列表
} }, onLoad(){ // 监听MaterialList被操作
uni.$on('addMaterialList', res => { this.material_list = res; }) }, onShow(){ console.log("material_list", this.material_list) }, methods: { // 改接口废弃
getMaterialList(){ this.$http(this.API.API_CANTEEN_MATERIALLIST, { // category_id: 1 // 分类id 不传则显示默认分类
}).then(res => { let list = res.data.material || []; let contents = list.map(item => { return { name: item.material.m_name, spec: item.name, pre_tax_price: {edit: true, value: item.tax_standard_price}, after_tax_price: {edit: true, value: item.non_tax_standard_price}, spec_id: item.id, material_id: item.material.id } }) this.contents = contents; }) }, // table-input值被改变 todo
onInputChange(event){ console.log("检测到table input被更改", event); // this.contents[event.contentIndex][event.key].value = event.detailValue;
}, // 时间选择
pickerChange(event){ this.date = event.detail.value; }, // 保存并发单
save(){ // todo
console.log("dddddd", this.contents) return; let list = this.contents.map(item => { return { m_id: item.material_id, m_spec_id: item.spec_id, tax_price: item.pre_tax_price.value, non_tax_price: item.after_tax_price.value } }); this.$http(this.API.API_CANTEEN_PURCHASEAPPLY, { data: list }).then(res => { console.log("save", res); this.$msg('操作成功'); }) } } }</script>
<style lang="scss" scoped="scoped"> .lf-m-t-5{ margin-top: 5rpx; } .head{ width: 750rpx; height: max-content; padding: 0 32rpx; box-sizing: border-box; .list{ width: 100%; border-bottom: 1rpx solid #e5e5e5; padding: 30rpx 0; font-size: 28rpx; &:last-child{ border-bottom: none; } .lf-icon{ padding: 2rpx 10rpx; display: flex; align-items: center; justify-content: center; } } } .fixed-bottom{ position: fixed; bottom: 0rpx; left: 0rpx; z-index: 99; width: 750rpx; height: 98rpx; display: flex; justify-content: center; align-items: center; border-top: 1rpx solid #E5E5E5; background-color: #FFFFFF; .btn{ width: 320rpx; height: 82rpx; border-radius: 41rpx; margin: 0; padding: 0; font-size: 32rpx; display: flex; justify-content: center; align-items: center; } .btn1{ border: 2rpx solid #555555; opacity: .5; } .btn2{ background: #11D189; color: #FFFFFF; margin-left: 50rpx; } }</style>
|