@ -0,0 +1,31 @@ |
||||
/* |
||||
* Eslint config file |
||||
* Documentation: https://eslint.org/docs/user-guide/configuring/
|
||||
* Install the Eslint extension before using this feature. |
||||
*/ |
||||
module.exports = { |
||||
env: { |
||||
es6: true, |
||||
browser: true, |
||||
node: true, |
||||
}, |
||||
ecmaFeatures: { |
||||
modules: true, |
||||
}, |
||||
parserOptions: { |
||||
ecmaVersion: 2018, |
||||
sourceType: 'module', |
||||
}, |
||||
globals: { |
||||
wx: true, |
||||
App: true, |
||||
Page: true, |
||||
getCurrentPages: true, |
||||
getApp: true, |
||||
Component: true, |
||||
requirePlugin: true, |
||||
requireMiniProgram: true, |
||||
}, |
||||
// extends: 'eslint:recommended',
|
||||
rules: {}, |
||||
} |
@ -0,0 +1,19 @@ |
||||
// app.js
|
||||
App({ |
||||
onLaunch() { |
||||
// 展示本地存储能力
|
||||
const logs = wx.getStorageSync('logs') || [] |
||||
logs.unshift(Date.now()) |
||||
wx.setStorageSync('logs', logs) |
||||
|
||||
// 登录
|
||||
wx.login({ |
||||
success: res => { |
||||
// 发送 res.code 到后台换取 openId, sessionKey, unionId
|
||||
} |
||||
}) |
||||
}, |
||||
globalData: { |
||||
userInfo: null |
||||
} |
||||
}) |
@ -0,0 +1,44 @@ |
||||
{ |
||||
"pages": [ |
||||
"pages/index/index", |
||||
"pages/about/about", |
||||
"pages/meLogistics/meLogistics", |
||||
"pages/details/details", |
||||
"pages/threeLogistics/threeLogistics", |
||||
"pages/freiLogistics/freiLogistics", |
||||
"pages/queryme/queryme", |
||||
"pages/querythree/querythree", |
||||
"pages/queryfrei/queryfrei", |
||||
"pages/feedback/feedback", |
||||
"pages/handover/handover", |
||||
"pages/login/login" |
||||
], |
||||
"window": { |
||||
"backgroundTextStyle": "light", |
||||
"navigationBarBackgroundColor": "#27adb0", |
||||
"navigationBarTitleText": "物流端", |
||||
"navigationBarTextStyle": "white", |
||||
"backgroundColor": "#27adb0" |
||||
}, |
||||
"tabBar": { |
||||
"color": "#000", |
||||
"selectedColor": "#27adb0", |
||||
"borderStyle": "black", |
||||
"list": [ |
||||
{ |
||||
"iconPath": "images/首页1.png", |
||||
"selectedIconPath": "images/首页2.png", |
||||
"pagePath": "pages/index/index", |
||||
"text": "首页" |
||||
}, |
||||
{ |
||||
"iconPath": "images/我的1.png", |
||||
"selectedIconPath": "images/我的2.png", |
||||
"pagePath": "pages/about/about", |
||||
"text": "我的" |
||||
} |
||||
] |
||||
}, |
||||
"style": "v2", |
||||
"sitemapLocation": "sitemap.json" |
||||
} |
@ -0,0 +1,18 @@ |
||||
/**app.wxss**/ |
||||
page{ |
||||
background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1) |
||||
} |
||||
|
||||
.box{ |
||||
background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1); |
||||
min-height: 1300rpx; |
||||
padding: 20rpx; |
||||
font-size: 28rpx; |
||||
} |
||||
|
||||
.back{ |
||||
padding: 20rpx; |
||||
border-radius: 15rpx; |
||||
background-color: #fff; |
||||
border: 1rpx #eceaea solid; |
||||
} |
@ -0,0 +1,265 @@ |
||||
import WxCanvas from './wx-canvas'; |
||||
import * as echarts from './echarts'; |
||||
|
||||
let ctx; |
||||
|
||||
function compareVersion(v1, v2) { |
||||
v1 = v1.split('.') |
||||
v2 = v2.split('.') |
||||
const len = Math.max(v1.length, v2.length) |
||||
|
||||
while (v1.length < len) { |
||||
v1.push('0') |
||||
} |
||||
while (v2.length < len) { |
||||
v2.push('0') |
||||
} |
||||
|
||||
for (let i = 0; i < len; i++) { |
||||
const num1 = parseInt(v1[i]) |
||||
const num2 = parseInt(v2[i]) |
||||
|
||||
if (num1 > num2) { |
||||
return 1 |
||||
} else if (num1 < num2) { |
||||
return -1 |
||||
} |
||||
} |
||||
return 0 |
||||
} |
||||
|
||||
Component({ |
||||
properties: { |
||||
canvasId: { |
||||
type: String, |
||||
value: 'ec-canvas' |
||||
}, |
||||
|
||||
ec: { |
||||
type: Object |
||||
}, |
||||
|
||||
forceUseOldCanvas: { |
||||
type: Boolean, |
||||
value: false |
||||
} |
||||
}, |
||||
|
||||
data: { |
||||
isUseNewCanvas: false |
||||
}, |
||||
|
||||
ready: function () { |
||||
// Disable prograssive because drawImage doesn't support DOM as parameter
|
||||
// See https://developers.weixin.qq.com/miniprogram/dev/api/canvas/CanvasContext.drawImage.html
|
||||
echarts.registerPreprocessor(option => { |
||||
if (option && option.series) { |
||||
if (option.series.length > 0) { |
||||
option.series.forEach(series => { |
||||
series.progressive = 0; |
||||
}); |
||||
} |
||||
else if (typeof option.series === 'object') { |
||||
option.series.progressive = 0; |
||||
} |
||||
} |
||||
}); |
||||
|
||||
if (!this.data.ec) { |
||||
console.warn('组件需绑定 ec 变量,例:<ec-canvas id="mychart-dom-bar" ' |
||||
+ 'canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>'); |
||||
return; |
||||
} |
||||
|
||||
if (!this.data.ec.lazyLoad) { |
||||
this.init(); |
||||
} |
||||
}, |
||||
|
||||
methods: { |
||||
init: function (callback) { |
||||
const version = wx.getSystemInfoSync().SDKVersion |
||||
|
||||
const canUseNewCanvas = compareVersion(version, '2.9.0') >= 0; |
||||
const forceUseOldCanvas = this.data.forceUseOldCanvas; |
||||
const isUseNewCanvas = canUseNewCanvas && !forceUseOldCanvas; |
||||
this.setData({ isUseNewCanvas }); |
||||
|
||||
if (forceUseOldCanvas && canUseNewCanvas) { |
||||
console.warn('开发者强制使用旧canvas,建议关闭'); |
||||
} |
||||
|
||||
if (isUseNewCanvas) { |
||||
// console.log('微信基础库版本大于2.9.0,开始使用<canvas type="2d"/>');
|
||||
// 2.9.0 可以使用 <canvas type="2d"></canvas>
|
||||
this.initByNewWay(callback); |
||||
} else { |
||||
const isValid = compareVersion(version, '1.9.91') >= 0 |
||||
if (!isValid) { |
||||
console.error('微信基础库版本过低,需大于等于 1.9.91。' |
||||
+ '参见:https://github.com/ecomfe/echarts-for-weixin' |
||||
+ '#%E5%BE%AE%E4%BF%A1%E7%89%88%E6%9C%AC%E8%A6%81%E6%B1%82'); |
||||
return; |
||||
} else { |
||||
console.warn('建议将微信基础库调整大于等于2.9.0版本。升级后绘图将有更好性能'); |
||||
this.initByOldWay(callback); |
||||
} |
||||
} |
||||
}, |
||||
|
||||
initByOldWay(callback) { |
||||
// 1.9.91 <= version < 2.9.0:原来的方式初始化
|
||||
ctx = wx.createCanvasContext(this.data.canvasId, this); |
||||
const canvas = new WxCanvas(ctx, this.data.canvasId, false); |
||||
|
||||
echarts.setCanvasCreator(() => { |
||||
return canvas; |
||||
}); |
||||
// const canvasDpr = wx.getSystemInfoSync().pixelRatio // 微信旧的canvas不能传入dpr
|
||||
const canvasDpr = 1 |
||||
var query = wx.createSelectorQuery().in(this); |
||||
query.select('.ec-canvas').boundingClientRect(res => { |
||||
if (typeof callback === 'function') { |
||||
this.chart = callback(canvas, res.width, res.height, canvasDpr); |
||||
} |
||||
else if (this.data.ec && typeof this.data.ec.onInit === 'function') { |
||||
this.chart = this.data.ec.onInit(canvas, res.width, res.height, canvasDpr); |
||||
} |
||||
else { |
||||
this.triggerEvent('init', { |
||||
canvas: canvas, |
||||
width: res.width, |
||||
height: res.height, |
||||
canvasDpr: canvasDpr // 增加了dpr,可方便外面echarts.init
|
||||
}); |
||||
} |
||||
}).exec(); |
||||
}, |
||||
|
||||
initByNewWay(callback) { |
||||
// version >= 2.9.0:使用新的方式初始化
|
||||
const query = wx.createSelectorQuery().in(this) |
||||
query |
||||
.select('.ec-canvas') |
||||
.fields({ node: true, size: true }) |
||||
.exec(res => { |
||||
const canvasNode = res[0].node |
||||
this.canvasNode = canvasNode |
||||
|
||||
const canvasDpr = wx.getSystemInfoSync().pixelRatio |
||||
const canvasWidth = res[0].width |
||||
const canvasHeight = res[0].height |
||||
|
||||
const ctx = canvasNode.getContext('2d') |
||||
|
||||
const canvas = new WxCanvas(ctx, this.data.canvasId, true, canvasNode) |
||||
echarts.setCanvasCreator(() => { |
||||
return canvas |
||||
}) |
||||
|
||||
if (typeof callback === 'function') { |
||||
this.chart = callback(canvas, canvasWidth, canvasHeight, canvasDpr) |
||||
} else if (this.data.ec && typeof this.data.ec.onInit === 'function') { |
||||
this.chart = this.data.ec.onInit(canvas, canvasWidth, canvasHeight, canvasDpr) |
||||
} else { |
||||
this.triggerEvent('init', { |
||||
canvas: canvas, |
||||
width: canvasWidth, |
||||
height: canvasHeight, |
||||
dpr: canvasDpr |
||||
}) |
||||
} |
||||
}) |
||||
}, |
||||
canvasToTempFilePath(opt) { |
||||
if (this.data.isUseNewCanvas) { |
||||
// 新版
|
||||
const query = wx.createSelectorQuery().in(this) |
||||
query |
||||
.select('.ec-canvas') |
||||
.fields({ node: true, size: true }) |
||||
.exec(res => { |
||||
const canvasNode = res[0].node |
||||
opt.canvas = canvasNode |
||||
wx.canvasToTempFilePath(opt) |
||||
}) |
||||
} else { |
||||
// 旧的
|
||||
if (!opt.canvasId) { |
||||
opt.canvasId = this.data.canvasId; |
||||
} |
||||
ctx.draw(true, () => { |
||||
wx.canvasToTempFilePath(opt, this); |
||||
}); |
||||
} |
||||
}, |
||||
|
||||
touchStart(e) { |
||||
if (this.chart && e.touches.length > 0) { |
||||
var touch = e.touches[0]; |
||||
var handler = this.chart.getZr().handler; |
||||
handler.dispatch('mousedown', { |
||||
zrX: touch.x, |
||||
zrY: touch.y, |
||||
preventDefault: () => {}, |
||||
stopImmediatePropagation: () => {}, |
||||
stopPropagation: () => {} |
||||
}); |
||||
handler.dispatch('mousemove', { |
||||
zrX: touch.x, |
||||
zrY: touch.y, |
||||
preventDefault: () => {}, |
||||
stopImmediatePropagation: () => {}, |
||||
stopPropagation: () => {} |
||||
}); |
||||
handler.processGesture(wrapTouch(e), 'start'); |
||||
} |
||||
}, |
||||
|
||||
touchMove(e) { |
||||
if (this.chart && e.touches.length > 0) { |
||||
var touch = e.touches[0]; |
||||
var handler = this.chart.getZr().handler; |
||||
handler.dispatch('mousemove', { |
||||
zrX: touch.x, |
||||
zrY: touch.y, |
||||
preventDefault: () => {}, |
||||
stopImmediatePropagation: () => {}, |
||||
stopPropagation: () => {} |
||||
}); |
||||
handler.processGesture(wrapTouch(e), 'change'); |
||||
} |
||||
}, |
||||
|
||||
touchEnd(e) { |
||||
if (this.chart) { |
||||
const touch = e.changedTouches ? e.changedTouches[0] : {}; |
||||
var handler = this.chart.getZr().handler; |
||||
handler.dispatch('mouseup', { |
||||
zrX: touch.x, |
||||
zrY: touch.y, |
||||
preventDefault: () => {}, |
||||
stopImmediatePropagation: () => {}, |
||||
stopPropagation: () => {} |
||||
}); |
||||
handler.dispatch('click', { |
||||
zrX: touch.x, |
||||
zrY: touch.y, |
||||
preventDefault: () => {}, |
||||
stopImmediatePropagation: () => {}, |
||||
stopPropagation: () => {} |
||||
}); |
||||
handler.processGesture(wrapTouch(e), 'end'); |
||||
} |
||||
} |
||||
} |
||||
}); |
||||
|
||||
function wrapTouch(event) { |
||||
for (let i = 0; i < event.touches.length; ++i) { |
||||
const touch = event.touches[i]; |
||||
touch.offsetX = touch.x; |
||||
touch.offsetY = touch.y; |
||||
} |
||||
return event; |
||||
} |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"component": true, |
||||
"usingComponents": {} |
||||
} |
@ -0,0 +1,4 @@ |
||||
<!-- 新的:接口对其了H5 --> |
||||
<canvas wx:if="{{isUseNewCanvas}}" type="2d" class="ec-canvas" canvas-id="{{ canvasId }}" bindinit="init" bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}" bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}" bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"></canvas> |
||||
<!-- 旧的 --> |
||||
<canvas wx:else class="ec-canvas" canvas-id="{{ canvasId }}" bindinit="init" bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}" bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}" bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"></canvas> |
@ -0,0 +1,4 @@ |
||||
.ec-canvas { |
||||
width: 100%; |
||||
height: 100%; |
||||
} |
@ -0,0 +1,111 @@ |
||||
export default class WxCanvas { |
||||
constructor(ctx, canvasId, isNew, canvasNode) { |
||||
this.ctx = ctx; |
||||
this.canvasId = canvasId; |
||||
this.chart = null; |
||||
this.isNew = isNew |
||||
if (isNew) { |
||||
this.canvasNode = canvasNode; |
||||
} |
||||
else { |
||||
this._initStyle(ctx); |
||||
} |
||||
|
||||
// this._initCanvas(zrender, ctx);
|
||||
|
||||
this._initEvent(); |
||||
} |
||||
|
||||
getContext(contextType) { |
||||
if (contextType === '2d') { |
||||
return this.ctx; |
||||
} |
||||
} |
||||
|
||||
// canvasToTempFilePath(opt) {
|
||||
// if (!opt.canvasId) {
|
||||
// opt.canvasId = this.canvasId;
|
||||
// }
|
||||
// return wx.canvasToTempFilePath(opt, this);
|
||||
// }
|
||||
|
||||
setChart(chart) { |
||||
this.chart = chart; |
||||
} |
||||
|
||||
addEventListener() { |
||||
// noop
|
||||
} |
||||
|
||||
attachEvent() { |
||||
// noop
|
||||
} |
||||
|
||||
detachEvent() { |
||||
// noop
|
||||
} |
||||
|
||||
_initCanvas(zrender, ctx) { |
||||
zrender.util.getContext = function () { |
||||
return ctx; |
||||
}; |
||||
|
||||
zrender.util.$override('measureText', function (text, font) { |
||||
ctx.font = font || '12px sans-serif'; |
||||
return ctx.measureText(text); |
||||
}); |
||||
} |
||||
|
||||
_initStyle(ctx) { |
||||
ctx.createRadialGradient = () => { |
||||
return ctx.createCircularGradient(arguments); |
||||
}; |
||||
} |
||||
|
||||
_initEvent() { |
||||
this.event = {}; |
||||
const eventNames = [{ |
||||
wxName: 'touchStart', |
||||
ecName: 'mousedown' |
||||
}, { |
||||
wxName: 'touchMove', |
||||
ecName: 'mousemove' |
||||
}, { |
||||
wxName: 'touchEnd', |
||||
ecName: 'mouseup' |
||||
}, { |
||||
wxName: 'touchEnd', |
||||
ecName: 'click' |
||||
}]; |
||||
eventNames.forEach(name => { |
||||
this.event[name.wxName] = e => { |
||||
const touch = e.touches[0]; |
||||
this.chart.getZr().handler.dispatch(name.ecName, { |
||||
zrX: name.wxName === 'tap' ? touch.clientX : touch.x, |
||||
zrY: name.wxName === 'tap' ? touch.clientY : touch.y, |
||||
preventDefault: () => {}, |
||||
stopImmediatePropagation: () => {}, |
||||
stopPropagation: () => {} |
||||
}); |
||||
}; |
||||
}); |
||||
} |
||||
|
||||
set width(w) { |
||||
if (this.canvasNode) this.canvasNode.width = w |
||||
} |
||||
set height(h) { |
||||
if (this.canvasNode) this.canvasNode.height = h |
||||
} |
||||
|
||||
get width() { |
||||
if (this.canvasNode) |
||||
return this.canvasNode.width |
||||
return 0 |
||||
} |
||||
get height() { |
||||
if (this.canvasNode) |
||||
return this.canvasNode.height |
||||
return 0 |
||||
} |
||||
} |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
@ -0,0 +1,118 @@ |
||||
// pages/about/about.js
|
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
username:'立即登录' |
||||
|
||||
}, |
||||
|
||||
bindWx(){ |
||||
wx.showModal({ |
||||
title: '绑定微信', |
||||
content: '平台账号与微信账号绑定后,可以直接用微信进行登录,是否进行绑定?', |
||||
confirmText:'绑定', |
||||
complete: (res) => { |
||||
if (res.confirm) { |
||||
wx.login({ |
||||
success: (res) => { |
||||
// console.log(res);
|
||||
}, |
||||
}) |
||||
} |
||||
if (res.cancel) { |
||||
|
||||
}
|
||||
} |
||||
}) |
||||
}, |
||||
|
||||
goQueryme(){ |
||||
wx.navigateTo({ |
||||
url: '../queryme/queryme', |
||||
}) |
||||
}, |
||||
|
||||
goQuerythree(){ |
||||
wx.navigateTo({ |
||||
url: '../querythree/querythree', |
||||
}) |
||||
}, |
||||
|
||||
goQueryfrei(){ |
||||
wx.navigateTo({ |
||||
url: '../queryfrei/queryfrei', |
||||
}) |
||||
}, |
||||
|
||||
goFeekback(){ |
||||
wx.navigateTo({ |
||||
url: '../feedback/feedback', |
||||
}) |
||||
}, |
||||
|
||||
goLogin(){ |
||||
wx.navigateTo({ |
||||
url: '../login/login', |
||||
}) |
||||
}, |
||||
|
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "我的" |
||||
} |
@ -0,0 +1,39 @@ |
||||
<!--pages/about/about.wxml--> |
||||
<view class="box"> |
||||
|
||||
<view class="top" > |
||||
<view class="userinfo"> |
||||
<open-data type="userAvatarUrl"class="userimg" ></open-data> |
||||
<!-- <open-data type="userNickName"></open-data> --> |
||||
<view class="userNickName" bindtap="goLogin">{{username}}</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="com"> |
||||
<view class="con"> |
||||
<image src="../../images/绑定微信.png" bindtap="bindWx"></image> |
||||
<view class="text">绑定微信</view> |
||||
</view> |
||||
<view class="con" bindtap="goQueryme"> |
||||
<image src="../../images/统计.png"></image> |
||||
<view class="text">自建物流查询</view> |
||||
</view> |
||||
<view class="con" bindtap="goQuerythree"> |
||||
<image src="../../images/统计.png"></image> |
||||
<view class="text">第三方物流查询</view> |
||||
</view> |
||||
<view class="con" bindtap="goQueryfrei"> |
||||
<image src="../../images/统计.png"></image> |
||||
<view class="text">货运物流查询</view> |
||||
</view> |
||||
<view class="con" bindtap="goFeekback"> |
||||
<image src="../../images/意见反馈.png"></image> |
||||
<view class="text">意见反馈</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="out" >退出登录</view> |
||||
|
||||
</view> |
@ -0,0 +1,63 @@ |
||||
/* pages/about/about.wxss */ |
||||
|
||||
.top{ |
||||
padding: 20rpx; |
||||
min-height: 350rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
|
||||
.userinfo{ |
||||
padding: 10rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
|
||||
.userimg{ |
||||
width: 160rpx; |
||||
height: 160rpx; |
||||
display: inline-block; |
||||
overflow: hidden; |
||||
border-radius: 50%; |
||||
border: 1rpx solid #eee; |
||||
margin-right: 40rpx; |
||||
} |
||||
.userNickName{ |
||||
font-size: 30rpx; |
||||
} |
||||
|
||||
|
||||
.com{ |
||||
width: 100%; |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
height: 350rpx; |
||||
} |
||||
.con{ |
||||
width: 140rpx; |
||||
margin-left: 10rpx; |
||||
text-align: center; |
||||
margin-top: 40rpx; |
||||
width: 200rpx; |
||||
} |
||||
.con image{ |
||||
width: 70rpx; |
||||
height: 60rpx; |
||||
} |
||||
.con .text{ |
||||
font-size: 22rpx; |
||||
} |
||||
|
||||
.out{ |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
color: #fff; |
||||
font-size: 30rpx; |
||||
width: 100%; |
||||
height: 80rpx; |
||||
border:2rpx #888 solid; |
||||
background-color: #ff8c8c; |
||||
margin-top: 250rpx; |
||||
border-radius: 15rpx; |
||||
} |
@ -0,0 +1,66 @@ |
||||
// pages/details/details.js
|
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "详情" |
||||
} |
@ -0,0 +1,53 @@ |
||||
<!--pages/details/details.wxml--> |
||||
<view class="box"> |
||||
<view class="back"> |
||||
<view class="cen"> |
||||
<label>样本条码:</label> |
||||
<view>2023050002</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>接收时间:</label> |
||||
<view>2023-5-12 11:32</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>样本状态:</label> |
||||
<view>已接收</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>物流单号:</label> |
||||
<view>M2023055568</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>物流单位:</label> |
||||
<view>顺丰</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>日 期:</label> |
||||
<view>2023-5-12 11:32</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>物流费用:</label> |
||||
<view>20.00</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>到达日期:</label> |
||||
<view>2023-5-12 16:00</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>转运箱号:</label> |
||||
<view>Z564687</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>物流车号:</label> |
||||
<view>京B85D6S</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>物流员:</label> |
||||
<view>张三</view> |
||||
</view> |
||||
<view class="cen"> |
||||
<label>备 注:</label> |
||||
<view>无</view> |
||||
</view> |
||||
</view> |
||||
</view> |
@ -0,0 +1,18 @@ |
||||
/* pages/details/details.wxss */ |
||||
.cen{ |
||||
/* border-bottom: 1rpx #ececec solid; */ |
||||
padding: 10rpx 20rpx; |
||||
display: flex; |
||||
} |
||||
.cen label{ |
||||
width: 150rpx; |
||||
text-align: right; |
||||
margin-right: 20rpx; |
||||
} |
||||
.cen view{ |
||||
background-color: #eee; |
||||
padding: 10rpx 30rpx; |
||||
width: 300rpx; |
||||
flex: 1; |
||||
border-radius: 15rpx; |
||||
} |
@ -0,0 +1,130 @@ |
||||
// pages/feedback/feedback.js
|
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
array: ['请选择 >','bug问题', '业务问题', '功能使用问题', '其他'], |
||||
objectArray: [ |
||||
{ |
||||
id: 0, |
||||
name: '请选择 >' |
||||
}, |
||||
{ |
||||
id: 1, |
||||
name: 'bug问题' |
||||
}, |
||||
{ |
||||
id: 2, |
||||
name: '业务问题' |
||||
}, |
||||
{ |
||||
id: 3, |
||||
name: '功能使用问题' |
||||
}, |
||||
{ |
||||
id: 4, |
||||
name: '其他' |
||||
} |
||||
], |
||||
index: 0, |
||||
srxI:'' |
||||
}, |
||||
|
||||
bindPickerChange (e) { |
||||
this.setData({ |
||||
index: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
goMyorder(){ |
||||
wx.switchTab({ |
||||
url: '../about/about', |
||||
}) |
||||
}, |
||||
|
||||
addImage(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
this.setData({ |
||||
srcI:res.tempFiles[0].tempFilePath |
||||
}) |
||||
console.log(this.data.srcI) |
||||
console.log(res.tempFiles[0].tempFilePath) |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
|
||||
//上传图片接口地址
|
||||
// up(){
|
||||
// console.log(this.data.srcI)
|
||||
// wx.uploadFile({
|
||||
// filePath: this.data.srcI,
|
||||
// name: 'file',
|
||||
// url: '',
|
||||
// })
|
||||
// },
|
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "意见反馈" |
||||
} |
@ -0,0 +1,28 @@ |
||||
<!--pages/feedback/feedback.wxml--> |
||||
<view style="background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1);padding:20rpx;min-height: 1400rpx;" > |
||||
|
||||
<view style="background-color: #fff;padding: 20rpx 30rpx 100rpx 30rpx;border-radius: 15rpx;"> |
||||
<view style="font-size: 28rpx;"> |
||||
<view style="display: flex;"> |
||||
<text>问题类型</text> |
||||
<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}" style="flex: 1;"> |
||||
<text class="why">{{array[index]}}</text> |
||||
</picker> |
||||
</view> |
||||
<textarea class="textarea" placeholder="补充描述,有助于更好的处理问题。" placeholder-class="place"></textarea> |
||||
</view> |
||||
|
||||
<view style="margin-top: 60rpx; font-size: 26rpx;"> |
||||
<view>上传图片/截图</view> |
||||
<view class="addimg"> |
||||
<image src="../../images/banner.png"></image> |
||||
<view bindtap="addImage">+</view> |
||||
</view> |
||||
</view> |
||||
|
||||
</view> |
||||
|
||||
|
||||
<button class="btn" bindtap="goMyorder">提 交</button> |
||||
|
||||
</view> |
@ -0,0 +1,59 @@ |
||||
/* pages/feedback/feedback.wxss */ |
||||
page{ |
||||
background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1) |
||||
} |
||||
|
||||
.why{ |
||||
border: 1px #333 solid; |
||||
display: inline-block; |
||||
width: 240rpx; |
||||
text-align: right; |
||||
margin-left: 20rpx; |
||||
padding: 3rpx 10rpx; |
||||
color: #5f5e5e; |
||||
border-radius: 5rpx; |
||||
} |
||||
|
||||
.place{ |
||||
color: #b3b1b1; |
||||
} |
||||
|
||||
.textarea{ |
||||
border: 2rpx #333 solid; |
||||
text-align: left; |
||||
max-width: 450rpx; |
||||
height: 180rpx; |
||||
margin: 0 auto; |
||||
margin-top: 20rpx; |
||||
font-size: 24rpx; |
||||
padding: 20rpx; |
||||
} |
||||
|
||||
.addimg{ |
||||
text-align: center; |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
justify-content: center; |
||||
margin-top: 20rpx; |
||||
} |
||||
.addimg image{ |
||||
width: 200rpx; |
||||
height: 200rpx; |
||||
border-radius: 15rpx; |
||||
margin-right: 10rpx; |
||||
} |
||||
.addimg view{ |
||||
border-radius:15rpx ; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
width: 200rpx; |
||||
height: 200rpx; |
||||
border:1rpx #222 solid; |
||||
} |
||||
|
||||
.btn{ |
||||
background-color: #5dc2c4; |
||||
color: #fff; |
||||
margin-top: 100rpx; |
||||
} |
@ -0,0 +1,232 @@ |
||||
var datePicker = require('../../utils/dateSetting') |
||||
|
||||
Page({ |
||||
data: { |
||||
list:[ |
||||
{ |
||||
'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' |
||||
} |
||||
], |
||||
pipenum:'', |
||||
ins: ['私家车','大巴',], |
||||
date: '', |
||||
start:'2020-01-01', |
||||
end:'', |
||||
|
||||
time: '', |
||||
multiArray: [], |
||||
multiIndex: [0, 0, 0, 0, 0], |
||||
choose_year: "", |
||||
srcArray:[] |
||||
|
||||
}, |
||||
|
||||
scacode(){ |
||||
wx.scanCode({ |
||||
success:(res)=>{ |
||||
console.log(res.result); |
||||
this.setData({ |
||||
pipenum:res.result |
||||
}) |
||||
} |
||||
}) |
||||
}, |
||||
|
||||
phot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
console.log(this.data.srcI) |
||||
console.log(res.tempFiles[0].tempFilePath) |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
//上传图片接口地址
|
||||
// up(){
|
||||
// console.log(this.data.srcI)
|
||||
// wx.uploadFile({
|
||||
// filePath: this.data.srcI,
|
||||
// name: 'file',
|
||||
// url: '',
|
||||
// })
|
||||
// },
|
||||
|
||||
bushPhot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
|
||||
boxPhot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
|
||||
//送检机构
|
||||
bindPickerChange(e) { |
||||
this.setData({ |
||||
index: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
//日期
|
||||
bindDateChange(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
date:e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
//最后呈现时间的函数。
|
||||
bindMultiPickerChange: function (e) { |
||||
var dateStr = this.data.multiArray[0][this.data.multiIndex[0]] + |
||||
this.data.multiArray[1][this.data.multiIndex[1]] + |
||||
this.data.multiArray[2][this.data.multiIndex[2]] + |
||||
this.data.multiArray[3][this.data.multiIndex[3]] + |
||||
this.data.multiArray[4][this.data.multiIndex[4]]; |
||||
this.setData({ |
||||
time: dateStr |
||||
}) |
||||
}, |
||||
|
||||
//当时间选择器呈现并进行滚动选择时间时调用该函数。开始
|
||||
bindMultiPickerColumnChange: function (e) { |
||||
//e.detail.column记录哪一行发生改变,e.detail.value记录改变的值(相当于multiIndex)
|
||||
switch (e.detail.column) { |
||||
//这里case的值有0/1/2/3/4,但除了需要记录年和月来确定具体的天数外,其他的都可以暂不在switch中处理。
|
||||
case 0: |
||||
//记录改变的年的值
|
||||
let year = this.data.multiArray[0][e.detail.value]; |
||||
this.setData({ |
||||
choose_year: year.substring(0, year.length - 1) |
||||
}) |
||||
break; |
||||
case 1: |
||||
//根据选择的年与月,确定天数,并改变multiArray中天的具体值
|
||||
let month = this.data.multiArray[1][e.detail.value]; |
||||
let dayDates = datePicker.determineDay(this.data.choose_year, month.substring(0, month.length - 1)); |
||||
//这里需要额外注意,改变page中设定的data,且只要改变data中某一个值,可以采用下面这种方法
|
||||
this.setData({ |
||||
['multiArray[2]']: dayDates |
||||
}) |
||||
break; |
||||
} |
||||
//改变一个一维数组中某一个值,可供参考。
|
||||
this.setData({ |
||||
["multiIndex[" + e.detail.column + "]"]: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
|
||||
|
||||
|
||||
goDetail(){ |
||||
wx.navigateTo({ |
||||
url: '../details/details', |
||||
}) |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
let now = new Date(); //获取时间
|
||||
let year = now.getFullYear(); //获取当前年
|
||||
let month = now.getMonth() + 1; //获取当前月份
|
||||
this.setData({ |
||||
end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2),//当前的时间
|
||||
|
||||
//开始
|
||||
multiArray: |
||||
[ |
||||
[year + "年", year + 1 + "年", year + 2 + "年"], |
||||
datePicker.determineMonth(), |
||||
datePicker.determineDay(year, month), |
||||
datePicker.determineHour(), |
||||
datePicker.determineMinute() |
||||
], |
||||
})
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "物流签收" |
||||
} |
@ -0,0 +1,101 @@ |
||||
|
||||
<view class="box"> |
||||
|
||||
<view class="back"> |
||||
<view class="top"> |
||||
<input type="text" value="{{pipenum}}"/> |
||||
<view style="background-color: #eee;" bindtap="scacode">扫 码</view> |
||||
<view style="background-color: #23c559; color: #fff;" bindtap="phot">拍 照</view> |
||||
</view> |
||||
|
||||
<view class="form"> |
||||
<picker class="from-con" bindchange="bindPickerChange" value="{{index}}" range="{{ins}}"> |
||||
<label>转运方式:</label> |
||||
<input type="text" disabled="true" placeholder="请选择转运方式" placeholder-class="place" value="{{ins[index]}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>转运箱号</label> |
||||
<input type="text" placeholder="转运箱号" placeholder-class="place" value=""/> |
||||
</view> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con"> |
||||
<label>日 期:</label> |
||||
<input type="text" disabled="true" placeholder="请选择日期" placeholder-class="place" value="{{date}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流电话:</label> |
||||
<input type="text" placeholder="物流电话" placeholder-class="place"/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>物流费用:</label> |
||||
<input type="text" placeholder="物流费用" placeholder-class="place" value=""/> |
||||
</view> |
||||
<picker class="from-con" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"> |
||||
<label>到达时间:</label> |
||||
<input value='{{time}}' placeholder='请选择到达时间' placeholder-class="place" disabled="true"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>车牌号:</label> |
||||
<input type="text" placeholder="车牌号" placeholder-class="place" value=""/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>物流员:</label> |
||||
<input type="text" placeholder="物流员" placeholder-class="place" value=""/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>备 注:</label> |
||||
<input type="text" placeholder="备注" placeholder-class="place" value=""/> |
||||
</view> |
||||
|
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="bush"> |
||||
<view style="flex: 1;">物流车拍照</view> |
||||
<button bindtap="bushPhot">拍 照</button> |
||||
</view> |
||||
<view class="bush-img"> |
||||
<image src="../../images/bush.png"></image> |
||||
<image src="../../images/bush.png"></image> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="bush"> |
||||
<view style="flex: 1;">转运箱拍照</view> |
||||
<button bindtap="boxPhot">拍 照</button> |
||||
</view> |
||||
<view class="bush-img"> |
||||
<image src="../../images/bush.png"></image> |
||||
<image src="../../images/bush.png"></image> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="con"> |
||||
<view style="flex: 1;">总计:200/管数</view> |
||||
<button style="background-color: #ddd;">修 改</button> |
||||
<button style="color: #fff;">保 存</button> |
||||
</view> |
||||
|
||||
<scroll-view scroll-x class="tabel"> |
||||
<view class="tr tab-top"> |
||||
<view class="td1">序号</view> |
||||
<view class="td">样本条码号</view> |
||||
<view class="td">接收时间</view> |
||||
<view class="td">样本状态</view> |
||||
<view class="td">物流员</view> |
||||
<view class="td">物流单号</view> |
||||
</view> |
||||
<view class="tr" wx:for="{{list}}" wx:key="index" bindtap="goDetail"> |
||||
<view class="td1">{{item.id}}</view> |
||||
<view class="td">{{item.number}}</view> |
||||
<view class="td">{{item.time}}</view> |
||||
<view class="td">{{item.status}}</view> |
||||
<view class="td">{{item.name}}</view> |
||||
<view class="td">{{item.num}}</view> |
||||
</view> |
||||
</scroll-view> |
||||
</view> |
||||
|
||||
</view> |
@ -0,0 +1,139 @@ |
||||
/* pages/meLogistics/meLogistics.wxss */ |
||||
|
||||
.top{ |
||||
display: flex; |
||||
justify-content: center; |
||||
font-size: 28rpx; |
||||
} |
||||
.top input{ |
||||
border: 1rpx #333 solid; |
||||
border-radius: 10rpx; |
||||
padding: 5rpx 10rpx; |
||||
} |
||||
.top view{ |
||||
width: 135rpx; |
||||
margin-left: 20rpx; |
||||
background-color: #eee; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
border-radius: 10rpx; |
||||
color: #333; |
||||
font-weight: 700; |
||||
} |
||||
|
||||
.form{ |
||||
background-color: #fff; |
||||
border-radius: 15rpx; |
||||
padding: 0rpx 30rpx; |
||||
margin-bottom: 15rpx; |
||||
} |
||||
.form .from-con{ |
||||
font-size: 28rpx; |
||||
border-bottom: 2rpx #eee solid; |
||||
position: relative; |
||||
margin-top: 25rpx; |
||||
} |
||||
.from-con label{ |
||||
position: absolute; |
||||
top: 5rpx; |
||||
font-weight: 900; |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
.from-con input{ |
||||
text-align: right; |
||||
padding: 10rpx; |
||||
} |
||||
.place{ |
||||
color:#c4bfbf; |
||||
} |
||||
|
||||
.bush{ |
||||
display: flex; |
||||
justify-content:space-between; |
||||
align-items: center; |
||||
} |
||||
.bush button{ |
||||
width: 200rpx !important; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
font-size: 28rpx; |
||||
background-color: #23c559; |
||||
color:#fff; |
||||
height: 55rpx; |
||||
} |
||||
.bush-img{ |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
justify-content:space-around; |
||||
padding: 20rpx 10rpx; |
||||
} |
||||
.bush-img image{ |
||||
width: 270rpx; |
||||
height: 230rpx; |
||||
margin-top: 10rpx; |
||||
border: 1rpx solid #999; |
||||
/* border-radius: 15rpx; */ |
||||
} |
||||
.back{ |
||||
margin-top: 15rpx; |
||||
} |
||||
|
||||
.con{ |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
.con button{ |
||||
width: 170rpx !important; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
font-size: 28rpx; |
||||
background-color: rgb(245, 90, 90); |
||||
height: 55rpx; |
||||
margin-left: 10rpx !important; |
||||
} |
||||
|
||||
.tabel{ |
||||
margin-top: 20rpx; |
||||
width: 100%; |
||||
border: 1rpx #ddd solid; |
||||
|
||||
} |
||||
.tabel .tr{ |
||||
display: flex; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
} |
||||
.tr .td{ |
||||
border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 200rpx; |
||||
} |
||||
.tab-top view{ |
||||
background-color: #51bdbe; |
||||
color:#fff; |
||||
font-weight: 700; |
||||
font-size: 28rpx; |
||||
} |
||||
.td1{ |
||||
border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 100rpx; |
||||
} |
@ -0,0 +1,85 @@ |
||||
// pages/handover/handover.js
|
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
date: '', |
||||
start:'2020-01-01', |
||||
end:'', |
||||
}, |
||||
|
||||
sx(){ |
||||
this.onLoad() |
||||
console.log("123"); |
||||
}, |
||||
|
||||
bindDateChange(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
date:e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
let now = new Date(); //获取时间
|
||||
let year = now.getFullYear(); //获取当前年
|
||||
let month = now.getMonth() + 1; //获取当前月份
|
||||
this.setData({ |
||||
end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2), |
||||
}) //当前的时间
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "物流交接" |
||||
} |
@ -0,0 +1,54 @@ |
||||
<!--pages/handover/handover.wxml--> |
||||
<view class="box"> |
||||
<view class="top">物流单号M2023020200012已签收。签收时间:2023年6月14日 14:36</view> |
||||
|
||||
<view class="back"> |
||||
<view style="display: flex;" class="from-con"> |
||||
<text>日 期:</text> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con"> |
||||
<input type="text" disabled="true" placeholder="请选择日期 >" placeholder-class="place" value="{{date}}"/> |
||||
</picker> |
||||
<button class="f5" bindtap="sx">刷 新</button> |
||||
</view> |
||||
|
||||
<scroll-view scroll-y class="allordernum"> |
||||
<view style="background-color: #ffe4c4;">物流单号:M2023051500231</view> |
||||
<view style="background-color: #ddd;">物流单号:M2023051500232</view> |
||||
<view style="background-color: #e0f7ac;">物流单号:M2023051500233</view> |
||||
<view style="background-color: #e0f7ac;">物流单号:M2023051500234</view> |
||||
<view style="background-color: #e0f7ac;">物流单号:M2023051500235</view> |
||||
</scroll-view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<scroll-view scroll-x style="width: 100%; border: 1rpx #ddd solid;"> |
||||
<view class="tr top1" > |
||||
<view class="td td1">序号</view> |
||||
<view class="td">样本号</view> |
||||
<view class="td">送检机构</view> |
||||
<view class="td td2">日期</view> |
||||
<view class="td">转运箱号</view> |
||||
<view class="td">交接人</view> |
||||
<view class="td">状态</view> |
||||
</view> |
||||
<view class="tr" > |
||||
<view class="td td1">1</view> |
||||
<view class="td">Y100008645</view> |
||||
<view class="td">XX卫生院</view> |
||||
<view class="td td2">2023-6-26</view> |
||||
<view class="td">X254687</view> |
||||
<view class="td">李四</view> |
||||
<view class="td">已核收</view> |
||||
</view> |
||||
<view class="tr" > |
||||
<view class="td td1">2</view> |
||||
<view class="td">Y100008645</view> |
||||
<view class="td">XX卫生院</view> |
||||
<view class="td td2">2023-6-26</view> |
||||
<view class="td">X254687</view> |
||||
<view class="td">张三</view> |
||||
<view class="td">已核收</view> |
||||
</view> |
||||
</scroll-view> |
||||
</view> |
||||
</view> |
@ -0,0 +1,84 @@ |
||||
/* pages/handover/handover.wxss */ |
||||
.back{ |
||||
margin-top: 15rpx; |
||||
} |
||||
.top{ |
||||
background-color: #fff; |
||||
padding: 10rpx 10rpx; |
||||
font-size: 22rpx; |
||||
border-radius: 15rpx; |
||||
} |
||||
|
||||
.from-con{ |
||||
display: flex; |
||||
align-items: center; |
||||
position: relative; |
||||
} |
||||
.from-con input{ |
||||
width: 250rpx; |
||||
border: 1rpx #666 solid; |
||||
padding: 3rpx 10rpx; |
||||
text-align: right; |
||||
} |
||||
.place{ |
||||
color:#c4bfbf; |
||||
} |
||||
.f5{ |
||||
width: 200rpx !important; |
||||
font-size: 28rpx; |
||||
background-color: #eee; |
||||
border: 1rpx #ddd solid; |
||||
height: 60rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
position: relative; |
||||
left: 40rpx; |
||||
} |
||||
|
||||
|
||||
.allordernum{ |
||||
margin-top: 20rpx; |
||||
/* border: 1rpx #999 solid; */ |
||||
background-color: #f1f1f1; |
||||
border: 1rpx #eee solid; |
||||
border-radius: 15rpx; |
||||
width: 100%; |
||||
height: 350rpx; |
||||
padding: 20rpx 0 ; |
||||
} |
||||
.allordernum view{ |
||||
padding: 20rpx; |
||||
background-color: #eee; |
||||
width: 88%; |
||||
margin: 0 auto; |
||||
margin-bottom: 15rpx; |
||||
border-radius: 15rpx; |
||||
} |
||||
|
||||
|
||||
.tr{ |
||||
display: flex; |
||||
width: 100%; |
||||
|
||||
} |
||||
.tr .td{ |
||||
/* border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; */ |
||||
border: 1rpx #ddd solid; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 150rpx; |
||||
} |
||||
.top1 view{ |
||||
background-color: #6bc9ca; |
||||
color: #fff; |
||||
} |
||||
.td1{ |
||||
min-width: 100rpx !important; |
||||
} |
@ -0,0 +1,137 @@ |
||||
// pages/index/index.js
|
||||
import * as echarts from "../../components/echarts/echarts"; |
||||
function initChart(canvas, width, height, dpr) { |
||||
const chart = echarts.init(canvas, null, { |
||||
width: width, |
||||
height: height, |
||||
devicePixelRatio: dpr |
||||
}); |
||||
canvas.setChart(chart); |
||||
|
||||
var option = { |
||||
tooltip: { |
||||
trigger: 'axis', |
||||
axisPointer: { |
||||
type: 'shadow' |
||||
} |
||||
}, |
||||
legend: {}, |
||||
grid: { |
||||
left: '3%', |
||||
right: '4%', |
||||
bottom: '3%', |
||||
containLabel: true |
||||
}, |
||||
xAxis: { |
||||
|
||||
type: 'category', |
||||
data: ['一月', '二月', '三月', '四月', '五月', '六月'] |
||||
}, |
||||
yAxis: { |
||||
type: 'value', |
||||
boundaryGap: [0, 0.01] |
||||
}, |
||||
series: [ |
||||
{ |
||||
name: '核收数', |
||||
type: 'bar', |
||||
data: [10, 20, 46, 120, 90, 80] |
||||
}, |
||||
{ |
||||
name: '接收数', |
||||
type: 'bar', |
||||
data: [20, 56, 46, 30, 45, 60] |
||||
} |
||||
] |
||||
}; |
||||
chart.setOption(option); |
||||
|
||||
return chart; |
||||
}; |
||||
|
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
ec: { |
||||
onInit: initChart |
||||
}, |
||||
}, |
||||
|
||||
//自建物流
|
||||
goMelogistics(){ |
||||
wx.navigateTo({ |
||||
url: '../meLogistics/meLogistics', |
||||
}) |
||||
}, |
||||
|
||||
goThreelogistics(){ |
||||
wx.navigateTo({ |
||||
url: '../threeLogistics/threeLogistics', |
||||
}) |
||||
}, |
||||
|
||||
goHandover(){ |
||||
wx.navigateTo({ |
||||
url: '../handover/handover', |
||||
}) |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,6 @@ |
||||
{ |
||||
"usingComponents": { |
||||
"ec-canvas":"../../components/echarts/ec-canvas" |
||||
}, |
||||
"navigationBarTitleText": "首页" |
||||
} |
@ -0,0 +1,37 @@ |
||||
<!--pages/index/index.wxml--> |
||||
<swiper class="banner" autoplay="true" interval="3000" circular="true" indicator-dots='true'> |
||||
<swiper-item> |
||||
<image src="../../images/banner.png"/> |
||||
</swiper-item> |
||||
<swiper-item> |
||||
<image src="../../images/banner.png"/> |
||||
</swiper-item> |
||||
</swiper> |
||||
|
||||
<view class="msg">消息:XXX医院样本转运完成,完成时间:2023年6月14日</view> |
||||
|
||||
|
||||
<view style="padding: 20rpx;"> |
||||
<view class="back"> |
||||
<view class="produck-type" bindtap="goMelogistics"> |
||||
<view class="item"> |
||||
<image src="../../images/自建物流.png"></image> |
||||
<view>自建物流</view> |
||||
</view> |
||||
<view class="item" bindtap="goThreelogistics"> |
||||
<image src="../../images/第三方物流.png"></image> |
||||
<view>第三方物流</view> |
||||
</view> |
||||
<view class="item"> |
||||
<image src="../../images/货运物流.png"></image> |
||||
<view>货运物流</view> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="ec-container"> |
||||
<ec-canvas canvas-id="echart-pie" ec="{{ec}}"></ec-canvas> |
||||
</view> |
||||
|
||||
<button class="btn" bindtap="goHandover">物流交接</button> |
||||
</view> |
@ -0,0 +1,70 @@ |
||||
/* pages/index/index.wxss */ |
||||
.banner{ |
||||
width: 100%; |
||||
height: 400rpx; |
||||
} |
||||
.banner image{ |
||||
width: 100%; |
||||
height: 400rpx; |
||||
} |
||||
|
||||
.msg{ |
||||
background-color: #fff; |
||||
font-size: 26rpx; |
||||
padding: 10rpx; |
||||
text-align: center; |
||||
} |
||||
|
||||
.produck-type{ |
||||
border-radius: 15rpx ; |
||||
display: flex; |
||||
width: 100%; |
||||
background-color: #fff; |
||||
padding: 15rpx 0rpx; |
||||
margin-top: 10rpx; |
||||
/* margin-bottom: 20rpx; */ |
||||
font-size: 26rpx; |
||||
justify-content:space-between; |
||||
} |
||||
.item{ |
||||
width: 30%; |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
justify-content: center; |
||||
} |
||||
.item image{ |
||||
width: 80rpx; |
||||
height: 80rpx; |
||||
} |
||||
|
||||
.btn{ |
||||
background-color: #3ec6c9; |
||||
color: #fff; |
||||
margin-top: 20rpx; |
||||
border: 1rpx #d1d0d0 solid; |
||||
width: 500rpx !important; |
||||
} |
||||
|
||||
|
||||
.ec-container { |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
justify-content: center; |
||||
width: 100%; |
||||
height: 450rpx; |
||||
background-color: #fff; |
||||
border-radius: 15rpx; |
||||
margin-top: 15rpx; |
||||
padding: 20rpx 0; |
||||
} |
||||
|
||||
ec-canvas { |
||||
width: 100%; |
||||
height: 100%; |
||||
} |
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,66 @@ |
||||
// pages/login/login.js
|
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "登录" |
||||
} |
@ -0,0 +1,18 @@ |
||||
<!--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 style="background-color: #fff; width: 650rpx; border-radius: 20rpx; margin: 0 auto; padding: 30rpx 0;"> |
||||
|
||||
<view class="text"> |
||||
<label>账号:</label> |
||||
<input type="text" placeholder="请输入账号" value="{{username}}" bindinput="getUsername" data-value="username"/> |
||||
</view> |
||||
|
||||
<view class="text"> |
||||
<label>密码:</label> |
||||
<input type="password" placeholder="请输入密码" value="{{userpwd}}" bindinput="getUserpwd" data-value="userpwd"/> |
||||
</view> |
||||
|
||||
<button class="btn" bindtap="login">登 录</button> |
||||
|
||||
</view> |
@ -0,0 +1,43 @@ |
||||
/* pages/login/login.wxss */ |
||||
/* pages/login/login.wxss */ |
||||
page{ |
||||
background: -webkit-linear-gradient(top,#27adb0,#b6f0f0,#f8f8f8); |
||||
padding-top: 250rpx; |
||||
} |
||||
|
||||
.text{ |
||||
display: flex; |
||||
/* background-color: #f1f1f1; */ |
||||
border-radius: 20rpx; |
||||
width: 600rpx; |
||||
margin: 0 auto; |
||||
padding: 20rpx; |
||||
align-items: center; |
||||
} |
||||
.text label{ |
||||
font-weight: 900; |
||||
font-size: 30rpx; |
||||
color: #333; |
||||
} |
||||
.text input{ |
||||
font-size: 28rpx; |
||||
background-color: #f5f5f5; |
||||
width: 70%; |
||||
height: 60rpx; |
||||
padding: 0 20rpx; |
||||
border-radius: 20rpx; |
||||
} |
||||
|
||||
.btn{ |
||||
border-radius: 20rpx; |
||||
height: 60rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
font-size: 30rpx; |
||||
font-weight: 500; |
||||
background-color: #259c9e; |
||||
color: #fff; |
||||
margin-top: 30rpx; |
||||
width: 300rpx !important; |
||||
} |
@ -0,0 +1,299 @@ |
||||
// pages/meLogistics/meLogistics.js
|
||||
|
||||
var datePicker = require('../../utils/dateSetting') |
||||
|
||||
//设定当前的时间,将其设定为常量
|
||||
|
||||
|
||||
|
||||
Page({ |
||||
data: { |
||||
list:[ |
||||
{ |
||||
'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' |
||||
} |
||||
], |
||||
pipenum:'', |
||||
ins: ['xx卫生院','xx门诊',], |
||||
bushList:['私家车','大巴','顺丰','其他'], |
||||
bush:'', |
||||
date: '', |
||||
start:'2020-01-01', |
||||
end:'', |
||||
//开始
|
||||
time: '', |
||||
multiArray: [], |
||||
multiIndex: [0, 0, 0, 0, 0], |
||||
choose_year: "", |
||||
//结束
|
||||
time1: '', |
||||
multiArray1: [], |
||||
multiIndex1: [0, 0, 0, 0, 0], |
||||
choose_year1: "", |
||||
|
||||
srcArray:[] |
||||
|
||||
}, |
||||
|
||||
scacode(){ |
||||
wx.scanCode({ |
||||
success:(res)=>{ |
||||
console.log(res.result); |
||||
this.setData({ |
||||
pipenum:res.result |
||||
}) |
||||
} |
||||
}) |
||||
}, |
||||
|
||||
phot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
console.log(this.data.srcI) |
||||
console.log(res.tempFiles[0].tempFilePath) |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
//上传图片接口地址
|
||||
// up(){
|
||||
// console.log(this.data.srcI)
|
||||
// wx.uploadFile({
|
||||
// filePath: this.data.srcI,
|
||||
// name: 'file',
|
||||
// url: '',
|
||||
// })
|
||||
// },
|
||||
|
||||
bushPhot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
|
||||
boxPhot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
|
||||
//送检机构
|
||||
bindPickerChange(e) { |
||||
this.setData({ |
||||
index: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
//运输方式
|
||||
bindbushChange(e) { |
||||
this.setData({ |
||||
bush: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
//日期
|
||||
bindDateChange(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
date:e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
//出发时间
|
||||
//最后呈现时间的函数。
|
||||
bindMultiPickerChange: function (e) { |
||||
var dateStr = this.data.multiArray[0][this.data.multiIndex[0]] + |
||||
this.data.multiArray[1][this.data.multiIndex[1]] + |
||||
this.data.multiArray[2][this.data.multiIndex[2]] + |
||||
this.data.multiArray[3][this.data.multiIndex[3]] + |
||||
this.data.multiArray[4][this.data.multiIndex[4]]; |
||||
this.setData({ |
||||
time: dateStr |
||||
}) |
||||
},//开始
|
||||
bindMultiPickerChange1: function (e) { |
||||
var dateStr = this.data.multiArray1[0][this.data.multiIndex1[0]] + |
||||
this.data.multiArray1[1][this.data.multiIndex1[1]] + |
||||
this.data.multiArray1[2][this.data.multiIndex1[2]] + |
||||
this.data.multiArray1[3][this.data.multiIndex1[3]] + |
||||
this.data.multiArray1[4][this.data.multiIndex1[4]]; |
||||
this.setData({ |
||||
time1: dateStr |
||||
}) |
||||
},//结束
|
||||
|
||||
//当时间选择器呈现并进行滚动选择时间时调用该函数。开始
|
||||
bindMultiPickerColumnChange: function (e) { |
||||
//e.detail.column记录哪一行发生改变,e.detail.value记录改变的值(相当于multiIndex)
|
||||
switch (e.detail.column) { |
||||
//这里case的值有0/1/2/3/4,但除了需要记录年和月来确定具体的天数外,其他的都可以暂不在switch中处理。
|
||||
case 0: |
||||
//记录改变的年的值
|
||||
let year = this.data.multiArray[0][e.detail.value]; |
||||
this.setData({ |
||||
choose_year: year.substring(0, year.length - 1) |
||||
}) |
||||
break; |
||||
case 1: |
||||
//根据选择的年与月,确定天数,并改变multiArray中天的具体值
|
||||
let month = this.data.multiArray[1][e.detail.value]; |
||||
let dayDates = datePicker.determineDay(this.data.choose_year, month.substring(0, month.length - 1)); |
||||
//这里需要额外注意,改变page中设定的data,且只要改变data中某一个值,可以采用下面这种方法
|
||||
this.setData({ |
||||
['multiArray[2]']: dayDates |
||||
}) |
||||
break; |
||||
} |
||||
//改变一个一维数组中某一个值,可供参考。
|
||||
this.setData({ |
||||
["multiIndex[" + e.detail.column + "]"]: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
//当时间选择器呈现并进行滚动选择时间时调用该函数。结束
|
||||
bindMultiPickerColumnChange1: function (e) { |
||||
//e.detail.column记录哪一行发生改变,e.detail.value记录改变的值(相当于multiIndex)
|
||||
switch (e.detail.column) { |
||||
//这里case的值有0/1/2/3/4,但除了需要记录年和月来确定具体的天数外,其他的都可以暂不在switch中处理。
|
||||
case 0: |
||||
//记录改变的年的值
|
||||
let year = this.data.multiArray1[0][e.detail.value]; |
||||
this.setData({ |
||||
choose_year1: year.substring(0, year.length - 1) |
||||
}) |
||||
break; |
||||
case 1: |
||||
//根据选择的年与月,确定天数,并改变multiArray中天的具体值
|
||||
let month = this.data.multiArray1[1][e.detail.value]; |
||||
let dayDates = datePicker.determineDay(this.data.choose_year, month.substring(0, month.length - 1)); |
||||
//这里需要额外注意,改变page中设定的data,且只要改变data中某一个值,可以采用下面这种方法
|
||||
this.setData({ |
||||
['multiArray1[2]']: dayDates |
||||
}) |
||||
break; |
||||
} |
||||
//改变一个一维数组中某一个值
|
||||
this.setData({ |
||||
["multiIndex1[" + e.detail.column + "]"]: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
|
||||
goDetail(){ |
||||
wx.navigateTo({ |
||||
url: '../details/details', |
||||
}) |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
let now = new Date(); //获取时间
|
||||
let year = now.getFullYear(); //获取当前年
|
||||
let month = now.getMonth() + 1; //获取当前月份
|
||||
this.setData({ |
||||
end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2),//当前的时间
|
||||
|
||||
//开始
|
||||
multiArray: |
||||
[ |
||||
[year + "年", year + 1 + "年", year + 2 + "年"], |
||||
datePicker.determineMonth(), |
||||
datePicker.determineDay(year, month), |
||||
datePicker.determineHour(), |
||||
datePicker.determineMinute() |
||||
], |
||||
//结束
|
||||
multiArray1: |
||||
[ |
||||
[year + "年", year + 1 + "年", year + 2 + "年"], |
||||
datePicker.determineMonth(), |
||||
datePicker.determineDay(year, month), |
||||
datePicker.determineHour(), |
||||
datePicker.determineMinute() |
||||
], |
||||
})
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "物流签收" |
||||
} |
@ -0,0 +1,111 @@ |
||||
<!--pages/meLogistics/meLogistics.wxml--> |
||||
<view class="box"> |
||||
|
||||
<view class="back"> |
||||
<view class="top"> |
||||
<input type="text" value="{{pipenum}}"/> |
||||
<view style="background-color: #eee;" bindtap="scacode">扫 码</view> |
||||
<view style="background-color: #23c559; color: #fff;" bindtap="phot">拍 照</view> |
||||
</view> |
||||
<view class="form"> |
||||
<view class="from-con"> |
||||
<label>物流单号:</label> |
||||
<input type="text" placeholder="物流单号" placeholder-class="place" value=""/> |
||||
</view> |
||||
<picker class="from-con" bindchange="bindPickerChange" value="{{index}}" range="{{ins}}"> |
||||
<label>送检机构:</label> |
||||
<input type="text" disabled="true" placeholder="请选择送检机构" placeholder-class="place" value="{{ins[index]}}"/> |
||||
</picker> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con"> |
||||
<label>日期:</label> |
||||
<input type="text" disabled="true" placeholder="请选择日期" placeholder-class="place" value="{{date}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>数量:</label> |
||||
<input type="text" placeholder="数量" placeholder-class="place"/> |
||||
</view> |
||||
<picker class="from-con" bindchange="bindbushChange" range="{{bushList}}"> |
||||
<label>运输方式:</label> |
||||
<input type="text" disabled="true" placeholder="请选择运输方式" placeholder-class="place" value="{{bushList[bush]}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>转运箱号:</label> |
||||
<input type="text" placeholder="转运箱号" placeholder-class="place" value=""/> |
||||
</view> |
||||
<picker class="from-con" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"> |
||||
<label>出发时间:</label> |
||||
<input value='{{time}}' placeholder='请选择出发时间' placeholder-class="place" disabled="true"/> |
||||
</picker> |
||||
<picker class="from-con" mode="multiSelector" bindchange="bindMultiPickerChange1" bindcolumnchange="bindMultiPickerColumnChange1" value="{{multiIndex1}}" range="{{multiArray1}}"> |
||||
<label>到达时间:</label> |
||||
<input value='{{time1}}' placeholder='请选择到达时间' placeholder-class="place" disabled="true"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>车牌号:</label> |
||||
<input type="text" placeholder="车牌号" placeholder-class="place" value=""/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>物流员:</label> |
||||
<input type="text" placeholder="物流员" placeholder-class="place" value=""/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>备注:</label> |
||||
<input type="text" placeholder="备注" placeholder-class="place" value=""/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>驾驶员:</label> |
||||
<input type="text" placeholder="驾驶员" placeholder-class="place" value=""/> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="bush"> |
||||
<view style="flex: 1;">物流车拍照</view> |
||||
<button bindtap="bushPhot">拍 照</button> |
||||
</view> |
||||
<view class="bush-img"> |
||||
<image src="../../images/bush.png"></image> |
||||
<image src="../../images/bush.png"></image> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="bush"> |
||||
<view style="flex: 1;">转运箱拍照</view> |
||||
<button bindtap="boxPhot">拍 照</button> |
||||
</view> |
||||
<view class="bush-img"> |
||||
<image src="../../images/bush.png"></image> |
||||
<image src="../../images/bush.png"></image> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="con"> |
||||
<view style="flex: 1;">总计:200/管数</view> |
||||
<button style="background-color: #ddd;">修 改</button> |
||||
<button style="color: #fff;">保 存</button> |
||||
</view> |
||||
|
||||
<scroll-view scroll-x class="tabel"> |
||||
<view class="tr tab-top"> |
||||
<view class="td1">序号</view> |
||||
<view class="td">样本条码号</view> |
||||
<view class="td">接收时间</view> |
||||
<view class="td">样本状态</view> |
||||
<view class="td">物流员</view> |
||||
<view class="td">物流单号</view> |
||||
</view> |
||||
<view class="tr" wx:for="{{list}}" wx:key="index" bindtap="goDetail"> |
||||
<view class="td1">{{item.id}}</view> |
||||
<view class="td">{{item.number}}</view> |
||||
<view class="td">{{item.time}}</view> |
||||
<view class="td">{{item.status}}</view> |
||||
<view class="td">{{item.name}}</view> |
||||
<view class="td">{{item.num}}</view> |
||||
</view> |
||||
</scroll-view> |
||||
</view> |
||||
|
||||
</view> |
@ -0,0 +1,139 @@ |
||||
/* pages/meLogistics/meLogistics.wxss */ |
||||
|
||||
.top{ |
||||
display: flex; |
||||
justify-content: center; |
||||
font-size: 28rpx; |
||||
} |
||||
.top input{ |
||||
border: 1rpx #333 solid; |
||||
border-radius: 10rpx; |
||||
padding: 5rpx 10rpx; |
||||
} |
||||
.top view{ |
||||
width: 135rpx; |
||||
margin-left: 20rpx; |
||||
background-color: #eee; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
border-radius: 10rpx; |
||||
color: #333; |
||||
font-weight: 700; |
||||
} |
||||
|
||||
.form{ |
||||
background-color: #fff; |
||||
border-radius: 15rpx; |
||||
padding: 0rpx 30rpx; |
||||
margin-bottom: 15rpx; |
||||
} |
||||
.form .from-con{ |
||||
font-size: 28rpx; |
||||
border-bottom: 2rpx #eee solid; |
||||
position: relative; |
||||
margin-top: 25rpx; |
||||
} |
||||
.from-con label{ |
||||
position: absolute; |
||||
top: 5rpx; |
||||
font-weight: 900; |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
.from-con input{ |
||||
text-align: right; |
||||
padding: 10rpx; |
||||
} |
||||
.place{ |
||||
color:#c4bfbf; |
||||
} |
||||
|
||||
.bush{ |
||||
display: flex; |
||||
justify-content:space-between; |
||||
align-items: center; |
||||
} |
||||
.bush button{ |
||||
width: 200rpx !important; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
font-size: 28rpx; |
||||
background-color: #23c559; |
||||
color:#fff; |
||||
height: 55rpx; |
||||
} |
||||
.bush-img{ |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
justify-content:space-around; |
||||
padding: 20rpx 10rpx; |
||||
} |
||||
.bush-img image{ |
||||
width: 270rpx; |
||||
height: 230rpx; |
||||
margin-top: 10rpx; |
||||
border: 1rpx solid #999; |
||||
border-radius: 15rpx; |
||||
} |
||||
.back{ |
||||
margin-top: 15rpx; |
||||
} |
||||
|
||||
.con{ |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
.con button{ |
||||
width: 170rpx !important; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
font-size: 28rpx; |
||||
background-color: rgb(245, 90, 90); |
||||
height: 55rpx; |
||||
margin-left: 10rpx !important; |
||||
} |
||||
|
||||
.tabel{ |
||||
margin-top: 20rpx; |
||||
width: 100%; |
||||
border: 1rpx #ddd solid; |
||||
|
||||
} |
||||
.tabel .tr{ |
||||
display: flex; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
} |
||||
.tr .td{ |
||||
border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 200rpx; |
||||
} |
||||
.tab-top view{ |
||||
background-color: #51bdbe; |
||||
color:#fff; |
||||
font-weight: 700; |
||||
font-size: 28rpx; |
||||
} |
||||
.td1{ |
||||
border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 100rpx; |
||||
} |
@ -0,0 +1,100 @@ |
||||
// pages/queryfrei/queryfrei.js
|
||||
var app = getApp(); |
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
date: '', |
||||
endDate:'', |
||||
start:'2020-01-01', |
||||
end:'', |
||||
|
||||
array: ['全部','xx卫生院','xx门诊',], |
||||
}, |
||||
|
||||
//开始时间
|
||||
bindDateChange(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
date:e.detail.value |
||||
}) |
||||
}, |
||||
//结束时间
|
||||
bindDateChangeend(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
endDate:e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
bindPickerChange (e) { |
||||
// console.log( e.detail.value)
|
||||
this.setData({ |
||||
index: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
let now = new Date(); //获取时间
|
||||
let year = now.getFullYear(); //获取当前年
|
||||
let month = now.getMonth() + 1; //获取当前月份
|
||||
this.setData({ |
||||
end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2), |
||||
}) //当前的时间
|
||||
}, |
||||
|
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "货运物流查询" |
||||
} |
@ -0,0 +1,67 @@ |
||||
<!--pages/queryfrei/queryfrei.wxml--> |
||||
<view style="background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1);min-height: 1300rpx;padding: 20rpx;"> |
||||
|
||||
<view class="form"> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con"> |
||||
<label>选择日期:</label> |
||||
<input type="text" disabled="true" placeholder="请选择开始日期" placeholder-class="place" value="{{date}}"/> |
||||
</picker> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChangeend" class="from-con"> |
||||
<label> </label> |
||||
<input type="text" disabled="true" placeholder="请选择结束日期" placeholder-class="place" value="{{endDate}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流单号:</label> |
||||
<input type="text" placeholder="物流单号" placeholder-class="place"/> |
||||
</view> |
||||
<picker class="from-con" bindchange="bindPickerChange" value="{{index}}" range="{{array}}"> |
||||
<label>送检机构:</label> |
||||
<input type="text" disabled="true" placeholder="请选择送检机构" placeholder-class="place" value="{{array[index]}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流员:</label> |
||||
<input type="text" placeholder="物流员" placeholder-class="place"/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>转运箱号:</label> |
||||
<input type="text" placeholder="转运箱号" placeholder-class="place"/> |
||||
</view> |
||||
<view class="from-button"> |
||||
<button style="background-color: #ddd;">重 置</button> |
||||
<button style="background-color: #54b4b6; color: #fff;">查 询</button> |
||||
|
||||
</view> |
||||
</view> |
||||
|
||||
<view style="background-color: #fff;border-radius: 15rpx;margin-top: 15rpx; padding: 30rpx 10rpx 50rpx 10rpx;"> |
||||
<scroll-view scroll-x style="width: 100%; border: 1rpx #ddd solid;"> |
||||
<view class="tr top" > |
||||
<view class="td td1">序号</view> |
||||
<view class="td">物流单号</view> |
||||
<view class="td">送检机构</view> |
||||
<view class="td td2">日期</view> |
||||
<view class="td">物流费用</view> |
||||
<view class="td">转运方式</view> |
||||
</view> |
||||
<view class="tr" > |
||||
<view class="td td1">1</view> |
||||
<view class="td">JD56549856</view> |
||||
<view class="td">XX卫生院</view> |
||||
<view class="td td2">2023-5-12 14:32</view> |
||||
<view class="td">10.00</view> |
||||
<view class="td">私家车</view> |
||||
</view> |
||||
<view class="tr" > |
||||
<view class="td td1">2</view> |
||||
<view class="td">JD56549856</view> |
||||
<view class="td">XX卫生院</view> |
||||
<view class="td td2">2023-5-12 14:32</view> |
||||
<view class="td">10.00</view> |
||||
<view class="td">私家车</view> |
||||
</view> |
||||
</scroll-view> |
||||
<!-- <view style="text-align: right; font-size: 26rpx;margin-top: 30rpx;padding: 0 20rpx;">共 2 条</view> --> |
||||
</view> |
||||
|
||||
|
||||
</view> |
@ -0,0 +1,71 @@ |
||||
/* pages/queryfrei/queryfrei.wxss */ |
||||
page{ |
||||
background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1) |
||||
} |
||||
|
||||
.form{ |
||||
background-color: #fff; |
||||
border-radius: 15rpx; |
||||
padding: 20rpx 50rpx; |
||||
margin-bottom: 15rpx; |
||||
} |
||||
.form .from-con{ |
||||
font-size: 28rpx; |
||||
border-bottom: 2rpx #eee solid; |
||||
position: relative; |
||||
margin-top: 25rpx; |
||||
} |
||||
.from-con label{ |
||||
position: absolute; |
||||
top: 5rpx; |
||||
font-weight: 900; |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
.from-con input{ |
||||
text-align: right; |
||||
padding: 10rpx; |
||||
} |
||||
.place{ |
||||
color:#c4bfbf; |
||||
} |
||||
.from-button{ |
||||
display: flex; |
||||
margin-top: 20rpx; |
||||
} |
||||
.from-button button{ |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
width: 250rpx !important; |
||||
font-size: 28rpx; |
||||
} |
||||
|
||||
|
||||
.tr{ |
||||
display: flex; |
||||
width: 100%; |
||||
|
||||
} |
||||
.tr .td{ |
||||
border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 150rpx; |
||||
} |
||||
.top view{ |
||||
background-color: #6bc9ca; |
||||
color: #fff; |
||||
} |
||||
.td1{ |
||||
min-width: 100rpx !important; |
||||
} |
||||
.td2{ |
||||
min-width: 200rpx !important; |
||||
} |
@ -0,0 +1,100 @@ |
||||
|
||||
var app = getApp(); |
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
date: '', |
||||
endDate:'', |
||||
start:'2020-01-01', |
||||
end:'', |
||||
|
||||
array: ['全部','xx卫生院','xx门诊',], |
||||
}, |
||||
|
||||
//开始时间
|
||||
bindDateChange(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
date:e.detail.value |
||||
}) |
||||
}, |
||||
//结束时间
|
||||
bindDateChangeend(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
endDate:e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
bindPickerChange (e) { |
||||
// console.log( e.detail.value)
|
||||
this.setData({ |
||||
index: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
let now = new Date(); //获取时间
|
||||
let year = now.getFullYear(); //获取当前年
|
||||
let month = now.getMonth() + 1; //获取当前月份
|
||||
this.setData({ |
||||
end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2), |
||||
}) //当前的时间
|
||||
}, |
||||
|
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "自建物流查询" |
||||
} |
@ -0,0 +1,72 @@ |
||||
|
||||
<view style="background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1);min-height: 1300rpx;padding: 20rpx;"> |
||||
|
||||
<view class="form"> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con"> |
||||
<label>选择日期:</label> |
||||
<input type="text" disabled="true" placeholder="请选择开始日期" placeholder-class="place" value="{{date}}"/> |
||||
</picker> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChangeend" class="from-con"> |
||||
<label> </label> |
||||
<input type="text" disabled="true" placeholder="请选择结束日期" placeholder-class="place" value="{{endDate}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流单号:</label> |
||||
<input type="text" placeholder="物流单号" placeholder-class="place"/> |
||||
</view> |
||||
<picker class="from-con" bindchange="bindPickerChange" value="{{index}}" range="{{array}}"> |
||||
<label>送检机构:</label> |
||||
<input type="text" disabled="true" placeholder="请选择送检机构" placeholder-class="place" value="{{array[index]}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流员:</label> |
||||
<input type="text" placeholder="物流员" placeholder-class="place"/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>转运箱号:</label> |
||||
<input type="text" placeholder="转运箱号" placeholder-class="place"/> |
||||
</view> |
||||
<view class="from-button"> |
||||
<button style="background-color: #ddd;">重 置</button> |
||||
<button style="background-color: #54b4b6; color: #fff;">查 询</button> |
||||
|
||||
</view> |
||||
</view> |
||||
|
||||
<view style="background-color: #fff;border-radius: 15rpx;margin-top: 15rpx; padding: 30rpx 10rpx 50rpx 10rpx;"> |
||||
<scroll-view scroll-x style="width: 100%;"> |
||||
<view class="tr top" > |
||||
<view class="td td1">序号</view> |
||||
<view class="td">物流单号</view> |
||||
<view class="td">送检机构</view> |
||||
<view class="td td2">日期</view> |
||||
<view class="td">样本管数</view> |
||||
<view class="td">送检机构</view> |
||||
</view> |
||||
<view class="tr" > |
||||
<view class="td td1">1</view> |
||||
<view class="td">JD56549856</view> |
||||
<view class="td">XX卫生院</view> |
||||
<view class="td td2">2023-5-12 14:32</view> |
||||
<view class="td">10</view> |
||||
<view class="td">私家车</view> |
||||
</view> |
||||
<view class="tr" > |
||||
<view class="td td1">2</view> |
||||
<view class="td">JD56549856</view> |
||||
<view class="td">XX卫生院</view> |
||||
<view class="td td2">2023-5-12 14:32</view> |
||||
<view class="td">10</view> |
||||
<view class="td">私家车</view> |
||||
</view> |
||||
</scroll-view> |
||||
<!-- <view style="text-align: right; font-size: 26rpx;margin-top: 30rpx;padding: 0 20rpx;">共 2 条</view> --> |
||||
</view> |
||||
|
||||
|
||||
</view> |
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,75 @@ |
||||
|
||||
page{ |
||||
background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1) |
||||
} |
||||
|
||||
.form{ |
||||
background-color: #fff; |
||||
border-radius: 15rpx; |
||||
padding: 20rpx 50rpx; |
||||
margin-bottom: 15rpx; |
||||
} |
||||
.form .from-con{ |
||||
font-size: 28rpx; |
||||
border-bottom: 2rpx #eee solid; |
||||
position: relative; |
||||
margin-top: 25rpx; |
||||
} |
||||
.from-con label{ |
||||
position: absolute; |
||||
top: 5rpx; |
||||
font-weight: 900; |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
.from-con input{ |
||||
text-align: right; |
||||
padding: 10rpx; |
||||
} |
||||
.place{ |
||||
color:#c4bfbf; |
||||
} |
||||
.from-button{ |
||||
display: flex; |
||||
margin-top: 20rpx; |
||||
} |
||||
.from-button button{ |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
width: 250rpx !important; |
||||
font-size: 28rpx; |
||||
} |
||||
|
||||
|
||||
.tr{ |
||||
display: flex; |
||||
width: 100%; |
||||
|
||||
} |
||||
.tr .td{ |
||||
/* border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; |
||||
border-bottom: #ddd solid 1rpx; */ |
||||
border: 1rpx #ddd solid; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 150rpx; |
||||
} |
||||
.top view{ |
||||
background-color: #6bc9ca; |
||||
color: #fff; |
||||
} |
||||
.td1{ |
||||
min-width: 100rpx !important; |
||||
} |
||||
.td2{ |
||||
min-width: 200rpx !important; |
||||
} |
||||
|
||||
|
@ -0,0 +1,100 @@ |
||||
// pages/querythree/querythree.js
|
||||
var app = getApp(); |
||||
Page({ |
||||
|
||||
/** |
||||
* 页面的初始数据 |
||||
*/ |
||||
data: { |
||||
date: '', |
||||
endDate:'', |
||||
start:'2020-01-01', |
||||
end:'', |
||||
|
||||
array: ['全部','xx卫生院','xx门诊',], |
||||
}, |
||||
|
||||
//开始时间
|
||||
bindDateChange(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
date:e.detail.value |
||||
}) |
||||
}, |
||||
//结束时间
|
||||
bindDateChangeend(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
endDate:e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
bindPickerChange (e) { |
||||
// console.log( e.detail.value)
|
||||
this.setData({ |
||||
index: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
let now = new Date(); //获取时间
|
||||
let year = now.getFullYear(); //获取当前年
|
||||
let month = now.getMonth() + 1; //获取当前月份
|
||||
this.setData({ |
||||
end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2), |
||||
}) //当前的时间
|
||||
}, |
||||
|
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "第三方物流查询" |
||||
} |
@ -0,0 +1,67 @@ |
||||
<!--pages/querythree/querythree.wxml--> |
||||
<view style="background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1);min-height: 1300rpx;padding: 20rpx;"> |
||||
|
||||
<view class="form"> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con"> |
||||
<label>选择日期:</label> |
||||
<input type="text" disabled="true" placeholder="请选择开始日期" placeholder-class="place" value="{{date}}"/> |
||||
</picker> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChangeend" class="from-con"> |
||||
<label> </label> |
||||
<input type="text" disabled="true" placeholder="请选择结束日期" placeholder-class="place" value="{{endDate}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流单号:</label> |
||||
<input type="text" placeholder="物流单号" placeholder-class="place"/> |
||||
</view> |
||||
<picker class="from-con" bindchange="bindPickerChange" value="{{index}}" range="{{array}}"> |
||||
<label>送检机构:</label> |
||||
<input type="text" disabled="true" placeholder="请选择送检机构" placeholder-class="place" value="{{array[index]}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流员:</label> |
||||
<input type="text" placeholder="物流员" placeholder-class="place"/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>转运箱号:</label> |
||||
<input type="text" placeholder="转运箱号" placeholder-class="place"/> |
||||
</view> |
||||
<view class="from-button"> |
||||
<button style="background-color: #ddd;">重 置</button> |
||||
<button style="background-color: #54b4b6; color: #fff;">查 询</button> |
||||
|
||||
</view> |
||||
</view> |
||||
|
||||
<view style="background-color: #fff;border-radius: 15rpx;margin-top: 15rpx; padding: 30rpx 10rpx 50rpx 10rpx;"> |
||||
<scroll-view scroll-x style="width: 100%; "> |
||||
<view class="tr top" > |
||||
<view class="td td1">序号</view> |
||||
<view class="td">物流单号</view> |
||||
<view class="td">送检机构</view> |
||||
<view class="td td2">日期</view> |
||||
<view class="td">物流费用</view> |
||||
<view class="td">转运方式</view> |
||||
</view> |
||||
<view class="tr" > |
||||
<view class="td td1">1</view> |
||||
<view class="td">JD56549856</view> |
||||
<view class="td">XX卫生院</view> |
||||
<view class="td td2">2023-5-12 14:32</view> |
||||
<view class="td">10.00</view> |
||||
<view class="td">私家车</view> |
||||
</view> |
||||
<view class="tr" > |
||||
<view class="td td1">2</view> |
||||
<view class="td">JD56549856</view> |
||||
<view class="td">XX卫生院</view> |
||||
<view class="td td2">2023-5-12 14:32</view> |
||||
<view class="td">10.00</view> |
||||
<view class="td">私家车</view> |
||||
</view> |
||||
</scroll-view> |
||||
<!-- <view style="text-align: right; font-size: 26rpx;margin-top: 30rpx;padding: 0 20rpx;">共 2 条</view> --> |
||||
</view> |
||||
|
||||
|
||||
</view> |
@ -0,0 +1,72 @@ |
||||
/* pages/querythree/querythree.wxss */ |
||||
page{ |
||||
background: -webkit-linear-gradient(top,#27adb0,#ebf7f7,#f1f1f1) |
||||
} |
||||
|
||||
.form{ |
||||
background-color: #fff; |
||||
border-radius: 15rpx; |
||||
padding: 20rpx 50rpx; |
||||
margin-bottom: 15rpx; |
||||
} |
||||
.form .from-con{ |
||||
font-size: 28rpx; |
||||
border-bottom: 2rpx #eee solid; |
||||
position: relative; |
||||
margin-top: 25rpx; |
||||
} |
||||
.from-con label{ |
||||
position: absolute; |
||||
top: 5rpx; |
||||
font-weight: 900; |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
.from-con input{ |
||||
text-align: right; |
||||
padding: 10rpx; |
||||
} |
||||
.place{ |
||||
color:#c4bfbf; |
||||
} |
||||
.from-button{ |
||||
display: flex; |
||||
margin-top: 20rpx; |
||||
} |
||||
.from-button button{ |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
width: 250rpx !important; |
||||
font-size: 28rpx; |
||||
} |
||||
|
||||
|
||||
.tr{ |
||||
display: flex; |
||||
width: 100%; |
||||
|
||||
} |
||||
.tr .td{ |
||||
/* border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; */ |
||||
border: 1rpx #ddd solid; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 150rpx; |
||||
} |
||||
.top view{ |
||||
background-color: #6bc9ca; |
||||
color: #fff; |
||||
} |
||||
.td1{ |
||||
min-width: 100rpx !important; |
||||
} |
||||
.td2{ |
||||
min-width: 200rpx !important; |
||||
} |
@ -0,0 +1,232 @@ |
||||
var datePicker = require('../../utils/dateSetting') |
||||
|
||||
Page({ |
||||
data: { |
||||
list:[ |
||||
{ |
||||
'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' |
||||
} |
||||
], |
||||
pipenum:'', |
||||
ins: ['顺丰','京东',], |
||||
date: '', |
||||
start:'2020-01-01', |
||||
end:'', |
||||
|
||||
time: '', |
||||
multiArray: [], |
||||
multiIndex: [0, 0, 0, 0, 0], |
||||
choose_year: "", |
||||
srcArray:[] |
||||
|
||||
}, |
||||
|
||||
scacode(){ |
||||
wx.scanCode({ |
||||
success:(res)=>{ |
||||
console.log(res.result); |
||||
this.setData({ |
||||
pipenum:res.result |
||||
}) |
||||
} |
||||
}) |
||||
}, |
||||
|
||||
phot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
console.log(this.data.srcI) |
||||
console.log(res.tempFiles[0].tempFilePath) |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
//上传图片接口地址
|
||||
// up(){
|
||||
// console.log(this.data.srcI)
|
||||
// wx.uploadFile({
|
||||
// filePath: this.data.srcI,
|
||||
// name: 'file',
|
||||
// url: '',
|
||||
// })
|
||||
// },
|
||||
|
||||
bushPhot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
|
||||
boxPhot(){ |
||||
wx.chooseMedia({ |
||||
count: 1, |
||||
mediaType: ['image','video'], |
||||
sourceType: ['album', 'camera'], |
||||
maxDuration: 30, |
||||
camera: 'back', |
||||
success: res=>{ |
||||
// this.up();
|
||||
} |
||||
}) |
||||
}, |
||||
|
||||
//送检机构
|
||||
bindPickerChange(e) { |
||||
this.setData({ |
||||
index: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
//日期
|
||||
bindDateChange(e){ |
||||
// console.log(e.detail.value)
|
||||
this.setData({ |
||||
date:e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
//最后呈现时间的函数。
|
||||
bindMultiPickerChange: function (e) { |
||||
var dateStr = this.data.multiArray[0][this.data.multiIndex[0]] + |
||||
this.data.multiArray[1][this.data.multiIndex[1]] + |
||||
this.data.multiArray[2][this.data.multiIndex[2]] + |
||||
this.data.multiArray[3][this.data.multiIndex[3]] + |
||||
this.data.multiArray[4][this.data.multiIndex[4]]; |
||||
this.setData({ |
||||
time: dateStr |
||||
}) |
||||
}, |
||||
|
||||
//当时间选择器呈现并进行滚动选择时间时调用该函数。开始
|
||||
bindMultiPickerColumnChange: function (e) { |
||||
//e.detail.column记录哪一行发生改变,e.detail.value记录改变的值(相当于multiIndex)
|
||||
switch (e.detail.column) { |
||||
//这里case的值有0/1/2/3/4,但除了需要记录年和月来确定具体的天数外,其他的都可以暂不在switch中处理。
|
||||
case 0: |
||||
//记录改变的年的值
|
||||
let year = this.data.multiArray[0][e.detail.value]; |
||||
this.setData({ |
||||
choose_year: year.substring(0, year.length - 1) |
||||
}) |
||||
break; |
||||
case 1: |
||||
//根据选择的年与月,确定天数,并改变multiArray中天的具体值
|
||||
let month = this.data.multiArray[1][e.detail.value]; |
||||
let dayDates = datePicker.determineDay(this.data.choose_year, month.substring(0, month.length - 1)); |
||||
//这里需要额外注意,改变page中设定的data,且只要改变data中某一个值,可以采用下面这种方法
|
||||
this.setData({ |
||||
['multiArray[2]']: dayDates |
||||
}) |
||||
break; |
||||
} |
||||
//改变一个一维数组中某一个值,可供参考。
|
||||
this.setData({ |
||||
["multiIndex[" + e.detail.column + "]"]: e.detail.value |
||||
}) |
||||
}, |
||||
|
||||
|
||||
|
||||
|
||||
goDetail(){ |
||||
wx.navigateTo({ |
||||
url: '../details/details', |
||||
}) |
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面加载 |
||||
*/ |
||||
onLoad(options) { |
||||
let now = new Date(); //获取时间
|
||||
let year = now.getFullYear(); //获取当前年
|
||||
let month = now.getMonth() + 1; //获取当前月份
|
||||
this.setData({ |
||||
end: '' + year + '-' + (Array(2).join(0) + month).slice(-2) + '-' + (Array(2).join(0) + now.getDate()).slice(-2),//当前的时间
|
||||
|
||||
//开始
|
||||
multiArray: |
||||
[ |
||||
[year + "年", year + 1 + "年", year + 2 + "年"], |
||||
datePicker.determineMonth(), |
||||
datePicker.determineDay(year, month), |
||||
datePicker.determineHour(), |
||||
datePicker.determineMinute() |
||||
], |
||||
})
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面初次渲染完成 |
||||
*/ |
||||
onReady() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面显示 |
||||
*/ |
||||
onShow() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面隐藏 |
||||
*/ |
||||
onHide() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 生命周期函数--监听页面卸载 |
||||
*/ |
||||
onUnload() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面相关事件处理函数--监听用户下拉动作 |
||||
*/ |
||||
onPullDownRefresh() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 页面上拉触底事件的处理函数 |
||||
*/ |
||||
onReachBottom() { |
||||
|
||||
}, |
||||
|
||||
/** |
||||
* 用户点击右上角分享 |
||||
*/ |
||||
onShareAppMessage() { |
||||
|
||||
} |
||||
}) |
@ -0,0 +1,4 @@ |
||||
{ |
||||
"usingComponents": {}, |
||||
"navigationBarTitleText": "物流签收" |
||||
} |
@ -0,0 +1,100 @@ |
||||
|
||||
<view class="box"> |
||||
|
||||
<view class="back"> |
||||
<view class="top"> |
||||
<input type="text" value="{{pipenum}}"/> |
||||
<view style="background-color: #eee;" bindtap="scacode">扫 码</view> |
||||
<view style="background-color: #23c559; color: #fff;" bindtap="phot">拍 照</view> |
||||
</view> |
||||
<view class="form"> |
||||
<view class="from-con"> |
||||
<label>物流单号:</label> |
||||
<input type="text" placeholder="物流单号" placeholder-class="place" value=""/> |
||||
</view> |
||||
<picker class="from-con" bindchange="bindPickerChange" value="{{index}}" range="{{ins}}"> |
||||
<label>物流单位:</label> |
||||
<input type="text" disabled="true" placeholder="请选择物流单位" placeholder-class="place" value="{{ins[index]}}"/> |
||||
</picker> |
||||
<picker mode="date" value="date" start="start" end="end" bindchange="bindDateChange" class="from-con"> |
||||
<label>日期:</label> |
||||
<input type="text" disabled="true" placeholder="请选择日期" placeholder-class="place" value="{{date}}"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流电话:</label> |
||||
<input type="text" placeholder="物流电话" placeholder-class="place"/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>物流费用:</label> |
||||
<input type="text" placeholder="物流费用" placeholder-class="place" value=""/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>转运箱号:</label> |
||||
<input type="text" placeholder="驾驶员" placeholder-class="place" value=""/> |
||||
</view> |
||||
<picker class="from-con" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"> |
||||
<label>到达时间:</label> |
||||
<input value='{{time}}' placeholder='请选择到达时间' placeholder-class="place" disabled="true"/> |
||||
</picker> |
||||
<view class="from-con"> |
||||
<label>物流员:</label> |
||||
<input type="text" placeholder="物流员" placeholder-class="place" value=""/> |
||||
</view> |
||||
<view class="from-con"> |
||||
<label>备注:</label> |
||||
<input type="text" placeholder="备注" placeholder-class="place" value=""/> |
||||
</view> |
||||
|
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="bush"> |
||||
<view style="flex: 1;">物流车拍照</view> |
||||
<button bindtap="bushPhot">拍 照</button> |
||||
</view> |
||||
<view class="bush-img"> |
||||
<image src="../../images/bush.png"></image> |
||||
<image src="../../images/bush.png"></image> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="bush"> |
||||
<view style="flex: 1;">转运箱拍照</view> |
||||
<button bindtap="boxPhot">拍 照</button> |
||||
</view> |
||||
<view class="bush-img"> |
||||
<image src="../../images/bush.png"></image> |
||||
<image src="../../images/bush.png"></image> |
||||
</view> |
||||
</view> |
||||
|
||||
<view class="back"> |
||||
<view class="con"> |
||||
<view style="flex: 1;">总计:200/管数</view> |
||||
<button style="background-color: #ddd;">修 改</button> |
||||
<button style="color: #fff;">保 存</button> |
||||
</view> |
||||
|
||||
<scroll-view scroll-x class="tabel"> |
||||
<view class="tr tab-top"> |
||||
<view class="td1">序号</view> |
||||
<view class="td">样本条码号</view> |
||||
<view class="td">接收时间</view> |
||||
<view class="td">样本状态</view> |
||||
<view class="td">物流员</view> |
||||
<view class="td">物流单号</view> |
||||
</view> |
||||
<view class="tr" wx:for="{{list}}" wx:key="index" bindtap="goDetail"> |
||||
<view class="td1" bindtap="goDetail">{{item.id}}</view> |
||||
<view class="td">{{item.number}}</view> |
||||
<view class="td">{{item.time}}</view> |
||||
<view class="td">{{item.status}}</view> |
||||
<view class="td">{{item.name}}</view> |
||||
<view class="td">{{item.num}}</view> |
||||
</view> |
||||
</scroll-view> |
||||
</view> |
||||
|
||||
</view> |
@ -0,0 +1,139 @@ |
||||
/* pages/meLogistics/meLogistics.wxss */ |
||||
|
||||
.top{ |
||||
display: flex; |
||||
justify-content: center; |
||||
font-size: 28rpx; |
||||
} |
||||
.top input{ |
||||
border: 1rpx #333 solid; |
||||
border-radius: 10rpx; |
||||
padding: 5rpx 10rpx; |
||||
} |
||||
.top view{ |
||||
width: 135rpx; |
||||
margin-left: 20rpx; |
||||
background-color: #eee; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
border-radius: 10rpx; |
||||
color: #333; |
||||
font-weight: 700; |
||||
} |
||||
|
||||
.form{ |
||||
background-color: #fff; |
||||
border-radius: 15rpx; |
||||
padding: 0rpx 30rpx; |
||||
margin-bottom: 15rpx; |
||||
} |
||||
.form .from-con{ |
||||
font-size: 28rpx; |
||||
border-bottom: 2rpx #eee solid; |
||||
position: relative; |
||||
margin-top: 25rpx; |
||||
} |
||||
.from-con label{ |
||||
position: absolute; |
||||
top: 5rpx; |
||||
font-weight: 900; |
||||
font-size: 28rpx; |
||||
color: #333; |
||||
} |
||||
.from-con input{ |
||||
text-align: right; |
||||
padding: 10rpx; |
||||
} |
||||
.place{ |
||||
color:#c4bfbf; |
||||
} |
||||
|
||||
.bush{ |
||||
display: flex; |
||||
justify-content:space-between; |
||||
align-items: center; |
||||
} |
||||
.bush button{ |
||||
width: 200rpx !important; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
font-size: 28rpx; |
||||
background-color: #23c559; |
||||
color:#fff; |
||||
height: 55rpx; |
||||
} |
||||
.bush-img{ |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
justify-content:space-around; |
||||
padding: 20rpx 10rpx; |
||||
} |
||||
.bush-img image{ |
||||
width: 270rpx; |
||||
height: 230rpx; |
||||
margin-top: 10rpx; |
||||
border: 1rpx solid #999; |
||||
border-radius: 15rpx; |
||||
} |
||||
.back{ |
||||
margin-top: 15rpx; |
||||
} |
||||
|
||||
.con{ |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
.con button{ |
||||
width: 170rpx !important; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
font-size: 28rpx; |
||||
background-color: rgb(245, 90, 90); |
||||
height: 55rpx; |
||||
margin-left: 10rpx !important; |
||||
} |
||||
|
||||
.tabel{ |
||||
margin-top: 20rpx; |
||||
width: 100%; |
||||
border: 1rpx #ddd solid; |
||||
|
||||
} |
||||
.tabel .tr{ |
||||
display: flex; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
} |
||||
.tr .td{ |
||||
border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 200rpx; |
||||
} |
||||
.tab-top view{ |
||||
background-color: #51bdbe; |
||||
color:#fff; |
||||
font-weight: 700; |
||||
font-size: 28rpx; |
||||
} |
||||
.td1{ |
||||
border-right:#ddd solid 1rpx ; |
||||
border-top: #ddd solid 1rpx; |
||||
padding: 15rpx 0; |
||||
font-size: 22rpx; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
flex-wrap: nowrap; |
||||
white-space: nowrap; |
||||
min-width: 100rpx; |
||||
} |
@ -0,0 +1,56 @@ |
||||
{ |
||||
"description": "项目配置文件", |
||||
"setting": { |
||||
"bundle": false, |
||||
"userConfirmedBundleSwitch": false, |
||||
"urlCheck": true, |
||||
"scopeDataCheck": false, |
||||
"coverView": true, |
||||
"es6": true, |
||||
"postcss": true, |
||||
"compileHotReLoad": false, |
||||
"lazyloadPlaceholderEnable": false, |
||||
"preloadBackgroundData": false, |
||||
"minified": true, |
||||
"autoAudits": false, |
||||
"newFeature": false, |
||||
"uglifyFileName": false, |
||||
"uploadWithSourceMap": true, |
||||
"useIsolateContext": true, |
||||
"nodeModules": false, |
||||
"enhance": true, |
||||
"useMultiFrameRuntime": true, |
||||
"showShadowRootInWxmlPanel": true, |
||||
"packNpmManually": false, |
||||
"enableEngineNative": false, |
||||
"packNpmRelationList": [], |
||||
"minifyWXSS": true, |
||||
"showES6CompileOption": false, |
||||
"minifyWXML": true, |
||||
"babelSetting": { |
||||
"ignore": [], |
||||
"disablePlugins": [], |
||||
"outputPath": "" |
||||
}, |
||||
"condition": false, |
||||
"ignoreUploadUnusedFiles": true |
||||
}, |
||||
"compileType": "miniprogram", |
||||
"condition": {}, |
||||
"editorSetting": { |
||||
"tabIndent": "insertSpaces", |
||||
"tabSize": 2 |
||||
}, |
||||
"libVersion": "2.19.4", |
||||
"packOptions": { |
||||
"ignore": [ |
||||
{ |
||||
"value": "/minitest", |
||||
"type": "folder" |
||||
} |
||||
], |
||||
"include": [] |
||||
}, |
||||
"appid": "wxf122cda1b8bbbc37", |
||||
"testRoot": "minitest/" |
||||
} |
@ -0,0 +1,90 @@ |
||||
{ |
||||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
||||
"projectname": "%E7%89%A9%E6%B5%81%E7%AB%AF", |
||||
"setting": { |
||||
"compileHotReLoad": false |
||||
}, |
||||
"condition": { |
||||
"miniprogram": { |
||||
"list": [ |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/about/about", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/meLogistics/meLogistics", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/details/details", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/threeLogistics/threeLogistics", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/freiLogistics/freiLogistics", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/queryme/queryme", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/querythree/querythree", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/feedback/feedback", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/handover/handover", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/querythree/querythree", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
}, |
||||
{ |
||||
"name": "", |
||||
"pathName": "pages/login/login", |
||||
"query": "", |
||||
"launchMode": "default", |
||||
"scene": null |
||||
} |
||||
] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,7 @@ |
||||
{ |
||||
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", |
||||
"rules": [{ |
||||
"action": "allow", |
||||
"page": "*" |
||||
}] |
||||
} |
@ -0,0 +1,87 @@ |
||||
|
||||
//将当前日期写成常量
|
||||
const date = new Date(); |
||||
const year = date.getFullYear(); |
||||
const month = date.getMonth() + 1; |
||||
const day = date.getDay()+1; |
||||
const hour = date.getHours(); |
||||
const minute = date.getMinutes(); |
||||
//确定月份呈现
|
||||
function determineMonth() { |
||||
let monthDates = []; |
||||
for (let i = month; i <= 12; i++) { |
||||
monthDates.push(i + "月"); |
||||
} |
||||
for (let i = 1; i < month; i++) { |
||||
monthDates.push(i + "月") |
||||
} |
||||
return monthDates; |
||||
} |
||||
//根据年与月确定日的呈现
|
||||
function determineDay(year, month) { |
||||
let dayDates = []; |
||||
let days; |
||||
switch (parseInt(month)) { |
||||
case 1: |
||||
case 3: |
||||
case 5: |
||||
case 7: |
||||
case 8: |
||||
case 10: |
||||
case 12: |
||||
days = 31; |
||||
break; |
||||
case 4: |
||||
case 6: |
||||
case 9: |
||||
case 11: |
||||
days = 30; |
||||
break; |
||||
case 2: |
||||
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { |
||||
days = 28 |
||||
} else days = 29; |
||||
} |
||||
for (let i = day; i <= days; i++) { |
||||
dayDates.push(i + "日"); |
||||
} |
||||
for (let i = 1; i <= day; i++) { |
||||
dayDates.push(i + "日"); |
||||
} |
||||
return dayDates; |
||||
} |
||||
//确定小时的呈现
|
||||
function determineHour() { |
||||
let hourDates = []; |
||||
for (let i = hour; i <= 24; i++) { |
||||
hourDates.push(i + "时"); |
||||
} |
||||
for (let i = 1; i < hour; i++) { |
||||
hourDates.push(i + "时"); |
||||
} |
||||
return hourDates; |
||||
} |
||||
//确定分的呈现
|
||||
function determineMinute() { |
||||
let minuteDates = []; |
||||
let minuteNum=0; |
||||
if (parseInt(minute) % 10 >= 5) { |
||||
minuteNum = (parseInt(minute / 10) + 1) * 10; |
||||
} else { |
||||
minuteNum = parseInt(minute / 10) * 10; |
||||
} |
||||
for (let i = minuteNum; i < 60; i += 5) { |
||||
minuteDates.push(i + "分") |
||||
} |
||||
for (let i = 0; i < minuteNum; i += 5) { |
||||
minuteDates.push(i + "分") |
||||
} |
||||
return minuteDates; |
||||
} |
||||
//将上述函数导出,这样引入文件后可以直接使用导出的函数
|
||||
module.exports = { |
||||
determineMonth:determineMonth, |
||||
determineDay:determineDay, |
||||
determineHour:determineHour, |
||||
determineMinute:determineMinute, |
||||
} |