Browse Source

新增PDA适配

myd
qb 1 year ago
parent
commit
7374973a25
  1. 20
      App.vue
  2. 3
      api/user.js
  3. 4
      compoment/BasicContainer/BasicContainer.vue
  4. 23
      compoment/InputNum/InputNum.vue
  5. 34
      compoment/saomiao2.vue
  6. 9
      compoment/tiplist/tiplist.vue
  7. 4
      config/host.js
  8. 4
      manifest.json
  9. 48
      pages.json
  10. 3
      pages/index/index.vue
  11. 6
      pages/login/login.vue
  12. 3
      pages/news/news.vue
  13. 3
      pages/reportForms/reportForms.vue
  14. 3
      pages/taskList/taskList.vue
  15. 17
      pages/user/user.vue
  16. 299
      pagesHome/pages/CustomerOrdersDetails/CustomerOrdersDetails.vue
  17. 53
      pagesHome/pages/CustomerSign/CustomerSign.vue
  18. 274
      pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan.vue
  19. 9
      pagesHome/pages/DownGoods/DownGoods.vue
  20. 390
      pagesHome/pages/LoadingScan/LoadingScan.vue
  21. 15
      pagesHome/pages/MergeTray/MergeTray.vue
  22. 2
      pagesHome/pages/MergeTrayDetails/MergeTrayDetails.vue
  23. 94
      pagesHome/pages/OrderSortingDetail/OrderSortingDetail.vue
  24. 5
      pagesHome/pages/OrderSortingDetailList/OrderSortingDetailList.vue
  25. 6
      pagesHome/pages/PeopleScanUp/PeopleScanUp.vue
  26. 7
      pagesHome/pages/PeopleSortingDetail/PeopleSortingDetail.vue
  27. 16
      pagesHome/pages/PickingScanList/PickingScanList.vue
  28. 9
      pagesHome/pages/Relocation/Relocation.vue
  29. 246
      pagesHome/pages/RemoveTray/RemoveTray.vue
  30. 61
      pagesHome/pages/ScanUp/ScanUp.vue
  31. 3
      pagesHome/pages/ScanUpType/ScanUpType.vue
  32. 3
      pagesHome/pages/SelfPScanList/SelfPScanList.vue
  33. 5
      pagesHome/pages/SelfPickupDetails/SelfPickupDetails.vue
  34. 150
      pagesHome/pages/SelfPickupScan/SelfPickupScan.vue
  35. 37
      pagesHome/pages/SetPrice/SetPrice.vue
  36. 7
      pagesHome/pages/StockUpListZero/StockUpListZero.vue
  37. 113
      pagesHome/pages/StockUplist/StockUplist.vue
  38. 20
      pagesHome/pages/StockUplistScandetails/StockUplistScandetails.vue
  39. 92
      pagesHome/pages/createAddServe/createAddServe.vue
  40. 123
      pagesHome/pages/createTask/createTask.vue
  41. 4
      pagesHome/pages/inventoryenter/inventoryenter.vue
  42. 2
      pagesHome/pages/lnventorysortinglist/lnventorysortinglist.vue
  43. 2
      pagesHome/pages/orderDetails/orderDetails.vue
  44. 4
      pagesHome/pages/orderInquiry/orderInquiry.vue
  45. 3
      pagesHome/pages/pickingScan/pickingScan.vue
  46. 3
      pagesHome/pages/scansorting/scansorting.vue
  47. 361
      pagesHome/pages/setbarcode/setbarcode.vue
  48. 62
      pagesHome/pages/signOrderScan/signOrderScan.vue
  49. 2
      pagesHome/pages/signinScan/signinScan.vue
  50. 24
      pagesTask/pages/checkTaskList/checkTaskList.vue
  51. 2
      pagesTask/pages/contracts/contracts.vue
  52. 3
      pagesTask/pages/dynamicCheck/dynamicCheck.vue
  53. 5
      pagesTask/pages/dynamicCheckDetails/dynamicCheckDetails.vue
  54. 7
      pagesTask/pages/storageLocationCheckDetails/storageLocationCheckDetails.vue
  55. 5
      pagesTask/pages/trayCheckDetails/trayCheckDetails.vue
  56. 64
      pagesUser/pages/systemSettings/systemSettings.vue
  57. 52
      store/uaePdaStore.js
  58. 5
      uni_modules/fant-mini-plus/components/hd-collapse-item/INDEX.md
  59. 2
      unpackage/dist/build/app-plus/pagesHome/pages/MergeTrayDetails/MergeTrayDetails.css
  60. 2
      unpackage/dist/build/app-plus/pagesHome/pages/OrderSortingDetail/OrderSortingDetail.css
  61. 2
      unpackage/dist/build/app-plus/pagesHome/pages/PeopleScanUp/PeopleScanUp.css
  62. 2
      unpackage/dist/build/app-plus/pagesHome/pages/RemoveTray/RemoveTray.css
  63. 2
      unpackage/dist/build/app-plus/pagesHome/pages/Retention/Retention.css
  64. 2
      unpackage/dist/build/app-plus/pagesHome/pages/inventoryDetailList/inventoryDetailList.css
  65. 2
      unpackage/dist/build/app-plus/pagesHome/pages/lnventorysortinglist/lnventorysortinglist.css
  66. 2
      unpackage/dist/build/app-plus/pagesHome/pages/scansorting/scansorting.css
  67. 4
      unpackage/dist/dev/app-plus/app-config-service.js
  68. 3216
      unpackage/dist/dev/app-plus/app-service.js
  69. 3
      unpackage/dist/dev/app-plus/app.css
  70. 6
      unpackage/dist/dev/app-plus/manifest.json
  71. 33
      unpackage/dist/dev/app-plus/pagesHome/pages/MergeTrayDetails/MergeTrayDetails.css
  72. 107
      unpackage/dist/dev/app-plus/pagesHome/pages/RemoveTray/RemoveTray.css
  73. 28
      utils/request.js
  74. 61
      utils/watermark.js

20
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 @@
<style lang="scss">
@import '@/uni_modules/fant-mini-plus/libs/iconfont/iconfont.css';
@import "@/uni_modules/uview-plus/index.scss";
input{
input {
font-size: 28upx;
}
/*每个页面公共css */
// page{
// // background-image: url('/static/bg.png');
@ -55,7 +54,8 @@
background-repeat: no-repeat;
background-size: 100% 100%;
}
.golink{
.golink {
color: #0086F1 !important;
text-decoration: underline;
}

3
api/user.js

@ -1,5 +1,6 @@
import request from "@/utils/request.js";
import utils from '@/utils/utils.js';
/**
* 登录
* @param {Object} data
@ -368,7 +369,7 @@ export function signforwrapIn(data) {
export function signforinventory(data) {
return request({
url: `logpm-distribution/app/signfor/inventory`,
url: `logpm-distribution/app/delivery/inventory`,
method: "get",
data
});

4
compoment/BasicContainer/BasicContainer.vue

@ -97,11 +97,13 @@
//
onPullDownRefresh(() => {
setTimeout(async () => {
const timer = setTimeout(async () => {
//
await pullDownRefreshInitPage()
console.log('111 :>> ', 111);
uni.stopPullDownRefresh()
//
clearTimeout(timer)
}, 1000)
})
</script>

23
compoment/InputNum/InputNum.vue

@ -3,9 +3,8 @@
</template>
<script setup lang="ts">
import { ref } from "vue";
const number = ref<any>(10)
const props = defineProps({
@ -24,20 +23,20 @@
default: 0
},
})
number.value = props.modelValue
const $emit = defineEmits(['update:modelValue'])
let isInput = null
//
function inputNum() {
//
if(isInput) clearTimeout(isInput)
if (isInput) clearTimeout(isInput)
//
isInput = setTimeout(()=>{
isInput = setTimeout(() => {
number.value = parseInt(number.value)
// NaN, number.value0
if (number.value !== number.value) number.value = 0
@ -46,16 +45,16 @@
//
if (number.value <= props.minNum) number.value = props.minNum
$emit('update:modelValue', number.value)
//
clearTimeout(isInput)
}, 500)
}
</script>
<style>
.inputNum{
.inputNum {
border: 1upx solid #000;
padding-left: 10upx;
border-radius: 5upx;
}
</style>

34
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, ""))
}
});

9
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)
}

4
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/'
// 正式

4
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" : {

48
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",

3
pages/index/index.vue

@ -317,12 +317,13 @@
//
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
init()
initbuts()
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})

6
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)
})

3
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)
})

3
pages/reportForms/reportForms.vue

@ -11,9 +11,10 @@
//
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
</script>

3
pages/taskList/taskList.vue

@ -67,9 +67,10 @@
})
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})

17
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)

299
pagesHome/pages/CustomerOrdersDetails/CustomerOrdersDetails.vue

@ -55,7 +55,7 @@
<view :class="orderStatus==3?'xz':''">库存品</view>
</view>
</view>
<scroll-view class="scve" scroll-y="true">
<scroll-view class="scve" scroll-y="true" @refresherpulling="" @scrolltolower="reatchBottom">
<view class="mabx">
<block v-for="(item,index) in datalist" :key="item">
<!-- 定制品 -->
@ -125,16 +125,24 @@
</view>
<view class="contenbx1">
<view><text style="color: #90A0AF;">物品</text>{{item.descriptionGoods}}</view>
<view><text style="color: #90A0AF;">规格</text>{{item.specification}}</view>
<view><text style="color: #90A0AF;">规格</text>{{item.cargoNorms}}</view>
</view>
<view class="contenbx1">
<view><text style="color: #90A0AF;">单位</text>{{item.logpmUnit}}</view>
<!-- <view><text style="color: #90A0AF;">签收</text>{{item.signforNub}}</view> -->
<!-- 备货完成时, 显示二维码 -->
<template v-if="item.signingStatusName === '待备货'">
<view><text style="color: #90A0AF;">备货状态</text>{{item.signingStatusName}}</view>
</template>
<template v-else>
<view><text style="color: #90A0AF;">二维码</text>{{item.stockPackageCode || '暂无数据'}}</view>
</template>
<view><text style="color: #90A0AF;">单位</text>{{item.cargoUnit}}</view>
</view>
<view v-if="item.loadingStatusName" :class="item.loadingStatusName== '未装车'?'tip tp2':'tip tp1'">
{{item.loadingStatusName}}
</view>
<!-- <view :class="item.completecode==3?'tip tp1':item.completecode==1?'tip tp2':'tip tp3'">{{item.complete}}</view> -->
</view>
</template>
</block>
</view>
</scroll-view>
@ -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

53
pagesHome/pages/CustomerSign/CustomerSign.vue

@ -25,9 +25,13 @@
<view>{{items.orderNumber}}</view>
</view>
<view>
<view>配送件数</view>
<view>计划件数</view>
<view>{{deliveryNumber}}</view>
</view>
<view>
<view>装车数量</view>
<view>{{truckLoadingNum}}</view>
</view>
<view>
<view>签收件数</view>
<view>{{signNub}}</view>
@ -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({

274
pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan.vue

@ -1,9 +1,7 @@
<template>
<!-- <u-navbar title="配送客户扫描" placeholder border=true :autoBack="true" leftIconSize='35'></u-navbar> -->
<u-navbar title="配送客户扫描"
bgColor='#D3832A' leftIconColor='#ffffff'
titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<u-navbar title="配送客户扫描" bgColor='#D3832A' leftIconColor='#ffffff' titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<view class="hedtopt">
<view class="typto">
<view>配车类型{{items.type_name}}</view>
@ -49,14 +47,14 @@
</view>
<view class="tps">
<view><text style="color: #90A0AF;">备货区</text>{{item.stockupArea||'无备货区'}}</view>
</view>
<view class="numbx">
<view @click="goCustomerOrdersDetails(item)">
<view>订单总数</view>
<view class="golink">{{item.ordNub}}</view>
</view>
<view >
<view>
<view>计划件数</view>
<view>{{item.reservationNum}}</view>
</view>
@ -91,156 +89,166 @@
onLoad,
onShow,
onHide,
onUnload
onUnload,
onPullDownRefresh
} from '@dcloudio/uni-app'
import { computed, reactive, ref, toRefs } from "vue";
let details=reactive({
id:'',
datalist:[],
items:{} as any,
scancode:'',
authbuts:uni.getStorageSync('authbuts')
let details = reactive({
id: '',
datalist: [],
items: {} as any,
scancode: '',
authbuts: uni.getStorageSync('authbuts')
})
const tip=ref(null)
const tiplists=ref(null)
onLoad((op)=>{
details.id=op.id
details.items=JSON.parse(op.item)
const tip = ref(null)
const tiplists = ref(null)
onLoad((op) => {
details.id = op.id
details.items = JSON.parse(op.item)
})
onHide(()=>{
onHide(() => {
uni.$off('scancodedate')
console.log("uni",uni)
console.log("uni", uni)
})
onShow(()=>{
onShow(() => {
initpage()
uni.$on('scancodedate', function(code) {
uni.$on('scancodedate', function (code) {
if (code) {
console.log(code);
details.scancode=code
details.scancode = code
scandata()
}
})
})
const ordernumber=computed(()=>{
let num=0
details.datalist.map(item=>{
num+=Number(item.ordNub)
onPullDownRefresh(() => {
const timer = setTimeout(() => {
initpage()
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
const ordernumber = computed(() => {
let num = 0
details.datalist.map(item => {
num += Number(item.ordNub)
})
return num
})
const deliveryNumber=computed(()=>{
let num=0
details.datalist.map(item=>{
num+=Number(item.reservationNum)
const deliveryNumber = computed(() => {
let num = 0
details.datalist.map(item => {
num += Number(item.reservationNum)
})
return num
})
const scannedNumber=computed(()=>{
let num=0
details.datalist.map(item=>{
num+=Number(item.loadingNub)
const scannedNumber = computed(() => {
let num = 0
details.datalist.map(item => {
num += Number(item.loadingNub)
})
return num
})
function showsdqs(){
function showsdqs() {
tiplists.value.setdetails({
isshow:true,
tipstate:1,
title:'请输入扫描的码',
placeholder:'请输入扫描的码',
inputtext:'',
success:(detail)=>{
details.scancode=detail.inputtext
isshow: true,
tipstate: 1,
title: '请输入扫描的码',
placeholder: '请输入扫描的码',
inputtext: '',
success: (detail) => {
details.scancode = detail.inputtext
scandata()
tiplists.value.setdetails({isshow:false})
tiplists.value.setdetails({ isshow: false })
},
cancel:()=>{
tiplists.value.setdetails({isshow:false})
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close:()=>{
tiplists.value.setdetails({isshow:false})
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
}
async function ckoneloading(item){
async function ckoneloading(item) {
tip.value.setdetails({
title:'提示',
content:'确认一键装车?',
confirmTxt:'确认',
isshow:true,
isshowcancel:true,
success:async ()=>{
let loadingId=uni.getStorageSync('checkvehicle').id
let data={
reservationId:item.id,
title: '提示',
content: '确认一键装车?',
confirmTxt: '确认',
isshow: true,
isshowcancel: true,
success: async () => {
let loadingId = uni.getStorageSync('checkvehicle').id
let data = {
reservationId: item.id,
loadingId,
deliveryId:details.id
deliveryId: details.id
}
let response=await deliveryoneloading(data)
if(response.code==200){
let response = await deliveryoneloading(data)
if (response.code == 200) {
}
tip.value.setisshow(false)
},
cancel:()=>{
cancel: () => {
tip.value.setisshow(false)
},
close:()=>{
close: () => {
tip.value.setisshow(false)
}
})
}
async function scandata(){
let loadingId=uni.getStorageSync('checkvehicle').id
let data={
deliveryId:details.id,
async function scandata() {
let loadingId = uni.getStorageSync('checkvehicle').id
let data = {
deliveryId: details.id,
loadingId,
type:1,
barcode:details.scancode
type: 1,
barcode: details.scancode
}
let res=await deliveryloadingscan(data)
let res = await deliveryloadingscan(data)
console.log(res);
if(res.code==200){
if (res.code == 200) {
}
}
async function initpage(){
let data={
id:details.id
async function initpage() {
let data = {
id: details.id
}
let response=await deliverycustom(data)
let response = await deliverycustom(data)
console.log('response', response)
details.datalist=response.data.records
details.datalist = response.data.records
}
function goCustomerOrdersDetails(item){
function goCustomerOrdersDetails(item) {
uni.navigateTo({
url:'/pagesHome/pages/CustomerOrdersDetails/CustomerOrdersDetails?item='+JSON.stringify(item)+'&id='+details.id
url: '/pagesHome/pages/CustomerOrdersDetails/CustomerOrdersDetails?item=' + JSON.stringify(item) + '&id=' + details.id
})
}
function goCustomerTrayDetails(item){
function goCustomerTrayDetails(item) {
uni.navigateTo({
url:'/pagesHome/pages/CustomerTrayDetails/CustomerTrayDetails?item='+JSON.stringify(item)+'&id='+details.id
url: '/pagesHome/pages/CustomerTrayDetails/CustomerTrayDetails?item=' + JSON.stringify(item) + '&id=' + details.id
})
}
function goLoadingDetails(item){
function goLoadingDetails(item) {
uni.navigateTo({
url:'/pagesHome/pages/LoadingDetails/LoadingDetails?id='+item.id
url: '/pagesHome/pages/LoadingDetails/LoadingDetails?id=' + item.id
})
}
const { authbuts,items,datalist }=toRefs(details)
const { authbuts, items, datalist } = toRefs(details)
</script>
<style lang="scss">
.scoolv{
.scoolv {
width: 100%;
height: 60vh;
margin-top: 20upx;
.minbx{
.minbx {
display: flex;
flex-direction: column;
align-items: center;
>.its{
>.its {
display: flex;
flex-direction: column;
align-items: center;
@ -250,10 +258,12 @@
// padding:0upx 0;
box-sizing: border-box;
margin-bottom: 20upx;
&:nth-last-child(1){
&:nth-last-child(1) {
margin-bottom: 0;
}
.titl{
.titl {
width: 100%;
font-size: 32upx;
font-weight: 400;
@ -262,12 +272,14 @@
padding: 26upx 24upx;
box-sizing: border-box;
}
.bts{
.bts {
display: flex;
align-items: center;
justify-content: center;
padding: 20upx 0;
>view{
>view {
width: 204upx;
height: 64upx;
background: #FFFFFF;
@ -281,14 +293,16 @@
justify-content: center;
}
}
.contsx{
.contsx {
width: 100%;
display: flex;
flex-direction: column;
padding: 34upx 24upx;
box-sizing: border-box;
border-bottom: 3upx solid #EEEEEE;
>.tps{
>.tps {
width: 100%;
display: flex;
align-items: center;
@ -296,38 +310,45 @@
font-size: 28upx;
color: #092C4D;
margin-bottom: 20upx;
>view{
>view {
flex: 1;
}
}
>.numbx{
>.numbx {
width: 100%;
display: flex;
align-items: center;
justify-content: space-around;
margin-top: 44upx;
>view{
>view {
display: flex;
flex-direction: column;
align-items: center;
font-size: 28upx;
color: #092C4D;
&:nth-of-type(1){
>view:nth-of-type(2){
&:nth-of-type(1) {
>view:nth-of-type(2) {
color: #0086F1;
}
}
&:nth-of-type(2){
>view:nth-of-type(2){
&:nth-of-type(2) {
>view:nth-of-type(2) {
color: #3AD8BC;
}
}
&:nth-of-type(3){
>view:nth-of-type(2){
&:nth-of-type(3) {
>view:nth-of-type(2) {
color: #FA8C16;
}
}
>view:nth-of-type(2){
>view:nth-of-type(2) {
font-size: 36upx;
color: #0086F1;
margin-top: 20upx;
@ -338,7 +359,8 @@
}
}
}
.hedtopt{
.hedtopt {
display: flex;
align-items: center;
justify-content: center;
@ -346,7 +368,8 @@
background-color: #ffffff;
padding: 36upx 32upx;
box-sizing: border-box;
.typto{
.typto {
display: flex;
align-items: center;
justify-content: space-between;
@ -355,47 +378,56 @@
font-weight: 400;
color: #092C4D;
margin-bottom: 20upx;
&:nth-last-child(1){
&:nth-last-child(1) {
margin-bottom: 0;
}
>view{
>view {
flex: 1;
}
}
.kehupeison{
.kehupeison {
width: 100%;
display: flex;
align-items: center;
justify-content: space-around;
margin-top: 20upx;
>view{
>view {
display: flex;
flex-direction: column;
align-items: center;
font-size: 28upx;
font-weight: 400;
color: #092C4D;
&:nth-of-type(1){
>view:nth-of-type(2){
&:nth-of-type(1) {
>view:nth-of-type(2) {
color: #092C4D;
}
}
&:nth-of-type(2){
>view:nth-of-type(2){
&:nth-of-type(2) {
>view:nth-of-type(2) {
color: #0086F1;
}
}
&:nth-of-type(3){
>view:nth-of-type(2){
&:nth-of-type(3) {
>view:nth-of-type(2) {
color: #3AD8BC;
}
}
&:nth-of-type(4){
>view:nth-of-type(2){
&:nth-of-type(4) {
>view:nth-of-type(2) {
color: #FA8C16;
}
}
>view:nth-of-type(2){
>view:nth-of-type(2) {
font-size: 36upx;
font-weight: 400;
color: #092C4D;
@ -404,4 +436,4 @@
}
}
}
</style>
</style>

9
pagesHome/pages/DownGoods/DownGoods.vue

@ -309,7 +309,7 @@
checkmarkindex: 0,
allocaTitle: ''
})
onLoad(async (op) => {
onLoad((op) => {
// details.upshelfScanType = op.type
details.pageType = op.type
if (op.type === '1') utils.ttsspke(`当前下架方式为${op.pageName}, 请扫描下架的托盘`)
@ -322,10 +322,10 @@
details.typelist = ['订单号', '运单号']
utils.ttsspke(`当前下架方式为${op.pageName}, 请录入订单号或运单号`)
}
await initmarke()
})
onShow(() => {
onShow(async () => {
await initmarke()
// app
// #ifdef APP
uni.$on('scancodedate', function (code) {
@ -343,7 +343,7 @@
})
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
details.scancode = ''
details.datalist = []
details.codelist = []
@ -353,6 +353,7 @@
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})

390
pagesHome/pages/LoadingScan/LoadingScan.vue

@ -1,9 +1,7 @@
<template>
<!-- <u-navbar title="装车扫描" placeholder border=true :autoBack="true" leftIconSize='35'></u-navbar> -->
<u-navbar title="装车扫描"
bgColor='#D3832A' leftIconColor='#ffffff'
titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<u-navbar title="装车扫描" bgColor='#D3832A' leftIconColor='#ffffff' titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<view class="tabbmiax">
<view @click="setstates(1)" :class="checkstate==1?'xz':''">
<view>商配</view>
@ -17,10 +15,12 @@
<view class="schbox">
<view>配车日期</view>
<view @click='showtime(true)' class="inputsr">
<input :value='datatime' disabled placeholder="请选择时间"/>
<input :value='datatime' disabled placeholder="请选择时间" />
<view @click.stop.prevent>
<u-icon @click='showtime(true)' style="margin-right: 10rpx;" v-if="!datatime" name="calendar" color="#999999" size="50"></u-icon>
<u-icon @click="cleartime" style="margin-right: 10rpx;" v-else name="close-circle" color="#999999" size="40"></u-icon>
<u-icon @click='showtime(true)' style="margin-right: 10rpx;" v-if="!datatime" name="calendar"
color="#999999" size="50"></u-icon>
<u-icon @click="cleartime" style="margin-right: 10rpx;" v-else name="close-circle" color="#999999"
size="40"></u-icon>
</view>
</view>
<view @click="init">
@ -77,7 +77,8 @@
</view>
<view class="type1s" @click="goloddeta(item)">
<view class="bhcolor">
<text style="color: #90A0AF ;">车次号</text><text style="text-decoration: underline;">{{item.trainNumber}}</text>
<text style="color: #90A0AF ;">车次号</text><text
style="text-decoration: underline;">{{item.trainNumber}}</text>
</view>
</view>
<view class="liebs">
@ -104,13 +105,14 @@
</view>
</view>
<view class="buts">
<view v-if="!item.departureTime" @click="startld(item)">发车</view>
<view @click="goselscan(item)">装车扫描</view>
<view v-if="!item.departureTime" @click="startld(item)">发车</view>
</view>
</view>
</view>
</scroll-view>
<l-calendar v-model:value="show" :initStartDate='date[0]' :initEndDate='date[1]' @hide='showCalendar' @change="onConfirm"></l-calendar>
<l-calendar v-model:value="show" :initStartDate='date[0]' :initEndDate='date[1]' @hide='showCalendar'
@change="onConfirm"></l-calendar>
<!-- <u-datetime-picker :show="show" mode="datetime" @cancel="showtime(false)" @confirm="checktime"
itemHeight='80'></u-datetime-picker> -->
<tiplist ref="tiplists"></tiplist>
@ -122,50 +124,59 @@
onLoad,
onShow,
onHide,
onUnload
onUnload,
onPullDownRefresh
} from '@dcloudio/uni-app'
import {
import {
deliverypage,
deliverystart,
deliveryvehicle,
} from '@/api/user.js'
import { detailType } from '@/interfaces/pagesHome/LoadingScan'
import { reactive, toRefs,ref,watchEffect } from "vue";
import { reactive, toRefs, ref, watchEffect } from "vue";
let details = reactive<detailType>({
datatime: '',
show: false,
recordsList:[],
current:1,
size:10,
checkstate:1,
recordsList: [],
current: 1,
size: 10,
checkstate: 1,
})
const tip = ref<any>(null)
const tiplists = ref<any>(null)
const date = ref<number|string[]>([])
onShow(()=>{
const date = ref<number | string[]>([])
onShow(() => {
initpage()
})
function showCalendar(){
details.show=!details.show
function showCalendar() {
details.show = !details.show
}
function stop(){
function stop() {
}
function setstates(state:number){
if(details.checkstate==state){
onPullDownRefresh(() => {
const timer = setTimeout(async () => {
//
await initpage()
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
function setstates(state : number) {
if (details.checkstate == state) {
return
}
details.checkstate=state
details.checkstate = state
init()
}
async function startld(item){
async function startld(item) {
tip.value.setdetails({
title: '提示',
content:'确认发车?',
content: '确认发车?',
confirmTxt: '发车',
isshow: true,
isshowcancel: true,
success:async () => {
success: async () => {
Departure(item)
},
cancel: () => {
@ -176,131 +187,132 @@
}
})
}
async function Departure(item){
async function Departure(item) {
tip.value.setisshow(false)
let data={
deliveryId:item.id
let data = {
deliveryId: item.id
}
let res=await deliveryvehicle(data)
if(res.data.length == 1 ){
let data={
deliveryId:item.id,
loadingId:res.data[0].id
let res = await deliveryvehicle(data)
if (res.data.length == 1) {
let data = {
deliveryId: item.id,
loadingId: res.data[0].id
}
let response=await deliverystart(data)
if(response.code==200){
let response = await deliverystart(data)
if (response.code == 200) {
uni.showToast({
title:'发车成功',
icon:'none'
title: '发车成功',
icon: 'none'
})
init()
}
return
}
if(res.data.length == 0 ){
if (res.data.length == 0) {
uni.showToast({
title:'没有司机数据',
icon:'none'
title: '没有司机数据',
icon: 'none'
})
return
}
let list=[]
res.data.map(item=>{
list.push(item.driverName+'---'+item.vehicleNub)
let list = []
res.data.map(item => {
list.push(item.driverName + '---' + item.vehicleNub)
})
tiplists.value.setdetails({
title:'请选择车辆',
isshow:true,
tipstate:2,
title: '请选择车辆',
isshow: true,
tipstate: 2,
list,
checklist:[],
inputtext:'',
confirmTxt:'确认选择',
isonecheck:true,
success:async (deta)=>{
if(deta.checklist.length==0){
checklist: [],
inputtext: '',
confirmTxt: '确认选择',
isonecheck: true,
success: async (deta) => {
if (deta.checklist.length == 0) {
uni.showToast({
title:'请选择车辆',
icon:'none'
title: '请选择车辆',
icon: 'none'
})
return
}
tiplists.value.setdetails({isshow:false})
let data={
deliveryId:item.id,
loadingId:res.data[deta.checklist[0]].id
tiplists.value.setdetails({ isshow: false })
let data = {
deliveryId: item.id,
loadingId: res.data[deta.checklist[0]].id
}
let response=await deliverystart(data)
if(response.code==200){
let response = await deliverystart(data)
if (response.code == 200) {
init()
uni.showToast({
title:'发车成功',
icon:'none'
title: '发车成功',
icon: 'none'
})
}
},
cancel:(details)=>{
tiplists.value.setdetails({isshow:false})
cancel: (details) => {
tiplists.value.setdetails({ isshow: false })
},
close:(details)=>{
tiplists.value.setdetails({isshow:false})
close: (details) => {
tiplists.value.setdetails({ isshow: false })
}
})
}
function init(){
details.current=1
details.recordsList=[]
function init() {
details.current = 1
details.recordsList = []
initpage()
}
function jiazai(){
function jiazai() {
details.current++
initpage()
}
watchEffect(()=>{
if((date.value as []).length!=0){
details.datatime=date.value[0]+' 至 '+date.value[1]
watchEffect(() => {
if ((date.value as []).length != 0) {
details.datatime = date.value[0] + ' 至 ' + date.value[1]
}
})
function onConfirm(e:any) {
function onConfirm(e : any) {
console.log(e);
date.value[0]=e.startDate
date.value[1]=e.endDate
details.datatime=date.value[0]+' 至 '+date.value[1]
date.value[0] = e.startDate
date.value[1] = e.endDate
details.datatime = date.value[0] + ' 至 ' + date.value[1]
// details.datatime=(uni as any).$u.timeFormat(date.value[0], 'yyyy-mm-dd')+' '+(uni as any).$u.timeFormat(date.value[1], 'yyyy-mm-dd')
}
onLoad(()=>{
date.value[0]=(uni as any).$u.timeFormat((new Date().valueOf()-1000*60*60*24*3), 'yyyy-mm-dd')
date.value[1]=(uni as any).$u.timeFormat((new Date().valueOf()), 'yyyy-mm-dd')
details.current=1
onLoad(() => {
date.value[0] = (uni as any).$u.timeFormat((new Date().valueOf() - 1000 * 60 * 60 * 24 * 3), 'yyyy-mm-dd')
date.value[1] = (uni as any).$u.timeFormat((new Date().valueOf()), 'yyyy-mm-dd')
details.current = 1
})
function showtime(value : boolean) {
console.log(value);
details.show = value
}
async function initpage(){
let data={
current:details.current,
size:details.size,
taskTime_start:date.value[0]||'',
taskTime_end:date.value[1]||'',
type:details.checkstate
async function initpage() {
let data = {
current: details.current,
size: details.size,
taskTime_start: date.value[0] || '',
taskTime_end: date.value[1] || '',
type: details.checkstate
}
let response=await deliverypage(data)
console.log(response);
if(details.current==1){
details.recordsList=response.data.records
}else{
if(response.data.records.lngth==0){
let response = await deliverypage(data)
console.log(response);
if (details.current == 1) {
details.recordsList = response.data.records
} else {
if (response.data.records.lngth == 0) {
uni.showToast({
title:'已经到底了。',
icon:'none'
title: '已经到底了。',
icon: 'none'
})
details.current--
return
return null
}
details.recordsList=details.recordsList.concat(response.data.records)
details.recordsList = details.recordsList.concat(response.data.records)
}
return null
// details.recordsList=response.data.records
}
function checktime(event : any) {
@ -309,141 +321,144 @@
details.show = false
console.log(details.datatime);
}
async function goselscan(item:any) {
let data={
deliveryId:item.id
async function goselscan(item : any) {
let data = {
deliveryId: item.id
}
let res=await deliveryvehicle(data)
if(res.data.length == 1 ){
uni.setStorageSync('checkvehicle',res.data[0])
let res = await deliveryvehicle(data)
if (res.data.length == 1) {
uni.setStorageSync('checkvehicle', res.data[0])
uni.navigateTo({
url: '/pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan?id='+item.id+'&item='+JSON.stringify(item)
url: '/pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan?id=' + item.id + '&item=' + JSON.stringify(item)
})
return
}
if(res.data.length == 0 ){
if (res.data.length == 0) {
uni.showToast({
title:'没有司机数据',
icon:'none'
title: '没有司机数据',
icon: 'none'
})
return
}
let list=[]
res.data.map(item=>{
list.push(item.driverName+'---'+item.vehicleNub)
let list = []
res.data.map(item => {
list.push(item.driverName + '---' + item.vehicleNub)
})
tiplists.value.setdetails({
title:'请选择车辆',
isshow:true,
tipstate:2,
title: '请选择车辆',
isshow: true,
tipstate: 2,
list,
checklist:[],
inputtext:'',
confirmTxt:'确认选择',
isonecheck:true,
success:(deta)=>{
if(deta.checklist.length==0){
checklist: [],
inputtext: '',
confirmTxt: '确认选择',
isonecheck: true,
success: (deta) => {
if (deta.checklist.length == 0) {
uni.showToast({
title:'请选择车辆',
icon:'none'
title: '请选择车辆',
icon: 'none'
})
return
}
tiplists.value.setdetails({isshow:false})
uni.setStorageSync('checkvehicle',res.data[deta.checklist[0]])
tiplists.value.setdetails({ isshow: false })
uni.setStorageSync('checkvehicle', res.data[deta.checklist[0]])
uni.navigateTo({
url: '/pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan?id='+item.id+'&item='+JSON.stringify(item)
url: '/pagesHome/pages/DeliveryCustomerScan/DeliveryCustomerScan?id=' + item.id + '&item=' + JSON.stringify(item)
})
},
cancel:(details)=>{
tiplists.value.setdetails({isshow:false})
cancel: (details) => {
tiplists.value.setdetails({ isshow: false })
},
close:(details)=>{
tiplists.value.setdetails({isshow:false})
close: (details) => {
tiplists.value.setdetails({ isshow: false })
}
})
}
async function goloddeta(item){
let data={
deliveryId:item.id
async function goloddeta(item) {
let data = {
deliveryId: item.id
}
let res=await deliveryvehicle(data)
let res = await deliveryvehicle(data)
console.log(res);
if(res.data.length==1){
uni.setStorageSync('checkvehicle',res.data[0])
if (res.data.length == 1) {
uni.setStorageSync('checkvehicle', res.data[0])
uni.navigateTo({
url: '/pagesHome/pages/LoadingDetails/LoadingDetails?item='+JSON.stringify(item)
url: '/pagesHome/pages/LoadingDetails/LoadingDetails?item=' + JSON.stringify(item)
})
return
}
if(res.data.length == 0 ){
if (res.data.length == 0) {
uni.showToast({
title:'没有司机数据',
icon:'none'
title: '没有司机数据',
icon: 'none'
})
return
}
let list=[]
res.data.map(item=>{
list.push(item.driverName+'---'+item.vehicleNub)
let list = []
res.data.map(item => {
list.push(item.driverName + '---' + item.vehicleNub)
})
tiplists.value.setdetails({
title:'请选择车辆',
isshow:true,
tipstate:2,
title: '请选择车辆',
isshow: true,
tipstate: 2,
list,
checklist:[],
inputtext:'',
confirmTxt:'确认选择',
isonecheck:true,
success:(deta)=>{
if(deta.checklist.length==0){
checklist: [],
inputtext: '',
confirmTxt: '确认选择',
isonecheck: true,
success: (deta) => {
if (deta.checklist.length == 0) {
uni.showToast({
title:'请选择车辆',
icon:'none'
title: '请选择车辆',
icon: 'none'
})
return
}
tiplists.value.setdetails({isshow:false})
uni.setStorageSync('checkvehicle',res.data[deta.checklist[0]])
tiplists.value.setdetails({ isshow: false })
uni.setStorageSync('checkvehicle', res.data[deta.checklist[0]])
uni.navigateTo({
url: '/pagesHome/pages/LoadingDetails/LoadingDetails?item='+JSON.stringify(item)
url: '/pagesHome/pages/LoadingDetails/LoadingDetails?item=' + JSON.stringify(item)
})
},
cancel:(details)=>{
tiplists.value.setdetails({isshow:false})
cancel: (details) => {
tiplists.value.setdetails({ isshow: false })
},
close:(details)=>{
tiplists.value.setdetails({isshow:false})
close: (details) => {
tiplists.value.setdetails({ isshow: false })
}
})
// return
}
function cleartime(){
function cleartime() {
// console.log(cleartime);
details.datatime=''
date.value=[]
details.datatime = ''
date.value = []
init()
}
const { checkstate,datatime, recordsList, show } = toRefs(details)
const { checkstate, datatime, recordsList, show } = toRefs(details)
</script>
<style lang="scss">
.tabbmiax{
.tabbmiax {
display: flex;
align-items: center;
justify-content: space-between;
background-color: #ffffff;
.xz{
>view:nth-of-type(1){
.xz {
>view:nth-of-type(1) {
color: #FA8C16 !important;
}
>view:nth-of-type(2){
>view:nth-of-type(2) {
background-color: #FA8C16 !important;
}
}
>view{
>view {
width: 50%;
height: 80upx;
display: flex;
@ -451,23 +466,27 @@
justify-content: center;
flex-direction: column;
border-bottom: 1upx solid #EEEEEE;
&:nth-of-type(1){
&:nth-of-type(1) {
border-right: 1upx solid #EEEEEE;
}
>view:nth-of-type(1){
>view:nth-of-type(1) {
font-size: 34upx;
color: #092C4D;
}
>view:nth-of-type(2){
>view:nth-of-type(2) {
width: 58upx;
height: 8upx;
margin-top: 10upx;
border-radius: 20upx;
}
}
}
.inputsr{
.inputsr {
width: 400upx !important;
height: 64upx;
background: #F5F5F6;
@ -483,11 +502,13 @@
font-size: 26upx;
font-weight: 400;
color: #092C4D;
>input{
>input {
flex: 1;
font-size: 26upx;
}
}
.scvbx {
width: 100%;
height: 75vh;
@ -525,7 +546,8 @@
>view {
flex: 1;
}
.bhcolor{
.bhcolor {
color: #0086F1;
}
}
@ -558,13 +580,13 @@
color: #3AD8BC;
}
}
&:nth-of-type(4) {
>view:nth-of-type(2) {
color: #FA8C16;
}
}
>view:nth-of-type(1) {
font-size: 28upx;
font-weight: 400;

15
pagesHome/pages/MergeTray/MergeTray.vue

@ -135,7 +135,6 @@
</view>
<tips ref="tip"></tips>
<saomiao2></saomiao2>
<button @click="moni">模拟</button>
</template>
<script lang="ts" setup>
@ -188,9 +187,11 @@
})
})
uni.$off('scancodedate')
onHide(() => {
uni.$off('scancodedate')
})
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
//
details.scantype = 1
details.beilist = {}
@ -202,6 +203,7 @@
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
function setstate(state : number) {
@ -310,13 +312,6 @@
})
}
let add = 1
function moni() {
details.scancode = add === 1 ? 'T43960' : 'HTJM000001'
scandata()
add++
}
const {
beilist,
newbeilist,

2
pagesHome/pages/MergeTrayDetails/MergeTrayDetails.vue

@ -148,6 +148,8 @@
let resdata = ref<any>({})
onLoad((op) => {
trayCode.value = op.tray
})
onShow(() => {
init()
})
function goorderdetail(item) {

94
pagesHome/pages/OrderSortingDetail/OrderSortingDetail.vue

@ -70,6 +70,14 @@
</view>
<scroll-view class="scvmabx" scroll-y="true">
<template v-if="details.tabBarState === 3">
<view style="display: flex;" @click="chooseMarket">
<view>商场名称</view>
<view>
{{details.stock.marketName||'暂无数据'}}
</view>
</view>
</template>
<view class="maxboxs">
<block v-for="item in datelist">
<!-- 定制品 -->
@ -372,6 +380,7 @@
stock: {
// Id
marketId: '',
marketName: '',
//
materialCode: '',
//
@ -409,10 +418,11 @@
})
//
onPullDownRefresh(() => {
setTimeout(async () => {
const timer = setTimeout(async () => {
await initlist()
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
async function godetaillist(item) {
@ -616,41 +626,53 @@
else if (details.tabBarState === 2) details.datelist = details.detauser ? details.detauser.zeroList : []
//
else if (details.tabBarState === 3) {
// ID,
if (!details.stock.marketId) {
const res = await warehouseTrayTypefindAllMarket({})
console.log('res :>> ', res);
if (res.code !== 200) return
const _marketArr = res.data
const list = _marketArr.map(val => val.marketName)
tiplists.value.setdetails({
isshow: true,
tipstate: 2,
title: '请选择商场',
list,
isonecheck: true,
success: (detail) => {
if (detail.checklist.length === 0) {
return uni.showToast({
title: '请选择商场',
icon: 'none'
})
}
console.log('detail :>> ', detail);
details.stock.marketId = _marketArr[detail.checklist[0]].marketId
tiplists.value.setdetails({ isshow: false })
},
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
}
details.datelist = details.detauser ? details.detauser.stockList : []
if (!details.stock.marketId) chooseMarket()
}
}
/**
* 库存品 -- 选择商场
*/
async function chooseMarket() {
console.log('111 :>> ', 111);
// ID,
console.log('details.datelist :>> ', details.datelist.length);
// ,
if (details.datelist.length === 0) {
const res = await warehouseTrayTypefindAllMarket({})
console.log('res :>> ', res);
if (res.code !== 200) return
const _marketArr = res.data
const list = _marketArr.map(val => val.marketName)
tiplists.value.setdetails({
isshow: true,
tipstate: 2,
title: '请选择商场',
list,
isonecheck: true,
success: (detail) => {
if (detail.checklist.length === 0) {
return uni.showToast({
title: '请选择商场',
icon: 'none'
})
}
console.log('detail :>> ', detail);
details.stock.marketId = _marketArr[detail.checklist[0]].marketId
console.log('_marketName :>> ', _marketArr);
details.stock.marketName = _marketArr[detail.checklist[0]].marketName
tiplists.value.setdetails({ isshow: false })
},
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
}
}
@ -688,6 +710,7 @@
if (item.number >= item.residueNum) item.number = item.residueNum
//
if (item.number <= 0) item.number = 0
clearTimeout(isClick)
}, 500)
}
@ -703,6 +726,7 @@
if (item.maknumber >= item.quantityStock) item.maknumber = item.quantityStock
//
if (item.maknumber <= 0) item.maknumber = 0
clearTimeout(isClickS)
}, 500)
}

5
pagesHome/pages/OrderSortingDetailList/OrderSortingDetailList.vue

@ -193,14 +193,17 @@
onLoad((op) => {
details.orderCode = op.orderCode
details.trayCode = op.trayCode
})
onShow(() => {
initpage()
})
onPullDownRefresh(() => {
setTimeout(async () => {
const timer = setTimeout(async () => {
await initpage()
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
async function initpage() {

6
pagesHome/pages/PeopleScanUp/PeopleScanUp.vue

@ -375,7 +375,6 @@
details.pageName = op.pageName
details.upshelfScanType = op.type
if (op.pageName) utils.ttsspke(`当前上架方式为 ${op.pageName}, 请扫描货位`)
initmarke()
})
onShow(() => {
@ -386,6 +385,7 @@
scandata()
}
})
initmarke()
})
onHide(() => {
@ -393,7 +393,7 @@
})
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
//
details.scancode = ''
details.allocationId = ''
@ -408,6 +408,7 @@
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
@ -679,6 +680,7 @@
if (item.enterNum >= item.residueNumber) item.enterNum = item.residueNumber
//
if (item.enterNum <= 0) item.enterNum = 0
clearTimeout(isClick)
}, 200)
}

7
pagesHome/pages/PeopleSortingDetail/PeopleSortingDetail.vue

@ -206,6 +206,9 @@
details.trayCodevalue = item.dictValue
}
})
})
onShow(() => {
initpage()
uni.$on('scancodedate', function (code) {
if (code) {
@ -215,6 +218,9 @@
}
})
})
onHide(() => {
uni.$off('scancodedate')
})
async function initpage() {
let data = {
trayCode: details.trayCode
@ -391,6 +397,7 @@
if (item.number >= item.residueNum) item.number = item.residueNum
//
if (item.number <= 0) item.number = 0
clearTimeout(isClick)
}, 500)
}

16
pagesHome/pages/PickingScanList/PickingScanList.vue

@ -34,6 +34,10 @@
<view>计划件数</view>
<view>{{item.planNum}}</view>
</view>
<view>
<view>已备数量</view>
<view>{{item.stockupNum || 0}}</view>
</view>
</view>
</view>
</view>
@ -55,11 +59,13 @@
onLoad,
onShow,
onHide,
onPullDownRefresh
} from '@dcloudio/uni-app'
import { reactive, ref, toRefs } from "vue";
// pinia
import { useUserStore } from '@/store/uaeUserStore.js';
import { storeToRefs } from 'pinia';
import utils from '../../../utils/utils';
const { userInfo } = storeToRefs(useUserStore())
let details = reactive({
@ -92,6 +98,9 @@
uni.$off('scancodedate')
})
async function showlist() {
// #ifdef APP
utils.ttsspke('请选择备货区')
// #endif
let list = []
const user = userInfo.value as any
let data = {
@ -143,6 +152,13 @@
}
})
}
onPullDownRefresh(() => {
const timer = setTimeout(() => {
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
//
async function initpage() {

9
pagesHome/pages/Relocation/Relocation.vue

@ -285,6 +285,9 @@
onLoad((op) => {
details.pagetype = op.type
utils.ttsspke(`当前移库方式为${op.pageName}, 请先扫描库位码`)
})
onShow(() => {
uni.$on('scancodedate', function (code) {
if (code) {
// console.log(code);
@ -293,9 +296,12 @@
}
})
})
onHide(() => {
uni.$off('scancodedate')
})
//
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
details.scancode = ''
details.allocationId = ''
details.dtilobj = {}
@ -307,6 +313,7 @@
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
function goorderdetail(item) {

246
pagesHome/pages/RemoveTray/RemoveTray.vue

@ -10,43 +10,125 @@
</view>
</view>
</view>
<!-- tabBar -->
<view class="tabBar">
<view :class="{'tabBar_item': true, 'active': details.tabBarState === 1}" @click="setTabBarState(1)">
订制品
</view>
<view :class="{'tabBar_item': true, 'active': details.tabBarState === 2}" @click="setTabBarState(2)">
零担
</view>
<view :class="{'tabBar_item': true, 'active': details.tabBarState === 3}" @click="setTabBarState(3)">
库存品
</view>
</view>
<scroll-view class="scvmabx" scroll-y="true">
<view class="maxboxs">
<view class="items" v-for="item in datalist">
<view class="tophd1">
<view>
<image src="/pagesHome/static/topicons.png"></image>
<!-- <view></view> -->
<!-- <view>{{item.dataCode}}</view> -->
<view :style="item.isFleeing?'color: #ff0000;':''">{{item.dataCode}}{{item.isFleeing?'(窜)':''}}</view>
<block v-for="item in datalist">
<!-- 定制品 -->
<template v-if="details.tabBarState === 1">
<view class="items">
<view class="tophd" @click.stop.prevent>
<image src="/pagesHome/static/topicons.png"></image>
<view>订单号</view>
<view :style="item.isFleeing?'color: #ff0000;':''">{{item.dataCode}}{{item.isFleeing?'(窜)':''}}
</view>
</view>
<view class="tophd" @click.stop.prevent>
<view>服务号</view>
<view>{{item.serviceNumber}}</view>
</view>
<view class="numbxvie">
<view>
<view class="zhon">{{item.orderTotalNum}}</view>
<view>总数</view>
</view>
<view>
<view class="yish">{{item.scanNum}}</view>
<view>已扫</view>
</view>
<view>
<view class="weish">{{item.orderTotalNum - item.scanNum }}</view>
<view>未扫</view>
</view>
</view>
<image v-if="item.orderTotalNum!=item.scanNum" class="weiqt" src="/pagesHome/static/weiqitao.png">
</image>
<image v-else class="qitao" src="/pagesHome/static/qitao.png"></image>
</view>
</view>
<view class="tophd" v-if="item.dataName">
<image src="/pagesHome/static/uname.png"></image>
<view>物料名称</view>
<view>{{item.dataName}}</view>
</view>
<view class="tophd" v-if="item.sku">
<image src="/pagesHome/static/uname.png"></image>
<view>SKU</view>
<view>{{item.sku}}</view>
</view>
<view class="tophd" v-if="item.cargoUnit">
<image src="/pagesHome/static/uname.png"></image>
<view>物料单位</view>
<view>{{item.cargoUnit}}</view>
</view>
<view class="numbxvie">
<view>
<view class="zhon">{{item.orderTotalNum}}</view>
<view>在库数</view>
</template>
<!-- 零担 -->
<template v-if="details.tabBarState === 2">
<view class="items">
<view class="tophd" @click.stop.prevent>
<image src="/pagesHome/static/topicons.png"></image>
<view>订单号</view>
<view>{{item.dataCode}}</view>
</view>
<view class="tophd" @click.stop.prevent>
<view>运单号</view>
<view>{{item.waybillNo}}</view>
</view>
<view class="numbxvie">
<view>
<view class="zhon">{{item.orderTotalNum}}</view>
<view>总数</view>
</view>
<view>
<view class="yish">{{item.scanNum}}</view>
<view>打托数量</view>
</view>
</view>
</view>
<view>
<view class="yish">{{item.scanNum}}</view>
<view>在托数</view>
</template>
<!-- 库存品 -->
<template v-if="details.tabBarState === 3">
<view class="items">
<view class="tophd1">
<view>
<image src="/pagesHome/static/topicons.png"></image>
<view>订单号</view>
<view>{{item.dataCode}}</view>
</view>
</view>
<view class="tophd">
<image src="/pagesHome/static/uname.png"></image>
<view>物料名称</view>
<view>{{item.dataName}}</view>
</view>
<view class="tophd">
<image src="/pagesHome/static/uname.png"></image>
<view>批次号</view>
<view>{{item.incomingBatch}}</view>
</view>
<view class="tophd">
<image src="/pagesHome/static/uname.png"></image>
<view>SKU</view>
<view>{{item.sku}}</view>
</view>
<view class="tophd">
<image src="/pagesHome/static/uname.png"></image>
<view>物料单位</view>
<view>{{item.cargoUnit}}</view>
</view>
<view class="numbxvie">
<view>
<view class="zhon">{{item.orderTotalNum||0}}</view>
<view>在库数</view>
</view>
<view>
<view class="yish">{{item.scanNum||0}}</view>
<view>已扫</view>
</view>
</view>
</view>
</view>
</view>
</template>
</block>
</view>
</scroll-view>
<view @click="removetray" class="flbuts">空置</view>
@ -73,7 +155,12 @@
datalist: [],
scancode: '',
statetype: '',
trayCodes: ''
trayCodes: '',
tabBarState: 1,
data: {},
orderList: [],
zeroList: [],
stockList: []
})
onLoad(() => {
utils.ttsspke('请扫描或输入需要空置的托盘')
@ -92,28 +179,53 @@
uni.$off('scancodedate')
})
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
details.datalist = []
details.trayCodes = ''
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
async function scandata() {
let data = {
let submitData = {
trayCode: details.scancode
}
let res = await warehouseTrayTypetrayToNullScanTrayCode(data)
if (res.code == 200) {
console.log(res);
details.datalist = res.data?.list
details.statetype = res.data?.type
if (res.data?.list?.length > 0) {
let res = await warehouseTrayTypetrayToNullScanTrayCode(submitData)
const { code, data } = res
if (code == 200) {
if (!data) return
console.log('res', res);
// details.datalist = res.data?.list
//
details.orderList = data.packageList
//
details.zeroList = data.zeroList
//
details.stockList = data.stockList
if (details.tabBarState === 1) details.datalist = details.orderList
else if (details.tabBarState === 2) details.datalist = details.zeroList
else if (details.tabBarState === 3) details.datalist = details.stockList
console.log('details.datalist :>> ', details.datalist);
details.statetype = data.type
if (details.orderList.length > 0 || details.zeroList.length > 0 || details.stockList.length > 0) {
details.trayCodes = details.scancode
}
}
}
/**
* 修改tabBar选中状态
*/
async function setTabBarState(state : number) {
details.tabBarState = state
//
if (details.tabBarState === 1) details.datalist = details.orderList
//
else if (details.tabBarState === 2) details.datalist = details.zeroList
//
else if (details.tabBarState === 3) details.datalist = details.stockList
}
function removetray() {
tip.value.setdetails({
title: '提示',
@ -185,7 +297,40 @@
} = toRefs(details)
</script>
<style lang="scss">
<style lang="scss" scoped>
// tabBar
.tabBar {
margin-top: 10upx;
padding: 0 30upx;
display: flex;
&_item {
flex: 1;
flex-basis: 0;
text-align: center;
line-height: 80upx;
background: #fff;
position: relative;
&::after {
content: '';
display: block;
position: absolute;
height: 4upx;
background: #d3832a;
width: 0;
left: 50%;
bottom: 0;
transition: all 0.5s;
}
&.active::after {
left: 0;
width: 100%;
}
}
}
.topbos {
display: flex;
flex-direction: column;
@ -269,6 +414,7 @@
align-items: center;
>.items {
position: relative;
width: 690upx;
display: flex;
flex-direction: column;
@ -400,6 +546,22 @@
}
}
}
.weiqt {
position: absolute;
right: 0;
top: 0;
width: 70upx;
height: 70upx;
}
.qitao {
position: absolute;
right: 0;
top: 0;
width: 70upx;
height: 70upx;
}
</style>
<style lang="scss">

61
pagesHome/pages/ScanUp/ScanUp.vue

@ -86,6 +86,10 @@
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>订单号{{item.orderCode}}</view>
</view>
<view class="tpbx" v-if="item.goodsType==0" @click.stop="goorderdetail(item, item.goodsType)">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>类型{{Number(item.conditions) === 1 ? '定制品': '库存品'}}</view>
</view>
<!-- 定制品 -->
<view v-if="item.goodsType === 1">
@ -144,10 +148,10 @@
</view>
</template>
<template v-else>
<!-- <template v-else>
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>已扫数量{{item.shelfNum}}</view>
</template>
</template> -->
</view>
<image v-if="Number(details.upshelfScanType)!=3" class="qtimgzt"
@ -241,7 +245,7 @@
//
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
//
details.allocationId = ''
details.reqobj = []
@ -251,6 +255,7 @@
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
@ -297,26 +302,34 @@
let res = await warehouseUpdownTypeupShelfScanGoods(data)
console.log('res>>>>>', res);
if (res.code == 200) {
const _uplistarr = details.uplistarr
const _orderCodeArr = details.orderCodeArr
const _flag = res.data.every(val => {
if (details.orderCodeArr.includes(val.orderCode)) {
uni.showToast({
title: '订单已存在, 勿重复扫码',
icon: 'none'
})
return false
}
_uplistarr.push(val)
_orderCodeArr.push(val.orderCode)
return true
})
if (!_flag) return
details.uplistarr = _uplistarr
details.orderCodeArr = _orderCodeArr
// details.uplistarr = details.uplistarr.concat(res.data)
if (details.upshelfScanType === '3') utils.ttsspke(details.uplistarr.reduce((curr, item) => curr + item.shelfNum, 0) + '件')
else utils.ttsspke(details.uplistarr.length + '件')
if (Number(details.upshelfScanType) !== 3) {
const _uplistarr = details.uplistarr
const _orderCodeArr = details.orderCodeArr
const _flag = res.data.every(val => {
if (details.orderCodeArr.includes(val.orderCode)) {
uni.showToast({
title: '订单已存在, 勿重复扫码',
icon: 'none'
})
return false
}
_uplistarr.push(val)
_orderCodeArr.push(val.orderCode)
return true
})
if (!_flag) return
details.uplistarr = _uplistarr
details.orderCodeArr = _orderCodeArr
}
else {
details.uplistarr = details.uplistarr.concat(res.data)
}
//
let _content = ''
if (details.upshelfScanType !== '3') _content = details.uplistarr.reduce((curr, item) => curr + item.shelfNum, 0) + '件'
else _content = details.uplistarr.length + '件'
utils.ttsspke(_content)
if (details.checkstate === 1) return details.renderList = details.uplistarr
} else if (res.code === 3001 && res.audio) {
@ -357,7 +370,7 @@
let _totalShelfNum = 0
//
if (details.upshelfScanType === '3') _totalShelfNum = uplistarr.value.length
if (details.upshelfScanType === '4') _totalShelfNum = uplistarr.value.reduce((curr, item) => curr + item.shelfNum, 0)
else _totalShelfNum = uplistarr.value.reduce((curr, item) => curr + item.shelfNum, 0)
utils.ttsspke(`待上架${_totalShelfNum}件, 是否进行上架`)
tip.value.setdetails({

3
pagesHome/pages/ScanUpType/ScanUpType.vue

@ -31,9 +31,10 @@
utils.ttsspke('请选择上架方式')
})
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
function gotourl(item : any) {

3
pagesHome/pages/SelfPScanList/SelfPScanList.vue

@ -158,8 +158,6 @@
const tiplists = ref(null)
onLoad((op) => {
details.billLadingId = op.billLadingId
initpage()
})
onShow(() => {
uni.$on('scancodedate', function (code) {
@ -169,6 +167,7 @@
sacn()
}
})
initpage()
})
onHide(() => {
uni.$off('scancodedate')

5
pagesHome/pages/SelfPickupDetails/SelfPickupDetails.vue

@ -162,7 +162,6 @@
const tiplists = ref(null)
onLoad((op) => {
details.billLadingId = op.billLadingId
initpage()
})
onShow(() => {
uni.$on('scancodedate', function (code) {
@ -172,6 +171,7 @@
sacn()
}
})
initpage()
})
function goorderdetail(item) {
uni.navigateTo({
@ -180,8 +180,9 @@
}
watchEffect(() => {
if (details.isscan && details.signedNum) {
setTimeout(() => {
const timer = setTimeout(() => {
utils.ttsspke(details.signedNum + '件')
clearTimeout(timer)
}, 1000)
}
})

150
pagesHome/pages/SelfPickupScan/SelfPickupScan.vue

@ -1,16 +1,16 @@
<template>
<!-- <u-navbar title="自提扫描" placeholder border=true :autoBack="true" leftIconSize='35'></u-navbar> -->
<u-navbar title="自提扫描"
bgColor='#D3832A' leftIconColor='#ffffff'
titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<u-navbar title="自提扫描" bgColor='#D3832A' leftIconColor='#ffffff' titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<view class="schbox">
<view>自提日期</view>
<view @click='showCalendar' class="inputsr">
<input :value='datatime' disabled placeholder="请选择时间"/>
<input :value='datatime' disabled placeholder="请选择时间" />
<view @click.stop.prevent>
<u-icon @click='showCalendar' style="margin-right: 10rpx;" v-if="!datatime" name="calendar" color="#999999" size="50"></u-icon>
<u-icon @click="cleartime" style="margin-right: 10rpx;" v-else name="close-circle" color="#999999" size="40"></u-icon>
<u-icon @click='showCalendar' style="margin-right: 10rpx;" v-if="!datatime" name="calendar" color="#999999"
size="50"></u-icon>
<u-icon @click="cleartime" style="margin-right: 10rpx;" v-else name="close-circle" color="#999999"
size="40"></u-icon>
</view>
</view>
<view @click="init">
@ -81,12 +81,12 @@
</view>
</view>
</scroll-view>
<l-calendar v-model:value="show" :initStartDate='date[0]' :initEndDate='date[1]' @hide='showCalendar' @change="onConfirm"></l-calendar>
<l-calendar v-model:value="show" :initStartDate='date[0]' :initEndDate='date[1]' @hide='showCalendar'
@change="onConfirm"></l-calendar>
<!-- <hd-calendar :defaultDate='date' mode="range" color='#D3832A' minDate='2023-01-01' @confirm="onConfirm" /> -->
</template>
<script lang="ts" setup>
import {
onLoad,
onShow,
@ -95,66 +95,68 @@
} from '@dcloudio/uni-app'
import { billLadingpageList } from '@/api/user.js'
import { detailsType } from '@/interfaces/pagesHome/SelfPickupScan'
import { reactive, toRefs,ref,watchEffect } from "vue";
import { reactive, toRefs, ref, watchEffect } from "vue";
let details = reactive<detailsType>({
datatime: '',
show: false,
current:1,
size:10,
recordsList:[]
current: 1,
size: 10,
recordsList: []
})
const date = ref<number|string[]>([])
function showCalendar(){
details.show=!details.show
const date = ref<number | string[]>([])
function showCalendar() {
details.show = !details.show
}
function onConfirm(e:any) {
function onConfirm(e : any) {
console.log(e);
date.value[0]=e.startDate
date.value[1]=e.endDate
details.datatime=date.value[0]+' 至 '+date.value[1]
date.value[0] = e.startDate
date.value[1] = e.endDate
details.datatime = date.value[0] + ' 至 ' + date.value[1]
// details.datatime=(uni as any).$u.timeFormat(date.value[0], 'yyyy-mm-dd')+' '+(uni as any).$u.timeFormat(date.value[1], 'yyyy-mm-dd')
}
function stop(){
function stop() {
}
watchEffect(()=>{
if((date.value as []).length!=0){
details.datatime=date.value[0]+' 至 '+date.value[1]
watchEffect(() => {
if ((date.value as []).length != 0) {
details.datatime = date.value[0] + ' 至 ' + date.value[1]
}
})
onLoad(()=>{
date.value[0]=(uni as any).$u.timeFormat((new Date().valueOf()-1000*60*60*24*3), 'yyyy-mm-dd')
date.value[1]=(uni as any).$u.timeFormat((new Date().valueOf()), 'yyyy-mm-dd')
onLoad(() => {
date.value[0] = (uni as any).$u.timeFormat((new Date().valueOf() - 1000 * 60 * 60 * 24 * 3), 'yyyy-mm-dd')
date.value[1] = (uni as any).$u.timeFormat((new Date().valueOf()), 'yyyy-mm-dd')
})
onShow(() => {
init()
})
function init(){
details.current=1
function init() {
details.current = 1
initpage()
}
function jiazai(){
function jiazai() {
details.current++
initpage()
}
async function initpage(){
let data={
current:details.current,
size:details.size,
pickUpTimeStart:date.value[0],
pickUpTimeEnd:date.value[1],
async function initpage() {
let data = {
current: details.current,
size: details.size,
pickUpTimeStart: date.value[0],
pickUpTimeEnd: date.value[1],
}
let response=await billLadingpageList(data)
let response = await billLadingpageList(data)
// details.recordsList=response.data.records
if(details.current==1){
details.recordsList=response.data.records
}else{
if(response.data.records.lngth==0){
if (details.current == 1) {
details.recordsList = response.data.records
} else {
if (response.data.records.lngth == 0) {
uni.showToast({
title:'已经到底了。',
icon:'none'
title: '已经到底了。',
icon: 'none'
})
return
}
details.recordsList=details.recordsList.concat(response.data.records)
details.recordsList = details.recordsList.concat(response.data.records)
}
}
function checktime(event : any) {
@ -163,27 +165,27 @@
details.show = false
console.log(details.datatime);
}
function goselscan(item:any) {
function goselscan(item : any) {
uni.navigateTo({
url: '/pagesHome/pages/SelfPScanList/SelfPScanList?billLadingId='+item.billLadingId
url: '/pagesHome/pages/SelfPScanList/SelfPScanList?billLadingId=' + item.billLadingId
})
}
function goselscandetails(item:any){
function goselscandetails(item : any) {
uni.navigateTo({
url: '/pagesHome/pages/SelfPickupDetails/SelfPickupDetails?billLadingId='+item.billLadingId
url: '/pagesHome/pages/SelfPickupDetails/SelfPickupDetails?billLadingId=' + item.billLadingId
})
}
function cleartime(){
function cleartime() {
// console.log(1231211);
details.datatime=''
date.value=[]
details.datatime = ''
date.value = []
init()
}
const { datatime, dataList, show,recordsList } = toRefs(details)
const { datatime, dataList, show, recordsList } = toRefs(details)
</script>
<style lang="scss">
.inputsr{
.inputsr {
width: 400upx !important;
height: 64upx;
background: #F5F5F6;
@ -199,11 +201,13 @@
font-size: 26upx;
font-weight: 400;
color: #092C4D;
>input{
>input {
flex: 1;
font-size: 26upx;
}
}
.scvbx {
width: 100%;
height: 81vh;
@ -213,6 +217,7 @@
display: flex;
flex-direction: column;
align-items: center;
>.item {
width: 686upx;
// height: 610upx;
@ -221,10 +226,12 @@
padding: 20upx 0;
box-sizing: border-box;
margin-bottom: 20upx;
>.headtop{
>.headtop {
display: flex;
flex-direction: column;
padding: 24upx;
>.type1s {
display: flex;
align-items: center;
@ -234,68 +241,71 @@
font-size: 28upx;
font-weight: 400;
color: #092C4D;
>view {
flex: 1;
}
}
>.liebs {
display: flex;
align-items: center;
justify-content: space-around;
>view {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 20upx;
&:nth-of-type(1) {
>view:nth-of-type(2) {
color: #092C4D;
}
}
&:nth-of-type(2) {
>view:nth-of-type(2) {
color: #0086F1;
}
}
&:nth-of-type(3) {
>view:nth-of-type(2) {
color: #3AD8BC;
}
}
&:nth-of-type(4) {
>view:nth-of-type(2) {
color: #FA8C16;
}
}
>view:nth-of-type(1) {
font-size: 28upx;
font-weight: 400;
color: #092C4D;
}
>view:nth-of-type(2) {
font-size: 36upx;
font-weight: 400;
margin-top: 20upx;
}
}
}
}
>.buts{
>.buts {
border-top: 3upx solid #EEEEEE;
display: flex;
align-items: center;
justify-content: space-around;
padding-top: 20upx;
>view{
>view {
width: 204upx;
height: 64upx;
border-radius: 8upx;
@ -305,11 +315,13 @@
justify-content: center;
font-size: 28upx;
}
>view:nth-of-type(1){
>view:nth-of-type(1) {
border: 2upx solid #0086F1;
color: #0086F1;
}
>view:nth-of-type(2){
>view:nth-of-type(2) {
border: 2upx solid #D3832A;
color: #D3832A;
}

37
pagesHome/pages/SetPrice/SetPrice.vue

@ -35,7 +35,15 @@
<view>
<view>{{details.priceType[Number(item.addvalueId)-1].typename}}</view>
<view>
{{item.floolNum?item.floolNum+' 楼':item.distance&&item.addvalueId=='2'?item.distance+' km':item.distance||''+' m'}}
<template v-if="item.floolNum">
<text>{{item.floolNum+' 楼'}}</text>
</template>
<template v-else-if="item.distance&&item.addvalueId=='2'">
<text>{{item.distance+' km'}}</text>
</template>
<template v-else-if="item.distance">
<text>{{item.distance||''+' m'}}</text>
</template>
</view>
<view>{{item.fee||'0'}}</view>
</view>
@ -74,7 +82,8 @@
<script lang="ts" setup>
import {
addvalueaddvalueInfo
addvalueaddvalueInfo,
addvalueupdateAddvalueInfo
} from '@/api/user.js'
import {
onLoad,
@ -100,16 +109,16 @@
onLoad((op) => {
details.reservationId = op.reservationId
details.items = JSON.parse(op.item)
})
onShow(() => {
init()
})
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
init()
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
@ -147,7 +156,6 @@
*/
function removeItem(_item : any) {
console.log('_item :>> ', _item);
console.log('tiplists :>> ', tiplists);
tiplists.value.setdetails({
title: `确认取消该${details.priceType[Number(_item.addvalueId) - 1].typename}服务`,
isshow: true,
@ -156,8 +164,23 @@
inputtext: '',
confirmTxt: '确认取消',
isonecheck: true,
success: (deta) => {
success: async () => {
const submitData = {
reservationId: details.items.id,
addvalueType: _item.addvalueId,
addvalueDetailId: _item.addvalueDetailId,
floolNum: '',
distance: '',
num: 0,
packageEntityList: []
}
const res = await addvalueupdateAddvalueInfo(submitData)
console.log('res :>> ', res);
if (res.code === 200) uni.showToast({
title: '删除成功',
icon: 'none'
})
init()
tiplists.value.setdetails({ isshow: false })
},
cancel: (details) => {

7
pagesHome/pages/StockUpListZero/StockUpListZero.vue

@ -118,9 +118,10 @@
details.pallet = op.pallet
details.orderCode = op.orderCode
details.typeService = op.typeService
initpage()
// details.scancode='23072506516-3'
// scandata()
})
onShow(() => {
uni.$on('scancodedate', function (code) {
if (code) {
console.log(code);
@ -128,6 +129,10 @@
scandata()
}
})
initpage()
})
onHide(() => {
uni.$off('scancodedate')
})
function goorderdetail(item) {
uni.navigateTo({

113
pagesHome/pages/StockUplist/StockUplist.vue

@ -98,6 +98,7 @@
<view class="toptitl">
<view class="toplft">
库位号{{item.allocation}}
<text v-if="item.stockQuantity">{{ `(${item.stockQuantity})`}}</text>
</view>
<view class="tis bf">
按件扫描
@ -119,6 +120,9 @@
<view class="anj" @click="showZeroOrderDetails(item)">
{{item.completeStact?'查看明细':'去备货'}}
</view>
<view class="anj" @click="printOrderCode(item)">
打印订单号
</view>
</view>
</view>
</template>
@ -242,12 +246,19 @@
async function ckscanningCode(item : any) {
details.isscan = item.taryLean
details.trayId = item.trayId
// let data={
// stockupId:details.stockupId,
// trayId:item.trayId,
// reservationId:details.reservationId,
uni.showToast({
title: '请扫描托盘码',
icon: 'none'
})
// #ifdef APP
utils.ttsspke('请扫描托盘码')
// #endif
// let data = {
// stockupId: details.stockupId,
// trayId: item.trayId,
// reservationId: details.reservationId,
// }
// let res=await distributionStockupscanningCode(data)
// let res = await distributionStockupscanningCode(data)
}
function setorderStatus(state : number) {
@ -328,7 +339,13 @@
/**
*/
async function showZeroOrderDetails(item) {
console.log('item :>> ', item);
if (!item.allocation) {
return uni.showToast({
title: '未上架,上架后再进行操作',
icon: 'none'
})
}
//
let data = {
typeService: details.items.typeService,
stockupId: details.stockupId,
@ -450,6 +467,90 @@
}
})
}
/**
* 打印订单码
*/
function printOrderCode(item) {
console.log('item :>> ', item);
// return
//
tiplists.value.setdetails({
title: '生成订单编号二维码数量',
isshow: true,
tipstate: 1,
// inpList,
inputtext: 1,
confirmTxt: '确定生成',
isonecheck: true,
success: async (deta) => {
//
const _inputValue = parseInt(deta.inputtext)
//
let _flag = true
if (_inputValue !== _inputValue) {
uni.showToast({
title: '请输入数字',
icon: 'none'
})
_flag = false
} else if (_inputValue <= 0) {
uni.showToast({
title: '数字必须大于零',
icon: 'none'
})
_flag = false
}
// , 退
if (!_flag) return tiplists.value.setdetails({ isshow: false })
for (let i = 0; i <= _inputValue; i++) {
console.log('i :>> ', i);
let text = '! 0 200 200 330 1\r\n'
text += 'SETBOLD 2\r\n'
text += `T 56 0 0 0 ${item.orderCode}\r\n`
text += 'LINE 0 50 420 50 3\r\n'
text += `T 55 0 0 60 客户\r\n`
text += 'LINE 40 50 40 110 3\r\n'
text += `T 55 0 50 60 ${user.consignee}\r\n`
text += 'LINE 40 80 420 80 3\r\n'
text += `T 55 0 50 90 ${details.address}\r\n`
text += 'LINE 0 110 420 110 3\r\n'
text += `T 55 0 0 120 物料\r\n`
text += 'LINE 40 110 40 140 3\r\n'
text += `T 55 0 50 120 ${details.dataList[item]?.materialName}\r\n`
text += 'LINE 0 140 420 140 3\r\n'
text += 'B QR 150 150 M 2 U 4\r\n'
text += `MA,${item.orderCode}\r\n`
text += 'ENDQR\r\n'
text += `T 55 0 140 260 ${item.orderCode}\r\n`
text += 'FORM\r\n'
text += 'PRINT\r\n'
let sylist = utils.initbl()
console.log(sylist);
sylist.map(item => {
console.log(item);
if (item.uuids) {
utils.getbl(item, text)
}
})
}
// #ifdef APP
// deta.checklist.map(item => {
//
// })
// #endif
},
cancel: (details) => {
tiplists.value.setdetails({ isshow: false })
},
close: (details) => {
tiplists.value.setdetails({ isshow: false })
}
})
}
const { user, orderList, orderStatus, stockList, zeroOrderList } = toRefs(details)
</script>

20
pagesHome/pages/StockUplistScandetails/StockUplistScandetails.vue

@ -102,12 +102,13 @@
onLoad,
onShow,
onHide,
onUnload
onUnload,
onPullDownRefresh
} from '@dcloudio/uni-app'
import { distributionStockuporderInfo, distributionStockupstockupScan } from '@/api/user.js'
import { detailType } from '@/interfaces/pagesHome/StockUplistScandetails'
import { reactive, ref, toRefs, inject } from "vue";
import utils from '../../../utils/utils';
import utils from '@/utils/utils';
const util = (inject('utils') as any)
let details = reactive<detailType>({
dataList: [],
@ -134,6 +135,10 @@
})
const tiplists = ref(null)
onLoad((op) => {
// #ifdef APP
utils.ttsspke('请按件备货')
// #endif
details.stockArticleId = op.stockArticleId
details.status = op.status
details.stockupId = op.stockupId
@ -145,7 +150,6 @@
details.pallet = op.pallet
details.orderCode = op.orderCode
details.typeService = op.typeService
initpage()
})
@ -157,6 +161,7 @@
scandata()
}
})
initpage()
})
onHide(() => {
@ -169,6 +174,15 @@
})
}
onPullDownRefresh(() => {
const timer = setTimeout(() => {
initpage()
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
function prinbut() {
let list = [], checklist = []
details.dataList.map((item, index) => {

92
pagesHome/pages/createAddServe/createAddServe.vue

@ -74,7 +74,7 @@
</template>
<!-- 零担 -->
<template v-else>
<view>总数{{item.quantity}}</view>
<view>总数{{item.maxQuantity}}</view>
</template>
</view>
<template v-if="Number(item.conditions) === 3">
@ -102,7 +102,7 @@
<!-- 零担 -->
<template v-else>
<view style="display: flex;">
<view></view>
<view></view>
<input type="number" v-model="item.zeroQuantity" @input="inputNum(item)">
</view>
</template>
@ -116,6 +116,7 @@
</template>
</view>
</scroll-view>
<!-- 提交增值服务 -->
<view class="submitqrs" @click="submitpackge">确定</view>
<tiplist ref="tiplists"></tiplist>
<saomiao2></saomiao2>
@ -159,9 +160,10 @@
scancode: '',
deliveryId: '',
editId: '',
addvalueType: ''
addvalueType: '',
addvalueDetailId: ''
})
onLoad(async (op) => {
onLoad((op) => {
details.reservationId = op.reservationId
details.deliveryId = op.deliveryId
details.editId = op.editId
@ -170,15 +172,13 @@
details.typestate = Number(details.addvalueType)
}
// details.reservationId='1704046446615171074'
await getallpack()
init()
})
function goorderdetail(item) {
uni.navigateTo({
url: '/pagesHome/pages/orderDetails/orderDetails?orderCode=' + item.orderCode
})
}
onShow(() => {
onShow(async () => {
uni.$on('scancodedate', function (code) {
if (code) {
// console.log(code);
@ -186,6 +186,12 @@
scandata()
}
})
// id
if (details.editId) {
await getallpack()
await init()
}
else await getallpack()
})
onHide(() => {
uni.$off('scancodedate')
@ -201,6 +207,9 @@
let res = await addvalueeditAddvalueInfo(data)
console.log(res);
console.log('details.allpack :>> ', details.allpack);
if (res.data.addvalueDetailId) {
details.addvalueDetailId = res.data.addvalueDetailId
}
if (res.data.addvalueId) {
details.checkserveindex = Number(res.data.addvalueId) - 1
}
@ -212,13 +221,12 @@
details.distance = res.data.distance
}
if (res.data.isAll === 1) {
console.log('222 :>> ', 222);
details.typestate = 1
} else {
console.log('111 :>> ', 111);
details.typestate = 2
details.scanpack = res.data.packageEntityList
console.log('details.scanpack :>> ', details.scanpack);
details.scanpack.forEach(val => val.zeroQuantity = val.quantity)
}
}
async function scandata(isManual ?: boolean) {
@ -281,11 +289,59 @@
}
async function submitpackge() {
if (details.editId) {
let response = null
//
if (details.editId) response = await handleEditSubmit()
//
else response = await handleNewSubmit()
console.log('res >>', response);
if (response.code !== 200) return
//
uni.navigateBack()
}
/**
* 新增提交
*/
async function handleNewSubmit() {
if ((details.checkserve == 2 || details.checkserve == 3) && !details.distance) {
uni.showToast({
title: '请输入距离',
icon: 'none'
})
return
} else if (details.checkserve == 1 && !details.floor) {
uni.showToast({
title: '请输入楼层数',
icon: 'none'
})
return
}
let data = {
addvalueType: details.checkserve,
floolNum: details.checkserve == 1 ? details.floor : '',
distance: details.checkserve != 1 ? details.distance : '',
num: details.allpack.length,
reservationId: details.reservationId,
packageEntityList: details.allpack,
}
// --
if (details.typestate == 2) {
data.packageEntityList = details.scanpack
} else {
data.packageEntityList.forEach(val => {
if (Number(val.conditions) === 3) {
val.zeroQuantity = val.maxQuantity
val.quantity = val.maxQuantity
}
})
}
let response = await addvaluesaveAddvalueInfo(data)
return response
}
/**
* 修改提交
*/
async function handleEditSubmit() {
if ((details.checkserve == 2 || details.checkserve == 3) && !details.distance) {
uni.showToast({
title: '请输入距离',
@ -306,6 +362,7 @@
num: details.allpack.length,
reservationId: details.reservationId,
packageEntityList: details.allpack,
addvalueDetailId: details.addvalueDetailId
}
// --
if (details.typestate == 2) {
@ -313,11 +370,8 @@
} else {
data.packageEntityList.forEach(val => val.zeroQuantity = val.quantity)
}
let response = await addvaluesaveAddvalueInfo(data)
console.log(response);
if (response.code !== 200) return
//
uni.navigateBack()
const response = await addvalueupdateAddvalueInfo(data)
return response
}
function showlist() {
let list = []
@ -384,8 +438,10 @@
console.log('item :>> ', item);
let _value = parseInt(item.zeroQuantity)
if (_value < 0) _value = 0
else if (_value > item.quantity) _value = item.quantity
else if (_value > item.maxQuantity) _value = item.maxQuantity
else if (_value !== _value) _value = 0
item.zeroQuantity = _value
clearTimeout(timer)
}, 200)
}
const {

123
pagesHome/pages/createTask/createTask.vue

@ -1,8 +1,7 @@
<template>
<!-- <u-navbar title="离线扫描" placeholder border=true :autoBack="true" leftIconSize='35'></u-navbar> -->
<u-navbar title="离线扫描"
bgColor='#D3832A' leftIconColor='#ffffff'
titleStyle='color:#ffffff' placeholder :autoBack="true" leftIconSize='35'></u-navbar>
<u-navbar title="离线扫描" bgColor='#D3832A' leftIconColor='#ffffff' titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<scroll-view scroll-y="true" class="scview">
<view class="maxbx">
<view class="item" v-for="(item,index) in details.scandate">
@ -34,16 +33,19 @@
let details = reactive({
taskname: '',
scandate: [],
editindex:''
editindex: ''
})
const tiplists = ref(null)
const tip = ref(null)
onLoad((op) => {
details.taskname = op.name
details.editindex = op.editindex
if(details.editindex){
details.scandate=uni.getStorageSync('HistoryDate')[details.editindex]['numberarr']
if (details.editindex) {
details.scandate = uni.getStorageSync('HistoryDate')[details.editindex]['numberarr']
}
})
onShow(() => {
uni.$on('scancodedate', function (code) {
if (code) {
console.log(code);
@ -51,92 +53,97 @@
}
})
})
function inputnumb(){
onHide(() => {
uni.$off('scancodedate')
})
function inputnumb() {
tiplists.value.setdetails({
tipstate:1,
title:'请输入包件码',
placeholder:'请输入包件码',
inputtext:'',
isshow:true,
success:(detai)=>{
tipstate: 1,
title: '请输入包件码',
placeholder: '请输入包件码',
inputtext: '',
isshow: true,
success: (detai) => {
details.scandate.push(detai.inputtext)
tiplists.value.setdetails({isshow:false})
tiplists.value.setdetails({ isshow: false })
},
cancel:()=>{
tiplists.value.setdetails({isshow:false})
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close:()=>{
tiplists.value.setdetails({isshow:false})
close: () => {
tiplists.value.setdetails({ isshow: false })
},
})
}
function submitsave(){
if(details.scandate.length==0){
function submitsave() {
if (details.scandate.length == 0) {
uni.showToast({
title:'请先扫描包件码再进行保存',
duration:1500,
icon:'none'
title: '请先扫描包件码再进行保存',
duration: 1500,
icon: 'none'
})
return
}
if(!details.editindex){
let HistoryDatearr=uni.getStorageSync('HistoryDate')
if(HistoryDatearr){
if (!details.editindex) {
let HistoryDatearr = uni.getStorageSync('HistoryDate')
if (HistoryDatearr) {
HistoryDatearr.push({
name:details.taskname,
numberarr:details.scandate,
name: details.taskname,
numberarr: details.scandate,
})
}else{
HistoryDatearr=[{
name:details.taskname,
numberarr:details.scandate,
} else {
HistoryDatearr = [{
name: details.taskname,
numberarr: details.scandate,
}]
}
uni.setStorageSync('HistoryDate',HistoryDatearr)
}else{
let HistoryDatearr=uni.getStorageSync('HistoryDate')
HistoryDatearr.splice(Number(details.editindex),1,{
name:details.taskname,
numberarr:details.scandate,
uni.setStorageSync('HistoryDate', HistoryDatearr)
} else {
let HistoryDatearr = uni.getStorageSync('HistoryDate')
HistoryDatearr.splice(Number(details.editindex), 1, {
name: details.taskname,
numberarr: details.scandate,
})
uni.setStorageSync('HistoryDate',HistoryDatearr)
uni.setStorageSync('HistoryDate', HistoryDatearr)
}
uni.showToast({
title:'保存成功',
duration:1500,
icon:'none'
title: '保存成功',
duration: 1500,
icon: 'none'
})
setTimeout(()=>{
const timer = setTimeout(() => {
uni.navigateBack()
},1500)
clearTimeout(timer)
}, 1500)
}
function remove(index:number){
function remove(index : number) {
tip.value.setdetails({
content:'确认删除?',
isshow:true,
confirmTxt:'删除',
success:()=>{
details.scandate.splice(index,1)
tip.value.setdetails({isshow:false})
content: '确认删除?',
isshow: true,
confirmTxt: '删除',
success: () => {
details.scandate.splice(index, 1)
tip.value.setdetails({ isshow: false })
},
cancel:()=>{
tip.value.setdetails({isshow:false})
cancel: () => {
tip.value.setdetails({ isshow: false })
},
close:()=>{
tip.value.setdetails({isshow:false})
close: () => {
tip.value.setdetails({ isshow: false })
},
})
}
</script>
<style lang="scss">
.buts{
.buts {
width: 100%;
display: flex;
align-items: center;
justify-content: space-around;
margin-top: 30upx;
>view{
>view {
width: 320upx;
height: 88upx;
background: #D3832A;
@ -149,6 +156,7 @@
justify-content: center;
}
}
.maxbx {
display: flex;
flex-direction: column;
@ -168,6 +176,7 @@
box-shadow: 0upx 1upx 10upx 0upx #e2e2e3;
margin-top: 30upx;
font-size: 28upx;
>.but {
display: flex;
align-items: center;

4
pagesHome/pages/inventoryenter/inventoryenter.vue

@ -194,9 +194,11 @@
details.trayCode = op.trayCode
details.trayType = op.trayType
details.pagety = op.type
initpage()
// initmarlist()
})
onShow(() => {
initpage()
})
function stop() {
}

2
pagesHome/pages/lnventorysortinglist/lnventorysortinglist.vue

@ -159,8 +159,10 @@
title: '已经到底了',
icon: 'success'
})
clearTimeout(antiShake)
return option.isEnd = true
}
clearTimeout(antiShake)
}, 1000)
} catch (err) {
//TODO handle the exception

2
pagesHome/pages/orderDetails/orderDetails.vue

@ -157,6 +157,8 @@
onLoad((op) => {
details.orderCode = op.orderCode
console.log('details.orderCode', details.orderCode);
})
onShow(() => {
initpage()
})
async function initpage() {

4
pagesHome/pages/orderInquiry/orderInquiry.vue

@ -234,12 +234,13 @@
})
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
dataInfo.value = {}
scancode.value = ''
packageList.value = []
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
@ -399,6 +400,7 @@
if (code === 200) {
distributionOrderList.value = data
}
clearTimeout(timer)
}, 1000)
})
</script>

3
pagesHome/pages/pickingScan/pickingScan.vue

@ -146,8 +146,9 @@
onPullDownRefresh(() => {
init()
setTimeout(() => {
const timer = setTimeout(() => {
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
function init() {

3
pagesHome/pages/scansorting/scansorting.vue

@ -169,8 +169,10 @@
title: '已经到底了',
icon: 'success'
})
clearTimeout(antiShake)
return option.isEnd = true
}
clearTimeout(antiShake)
}, 1000)
} catch (err) {
//TODO handle the exception
@ -198,6 +200,7 @@
onShow(() => {
// init()
uni.$on('scancodedate', function (code) {
console.log('code :>> ', code);
if (code) {
console.log(code);
details.scancode = code

361
pagesHome/pages/setbarcode/setbarcode.vue

@ -1,25 +1,30 @@
<template>
<!-- <u-navbar title="配置包条码" placeholder border=true :autoBack="true" leftIconSize='35'></u-navbar> -->
<u-navbar title="配置包条码"
bgColor='#D3832A' leftIconColor='#ffffff'
titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<u-navbar title="配置包条码" bgColor='#D3832A' leftIconColor='#ffffff' titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<view class="head">
<view class="type1">
<view>物品<view style="color: #092C4D;">{{items.materialName}}</view></view>
<view>物品<view style="color: #092C4D;">{{items.materialName}}</view>
</view>
</view>
<view class="type1">
<view>货位<view style="color: #092C4D;">{{orderpackgedetails.warehouseArea}}</view></view>
<view>SKU<view style="color: #092C4D;">{{items.sku}}</view></view>
<view>货位<view style="color: #092C4D;">{{orderpackgedetails.warehouseArea}}</view>
</view>
<view>SKU<view style="color: #092C4D;">{{items.sku}}</view>
</view>
</view>
<view class="type1">
<view>规格<view style="color: #092C4D;">{{items.cargoNorms}}</view></view>
<view>单位<view style="color: #092C4D;">{{items.cargoUnit}}</view></view>
<view>规格<view style="color: #092C4D;">{{items.cargoNorms}}</view>
</view>
<view>单位<view style="color: #092C4D;">{{items.cargoUnit}}</view>
</view>
</view>
<view class="type1">
<view>计划数量<view style="color: #092C4D;">{{items.planNum}}</view></view>
<view>已扫数量<view style="color: #092C4D;">{{codelist.length}}</view></view>
<view>计划数量<view style="color: #092C4D;">{{items.planNum}}</view>
</view>
<view>已扫数量<view style="color: #092C4D;">{{codelist.length}}</view>
</view>
</view>
</view>
<view class="butsbx">
@ -52,187 +57,193 @@
onHide,
onUnload
} from '@dcloudio/uni-app'
import {
import {
distributionStockupstockupStockListPackageCode,
distributionStockupstockupScan,
distributionStockuporderInfo
} from '@/api/user.js'
import { detailType } from '@/interfaces/pagesHome/setbarcode'
import { reactive, ref, toRefs,inject } from "vue";
const utils=inject('utils') as any
let details=reactive<detailType>({
items:{},
reservationId:'',
codelist:[],
printlist:[],
packageNum:0,
goodsAreaName:'',
allocationId:'',
stockupId:'',
stockPrint:1,
customer:'',
deliveryAddress:'',
completeStact:false,
orderpackgedetails:{}
import { reactive, ref, toRefs, inject } from "vue";
const utils = inject('utils') as any
let details = reactive<detailType>({
items: {},
reservationId: '',
codelist: [],
printlist: [],
packageNum: 0,
goodsAreaName: '',
allocationId: '',
stockupId: '',
stockPrint: 1,
customer: '',
deliveryAddress: '',
completeStact: false,
orderpackgedetails: {}
})
const tips=ref(null)
const tips = ref(null)
// const tiplists=ref(null)
onLoad((op)=>{
details.stockupId=op.stockupId
details.items=JSON.parse(op.item)
details.reservationId=op.reservationId
details.goodsAreaName=op.goodsAreaName
details.allocationId=op.allocationId
if(op.completeStact=='true'){
details.completeStact=true
onLoad((op) => {
details.stockupId = op.stockupId
details.items = JSON.parse(op.item)
details.reservationId = op.reservationId
details.goodsAreaName = op.goodsAreaName
details.allocationId = op.allocationId
if (op.completeStact == 'true') {
details.completeStact = true
}
// scandata('1231')
uni.$on('scancodedate', function(code) {
initpage()
})
onShow(() => {
uni.$on('scancodedate', function (code) {
if (code) {
console.log(code);
scandata(code)
}
})
initpage()
})
function showsdqs(){
onHide(() => {
uni.$off('scancodedate')
})
function showsdqs() {
tips.value.setdetails({
isshow:true,
tipstate:1,
title:'请输入扫描的码',
placeholder:'请输入扫描的码',
inputtext:'',
success:(detail)=>{
isshow: true,
tipstate: 1,
title: '请输入扫描的码',
placeholder: '请输入扫描的码',
inputtext: '',
success: (detail) => {
// details.scancode=
scandata(detail.inputtext)
tips.value.setdetails({isshow:false})
tips.value.setdetails({ isshow: false })
},
cancel:()=>{
tips.value.setdetails({isshow:false})
cancel: () => {
tips.value.setdetails({ isshow: false })
},
close:()=>{
tips.value.setdetails({isshow:false})
close: () => {
tips.value.setdetails({ isshow: false })
}
})
}
function setstockPrint(values){
details.stockPrint=values
if(values==1){
function setstockPrint(values) {
details.stockPrint = values
if (values == 1) {
utils.ttsspke('请扫描原有包条码')
}else{
} else {
utils.ttsspke('请扫描打印的包条码')
}
}
async function initpage(){
let data={
orderStatus:2,
reservationId:details.reservationId,
stockListId:details.items.stockListId,
stockupId:details.stockupId,
allocationId:details.allocationId,
status:details.completeStact?1:0
async function initpage() {
let data = {
orderStatus: 2,
reservationId: details.reservationId,
stockListId: details.items.stockListId,
stockupId: details.stockupId,
allocationId: details.allocationId,
status: details.completeStact ? 1 : 0
}
let response=await distributionStockuporderInfo(data)
details.codelist=response.data.stockList
details.customer=response.data.customer
details.deliveryAddress=response.data.deliveryAddress
details.orderpackgedetails=response.data
let response = await distributionStockuporderInfo(data)
details.codelist = response.data.stockList
details.customer = response.data.customer
details.deliveryAddress = response.data.deliveryAddress
details.orderpackgedetails = response.data
}
function showmd(){
function showmd() {
tips.value.setdetails({
list:details.printlist,
isshow:true,
tipstate:1,
placeholder:'请输入需要生成的包条码数量',
success:(deta)=>{
list: details.printlist,
isshow: true,
tipstate: 1,
placeholder: '请输入需要生成的包条码数量',
success: (deta) => {
console.log(deta);
details.packageNum=deta.inputtext
if(Number(details.packageNum)>Number(details.items.planNum)){
details.packageNum = deta.inputtext
if (Number(details.packageNum) > Number(details.items.planNum)) {
uni.showToast({
title:'不能大于计划数量,请重新输入',
icon:'none'
title: '不能大于计划数量,请重新输入',
icon: 'none'
})
tips.value.setdetails({inputtext:''})
tips.value.setdetails({ inputtext: '' })
return
}
ctokListpackage()
},
cancel:(details)=>{
tips.value.setdetails({isshow:false})
cancel: (details) => {
tips.value.setdetails({ isshow: false })
},
close:(details)=>{
tips.value.setdetails({isshow:false})
close: (details) => {
tips.value.setdetails({ isshow: false })
}
})
}
async function ctokListpackage(){
let data={
reservationId:details.reservationId,
stockListId:details.items.stockListId,
packageNum:details.packageNum,
allocationId:details.allocationId,
status:details.completeStact?1:0
async function ctokListpackage() {
let data = {
reservationId: details.reservationId,
stockListId: details.items.stockListId,
packageNum: details.packageNum,
allocationId: details.allocationId,
status: details.completeStact ? 1 : 0
}
let response=await distributionStockupstockupStockListPackageCode(data)
let response = await distributionStockupstockupStockListPackageCode(data)
console.log(response);
details.printlist=response.data
let checklist=[]
response.data.map((item,index)=>{
details.printlist = response.data
let checklist = []
response.data.map((item, index) => {
checklist.push(index)
})
tips.value.setdetails({
title:'请选择要打印的包条',
tipstate:2,
list:response.data,
checklist:checklist,
inputtext:'',
confirmTxt:'打印',
success:(deta)=>{
if(deta.checklist.length==0){
title: '请选择要打印的包条',
tipstate: 2,
list: response.data,
checklist: checklist,
inputtext: '',
confirmTxt: '打印',
success: (deta) => {
if (deta.checklist.length == 0) {
uni.showToast({
title:'请先选择需要打印的包条码',
icon:'none'
title: '请先选择需要打印的包条码',
icon: 'none'
})
return
}
deta.checklist.map(item=>{
deta.checklist.map(item => {
print(details.printlist[item])
})
// scandata(response.data[0])
tips.value.setdetails({isshow:false})
tips.value.setdetails({ isshow: false })
},
cancel:(details)=>{
tips.value.setdetails({isshow:false})
cancel: (details) => {
tips.value.setdetails({ isshow: false })
},
close:(details)=>{
tips.value.setdetails({isshow:false})
close: (details) => {
tips.value.setdetails({ isshow: false })
}
})
}
function print(item:string){
function print(item : string) {
// #ifdef APP
// const util=(inject('utils') as any)
let text='! 0 200 200 500 1\r\n'
text+='SETBOLD 2\r\n'
text+=`T 56 0 0 0 ${item}\r\n`
text+='LINE 0 50 420 50 3\r\n'
text+=`T 55 0 0 60 客户\r\n`
text+='LINE 40 50 40 110 3\r\n'
text+=`T 55 0 50 60 ${details.customer}\r\n`
text+='LINE 40 80 420 80 3\r\n'
text+=`T 55 0 50 90 ${details.deliveryAddress}\r\n`
text+='LINE 0 110 420 110 3\r\n'
text+=`T 55 0 0 120 物料\r\n`
text+='LINE 40 110 40 140 3\r\n'
text+=`T 55 0 60 120 ${details.items.materialName}\r\n`
text+='LINE 0 140 420 140 3\r\n'
text+='B QR 150 150 M 2 U 4\r\n'
text+=`MA,${item}\r\n`
text+='ENDQR\r\n'
text+='PRINT\r\n'
let text = '! 0 200 200 330 1\r\n'
text += 'SETBOLD 2\r\n'
text += `T 56 0 0 0 ${item}\r\n`
text += 'LINE 0 50 420 50 3\r\n'
text += `T 55 0 0 60 客户\r\n`
text += 'LINE 40 50 40 110 3\r\n'
text += `T 55 0 50 60 ${details.customer}\r\n`
text += 'LINE 40 80 420 80 3\r\n'
text += `T 55 0 50 90 ${details.deliveryAddress}\r\n`
text += 'LINE 0 110 420 110 3\r\n'
text += `T 55 0 0 120 物料\r\n`
text += 'LINE 40 110 40 140 3\r\n'
text += `T 55 0 60 120 ${details.items.materialName}\r\n`
text += 'LINE 0 140 420 140 3\r\n'
text += 'B QR 150 150 M 2 U 4\r\n'
text += `MA,${item}\r\n`
text += 'ENDQR\r\n'
text += 'PRINT\r\n'
// let text='! 0 200 200 500 1\r\n'
// text+='SETBOLD 2\r\n'
// text+='B QR 80 40 M 2 U 8\r\n'
@ -240,42 +251,41 @@
// text+='ENDQR\r\n'
// text+=`T 56 0 15 280 ${item}\r\n`
// text+='PRINT\r\n'
let sylist=utils.initbl()
console.log(sylist);
sylist.map(item=>{
let sylist = utils.initbl()
console.log(sylist);
sylist.map(item => {
console.log(item);
if(item.uuids){
utils.getbl(item,text)
if (item.uuids) {
utils.getbl(item, text)
}
})
// #endif
}
async function scandata(code){
let data={
scanType:2,
stockListId:details.items.stockListId,
packetBarCode:code,
stockupArea:details.goodsAreaName,
reservationId:details.reservationId,
stockupId:details.stockupId,
stockPrint:details.stockPrint,
allocationId:details.allocationId,
status:details.completeStact?1:0,
id:details.orderpackgedetails.stockListId
async function scandata(code) {
let data = {
scanType: 2,
stockListId: details.items.stockListId,
packetBarCode: code,
stockupArea: details.goodsAreaName,
reservationId: details.reservationId,
stockupId: details.stockupId,
stockPrint: details.stockPrint,
allocationId: details.allocationId,
status: details.completeStact ? 1 : 0,
id: details.orderpackgedetails.stockListId
}
// utils.ttsspke('stockPrint'+details.stockPrint)
let res=await distributionStockupstockupScan(data)
let res = await distributionStockupstockupScan(data)
console.log(res);
if(res.code==200){
if (res.code == 200) {
initpage()
}
}
const { orderpackgedetails,items,codelist,printlist }=toRefs(details)
const { orderpackgedetails, items, codelist, printlist } = toRefs(details)
</script>
<style lang="scss">
.scrollv{
.scrollv {
width: 686upx;
height: 60vh;
// padding: 10upx;
@ -286,12 +296,14 @@
padding: 20upx;
box-sizing: border-box;
border-radius: 10upx;
.mabxs{
.mabxs {
display: flex;
flex-direction: column;
align-items: center;
padding-top: 5upx;
.ite{
.ite {
width: 96%;
// width: 100%;
display: flex;
@ -304,19 +316,23 @@
margin-bottom: 20upx;
padding-bottom: 10upx;
font-size: 26upx;
&:nth-last-child(1){
&:nth-last-child(1) {
margin-bottom: 5upx;
}
>view{
>view {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
margin-bottom: 20upx;
&:nth-last-child(1){
&:nth-last-child(1) {
margin-bottom: none !important;
}
>view{
>view {
// width: 50%;
// flex: 1;
font-size: 26upx;
@ -327,12 +343,14 @@
}
}
}
.butsbx{
.butsbx {
display: flex;
align-items: center;
justify-content: space-around;
margin-top: 25upx;
>view{
>view {
width: 204upx;
height: 64upx;
background: #FFFFFF;
@ -344,12 +362,14 @@
justify-content: center;
border: 2upx solid #D3832A;
color: #D3832A;
&:nth-of-type(2){
&:nth-of-type(2) {
// margin-left: 10upx;
}
}
}
.head{
.head {
display: flex;
flex-direction: column;
align-items: center;
@ -359,7 +379,8 @@
box-sizing: border-box;
// border-bottom: 1upx solid #ececec;
background-color: #ffffff;
>.type1{
>.type1 {
width: 100%;
// height: 60upx;
display: flex;
@ -369,14 +390,16 @@
font-weight: 400;
color: #90A0AF;
margin-bottom: 10upx;
>view{
>view {
flex: 1;
display: flex;
align-items: flex-start;
>view:nth-of-type(1){
>view:nth-of-type(1) {
flex: 1;
}
}
}
}
</style>
</style>

62
pagesHome/pages/signOrderScan/signOrderScan.vue

@ -191,7 +191,10 @@
return num
})
const ordNub = computed(() => {
return details.datalist.length
let num = 0
num += details.orderArr.length
num += details.zeroArr.length
return num
})
const signNub = computed(() => {
let num = 0
@ -202,22 +205,27 @@
})
return num
})
// watchEffect(() => {
// if (signNub.value != 0) {
// console.log(signNub.value + '')
// utils.ttsspke(signNub.value + '')
// }
// })
onLoad(async (op) => {
try {
// #ifdef APP
utils.ttsspke('请扫描包条码')
// #endif
onLoad((op) => {
// #ifdef APP
utils.ttsspke('请扫描包条码')
// #endif
//
details.items = JSON.parse(op.item)
details.id = JSON.parse(op.item).id
details.deliveryId = op.deliveryId
//
details.items = JSON.parse(op.item)
details.id = JSON.parse(op.item).id
details.deliveryId = op.deliveryId
})
onShow(async () => {
try {
uni.$on('scancodedate', function (code) {
if (code) {
console.log(code);
details.scancode = code
scandata()
}
})
//
let data = {
@ -239,7 +247,7 @@
})
//
let response1 = await signforinventory(data)
details.stockArr = response1.data.records || []
if (response1.data) details.stockArr = response1.data.records || []
console.log('response :>> ', response);
console.log('response1 :>> ', response1);
@ -255,16 +263,6 @@
}
})
onShow(() => {
uni.$on('scancodedate', function (code) {
if (code) {
console.log(code);
details.scancode = code
scandata()
}
})
})
onHide(() => {
uni.$off('scancodedate')
})
@ -276,10 +274,11 @@
//
onPullDownRefresh(() => {
setTimeout(() => {
const timer = setTimeout(() => {
initpage()
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
async function scandata() {
@ -289,12 +288,13 @@
reservationId: details.id,
}
//
if (details.orderStatus == 1) {
if (Number(details.orderStatus) == 1) {
let response = await signforsignfor(data)
console.log(response);
if (response.code === 200) {
// const num = details.datalist.reduce((curr, item) => curr + item.signforNub, 0)
// #ifdef APP
utils.ttsspke(signNub.value + '件')
// utils.ttsspke(num + '')
// #endif
}
else if (response.code == 3006) {
@ -328,7 +328,7 @@
icon: 'none'
})
}
} else if (details.orderStatus == 2) {
} else if (Number(details.orderStatus) === 3) {
// data.barcode="23072405915-2"
let response = await signforsignforIn(data)
console.log(response);

2
pagesHome/pages/signinScan/signinScan.vue

@ -81,7 +81,7 @@
<view class="golink">{{ item?.orderNumber||0 }}</view>
</view>
<view>
<view>配送件数</view>
<view>计划件数</view>
<view>{{ item?.deliveryNumber||0 }}</view>
</view>
<view>

24
pagesTask/pages/checkTaskList/checkTaskList.vue

@ -214,21 +214,10 @@
details.id = data.id
details.warehouseId = data.warehouseId
details.marketName = data.marketName
// ,
if (details.pageType === 3) {
infodata.value = data
}
if (details.pageType === 1) details.isscan = false
//
initPage()
if (details.pageType === 1) return
else if (details.pageType === 2) return utils.ttsspke('请扫描库位码')
else if (details.pageType === 3) return utils.ttsspke('请扫描包条码或输入订单自编码')
else if (details.pageType === 4) return utils.ttsspke('请扫描托盘')
})
//
@ -241,6 +230,16 @@
scandata()
}
})
// ,
if (details.pageType === 1) details.isscan = false
//
initPage()
if (details.pageType === 1) return
else if (details.pageType === 2) return utils.ttsspke('请扫描库位码')
else if (details.pageType === 3) return utils.ttsspke('请扫描包条码或输入订单自编码')
else if (details.pageType === 4) return utils.ttsspke('请扫描托盘')
})
//
@ -284,9 +283,10 @@
details.isEnd = false
//
details.renderList = []
setTimeout(async () => {
const timer = setTimeout(async () => {
const res = await initPage()
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})

2
pagesTask/pages/contracts/contracts.vue

@ -396,11 +396,11 @@
infos.value = info
details.marketName = JSON.parse(info.marketName)
console.log(info, 'infos==========');
Tjinfo()//
})
//
onShow(() => {
Tjinfo()//
uni.$on('scancodedate', function (code) {
if (code) {
details.scancode = code

3
pagesTask/pages/dynamicCheck/dynamicCheck.vue

@ -143,9 +143,10 @@
const res = await initPage()
// if (res) {
setTimeout(() => {
const timer = setTimeout(() => {
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
// }
})

5
pagesTask/pages/dynamicCheckDetails/dynamicCheckDetails.vue

@ -145,8 +145,7 @@
details.title = data.title
details.pageType = pageType
//
initPage()
})
//
@ -158,6 +157,8 @@
scandata()
}
})
//
initPage()
})
//

7
pagesTask/pages/storageLocationCheckDetails/storageLocationCheckDetails.vue

@ -384,9 +384,7 @@
details.questId = info.questId
console.log('info :>> ', info.marketName);
details.marketName = JSON.parse(info.marketName)
initArticle()
initZero()
initStock()
})
//
@ -399,6 +397,9 @@
scandata()
}
})
initArticle()
initZero()
initStock()
})
//

5
pagesTask/pages/trayCheckDetails/trayCheckDetails.vue

@ -305,8 +305,7 @@
//
details.holdBackFirstPost = details.pageInfo.holdBackFirstPost
console.log('pageInfo :>> ', details.pageInfo);
if (details.holdBackFirstPost) return
initPage()
})
//
@ -319,6 +318,8 @@
scandata()
}
})
if (details.holdBackFirstPost) return
initPage()
})
//

64
pagesUser/pages/systemSettings/systemSettings.vue

@ -0,0 +1,64 @@
<template>
<u-navbar title="系统设置" bgColor='#D3832A' leftIconColor='#ffffff' titleStyle='color:#ffffff' placeholder
:autoBack="true" leftIconSize='35'></u-navbar>
<view class="uni-list">
<!-- <view class="uni-list-cell" style="display: flex;">
<view class="uni-list-cell-left">
扫描版本选择
</view>
<view class="uni-list-cell-db">
<picker @change="bindPickerChange" :value="pda.pdaChooseIndex"
:range="pda.padVersionList.map(val => val.title)">
<view class="uni-input">{{pda.padVersionList.map(val => val.title)[pda.pdaChooseIndex]}}</view>
</picker>
</view>
</view> -->
</view>
</template>
<script lang="ts" setup>
import {
onShow,
onLoad,
onHide,
onPullDownRefresh
} from '@dcloudio/uni-app'
import { reactive, ref, toRefs } from 'vue';
import usePdaStore from '../../../store/uaePdaStore';
const { HANDLE_PDABROADCAS } = usePdaStore()
onPullDownRefresh(() => {
const timer = setTimeout(() => {
//
uni.stopPullDownRefresh()
clearTimeout(timer)
}, 1000)
})
const details = reactive({
pda: {
// pda
padVersionList: [
{ title: '新版本', value: 'newPdaVersion' },
{ title: '老版本', value: 'oldPdaVersion' },
],
//
pdaChooseIndex: 0
}
})
const array = reactive(['中国', '美国', '巴西', '日本'])
const index = ref(0)
function bindPickerChange(e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
pda.value.pdaChooseIndex = e.detail.value
HANDLE_PDABROADCAS(details.pda.padVersionList[details.pda.pdaChooseIndex].value)
}
const { pda } = toRefs(details)
</script>
<style lang="scss" scoped>
</style>

52
store/uaePdaStore.js

@ -0,0 +1,52 @@
import {
defineStore
} from 'pinia';
import {
reactive,
ref,
shallowRef
} from 'vue';
export const usePdaStore = defineStore('usePdaStore', () => {
// pda广播标签和广播动作数组
const pdaBroadcastList = reactive({
'newPdaVersion': {
title: '新版本',
// 广播动作
broadcastAction: 'com.android.server.scannerservice.broadcast',
// 广播标签
broadcastTag: 'scannerdata'
},
'oldPdaVersion': {
title: '老版本',
// 广播动作
broadcastAction: 'android.intent.ACTION_DECODE_DATA',
// 广播标签
broadcastTag: 'barcode_string'
}
})
const pdaBroadcas = reactive({
broadcastAction: 'com.android.server.scannerservice.broadcast',
// 广播标签
broadcastTag: 'scannerdata'
})
/**
* 选择Pda的广播标签和广播动作
*/
const HANDLE_PDABROADCAS = (choosePda) => {
pdaBroadcas.broadcastAction = pdaBroadcastList[choosePda].broadcastAction
pdaBroadcas.broadcastTag = pdaBroadcastList[choosePda].broadcastTag
console.log('pdaBroadcas :>> ', pdaBroadcas);
}
return {
pdaBroadcastList,
pdaBroadcas,
HANDLE_PDABROADCAS
}
})
// 暴露仓库实例
export default usePdaStore

5
uni_modules/fant-mini-plus/components/hd-collapse-item/INDEX.md

@ -82,11 +82,12 @@ const loading = useLoading() // loading
function beforeExpend(name, index) {
return new Promise((reslove, reject) => {
loading.showLoading({})
setTimeout(() => {
const timer = setTimeout(() => {
loading.hideLoading()
content2.value = '通过传入 `beforeExpend` 函数可以在打开面板前进行校验和处理,返回 true 表示允许打开,返回 false 表示禁止打开。支持返回 Promise 进行例如调用接口获取面板数据的操作。'
reslove(true)
}, 500)
clearTimeout(timer)
}, 500)
})
}
```

2
unpackage/dist/build/app-plus/pagesHome/pages/MergeTrayDetails/MergeTrayDetails.css vendored

File diff suppressed because one or more lines are too long

2
unpackage/dist/build/app-plus/pagesHome/pages/OrderSortingDetail/OrderSortingDetail.css vendored

File diff suppressed because one or more lines are too long

2
unpackage/dist/build/app-plus/pagesHome/pages/PeopleScanUp/PeopleScanUp.css vendored

File diff suppressed because one or more lines are too long

2
unpackage/dist/build/app-plus/pagesHome/pages/RemoveTray/RemoveTray.css vendored

File diff suppressed because one or more lines are too long

2
unpackage/dist/build/app-plus/pagesHome/pages/Retention/Retention.css vendored

@ -1 +1 @@
.u-status-bar[data-v-31491727]{width:100%}uni-view[data-v-5c79ae5e],uni-scroll-view[data-v-5c79ae5e],uni-swiper-item[data-v-5c79ae5e]{display:flex;flex-direction:column;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}@font-face{font-family:uicon-iconfont;src:url(https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf) format("truetype")}.u-icon[data-v-5c79ae5e]{display:flex;align-items:center}.u-icon--left[data-v-5c79ae5e]{flex-direction:row-reverse;align-items:center}.u-icon--right[data-v-5c79ae5e]{flex-direction:row;align-items:center}.u-icon--top[data-v-5c79ae5e]{flex-direction:column-reverse;justify-content:center}.u-icon--bottom[data-v-5c79ae5e]{flex-direction:column;justify-content:center}.u-icon__icon[data-v-5c79ae5e]{font-family:uicon-iconfont;position:relative;display:flex;flex-direction:row;align-items:center}.u-icon__icon--primary[data-v-5c79ae5e]{color:#3c9cff}.u-icon__icon--success[data-v-5c79ae5e]{color:#5ac725}.u-icon__icon--error[data-v-5c79ae5e]{color:#f56c6c}.u-icon__icon--warning[data-v-5c79ae5e]{color:#f9ae3d}.u-icon__icon--info[data-v-5c79ae5e]{color:#909399}.u-icon__img[data-v-5c79ae5e]{height:auto;will-change:transform}.u-icon__label[data-v-5c79ae5e]{line-height:1}uni-view[data-v-917ffc31],uni-scroll-view[data-v-917ffc31],uni-swiper-item[data-v-917ffc31]{display:flex;flex-direction:column;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}.u-navbar--fixed[data-v-917ffc31]{position:fixed;left:0;right:0;top:0;z-index:11}.u-navbar__content[data-v-917ffc31]{display:flex;flex-direction:row;align-items:center;height:44px;background-color:#9acafc;position:relative;justify-content:center}.u-navbar__content__left[data-v-917ffc31],.u-navbar__content__right[data-v-917ffc31]{padding:0 13px;position:absolute;top:0;bottom:0;display:flex;flex-direction:row;align-items:center}.u-navbar__content__left[data-v-917ffc31]{left:0}.u-navbar__content__left--hover[data-v-917ffc31]{opacity:.7}.u-navbar__content__left__text[data-v-917ffc31]{font-size:15px;margin-left:3px}.u-navbar__content__title[data-v-917ffc31]{text-align:center;font-size:16px;color:#303133}.u-navbar__content__right[data-v-917ffc31]{right:0}.u-navbar__content__right__text[data-v-917ffc31]{font-size:15px;margin-left:3px}.butys{display:flex;align-items:center;margin-top:.625rem;justify-content:space-around}.butys>.conf{width:10rem;height:3.125rem;border-radius:.625rem;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:400;color:#fff;background-color:#d3832a}.butys>.qut{width:10rem;height:3.125rem;border-radius:.625rem;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:400;color:#5a6875;background-color:#fff}.scvm{width:100%;height:74vh;margin-top:.625rem}.scvm .itembox{width:21.4375rem;border-radius:.625rem;padding:0 .625rem;box-sizing:border-box;background-color:#fff;margin:auto;margin-bottom:.625rem}.scvm .itembox>.topon1{display:flex;align-items:center;justify-content:space-between;padding:.625rem .3125rem;box-sizing:border-box;border-bottom:.125rem solid #EEEEEE}.scvm .itembox>.topon1>uni-view:nth-of-type(1){width:1.5625rem;height:1.5625rem;background:#178AF220;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:500;color:#178af2}.scvm .itembox>.topon1>uni-view:nth-of-type(2){display:flex;align-items:center}.scvm .itembox>.topon1>uni-view:nth-of-type(2)>uni-view{width:4.25rem;height:2rem;border-radius:.25rem;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:400;color:#90a0af;background-color:#f5f5f6;margin-right:.625rem}.scvm .itembox>.topon1>uni-view:nth-of-type(2) .xzc{background-color:#178af2!important;color:#fff!important}.scvm .itembox>.topon1>uni-view:nth-of-type(2) .xze{background-color:#f8544b!important;color:#fff!important}.scvm .itembox>.topon1>uni-view:nth-of-type(2)>uni-image{width:2rem;height:2rem}.scvm .itembox>.topon2{display:flex;align-items:center;justify-content:flex-start;padding:.625rem .3125rem;box-sizing:border-box;border-bottom:.125rem solid #EEEEEE}.scvm .itembox>.topon2>uni-image{width:2rem;height:2rem;margin-right:.625rem}.scvm .itembox>.topon2>uni-view{font-size:.875rem;font-weight:400;color:#020b18}.topbox{width:100%;padding:.625rem 1rem;box-sizing:border-box;background-color:#fff}.topbox>.scanbox{display:flex;align-items:center;width:21.4375rem;height:2.5rem;background:#F5F5F6;border-radius:.25rem;box-sizing:border-box;padding:.625rem .9375rem;font-size:.875rem;color:#020b18}.topbox>.scanbox>uni-image{width:1rem;height:1rem;margin-right:.375rem}.topbox>.scanbox>uni-input{font-size:.875rem}.topbox .viewboxs{display:flex;align-items:center;justify-content:space-between;margin-top:.625rem}.topbox .viewboxs>uni-view{font-size:.9375rem;font-weight:400;color:#020b18}.topbox .viewboxs .siz{font-size:.875rem}
.u-status-bar[data-v-31491727]{width:100%}uni-view[data-v-5c79ae5e],uni-scroll-view[data-v-5c79ae5e],uni-swiper-item[data-v-5c79ae5e]{display:flex;flex-direction:column;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}@font-face{font-family:uicon-iconfont;src:url(https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf) format("truetype")}.u-icon[data-v-5c79ae5e]{display:flex;align-items:center}.u-icon--left[data-v-5c79ae5e]{flex-direction:row-reverse;align-items:center}.u-icon--right[data-v-5c79ae5e]{flex-direction:row;align-items:center}.u-icon--top[data-v-5c79ae5e]{flex-direction:column-reverse;justify-content:center}.u-icon--bottom[data-v-5c79ae5e]{flex-direction:column;justify-content:center}.u-icon__icon[data-v-5c79ae5e]{font-family:uicon-iconfont;position:relative;display:flex;flex-direction:row;align-items:center}.u-icon__icon--primary[data-v-5c79ae5e]{color:#3c9cff}.u-icon__icon--success[data-v-5c79ae5e]{color:#5ac725}.u-icon__icon--error[data-v-5c79ae5e]{color:#f56c6c}.u-icon__icon--warning[data-v-5c79ae5e]{color:#f9ae3d}.u-icon__icon--info[data-v-5c79ae5e]{color:#909399}.u-icon__img[data-v-5c79ae5e]{height:auto;will-change:transform}.u-icon__label[data-v-5c79ae5e]{line-height:1}uni-view[data-v-917ffc31],uni-scroll-view[data-v-917ffc31],uni-swiper-item[data-v-917ffc31]{display:flex;flex-direction:column;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}.u-navbar--fixed[data-v-917ffc31]{position:fixed;left:0;right:0;top:0;z-index:11}.u-navbar__content[data-v-917ffc31]{display:flex;flex-direction:row;align-items:center;height:44px;background-color:#9acafc;position:relative;justify-content:center}.u-navbar__content__left[data-v-917ffc31],.u-navbar__content__right[data-v-917ffc31]{padding:0 13px;position:absolute;top:0;bottom:0;display:flex;flex-direction:row;align-items:center}.u-navbar__content__left[data-v-917ffc31]{left:0}.u-navbar__content__left--hover[data-v-917ffc31]{opacity:.7}.u-navbar__content__left__text[data-v-917ffc31]{font-size:15px;margin-left:3px}.u-navbar__content__title[data-v-917ffc31]{text-align:center;font-size:16px;color:#303133}.u-navbar__content__right[data-v-917ffc31]{right:0}.u-navbar__content__right__text[data-v-917ffc31]{font-size:15px;margin-left:3px}.butys{display:flex;align-items:center;margin-top:.625rem;justify-content:space-around}.butys>.conf{width:10rem;height:3.125rem;border-radius:.625rem;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:400;color:#fff;background-color:#d3832a}.butys>.qut{width:10rem;height:3.125rem;border-radius:.625rem;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:400;color:#5a6875;background-color:#fff}.scvm{width:100%;height:74vh;margin-top:.625rem}.scvm .itembox{width:21.4375rem;border-radius:.625rem;padding:0 .625rem;box-sizing:border-box;background-color:#fff;margin:auto;margin-bottom:.625rem}.scvm .itembox>.topon1{display:flex;align-items:center;justify-content:space-between;padding:.625rem .3125rem;box-sizing:border-box;border-bottom:.125rem solid #EEEEEE}.scvm .itembox>.topon1>uni-view:nth-of-type(1){width:1.5625rem;height:1.5625rem;background:#178AF220;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:500;color:#178af2}.scvm .itembox>.topon1>uni-view:nth-of-type(2){display:flex;align-items:center}.scvm .itembox>.topon1>uni-view:nth-of-type(2)>uni-view{width:4.25rem;height:2rem;border-radius:.25rem;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:400;color:#90a0af;background-color:#f5f5f6;margin-right:.625rem}.scvm .itembox>.topon1>uni-view:nth-of-type(2) .xzc{background-color:#178af2!important;color:#fff!important}.scvm .itembox>.topon1>uni-view:nth-of-type(2) .xze{background-color:#f8544b!important;color:#fff!important}.scvm .itembox>.topon1>uni-view:nth-of-type(2)>uni-image{width:1rem;height:1rem}.scvm .itembox>.topon2{display:flex;align-items:center;justify-content:flex-start;padding:.625rem .3125rem;box-sizing:border-box;border-bottom:.125rem solid #EEEEEE}.scvm .itembox>.topon2>uni-image{width:1rem;height:1rem;margin-right:.625rem}.scvm .itembox>.topon2>uni-view{font-size:.875rem;font-weight:400;color:#020b18}.topbox{width:100%;padding:.625rem 1rem;box-sizing:border-box;background-color:#fff}.topbox>.scanbox{display:flex;align-items:center;width:21.4375rem;height:2.5rem;background:#F5F5F6;border-radius:.25rem;box-sizing:border-box;padding:.625rem .9375rem;font-size:.875rem;color:#020b18}.topbox>.scanbox>uni-image{width:1rem;height:1rem;margin-right:.375rem}.topbox>.scanbox>uni-input{font-size:.875rem}.topbox .viewboxs{display:flex;align-items:center;justify-content:space-between;margin-top:.625rem}.topbox .viewboxs>uni-view{font-size:.9375rem;font-weight:400;color:#020b18}.topbox .viewboxs .siz{font-size:.875rem}

2
unpackage/dist/build/app-plus/pagesHome/pages/inventoryDetailList/inventoryDetailList.css vendored

File diff suppressed because one or more lines are too long

2
unpackage/dist/build/app-plus/pagesHome/pages/lnventorysortinglist/lnventorysortinglist.css vendored

File diff suppressed because one or more lines are too long

2
unpackage/dist/build/app-plus/pagesHome/pages/scansorting/scansorting.css vendored

File diff suppressed because one or more lines are too long

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

File diff suppressed because one or more lines are too long

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

File diff suppressed because it is too large Load Diff

3
unpackage/dist/dev/app-plus/app.css vendored

@ -896,12 +896,11 @@ body {
border-radius: 0.3125rem;
}
.inputNum[data-v-92b65ffd]{
.inputNum[data-v-92b65ffd] {
border: 0.03125rem solid #000;
padding-left: 0.3125rem;
border-radius: 0.15625rem;
}
/**
* 这里是uni-app内置的常用样式变量

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

@ -7,8 +7,8 @@
"id": "__UNI__EB22F37",
"name": "货无忧",
"version": {
"name": "1.0.16",
"code": 1016
"name": "1.0.17",
"code": 1017
},
"description": "",
"developer": {
@ -185,7 +185,7 @@
"uni-app": {
"control": "uni-v3",
"vueVersion": "3",
"compilerVersion": "3.8.12",
"compilerVersion": "3.95",
"nvueCompiler": "uni-app",
"renderer": "auto",
"nvue": {

33
unpackage/dist/dev/app-plus/pagesHome/pages/MergeTrayDetails/MergeTrayDetails.css vendored

@ -403,4 +403,37 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
}
.topbos > .srview > uni-view:nth-of-type(2) > uni-input {
flex: 1;
}
.tpbx {
display: flex;
align-items: center;
padding: 0.5625rem 0.75rem;
box-sizing: border-box;
border-bottom: 0.125rem solid #EEEEEE;
}
.tpbx > uni-image {
flex: none;
width: 1rem;
height: 1rem;
margin-right: 0.46875rem;
}
.tpbx > uni-view {
font-size: 0.875rem;
font-weight: 400;
color: #020B18;
}
.tpbx > uni-view .numb {
font-size: 0.875rem;
color: #178AF2;
}
.viewnum {
height: 3.125rem;
display: flex;
align-items: center;
justify-content: space-around;
}
.viewnum > uni-view {
font-size: 0.875rem;
font-weight: 400;
color: #020B18;
}

107
unpackage/dist/dev/app-plus/pagesHome/pages/RemoveTray/RemoveTray.css vendored

@ -225,11 +225,39 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.topbos {
.tabBar[data-v-8dd39525] {
margin-top: 0.3125rem;
padding: 0 0.9375rem;
display: flex;
}
.tabBar_item[data-v-8dd39525] {
flex: 1;
flex-basis: 0;
text-align: center;
line-height: 2.5rem;
background: #fff;
position: relative;
}
.tabBar_item[data-v-8dd39525]::after {
content: "";
display: block;
position: absolute;
height: 0.125rem;
background: #d3832a;
width: 0;
left: 50%;
bottom: 0;
transition: all 0.5s;
}
.tabBar_item.active[data-v-8dd39525]::after {
left: 0;
width: 100%;
}
.topbos[data-v-8dd39525] {
display: flex;
flex-direction: column;
}
.topbos > .srview {
.topbos > .srview[data-v-8dd39525] {
display: flex;
align-items: center;
padding: 0.8125rem 1rem;
@ -237,7 +265,7 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
background-color: #ffffff;
margin-bottom: 0.125rem;
}
.topbos > .srview .sbm {
.topbos > .srview .sbm[data-v-8dd39525] {
width: 4.6875rem;
height: 2rem;
display: flex;
@ -247,24 +275,24 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
color: #ffffff;
border-radius: 0.3125rem;
}
.topbos > .srview:nth-last-child(1) {
.topbos > .srview[data-v-8dd39525]:nth-last-child(1) {
margin-bottom: 0;
}
.topbos > .srview > uni-view:nth-of-type(1) {
.topbos > .srview > uni-view[data-v-8dd39525]:nth-of-type(1) {
width: 5.9375rem;
font-size: 0.875rem;
}
.topbos > .srview > uni-view:nth-of-type(2) {
.topbos > .srview > uni-view[data-v-8dd39525]:nth-of-type(2) {
font-size: 0.875rem;
flex: 1;
display: flex;
align-items: center;
}
.topbos > .srview > uni-view:nth-of-type(2) > uni-input {
.topbos > .srview > uni-view:nth-of-type(2) > uni-input[data-v-8dd39525] {
flex: 1;
font-size: 0.875rem;
}
.flbuts {
.flbuts[data-v-8dd39525] {
width: 10rem;
height: 2.75rem;
background: #D3832A;
@ -280,24 +308,25 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
transform: translate(-50%);
bottom: 1.875rem;
}
.bgimg {
.bgimg[data-v-8dd39525] {
position: absolute;
left: 0;
top: 0;
width: 100%;
}
.scvmabx {
.scvmabx[data-v-8dd39525] {
width: 100%;
height: 68vh;
margin-top: 0.625rem;
}
.scvmabx .maxboxs {
.scvmabx .maxboxs[data-v-8dd39525] {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.scvmabx .maxboxs > .items {
.scvmabx .maxboxs > .items[data-v-8dd39525] {
position: relative;
width: 21.5625rem;
display: flex;
flex-direction: column;
@ -308,10 +337,10 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
border-radius: 0.3125rem;
margin-bottom: 0.9375rem;
}
.scvmabx .maxboxs > .items:nth-last-child(1) {
.scvmabx .maxboxs > .items[data-v-8dd39525]:nth-last-child(1) {
margin-bottom: 0.625rem;
}
.scvmabx .maxboxs > .items .tophd {
.scvmabx .maxboxs > .items .tophd[data-v-8dd39525] {
width: 100%;
display: flex;
align-items: flex-start;
@ -320,22 +349,22 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
box-sizing: border-box;
border-bottom: 0.125rem solid #EEEEEE;
}
.scvmabx .maxboxs > .items .tophd > uni-image {
.scvmabx .maxboxs > .items .tophd > uni-image[data-v-8dd39525] {
width: 1.5rem;
height: 1.5rem;
margin-right: 0.3125rem;
}
.scvmabx .maxboxs > .items .tophd > uni-view {
.scvmabx .maxboxs > .items .tophd > uni-view[data-v-8dd39525] {
font-size: 1rem;
color: #020B18;
font-weight: 400;
word-wrap: break-word;
word-break: break-all;
}
.scvmabx .maxboxs > .items .tophd > uni-view:nth-of-type(2) {
.scvmabx .maxboxs > .items .tophd > uni-view[data-v-8dd39525]:nth-of-type(2) {
flex: 1;
}
.scvmabx .maxboxs > .items .tophd1 {
.scvmabx .maxboxs > .items .tophd1[data-v-8dd39525] {
width: 100%;
display: flex;
align-items: center;
@ -344,21 +373,21 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
box-sizing: border-box;
border-bottom: 0.125rem solid #EEEEEE;
}
.scvmabx .maxboxs > .items .tophd1 > uni-image {
.scvmabx .maxboxs > .items .tophd1 > uni-image[data-v-8dd39525] {
width: 1.5rem;
height: 1.5rem;
margin-right: -0.625rem;
}
.scvmabx .maxboxs > .items .tophd1 > uni-view {
.scvmabx .maxboxs > .items .tophd1 > uni-view[data-v-8dd39525] {
display: flex;
align-items: center;
}
.scvmabx .maxboxs > .items .tophd1 > uni-view > uni-image {
.scvmabx .maxboxs > .items .tophd1 > uni-view > uni-image[data-v-8dd39525] {
width: 1.5rem;
height: 1.5rem;
margin-right: 0.3125rem;
}
.scvmabx .maxboxs > .items .numbxvie {
.scvmabx .maxboxs > .items .numbxvie[data-v-8dd39525] {
width: 100%;
display: flex;
align-items: center;
@ -366,42 +395,56 @@ uni-view[data-v-f631659b], uni-scroll-view[data-v-f631659b], uni-swiper-item[dat
padding: 0.46875rem 0.78125rem;
box-sizing: border-box;
}
.scvmabx .maxboxs > .items .numbxvie .zhon {
.scvmabx .maxboxs > .items .numbxvie .zhon[data-v-8dd39525] {
color: #D3832A;
}
.scvmabx .maxboxs > .items .numbxvie .yish {
.scvmabx .maxboxs > .items .numbxvie .yish[data-v-8dd39525] {
color: #1197EB;
}
.scvmabx .maxboxs > .items .numbxvie .weish {
.scvmabx .maxboxs > .items .numbxvie .weish[data-v-8dd39525] {
color: #020B18;
}
.scvmabx .maxboxs > .items .numbxvie > uni-view {
.scvmabx .maxboxs > .items .numbxvie > uni-view[data-v-8dd39525] {
display: flex;
flex-direction: column;
align-items: center;
}
.scvmabx .maxboxs > .items .numbxvie > uni-view > uni-view:nth-of-type(1) {
.scvmabx .maxboxs > .items .numbxvie > uni-view > uni-view[data-v-8dd39525]:nth-of-type(1) {
font-size: 1.125rem;
margin-bottom: 0.375rem;
}
.scvmabx .maxboxs > .items .numbxvie > uni-view > uni-view:nth-of-type(2) {
.scvmabx .maxboxs > .items .numbxvie > uni-view > uni-view[data-v-8dd39525]:nth-of-type(2) {
font-size: 0.875rem;
}
.scvmabx .maxboxs > .items .type1 {
.scvmabx .maxboxs > .items .type1[data-v-8dd39525] {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0.625rem;
}
.scvmabx .maxboxs > .items .type1 > uni-view {
.scvmabx .maxboxs > .items .type1 > uni-view[data-v-8dd39525] {
display: flex;
align-items: center;
font-size: 0.875rem;
}
.scvmabx .maxboxs > .items .type1 > uni-view > uni-view:nth-of-type(1) {
.scvmabx .maxboxs > .items .type1 > uni-view > uni-view[data-v-8dd39525]:nth-of-type(1) {
color: #90A0AF;
}
.scvmabx .maxboxs > .items .type1 > uni-view > uni-view:nth-of-type(2) {
.scvmabx .maxboxs > .items .type1 > uni-view > uni-view[data-v-8dd39525]:nth-of-type(2) {
color: #092C4D;
}
.weiqt[data-v-8dd39525] {
position: absolute;
right: 0;
top: 0;
width: 2.1875rem;
height: 2.1875rem;
}
.qitao[data-v-8dd39525] {
position: absolute;
right: 0;
top: 0;
width: 2.1875rem;
height: 2.1875rem;
}

28
utils/request.js

@ -28,7 +28,7 @@ import {
const service = (params) => {
return new Promise((relove, reject) => {
return new Promise(async (relove, reject) => {
let refresh_token = uni.getStorageSync('refresh_token')
let token = uni.getStorageSync('access_token')
let user = uni.getStorageSync('userinfo')
@ -63,14 +63,36 @@ const service = (params) => {
urlhd = host
}
let version = ''
if (!version) {
// #ifdef APP
version = await utils.getversion()
version = version.version
// #endif
}
function req() {
uni.request({
let submitData = {
url: urlhd + params.url,
data: params.data,
method: params.method,
header
}
// 当程序在app上运行时, 带上版本号
// #ifdef APP
submitData = {
url: urlhd + params.url,
data: {
...params.data,
version
},
method: params.method,
// dataType: "json",
header
}).then(res => {
}
// #endif
uni.request(submitData).then(res => {
// console.log(res);
uni.hideLoading()
if (res.statusCode == 200) {

61
utils/watermark.js

@ -0,0 +1,61 @@
'use strict';
let watermark = {};
watermark.set = (path) => {
let id = '1.23452384164.123412415';
// #ifdef H5
if (document.getElementById(id) !== null) {
document.body.removeChild(document.getElementById(id));
}
let div = document.createElement('div');
div.id = id;
div.style.pointerEvents = 'none';
div.style.top = '44px';
div.style.left = '0px';
div.style.bottom = '50px';
div.style.right = '0px';
div.style.position = 'fixed';
div.style.zIndex = '100000';
div.style.zoom = '0.6'; //设置缩放
div.style.opacity = '0.5'; //设置透明度
div.style.background = 'url(' + path + ') left top repeat';
div.innerText = '测试'
document.body.appendChild(div);
return id;
// #endif
// #ifdef APP-PLUS
if (plus.nativeObj.View.getViewById(id) !== null) {
plus.nativeObj.View.getViewById(id).close();
}
uni.getSystemInfo({
success: function(res) {
//水印排列行数
let row = Math.floor(res.windowHeight / uni.upx2px(250));
let tarArr = [];
for (let i = 0; i < row; i++) {
for (let j = 0; j < 3; j++) {
tarArr.push({
tag: 'img',
src: path,
position: {
top: (uni.upx2px(255) * i) + 'px',
left: (uni.upx2px(255) * j) + 'px',
width: uni.upx2px(255) + 'px',
height: uni.upx2px(255) + 'px'
}
});
}
}
var watermarkView = new plus.nativeObj.View(id, {
top: '70px',
left: '0px',
right: '0px',
bottom: '50px'
}, tarArr);
//拦截View控件的触屏事件,将事件穿透给下一层view
watermarkView.interceptTouchEvent(false);
watermarkView.show();
}
});
// #endif
}
export default watermark;
Loading…
Cancel
Save