diff --git a/src/api/mes/materialMove.js b/src/api/mes/materialMove.js
new file mode 100644
index 0000000..86cf263
--- /dev/null
+++ b/src/api/mes/materialMove.js
@@ -0,0 +1,49 @@
+import request from '@/utils/request'
+
+export function createMaterialMove(data) {
+ return request({
+ url: '/admin-api/erp/stock-move/create',
+ method: 'post',
+ data
+ })
+}
+
+export function getMaterialMovePage(params = {}) {
+ return request({
+ url: '/admin-api/erp/stock-move/page',
+ method: 'get',
+ params
+ })
+}
+
+export function submitMaterialMove(data) {
+ return request({
+ url: '/admin-api/erp/stock-move/submit',
+ method: 'put',
+ data
+ })
+}
+
+export function auditMaterialMove(data) {
+ return request({
+ url: '/admin-api/erp/stock-move/audit',
+ method: 'put',
+ data
+ })
+}
+
+export function getMoveProductPage(params = {}) {
+ return request({
+ url: '/admin-api/erp/product/page',
+ method: 'get',
+ params
+ })
+}
+
+export function getProductStockList(productId) {
+ return request({
+ url: '/admin-api/erp/stock-move/product-stock-list',
+ method: 'get',
+ params: { productId }
+ })
+}
diff --git a/src/pages.json b/src/pages.json
index a12622d..03fe503 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -703,6 +703,34 @@
"navigationStyle": "custom"
}
},
+ {
+ "path": "materialMove/index",
+ "style": {
+ "navigationBarTitleText": "\u5e93\u5b58\u8c03\u62e8",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "materialMove/create",
+ "style": {
+ "navigationBarTitleText": "\u65b0\u589e\u5e93\u5b58\u8c03\u62e8",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "materialMove/productConfirm",
+ "style": {
+ "navigationBarTitleText": "\u786e\u8ba4\u8c03\u62e8\u7269\u6599",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "materialMove/productSelect",
+ "style": {
+ "navigationBarTitleText": "\u9009\u62e9\u7269\u6599",
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "sparepartCheck/index",
"style": {
diff --git a/src/pages_function/pages/materialMove/create.vue b/src/pages_function/pages/materialMove/create.vue
new file mode 100644
index 0000000..deb36ad
--- /dev/null
+++ b/src/pages_function/pages/materialMove/create.vue
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+ 调拨时间*
+
+
+ {{ moveDate || '请选择调拨时间' }}
+
+
+
+
+
+
+
+ 备注
+
+
+
+
+
+
+
+
+
+ {{ itemList.length }}
+ {{ itemLabel }}
+
+
+ {{ totalCount }}
+ 总数量
+
+
+
+
+
+
+
+
+
+ 调出
+ {{ textValue(item.fromWarehouseName) }} / {{ textValue(item.fromAreaName) }}
+
+
+ 调入
+ {{ textValue(item.toWarehouseName) }} / {{ textValue(item.toAreaName) }}
+
+
+ 数量
+ {{ textValue(item.count) }}{{ textUnit(item.productUnitName) }}
+
+
+ 库存
+ {{ textValue(item.stockCount) }}{{ textUnit(item.productUnitName) }}
+
+
+
+
+
+
+
+
+ 请添加调拨{{ itemLabel }}
+
+
+
+
+
+
+ 取消
+ 确认调拨
+
+
+
+
+
+
+
diff --git a/src/pages_function/pages/materialMove/index.vue b/src/pages_function/pages/materialMove/index.vue
new file mode 100644
index 0000000..b640273
--- /dev/null
+++ b/src/pages_function/pages/materialMove/index.vue
@@ -0,0 +1,495 @@
+
+
+
+
+
+
+
+
+ {{ currentStatusLabel }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ itemLabel }}信息
+ {{ textValue(item.productNames) }}
+
+
+ 调拨时间
+ {{ formatDateTime(item.moveTime || item.createTime) }}
+
+
+ 创建人
+ {{ textValue(item.creatorName || item.creator) }}
+
+
+ 数量
+ {{ textValue(item.totalCount) }}
+
+
+ 审核人
+ {{ textValue(item.auditUserName) }}
+
+
+
+ 提交审核
+
+
+ 审核通过
+ 审核驳回
+
+
+
+ 加载中...
+ 暂无调拨单
+ 加载更多...
+ 没有更多了
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
diff --git a/src/pages_function/pages/materialMove/productConfirm.vue b/src/pages_function/pages/materialMove/productConfirm.vue
new file mode 100644
index 0000000..2088404
--- /dev/null
+++ b/src/pages_function/pages/materialMove/productConfirm.vue
@@ -0,0 +1,586 @@
+
+
+
+
+
+
+
+
+
+
+ {{ itemLabel }}*
+
+
+
+ 选择{{ itemLabel }}
+
+
+
+
+
+
+
+ {{ itemLabel }}名称
+ {{ textValue(productName) }}
+
+
+ 编码
+ {{ textValue(productBarCode) }}
+
+
+ 单位
+ {{ textValue(productUnitName) }}
+
+
+
+
+
+
+
+
+
+ 调出仓库*
+
+
+ {{ fromWarehouseName || '请先选择调出仓库' }}
+
+
+
+
+
+
+ 调出库区*
+
+
+
+ 选择
+
+
+
+ {{ fromAreaName }}
+ 库存 {{ stockCount }}{{ productUnitName }}
+
+
+
+
+
+
+
+
+ 调入仓库*
+
+
+ {{ toWarehouseName || '请选择调入仓库' }}
+
+
+
+
+
+
+ 调入库区*
+
+
+
+ 选择
+
+
+
+ {{ toAreaName }}
+
+
+
+
+
+
+
+
+ 数量*
+
+
+ {{ productUnitName }}
+
+
+ 调拨数量不能大于当前调出库区库存
+ 调出库区和调入库区不能相同
+
+
+
+
+
+ 取消
+ 确认
+
+
+
+
+
+
+
diff --git a/src/pages_function/pages/materialMove/productSelect.vue b/src/pages_function/pages/materialMove/productSelect.vue
new file mode 100644
index 0000000..134056f
--- /dev/null
+++ b/src/pages_function/pages/materialMove/productSelect.vue
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 规格
+ {{ textValue(item.standard || item.deviceSpec) }}
+
+
+ 单位
+ {{ textValue(item.unitName || item.minStockUnitName) }}
+
+
+
+
+
+
+
+ {{ loading ? '加载中...' : '暂无' + itemLabel }}
+
+
+
+ 确认
+
+
+
+
+
+
+
diff --git a/src/utils/permissionMenu.js b/src/utils/permissionMenu.js
index f817de2..19913cc 100644
--- a/src/utils/permissionMenu.js
+++ b/src/utils/permissionMenu.js
@@ -121,6 +121,11 @@ const MENU_ROUTE_MAP = {
materialOutbound: '/pages_function/pages/materialOutbound/index',
materialoutbound: '/pages_function/pages/materialOutbound/index',
'物料出库': '/pages_function/pages/materialOutbound/index',
+ materialMove: '/pages_function/pages/materialMove/index',
+ materialmove: '/pages_function/pages/materialMove/index',
+ stockMove: '/pages_function/pages/materialMove/index',
+ stockmove: '/pages_function/pages/materialMove/index',
+ '\u5e93\u5b58\u8c03\u62e8': '/pages_function/pages/materialMove/index',
productInventory: '/pages_function/pages/productInventory/index',
productinventory: '/pages_function/pages/productInventory/index',
productStock: '/pages_function/pages/productInventory/index',