|  |  | 
 |  |  |             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(() => { | 
 |  |  |     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() | 
 |  |  | } | 
 |  |  |  | 
 |  |  | 
 |  |  |   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('å é¤æå') | 
 |  |  |     getList() | 
 |  |  |     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('è§£éæå') | 
 |  |  |     getList() | 
 |  |  |     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) | 
 |  |  |         } | 
 |  |  |         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() | 
 |  |  |     } | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  | 
 |  |  |     lockCode: '', | 
 |  |  |     coalId: '', | 
 |  |  |     coalName: '', | 
 |  |  |     supplierId: '', | 
 |  |  |     supplierName: '', | 
 |  |  |     totalInventory: 0, | 
 |  |  |     lockQuantity: 0, |