| | |
| | | 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, |