| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEdit()" v-permissions="['business:ywoutinboundrecord:create']">新建入库单</el-button> |
| | | <el-button @click="handleEx()" v-permissions="['business:ywoutinboundrecord:exportExcel']">导出</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="code" label="入库单号" min-width="120" show-overflow-tooltip /> |
| | | <el-table-column prop="warehouseName" label="入库仓库" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="typeName" label="入库类型" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="doneDate" label="入库日期" min-width="110" show-overflow-tooltip /> |
| | | <el-table-column label="入库数量" min-width="140"> |
| | | <template v-slot="{ row }"> |
| | | <div v-for="item in row.recordList">{{ item.materialName }}[{{ item.materialCode }}]*{{ item.stock }}{{ |
| | | item.materialUnitName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createUserName" label="操作人" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="createDate" label="操作时间" min-width="140" show-overflow-tooltip /> |
| | | <el-table-column prop="remark" label="备注" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="操作" min-width="80" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span @click="handleDetail(row)" v-permissions="['business:ywoutinboundrecord:query']" class="primaryColor pointer">查看详情</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | </div> |
| | | <!-- --> |
| | | <InEdit v-if="isShowEdit" @close="isShowEdit = false" @success="getList" ref="InEditRef" /> |
| | | <InDetail v-if="isShowDetail" ref="InDetailRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import InEdit from './components/InEdit' |
| | | import InDetail from './components/InDetail' |
| | | import dayjs from 'dayjs' |
| | | import duration from 'dayjs/plugin/duration' |
| | | dayjs.extend(duration) |
| | | import { ywOutinboundPage, ywOutinboundEx } from '@/api' |
| | | import { fetchList as getStoreList } from '@/api/ywWarehouse' |
| | | import { StoreTypeOps, rules } from './components/config' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | InEdit, |
| | | InDetail |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | isShowEdit: false, |
| | | isShowDetail: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: { |
| | | inOut: 0 |
| | | }, |
| | | StoreTypeOps, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'code', |
| | | type: 'input', |
| | | label: '入库单号', |
| | | }, |
| | | { |
| | | filed: 'warehouseId', |
| | | type: 'select', |
| | | label: '所在仓库', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: [] |
| | | }, |
| | | { |
| | | filed: 'type', |
| | | type: 'select', |
| | | label: '入库类型', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: StoreTypeOps.filter(i => i.type == 0) |
| | | }, |
| | | ], |
| | | online: true |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList() |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | alert('submit!') |
| | | } |
| | | }) |
| | | }, |
| | | handleEdit() { |
| | | this.isShowEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.InEditRef.isShowModal = true |
| | | }) |
| | | }, |
| | | handleDetail(row) { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.InDetailRef.visible = true |
| | | this.$refs.InDetailRef.getDetail(row.id) |
| | | }) |
| | | }, |
| | | handleEx() { |
| | | this.$dialog.exportConfirm('确认导出吗?') |
| | | .then(() => { |
| | | this.loading = true |
| | | ywOutinboundEx({ |
| | | page: this.pagination.page, |
| | | capacity: 1000000, |
| | | model: this.filters |
| | | }) |
| | | .then(response => { |
| | | this.download(response) |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | initData() { |
| | | getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => { |
| | | this.queryFormConfig.formItems[1].options = res.records || [] |
| | | }) |
| | | }, |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | if (page) { pagination.page = page } |
| | | ywOutinboundPage({ |
| | | model: { |
| | | ...filters, |
| | | inOut: 0 |
| | | }, |
| | | // sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | capacity: pagination.pageSize, |
| | | page: page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.typeName = this.StoreTypeOps[item.type].name |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | clear() { |
| | | this.filters = {inOut: 0} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | | this.getList() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |