|  | @@ -187,41 +187,185 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |              changeSpreadSheet.setValue(changeSpreadSheet.getRowCount() - 1, 9, cSum !== 0 ? cSum : null);
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          add: function () {
 | 
	
		
			
				|  |  | -            postData(window.location.pathname + '/save', {type: 'add'}, function (result) {
 | 
	
		
			
				|  |  | +            let select = null;
 | 
	
		
			
				|  |  | +            if (changeOrder) {
 | 
	
		
			
				|  |  | +                select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            postData(window.location.pathname + '/save', {type: 'add', postData: select ? select.order : null}, function (result) {
 | 
	
		
			
				|  |  |                  if (result) {
 | 
	
		
			
				|  |  | -                    changeList.push(result);
 | 
	
		
			
				|  |  | -                    changeSpreadSheet.addRows(changeList.length - 1, 1);
 | 
	
		
			
				|  |  | -                    SpreadJsObj.reLoadRowData(changeSpreadSheet, changeList.length - 1);
 | 
	
		
			
				|  |  | +                    if (changeOrder === 1 && select) {
 | 
	
		
			
				|  |  | +                        // 批量更新changeList的order值
 | 
	
		
			
				|  |  | +                        _.forEach(changeList, function (item) {
 | 
	
		
			
				|  |  | +                            item.order = item.order > select.order ? item.order + 1 : item.order;
 | 
	
		
			
				|  |  | +                        });
 | 
	
		
			
				|  |  | +                        changeList.splice(select.order, 0, result);
 | 
	
		
			
				|  |  | +                        changeSpreadSheet.addRows(select.order, 1);
 | 
	
		
			
				|  |  | +                        SpreadJsObj.reLoadRowData(changeSpreadSheet, select.order);
 | 
	
		
			
				|  |  | +                        changeSpreadSheet.setSelection(select.order, 0, 1, 1);
 | 
	
		
			
				|  |  | +                        console.log(changeList);
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        changeList.push(result);
 | 
	
		
			
				|  |  | +                        changeSpreadSheet.addRows(changeList.length - 1, 1);
 | 
	
		
			
				|  |  | +                        SpreadJsObj.reLoadRowData(changeSpreadSheet, changeList.length - 1);
 | 
	
		
			
				|  |  | +                        changeSpreadSheet.setSelection(changeList.length - 1, 0, 1, 1);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                      changeSpreadSheet.setStyle(changeSpreadSheet.getRowCount() - 1, -1, style1);
 | 
	
		
			
				|  |  | -                    changeSpreadSheet.setSelection(changeList.length - 1, 0, 1, 1);
 | 
	
		
			
				|  |  |                      changeSpreadObj.resetXmjSpread();
 | 
	
		
			
				|  |  | +                    changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          batchAdd: function(num) {
 | 
	
		
			
				|  |  | -            postData(window.location.pathname + '/save', {type: 'batchadd', num}, function (result) {
 | 
	
		
			
				|  |  | +            let select = null;
 | 
	
		
			
				|  |  | +            if (changeOrder) {
 | 
	
		
			
				|  |  | +                select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            postData(window.location.pathname + '/save', {type: 'batchadd', num, postData: select ? select.order : null}, function (result) {
 | 
	
		
			
				|  |  |                  if (result) {
 | 
	
		
			
				|  |  | -                    changeList = _.concat(changeList, result);
 | 
	
		
			
				|  |  | +                    changeList = result;
 | 
	
		
			
				|  |  |                      SpreadJsObj.loadSheetData(changeSpreadSheet, SpreadJsObj.DataType.Data, changeList);
 | 
	
		
			
				|  |  |                      changeSpreadObj.makeSjsFooter();
 | 
	
		
			
				|  |  |                      changeSpreadObj.resetXmjSpread();
 | 
	
		
			
				|  |  | +                    changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          del: function () {
 | 
	
		
			
				|  |  | -            const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | -            const index = changeList.indexOf(select);
 | 
	
		
			
				|  |  | -            if (index > -1 && !_.find(changeUsedData, { cbid: select.id })) {
 | 
	
		
			
				|  |  | -                postData(window.location.pathname + '/save', {type: 'del', id: select.id}, function (result) {
 | 
	
		
			
				|  |  | -                    changeList.splice(index, 1);
 | 
	
		
			
				|  |  | -                    changeSpreadSheet.deleteRows(index, 1);
 | 
	
		
			
				|  |  | +            const selection = changeSpreadSheet.getSelections();
 | 
	
		
			
				|  |  | +            const sel = selection ? selection[0] : changeSpreadSheet.getSelections()[0];
 | 
	
		
			
				|  |  | +            const row = sel && sel.row !== undefined ? sel.row : -1;
 | 
	
		
			
				|  |  | +            if (readOnly || row === -1 || sel.row + sel.rowCount > changeList.length) {
 | 
	
		
			
				|  |  | +                return false;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            const delList = [];
 | 
	
		
			
				|  |  | +            let lastSelect = null;
 | 
	
		
			
				|  |  | +            let hadTaiZhang = false;
 | 
	
		
			
				|  |  | +            for (let r = 0; r < sel.rowCount; r++) {
 | 
	
		
			
				|  |  | +                const select = changeList[row + r];
 | 
	
		
			
				|  |  | +                if(!select || _.find(changeUsedData, { cbid: select.id })) {
 | 
	
		
			
				|  |  | +                    return false;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (r === sel.rowCount - 1 && changeOrder) {
 | 
	
		
			
				|  |  | +                    lastSelect = select;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (select.lid != 0) {
 | 
	
		
			
				|  |  | +                    hadTaiZhang = true;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                delList.push(select.id);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            console.log(lastSelect, delList);
 | 
	
		
			
				|  |  | +            if (delList.length) {
 | 
	
		
			
				|  |  | +                postData(window.location.pathname + '/save', {type: 'del', ids: delList, postData: lastSelect ? lastSelect.order : null}, function (result) {
 | 
	
		
			
				|  |  | +                    changeList.splice(row, delList.length);
 | 
	
		
			
				|  |  | +                    changeSpreadSheet.deleteRows(row, delList.length);
 | 
	
		
			
				|  |  |                      const sel = changeSpreadSheet.getSelections();
 | 
	
		
			
				|  |  |                      changeSpreadSheet.setSelection(0, 0, 1, 1);
 | 
	
		
			
				|  |  |                      changeSpreadObj.resetXmjSpread(SpreadJsObj.getSelectObject(changeSpreadSheet));
 | 
	
		
			
				|  |  | -                    if (select.lid != 0) {
 | 
	
		
			
				|  |  | +                    if (hadTaiZhang) {
 | 
	
		
			
				|  |  |                          tableDataRemake(changeListData);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      changeSpreadObj.countSum();
 | 
	
		
			
				|  |  | +                    changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            // const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +            // const index = changeList.indexOf(select);
 | 
	
		
			
				|  |  | +            // if (index > -1 && !_.find(changeUsedData, { cbid: select.id })) {
 | 
	
		
			
				|  |  | +                // postData(window.location.pathname + '/save', {type: 'del', id: select.id}, function (result) {
 | 
	
		
			
				|  |  | +                //     changeList.splice(index, 1);
 | 
	
		
			
				|  |  | +                //     changeSpreadSheet.deleteRows(index, 1);
 | 
	
		
			
				|  |  | +                //     const sel = changeSpreadSheet.getSelections();
 | 
	
		
			
				|  |  | +                //     changeSpreadSheet.setSelection(0, 0, 1, 1);
 | 
	
		
			
				|  |  | +                //     changeSpreadObj.resetXmjSpread(SpreadJsObj.getSelectObject(changeSpreadSheet));
 | 
	
		
			
				|  |  | +                //     if (select.lid != 0) {
 | 
	
		
			
				|  |  | +                //         tableDataRemake(changeListData);
 | 
	
		
			
				|  |  | +                //     }
 | 
	
		
			
				|  |  | +                //     changeSpreadObj.countSum();
 | 
	
		
			
				|  |  | +                //     changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  | +                // });
 | 
	
		
			
				|  |  | +            // }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        upMove: function () {
 | 
	
		
			
				|  |  | +            const data = {
 | 
	
		
			
				|  |  | +                type: 'changeOrder',
 | 
	
		
			
				|  |  | +                postData: [],
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            const selection = changeSpreadSheet.getSelections();
 | 
	
		
			
				|  |  | +            const row = selection[0].row, count = selection[0].rowCount;
 | 
	
		
			
				|  |  | +            const first = changeSpreadSheet.zh_data[row];
 | 
	
		
			
				|  |  | +            if (!first) {
 | 
	
		
			
				|  |  | +                changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  | +                return false;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            const pre = changeSpreadSheet.zh_data[row - 1], preUpdate = {id: pre.id};
 | 
	
		
			
				|  |  | +            for (let iRow = 0; iRow < count; iRow++) {
 | 
	
		
			
				|  |  | +                const posData = changeSpreadSheet.zh_data[iRow + row];
 | 
	
		
			
				|  |  | +                if (posData) {
 | 
	
		
			
				|  |  | +                    data.postData.push({id: posData.id, order: changeSpreadSheet.zh_data[iRow + row - 1].order});
 | 
	
		
			
				|  |  | +                    preUpdate.order = posData.order;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            data.postData.push(preUpdate);
 | 
	
		
			
				|  |  | +            console.log(data);
 | 
	
		
			
				|  |  | +            if (data.postData.length > 0) {
 | 
	
		
			
				|  |  | +                postData(window.location.pathname + '/save', data, function () {
 | 
	
		
			
				|  |  | +                    _.forEach(data.postData, function (item) {
 | 
	
		
			
				|  |  | +                        const cl = _.find(changeList, { id: item.id });
 | 
	
		
			
				|  |  | +                        cl.order = item.order;
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +                    changeList.sort(function (a, b) {
 | 
	
		
			
				|  |  | +                        return a.order - b.order
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +                    SpreadJsObj.reLoadSheetData(changeSpreadSheet);
 | 
	
		
			
				|  |  | +                    changeSpreadObj.makeSjsFooter();
 | 
	
		
			
				|  |  | +                    const sel = selection[0];
 | 
	
		
			
				|  |  | +                    if (sel) {
 | 
	
		
			
				|  |  | +                        changeSpreadSheet.setSelection(changeSpreadSheet.zh_data.indexOf(first), sel.col, sel.rowCount, sel.colCount);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    changeSpreadObj.resetXmjSpread(SpreadJsObj.getSelectObject(changeSpreadSheet));
 | 
	
		
			
				|  |  | +                    changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        downMove: function () {
 | 
	
		
			
				|  |  | +            const data = {
 | 
	
		
			
				|  |  | +                type: 'changeOrder',
 | 
	
		
			
				|  |  | +                postData: [],
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            const selection = changeSpreadSheet.getSelections();
 | 
	
		
			
				|  |  | +            const row = selection[0].row, count = selection[0].rowCount;
 | 
	
		
			
				|  |  | +            const first = changeSpreadSheet.zh_data[row];
 | 
	
		
			
				|  |  | +            if (!first) {
 | 
	
		
			
				|  |  | +                changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  | +                return false;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            const next = changeSpreadSheet.zh_data[row + count], nextUpdate = {id: next.id};
 | 
	
		
			
				|  |  | +            for (let iRow = count - 1; iRow >= 0; iRow--) {
 | 
	
		
			
				|  |  | +                const posData = changeSpreadSheet.zh_data[iRow + row];
 | 
	
		
			
				|  |  | +                if (posData) {
 | 
	
		
			
				|  |  | +                    data.postData.push({id: posData.id, order: changeSpreadSheet.zh_data[iRow + row + 1].order});
 | 
	
		
			
				|  |  | +                    nextUpdate.order = posData.order;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            data.postData.push(nextUpdate);
 | 
	
		
			
				|  |  | +            console.log(data);
 | 
	
		
			
				|  |  | +            if (data.postData.length > 0) {
 | 
	
		
			
				|  |  | +                postData(window.location.pathname + '/save', data, function () {
 | 
	
		
			
				|  |  | +                    _.forEach(data.postData, function (item) {
 | 
	
		
			
				|  |  | +                        const cl = _.find(changeList, { id: item.id });
 | 
	
		
			
				|  |  | +                        cl.order = item.order;
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +                    changeList.sort(function (a, b) {
 | 
	
		
			
				|  |  | +                        return a.order - b.order
 | 
	
		
			
				|  |  | +                    });
 | 
	
		
			
				|  |  | +                    SpreadJsObj.reLoadSheetData(changeSpreadSheet);
 | 
	
		
			
				|  |  | +                    changeSpreadObj.makeSjsFooter();
 | 
	
		
			
				|  |  | +                    const sel = selection[0];
 | 
	
		
			
				|  |  | +                    if (sel) {
 | 
	
		
			
				|  |  | +                        changeSpreadSheet.setSelection(changeSpreadSheet.zh_data.indexOf(first), sel.col, sel.rowCount, sel.colCount);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    changeSpreadObj.resetXmjSpread(SpreadJsObj.getSelectObject(changeSpreadSheet));
 | 
	
		
			
				|  |  | +                    changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          },
 | 
	
	
		
			
				|  | @@ -244,6 +388,36 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                  changeSpreadObj.del();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              changeSpreadObj.resetXmjSpread(data);
 | 
	
		
			
				|  |  | +            changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        refreshActn: function (rowCount = 1) {
 | 
	
		
			
				|  |  | +            const setObjEnable = function (obj, enable) {
 | 
	
		
			
				|  |  | +                if (enable) {
 | 
	
		
			
				|  |  | +                    obj.removeClass('disabled');
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    obj.addClass('disabled');
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            // const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +            // 还需判断是否已被调差清单调用
 | 
	
		
			
				|  |  | +            const selection = changeSpreadSheet.getSelections();
 | 
	
		
			
				|  |  | +            const sel = selection ? selection[0] : changeSpreadSheet.getSelections()[0];
 | 
	
		
			
				|  |  | +            const row = sel ? sel.row : -1;
 | 
	
		
			
				|  |  | +            const first = changeList[row];
 | 
	
		
			
				|  |  | +            let last = first;
 | 
	
		
			
				|  |  | +            if (sel.rowCount > 1 && first) {
 | 
	
		
			
				|  |  | +                for (let r = 1; r < sel.rowCount; r++) {
 | 
	
		
			
				|  |  | +                    const rNode = changeList[sel.row + r];
 | 
	
		
			
				|  |  | +                    if (!rNode) break;
 | 
	
		
			
				|  |  | +                    last = rNode;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            const preNode = changeList[row - 1];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            setObjEnable($('#up-move'), !readOnly && first && preNode && changeList.indexOf(last) > 0 && sel.row + sel.rowCount <= changeList.length);
 | 
	
		
			
				|  |  | +            setObjEnable($('#down-move'), !readOnly && first && changeList.indexOf(last) < changeList.length - 1 && sel.row + sel.rowCount <= changeList.length);
 | 
	
		
			
				|  |  | +            // setObjEnable($('#open-list-modal'), !readOnly && select && changeList.indexOf(select) !== -1);
 | 
	
		
			
				|  |  | +            // setObjEnable($('#add-white-btn'), !readOnly && select && changeList.indexOf(select) !== -1);
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          deletePress: function (sheet) {
 | 
	
		
			
				|  |  |              return;
 | 
	
	
		
			
				|  | @@ -529,10 +703,13 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |          // filter.sortColumn(0, true);
 | 
	
		
			
				|  |  |          changeSpreadObj.makeSjsFooter();
 | 
	
		
			
				|  |  |          changeSpreadObj.resetXmjSpread(SpreadJsObj.getSelectObject(changeSpreadSheet));
 | 
	
		
			
				|  |  | +        changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if (!readOnly) {
 | 
	
		
			
				|  |  |          $('#add-white-btn').click(changeSpreadObj.add);
 | 
	
		
			
				|  |  | +        $('#up-move').click(changeSpreadObj.upMove);
 | 
	
		
			
				|  |  | +        $('#down-move').click(changeSpreadObj.downMove);
 | 
	
		
			
				|  |  |          changeSpread.bind(spreadNS.Events.EditEnded, changeSpreadObj.editEnded);
 | 
	
		
			
				|  |  |          changeSpread.bind(spreadNS.Events.SelectionChanged, changeSpreadObj.selectionChanged);
 | 
	
		
			
				|  |  |          changeSpread.bind(spreadNS.Events.ClipboardPasted, changeSpreadObj.clipboardPasted);
 | 
	
	
		
			
				|  | @@ -578,6 +755,9 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                  'createList': {
 | 
	
		
			
				|  |  |                      name: '添加台账清单',
 | 
	
		
			
				|  |  |                      icon: 'fa-sign-in',
 | 
	
		
			
				|  |  | +                    visible: function () {
 | 
	
		
			
				|  |  | +                        return changeOrder === 0;
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  |                      callback: function (key, opt) {
 | 
	
		
			
				|  |  |                          $('#addlist').modal('show');
 | 
	
		
			
				|  |  |                      },
 | 
	
	
		
			
				|  | @@ -585,6 +765,9 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                  'createAdd': {
 | 
	
		
			
				|  |  |                      name: '添加空白清单',
 | 
	
		
			
				|  |  |                      icon: 'fa-sign-in',
 | 
	
		
			
				|  |  | +                    visible: function () {
 | 
	
		
			
				|  |  | +                        return changeOrder === 0;
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  |                      callback: function (key, opt) {
 | 
	
		
			
				|  |  |                          changeSpreadObj.add(changeSpreadSheet);
 | 
	
		
			
				|  |  |                      },
 | 
	
	
		
			
				|  | @@ -594,6 +777,9 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                      type: 'batchInsert',
 | 
	
		
			
				|  |  |                      value: '2',
 | 
	
		
			
				|  |  |                      icon: 'fa-sign-in',
 | 
	
		
			
				|  |  | +                    visible: function () {
 | 
	
		
			
				|  |  | +                        return changeOrder === 0;
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  |                      batchInsert: function (obj, root) {
 | 
	
		
			
				|  |  |                          if (_.toNumber(obj.value) > _.toNumber(obj.max)) {
 | 
	
		
			
				|  |  |                              obj.value = obj.max;
 | 
	
	
		
			
				|  | @@ -608,6 +794,81 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      },
 | 
	
		
			
				|  |  |                  },
 | 
	
		
			
				|  |  | +                'createList1': {
 | 
	
		
			
				|  |  | +                    name: '插入台账清单',
 | 
	
		
			
				|  |  | +                    icon: 'fa-sign-in',
 | 
	
		
			
				|  |  | +                    visible: function () {
 | 
	
		
			
				|  |  | +                        return changeOrder === 1;
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  | +                    // disabled: function (key, opt) {
 | 
	
		
			
				|  |  | +                    //     const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +                    //     const sel = changeSpreadSheet.getSelections()[0];
 | 
	
		
			
				|  |  | +                    //     changeSpreadObj.resetXmjSpread(select);
 | 
	
		
			
				|  |  | +                    //     // console.log(select, sel);
 | 
	
		
			
				|  |  | +                    //     if (!readOnly && select && sel.row !== changeSpreadSheet.getRowCount() - 1) {
 | 
	
		
			
				|  |  | +                    //         return false;
 | 
	
		
			
				|  |  | +                    //     } else {
 | 
	
		
			
				|  |  | +                    //         return true;
 | 
	
		
			
				|  |  | +                    //     }
 | 
	
		
			
				|  |  | +                    // },
 | 
	
		
			
				|  |  | +                    callback: function (key, opt) {
 | 
	
		
			
				|  |  | +                        $('#addlist').modal('show');
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +                'createAdd1': {
 | 
	
		
			
				|  |  | +                    name: '插入空白清单',
 | 
	
		
			
				|  |  | +                    icon: 'fa-sign-in',
 | 
	
		
			
				|  |  | +                    visible: function () {
 | 
	
		
			
				|  |  | +                        return changeOrder === 1;
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  | +                    // disabled: function (key, opt) {
 | 
	
		
			
				|  |  | +                    //     const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +                    //     const sel = changeSpreadSheet.getSelections()[0];
 | 
	
		
			
				|  |  | +                    //     changeSpreadObj.resetXmjSpread(select);
 | 
	
		
			
				|  |  | +                    //     // console.log(select, sel);
 | 
	
		
			
				|  |  | +                    //     if (!readOnly && select && sel.row !== changeSpreadSheet.getRowCount() - 1) {
 | 
	
		
			
				|  |  | +                    //         return false;
 | 
	
		
			
				|  |  | +                    //     } else {
 | 
	
		
			
				|  |  | +                    //         return true;
 | 
	
		
			
				|  |  | +                    //     }
 | 
	
		
			
				|  |  | +                    // },
 | 
	
		
			
				|  |  | +                    callback: function (key, opt) {
 | 
	
		
			
				|  |  | +                        changeSpreadObj.add(changeSpreadSheet);
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +                'batchInsert1': {
 | 
	
		
			
				|  |  | +                    name: '批量插入空白清单',
 | 
	
		
			
				|  |  | +                    type: 'batchInsert',
 | 
	
		
			
				|  |  | +                    value: '2',
 | 
	
		
			
				|  |  | +                    icon: 'fa-sign-in',
 | 
	
		
			
				|  |  | +                    visible: function () {
 | 
	
		
			
				|  |  | +                        return changeOrder === 1;
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  | +                    // disabled: function (key, opt) {
 | 
	
		
			
				|  |  | +                    //     const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +                    //     const sel = changeSpreadSheet.getSelections()[0];
 | 
	
		
			
				|  |  | +                    //     changeSpreadObj.resetXmjSpread(select);
 | 
	
		
			
				|  |  | +                    //     // console.log(select, sel);
 | 
	
		
			
				|  |  | +                    //     if (!readOnly && select && sel.row !== changeSpreadSheet.getRowCount() - 1) {
 | 
	
		
			
				|  |  | +                    //         return false;
 | 
	
		
			
				|  |  | +                    //     } else {
 | 
	
		
			
				|  |  | +                    //         return true;
 | 
	
		
			
				|  |  | +                    //     }
 | 
	
		
			
				|  |  | +                    // },
 | 
	
		
			
				|  |  | +                    batchInsert: function (obj, root) {
 | 
	
		
			
				|  |  | +                        if (_.toNumber(obj.value) > _.toNumber(obj.max)) {
 | 
	
		
			
				|  |  | +                            obj.value = obj.max;
 | 
	
		
			
				|  |  | +                            toastr.warning('批量插入不可多于' + obj.max);
 | 
	
		
			
				|  |  | +                        } else if(_.toNumber(obj.value) < _.toNumber(obj.min)) {
 | 
	
		
			
				|  |  | +                            obj.value = obj.min;
 | 
	
		
			
				|  |  | +                            toastr.warning('批量插入不可少于' + obj.min);
 | 
	
		
			
				|  |  | +                        } else {
 | 
	
		
			
				|  |  | +                            // treeOperationObj.addNode(ledgerSpread.getActiveSheet(), parseInt(obj.value));
 | 
	
		
			
				|  |  | +                            changeSpreadObj.batchAdd(obj.value);
 | 
	
		
			
				|  |  | +                            root.$menu.trigger('contextmenu:hide');
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  |                  'delete': {
 | 
	
		
			
				|  |  |                      name: '删除',
 | 
	
		
			
				|  |  |                      icon: 'fa-remove',
 | 
	
	
		
			
				|  | @@ -615,15 +876,29 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                          changeSpreadObj.del(changeSpreadSheet);
 | 
	
		
			
				|  |  |                      },
 | 
	
		
			
				|  |  |                      disabled: function (key, opt) {
 | 
	
		
			
				|  |  | -                        const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | -                        const sel = changeSpreadSheet.getSelections()[0];
 | 
	
		
			
				|  |  | -                        changeSpreadObj.resetXmjSpread(select);
 | 
	
		
			
				|  |  | -                        // console.log(select, sel);
 | 
	
		
			
				|  |  | -                        if (!readOnly && select && sel.row !== changeSpreadSheet.getRowCount() - 1 && !_.find(changeUsedData, { cbid: select.id })) {
 | 
	
		
			
				|  |  | -                            return false;
 | 
	
		
			
				|  |  | -                        } else {
 | 
	
		
			
				|  |  | +                        // const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +                        // const sel = changeSpreadSheet.getSelections()[0];
 | 
	
		
			
				|  |  | +                        // changeSpreadObj.resetXmjSpread(select);
 | 
	
		
			
				|  |  | +                        // // console.log(select, sel);
 | 
	
		
			
				|  |  | +                        // if (!readOnly && select && sel.row !== changeSpreadSheet.getRowCount() - 1 && !_.find(changeUsedData, { cbid: select.id })) {
 | 
	
		
			
				|  |  | +                        //     return false;
 | 
	
		
			
				|  |  | +                        // } else {
 | 
	
		
			
				|  |  | +                        //     return true;
 | 
	
		
			
				|  |  | +                        // }
 | 
	
		
			
				|  |  | +                        const selection = changeSpreadSheet.getSelections();
 | 
	
		
			
				|  |  | +                        const sel = selection ? selection[0] : changeSpreadSheet.getSelections()[0];
 | 
	
		
			
				|  |  | +                        const row = sel && sel.row !== undefined ? sel.row : -1;
 | 
	
		
			
				|  |  | +                        if (readOnly || row === -1 || sel.row + sel.rowCount > changeList.length) {
 | 
	
		
			
				|  |  |                              return true;
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  | +                        let isUsed = false;
 | 
	
		
			
				|  |  | +                        for (let r = 0; r < sel.rowCount; r++) {
 | 
	
		
			
				|  |  | +                            const select = changeList[row + r];
 | 
	
		
			
				|  |  | +                            if(!select || _.find(changeUsedData, { cbid: select.id })) {
 | 
	
		
			
				|  |  | +                                isUsed = true;
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        return isUsed;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  },
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -637,6 +912,7 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |          $(this).addClass('table-warning');
 | 
	
		
			
				|  |  |          const isCheck = $(this).hasClass('table-success') ? true : false;
 | 
	
		
			
				|  |  |          const data_bwmx = $(this).attr('data-bwmx').split('$#$');
 | 
	
		
			
				|  |  | +        const data_charu = $(this).attr('data-charu') ? $(this).attr('data-charu').split('$#$') : [];
 | 
	
		
			
				|  |  |          const isDeal = $(this).data('gcl') !== undefined ? true : false;
 | 
	
		
			
				|  |  |          let codeHtml = '<tr quantity="'+ $(this).children('td').eq(5).text() +'" gcl_id="" mx_id=""><td class="text-center">1</td><td colspan="7" class="colspan_1"> </td><td class="colspan_2"><input type="checkbox"></td></tr>';
 | 
	
		
			
				|  |  |          if (isDeal) {
 | 
	
	
		
			
				|  | @@ -653,15 +929,15 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                  const gcl_id = leaf.gcl_id ? leaf.gcl_id : '';
 | 
	
		
			
				|  |  |                  const mx_id = leaf.mx_id ? leaf.mx_id : '';
 | 
	
		
			
				|  |  |                  const bwmx = leaf.bwmx !== undefined ? leaf.bwmx : (gcl.leafXmjs.length > 1 && gcl.name ? gcl.name : undefined);
 | 
	
		
			
				|  |  | -                const isChecked = data_bwmx.indexOf(
 | 
	
		
			
				|  |  | -                    leaf.code + '!_!' + (leaf.jldy ? leaf.jldy : '') + '!_!' +
 | 
	
		
			
				|  |  | +                const pushMsg = leaf.code + '!_!' + (leaf.jldy ? leaf.jldy : '') + '!_!' +
 | 
	
		
			
				|  |  |                      (leaf.dwgc ? leaf.dwgc : '') + '!_!' + (leaf.fbgc ? leaf.fbgc : '') + '!_!' + (leaf.fxgc ? leaf.fxgc : '')
 | 
	
		
			
				|  |  |                      + '!_!' + (leaf.gcl_id ? leaf.gcl_id : '0') + '!_!' + (leaf.mx_id ? leaf.mx_id : '') + '!_!' +
 | 
	
		
			
				|  |  | -                    (bwmx !== undefined ? bwmx : leaf.jldy ? leaf.jldy : '') + '*;*' + quantity) !== -1 && isCheck ?
 | 
	
		
			
				|  |  | -                    'checked' : '';
 | 
	
		
			
				|  |  | +                    (bwmx !== undefined ? bwmx : leaf.jldy ? leaf.jldy : '') + '*;*' + quantity;
 | 
	
		
			
				|  |  | +                const isChecked = data_bwmx.indexOf(pushMsg) !== -1 && isCheck ? 'checked ' : '';
 | 
	
		
			
				|  |  |                  const existGcl = _.find(changeList, {gcl_id: leaf.gcl_id, bwmx: (bwmx ? bwmx : leaf.jldy ? leaf.jldy : ''), oamount: leaf.quantity});
 | 
	
		
			
				|  |  |                  const isUsed = existGcl ? _.find(changeUsedData, { cbid: existGcl.id }) : null;
 | 
	
		
			
				|  |  | -                const isDisabled = isUsed ? 'disabled ' : '';
 | 
	
		
			
				|  |  | +                const isOldChaRu = changeOrder && isChecked && data_charu.indexOf(pushMsg) === -1;
 | 
	
		
			
				|  |  | +                const isDisabled = isUsed || isOldChaRu ? 'disabled ' : '';
 | 
	
		
			
				|  |  |                  codeHtml += '<tr quantity="' + quantity + '" gcl_id="' + gcl_id + '" mx_id="' + mx_id + '">' +
 | 
	
		
			
				|  |  |                      '<td class="text-center">' + (index+1) + (leaf.cid ? '<i class="text-danger" style="font-weight: 900">*</i>' : '') + '</td>' +
 | 
	
		
			
				|  |  |                      '<td>' + leaf.code + '</td>' +
 | 
	
	
		
			
				|  | @@ -676,7 +952,10 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                  searchCodeList.push(leaf.code + '|!|' + (leaf.jldy ? leaf.jldy: '') + '|!|' + (bwmx !== undefined ? bwmx : ''));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          } else if (!isDeal && isCheck) {
 | 
	
		
			
				|  |  | -            codeHtml = '<tr quantity="'+ $(this).children('td').eq(5).text() +'" gcl_id="" mx_id=""><td class="text-center">1</td><td colspan="7" class="colspan_1"> </td><td class="colspan_2"><input type="checkbox" checked></td></tr>';
 | 
	
		
			
				|  |  | +            const pushMsg = '0*;*' + $(this).children('td').eq(5).text();
 | 
	
		
			
				|  |  | +            const isChecked = data_bwmx.indexOf(pushMsg) !== -1 && isCheck ? 'checked ' : '';
 | 
	
		
			
				|  |  | +            const isDisabeld = changeOrder && isChecked && data_charu.indexOf(pushMsg) === -1 ? 'disabled ' : '';
 | 
	
		
			
				|  |  | +            codeHtml = '<tr quantity="'+ $(this).children('td').eq(5).text() +'" gcl_id="" mx_id=""><td class="text-center">1</td><td colspan="7" class="colspan_1"> </td><td class="colspan_2"><input type="checkbox" ' + isChecked + isDisabeld +'></td></tr>';
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          $('#code-list').attr('data-index', parseInt($(this).children('td').eq(0).text()));
 | 
	
		
			
				|  |  |          $('#code-input').val('');
 | 
	
	
		
			
				|  | @@ -688,6 +967,7 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |      // 右边项目节选择
 | 
	
		
			
				|  |  |      $('body').on('click', '#code-list input', function () {
 | 
	
		
			
				|  |  |          let index = $('#code-list').attr('data-index');
 | 
	
		
			
				|  |  | +        // 判断是否是自定义排序,是则另外保存一份到tr中,和data-bwmx不相通,最后提交再清除所有的data-charu清单
 | 
	
		
			
				|  |  |          if ($(this).is(':checked')) {
 | 
	
		
			
				|  |  |              // 去除其它可能已选的checked
 | 
	
		
			
				|  |  |              // $('#code-list input').prop('checked', false);
 | 
	
	
		
			
				|  | @@ -696,6 +976,7 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |              $('#table-list-select tr[data-index="' + index + '"]').addClass('table-success');
 | 
	
		
			
				|  |  |              // 去除部分data-detail值
 | 
	
		
			
				|  |  |              let data_bwmx = [];
 | 
	
		
			
				|  |  | +            let data_charu = [];
 | 
	
		
			
				|  |  |              $('#code-list input:checked').each(function () {
 | 
	
		
			
				|  |  |                  const tr = $(this).parents('tr');
 | 
	
		
			
				|  |  |                  const length = tr.children('td').length;
 | 
	
	
		
			
				|  | @@ -711,14 +992,22 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                  const quantity = tr.attr('quantity');
 | 
	
		
			
				|  |  |                  const de_qu = bwmx + '*;*' + quantity;
 | 
	
		
			
				|  |  |                  data_bwmx.push(de_qu);
 | 
	
		
			
				|  |  | +                if (changeOrder && $(this).prop('disabled') !== true) {
 | 
	
		
			
				|  |  | +                    data_charu.push(de_qu);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |              data_bwmx = data_bwmx.join('$#$');
 | 
	
		
			
				|  |  |              $('#table-list-select tr[data-index="' + index + '"]').attr('data-bwmx', data_bwmx);
 | 
	
		
			
				|  |  | +            if (changeOrder) {
 | 
	
		
			
				|  |  | +                data_charu = data_charu.join('$#$');
 | 
	
		
			
				|  |  | +                $('#table-list-select tr[data-index="' + index + '"]').attr('data-charu', data_charu);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              // 判断还有无选中项目节编号
 | 
	
		
			
				|  |  |              if ($('#code-list input').is(':checked')) {
 | 
	
		
			
				|  |  |                  // 去除部分data-detail值
 | 
	
		
			
				|  |  |                  let data_bwmx = [];
 | 
	
		
			
				|  |  | +                let data_charu = [];
 | 
	
		
			
				|  |  |                  $('#code-list input:checked').each(function () {
 | 
	
		
			
				|  |  |                      const tr = $(this).parents('tr');
 | 
	
		
			
				|  |  |                      const length = tr.children('td').length;
 | 
	
	
		
			
				|  | @@ -734,12 +1023,22 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                      const quantity = tr.attr('quantity');
 | 
	
		
			
				|  |  |                      const de_qu = bwmx + '*;*' + quantity;
 | 
	
		
			
				|  |  |                      data_bwmx.push(de_qu);
 | 
	
		
			
				|  |  | +                    if (changeOrder && $(this).prop('disabled') !== true) {
 | 
	
		
			
				|  |  | +                        data_charu.push(de_qu);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  |                  data_bwmx = data_bwmx.join('$#$');
 | 
	
		
			
				|  |  |                  $('#table-list-select tr[data-index="' + index + '"]').attr('data-bwmx', data_bwmx);
 | 
	
		
			
				|  |  | +                if (changeOrder) {
 | 
	
		
			
				|  |  | +                    data_charu = data_charu.join('$#$');
 | 
	
		
			
				|  |  | +                    $('#table-list-select tr[data-index="' + index + '"]').attr('data-charu', data_charu);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  $('#table-list-select tr[data-index="' + index + '"]').removeClass('table-success');
 | 
	
		
			
				|  |  |                  $('#table-list-select tr[data-index="' + index + '"]').attr('data-bwmx', '');
 | 
	
		
			
				|  |  | +                if (changeOrder) {
 | 
	
		
			
				|  |  | +                    $('#table-list-select tr[data-index="' + index + '"]').attr('data-charu', '');
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          checkSelectAll();
 | 
	
	
		
			
				|  | @@ -747,17 +1046,30 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // 添加空白清单or签约清单
 | 
	
		
			
				|  |  |      $('.add-list-btn').on('click', function () {
 | 
	
		
			
				|  |  | +        let select = null;
 | 
	
		
			
				|  |  | +        if (changeOrder) {
 | 
	
		
			
				|  |  | +            select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          const newLedgerList = remakeChangeSpread();
 | 
	
		
			
				|  |  | +        console.log(newLedgerList, select);
 | 
	
		
			
				|  |  |          // 更新至服务器
 | 
	
		
			
				|  |  | -        postData(window.location.pathname + '/save', { type:'ledger_list', updateData: newLedgerList }, function (result) {
 | 
	
		
			
				|  |  | +        postData(window.location.pathname + '/save', { type:'ledger_list', updateData: newLedgerList, postData: select ? select.order : null }, function (result) {
 | 
	
		
			
				|  |  |              changeList = result.changeList;
 | 
	
		
			
				|  |  |              changeUsedData = result.usedList;
 | 
	
		
			
				|  |  |              SpreadJsObj.loadSheetData(changeSpreadSheet, SpreadJsObj.DataType.Data, changeList);
 | 
	
		
			
				|  |  |              changeSpreadObj.makeSjsFooter();
 | 
	
		
			
				|  |  |              const select = SpreadJsObj.getSelectObject(changeSpreadSheet);
 | 
	
		
			
				|  |  |              changeSpreadObj.resetXmjSpread(select);
 | 
	
		
			
				|  |  | +            changeSpreadObj.refreshActn();
 | 
	
		
			
				|  |  | +            $('#table-list-select tr').attr('data-charu', '');
 | 
	
		
			
				|  |  | +            if(changeOrder) {
 | 
	
		
			
				|  |  | +                $('#code-list input:checked').each(function () {
 | 
	
		
			
				|  |  | +                    $(this).attr('disabled', true);
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              $('#addlist').modal('hide');
 | 
	
		
			
				|  |  |          }, function () {
 | 
	
		
			
				|  |  | +            $('#table-list-select tr').attr('data-charu', '');
 | 
	
		
			
				|  |  |              $('#addlist').modal('hide');
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -823,12 +1135,40 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |      $('#list-input').on('blur', function () {
 | 
	
		
			
				|  |  |          const select = parseInt($('#select-list').val());
 | 
	
		
			
				|  |  | -        const value = $(this).val();
 | 
	
		
			
				|  |  | +        const value = _.trim($(this).val());
 | 
	
		
			
				|  |  | +        const valueList = _.slice(_.without(_.uniq(value.split(' ')), ''), 0, 10);
 | 
	
		
			
				|  |  | +        console.log(valueList);
 | 
	
		
			
				|  |  | +        // 判断是否存在多个分词,以换行或空格分隔,多个则显示左侧菜单
 | 
	
		
			
				|  |  | +        if (value !== '' && valueList.length > 1) {
 | 
	
		
			
				|  |  | +            if (_.without(_.uniq(value.split(' ')), '').length > 10) {
 | 
	
		
			
				|  |  | +                toastr.warning('最多筛选以空格分割的前10个不重复关键词');
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            $('#table-list').addClass('col-9').removeClass('col-12');
 | 
	
		
			
				|  |  | +            $('#table-list').siblings('.col-3').show();
 | 
	
		
			
				|  |  | +            $('#list-search-keyword').html('<a href="javascript:void(0);" data-keyword="" class="list-group-item list-group-item-action active">全部</a>');
 | 
	
		
			
				|  |  | +            for (const v of valueList) {
 | 
	
		
			
				|  |  | +                $('#list-search-keyword').append(`<a href="javascript:void(0);" data-keyword="${v}" class="list-group-item list-group-item-action">${v}</a>`);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            $('#table-list').addClass('col-12').removeClass('col-9');
 | 
	
		
			
				|  |  | +            $('#table-list').siblings('.col-3').hide();
 | 
	
		
			
				|  |  | +            $('#list-search-keyword').html('<a href="javascript:void(0);" data-keyword="" class="list-group-item list-group-item-action active">全部</a>');
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          let showListData = changeListData;
 | 
	
		
			
				|  |  |          if (select === 1 && value !== '') {
 | 
	
		
			
				|  |  |              $(this).siblings('a').show();
 | 
	
		
			
				|  |  |              showListData = _.filter(changeListData, function (c) {
 | 
	
		
			
				|  |  | -                return ((c.code && c.code.indexOf(value) !== -1) || (c.name && c.name.indexOf(value) !== -1)) && c.cid;
 | 
	
		
			
				|  |  | +                let flag = false;
 | 
	
		
			
				|  |  | +                if (c.cid) {
 | 
	
		
			
				|  |  | +                    for(const v of valueList) {
 | 
	
		
			
				|  |  | +                        if ((c.code && c.code.indexOf(v) !== -1) || (c.name && c.name.indexOf(v) !== -1)) {
 | 
	
		
			
				|  |  | +                            flag = true;
 | 
	
		
			
				|  |  | +                            break;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                return flag;
 | 
	
		
			
				|  |  | +                // return ((c.code && c.code.indexOf(value) !== -1) || (c.name && c.name.indexOf(value) !== -1)) && c.cid;
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          } else if (select === 1 && value === '') {
 | 
	
		
			
				|  |  |              $(this).siblings('a').hide();
 | 
	
	
		
			
				|  | @@ -838,7 +1178,15 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |          } else if (value !== '') {
 | 
	
		
			
				|  |  |              $(this).siblings('a').show();
 | 
	
		
			
				|  |  |              showListData = _.filter(changeListData, function (c) {
 | 
	
		
			
				|  |  | -                return (c.code && c.code.indexOf(value) !== -1) || (c.name && c.name.indexOf(value) !== -1);
 | 
	
		
			
				|  |  | +                let flag = false;
 | 
	
		
			
				|  |  | +                for(const v of valueList) {
 | 
	
		
			
				|  |  | +                    if ((c.code && c.code.indexOf(v) !== -1) || (c.name && c.name.indexOf(v) !== -1)) {
 | 
	
		
			
				|  |  | +                        flag = true;
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                return flag;
 | 
	
		
			
				|  |  | +                // return (c.code && c.code.indexOf(value) !== -1) || (c.name && c.name.indexOf(value) !== -1);
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              $(this).siblings('a').hide();
 | 
	
	
		
			
				|  | @@ -850,6 +1198,29 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |          $('#code-list').html('');
 | 
	
		
			
				|  |  |          $('#code-select-all').prop('checked', false);
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  | +    // 检索关键字切换
 | 
	
		
			
				|  |  | +    $('body').on('click', '#list-search-keyword a', function () {
 | 
	
		
			
				|  |  | +        if (!$(this).hasClass('active')) {
 | 
	
		
			
				|  |  | +            const keyword = $(this).attr('data-keyword');
 | 
	
		
			
				|  |  | +            console.log(keyword);
 | 
	
		
			
				|  |  | +            $(this).siblings().removeClass('active');
 | 
	
		
			
				|  |  | +            $(this).addClass('active');
 | 
	
		
			
				|  |  | +            if (keyword === '') {
 | 
	
		
			
				|  |  | +                $('#list-input').blur();
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                const select = parseInt($('#select-list').val());
 | 
	
		
			
				|  |  | +                const showListData = _.filter(changeListData, function (c) {
 | 
	
		
			
				|  |  | +                    return ((c.code && c.code.indexOf(keyword) !== -1) || (c.name && c.name.indexOf(keyword) !== -1)) && (select === 1 ? c.cid : 1);
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +                makeListTable(changeListData, showListData);
 | 
	
		
			
				|  |  | +                $('#table-list-select tr').removeClass('table-warning');
 | 
	
		
			
				|  |  | +                $('#code-input').val('');
 | 
	
		
			
				|  |  | +                $('#code-input').siblings('a').hide();
 | 
	
		
			
				|  |  | +                $('#code-list').html('');
 | 
	
		
			
				|  |  | +                $('#code-select-all').prop('checked', false);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  |      // 回车提交
 | 
	
		
			
				|  |  |      $('#code-input').on('keypress', function () {
 | 
	
		
			
				|  |  |          if(window.event.keyCode === 13) {
 | 
	
	
		
			
				|  | @@ -881,6 +1252,10 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |              makeListTable(changeListData, showListData);
 | 
	
		
			
				|  |  |              $('#table-list-select tr').removeClass('table-warning');
 | 
	
		
			
				|  |  |              $('#code-list').html('');
 | 
	
		
			
				|  |  | +            $('#table-list').addClass('col-12').removeClass('col-9');
 | 
	
		
			
				|  |  | +            $('#table-list').siblings('.col-3').hide();
 | 
	
		
			
				|  |  | +            $('#list-search-keyword').html('');
 | 
	
		
			
				|  |  | +            $('#list-search-keyword').siblings('a').addClass('active');
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              makeCodeTable();
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -908,6 +1283,7 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |              if ($('#code-list input').is(':checked')) {
 | 
	
		
			
				|  |  |                  // 去除部分data-detail值
 | 
	
		
			
				|  |  |                  let data_bwmx = [];
 | 
	
		
			
				|  |  | +                let data_charu = [];
 | 
	
		
			
				|  |  |                  $('#code-list input:checked').each(function () {
 | 
	
		
			
				|  |  |                      const tr = $(this).parents('tr');
 | 
	
		
			
				|  |  |                      const length = tr.children('td').length;
 | 
	
	
		
			
				|  | @@ -923,13 +1299,23 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |                      const quantity = tr.attr('quantity');
 | 
	
		
			
				|  |  |                      const de_qu = bwmx + '*;*' + quantity;
 | 
	
		
			
				|  |  |                      data_bwmx.push(de_qu);
 | 
	
		
			
				|  |  | +                    if (changeOrder && $(this).prop('disabled') !== true) {
 | 
	
		
			
				|  |  | +                        data_charu.push(de_qu);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  |                  data_bwmx = data_bwmx.join('$#$');
 | 
	
		
			
				|  |  |                  $('#table-list-select tr[data-index="' + index + '"]').attr('data-bwmx', data_bwmx);
 | 
	
		
			
				|  |  | +                if (changeOrder) {
 | 
	
		
			
				|  |  | +                    data_charu = data_charu.join('$#$');
 | 
	
		
			
				|  |  | +                    $('#table-list-select tr[data-index="' + index + '"]').attr('data-charu', data_charu);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |                  $('#table-list-select tr[data-index="' + index + '"]').addClass('table-success');
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  $('#table-list-select tr[data-index="' + index + '"]').removeClass('table-success');
 | 
	
		
			
				|  |  |                  $('#table-list-select tr[data-index="' + index + '"]').attr('data-bwmx', '');
 | 
	
		
			
				|  |  | +                if (changeOrder) {
 | 
	
		
			
				|  |  | +                    $('#table-list-select tr[data-index="' + index + '"]').attr('data-charu', '');
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      });
 | 
	
	
		
			
				|  | @@ -1002,6 +1388,31 @@ $(document).ready(() => {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          toastr.success('已还原到上次保存状态');
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    $('.dropdown-menu input[name="paixu"]').on('click', function () {
 | 
	
		
			
				|  |  | +        const newChangeOrder = parseInt($(this).val());
 | 
	
		
			
				|  |  | +        if (newChangeOrder !== changeOrder) {
 | 
	
		
			
				|  |  | +            const newLedgerList = changeOrder ? remakeChangeSpread(0) : [];
 | 
	
		
			
				|  |  | +            // 更新至服务器
 | 
	
		
			
				|  |  | +            postData(window.location.pathname + '/save', { type:'order_by', updateData: newChangeOrder, newLedgerList }, function (result) {
 | 
	
		
			
				|  |  | +                if (newChangeOrder === 0) {
 | 
	
		
			
				|  |  | +                    $('#bpaixu').text('清单排序:清单编号');
 | 
	
		
			
				|  |  | +                    $('#upAndMoveBtn').attr('style', 'display: none !important');
 | 
	
		
			
				|  |  | +                    $('.order_text').text('添加');
 | 
	
		
			
				|  |  | +                    changeOrder = newChangeOrder;
 | 
	
		
			
				|  |  | +                } else if (newChangeOrder === 1) {
 | 
	
		
			
				|  |  | +                    $('#bpaixu').text('清单排序:添加顺序');
 | 
	
		
			
				|  |  | +                    $('#upAndMoveBtn').show();
 | 
	
		
			
				|  |  | +                    $('.order_text').text('插入');
 | 
	
		
			
				|  |  | +                    changeOrder = newChangeOrder;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                changeList = result;
 | 
	
		
			
				|  |  | +                SpreadJsObj.loadSheetData(changeSpreadSheet, SpreadJsObj.DataType.Data, changeList);
 | 
	
		
			
				|  |  | +                changeSpreadObj.makeSjsFooter();
 | 
	
		
			
				|  |  | +                changeSpreadObj.resetXmjSpread(SpreadJsObj.getSelectObject(changeSpreadSheet));
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  function checkSelectAll() {
 | 
	
		
			
				|  |  |      let check = $('#code-list tr').length > 0 ? true : false;
 | 
	
	
		
			
				|  | @@ -1072,6 +1483,7 @@ function tableDataRemake(changeListData) {
 | 
	
		
			
				|  |  |      $('#table-list-select tr').removeClass('table-warning');
 | 
	
		
			
				|  |  |      $('#table-list-select tr').removeClass('table-success');
 | 
	
		
			
				|  |  |      $('#table-list-select tr').attr('data-bwmx', '');
 | 
	
		
			
				|  |  | +    $('#table-list-select tr').attr('data-charu', '');
 | 
	
		
			
				|  |  |      $('#code-list').html('');
 | 
	
		
			
				|  |  |      $('#code-list').attr('data-index', '');
 | 
	
		
			
				|  |  |      $('#code-input').val('');
 | 
	
	
		
			
				|  | @@ -1274,7 +1686,7 @@ function makeCodeTable(search = '') {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -function remakeChangeSpread() {
 | 
	
		
			
				|  |  | +function remakeChangeSpread(cOrder = changeOrder) {
 | 
	
		
			
				|  |  |      const newTableList = [];
 | 
	
		
			
				|  |  |      // 获取选中的签约清单判断并插入到原有清单中
 | 
	
		
			
				|  |  |      $('#table-list-select .table-success').each(function(){
 | 
	
	
		
			
				|  | @@ -1293,7 +1705,7 @@ function remakeChangeSpread() {
 | 
	
		
			
				|  |  |          let lid = $(this).data('lid');
 | 
	
		
			
				|  |  |          let lindex = $(this).data('index');
 | 
	
		
			
				|  |  |          // 原清单和数量改变
 | 
	
		
			
				|  |  | -        let data_bwmx = $(this).attr('data-bwmx').split('$#$');
 | 
	
		
			
				|  |  | +        let data_bwmx = cOrder ? ($(this).attr('data-charu') ? $(this).attr('data-charu').split('$#$') : []) : $(this).attr('data-bwmx').split('$#$');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          for (const b of data_bwmx) {
 | 
	
		
			
				|  |  |              const oamount = b.split('*;*')[1] != '' ? b.split('*;*')[1] : 0;
 |