Browse Source

快递模块订单接口对接

haveyou 1 năm trước cách đây
mục cha
commit
7b330b7598
100 tập tin đã thay đổi với 1956 bổ sung1001 xóa
  1. 10 9
      components/cy-upload/index.vue
  2. 7 3
      config/request.js
  3. 18 0
      main.js
  4. 14 0
      manifest.json
  5. 313 265
      pages.json
  6. 55 2
      pages/index/audit/express-order.vue
  7. 49 0
      pages/index/audit/isbn-order.vue
  8. 245 218
      pages/index/audit/scan-order.vue
  9. 42 15
      pages/index/express/components/WarehouseSelector.vue
  10. 62 17
      pages/index/express/transfer-sign.vue
  11. 103 84
      pages/index/express/warehouse-sign.vue
  12. 101 73
      pages/index/express/weight-modify.vue
  13. 279 273
      pages/index/index.vue
  14. 198 0
      pages/login/login.vue
  15. 1 7
      pages/my/my.vue
  16. 5 5
      pages/order/index.vue
  17. BIN
      static/img/logo.png
  18. 2 2
      uni.scss
  19. 10 10
      uni_modules/uview-plus/components/u-button/u-button.vue
  20. 1 1
      uni_modules/uview-plus/components/u-input/props.js
  21. 2 2
      uni_modules/uview-plus/theme.scss
  22. 2 2
      unpackage/cache/wgt/__UNI__65C1C73/__uniappview.html
  23. 0 1
      unpackage/cache/wgt/__UNI__65C1C73/app-config-service.js
  24. 2 0
      unpackage/cache/wgt/__UNI__65C1C73/app-renderjs.js
  25. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/app-service.js
  26. 1 0
      unpackage/cache/wgt/__UNI__65C1C73/app-wxs.js
  27. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/app.css
  28. BIN
      unpackage/cache/wgt/__UNI__65C1C73/assets/no-result.6af066e5.png
  29. BIN
      unpackage/cache/wgt/__UNI__65C1C73/assets/uniicons.89ed7d6d.ttf
  30. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/manifest.json
  31. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/book/index.css
  32. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/confirm-receipt.css
  33. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/express-order.css
  34. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/isbn-order.css
  35. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/scan-order.css
  36. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/sender.css
  37. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/entry/book-weight.css
  38. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/entry/scan-book.css
  39. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/logistics-detail.css
  40. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/quick-check.css
  41. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/quick-unpack.css
  42. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/route-exception.css
  43. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/transfer-sign.css
  44. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/warehouse-sign.css
  45. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/weight-modify.css
  46. 1 1
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/index.css
  47. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/offline/check-order.css
  48. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/offline/check-record.css
  49. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/statistic/after-sale.css
  50. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/statistic/audit.css
  51. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/statistic/package.css
  52. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/bad-in.css
  53. 1 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/bad-off.css
  54. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/bad-out-order.css
  55. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/bad-out.css
  56. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/location-order.css
  57. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/location-select.css
  58. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/order-query.css
  59. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/speedy-check-add.css
  60. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/speedy-check.css
  61. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/task-detail.css
  62. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/warehouse-select.css
  63. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/login/login.css
  64. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/my/my.css
  65. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/my/page/audit-unfinished.css
  66. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/my/page/book-display.css
  67. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/my/page/password.css
  68. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/my/page/volume.css
  69. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/order/index.css
  70. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-audit.css
  71. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-confirm.css
  72. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-payment.css
  73. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-pick.css
  74. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-review.css
  75. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-sign.css
  76. 0 0
      unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/receive-stat.css
  77. 344 0
      unpackage/cache/wgt/__UNI__65C1C73/static/css/common.scss
  78. 67 2
      unpackage/cache/wgt/__UNI__65C1C73/static/css/mystyle.css
  79. BIN
      unpackage/cache/wgt/__UNI__65C1C73/static/img/logo.png
  80. BIN
      unpackage/debug/android_debug.apk
  81. 2 2
      unpackage/dist/build/app-plus/__uniappview.html
  82. 0 1
      unpackage/dist/build/app-plus/app-config-service.js
  83. 2 0
      unpackage/dist/build/app-plus/app-renderjs.js
  84. 0 0
      unpackage/dist/build/app-plus/app-service.js
  85. 1 0
      unpackage/dist/build/app-plus/app-wxs.js
  86. 0 0
      unpackage/dist/build/app-plus/app.css
  87. BIN
      unpackage/dist/build/app-plus/assets/no-result.6af066e5.png
  88. BIN
      unpackage/dist/build/app-plus/assets/uniicons.89ed7d6d.ttf
  89. 16 6
      unpackage/dist/build/app-plus/manifest.json
  90. 0 0
      unpackage/dist/build/app-plus/pages/book/index.css
  91. 0 0
      unpackage/dist/build/app-plus/pages/index/audit/confirm-receipt.css
  92. 0 0
      unpackage/dist/build/app-plus/pages/index/audit/express-order.css
  93. 0 0
      unpackage/dist/build/app-plus/pages/index/audit/isbn-order.css
  94. 0 0
      unpackage/dist/build/app-plus/pages/index/audit/scan-order.css
  95. 0 0
      unpackage/dist/build/app-plus/pages/index/audit/sender.css
  96. 0 0
      unpackage/dist/build/app-plus/pages/index/entry/book-weight.css
  97. 0 0
      unpackage/dist/build/app-plus/pages/index/entry/scan-book.css
  98. 0 0
      unpackage/dist/build/app-plus/pages/index/express/logistics-detail.css
  99. 0 0
      unpackage/dist/build/app-plus/pages/index/express/quick-check.css
  100. 0 0
      unpackage/dist/build/app-plus/pages/index/express/quick-unpack.css

+ 10 - 9
components/cy-upload/index.vue

@@ -1,5 +1,6 @@
 <template>
-	<u-upload v-bind="$attrs" :fileList="fileList" @afterRead="afterRead" @delete="deletePic" :notFile="notFile" :disabled="disabled">
+	<u-upload v-bind="$attrs" :fileList="fileList" @afterRead="afterRead" @delete="deletePic" :notFile="notFile"
+		:disabled="disabled">
 	</u-upload>
 	<view class="tips" v-if="tips">{{tips}}</view>
 </template>
@@ -9,7 +10,7 @@
 		watch,
 		ref
 	} from 'vue';
-	import baseURL from '@/config/request.js';
+	import baseUrl from '@/config/request.js';
 	const emit = defineEmits(['update:filename', 'update:keyValue', 'success'])
 
 	const props = defineProps({
@@ -42,12 +43,12 @@
 		if (!filename) return fileList.value = []
 		if (typeof filename == 'string') {
 			fileList.value = filename.split(',').map(v => ({
-				url: baseURL + v,
-				fileName: v
+				url: baseUrl + v,
 			}))
 		} else {
-			fileList.value = filename
-			console.log(fileList.value,'dsadsa')
+			fileList.value = filename && filename.length > 0 ? filename.map(v => ({
+				url: v.url || v,
+			})) : []
 		}
 	}, {
 		immediate: true,
@@ -64,15 +65,15 @@
 			message: '上传中...',
 		});
 		const result = await uploadFilePromise(file.url);
+		console.log(result, 'result')
 
 		fileList.value.forEach(v => {
 			v.url = result.url
-			v.fileName = result.fileName
 			v.status = 'success'
 			v.message = ''
 		})
 		//更新外部参数
-		emit('update:filename', fileList)
+		emit('update:filename', fileList.value.map(v => v.url))
 		emit('success', result)
 	}
 
@@ -84,7 +85,7 @@
 		let token = uni.getStorageSync('token')
 		return new Promise((resolve, reject) => {
 			let a = uni.uploadFile({
-				url: baseURL + baseStr, // 图片上传地址
+				url: baseUrl + baseStr, // 图片上传地址
 				filePath: url,
 				name: 'file',
 				header: {

+ 7 - 3
config/request.js

@@ -4,13 +4,14 @@ import {
 /**
  * 文档地址:https://uiadmin.net/uview-plus/js/http.html
  */
+const baseUrl = 'http://bk.shuhi.com'
 export function initRequest() {
 	console.log('初始化了 http 请求代码')
 	// 初始化请求配置
 	uni.$u.http.setConfig((config) => {
 		/* config 为默认全局配置*/
 		// config.baseURL = `http://192.168.1.2:8080`; /* 根域名 */
-		config.baseURL = `http://tf.hqzf100.com/dev-api/`; /* 根域名 */
+		config.baseURL = baseUrl; /* 根域名 */
 		config.custom.toast = true // 默认消息有msg会显示出来
 		return config
 	})
@@ -20,7 +21,7 @@ export function initRequest() {
 		// 初始化请求拦截器时,会执行此方法,此时data为undefined,赋予默认{}
 		config.data = config.data || {}
 		// 挂载 token
-		let token = store.token
+		let token = store.token || uni.getStorageSync('token')
 		config.header.Authorization = token ? `Bearer ${token}` : ''
 		return config
 	}, config => { // 可使用async await 做异步操作
@@ -38,6 +39,7 @@ export function initRequest() {
 			// 身份认证失败,需要重新登录
 			if (data.code === 401) {
 				uni.$u.toast(data.msg || '身份认证失败,请先登录')
+				uni.clearStorage()
 				store.setToken('') // 清空token
 				setTimeout(() => {
 					uni.$u.route({
@@ -66,4 +68,6 @@ export function initRequest() {
 		// 对响应错误做点什么 (statusCode !== 200)
 		return Promise.reject(response)
 	})
-}
+}
+
+export default baseUrl

+ 18 - 0
main.js

@@ -8,6 +8,18 @@ import {
 	initRequest
 } from '@/config/request.js'
 
+import VolumeTTS from '@/utils/VolumeTTS.js'
+let ttsModule = new VolumeTTS()
+
+// #ifdef APP
+import {
+	useInit,
+	useGlobalEvent
+} from './utils/useBarcodeModule'
+useInit()
+// #endif
+
+
 // #ifndef VUE3
 import Vue from 'vue'
 import './uni.promisify.adaptor'
@@ -27,6 +39,12 @@ import {
 import {
 	createPinia
 } from 'pinia'
+
+uni.$u.ttsModule = ttsModule
+// #ifdef APP
+uni.$u.useGlobalEvent = useGlobalEvent
+// #endif
+
 export function createApp() {
 	const app = createSSRApp(App)
 	// 引入请求封装方法并执行

+ 14 - 0
manifest.json

@@ -72,6 +72,20 @@
                     "pid" : "4133",
                     "parameters" : {}
                 }
+            },
+            "iData-BarcodePlugin" : {
+                "__plugin_info__" : {
+                    "name" : "iData条码扫描插件",
+                    "description" : "实现了APP接收iData品牌PDA扫描的条码数据,适配iData品牌所有安卓PDA设备。",
+                    "platforms" : "Android",
+                    "url" : "https://ext.dcloud.net.cn/plugin?id=3898",
+                    "android_package_name" : "com.wk.pds",
+                    "ios_bundle_id" : "",
+                    "isCloud" : true,
+                    "bought" : 1,
+                    "pid" : "3898",
+                    "parameters" : {}
+                }
             }
         }
     },

+ 313 - 265
pages.json

@@ -1,5 +1,11 @@
 {
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/login/login",
+			"style": {
+				"navigationBarTitleText": "登录"
+			}
+		},
 		{
 			"path": "pages/index/index",
 			"style": {
@@ -26,273 +32,315 @@
 		}
 	],
 	"subPackages": [{
-		"root": "pages/index",
-		"pages": [{
-				"path": "express/transfer-sign",
-				"style": {
-					"navigationBarTitleText": "中转签收"
-				}
-			}, {
-				"path": "express/quick-check",
-				"style": {
-					"navigationBarTitleText": "快速验收"
-				}
-			}, {
-				"path": "express/quick-unpack",
-				"style": {
-					"navigationBarTitleText": "快速拆包"
-				}
-			}, {
-				"path": "express/route-exception",
-				"style": {
-					"navigationBarTitleText": "路由签收异常"
-				}
-			}, {
-				"path": "express/warehouse-sign",
-				"style": {
-					"navigationBarTitleText": "到仓签收"
-				}
-			}, {
-				"path": "express/weight-modify",
-				"style": {
-					"navigationBarTitleText": "重量修改"
-				}
-			}, {
-				"path": "audit/confirm-receipt",
-				"style": {
-					"navigationBarTitleText": "确认收货"
-				}
-			}, {
-				"path": "audit/scan-order",
-				"style": {
-					"navigationBarTitleText": "扫书查单"
-				}
-			}, {
-				"path": "audit/express-order",
-				"style": {
-					"navigationBarTitleText": "根据快递单或订单"
-				}
-			}, {
-				"path": "audit/sender",
-				"style": {
-					"navigationBarTitleText": "根据发件人"
-				}
-			}, {
-				"path": "statistic/audit",
-				"style": {
-					"navigationBarTitleText": "审核统计"
-				}
-			}, {
-				"path": "statistic/after-sale",
-				"style": {
-					"navigationBarTitleText": "售后统计"
-				}
-			}, {
-				"path": "statistic/package",
-				"style": {
-					"navigationBarTitleText": "打包统计"
-				}
-			}, {
-				"path": "wms/medium-in",
-				"style": {
-					"navigationBarTitleText": "中等入库"
-				}
-			}, {
-				"path": "wms/good-in",
-				"style": {
-					"navigationBarTitleText": "良品入库"
-				}
-			}, {
-				"path": "wms/secondary-in",
-				"style": {
-					"navigationBarTitleText": "次品入库"
-				}
-			}, {
-				"path": "wms/bad-in",
-				"style": {
-					"navigationStyle": "custom",
-					"navigationBarTitleText": "不良入库"
-				}
-			}, {
-				"path": "wms/bad-out",
-				"style": {
-					"navigationBarTitleText": "不良出库"
-				}
-			}, {
-				"path": "wms/bad-out-order",
-				"style": {
-					"navigationBarTitleText": "不良出库"
-				}
-			}, {
-				"path": "wms/bad-off",
-				"style": {
-					"navigationBarTitleText": "不良下架"
-				}
-			}, {
-				"path": "wms/order-query",
-				"style": {
-					"navigationBarTitleText": "订单查询"
-				}
-			}, {
-				"path": "wms/location-order",
-				"style": {
-					"navigationBarTitleText": "库位订单"
-				}
-			}, {
-				"path": "wms/location-select",
-				"style": {
-					"navigationBarTitleText": "库位选择"
-				}
-			}, {
-				"path": "wms/warehouse-select",
-				"style": {
-					"navigationBarTitleText": "仓库选择"
-				}
-			}, {
-				"path": "wms/speedy-check",
-				"style": {
-					"navigationStyle": "custom",
-					"navigationBarTitleText": "快速盘点"
-				}
-			}, {
-				"path": "offline/check-order",
-				"style": {
-					"navigationBarTitleText": "线下核单"
-				}
-			}, {
-				"path": "offline/check-record",
-				"style": {
-					"navigationBarTitleText": "核单记录"
-				}
-			}, {
-				"path": "entry/scan-book",
-				"style": {
-					"navigationBarTitleText": "扫码查书"
-				}
-			}, {
-				"path": "entry/book-weight",
-				"style": {
-					"navigationBarTitleText": "录入书籍重量"
-				}
-			},
-			{
-				"path": "express/logistics-detail",
-				"style": {
-					"navigationBarTitleText": "物流详情"
-				}
-			},
-			{
-				"path": "wms/task-detail",
-				"style": {
-					"navigationStyle": "custom",
-					"navigationBarTitleText": "下架任务"
-				}
-			},
-			{
-				"path": "wms/speedy-check-add",
-				"style": {
-					"navigationStyle": "custom",
-					"navigationBarTitleText": "选择商品"
-				}
-			}
-		]
-	}, {
-		"root": "pages/my",
-		"pages": [{
-				"path": "page/user-info",
-				"style": {
-					"navigationBarTitleText": "用户信息"
-				}
-			},
-			{
-				"path": "page/warehouse",
-				"style": {
-					"navigationBarTitleText": "默认仓库"
-				}
-			}, {
-				"path": "page/school",
-				"style": {
-					"navigationBarTitleText": "学校设置"
-				}
-			}, {
-				"path": "page/audit-unfinished",
-				"style": {
-					"navigationBarTitleText": "审核未完成"
-				}
-			}, {
-				"path": "page/version",
-				"style": {
-					"navigationBarTitleText": "版本设置"
-				}
-
-			}, {
-				"path": "page/volume",
-				"style": {
-					"navigationBarTitleText": "音频设置"
-				}
-			}, {
-				"path": "page/book-display",
-				"style": {
-					"navigationBarTitleText": "图书显示设置"
-				}
-			}, {
-				"path": "page/password",
-				"style": {
-					"navigationBarTitleText": "修改密码"
-				}
-			}
-		]
-	}, {
-		"root": "pages/order/stat",
-		"pages": [{
-				"path": "pending-review",
-				"style": {
-					"navigationBarTitleText": "待初审统计"
-				}
-			},
-			{
-				"path": "pending-pick",
-				"style": {
-					"navigationBarTitleText": "待拣件统计"
-				}
-			},
-			{
-				"path": "pending-sign",
-				"style": {
-					"navigationBarTitleText": "已拣件待签收"
-				}
-			},
-			{
-				"path": "pending-confirm",
-				"style": {
-					"navigationBarTitleText": "待确认收货"
-				}
-			},
-			{
-				"path": "pending-audit",
-				"style": {
-					"navigationBarTitleText": "已到货待审核"
-				}
-			},
-			{
-				"path": "pending-payment",
-				"style": {
-					"navigationBarTitleText": "待付款"
-				}
-			},
-			{
-				"path": "receive-stat",
-				"style": {
-					"navigationBarTitleText": "收货统计"
-				}
-			}
-
-		]
-	}],
+			"root": "pages/index",
+			"pages": [{
+					"path": "express/transfer-sign",
+					"style": {
+						"navigationBarTitleText": "中转签收"
+					}
+				},
+				{
+					"path": "express/quick-check",
+					"style": {
+						"navigationBarTitleText": "快速验收"
+					}
+				},
+				{
+					"path": "express/quick-unpack",
+					"style": {
+						"navigationBarTitleText": "快速拆包"
+					}
+				},
+				{
+					"path": "express/route-exception",
+					"style": {
+						"navigationBarTitleText": "路由签收异常"
+					}
+				},
+				{
+					"path": "express/warehouse-sign",
+					"style": {
+						"navigationBarTitleText": "到仓签收"
+					}
+				},
+				{
+					"path": "express/weight-modify",
+					"style": {
+						"navigationBarTitleText": "重量修改"
+					}
+				},
+				{
+					"path": "audit/confirm-receipt",
+					"style": {
+						"navigationBarTitleText": "确认收货"
+					}
+				},
+				{
+					"path": "audit/scan-order",
+					"style": {
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "扫书查单"
+					}
+				},
+				{
+					"path": "audit/isbn-order",
+					"style": {
+						"navigationBarTitleText": "根据ISBN查询订单"
+					}
+				},
+				{
+					"path": "audit/express-order",
+					"style": {
+						"navigationBarTitleText": "根据快递单或订单"
+					}
+				},
+				{
+					"path": "audit/sender",
+					"style": {
+						"navigationBarTitleText": "根据发件人"
+					}
+				},
+				{
+					"path": "statistic/audit",
+					"style": {
+						"navigationBarTitleText": "审核统计"
+					}
+				},
+				{
+					"path": "statistic/after-sale",
+					"style": {
+						"navigationBarTitleText": "售后统计"
+					}
+				},
+				{
+					"path": "statistic/package",
+					"style": {
+						"navigationBarTitleText": "打包统计"
+					}
+				},
+				{
+					"path": "wms/medium-in",
+					"style": {
+						"navigationBarTitleText": "中等入库"
+					}
+				},
+				{
+					"path": "wms/good-in",
+					"style": {
+						"navigationBarTitleText": "良品入库"
+					}
+				},
+				{
+					"path": "wms/secondary-in",
+					"style": {
+						"navigationBarTitleText": "次品入库"
+					}
+				},
+				{
+					"path": "wms/bad-in",
+					"style": {
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "不良入库"
+					}
+				},
+				{
+					"path": "wms/bad-out",
+					"style": {
+						"navigationBarTitleText": "不良出库"
+					}
+				},
+				{
+					"path": "wms/bad-out-order",
+					"style": {
+						"navigationBarTitleText": "不良出库"
+					}
+				},
+				{
+					"path": "wms/bad-off",
+					"style": {
+						"navigationBarTitleText": "不良下架"
+					}
+				},
+				{
+					"path": "wms/order-query",
+					"style": {
+						"navigationBarTitleText": "订单查询"
+					}
+				},
+				{
+					"path": "wms/location-order",
+					"style": {
+						"navigationBarTitleText": "库位订单"
+					}
+				},
+				{
+					"path": "wms/location-select",
+					"style": {
+						"navigationBarTitleText": "库位选择"
+					}
+				},
+				{
+					"path": "wms/warehouse-select",
+					"style": {
+						"navigationBarTitleText": "仓库选择"
+					}
+				},
+				{
+					"path": "wms/speedy-check",
+					"style": {
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "快速盘点"
+					}
+				},
+				{
+					"path": "offline/check-order",
+					"style": {
+						"navigationBarTitleText": "线下核单"
+					}
+				},
+				{
+					"path": "offline/check-record",
+					"style": {
+						"navigationBarTitleText": "核单记录"
+					}
+				},
+				{
+					"path": "entry/scan-book",
+					"style": {
+						"navigationBarTitleText": "扫码查书"
+					}
+				},
+				{
+					"path": "entry/book-weight",
+					"style": {
+						"navigationBarTitleText": "录入书籍重量"
+					}
+				},
+				{
+					"path": "express/logistics-detail",
+					"style": {
+						"navigationBarTitleText": "物流详情"
+					}
+				},
+				{
+					"path": "wms/task-detail",
+					"style": {
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "下架任务"
+					}
+				},
+				{
+					"path": "wms/speedy-check-add",
+					"style": {
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "选择商品"
+					}
+				}
+			]
+		},
+		{
+			"root": "pages/my",
+			"pages": [{
+					"path": "page/user-info",
+					"style": {
+						"navigationBarTitleText": "用户信息"
+					}
+				},
+				{
+					"path": "page/warehouse",
+					"style": {
+						"navigationBarTitleText": "默认仓库"
+					}
+				},
+				{
+					"path": "page/school",
+					"style": {
+						"navigationBarTitleText": "学校设置"
+					}
+				},
+				{
+					"path": "page/audit-unfinished",
+					"style": {
+						"navigationBarTitleText": "审核未完成"
+					}
+				},
+				{
+					"path": "page/version",
+					"style": {
+						"navigationBarTitleText": "版本设置"
+					}
+				},
+				{
+					"path": "page/volume",
+					"style": {
+						"navigationBarTitleText": "音频设置"
+					}
+				},
+				{
+					"path": "page/book-display",
+					"style": {
+						"navigationBarTitleText": "图书显示设置"
+					}
+				},
+				{
+					"path": "page/password",
+					"style": {
+						"navigationBarTitleText": "修改密码"
+					}
+				}
+			]
+		},
+		{
+			"root": "pages/order/stat",
+			"pages": [{
+					"path": "pending-review",
+					"style": {
+						"navigationBarTitleText": "待初审统计"
+					}
+				},
+				{
+					"path": "pending-pick",
+					"style": {
+						"navigationBarTitleText": "待拣件统计"
+					}
+				},
+				{
+					"path": "pending-sign",
+					"style": {
+						"navigationBarTitleText": "已拣件待签收"
+					}
+				},
+				{
+					"path": "pending-confirm",
+					"style": {
+						"navigationBarTitleText": "待确认收货"
+					}
+				},
+				{
+					"path": "pending-audit",
+					"style": {
+						"navigationBarTitleText": "已到货待审核"
+					}
+				},
+				{
+					"path": "pending-payment",
+					"style": {
+						"navigationBarTitleText": "待付款"
+					}
+				},
+				{
+					"path": "receive-stat",
+					"style": {
+						"navigationBarTitleText": "收货统计"
+					}
+				}
+			]
+		}
+	],
 	"globalStyle": {
-		"navigationBarTextStyle": "black",
+		"navigationBarTextStyle": "white",
 		"navigationBarTitleText": "",
-		"navigationBarBackgroundColor": "#ffffff"
+		"navigationBarBackgroundColor": "#22ac38"
 	},
 	"tabBar": {
 		"backgroundColor": "#ffffff",

+ 55 - 2
pages/index/audit/express-order.vue

@@ -1,3 +1,56 @@
 <template>
-	<view>1</view>
-</template>
+	<view class="container">
+
+		<!-- 底部按钮 -->
+		<view class="footer">
+			<!-- 查询区域 -->
+			<view class="query-section">
+				<u-radio-group v-model="queryType">
+					<u-radio label="查订单" name="order" />
+					<u-radio label="查物流" custom-style="margin-left:20px" name="logistics" />
+				</u-radio-group>
+
+				<view class="search-box">
+					<u-input custom-style="width:100rpx" v-model="searchKeyword" placeholder="扫描/输入订单编号"
+						border="surround" clearable>
+					</u-input>
+					<u-button color="#c8c8c8" text="查询" @click="handleSearch" />
+				</view>
+			</view>
+
+			<u-divider></u-divider>
+
+			<view style="display: flex;">
+				<u-button size="large" type="success" text="扫码" @click="handleScan" />
+			</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref
+	} from 'vue';
+
+	const queryType = ref('order');
+	const searchKeyword = ref('');
+
+	// 处理查询
+	const handleSearch = () => {
+		console.log('查询:', searchKeyword.value);
+	};
+
+	// 处理扫码
+	const handleScan = () => {
+		uni.scanCode({
+			success: (res) => {
+				searchKeyword.value = res.result;
+				handleSearch();
+			}
+		});
+	};
+</script>
+
+<style lang="scss" scoped>
+	@import '../components/common.scss';
+</style>

+ 49 - 0
pages/index/audit/isbn-order.vue

@@ -0,0 +1,49 @@
+<template>
+	<view class="common-page" style="padding: 0;">
+		<PageScroll requestStr="/team/token/shop/invite/page" @updateList="updateList" ref="scrollRef"
+			:otherParams="otherParams">
+
+			<order-item style="margin-top:10px"></order-item>
+			<order-item></order-item>
+
+			<view class="list-con" v-if="dataList.length">
+				<OrderItem v-for="cell in dataList" :key="cell.id" :item="cell" class="mt-20">
+				</OrderItem>
+			</view>
+		</PageScroll>
+	</view>
+</template>
+
+<script setup>
+	import {
+		reactive
+	} from 'vue';
+	import PageScroll from '@/components/pageScroll/index.vue'
+	import OrderItem from '@/pages/my/components/orderItem.vue';
+	import {
+		ref
+	} from 'vue';
+	import {
+		onLoad
+	} from '@dcloudio/uni-app'
+
+	const otherParams = ref({
+		sender: '',
+	})
+	const scrollRef = ref(null)
+	const refreshList = () => {
+		scrollRef.value?.resetUpScroll()
+	}
+
+	let dataList = ref([])
+	const updateList = (data) => {
+		dataList.value = data
+	}
+</script>
+<style lang="scss">
+	.search-area {
+		padding: 24rpx;
+		background-color: #ffffff;
+		z-index: 9;
+	}
+</style>

+ 245 - 218
pages/index/audit/scan-order.vue

@@ -1,226 +1,253 @@
 <template>
-  <view class="container">
-    <!-- 顶部操作栏 -->
-    <view class="header">
-      <text>清除全部</text>
-    </view>
-
-    <!-- 提示信息 -->
-    <view class="tips">
-      <text>请勿录入审核为不良的书籍ISBN!</text>
-      <text class="sub-tips">不良书籍的ISBN可能是错误的!</text>
-    </view>
-
-    <!-- ISBN列表 -->
-    <scroll-view scroll-y class="isbn-list">
-      <view 
-        v-for="(item, index) in isbnList" 
-        :key="index"
-        class="isbn-item"
-      >
-        <view class="item-left">
-          <u-icon
-            name="minus-circle-fill"
-            color="#dd524d"
-            size="24"
-            @click="removeItem(index)"
-          />
-          <text class="index">{{ index + 1 }}、</text>
-          <text class="isbn">{{ item.isbn }}</text>
-        </view>
-
-        <view class="quantity-control">
-          <u-button
-            text="-"
-            size="mini"
-            @click="decreaseQuantity(index)"
-            :disabled="item.quantity <= 1"
-          />
-          <text class="quantity">{{ item.quantity }}</text>
-          <u-button
-            text="+"
-            size="mini"
-            @click="increaseQuantity(index)"
-          />
-        </view>
-      </view>
-    </scroll-view>
-
-    <!-- 底部按钮 -->
-    <view class="footer">
-      <u-button
-        type="warning"
-        text="扫码加书"
-        @click="handleScan"
-      />
-      <u-button
-        type="primary"
-        text="查询"
-        @click="handleQuery"
-      />
-    </view>
-  </view>
+	<view class="container">
+		<u-navbar title="扫书查单" :border="false" fixed safe-area-inset-top>
+			<template #left>
+				<u-icon name="arrow-left" color="#333333" size="20" @click="goBack"></u-icon>
+			</template>
+			<template #right>
+				<u-text type="primary" text="新增" @click="showModal = true"></u-text>
+			</template>
+		</u-navbar>
+
+
+
+		<!-- 顶部操作栏 -->
+		<u-sticky>
+			<view class="header" @click="clearAll">清除全部</view>
+		</u-sticky>
+
+		<!-- 提示信息 -->
+		<view class="tips mt-60">
+			<text>请勿录入审核为不良的书籍ISBN!</text>
+			<text class="sub-tips">不良书籍的ISBN可能是错误的!</text>
+		</view>
+
+		<!-- ISBN列表 -->
+		<scroll-view scroll-y class="isbn-list">
+			<view v-for="(item, index) in isbnList" :key="index" class="isbn-item">
+				<view class="item-left">
+					<u-icon name="minus-circle-fill" color="#dd524d" size="24" @click="removeItem(index)" />
+					<text class="index">{{ index + 1 }}、</text>
+					<text class="isbn">{{ item.isbn }}</text>
+				</view>
+
+				<u-number-box v-model="item.quantity" :disableMinus="item.quantity <= 1"></u-number-box>
+			</view>
+		</scroll-view>
+
+		<!-- 底部按钮 -->
+		<view class="fixed-bottom">
+			<u-button size="large" type="warning" text="扫码加书" @click="handleScan" />
+			<u-button size="large" type="primary" text="查询" @click="handleQuery" />
+		</view>
+
+
+		<!-- ISBN Input Modal -->
+		<u-popup :show="showModal" mode="center" customStyle="width: 84%;border-radius:10px">
+			<view class="modal-content">
+				<text>输入ISBN码</text>
+				<u-input v-model="newIsbn" placeholder="请输入ISBN码" custom-style="margin:60rpx 0" />
+				<view class="modal-buttons">
+					<u-button text="取消" @click="showModal = false" />
+					<u-button type="primary" text="确定" @click="addIsbn" />
+				</view>
+			</view>
+		</u-popup>
+	</view>
 </template>
 
 <script setup>
-import { ref } from 'vue';
-
-// ISBN列表数据
-const isbnList = ref([
-  { isbn: '9787050405548', quantity: 1 },
-  { isbn: '9787050405548', quantity: 3 },
-  { isbn: '9787050405548', quantity: 3 },
-  { isbn: '9787050405548', quantity: 3 },
-  { isbn: '9787050405548', quantity: 3 },
-  { isbn: '9787050405548', quantity: 3 },
-  { isbn: '9787050405548', quantity: 3 },
-  { isbn: '9787050405548', quantity: 3 },
-  { isbn: '9787050405548', quantity: 3 }
-]);
-
-// 移除项目
-const removeItem = (index) => {
-  isbnList.value.splice(index, 1);
-};
-
-// 减少数量
-const decreaseQuantity = (index) => {
-  if (isbnList.value[index].quantity > 1) {
-    isbnList.value[index].quantity--;
-  }
-};
-
-// 增加数量
-const increaseQuantity = (index) => {
-  isbnList.value[index].quantity++;
-};
-
-// 扫码处理
-const handleScan = () => {
-  uni.scanCode({
-    success: (res) => {
-      // 验证ISBN格式
-      if (isValidISBN(res.result)) {
-        isbnList.value.push({
-          isbn: res.result,
-          quantity: 1
-        });
-      } else {
-        uni.showToast({
-          title: '无效的ISBN',
-          icon: 'none'
-        });
-      }
-    }
-  });
-};
-
-// ISBN格式验证
-const isValidISBN = (isbn) => {
-  // 简单的ISBN-13验证
-  return /^97[89]\d{10}$/.test(isbn);
-};
-
-// 查询处理
-const handleQuery = () => {
-  if (isbnList.value.length === 0) {
-    uni.showToast({
-      title: '请先添加ISBN',
-      icon: 'none'
-    });
-    return;
-  }
-  console.log('查询ISBN列表:', isbnList.value);
-};
+	import {
+		ref
+	} from 'vue';
+
+	// ISBN列表数据
+	const isbnList = ref([{
+			isbn: '9787050405548',
+			quantity: 1
+		},
+		{
+			isbn: '9787050405548',
+			quantity: 3
+		},
+		{
+			isbn: '9787050405548',
+			quantity: 3
+		},
+		{
+			isbn: '9787050405548',
+			quantity: 3
+		},
+		{
+			isbn: '9787050405548',
+			quantity: 3
+		},
+		{
+			isbn: '9787050405548',
+			quantity: 3
+		},
+		{
+			isbn: '9787050405548',
+			quantity: 3
+		},
+		{
+			isbn: '9787050405548',
+			quantity: 3
+		},
+		{
+			isbn: '9787050405548',
+			quantity: 3
+		}
+	]);
+
+	const showModal = ref(false);
+	const newIsbn = ref('');
+
+	// 移除项目
+	const removeItem = (index) => {
+		isbnList.value.splice(index, 1);
+	};
+
+	const goBack = () => {
+		uni.navigateBack()
+	};
+	//清除全部
+	function clearAll() {
+		isbnList.value.length = 0
+	}
+
+	// 扫码处理
+	const handleScan = () => {
+		uni.scanCode({
+			success: (res) => {
+				// 验证ISBN格式
+				if (isValidISBN(res.result)) {
+					isbnList.value.push({
+						isbn: res.result,
+						quantity: 1
+					});
+				} else {
+					uni.showToast({
+						title: '无效的ISBN',
+						icon: 'none'
+					});
+				}
+			}
+		});
+	};
+
+	// ISBN格式验证
+	const isValidISBN = (isbn) => {
+		// 简单的ISBN-13验证
+		return /^97[89]\d{10}$/.test(isbn);
+	};
+
+	// 查询处理
+	const handleQuery = () => {
+		if (isbnList.value.length === 0) {
+			uni.showToast({
+				title: '请先添加ISBN',
+				icon: 'none'
+			});
+			return;
+		}
+		uni.navigateTo({
+			url: "/pages/index/audit/isbn-order"
+		})
+		console.log('查询ISBN列表:', isbnList.value);
+	};
+
+	const addIsbn = () => {
+		if (isValidISBN(newIsbn.value)) {
+			isbnList.value.push({
+				isbn: newIsbn.value,
+				quantity: 1
+			});
+			showModal.value = false;
+			newIsbn.value = '';
+		} else {
+			uni.showToast({
+				title: '无效的ISBN',
+				icon: 'none'
+			});
+		}
+	};
 </script>
 
 <style lang="scss" scoped>
-.container {
-  min-height: 100vh;
-  display: flex;
-  flex-direction: column;
-  background-color: #f5f5f5;
-}
-
-.header {
-  padding: 12px;
-  background-color: #999;
-  color: #fff;
-  text-align: center;
-}
-
-.tips {
-  padding: 16px;
-  background-color: #f8f8f8;
-  text-align: center;
-  
-  text {
-    display: block;
-    color: #666;
-    font-size: 14px;
-  }
-  
-  .sub-tips {
-    font-size: 12px;
-    margin-top: 4px;
-  }
-}
-
-.isbn-list {
-  flex: 1;
-  padding: 12px;
-}
-
-.isbn-item {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 12px;
-  background-color: #fff;
-  margin-bottom: 8px;
-  border-radius: 4px;
-  
-  .item-left {
-    display: flex;
-    align-items: center;
-    gap: 8px;
-  }
-  
-  .index {
-    color: #666;
-  }
-  
-  .isbn {
-    color: #333;
-  }
-
-}
-
-.quantity-control {
-  display: flex;
-  align-items: center;
-  gap: 12px;
-  
-  .quantity {
-    min-width: 24px;
-    text-align: center;
-  }
-  
-  :deep(.u-button) {
-    min-width: 32px;
-    height: 32px;
-    padding: 0;
-  }
-}
-
-.footer {
-  padding: 12px;
-  display: flex;
-  gap: 12px;
-  background-color: #fff;
-  
-  .u-button {
-    flex: 1;
-  }
-}
+	.container {
+		min-height: 100vh;
+		display: flex;
+		flex-direction: column;
+		background-color: #f5f5f5;
+	}
+
+	.header {
+		padding: 12px;
+		background-color: #999;
+		color: #fff;
+		text-align: center;
+	}
+
+	.tips {
+		padding: 16px;
+		background-color: #f8f8f8;
+		text-align: center;
+
+		text {
+			display: block;
+			color: #666;
+			font-size: 14px;
+		}
+
+		.sub-tips {
+			font-size: 12px;
+			margin-top: 4px;
+		}
+	}
+
+	.isbn-list {
+		flex: 1;
+		padding: 12px;
+		box-sizing: border-box;
+	}
+
+	.isbn-item {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 12px;
+		background-color: #fff;
+		margin-bottom: 8px;
+		border-radius: 4px;
+
+		.item-left {
+			display: flex;
+			align-items: center;
+			gap: 8px;
+		}
+
+		.index {
+			color: #666;
+		}
+
+		.isbn {
+			color: #333;
+		}
+
+	}
+
+	.modal-content {
+		padding: 20px;
+		background-color: #fff;
+		border-radius: 8px;
+		text-align: center;
+	}
+
+	.modal-buttons {
+		display: flex;
+		justify-content: space-between;
+		margin-top: 20px;
+		gap: 10px;
+	}
 </style>

+ 42 - 15
pages/index/express/components/WarehouseSelector.vue

@@ -9,25 +9,29 @@
 
 				<!-- 搜索框 -->
 				<view class="search-box">
-					<u-search v-model="searchKeyword" placeholder="搜索仓库" :show-action="true" action-text="搜索"
-						action-style="color: #4CAF50" @search="handleSearch" @custom="handleSearch" />
+					<u-search :inputStyle="{ 'height': '80rpx', 'font-size': '16px' }"
+						:actionStyle="{ 'font-size': '16px', color: '#22ac38' }" v-model="searchKeyword"
+						placeholder="搜索仓库" :show-action="true" action-text="搜索" @search="handleSearch"
+						@custom="handleSearch" />
 				</view>
 
 				<!-- 搜索结果 -->
-				<view class="search-result" v-if="searchKeyword">
+				<view class="search-result" v-if="searchResults.length > 0">
 					<text class="section-title">搜索结果</text>
 					<view class="tag-group">
-						<u-tag v-for="item in searchResults" :key="item" :text="item" plain shape="circle"
-							@click="selectWarehouse(item)" />
+						<u-tag v-for="item in searchResults" :key="item" :text="item.godownName"
+							:plain="selectedWarehouse!==item.godownName" shape="circle" @click="selectWarehouse(item)"
+							size="large" />
 					</view>
 				</view>
 
 				<!-- 历史绑定 -->
-				<view class="history-section">
+				<view class="history-section" v-if="historyWarehouses.length>0">
 					<text class="section-title">历史绑定</text>
 					<view class="tag-group">
-						<u-tag v-for="item in historyWarehouses" :key="item" :text="item" plain shape="circle"
-							@click="selectWarehouse(item)" />
+						<u-tag v-for="item in historyWarehouses" :key="item" :text="item"
+							:plain="selectedWarehouse!==item.godownName" shape="circle" @click="selectWarehouse(item)"
+							size="large" />
 					</view>
 				</view>
 			</view>
@@ -55,16 +59,39 @@
 	const emit = defineEmits(['update:show', 'warehouse-selected'])
 
 	const searchKeyword = ref('')
-	const searchResults = ref(['河南仓', '湖北仓', '河北仓', '涨涨涨', '涨涨', '河北仓', '涨涨涨', ])
-	const historyWarehouses = ref(['河南仓'])
+	const searchResults = ref([])
+	const historyWarehouses = ref([''])
 	const selectedWarehouse = ref('')
 
+	//仓库搜索
+	const warehouseSearch = (name) => {
+		console.log(name)
+		uni.$u.http.post('/app/appUser/searchGodown?name=' + name).then(res => {
+			if (res.code == 200) {
+				searchResults.value = res.data
+			}
+		})
+	}
+	//获取用户绑定历史
+	const getUserBindHistory = () => {
+		uni.$u.http.get('/app/appUser/getUserBindGodownReocrd').then(res => {
+			if (res.code == 200) {
+				historyWarehouses.value = res.data
+			}
+		})
+	}
+	getUserBindHistory()
+
+
 	const handleSearch = () => {
 		// 实现搜索逻辑
+		warehouseSearch(searchKeyword.value)
 	}
 
-	const selectWarehouse = (warehouse) => {
-		selectedWarehouse.value = warehouse
+	const selectItem = ref({})
+	const selectWarehouse = (item) => {
+		selectedWarehouse.value = item.godownName
+		selectItem.value = item
 	}
 
 	const handleClose = () => {
@@ -74,7 +101,7 @@
 
 	const handleConfirm = () => {
 		if (selectedWarehouse.value) {
-			emit('warehouse-selected', selectedWarehouse.value)
+			emit('warehouse-selected', selectItem.value)
 			handleClose()
 		}
 	}
@@ -96,7 +123,7 @@
 		margin-bottom: 20px;
 
 		.title {
-			font-size: 16px;
+			font-size: 18px;
 			font-weight: 500;
 		}
 	}
@@ -106,7 +133,7 @@
 	}
 
 	.section-title {
-		font-size: 14px;
+		font-size: 16px;
 		color: #666;
 		margin-bottom: 10px;
 		display: block;

+ 62 - 17
pages/index/express/transfer-sign.vue

@@ -2,12 +2,16 @@
 	<view class="container">
 		<view class="main-content">
 			<view class="input-group">
-				<u-input v-model="selectedWarehouse" placeholder="请选择仓库" readonly border="surround" />
-				<u-button type="primary" @click="openWarehouseSelector" text="选择" />
+				<u-input :customStyle="customStyle" :placeholder-style="placeholderStyle" v-model="selectedWarehouse"
+					placeholder="请选择仓库" readonly border="surround" />
+				<u-button :customStyle="customStyle" type="info" color="#a4adb3" @click="openWarehouseSelector"
+					text="选择" />
 			</view>
 			<view class="input-group">
-				<u-input v-model="trackingNumber" placeholder="扫描/输入物流单号" border="surround" />
-				<u-button type="primary" @click="confirmTrackingNumber" text="确定" />
+				<u-input :customStyle="customStyle" :placeholder-style="placeholderStyle" v-model="form.packageCode"
+					placeholder="扫描/输入物流单号" border="surround" />
+				<u-button :customStyle="customStyle" type="info" color="#a4adb3"
+					@click="handleBarcode(form.packageCode)" text="确定" />
 			</view>
 		</view>
 
@@ -21,39 +25,80 @@
 
 <script setup>
 	import {
+		reactive,
 		ref
 	} from 'vue';
+	import {
+		onLoad
+	} from '@dcloudio/uni-app'
 	import WarehouseSelector from './components/WarehouseSelector.vue';
 
-	const showSelector = ref(false);
+	const placeholderStyle = "font-size:32rpx"
+	const customStyle = reactive({
+		height: '90rpx'
+	})
+
 	const selectedWarehouse = ref('');
-	const trackingNumber = ref('');
+	const form = ref({
+		"packageCode": "",
+		"godownId": "",
+	})
+	const showSelector = ref(false);
 
 	function openWarehouseSelector() {
-		// Logic to open warehouse selector
 		showSelector.value = true;
 	}
 
-	function handleWarehouseSelected(warehouse) {
-		selectedWarehouse.value = warehouse;
-	}
-
-	function confirmTrackingNumber() {
-		// Logic to confirm tracking number
+	//选择仓库之后后处理
+	function handleWarehouseSelected(item) {
+		selectedWarehouse.value = item.godownName;
+		form.value.godownId = item.id
 	}
 
 	function scanCode() {
 		uni.scanCode({
 			success: (res) => {
-				trackingNumber.value = res.result;
-				// 处理扫码结果
-				console.log('扫码结果:', res.result);
+				form.value.packageCode = res.result;
+				handleBarcode(res.result)
 			},
 			fail: (err) => {
-				console.error('扫码失败:', err);
+				uni.$u.toast('扫码失败')
 			}
 		});
 	}
+
+	function handleBarcode(code) {
+		if (!code) return uni.$u.toast('请输入物流单号')
+		uni.$u.http.post('/app/ordersign/transferSign', form.value).then(res => {
+			if (res.code == 200) {
+				let text = code + '签收成功'
+				uni.$u.ttsModule.speak(text)
+			} else {
+				let text = code + '订单不存在'
+				uni.$u.ttsModule.speak(text)
+			}
+		})
+	}
+
+	//获取用户绑定的仓库
+	function getUserBindWarehouse() {
+		uni.$u.http.get('/app/appUser/getUserBindGodown').then(res => {
+			if (res.code == 200) {
+				selectedWarehouse.value = res.data?.godownName
+				form.value.godownId = res.data?.id
+			}
+		})
+	}
+
+	onLoad(() => {
+		getUserBindWarehouse()
+		// #ifdef APP-PLUS
+		uni.$u.useGlobalEvent((e) => {
+			form.value.packageCode = e.barcode
+			handleBarcode(e.barcode)
+		})
+		// #endif
+	})
 </script>
 
 <style lang="scss" scoped>

+ 103 - 84
pages/index/express/warehouse-sign.vue

@@ -1,104 +1,123 @@
 <template>
-	<view class="container">
-		<view class="main-content">
-			<view class="input-group">
-				<u-input v-model="selectedWarehouse" placeholder="请选择仓库" readonly border="surround" />
-				<u-button type="primary" @click="openWarehouseSelector" text="选择" />
-			</view>
-			<view class="input-group">
-				<u-input v-model="trackingNumber" placeholder="扫描/输入物流单号" border="surround" />
-				<u-button type="primary" @click="confirmTrackingNumber" text="确定" />
-			</view>
-		</view>
+    <view class="container">
+        <view class="main-content">
+            <view class="input-group">
+                <u-input :customStyle="customStyle" :placeholder-style="placeholderStyle" v-model="selectedWarehouse"
+                    placeholder="请选择仓库" readonly border="surround" />
+                <u-button :customStyle="customStyle" type="info" color="#a4adb3" @click="openWarehouseSelector"
+                    text="选择" />
+            </view>
+            <view class="input-group">
+                <u-input :customStyle="customStyle" :placeholder-style="placeholderStyle" v-model="form.packageCode"
+                    placeholder="扫描/输入物流单号" border="surround" />
+                <u-button :customStyle="customStyle" type="info" color="#a4adb3"
+                    @click="handleBarcode(form.packageCode)" text="确定" />
+            </view>
+        </view>
 
-		<view class="fixed-bottom">
-			<u-button size="large" type="success" @click="scanCode" text="扫码" class="scan-button" />
-		</view>
+        <view class="fixed-bottom">
+            <u-button size="large" type="success" @click="scanCode" text="扫码" class="scan-button" />
+        </view>
 
-		<WarehouseSelector v-model:show="showSelector" @warehouse-selected="handleWarehouseSelected" />
-	</view>
+        <WarehouseSelector v-model:show="showSelector" @warehouse-selected="handleWarehouseSelected" />
+    </view>
 </template>
 
 <script setup>
-	import {
-		ref
-	} from 'vue';
-	import WarehouseSelector from './components/WarehouseSelector.vue';
+import {
+    reactive,
+    ref
+} from 'vue';
+import {
+    onLoad
+} from '@dcloudio/uni-app'
+import WarehouseSelector from './components/WarehouseSelector.vue';
 
-	const showSelector = ref(false);
-	const selectedWarehouse = ref('');
-	const trackingNumber = ref('');
+const placeholderStyle = "font-size:32rpx"
+const customStyle = reactive({
+    height: '90rpx'
+})
 
-	function openWarehouseSelector() {
-		// Logic to open warehouse selector
-		showSelector.value = true;
-	}
+const selectedWarehouse = ref('');
+const form = ref({
+    "packageCode": "",
+    "godownId": "",
+})
+const showSelector = ref(false);
 
-	function handleWarehouseSelected(warehouse) {
-		selectedWarehouse.value = warehouse;
-	}
+function openWarehouseSelector() {
+    showSelector.value = true;
+}
 
-	function confirmTrackingNumber() {
-		// Logic to confirm tracking number
-		playSuccessVoice('物流单号DPK202306014525已到仓签收成功')
-	}
+//选择仓库之后后处理
+function handleWarehouseSelected(item) {
+    selectedWarehouse.value = item.godownName;
+    form.value.godownId = item.id
+}
 
-	//播放语音
-	function playSuccessVoice(text) {
-		// 构建 TTS 参数
-		const ttsParams = {
-			speed: 0.8, // 将 0-10 转换为 0-1
-			pitch: 1, // 将 0-10 转换为 0-1
-			volume: 1,
-		}
+function scanCode() {
+    uni.scanCode({
+        success: (res) => {
+            form.value.packageCode = res.result;
+            handleBarcode(res.result)
+        },
+        fail: (err) => {
+            uni.$u.toast('扫码失败')
+        }
+    });
+}
 
-		// #ifdef APP-PLUS
-		// App 端使用原生 TTS
-		const TTSModule = uni.requireNativePlugin('nrb-tts-plugin')
-		TTSModule && TTSModule.init({
-			"lang": "ZH",
-			"country": "CN"
-		}, res => {
-			if (res.success == 0) {
-				TTSModule.speak(text, ttsParams, (e) => {
-					console.log(e, '播放语音成功')
-				})
-			}
-		})
-		// #endif
-	}
+function handleBarcode(code) {
+	if (!code) return uni.$u.toast('请输入物流单号')
+    uni.$u.http.post('/app/ordersign/toGodownSign', form.value).then(res => {
+        if (res.code == 200) {
+            let text = code + '到仓签收成功'
+            uni.$u.ttsModule.speak(text)
+        } else {
+            let text = code + '订单不存在'
+            uni.$u.ttsModule.speak(text)
+        }
+    })
+}
 
-	function scanCode() {
-		uni.scanCode({
-			success: (res) => {
-				trackingNumber.value = res.result;
-				// 处理扫码结果
-				console.log('扫码结果:', res.result);
-			},
-			fail: (err) => {
-				console.error('扫码失败:', err);
-			}
-		});
-	}
+//获取用户绑定的仓库
+function getUserBindWarehouse() {
+    uni.$u.http.get('/app/appUser/getUserBindGodown').then(res => {
+        if (res.code == 200) {
+            selectedWarehouse.value = res.data?.godownName
+            form.value.godownId = res.data?.id
+        }
+    })
+}
+
+onLoad(() => {
+    getUserBindWarehouse()
+    // #ifdef APP-PLUS
+    uni.$u.useGlobalEvent((e) => {
+		form.value.packageCode = e.barcode;
+        handleBarcode(e.barcode)
+    })
+    // #endif
+})
 </script>
 
 <style lang="scss" scoped>
-	.main-content {
-		padding: 20px;
-		gap: 20px;
-	}
+.main-content {
+    padding: 20px;
+    gap: 20px;
+}
 
-	.input-group {
-		display: flex;
-		gap: 10px;
-		margin-bottom: 30rpx;
+.input-group {
+    display: flex;
+    gap: 10px;
+    margin-bottom: 30rpx;
 
-		:deep(.u-button) {
-			width: 160rpx
-		}
+    :deep(.u-button) {
+        width: 160rpx
+    }
 
-		.u-input {
-			background-color: #fff;
-		}
-	}
+    .u-input {
+        background-color: #fff;
+    }
+}
 </style>

+ 101 - 73
pages/index/express/weight-modify.vue

@@ -1,90 +1,118 @@
 <template>
-	<view class="container">
-		<u-form ref="formRef" :model="form" :rules="rules" label-width="85px" label-position="top">
-			<!-- 物流单号输入 -->
-			<u-form-item label="">
-				<u-input v-model="form.trackingNumber" placeholder="扫描/输入物流单号" border="surround"
-					name="trackingNumber" />
-			</u-form-item>
+    <view class="container">
+        <u--form ref="formRef" :model="form" :rules="rules" label-width="165px" label-position="top"
+            :labelStyle="{ fontSize: '32rpx' }" errorType="toast">
+            <!-- 物流单号输入 -->
+            <u-form-item label="" prop="packageCode">
+                <u-input :placeholderStyle="placeholderStyle" :customStyle="customStyle" v-model="form.packageCode"
+                    placeholder="扫描/输入物流单号" border="surround" name="packageCode" />
+            </u-form-item>
 
-			<!-- 重量输入 -->
-			<u-form-item label="重量(kg)">
-				<u-input v-model="form.weight" placeholder="请输入重量" border="surround" name="weight" type="number" />
-			</u-form-item>
+            <!-- 重量输入 -->
+            <u-form-item label="重量(kg)" prop="actualWeight">
+                <u-input :placeholderStyle="placeholderStyle" :customStyle="customStyle" v-model="form.actualWeight"
+                    placeholder="请输入重量" border="surround" name="actualWeight" type="number" />
+            </u-form-item>
 
-			<!-- 图片上传 -->
-			<u-form-item label="上传图片">
-				<u-upload v-model="form.images" action="your-upload-url" name="images" :limit="1"
-					:max-size="1024 * 1024">
-				</u-upload>
-			</u-form-item>
-		</u-form>
+            <!-- 图片上传 -->
+            <u-form-item label="上传图片" prop="imgUrlList">
+                <cy-upload v-model:filename="form.imgUrlList" name="imgUrlList" :limit="10" :max-size="1024 * 1024">
+                </cy-upload>
+            </u-form-item>
+        </u--form>
 
-		<!-- 底部按钮 -->
-		<view class="fixed-bottom">
-			<u-button size="large" type="warning" @click="scanCode" text="扫码" class="scan-button" />
-			<u-button size="large" type="success" @click="submitForm" text="提交" class="submit-button" />
-		</view>
-	</view>
+        <!-- 底部按钮 -->
+        <view class="fixed-bottom">
+            <u-button size="large" type="warning" @click="scanCode" text="扫码" class="scan-button" />
+            <u-button size="large" type="success" @click="submitForm" text="提交" class="submit-button" />
+        </view>
+    </view>
 </template>
 
 <script setup>
-	import {
-		ref
-	} from 'vue';
+import {
+    ref,
+    reactive
+} from 'vue';
+import {
+    onLoad
+} from '@dcloudio/uni-app'
+import cyUpload from '@/components/cy-upload/index.vue'
 
-	const formRef = ref(null);
-	const form = ref({
-		trackingNumber: '',
-		weight: '',
-		images: []
-	});
+const placeholderStyle = "font-size:32rpx"
+const customStyle = reactive({
+    height: '90rpx'
+})
 
-	const rules = {
-		trackingNumber: [{
-			required: true,
-			message: '请输入物流单号',
-			trigger: 'blur'
-		}],
-		weight: [{
-			required: true,
-			message: '请输入重量',
-			trigger: 'blur'
-		}]
-	};
+const formRef = ref(null);
+const form = ref({
+    "packageCode": "",
+    "batchNum": "",
+    "godownId": '',
+    "otherInfo": "",
+    "actualWeight": '',
+    "imgUrlList": []
+});
 
-	function scanCode() {
-		uni.scanCode({
-			success: (res) => {
-				form.value.trackingNumber = res.result;
-			},
-			fail: (err) => {
-				console.error('扫码失败:', err);
-			}
-		});
-	}
+const rules = {
+    packageCode: [{
+        required: true,
+        message: '请输入物流单号',
+        trigger: 'blur'
+    }],
+    actualWeight: [{
+        required: true,
+        message: '请输入重量',
+        trigger: 'blur'
+    }]
+};
 
-	function submitForm() {
-		formRef.value.validate((valid) => {
-			if (valid) {
-				// 提交表单逻辑
-				console.log('表单提交:', form.value);
-			} else {
-				console.error('表单验证失败');
-			}
-		});
-	}
+function scanCode() {
+    uni.scanCode({
+        success: (res) => {
+            form.value.packageCode = res.result;
+        },
+        fail: (err) => {
+            uni.$u.toast('扫码失败')
+        }
+    });
+}
+
+function submitForm() {
+    formRef.value.validate().then((valid) => {
+        if (valid) {
+            uni.$u.http.post('/app/ordersign/changeWeight', form.value).then(res => {
+                if (res.code == 200) {
+                    uni.$u.toast('重量修改成功')
+                    let text = code + '已提交审核'
+                    uni.$u.ttsModule.speak(text)
+                } else {
+                    let text = code + '订单不存在'
+                    uni.$u.ttsModule.speak(text)
+                }
+            })
+        }
+    });
+}
+
+onLoad(() => {
+    // #ifdef APP-PLUS
+    uni.$u.useGlobalEvent((e) => {
+        form.value.packageCode = e.barcode
+    })
+    // #endif
+})
 </script>
 
 <style>
-	page {
-		background-color: #ffffff;
-	}
+page {
+    background-color: #ffffff;
+}
 </style>
 <style scoped>
-	.container {
-		display: flex;
-		flex-direction: column;
-		padding: 20px;
-	}
+.container {
+    display: flex;
+    flex-direction: column;
+    padding: 20px;
+}
 </style>

+ 279 - 273
pages/index/index.vue

@@ -1,301 +1,307 @@
 <template>
-	<view class="operation-container">
-		<!-- 快递操作区域 -->
-		<view class="section">
-			<view class="section-title">快递</view>
-			<view class="grid-container">
-				<view v-for="(item, index) in expressOperations" :key="index" class="grid-item" :class="item.type"
-					@click="handleNavigation(item.path)">
-					{{ item.name }}
-				</view>
-			</view>
-		</view>
+    <view class="operation-container">
+        <!-- 快递操作区域 -->
+        <view class="section">
+            <view class="section-title">快递</view>
+            <view class="grid-container">
+                <view v-for="(item, index) in expressOperations" :key="index" class="grid-item" :class="item.type"
+                    @click="handleNavigation(item.path)">
+                    {{ item.name }}
+                </view>
+            </view>
+        </view>
 
-		<!-- 审核操作区域 -->
-		<view class="section">
-			<view class="section-title">审核</view>
-			<view class="grid-container">
-				<view v-for="(item, index) in auditOperations" :key="index" class="grid-item" :class="item.type"
-					@click="handleNavigation(item.path)">
-					{{ item.name }}
-				</view>
-			</view>
-		</view>
+        <!-- 审核操作区域 -->
+        <view class="section">
+            <view class="section-title">审核</view>
+            <view class="grid-container">
+                <view v-for="(item, index) in auditOperations" :key="index" class="grid-item" :class="item.type"
+                    @click="handleNavigation(item.path)">
+                    {{ item.name }}
+                </view>
+            </view>
+        </view>
 
-		<!-- 统计操作区域 -->
-		<view class="section">
-			<view class="section-title">统计</view>
-			<view class="grid-container">
-				<view v-for="(item, index) in statisticsOperations" :key="index" class="grid-item" :class="item.type"
-					@click="handleNavigation(item.path)">
-					{{ item.name }}
-				</view>
-			</view>
-		</view>
+        <!-- 统计操作区域 -->
+        <view class="section">
+            <view class="section-title">统计</view>
+            <view class="grid-container">
+                <view v-for="(item, index) in statisticsOperations" :key="index" class="grid-item" :class="item.type"
+                    :style="{ gridColumn: item.span ? 'span 2' : 'span 1' }" @click="handleNavigation(item.path)">
+                    {{ item.name }}
+                </view>
+            </view>
+        </view>
 
-		<!-- WMS操作区域 -->
-		<view class="section">
-			<view class="section-title">WMS操作</view>
-			<view class="grid-container">
-				<view v-for="(item, index) in wmsOperations" :key="index" class="grid-item" :class="item.type"
-					@click="handleNavigation(item.path)">
-					{{ item.name }}
-				</view>
-			</view>
-		</view>
+        <!-- WMS操作区域 -->
+        <view class="section">
+            <view class="section-title">WMS操作</view>
+            <view class="grid-container">
+                <view v-for="(item, index) in wmsOperations" :key="index" class="grid-item" :class="item.type"
+                    :style="{ gridColumn: item.span ? 'span 2' : 'span 1' }" @click="handleNavigation(item.path)">
+                    {{ item.name }}
+                </view>
+            </view>
+        </view>
 
-		<!-- 线下核单 -->
-		<view class="section">
-			<view class="section-title">线下核单</view>
-			<view class="grid-container">
-				<view v-for="(item, index) in offlineOperations" :key="index" class="grid-item" :class="item.type"
-					@click="handleNavigation(item.path)">
-					{{ item.name }}
-				</view>
-			</view>
-		</view>
+        <!-- 线下核单 -->
+        <view class="section">
+            <view class="section-title">线下核单</view>
+            <view class="grid-container">
+                <view v-for="(item, index) in offlineOperations" :key="index" class="grid-item" :class="item.type"
+                    @click="handleNavigation(item.path)">
+                    {{ item.name }}
+                </view>
+            </view>
+        </view>
 
-		<!-- 录入信息 -->
-		<view class="section">
-			<view class="section-title">录入信息</view>
-			<view class="grid-container">
-				<view v-for="(item, index) in entryOperations" :key="index" class="grid-item" :class="item.type"
-					@click="handleNavigation(item.path)">
-					{{ item.name }}
-				</view>
-			</view>
-		</view>
-	</view>
+        <!-- 录入信息 -->
+        <view class="section">
+            <view class="section-title">录入信息</view>
+            <view class="grid-container">
+                <view v-for="(item, index) in entryOperations" :key="index" class="grid-item" :class="item.type"
+                    @click="handleNavigation(item.path)">
+                    {{ item.name }}
+                </view>
+            </view>
+        </view>
+    </view>
 </template>
 
 <script setup>
-	import {
-		ref
-	} from 'vue'
+import {
+    ref
+} from 'vue'
 
-	// 快递操作列表
-	const expressOperations = ref([{
-			name: '中转签收',
-			path: '/pages/index/express/transfer-sign',
-			type: 'primary'
-		},
-		{
-			name: '到仓签收',
-			path: '/pages/index/express/warehouse-sign',
-			type: 'warning'
-		},
-		{
-			name: '重量修改',
-			path: '/pages/index/express/weight-modify',
-			type: 'primary'
-		},
-		{
-			name: '快速验收',
-			path: '/pages/index/express/quick-check',
-			type: 'warning'
-		},
-		{
-			name: '路由签收异常',
-			path: '/pages/index/express/route-exception',
-			type: 'primary'
-		},
-		{
-			name: '快速拆包',
-			path: '/pages/index/express/quick-unpack',
-			type: 'warning'
-		},
-	])
+// 快递操作列表
+const expressOperations = ref([{
+    name: '中转\n\r签收',
+    path: '/pages/index/express/transfer-sign',
+    type: 'primary'
+},
+{
+    name: '到仓\n\r签收',
+    path: '/pages/index/express/warehouse-sign',
+    type: 'warning'
+},
+{
+    name: '重量\n\r修改',
+    path: '/pages/index/express/weight-modify',
+    type: 'primary'
+},
+{
+    name: '快速\n\r验收',
+    path: '/pages/index/express/quick-check',
+    type: 'warning'
+},
+{
+    name: '路由签收\n\r异常',
+    path: '/pages/index/express/route-exception',
+    type: 'primary'
+},
+{
+    name: '快速\n\r拆包',
+    path: '/pages/index/express/quick-unpack',
+    type: 'warning'
+},
+])
 
-	// 审核操作列表
-	const auditOperations = ref([{
-			name: '确认收货',
-			path: '/pages/index/audit/confirm-receipt',
-			type: 'primary'
-		},
-		{
-			name: '扫书查单',
-			path: '/pages/index/audit/scan-order',
-			type: 'warning'
-		},
-		{
-			name: '根据快递单或订单',
-			path: '/pages/index/audit/express-order',
-			type: 'warning'
-		},
-		{
-			name: '根据发件人',
-			path: '/pages/index/audit/sender',
-			type: 'primary'
-		},
-	])
+// 审核操作列表
+const auditOperations = ref([{
+    name: '确认\n\r收货',
+    path: '/pages/index/audit/confirm-receipt',
+    type: 'primary'
+},
+{
+    name: '扫书\n\r查单',
+    path: '/pages/index/audit/scan-order',
+    type: 'warning'
+},
+{
+    name: '根据快递单\n\r或订单',
+    path: '/pages/index/audit/express-order',
+    type: 'warning'
+},
+{
+    name: '根据\n\r发件人',
+    path: '/pages/index/audit/sender',
+    type: 'primary'
+},
+])
 
-	// WMS操作列表
-	const wmsOperations = ref([{
-			name: '中等入库',
-			path: '/pages/index/wms/medium-in',
-			type: 'primary'
-		},
-		{
-			name: '良品入库',
-			path: '/pages/index/wms/good-in',
-			type: 'warning'
-		},
-		{
-			name: '次品入库',
-			path: '/pages/index/wms/secondary-in',
-			type: 'primary'
-		},
-		{
-			name: '不良入库',
-			path: '/pages/index/wms/bad-in',
-			type: 'warning'
-		},
-		{
-			name: '不良出库',
-			path: '/pages/index/wms/bad-out',
-			type: 'primary'
-		},
-		{
-			name: '不良下架',
-			path: '/pages/index/wms/bad-off',
-			type: 'warning'
-		},
-		{
-			name: '订单查询',
-			path: '/pages/index/wms/order-query',
-			type: 'primary'
-		},
-		{
-			name: '库位订单',
-			path: '/pages/index/wms/location-order',
-			type: 'warning'
-		},
-		{
-			name: '快速盘点',
-			path: '/pages/index/wms/speedy-check',
-			type: 'primary',
-			span: 24
-		},
-	])
+// WMS操作列表
+const wmsOperations = ref([{
+    name: '中等\n\r入库',
+    path: '/pages/index/wms/medium-in',
+    type: 'primary'
+},
+{
+    name: '良品\n\r入库',
+    path: '/pages/index/wms/good-in',
+    type: 'warning'
+},
+{
+    name: '次品\n\r入库',
+    path: '/pages/index/wms/secondary-in',
+    type: 'primary'
+},
+{
+    name: '不良\n\r入库',
+    path: '/pages/index/wms/bad-in',
+    type: 'warning'
+},
+{
+    name: '不良\n\r出库',
+    path: '/pages/index/wms/bad-out',
+    type: 'primary'
+},
+{
+    name: '不良\n\r下架',
+    path: '/pages/index/wms/bad-off',
+    type: 'warning'
+},
+{
+    name: '订单\n\r查询',
+    path: '/pages/index/wms/order-query',
+    type: 'primary'
+},
+{
+    name: '库位\n\r订单',
+    path: '/pages/index/wms/location-order',
+    type: 'warning'
+},
+{
+    name: '快速盘点',
+    path: '/pages/index/wms/speedy-check',
+    type: 'primary',
+    span: 24
+},
+])
 
-	// 统计操作列表
-	const statisticsOperations = ref([{
-			name: '审核统计',
-			path: '/pages/index/statistic/audit',
-			type: 'warning',
-			span: 24
-		},
-		{
-			name: '售后统计',
-			path: '/pages/index/statistic/after-sale',
-			type: 'primary'
-		},
-		{
-			name: '打包统计',
-			path: '/pages/index/statistic/package',
-			type: 'warning'
-		},
-	])
-	//线下核单
-	const offlineOperations = ref([{
-			name: '线下核单',
-			path: '/pages/index/offline/check-order',
-			type: 'primary'
-		},
-		{
-			name: '核单记录',
-			path: '/pages/index/offline/check-record',
-			type: 'warning'
-		},
-	])
+// 统计操作列表
+const statisticsOperations = ref([{
+    name: '审核统计',
+    path: '/pages/index/statistic/audit',
+    type: 'warning',
+    span: 24
+},
+{
+    name: '售后\n\r统计',
+    path: '/pages/index/statistic/after-sale',
+    type: 'primary'
+},
+{
+    name: '打包\n\r统计',
+    path: '/pages/index/statistic/package',
+    type: 'warning'
+},
+])
+//线下核单
+const offlineOperations = ref([{
+    name: '线下\n\r核单',
+    path: '/pages/index/offline/check-order',
+    type: 'primary'
+},
+{
+    name: '核单\n\r记录',
+    path: '/pages/index/offline/check-record',
+    type: 'warning'
+},
+])
 
-	//录入信息
-	const entryOperations = ref([{
-			name: '扫码查书',
-			path: '/pages/index/entry/scan-book',
-			type: 'primary'
-		},
-		{
-			name: '录入书籍重量',
-			path: '/pages/index/entry/book-weight',
-			type: 'warning'
-		},
-	])
+//录入信息
+const entryOperations = ref([{
+    name: '扫码\n\r查书',
+    path: '/pages/index/entry/scan-book',
+    type: 'primary'
+},
+{
+    name: '录入\n\r书籍重量',
+    path: '/pages/index/entry/book-weight',
+    type: 'warning'
+},
+])
 
-	// 页面跳转方法
-	const handleNavigation = (path) => {
-		uni.navigateTo({
-			url: path,
-			fail: () => {
-				uni.showToast({
-					title: '页面跳转失败',
-					icon: 'none',
-				})
-			},
-		})
-	}
+// 页面跳转方法
+const handleNavigation = (path) => {
+    uni.navigateTo({
+        url: path,
+        fail: () => {
+            uni.showToast({
+                title: '页面跳转失败',
+                icon: 'none',
+            })
+        },
+    })
+}
 </script>
 
 <style lang="scss" scoped>
-	.operation-container {
-		padding: 20rpx;
-		box-sizing: border-box;
-		padding-bottom: 100rpx;
-	}
+.operation-container {
+    padding: 20rpx;
+    box-sizing: border-box;
+    /* #ifdef H5 */
+    padding-bottom: 100rpx;
+    /* #endif */
+}
 
-	.section {
-		margin-bottom: 30rpx;
-		background: #ffffff;
-		border-radius: 16rpx;
-		padding: 20rpx;
-		box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
+.section {
+    margin-bottom: 30rpx;
+    background: #ffffff;
+    border-radius: 16rpx;
+    padding: 20rpx;
+    box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
 
-		.section-title {
-			font-size: 32rpx;
-			font-weight: 600;
-			color: #333;
-			padding: 20rpx;
-			padding-top: 0;
-			border-bottom: 2rpx solid #f0f0f0;
-			margin-bottom: 20rpx;
-		}
+    .section-title {
+        font-size: 50rpx;
+        font-weight: 600;
+        color: #333;
+        padding: 20rpx;
+        padding-top: 0;
+        border-bottom: 2rpx solid #f0f0f0;
+        margin-bottom: 20rpx;
+    }
 
-		.grid-container {
-			display: grid;
-			grid-template-columns: repeat(2, 1fr);
-			gap: 20rpx;
-			padding: 10rpx;
+    .grid-container {
+        display: grid;
+        grid-template-columns: repeat(2, 1fr);
+        gap: 20rpx;
+        padding: 10rpx;
 
-			.grid-item {
-				height: 88rpx;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				font-size: 28rpx;
-				border-radius: 12rpx;
-				color: #ffffff;
-				transition: all 0.3s;
+        .grid-item {
+            min-height: 148rpx;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+			text-align: center;
+			padding: 20rpx 30rpx;
+			line-height: 60rpx;
+            font-size: 50rpx;
+            border-radius: 12rpx;
+            color: #ffffff;
+            transition: all 0.3s;
+			white-space: pre-wrap;
 
-				&.primary {
-					background: linear-gradient(135deg, #4cd964, #3ac555);
+            &.primary {
+                background: linear-gradient(135deg, #4cd964, #3ac555);
 
-					&:active {
-						background: linear-gradient(135deg, #3ac555, #2fb548);
-					}
-				}
+                &:active {
+                    background: linear-gradient(135deg, #3ac555, #2fb548);
+                }
+            }
 
-				&.warning {
-					background: linear-gradient(135deg, #ff9500, #ff8000);
+            &.warning {
+                background: linear-gradient(135deg, #ff9500, #ff8000);
 
-					&:active {
-						background: linear-gradient(135deg, #ff8000, #e67300);
-					}
-				}
+                &:active {
+                    background: linear-gradient(135deg, #ff8000, #e67300);
+                }
+            }
 
-				&:active {
-					transform: scale(0.98);
-				}
-			}
-		}
-	}
+            &:active {
+                transform: scale(0.98);
+            }
+        }
+    }
+}
 </style>

+ 198 - 0
pages/login/login.vue

@@ -0,0 +1,198 @@
+<template>
+	<view class="login-container">
+		<!-- Logo和标题区域 -->
+		<view class="logo-section">
+			<image class="logo" src="/static/img/logo.png" mode="aspectFit" />
+		</view>
+
+		<!-- 表单区域 -->
+		<view class="form-section">
+			<u--form :model="formData" ref="uForm">
+				<u-form-item>
+					<u-input :prefixIconStyle="prefixIconStyle" :placeholder-style="placeholderStyle"
+						:custom-style="customStyle" v-model="formData.username" placeholder="请输入用户名"
+						prefixIcon="account" />
+				</u-form-item>
+
+				<u-form-item>
+					<u-input :prefixIconStyle="prefixIconStyle" :placeholder-style="placeholderStyle"
+						:custom-style="customStyle" v-model="formData.password" type="password" placeholder="请输入密码"
+						prefixIcon="lock" />
+				</u-form-item>
+
+				<u-form-item>
+					<u-input :prefixIconStyle="prefixIconStyle" :placeholder-style="placeholderStyle"
+						:custom-style="customStyle" v-model="formData.code" placeholder="请输入验证码" prefixIcon="chat">
+						<template #suffix>
+							<u-button custom-style="width:200rpx" color="#22ac38" size="small" @click="getVerifyCode"
+								:disabled="isCountingDown">
+								{{ countDownText }}
+							</u-button>
+						</template>
+					</u-input>
+				</u-form-item>
+			</u--form>
+
+			<u-button custom-style="margin-top:5%" type="primary" block @click="handleLogin" color="#22ac38"
+				shape="circle">登录</u-button>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref,
+		reactive,
+		getCurrentInstance,
+	} from 'vue'
+	import {
+		onLoad
+	} from '@dcloudio/uni-app'
+
+	const prefixIconStyle = "font-size:50rpx"
+	const placeholderStyle = "font-size:32rpx"
+	const customStyle = reactive({
+		"font-size": '40rpx',
+		height: '90rpx'
+	})
+
+	let {
+		proxy
+	} = getCurrentInstance()
+
+	const formData = reactive({
+		username: '',
+		password: '',
+		code: ''
+	})
+
+	const uForm = ref(null)
+
+	const isCountingDown = ref(false)
+	const countdown = ref(60)
+	const countDownText = ref('获取验证码')
+
+	const startCountDown = () => {
+		isCountingDown.value = true
+		countdown.value = 60
+		countDownText.value = `${countdown.value}秒重发`
+
+		const timer = setInterval(() => {
+			countdown.value--
+			countDownText.value = `${countdown.value}秒重发`
+
+			if (countdown.value <= 0) {
+				clearInterval(timer)
+				isCountingDown.value = false
+				countDownText.value = '重新发送'
+			}
+		}, 1000)
+	}
+
+	const getVerifyCode = () => {
+		if (isCountingDown.value) return
+		if (!formData.username) return uni.$u.toast('请输入用户名')
+		if (!formData.password) return uni.$u.toast('请输入密码')
+
+		let data = {
+			username: formData.username,
+			password: formData.password
+		}
+		// TODO: 调用发送验证码的API
+		uni.showLoading({
+			mask: true,
+			title: "发送中..."
+		})
+		uni.$u.http.post('/app/appUser/sendMobileCode', data).then(res => {
+			if (res.code == 200) {
+				uni.showToast({
+					title: '验证码发送成功,请注意查收',
+					icon: 'none'
+				})
+				startCountDown()
+			} else {
+				uni.$u.toast(res.msg)
+			}
+		}).finally(() => uni.hideLoading())
+	}
+
+	const handleLogin = () => {
+		// 实现登录逻辑
+		if (!formData.username) return uni.$u.toast('请输入用户名')
+		if (!formData.password) return uni.$u.toast('请输入密码')
+		// if (!formData.code) return uni.$u.toast('请输入验证码')
+
+		// TODO: 调用登录API /app/appUser/login
+		uni.showLoading({
+			mask: true,
+			title: "登录中..."
+		})
+		// /actuator/debug/loginNotCode  ///app/appUser/login
+		uni.$u.http.post('/actuator/debug/loginNotCode', formData).then(res => {
+			if (res.code == 200) {
+				uni.$u.toast('登录成功')
+				uni.switchTab({
+					url: "/pages/index/index"
+				})
+				console.log(res,'xxxxx')
+				uni.setStorageSync('token', res.data)
+
+				uni.$u.ttsModule.speak('书嗨,不辜负每一个爱书的人')
+			} else {
+				uni.$u.toast(res.msg)
+			}
+		}).finally(() => uni.hideLoading())
+	}
+
+	//检测token是否可用
+	function checkToken() {
+		// /app/appUser/checkToken
+		uni.showLoading({
+			title: "检测登录状态..."
+		})
+		uni.clearStorageSync()
+		uni.$u.http.get('/app/appUser/checkToken').then(res => {
+			if (res.code == 200) {
+				uni.$u.toast('登录成功')
+				uni.switchTab({
+					url: "/pages/index/index"
+				})
+			} else {
+				uni.$u.toast('请先登录')
+			}
+		}).finally(() => uni.hideLoading())
+	}
+
+	onLoad(() => {
+		let token = uni.getStorageSync('token')
+		if (token) {
+			checkToken()
+		}
+	})
+</script>
+<style>
+	page {
+		background-color: #ffffff;
+	}
+</style>
+
+<style lang="scss" scoped>
+	.login-container {
+		padding: 5% 60rpx;
+
+		.logo-section {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+		}
+
+		.logo {
+			width: 300rpx;
+			height: 300rpx;
+		}
+
+		.form-section {
+			margin-top: 40rpx;
+		}
+	}
+</style>

+ 1 - 7
pages/my/my.vue

@@ -20,7 +20,7 @@
 					@click="handleClick(item)" :border="index==settingsList.length-1?false:true">
 					<template #icon>
 						<view class="cell-icon">
-							<u-icon :name="item.icon||'setting'" size="32rpx" color="#333"></u-icon>
+							<u-icon :name="item.icon||'setting'" size="20" color="#333"></u-icon>
 						</view>
 					</template>
 				</u-cell>
@@ -37,12 +37,10 @@
 	const settingsList = ref([{
 			title: '用户信息',
 			path: '/pages/my/page/user-info',
-			icon: "account"
 		},
 		{
 			title: '默认仓库',
 			path: '/pages/my/page/warehouse',
-			icon: 'home'
 		},
 		{
 			title: '学校设置',
@@ -51,7 +49,6 @@
 		{
 			title: '审核未完成',
 			path: '/pages/my/page/audit-unfinished',
-			icon: "order"
 		},
 		{
 			title: '版本设置',
@@ -61,12 +58,10 @@
 		{
 			title: '音频设置',
 			path: '/pages/my/page/volume',
-			icon: 'volume'
 		},
 		{
 			title: '图书显示设置',
 			path: '/pages/my/page/book-display',
-			icon: 'bookmark'
 		},
 		{
 			title: '修改密码',
@@ -76,7 +71,6 @@
 		{
 			title: '退出账号',
 			path: '/pages/my/page/logout',
-			type: 'logout'
 		}
 	])
 

+ 5 - 5
pages/order/index.vue

@@ -125,14 +125,14 @@
 					}
 
 					.item-label {
-						font-size: 28rpx;
+						font-size: 32rpx;
 						color: #666666;
 						margin-bottom: 12rpx;
 						display: block;
 					}
 
 					.item-value {
-						font-size: 40rpx;
+						font-size: 44rpx;
 						color: #333333;
 						font-weight: 500;
 
@@ -160,11 +160,11 @@
 			.status-item {
 				background: #FFFFFF;
 				border-radius: 16rpx;
-				padding: 24rpx 20rpx;
+				padding: 24rpx 12rpx;
 
 				.status-content {
 					.status-label {
-						font-size: 28rpx;
+						font-size: 32rpx;
 						color: #666666;
 						margin-bottom: 16rpx;
 						display: block;
@@ -176,7 +176,7 @@
 						justify-content: space-between;
 
 						.status-value {
-							font-size: 36rpx;
+							font-size: 44rpx;
 							color: #333333;
 							font-weight: 500;
 						}

BIN
static/img/logo.png


+ 2 - 2
uni.scss

@@ -17,8 +17,8 @@
 /* 颜色变量 */
 
 /* 行为相关颜色 */
-$uni-color-primary: #007aff;
-$uni-color-success: #4cd964;
+$uni-color-primary: #22ac38;
+$uni-color-success: #22ac38;
 $uni-color-warning: #f0ad4e;
 $uni-color-error: #dd524d;
 

+ 10 - 10
uni_modules/uview-plus/components/u-button/u-button.vue

@@ -253,12 +253,12 @@ export default {
         },
         // 字体大小
         textSize() {
-            let fontSize = 14,
+            let fontSize = 16,
                 { size } = this;
-            if (size === "large") fontSize = 16;
-            if (size === "normal") fontSize = 14;
-            if (size === "small") fontSize = 12;
-            if (size === "mini") fontSize = 10;
+            if (size === "large") fontSize = 18;
+            if (size === "normal") fontSize = 16;
+            if (size === "small") fontSize = 14;
+            if (size === "mini") fontSize = 12;
             return fontSize;
         },
     },
@@ -305,15 +305,15 @@ export default {
 @import "./nvue.scss";
 /* #endif */
 
-$u-button-u-button-height: 40px !default;
-$u-button-text-font-size: 15px !default;
-$u-button-loading-text-font-size: 15px !default;
+$u-button-u-button-height: 52px !default;
+$u-button-text-font-size: 16px !default;
+$u-button-loading-text-font-size: 16px !default;
 $u-button-loading-text-margin-left: 4px !default;
 $u-button-large-width: 100% !default;
-$u-button-large-height: 50px !default;
+$u-button-large-height: 64px !default;
 $u-button-normal-padding: 0 12px !default;
 $u-button-large-padding: 0 15px !default;
-$u-button-normal-font-size: 14px !default;
+$u-button-normal-font-size: 16px !default;
 $u-button-small-min-width: 60px !default;
 $u-button-small-height: 30px !default;
 $u-button-small-padding: 0px 8px !default;

+ 1 - 1
uni_modules/uview-plus/components/u-input/props.js

@@ -140,7 +140,7 @@ export default {
 		// 输入框字体的大小
 		fontSize: {
 			type: [String, Number],
-			default: defprops.input.fontSize
+			default: '34rpx'
 		},
 		// 输入框字体颜色
 		color: {

+ 2 - 2
uni_modules/uview-plus/theme.scss

@@ -10,7 +10,7 @@ $u-border-color: #dadbde;
 $u-bg-color: #f3f4f6;
 $u-disabled-color: #c8c9cc;
 
-$u-primary: #3c9cff;
+$u-primary: #22ac38;
 $u-primary-dark: #398ade;
 $u-primary-disabled: #9acafc;
 $u-primary-light: #ecf5ff;
@@ -20,7 +20,7 @@ $u-warning-dark: #f1a532;
 $u-warning-disabled: #f9d39b;
 $u-warning-light: #fdf6ec;
 
-$u-success: #5ac725;
+$u-success: #22ac38;
 $u-success-dark: #53c21d;
 $u-success-disabled: #a9e08f;
 $u-success-light: #f5fff0;

+ 2 - 2
unpackage/cache/wgt/__UNI__65C1C73/__uniappview.html

@@ -16,8 +16,8 @@
   <body>
     <div id="app"></div>
     <script src="uni-app-view.umd.js"></script>
-    
-    
+    <script src="app-wxs.js"></script>
+    <script src="app-renderjs.js"></script>
     
   </body>
 </html>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
unpackage/cache/wgt/__UNI__65C1C73/app-config-service.js


+ 2 - 0
unpackage/cache/wgt/__UNI__65C1C73/app-renderjs.js

@@ -0,0 +1,2 @@
+var __renderjsModules={};
+__renderjsModules["5a9dc23f"]=(()=>{var c=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,o)=>{for(var i in o)c(t,i,{get:o[i],enumerable:!0})},f=(t,o,i,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of u(o))!d.call(t,r)&&r!==i&&c(t,r,{get:()=>o[r],enumerable:!(n=l(o,r))||n.enumerable});return t};var g=t=>f(c({},"__esModule",{value:!0}),t);var w={};p(w,{default:()=>m});var e={};window&&!window.$mescrollRenderInit&&(window.$mescrollRenderInit=!0,window.addEventListener("touchstart",function(t){e.disabled()||(e.startPoint=e.getPoint(t))},{passive:!0}),window.addEventListener("touchmove",function(t){if(!e.disabled()&&!(e.getScrollTop()>0)){var o=e.getPoint(t),i=o.y-e.startPoint.y;if(i>0&&!e.isDownScrolling&&!e.optDown.isLock&&(!e.isUpScrolling||e.isUpScrolling&&e.isUpBoth)){for(var n=t.target,r=!1;n&&n.tagName&&n.tagName!=="UNI-PAGE-BODY"&&n.tagName!="BODY";){var a=n.classList;if(a&&a.contains("mescroll-render-touch")){r=!0;break}n=n.parentNode}r&&t.cancelable&&!t.defaultPrevented&&t.preventDefault()}}},{passive:!1}));e.getScrollTop=function(){return e.scrollTop||document.documentElement.scrollTop||document.body.scrollTop||0};e.disabled=function(){return!e.optDown||!e.optDown.use||e.optDown.native};e.getPoint=function(t){return t?t.touches&&t.touches[0]?{x:t.touches[0].pageX,y:t.touches[0].pageY}:t.changedTouches&&t.changedTouches[0]?{x:t.changedTouches[0].pageX,y:t.changedTouches[0].pageY}:{x:t.clientX,y:t.clientY}:{x:0,y:0}};function h(t){e.optDown=t.optDown,e.scrollTop=t.scrollTop,e.isDownScrolling=t.isDownScrolling,e.isUpScrolling=t.isUpScrolling,e.isUpBoth=t.isUpBoth}var v={data(){return{propObserver:h}}},s=v;var m={mixins:[s]};return g(w);})();

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/app-service.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
unpackage/cache/wgt/__UNI__65C1C73/app-wxs.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/app.css


BIN
unpackage/cache/wgt/__UNI__65C1C73/assets/no-result.6af066e5.png


BIN
unpackage/cache/wgt/__UNI__65C1C73/assets/uniicons.89ed7d6d.ttf


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/manifest.json


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/book/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/confirm-receipt.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/express-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/isbn-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/scan-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/audit/sender.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/entry/book-weight.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/entry/scan-book.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/logistics-detail.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/quick-check.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/quick-unpack.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/route-exception.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/transfer-sign.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/warehouse-sign.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/express/weight-modify.css


+ 1 - 1
unpackage/cache/wgt/__UNI__65C1C73/pages/index/index.css

@@ -1 +1 @@
-.operation-container[data-v-83c12f59]{padding:.625rem;background:#f5f6fa;min-height:100vh}.section[data-v-83c12f59]{margin-bottom:.9375rem;background:#fff;border-radius:.5rem;padding:.625rem;box-shadow:0 .0625rem .375rem rgba(0,0,0,.05)}.section .section-title[data-v-83c12f59]{font-size:1rem;font-weight:600;color:#333;padding:.625rem;border-bottom:.0625rem solid #f0f0f0;margin-bottom:.625rem}.section .grid-container[data-v-83c12f59]{display:grid;grid-template-columns:repeat(2,1fr);gap:.625rem;padding:.3125rem}.section .grid-container .grid-item[data-v-83c12f59]{height:2.75rem;display:flex;align-items:center;justify-content:center;font-size:.875rem;border-radius:.375rem;color:#fff;transition:all .3s}.section .grid-container .grid-item.primary[data-v-83c12f59]{background:linear-gradient(135deg,#4cd964,#3ac555)}.section .grid-container .grid-item.primary[data-v-83c12f59]:active{background:linear-gradient(135deg,#3ac555,#2fb548)}.section .grid-container .grid-item.warning[data-v-83c12f59]{background:linear-gradient(135deg,#ff9500,#ff8000)}.section .grid-container .grid-item.warning[data-v-83c12f59]:active{background:linear-gradient(135deg,#ff8000,#e67300)}.section .grid-container .grid-item[data-v-83c12f59]:active{transform:scale(.98)}
+.operation-container[data-v-f0bf2d75]{padding:.625rem;box-sizing:border-box}.section[data-v-f0bf2d75]{margin-bottom:.9375rem;background:#fff;border-radius:.5rem;padding:.625rem;box-shadow:0 .0625rem .375rem rgba(0,0,0,.05)}.section .section-title[data-v-f0bf2d75]{font-size:1.5625rem;font-weight:600;color:#333;padding:.625rem;padding-top:0;border-bottom:.0625rem solid #f0f0f0;margin-bottom:.625rem}.section .grid-container[data-v-f0bf2d75]{display:grid;grid-template-columns:repeat(2,1fr);gap:.625rem;padding:.3125rem}.section .grid-container .grid-item[data-v-f0bf2d75]{min-height:4.625rem;display:flex;align-items:center;justify-content:center;text-align:center;padding:.625rem .9375rem;line-height:1.875rem;font-size:1.5625rem;border-radius:.375rem;color:#fff;transition:all .3s;white-space:pre-wrap}.section .grid-container .grid-item.primary[data-v-f0bf2d75]{background:linear-gradient(135deg,#4cd964,#3ac555)}.section .grid-container .grid-item.primary[data-v-f0bf2d75]:active{background:linear-gradient(135deg,#3ac555,#2fb548)}.section .grid-container .grid-item.warning[data-v-f0bf2d75]{background:linear-gradient(135deg,#ff9500,#ff8000)}.section .grid-container .grid-item.warning[data-v-f0bf2d75]:active{background:linear-gradient(135deg,#ff8000,#e67300)}.section .grid-container .grid-item[data-v-f0bf2d75]:active{transform:scale(.98)}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/offline/check-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/offline/check-record.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/statistic/after-sale.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/statistic/audit.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/statistic/package.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/bad-in.css


+ 1 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/bad-off.css

@@ -0,0 +1 @@
+.task-card[data-v-8953f6e9]{background-color:#fff;padding:.625rem;margin-top:.5rem;box-shadow:0 .0625rem .25rem rgba(0,0,0,.05)}.task-header[data-v-8953f6e9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.task-no[data-v-8953f6e9]{font-size:.875rem;font-weight:700}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/bad-out-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/bad-out.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/location-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/location-select.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/order-query.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/speedy-check-add.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/speedy-check.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/task-detail.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/index/wms/warehouse-select.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/login/login.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/my/my.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/my/page/audit-unfinished.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/my/page/book-display.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/my/page/password.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/my/page/volume.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/order/index.css


+ 0 - 0
unpackage/dist/dev/app-plus/pages/index/logistics-detail.css → unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-audit.css


+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-confirm.css


+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-payment.css


+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-pick.css


+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-review.css


+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/pending-sign.css


+ 0 - 0
unpackage/cache/wgt/__UNI__65C1C73/pages/order/stat/receive-stat.css


+ 344 - 0
unpackage/cache/wgt/__UNI__65C1C73/static/css/common.scss

@@ -0,0 +1,344 @@
+$theme-color:#707bce;
+$theme-dark-color:rgba(#e4c491,.8);
+$bg-theme-color:rgba(#e4c491,.1);
+$blue:#03A9F4;
+$yellow:#f9ae3d;
+$yellow-text:#f9ae3d;
+$font-normal:#333333;
+$font-middle:#666666;
+$font-light:#333333;
+
+view{
+	font-size: 28rpx;
+	box-sizing: border-box;
+}
+.page{
+	background-color: #F5F5F5;
+	min-height: 100vh;
+}
+.page-top{
+	padding-top:30rpx;
+}
+.flex,.flex-box,.flex-row{
+	display: flex;
+}
+.flex-column{
+	flex-direction: column;
+}
+.flex-end{
+	justify-content:flex-end;
+}
+.flex-align{
+	align-items: center;
+}
+.flex-center{
+	align-items: center;
+	justify-content: center;
+}
+.flex-a-c{
+	align-items: center;
+}
+.flex-j-c{
+	justify-content: center;
+}
+.flex-j-e{
+	justify-content: flex-end;
+}
+.space-between{
+	justify-content: space-between;
+}
+.flex-wrap{
+	flex-wrap: wrap;
+}
+.text-center{
+	text-align: center !important;
+}
+.pad{
+	padding-left:30rpx;
+	padding-right:30rpx;
+}
+@keyframes circle {
+	0%{transform: rotate(0);}
+	100%{transform: rotate(360deg);}
+}
+.px-15{
+	padding-top:15rpx;
+	padding-bottom:15rpx;
+}
+.input-placeholder{
+	font-size: 26rpx;
+	color:#999999;
+}
+.mb-20 {
+	margin-bottom: 20rpx;
+}
+.c-4{
+	color: #ad2305;
+}
+.c-3{
+	color:#333739;
+}
+.c-5{
+	color:#545657;
+}
+.c-6{
+	color:#666769;
+}
+.c-9{
+	color:#999A9A;
+}
+.c-f{
+	color:#FFFFFF;
+}
+.c-y{
+	color:$yellow;
+}
+.text-y{
+	color:$yellow-text;
+}
+.px-15{
+	padding-left:15rpx;
+	padding-right:15rpx;
+}
+.bg-white{
+	background-color: #FFFFFF;
+}
+.bg-gray{
+	background-color: #ecf7f3;
+}
+.bg-gray-light{
+	background-color: #FAFAFA;
+}
+.bg-gray-empha{
+	background-color: #F1F2F3;
+}
+.border{
+	border:1rpx solid #EFEFEF;
+}
+.border-bottom{
+	border-bottom: 1rpx solid #EFEFEF;
+}
+.btn{
+	width:auto;
+	margin-left:0;
+	margin-right:0;
+	padding-left:30rpx;
+	padding-right:30rpx;
+	font-size: 14px;
+	background-color: transparent;
+	&.primary{
+		background-color:$theme-color;
+		color:#FFFFFF;
+	}
+	&.info{
+		border:1rpx solid #DCDCDC;
+	}
+}
+.font-bold{
+	font-weight: bold;
+}
+.font-normal{
+	font-weight: normal;
+	font-style: normal;
+}
+
+@for $i from 0 through 30 {
+	.ml-#{$i*2} {
+		margin-left: #{$i * 2}rpx;
+	}
+	.mr-#{$i * 2} {
+		margin-right: #{$i * 2}rpx;
+	}
+	.mt-#{$i * 2} {
+		margin-top: #{$i * 2}rpx;
+	}
+	.mb-#{$i * 2} {
+		margin-bottom: #{$i * 2}rpx;
+	}
+	.pad-#{$i * 2}{
+		padding: #{$i * 2}rpx;
+		box-sizing: border-box;
+	}
+}
+@for $i from 0 through 20 {
+	.pt-#{$i*2}{
+		padding-top:#{$i * 2}rpx;
+	}
+	.px-#{$i * 2} {
+		padding-left: #{$i* 2}rpx!important;
+		padding-right: #{$i* 2}rpx!important;
+	}
+	.py-#{$i * 2} {
+		padding-top: #{$i * 2}rpx!important;
+		padding-bottom: #{$i * 2}rpx!important;
+	}
+	.pad-#{$i * 2}{
+		padding:#{$i * 2}rpx;
+	}
+	.radius-#{$i * 2}{
+		border-radius: #{$i * 2}rpx;
+	}
+	.font-#{20 + $i * 2}{
+		font-size: #{22 + $i * 2}rpx;
+	}
+}
+@for $i from 1 through 5{
+	.text-line#{$i}{
+		overflow: hidden;
+		display: -webkit-box!important;
+		text-overflow: ellipsis;
+		word-break: break-all;
+		-webkit-line-clamp: #{$i};
+		-webkit-box-orient: vertical!important;
+	}
+}
+
+
+.operat-btns {
+	padding: 16px;
+	box-sizing: border-box;
+	width: 100%;
+	position: fixed;
+	bottom: 20px;
+	left: 0;
+	right: 0;
+}
+
+.operat-btns .u-button + .u-button {
+	margin-left: 14px;
+}
+
+// 超出省略,最多5行
+@for $i from 12 through 30 {
+    .font-#{$i} {
+        // vue下,单行和多行显示省略号需要单独处理
+        font-size: #{$i} + 'px' !important;
+    }
+}
+.common-title {
+	font-size: 15px;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #101010;
+	line-height: 19px;
+}
+
+.flex {
+	display: flex;
+}
+.flex-j-b{
+	justify-content: space-between;
+}
+.flex-1 {
+	flex: 1;
+}
+
+.flex-a {
+	display: flex;
+	align-items: center;
+}
+
+.flex-a-s {
+	align-items: flex-start;
+}
+
+.flex-a-c {
+	align-items: center;
+}
+
+.flex-a-e {
+	align-items: flex-end;
+}
+
+.flex-c {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+}
+
+.flex-d {
+	display: flex;
+	flex-direction: column;
+}
+
+.common-text{
+	font-family: PingFang SC;
+	font-weight: 500;
+	font-size: 13px;
+	color: #666666;
+	line-height: 24px;
+	text-align: left;
+}
+
+.common-num-text{
+	font-family: AlibabaSans102 V2 Num_Alipay;
+	font-weight: normal;
+	font-size: 18px;
+	color: #111111;
+	line-height: 24px;
+	text-align: left;
+}
+
+.common-card {
+	padding: 14px 12px 21px;
+	background: #FFFFFF;
+	border-radius: 10px;
+	opacity: 1;
+}
+
+.white-bg{
+	padding: 0;
+	box-sizing: border-box;
+	background-color: #ffffff;
+	border-radius: 10px;
+}
+
+.common-tag {
+	padding: 2px 4px;
+	background: linear-gradient(180deg, #DBC4A3 0%, #D2B692 100%);
+	border-radius: 3px 3px 3px 3px;
+	opacity: 1;
+	position: relative;
+	font-size:11px;
+	font-family: PingFang SC;
+	font-weight: 400;
+	color: #FFFFFF;
+	margin-left: 6px;
+}
+
+.common-number-text{
+	font-family: AlibabaSans102 V2 Num_Alipay;
+	font-weight: normal;
+	font-size: 16px;
+	color: #111111;
+	line-height: 28px;
+}
+
+.common-btn{
+	padding: 8rpx 20rpx;
+	box-sizing: border-box;
+	background: #ff6c22;
+	color: #ffffff;
+	font-size: 26rpx;
+	border-radius: 28rpx;
+	border: 2rpx solid #ff6c22;
+	
+	&.plain{
+		border: 2rpx solid #707bce;
+		color: #707bce;
+		background: #ffffff;
+	}
+}
+.color-primary{
+	color: #707bce !important;
+}
+
+.team-title {
+	font-size: 28rpx;
+	color: #707bce;
+}
+
+.common-page{
+	padding: 30rpx;
+	box-sizing: border-box;
+}

+ 67 - 2
unpackage/cache/wgt/__UNI__65C1C73/static/css/mystyle.css

@@ -1,14 +1,16 @@
 .w100 {
-	width: 100%!important;
+	width: 100% !important;
 }
+
 .h100 {
-	height: 100%!important;
+	height: 100% !important;
 }
 
 /* 定位 */
 .pos-re {
 	position: relative;
 }
+
 .pos-ab {
 	position: absolute;
 }
@@ -16,9 +18,11 @@
 .box-s {
 	box-sizing: border-box;
 }
+
 .flex {
 	display: flex;
 }
+
 .flex-1 {
 	flex: 1;
 }
@@ -31,9 +35,11 @@
 .flex-a-s {
 	align-items: flex-start;
 }
+
 .flex-a-c {
 	align-items: center;
 }
+
 .flex-a-e {
 	align-items: flex-end;
 }
@@ -48,6 +54,7 @@
 	display: flex;
 	flex-direction: column;
 }
+
 .flex-w {
 	display: flex;
 	flex-wrap: wrap;
@@ -88,51 +95,67 @@
 .m-2 {
 	margin: 20rpx;
 }
+
 .m-l-1 {
 	margin-left: 10rpx;
 }
+
 .m-l-2 {
 	margin-left: 20rpx;
 }
+
 .m-l-3 {
 	margin-left: 30rpx;
 }
+
 .m-r-1 {
 	margin-right: 10rpx;
 }
+
 .m-r-2 {
 	margin-right: 20rpx;
 }
+
 .m-r-3 {
 	margin-right: 30rpx;
 }
+
 .m-t-0 {
 	margin-top: 0;
 }
+
 .m-t-1 {
 	margin-top: 10rpx;
 }
+
 .m-t-2 {
 	margin-top: 20rpx;
 }
+
 .m-t-3 {
 	margin-top: 30rpx;
 }
+
 .m-b-2 {
 	margin-bottom: 20rpx;
 }
+
 .p-2 {
 	padding: 20rpx;
 }
+
 .p-l-2 {
 	padding-left: 20rpx;
 }
+
 .p-r-2 {
 	padding-right: 20rpx;
 }
+
 .p-t-2 {
 	padding-top: 20rpx;
 }
+
 .p-b-2 {
 	padding-bottom: 20rpx;
 }
@@ -140,9 +163,51 @@
 .text-l {
 	text-align: left;
 }
+
 .text-c {
 	text-align: center;
 }
+
 .text-r {
 	text-align: right;
+}
+
+:deep(.u-cell) {
+	.u-cell__body {
+		padding: 15px;
+	}
+}
+
+.fixed-bottom {
+	padding: 40rpx 0rpx;
+	padding-bottom: env(safe-area-inset-bottom);
+	position: fixed;
+	width: 100%;
+	bottom: 0;
+	left: 0;
+	display: flex;
+}
+
+:deep(.fixed-bottom .u-button) {
+	border-radius: 0 !important;
+}
+
+.common-page {
+	padding: 24rpx;
+	box-sizing: border-box;
+}
+
+.search-area {
+	padding: 24rpx;
+	background-color: #ffffff;
+	z-index: 9;
+}
+
+.text-item{
+	font-size: 26rpx;
+	text-align: center;
+}
+.list-con .text-item {
+	flex: 1;
+	line-height: 60rpx;
 }

BIN
unpackage/cache/wgt/__UNI__65C1C73/static/img/logo.png


BIN
unpackage/debug/android_debug.apk


+ 2 - 2
unpackage/dist/build/app-plus/__uniappview.html

@@ -16,8 +16,8 @@
   <body>
     <div id="app"></div>
     <script src="uni-app-view.umd.js"></script>
-    
-    
+    <script src="app-wxs.js"></script>
+    <script src="app-renderjs.js"></script>
     
   </body>
 </html>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 1
unpackage/dist/build/app-plus/app-config-service.js


+ 2 - 0
unpackage/dist/build/app-plus/app-renderjs.js

@@ -0,0 +1,2 @@
+var __renderjsModules={};
+__renderjsModules["5a9dc23f"]=(()=>{var c=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(t,o)=>{for(var i in o)c(t,i,{get:o[i],enumerable:!0})},f=(t,o,i,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of u(o))!d.call(t,r)&&r!==i&&c(t,r,{get:()=>o[r],enumerable:!(n=l(o,r))||n.enumerable});return t};var g=t=>f(c({},"__esModule",{value:!0}),t);var w={};p(w,{default:()=>m});var e={};window&&!window.$mescrollRenderInit&&(window.$mescrollRenderInit=!0,window.addEventListener("touchstart",function(t){e.disabled()||(e.startPoint=e.getPoint(t))},{passive:!0}),window.addEventListener("touchmove",function(t){if(!e.disabled()&&!(e.getScrollTop()>0)){var o=e.getPoint(t),i=o.y-e.startPoint.y;if(i>0&&!e.isDownScrolling&&!e.optDown.isLock&&(!e.isUpScrolling||e.isUpScrolling&&e.isUpBoth)){for(var n=t.target,r=!1;n&&n.tagName&&n.tagName!=="UNI-PAGE-BODY"&&n.tagName!="BODY";){var a=n.classList;if(a&&a.contains("mescroll-render-touch")){r=!0;break}n=n.parentNode}r&&t.cancelable&&!t.defaultPrevented&&t.preventDefault()}}},{passive:!1}));e.getScrollTop=function(){return e.scrollTop||document.documentElement.scrollTop||document.body.scrollTop||0};e.disabled=function(){return!e.optDown||!e.optDown.use||e.optDown.native};e.getPoint=function(t){return t?t.touches&&t.touches[0]?{x:t.touches[0].pageX,y:t.touches[0].pageY}:t.changedTouches&&t.changedTouches[0]?{x:t.changedTouches[0].pageX,y:t.changedTouches[0].pageY}:{x:t.clientX,y:t.clientY}:{x:0,y:0}};function h(t){e.optDown=t.optDown,e.scrollTop=t.scrollTop,e.isDownScrolling=t.isDownScrolling,e.isUpScrolling=t.isUpScrolling,e.isUpBoth=t.isUpBoth}var v={data(){return{propObserver:h}}},s=v;var m={mixins:[s]};return g(w);})();

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/app-service.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 0
unpackage/dist/build/app-plus/app-wxs.js


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/app.css


BIN
unpackage/dist/build/app-plus/assets/no-result.6af066e5.png


BIN
unpackage/dist/build/app-plus/assets/uniicons.89ed7d6d.ttf


+ 16 - 6
unpackage/dist/build/app-plus/manifest.json

@@ -95,12 +95,26 @@
           "pid": "4133",
           "parameters": {}
         }
+      },
+      "iData-BarcodePlugin": {
+        "__plugin_info__": {
+          "name": "iData条码扫描插件",
+          "description": "实现了APP接收iData品牌PDA扫描的条码数据,适配iData品牌所有安卓PDA设备。",
+          "platforms": "Android",
+          "url": "https://ext.dcloud.net.cn/plugin?id=3898",
+          "android_package_name": "com.wk.pds",
+          "ios_bundle_id": "",
+          "isCloud": true,
+          "bought": 1,
+          "pid": "3898",
+          "parameters": {}
+        }
       }
     },
     "statusbar": {
       "immersed": "supportedDevice",
       "style": "dark",
-      "background": "#ffffff"
+      "background": "#4cd964"
     },
     "uniStatistics": {
       "enable": false
@@ -164,11 +178,7 @@
       ],
       "backgroundColor": "#ffffff",
       "selectedIndex": 0,
-      "shown": true,
-      "child": [
-        "lauchwebview"
-      ],
-      "selected": 0
+      "shown": true
     }
   },
   "launch_path": "__uniappview.html"

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/book/index.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/audit/confirm-receipt.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/audit/express-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/audit/isbn-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/audit/scan-order.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/audit/sender.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/entry/book-weight.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/entry/scan-book.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/express/logistics-detail.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/express/quick-check.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
unpackage/dist/build/app-plus/pages/index/express/quick-unpack.css


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác