物料绑定页面
16
PDA/PDA/config.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// config.js
|
||||||
|
export function saveConfig(key, value) {
|
||||||
|
// 使用 uni.setStorageSync 保存配置
|
||||||
|
uni.setStorageSync(key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getConfig(key, defaultValue) {
|
||||||
|
// 使用 uni.getStorageSync 获取配置,如果没有则返回默认值
|
||||||
|
return uni.getStorageSync(key) || defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getServerIPAndPort() {
|
||||||
|
var serverIP = getConfig('serverIP', '127.0.0.1');
|
||||||
|
var serverPort = getConfig('serverPort', '8888');
|
||||||
|
return serverIP + ':' + serverPort;
|
||||||
|
}
|
@ -3,7 +3,28 @@
|
|||||||
{
|
{
|
||||||
"path": "pages/index/index",
|
"path": "pages/index/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "智慧物流系统-移动端"
|
"navigationBarTitleText": "智慧物流系统-登录"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/config/config",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "智慧物流系统-用户配置"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/main/main",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "智慧物流系统-主页"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/bind/bind",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "智慧物流系统-物料绑定"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
181
PDA/PDA/pages/bind/bind.vue
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
<template>
|
||||||
|
<view class="bg-image">
|
||||||
|
<view class="diy-flex-row">
|
||||||
|
<view style="flex: 3">
|
||||||
|
<!-- 占位 -->
|
||||||
|
</view>
|
||||||
|
<view style="flex: 80;margin: 5rpx;">
|
||||||
|
<view class="diy-flex-row">
|
||||||
|
<view class="rightImageContainer" style="flex: 12;padding-top: 20rpx;">
|
||||||
|
<image style="width: 60rpx;height: 60rpx" src="/static/scan.png" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="uni-input-wrapper" style="flex: 60;">
|
||||||
|
<input id="inputMatCode" class="uni-input" style="font-size: 50rpx; padding: 10rpx;" placeholder="请先扫描工位码"
|
||||||
|
v-model="matCode"></input>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view style="flex: 3;">
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view style="flex: 30;">
|
||||||
|
<button>查询</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style="flex: 3">
|
||||||
|
<!-- 占位 -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="diy-flex-column" style="margin-top: 20rpx;">
|
||||||
|
<view class="diy-flex-inforow" style="flex: 1;">
|
||||||
|
<view style="flex: 5;"></view>
|
||||||
|
|
||||||
|
<view style="flex: 35;">工位编码:</view>
|
||||||
|
|
||||||
|
<view style="flex: 50;">{{locationCode}}</view>
|
||||||
|
|
||||||
|
<view style="flex: 40;">
|
||||||
|
<button class="mini-btn" type="warn" size="mini">呼叫货架</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="diy-flex-inforow" style="flex: 1;">
|
||||||
|
|
||||||
|
<view style="flex: 5;"></view>
|
||||||
|
|
||||||
|
<view style="flex: 35;">货架编码:</view>
|
||||||
|
|
||||||
|
<view style="flex: 90;">{{shelfCode}}</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="diy-flex-inforow" style="flex: 1;">
|
||||||
|
|
||||||
|
<view style="flex: 5;"></view>
|
||||||
|
|
||||||
|
<view style="flex: 35;">物料编码:</view>
|
||||||
|
|
||||||
|
<view style="flex: 90;">{{matCode}}</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="diy-flex-inforow" style="flex: 1;">
|
||||||
|
|
||||||
|
<view style="flex: 5;"></view>
|
||||||
|
|
||||||
|
<view style="flex: 35;">物料名称:</view>
|
||||||
|
|
||||||
|
<view style="flex: 90;">{{matName}}</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="diy-flex-inforow" style="flex: 1;">
|
||||||
|
|
||||||
|
<view style="flex: 5;"></view>
|
||||||
|
|
||||||
|
<view style="flex: 35;">物料规格:</view>
|
||||||
|
|
||||||
|
<view style="flex: 90;">{{matSpec}}</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="diy-flex-inforow" style="flex: 1;">
|
||||||
|
|
||||||
|
<view style="flex: 5;"></view>
|
||||||
|
|
||||||
|
<view style="flex: 35;">物料数量:</view>
|
||||||
|
|
||||||
|
<view class="uni-input-wrapper" style="flex: 50;">
|
||||||
|
<input class="uni-input" style="font-size: 40rpx; " placeholder="请输入物料数量" v-model="matQty"></input>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view style="flex: 40;">
|
||||||
|
<button @click="bind" class="mini-btn" style="margin-left: 10rpx;" type="warn"
|
||||||
|
size="mini">绑定</button>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
matCode: '',
|
||||||
|
locationCode: '',
|
||||||
|
shelfCode: '',
|
||||||
|
matCode: '',
|
||||||
|
matName: '',
|
||||||
|
matSpec: '',
|
||||||
|
matQty: 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
bind: function() {
|
||||||
|
console.log('123');
|
||||||
|
document.getElementById('inputMatCode').scrollIntoView(true);
|
||||||
|
console.log('111');
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.uni-input-wrapper {
|
||||||
|
/* #ifndef APP-NVUE */
|
||||||
|
display: flex;
|
||||||
|
/* #endif */
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mini-btn {
|
||||||
|
margin-right: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-image {
|
||||||
|
background-image: url('/static/background.png');
|
||||||
|
/* 背景图片路径 */
|
||||||
|
background-size: cover;
|
||||||
|
/* 背景图片覆盖整个元素 */
|
||||||
|
background-position: center;
|
||||||
|
/* 背景图片居中 */
|
||||||
|
height: 100%;
|
||||||
|
/* 视图高度设置为100% */
|
||||||
|
width: 100%;
|
||||||
|
/* 视图宽度设置为100% */
|
||||||
|
position: fixed;
|
||||||
|
/* 视图定位为固定 */
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
/* z-index: -1; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.diy-flex-row {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
margin-top: 15rpx;
|
||||||
|
margin-bottom: 15rpx;
|
||||||
|
font-size: 50rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.diy-flex-column {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.diy-flex-inforow {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
font-size: 40rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-top: 8rpx;
|
||||||
|
margin-bottom: 8rpx;
|
||||||
|
}
|
||||||
|
</style>
|
73
PDA/PDA/pages/config/config.vue
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
|
||||||
|
<view>
|
||||||
|
<label>服务器IP:</label>
|
||||||
|
<input v-model="serverIP" placeholder="请输入服务器IP" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view>
|
||||||
|
<label>服务器端口:</label>
|
||||||
|
<input v-model="serverPort" placeholder="请输入服务器端口" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<button @click="saveConfigs">保存配置</button>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
saveConfig
|
||||||
|
} from '@/config.js';
|
||||||
|
import {
|
||||||
|
getConfig
|
||||||
|
} from '@/config.js';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
serverIP: '',
|
||||||
|
serverPort: ''
|
||||||
|
};
|
||||||
|
},
|
||||||
|
onLoad:function() {
|
||||||
|
this.serverIP = getConfig('serverIP', '127.0.0.1');
|
||||||
|
this.serverPort = getConfig('serverPort', '8888');
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
saveConfigs() {
|
||||||
|
saveConfig('serverIP', this.serverIP);
|
||||||
|
saveConfig('serverPort', this.serverPort);
|
||||||
|
uni.showToast({
|
||||||
|
title: '配置保存成功',
|
||||||
|
icon: 'success'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.container {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
padding: 10px 20px;
|
||||||
|
background-color: #1aad19;
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,27 +1,45 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="bg-image">
|
<view class="bg-image">
|
||||||
<image class="logo" src="/static/logo.png"></image>
|
<navigator url="../config/config" hover-class="navigator-hover">
|
||||||
|
<image class="logo" src="/static/logo.png"></image>
|
||||||
|
</navigator>
|
||||||
|
|
||||||
<view class="text-area">
|
<view class="text-area">
|
||||||
<text class="title">{{title}}</text>
|
<text class="title">{{title}}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="logo">
|
<view style="margin-top:90rpx;margin-bottom: 90rpx;">
|
||||||
<view class="uni-flex uni-row">
|
<view class="diy-flex-column">
|
||||||
|
<view class="diy-flex-row">
|
||||||
<view class="uni-flex uni-column" style="flex: 1;">
|
<view style="flex: 5;"></view>
|
||||||
<view class="uni-flex" style="flex: 1;">用户昵称:</view>
|
<view style="flex: 15;">用 户 名:</view>
|
||||||
<text class="uni-flex" style="flex: 1;">123</view>
|
<view style="flex: 20;" class="uni-input-wrapper">
|
||||||
|
<input class="uni-input" style="font-size: 50rpx;" placeholder="请输入用户名"
|
||||||
|
v-model="userName"></input>
|
||||||
|
</view>
|
||||||
|
<view style="flex: 5;"></view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="diy-flex-row">
|
||||||
<view class="uni-flex uni-column" style="flex: 1;">
|
<view style="flex: 5;"></view>
|
||||||
<view class="uni-flex" style="flex: 1;">设备型号:</view>
|
<view style="flex: 15;">密 码:</view>
|
||||||
<view class="uni-flex" style="flex: 1;">123</view>
|
<view style="flex: 20;" class="uni-input-wrapper">
|
||||||
|
<input class="uni-input" style="font-size: 50rpx;" placeholder="请输入密码" :password="showPassword"
|
||||||
|
v-model="passWord"></input>
|
||||||
|
</view>
|
||||||
|
<view style="flex: 5;"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<view style="margin-top:70rpx;margin-bottom: 20rpx;">
|
||||||
|
<button @click="login" style="margin-left: 90rpx;margin-right: 90rpx;" type="default"
|
||||||
|
plain="true">登 录</button>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view style="margin-top:70rpx;margin-bottom: 20rpx;text-align: center;">
|
||||||
|
<view >{{serverIPAndPort}}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -29,31 +47,47 @@
|
|||||||
import {
|
import {
|
||||||
recive
|
recive
|
||||||
} from '../../src/libs/Broadcast.js';
|
} from '../../src/libs/Broadcast.js';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
unregisterReceiver
|
unregisterReceiver
|
||||||
} from '../../src/libs/Broadcast.js';
|
} from '../../src/libs/Broadcast.js';
|
||||||
|
|
||||||
|
import {
|
||||||
|
getConfig
|
||||||
|
} from '@/config.js';
|
||||||
|
|
||||||
|
import {
|
||||||
|
getServerIPAndPort
|
||||||
|
} from '@/config.js';
|
||||||
|
|
||||||
|
import {
|
||||||
|
saveConfig
|
||||||
|
} from '@/config.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: '登录'
|
title: '登录',
|
||||||
|
showPassword: true,
|
||||||
|
userName: '',
|
||||||
|
passWord: '',
|
||||||
|
serverIPAndPort: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onShow: function() {
|
onShow: function() {
|
||||||
const self = this; // 保存this的引用
|
this.serverIPAndPort = getServerIPAndPort();
|
||||||
recive(function(res) {
|
},
|
||||||
console.log("Success:" + res.data);
|
onLoad: function() {
|
||||||
self.getEquipmentInfo(res.data);
|
//加载上一次的用户名
|
||||||
}, function(err) {
|
//FOR DEBUG
|
||||||
console.log("Error:", JSON.stringify(err)); // 正确打印错误信息
|
this.userName = getConfig('userName', 'admin');
|
||||||
});
|
this.passWord = getConfig('passWord', 'admin123');
|
||||||
},
|
},
|
||||||
onUnload: function() {
|
onUnload: function() {
|
||||||
unregisterReceiver()
|
unregisterReceiver()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getEquipmentInfo(encodedString) {
|
getEquipmentInfo(encodedString) {
|
||||||
|
|
||||||
// 去除末尾的逗号和"..."(如果有的话)
|
// 去除末尾的逗号和"..."(如果有的话)
|
||||||
encodedString = encodedString.replace(/,\s*\.\.\.$/, '');
|
encodedString = encodedString.replace(/,\s*\.\.\.$/, '');
|
||||||
console.log("1:" + encodedString);
|
console.log("1:" + encodedString);
|
||||||
@ -76,13 +110,100 @@
|
|||||||
this.title = originalString;
|
this.title = originalString;
|
||||||
console.log("4:" + this.title);
|
console.log("4:" + this.title);
|
||||||
},
|
},
|
||||||
|
login() {
|
||||||
|
var serverIPAndPort = getServerIPAndPort();
|
||||||
|
console.log('http://' + serverIPAndPort + '/user/userLogin');
|
||||||
|
uni.request({
|
||||||
|
url: 'http://' + serverIPAndPort + '/user/userLogin', // 请求的接口地址
|
||||||
|
method: 'POST', // 设置请求方式为 POST
|
||||||
|
data: {
|
||||||
|
"username": this.userName,
|
||||||
|
"password": this.passWord,
|
||||||
|
"deviceType": "PDA"
|
||||||
|
},
|
||||||
|
header: {
|
||||||
|
'Content-Type': 'application/json', // 如果需要以JSON格式发送数据
|
||||||
|
},
|
||||||
|
success: (res) => {
|
||||||
|
// 请求成功的回调函数
|
||||||
|
if (res.statusCode === 200) {
|
||||||
|
//接口返回数据为200 表示获取成功!
|
||||||
|
if (res.data.code == 200) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '登录成功!',
|
||||||
|
icon: 'none',
|
||||||
|
duration: 1500
|
||||||
|
});
|
||||||
|
//保存本次登录使用的用户名 密码
|
||||||
|
saveConfig('userName', this.userName);
|
||||||
|
saveConfig('passWord', this.passWord);
|
||||||
|
|
||||||
|
//重定向 直接就不能返回这个页面了
|
||||||
|
uni.redirectTo({
|
||||||
|
url: '/pages/main/main'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: '获取设备基本信息失败:' + res.data.message,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.text = '服务器返回错误状态码' + res.statusCode;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: (err) => {
|
||||||
|
// 请求失败的回调函数
|
||||||
|
uni.showToast({
|
||||||
|
title: '请求失败' + err,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 2000
|
||||||
|
});
|
||||||
|
},
|
||||||
|
complete: (event) => {
|
||||||
|
// 请求完成的回调函数(无论成功或失败都会调用)
|
||||||
|
console.log('请求完成', event);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
.uni-input {
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
padding: 0px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uni-input-wrapper {
|
||||||
|
/* #ifndef APP-NVUE */
|
||||||
|
display: flex;
|
||||||
|
/* #endif */
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.diy-flex-row {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
margin-top: 15rpx;
|
||||||
|
margin-bottom: 15rpx;
|
||||||
|
font-size: 50rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.diy-flex-column {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
.bg-image {
|
.bg-image {
|
||||||
background-image: url('/static/背景.png');
|
background-image: url('/static/background.png');
|
||||||
/* 背景图片路径 */
|
/* 背景图片路径 */
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
/* 背景图片覆盖整个元素 */
|
/* 背景图片覆盖整个元素 */
|
||||||
@ -98,16 +219,16 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
/* z-index: -1; */
|
/* z-index: -1; */
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
height: 200rpx;
|
height: 200rpx;
|
||||||
width: 200rpx;
|
width: 200rpx;
|
||||||
margin-top: 25rpx;
|
margin-top: 30rpx;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
margin-bottom: 25rpx;
|
margin-bottom: 30rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-area {
|
.text-area {
|
||||||
@ -116,7 +237,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
font-size: 50rpx;
|
font-size: 55rpx;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
129
PDA/PDA/pages/main/main.vue
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<template>
|
||||||
|
<view class="bg-image">
|
||||||
|
|
||||||
|
<view>
|
||||||
|
<navigator url="../index/index" open-type="redirect" hover-class="other-navigator-hover">
|
||||||
|
<view class="logOut-container">
|
||||||
|
<image class="logOut-image" src="/static/logOut.png"></image>
|
||||||
|
</view>
|
||||||
|
</navigator>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view style="display: flex;flex-direction: row;margin-bottom: 10rpx;margin-top: 30rpx;">
|
||||||
|
<view style="flex: 1;"></view>
|
||||||
|
<view class="uni-flex uni-column" style="flex: 5;">
|
||||||
|
<navigator url="../bind/bind" hover-class="navigator-hover">
|
||||||
|
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||||
|
<image class="function-image" src="/static/bind.png" />
|
||||||
|
</view>
|
||||||
|
<view class="function-text">物料绑定</view>
|
||||||
|
</navigator>
|
||||||
|
</view>
|
||||||
|
<view class="uni-flex uni-column" style="flex: 5;">
|
||||||
|
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||||
|
<image class="function-image" src="/static/bindQuery.png" />
|
||||||
|
</view>
|
||||||
|
<view class="function-text">绑定查询</view>
|
||||||
|
</view>
|
||||||
|
<view class="uni-flex uni-column" style="flex: 5;">
|
||||||
|
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||||
|
<image class="function-image" src="/static/callIn.png" />
|
||||||
|
</view>
|
||||||
|
<view class="function-text">产线呼叫</view>
|
||||||
|
</view>
|
||||||
|
<view style="flex: 1;"></view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view style="display: flex;flex-direction: row;margin-bottom: 10rpx;margin-top: 30rpx;">
|
||||||
|
<view style="flex: 1;"></view>
|
||||||
|
<view class="uni-flex uni-column" style="flex: 5;">
|
||||||
|
<navigator url="../bind/bind" hover-class="navigator-hover">
|
||||||
|
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||||
|
<image class="function-image" src="/static/callOut.png" />
|
||||||
|
</view>
|
||||||
|
<view class="function-text">货架送回</view>
|
||||||
|
</navigator>
|
||||||
|
</view>
|
||||||
|
<view class="uni-flex uni-column" style="flex: 5;">
|
||||||
|
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||||
|
<image class="function-image" src="/static/stockTaking.png" />
|
||||||
|
</view>
|
||||||
|
<view class="function-text">库存盘点</view>
|
||||||
|
</view>
|
||||||
|
<view class="uni-flex uni-column" style="flex: 5;">
|
||||||
|
<view class="uni-flex uni-row" style="-webkit-justify-content: center;justify-content: center;">
|
||||||
|
<image class="function-image" src="/static/task.png" />
|
||||||
|
</view>
|
||||||
|
<view class="function-text">任务管理</view>
|
||||||
|
</view>
|
||||||
|
<view style="flex: 1;"></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.bg-image {
|
||||||
|
background-image: url('/static/background.png');
|
||||||
|
/* 背景图片路径 */
|
||||||
|
background-size: cover;
|
||||||
|
/* 背景图片覆盖整个元素 */
|
||||||
|
background-position: center;
|
||||||
|
/* 背景图片居中 */
|
||||||
|
height: 100%;
|
||||||
|
/* 视图高度设置为100% */
|
||||||
|
width: 100%;
|
||||||
|
/* 视图宽度设置为100% */
|
||||||
|
position: fixed;
|
||||||
|
/* 视图定位为固定 */
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
/* z-index: -1; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.logOut-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: flex-end;
|
||||||
|
/* 水平方向上靠右 */
|
||||||
|
align-items: flex-start;
|
||||||
|
/* 垂直方向上靠上 */
|
||||||
|
height: 100%;
|
||||||
|
/* 或者其他适当的值 */
|
||||||
|
/* 其他样式 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.logOut-image {
|
||||||
|
top: 20rpx;
|
||||||
|
right: 20rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
width: 60rpx;
|
||||||
|
/* 不需要额外的定位样式 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.function-image {
|
||||||
|
height: 140rpx;
|
||||||
|
width: 140rpx;
|
||||||
|
margin: 20rpx;
|
||||||
|
padding-left: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.function-text {
|
||||||
|
color: black;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 35rpx;
|
||||||
|
}
|
||||||
|
</style>
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
BIN
PDA/PDA/static/bind.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
PDA/PDA/static/bindQuery.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
PDA/PDA/static/callIn.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
PDA/PDA/static/callOut.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
PDA/PDA/static/logOut.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
PDA/PDA/static/scan.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
PDA/PDA/static/stockTaking.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
PDA/PDA/static/task.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 850 B |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.1 MiB |
Before Width: | Height: | Size: 5.0 KiB |
48
PDA/PDA/unpackage/dist/dev/app-plus/pages/main/main.css
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
|
||||||
|
.bg-image {
|
||||||
|
background-image: url('../../static/background.png');
|
||||||
|
/* 背景图片路径 */
|
||||||
|
background-size: cover;
|
||||||
|
/* 背景图片覆盖整个元素 */
|
||||||
|
background-position: center;
|
||||||
|
/* 背景图片居中 */
|
||||||
|
height: 100%;
|
||||||
|
/* 视图高度设置为100% */
|
||||||
|
width: 100%;
|
||||||
|
/* 视图宽度设置为100% */
|
||||||
|
position: fixed;
|
||||||
|
/* 视图定位为固定 */
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
/* z-index: -1; */
|
||||||
|
}
|
||||||
|
.logOut-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: flex-end;
|
||||||
|
/* 水平方向上靠右 */
|
||||||
|
align-items: flex-start;
|
||||||
|
/* 垂直方向上靠上 */
|
||||||
|
height: 100%;
|
||||||
|
/* 或者其他适当的值 */
|
||||||
|
/* 其他样式 */
|
||||||
|
}
|
||||||
|
.logOut-image {
|
||||||
|
top: 0.625rem;
|
||||||
|
right: 0.625rem;
|
||||||
|
height: 1.875rem;
|
||||||
|
width: 1.875rem;
|
||||||
|
/* 不需要额外的定位样式 */
|
||||||
|
}
|
||||||
|
.function-image {
|
||||||
|
height: 4.375rem;
|
||||||
|
width: 4.375rem;
|
||||||
|
margin: 0.625rem;
|
||||||
|
padding-left: 0.625rem;
|
||||||
|
}
|
||||||
|
.function-text {
|
||||||
|
color: black;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.09375rem;
|
||||||
|
}
|
@ -398,57 +398,57 @@ namespace WCS.BLL.Services.Service
|
|||||||
}
|
}
|
||||||
else//登录模式需要校验密码
|
else//登录模式需要校验密码
|
||||||
{
|
{
|
||||||
#region 盟讯公司登录接入系统接口
|
//#region 盟讯公司登录接入系统接口
|
||||||
if (LocalFile.Config.IsMx)
|
//if (LocalFile.Config.IsMx)
|
||||||
{
|
//{
|
||||||
#region 调用接口 接入盟讯公司登录
|
// #region 调用接口 接入盟讯公司登录
|
||||||
try
|
// try
|
||||||
{
|
// {
|
||||||
var body = new
|
// var body = new
|
||||||
{
|
// {
|
||||||
uername = request.UserName,
|
// uername = request.UserName,
|
||||||
password = request.PassWord,
|
// password = request.PassWord,
|
||||||
};
|
// };
|
||||||
var Result = ApiHelp.GetDataFromHttpShortTime<MXResponse>("http://192.168.2.23:9213/integrate/login/queryGenerLogin", body, "POST", true);
|
// var Result = ApiHelp.GetDataFromHttpShortTime<MXResponse>("http://192.168.2.23:9213/integrate/login/queryGenerLogin", body, "POST", true);
|
||||||
//账号密码验证成功
|
// //账号密码验证成功
|
||||||
if (Result != null && Result.code == 200)
|
// if (Result != null && Result.code == 200)
|
||||||
{
|
// {
|
||||||
//判断系统中是否有对应用户
|
// //判断系统中是否有对应用户
|
||||||
user = await AuthDbHelp.db.Queryable<UserBase>()
|
// user = await AuthDbHelp.db.Queryable<UserBase>()
|
||||||
.Where(t => t.LoginName == request.UserName)
|
// .Where(t => t.LoginName == request.UserName)
|
||||||
.FirstAsync();
|
// .FirstAsync();
|
||||||
//Mes登录成功后wcs这边也添加一个用户
|
// //Mes登录成功后wcs这边也添加一个用户
|
||||||
if (user == null)
|
// if (user == null)
|
||||||
{
|
// {
|
||||||
user = new UserBase()
|
// user = new UserBase()
|
||||||
{
|
// {
|
||||||
LoginName = request.UserName,
|
// LoginName = request.UserName,
|
||||||
Password = request.PassWord,
|
// Password = request.PassWord,
|
||||||
RoleIds = new List<int>() { 2 },
|
// RoleIds = new List<int>() { 2 },
|
||||||
IsAdmin = false,
|
// IsAdmin = false,
|
||||||
Time = DateTime.Now,
|
// Time = DateTime.Now,
|
||||||
};
|
// };
|
||||||
await AuthDbHelp.db.Insertable(user).ExecuteCommandAsync();
|
// await AuthDbHelp.db.Insertable(user).ExecuteCommandAsync();
|
||||||
}
|
// }
|
||||||
else if (user.Password != request.PassWord)
|
// else if (user.Password != request.PassWord)
|
||||||
{
|
// {
|
||||||
user.Password = request.PassWord;
|
// user.Password = request.PassWord;
|
||||||
await AuthDbHelp.db.Updateable(user).ExecuteCommandAsync();
|
// await AuthDbHelp.db.Updateable(user).ExecuteCommandAsync();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
//账号密码验证失败
|
// //账号密码验证失败
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
catch (Exception e)
|
// catch (Exception e)
|
||||||
{
|
// {
|
||||||
|
|
||||||
}
|
// }
|
||||||
#endregion
|
// #endregion
|
||||||
}
|
//}
|
||||||
#endregion
|
//#endregion
|
||||||
if (user == null)
|
if (user == null)
|
||||||
user = await AuthDbHelp.db.Queryable<UserBase>()
|
user = await AuthDbHelp.db.Queryable<UserBase>()
|
||||||
.Where(t => t.LoginName == request.UserName)
|
.Where(t => t.LoginName == request.UserName)
|
||||||
|