Browse Source

库位盘点页面新增复选功能

myd
qb 2 years ago
parent
commit
77cc647fb5
  1. 7
      compoment/BasicContainer/BasicContainer.vue
  2. 182
      compoment/tiplist/tiplist.vue
  3. 101
      pages.json
  4. 7
      pagesHome/pages/lnventorysortinglist/lnventorysortinglist.vue
  5. 7
      pagesHome/pages/scansorting/scansorting.vue
  6. 21
      pagesTask/pages/checkTaskList/checkTaskList.vue
  7. 23
      pagesTask/pages/dynamicCheck/dynamicCheck.vue
  8. 374
      pagesTask/pages/storageLocationCheckDetails/storageLocationCheckDetails.vue
  9. BIN
      static/check1.png
  10. 4
      unpackage/dist/dev/app-plus/app-config-service.js
  11. 331
      unpackage/dist/dev/app-plus/app-service.js
  12. 6
      unpackage/dist/dev/app-plus/manifest.json

7
compoment/BasicContainer/BasicContainer.vue

@ -71,7 +71,12 @@
})
}
console.log('antiShake :>> ', antiShake);
if (antiShake) return clearTimeout(antiShake)
if (antiShake) {
uni.hideLoading()
//
clearTimeout(antiShake)
return antiShake = null
}
// Loading,
uni.showLoading({
title: '正在加载',

182
compoment/tiplist/tiplist.vue

@ -1,110 +1,100 @@
<template>
<view class="maboxbg" v-if="isshow" @click="checkbox(0)">
<view class="modtips" @click.stop.prevent v-if="tipstate==1">
<view class="modtips" @click.stop.prevent>
<view class="title">
{{title||'提示'}}
</view>
<!-- <view class="contents">
{{content||'提示内容模板'}}
</view> -->
<view class="inputbx">
<input v-model="inputtext" :placeholder="placeholder" />
</view>
<view class="buts">
<view @click="checkbox(1)" v-if="isshowcancel" class="cancel">{{cancelTxt||'取消'}}</view>
<view @click="checkbox(2)" class="confirm">{{confirmTxt||'确认'}}</view>
</view>
</view>
<view class="modtips" @click.stop.prevent v-if="tipstate==2">
<view class="title">
{{title||'提示'}}
</view>
<!-- <view class="contents">
{{content||'提示内容模板'}}
</view> -->
<!-- <view>
<input placeholder="请输入搜索内容"/>
</view> -->
<view class="selviebx" v-if="!isonecheck">
<view @click="checkall" v-if="checklength!=checklist.length">全选</view>
<view @click="removeall" v-else>全不选</view>
</view>
<view class="listcheck">
<view @click="checkitem(index)" v-for="(item,index) in list">
<image :src="checklist.indexOf(index)==-1?'/static/nocheck.png':'/static/check.png'"></image>
<view>{{item}}</view>
<!-- 输入框 -->
<template v-if="tipstate === 1">
<view class="inputbx">
<input v-model="inputtext" :placeholder="placeholder" />
</view>
</view>
<view class="buts">
<view @click="checkbox(1)" v-if="isshowcancel" class="cancel">{{cancelTxt||'取消'}}</view>
<view @click="checkbox(2)" class="confirm">{{confirmTxt||'确认'}}</view>
</view>
</view>
<!-- 照片列表 -->
<view class="modtips" @click.stop.prevent v-if="tipstate==3">
<view class="title">
{{title||'提示'}}
</view>
<!-- <view class="contents">
{{content||'提示内容模板'}}
</view> -->
<scroll-view scroll-y="true" class="scvboxs">
<view v-for="(item,index) in imglist" :key="item.dictKey">
<view style="display: flex; justify-content: space-between; align-items: center;">
<text
:class="{'tpstitl': true,'start': ImagesRequiredFields.find(val => val.key === item.dictKey), 'showTitle': ImagesRequiredFields.find(val => val.key === item.dictKey) && item.imgList.length < 3}">
{{item.dictValue}}
</text>
<text @click="handleShowImage" class="showImageBtn">预览模版</text>
</template>
<!-- 单选框 -->
<template v-else-if="tipstate === 2">
<view class="selviebx" v-if="!isonecheck">
<view @click="checkall" v-if="checklength!=checklist.length">全选</view>
<view @click="removeall" v-else>全不选</view>
</view>
<view class="listcheck">
<view @click="checkitem(index)" v-for="(item,index) in list">
<image :src="checklist.indexOf(index)==-1?'/static/nocheck.png':'/static/check.png'"></image>
<view>{{item}}</view>
</view>
<view class="imgbx">
<view v-for="(value,i) in item.imgList">
<image :src="value.urlRoute"></image>
<image @click="remove(index,i)" src="/compoment/cus-selects-fan/cha.png"></image>
</view>
</template>
<!-- 照片列表 -->
<template v-else-if="tipstate === 3">
<scroll-view scroll-y="true" class="scvboxs">
<view v-for="(item,index) in imglist" :key="item.dictKey">
<view style="display: flex; justify-content: space-between; align-items: center;">
<text
:class="{'tpstitl': true,'start': ImagesRequiredFields.find(val => val.key === item.dictKey), 'showTitle': ImagesRequiredFields.find(val => val.key === item.dictKey) && item.imgList.length < 3}">
{{item.dictValue}}
</text>
<text @click="handleShowImage" class="showImageBtn">预览模版</text>
</view>
<view @click="updateimg(item.dictKey, index)" v-if="imglist.length!=maximglength">
<image src="/static/add.png"></image>
<view class="imgbx">
<view v-for="(value,i) in item.imgList">
<image :src="value.urlRoute"></image>
<image @click="remove(index,i)" src="/compoment/cus-selects-fan/cha.png"></image>
</view>
<view @click="updateimg(item.dictKey, index)" v-if="imglist.length!=maximglength">
<image src="/static/add.png"></image>
</view>
</view>
</view>
</scroll-view>
<view class="inputbx">
<input v-model="inputtext" :placeholder="placeholder" />
</view>
</scroll-view>
<view class="inputbx">
<input v-model="inputtext" :placeholder="placeholder" />
</view>
<view class="buts">
<view @click="checkbox(1)" v-if="isshowcancel" class="cancel">{{cancelTxt||'取消'}}</view>
<view @click.stop="checkbox(2)" class="confirm">{{confirmTxt||'确认'}}</view>
</view>
</view>
<!-- 输入框列表 -->
<view class="modtips" @click.stop.prevent v-if="tipstate==4">
<view class="title">
{{title||'提示'}}
</view>
<scroll-view scroll-y="true" class="scvboxs">
<view class="inpNumList" @click="checkitem(index)" v-for="(item,index) in inpList">
<view class="inpNum-title">
物料名称: {{item.title}}
</template>
<!-- 输入框列表 -->
<template v-else-if="tipstate === 4">
<scroll-view scroll-y="true" class="scvboxs">
<view class="inpNumList" @click="checkitem(index)" v-for="(item,index) in inpList">
<view class="inpNum-title">
物料名称: {{item.title}}
</view>
<view class="inpNum-title">
物料总数: {{item.maxNum}}
</view>
<view class="inpNum-value">
<view class="">
物料数量:&nbsp;
</view>
<!-- 当输入框类型为数字类型时 -->
<input class="inpNum" v-if="(item.type).toLocaleLowerCase() === 'number' && !item.disabled"
:placeholder="item.placeholder" :disabled="item.disabled" type="number" v-model="item.value"
@input="inputNum(item)" />
<text v-else-if="item.disabled" style="flex: 1;"> {{item.value}}</text>
<up-input v-else :placeholder="item.placeholder" border="surround" :disabled="item.disabled"
:type="item.type" v-model="item.value" clearable></up-input>
</view>
</view>
<view class="inpNum-title">
物料总数: {{item.maxNum}}
</scroll-view>
</template>
<!-- 复选框列表 -->
<template v-else-if="tipstate === 5">
<scroll-view scroll-y="true" class="scvboxs">
<view class="selviebx" v-if="!isonecheck">
<view @click="checkallItem" v-if="checklength!=checklist.length">全选</view>
<view @click="invertSelection" v-else>反选</view>
</view>
<view class="inpNum-value">
<view class="">
物料数量:&nbsp;
<view class="listcheck">
<view @click="checkitem(index)" v-for="(item,index) in list">
<image :src="checklist.indexOf(index)==-1?'/static/nock.png':'/static/check1.png'"></image>
<view>{{item}}</view>
</view>
<!-- 当输入框类型为数字类型时 -->
<input class="inpNum" v-if="(item.type).toLocaleLowerCase() === 'number' && !item.disabled"
:placeholder="item.placeholder" :disabled="item.disabled" type="number" v-model="item.value"
@input="inputNum(item)" />
<text v-else-if="item.disabled" style="flex: 1;"> {{item.value}}</text>
<up-input v-else :placeholder="item.placeholder" border="surround" :disabled="item.disabled"
:type="item.type" v-model="item.value" clearable></up-input>
</view>
</view>
</scroll-view>
</scroll-view>
</template>
<view class="buts">
<view @click="checkbox(1)" v-if="isshowcancel" class="cancel">{{cancelTxt||'取消'}}</view>
<view @click="checkbox(2)" class="confirm">{{confirmTxt||'确认'}}</view>
@ -133,7 +123,7 @@
cancel: null,
close: null,
isshow: false,
list: ['12341131212'],
list: [],
checklist: [],
inputtext: '',
isonecheck: false,
@ -234,6 +224,12 @@
}
//
function checkallItem() { }
//
function invertSelection() { }
function handleShowImage() {
details.showPreviewPicture = !details.showPreviewPicture
}

101
pages.json

@ -1168,55 +1168,56 @@
}
}
}
]
}
],
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
"tabBar": {
"color": "#999999",
"selectedColor": "#df8926",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "/static/TabberIcon/icon1.png",
"selectedIconPath": "/static/TabberIcon/icon1check.png",
"text": "工作台"
},
{
"pagePath": "pages/taskList/taskList",
"iconPath": "/static/TabberIcon/icon2.png",
"selectedIconPath": "/static/TabberIcon/icon2check.png",
"text": "任务"
},
// {
// "pagePath": "pages/reportForms/reportForms",
// "iconPath": "/static/TabberIcon/icon3.png",
// "selectedIconPath": "/static/TabberIcon/icon3check.png",
// "text": "报表"
// },
// {
// "pagePath": "pages/news/news",
// "iconPath": "/static/TabberIcon/icon4.png",
// "selectedIconPath": "/static/TabberIcon/icon4check.png",
// "text": "消息"
// },
{
"pagePath": "pages/user/user",
"iconPath": "/static/TabberIcon/icon5.png",
"selectedIconPath": "/static/TabberIcon/icon5check.png",
"text": "我的"
}
]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {}
}
}
],
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
"tabBar": {
"color": "#999999",
"selectedColor": "#df8926",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "/static/TabberIcon/icon1.png",
"selectedIconPath": "/static/TabberIcon/icon1check.png",
"text": "工作台"
},
{
"pagePath": "pages/taskList/taskList",
"iconPath": "/static/TabberIcon/icon2.png",
"selectedIconPath": "/static/TabberIcon/icon2check.png",
"text": "任务"
},
// {
// "pagePath": "pages/reportForms/reportForms",
// "iconPath": "/static/TabberIcon/icon3.png",
// "selectedIconPath": "/static/TabberIcon/icon3check.png",
// "text": "报表"
// },
// {
// "pagePath": "pages/news/news",
// "iconPath": "/static/TabberIcon/icon4.png",
// "selectedIconPath": "/static/TabberIcon/icon4check.png",
// "text": "消息"
// },
{
"pagePath": "pages/user/user",
"iconPath": "/static/TabberIcon/icon5.png",
"selectedIconPath": "/static/TabberIcon/icon5check.png",
"text": "我的"
}
]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {}
}

7
pagesHome/pages/lnventorysortinglist/lnventorysortinglist.vue

@ -127,7 +127,12 @@
})
}
console.log('antiShake :>> ', antiShake);
if (antiShake) return clearTimeout(antiShake)
if (antiShake) {
uni.hideLoading()
//
clearTimeout(antiShake)
return antiShake = null
}
// Loading,
uni.showLoading({
title: '正在加载',

7
pagesHome/pages/scansorting/scansorting.vue

@ -126,7 +126,12 @@
})
}
console.log('antiShake :>> ', antiShake);
if (antiShake) return clearTimeout(antiShake)
if (antiShake) {
uni.hideLoading()
//
clearTimeout(antiShake)
return antiShake = null
}
// Loading,
uni.showLoading({
title: '正在加载',

21
pagesTask/pages/checkTaskList/checkTaskList.vue

@ -164,13 +164,26 @@
//
onReachBottom(() => {
// ,
if (isEnd) return
if (antiShake) return clearTimeout(antiShake)
antiShake = setTimeout(() => {
if (isEnd) return uni.showToast({
title: '数据加载完毕',
icon: 'success'
})
if (antiShake) {
uni.hideLoading()
//
clearTimeout(antiShake)
return antiShake = null
}
uni.showLoading({
mask: true,
title: '数据加载中'
})
antiShake = setTimeout(async () => {
// +1
details.page.current += 1
//
initPage()
await initPage()
uni.hideLoading()
}, 500)
})

23
pagesTask/pages/dynamicCheck/dynamicCheck.vue

@ -107,13 +107,28 @@
//
onReachBottom(() => {
// ,
if (isEnd) return
if (antiShake) return clearTimeout(antiShake)
antiShake = setTimeout(() => {
if (isEnd) {
return uni.showToast({
title: '数据加载完毕',
icon: 'success'
})
}
if (antiShake) {
uni.hideLoading()
//
clearTimeout(antiShake)
return antiShake = null
}
uni.showLoading({
mask: true,
title: '数据加载中'
})
antiShake = setTimeout(async () => {
// +1
details.page.current += 1
//
initPage()
await initPage()
uni.hideLoading()
}, 500)
})

374
pagesTask/pages/storageLocationCheckDetails/storageLocationCheckDetails.vue

@ -50,7 +50,7 @@
<view class="control">
<view class="button" @click="showControl = true" v-show="!showControl">批量操作</view>
<template v-if="showControl">
<view class="button">反选</view>
<view class="button" @click="handleInvertSelection">反选</view>
<view class="controlList">
<view class="button" @click="handleBatchDel">
@ -66,111 +66,152 @@
</template>
</view>
<!-- 按库位盘点 -->
<!-- 表格 -->
<template v-if="renderList.length !== 0">
<view class="list" v-for="(item, index) in renderList" :key="item">
<view class="leftIcon">
<image class="checkImage"
:src="checkindex.indexOf(index)!=-1?'/pagesHome/static/check.png':'/pagesHome/static/nocheck.png'">
</image>
</view>
<!-- 定制品 -->
<template v-if="tabBarCode === 1">
<view class="rightMsg">
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>包条码{{item.serviceNum}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>合同号{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>状态{{item.orderCode}}</view>
</view>
<!-- 列表 -->
<scroll-view class="scvmabx" @scrolltolower="reachBottomInitPage" scroll-y="true" @touchmove.stop>
<!-- 按库位盘点 -->
<template v-if="renderList.length !== 0">
<view class="list" v-for="(item, index) in renderList" :key="item">
<!-- 复选框 -->
<view class="leftIcon">
<!-- 定制品 -->
<template v-if="tabBarCode === 1">
<image class="checkImage" @click="articleCheckList[index] = !articleCheckList[index]"
:src="articleCheckList[index]?'/pagesHome/static/check.png':'/pagesHome/static/nocheck.png'">
</image>
</template>
<!-- 零担 -->
<template v-if="tabBarCode === 2">
<image class="checkImage" @click="zeroCheckList[index] = !zeroCheckList[index]"
:src="zeroCheckList[index]?'/pagesHome/static/check.png':'/pagesHome/static/nocheck.png'">
</image>
</template>
<!-- 库存品 -->
<template v-if="tabBarCode === 3">
<image class="checkImage" @click="stockCheckList[index] = !stockCheckList[index]"
:src="stockCheckList[index]?'/pagesHome/static/check.png':'/pagesHome/static/nocheck.png'">
</image>
</template>
</view>
</template>
<!-- 零担 -->
<template v-else-if="tabBarCode === 2">
<view class="rightMsg">
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>运单号{{item.waybillNo}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>订单号{{item.orderCode}}</view>
</view>
<!-- <view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>仓库地址{{dtilobj.warehouseName}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位信息{{dtilobj.areaTitle + '-' + dtilobj.allocationTitle}}</view>
</view> -->
</view>
</template>
<!-- 库存品 -->
<template v-else-if="tabBarCode === 3">
<view class="rightMsg">
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>物料编码{{item.materialCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>物料名称{{item.materialName}}</view>
</view>
<!-- <view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>仓库地址{{dtilobj.warehouseName}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位信息{{dtilobj.areaTitle + '-' + dtilobj.allocationTitle}}</view>
</view> -->
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>订单号{{item.orderCode}}</view>
<!-- 定制品 -->
<template v-if="tabBarCode === 1">
<view class="rightMsg">
<view class="tpbx">
<view style="flex: none;">
操作:
</view>
<view style="display: flex; justify-content: space-between;">
<text>处理</text>
<text>上架</text>
</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>包条码{{item.serviceNum}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>合同号{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>状态{{item.orderCode}}</view>
</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>商场名称{{item.marketName}}</view>
</template>
<!-- 零担 -->
<template v-else-if="tabBarCode === 2">
<view class="rightMsg">
<view class="tpbx">
<view style="flex: none;">
操作:
</view>
<view style="display: flex; justify-content: space-between;">
<text>处理</text>
<text>上架</text>
</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>物料编码{{item.serviceNum}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>物料名称{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>数量{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>状态{{item.orderCode}}</view>
</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>批次号{{item.incomingBatch}}</view>
</template>
<!-- 库存品 -->
<template v-else-if="tabBarCode === 3">
<view class="rightMsg">
<view class="tpbx">
<view style="flex: none;">
操作:
</view>
<view style="display: flex; justify-content: space-between;">
<text>处理</text>
<text>上架</text>
</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>订单号{{item.serviceNum}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>运单号{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>数量{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>状态{{item.orderCode}}</view>
</view>
</view>
</view>
</template>
</view>
</template>
</template>
</view>
</template>
</scroll-view>
<!-- 提交 -->
<button @click="submitCheck" class="submitButton" type="primary">提交盘点</button>
</view>
<saomiao2></saomiao2>
<tiplist ref="tiplists"></tiplist>
</BasicContainer>
</template>
<script setup lang="ts">
import {
onShow,
onLoad,
onHide
onHide,
} from '@dcloudio/uni-app'
import { reactive, toRefs, watch } from "vue";
import { ref, reactive, toRefs, watch } from "vue";
const option = reactive({
title: '库位盘点',
@ -180,6 +221,7 @@
console.log('下拉刷新')
//
details.articleList = []
initPage()
},
reachBottomInitPage() {
console.log('触底加载')
@ -199,18 +241,19 @@
renderList: [],
//
articleList: [],
//
articleCheckList: [],
articlePage: {},
//
stockList: [],
//
zeroList: [],
//
checkindex: [],
//
articleCheckList: [],
//
stockCheckList: [],
stockPage: {},
//
zeroList: [],
//
zeroCheckList: [],
zeroPage: {},
})
const {
@ -218,11 +261,15 @@
tabBarCode,
renderList,
articleList,
articleCheckList,
stockList,
stockCheckList,
zeroList,
checkindex
zeroCheckList,
} = toRefs(details)
const tiplists = ref(null)
//
onLoad((_info) => {
@ -246,15 +293,72 @@
uni.$off('scancodedate')
})
//
let antiShake : any = null
//
function reachBottomInitPage() {
// ,
if (option.isEnd) {
return uni.showToast({
icon: 'success',
title: '数据已加载完毕'
})
}
console.log('antiShake :>> ', antiShake);
if (antiShake) {
uni.hideLoading()
//
clearTimeout(antiShake)
return antiShake = null
}
// Loading,
uni.showLoading({
title: '正在加载',
mask: true
})
antiShake = setTimeout(async () => {
//
console.log('触底')
// Loading
uni.hideLoading()
//
antiShake = null
}, 1000)
}
//
function initPage() { }
function initPage() {
//
if (tabBarCode.value === 1) return initArticle()
//
if (tabBarCode.value === 2) return initZero()
//
if (tabBarCode.value === 3) return initStock()
}
/**
* 请求定制品数据
*/
function initArticle() { }
/**
* 请求零担数据
*/
function initZero() { }
/**
* 请求库存品数据
*/
function initStock() { }
//
function scandata() { }
//
function handleTabBarCode(code : number) {
details.tabBarCode = code
showControl.value = false
tabBarCode.value = code
}
/**
@ -267,6 +371,26 @@
*/
function submitCheck() { }
/**
* 复选框反选
*/
function handleInvertSelection() {
if (tabBarCode.value === 1) {
articleCheckList.value = articleCheckList.value.map(val => !val)
return
}
if (tabBarCode.value === 2) {
zeroCheckList.value = zeroCheckList.value.map(val => !val)
return
}
if (tabBarCode.value === 3) {
stockCheckList.value = stockCheckList.value.map(val => !val)
return
}
}
/**
* 批量删除
*/
@ -280,15 +404,51 @@
/**
* 批量修改状态
*/
function handleBatchState() { }
function handleBatchState() {
const list = ['库内', '库外']
tiplists.value.setdetails({
title: '请选择商场',
isshow: true,
tipstate: 5,
list,
checklist: [],
inputtext: '',
confirmTxt: '确认选择',
isonecheck: true,
success: (deta) => {
console.log('deta :>> ', deta);
if (deta.checklist.length == 0) {
uni.showToast({
title: '请选择商场',
icon: 'none'
})
return
}
console.log('deta :>> ', deta);
tiplists.value.setdetails({ isshow: false })
},
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
}
watch([articleList, zeroList, stockList, tabBarCode], () => {
//
if (tabBarCode.value === 1) return renderList.value = articleList.value
if (tabBarCode.value === 1) {
return renderList.value = articleList.value
}
//
if (tabBarCode.value === 2) return renderList.value = zeroList.value
if (tabBarCode.value === 2) {
return renderList.value = zeroList.value
}
// //
if (tabBarCode.value === 3) return renderList.value = stockList.value
if (tabBarCode.value === 3) {
return renderList.value = stockList.value
}
})
</script>
@ -419,6 +579,12 @@
}
}
//
.scvmabx {
width: 100%;
height: 60vh;
}
.list {
display: flex;
margin: 20upx 0;
@ -429,7 +595,7 @@
.leftIcon {
flex: none;
margin-right: 30upx;
padding-top: 18upx;
// padding-top: 18upx;
.checkImage {
width: 48upx;
@ -446,7 +612,7 @@
.tpbx {
display: flex;
align-items: center;
padding: 18upx 24upx;
// padding: 18upx 24upx;
box-sizing: border-box;
border-bottom: 4upx solid #EEEEEE;

BIN
static/check1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

4
unpackage/dist/dev/app-plus/app-config-service.js vendored

File diff suppressed because one or more lines are too long

331
unpackage/dist/dev/app-plus/app-service.js vendored

@ -4016,7 +4016,7 @@ if (uni.restoreGlobal) {
};
};
const base64 = new Base64();
const devhost = "http://ht.h5u.huitongys.com/login/";
const devhost = "http://test.api.huitongys.com/";
const imghost = "";
const host = devhost;
const APPKEY = "h5u:h5u_secret";
@ -29949,6 +29949,19 @@ This will fail in production if not fixed.`);
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
__name: "storageLocationCheckDetails",
setup(__props) {
const option = vue.reactive({
title: "库位盘点",
isEnd: false,
haveData: true,
pullDownRefreshInitPage() {
formatAppLog("log", "at pagesTask/pages/storageLocationCheckDetails/storageLocationCheckDetails.vue:189", "下拉刷新");
details.articleList = [];
initPage();
},
reachBottomInitPage() {
formatAppLog("log", "at pagesTask/pages/storageLocationCheckDetails/storageLocationCheckDetails.vue:195", "触底加载");
}
});
const details = vue.reactive({
// 页面标题
title: "",
@ -29959,9 +29972,33 @@ This will fail in production if not fixed.`);
// 扫描后的值
scancode: "",
// 渲染的列表
renderList: []
renderList: [],
// 定制品列表
articleList: [],
// 库存品列表
stockList: [],
// 零担列表
zeroList: [],
// 复选框列表
checkindex: [],
// 零担复选框列表
articleCheckList: [],
// 库存品复选框列表
stockCheckList: [],
// 零担复选框列表
zeroCheckList: []
});
const {
showControl,
tabBarCode,
renderList,
articleList,
stockList,
zeroList,
checkindex
} = vue.toRefs(details);
onLoad((_info) => {
initPage();
});
onShow(() => {
uni.$on("scancodedate", function(code2) {
@ -29973,45 +30010,48 @@ This will fail in production if not fixed.`);
onHide(() => {
uni.$off("scancodedate");
});
function initPage() {
details.articleList = [{}, {}];
}
function handleTabBarCode(code2) {
details.tabBarCode = code2;
}
function submitSearch() {
}
function submitCheck() {
}
const {
showControl,
tabBarCode,
renderList
} = vue.toRefs(details);
function handleBatchDel() {
}
function handleBatchUp() {
}
function handleBatchState() {
}
vue.watch([articleList, zeroList, stockList, tabBarCode], () => {
if (tabBarCode.value === 1)
return renderList.value = articleList.value;
if (tabBarCode.value === 2)
return renderList.value = zeroList.value;
if (tabBarCode.value === 3)
return renderList.value = stockList.value;
});
return (_ctx, _cache) => {
const _component_u_navbar = resolveEasycom(vue.resolveDynamicComponent("u-navbar"), __easycom_0$1);
const _component_saomiao2 = vue.resolveComponent("saomiao2");
return vue.openBlock(), vue.createElementBlock(
vue.Fragment,
null,
[
vue.createElementVNode("view", null, [
vue.createCommentVNode(" 顶部导航栏 "),
vue.createVNode(_component_u_navbar, {
title: "库位盘点",
placeholder: "",
autoBack: true,
leftIconSize: "35",
bgColor: "#d3832a",
leftIconColor: "#ffffff",
titleStyle: "color:#ffffff"
})
]),
const _component_BasicContainer = vue.resolveComponent("BasicContainer");
return vue.openBlock(), vue.createBlock(_component_BasicContainer, { option }, {
default: vue.withCtx(() => [
vue.createCommentVNode(" 主体内容 "),
vue.createElementVNode("view", { class: "main" }, [
vue.createCommentVNode(" 顶部 "),
vue.createElementVNode("view", { class: "main_top" }, [
vue.createElementVNode("input", {
type: "text",
placeholder: "请输入包条码",
placeholder: "请输入库位码",
class: "main_top_search"
}),
vue.createElementVNode("view", { class: "button" }, "搜索")
vue.createElementVNode("view", {
class: "button",
onClick: submitSearch
}, "搜索")
]),
vue.createCommentVNode(" 库位信息 "),
vue.createElementVNode("view", { class: "main_info" }, [
@ -30054,7 +30094,7 @@ This will fail in production if not fixed.`);
class: vue.normalizeClass({ "tabBar-item": true, "active": vue.unref(tabBarCode) === 2 }),
onClick: _cache[1] || (_cache[1] = ($event) => handleTabBarCode(2))
},
" 库存品(" + vue.toDisplayString(100) + ") ",
" 零担(" + vue.toDisplayString(1e3) + ") ",
2
/* CLASS */
),
@ -30064,7 +30104,7 @@ This will fail in production if not fixed.`);
class: vue.normalizeClass({ "tabBar-item": true, "active": vue.unref(tabBarCode) === 3 }),
onClick: _cache[2] || (_cache[2] = ($event) => handleTabBarCode(3))
},
" 零担(" + vue.toDisplayString(1e3) + ") ",
" 库存品(" + vue.toDisplayString(100) + ") ",
2
/* CLASS */
)
@ -30089,9 +30129,18 @@ This will fail in production if not fixed.`);
[
vue.createElementVNode("view", { class: "button" }, "反选"),
vue.createElementVNode("view", { class: "controlList" }, [
vue.createElementVNode("view", { class: "button" }, " 批量删除 "),
vue.createElementVNode("view", { class: "button" }, " 批量删除 "),
vue.createElementVNode("view", { class: "button" }, " 状态修改 ")
vue.createElementVNode("view", {
class: "button",
onClick: handleBatchDel
}, " 批量删除 "),
vue.createElementVNode("view", {
class: "button",
onClick: handleBatchUp
}, " 批量上架 "),
vue.createElementVNode("view", {
class: "button",
onClick: handleBatchState
}, " 状态修改 ")
])
],
64
@ -30103,109 +30152,45 @@ This will fail in production if not fixed.`);
vue.unref(renderList).length !== 0 ? (vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
{ key: 0 },
vue.renderList(vue.unref(renderList), (item) => {
vue.renderList(vue.unref(renderList), (item, index2) => {
return vue.openBlock(), vue.createElementBlock("view", {
class: "list",
key: item
}, [
vue.createElementVNode("view", { class: "leftIcon" }, [
vue.createElementVNode("image", {
class: "checkImage",
src: vue.unref(checkindex).indexOf(index2) != -1 ? "/pagesHome/static/check.png" : "/pagesHome/static/nocheck.png"
}, null, 8, ["src"])
]),
vue.createCommentVNode(" 定制品 "),
item.goodsType === 1 ? (vue.openBlock(), vue.createElementBlock("view", { key: 0 }, [
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"服务号:" + vue.toDisplayString(item.serviceNum),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"订单号:" + vue.toDisplayString(item.orderCode),
1
/* TEXT */
)
]),
vue.createCommentVNode(` <view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>仓库地址{{dtilobj.warehouseName}}</view>\r
</view>\r
<view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>库位信息{{dtilobj.areaTitle + '-' + dtilobj.allocationTitle}}</view>\r
</view> `)
])) : vue.createCommentVNode("v-if", true),
vue.createCommentVNode(" 零担 "),
item.goodsType === 2 ? (vue.openBlock(), vue.createElementBlock("view", { key: 1 }, [
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"运单号:" + vue.toDisplayString(item.waybillNo),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"订单号:" + vue.toDisplayString(item.orderCode),
1
/* TEXT */
)
]),
vue.createCommentVNode(` <view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>仓库地址{{dtilobj.warehouseName}}</view>\r
</view>\r
<view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>库位信息{{dtilobj.areaTitle + '-' + dtilobj.allocationTitle}}</view>\r
</view> `)
])) : vue.createCommentVNode("v-if", true),
vue.createCommentVNode(" 库存品 "),
item.goodsType === 3 ? (vue.openBlock(), vue.createElementBlock("view", { key: 2 }, [
vue.unref(tabBarCode) === 1 ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "rightMsg"
}, [
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"物料编码:" + vue.toDisplayString(item.materialCode),
1
/* TEXT */
)
vue.createElementVNode("view", { style: { "flex": "none" } }, " 操作: "),
vue.createElementVNode("view", { style: { "display": "flex", "justify-content": "space-between" } }, [
vue.createElementVNode("text", null, "处理"),
vue.createElementVNode("text", null, "上架")
])
]),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"物料名称:" + vue.toDisplayString(item.materialName),
"包条码:" + vue.toDisplayString(item.serviceNum),
1
/* TEXT */
)
]),
vue.createCommentVNode(` <view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>仓库地址{{dtilobj.warehouseName}}</view>\r
</view>\r
<view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>库位信息{{dtilobj.areaTitle + '-' + dtilobj.allocationTitle}}</view>\r
</view> `),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"订单号:" + vue.toDisplayString(item.orderCode),
"合同号:" + vue.toDisplayString(item.orderCode),
1
/* TEXT */
)
@ -30215,7 +30200,7 @@ This will fail in production if not fixed.`);
vue.createElementVNode(
"view",
null,
"商场名称:" + vue.toDisplayString(item.marketName),
"库位:" + vue.toDisplayString(item.orderCode),
1
/* TEXT */
)
@ -30225,12 +30210,118 @@ This will fail in production if not fixed.`);
vue.createElementVNode(
"view",
null,
"批次号:" + vue.toDisplayString(item.incomingBatch),
"状态:" + vue.toDisplayString(item.orderCode),
1
/* TEXT */
)
])
])) : vue.createCommentVNode("v-if", true)
])) : vue.unref(tabBarCode) === 2 ? (vue.openBlock(), vue.createElementBlock(
vue.Fragment,
{ key: 1 },
[
vue.createCommentVNode(" 零担 "),
vue.createElementVNode("view", { class: "rightMsg" }, [
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"运单号:" + vue.toDisplayString(item.waybillNo),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"订单号:" + vue.toDisplayString(item.orderCode),
1
/* TEXT */
)
]),
vue.createCommentVNode(` <view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>仓库地址{{dtilobj.warehouseName}}</view>\r
</view>\r
<view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>库位信息{{dtilobj.areaTitle + '-' + dtilobj.allocationTitle}}</view>\r
</view> `)
])
],
64
/* STABLE_FRAGMENT */
)) : vue.unref(tabBarCode) === 3 ? (vue.openBlock(), vue.createElementBlock(
vue.Fragment,
{ key: 2 },
[
vue.createCommentVNode(" 库存品 "),
vue.createElementVNode("view", { class: "rightMsg" }, [
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"物料编码:" + vue.toDisplayString(item.materialCode),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"物料名称:" + vue.toDisplayString(item.materialName),
1
/* TEXT */
)
]),
vue.createCommentVNode(` <view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>仓库地址{{dtilobj.warehouseName}}</view>\r
</view>\r
<view class="tpbx">\r
<image src="/pagesHome/static/kuweiicon.png"></image>\r
<view>库位信息{{dtilobj.areaTitle + '-' + dtilobj.allocationTitle}}</view>\r
</view> `),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"订单号:" + vue.toDisplayString(item.orderCode),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"商场名称:" + vue.toDisplayString(item.marketName),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "tpbx" }, [
vue.createElementVNode("image", { src: "/pagesHome/static/kuweiicon.png" }),
vue.createElementVNode(
"view",
null,
"批次号:" + vue.toDisplayString(item.incomingBatch),
1
/* TEXT */
)
])
])
],
64
/* STABLE_FRAGMENT */
)) : vue.createCommentVNode("v-if", true)
]);
}),
128
@ -30244,10 +30335,10 @@ This will fail in production if not fixed.`);
}, "提交盘点")
]),
vue.createVNode(_component_saomiao2)
],
64
/* STABLE_FRAGMENT */
);
]),
_: 1
/* STABLE */
}, 8, ["option"]);
};
}
});

6
unpackage/dist/dev/app-plus/manifest.json vendored

@ -214,6 +214,12 @@
"selectedIconPath": "/static/TabberIcon/icon1check.png",
"text": "工作台"
},
{
"pagePath": "pages/taskList/taskList",
"iconPath": "/static/TabberIcon/icon2.png",
"selectedIconPath": "/static/TabberIcon/icon2check.png",
"text": "任务"
},
{
"pagePath": "pages/user/user",
"iconPath": "/static/TabberIcon/icon5.png",

Loading…
Cancel
Save