From add294f3c89ab2c6adbe11bc5c718c855a7fc545 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 10 十月 2025 15:56:25 +0800
Subject: [PATCH] yys 联调关键煤种锁仓页面
---
src/api/warehouseManagement/keyCoalLocks.js | 37 ++++++
src/views/warehouseManagement/coalLockManagement/index.vue | 295 +++++++++++++++++--------------------------------
2 files changed, 140 insertions(+), 192 deletions(-)
diff --git a/src/api/warehouseManagement/keyCoalLocks.js b/src/api/warehouseManagement/keyCoalLocks.js
new file mode 100644
index 0000000..4173a96
--- /dev/null
+++ b/src/api/warehouseManagement/keyCoalLocks.js
@@ -0,0 +1,37 @@
+import request from '@/utils/request'
+
+// 鍏抽敭鐓ょ閿佷粨琛ㄦ煡璇�
+export function listPage(query) {
+ return request({
+ url: '/keyCoalLocks/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鍏抽敭鐓ょ閿佷粨琛ㄦ柊澧�
+export function add(query) {
+ return request({
+ url: '/keyCoalLocks/add',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鍏抽敭鐓ょ閿佷粨琛ㄤ慨鏀�
+export function edit(query) {
+ return request({
+ url: '/keyCoalLocks/edit',
+ method: 'post',
+ data: query
+ })
+}
+
+// 鍏抽敭鐓ょ閿佷粨琛ㄥ垹闄�
+export function del(query) {
+ return request({
+ url: '/keyCoalLocks/del',
+ method: 'delete',
+ data: query
+ })
+}
\ No newline at end of file
diff --git a/src/views/warehouseManagement/coalLockManagement/index.vue b/src/views/warehouseManagement/coalLockManagement/index.vue
index ee9fff6..d9c1b29 100644
--- a/src/views/warehouseManagement/coalLockManagement/index.vue
+++ b/src/views/warehouseManagement/coalLockManagement/index.vue
@@ -8,12 +8,12 @@
v-model="queryParams.coalName"
placeholder="璇疯緭鍏ョ叅绉嶅悕绉�"
clearable
- size="small"
+ size="default"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="閿佷粨鐘舵��" prop="lockStatus">
- <el-select v-model="queryParams.lockStatus" placeholder="璇烽�夋嫨閿佷粨鐘舵��" clearable size="small">
+ <el-select v-model="queryParams.lockStatus" placeholder="璇烽�夋嫨閿佷粨鐘舵��" clearable style="width: 120px;">
<el-option label="宸查攣瀹�" value="locked" />
<el-option label="閮ㄥ垎閿佸畾" value="partial" />
<el-option label="鏈攣瀹�" value="unlocked" />
@@ -24,25 +24,25 @@
v-model="queryParams.supplierName"
placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О"
clearable
- size="small"
+ size="default"
@keyup.enter="handleQuery"
/>
</el-form-item>
- <el-form-item label="閿佷粨鏃ユ湡" prop="lockDateRange">
+ <el-form-item label="閿佷粨鏃ユ湡" prop="lockTime">
<el-date-picker
- v-model="queryParams.lockDateRange"
- type="daterange"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- size="small"
+ v-model="queryParams.lockTime"
+ type="date"
+ placeholder="璇烽�夋嫨閿佷粨鏃ユ湡"
+ size="default"
+ :value-format="'YYYY-MM-DD'"
+ style="width: 100%;"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item>
- <el-button type="primary" icon="Search" size="small" @click="handleQuery">鎼滅储</el-button>
- <el-button icon="Refresh" size="small" @click="resetQuery">閲嶇疆</el-button>
+ <el-button type="primary" icon="Search" size="default" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="Refresh" size="default" @click="resetQuery">閲嶇疆</el-button>
</el-form-item>
</el-form>
@@ -53,65 +53,11 @@
type="primary"
plain
icon="Plus"
- size="small"
+ size="default"
@click="handleAdd"
v-hasPermi="['coalLock:add']"
>鏂板閿佷粨</el-button>
</el-col>
- <el-col :span="1.5">
- <el-button
- type="success"
- plain
- icon="Edit"
- size="small"
- :disabled="single"
- @click="handleUpdate"
- v-hasPermi="['coalLock:edit']"
- >淇敼閿佷粨</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="danger"
- plain
- icon="Delete"
- size="small"
- :disabled="multiple"
- @click="handleDelete"
- v-hasPermi="['coalLock:remove']"
- >鍒犻櫎閿佷粨</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="warning"
- plain
- icon="Unlock"
- size="small"
- :disabled="single"
- @click="handleUnlock"
- v-hasPermi="['coalLock:unlock']"
- >瑙i櫎閿佷粨</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button
- type="info"
- plain
- icon="View"
- size="small"
- :disabled="single"
- @click="handleView"
- v-hasPermi="['coalLock:query']"
- >鏌ョ湅璇︽儏</el-button>
- </el-col>
- <!-- <el-col :span="1.5">
- <el-button
- type="primary"
- plain
- icon="Download"
- size="small"
- @click="handleExport"
- v-hasPermi="['coalLock:export']"
- >瀵煎嚭</el-button>
- </el-col> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@@ -134,8 +80,8 @@
<el-table-column label="閿佷粨鍘熷洜" align="center" prop="lockReason" min-width="150" show-overflow-tooltip />
<el-table-column label="閿佷粨浜�" align="center" prop="lockUser" width="100" />
<el-table-column label="閿佷粨鏃堕棿" align="center" prop="lockTime" width="180" />
- <el-table-column label="棰勮瑙i攣鏃堕棿" align="center" prop="expectedUnlockTime" width="180" />
- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="200">
+ <el-table-column label="瑙i攣鏃堕棿" align="center" prop="expectedUnlockTime" width="180" />
+ <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width" width="200">
<template #default="scope">
<el-button
size="small"
@@ -145,6 +91,7 @@
v-hasPermi="['coalLock:edit']"
>淇敼</el-button>
<el-button
+ :disabled="scope.row.lockStatus === 'unlocked'"
size="small"
type="text"
icon="Unlock"
@@ -166,8 +113,8 @@
<pagination
v-show="total > 0"
:total="total"
- v-model:page="queryParams.pageNum"
- v-model:limit="queryParams.pageSize"
+ v-model:page="queryParams.current"
+ v-model:limit="queryParams.size"
@pagination="getList"
/>
</el-card>
@@ -179,7 +126,7 @@
<el-col :span="12">
<el-form-item label="鐓ょ鍚嶇О" prop="coalName">
<el-select
- v-model="form.coalId"
+ v-model="form.coalName"
placeholder="璇烽�夋嫨鐓ょ"
filterable
clearable
@@ -196,9 +143,9 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="渚涘簲鍟�" prop="supplierId">
+ <el-form-item label="渚涘簲鍟�" prop="supplierName">
<el-select
- v-model="form.supplierId"
+ v-model="form.supplierName"
placeholder="璇烽�夋嫨渚涘簲鍟�"
filterable
clearable
@@ -217,12 +164,13 @@
<el-row>
<el-col :span="12">
<el-form-item label="鎬诲簱瀛橀噺(鍚�)" prop="totalInventory">
- <el-input v-model="form.totalInventory" placeholder="璇疯緭鍏ユ�诲簱瀛橀噺" disabled />
+ <el-input v-model="form.totalInventory" placeholder="璇疯緭鍏ユ�诲簱瀛橀噺" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="閿佷粨鏁伴噺(鍚�)" prop="lockQuantity">
<el-input
+ :disabled="form.totalInventory <= 0"
v-model="form.lockQuantity"
placeholder="璇疯緭鍏ラ攣浠撴暟閲�"
type="number"
@@ -261,18 +209,18 @@
/>
</el-form-item>
</el-col>
- <el-col :span="12">
- <el-form-item label="棰勮瑙i攣鏃堕棿" prop="expectedUnlockTime">
- <el-date-picker
- v-model="form.expectedUnlockTime"
- type="datetime"
- placeholder="閫夋嫨棰勮瑙i攣鏃堕棿"
- style="width: 100%"
- format="YYYY-MM-DD HH:mm:ss"
- value-format="YYYY-MM-DD HH:mm:ss"
- />
- </el-form-item>
- </el-col>
+<!-- <el-col :span="12">-->
+<!-- <el-form-item label="瑙i攣鏃堕棿" prop="expectedUnlockTime">-->
+<!-- <el-date-picker-->
+<!-- v-model="form.expectedUnlockTime"-->
+<!-- type="datetime"-->
+<!-- placeholder="閫夋嫨瑙i攣鏃堕棿"-->
+<!-- style="width: 100%"-->
+<!-- format="YYYY-MM-DD HH:mm:ss"-->
+<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
+<!-- />-->
+<!-- </el-form-item>-->
+<!-- </el-col>-->
</el-row>
<el-row>
<el-col :span="24">
@@ -344,6 +292,12 @@
import { ref, reactive, computed, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Search, Plus, Edit, Delete, Unlock, View, Download, Refresh } from '@element-plus/icons-vue'
+import {
+ listPage,
+ add,
+ edit,
+ del
+} from '@/api/warehouseManagement/keyCoalLocks.js'
// 鍝嶅簲寮忔暟鎹�
const loading = ref(false)
@@ -359,12 +313,12 @@
// 鏌ヨ鍙傛暟
const queryParams = reactive({
- pageNum: 1,
- pageSize: 10,
+ current: 1,
+ size: 10,
coalName: '',
lockStatus: '',
supplierName: '',
- lockDateRange: []
+ lockTime: ''
})
// 琛ㄥ崟鏁版嵁
@@ -373,7 +327,6 @@
lockCode: '',
coalId: '',
coalName: '',
- supplierId: '',
supplierName: '',
totalInventory: 0,
lockQuantity: 0,
@@ -391,13 +344,13 @@
coalId: [
{ required: true, message: '璇烽�夋嫨鐓ょ', trigger: 'change' }
],
- supplierId: [
+ supplierName: [
{ required: true, message: '璇烽�夋嫨渚涘簲鍟�', trigger: 'change' }
],
- lockQuantity: [
- { required: true, message: '璇疯緭鍏ラ攣浠撴暟閲�', trigger: 'blur' },
- { type: 'number', min: 0, message: '閿佷粨鏁伴噺涓嶈兘灏忎簬0', trigger: 'blur' }
- ],
+ // lockQuantity: [
+ // { required: true, message: '璇疯緭鍏ラ攣浠撴暟閲�', trigger: 'blur' },
+ // { type: 'number', min: 0, message: '閿佷粨鏁伴噺涓嶈兘灏忎簬0', trigger: 'blur' }
+ // ],
lockStatus: [
{ required: true, message: '璇烽�夋嫨閿佷粨鐘舵��', trigger: 'change' }
],
@@ -437,65 +390,12 @@
// 妯℃嫙渚涘簲鍟嗘暟鎹�
supplierOptions.value = [
- { value: '1', label: '灞辫タ鐓ょ偔闆嗗洟' },
- { value: '2', label: '鍐呰挋鍙ょ叅鐐叕鍙�' },
- { value: '3', label: '闄曡タ鐓ょ偔宸ヤ笟' },
- { value: '4', label: '娌冲崡鐓ょ偔闆嗗洟' },
- { value: '5', label: '娌冲寳鐓ょ偔鍏徃' }
+ { value: '灞辫タ鐓ょ偔闆嗗洟', label: '灞辫タ鐓ょ偔闆嗗洟' },
+ { value: '鍐呰挋鍙ょ叅鐐叕鍙�', label: '鍐呰挋鍙ょ叅鐐叕鍙�' },
+ { value: '闄曡タ鐓ょ偔宸ヤ笟', label: '闄曡タ鐓ょ偔宸ヤ笟' },
+ { value: '娌冲崡鐓ょ偔闆嗗洟', label: '娌冲崡鐓ょ偔闆嗗洟' },
+ { value: '娌冲寳鐓ょ偔鍏徃', label: '娌冲寳鐓ょ偔鍏徃' }
]
-
- // 妯℃嫙閿佷粨鍒楄〃鏁版嵁
- lockList.value = [
- {
- id: '1',
- lockCode: 'LK20241201001',
- coalId: '1',
- coalName: '鏃犵儫鐓�',
- supplierId: '1',
- supplierName: '灞辫タ鐓ょ偔闆嗗洟',
- totalInventory: 1000,
- lockQuantity: 300,
- availableQuantity: 700,
- lockStatus: 'partial',
- lockReason: '鐢熶骇璁″垝棰勭暀',
- lockUser: '寮犱笁',
- lockTime: '2024-12-01 09:00:00',
- expectedUnlockTime: '2024-12-31 18:00:00'
- },
- {
- id: '2',
- lockCode: 'LK20241201002',
- coalId: '2',
- coalName: '鐑熺叅',
- supplierId: '2',
- supplierName: '鍐呰挋鍙ょ叅鐐叕鍙�',
- totalInventory: 800,
- lockQuantity: 800,
- availableQuantity: 0,
- lockStatus: 'locked',
- lockReason: '璐ㄩ噺妫�娴嬩腑',
- lockUser: '鏉庡洓',
- lockTime: '2024-12-01 10:00:00',
- expectedUnlockTime: '2024-12-15 18:00:00'
- },
- {
- id: '3',
- lockCode: 'LK20241201003',
- coalId: '4',
- coalName: '鐒︾叅',
- supplierId: '3',
- supplierName: '闄曡タ鐓ょ偔宸ヤ笟',
- totalInventory: 1200,
- lockQuantity: 0,
- availableQuantity: 1200,
- lockStatus: 'unlocked',
- lockReason: '',
- lockUser: '',
- lockTime: '',
- expectedUnlockTime: ''
- }
- ]
- total.value = lockList.value.length
}
// 鑾峰彇閿佷粨鐘舵�佺被鍨�
@@ -523,9 +423,9 @@
const selectedCoal = coalOptions.value.find(item => item.value === coalId)
if (selectedCoal) {
form.coalName = selectedCoal.label
- // 妯℃嫙璁剧疆搴撳瓨鏁版嵁
- form.totalInventory = Math.floor(Math.random() * 1000) + 500
- form.availableQuantity = form.totalInventory - form.lockQuantity
+ // // 妯℃嫙璁剧疆搴撳瓨鏁版嵁
+ // form.totalInventory = Math.floor(Math.random() * 1000) + 500
+ // form.availableQuantity = form.totalInventory - form.lockQuantity
}
}
@@ -549,15 +449,18 @@
// 鏌ヨ鍒楄〃
const getList = () => {
loading.value = true
- // 妯℃嫙API璋冪敤寤惰繜
- setTimeout(() => {
- loading.value = false
- }, 500)
+ listPage(queryParams).then(res =>{
+ if(res.code === 200){
+ lockList.value = res.data.records
+ total.value = res.data.total
+ loading.value = false
+ }
+ })
}
// 鎼滅储
const handleQuery = () => {
- queryParams.pageNum = 1
+ queryParams.current = 1
getList()
}
@@ -566,7 +469,7 @@
queryParams.coalName = ''
queryParams.lockStatus = ''
queryParams.supplierName = ''
- queryParams.lockDateRange = []
+ queryParams.lockTime = ''
handleQuery()
}
@@ -606,14 +509,19 @@
// 鍒犻櫎閿佷粨
const handleDelete = (row) => {
- const ids = row.id || row
+ let ids = []
+ ids.push(row.id)
ElMessageBox.confirm('纭鍒犻櫎閫変腑鐨勯攣浠撹褰曞悧锛�', '璀﹀憡', {
confirmButtonText: '纭畾',
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- ElMessage.success('鍒犻櫎鎴愬姛')
- getList()
+ del(ids).then(res => {
+ if(res.code === 200){
+ getList()
+ ElMessage.success('鍒犻櫎鎴愬姛')
+ }
+ })
})
}
@@ -633,16 +541,23 @@
lockData.lockReason = ''
lockData.lockUser = ''
lockData.lockTime = ''
- lockData.expectedUnlockTime = ''
+ // 鑾峰彇褰撳墠鏃堕棿 yyyy-MM-dd HH:mm:ss
+ const now = new Date();
+ const year = now.getFullYear();
+ const month = String(now.getMonth() + 1).padStart(2, '0');
+ const day = String(now.getDate()).padStart(2, '0');
+ const hours = String(now.getHours()).padStart(2, '0');
+ const minutes = String(now.getMinutes()).padStart(2, '0');
+ const seconds = String(now.getSeconds()).padStart(2, '0');
+ lockData.expectedUnlockTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
- ElMessage.success('瑙i攣鎴愬姛')
- getList()
+ edit(lockData).then(res => {
+ if(res.code === 200){
+ getList()
+ ElMessage.success('瑙i攣鎴愬姛')
+ }
+ })
})
-}
-
-// 瀵煎嚭
-const handleExport = () => {
- ElMessage.success('瀵煎嚭鍔熻兘寮�鍙戜腑...')
}
// 鎻愪氦琛ㄥ崟
@@ -650,26 +565,23 @@
lockFormRef.value.validate((valid) => {
if (valid) {
if (form.id) {
- // 淇敼
- const index = lockList.value.findIndex(item => item.id === form.id)
- if (index !== -1) {
- Object.assign(lockList.value[index], form)
- }
- ElMessage.success('淇敼鎴愬姛')
+ edit(form).then(res => {
+ if(res.code === 200){
+ getList()
+ ElMessage.success('淇敼鎴愬姛')
+ open.value = false
+ }
+ })
} else {
// 鏂板
- const newLock = {
- ...form,
- id: Date.now().toString(),
- lockCode: `LK${new Date().toISOString().slice(0, 10).replace(/-/g, '')}${String(lockList.value.length + 1).padStart(3, '0')}`,
- lockUser: '褰撳墠鐢ㄦ埛'
- }
- lockList.value.unshift(newLock)
- total.value = lockList.value.length
- ElMessage.success('鏂板鎴愬姛')
+ add(form).then(res => {
+ if(res.code === 200){
+ getList()
+ ElMessage.success('鏂板鎴愬姛')
+ open.value = false
+ }
+ })
}
- open.value = false
- getList()
}
})
}
@@ -687,7 +599,6 @@
lockCode: '',
coalId: '',
coalName: '',
- supplierId: '',
supplierName: '',
totalInventory: 0,
lockQuantity: 0,
--
Gitblit v1.9.3