From b58b954436355d039118084a6f5ee6601e8dd07c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E6=AD=A3=E6=98=93?=
<9634538+git_rabbit@user.noreply.gitee.com>
Date: Tue, 12 Mar 2024 17:41:00 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E5=86=99=E7=99=BB=E5=BD=95=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2=EF=BC=8C=E9=A6=96=E9=A1=B5=E9=9D=A2=EF=BC=8C=E5=85=A5?=
=?UTF-8?q?=E5=BA=93=E9=A1=B5=E9=9D=A2=EF=BC=8C=E6=A0=B7=E5=BC=8F=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=EF=BC=8C=E6=89=AB=E7=A0=81=E5=8A=9F=E8=83=BD=E5=AE=9E?=
=?UTF-8?q?=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
App.vue | 74 ++-
api/warehouse/warehose.js | 11 +
components/material-item/material-item.vue | 43 ++
components/pda-scan-input/index.vue | 89 +++
main.js | 8 +-
manifest.json | 28 +-
pages.json | 152 ++---
pages/common/textview/index.vue | 43 --
pages/common/webview/index.vue | 34 --
pages/inWarehouse/inWarehouse.vue | 133 +++++
pages/index.vue | 43 --
pages/index/index.vue | 105 ++++
pages/{ => login}/login.vue | 22 +-
pages/mine/about/index.vue | 75 ---
pages/mine/avatar/index.vue | 631 ---------------------
pages/mine/help/index.vue | 112 ----
pages/mine/index.vue | 198 -------
pages/mine/info/edit.vue | 127 -----
pages/mine/info/index.vue | 44 --
pages/mine/pwd/index.vue | 85 ---
pages/mine/setting/index.vue | 78 ---
pages/outWarehouse/outWarehouse.vue | 23 +
pages/register.vue | 196 -------
pages/relocation/relocation.vue | 23 +
pages/stocktake/stocktake.vue | 23 +
pages/work/index.vue | 183 ------
permission.js | 58 +-
static/images/background/background.jpg | Bin 0 -> 10974 bytes
28 files changed, 616 insertions(+), 2025 deletions(-)
create mode 100644 api/warehouse/warehose.js
create mode 100644 components/material-item/material-item.vue
create mode 100644 components/pda-scan-input/index.vue
delete mode 100644 pages/common/textview/index.vue
delete mode 100644 pages/common/webview/index.vue
create mode 100644 pages/inWarehouse/inWarehouse.vue
delete mode 100644 pages/index.vue
create mode 100644 pages/index/index.vue
rename pages/{ => login}/login.vue (92%)
delete mode 100644 pages/mine/about/index.vue
delete mode 100644 pages/mine/avatar/index.vue
delete mode 100644 pages/mine/help/index.vue
delete mode 100644 pages/mine/index.vue
delete mode 100644 pages/mine/info/edit.vue
delete mode 100644 pages/mine/info/index.vue
delete mode 100644 pages/mine/pwd/index.vue
delete mode 100644 pages/mine/setting/index.vue
create mode 100644 pages/outWarehouse/outWarehouse.vue
delete mode 100644 pages/register.vue
create mode 100644 pages/relocation/relocation.vue
create mode 100644 pages/stocktake/stocktake.vue
delete mode 100644 pages/work/index.vue
create mode 100644 static/images/background/background.jpg
diff --git a/App.vue b/App.vue
index 797f513..4a445ec 100644
--- a/App.vue
+++ b/App.vue
@@ -1,34 +1,52 @@
diff --git a/api/warehouse/warehose.js b/api/warehouse/warehose.js
new file mode 100644
index 0000000..efd1b36
--- /dev/null
+++ b/api/warehouse/warehose.js
@@ -0,0 +1,11 @@
+import upload from '@/utils/upload'
+import request from '@/utils/request'
+
+// 获取仓库信息
+export function getWareHouseProfile(data) {
+ return request({
+ url: '/wms/wareHouse/getWareHouseProfile',
+ method: 'pose',
+ data
+ })
+}
\ No newline at end of file
diff --git a/components/material-item/material-item.vue b/components/material-item/material-item.vue
new file mode 100644
index 0000000..e036dcf
--- /dev/null
+++ b/components/material-item/material-item.vue
@@ -0,0 +1,43 @@
+
+
+ {{materialInfo.title}}
+ {{materialInfo.time}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/pda-scan-input/index.vue b/components/pda-scan-input/index.vue
new file mode 100644
index 0000000..b884890
--- /dev/null
+++ b/components/pda-scan-input/index.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
diff --git a/main.js b/main.js
index 3985b1b..1f7128c 100644
--- a/main.js
+++ b/main.js
@@ -3,6 +3,10 @@ import App from './App'
import store from './store' // store
import plugins from './plugins' // plugins
import './permission' // permission
+// 组件加载
+// PDA扫描获取仓库信息组件
+import PdaScanInput from '@/components/pda-scan-input/index.vue';
+Vue.component('PdaScanInput',PdaScanInput)
Vue.use(plugins)
Vue.config.productionTip = false
@@ -11,7 +15,7 @@ Vue.prototype.$store = store
App.mpType = 'app'
const app = new Vue({
- ...App
+ ...App
})
-app.$mount()
+app.$mount()
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
index 00a9b93..18942ad 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,8 +1,8 @@
{
- "name" : "若依移动端",
- "appid" : "__UNI__25A9D80",
+ "name" : "干巷仓库PDF-APP",
+ "appid" : "__UNI__A67E78B",
"description" : "",
- "versionName" : "1.1.0",
+ "versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
"app-plus" : {
@@ -14,7 +14,9 @@
"autoclose" : true,
"delay" : 0
},
- "modules" : {},
+ "modules" : {
+ "Barcode" : {}
+ },
"distribute" : {
"android" : {
"permissions" : [
@@ -59,15 +61,15 @@
"devServer" : {
"port" : 9090,
"https" : false,
- "disableHostCheck":true,
- "proxy":{
- "/api":{
- "target":"http://localhost:8888",
- "pathRewrite":{
- "^/api": ""
- }
- }
- }
+ "disableHostCheck" : true,
+ "proxy" : {
+ "/api" : {
+ "target" : "http://localhost:8888",
+ "pathRewrite" : {
+ "^/api" : ""
+ }
+ }
+ }
},
"title" : "RuoYi-App",
"router" : {
diff --git a/pages.json b/pages.json
index 333251c..6b0ea1f 100644
--- a/pages.json
+++ b/pages.json
@@ -1,102 +1,52 @@
{
- "pages": [{
- "path": "pages/login",
- "style": {
- "navigationBarTitleText": "登录"
- }
- }, {
- "path": "pages/register",
- "style": {
- "navigationBarTitleText": "注册"
- }
- }, {
- "path": "pages/index",
- "style": {
- "navigationBarTitleText": "若依移动端框架",
- "navigationStyle": "custom"
- }
- }, {
- "path": "pages/work/index",
- "style": {
- "navigationBarTitleText": "工作台"
- }
- }, {
- "path": "pages/mine/index",
- "style": {
- "navigationBarTitleText": "我的"
- }
- }, {
- "path": "pages/mine/avatar/index",
- "style": {
- "navigationBarTitleText": "修改头像"
- }
- }, {
- "path": "pages/mine/info/index",
- "style": {
- "navigationBarTitleText": "个人信息"
- }
- }, {
- "path": "pages/mine/info/edit",
- "style": {
- "navigationBarTitleText": "编辑资料"
- }
- }, {
- "path": "pages/mine/pwd/index",
- "style": {
- "navigationBarTitleText": "修改密码"
- }
- }, {
- "path": "pages/mine/setting/index",
- "style": {
- "navigationBarTitleText": "应用设置"
- }
- }, {
- "path": "pages/mine/help/index",
- "style": {
- "navigationBarTitleText": "常见问题"
- }
- }, {
- "path": "pages/mine/about/index",
- "style": {
- "navigationBarTitleText": "关于我们"
- }
- }, {
- "path": "pages/common/webview/index",
- "style": {
- "navigationBarTitleText": "浏览网页"
- }
- }, {
- "path": "pages/common/textview/index",
- "style": {
- "navigationBarTitleText": "浏览文本"
- }
- }],
- "tabBar": {
- "color": "#000000",
- "selectedColor": "#000000",
- "borderStyle": "white",
- "backgroundColor": "#ffffff",
- "list": [{
- "pagePath": "pages/index",
- "iconPath": "static/images/tabbar/home.png",
- "selectedIconPath": "static/images/tabbar/home_.png",
- "text": "首页"
- }, {
- "pagePath": "pages/work/index",
- "iconPath": "static/images/tabbar/work.png",
- "selectedIconPath": "static/images/tabbar/work_.png",
- "text": "工作台"
- }, {
- "pagePath": "pages/mine/index",
- "iconPath": "static/images/tabbar/mine.png",
- "selectedIconPath": "static/images/tabbar/mine_.png",
- "text": "我的"
- }
- ]
- },
- "globalStyle": {
- "navigationBarTextStyle": "black",
- "navigationBarTitleText": "RuoYi",
- "navigationBarBackgroundColor": "#FFFFFF"
- }
-}
+ "pages": [{
+ "path": "pages/login/login",
+ "style": {
+ "navigationBarTitleText": "登录"
+ }
+ }, {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "DOAN",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/inWarehouse/inWarehouse",
+ "style": {
+ "navigationBarTitleText": "入库",
+ // "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/outWarehouse/outWarehouse",
+ "style": {
+ "navigationBarTitleText": "出库",
+ // "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/stocktake/stocktake",
+ "style": {
+ "navigationBarTitleText": "盘点",
+ // "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/relocation/relocation",
+ "style": {
+ "navigationBarTitleText": "移库",
+ // "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "DOAN",
+ "navigationBarBackgroundColor": "#FFFFFF"
+ }
+}
\ No newline at end of file
diff --git a/pages/common/textview/index.vue b/pages/common/textview/index.vue
deleted file mode 100644
index e9b05fb..0000000
--- a/pages/common/textview/index.vue
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
- {{ content }}
-
-
-
-
-
-
-
diff --git a/pages/common/webview/index.vue b/pages/common/webview/index.vue
deleted file mode 100644
index 8388c76..0000000
--- a/pages/common/webview/index.vue
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
diff --git a/pages/inWarehouse/inWarehouse.vue b/pages/inWarehouse/inWarehouse.vue
new file mode 100644
index 0000000..9cff25c
--- /dev/null
+++ b/pages/inWarehouse/inWarehouse.vue
@@ -0,0 +1,133 @@
+
+
+
+ 入库
+
+ 仓库名称:{{ warehouseInfo.warehouse }}
+ 库位名称:{{ warehouseInfo.location }}
+ 货架名称:{{ warehouseInfo.shelf }}
+ 当前货物数:{{ warehouseInfo.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/index.vue b/pages/index.vue
deleted file mode 100644
index 4646807..0000000
--- a/pages/index.vue
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
- Hello RuoYi
-
-
-
-
-
-
-
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..ecc0163
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,105 @@
+
+
+ 道安WMS-PDA扫码
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/login.vue b/pages/login/login.vue
similarity index 92%
rename from pages/login.vue
rename to pages/login/login.vue
index f2b4b57..4467cbc 100644
--- a/pages/login.vue
+++ b/pages/login/login.vue
@@ -1,8 +1,8 @@
-
+
- 若依移动端登录
+ DOAN PDA 登录
@@ -38,7 +38,11 @@
-
-
diff --git a/pages/mine/avatar/index.vue b/pages/mine/avatar/index.vue
deleted file mode 100644
index 7a874bd..0000000
--- a/pages/mine/avatar/index.vue
+++ /dev/null
@@ -1,631 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/mine/help/index.vue b/pages/mine/help/index.vue
deleted file mode 100644
index d2e4374..0000000
--- a/pages/mine/help/index.vue
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-
-
- {{ item.title }}
-
-
-
- {{ child.title }}
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/mine/index.vue b/pages/mine/index.vue
deleted file mode 100644
index b79ed52..0000000
--- a/pages/mine/index.vue
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
-
-
-
-
-
-
-
- 交流群
-
-
-
- 在线客服
-
-
-
- 反馈社区
-
-
-
- 点赞我们
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/mine/info/edit.vue b/pages/mine/info/edit.vue
deleted file mode 100644
index 519540a..0000000
--- a/pages/mine/info/edit.vue
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/mine/info/index.vue b/pages/mine/info/index.vue
deleted file mode 100644
index 65c861a..0000000
--- a/pages/mine/info/index.vue
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/mine/pwd/index.vue b/pages/mine/pwd/index.vue
deleted file mode 100644
index da9567f..0000000
--- a/pages/mine/pwd/index.vue
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/mine/setting/index.vue b/pages/mine/setting/index.vue
deleted file mode 100644
index 0f9f058..0000000
--- a/pages/mine/setting/index.vue
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/outWarehouse/outWarehouse.vue b/pages/outWarehouse/outWarehouse.vue
new file mode 100644
index 0000000..213db50
--- /dev/null
+++ b/pages/outWarehouse/outWarehouse.vue
@@ -0,0 +1,23 @@
+
+
+ 出库
+
+
+
+
+
+
diff --git a/pages/register.vue b/pages/register.vue
deleted file mode 100644
index 61e6d5c..0000000
--- a/pages/register.vue
+++ /dev/null
@@ -1,196 +0,0 @@
-
-
-
-
-
- 若依移动端注册
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 使用已有账号登录
-
-
-
-
-
-
-
diff --git a/pages/relocation/relocation.vue b/pages/relocation/relocation.vue
new file mode 100644
index 0000000..2b10917
--- /dev/null
+++ b/pages/relocation/relocation.vue
@@ -0,0 +1,23 @@
+
+
+ 移库
+
+
+
+
+
+
diff --git a/pages/stocktake/stocktake.vue b/pages/stocktake/stocktake.vue
new file mode 100644
index 0000000..db320f8
--- /dev/null
+++ b/pages/stocktake/stocktake.vue
@@ -0,0 +1,23 @@
+
+
+ 盘点
+
+
+
+
+
+
diff --git a/pages/work/index.vue b/pages/work/index.vue
deleted file mode 100644
index 1afefc9..0000000
--- a/pages/work/index.vue
+++ /dev/null
@@ -1,183 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 用户管理
-
-
-
-
-
- 角色管理
-
-
-
-
-
- 菜单管理
-
-
-
-
-
- 部门管理
-
-
-
-
-
- 岗位管理
-
-
-
-
-
- 字典管理
-
-
-
-
-
- 参数设置
-
-
-
-
-
- 通知公告
-
-
-
-
-
- 日志管理
-
-
-
-
-
-
-
-
-
-
diff --git a/permission.js b/permission.js
index cbaec53..ab18ee4 100644
--- a/permission.js
+++ b/permission.js
@@ -1,39 +1,45 @@
-import { getToken } from '@/utils/auth'
+import {
+ getToken
+} from '@/utils/auth'
// 登录页面
-const loginPage = "/pages/login"
-
+const loginPage = "/pages/login/login"
+
// 页面白名单
const whiteList = [
- '/pages/login', '/pages/register', '/pages/common/webview/index'
+ '/pages/login/login','pages/index/index'
]
// 检查地址白名单
function checkWhite(url) {
- const path = url.split('?')[0]
- return whiteList.indexOf(path) !== -1
+ const path = url.split('?')[0]
+ return whiteList.indexOf(path) !== -1
}
// 页面跳转验证拦截器
let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]
list.forEach(item => {
- uni.addInterceptor(item, {
- invoke(to) {
- if (getToken()) {
- if (to.url === loginPage) {
- uni.reLaunch({ url: "/" })
- }
- return true
- } else {
- if (checkWhite(to.url)) {
- return true
- }
- uni.reLaunch({ url: loginPage })
- return false
- }
- },
- fail(err) {
- console.log(err)
- }
- })
-})
+ uni.addInterceptor(item, {
+ invoke(to) {
+ if (getToken()) {
+ // if (to.url === loginPage) {
+ // uni.reLaunch({
+ // url: "/"
+ // })
+ // }
+ return true
+ } else {
+ if (checkWhite(to.url)) {
+ return true
+ }
+ uni.reLaunch({
+ url: loginPage
+ })
+ return false
+ }
+ },
+ fail(err) {
+ console.log(err)
+ }
+ })
+})
\ No newline at end of file
diff --git a/static/images/background/background.jpg b/static/images/background/background.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..12b3b73ed28a97d97b912689cacb052eb3200952
GIT binary patch
literal 10974
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
literal 0
HcmV?d00001