Files
aio-hl-new/src/pages/modules/finished/select-finished-mater.vue

167 lines
5.8 KiB
Vue
Raw Normal View History

2023-06-28 18:09:04 +08:00
<template>
<div class="order-wraper">
<div class="search-confirm-wrap">
<div class="search-wrap">
<div class="search-item">
<div class="search-label search-label_1">日期</div>
<div class="filter_input_wraper filter_input_wraper_1">
<el-date-picker
v-model="date"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-label">单据号</div>
<div class="filter_input_wraper">
2023-06-30 17:36:57 +08:00
<input type="text" class="filter-input" v-model="val1">
2023-06-28 18:09:04 +08:00
</div>
</div>
<div class="search-item">
<div class="search-label">物料</div>
<div class="filter_input_wraper">
2023-06-30 17:36:57 +08:00
<input type="text" class="filter-input" v-model="val2">
2023-06-28 18:09:04 +08:00
</div>
</div>
2023-07-03 15:55:27 +08:00
<div class="search-item flexend spesite">
2023-06-30 17:36:57 +08:00
<button class="button button--primary" @click="_getMaterial">快速查询</button>
<button class="button button--primary" @click="toSure">确定</button>
2023-07-03 17:19:13 +08:00
<button class="button button--primary" @click="clearUp">清空</button>
<button class="button button--primary" @click="colseUp">关闭</button>
2023-06-28 18:09:04 +08:00
</div>
</div>
</div>
2023-07-03 17:19:13 +08:00
<div class="grid_wraper" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="0" infinite-scroll-immediate-check="false">
2023-06-28 18:09:04 +08:00
<table class="filter-table">
<thead>
<tr>
2023-07-03 17:19:13 +08:00
<th>选择</th>
2023-07-26 14:53:39 +08:00
<th>交期</th>
<th>销售单</th>
<th>行号</th>
2023-07-04 17:39:45 +08:00
<th>物料规格</th>
2023-06-28 18:09:04 +08:00
<th>数量</th>
2023-07-26 14:53:39 +08:00
<th>物料编码</th>
<th>客户</th>
2023-06-28 18:09:04 +08:00
</tr>
</thead>
<tbody>
2023-07-26 14:53:39 +08:00
<tr v-for="e in dataList" :key="e.sale_code" @click="toRadio(e)">
2023-07-03 17:19:13 +08:00
<td>
<button class="iconfont select_icon select_square_icon" :class="e.checked ? 'selected_icon' : 'unselect_icon'"></button>
</td>
2023-07-26 14:53:39 +08:00
<td>{{e.plandeliver_date}}</td>
2023-06-30 17:36:57 +08:00
<td>{{e.sale_code}}</td>
2023-07-26 14:53:39 +08:00
<td>{{e.seq_no}}</td>
2023-07-04 17:39:45 +08:00
<td>{{e.material_spec}}</td>
2023-07-26 14:53:39 +08:00
<td>{{e.sale_qty | numeric(0)}}</td>
<td>{{e.material_code}}</td>
2023-07-27 14:15:09 +08:00
<td>{{e.remark}}</td>
2023-06-28 18:09:04 +08:00
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script>
2023-06-30 17:36:57 +08:00
import { getMaterial } from '../../../config/getData1.js'
2023-07-03 11:32:50 +08:00
import {dateTimeFtt} from '@config/utils.js'
2023-06-28 18:09:04 +08:00
export default {
data () {
return {
2023-07-03 17:19:13 +08:00
page: 1,
2023-07-26 14:53:39 +08:00
size: '22',
2023-07-03 17:19:13 +08:00
busy: false,
desc: '',
2023-06-30 17:36:57 +08:00
val1: '',
val2: '',
2023-07-03 11:32:50 +08:00
date: [new Date((new Date().getTime() - 6 * 24 * 60 * 60 * 1000)), new Date((new Date().getTime()))],
2023-07-04 11:30:19 +08:00
dataList: [],
2023-07-27 14:15:09 +08:00
// dataList: [{sale_code: '111', checked: false}, {sale_code: '222', checked: false}],
2023-07-03 17:19:13 +08:00
checkArr: []
2023-06-30 17:36:57 +08:00
}
},
created () {
this._getMaterial()
},
methods: {
2023-07-03 17:19:13 +08:00
// grid
2023-06-30 17:36:57 +08:00
async _getMaterial () {
2023-07-03 17:19:13 +08:00
this.page = 1
this.busy = false
this.desc = ''
2023-07-26 14:53:39 +08:00
let res = await getMaterial(this.page + '', this.size, this.date !== null ? dateTimeFtt(this.date[0]) : '', this.date !== null ? dateTimeFtt(this.date[1]) : '', this.val1, this.val2)
if (res.code === 200) {
this.dataList = []
res.content.map(el => {
this.$set(el, 'checked', false)
})
this.dataList = [...res.content]
if (res.content.length < 22) {
this.busy = true
this.desc = '已加载全部数据'
}
2023-07-03 17:19:13 +08:00
}
2023-06-30 17:36:57 +08:00
},
2023-07-03 17:19:13 +08:00
async loadMore () {
this.busy = true
this.page++
2023-07-26 14:53:39 +08:00
let res = await getMaterial(this.page + '', this.size, this.date !== null ? dateTimeFtt(this.date[0]) : '', this.date !== null ? dateTimeFtt(this.date[1]) : '', this.val1, this.val2)
if (res.code === 200) {
res.content.map(el => {
this.$set(el, 'checked', false)
})
this.dataList = [...this.dataList, ...res.content]
if (res.content.length < 22) {
this.busy = true
this.desc = '已加载全部数据'
} else {
this.busy = false
}
2023-07-03 17:19:13 +08:00
}
2023-06-30 17:36:57 +08:00
},
2023-07-03 17:19:13 +08:00
colseUp () {
2023-06-30 17:36:57 +08:00
this.$router.push('/finishedinstore')
},
2023-07-03 17:19:13 +08:00
toSure () {
if (this.checkArr.length === 0) {
return
}
2023-07-04 11:30:19 +08:00
// 添加的物料订单号必须一样
if (this.checkArr.every(e => e.sale_code === this.checkArr[0].sale_code)) {
this.$store.dispatch('setMaterArr', this.checkArr)
this.colseUp()
} else {
this.toast('添加的物料订单号必须一样')
}
2023-06-30 17:36:57 +08:00
},
2023-07-03 17:19:13 +08:00
clearUp () {
2023-07-27 14:15:09 +08:00
this.checkArr.map(el => {
this.$set(el, 'checked', false)
})
2023-07-03 17:19:13 +08:00
this.checkArr = []
},
toRadio (e) {
e.checked = !e.checked
this.checkArr = this.dataList.filter(i => { return i.checked === true })
2023-06-28 18:09:04 +08:00
}
}
}
</script>
<style lang="stylus" scoped>
.grid_wraper
2023-07-23 12:56:58 +08:00
height calc(100% - 1.1rem)
2023-06-28 18:09:04 +08:00
.filter_input_wraper_1
width calc(100% - 45px)
.search-label_1
width 45px
2023-07-03 15:55:27 +08:00
.spesite
position relative
left 68%
2023-06-28 18:09:04 +08:00
</style>