diff --git a/App.vue b/App.vue index c07f033..99a91b4 100644 --- a/App.vue +++ b/App.vue @@ -7,6 +7,8 @@ import { inject } from "vue" + // 引入水印 + import watermark from '@/utils/watermark.js' export default { setup() { onLaunch(() => { @@ -15,17 +17,12 @@ console.log(utils); utils.inittts() utils.setting() - // setTimeout(()=>{ - // utils.ttsspke('12313123') - // },5000) + // #endif - // setTimeout(()=>{ - // uni.hideTabBar({}) - // },1200) console.log('onLaunch'); - + // watermark.set('/static/check.png') }) - + onShow(() => { console.log('onshow'); @@ -40,9 +37,11 @@ \ No newline at end of file diff --git a/compoment/saomiao2.vue b/compoment/saomiao2.vue index 53874ff..8e278a4 100644 --- a/compoment/saomiao2.vue +++ b/compoment/saomiao2.vue @@ -9,10 +9,14 @@ onHide, onUnload } from '@dcloudio/uni-app' + // import { storeToRefs } from 'pinia'; import { reactive, defineProps } from "vue"; + // import usePdaStore from '../store/uaePdaStore'; + // const pdaStore = usePdaStore() + // const { pdaBroadcas } = storeToRefs(pdaStore) let details = reactive({ activity: null, receiver: null, @@ -41,18 +45,44 @@ // console.log('扫描的--------------onUnload'); }) + // uni.getSystemInfoSync().deviceBrand function initScan() { + const pdaBroadcastList = { + 'seuic': { + // 广播动作 + broadcastAction: 'com.android.server.scannerservice.broadcast', + // 广播标签 + broadcastTag: 'scannerdata' + }, + 'ubx': { + // 广播动作 + broadcastAction: 'android.intent.ACTION_DECODE_DATA', + // 广播标签 + broadcastTag: 'barcode_string' + } + } // #ifdef APP + console.log('广播') if (plus) { + console.log('getDeviceBrand() :>> ', uni.getSystemInfoSync()); + const { brand } = uni.getSystemInfoSync() + console.log('进入') details.activity = plus.android.runtimeMainActivity(); //获取activity + console.log('details.activity :>> ', details.activity); var IntentFilter = (plus.android.importClass('android.content.IntentFilter') as any); + // console.log('IntentFilter :>> ', IntentFilter); details.intentFilter = new IntentFilter(); - details.intentFilter.addAction('com.android.server.scannerservice.broadcast') // 换你的广播动作 + // 检测PDA厂家信息, 配置不同的广播动作 + details.intentFilter.addAction(pdaBroadcastList[brand].broadcastAction) // 换你的广播动作 + // details.intentFilter.addAction('com.android.server.scannerservice.broadcast') // 换你的广播动作 details.receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', { onReceive: function (context, intent) { + console.log('111 :>> ', 111); console.log("intent", intent) plus.android.importClass(intent); - let content = intent.getStringExtra('scannerdata'); // 换你的广播标签 + // Pinia控制广播标签 + let content = intent.getStringExtra(pdaBroadcastList[brand].broadcastTag); // 换你的广播标签 + // let content = intent.getStringExtra('scannerdata'); // 换你的广播标签 uni.$emit('scancodedate', content.replace(/\n/g, "")) } }); diff --git a/compoment/tiplist/tiplist.vue b/compoment/tiplist/tiplist.vue index 11f8434..b7d5408 100644 --- a/compoment/tiplist/tiplist.vue +++ b/compoment/tiplist/tiplist.vue @@ -264,6 +264,7 @@ } } function checkitem(index : number) { + console.log('123 :>> ', 123); if (details.isonecheck) { if (details.checklist.indexOf(index) == -1) { details.checklist = [index] @@ -272,6 +273,7 @@ } return } + console.log('222 :>> ', 222); if (details.checklist.indexOf(index) == -1) { details.checklist.push(index) } else { @@ -329,13 +331,14 @@ }); } function checkall() { + console.log('111 :>> ', 111); details.list.map((item, index) => { details.checklist.push(index) }) } function removeall() { + console.log('111 :>> ', 111); details.checklist = [] - } // 复选框全选 @@ -385,6 +388,8 @@ if (item.value <= 0 || isNaN(item.value)) item.value = 0 if (item.value >= maxNum) item.value = maxNum isInputN = null + // 清除定时器 + clearTimeout(isInputN) }, 500) } @@ -397,6 +402,7 @@ item.value = parseInt(item.value) if (item.value <= item.minNum || isNaN(item.value)) item.value = item.minNum if (item.value >= item.maxNum) item.value = item.maxNum + clearTimeout(isInput) }, 300) } @@ -414,6 +420,7 @@ console.log('res :>> ', res); const { code } = res if (code === 200) details.materialName = res.data + clearTimeout(_atn) }, 1000) } diff --git a/config/host.js b/config/host.js index c9eb660..9392d3c 100644 --- a/config/host.js +++ b/config/host.js @@ -8,9 +8,9 @@ // lmy // const devhost = 'http://192.168.10.123:8889/' // zhy -const devhost = 'http://192.168.10.48:8888/' +// const devhost = 'http://192.168.10.48:8888/' // tjj -// const devhost = 'http://192.168.10.29:13000/' +const devhost = 'http://192.168.10.29:13000/' // cyz // const devhost = 'http://192.168.10.75:8777/' // 正式 diff --git a/manifest.json b/manifest.json index fc5b4b5..52d6fbe 100644 --- a/manifest.json +++ b/manifest.json @@ -2,8 +2,8 @@ "name" : "货无忧", "appid" : "__UNI__EB22F37", "description" : "", - "versionName" : "1.0.16", - "versionCode" : 1016, + "versionName" : "1.0.17", + "versionCode" : 1017, "transformPx" : false, /* 5+App特有相关 */ "app-plus" : { diff --git a/pages.json b/pages.json index fbcb6ba..5b96d15 100644 --- a/pages.json +++ b/pages.json @@ -1076,24 +1076,42 @@ { "root": "pagesUser", "pages": [{ - "path": "pages/about/about", - "style": { - "navigationBarTitleText": "关于我们", - "enablePullDownRefresh": true, - "onReachBottomDistance": 1, - "navigationStyle": "custom", - "app-plus": { - "animationDuration": 300, - "animationType": "zoom-fade-out", - "pullToRefresh": { - "support": true, - "color": "#d3832a", //小圈圈的颜色 - "style": "circle" //小圈圈的样式 + "path": "pages/about/about", + "style": { + "navigationBarTitleText": "关于我们", + "enablePullDownRefresh": true, + "onReachBottomDistance": 1, + "navigationStyle": "custom", + "app-plus": { + "animationDuration": 300, + "animationType": "zoom-fade-out", + "pullToRefresh": { + "support": true, + "color": "#d3832a", //小圈圈的颜色 + "style": "circle" //小圈圈的样式 + } + } + } + }, + { + "path": "pages/systemSettings/systemSettings", + "style": { + "navigationBarTitleText": "系统设置", + "enablePullDownRefresh": true, + "onReachBottomDistance": 1, + "navigationStyle": "custom", + "app-plus": { + "animationDuration": 300, + "animationType": "zoom-fade-out", + "pullToRefresh": { + "support": true, + "color": "#d3832a", //小圈圈的颜色 + "style": "circle" //小圈圈的样式 + } } } } - - }] + ] }, { "root": "pagesTask", diff --git a/pages/index/index.vue b/pages/index/index.vue index 4daa0d9..1debf26 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -317,12 +317,13 @@ // 下拉刷新 onPullDownRefresh(() => { - setTimeout(() => { + const timer = setTimeout(() => { init() initbuts() // 关闭刷新动画 uni.stopPullDownRefresh() + clearTimeout(timer) }, 1000) }) diff --git a/pages/login/login.vue b/pages/login/login.vue index 78aafa3..45db016 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -95,19 +95,21 @@ } }) onShow(() => { - setTimeout(() => { + const timer = setTimeout(() => { settips() + clearTimeout(timer) }, 2000) }) // 下拉刷新 onPullDownRefresh(() => { - setTimeout(() => { + const timer = setTimeout(() => { details.username = '' details.tenantId = '' details.password = '' // 关闭刷新动画 uni.stopPullDownRefresh() + clearTimeout(timer) }, 1000) }) diff --git a/pages/news/news.vue b/pages/news/news.vue index f0c827d..0de1fa3 100644 --- a/pages/news/news.vue +++ b/pages/news/news.vue @@ -19,10 +19,11 @@ // 下拉刷新 onPullDownRefresh(() => { - setTimeout(() => { + const timer = setTimeout(() => { iptis.value = ('http://192.168.10.75:8777/') // 关闭刷新动画 uni.stopPullDownRefresh() + clearTimeout(timer) }, 1000) }) diff --git a/pages/reportForms/reportForms.vue b/pages/reportForms/reportForms.vue index 33e6908..c0e4f23 100644 --- a/pages/reportForms/reportForms.vue +++ b/pages/reportForms/reportForms.vue @@ -11,9 +11,10 @@ // 下拉刷新 onPullDownRefresh(() => { - setTimeout(() => { + const timer = setTimeout(() => { // 关闭刷新动画 uni.stopPullDownRefresh() + clearTimeout(timer) }, 1000) }) diff --git a/pages/taskList/taskList.vue b/pages/taskList/taskList.vue index 96368a8..6c029e0 100644 --- a/pages/taskList/taskList.vue +++ b/pages/taskList/taskList.vue @@ -67,9 +67,10 @@ }) onPullDownRefresh(() => { - setTimeout(() => { + const timer = setTimeout(() => { // 关闭刷新动画 uni.stopPullDownRefresh() + clearTimeout(timer) }, 1000) }) diff --git a/pages/user/user.vue b/pages/user/user.vue index 909814a..8da210e 100644 --- a/pages/user/user.vue +++ b/pages/user/user.vue @@ -97,10 +97,10 @@ // 下拉刷新 onPullDownRefresh(() => { - setTimeout(() => { - + const timer = setTimeout(() => { // 关闭刷新动画 uni.stopPullDownRefresh() + clearTimeout(timer) }, 1000) }) @@ -144,8 +144,15 @@ } function checkitem(item) { if (item.type == 1) { - - } else if (item.type == 5) { + } + // 系统设置 + else if (item.type == 3) { + uni.navigateTo({ + url: '/pagesUser/pages/systemSettings/systemSettings' + }) + } + // 关于我们 + else if (item.type == 5) { uni.navigateTo({ url: '/pagesUser/pages/about/about' }) @@ -173,7 +180,7 @@ // 获取版本信息 // let version = await utils.getversion() let version = { - version: '1.0.16', + version: '1.0.17', pkName: 'com.hwy.pda' } console.log("version 版本>>>>", version) diff --git a/pagesHome/pages/CustomerOrdersDetails/CustomerOrdersDetails.vue b/pagesHome/pages/CustomerOrdersDetails/CustomerOrdersDetails.vue index c29d217..e37a111 100644 --- a/pagesHome/pages/CustomerOrdersDetails/CustomerOrdersDetails.vue +++ b/pagesHome/pages/CustomerOrdersDetails/CustomerOrdersDetails.vue @@ -55,7 +55,7 @@ 库存品 - + @@ -125,16 +125,24 @@ 物品:{{item.descriptionGoods}} - 规格:{{item.specification}} + 规格:{{item.cargoNorms}} - 单位:{{item.logpmUnit}} - + + + + + 单位:{{item.cargoUnit}} + + + {{item.loadingStatusName}} - - @@ -156,10 +164,11 @@ onLoad, onShow, onHide, - onUnload + onUnload, + onPullDownRefresh } from '@dcloudio/uni-app' import cusSelects from '@/compoment/cus-selects-fan/cus-selects-fan.vue' - import { computed, inject, reactive, ref, toRefs, watchEffect } from "vue"; + import { computed, inject, reactive, ref, toRefs, } from "vue"; const utils = inject('utils') as any let details = reactive({ schanvalue: '', @@ -188,14 +197,56 @@ orderType: 0, inputtxt: '', listcheckindex: -1, - isscan: false + isscan: false, + order: { + page: { + size: 10, + current: 1, + }, + // 分页总页数 + pages: 1, + data: [] + }, + zero: { + page: { + size: 10, + current: 1, + }, + // 分页总页数 + pages: 1, + data: [] + }, + stock: { + page: { + size: 10, + current: 1, + }, + // 分页总页数 + pages: 1, + data: [] + } }) const tiplists = ref(null) - onLoad(async (op) => { + onLoad((op) => { details.items = JSON.parse(op.item) details.id = op.id - console.log('details.items :>> ', details.items); + }) + function goorderdetail(item) { + uni.navigateTo({ + url: '/pagesHome/pages/orderDetails/orderDetails?orderCode=' + item.orderCode + }) + } + onShow(async () => { + uni.$on('scancodedate', function (code) { + if (code) { + console.log('code', code); + details.scancode = code + details.isscan = true + scandata() + } + }) + // 请求页面 let data = { reservationId: details.items.id, completecode: details.orderType, @@ -205,53 +256,56 @@ // 零担和定制品 let response = null response = await deliveryorder(data) - details.zeroArr = [] - details.orderArr = [] - response.data.records.forEach(val => { - // 零担订单 - if (val.isZero === '1') return details.zeroArr.push(val) - details.orderArr.push(val) - }) + details.zero.data = [] + details.order.data = [] + if (response.data) { + response.data.forEach(val => { + // 零担订单 + if (val.isZero === '1') return details.zero.data.push(val) + details.order.data.push(val) + }) + } // 库存品 let response1 = await signforinventory(data) - details.stockArr = response1.data.records || [] + details.stock.data = response1.data || [] console.log('response :>> ', response); // 定制品 - if (details.orderStatus === 1) details.datalist = details.orderArr + if (details.orderStatus === 1) details.datalist = details.order.data // 零担 - else if (details.orderStatus === 2) details.datalist = details.zeroArr + else if (details.orderStatus === 2) details.datalist = details.zero.data // 库存品 - else details.datalist = details.stockArr - - console.log('details.stockArr :>> ', details.stockArr); - }) - function goorderdetail(item) { - uni.navigateTo({ - url: '/pagesHome/pages/orderDetails/orderDetails?orderCode=' + item.orderCode - }) - } - onShow(() => { - uni.$on('scancodedate', function (code) { - if (code) { - console.log('code', code); - details.scancode = code - details.isscan = true - scandata() - } - }) - // initpage() + else details.datalist = details.stock.data }) onHide(() => { uni.$off('scancodedate') }) + // 下拉刷新 + onPullDownRefresh(() => { + details.datalist = [] + details.order.page.current = 1 + details.zero.page.current = 1 + details.stock.page.current = 1 + const timer = setTimeout(async () => { + await initpage() + + // 关闭下拉动画 + uni.stopPullDownRefresh() + // 清除定时器 + clearTimeout(timer) + }, 1000) + }) + const loadingNub = computed(() => { // 计算三种品类的装车件数和 let num = 0 - num += details.orderArr.reduce((curr, item) => curr + item.loadingNub, 0) - num += details.zeroArr.reduce((curr, item) => curr + item.loadingNub, 0) - num += details.stockArr.reduce((curr, item) => curr + item.loadingNub, 0) + num += details.order.data.reduce((curr, item) => curr + item.loadingNub, 0) + num += details.zero.data.reduce((curr, item) => curr + item.loadingNub, 0) + num += details.stock.data.reduce((curr, item) => { + if (item.loadingStatusName !== '未装车') return curr += 1 + return curr + }, 0) return num }) @@ -277,36 +331,68 @@ } async function initpage() { - let data = { - reservationId: details.items.id, - completecode: details.orderType, - orderCode: details.inputtxt + try { + let data = { + reservationId: details.items.id, + completecode: details.orderType, + orderCode: details.inputtxt + } + details.datalist = [] + // 请求定制品和零担数据 + if (details.orderStatus == 1 || details.orderStatus === 2) await initPageOrder(data) + // 请求库存品数据 + else if (details.orderStatus == 3) await initPageStock(data) + + // 定制品 + if (details.orderStatus === 1) details.datalist = details.order.data + // 零担 + else if (details.orderStatus === 2) details.datalist = details.zero.data + // 库存品 + else details.datalist = details.stock.data + } catch (err) { + console.log('err :>> ', err); + //TODO handle the exception + } finally { + return null } - details.datalist = [] - let response = null - // 定制品和零担 - if (details.orderStatus == 1 || details.orderStatus === 2) { - response = await deliveryorder(data) - details.zeroArr = [] - details.orderArr = [] - response.data.records.forEach(val => { + } + + /** + * 初始化请求定制品和零担数据 + */ + async function initPageOrder(submitData) { + try { + const response = await deliveryorder(submitData) + const { data } = response + details.zero.data = [] + details.order.data = [] + data.forEach(val => { // 零担订单 - if (val.isZero === '1') return details.zeroArr.push(val) - details.orderArr.push(val) + if (val.isZero === '1') return details.zero.data.push(val) + details.order.data.push(val) }) + } catch (err) { + console.log('err :>> ', err); + //TODO handle the exception } - // 库存品 - else if (details.orderStatus == 3) { - response = await signforinventory(data) - details.stockArr = response.data.records || [] + } + + /** + * 请求库存品数据 + */ + async function initPageStock(submitData) { + try { + details.stock.data = [] + const response = await signforinventory(submitData) + const { data } = response + details.stock.data = data + return response + } catch (err) { + //TODO handle the exception + console.log('err :>> ', err); } - // 定制品 - if (details.orderStatus === 1) details.datalist = details.orderArr - // 零担 - else if (details.orderStatus === 2) details.datalist = details.zeroArr - // 库存品 - else details.datalist = details.stockArr } + function checktype(e) { if (e == '') { details.schanvalue = '' @@ -323,12 +409,69 @@ details.orderStatus = state // initpage() // 定制品 - if (details.orderStatus === 1) details.datalist = details.orderArr + if (details.orderStatus === 1) details.datalist = details.order.data // 零担 - else if (details.orderStatus === 2) details.datalist = details.zeroArr + else if (details.orderStatus === 2) details.datalist = details.zero.data // 库存品 - else details.datalist = details.stockArr + else details.datalist = details.stock.data + console.log(' details.datalist :>> ', details.datalist); + } + + /** + * 触底加载 -- 定制品 + */ + function reatchBootomOrder() { + if (details.order.pages <= details.order.page.current) { + return uni.showToast({ + title: '数据加载完毕', + icon: 'none' + }) + } + details.order.page.current += 1 + initpage() + } + + /** + * 触底加载 -- 零担 + */ + function reatchBootomZero() { + if (details.zero.pages <= details.zero.page.current) { + return uni.showToast({ + title: '数据加载完毕', + icon: 'none' + }) + } + details.zero.page.current += 1 + initpage() } + + /** + * 触底加载 -- 库存品 + */ + function reatchBootomStock() { + if (details.stock.pages <= details.stock.page.current) { + return uni.showToast({ + title: '数据加载完毕', + icon: 'none' + }) + } + details.stock.page.current += 1 + initpage() + } + + /** + * 触底加载 + */ + function reatchBottom() { + console.log('111 :>> ', 111); + // 定制品 + if (details.orderStatus === 1) reatchBootomOrder() + // 零担 + else if (details.orderStatus === 2) reatchBootomZero() + // 库存品 + else if (details.orderStatus === 3) reatchBootomStock() + } + /** 扫描接口 * */ async function scandata() { @@ -390,12 +533,19 @@ barcode: details.scancode } let res = await deliveryloadinginventory(data) + const { audio } = res + console.log('res :>> ', res); + if (!audio) return + // #ifdef APP + utils.ttsspke(res.audio) + // #endif } } catch (err) { console.log('err :>> ', err); //TODO handle the exception } finally { - initpage() + // 刷新 + uni.startPullDownRefresh() } } @@ -406,7 +556,7 @@ return { id: val.id, title: val.firsts, - value: val.loadingNum, + value: val.loadingNum || val.reservationNum, maxNum: val.reservationNum, minNum: 0, type: 'Number', @@ -456,7 +606,8 @@ utils.ttsspke(res.audio) // #endif } - initpage() + // 刷新 + uni.startPullDownRefresh() } catch (err) { console.log('err :>> ', err); //TODO handle the exception @@ -474,8 +625,6 @@ } }) - - return } // details.listcheckindex=index diff --git a/pagesHome/pages/CustomerSign/CustomerSign.vue b/pagesHome/pages/CustomerSign/CustomerSign.vue index c3f8ac7..aa297fd 100644 --- a/pagesHome/pages/CustomerSign/CustomerSign.vue +++ b/pagesHome/pages/CustomerSign/CustomerSign.vue @@ -25,9 +25,13 @@ {{items.orderNumber}} - 配送件数 + 计划件数 {{deliveryNumber}} + + 装车数量 + {{truckLoadingNum}} + 签收件数 {{signNub}} @@ -95,7 +99,8 @@ onLoad, onShow, onHide, - onUnload + onUnload, + onPullDownRefresh } from '@dcloudio/uni-app' import { computed, reactive, ref, toRefs } from "vue"; import utils from '@/utils/utils.js'; @@ -142,6 +147,16 @@ initpage() getconfig() }) + + // 下拉刷新 + onPullDownRefresh(() => { + const timer = setTimeout(async () => { + await initpage() + uni.stopPullDownRefresh() + clearTimeout(timer) + }, 1000) + }) + async function getconfig() { let res = await dictbizdictionary({ code: 'photo_type' }) console.log('res1>>>>', res); @@ -172,21 +187,39 @@ }) return num }) + // 计算计划件数和 const deliveryNumber = computed(() => { - let num = 0 - details.datalist.map(item => { - if (item.reservationNum) { - num += item.reservationNum - } - }) - return num + return details.datalist.reduce((curr, item) => { + if (item.reservationNum) return curr + item.reservationNum + return curr + }, 0) + }) + // 计算装车件数和 + const truckLoadingNum = computed(() => { + return details.datalist.reduce((curr, item) => { + if (item.loadedNumber) return curr + item.loadedNumber + return curr + }, 0) }) async function initpage() { let data = { id: details.id } let response = await signforcustom(data) - details.datalist = response.data.records + const _arr = response.data.records + // 加急客户 + const _fastArr = [] + // 正常客户 + const _commonArr = [] + console.log('_arr :>> ', _arr); + _arr.forEach((val) => { + console.log('val :>> ', val); + if (Number(val.isUrgent) === 2) return _fastArr.push(val) + return _commonArr.push(val) + }) + // 排序, 将加急客户排在前面 + details.datalist = [..._fastArr, ..._commonArr] + return null } // function gosindetascan(item){ // uni.navigateTo({ diff --git a/pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan.vue b/pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan.vue index e742cba..e2058f3 100644 --- a/pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan.vue +++ b/pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan.vue @@ -1,9 +1,7 @@