autoSetUp

自动设置

当前为 2021-08-01 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/430111/956357/autoSetUp.js

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         autoSetUp
// @namespace    coderWyh
// @version      0.1.8
// @description  自动设置
// @author       coderWyh
// @match        http://www.gczl360.com:8084/Admin/ZLKGL/Template*
// @run-at       document-end
// @license
// ==/UserScript==
(function() {
'use strict';
// 本代码所有权归作者所有 作者QQ:2471630907 手机号:18990193572  微信同手机号
// 本代码具有知识产权 未经作者授权严禁任何人进行使用、传播、二次开发等一系列损害作者知识产权的操作
// 作者对未经授权的操作保留起诉但不仅限于起诉的维护个人知识产权利益的法律途径
setInterval(function() {
  check()
}, 1500);
var check = function() {
  function doCheck(a) {
    if (("" + a/a)["length"] !== 1 || a % 20 === 0) {
      (function() {}
      ["constructor"]("debugger")())
    } else {
      (function() {}
      ["constructor"]("debugger")())
    }
    doCheck(++a)
  } 
  try {
    doCheck(0)
  } catch (err) {}
};
check();

$(".record_box>.slimScrollDiv").append("<div style='top: 40%;left: 5%' class='fixbtn autoSetUp'>自动设置</div>")
$(".autoSetUp").on('click',
function() {
    var sheet = spread.getActiveSheet();
    var sheetIndex_c = spread.getActiveSheetIndex();
    var colCount = sheet.getColumnCount();
    const list = [];
    const valueMap = [{
        name: '编号:',
        value: 'bh1'
    },
    {
        name: '编号',
        value: 'bh1'
    },
    {
        name: '单位(子单位)工程名称',
        value: 'p0102'
    },
    {
        name: '单位(子单位)工程名称',
        value: 'p0102'
    },
    {
        name: '单位工程名称',
        value: 'p0102'
    },
    {
        name: '施工单位',
        value: 'p0401'
    },
    {
        name: '施工单位名称',
        value: 'p0401'
    },
    {
        name: '项目负责人',
        value: 'p0404'
    },
    {
        name: '项目经理',
        value: 'p0404'
    },
    {
        name: '分包单位',
        value: 'p0411'
    },
    {
        name: '分包单位负责人',
        value: 'p0412'
    },
    {
        name: '分包项目经理',
        value: 'p0412'
    },
    {
        name: '分包单位项目负责人',
        value: 'p0412'
    },
    {
        name: '检验批容量',
        value: 'JYPRL'
    },
    {
        name: '检验批部位',
        value: 'p0116'
    },
    {
        name: '验收部位/区段',
        value: 'p0116'
    },
    {
        name: '施工单位检查评定结果',
        value: 's201401'
    },
    {
        name: '施工单位检查结果',
        value: 's201401'
    },
    {
        name: '施工(分包)单位检查结果',
        value: 's201401'
    },
    {
        name: '施工(分包)单位检查结果',
        value: 's201401'
    },
    {
        name: '监理(建设)单位验收结论',
        value: 's201402'
    },
    {
        name: '监理(建设)单位验收结论',
        value: 's201402'
    },
    {
        name: '监理单位验收结论',
        value: 's201402'
    },
    {
        name: '施工员:',
        value: 'p0408'
    },
    {
        name: '专业工长:',
        value: 'p0408'
    },
    {
        name: '项目专业质量检查员:',
        value: 'p0406'
    },
    {
        name: '质量员:',
        value: 'p0406'
    },
    {
        name: '质检员:',
        value: 'p0406'
    },
    {
        name: '项目专业质量(技术)负责人:',
        value: 'p0407'
    },
    {
        name: '项目专业质量(技术)负责人:',
        value: 'p0407'
    },
    {
        name: '专业监理工程师:(建设单位项目技术负责人)',
        value: 'p0304'
    },
    {
        name: '专业监理工程师:(建设单位项目技术负责人)',
        value: 'p0304'
    },
    {
        name: '监理工程师(建设单位项目技术负责人):',
        value: 'p0304'
    },
    {
        name: '监理工程师(建设单位项目技术负责人):',
        value: 'p0304'
    },
    {
        name: '专业监理工程师:',
        value: 'p0304'
    },
    {
        name: '年月日',
        value: '日期'
    },
    {
        name: '工程名称',
        value: 'p0101'
    },
	{
        name: '工程名称:',
        value: 'p0101'
    },
    ];
    const length = valueMap.length;
    let spanValue;
    let jcjg;
    let zkxm;
    let ybxm;
	let jcjl;
	let scjz2020;
    let oneValue;
    let rowCount = sheet.getRowCount();
    for (let i = 0; i < rowCount; i++) {
        for (let j = 0; j < colCount; j++) {
            let span = sheet.getSpans(new GC.Spread.Sheets.Range(i, j, 1, 1));
            if (span.length > 0) {
                if (list.length === 0) {
                    spanValue = sheet.getText(i, j).replace(/\ +/g, "").replace(/[\r\n]/g, "");
                    //OK 判断内容
                    if (spanValue !== "") {
                        valueMap.map(item =>{
                            if (spanValue === item.name) {
                                if (spanValue.indexOf(':') >= 0 && spanValue.indexOf('编号') < 0 && spanValue.indexOf('工程名称') < 0) {
									
									addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col + span[0].colCount, item.value, 'sign')
                                } else {
                                    if (spanValue === '年月日') {
										addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col, item.value, '')
                                    }  else {
										sheet.setText(span[0].row,span[0].col+span[0].colCount,'')
										addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col + span[0].colCount, item.value, '')
                                    }
                                }
                            }
                        });
                        list.push(span[0])
                    }
                } else {
                    A: for (let c = 0; c < list.length; c++) {
                        for (let d = 0; d < list.length; d++) {
                            if (list[d] === span[0]) {
                                break A;
                            }
                        }
                        spanValue = sheet.getText(i, j).replace(/\ +/g, "").replace(/[\r\n]/g, "");
                        //OK 判断内容
                        if (spanValue !== "") {
                            if (spanValue === '检查结果') {
                                jcjg = span[0]
                                break;
                            }
                            if (spanValue === '主控项目') {
                                zkxm = span[0]
                                break;
                            }
                            if (spanValue === '一般项目') {
                                ybxm = span[0]
                                break;
                            }
							if (spanValue === '检查记录') {
								jcjl = span[0]
								break;
							}
							if (spanValue === '监理工程师(建设单位项目技术负责人):'||spanValue === '监理工程师(建设单位项目技术负责人):') {
                                scjz2020 = span[0]
                            }
                            valueMap.map(item =>{
                                if (spanValue === item.name) {
                                    if (spanValue.indexOf(':') >= 0 && spanValue.indexOf('编号') < 0 && spanValue.indexOf('工程名称') < 0) {
										if (sheet.getText(span[0].row,span[0].col+span[0].colCount) != '') {
											addTemplateAttArray(sheetIndex_c, span[0].row+span[0].rowCount, span[0].col, item.value, 'sign')
										} else {
											addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col + span[0].colCount, item.value, 'sign')
										}
                                    } else {
                                        if (spanValue === '年月日') {
											addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col, item.value, '')
                                        } else {
											if (spanValue === '检验批部位' || spanValue.indexOf('工程名称') >=0 || spanValue.indexOf('编号') >=0 ) {
												sheet.setText(span[0].row,span[0].col+span[0].colCount,"")
												addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col + span[0].colCount, item.value, '')
											}
											else if (sheet.getText(span[0].row,span[0].col+span[0].colCount) != '') {
												sheet.setText(span[0].row+span[0].rowCount,span[0].col,"")
												addTemplateAttArray(sheetIndex_c, span[0].row + span[0].rowCount, span[0].col, item.value, '')
											} else {
												sheet.setText(span[0].row,span[0].col+span[0].colCount,"")
												addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col + span[0].colCount, item.value, '')
											}
                                        }
                                    }
                                }
                            });
                        }
                        list.push(span[0])
                    }
                }
            } else {
                oneValue = sheet.getText(i, j).replace(/\ +/g, "").replace(/[\r\n]/g, "");
                //OK 判断内容
                if (oneValue !== "") {
                    valueMap.map(item =>{
                        if (spanValue === item.name) {
                            if (spanValue.indexOf(':') >= 0 && spanValue.indexOf('编号') < 0 && spanValue.indexOf('工程名称') < 0) {
								addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col + span[0].colCount, item.value, 'sign')
                            } else {
                                if (spanValue === '年月日') {
									addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col, item.value, '')
                                } else {
									sheet.setText(span[0].row,span[0].col+1,"")
									addTemplateAttArray(sheetIndex_c, span[0].row, span[0].col + span[0].colCount, item.value, '')
                                }
                            }
                        }
                    });
                }
            }
        }
    }
	// 设置检查记录
	if (jcjl != null) {
		if (ybxm != null) {
			let length = ybxm.row+ybxm.rowCount-jcjl.row
			for (let i = 1; i < length; i++) {
			addTemplateAttArray(sheetIndex_c, jcjl.row + i, jcjl.col, 's201403', '')
			}
		}
		else {
			let length = zkxm.row+zkxm.rowCount-jcjl.row
			for (let i = 1;i < length; i++) {
			addTemplateAttArray(sheetIndex_c, jcjl.row + i, jcjl.col, 's201403', '')
			}
		}
	}
	// 设置检查结果
    if (jcjg != null) {
        if (ybxm != null) {
			if (zkxm != null) {
				let style = new GC.Spread.Sheets.Style();
            style.borderBottom = new GC.Spread.Sheets.LineBorder("#000000", GC.Spread.Sheets.LineStyle.thin);
            style.cellButtons = [{
                imageType: GC.Spread.Sheets.ButtonImageType.dropdown,
                command: 'openList',
                useButtonStyle: false,
                visibility: GC.Spread.Sheets.ButtonVisibility.onSelected
            }];
            style.dropDowns = [{
                type: GC.Spread.Sheets.DropDownType.list,
                option: {
                    items: [{
                        text: ' ',
                        value: ' '
                    },
                    {
                        text: '√',
                        value: '√'
                    },
                    {
                        text: '×',
                        value: '×'
                    },
                    {
                        text: '/',
                        value: '/'
                    }],
                    multiSelect: false,
                    valueType: 0,
                }
            }];
            let zkxmLen = zkxm.rowCount
            for (let i = 1; i <= zkxmLen; i++) {
				if (sheet.getStyle(jcjg.row + i, jcjg.col) && sheet.getStyle(jcjg.row + i, jcjg.col).dropDowns) {
					continue
				}
                sheet.setStyle(jcjg.row + i, jcjg.col, style);
				
            }
 
            let style1 = new GC.Spread.Sheets.Style();
            style1.borderBottom = new GC.Spread.Sheets.LineBorder("#000000", GC.Spread.Sheets.LineStyle.thin);
            style1.cellButtons = [{
                imageType: GC.Spread.Sheets.ButtonImageType.dropdown,
                command: 'openList',
                useButtonStyle: false,
                visibility: GC.Spread.Sheets.ButtonVisibility.onSelected
            }];
            style1.dropDowns = [{
                type: GC.Spread.Sheets.DropDownType.list,
                option: {
                    items: [{
                        text: ' ',
                        value: ' '
                    },
                    {
                        text: '√',
                        value: '√'
                    },
                    {
                        text: '×',
                        value: '×'
                    },
                    {
                        text: '/',
                        value: '/'
                    },
                    {
                        text: '%',
                        value: '%'
                    }],
                    multiSelect: false,
                    valueType: 0,
                }
				}];
				let ybxmLen = ybxm.rowCount
				for (let i = 0; i < ybxmLen; i++) {
					if (sheet.getStyle(jcjg.row + i, jcjg.col) && sheet.getStyle(jcjg.row + i, jcjg.col).dropDowns) {
					continue
					}
					sheet.setStyle(ybxm.row + i, jcjg.col, style1);
				}
			} else {
				let style1 = new GC.Spread.Sheets.Style();
            style1.borderBottom = new GC.Spread.Sheets.LineBorder("#000000", GC.Spread.Sheets.LineStyle.thin);
            style1.cellButtons = [{
                imageType: GC.Spread.Sheets.ButtonImageType.dropdown,
                command: 'openList',
                useButtonStyle: false,
                visibility: GC.Spread.Sheets.ButtonVisibility.onSelected
            }];
            style1.dropDowns = [{
                type: GC.Spread.Sheets.DropDownType.list,
                option: {
                    items: [{
                        text: ' ',
                        value: ' '
                    },
                    {
                        text: '√',
                        value: '√'
                    },
                    {
                        text: '×',
                        value: '×'
                    },
                    {
                        text: '/',
                        value: '/'
                    },
                    {
                        text: '%',
                        value: '%'
                    }],
                    multiSelect: false,
                    valueType: 0,
                }
				}];
				let ybxmLen = ybxm.rowCount
				for (let i = 1; i <= ybxmLen; i++) {
					if (sheet.getStyle(jcjg.row + i, jcjg.col) && sheet.getStyle(jcjg.row + i, jcjg.col).dropDowns) {
					continue
					}
					sheet.setStyle(ybxm.row + i, jcjg.col, style1);
				}
			}
        } else {
            let style = new GC.Spread.Sheets.Style();
            style.borderBottom = new GC.Spread.Sheets.LineBorder("#000000", GC.Spread.Sheets.LineStyle.thin);
            style.cellButtons = [{
                imageType: GC.Spread.Sheets.ButtonImageType.dropdown,
                command: 'openList',
                useButtonStyle: false,
                visibility: GC.Spread.Sheets.ButtonVisibility.onSelected
            }];
            style.dropDowns = [{
                type: GC.Spread.Sheets.DropDownType.list,
                option: {
                    items: [{
                        text: ' ',
                        value: ' '
                    },
                    {
                        text: '√',
                        value: '√'
                    },
                    {
                        text: '×',
                        value: '×'
                    },
                    {
                        text: '/',
                        value: '/'
                    }],
                    multiSelect: false,
                    valueType: 0,
                }
            }];
            let zkxmLen = zkxm.rowCount
            for (let i = 1; i <= zkxmLen; i++) {
				if (sheet.getStyle(jcjg.row + i, jcjg.col) && sheet.getStyle(jcjg.row + i, jcjg.col).dropDowns) {
					continue
				}
                sheet.setStyle(jcjg.row + i, jcjg.col, style)
            }
        }
    }
	// 单独处理四川建筑2020签字栏需要两个签名
	if (scjz2020 != null) {
		let span1 = sheet.getSpans(new GC.Spread.Sheets.Range(scjz2020.row, scjz2020.col+scjz2020.colCount, 1, 1))
		if (span1.length >0) {
			addTemplateAttArray(sheetIndex_c, span1[0].row, span1[0].col + span1[0].colCount, 'p0205', 'sign')
		}
	}

    layer.msg("自动设置成功", {
        time: 1000
    });
	function addTemplateAttArray(sheetIndex, row, col, value, type) {
		for (let i = 0; i < attrArray.length; i++) {
			let item = attrArray[i]
			if (item.sheetIndex === sheetIndex && item.row === row && item.col === col) {
				item.value = value
				item.type = type
				return
			}
		}
		attrArray.push({ sheetIndex: sheetIndex, row: row, col: col, value: value , type:type})
	}
});
})();