From e82e77b52ed57f967272e93a29482cce616631b8 Mon Sep 17 00:00:00 2001 From: xuhuajiao <13476289682@163.com> Date: Mon, 6 Jan 2025 17:29:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9/=E6=95=B0=E6=8D=AE=E6=80=BB?= =?UTF-8?q?=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/stockTask/index.js | 2 +- src/api/stockTaskLog/index.js | 51 ++++++-- src/assets/styles/manage.scss | 19 +++ src/components/Crud/crud.js | 17 ++- src/views/components/canvasPreview.vue | 38 ++++-- src/views/components/mark.vue | 6 +- .../checkManage/bookshelfSearch/index.vue | 16 ++- .../checkManage/checkLog/index.vue | 111 ++++++++++++++---- .../checkManage/checkPlan/index.vue | 19 ++- .../checkManage/dataScreening/girdList.vue | 30 ++++- .../checkManage/dataScreening/index.vue | 32 +++-- .../checkManage/dataScreening/regionsList.vue | 23 +++- .../checkManage/dataScreening/shelfList.vue | 30 ++++- .../visualCheck/venueDevice/area/index.vue | 4 +- .../visualCheck/venueDevice/floor/index.vue | 2 +- 15 files changed, 312 insertions(+), 88 deletions(-) diff --git a/src/api/stockTask/index.js b/src/api/stockTask/index.js index 4a77182..d53c36b 100644 --- a/src/api/stockTask/index.js +++ b/src/api/stockTask/index.js @@ -19,7 +19,7 @@ export function edit(data) { export function del(ids) { return request({ - url: '', + url: 'api/stocktask-task/delStockTask', method: 'post', data: ids }) diff --git a/src/api/stockTaskLog/index.js b/src/api/stockTaskLog/index.js index 6473666..68f88bc 100644 --- a/src/api/stockTaskLog/index.js +++ b/src/api/stockTaskLog/index.js @@ -17,13 +17,23 @@ import qs from 'qs' // }) // } -// export function del(ids) { -// return request({ -// url: '', -// method: 'post', -// data: ids -// }) -// } +// 盘点单删除 +export function del(data) { + return request({ + url: '/api/stocktask-task/delStockBill', + method: 'post', + data: data + }) +} + +// 终止盘点单 +export function FetchStopStockBill(data) { + return request({ + url: '/api/stocktask-task/stopStockBill', + method: 'post', + data: data + }) +} // 盘点日志列表 export function FetchInitStockLogList(params) { @@ -57,4 +67,29 @@ export function FetchProgressByStockBillAndGridCode(params) { }) } -export default { FetchInitStockLogList, FetchInitStockLogDetails, FetchProgressByStockBillAndGridCode, FetchInitStockTaskDetails } +// 获取最新的盘点单号 +export function FetchNewBillNo(params) { + return request({ + url: 'api/stocktask-task/getNewBillNo' + '?' + qs.stringify(params, { indices: false }), + method: 'get' + }) +} + +// 获取目标最新层架位数量 +export function FetchStockGirdNum(params) { + return request({ + url: 'api/stocktask-task/getStockGirdNum' + '?' + qs.stringify(params, { indices: false }), + method: 'get' + }) +} + +// 手动创建盘点任务 +export function add(data) { + return request({ + url: 'api/stocktask-task/createBill', + method: 'post', + data: data + }) +} + +export default { del, FetchStopStockBill, FetchInitStockLogList, FetchInitStockLogDetails, FetchProgressByStockBillAndGridCode, FetchInitStockTaskDetails, FetchNewBillNo, FetchStockGirdNum, add } diff --git a/src/assets/styles/manage.scss b/src/assets/styles/manage.scss index 8b2c5a0..1a9a4fe 100644 --- a/src/assets/styles/manage.scss +++ b/src/assets/styles/manage.scss @@ -30,6 +30,25 @@ } } +.dataScreening-header{ + h4{ + flex: none; + } + .bookshelf-area{ + display: flex; + justify-content: flex-start; + flex: 1; + padding: 4px 30px; + a{ + display: block; + } + span{ + display: block; + padding: 0 6px; + } + } +} + .venue-content{ display: flex; justify-content: space-between; diff --git a/src/components/Crud/crud.js b/src/components/Crud/crud.js index ab01bcd..d53d5e6 100644 --- a/src/components/Crud/crud.js +++ b/src/components/Crud/crud.js @@ -114,6 +114,9 @@ function CRUD(options) { addSuccessNotify() { crud.notify(crud.msg.add, CRUD.NOTIFICATION_TYPE.SUCCESS) }, + addErrorNotify(message) { + crud.notify(message, CRUD.NOTIFICATION_TYPE.ERROR) + }, editSuccessNotify() { crud.notify(crud.msg.edit, CRUD.NOTIFICATION_TYPE.SUCCESS) }, @@ -273,11 +276,17 @@ function CRUD(options) { crud.crudMethod.add(crud.form).then((res) => { crud.status.add = CRUD.STATUS.NORMAL crud.resetForm() - crud.addSuccessNotify() - if (res && res !== 'SUCCESS' && res !== '保存成功') { - callVmHook(crud, CRUD.HOOK.afterSubmit, res) + if (res) { + if (res !== 'SUCCESS' && res !== '保存成功' && res.code !== 500) { + crud.addSuccessNotify() + callVmHook(crud, CRUD.HOOK.afterSubmit, res) + } else { + crud.addErrorNotify(res.message) + callVmHook(crud, CRUD.HOOK.afterAddError) + } } else { - callVmHook(crud, CRUD.HOOK.afterSubmit) + crud.addErrorNotify(res.message) + callVmHook(crud, CRUD.HOOK.afterAddError) } crud.toQuery() }).catch(() => { diff --git a/src/views/components/canvasPreview.vue b/src/views/components/canvasPreview.vue index 5b7f734..a4bb3d4 100644 --- a/src/views/components/canvasPreview.vue +++ b/src/views/components/canvasPreview.vue @@ -69,16 +69,15 @@ export default { handler(newVal, oldVal) { // 检查 newVal 是否为 null 或 undefined if (!newVal) { - console.log('newVal is null or undefined') + console.log('newVal-null') return } }, deep: true }, - imageUrl(newVal, oldVal) { if (newVal !== oldVal) { - console.log('imageUrl') + console.log('imageUrl', newVal) } } }, @@ -91,9 +90,9 @@ export default { // } }, methods: { - initCanvasPreview(drawinfo) { + initCanvasPreview(drawinfo, tabIndex) { if (!this.currentMarkData) { - console.error('currentMarkData is null or undefined') + console.error('currentMarkData-null') return } @@ -106,7 +105,7 @@ export default { this.$nextTick(() => { this.canvasPreview.selectionColor = 'rgba(0,0,0,0.05)' - this.loadDrawPreview(drawinfo) + this.loadDrawPreview(drawinfo, tabIndex) this.canvasPreview.on('mouse:wheel', this.mouse) }) }, @@ -122,11 +121,12 @@ export default { this.canvasPreview.zoomToPoint(zoomPoint, zoom) }, // 回显详情信息 - loadDrawPreview(drawinfo) { + loadDrawPreview(drawinfo, tabIndex) { const self = this const pointGroup = drawinfo.pointInfo const imgInfo = drawinfo.imgInfo imgInfo.src = self.imageUrl + // 加载底图 fabric.util.enlivenObjects([imgInfo], objects => { objects.forEach(o => { @@ -177,9 +177,9 @@ export default { floorName: e.target.floorName } if (self.pagePreview === 'floor') { - self.handleToRegions(toReigonsData) + self.handleToRegions(toReigonsData, tabIndex) } else if (self.pagePreview === 'region') { - self.handleToShelfs(toReigonsData) + self.handleToShelfs(toReigonsData, tabIndex) } } else { lastClickTime = currentTime @@ -229,7 +229,6 @@ export default { document.getElementById('tooltip').style.left = rectLeft + 'px' document.getElementById('tooltip').style.top = rectTop + 'px' document.getElementById('tooltip').style.display = 'block' - self.canvasPreview.renderAll() }) @@ -240,16 +239,29 @@ export default { }) } }) + // 计算画布的中心点 + const centerX = self.canvasPreview.width / 2 + const centerY = self.canvasPreview.height / 2 + const centerPoint = new fabric.Point(centerX, centerY) + + // 设置画布的缩放比例为最小值并居中显示 + self.canvasPreview.zoomToPoint(centerPoint, 0.8) + self.canvasPreview.renderAll() + + setTimeout(() => { + self.$parent.prewLoading = false + }, 500) }) - self.canvasPreview.renderAll() }, - handleToRegions(data) { + handleToRegions(data, tabIndex) { this.$router.push({ path: '/dataScreening/regions' }) localStorage.setItem('dataScreenFloor', JSON.stringify(data)) + localStorage.setItem('dataScreenFloorTableIndex', tabIndex) }, - handleToShelfs(data) { + handleToShelfs(data, tabIndex) { this.$router.push({ path: '/dataScreening/shelf' }) localStorage.setItem('dataScreenRegion', JSON.stringify(data)) + localStorage.setItem('dataScreenRegionTableIndex', tabIndex) } } } diff --git a/src/views/components/mark.vue b/src/views/components/mark.vue index f6b1027..ac8cb8c 100644 --- a/src/views/components/mark.vue +++ b/src/views/components/mark.vue @@ -134,9 +134,9 @@ export default { this.canvas.clear() this.canvas.dispose() this.drawinfo = newVal.signPoint ? JSON.parse(newVal.signPoint) : null - this.$nextTick(() => { - this.$refs.markRefs.initCanvas() - }) + // this.$nextTick(() => { + // this.$refs.markRefs.initCanvas() + // }) } } diff --git a/src/views/visualCheck/checkManage/bookshelfSearch/index.vue b/src/views/visualCheck/checkManage/bookshelfSearch/index.vue index db5e138..d6e9213 100644 --- a/src/views/visualCheck/checkManage/bookshelfSearch/index.vue +++ b/src/views/visualCheck/checkManage/bookshelfSearch/index.vue @@ -105,10 +105,10 @@
书架图
-
+

{{ item + '架' }}

-
@@ -238,7 +238,7 @@ import { mapGetters } from 'vuex' import { parseTime, saveAs, getBlob } from '@/utils/index' import qs from 'qs' -const defaultForm = { id: null, taskType: null, taskName: null, location: null, number: null, remark: null } +const defaultForm = { stockTypeName: '全量盘点', stockType: 1, stockBill: null, stockRegion: '全部区域', stockGridNum: null, stockGridNumName: null, stockRemarks: null, regionId: null, shelfId: null, gridShelf: null, gridId: null } export default { name: 'CheckLog', components: { crudOperation, rrOperation, pagination, taskStockLogEcharts }, @@ -287,16 +287,16 @@ export default { del: ['admin', 'checkLog:del'] }, rules: { - taskName: [ + stockBill: [ { required: true, message: '请输入盘点单号', trigger: 'blur' } ], - taskType: [ + stockTypeName: [ { required: true, message: '请输入盘点类型', trigger: 'blur' } ], - location: [ + stockRegion: [ { required: true, message: '请输入目标位置', trigger: 'blur' } ], - number: [ + stockGridNumName: [ { required: true, message: '请输入目标数量', trigger: 'blur' } ] } @@ -313,16 +313,34 @@ export default { }, [CRUD.HOOK.afterRefresh](crud) { }, - // 新增前将多选的值设置为空 + // 新增前 [CRUD.HOOK.beforeToAdd]() { - }, // 初始化编辑时候的角色与岗位 + if (this.crud.form.stockType === 1) { + this.crud.form.stockTypeName = '全量盘点' + } + + Promise.all([ + crudStockTaskLog.FetchNewBillNo(), + crudStockTaskLog.FetchStockGirdNum() + ]).then(([newBillNoRes, stockGridNumRes]) => { + this.crud.form.stockBill = newBillNoRes + this.crud.form.stockGridNumName = stockGridNumRes + ' / 层位' + this.crud.form.stockGridNum = stockGridNumRes + }).catch(error => { + console.error(error) + }) + }, + // 初始化编辑时 [CRUD.HOOK.beforeToEdit](crud, form) { }, [CRUD.HOOK.beforeValidateCU](crud, form) { }, // 提交前做的操作 [CRUD.HOOK.afterValidateCU](crud) { - return false + console.log(crud.form) + delete crud.form.stockGridNumName + delete crud.form.stockTypeName + return true }, clickRowHandler(row) { this.$refs.table.clearSelection() @@ -416,6 +434,59 @@ export default { handleCloseDialog() { this.detailVisible = false this.tabIndex = 0 + }, + toDelete() { + this.$confirm('此操作将删除当前盘点单任务你是否还要继续?', '提示', { + confirmButtonText: '继续', + cancelButtonText: '取消', + type: 'warning', + dangerouslyUseHTMLString: true + }).then(() => { + this.crud.delAllLoading = true + const params = { + 'id': this.dbRowData.billId + } + console.log(params) + crudStockTaskLog.del(params).then(res => { + console.log(res) + if (res && res.code !== 500) { + this.$message({ message: '当前盘点单任务删除成功', type: 'success', offset: 8 }) + this.crud.refresh() + } else { + this.$message({ message: res.message, type: 'error', offset: 8 }) + } + this.crud.delAllLoading = false + }).catch(err => { + this.crud.delAllLoading = false + console.log(err) + }) + }).catch(() => { + this.crud.delAllLoading = false + }) + }, + toStopStockBill() { + this.$confirm('此操作将终止当前盘点单任务你是否还要继续?', '提示', { + confirmButtonText: '继续', + cancelButtonText: '取消', + type: 'warning', + dangerouslyUseHTMLString: true + }).then(() => { + const params = { + 'id': this.dbRowData.billId + } + crudStockTaskLog.FetchStopStockBill(params).then(res => { + console.log(res) + if (res && res.code !== 500) { + this.$message({ message: '当前盘点单任务终止成功', type: 'success', offset: 8 }) + this.crud.refresh() + } else { + this.$message({ message: res.message, type: 'error', offset: 8 }) + } + }).catch(err => { + console.log(err) + }) + }).catch(() => { + }) } } } diff --git a/src/views/visualCheck/checkManage/checkPlan/index.vue b/src/views/visualCheck/checkManage/checkPlan/index.vue index 1a74852..1af7528 100644 --- a/src/views/visualCheck/checkManage/checkPlan/index.vue +++ b/src/views/visualCheck/checkManage/checkPlan/index.vue @@ -599,16 +599,15 @@ export default { datas.forEach(val => { ids.push(val.id) }) - console.log(ids) - // crudStocktask.del(ids).then(res => { - // console.log(res) - // this.$message({ message: res, type: 'success', offset: 8 }) - // this.crud.delAllLoading = false - // this.crud.refresh() - // }).catch(err => { - // this.crud.delAllLoading = false - // console.log(err) - // }) + crudStocktask.del(ids).then(res => { + console.log(res) + this.$message({ message: '盘点任务删除成功', type: 'success', offset: 8 }) + this.crud.delAllLoading = false + this.crud.refresh() + }).catch(err => { + this.crud.delAllLoading = false + console.log(err) + }) }).catch(() => { this.crud.delAllLoading = false }) diff --git a/src/views/visualCheck/checkManage/dataScreening/girdList.vue b/src/views/visualCheck/checkManage/dataScreening/girdList.vue index cc10721..db0769c 100644 --- a/src/views/visualCheck/checkManage/dataScreening/girdList.vue +++ b/src/views/visualCheck/checkManage/dataScreening/girdList.vue @@ -1,8 +1,21 @@