diff --git a/api/getRepository.js b/api/getRepository.js
new file mode 100644
index 0000000..367f1e9
--- /dev/null
+++ b/api/getRepository.js
@@ -0,0 +1,24 @@
+// mockWarehousing.js
+
+// 模拟数据
+const mockWarehousingData = [
+ { id: 101, deptName: "Y00002", deptId: "WSA0197", remark: "备注" },
+ { id: 102, deptName: "Y00003", deptId: "WSA0198", remark: "" },
+ { id: 103, deptName: "Y00004", deptId: "WSA0199", remark: "备注" },
+ { id: 104, deptName: "Y00005", deptId: "WSA0200", remark: "" },
+];
+
+// Mock 接口(和你原接口格式一致)
+const getRepository = (params) => {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve({
+ code: 200,
+ msg: "获取成功",
+ data: mockWarehousingData,
+ });
+ }, 200);
+ });
+};
+
+export default getRepository;
diff --git a/api/request.js b/api/request.js
index dd881bb..341a530 100644
--- a/api/request.js
+++ b/api/request.js
@@ -1,5 +1,6 @@
//存放主站域名
-const BASE_URL = 'http://192.168.1.5:8082' // 正式环境接口
+// const BASE_URL = 'http://192.168.1.5:8082' // w
+const BASE_URL = 'http://192.168.1.9:8082' // 正式环境接口
// const BASE_URL = 'http://47.100.212.83:18088' // 正式环境接口
// const BASE_URL = 'http://192.168.1.9:8088' // 测试环境接口
// const BASE_URL = 'http://192.168.1.5:8088' // 测试环境接口
diff --git a/api/stockIn.js b/api/stockIn.js
new file mode 100644
index 0000000..5b26149
--- /dev/null
+++ b/api/stockIn.js
@@ -0,0 +1,37 @@
+import { request } from './request'
+const api ='/worn/inboundBill/'
+// 新建:入库单
+const addStockIn = (params) => {
+ return request(api+'add', params, 'POST')
+}
+// 列表
+const stockList = (params) => {
+ return request(api+'list', params, 'get')
+}
+// 详情
+const stockInDetail = (params) => {
+ return request('/worn/item/list', params, 'get')
+}
+// 编辑
+const stockInUpdate = (params) => {
+ return request('/worn/item/update', params, 'post')
+}
+// 入库
+const inboundFinish = (params) => {
+ return request('/worn/inboundBill/inboundFinish', params, 'post')
+}
+// 作废
+const inboundBillVoid = (params) => {
+ return request('/worn/inboundBill/void', params, 'post')
+}
+
+
+export {
+ addStockIn,
+ stockList,
+ stockInDetail,
+ stockInUpdate,
+ inboundFinish,
+ inboundBillVoid
+
+}
\ No newline at end of file
diff --git a/api/system.js b/api/system.js
new file mode 100644
index 0000000..1e2a9c5
--- /dev/null
+++ b/api/system.js
@@ -0,0 +1,8 @@
+import { request } from "./request";
+
+// 根据当前用户获取仓库信息
+const getWarehousingInfo = (params) => {
+ return request(`/system/user/myDeptChildren`, params, "get");
+};
+
+export { getWarehousingInfo };
diff --git a/api/uniqueCode.js b/api/uniqueCode.js
index 4bd7818..dfd8aa4 100644
--- a/api/uniqueCode.js
+++ b/api/uniqueCode.js
@@ -21,9 +21,12 @@ const delUniqueCode = (params) => {
};
// 详情:唯一码
const detailUniqueCode = (params) => {
- console.log(params,'params');
return request(`/unique/code/${params.id}`, params, 'GET');
};
+// 详情:通过唯一码获取物料信息
+const getMaterialUnique = (params) => {
+ return request(`/unique/code/materialInfo/${params.code}`, params, 'GET');
+};
export {
getMaterial,
@@ -32,4 +35,5 @@ export {
delUniqueCode,
detailUniqueCode,
editUniqueCode,
+ getMaterialUnique
};
diff --git a/components/BarcodeGenerator.vue b/components/BarcodeGenerator.vue
deleted file mode 100644
index 189810d..0000000
--- a/components/BarcodeGenerator.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 76a6634..dd3ecd6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,7 +6,10 @@
"": {
"dependencies": {
"@climblee/uv-ui": "^1.1.20",
+ "dayjs": "^1.11.20",
"jsbarcode": "^3.12.3",
+ "lodash": "^4.17.23",
+ "numeral": "^2.0.6",
"z-paging": "^2.8.8"
},
"devDependencies": {
@@ -817,6 +820,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/dayjs": {
+ "version": "1.11.20",
+ "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.20.tgz",
+ "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==",
+ "license": "MIT"
+ },
"node_modules/detect-libc": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz",
@@ -1107,6 +1116,12 @@
"node": ">=8.9.0"
}
},
+ "node_modules/lodash": {
+ "version": "4.17.23",
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.23.tgz",
+ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "license": "MIT"
+ },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -1159,6 +1174,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/numeral": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/numeral/-/numeral-2.0.6.tgz",
+ "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
diff --git a/package.json b/package.json
index 978e13e..eb56032 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,10 @@
{
"dependencies": {
"@climblee/uv-ui": "^1.1.20",
+ "dayjs": "^1.11.20",
"jsbarcode": "^3.12.3",
+ "lodash": "^4.17.23",
+ "numeral": "^2.0.6",
"z-paging": "^2.8.8"
},
"devDependencies": {
diff --git a/pages.json b/pages.json
index 6dcbacf..81daa19 100644
--- a/pages.json
+++ b/pages.json
@@ -32,22 +32,117 @@
"path": "pages/my/index",
"style": { "navigationBarTitleText": "我的" }
},
+
+ // 仓储 - 唯一码
{
- "path": "pages/uniqueCode/issueUniqueCode/index",
+ "path": "pages/warehousing/uniqueCode/issueUniqueCode/index",
"style": { "navigationBarTitleText": "唯一码发放" }
},
{
- "path": "pages/uniqueCode/issueUniqueCode/materialSelection",
+ "path": "pages/warehousing/uniqueCode/issueUniqueCode/materialSelection",
"style": { "navigationBarTitleText": "物料选择" }
},
{
- "path": "pages/uniqueCode/myUniqueCode/index",
+ "path": "pages/warehousing/uniqueCode/myUniqueCode/index",
"style": { "navigationBarTitleText": "唯一码" }
},
{
- "path": "pages/uniqueCode/myUniqueCode/detail",
- "style": { "navigationBarTitleText": "唯一码详情" }
+ "path": "pages/warehousing/uniqueCode/myUniqueCode/detail",
+ "style": {
+ "navigationBarTitleText": "唯一码详情",
+ "navigationStyle": "custom"
+ }
+ },
+ // {
+ // "path": "pages/uniqueCode/bindRfid",
+ // "style": { "navigationBarTitleText": "绑定RFID" }
+ // },
+
+ // ========== 库存信息模块 ==========
+ // {
+ // "path": "pages/inventory/checkUniqueCode",
+ // "style": { "navigationBarTitleText": "唯一码盘点" }
+ // },
+ // {
+ // "path": "pages/inventory/age",
+ // "style": { "navigationBarTitleText": "库龄查看" }
+ // },
+ // {
+ // "path": "pages/inventory/alert",
+ // "style": { "navigationBarTitleText": "库存预警" }
+ // },
+
+ // ========== 报表模块 ==========
+ // {
+ // "path": "pages/report/daily",
+ // "style": { "navigationBarTitleText": "库存日报" }
+ // },
+ // {
+ // "path": "pages/report/monthly",
+ // "style": { "navigationBarTitleText": "库存月报" }
+ // },
+ // {
+ // "path": "pages/report/company",
+ // "style": { "navigationBarTitleText": "公司库存报表" }
+ // },
+ // {
+ // "path": "pages/report/warehouse",
+ // "style": { "navigationBarTitleText": "仓库库存报表" }
+ // },
+
+ // ========== 申报单模块 ==========
+ // {
+ // "path": "pages/declaration/materialQuery",
+ // "style": { "navigationBarTitleText": "物资查询" }
+ // },
+ // {
+ // "path": "pages/declaration/create",
+ // "style": { "navigationBarTitleText": "申报单开单" }
+ // },
+ // {
+ // "path": "pages/declaration/my",
+ // "style": { "navigationBarTitleText": "我的申报单" }
+ // },
+
+ // ========== 入库单模块 ==========
+ {
+ "path": "pages/warehousing/stockIn/create",
+ "style": { "navigationBarTitleText": "入库单开单" }
+ },
+ {
+ "path": "pages/warehousing/stockIn/my",
+ "style": { "navigationBarTitleText": "我的入库单" }
+ },
+ {
+ "path": "pages/warehousing/stockIn/components/detail",
+ "style": { "navigationBarTitleText": "详情", "navigationStyle": "custom" }
+ },
+ {
+ "path": "pages/warehousing/stockIn/putaway",
+ "style": { "navigationBarTitleText": "入库单入库" }
+ },
+ {
+ "path": "pages/warehousing/toChooseList",
+ "style": { "navigationBarTitleText": "请选择" }
+ },
+ {
+ "path": "pages/warehousing/stockIn/components/inbound",
+ "style": { "navigationBarTitleText": "入库" }
}
+
+ // ========== 出库单模块 ==========
+ // {
+ // "path": "pages/stockOut/create",
+ // "style": { "navigationBarTitleText": "出库单开单" }
+ // },
+ // {
+ // "path": "pages/stockOut/my",
+ // "style": { "navigationBarTitleText": "我的出库单" }
+ // },
+ // {
+ // "path": "pages/stockOut/warehousing",
+ // "style": { "navigationBarTitleText": "出库单出库" }
+ // }
],
"globalStyle": {
"navigationBarTextStyle": "black",
@@ -55,18 +150,17 @@
"navigationBarBackgroundColor": "#F5F5F5",
"backgroundColor": "#F5F5F5"
},
- // 底部 tabBar 核心配置
"tabBar": {
- "color": "#666", // 未选中文字颜色
- "selectedColor": "#007AFF", // 选中文字颜色
- "backgroundColor": "#fff", // 导航栏背景色
- "borderStyle": "black", // 上边框样式(black/white)
- "height": "50px", // 导航栏高度(App 端建议 50px 左右)
+ "color": "#666",
+ "selectedColor": "#007AFF",
+ "backgroundColor": "#fff",
+ "borderStyle": "black",
+ "height": "50px",
"list": [
{
- "pagePath": "pages/index/index", // 必须和 pages 中的路径一致
- "text": "首页", // 底部文字
- "iconPath": "static/icon/home.png", // 未选中图标(建议 28x28px)
+ "pagePath": "pages/index/index",
+ "text": "首页",
+ "iconPath": "static/icon/home.png",
"selectedIconPath": "static/icon/home-active.png"
},
{
diff --git a/pages/components/ChooseList.vue b/pages/components/ChooseList.vue
new file mode 100644
index 0000000..805fc85
--- /dev/null
+++ b/pages/components/ChooseList.vue
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 仓库名称
+ {{ item.deptName }}
+
+
+ 仓库编码
+ {{ item.deptId }}
+
+
+
+
+ 备注
+
+
+ 未填写
+
+
+
+
+
+
+ {{ item.deptName }} ({{ item.deptId }})
+
+
+
+ {{ item?.remark }}
+ 未填写
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/components/DetailInfo.vue b/pages/components/DetailInfo.vue
new file mode 100644
index 0000000..bdda3c6
--- /dev/null
+++ b/pages/components/DetailInfo.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+ {{ typeName + '单号' }}:{{ detailInfo?.billNo }}
+
+ {{ getBillType(detailInfo?.billType,detailInfo?.status) }}
+
+
+
+ 仓库:
+ {{ detailInfo?.warehouseName }}
+
+ 存储区:
+ {{ detailInfo?.areaName }}
+
+ 开单时间:
+ {{ formatDate(detailInfo?.createTime) }}
+
+ {{ typeName + '时间' }} :
+ {{ formatDate(detailInfo?.inboundTime) }}
+
+
+
+
+ 详细备注:
+
+ {{ detailInfo?.billRemark || '-' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/components/LineSteps.vue b/pages/components/LineSteps.vue
new file mode 100644
index 0000000..6a6cc15
--- /dev/null
+++ b/pages/components/LineSteps.vue
@@ -0,0 +1,97 @@
+
+
+
+
+ {{ index + 1 }}
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/components/MaterialList.vue b/pages/components/MaterialList.vue
new file mode 100644
index 0000000..6bd0a1b
--- /dev/null
+++ b/pages/components/MaterialList.vue
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+
+
+
+ handleItemLongPress(item, index)">
+
+
+
+ {{ item.materialName }} ({{ item.materialCode }})
+
+
+
+ {{ item.materialShortName }} /
+ {{ item.model }} /
+ {{ item.specification }} /
+ {{ item.typeName }}
+
+
+
+ 唯一码:{{ item?.uniqueCode }}
+
+
+
+ {{ getTypeParentNames(item.typeParentNames) }}
+
+
+
+
+ {{ item.unitName }}
+
+
+
+
+
+ 已入库:
+ {{ getStockQuantity(item, 'complete') }}
+
+
+ 剩余:
+ {{ getStockQuantity(item, 'remaining') }}
+
+
+
+
+
+
+
+
+
+ 暂无物料,请添加物料
+
+
+
+
+
+
+ 请选择称重来源
+ 无线液位计
+ 手动输入
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/components/Navigation.vue b/pages/components/Navigation.vue
new file mode 100644
index 0000000..9d62ed7
--- /dev/null
+++ b/pages/components/Navigation.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/components/SearchList.vue b/pages/components/SearchList.vue
new file mode 100644
index 0000000..8628150
--- /dev/null
+++ b/pages/components/SearchList.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ typeName + '编号' }}:{{ item.billNo }}
+
+ {{ getBillType(item?.billType, item?.status) }}
+
+
+ {{ typeName + '类型' }}:
+ {{ getOrderType(item.status) }}
+
+ 库位:
+ {{ item.areaName }}
+
+ 开单时间:
+ {{ item.createTime }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/components/WarehousingInfo.vue b/pages/components/WarehousingInfo.vue
new file mode 100644
index 0000000..4d3f848
--- /dev/null
+++ b/pages/components/WarehousingInfo.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+ {{ formData?.warehousing?.[0].deptName }}
+
+ 请选择仓库
+
+
+
+
+
+
+
+
+
+ {{ formData?.storageArea?.[0].deptName }}
+
+ 请选择存储区
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 3ec3d6e..e655b9c 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,3 +1,4 @@
+
首页
diff --git a/pages/intelligent/index.vue b/pages/intelligent/index.vue
index 4e38eca..2482742 100644
--- a/pages/intelligent/index.vue
+++ b/pages/intelligent/index.vue
@@ -1,3 +1,4 @@
+
智能
diff --git a/pages/login/login.vue b/pages/login/login.vue
index 622b61f..6db82b3 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -32,7 +32,8 @@
-
\ No newline at end of file
diff --git a/pages/uniqueCode/issueUniqueCode/materialSelection.vue b/pages/uniqueCode/issueUniqueCode/materialSelection.vue
deleted file mode 100644
index 712f56b..0000000
--- a/pages/uniqueCode/issueUniqueCode/materialSelection.vue
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ item.materialName }} ({{ item.materialCode }})
-
-
- {{ item.materialShortName }} /
- {{ item.model }} /
- {{ item.specification }} /
- {{ item.typeName }}
-
-
-
-
单位:{{ item.unitName }}
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/uniqueCode/myUniqueCode/QrCodeModal.vue b/pages/uniqueCode/myUniqueCode/QrCodeModal.vue
deleted file mode 100644
index 34c3057..0000000
--- a/pages/uniqueCode/myUniqueCode/QrCodeModal.vue
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- 物料:
- {{ material?.materialName }}
- x {{ material?.quantity }}
-
- 描述:
- {{ material?.description || '-' }}
-
- {{ material?.materialShortName }} /
- {{ material?.model }} /
- {{ material?.specification }} /
- {{ material?.typeName }}
-
-
-
- 备注:
-
- {{ material?.qrCodeMark || '' }}
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/uniqueCode/myUniqueCode/detail.vue b/pages/uniqueCode/myUniqueCode/detail.vue
deleted file mode 100644
index 4d3d64a..0000000
--- a/pages/uniqueCode/myUniqueCode/detail.vue
+++ /dev/null
@@ -1,292 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- 编号:{{ item.code }}
- {{ getStatusName(item.status) }}
-
-
-
- RFID:
- {{ item.remark }}
- 未绑定RFID
-
- 生成时间:
- {{ item?.createTime }}
-
-
-
- 备注:
- {{ item.remark }}
- 未填写
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.materialName }} ({{ item.materialCode }})
-
-
-
- {{ item.materialShortName }} /
- {{ item.model }} /
- {{ item.specification }} /
- {{ item.typeName }}
-
-
-
-
-
-
-
-
-
- {{ item.unitName }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/until.js b/pages/until.js
new file mode 100644
index 0000000..04a06aa
--- /dev/null
+++ b/pages/until.js
@@ -0,0 +1,123 @@
+import dayjs from "dayjs";
+import numeral from "numeral";
+// 订单状态
+// 0=入库申请,1=入库成功,2=出库申请,3=出库成功,4=作废
+const billTypeMenu = [
+ {
+ value: "0",
+ label: "入库单已提交",
+ },
+ {
+ value: "1",
+ label: "已完成",
+ },
+ {
+ value: "2",
+ label: "出库单已提交",
+ },
+ {
+ value: "3",
+ label: "已完成",
+ },
+ {
+ value: "4",
+ label: "已取消",
+ },
+];
+
+// 订单状态为0时 再查一次
+const billStatueMenu = [
+ {
+ value: "0",
+ label: "入库单已提交",
+ },
+ {
+ value: "1",
+ label: "全部入库",
+ },
+ {
+ value: "2",
+ label: "物料部分入库",
+ },
+];
+// 物料状态
+const materialType = [
+ {
+ value: "0",
+ label: "未提交",
+ },
+ {
+ value: "1",
+ label: "已提交",
+ },
+];
+
+// 入/出库单状态的label
+export const getBillType = (val, status) => {
+ if (val === "0") {
+ return billStatueMenu.find((i) => i.value == `${status}`)?.label;
+ }
+ return billTypeMenu.find((i) => i.value == `${val}`)?.label;
+};
+
+
+// 获取出入库单的状态以及tag颜色
+export const getColor = (val) => {
+ if (val == "0" || val == "2") {
+ return "color:#B8B8B8;font-weight:500;font-size:12px;";
+ } else if (val == "1" || val == "3") {
+ return "color:green;font-weight:500;font-size:12px;";
+ } else {
+ return "color:red;font-weight:500;font-size:12px;";
+ }
+};
+
+// 时间格式化
+export const formatDate = (t, fmt = "YYYY-MM-DD HH:mm:ss") =>
+ t ? dayjs(t).format(fmt) : "-";
+
+// 数字格式化
+export const formatNum = (num, fmt = "0.00") =>
+ num ? numeral(num).format(fmt) : "-";
+
+// 入库单/出库单:获取已入库、出库数量
+// item:此列数据 type:已入库、剩余数量
+export const getStockQuantity = (item, type) => {
+ const num = item.quantity;
+ const status = item.status;
+ // 未入库
+ if (status == "0") {
+ if (type == "complete") {
+ return "0.000";
+ } else {
+ return formatNum(num, "0.00");
+ }
+ } else {
+ if (type == "complete") {
+ return formatNum(num, "0.000");
+ } else {
+ return "0.00";
+ }
+ }
+};
+
+
+// 清楚缓存 - 将所有需要清楚的缓存写入此处不要写登录信息
+export const removeStorage = () => {
+ uni.removeStorageSync("app_warehousing");
+ uni.removeStorageSync("app_storageArea");
+ uni.removeStorageSync("app_billRemark");
+ uni.removeStorageSync("app_material");
+ uni.removeStorageSync("app_material_select_list");
+};
+
+// 对象转 URL 查询字符串 ?a=1&b=2
+export const objectToQuery = (params) => {
+ if (!params || Object.keys(params).length === 0) return "";
+
+ const query = Object.entries(params)
+ .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
+ .join("&");
+
+ return "?" + query;
+};
diff --git a/pages/warehousing/StockIn/components/detail.vue b/pages/warehousing/StockIn/components/detail.vue
new file mode 100644
index 0000000..a48bac2
--- /dev/null
+++ b/pages/warehousing/StockIn/components/detail.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/StockIn/components/inbound.vue b/pages/warehousing/StockIn/components/inbound.vue
new file mode 100644
index 0000000..a621742
--- /dev/null
+++ b/pages/warehousing/StockIn/components/inbound.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+ 入库
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/StockIn/create.vue b/pages/warehousing/StockIn/create.vue
new file mode 100644
index 0000000..344e9cc
--- /dev/null
+++ b/pages/warehousing/StockIn/create.vue
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+ 扫码添加
+ 提交
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/StockIn/my.vue b/pages/warehousing/StockIn/my.vue
new file mode 100644
index 0000000..cc1c770
--- /dev/null
+++ b/pages/warehousing/StockIn/my.vue
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/StockIn/putaway.vue b/pages/warehousing/StockIn/putaway.vue
new file mode 100644
index 0000000..0ea9ff2
--- /dev/null
+++ b/pages/warehousing/StockIn/putaway.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/index.vue b/pages/warehousing/index.vue
index fc36325..9b5f8c7 100644
--- a/pages/warehousing/index.vue
+++ b/pages/warehousing/index.vue
@@ -1,3 +1,4 @@
+
import { onShow } from '@dcloudio/uni-app';
-
+import {removeStorage} from '../until';
const menuList = [
{
id: 'inventory',
@@ -125,7 +126,11 @@ const menuList = [
icon: '../../static/stockInOrOut/stockInCreateOrder.png',
title: '入库单开单',
click: () => {
+ removeStorage()
console.log('入库单开单')
+ uni.navigateTo({
+ url: '/pages/warehousing/stockIn/create'
+ });
}
},
{
@@ -134,6 +139,10 @@ const menuList = [
title: '我的入库单',
click: () => {
console.log('我的入库单')
+ removeStorage()
+ uni.navigateTo({
+ url: '/pages/warehousing/stockIn/my'
+ });
}
},
{
@@ -142,6 +151,9 @@ const menuList = [
title: '入库单入库',
click: () => {
console.log('入库单入库')
+ uni.navigateTo({
+ url: '/pages/warehousing/stockIn/putaway'
+ });
}
},
@@ -188,9 +200,9 @@ const menuList = [
title: '唯一码发放',
click: () => {
console.log('唯一码发放')
- uni.setStorageSync('app_material', []);
+ uni.removeStorage('app_material')
uni.navigateTo({
- url: '/pages/uniqueCode/issueUniqueCode/index'
+ url: '/pages/warehousing/uniqueCode/issueUniqueCode/index'
});
}
},
@@ -201,7 +213,7 @@ const menuList = [
click: () => {
console.log('唯一码')
uni.navigateTo({
- url: '/pages/uniqueCode/myUniqueCode/index'
+ url: '/pages/warehousing/uniqueCode/myUniqueCode/index'
});
}
},
@@ -216,40 +228,39 @@ const menuList = [
},
]
},
- {
- id: 'transportCheckIn',
- title: '运输打卡',
- menuItem: [
- {
- id: "transportCheckIn_transportCheckIn",
- icon: '../../static/transportCheckIn/transportCheckIn.png',
- title: '运输打卡',
- click: () => {
- console.log('运输打卡')
- }
- },
- {
- id: "transportCheckIn_myTransportCheckIn",
- icon: '../../static/transportCheckIn/myTransportCheckIn.png',
- title: '我的运输打卡',
- click: () => {
- console.log('我的运输打卡')
- }
- },
- ]
- },
+ // {
+ // id: 'transportCheckIn',
+ // title: '运输打卡',
+ // menuItem: [
+ // {
+ // id: "transportCheckIn_transportCheckIn",
+ // icon: '../../static/transportCheckIn/transportCheckIn.png',
+ // title: '运输打卡',
+ // click: () => {
+ // console.log('运输打卡')
+ // }
+ // },
+ // {
+ // id: "transportCheckIn_myTransportCheckIn",
+ // icon: '../../static/transportCheckIn/myTransportCheckIn.png',
+ // title: '我的运输打卡',
+ // click: () => {
+ // console.log('我的运输打卡')
+ // }
+ // },
+ // ]
+ // },
]
onShow(() => {
uni.removeStorage({
key: 'app_material',
- success: (result) => {},
- fail: (error) => {}
+ success: (result) => { },
+ fail: (error) => { }
})
})
\ No newline at end of file
diff --git a/pages/warehousing/uniqueCode/issueUniqueCode/materialSelection.vue b/pages/warehousing/uniqueCode/issueUniqueCode/materialSelection.vue
new file mode 100644
index 0000000..2877f34
--- /dev/null
+++ b/pages/warehousing/uniqueCode/issueUniqueCode/materialSelection.vue
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.materialName }} ({{ item.materialCode }})
+
+
+ {{ item.materialShortName }} /
+ {{ item.model }} /
+ {{ item.specification }} /
+ {{ item.typeName }}
+
+
+
+
单位:{{ item.unitName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.materialName }} ({{ item.materialCode }})
+
+
+ {{ item.materialShortName }} /
+ {{ item.model }} /
+ {{ item.specification }} /
+ {{ item.typeName }}
+
+
+
+
单位:{{ item.unitName }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/uniqueCode/myUniqueCode/QrCodeModal.vue b/pages/warehousing/uniqueCode/myUniqueCode/QrCodeModal.vue
new file mode 100644
index 0000000..61dcc29
--- /dev/null
+++ b/pages/warehousing/uniqueCode/myUniqueCode/QrCodeModal.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+ 物料:
+ {{ material?.materialName }}
+ x {{ material?.quantity }}
+
+ 描述:
+ {{ material?.description || '-' }}
+
+ {{ material?.materialShortName }} /
+ {{ material?.model }} /
+ {{ material?.specification }} /
+ {{ material?.typeName }}
+
+
+
+ 备注:
+ {{ material?.uniqueCodeRemark || '' }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/uniqueCode/myUniqueCode/detail.vue b/pages/warehousing/uniqueCode/myUniqueCode/detail.vue
new file mode 100644
index 0000000..ccf4b67
--- /dev/null
+++ b/pages/warehousing/uniqueCode/myUniqueCode/detail.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编号:{{ item.code }}
+ {{ getStatusName(item.status) }}
+
+
+
+ RFID:
+ {{ item.remark }}
+ 未绑定RFID
+
+ 生成时间:
+ {{ item?.createTime }}
+
+
+
+ 备注:
+ {{ item.remark }}
+ 未填写
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/uniqueCode/myUniqueCode/index.vue b/pages/warehousing/uniqueCode/myUniqueCode/index.vue
similarity index 90%
rename from pages/uniqueCode/myUniqueCode/index.vue
rename to pages/warehousing/uniqueCode/myUniqueCode/index.vue
index 4b10841..90b29e1 100644
--- a/pages/uniqueCode/myUniqueCode/index.vue
+++ b/pages/warehousing/uniqueCode/myUniqueCode/index.vue
@@ -34,7 +34,7 @@
未填写
-
@@ -52,7 +52,7 @@
-
+
@@ -79,9 +79,13 @@ const isDialog = ref(false)
// 唯一码列表
const uniqueCodeList = ref([])
// 物料列表数组
-const materialList = ref([])
+const materialList = ref({
+ material: []
+})
// 列表:唯一码
-const getMaterialList = () => {
+const getMaterialList = (pageNo, pageSize) => {
+ queryParams.value.pageNum = pageNo
+ console.log(pageNo, pageSize, queryParams.value)
getUniqueCodeList(queryParams.value).then(res => {
res.rows.forEach(e => {
e.showMore = false;
@@ -99,7 +103,7 @@ onShow(() => {
// 详情:唯一码
const toDetail = (val) => {
uni.navigateTo({
- url: `/pages/uniqueCode/myUniqueCode/detail?id=${val.id}&code=${val.code}`,
+ url: `/pages/warehousing/uniqueCode/myUniqueCode/detail?id=${val.id}&code=${val.code}`,
});
}
@@ -118,7 +122,6 @@ const dialogClose = () => {
const dialogConfirm = () => {
console.log(delItem.value.id, 'delItem.value.id');
delUniqueCode({ ids: [delItem.value.id] }).then(res => {
- console.log(res, '11');
dialogClose()
})
}
@@ -126,7 +129,7 @@ const dialogConfirm = () => {
const getDetailInfo = (row) => {
detailUniqueCode({ id: row.id }).then((res) => {
if (res.code == 200) {
- materialList.value = [{ ...res.data.material, ...getDetail(res.data.material.wornMaterial), qrCode: res.data.qrCode, code: res.data.code,qrCodeMark:res.data.remark }]
+ materialList.value.material = [{ ...res.data.material, ...getDetail(res.data.material.wornMaterial), qrCode: res.data.qrCode, code: res.data.code, uniqueCodeRemark: res.data.remark }]
setTimeout(() => {
modalRef.value.open()
}, 300)
@@ -159,6 +162,7 @@ const getDetailInfo = (row) => {
font-size: 12px;
}
}
+
::v-deep.qrCodeModal {
.uv-modal__content {
display: block;
diff --git a/pages/uniqueCode/until.js b/pages/warehousing/uniqueCode/until.js
similarity index 91%
rename from pages/uniqueCode/until.js
rename to pages/warehousing/uniqueCode/until.js
index 3eea086..5ce62ce 100644
--- a/pages/uniqueCode/until.js
+++ b/pages/warehousing/uniqueCode/until.js
@@ -1,8 +1,8 @@
export const getTypeParentNames = (val) => {
if (val) {
- let value = val.replace("/", ",");
+ let value = val.replace(/\//g, ",");
const arr = `${value}`.split(",");
- return arr[arr?.length - 1];
+ return arr[0];
}
};
@@ -49,6 +49,7 @@ export const getDetail = (info) => {
description: info.description,
weight: info.weight,
kgFactor: info.kgFactor,
+ materialId:info.id,//物料id
}
diff --git a/static/edit.png b/static/edit.png
new file mode 100644
index 0000000..ba61723
Binary files /dev/null and b/static/edit.png differ
diff --git a/static/printer.png b/static/printer.png
new file mode 100644
index 0000000..b7d4405
Binary files /dev/null and b/static/printer.png differ
diff --git a/styles/theme.scss b/styles/theme.scss
index eba4f11..d3b1fb7 100644
--- a/styles/theme.scss
+++ b/styles/theme.scss
@@ -1,81 +1,225 @@
.material-card {
- background-color: #fff;
- // padding: 24rpx;
- // margin: 8rpx 0 0 0;
+ background-color: #fff;
+ // padding: 24rpx;
+ // margin: 8rpx 0 0 0;
- .title {
- font-size: 14px;
- font-weight: 600;
- }
+ .title {
+ font-size: 14px;
+ font-weight: 600;
+ }
- .subTitle {
- font-size: 12px;
- color: #999;
- margin-top: 14rpx;
- }
+ .subTitle {
+ font-size: 12px;
+ color: #999;
+ margin-top: 8rpx;
+ }
- .tag {
- margin-top: 14rpx;
- display: flex;
- justify-content: space-between;
- align-items: center;
-
- p {
- font-size: 14px;
- }
-
- .uni-tag {
- padding: 2px 4px;
- }
-
- }
-
- .remark{
- height: 100%;
- }
- .text{
- height: 100%;
- p{
- font-size: 14px;
- margin-top: 16rpx;
- }
- span{
- color: #616161;
- }
- }
- .qrCode{
-
- }
- .status{
- font-size: 12px;
- color: #616161;
- }
-
-}
-.flex-center{
+ .tag {
+ margin-top: 8rpx;
display: flex;
+ justify-content: space-between;
align-items: center;
- justify-content: space-between;
+
+ p {
+ font-size: 14px;
+ }
+
+ .uni-tag {
+ padding: 2px 4px;
+ }
+ }
+
+ .remark {
+ height: 100%;
+ }
+ .text {
+ height: 100%;
+ p {
+ font-size: 14px;
+ margin-top: 8rpx;
+ }
+ span {
+ color: #616161;
+ }
+ }
+ .status {
+ font-size: 12px;
+ color: #616161;
+ }
+}
+.flex-center {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
}
// 底部按钮
.bottom-btn {
- position: fixed;
- bottom: 0;
- width: 100%;
- border-radius: 0;
- background-color: #409EFF !important;
- border-color: #409EFF !important;
- height: 60rpx;
- font-size: 14px;
- display: flex;
- align-items: center;
- justify-content: center;
+ position: fixed;
+ bottom: 0;
+ width: 100%;
+ border-radius: 0;
+ background-color: #409eff !important;
+ border-color: #409eff !important;
+ height: 60rpx;
+ font-size: 14px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
}
-.mt-8{
- margin-top: 8rpx;
+.mt-8 {
+ margin-top: 8rpx;
}
-.mt-16{
- margin-top: 16rpx;
+.mb-16 {
+ margin-bottom: 16rpx;
+}
+.mb-4 {
+ margin-bottom: 4rpx;
+}
+.mb-6 {
+ margin-bottom: 6rpx;
+}
+.mb-2 {
+ margin-bottom: 2px;
+}
+.mt-16 {
+ margin-top: 16rpx;
+}
+.mr-8 {
+ margin-right: 8rpx;
+}
+.mr-16 {
+ margin-right: 16rpx;
+}
+.ml-8 {
+ margin-left: 8rpx;
+}
+.ml-16 {
+ margin-left: 16rpx;
+}
+.ml-24 {
+ margin-left: 24rpx;
+}
+.flex {
+ display: flex;
+}
+.align-center {
+ align-items: center;
+}
+.justify-center {
+ justify-content: center;
+}
+.justify-between {
+ justify-content: space-between;
+}
+
+.f-12 {
+ font-size: 12px;
+}
+.grey {
+ color: #696969;
+}
+.tag-error {
+ padding: 4px 6px;
+ border-radius: 4px;
+ display: inline-block;
+ height: 20px;
+ color: #fff;
+ background-color: #e43d33;
+ font-size: 10px;
+ line-height: 20px;
+}
+
+.material-box {
+ background-color: #fff;
+ // 标题
+ .title {
+ font-size: 14px;
+ font-weight: 600;
+ }
+ // 副标题
+ .subTitle {
+ font-size: 12px;
+ color: #999;
+ }
+ .uniqueCode {
+ font-size: 12px;
+ }
+ // 标签
+ .tag-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ p {
+ font-size: 14px;
+ }
+ }
+ .quantity-form {
+ display: flex;
+ align-items: center;
+
+ .uni-forms-item {
+ margin-bottom: 0;
+ align-items: center;
+ }
+ .uni-easyinput__content-input{
+ height: 25px;
+ width: 30px;
+ }
+
+ .unit {
+ margin-left: 8rpx;
+ font-size: 12px;
+ width: 20px;
+ }
+ }
+ .remark-row {
+ .uni-forms-item {
+ margin-bottom: 0;
+ margin-top: 8rpx;
+ }
+
+ .uni-forms-item__label {
+ height: 25px;
+ color: #333;
+ }
+
+ .uni-easyinput,
+ .uni-easyinput__content,
+ .uni-input-input {
+ height: 25px;
+ }
+
+ .is-disabled {
+ background-color: #fff !important;
+ }
+
+ .uni-input-input:disabled {
+ color: #333;
+ }
+ .uni-easyinput__content-input {
+ .uni-input-wrapper {
+ text-align: right;
+ }
+ }
+ .uni-input-placeholder {
+ text-align: right;
+ }
+ }
+ .text {
+ height: 100%;
+ p {
+ font-size: 14px;
+ margin-top: 8rpx;
+ }
+ span {
+ color: #616161;
+ }
+ }
+ .status {
+ font-size: 12px;
+ color: #616161;
+ }
}
diff --git a/yarn.lock b/yarn.lock
index ca8d16f..25723ae 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -341,6 +341,11 @@ commander@^2.20.0:
resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+dayjs@^1.11.20:
+ version "1.11.20"
+ resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.20.tgz"
+ integrity sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==
+
detect-libc@^2.0.3:
version "2.1.2"
resolved "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz"
@@ -504,6 +509,11 @@ loader-utils@^2.0.0:
emojis-list "^3.0.0"
json5 "^2.1.2"
+lodash@^4.17.23:
+ version "4.17.23"
+ resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.23.tgz"
+ integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
+
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz"
@@ -536,6 +546,11 @@ node-releases@^2.0.27:
resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.36.tgz"
integrity sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==
+numeral@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmmirror.com/numeral/-/numeral-2.0.6.tgz"
+ integrity sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==
+
picocolors@^1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz"