From 72bb57e08bb5ac3b7fd724bed3995a518d889221 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 17 九月 2025 14:15:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
src/views/procurementManagement/arrivalManagement/index.vue | 149 +++++++++++++++++++++++++++++++++----------------
1 files changed, 100 insertions(+), 49 deletions(-)
diff --git a/src/views/procurementManagement/arrivalManagement/index.vue b/src/views/procurementManagement/arrivalManagement/index.vue
index d2c89b1..060d2f1 100644
--- a/src/views/procurementManagement/arrivalManagement/index.vue
+++ b/src/views/procurementManagement/arrivalManagement/index.vue
@@ -18,7 +18,6 @@
<el-card class="table-card" shadow="never">
<div class="table-header">
<el-button type="primary" @click="openDialog('add')">鏂板鍒拌揣</el-button>
- <el-button type="success" @click="handleBatchReceive">鎵归噺鏀惰揣</el-button>
<el-button type="danger" @click="handleBatchDelete">鎵归噺鍒犻櫎</el-button>
</div>
@@ -37,23 +36,34 @@
<el-table-column label="鎿嶄綔" width="200" align="center">
<template #default="{ row }">
<el-button type="primary" link @click="openDialog('edit', row)">缂栬緫</el-button>
- <el-button type="success" link @click="handleReceive(row)">鏀惰揣</el-button>
+ <el-button type="success" v-if="row.status === 'pending'" link @click="handleReceive(row)">鏀惰揣</el-button>
<el-button type="danger" link @click="handleDelete(row)">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
+ <!-- 鍒嗛〉 -->
+ <pagination
+ :total="total"
+ layout="total, sizes, prev, pager, next, jumper"
+ :page="pagination.current"
+ :limit="pagination.size"
+ @pagination="handleCurrentChange"
+ />
</el-card>
<el-dialog v-model="dialogVisible" :title="dialogType === 'add' ? '鏂板鍒拌揣' : '缂栬緫鍒拌揣'" width="600px">
<el-form :model="formData" label-width="120px">
+ <el-form-item label="鍒拌揣鍗曞彿">
+ <el-input v-model="formData.arrivalNo" placeholder="鍒拌揣鍗曞彿" />
+ </el-form-item>
<el-form-item label="閲囪喘璁㈠崟鍙�">
- <el-select v-model="formData.orderNo" placeholder="璇烽�夋嫨閲囪喘璁㈠崟" style="width: 100%">
- <el-option label="PO20241201001" value="PO20241201001" />
- <el-option label="PO20241201002" value="PO20241201002" />
- </el-select>
+ <el-input v-model="formData.orderNo" placeholder="閲囪喘璁㈠崟鍙�" />
</el-form-item>
<el-form-item label="渚涘簲鍟嗗悕绉�">
<el-input v-model="formData.supplierName" placeholder="渚涘簲鍟嗗悕绉�" />
+ </el-form-item>
+ <el-form-item label="鍒拌揣鏁伴噺">
+ <el-input-number :min="0" v-model="formData.arrivalQuantity" placeholder="鍒拌揣鏁伴噺" />
</el-form-item>
<el-form-item label="澶囨敞">
<el-input v-model="formData.remark" type="textarea" :rows="3" placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�" />
@@ -68,8 +78,40 @@
</template>
<script setup>
-import { ref, reactive } from 'vue'
+import { ref, reactive,onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
+import {listPage,add,update,del} from "@/api/procurementManagement/arrivalManagement.js"
+import Pagination from '@/components/PIMTable/Pagination.vue'
+
+onMounted(() => {
+ getList()
+})
+
+const tableData = ref([])
+
+const getList = () => {
+ loading.value = true
+ listPage({...searchForm,...pagination}).then(res =>{
+ if(res.code === 200){
+ tableData.value = res.data.records
+ total.value = res.data.total
+ loading.value = false
+ }
+ })
+}
+
+const pagination = reactive({
+ current: 1,
+ size: 10
+})
+
+const total = ref(0)
+
+const handleCurrentChange = (val) => {
+ pagination.current = val.page
+ pagination.size = val.limit
+ getList()
+}
const loading = ref(false)
const dialogVisible = ref(false)
@@ -82,25 +124,13 @@
})
const formData = reactive({
+ arrivalNo: '',
+ arrivalQuantity: 0,
orderNo: '',
supplierName: '',
- remark: ''
+ remark: '',
+ status: 'pending'
})
-
-const mockData = [
- {
- id: 1,
- arrivalNo: 'AR20241201001',
- orderNo: 'PO20241201001',
- supplierName: '渚涘簲鍟咥',
- status: 'received',
- arrivalQuantity: 250,
- arrivalTime: '2025-12-01 15:30:00',
- remark: '姝e父鍒拌揣'
- }
-]
-
-const tableData = ref([...mockData])
const getStatusType = (status) => {
const statusMap = { pending: 'warning', received: 'success', stored: 'info' }
@@ -114,7 +144,7 @@
const handleSearch = () => {
loading.value = true
- setTimeout(() => { loading.value = false }, 500)
+ getList()
}
const resetSearch = () => {
@@ -124,34 +154,45 @@
const openDialog = (type, row = {}) => {
dialogType.value = type
if (type === 'edit' && row.id) {
- Object.assign(formData, { orderNo: row.orderNo, supplierName: row.supplierName, remark: row.remark })
+ obj.id = row.id
+ Object.assign(formData, { orderNo: row.orderNo, supplierName: row.supplierName, remark: row.remark, arrivalQuantity: row.arrivalQuantity,arrivalNo: row.arrivalNo })
} else {
- Object.assign(formData, { orderNo: '', supplierName: '', remark: '' })
+ Object.assign(formData, { orderNo: '', supplierName: '', remark: '',arrivalQuantity: 0,arrivalNo: '' })
}
dialogVisible.value = true
}
+const obj = reactive({
+ id:''
+})
+
const handleSubmit = () => {
if (dialogType.value === 'add') {
- const newArrival = {
- id: Date.now(),
- arrivalNo: `AR${Date.now()}`,
- orderNo: formData.orderNo,
- supplierName: formData.supplierName,
- status: 'pending',
- arrivalQuantity: 0,
- arrivalTime: new Date().toLocaleString(),
- remark: formData.remark
- }
- tableData.value.unshift(newArrival)
- ElMessage.success('鏂板鎴愬姛')
+ add(formData).then(res => {
+ if(res.code === 200){
+ ElMessage.success('鏂板鎴愬姛')
+ getList()
+ }
+ })
+ }else{
+ update({...formData, ...obj}).then(res => {
+ if(res.code === 200){
+ ElMessage.success('缂栬緫鎴愬姛')
+ getList()
+ }
+ })
}
dialogVisible.value = false
}
const handleReceive = (row) => {
row.status = 'received'
- ElMessage.success('鏀惰揣鎴愬姛')
+ update(row).then(res => {
+ if(res.code === 200){
+ ElMessage.success('鏀惰揣鎴愬姛')
+ getList()
+ }
+ })
}
const handleDelete = (row) => {
@@ -160,20 +201,30 @@
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- const index = tableData.value.findIndex(item => item.id === row.id)
- if (index !== -1) {
- tableData.value.splice(index, 1)
- ElMessage.success('鍒犻櫎鎴愬姛')
- }
+ let ids = [row.id]
+ del(ids).then(res => {
+ if(res.code === 200){
+ ElMessage.success('鍒犻櫎鎴愬姛')
+ getList()
+ }
+ })
})
}
-const handleBatchReceive = () => {
- ElMessage.success('鎵归噺鏀惰揣鎴愬姛')
-}
-
const handleBatchDelete = () => {
- ElMessage.success('鎵归噺鍒犻櫎鎴愬姛')
+ ElMessageBox.confirm('纭畾瑕佸垹闄ら�変腑鐨勮褰曞悧锛�', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ let ids = selectedRows.value.map(item => item.id)
+ del(ids).then(res => {
+ if(res.code === 200){
+ ElMessage.success('鍒犻櫎鎴愬姛')
+ getList()
+ }
+ })
+ })
}
const handleSelectionChange = (rows) => {
--
Gitblit v1.9.3