| | |
| | | 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" /> |
| | |
| | | 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> |
| | | |
| | |
| | | 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']" |
| | | >解除锁仓</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> |
| | | |
| | |
| | | <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="预计解锁时间" align="center" prop="expectedUnlockTime" width="180" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200"> |
| | | <el-table-column label="解锁时间" 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" |
| | |
| | | v-hasPermi="['coalLock:edit']" |
| | | >修改</el-button> |
| | | <el-button |
| | | :disabled="scope.row.lockStatus === 'unlocked'" |
| | | size="small" |
| | | type="text" |
| | | icon="Unlock" |
| | |
| | | <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> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="煤种名称" prop="coalName"> |
| | | <el-select |
| | | v-model="form.coalId" |
| | | v-model="form.coalName" |
| | | placeholder="请选择煤种" |
| | | filterable |
| | | clearable |
| | |
| | | </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 |
| | |
| | | <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" |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="预计解锁时间" prop="expectedUnlockTime"> |
| | | <el-date-picker |
| | | v-model="form.expectedUnlockTime" |
| | | type="datetime" |
| | | placeholder="选择预计解锁时间" |
| | | 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="解锁时间" prop="expectedUnlockTime">--> |
| | | <!-- <el-date-picker--> |
| | | <!-- v-model="form.expectedUnlockTime"--> |
| | | <!-- type="datetime"--> |
| | | <!-- placeholder="选择解锁时间"--> |
| | | <!-- 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"> |
| | |
| | | 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) |
| | |
| | | |
| | | // 查询参数 |
| | | const queryParams = reactive({ |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | current: 1, |
| | | size: 10, |
| | | coalName: '', |
| | | lockStatus: '', |
| | | supplierName: '', |
| | | lockDateRange: [] |
| | | lockTime: '' |
| | | }) |
| | | |
| | | // 表单数据 |
| | |
| | | lockCode: '', |
| | | coalId: '', |
| | | coalName: '', |
| | | supplierId: '', |
| | | supplierName: '', |
| | | totalInventory: 0, |
| | | lockQuantity: 0, |
| | |
| | | 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' } |
| | | ], |
| | |
| | | |
| | | // 模拟供应商数据 |
| | | 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 |
| | | } |
| | | |
| | | // 获取锁仓状态类型 |
| | |
| | | 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 |
| | | } |
| | | } |
| | | |
| | |
| | | // 查询列表 |
| | | const getList = () => { |
| | | loading.value = true |
| | | // 模拟API调用延迟 |
| | | setTimeout(() => { |
| | | listPage(queryParams).then(res =>{ |
| | | if(res.code === 200){ |
| | | lockList.value = res.data.records |
| | | total.value = res.data.total |
| | | loading.value = false |
| | | }, 500) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // 搜索 |
| | | const handleQuery = () => { |
| | | queryParams.pageNum = 1 |
| | | queryParams.current = 1 |
| | | getList() |
| | | } |
| | | |
| | |
| | | queryParams.coalName = '' |
| | | queryParams.lockStatus = '' |
| | | queryParams.supplierName = '' |
| | | queryParams.lockDateRange = [] |
| | | queryParams.lockTime = '' |
| | | handleQuery() |
| | | } |
| | | |
| | |
| | | |
| | | // 删除锁仓 |
| | | const handleDelete = (row) => { |
| | | const ids = row.id || row |
| | | let ids = [] |
| | | ids.push(row.id) |
| | | ElMessageBox.confirm('确认删除选中的锁仓记录吗?', '警告', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | ElMessage.success('删除成功') |
| | | del(ids).then(res => { |
| | | if(res.code === 200){ |
| | | getList() |
| | | ElMessage.success('删除成功') |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | |
| | |
| | | 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('解锁成功') |
| | | edit(lockData).then(res => { |
| | | if(res.code === 200){ |
| | | getList() |
| | | }) |
| | | ElMessage.success('解锁成功') |
| | | } |
| | | |
| | | // 导出 |
| | | const handleExport = () => { |
| | | ElMessage.success('导出功能开发中...') |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | // 提交表单 |
| | |
| | | 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) |
| | | } |
| | | 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('新增成功') |
| | | } |
| | | open.value = false |
| | | add(form).then(res => { |
| | | if(res.code === 200){ |
| | | getList() |
| | | ElMessage.success('新增成功') |
| | | open.value = false |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | |
| | | lockCode: '', |
| | | coalId: '', |
| | | coalName: '', |
| | | supplierId: '', |
| | | supplierName: '', |
| | | totalInventory: 0, |
| | | lockQuantity: 0, |