// ==UserScript==
// @name autoSetUp
// @namespace coderWyh
// @version 0.1.6
// @description 自动设置
// @author coderWyh
// @match http://www.gczl360.com:8084/Admin/ZLKGL/Template*
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
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();
(function () {
var re = /x/;
var i = 0;
re.toString = function () {
alert("请关闭控制台");
return '第 ' + (++i) + ' 次打开控制台';
};
})();
$(".record_box>.slimScrollDiv").append("<div style='top: 5%;left: 2%' class='fixbtn autoSetUp'>自动设置</div>")
$(".autoSetUp").on('click',
function() {
var sheet = spread.getActiveSheet();
var sheetIndex_c = spread.getActiveSheetIndex();
var colCount = sheet.getColumnCount();
const list = [];
const attrSet = new Set()
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'
},
];
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, "");
//TODO 判断内容
if (spanValue !== "") {
valueMap.map(item =>{
if (spanValue === item.name) {
if (spanValue.indexOf(':') >= 0 && spanValue.indexOf('编号') < 0) {
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col + span[0].colCount,
value: item.value,
type: 'sign'
});
} else {
if (spanValue === '年月日') {
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col,
value: item.value,
type: ''
})
} else {
sheet.setText(span[0].row,span[0].col+span[0].colCount,"")
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col + span[0].colCount,
value: item.value,
type: ''
})
}
}
}
});
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, "");
//TODO 判断内容
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) {
if (sheet.getText(span[0].row,span[0].col+span[0].colCount) != '') {
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row+span[0].rowCount,
col: span[0].col,
value: item.value,
type: 'sign'
});
} else {
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col + span[0].colCount,
value: item.value,
type: 'sign'
});
}
} else {
if (spanValue === '年月日') {
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col,
value: item.value,
type: ''
})
} else {
if (sheet.getText(span[0].row,span[0].col+span[0].colCount) != '' && spanValue != '检验批部位') {
sheet.setText(span[0].row+span[0].rowCount,span[0].col,"")
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row + span[0].rowCount,
col: span[0].col,
value: item.value,
type: ''
})
} else {
sheet.setText(span[0].row,span[0].col+span[0].colCount,"")
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col + span[0].colCount,
value: item.value,
type: ''
})
}
}
}
}
});
}
list.push(span[0])
}
}
} else {
oneValue = sheet.getText(i, j).replace(/\ +/g, "").replace(/[\r\n]/g, "");
//TODO 判断内容
if (oneValue !== "") {
valueMap.map(item =>{
if (spanValue === item.name) {
if (spanValue.indexOf(':') >= 0 && spanValue.indexOf('编号') < 0) {
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col + span[0].colCount,
value: item.value,
type: 'sign'
});
} else {
if (spanValue === '年月日') {
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col,
value: item.value,
type: ''
})
} else {
sheet.setText(span[0].row,span[0].col+1,"")
attrSet.add({
sheetIndex: sheetIndex_c,
row: span[0].row,
col: span[0].col + span[0].colCount,
value: item.value,
type: ''
})
}
}
}
});
}
}
}
}
// 设置检查记录
if (jcjl != null) {
if (ybxm != null) {
let length = ybxm.row+ybxm.rowCount-jcjl.row
for (let i = 1; i < length; i++) {
attrSet.add({
sheetIndex: sheetIndex_c,
row: jcjl.row + i,
col: jcjl.col,
value: 's201403',
type: ''
})
}
}
else {
let length = zkxm.row+zkxm.rowCount-jcjl.row
for (let i = 1;i < length; i++) {
attrSet.add({
sheetIndex: sheetIndex_c,
row: jcjl.row + i,
col: jcjl.col,
value: 's201403',
type: ''
})
}
}
}
// 设置检查结果
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++) {
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++) {
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++) {
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++) {
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) {
attrSet.add({
sheetIndex: sheetIndex_c,
row: span1[0].row,
col: span1[0].col+span1[0].colCount,
value: 'p0205',
type: 'sign'
})
}
}
attrArray.forEach(item => {
attrSet.add(item)
})
attrArray = [...attrSet]
layer.msg("自动设置成功", {
time: 500
});
});
})();