Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
冷月半明
Skyeye
提交
8d86ee04
S
Skyeye
项目概览
冷月半明
/
Skyeye
与 Fork 源项目一致
Fork自
doc_wei / Skyeye
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Skyeye
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8d86ee04
编写于
8月 14, 2022
作者:
doc_wei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【ERP】拆分单整改完成
上级
e63bb49d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
206 addition
and
432 deletion
+206
-432
erp/src/main/resources/template/js/splitlist/splitlistadd.js
erp/src/main/resources/template/js/splitlist/splitlistadd.js
+83
-169
erp/src/main/resources/template/js/splitlist/splitlistedit.js
...src/main/resources/template/js/splitlist/splitlistedit.js
+118
-196
erp/src/main/resources/template/tpl/splitlist/splitlistadd.html
...c/main/resources/template/tpl/splitlist/splitlistadd.html
+3
-25
erp/src/main/resources/template/tpl/splitlist/splitlistedit.html
.../main/resources/template/tpl/splitlist/splitlistedit.html
+2
-42
未找到文件。
erp/src/main/resources/template/js/splitlist/splitlistadd.js
浏览文件 @
8d86ee04
...
...
@@ -12,11 +12,9 @@ layui.config({
var
$
=
layui
.
$
,
laydate
=
layui
.
laydate
,
textool
=
layui
.
textool
;
var
rowNum
=
1
;
//表格的序号
var
usetableTemplate
=
$
(
"
#usetableTemplate
"
).
html
();
var
selOption
=
getFileContent
(
'
tpl/template/select-option.tpl
'
);
//已经选择的商品集合key:表格的行trId,value:商品信息
//
已经选择的商品集合key:表格的行trId,value:商品信息
var
allChooseProduct
=
{};
// 单据时间
...
...
@@ -26,40 +24,40 @@ layui.config({
// 初始化仓库
erpOrderUtil
.
getDepotList
(
function
(
json
){
// 加载仓库数据
$
(
"
#depotId
"
).
html
(
getDataUseHandlebars
(
selOption
,
json
));
// 初始化一行数据
addRow
();
});
matchingLanguage
();
//商品规格加载变化事件
form
.
on
(
'
select(selectUnitProperty)
'
,
function
(
data
)
{
var
thisRowValue
=
data
.
value
;
var
thisRowNum
=
data
.
elem
.
id
.
replace
(
"
unitId
"
,
""
);
//获取当前行
//当前当前行选中的商品信息
if
(
!
isNull
(
thisRowValue
)
&&
thisRowValue
!=
'
请选择
'
)
{
var
product
=
allChooseProduct
[
"
tr
"
+
thisRowNum
.
toString
()];
$
.
each
(
product
.
unitList
,
function
(
j
,
bean
)
{
if
(
thisRowValue
==
bean
.
id
){
//获取规格
//获取当前行数量
var
rkNum
=
parseInt
(
$
(
"
#rkNum
"
+
thisRowNum
).
val
());
$
(
"
#unitPrice
"
+
thisRowNum
).
val
(
bean
.
salePrice
.
toFixed
(
2
));
//单价
$
(
"
#amountOfMoney
"
+
thisRowNum
).
val
((
rkNum
*
parseFloat
(
bean
.
salePrice
)).
toFixed
(
2
));
//金额
return
false
;
}
});
}
else
{
$
(
"
#unitPrice
"
+
thisRowNum
).
val
(
"
0.00
"
);
//重置单价为空
$
(
"
#amountOfMoney
"
+
thisRowNum
).
val
(
"
0.00
"
);
//重置金额为空
}
//加载库存
loadTockByDepotAndMUnit
(
thisRowNum
,
$
(
"
#depotId
"
).
val
());
//计算价格
calculatedTotalPrice
();
// 商品
initTableChooseUtil
.
initTable
({
id
:
"
productList
"
,
cols
:
[
{
id
:
'
materialType
'
,
title
:
'
商品类型
'
,
formType
:
'
select
'
,
width
:
'
120
'
,
verify
:
'
required
'
,
modelHtml
:
'
<option value="1">组合件</option><option value="2">普通子件</option>
'
},
{
id
:
'
materialId
'
,
title
:
'
商品(型号)
'
,
formType
:
'
chooseInput
'
,
width
:
'
150
'
,
iconClassName
:
'
chooseProductBtn
'
,
verify
:
'
required
'
},
{
id
:
'
mUnitId
'
,
title
:
'
单位
'
,
formType
:
'
select
'
,
width
:
'
50
'
,
verify
:
'
required
'
,
layFilter
:
'
selectUnitProperty
'
},
{
id
:
'
currentTock
'
,
title
:
'
库存
'
,
formType
:
'
detail
'
,
width
:
'
80
'
},
{
id
:
'
rkNum
'
,
title
:
'
数量
'
,
formType
:
'
input
'
,
width
:
'
80
'
,
className
:
'
change-input rkNum
'
,
verify
:
'
required|number
'
,
value
:
'
1
'
},
{
id
:
'
unitPrice
'
,
title
:
'
单价
'
,
formType
:
'
input
'
,
width
:
'
80
'
,
className
:
'
change-input unitPrice
'
,
verify
:
'
required|money
'
},
{
id
:
'
amountOfMoney
'
,
title
:
'
金额
'
,
formType
:
'
input
'
,
width
:
'
80
'
,
className
:
'
change-input amountOfMoney
'
,
verify
:
'
required|money
'
},
{
id
:
'
remark
'
,
title
:
'
备注
'
,
formType
:
'
input
'
,
width
:
'
100
'
}
],
deleteRowCallback
:
function
(
trcusid
)
{
delete
allChooseProduct
[
trcusid
];
// 计算价格
calculatedTotalPrice
();
},
addRowCallback
:
function
(
trcusid
)
{
// 设置根据某列变化的颜色
$
(
"
.
"
+
showTdByEdit
).
parent
().
css
({
'
background-color
'
:
'
#e6e6e6
'
});
},
form
:
form
,
minData
:
1
});
matchingLanguage
();
// 商品规格加载变化事件
mUnitChangeEvent
(
form
,
allChooseProduct
,
"
estimatePurchasePrice
"
,
calculatedTotalPrice
);
// 仓库变化事件
form
.
on
(
'
select(depotId)
'
,
function
(
data
)
{
loadMaterialDepotStockByDepotId
(
data
.
value
);
...
...
@@ -83,101 +81,90 @@ layui.config({
}
calculatedTotalPrice
();
});
//计算总价
function
calculatedTotalPrice
(){
var
rowTr
=
$
(
"
#useTable tr
"
);
// 计算总价
function
calculatedTotalPrice
()
{
var
allPrice
=
0
;
$
.
each
(
rowTr
,
function
(
i
,
item
)
{
//获取行坐标
var
rowNum
=
$
(
item
).
attr
(
"
trcusid
"
).
replace
(
"
tr
"
,
""
)
;
//获取数量
var
rkNum
=
parseInt
(
isNull
(
$
(
"
#rkNum
"
+
rowNum
).
val
())
?
"
0
"
:
$
(
"
#rkNum
"
+
rowNum
).
val
());
//获取单价
var
unitPrice
=
parseFloat
(
isNull
(
$
(
"
#unitPrice
"
+
rowNum
).
val
())
?
"
0
"
:
$
(
"
#unitPrice
"
+
rowNum
).
val
());
//获取单价
var
amountOfMoney
=
parseFloat
(
isNull
(
$
(
"
#amountOfMoney
"
+
rowNum
).
val
())
?
"
0
"
:
$
(
"
#amountOfMoney
"
+
rowNum
).
val
());
if
(
"
rkNum
"
===
showTdByEdit
)
{
//数量
//输出金额
$
(
"
#amountOfMoney
"
+
rowNum
).
val
((
rkNum
*
unitPrice
).
toFixed
(
2
));
}
else
if
(
"
unitPrice
"
===
showTdByEdit
)
{
//单价
//输出金额
$
(
"
#amountOfMoney
"
+
rowNum
).
val
((
rkNum
*
unitPrice
).
toFixed
(
2
));
}
else
if
(
"
amountOfMoney
"
===
showTdByEdit
)
{
//金额
//输出单价
$
(
"
#unitPrice
"
+
rowNum
).
val
((
amountOfMoney
/
rkNum
).
toFixed
(
2
));
$
.
each
(
initTableChooseUtil
.
getDataRowIndex
(
'
productList
'
),
function
(
i
,
item
)
{
//
获取行坐标
var
thisRowKey
=
item
;
//
获取数量
var
rkNum
=
parseInt
(
isNull
(
$
(
"
#rkNum
"
+
thisRowKey
).
val
())
?
"
0
"
:
$
(
"
#rkNum
"
+
thisRowKey
).
val
());
//
获取单价
var
unitPrice
=
parseFloat
(
isNull
(
$
(
"
#unitPrice
"
+
thisRowKey
).
val
())
?
"
0
"
:
$
(
"
#unitPrice
"
+
thisRowKey
).
val
());
//
获取单价
var
amountOfMoney
=
parseFloat
(
isNull
(
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
())
?
"
0
"
:
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
());
if
(
"
rkNum
"
===
showTdByEdit
)
{
//数量
//
输出金额
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
((
rkNum
*
unitPrice
).
toFixed
(
2
));
}
else
if
(
"
unitPrice
"
===
showTdByEdit
)
{
//单价
//
输出金额
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
((
rkNum
*
unitPrice
).
toFixed
(
2
));
}
else
if
(
"
amountOfMoney
"
===
showTdByEdit
)
{
//金额
//
输出单价
$
(
"
#unitPrice
"
+
thisRowKey
).
val
((
amountOfMoney
/
rkNum
).
toFixed
(
2
));
}
allPrice
+=
parseFloat
(
$
(
"
#amountOfMoney
"
+
rowNum
).
val
());
allPrice
+=
parseFloat
(
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
());
});
$
(
"
#allPrice
"
).
html
(
allPrice
.
toFixed
(
2
));
}
form
.
on
(
'
submit(formAddBean)
'
,
function
(
data
)
{
if
(
winui
.
verifyForm
(
data
.
elem
))
{
//获取已选商品数据
var
rowTr
=
$
(
"
#useTable tr
"
);
if
(
rowTr
.
length
==
0
)
{
winui
.
window
.
msg
(
'
请选择商品.
'
,
{
icon
:
2
,
time
:
2000
});
var
result
=
initTableChooseUtil
.
getDataList
(
'
productList
'
);
if
(
!
result
.
checkResult
)
{
return
false
;
}
var
tableData
=
new
Array
();
var
noError
=
false
;
//循环遍历表格数据时,是否有其他错误信息
var
noError
=
false
;
var
hasAssembly
=
false
;
//判断是否有组合件
var
hasSplit
=
false
;
//判断是否有普通子件
$
.
each
(
rowTr
,
function
(
i
,
item
)
{
var
tableData
=
[];
$
.
each
(
result
.
dataList
,
function
(
i
,
item
)
{
//获取行编号
var
rowNum
=
$
(
item
).
attr
(
"
trcusid
"
).
replace
(
"
tr
"
,
""
);
//表格数量对象
var
rkNum
=
$
(
"
#rkNum
"
+
rowNum
);
//商品类型
var
materialTypeId
=
$
(
"
#materialTypeId
"
+
rowNum
).
val
();
if
(
parseInt
(
rkNum
.
val
())
==
0
)
{
rkNum
.
addClass
(
"
layui-form-danger
"
);
rkNum
.
focus
();
var
thisRowKey
=
item
[
"
trcusid
"
].
replace
(
"
tr
"
,
""
);
if
(
parseInt
(
item
.
rkNum
)
==
0
)
{
$
(
"
#rkNum
"
+
thisRowKey
).
addClass
(
"
layui-form-danger
"
);
$
(
"
#rkNum
"
+
thisRowKey
).
focus
();
winui
.
window
.
msg
(
'
数量不能为0
'
,
{
icon
:
2
,
time
:
2000
});
noError
=
true
;
return
false
;
}
if
(
materialTypeId
===
"
1
"
){
if
(
!
hasAssembly
){
//当前没有组合件
// 商品类型
var
materialType
=
item
.
materialType
;
if
(
materialType
===
"
1
"
)
{
if
(
!
hasAssembly
)
{
// 当前没有组合件
hasAssembly
=
true
;
}
else
{
$
(
"
#materialType
Id
"
+
rowNum
).
addClass
(
"
layui-form-danger
"
);
$
(
"
#materialType
Id
"
+
rowNum
).
focus
();
$
(
"
#materialType
"
+
thisRowKey
).
addClass
(
"
layui-form-danger
"
);
$
(
"
#materialType
"
+
thisRowKey
).
focus
();
winui
.
window
.
msg
(
'
拆分单中只能存在一个组合件.
'
,
{
icon
:
2
,
time
:
2000
});
noError
=
true
;
return
false
;
}
}
else
if
(
materialTypeId
===
"
2
"
)
{
}
else
if
(
materialType
===
"
2
"
)
{
hasSplit
=
true
;
}
//商品对象
var
product
=
allChooseProduct
[
"
tr
"
+
rowNum
.
toString
()
];
if
(
inTableDataArrayByAssetarId
(
product
.
productId
,
$
(
"
#unitId
"
+
rowNum
).
val
()
,
tableData
))
{
var
product
=
allChooseProduct
[
"
tr
"
+
thisRowKey
];
if
(
inTableDataArrayByAssetarId
(
product
.
productId
,
item
.
mUnitId
,
tableData
))
{
winui
.
window
.
msg
(
'
一张单中不允许出现相同单位的商品信息.
'
,
{
icon
:
2
,
time
:
2000
});
noError
=
true
;
return
false
;
}
var
row
=
{
depotId
:
$
(
"
#depotId
"
).
val
(),
materialId
:
$
(
"
#materialId
"
+
rowNum
).
val
(),
mUnitId
:
$
(
"
#unitId
"
+
rowNum
).
val
(),
rkNum
:
rkNum
.
val
(),
unitPrice
:
$
(
"
#unitPrice
"
+
rowNum
).
val
(),
materialType
:
materialTypeId
,
remark
:
$
(
"
#remark
"
+
rowNum
).
val
()
};
tableData
.
push
(
row
);
item
[
"
materialId
"
]
=
product
.
productId
;
item
[
"
depotId
"
]
=
$
(
"
#depotId
"
).
val
();
tableData
.
push
(
item
);
});
if
(
noError
)
{
if
(
noError
)
{
return
false
;
}
if
(
!
hasAssembly
){
if
(
!
hasAssembly
)
{
winui
.
window
.
msg
(
'
请选择组合件.
'
,
{
icon
:
2
,
time
:
2000
});
return
false
;
}
if
(
!
hasSplit
)
{
if
(
!
hasSplit
)
{
winui
.
window
.
msg
(
'
请选择普通子件.
'
,
{
icon
:
2
,
time
:
2000
});
return
false
;
}
...
...
@@ -194,85 +181,12 @@ layui.config({
}
return
false
;
});
//判断选中的商品是否也在数组中
function
inTableDataArrayByAssetarId
(
materialId
,
unitId
,
array
)
{
var
isIn
=
false
;
$
.
each
(
array
,
function
(
i
,
item
)
{
if
(
item
.
mUnitId
===
unitId
&&
item
.
materialId
===
materialId
)
{
isIn
=
true
;
return
false
;
}
});
return
isIn
;
}
//新增行
$
(
"
body
"
).
on
(
"
click
"
,
"
#addRow
"
,
function
()
{
addRow
();
});
//删除行
$
(
"
body
"
).
on
(
"
click
"
,
"
#deleteRow
"
,
function
()
{
deleteRow
();
//计算价格
calculatedTotalPrice
();
});
//新增行
function
addRow
()
{
var
par
=
{
id
:
"
row
"
+
rowNum
.
toString
(),
//checkbox的id
trId
:
"
tr
"
+
rowNum
.
toString
(),
//行的id
materialTypeId
:
"
materialTypeId
"
+
rowNum
.
toString
(),
//商品类型的id
materialId
:
"
materialId
"
+
rowNum
.
toString
(),
//商品id
unitId
:
"
unitId
"
+
rowNum
.
toString
(),
//规格id
currentTock
:
"
currentTock
"
+
rowNum
.
toString
(),
//库存id
rkNum
:
"
rkNum
"
+
rowNum
.
toString
(),
//数量id
unitPrice
:
"
unitPrice
"
+
rowNum
.
toString
(),
//单价id
amountOfMoney
:
"
amountOfMoney
"
+
rowNum
.
toString
(),
//金额id
remark
:
"
remark
"
+
rowNum
.
toString
()
//备注id
};
$
(
"
#useTable
"
).
append
(
getDataUseHandlebars
(
usetableTemplate
,
par
));
form
.
render
();
rowNum
++
;
//设置根据某列变化的颜色
$
(
"
.
"
+
showTdByEdit
).
parent
().
css
({
'
background-color
'
:
'
#e6e6e6
'
});
}
//删除行
function
deleteRow
()
{
var
checkRow
=
$
(
"
#useTable input[type='checkbox'][name='tableCheckRow']:checked
"
);
if
(
checkRow
.
length
>
0
)
{
$
.
each
(
checkRow
,
function
(
i
,
item
)
{
//删除allChooseProduct已选择的商品信息
var
trId
=
$
(
item
).
parent
().
parent
().
attr
(
"
trcusid
"
);
allChooseProduct
[
trId
]
=
undefined
;
//移除界面上的信息
$
(
item
).
parent
().
parent
().
remove
();
});
}
else
{
winui
.
window
.
msg
(
'
请选择要删除的行
'
,
{
icon
:
2
,
time
:
2000
});
}
}
//商品选择
$
(
"
body
"
).
on
(
"
click
"
,
"
.chooseProductBtn
"
,
function
(
e
)
{
var
trId
=
$
(
this
).
parent
().
parent
().
attr
(
"
trcusid
"
);
erpOrderUtil
.
openMaterialChooseChoosePage
(
function
(
chooseProductMation
)
{
//获取表格行号
var
thisRowNum
=
trId
.
replace
(
"
tr
"
,
""
);
//商品赋值
allChooseProduct
[
trId
]
=
chooseProductMation
;
//表格商品名称赋值
$
(
"
#materialId
"
+
thisRowNum
.
toString
()).
val
(
allChooseProduct
[
trId
].
productName
+
"
(
"
+
allChooseProduct
[
trId
].
productModel
+
"
)
"
);
//表格单位赋值
$
(
"
#unitId
"
+
thisRowNum
.
toString
()).
html
(
getDataUseHandlebars
(
selOption
,
{
rows
:
allChooseProduct
[
trId
].
unitList
}));
form
.
render
(
'
select
'
);
//计算价格
calculatedTotalPrice
();
});
});
// 加载商品选择事件
initChooseProductBtnEnent
(
form
,
function
(
trId
,
chooseProductMation
)
{
// 商品赋值
allChooseProduct
[
trId
]
=
chooseProductMation
;
},
calculatedTotalPrice
);
$
(
"
body
"
).
on
(
"
click
"
,
"
#cancle
"
,
function
()
{
parent
.
layer
.
close
(
index
);
...
...
erp/src/main/resources/template/js/splitlist/splitlistedit.js
浏览文件 @
8d86ee04
...
...
@@ -12,15 +12,13 @@ layui.config({
var
$
=
layui
.
$
,
laydate
=
layui
.
laydate
,
textool
=
layui
.
textool
;
var
rowNum
=
1
;
//表格的序号
var
usetableTemplate
=
$
(
"
#usetableTemplate
"
).
html
();
var
beanTemplate
=
$
(
"
#beanTemplate
"
).
html
();
var
selOption
=
getFileContent
(
'
tpl/template/select-option.tpl
'
);
//已经选择的商品集合key:表格的行trId,value:商品信息
//
已经选择的商品集合key:表格的行trId,value:商品信息
var
allChooseProduct
=
{};
//加载单据数据
//
加载单据数据
var
orderObject
=
[];
showGrid
({
id
:
"
showForm
"
,
...
...
@@ -38,71 +36,81 @@ layui.config({
// 初始化仓库
function
initDepotHtml
()
{
erpOrderUtil
.
getDepotList
(
function
(
json
){
// 加载仓库数据
erpOrderUtil
.
getDepotList
(
function
(
json
)
{
$
(
"
#depotId
"
).
html
(
getDataUseHandlebars
(
selOption
,
json
));
// 渲染数据到页面
initDataToShow
();
});
// 渲染数据到页面
initDataToShow
();
}
//渲染数据到页面
function
initDataToShow
(){
//渲染列表项
$
.
each
(
orderObject
.
bean
.
items
,
function
(
i
,
item
){
addRow
();
if
(
i
==
0
){
// 渲染数据到页面
function
initDataToShow
()
{
initTable
();
// 回显商品列表
initTableChooseUtil
.
deleteAllRow
(
'
productList
'
);
$
.
each
(
orderObject
.
bean
.
items
,
function
(
i
,
item
)
{
if
(
i
==
0
)
{
$
(
"
#depotId
"
).
val
(
item
.
depotId
);
}
//将规格所属的商品信息加入到对象中存储
allChooseProduct
[
"
tr
"
+
(
rowNum
-
1
)]
=
item
.
product
;
//单位回显
$
(
"
#unitId
"
+
(
rowNum
-
1
)).
html
(
getDataUseHandlebars
(
selOption
,
{
rows
:
item
.
product
.
unitList
}));
$
(
"
#unitId
"
+
(
rowNum
-
1
)).
val
(
item
.
mUnitId
);
$
(
"
#materialTypeId
"
+
(
rowNum
-
1
)).
val
(
item
.
mType
);
//商品类型回显
//商品回显
$
(
"
#materialId
"
+
(
rowNum
-
1
)).
val
(
item
.
product
.
productName
+
"
(
"
+
item
.
product
.
productModel
+
"
)
"
);
$
(
"
#currentTock
"
+
(
rowNum
-
1
)).
html
(
item
.
currentTock
);
//库存回显
$
(
"
#rkNum
"
+
(
rowNum
-
1
)).
val
(
item
.
operNum
);
//数量回显
$
(
"
#unitPrice
"
+
(
rowNum
-
1
)).
val
(
item
.
unitPrice
.
toFixed
(
2
));
//单价回显
$
(
"
#amountOfMoney
"
+
(
rowNum
-
1
)).
val
(
item
.
allPrice
.
toFixed
(
2
));
//金额回显
$
(
"
#remark
"
+
(
rowNum
-
1
)).
val
(
item
.
remark
);
//备注回显
//设置标识
$
(
"
tr[trcusid='tr
"
+
(
rowNum
-
1
)
+
"
']
"
).
attr
(
"
thisid
"
,
item
.
id
);
var
params
=
{
"
materialType
"
:
{
"
value
"
:
item
.
mType
},
"
materialId
"
:
item
.
product
.
productName
+
"
(
"
+
item
.
product
.
productModel
+
"
)
"
,
"
mUnitId
"
:
{
"
html
"
:
getDataUseHandlebars
(
selOption
,
{
rows
:
item
.
product
.
unitList
}),
"
value
"
:
item
.
mUnitId
},
"
currentTock
"
:
item
.
currentTock
,
"
rkNum
"
:
item
.
operNum
,
"
unitPrice
"
:
item
.
unitPrice
.
toFixed
(
2
),
"
amountOfMoney
"
:
item
.
allPrice
.
toFixed
(
2
),
"
remark
"
:
item
.
remark
};
var
trcusid
=
initTableChooseUtil
.
resetData
(
'
productList
'
,
params
);
// 将规格所属的商品信息加入到对象中存储
allChooseProduct
[
trcusid
]
=
item
.
product
;
});
textool
.
init
({
eleId
:
'
remark
'
,
maxlength
:
200
});
matchingLanguage
();
form
.
render
();
}
//商品规格加载变化事件
form
.
on
(
'
select(selectUnitProperty)
'
,
function
(
data
)
{
var
thisRowValue
=
data
.
value
;
var
thisRowNum
=
data
.
elem
.
id
.
replace
(
"
unitId
"
,
""
);
//获取当前行
//当前当前行选中的商品信息
if
(
!
isNull
(
thisRowValue
)
&&
thisRowValue
!=
'
请选择
'
)
{
var
product
=
allChooseProduct
[
"
tr
"
+
thisRowNum
.
toString
()];
$
.
each
(
product
.
unitList
,
function
(
j
,
bean
)
{
if
(
thisRowValue
==
bean
.
id
){
//获取规格
//获取当前行数量
var
rkNum
=
parseInt
(
$
(
"
#rkNum
"
+
thisRowNum
).
val
());
$
(
"
#unitPrice
"
+
thisRowNum
).
val
(
bean
.
salePrice
.
toFixed
(
2
));
//单价
$
(
"
#amountOfMoney
"
+
thisRowNum
).
val
((
rkNum
*
parseFloat
(
bean
.
salePrice
)).
toFixed
(
2
));
//金额
return
false
;
}
});
}
else
{
$
(
"
#unitPrice
"
+
thisRowNum
).
val
(
"
0.00
"
);
//重置单价为空
$
(
"
#amountOfMoney
"
+
thisRowNum
).
val
(
"
0.00
"
);
//重置金额为空
}
//加载库存
loadTockByDepotAndMUnit
(
thisRowNum
,
$
(
"
#depotId
"
).
val
());
//计算价格
calculatedTotalPrice
();
});
function
initTable
()
{
// 商品
initTableChooseUtil
.
initTable
({
id
:
"
productList
"
,
cols
:
[
{
id
:
'
materialType
'
,
title
:
'
商品类型
'
,
formType
:
'
select
'
,
width
:
'
120
'
,
verify
:
'
required
'
,
modelHtml
:
'
<option value="1">组合件</option><option value="2">普通子件</option>
'
},
{
id
:
'
materialId
'
,
title
:
'
商品(型号)
'
,
formType
:
'
chooseInput
'
,
width
:
'
150
'
,
iconClassName
:
'
chooseProductBtn
'
,
verify
:
'
required
'
},
{
id
:
'
mUnitId
'
,
title
:
'
单位
'
,
formType
:
'
select
'
,
width
:
'
50
'
,
verify
:
'
required
'
,
layFilter
:
'
selectUnitProperty
'
},
{
id
:
'
currentTock
'
,
title
:
'
库存
'
,
formType
:
'
detail
'
,
width
:
'
80
'
},
{
id
:
'
rkNum
'
,
title
:
'
数量
'
,
formType
:
'
input
'
,
width
:
'
80
'
,
className
:
'
change-input rkNum
'
,
verify
:
'
required|number
'
,
value
:
'
1
'
},
{
id
:
'
unitPrice
'
,
title
:
'
单价
'
,
formType
:
'
input
'
,
width
:
'
80
'
,
className
:
'
change-input unitPrice
'
,
verify
:
'
required|money
'
},
{
id
:
'
amountOfMoney
'
,
title
:
'
金额
'
,
formType
:
'
input
'
,
width
:
'
80
'
,
className
:
'
change-input amountOfMoney
'
,
verify
:
'
required|money
'
},
{
id
:
'
remark
'
,
title
:
'
备注
'
,
formType
:
'
input
'
,
width
:
'
100
'
}
],
deleteRowCallback
:
function
(
trcusid
)
{
delete
allChooseProduct
[
trcusid
];
// 计算价格
calculatedTotalPrice
();
},
addRowCallback
:
function
(
trcusid
)
{
// 设置根据某列变化的颜色
$
(
"
.
"
+
showTdByEdit
).
parent
().
css
({
'
background-color
'
:
'
#e6e6e6
'
});
calculatedTotalPrice
();
},
form
:
form
,
minData
:
1
});
}
// 商品规格加载变化事件
mUnitChangeEvent
(
form
,
allChooseProduct
,
"
estimatePurchasePrice
"
,
calculatedTotalPrice
);
// 仓库变化事件
form
.
on
(
'
select(depotId)
'
,
function
(
data
)
{
...
...
@@ -127,103 +135,90 @@ layui.config({
}
calculatedTotalPrice
();
});
//计算总价
function
calculatedTotalPrice
(){
var
rowTr
=
$
(
"
#useTable tr
"
);
// 计算总价
function
calculatedTotalPrice
()
{
var
allPrice
=
0
;
$
.
each
(
rowTr
,
function
(
i
,
item
)
{
//获取行坐标
var
rowNum
=
$
(
item
).
attr
(
"
trcusid
"
).
replace
(
"
tr
"
,
""
)
;
//获取数量
var
rkNum
=
parseInt
(
isNull
(
$
(
"
#rkNum
"
+
rowNum
).
val
())
?
"
0
"
:
$
(
"
#rkNum
"
+
rowNum
).
val
());
//获取单价
var
unitPrice
=
parseFloat
(
isNull
(
$
(
"
#unitPrice
"
+
rowNum
).
val
())
?
"
0
"
:
$
(
"
#unitPrice
"
+
rowNum
).
val
());
//获取单价
var
amountOfMoney
=
parseFloat
(
isNull
(
$
(
"
#amountOfMoney
"
+
rowNum
).
val
())
?
"
0
"
:
$
(
"
#amountOfMoney
"
+
rowNum
).
val
());
if
(
"
rkNum
"
===
showTdByEdit
)
{
//数量
//输出金额
$
(
"
#amountOfMoney
"
+
rowNum
).
val
((
rkNum
*
unitPrice
).
toFixed
(
2
));
}
else
if
(
"
unitPrice
"
===
showTdByEdit
)
{
//单价
//输出金额
$
(
"
#amountOfMoney
"
+
rowNum
).
val
((
rkNum
*
unitPrice
).
toFixed
(
2
));
}
else
if
(
"
amountOfMoney
"
===
showTdByEdit
)
{
//金额
//输出单价
$
(
"
#unitPrice
"
+
rowNum
).
val
((
amountOfMoney
/
rkNum
).
toFixed
(
2
));
$
.
each
(
initTableChooseUtil
.
getDataRowIndex
(
'
productList
'
),
function
(
i
,
item
)
{
//
获取行坐标
var
thisRowKey
=
item
;
//
获取数量
var
rkNum
=
parseInt
(
isNull
(
$
(
"
#rkNum
"
+
thisRowKey
).
val
())
?
"
0
"
:
$
(
"
#rkNum
"
+
thisRowKey
).
val
());
//
获取单价
var
unitPrice
=
parseFloat
(
isNull
(
$
(
"
#unitPrice
"
+
thisRowKey
).
val
())
?
"
0
"
:
$
(
"
#unitPrice
"
+
thisRowKey
).
val
());
//
获取单价
var
amountOfMoney
=
parseFloat
(
isNull
(
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
())
?
"
0
"
:
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
());
if
(
"
rkNum
"
===
showTdByEdit
)
{
//数量
//
输出金额
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
((
rkNum
*
unitPrice
).
toFixed
(
2
));
}
else
if
(
"
unitPrice
"
===
showTdByEdit
)
{
//单价
//
输出金额
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
((
rkNum
*
unitPrice
).
toFixed
(
2
));
}
else
if
(
"
amountOfMoney
"
===
showTdByEdit
)
{
//金额
//
输出单价
$
(
"
#unitPrice
"
+
thisRowKey
).
val
((
amountOfMoney
/
rkNum
).
toFixed
(
2
));
}
allPrice
+=
parseFloat
(
$
(
"
#amountOfMoney
"
+
rowNum
).
val
());
allPrice
+=
parseFloat
(
$
(
"
#amountOfMoney
"
+
thisRowKey
).
val
());
});
$
(
"
#allPrice
"
).
html
(
allPrice
.
toFixed
(
2
));
}
form
.
on
(
'
submit(formEditBean)
'
,
function
(
data
)
{
if
(
winui
.
verifyForm
(
data
.
elem
))
{
//获取已选商品数据
var
rowTr
=
$
(
"
#useTable tr
"
);
if
(
rowTr
.
length
==
0
)
{
winui
.
window
.
msg
(
'
请选择商品.
'
,
{
icon
:
2
,
time
:
2000
});
var
result
=
initTableChooseUtil
.
getDataList
(
'
productList
'
);
if
(
!
result
.
checkResult
)
{
return
false
;
}
var
tableData
=
new
Array
();
var
noError
=
false
;
//循环遍历表格数据时,是否有其他错误信息
var
noError
=
false
;
var
hasAssembly
=
false
;
//判断是否有组合件
var
hasSplit
=
false
;
//判断是否有普通子件
$
.
each
(
rowTr
,
function
(
i
,
item
)
{
var
tableData
=
[];
$
.
each
(
result
.
dataList
,
function
(
i
,
item
)
{
//获取行编号
var
rowNum
=
$
(
item
).
attr
(
"
trcusid
"
).
replace
(
"
tr
"
,
""
);
//表格数量对象
var
rkNum
=
$
(
"
#rkNum
"
+
rowNum
);
//商品类型
var
materialTypeId
=
$
(
"
#materialTypeId
"
+
rowNum
).
val
();
if
(
parseInt
(
rkNum
.
val
())
==
0
)
{
rkNum
.
addClass
(
"
layui-form-danger
"
);
rkNum
.
focus
();
var
thisRowKey
=
item
[
"
trcusid
"
].
replace
(
"
tr
"
,
""
);
if
(
parseInt
(
item
.
rkNum
)
==
0
)
{
$
(
"
#rkNum
"
+
thisRowKey
).
addClass
(
"
layui-form-danger
"
);
$
(
"
#rkNum
"
+
thisRowKey
).
focus
();
winui
.
window
.
msg
(
'
数量不能为0
'
,
{
icon
:
2
,
time
:
2000
});
noError
=
true
;
return
false
;
}
if
(
materialTypeId
===
"
1
"
){
if
(
!
hasAssembly
){
//当前没有组合件
// 商品类型
var
materialType
=
item
.
materialType
;
if
(
materialType
===
"
1
"
)
{
if
(
!
hasAssembly
)
{
// 当前没有组合件
hasAssembly
=
true
;
}
else
{
$
(
"
#materialType
Id
"
+
rowNum
).
addClass
(
"
layui-form-danger
"
);
$
(
"
#materialType
Id
"
+
rowNum
).
focus
();
$
(
"
#materialType
"
+
thisRowKey
).
addClass
(
"
layui-form-danger
"
);
$
(
"
#materialType
"
+
thisRowKey
).
focus
();
winui
.
window
.
msg
(
'
拆分单中只能存在一个组合件.
'
,
{
icon
:
2
,
time
:
2000
});
noError
=
true
;
return
false
;
}
}
else
if
(
materialTypeId
===
"
2
"
)
{
}
else
if
(
materialType
===
"
2
"
)
{
hasSplit
=
true
;
}
//商品对象
var
product
=
allChooseProduct
[
"
tr
"
+
rowNum
.
toString
()
];
if
(
inTableDataArrayByAssetarId
(
product
.
productId
,
$
(
"
#unitId
"
+
rowNum
).
val
()
,
tableData
))
{
var
product
=
allChooseProduct
[
"
tr
"
+
thisRowKey
];
if
(
inTableDataArrayByAssetarId
(
product
.
productId
,
item
.
mUnitId
,
tableData
))
{
winui
.
window
.
msg
(
'
一张单中不允许出现相同单位的商品信息.
'
,
{
icon
:
2
,
time
:
2000
});
noError
=
true
;
return
false
;
}
var
row
=
{
depotId
:
$
(
"
#depotId
"
).
val
(),
materialId
:
$
(
"
#materialId
"
+
rowNum
).
val
(),
mUnitId
:
$
(
"
#unitId
"
+
rowNum
).
val
(),
rkNum
:
rkNum
.
val
(),
unitPrice
:
$
(
"
#unitPrice
"
+
rowNum
).
val
(),
materialType
:
materialTypeId
,
thisId
:
isNull
(
$
(
item
).
attr
(
"
thisid
"
))
?
""
:
$
(
item
).
attr
(
"
thisid
"
),
remark
:
$
(
"
#remark
"
+
rowNum
).
val
()
};
tableData
.
push
(
row
);
item
[
"
materialId
"
]
=
product
.
productId
;
item
[
"
depotId
"
]
=
$
(
"
#depotId
"
).
val
();
tableData
.
push
(
item
);
});
if
(
noError
)
{
if
(
noError
)
{
return
false
;
}
if
(
!
hasAssembly
){
if
(
!
hasAssembly
)
{
winui
.
window
.
msg
(
'
请选择组合件.
'
,
{
icon
:
2
,
time
:
2000
});
return
false
;
}
if
(
!
hasSplit
)
{
if
(
!
hasSplit
)
{
winui
.
window
.
msg
(
'
请选择普通子件.
'
,
{
icon
:
2
,
time
:
2000
});
return
false
;
}
...
...
@@ -241,85 +236,12 @@ layui.config({
}
return
false
;
});
//判断选中的商品是否也在数组中
function
inTableDataArrayByAssetarId
(
materialId
,
unitId
,
array
)
{
var
isIn
=
false
;
$
.
each
(
array
,
function
(
i
,
item
)
{
if
(
item
.
mUnitId
===
unitId
&&
item
.
materialId
===
materialId
)
{
isIn
=
true
;
return
false
;
}
});
return
isIn
;
}
//新增行
$
(
"
body
"
).
on
(
"
click
"
,
"
#addRow
"
,
function
()
{
addRow
();
});
//删除行
$
(
"
body
"
).
on
(
"
click
"
,
"
#deleteRow
"
,
function
()
{
deleteRow
();
//计算价格
calculatedTotalPrice
();
});
//新增行
function
addRow
()
{
var
par
=
{
id
:
"
row
"
+
rowNum
.
toString
(),
//checkbox的id
trId
:
"
tr
"
+
rowNum
.
toString
(),
//行的id
materialTypeId
:
"
materialTypeId
"
+
rowNum
.
toString
(),
//商品类型的id
materialId
:
"
materialId
"
+
rowNum
.
toString
(),
//商品id
unitId
:
"
unitId
"
+
rowNum
.
toString
(),
//规格id
currentTock
:
"
currentTock
"
+
rowNum
.
toString
(),
//库存id
rkNum
:
"
rkNum
"
+
rowNum
.
toString
(),
//数量id
unitPrice
:
"
unitPrice
"
+
rowNum
.
toString
(),
//单价id
amountOfMoney
:
"
amountOfMoney
"
+
rowNum
.
toString
(),
//金额id
remark
:
"
remark
"
+
rowNum
.
toString
()
//备注id
};
$
(
"
#useTable
"
).
append
(
getDataUseHandlebars
(
usetableTemplate
,
par
));
form
.
render
();
rowNum
++
;
//设置根据某列变化的颜色
$
(
"
.
"
+
showTdByEdit
).
parent
().
css
({
'
background-color
'
:
'
#e6e6e6
'
});
}
//删除行
function
deleteRow
()
{
var
checkRow
=
$
(
"
#useTable input[type='checkbox'][name='tableCheckRow']:checked
"
);
if
(
checkRow
.
length
>
0
)
{
$
.
each
(
checkRow
,
function
(
i
,
item
)
{
//删除allChooseProduct已选择的商品信息
var
trId
=
$
(
item
).
parent
().
parent
().
attr
(
"
trcusid
"
);
allChooseProduct
[
trId
]
=
undefined
;
//移除界面上的信息
$
(
item
).
parent
().
parent
().
remove
();
});
}
else
{
winui
.
window
.
msg
(
'
请选择要删除的行
'
,
{
icon
:
2
,
time
:
2000
});
}
}
//商品选择
$
(
"
body
"
).
on
(
"
click
"
,
"
.chooseProductBtn
"
,
function
(
e
)
{
var
trId
=
$
(
this
).
parent
().
parent
().
attr
(
"
trcusid
"
);
erpOrderUtil
.
openMaterialChooseChoosePage
(
function
(
chooseProductMation
)
{
//获取表格行号
var
thisRowNum
=
trId
.
replace
(
"
tr
"
,
""
);
//商品赋值
allChooseProduct
[
trId
]
=
chooseProductMation
;
//表格商品名称赋值
$
(
"
#materialId
"
+
thisRowNum
.
toString
()).
val
(
allChooseProduct
[
trId
].
productName
+
"
(
"
+
allChooseProduct
[
trId
].
productModel
+
"
)
"
);
//表格单位赋值
$
(
"
#unitId
"
+
thisRowNum
.
toString
()).
html
(
getDataUseHandlebars
(
selOption
,
{
rows
:
allChooseProduct
[
trId
].
unitList
}));
form
.
render
(
'
select
'
);
//计算价格
calculatedTotalPrice
();
});
});
// 加载商品选择事件
initChooseProductBtnEnent
(
form
,
function
(
trId
,
chooseProductMation
)
{
// 商品赋值
allChooseProduct
[
trId
]
=
chooseProductMation
;
},
calculatedTotalPrice
);
$
(
"
body
"
).
on
(
"
click
"
,
"
#cancle
"
,
function
()
{
parent
.
layer
.
close
(
index
);
...
...
erp/src/main/resources/template/tpl/splitlist/splitlistadd.html
浏览文件 @
8d86ee04
...
...
@@ -25,30 +25,8 @@
</div>
<div
class=
"layui-form-item layui-col-xs12"
>
<label
class=
"layui-form-label"
>
列表项
<i
class=
"red"
>
*
</i></label>
<div
class=
"layui-input-block"
>
<div
class=
"winui-toolbar"
>
<div
class=
"winui-tool"
style=
"text-align: left;"
>
<button
id=
"addRow"
class=
"winui-toolbtn"
type=
"button"
><i
class=
"fa fa-plus"
aria-hidden=
"true"
></i>
新增行
</button>
<button
id=
"deleteRow"
class=
"winui-toolbtn"
type=
"button"
><i
class=
"fa fa-trash-o"
aria-hidden=
"true"
></i>
删除行
</button>
</div>
</div>
<table
class=
"layui-table"
>
<thead>
<tr>
<th
style=
"width: 30px;"
></th>
<th
style=
"width: 100px;"
>
商品类型
</th>
<th
style=
"width: 150px;"
>
商品(型号)
</th>
<th
style=
"width: 50px;"
>
单位
</th>
<th
style=
"width: 80px;"
>
库存
</th>
<th
style=
"width: 80px;"
>
数量
</th>
<th
style=
"width: 80px;"
>
单价
</th>
<th
style=
"width: 80px;"
>
金额
</th>
<th
style=
"min-width: 100px;"
>
备注
</th>
</tr>
</thead>
<tbody
id=
"useTable"
class=
"insurance-table"
>
</tbody>
</table>
<div
class=
"layui-input-block"
id=
"productList"
>
</div>
</div>
<div
class=
"layui-form-item layui-col-xs4"
>
...
...
@@ -89,7 +67,7 @@
<
td
><
input
type
=
"
text
"
class
=
"
layui-input
"
id
=
"
{{remark}}
"
/><
/td
>
<
/tr
>
</script>
<script
src=
"../../assets/lib/layui/layui.js"
></script>
<script
src=
"../../assets/lib/layui/custom.js"
></script>
<script
src=
"../../js/erpcommon/loadStock.js"
></script>
...
...
erp/src/main/resources/template/tpl/splitlist/splitlistedit.html
浏览文件 @
8d86ee04
...
...
@@ -13,24 +13,6 @@
</form>
</div>
<!-- usetableTemplate -->
<script
type=
"text/x-handlebars-template"
id=
"usetableTemplate"
>
<
tr
trcusid
=
"
{{trId}}
"
>
<
td
><
input
type
=
"
checkbox
"
rowId
=
"
{{id}}
"
lay
-
filter
=
"
checkboxProperty
"
name
=
"
tableCheckRow
"
/><
/td
>
<
td
><
select
id
=
"
{{materialTypeId}}
"
lay
-
search
win
-
verify
=
"
required
"
><
option
value
=
"
1
"
>
组合件
<
/option><option value="2">普通子件</
option
><
/select></
td
>
<
td
>
<
input
type
=
"
text
"
id
=
"
{{materialId}}
"
name
=
"
{{materialId}}
"
placeholder
=
"
请选择商品
"
class
=
"
layui-input
"
readonly
=
"
readonly
"
/>
<
i
class
=
"
fa fa-plus-circle input-icon chooseProductBtn
"
style
=
"
top: 12px;
"
><
/i
>
<
/td
>
<
td
><
select
id
=
"
{{unitId}}
"
lay
-
filter
=
"
selectUnitProperty
"
lay
-
search
win
-
verify
=
"
required
"
><
/select></
td
>
<
td
id
=
"
{{currentTock}}
"
><
/td
>
<
td
><
input
type
=
"
text
"
class
=
"
layui-input change-input rkNum
"
value
=
"
1
"
id
=
"
{{rkNum}}
"
win
-
verify
=
"
required|number
"
/><
/td
>
<
td
><
input
type
=
"
text
"
class
=
"
layui-input change-input unitPrice
"
id
=
"
{{unitPrice}}
"
win
-
verify
=
"
required|money
"
/><
/td
>
<
td
><
input
type
=
"
text
"
class
=
"
layui-input change-input amountOfMoney
"
id
=
"
{{amountOfMoney}}
"
win
-
verify
=
"
required|money
"
/><
/td
>
<
td
><
input
type
=
"
text
"
class
=
"
layui-input
"
id
=
"
{{remark}}
"
/><
/td
>
<
/tr
>
</script>
<!-- beanTemplate -->
<script
type=
"text/x-handlebars-template"
id=
"beanTemplate"
>
{{
#
bean
}}
...
...
@@ -50,30 +32,8 @@
<
/div
>
<
div
class
=
"
layui-form-item layui-col-xs12
"
>
<
label
class
=
"
layui-form-label
"
>
列表项
<
i
class
=
"
red
"
>*<
/i></
label
>
<
div
class
=
"
layui-input-block
"
>
<
div
class
=
"
winui-toolbar
"
>
<
div
class
=
"
winui-tool
"
style
=
"
text-align: left;
"
>
<
button
id
=
"
addRow
"
class
=
"
winui-toolbtn
"
type
=
"
button
"
><
i
class
=
"
fa fa-plus
"
aria
-
hidden
=
"
true
"
><
/i>新增行</
button
>
<
button
id
=
"
deleteRow
"
class
=
"
winui-toolbtn
"
type
=
"
button
"
><
i
class
=
"
fa fa-trash-o
"
aria
-
hidden
=
"
true
"
><
/i>删除行</
button
>
<
/div
>
<
/div
>
<
table
class
=
"
layui-table
"
>
<
thead
>
<
tr
>
<
th
style
=
"
width: 30px;
"
><
/th
>
<
th
style
=
"
width: 100px;
"
>
商品类型
<
/th
>
<
th
style
=
"
width: 150px;
"
>
商品
(
型号
)
<
/th
>
<
th
style
=
"
width: 50px;
"
>
单位
<
/th
>
<
th
style
=
"
width: 80px;
"
>
库存
<
/th
>
<
th
style
=
"
width: 80px;
"
>
数量
<
/th
>
<
th
style
=
"
width: 80px;
"
>
单价
<
/th
>
<
th
style
=
"
width: 80px;
"
>
金额
<
/th
>
<
th
style
=
"
min-width: 100px;
"
>
备注
<
/th
>
<
/tr
>
<
/thead
>
<
tbody
id
=
"
useTable
"
class
=
"
insurance-table
"
>
<
/tbody
>
<
/table
>
<
div
class
=
"
layui-input-block
"
id
=
"
productList
"
>
<
/div
>
<
/div
>
<
div
class
=
"
layui-form-item layui-col-xs4
"
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录