feat: 自建物流全流程.

main
YXQ 1 year ago
parent 65bf2c2ef4
commit de4610cb46
  1. BIN
      images/addPoto.png
  2. 5
      pages/about/about.js
  3. 29
      pages/details/details.js
  4. 22
      pages/details/details.wxml
  5. 7
      pages/feedback/feedback.js
  6. 5
      pages/feedback/feedback.wxml
  7. 34
      pages/index/index.js
  8. 10
      pages/index/index.wxml
  9. 8
      pages/login/login.wxml
  10. 39
      pages/login/login.wxss
  11. 373
      pages/meLogistics/meLogistics.js
  12. 69
      pages/meLogistics/meLogistics.wxml
  13. 9
      pages/meLogistics/meLogistics.wxss
  14. 46
      utils/dateUtils.js
  15. 23
      utils/http.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

@ -6,9 +6,9 @@ Page({
*/ */
data: { data: {
username:'立即登录' username:'立即登录'
}, },
//绑定微信
bindWx(){ bindWx(){
wx.showModal({ wx.showModal({
title: '绑定微信', title: '绑定微信',
@ -29,18 +29,21 @@ Page({
}) })
}, },
//自建物流查询
goQueryme(){ goQueryme(){
wx.navigateTo({ wx.navigateTo({
url: '../queryme/queryme', url: '../queryme/queryme',
}) })
}, },
//第三方物流查询
goQuerythree(){ goQuerythree(){
wx.navigateTo({ wx.navigateTo({
url: '../querythree/querythree', url: '../querythree/querythree',
}) })
}, },
//货运物流查询
goQueryfrei(){ goQueryfrei(){
wx.navigateTo({ wx.navigateTo({
url: '../queryfrei/queryfrei', url: '../queryfrei/queryfrei',

@ -5,14 +5,39 @@ Page({
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
barCode:'', //样本条码
receiveTime:'', //接收时间
status:'', //样本状态
logisticsNo:'', //物流编号
unitType:'', //物流单位
entryDate:'', //日期
cost:'', //物流费用
expectedEndTime:'', //到达日期
boxNum:'', //转运箱号
numberplate:'', //物流车号
logisticsMen:'', //物流员
notes:'',//备注
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad(options) { onLoad(options) {
console.log(options.sample);
var item = JSON.parse(options.sample)
this.setData({
barCode:item.barCode,
receiveTime:item.receiveTime,
status:item.status,
logisticsNo:item.logisticsNo,
unitType:item.unitType,
cost:item.cost,
expectedEndTime:item.expectedEndTime,
boxNum:item.boxNum,
numberplate:item.numberplate,
logisticsMen:item.logisticsMen,
notes:item.notes
})
}, },
/** /**

@ -3,11 +3,11 @@
<view class="back"> <view class="back">
<view class="cen"> <view class="cen">
<label>样本条码:</label> <label>样本条码:</label>
<view>2023050002</view> <view>{{barCode}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>接收时间:</label> <label>接收时间:</label>
<view>2023-5-12 11:32</view> <view>{{receiveTime}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>样本状态:</label> <label>样本状态:</label>
@ -15,39 +15,39 @@
</view> </view>
<view class="cen"> <view class="cen">
<label>物流单号:</label> <label>物流单号:</label>
<view>M2023055568</view> <view>{{logisticsNo}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>物流单位:</label> <label>物流单位:</label>
<view>顺丰</view> <view>{{unitType}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>日 期:</label> <label>日 期:</label>
<view>2023-5-12 11:32</view> <view>{{entryDate}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>物流费用:</label> <label>物流费用:</label>
<view>20.00</view> <view>{{cost}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>到达日期:</label> <label>到达日期:</label>
<view>2023-5-12 16:00</view> <view>{{expectedEndTime}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>转运箱号:</label> <label>转运箱号:</label>
<view>Z564687</view> <view>{{boxNum}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>物流车号:</label> <label>物流车号:</label>
<view>京B85D6S</view> <view>{{numberplate}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>物流员:</label> <label>物流员:</label>
<view>张三</view> <view>{{logisticsMen}}</view>
</view> </view>
<view class="cen"> <view class="cen">
<label>备 注:</label> <label>备 注:</label>
<view></view> <view>{{notes}}</view>
</view> </view>
</view> </view>
</view> </view>

@ -139,6 +139,11 @@ Page({
} }
}) })
}, },
//删除照片
delImage(e){
console.log(e)
//TODO
},
//显示回调图片 //显示回调图片
addCallBackImage(imageSrc) { addCallBackImage(imageSrc) {
@ -146,7 +151,7 @@ Page({
isBtn: false, isBtn: false,
imgUrl: imageSrc, imgUrl: imageSrc,
text: imageSrc, text: imageSrc,
func: "" func: "delImage"
}; };
this.data.imageArr.unshift(temp); this.data.imageArr.unshift(temp);
this.setData({ this.setData({

@ -18,15 +18,12 @@
<block wx:for="{{imageArr}}"> <block wx:for="{{imageArr}}">
<view wx:if="{{item.isBtn}}" bindtap="{{item.func}}">{{item.text}}</view> <view wx:if="{{item.isBtn}}" bindtap="{{item.func}}">{{item.text}}</view>
<view wx:else style="display: flex;"> <view wx:else style="display: flex;">
<image src="{{item.text}}"></image> <image bindlongtap="{{item.func}}" src="{{item.text}}" />
</view> </view>
</block> </block>
</view> </view>
</view> </view>
</view> </view>
<button class="btn" bindtap="goMyorder">提 交</button> <button class="btn" bindtap="goMyorder">提 交</button>
</view> </view>

@ -61,6 +61,35 @@ Page({
msg:[], //首页中间消息列表 msg:[], //首页中间消息列表
}, },
//跳转对应界面
goLogisticsType(e){
console.log(JSON.stringify(e));
var tag = e.currentTarget.dataset.id
var url
//自建物流
if(tag === 'goMelogistics'){
url = '../meLogistics/meLogistics'
}
//第三方
if(tag === 'goThreelogistics'){
url = '../threeLogistics/threeLogistics'
}
//货运
if(tag === 'goLogistics'){
url = '../freiLogistics/freiLogistics'
}
//物流交接
if(tag === 'goHandover'){
url = '../handover/handover'
}
wx.navigateTo({
url: url,
})
},
//自建物流 //自建物流
goMelogistics(){ goMelogistics(){
wx.navigateTo({ wx.navigateTo({
@ -75,10 +104,11 @@ Page({
}) })
}, },
//货运物流 //物流交接
goHandover(){ goHandover(){
wx.navigateTo({ wx.navigateTo({
url: '../handover/handover', url: '../freiLogistics/freiLogistics',
// url: '../handover/handover',
}) })
}, },

@ -12,16 +12,16 @@
<view style="padding: 20rpx;"> <view style="padding: 20rpx;">
<view class="back"> <view class="back">
<view class="produck-type" bindtap="goMelogistics"> <view class="produck-type" >
<view class="item"> <view class="item" bindtap="goLogisticsType" data-id="goMelogistics">
<image src="../../images/自建物流.png"></image> <image src="../../images/自建物流.png"></image>
<view>自建物流</view> <view>自建物流</view>
</view> </view>
<view class="item" bindtap="goThreelogistics"> <view class="item" bindtap="goLogisticsType" data-id="goThreelogistics">
<image src="../../images/第三方物流.png"></image> <image src="../../images/第三方物流.png"></image>
<view>第三方物流</view> <view>第三方物流</view>
</view> </view>
<view class="item"> <view class="item" bindtap="goLogisticsType" data-id="goLogistics">
<image src="../../images/货运物流.png"></image> <image src="../../images/货运物流.png"></image>
<view>货运物流</view> <view>货运物流</view>
</view> </view>
@ -32,5 +32,5 @@
<ec-canvas canvas-id="echart-pie" ec="{{ec}}"></ec-canvas> <ec-canvas canvas-id="echart-pie" ec="{{ec}}"></ec-canvas>
</view> </view>
<button class="btn" bindtap="goHandover">物流交接</button> <button class="btn" bindtap="goLogisticsType" data-id="goHandover">物流交接</button>
</view> </view>

@ -1,17 +1,17 @@
<!--pages/login/login.wxml--> <!--pages/login/login.wxml-->
<view style="padding: 40rpx 50rpx;font-size: 55rpx;color: #fff;font-weight: 600; font-family: 'Courier New', Courier, monospace;">欢迎回来!</view> <view class="title">欢迎登录</view>
<view style="background-color: #fff; width: 650rpx; border-radius: 20rpx; margin: 0 auto; padding: 30rpx 0;"> <view style="background-color: #fff; width: 650rpx; border-radius: 10rpx; margin: 0 auto; padding: 30rpx 0;">
<view class="text"> <view class="text">
<label>账号:</label> <label>账号:</label>
<input type="text" placeholder="请输入账号" value="{{username}}" bindinput="getUsername" data-value="username"/> <input type="text" placeholder="请输入账号" value="{{username}}" bindinput="getUsername" data-value="username" />
</view> </view>
<view class="text"> <view class="text">
<label>密码:</label> <label>密码:</label>
<input type="password" placeholder="请输入密码" value="{{userpwd}}" bindinput="getUserpwd" data-value="userpwd"/> <input type="password" placeholder="请输入密码" value="{{userpwd}}" bindinput="getUserpwd" data-value="userpwd" />
</view> </view>
<button class="btn" bindtap="login">登 录</button> <button class="btn" bindtap="login">登 录</button>

@ -1,11 +1,28 @@
/* pages/login/login.wxss */ /* pages/login/login.wxss */
/* pages/login/login.wxss */ /* pages/login/login.wxss */
page{ page {
background: -webkit-linear-gradient(top,#27adb0,#b6f0f0,#f8f8f8); background: -webkit-linear-gradient(top, #27adb0, #b6f0f0, #f8f8f8);
padding-top: 250rpx; padding-top: 250rpx;
} }
.text{ .title {
padding: 40rpx 50rpx;
font-size: 55rpx;
color: #fff;
font-weight: 600;
font-family: 'Courier New', Courier, monospace;
}
.box {
background-color: #fff;
width: 650rpx;
border-radius: 10rpx;
margin: 0 auto;
padding: 30rpx 0;
}
.text {
display: flex; display: flex;
/* background-color: #f1f1f1; */ /* background-color: #f1f1f1; */
border-radius: 20rpx; border-radius: 20rpx;
@ -14,23 +31,25 @@ page{
padding: 20rpx; padding: 20rpx;
align-items: center; align-items: center;
} }
.text label{
.text label {
font-weight: 900; font-weight: 900;
font-size: 30rpx; font-size: 30rpx;
color: #333; color: #333;
} }
.text input{
.text input {
font-size: 28rpx; font-size: 28rpx;
background-color: #f5f5f5; background-color: #f5f5f5;
width: 70%; width: 70%;
height: 60rpx; height: 60rpx;
padding: 0 20rpx; padding: 0 20rpx;
border-radius: 20rpx; border-radius: 10rpx;
} }
.btn{ .btn {
border-radius: 20rpx; border-radius: 10rpx;
height: 60rpx; height: 80rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -38,6 +57,6 @@ page{
font-weight: 500; font-weight: 500;
background-color: #259c9e; background-color: #259c9e;
color: #fff; color: #fff;
margin-top: 30rpx; margin-top: 50rpx;
width: 300rpx !important; width: 300rpx !important;
} }

@ -1,122 +1,187 @@
// pages/meLogistics/meLogistics.js // pages/meLogistics/meLogistics.js
var datePicker = require('../../utils/dateSetting') const datePicker = require('../../utils/dateSetting')
const http = require('../../utils/http') const request = require('../../utils/http')
const dateUtils = require('../../utils/dateUtils')
//设定当前的时间,将其设定为常量 //设定当前的时间,将其设定为常量
Page({ Page({
data: { data: {
list:[ pipenum: '',
{ selfOrderCode: '', //物流单号
'id':1, ins: [], //送检机构 服务端获取
'number':'2023050002', insName: [], //机构列表名称
'time':'2023-5-12 11:32', insIdx: 0, //当前所选机构下标
'status':'已签收', bushList: ['私家车', '大巴', '顺丰', '其他'], //运输方式 服务端获取
'name':'张三', bush: '', //运输方式下标
'num':'M2023055568' date: '', //当天日期
}, start: '2020-01-01',
{ end: '',
'id':2,
'number':'2023050002', boxNum: '', //转运箱号
'time':'2023-5-12 11:32',
'status':'已签收', time: '', //出发时间
'name':'李四',
'num':'M2023055568'
}
],
pipenum:'',
selfOrderCode:'',//物流单号
ins: ['xx卫生院','xx门诊',],
bushList:['私家车','大巴','顺丰','其他'],
bush:'',
date: '',
start:'2020-01-01',
end:'',
//开始
time: '',
multiArray: [], multiArray: [],
multiIndex: [0, 0, 0, 0, 0], multiIndex: [0, 0, 0, 0, 0],
choose_year: "", choose_year: "",
//结束
time1: '', time1: '', //到达时间
multiArray1: [], multiArray1: [],
multiIndex1: [0, 0, 0, 0, 0], multiIndex1: [0, 0, 0, 0, 0],
choose_year1: "", choose_year1: "",
numberplate: '', //车牌号
srcArray:[] logisticsMen: '', //物流员
number: '', //数量
notes: '', //备注
driverMen: '', //驾驶员
srcArray: [], //样本组?
potoSrc: '../../images/addPoto.png', //默认图片
poto: [], //车辆&转运箱照片 最大长度 4
tableArr: [], //扫码表数据
sampleCount: '0', //样本数量
//样本列表
sampleList: [{
'id': 1,
'number': '2023050002',
'time': '2023-5-12 11:32',
'status': '已签收',
'name': '张三',
'num': 'M2023055568'
},
{
'id': 2,
'number': '2023050002',
'time': '2023-5-12 11:32',
'status': '已签收',
'name': '李四',
'num': 'M2023055568'
},
{
'id': 3,
'number': '2023050002',
'time': '2023-5-12 11:32',
'status': '已签收',
'name': '李四',
'num': 'M2023055568'
}
],
}, },
scacode(){ //调用摄像头
scacode() {
wx.scanCode({ wx.scanCode({
success:(res)=>{ success: (res) => {
console.log(res.result); console.log(res.result);
this.setData({ this.setData({
pipenum:res.result pipenum: res.result
}) })
} }
}) })
}, },
//样本拍照 //样本拍照
phot(){ phot() {
wx.chooseMedia({ wx.chooseMedia({
count: 1, count: 1,
mediaType: ['image','video'], mediaType: ['image', 'video'],
sourceType: ['album', 'camera'], sourceType: ['album', 'camera'],
maxDuration: 30, maxDuration: 30,
camera: 'back', camera: 'back',
success: res=>{ success: res => {
console.log(this.data.srcI) console.log(this.data.srcI)
console.log(res.tempFiles[0].tempFilePath) console.log(res.tempFiles[0].tempFilePath)
// this.up(); // this.up();
} }
}) })
}, },
//上传图片接口地址
// up(){
// console.log(this.data.srcI)
// wx.uploadFile({
// filePath: this.data.srcI,
// name: 'file',
// url: '',
// })
// },
//物流车拍照 //物流车拍照
bushPhot(){ bushPhot() {
wx.chooseMedia({ wx.chooseMedia({
count: 1, count: 1,
mediaType: ['image','video'], mediaType: ['image', 'video'],
sourceType: ['album', 'camera'], sourceType: ['album', 'camera'],
maxDuration: 30, maxDuration: 30,
camera: 'back', camera: 'back',
success: res=>{ success: res => {
// this.up(); // this.up();
} }
}) })
}, },
//转运箱拍照 //转运箱拍照
boxPhot(){ boxPhot(e) {
console.log(e.target.dataset.id);
wx.chooseMedia({ wx.chooseMedia({
count: 1, count: 1,
mediaType: ['image','video'], mediaType: ['image', 'video'],
sourceType: ['album', 'camera'], sourceType: ['album', 'camera'],
maxDuration: 30, maxDuration: 30,
camera: 'back', camera: 'back',
success: res=>{ success: res => {
// this.up(); // this.up();
} }
}) })
}, },
//物流车、转运箱拍照
photograph(e) {
var potoIdx = 0;
console.log(e.target.dataset.id);
if (e.target.dataset.id === 'car_1') {
console.log(e.target.dataset.id);
potoIdx = 0
}
if (e.target.dataset.id === 'car_2') {
console.log(e.target.dataset.id);
potoIdx = 1
}
if (e.target.dataset.id === 'box_1') {
console.log(e.target.dataset.id);
potoIdx = 2
}
if (e.target.dataset.id === 'box_2') {
console.log(e.target.dataset.id);
potoIdx = 3
}
//回显所拍摄照片
var _this = this;
wx.chooseMedia({
count: 1,
mediaType: ['image', 'video'],
sourceType: ['camera'],
sizeType: ['compressed'],
camera: 'back',
success: res => {
console.log(res.tempFiles[0].tempFilePath)
_this.data.poto[potoIdx] = res.tempFiles[0].tempFilePath
_this.setData({
poto: _this.data.poto
})
}
})
},
//显示回调图片
addCallBackImage(imageSrc) {
var temp = {
isBtn: false,
imgUrl: imageSrc,
text: imageSrc,
func: "delImage"
};
this.data.imageArr.unshift(temp);
this.setData({
imageArr: this.data.imageArr
});
},
//送检机构 //送检机构
bindPickerChange(e) { bindPickerChange(e) {
this.setData({ this.setData({
index: e.detail.value insIdx: e.detail.value,
insName: this.data.ins[e.detail.value]
}) })
}, },
@ -128,10 +193,10 @@ Page({
}, },
//日期 //日期
bindDateChange(e){ bindDateChange(e) {
// console.log(e.detail.value) // console.log(e.detail.value)
this.setData({ this.setData({
date:e.detail.value date: e.detail.value
}) })
}, },
@ -143,10 +208,12 @@ Page({
this.data.multiArray[2][this.data.multiIndex[2]] + this.data.multiArray[2][this.data.multiIndex[2]] +
this.data.multiArray[3][this.data.multiIndex[3]] + this.data.multiArray[3][this.data.multiIndex[3]] +
this.data.multiArray[4][this.data.multiIndex[4]]; this.data.multiArray[4][this.data.multiIndex[4]];
this.setData({ this.setData({
time: dateStr time: dateStr
}) })
},//开始 },
bindMultiPickerChange1: function (e) { bindMultiPickerChange1: function (e) {
var dateStr = this.data.multiArray1[0][this.data.multiIndex1[0]] + var dateStr = this.data.multiArray1[0][this.data.multiIndex1[0]] +
this.data.multiArray1[1][this.data.multiIndex1[1]] + this.data.multiArray1[1][this.data.multiIndex1[1]] +
@ -156,7 +223,7 @@ Page({
this.setData({ this.setData({
time1: dateStr time1: dateStr
}) })
},//结束 },
//当时间选择器呈现并进行滚动选择时间时调用该函数。开始 //当时间选择器呈现并进行滚动选择时间时调用该函数。开始
bindMultiPickerColumnChange: function (e) { bindMultiPickerColumnChange: function (e) {
@ -214,10 +281,146 @@ Page({
}) })
}, },
//样本详细信息
goDetail(){ goDetail(e) {
console.log('goDetail=' + e.currentTarget.dataset.id);
var sample = this.data.sampleList[e.currentTarget.dataset.id]
wx.navigateTo({ wx.navigateTo({
url: '../details/details', url: '../details/details?sample=' + JSON.stringify(sample),
})
},
//文本输入信息
inputTextInfo(e) {
var data_id = e.target.dataset.id; //组件tag
var value = e.detail.value; //输入的文本
//样本编号
if (data_id === 'barCode') {
this.setData({
pipenum: value
})
}
//数量
if (data_id === 'number') {
this.setData({
number: value
})
}
//转运箱号
if (data_id === 'boxNum') {
this.setData({
boxNum: value
})
}
//车牌号
if (data_id === 'numberplate') {
this.setData({
numberplate: value
})
}
//物流员
if (data_id === 'logisticsMen') {
this.setData({
logisticsMen: value
})
}
//驾驶员
if (data_id === 'driverMen') {
this.setData({
driverMen: value
})
}
//备注
if (data_id === 'notes') {
this.setData({
notes: value
})
}
},
//保存样本信息
saveInfo() {
var temp = this.data;
//处理出发时间
var startTime = dateUtils.customizeDateFormat(temp.time);
//处理到达时间
var endTime = dateUtils.customizeDateFormat(temp.time1);
//处理物流车拍照
var carPoto = []
var boxPoto = []
var array = this.data.poto;
for (let index = 0; index < array.length; index++) {
if (index < 2 && array[index] != this.data.potoSrc) {
carPoto.push(array[index])
} else if (array[index] != this.data.potoSrc) {
boxPoto.push(array[index])
}
}
var tempData = {
"barCode": temp.pipenum, //样本条码
"barCodeImg": "", //物流拍照图
"boxNum": temp.boxNum, //转运箱号
"carPics": carPoto.toString(), //物流车图片 逗号分隔
"boxPics": boxPoto.toString(), // 转运箱图片 逗号分隔
"cost": 0, // 物流费用 自建没有
"driverMen": temp.driverMen, //驾驶员
"entryDate": temp.date, // 录入日期
"endDate": '2023-07-06 14:52:53', //startTime
"expectedEndTime": endTime, //预计到达时间 endTime
"institutionName": temp.ins[temp.insIdx].orgName, //送检机构名称
"institutionNo": temp.ins[temp.insIdx].id, //送检机构编号
"logisticsMen": temp.logisticsMen, //物流员
"logisticsNo": temp.selfOrderCode, //物流编号
"logisticsWay": 1, //物流方式 1自建 2第三方 3货运
"notes": temp.notes, // 物流备注
"number": temp.number, // 数量
"numberplate": "", // 车牌号
"phone": "", //物流电话
"startTime": startTime, //出发时间
"tranType": "1", //物流方式
"unitType": "", //物流单位 1.顺丰 2.京东(自建物流没有该字段)
"updateBy": 0,
"updateTime": ""
}
console.log('saveInfo=' + JSON.stringify(tempData));
request.post(`/batch/addTranLogistics`, tempData).then(res => {
console.log(JSON.stringify(res.data));
if (res.data.code === 200) {
//保存成功后,查询底部列表
} else {
wx.showModal({
title: '错误',
content: res.data.message,
showCancel: false,
complete: (res) => {
if (res.confirm) {}
}
})
}
})
},
//查询底部列表数据
selSampleList() {
var reqData = {
'logisticsNo': this.data.selfOrderCode
}
request.post(`/logistics/selectTranLogistics`, reqData).then(res => {
console.log(res.data);
this.setData({
sampleList: res.data.data,
sampleCount: res.data.data.length
})
}) })
}, },
@ -229,17 +432,18 @@ Page({
let year = now.getFullYear(); //获取当前年 let year = now.getFullYear(); //获取当前年
let month = now.getMonth() + 1; //获取当前月份 let month = now.getMonth() + 1; //获取当前月份
this.setData({ this.setData({
end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2),//当前的时间 end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2), //当前的时间
//开始 //开始
multiArray:[[year + "年", year + 1 + "年", year + 2 + "年"], multiArray: [
[year + "年", year + 1 + "年", year + 2 + "年"],
datePicker.determineMonth(), datePicker.determineMonth(),
datePicker.determineDay(year, month), datePicker.determineDay(year, month),
datePicker.determineHour(), datePicker.determineHour(),
datePicker.determineMinute() datePicker.determineMinute()
], ],
//结束 //结束
multiArray1:[[year + "年", year + 1 + "年", year + 2 + "年"], multiArray1: [
[year + "年", year + 1 + "年", year + 2 + "年"],
datePicker.determineMonth(), datePicker.determineMonth(),
datePicker.determineDay(year, month), datePicker.determineDay(year, month),
datePicker.determineHour(), datePicker.determineHour(),
@ -248,14 +452,35 @@ Page({
}), }),
//获取物流单号 1.自建物流 2.第三方物流 3.货运物流 //获取物流单号 1.自建物流 2.第三方物流 3.货运物流
http.get(`/batch/getBatchsNumber?logisticsWay=1`).then(res => { request.get(`/batch/getBatchsNumber?logisticsWay=1`).then(res => {
console.log('getBatchsNumber=' + JSON.stringify(res.data)) console.log('getBatchsNumber=' + JSON.stringify(res.data))
if(res.data.code === 200){ if (res.data.code === 200) {
this.setData({ this.setData({
selfOrderCode:res.data.data selfOrderCode: res.data.data
}) })
} }
}) })
//获取送检机构列表
request.post(`/institution/selectInstitution`).then(res => {
var array = res.data.data
var tempArr = []
for (let index = 0; index < array.length; index++) {
tempArr.push(array[index].orgName)
}
this.setData({
ins: tempArr
})
//查询物流批次列表
this.selSampleList();
})
//初始化照片按钮
var tempSrc = [this.data.potoSrc, this.data.potoSrc, this.data.potoSrc, this.data.potoSrc]
this.setData({
poto: tempSrc
})
}, },
/** /**

@ -3,7 +3,7 @@
<view class="back"> <view class="back">
<view class="top"> <view class="top">
<input type="text" value="{{pipenum}}"/> <input type="text" bindinput="inputTextInfo" data-id="barCode" value="{{pipenum}}" />
<view style="background-color: #eee;" bindtap="scacode">扫 码</view> <view style="background-color: #eee;" bindtap="scacode">扫 码</view>
<view style="background-color: #23c559; color: #fff;" bindtap="phot">拍 照</view> <view style="background-color: #23c559; color: #fff;" bindtap="phot">拍 照</view>
</view> </view>
@ -11,82 +11,83 @@
<view class="form"> <view class="form">
<view class="from-con"> <view class="from-con">
<label>物流单号:</label> <label>物流单号:</label>
<input type="text" placeholder="物流单号" disabled="false" placeholder-class="place" value="{{selfOrderCode}}"/> <input type="text" placeholder="物流单号" disabled="false" placeholder-class="place" value="{{selfOrderCode}}" />
</view> </view>
<picker class="from-con" bindchange="bindPickerChange" value="{{index}}" range="{{ins}}"> <picker class="from-con" bindchange="bindPickerChange" value="{{insIdx}}" range="{{ins}}">
<label>送检机构:</label> <label>送检机构:</label>
<input type="text" disabled="true" placeholder="请选择送检机构" placeholder-class="place" value="{{ins[index]}}"/> <input type="text" disabled="true" placeholder="请选择送检机构" placeholder-class="place" value="{{insName}}" />
</picker> </picker>
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con"> <picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con">
<label>日期:</label> <label>日期:</label>
<input type="text" disabled="true" placeholder="请选择日期" placeholder-class="place" value="{{date}}"/> <input type="text" disabled="true" placeholder="请选择日期" placeholder-class="place" value="{{date}}" />
</picker> </picker>
<view class="from-con"> <view class="from-con">
<label>数量:</label> <label>数量:</label>
<input type="text" placeholder="数量" placeholder-class="place"/> <input type="number" bindinput="inputTextInfo" data-id="number" placeholder="数量" placeholder-class="place" />
</view> </view>
<picker class="from-con" bindchange="bindbushChange" range="{{bushList}}"> <picker class="from-con" bindchange="bindbushChange" range="{{bushList}}">
<label>运输方式:</label> <label>运输方式:</label>
<input type="text" disabled="true" placeholder="请选择运输方式" placeholder-class="place" value="{{bushList[bush]}}"/> <input type="text" disabled="true" placeholder="请选择运输方式" placeholder-class="place" value="{{bushList[bush]}}" />
</picker> </picker>
<view class="from-con"> <view class="from-con">
<label>转运箱号:</label> <label>转运箱号:</label>
<input type="text" placeholder="转运箱号" placeholder-class="place" value=""/> <input type="text" bindinput="inputTextInfo" data-id="boxNum" placeholder="转运箱号" placeholder-class="place" value="" />
</view> </view>
<picker class="from-con" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"> <picker class="from-con" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">
<label>出发时间:</label> <label>出发时间:</label>
<input value='{{time}}' placeholder='请选择出发时间' placeholder-class="place" disabled="true"/> <input value='{{time}}' placeholder='请选择出发时间' placeholder-class="place" disabled="true" />
</picker> </picker>
<picker class="from-con" mode="multiSelector" bindchange="bindMultiPickerChange1" bindcolumnchange="bindMultiPickerColumnChange1" value="{{multiIndex1}}" range="{{multiArray1}}"> <picker class="from-con" mode="multiSelector" bindchange="bindMultiPickerChange1" bindcolumnchange="bindMultiPickerColumnChange1" value="{{multiIndex1}}" range="{{multiArray1}}">
<label>到达时间:</label> <label>到达时间:</label>
<input value='{{time1}}' placeholder='请选择到达时间' placeholder-class="place" disabled="true"/> <input value='{{time1}}' placeholder='请选择到达时间' placeholder-class="place" disabled="true" />
</picker> </picker>
<view class="from-con"> <view class="from-con">
<label>车牌号:</label> <label>车牌号:</label>
<input type="text" placeholder="车牌号" placeholder-class="place" value=""/> <input type="text" bindinput="inputTextInfo" data-id="numberplate" placeholder="车牌号" placeholder-class="place" value="{{carCode}}" />
</view> </view>
<view class="from-con"> <view class="from-con">
<label>物流员:</label> <label>物流员:</label>
<input type="text" placeholder="物流员" placeholder-class="place" value=""/> <input type="text" bindinput="inputTextInfo" data-id="logisticsMen" placeholder="物流员" placeholder-class="place" value="{{logistician}}" />
</view> </view>
<view class="from-con"> <view class="from-con">
<label>备注:</label> <label>驾驶员:</label>
<input type="text" placeholder="备注" placeholder-class="place" value=""/> <input type="text" bindinput="inputTextInfo" data-id="driverMen" placeholder="驾驶员" placeholder-class="place" value="{{driver}}" />
</view> </view>
<view class="from-con"> <view class="from-con">
<label>驾驶员:</label> <label>备注:</label>
<input type="text" placeholder="驾驶员" placeholder-class="place" value=""/> <input type="text" bindinput="inputTextInfo" data-id="notes" placeholder="备注" placeholder-class="place" value="{{notes}}" />
</view> </view>
</view> </view>
</view> </view>
<view class="back"> <view class="back">
<view class="bush"> <view class="bush">
<view style="flex: 1;">物流车拍照</view> <view style="flex: 1;">物流车拍照</view>
<button bindtap="bushPhot">拍 照</button> <!-- <button bindtap="bushPhot">拍 照</button> -->
</view> </view>
<view class="bush-img"> <view class="bush-img">
<image src="../../images/bush.png"></image> <image bindtap="photograph" src="{{poto[0]}}" data-id="car_1"></image>
<image src="../../images/bush.png"></image> <image bindtap="photograph" src="{{poto[1]}}" data-id="car_2"></image>
</view> </view>
</view> </view>
<view class="back"> <view class="back">
<view class="bush"> <view class="bush">
<view style="flex: 1;">转运箱拍照</view> <view style="flex: 1;">转运箱拍照</view>
<button bindtap="boxPhot">拍 照</button> <!-- <button bindtap="boxPhot">拍 照</button> -->
</view> </view>
<view class="bush-img"> <view class="bush-img">
<image src="../../images/bush.png"></image> <image bindtap="photograph" src="{{poto[2]}}" data-id="box_1"></image>
<image src="../../images/bush.png"></image> <image bindtap="photograph" src="{{poto[3]}}" data-id="box_2"></image>
</view> </view>
</view> </view>
<view class="back"> <view class="back">
<view class="con"> <view class="con">
<view style="flex: 1;">总计:200/管数</view> <view style="flex: 1;">总计:{{sampleCount}}/管数</view>
<button style="background-color: #ddd;">修 改</button> <button style="background-color: #ddd;">修 改</button>
<button style="color: #fff;">保 存</button> <button style="color: #fff;" bindtap="saveInfo">保 存</button>
</view> </view>
<scroll-view scroll-x class="tabel"> <scroll-view scroll-x class="tabel">
@ -98,15 +99,19 @@
<view class="td">物流员</view> <view class="td">物流员</view>
<view class="td">物流单号</view> <view class="td">物流单号</view>
</view> </view>
<view class="tr" wx:for="{{list}}" wx:key="index" bindtap="goDetail"> <view class="tr" wx:for="{{sampleList}}" wx:key="index" data-id="{{index}}" bindtap="goDetail">
<view class="td1">{{item.id}}</view> <view class="td1">{{index + 1}}</view>
<view class="td">{{item.number}}</view> <view class="td">{{item.barCode}}</view>
<view class="td">{{item.time}}</view> <view class="td">{{item.receiveTime}}</view>
<view class="td">{{item.status}}</view> <view wx:if="{{item.status == 0}}" class="td">已采样</view>
<view class="td">{{item.name}}</view> <view wx:elif="{{item.status == 1}}" class="td">已接收</view>
<view class="td">{{item.num}}</view> <view wx:elif="{{item.status == 2}}" class="td">已核收</view>
<view wx:elif="{{item.status == 3}}" class="td">已拒收</view>
<view wx:elif="{{item.status == 4}}" class="td">重新采样</view>
<view wx:else class="td">其它</view>
<view class="td">{{item.logisticsMen}}</view>
<view class="td">{{item.logisticsNo}}</view>
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
</view> </view>

@ -68,12 +68,13 @@
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content:space-around; justify-content:space-around;
padding: 20rpx 10rpx; padding: 10rpx 10rpx;
width: 100%;
} }
.bush-img image{ .bush-img image{
width: 270rpx; width: 270rpx;
height: 230rpx; height: 230rpx;
margin-top: 10rpx; margin-top: 5rpx;
border: 1rpx solid #999; border: 1rpx solid #999;
border-radius: 15rpx; border-radius: 15rpx;
} }
@ -117,7 +118,7 @@
align-items: center; align-items: center;
flex-wrap: nowrap; flex-wrap: nowrap;
white-space: nowrap; white-space: nowrap;
min-width: 200rpx; min-width: 250rpx;
} }
.tab-top view{ .tab-top view{
background-color: #51bdbe; background-color: #51bdbe;
@ -135,5 +136,5 @@
align-items: center; align-items: center;
flex-wrap: nowrap; flex-wrap: nowrap;
white-space: nowrap; white-space: nowrap;
min-width: 100rpx; min-width: 70rpx;
} }

@ -0,0 +1,46 @@
//时间格式处理工具类
//将 "2023年7月5日17时5分" 转换为 "2023-07-05 17:05:00" 格式
const customizeDateFormat = function(dateStr) {
if(dateStr === undefined || dateStr.length == 0){
return "";
}
var tempDateStr = dateStr.replace('年','-').replace('月','-').replace('日',' ').replace('时',':').replace('分',':')+'00';
// 2023-7-5 17:5:00
var tempDateArr = tempDateStr.split(' ');
var ymd = tempDateArr[0].split('-'); //年月日
var hms = tempDateArr[1].split(':'); //时分秒
var year = ymd[0]; //年
var mot = ymd[1]; //月
var day = ymd[2]; //日
//判断月份是否小于10,则前边补 0
if(mot < 10) {
mot == '0' + mot;
}
//判断日期是否小于10号,则前边补 0
if(day < 10){
day == '0' + day;
}
var hour = hms[0]; //时
var minute = hms[1]; //分
var second = hms[2]; //秒
//判断小时是否小于10,则前边补 0
if(hour < 10) {
hour = '0' + hour;
}
//判断分钟是否小于10,则前边补 0
if(minute < 10) {
minute == '0' + minute;
}
var returnDate = year + '-' + mot + '-' + day + ' ' + hour + ':' + minute + ':' + second;
return returnDate;
}//暴露出去
module.exports = {
customizeDateFormat
};

@ -71,7 +71,6 @@ const upImgFile = function(url, imgSrc) {
// header = Object.assign({}, header, options.header); // header = Object.assign({}, header, options.header);
// } // }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
wx.uploadFile({ wx.uploadFile({
url: app.globalData.baseUrl + url, url: app.globalData.baseUrl + url,
name: "file", name: "file",
@ -93,28 +92,6 @@ const upImgFile = function(url, imgSrc) {
} }
} }
}); });
// wx.request({
// url: app.globalData.baseUrl + url,
// method: options.method,
// data: options.data,
// header: header,
// success: (res) => {
// if (res.data.code == 500) {
// wx.showModal({
// showCancel: false,
// title: '提示',
// content: res.data.message
// });
// reject(res.data.message);
// } else {
// resolve(res);
// }
// },
// fail: (err) => {
// reject(err);
// }
// });
}); });
}; };

Loading…
Cancel
Save