From c5109dd484be07f6c49a3c4c4df7ae79b89f4fb0 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 06 六月 2025 19:18:57 +0800
Subject: [PATCH] 开发更新
---
admin/src/views/stock/out.vue | 188 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 188 insertions(+), 0 deletions(-)
diff --git a/admin/src/views/stock/out.vue b/admin/src/views/stock/out.vue
index e69de29..9a01b67 100644
--- a/admin/src/views/stock/out.vue
+++ b/admin/src/views/stock/out.vue
@@ -0,0 +1,188 @@
+<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="outUserName" label="棰嗙敤浜�" min-width="90" show-overflow-tooltip />
+ <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>
+ <!-- -->
+ <OutEdit v-if="isShowEdit" @close="isShowEdit = false" @success="getList" ref="OutEditRef" />
+ <OutDetail v-if="isShowDetail" ref="InDetailRef" />
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/common/Pagination'
+import QueryForm from '@/components/common/QueryForm'
+import OutEdit from './components/OutEdit.vue'
+import OutDetail from './components/OutDetail.vue'
+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,
+ OutEdit,
+ OutDetail
+ },
+ data() {
+ return {
+ loading: false,
+ isShowEdit: false,
+ isShowDetail: false,
+ pagination: {
+ pageSize: 10,
+ page: 1,
+ total: 0
+ },
+ filters: {
+ inOut: 1
+ },
+ 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 == 1)
+ },
+ ],
+ 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.OutEditRef.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
+ },
+ // 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: 1
+ }
+ this.pagination.pageSize = 10
+ this.pagination.page = 1
+ this.getList()
+ },
+ handleSizeChange(capacity) {
+ this.pagination.pageSize = capacity
+ this.getList()
+ }
+ }
+}
+</script>
+
+<style></style>
--
Gitblit v1.9.3