Commit b75a5031 authored by Scott Sun's avatar Scott Sun

Merge branch 'master' of http://gitlab.topibd.net/scott.sun/scott

parents b15c9eb9 56f01551
/* var plugin = require('topsin.gengui');
第一步. 逻辑检查,初始化,选取出需要测的steplist var gui = plugin.newGui(plugin.__dirname);
第二步. 将要测net的step对应关系整理好 将array array_c copy到 _tmp 删除排版 打散关系 array_net 删除排版 打散关系 var item_list = [{name:1, text:1}]
第三步. doNet 里所有step pgn极性翻转 var tabledata = [{ name:"aa", age: 12 }]
第四步. doNet.orig foNet.net 对比测net
end: 删除辅助层 临时step
*/
var $ = require('topcam.scriptfunc').argv();
var _ = require('lodash');
var JOB = $.job_name;
var GEN = $.gen;
var ikm = $.ikm;
var GUI = $.GUI; r = gui.showForm({
try { title: "注册账号",
var r = GUI.msgBox("mo", "info", "are you ok?", ["ok", "cancel"]); size: [600, 400],
// GUI.msg(r); // ok | cancel // ui: function(self){
// return [{
// r = GUI.confirm("are you ok?", ["yes", "no"], "question");
// GUI.msg(r); // yes | no
// var selected = GUI.selectFromTreeview({
// title: "test",
// size: [600, 400],
// selectmode: "single",
// columns: [
// {
// "name": "id",
// "display": "ID",
// "displayRole": "$id",
// "search": true,
// "resizeMode": "ResizeToContents"
// },
// {
// "name": "name",
// "display": "NAME",
// "displayRole": "$name",
// "search": true,
// "resizeMode": "ResizeToContents"
// }
// ],
// data: [
// {
// "id": 1,
// "name": "mo"
// },
// {
// "id": 2,
// "name": "ha"
// }
// ],
// returncols: ["id"]
// });
// msg(selected); // [{id:1}]
// r = GUI.selectFile("choose something", "*", true, "file", "/home/abby/fast_io");
// GUI.msg(r); // ["路径"]
// var xx = [
// {"mo": "too young too simple"},
// {"ha": "sometimes naive!"},
// {"elder": "+1s"}
// ];
// r = GUI.selectSingle({
// "title": "select your favar",
// "list": xx,
// "default": "",
// "columns": 2,
// "gen":{}
// });
// GUI.msg(r) // 'ha'
// r = GUI.selectMultiple({
// "title": "select your favar",
// "list": xx,
// "defaultvalue": ["mo"],
// "columns": 2,
// "gen": {}
// });
// GUI.msg(r) // ['ha','mo']
// r = GUI.selectFromTable({
// title: "select from table example",
// multiple: true,
// list: [
// {
// "job": "too young",
// "name": "elder"
// },
// {
// "job": "too simple",
// "name": "elder"
// },
// {
// "job": "sometimes",
// "name": "elder"
// },
// {
// "job": "naive",
// "name": "elder"
// }
// ],
// gen: function() { function PAUSE() { return true; }}
// });
// GUI.msg(r) // [{job":"sometimes","name":"elder",("job":"naive","name":"elder"]
// r = GUI.snapScreen({
// file: "xxx",
// dir: "/tmp",
// type: "png",
// overwrite: true
// });
// GUI.msg(r) // /tmp/xxx.png
// r = GUI.imageViewer({
// title: "screenshot",
// file: "/tmp/xxx.png",
// defaultsize: [800, 600]
// });
// GUI.msg(r)
// r = GUI.inputBox({
// title: "input box example",
// value: "are you ok?"
// });
// GUI.msg(r) // are you ok?
// r = GUI.showForm({
// title: "form example",
// ui: {
// type: 'ScrollArea', // type: 'ScrollArea',
// property: { widget_resizable: true, frame_shape: 'NoFrame', align: 'Top' }, // property: {widget_resizable: true,frame_shape: 'NoFrame',align: 'Top'},
// child: { // child: {
// type: 'VBoxLayout', // type: 'VBoxLayout',
// property: { margin: 2, spacing: 20, align: 'Top' }, // property: {margin: 2,spacing: 20,align: 'Top'},
// pack: { stretch: 0 }, // pack: {stretch: 0},
// child: [ // child: [{
// {
// type: 'label'
// },
// {
// type: 'label',
// property: { text: ("Partnumber Info") }
// },
// {
// type: "FormGridLayout", // type: "FormGridLayout",
// property: { columns: 4, label_alignment: 'Top | Right', margin: 10, spacing: 20 }, // property: {columns: 1,label_alignment: 'Top | Right',margin: 10,spacing: 20},
// pack: { stretch: 0 }, // pack: {stretch: 0},
// child: [ // child: [
// { // {
// name: 'partnumber', // name: 'table',
// type: 'LineEdit', // type: 'TableView',
// pack: { label: ('Partnumber') }, // property: {},
// property: { enabled: true } // initCallback: function (obj, self) {
// }, // obj.setDataKeyList(["name", "age"]);
// { // obj.setHeaderItem(
// name: 'attrs.iscross', // [
// type: 'ComboBox', // {},
// property: { enabled: true, item_list: [] }, // { name: 'name', display: 'name', resizeMode: 'ResizeToContents', displayRole: '$name' },
// pack: { label: ('Is Cross') } // { name: 'age', display: 'age', resizeMode: 'ResizeToContents', displayRole: '$age' },
// }, // ]
// { // );
// name: 'attrs.pthick',
// type: 'DoubleLineEdit',
// pack: { label: ('Part thickness') },
// property: { enabled: true }
// },
// {
// name: 'attrs.producttype',
// type: 'ComboBox',
// property: { enabled: true, item_list: [] },
// pack: { label: ('Product type') }
// },
// {
// name: 'attrs.weft_direction',
// type: 'ComboBox',
// property: { enabled: true, item_list: [] },
// pack: { label: ('Longitude and latitude') }
// },
// {
// name: 'attrs.structure_code',
// type: 'LineEdit',
// pack: { label: ('Structure') },
// property: { enabled: true }
// },
// {
// name: 'attrs.array_num_on_panel_y',
// type: 'DoubleLineEdit',
// pack: { label: ('Long edge typesetting') },
// property: { enabled: true }
// },
// {
// name: 'attrs.array_num_on_panel_x',
// type: 'DoubleLineEdit',
// pack: { label: ('Short edge typesetting') },
// property: { enabled: true }
// },
// {
// name: 'attrs.pre_partnumber',
// type: 'Chips',
// pack: { label: ('Front partnumber'), column_span: 2 },
// property: { enabled: true }
// },
// {
// name: 'attrs.erp_job_remark',
// type: 'PlainTextEdit',
// property: {
// enabled: true,
// min_row_count: 1,
// vertical_scroll_bar_policy: 'ScrollBarAlwaysOff'
// }, // },
// pack: { label: ('ERP Job Remark'), column_span: 2 }, // setter: function (obj, value, self) {
// if (value != null) {
// obj.loadData(value);
// } else {
// obj.clearData();
// } // }
// ]
// }, // },
// { // getter: function (obj, self) {
// type: 'stretch' // return obj.selectedRowDataMaps();
// }
// } // }
// ] // ]
// }]
// } // }
// }]
// },
item:[{
type: 'ScrollArea',
property: {widget_resizable: true,frame_shape: 'NoFrame',align: 'Top'},
child: {
type: 'VBoxLayout',
property: {margin: 2,spacing: 20,align: 'Top'},
pack: {stretch: 0},
child: [{
type: "FormGridLayout",
property: {columns: 1,label_alignment: 'Top | Right',margin: 10,spacing: 20},
pack: {stretch: 0},
child: [
{
name: 'test1',
type: 'LineEdit',
},
{
name: 'test2',
type: 'ComboBox',
property: {
enabled: true,
item_list: [{name:"aa", text:"aa"}]
}
},
// {
// name: 'table',
// type: 'TableView',
// property: {},
// initCallback: function (obj, self) {
// obj.setDataKeyList(["name", "age"]);
// obj.setHeaderItem(
// [
// {},
// { name: 'name', display: 'name', resizeMode: 'ResizeToContents', displayRole: '$name' },
// { name: 'age', display: 'age', resizeMode: 'ResizeToContents', displayRole: '$age' },
// ]
// );
// }, // },
// data: {}, // setter: function (obj, value, self) {
// runnow: true, // if (value != null) {
// includehide: false, // obj.loadData(value);
// gen: null // } else {
// }); // obj.clearData();
// }
// GUI.msg(r) // obj
// r = GUI.selectLayer({
// title: "+1s",
// filter: ".*", // regular expression
// selectmode: "single", // single, multiple
// context: "all", // all, board, misc
// layertype: "inner", // default type of layertypelist
// defaultsize: [600, 400], // window size
// layermatrix: GEN.getMatrix({job:JOB}),
// layertypelist: [
// {name: "signal", display_name: "signal", filter: function(x) { return x["layer_type"] === "signal"; }},
// {name: "outer", display_name: "Outer", filter: function(x) { return x["layer_type"] === "outer"; }}
// ],
// gen: null
// });
// GUI.msg(r) // [{name:"layer1"}]
// r = GUI.lockUnlockLayer({
// "title": "+1s",
// "layermatrix": {
// "layer1": {
// "row": 1,
// "name": "layer1"
// }, // },
// "layer2": { // getter: function (obj, self) {
// "row": 2, // return obj.selectedRowDataMaps();
// "name": "layer2"
// } // }
// } // }
// }); ]
// GUI.msg(r) // {"layer1":true,"layer2":false} }]
}
}],
data: {
table: tabledata
},
includehide: false,
buttons: [{
stock: "ok",
sensitive: true,
command: function (data) {
// r = GUI.passwordBox({ }
// title: "password box", },
// password: "naive!" {
// }); stock: "cancel",
// GUI.msg(r) // true sensitive: true,
command: function (data) {
r = GUI.msg('调试选择job').selectJobLayer({
layertypelist: [{
name: "mo",
display_name: "MO",
filter: function (x) {
return x.layer_type === "mo";
} }
}, },
{ {
name: "ha", stock: "help",
display_name: "HA", sensitive: true,
filter: function (x) { command: function (data) {
return x.layer_type === "ha"; console.log(data);
} }
} }
], ],
//defaultlayertype: "ha", });
joblist: ["job1", "job2"],
defaultJob: ["job1"], // select by default
steplist: ["step1", "step2", "step3", "step4"],
// defaultstep: "step3",
showstep: true,
selectmode: "single", // single/multiple
layermatrix: {
"layer1": {
name: "layer1",
layer_type: "mo",
row: 1
},
"layer2": {
name: "layer2",
layer_type: "ha",
row: 2
}
},
defaultlayer: ["layer1"]
});
GUI.msg(r) // {layers:['layer2'],step:null,job:'job2',layertype:'null'}
return 'Done'; console.log(r);
} catch (error) { \ No newline at end of file
return 'error'
}
\ No newline at end of file
/* var plugin = require('topsin.gengui');
NAME:
DESCRIPTION: ; var gui = plugin.newGui();
PARAMETER: var item_list = [{name:213, text:123}]
[ r = gui.showForm({
title: "form example",
ui: {
type: 'ScrollArea',
property: { widget_resizable: true, frame_shape: 'NoFrame', align: 'Top' },
child: {
type: 'VBoxLayout',
property: { margin: 2, spacing: 20, align: 'Top' },
pack: { stretch: 0 },
child: [
{ {
name:"step", name: 'attrs.iscross',
title:"step名称", type: 'ComboBox',
type:"LineEdit", property: {
property:{tool_tip:"step名称,默认orig"} enabled: true,
item_list: item_list
}, },
{ pack: { label: ('Is Cross') }
name : 'auto_save',
title : '自动保存',
type : 'RadioBox',
property : {
item_list:[
{name:'yes',text:'YES'},
{name:'no',text:'NO'},
],
tool_tip:'是否自动保存料号开关'
}
}
]
VERSION_HISTORY:
V1.00 2020-06-10 Scott Sun
1.新版本
HELP:
<html><body bgcolor="#DDECFE">
<font size="3" color="#003DB2"><p>功能简介</p></font>
<p> 立碑效应 </p>
<br>
<font size="3" color="#003DB2"><p>参数配置</p></font>
<p> 配置 </p>
<br>
<font size="3" color="#003DB2"><p>注意事项</p></font>
<p> 无 </p>
<br>
</body></html>
*/
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
console.log("==============================>li bei xiao yin start");
// 引入模块 包
var $ = require('topcam.scriptfunc').argv();
var fs = require('fs');
var _ = require('lodash');
var mode = $.ikm ? "topcam" : "aimdfm";
var IKM = $.ikm;
if (IKM==undefined ) { IKM = require('topcam.ikm6')($) }
var GEN = $.gen;
var GUI = $.gui || {};
var Job = $.job || $.job_name;
Job = Job.toLowerCase()
var job = Job
var JobId = $.job_id;
var db = $.db || {}
var PAR = {}
if ($.par) {
PAR = $.par
} else if ($.hasOwnProperty('script_parameter')){
PAR = JSON.parse($.script_parameter);
}
var par = PAR;
if (mode === "aimdfm") {
var database = require("topsin.database");
database.addConnection($.conf.database_conf, "DFM");
var QDfm = database.query("DFM");
$.QDfm = QDfm;
if ($.conf.product_type == "aimdfm") {
QDfm.updateRow({
table: "pdm_aimdfm_task",
data: {
current_process_title: $.process_title
}, },
where: { id: $.task_id } ]
});
}
}
var Status = 'ok';
var resultData = [];
var debug = true;
var default_par = { // par默认参数?
step:"orig",
auto_save: "no"
}
for(var key in default_par){ // 设置默认属性
if (!par.hasOwnProperty(key) || par[key] == ""){
par[key] = default_par[key]
}
}
function NewGUI (gui) {
this.msgBox = function(props){ // title type content button
props = props || {}
return gui.msgBox(props.title || "title",props.type || "info",props.content || "content",props.button || ["ok", "cancel"]);
}
this.selectFromTreeview = gui.selectFromTreeview
this.confirm = function(props) {
props = props || {}
return gui.confirm(props.content || "content",props.button || ["yes", "no"], props.type || "question");
}
this.selectFile = function(props){ // "choose something", "*", true, "file", "/home/abby/fast_io"
props = props || {}
return gui.selectFile(props.title || "choose something",props.filter || "*",props.multiple || false, "file","");
}
this.selectSingle = function(props) {
props = props || {}
return gui.selectSingle({
"title": props.title || "select",
"list": props.list || [],
"default": props["default"] || "",
"columns": props.columns || 2,
"gen":props.gen || GEN
});
}
this.selectMultiple = function(props) {
props = props || {}
return gui.selectMultiple({
"title": props.title || "select",
"list": props.list || [],
"defaultvalue": props["default"] || [""],
"columns": props.columns || 2,
"gen":props.gen || GEN
});
}
this.selectFromTable = gui.selectFromTable
this.snapScreen = gui.snapScreen
this.imageViewer = gui.imageViewer
this.inputBox = gui.inputBox
this.showForm = gui.showForm
this.selectLayer = function(props){
props = props || {}
return gui.selectLayer({
title: props.title || "请选择层",
filter: props.filter || ".*", // regular expression
selectmode: props.selectmode || "multiple", // single, multiple
context: props.context || "all", // all, board, misc
layertype: props.layertype || "signal", // default type of layertypelist
defaultsize: props.defaultsize || [600, 400], // window size
layermatrix: props.layermatrix || props.matrix,
layertypelist: props.layertypelist || [
{name: "all", display_name: "all", filter: function(x) { return x }},
{name: "signal", display_name: "signal", filter: function(x) { return x["layer_type"] === "signal"; }},
{name: "power_ground", display_name: "power_ground", filter: function(x) { return x["layer_type"] === "power_ground"; }},
{name: "mixed", display_name: "mixed", filter: function(x) { return x["layer_type"] === "mixed"; }},
{name: "solder_mask", display_name: "solder_mask", filter: function(x) { return x["layer_type"] === "solder_mask"; }},
{name: "silk_screen", display_name: "silk_screen", filter: function(x) { return x["layer_type"] === "silk_screen"; }},
{name: "solder_paste", display_name: "solder_paste", filter: function(x) { return x["layer_type"] === "solder_paste"; }},
{name: "drill", display_name: "drill", filter: function(x) { return x["layer_type"] === "drill"; }},
{name: "rout", display_name: "rout", filter: function(x) { return x["layer_type"] === "rout"; }},
{name: "document", display_name: "document", filter: function(x) { return x["layer_type"] === "document"; }}
],
gen: props.GEN || GEN
})
}
this.lockUnlockLayer = function(props){
props = props || {}
var tmp = {}
if (props.matrix) {
for (var key in props.matrix) {
var item = props.matrix[key]
tmp[key] = {
row : item.row,
name : item.name
}
}
}
return gui.lockUnlockLayer({
title: props.title || "lockUnlockLayer",
layermatrix:props.layermatrix || tmp
})
}
this.passwordBox = function(props){
props = props || {}
return gui.passwordBox({title:props.title || "password", password:props.password || "1212"})
}
this.selectJobLayer = function (props) {
props = props || {}
return gui.selectJobLayer({
layertypelist: props.layertypelist || [
{name: "all", display_name: "all", filter: function(x) { return x }},
{name: "signal", display_name: "signal", filter: function(x) { return x["layer_type"] === "signal"; }},
{name: "power_ground", display_name: "power_ground", filter: function(x) { return x["layer_type"] === "power_ground"; }},
{name: "mixed", display_name: "mixed", filter: function(x) { return x["layer_type"] === "mixed"; }},
{name: "solder_mask", display_name: "solder_mask", filter: function(x) { return x["layer_type"] === "solder_mask"; }},
{name: "silk_screen", display_name: "silk_screen", filter: function(x) { return x["layer_type"] === "silk_screen"; }},
{name: "solder_paste", display_name: "solder_paste", filter: function(x) { return x["layer_type"] === "solder_paste"; }},
{name: "drill", display_name: "drill", filter: function(x) { return x["layer_type"] === "drill"; }},
{name: "rout", display_name: "rout", filter: function(x) { return x["layer_type"] === "rout"; }},
{name: "document", display_name: "document", filter: function(x) { return x["layer_type"] === "document"; }}
],
//defaultlayertype: "ha",
joblist: props.joblist || [],
defaultJob: props.defaultJob || [], // select by default
steplist: props.steplist || [],
// defaultstep: "step3",
showstep: props.showstep || true,
selectmode: props.selectmode || "multiple", // single/multiple
layermatrix: props.layermatrix || { },
defaultlayer: props.defaultlayer || []
})
} }
}
try {
var gui = new NewGUI(GUI)
var matrix = GEN.getMatrix({job:job})
if (mode === "aimdfm") {
$.QDfm.updateRow({
table: "pdm_aimdfm_task",
data: {
progress: 33.33
}, },
where: { id: $.task_id } data: {},
}); runnow: true,
if (GEN.hasError()) { includehide: false,
Status = 'error'; gen: null
resultData.push({ type: "error", title: "GEN错误!", detail: [{ desc: _.join(GEN.STATUS, "\n") }] }); });
return {
status: Status, console.log(r);
result_data: resultData
};
} else {
resultData.push({ type: "info", title: "操作完成, 请注意检查!" });
return {
status: Status,
result_data: resultData
};
}
}else {
return "Done"
}
} catch (e) {
IKM.msg(_.join(GEN.STATUS, "\n"))
IKM.msg(e)
Status = 'error';
resultData.push({type: "error", title: "脚本执行出错!", detail: [{desc: _.toString(e)}]});
return (mode === "aimdfm") ? {status: Status, result_data: resultData} : "Error";
}
var plugin = require('topsin.gengui'); var plugin = require('topsin.gengui');
var _ = require("lodash")
var gui = plugin.newGui(plugin.__dirname); var gui = plugin.newGui(plugin.__dirname);
function gen() { function gen() {
...@@ -70,7 +70,9 @@ r = gui.showForm({ ...@@ -70,7 +70,9 @@ r = gui.showForm({
} }
}, },
getter: function (obj, self) { getter: function (obj, self) {
return obj.allDataMap(); print((Object.keys(obj)));
return obj.selectedRowDataMaps();
// return obj.allDataMap();
} }
} }
] ]
...@@ -87,6 +89,22 @@ r = gui.showForm({ ...@@ -87,6 +89,22 @@ r = gui.showForm({
"result": "test", "result": "test",
"standard": "test", "standard": "test",
"remark": "test" "remark": "test"
},
{
"id": 2,
"analysis_item": "test2",
"analysis_result": "test2",
"result": "test2",
"standard": "test2",
"remark": "test2"
},
{
"id": 3,
"analysis_item": "test3",
"analysis_result": "test3",
"result": "test3",
"standard": "test3",
"remark": "test3"
} }
] ]
}, },
......
ar plugin = require('topsin.gengui'); var plugin = require('topsin.gengui');
var gui = plugin.newGui(plugin.__dirname); var gui = plugin.newGui(plugin.__dirname);
function gen() { var headers = [
this.PAUSE = function () { {},
console.log("pause"); { name: 'analysis_item', display: 'Analysis Item', resizeMode: 'ResizeToContents', displayRole: '$analysis_item' },
} { name: 'analysis_result', display: 'Analysis Result', resizeMode: 'ResizeToContents', displayRole: '$analysis_result' },
} { name: 'result', display: 'Result', resizeMode: 'ResizeToContents', displayRole: '$result' },
{ name: 'standard', display: 'Standard', resizeMode: 'ResizeToContents', displayRole: '$standard' },
gui.setLang("zhcn"); // zhcn, zhtw, en { name: 'remark', display: 'Remark', resizeMode: 'ResizeToContents', displayRole: '$remark', editRole: '$remark', flagsRole: 'ItemIsEditable|ItemIsEnabled|ItemIsSelectable' }
];
var item_list = [
{ name: "male", icon: "male", text: "男", text_zhcn: "男", text_zhtw: "男" },
{ name: "female", icon: "female", text: "女", text_zhcn: "女", text_zhtw: "女" },
];
r = gui.showForm({ r = gui.showForm({
title: "注册账号", title: "BUG#10475",
size: [600, 400], size: '600x400',
ui: [{ items: {
type: 'ScrollArea', type: 'ScrollArea',
property: { widget_resizable: true, frame_shape: 'NoFrame', align: 'Top' }, property: { widget_resizable: true, frame_shape: 'NoFrame', align: 'Top' },
child: { child: {
...@@ -42,11 +45,7 @@ r = gui.showForm({ ...@@ -42,11 +45,7 @@ r = gui.showForm({
name: 'sex', name: 'sex',
type: 'ComboBox', type: 'ComboBox',
property: { property: {
enabled: true, item_list: [ enabled: true, item_list:item_list
{ name: "male", icon: "male", text: "男", text_zhcn: "男", text_zhtw: "男" },
{ name: "female", icon: "female", text: "女", text_zhcn: "女", text_zhtw: "女" },
{ name: "hideyoshi", icon: "circle-thin", text: "Hideyoshi", text_zhcn: "秀吉", text_tw: "秀吉" }
]
}, },
pack: { label: '性别' } pack: { label: '性别' }
}, },
...@@ -56,63 +55,16 @@ r = gui.showForm({ ...@@ -56,63 +55,16 @@ r = gui.showForm({
property: {}, property: {},
pack: { label: '性别' }, pack: { label: '性别' },
initCallback: function (obj, self) { initCallback: function (obj, self) {
obj.setHeaderItem( obj.setHeaderItem(headers);
[
{},
{ name: 'analysis_item', display: 'Analysis Item', resizeMode: 'ResizeToContents', displayRole: '$analysis_item' },
{ name: 'analysis_result', display: 'Analysis Result', resizeMode: 'ResizeToContents', displayRole: '$analysis_result' },
{ name: 'result', display: 'Result', resizeMode: 'ResizeToContents', displayRole: '$result' },
{ name: 'standard', display: 'Standard', resizeMode: 'ResizeToContents', displayRole: '$standard' },
{ name: 'remark', display: 'Remark', resizeMode: 'ResizeToContents', displayRole: '$remark', editRole: '$remark', flagsRole: 'ItemIsEditable|ItemIsEnabled|ItemIsSelectable' }
]
);
obj.setDataKeyList(["id", "analysis_item", "analysis_result", "result", "standard", "remark"]); obj.setDataKeyList(["id", "analysis_item", "analysis_result", "result", "standard", "remark"]);
obj.setPrimaryKey("id"); obj.setPrimaryKey("id");
},
setter: function (obj, value, self) {
if (value != null) {
obj.loadData(value);
} else {
obj.clearData();
}
} }
} }
] ]
} }
] ]
} }
}],
data: {
username: "elder",
password: "nαive!",
sex: "male"
},
includehide: false,
buttons: [
{
stock: "ok",
sensitive: true,
command: function (data) {
}
},
{
stock: "cancel",
sensitive: true,
command: function (ddata) {
}
},
{
stock: "help",
sensitive: true,
command: function (data) {
console.log(data);
}
} }
],
hook: function (data) { },
gen: new gen()
}); });
console.log(r); print(JSON.stringify(r, null, ' '));
\ No newline at end of file
var plugin = require('topsin.gengui');
var gui = plugin.newGui(plugin.__dirname);
var data = [{
name: "123",
text: 123
}]
gui._extra = [{name:13, text:23}]
var r = gui.showForm({
title: "注册账号",
size: [600, 400],
ui: function (self) {
return [{
type: 'ScrollArea',
property: {
widget_resizable: true,
frame_shape: 'NoFrame',
align: 'Top'
},
child: {
type: 'VBoxLayout',
property: {
margin: 2,
spacing: 20,
align: 'Top'
},
pack: {
stretch: 0
},
child: [{
type: "FormGridLayout",
property: {
columns: 1,
label_alignment: 'Top | Right',
margin: 10,
spacing: 20
},
pack: {
stretch: 0
},
child: [{
name: 'test',
type: 'ComboBox',
pack: {
label: "用户名"
},
property: {
enabled: true,
item_list: self._extra
}
}]
}]
}
}]
} ,
data: {},
includehide: false,
buttons: [{
stock: "ok",
sensitive: true,
command: function (data) {
}
},
{
stock: "cancel",
sensitive: true,
command: function (data) {
}
},
{
stock: "help",
sensitive: true,
command: function (data) {
console.log(data);
}
}
],
});
console.log(r);
\ No newline at end of file
...@@ -827,16 +827,16 @@ try { ...@@ -827,16 +827,16 @@ try {
var smdInfo; var smdInfo;
try { try {
if(!analysis_obj.matrixInfo.mOuters[0].solderL){throw "no mask"} if(!analysis_obj.matrixInfo.mOuters[0].solderL){throw "no mask"}
smdInfo = smdAnalysis({job:job,steplist:[pcs_step],layers:analysis_obj.matrixInfo.mOuters,attr:".smd"}) smdInfo = smdAnalysis({job:job,steplist:[pcs_step],layers:analysis_obj.matrixInfo.mOuters,attr:".smd"});
} catch (msg) { } catch (msg) {
console.log("smdInfo:error:"+msg) console.log("smdInfo:error:"+msg);
} }
// bga // bga
console.log("===================================> 7 bga info") console.log("===================================> 7 bga info");
var bgaInfo; var bgaInfo;
bgaInfo = bgaAnalysis({job:job,steplist:[pcs_step],layers:analysis_obj.matrixInfo.mOuters,attr:".bga"}) bgaInfo = bgaAnalysis({job:job,steplist:[pcs_step],layers:analysis_obj.matrixInfo.mOuters,attr:".bga"});
// 保存 // 保存
console.log("============== =====================> 8 save bga smd info") console.log("============== =====================> 8 save bga smd info");
var save_info = [smdInfo, analysis_obj.jobInfo.laser_info,bgaInfo]; // 保存 smd 和 bga数据 var save_info = [smdInfo, analysis_obj.jobInfo.laser_info,bgaInfo]; // 保存 smd 和 bga数据
save_info.forEach(function(item){ save_info.forEach(function(item){
if(JSON.stringify(item)!= "{}" && item){ if(JSON.stringify(item)!= "{}" && item){
...@@ -847,21 +847,21 @@ try { ...@@ -847,21 +847,21 @@ try {
layer: key, layer: key,
layerinfohash: val layerinfohash: val
}) })
}) });
} }
}) });
console.log("================================> 9 copper_percent signal drill") console.log("================================> 9 copper_percent signal drill");
// 分析layer info // 分析layer info
var stepList = [pcs_step]; var stepList = [pcs_step];
var oChecklistName = "mychecklist"; var oChecklistName = "mychecklist";
var signalLayers = analysis_obj.matrixInfo.mSignals.map(function(v){return v.name}); var signalLayers = analysis_obj.matrixInfo.mSignals.map(function(v){return v.name});
var drillLayers = analysis_obj.matrixInfo.mDrills.map(function(v){return v.name}); var drillLayers = analysis_obj.matrixInfo.mDrills.map(function(v){return v.name});
console.log("=============================> 13 save copperArea copper_distribution") console.log("=============================> 13 save copperArea copper_distribution");
var copper_distribution_steplist= [pcs_step, array_step]; var copper_distribution_steplist= [pcs_step, array_step];
copper_distribution_steplist.forEach(function(step){ copper_distribution_steplist.forEach(function(step){
if(step){ if(step){
GEN.openStep({ job: job, name: step }) GEN.openStep({ job: job, name: step });
// 铜面积 分step // 铜面积 分step
var copper_percent_tmp = signalLayers.map(function(v){ var copper_percent_tmp = signalLayers.map(function(v){
var tmp = {layer:v} var tmp = {layer:v}
...@@ -882,9 +882,9 @@ try { ...@@ -882,9 +882,9 @@ try {
array_copper_distribution: item.copper_percent array_copper_distribution: item.copper_percent
} }
} }
save_layerinfo(save_info2) save_layerinfo(save_info2);
}) })
GEN.closeStep() GEN.closeStep();
} }
}) })
// var info = { // var info = {
...@@ -1051,10 +1051,10 @@ try { ...@@ -1051,10 +1051,10 @@ try {
drl_pad_top: item.drl_pad_top, drl_pad_top: item.drl_pad_top,
drl_pad_bot: item.drl_pad_bot, drl_pad_bot: item.drl_pad_bot,
} }
}) });
}) });
console.log("==================================> chk signals analysis") console.log("==================================> chk signals analysis");
// 删除线路层的外形线 // 删除线路层的外形线
if(GEN.isLayerExists({job:job, layer:"out_rout"})){GEN.deleteLayer({job:job, layer:"out_rout"})} if(GEN.isLayerExists({job:job, layer:"out_rout"})){GEN.deleteLayer({job:job, layer:"out_rout"})}
......
...@@ -743,7 +743,7 @@ function autoUn(path, dirname, dir) { ...@@ -743,7 +743,7 @@ function autoUn(path, dirname, dir) {
fs.mkdir(dirname); fs.mkdir(dirname);
if(pwd){ if(pwd){
process.exec('/opt/rar/unrar', ['x' , path, dirname, "-o+","-p"+pwd]) process.exec('/opt/rar/unrar', ['x' , path, dirname, "-o+","-p"+pwd]);
} else { } else {
process.exec('/opt/rar/unrar', ['x' , path, dirname, "-o+"]) process.exec('/opt/rar/unrar', ['x' , path, dirname, "-o+"])
} }
......
...@@ -113,8 +113,8 @@ try { ...@@ -113,8 +113,8 @@ try {
if (/yes/ig.test(par.auto_save)) { if (/yes/ig.test(par.auto_save)) {
GEN.checkInout({ job: job, mode: "out" }); GEN.checkInout({ job: job, mode: "out" });
GEN.saveJob({ job: job }); GEN.saveJob({ job: job });
}
GEN.checkInout({ job: job, mode: "in" }); GEN.checkInout({ job: job, mode: "in" });
}
// 结尾返回 固定写法 // 结尾返回 固定写法
var Return = "Done" var Return = "Done"
...@@ -132,7 +132,7 @@ try { ...@@ -132,7 +132,7 @@ try {
resultData.push(tmperr); resultData.push(tmperr);
Return = { status: Status, result_data: resultData }; Return = { status: Status, result_data: resultData };
} }
return Return _Return_Label_ = Return
} catch (e) { } catch (e) {
if(GEN.STATUS.length > 0) { if(GEN.STATUS.length > 0) {
IKM.msg(GEN.STATUS.join("\n")); IKM.msg(GEN.STATUS.join("\n"));
...@@ -140,5 +140,47 @@ try { ...@@ -140,5 +140,47 @@ try {
IKM.msg(e); IKM.msg(e);
Status = 'error'; Status = 'error';
resultData.push({ type: "error", title: "脚本执行出错!", detail: [{ desc: _.toString(e) }] }); resultData.push({ type: "error", title: "脚本执行出错!", detail: [{ desc: _.toString(e) }] });
return (mode === "aimdfm") ? { status: Status, result_data: resultData } : "Error"; _Return_Label_ = (mode === "aimdfm") ? { status: Status, result_data: resultData } : "Error";
}
<<<<<<< HEAD
=======
/**
* 获取层别
* @param {Object} 过滤选项
* @returns {Array}
*/
function getLayer(props) {
if (!props) {
props = {};
}
var matrix = GEN.getMatrix({ job: job });
return Object.keys(matrix).reduce(function (a, b) {
var info = matrix[b];
var ret = true;
for (var _key in props) {
if (info[_key]) {
if (/object string|object number/ig.test({}.toString.call(props[_key]))) {
if (props[_key] != info[_key]) {
ret = false;
}
}
if (/object RegExp/ig.test({}.toString.call(props[_key]))) {
if (!props[_key].test(info[_key])) {
ret = false;
}
}
if (/object function/ig.test({}.toString.call(props[_key]))) {
if (!props[_key](info[_key])) {
ret = false;
}
}
}
}
if (ret) {
a.push(props.res == "info" ? info : b);
}
return a;
}, []);
} }
>>>>>>> 56f0155198c943a1cde2a6cd9d5b958e8b6f736c
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment