| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446 |
- <!DOCTYPE html>
- <html>
- <head>
- <title></title>
- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
- <style>
- .modal-overlay {
- display: none;
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.5);
- z-index: 1000;
- }
- .modal-iframe {
- position: fixed;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- width: 500px;
- height: 300px;
- background-color: white;
- border: none;
- border-radius: 5px;
- z-index: 1001;
- }
- .item-container {
- margin: 10px;
- padding: 10px;
- border: 1px solid #ddd;
- border-radius: 4px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- }
- .delete-btn {
- background-color: #ff4444;
- color: white;
- border: none;
- padding: 5px 10px;
- border-radius: 3px;
- cursor: pointer;
- }
- .delete-btn:hover {
- background-color: #cc0000;
- }
- #add-btn {
- margin: 10px;
- padding: 10px 20px;
- background-color: #4CAF50;
- color: white;
- border: none;
- border-radius: 4px;
- cursor: pointer;
- }
- #add-btn:hover {
- background-color: #45a049;
- }
- #items-list {
- margin: 20px;
- }
- </style>
- </head>
- <body>
- <%-- 改,用 <datep@ss 写法。Lin
- <in@put type='text' name='rksj' onClick="wd.edit.datePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" value=""/>
- --%>
- <%-- 去掉,用数据库默认时间。Lin
- <in@put type='text' name='cqsj'/>
- <datep@ss name="cqsj" fmt="yyyy-MM-dd HH:mm:ss"/>
- --%>
- <equal.ss val="${type}" val2="rk">
- <button id="add-btn" onclick='<serv.ss dlg="true" dest="wp_excelRkAdd" parm="{type:"rk"}"/>'>录入入库物品</button>
- <div><span>物品名称|供应商名称|计量单位|数量|单价|金额</span></div>
- </equal.ss>
- <equal.ss val="${type}" val2="pf">
- <input name="bmid" placeholder="领用部门" width="195px"/>
- <input name="ryid" placeholder="领用人员" width="150px"/>
- <ccp.ss name="bm_ry"/>
- <input name="wplylbm" placeholder="领用类别" width="150px"/>
- <objp.ss name="wplylbm" cb="wplylb"/>
- <button id="add-btn" onclick='initPfEdit()'>录入派发物品</button>
- <div><span>物品名称|库存数量|计量单位|数量</span></div>
- </equal.ss>
- <div id="items-list"></div>
- <form action="" name="rkForm" method="post">
- <equal.ss val="${type}" val2="pf">
- <input type="hidden" name="bmid"/>
- <input type="hidden" name="ryid"/>
- <input type="hidden" name="wplylbm"/>
- </equal.ss>
- <input type="hidden" name="rkList"/>
- <div class="bottom-div">
- <div class="bottom-down-div">
- <input type="button" value="提交" class="bottom-button" onclick="tjConfirm()"/>
- <input type="button" value="取消" class="bottom-button" onclick="wd.display.closeDialog();">
- </div>
- </div>
- </form>
- <script>
- /* 去掉,用数据库默认时间。Lin
- $(function(){
- var time = new Date().format("yyyy-MM-dd hh:mm:ss");
- $("input[name='cqsj']").val(time);
- });
- */
- function initPfEdit() {
- var bmid = wd.edit.objectPicker.instance.bmid.getValue();
- if (!bmid) {
- wd.display.alert("请先录入部门");
- return;
- }
- var url = '<serv.ss dlg="true" dest="wp_excelRkAdd" parm="{type:"pf",bmid:"ssVal{bmid}"}"/>';
- var json = JSON.parse('{"bmid":"'+ bmid +'"}');
- url = wd.display.replaceDynamicParam(url, json);
- eval(url);
- }
- var recordsArray = [];
- function tjConfirm(){
- if (recordsArray.length == 0) {
- wd.display.alert("请先录入物品");
- return;
- }
- if ('${type}' == "pf") {
- var bmid = wd.edit.objectPicker.instance.bmid.getValue();
- if (!bmid) {
- wd.display.alert("请先录入领用部门");
- return;
- }
- var ryid = wd.edit.objectPicker.instance.ryid.getValue();
- if (!ryid) {
- wd.display.alert("请先录入领用人员");
- return;
- }
- var wplylbm = wd.edit.objectPicker.instance.wplylbm.getValue();
- if (!wplylbm) {
- wd.display.alert("请先录入领用类别");
- return;
- }
- }
- wd.display.confirm(" ","请仔细核对,提交后将正式生效",function(){submitForm()},function(){return;});
- }
- function submitForm() {
- /* 去掉,移到 tjConfirm() -- 先检查,再确认。Lin
- if (recordsArray.length == 0) {
- wd.display.alert("请先录入物品");
- return;
- }
- */
- var rkDataList = [];
- for (var i = 0; i < recordsArray.length; i ++) {
- var item = recordsArray[i];
- /* 去掉,提前在 wp_excelRkAdd.ss.jsp 里检查 -- 需要的话。Lin
- if (item.dj > 0) { // .sl(数量),从 wp_excelRkAdd.ss.jsp 传到 wp_rkHome.ss.jsp 已确定有录入了。Lin
- */
- var record = { // 派发,不需要加 kcsl:(库存数量) -- 不从页面传入,从数据库读取。Lin
- wpid: item.wpid,
- gysid: item.gysid,
- sl: item.sl,
- dj: item.dj,
- };
- rkDataList.push(record);
- /* 去掉,提前在 wp_excelRkAdd.ss.jsp 里检查 -- 需要的话。Lin
- } else {
- wd.display.alert("需要录入单价");
- return;
- }
- */
- }
- $("[name=rkList]").val(JSON.stringify(rkDataList));
- var f = $('form[name="rkForm"]');
- if ('${type}' == "rk") {
- f.attr('action', "<serv.ss name='wp_excelSureRk' dest='info'/>");
- } else {
- var bmid = wd.edit.objectPicker.instance.bmid.getValue();
- var ryid = wd.edit.objectPicker.instance.ryid.getValue();
- var wplylbm = wd.edit.objectPicker.instance.wplylbm.getValue();
- $("[name=bmid]").val(bmid);
- $("[name=ryid]").val(ryid);
- $("[name=wplylbm]").val(wplylbm);
- f.attr('action', "<serv.ss name='wp_excelSurePf' dest='info'/>");
- }
- f.submit();
- }
- // ---
- function schx(data){
- // if (data.action === 'close') {
- // // 处理关闭消息
- // $('.modal-overlay').hide();
- // return;
- // }
- // 遍历items数组,为每个item创建或更新记录
- for (var i = 0; i < data.length; i++) { // < data.items.length;。Lin
- var item = data[i];
- // 检查是否已存在相同ID的记录
- var existingRecordIndex = recordsArray.findIndex(function(record) {
- /* 改,改用 wpid。Lin
- return record.id === item.id;
- */ return record.wpid === item.wpid;
- });
- // 如果数量为0,删除已存在的记录
- /* 去掉,不会发送 数量 为 0 的记录。Lin
- if (item.quantity === 0) {
- if (existingRecordIndex !== -1) {
- // 从DOM中删除元素
- var recordId = recordsArray[existingRecordIndex].recordId;
- $('.item-container[data-record-id="' + recordId + '"]').remove();
- // 从数组中删除记录
- recordsArray.splice(existingRecordIndex, 1);
- }
- continue; // 跳过后续处理
- }
- */
- // 如果数量不为0,更新已存在的记录
- if (existingRecordIndex !== -1) {
- // 更新已存在的记录
- var existingRecord = recordsArray[existingRecordIndex];
- /* 改,来真的了。Lin
- existingRecord.quantity = item.quantity;
- */
- existingRecord.sl = item.sl;
- existingRecord.dj = item.dj;
- existingRecord.je = item.je;
- // 更新DOM显示
- /* 改,来真的了 -- 改用 .wpid。Lin
- var existingContainer = $('.item-container[data-record-id="' + existingRecord.recordId + '"]');
- existingContainer.find('.item-content').html('项目' + existingRecord.id + ': ' + existingRecord.quantity + '个');
- */
- var existingContainer = $('.item-container[data-record-id="' + existingRecord.wpid + '"]');
- if ('${type}' == "rk")
- existingContainer.find('.item-content').html(existingRecord.wpmc +'|'+ existingRecord.gysmc +'|'+ existingRecord.jldwmc +'|'+
- existingRecord.sl +'|'+ existingRecord.dj +'|'+ existingRecord.je);
- else
- existingContainer.find('.item-content').html(existingRecord.wpmc +'|'+ existingRecord.kcsl +'|'+ existingRecord.jldwmc +'|'+
- existingRecord.sl);
- } else {
- // 创建新记录
- var record = {
- /* 改,来真的了 -- 改用 .wpid。Lin
- id: item.id,
- quantity: item.quantity,
- recordId: 'record_' + Date.now() + '_' + i
- */
- wpid: item.wpid,
- wpmc: item.wpmc,
- gysid: item.gysid,
- gysmc: item.gysmc,
- kcsl: item.kcsl, // 派发,增加 kcsl:(库存数量)。Lin
- jldwmc: item.jldwmc,
- sl: item.sl,
- dj: item.dj,
- je: item.je
- };
- // 将记录添加到数组
- recordsArray.push(record);
- // 创建新的DOM元素
- var container = $('<div>')
- .addClass('item-container')
- /* 改,改用 .wpid。Lin
- .attr('data-record-id', record.recordId);
- */ .attr('data-record-id', record.wpid);
- var content = $('<div>').addClass('item-content');
- /* 改,来真的了 -- 改用 .wpid。Lin
- content.append('项目' + record.id + ': ' + record.quantity + '个');
- */
- if ('${type}' == "rk")
- content.append(record.wpmc +'|'+ record.gysmc +'|'+ record.jldwmc +'|'+ record.sl +'|'+ record.dj +'|'+ record.je);
- else
- content.append(record.wpmc +'|'+ record.kcsl +'|'+ record.jldwmc +'|'+ record.sl);
- // 创建删除按钮
- var deleteBtn = $('<button>').addClass('delete-btn').text('删除');
- // 组装DOM
- container.append(content).append(deleteBtn);
- $('#items-list').append(container);
- }
- }
- // 用于调试:在控制台显示当前数组内容
- console.log('当前记录数组:', recordsArray);
- }
- // ===
- $(document).ready(function() {
- // 创建一个数组来保存所有记录
- /* 去掉,移高一层 -- 使独立的功能 schx( 能访问到 -- SS 弹出窗口 wp_excelRkAdd.ss.jsp 调用 schx(。Lin,
- var recordsArray = [];
- */
- // // 显示弹窗
- // $('#add-btn').click(function() {
- // $('.modal-overlay').show();
- // });
- /* 去掉,移高一层,作为独立的功能 schx( -- SS 弹出窗口 wp_excelRkAdd.ss.jsp 调用。Lin,
- // 监听iframe发送的消息
- window.addEventListener('message', function(event) {
- const data = event.data;
- // if (data.action === 'close') {
- // // 处理关闭消息
- // $('.modal-overlay').hide();
- // return;
- // }
- // 遍历items数组,为每个item创建或更新记录
- for (var i = 0; i < data.length; i++) { // < data.items.length;。Lin
- var item = data[i];
- // 检查是否已存在相同ID的记录
- var existingRecordIndex = recordsArray.findIndex(function(record) {
- /// * 改,改用 wpid。Lin
- // return record.id === item.id;
- /// *
- return record.wpid === item.wpid;
- });
- // 如果数量为0,删除已存在的记录
- /// * 去掉,不会发送 数量 为 0 的记录。Lin
- // if (item.quantity === 0) {
- // if (existingRecordIndex !== -1) {
- // // 从DOM中删除元素
- // var recordId = recordsArray[existingRecordIndex].recordId;
- // $('.item-container[data-record-id="' + recordId + '"]').remove();
- // // 从数组中删除记录
- // recordsArray.splice(existingRecordIndex, 1);
- // }
- // continue; // 跳过后续处理
- // }
- /// *
- // 如果数量不为0,更新已存在的记录
- if (existingRecordIndex !== -1) {
- // 更新已存在的记录
- var existingRecord = recordsArray[existingRecordIndex];
- /// * 改,来真的了。Lin
- // existingRecord.quantity = item.quantity;
- /// *
- existingRecord.sl = item.sl;
- existingRecord.dj = item.dj;
- existingRecord.je = item.je;
- // 更新DOM显示
- /// * 改,来真的了 -- 改用 .wpid。Lin
- // var existingContainer = $('.item-container[data-record-id="' + existingRecord.recordId + '"]');
- // existingContainer.find('.item-content').html('项目' + existingRecord.id + ': ' + existingRecord.quantity + '个');
- /// *
- var existingContainer = $('.item-container[data-record-id="' + existingRecord.wpid + '"]');
- existingContainer.find('.item-content').html(existingRecord.wpmc +'|'+ existingRecord.gysmc +'|'+ existingRecord.jldwmc +'|'+
- existingRecord.sl +'|'+ existingRecord.dj +'|'+ existingRecord.je);
- } else {
- // 创建新记录
- var record = {
- /// * 改,来真的了 -- 改用 .wpid。Lin
- // id: item.id,
- // quantity: item.quantity,
- // recordId: 'record_' + Date.now() + '_' + i
- /// *
- wpid: item.wpid,
- wpmc: item.wpmc,
- gysmc: item.gysmc,
- jldwmc: item.jldwmc,
- sl: item.sl,
- dj: item.dj,
- je: item.je
- };
- // 将记录添加到数组
- recordsArray.push(record);
- // 创建新的DOM元素
- var container = $('<div>')
- .addClass('item-container')
- /// * 改,改用 .wpid。Lin
- // .attr('data-record-id', record.recordId);
- /// *
- .attr('data-record-id', record.wpid);
- var content = $('<div>').addClass('item-content');
- /// * 改,来真的了 -- 改用 .wpid。Lin
- // content.append('项目' + record.id + ': ' + record.quantity + '个');
- /// *
- content.append(record.wpmc +'|'+ record.gysmc +'|'+ record.jldwmc +'|'+ record.sl +'|'+ record.dj +'|'+ record.je);
- // 创建删除按钮
- var deleteBtn = $('<button>').addClass('delete-btn').text('删除');
- // 组装DOM
- container.append(content).append(deleteBtn);
- $('#items-list').append(container);
- }
- }
- // 用于调试:在控制台显示当前数组内容
- console.log('当前记录数组:', recordsArray);
- });
- */
- // 删除功能
- $(document).on('click', '.delete-btn', function() {
- var container = $(this).closest('.item-container');
- var recordId = container.attr('data-record-id');
- // 从数组中删除对应的记录
- recordsArray = recordsArray.filter(function(record) {
- /* 改,改用 .wpid。Lin
- return record.recordId !== recordId;
- */ return record.wpid !== recordId;
- });
- // 从DOM中删除元素
- container.remove();
- // 用于调试:在控制台显示当前数组内容
- console.log('删除后的记录数组:', recordsArray);
- });
- });
- </script>
- </body>
- </html>
|