| src/api/inventoryManagement/stockInventory.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/api/inventoryManagement/stockUninventory.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/stockManagement/FrozenAndThaw.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/stockManagement/Qualified.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/stockManagement/Unqualified.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/inventoryManagement/stockInventory.js
@@ -41,3 +41,22 @@ params, }); }; // å»ç»åºåè®°å½ export const frozenStockInventory = (params) => { return request({ url: "/stockInventory/frozenStock", method: "post", data: params, }); }; // è§£å»åºåè®°å½ export const thawStockInventory = (params) => { return request({ url: "/stockInventory/thawStock", method: "post", data: params, }); }; src/api/inventoryManagement/stockUninventory.js
@@ -25,3 +25,21 @@ data: params, }); }; // å»ç»åºåè®°å½ export const frozenStockUninventory = (params) => { return request({ url: "/stockUninventory/frozenStock", method: "post", data: params, }); }; // è§£å»åºåè®°å½ export const thawStockUninventory = (params) => { return request({ url: "/stockUninventory/thawStock", method: "post", data: params, }); }; src/views/inventoryManagement/stockManagement/FrozenAndThaw.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,164 @@ <template> <div> <el-dialog v-model="isShow" :title="operationType === 'frozen' ? 'å»ç»åºå' : 'è§£å»åºå'" width="800" @close="closeModal" > <el-form label-width="140px" :model="formState" ref="formRef"> <el-form-item :label="operationType === 'frozen' ? 'å»ç»æ°éï¼' : 'è§£å»æ°éï¼'" prop="lockedQuantity" > <el-input-number v-model="formState.lockedQuantity" :step="1" :min="1" precision="0" style="width: 100%" :max="maxCount" /> </el-form-item> </el-form> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="handleSubmit">确认</el-button> <el-button @click="closeModal">åæ¶</el-button> </div> </template> </el-dialog> </div> </template> <script setup> import {ref, computed, getCurrentInstance} from "vue"; import {frozenStockInventory, thawStockInventory} from "@/api/inventoryManagement/stockInventory.js"; import {frozenStockUninventory, thawStockUninventory} from "@/api/inventoryManagement/stockUninventory.js"; const props = defineProps({ visible: { type: Boolean, required: true, }, operationType: { type: String, required: true, default: 'frozen', }, type: { type: String, required: true, default: 'qualified', }, record: { type: Object, default: () => {}, } }); const emit = defineEmits(['update:visible', 'completed']); // ååºå¼æ°æ®ï¼æ¿ä»£é项å¼ç dataï¼ const formState = ref({ lockedQuantity: 0, }); const isShow = computed({ get() { return props.visible; }, set(val) { emit('update:visible', val); }, }); let { proxy } = getCurrentInstance() const closeModal = () => { // éç½®è¡¨åæ°æ® formState.value = { lockedQuantity: undefined }; isShow.value = false; }; const maxCount = computed(() => { // å»ç»åºåæå¤§æ°é为æªè§£å»æ°é if (props.operationType === 'frozen') { return props.record.unLockedQuantity } // è§£å»åºåæå¤§æ°é为已å»ç»æ°é return props.record.lockedQuantity }) const handleSubmit = () => { proxy.$refs["formRef"].validate(valid => { if (valid) { const data = Object.assign({id: props.record.id}, formState.value); if (props.type === 'qualified') { // å»ç» if (props.operationType === 'frozen') { frozenStockInventory(data).then(res => { if (res.code === 200) { // å ³éæ¨¡ææ¡ isShow.value = false; // åç¥ç¶ç»ä»¶å·²å®æ emit('completed'); proxy.$modal.msgSuccess("æäº¤æå"); } else { proxy.$modal.msgError(res.msg); } }) } else { thawStockInventory(data).then(res => { if (res.code === 200) { // å ³éæ¨¡ææ¡ isShow.value = false; // åç¥ç¶ç»ä»¶å·²å®æ emit('completed'); proxy.$modal.msgSuccess("æäº¤æå"); } else { proxy.$modal.msgError(res.msg); } }) } } else { if (props.operationType === 'frozen') { frozenStockUninventory(data).then(res => { if (res.code === 200) { // å ³éæ¨¡ææ¡ isShow.value = false; // åç¥ç¶ç»ä»¶å·²å®æ emit('completed'); proxy.$modal.msgSuccess("æäº¤æå"); } else { proxy.$modal.msgError(res.msg); } }) } else { thawStockUninventory(data).then(res => { if (res.code === 200) { // å ³éæ¨¡ææ¡ isShow.value = false; // åç¥ç¶ç»ä»¶å·²å®æ emit('completed'); proxy.$modal.msgSuccess("æäº¤æå"); } else { proxy.$modal.msgError(res.msg); } }) } } } }) }; onMounted(() => { formState.value.lockedQuantity = maxCount.value; }) defineExpose({ closeModal, handleSubmit, isShow, }); </script> src/views/inventoryManagement/stockManagement/Qualified.vue
@@ -27,12 +27,15 @@ <el-table-column label="è§æ ¼åå·" prop="model" show-overflow-tooltip /> <el-table-column label="åä½" prop="unit" show-overflow-tooltip /> <el-table-column label="åºåæ°é" prop="qualitity" show-overflow-tooltip /> <el-table-column label="å»ç»æ°é" prop="lockedQuantity" show-overflow-tooltip /> <el-table-column label="åºåé¢è¦æ°é" prop="warnNum" show-overflow-tooltip /> <el-table-column label="夿³¨" prop="remark" show-overflow-tooltip /> <el-table-column label="æè¿æ´æ°æ¶é´" prop="updateTime" show-overflow-tooltip /> <el-table-column fixed="right" label="æä½" min-width="60" align="center"> <template #default="scope"> <el-button link type="primary" size="small" @click="showSubtractModal(scope.row)" :disabled="scope.row.qualitity === 0">é¢ç¨</el-button> <el-button link type="primary" size="small" v-if="scope.row.unLockedQuantity > 0" @click="showFrozenModal(scope.row)">å»ç»</el-button> <el-button link type="primary" size="small" v-if="scope.row.lockedQuantity > 0" @click="showThawModal(scope.row)">è§£å»</el-button> </template> </el-table-column> </el-table> @@ -53,6 +56,13 @@ v-model:visible="isShowImportModal" type="qualified" @uploadSuccess="handleQuery" /> <!-- å»ç»/è§£å»åºå--> <frozen-and-thaw-stock-inventory v-if="isShowFrozenAndThawModal" v-model:visible="isShowFrozenAndThawModal" :record="record" :operation-type="operationType" type="qualified" @completed="handleQuery" /> </div> </template> @@ -64,6 +74,7 @@ const NewStockInventory = defineAsyncComponent(() => import("@/views/inventoryManagement/stockManagement/New.vue")); const SubtractStockInventory = defineAsyncComponent(() => import("@/views/inventoryManagement/stockManagement/Subtract.vue")); const ImportStockInventory = defineAsyncComponent(() => import("@/views/inventoryManagement/stockManagement/Import.vue")); const FrozenAndThawStockInventory = defineAsyncComponent(() => import("@/views/inventoryManagement/stockManagement/FrozenAndThaw.vue")); const { proxy } = getCurrentInstance() const tableData = ref([]) const selectedRows = ref([]) @@ -78,6 +89,10 @@ const isShowNewModal = ref(false) // æ¯å¦æ¾ç¤ºé¢ç¨å¼¹æ¡ const isShowSubtractModal = ref(false) // æ¯å¦æ¾ç¤ºå»ç»/è§£å»å¼¹æ¡ const isShowFrozenAndThawModal = ref(false) // æä½ç±»å const operationType = ref('frozen') // æ¯å¦æ¾ç¤ºå¯¼å ¥å¼¹æ¡ const isShowImportModal = ref(false) const data = reactive({ @@ -128,6 +143,20 @@ isShowSubtractModal.value = true } // ç¹å»å»ç» const showFrozenModal = (row) => { record.value = row isShowFrozenAndThawModal.value = true operationType.value = 'frozen' } // ç¹å»è§£å» const showThawModal = (row) => { record.value = row isShowFrozenAndThawModal.value = true operationType.value = 'thaw' } // è¡¨æ ¼éæ©æ°æ® const handleSelectionChange = (selection) => { // è¿æ»¤æåæ°æ® src/views/inventoryManagement/stockManagement/Unqualified.vue
@@ -24,12 +24,15 @@ <el-table-column label="è§æ ¼åå·" prop="model" show-overflow-tooltip /> <el-table-column label="åä½" prop="unit" show-overflow-tooltip /> <el-table-column label="åºåæ°é" prop="qualitity" show-overflow-tooltip /> <el-table-column label="å»ç»æ°é" prop="lockedQuantity" show-overflow-tooltip /> <el-table-column label="åºåé¢è¦æ°é" prop="warnNum" show-overflow-tooltip /> <el-table-column label="夿³¨" prop="remark" show-overflow-tooltip /> <el-table-column label="æè¿æ´æ°æ¶é´" prop="updateTime" show-overflow-tooltip /> <el-table-column fixed="right" label="æä½" min-width="60" align="center"> <template #default="scope"> <el-button link type="primary" size="small" @click="showSubtractModal(scope.row)" :disabled="scope.row.qualitity === 0">é¢ç¨</el-button> <el-button link type="primary" size="small" v-if="scope.row.unLockedQuantity > 0" @click="showFrozenModal(scope.row)">å»ç»</el-button> <el-button link type="primary" size="small" v-if="scope.row.lockedQuantity > 0" @click="showThawModal(scope.row)">è§£å»</el-button> </template> </el-table-column> </el-table> @@ -45,6 +48,13 @@ v-model:visible="isShowSubtractModal" :record="record" @completed="handleQuery" /> <!-- å»ç»/è§£å»åºå--> <frozen-and-thaw-stock-inventory v-if="isShowFrozenAndThawModal" v-model:visible="isShowFrozenAndThawModal" :record="record" :operation-type="operationType" type="unqualified" @completed="handleQuery" /> </div> </template> @@ -55,6 +65,7 @@ import { getStockUninventoryListPage } from "@/api/inventoryManagement/stockUninventory.js"; const NewStockInventory = defineAsyncComponent(() => import("@/views/inventoryManagement/stockManagement/New.vue")); const SubtractStockInventory = defineAsyncComponent(() => import("@/views/inventoryManagement/stockManagement/Subtract.vue")); const FrozenAndThawStockInventory = defineAsyncComponent(() => import("@/views/inventoryManagement/stockManagement/FrozenAndThaw.vue")); const { proxy } = getCurrentInstance() const tableData = ref([]) @@ -70,6 +81,10 @@ const isShowNewModal = ref(false) // æ¯å¦æ¾ç¤ºé¢ç¨å¼¹æ¡ const isShowSubtractModal = ref(false) // æ¯å¦æ¾ç¤ºå»ç»/è§£å»å¼¹æ¡ const isShowFrozenAndThawModal = ref(false) // æä½ç±»å const operationType = ref('frozen') const data = reactive({ searchForm: { productName: '', @@ -107,6 +122,20 @@ isShowSubtractModal.value = true } // ç¹å»å»ç» const showFrozenModal = (row) => { record.value = row isShowFrozenAndThawModal.value = true operationType.value = 'frozen' } // ç¹å»è§£å» const showThawModal = (row) => { record.value = row isShowFrozenAndThawModal.value = true operationType.value = 'thaw' } // è¡¨æ ¼éæ©æ°æ® const handleSelectionChange = (selection) => { // è¿æ»¤æåæ°æ®