@ -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, |
||||||
|
} |