From ecc07b94954b4a2069b5eb32a59dd9ad366e0868 Mon Sep 17 00:00:00 2001 From: xuhuajiao <13476289682@163.com> Date: Sat, 8 Feb 2025 17:30:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=9B=98=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 1 + .env.production | 3 +- package.json | 5 +- public/static/config.js | 3 +- src/api/stockTask/index.js | 11 +- src/assets/styles/sidebar.scss | 2 +- src/main.js | 3 + src/utils/upload.js | 15 + .../checkManage/checkLog/index.vue | 9 +- .../checkManage/dataScreening/girdList.vue | 6 +- .../checkManage/mobileCheck/index.vue | 515 ++++++++++++++++++ .../mobileCheck/module/corpper.vue | 271 +++++++++ .../checkManage/paramSetting/index.vue | 84 ++- 13 files changed, 916 insertions(+), 12 deletions(-) create mode 100644 src/views/visualCheck/checkManage/mobileCheck/index.vue create mode 100644 src/views/visualCheck/checkManage/mobileCheck/module/corpper.vue diff --git a/.env.development b/.env.development index beadcc3..7903d2b 100644 --- a/.env.development +++ b/.env.development @@ -3,6 +3,7 @@ ENV = 'development' # 接口地址 # 许镇-本地服地址 +#VUE_APP_BASE_API = 'http://192.168.99.67:12010' VUE_APP_BASE_API = 'http://192.168.99.86:12010' #VUE_APP_BASE_API = 'http://27.19.205.234:17070' diff --git a/.env.production b/.env.production index e6e0e99..1c7f8fc 100644 --- a/.env.production +++ b/.env.production @@ -3,7 +3,8 @@ ENV = 'production' # 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置 # 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http -VUE_APP_BASE_API = 'http://192.168.3.220:12010' +#VUE_APP_BASE_API = 'http://192.168.3.220:12010' +VUE_APP_BASE_API = 'http://192.168.99.86:12010' # 如果接口是 http 形式, wss 需要改为 ws #VUE_APP_WS_API = 'ws://27.16.212.58:11100' #VUE_APP_CAMERA_API = '192.168.99.107:3000' diff --git a/package.json b/package.json index c5aabca..826a0ca 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "codemirror": "^5.49.2", "connect": "3.6.6", "core-js": "^3.6.5", + "cropperjs": "^1.6.2", "d3": "^4.12.0", "dimple": "git+https://github.com/PMSI-AlignAlytics/dimple.git#2.3.0", "docx-preview": "^0.1.8", @@ -85,7 +86,8 @@ "vue": "^2.6.14", "vue-awesome-swiper": "^3.1.3", "vue-count-to": "^1.0.13", - "vue-cropper": "0.4.9", + "vue-cropper": "^0.4.9", + "vue-cropperjs": "^5.0.0", "vue-demi": "^0.14.7", "vue-echarts": "^5.0.0-beta.0", "vue-highlightjs": "^1.3.3", @@ -124,6 +126,7 @@ "eslint": "5.15.3", "eslint-plugin-vue": "5.2.2", "generate-asset-webpack-plugin": "^0.3.0", + "html-webpack-plugin": "^4.5.2", "http-proxy-middleware": "^0.19.1", "husky": "1.3.1", "lint-staged": "8.1.5", diff --git a/public/static/config.js b/public/static/config.js index 29aefbd..0a18e3e 100644 --- a/public/static/config.js +++ b/public/static/config.js @@ -1,6 +1,7 @@ window.g = { AXIOS_TIMEOUT: 10000, - ApiUrl: 'http://192.168.3.220:12010', // 配置服务器地址, + // ApiUrl: 'http://192.168.3.220:12010', // 配置服务器地址, + ApiUrl: 'http://192.168.99.86:12010', // 配置服务器地址, // ParentPage: { // 后续看需求配置 // CrossDomainProxyUrl: '/Home/CrossDomainProxy', // BtnsApi: '/api/services/app/Authorization/GetBtns', diff --git a/src/api/stockTask/index.js b/src/api/stockTask/index.js index ab6f289..e30ed0e 100644 --- a/src/api/stockTask/index.js +++ b/src/api/stockTask/index.js @@ -147,4 +147,13 @@ export function FetchStartStopBookAIService(params) { }) } -export default { add, edit, del, FetchUpdateStockTaskStatus, FetchInitSuggestTilting, FetchInitSetting, FetchEditSetting, FetchInitHomeInfo, FetchInitStockInfo, FetchInitHotBookList, FetchInitHotShelfList, FetchInitBookDetailsByGrids, FetchAITerminalStatusQuery, FetchBillByShelfIdAndGridShelf, FetchIsGoodcutByBillNoAndGridId, FetchInitErrorProbaDesc, FetchShowByBillIdAndShelfIdAndGridShelf, FetchStartStopBookAIService } +// 移动盘点 +export function FetchMoveBills(data) { + return request({ + url: 'api/stocktask-task/moveBill', + method: 'post', + data + }) +} + +export default { add, edit, del, FetchUpdateStockTaskStatus, FetchInitSuggestTilting, FetchInitSetting, FetchEditSetting, FetchInitHomeInfo, FetchInitStockInfo, FetchInitHotBookList, FetchInitHotShelfList, FetchInitBookDetailsByGrids, FetchAITerminalStatusQuery, FetchBillByShelfIdAndGridShelf, FetchIsGoodcutByBillNoAndGridId, FetchInitErrorProbaDesc, FetchShowByBillIdAndShelfIdAndGridShelf, FetchStartStopBookAIService, FetchMoveBills } diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss index 0c784c1..e5cf67b 100644 --- a/src/assets/styles/sidebar.scss +++ b/src/assets/styles/sidebar.scss @@ -18,7 +18,7 @@ top: $headerHeight; bottom: 0; left: 0; - z-index: 99; + z-index: 99999; @include bg_color; @include siderBar-set; padding-bottom: 50px; diff --git a/src/main.js b/src/main.js index b6cacb6..aa483c4 100644 --- a/src/main.js +++ b/src/main.js @@ -67,6 +67,9 @@ Vue.directive('removeAriaHidden', { } }) +import VueCropper from 'vue-cropper' +Vue.use(VueCropper) + Vue.use(uploader) Vue.use(checkPer) Vue.use(VueHighlightJS) diff --git a/src/utils/upload.js b/src/utils/upload.js index 40c58af..e38f57e 100644 --- a/src/utils/upload.js +++ b/src/utils/upload.js @@ -120,3 +120,18 @@ export function onlineUpload(api, file, params) { } return axios.post(api, data, config) } + +// 移动盘点 +export function mobileUpload(api, file, params) { + var data = new FormData() + for (const item in file) { + data.append('files', file[item]) + } + // data.append('files', file) + data.append('gridId', params.gridId) + data.append('stockRegion', params.stockRegion) + const config = { + headers: { 'Authorization': getToken() } + } + return axios.post(api, data, config) +} diff --git a/src/views/visualCheck/checkManage/checkLog/index.vue b/src/views/visualCheck/checkManage/checkLog/index.vue index bb3e859..0b5b86e 100644 --- a/src/views/visualCheck/checkManage/checkLog/index.vue +++ b/src/views/visualCheck/checkManage/checkLog/index.vue @@ -47,6 +47,7 @@ 书架盘点 架位盘点 层位盘点 + 移动盘点 @@ -140,6 +141,7 @@
  • 盘点类型:书架盘点
  • 盘点类型:架位盘点
  • 盘点类型:层位盘点
  • +
  • 盘点类型:移动盘点
  • 目标位置:{{ detailInfo.stockRegion }}
  • 目标数量:{{ detailInfo.stockGridNum }} / {{ detailInfo.totalGridNum }} 层位
  • @@ -277,7 +279,8 @@ export default { { key: 3, display_name: '计划盘点' }, { key: 4, display_name: '书架盘点' }, { key: 5, display_name: '架位盘点' }, - { key: 6, display_name: '层位盘点' } + { key: 6, display_name: '层位盘点' }, + { key: 7, display_name: '移动盘点' } ], blurryTime: null, tabIndex: 0, @@ -368,8 +371,8 @@ export default { return true }, clickRowHandler(row) { - this.$refs.table.clearSelection() - this.$refs.table.toggleRowSelection(row) + // this.$refs.table.clearSelection() + // this.$refs.table.toggleRowSelection(row) }, doExport(data) { this.$confirm('此操作将导出所选数据' + '你是否还要继续?', '提示', { diff --git a/src/views/visualCheck/checkManage/dataScreening/girdList.vue b/src/views/visualCheck/checkManage/dataScreening/girdList.vue index 2a3bf6f..ab7291b 100644 --- a/src/views/visualCheck/checkManage/dataScreening/girdList.vue +++ b/src/views/visualCheck/checkManage/dataScreening/girdList.vue @@ -418,6 +418,8 @@ export default { return '架位盘点' case 6: return '层位盘点' + case 7: + return '移动盘点' default: return '现在' } @@ -503,6 +505,7 @@ export default { color: '#0bbd87' }) this.billNoImg = this.checkDateLine[this.timeIndex].stockType === 0 ? this.checkDateLine[1].stockBill : this.checkDateLine[this.timeIndex].stockBill + console.log('this.checkDateLine', this.checkDateLine) } else { this.checkDateLine = [] } @@ -777,8 +780,7 @@ export default { handleHistory(item, index) { this.shelfAllGridDataLoading = true this.timeIndex = index - - this.billNoImg = this.checkDateLine[this.timeIndex].stockType === 0 ? this.checkDateLine[1].stockBill : this.checkDateLine[this.timeIndex].stockBill + this.billNoImg = item.stockType === 0 ? this.checkDateLine[1].stockBill : item.stockBill if (item.stockType === 0) { this.initData() setTimeout(() => { diff --git a/src/views/visualCheck/checkManage/mobileCheck/index.vue b/src/views/visualCheck/checkManage/mobileCheck/index.vue new file mode 100644 index 0000000..b72fe7e --- /dev/null +++ b/src/views/visualCheck/checkManage/mobileCheck/index.vue @@ -0,0 +1,515 @@ + + + + + diff --git a/src/views/visualCheck/checkManage/mobileCheck/module/corpper.vue b/src/views/visualCheck/checkManage/mobileCheck/module/corpper.vue new file mode 100644 index 0000000..15f21b1 --- /dev/null +++ b/src/views/visualCheck/checkManage/mobileCheck/module/corpper.vue @@ -0,0 +1,271 @@ + + + + + + diff --git a/src/views/visualCheck/checkManage/paramSetting/index.vue b/src/views/visualCheck/checkManage/paramSetting/index.vue index 33f3fe1..0948582 100644 --- a/src/views/visualCheck/checkManage/paramSetting/index.vue +++ b/src/views/visualCheck/checkManage/paramSetting/index.vue @@ -104,6 +104,51 @@
    请尽快联系系统维护人员进行恢复
    + +
    + + +
    +
    + 图书 +
    + +
    {{ isMobile ? '拍照上传':'上传文件' }}
    +
    + +
    +
    + + + + + + + 查看 + +
    + @@ -113,12 +158,13 @@ import { encrypt } from '@/utils/rsaEncrypt' import { verifyMaintenance } from '@/api/system/param' import CRUD, { presenter, header, form, crud } from '@crud/crud' import { mapGetters } from 'vuex' +import CropperImage from '../mobileCheck/module/corpper.vue' const defaultForm = { ip: '', maxNum: null } export default { name: 'ParamSetting', - components: { }, + components: { CropperImage }, cruds() { return CRUD({ title: '参数设置', @@ -175,7 +221,20 @@ export default { serviceItems: [], currentIndex: -1, timer: null, - servicesDisplayed: false + servicesDisplayed: false, + + formValidate: { + mainImage: '' + }, + ruleValidate: { + mainImage: [ + { required: true, message: '请上传照片', trigger: 'blur' } + ] + }, + // 裁切图片参数 + cropperModel: false, + imgName: '', + imgVisible: false } }, computed: { @@ -195,6 +254,27 @@ export default { } }, methods: { + // 封面设置 + uploadPicture() { + this.cropperModel = true + }, + // 图片上传成功后 + handleUploadSuccess(data) { + console.log(data) + this.formValidate.mainImage = data.url + // switch (data.name) { + // case 'flagImg': + // this.formValidate.mainImage = 'http://ydfblog.cn/dfs/' + data.url + // console.log('最终输出' + data.name) + // break + // } + this.cropperModel = false + }, + // 查看大图 + showCoverPreview(imgSrc) { + this.imgVisible = true + this.imgName = imgSrc + }, initData() { crudStockTask.FetchInitSetting().then(res => { this.crud.form.ip = res.ip