多选下拉框的一个小例子

nanyi2025 3天前 183

import fonts.fontAwesome; 
import fonts.ionicons;
import win.ui;
/*DSG{{*/
var winform = win.form(text="多选下拉框示例";right=760;bottom=328;bgcolor=0x82A112)
winform.add(
cklDept={cls="checklist";left=48;top=252;right=567;bottom=437;border=1;hide=1;items={};z=4};
edtDept={cls="edit";left=48;top=222;right=537;bottom=252;edge=1;multiline=1;readonly=1;z=1};
edtMsg={cls="edit";left=48;top=58;right=542;bottom=166;edge=1;multiline=1;style=1539;z=5};
plusDropdown={cls="plus";text='\uF106';left=540;top=226;right=567;bottom=248;color=0xFFFFFF;font=LOGFONT(h=-18;name='FontAwesome');notify=1;z=7};
plusPush={cls="plus";text="推送";left=613;top=230;right=727;bottom=274;bgcolor=0xFFFFFF;color=0x78A854;font=LOGFONT(h=-16);iconStyle={align="left";font=LOGFONT(h=-16;name='Ionicons');padding={left=20}};iconText='\uF1DD';notify=1;textPadding={left=30};z=3};
staTip={cls="static";text="信息推送成功!";left=51;top=298;right=295;bottom=316;color=0xA0FFD2;hide=1;transparent=1;z=8};
static={cls="static";text="选择推送信息的部门";left=48;top=195;right=237;bottom=220;color=0xFFFFFF;transparent=1;z=2};
static2={cls="static";text="信息内容";left=48;top=32;right=237;bottom=57;color=0xFFFFFF;transparent=1;z=6}
)
/*}}*/

var tabDept = {
    {deptId="1001", deptName="综合人事部"};
    {deptId="1002", deptName="财务部"};
    {deptId="1003", deptName="市场部"};
    {deptId="1004", deptName="研发部"};
    {deptId="1005", deptName="客服部"};
}

for(i=1; #tabDept; 1){
    winform.cklDept.addItem(tabDept[i].deptName)
}

winform.cklDept.setChecked(1)
winform.edtDept.text=tabDept[1].deptName
var pushDeptId=tabDept[1].deptId

winform.edtMsg.text="为推行项目生产进度,解决生产中遇到的问题,经研究,决定召开第三季度项目生产推进会。"

var cklShow = false;
winform.plusDropdown.oncommand = function(id, event){
    cklShow = !cklShow;  // Toggle the visibility of the checklist
    winform.plusDropdown.text = cklShow ? '\uF107' : '\uF106';  // Change icon based on state
    winform.cklDept.hide = !cklShow;  // Show or hide the checklist based on state
    winform.cklDept.orphanWindow()
}

winform.cklDept.onCheckedChanged = function(checked,item){
    var tabDeptChecked = winform.cklDept.checked
    var deptName = {}
    var tabPushDept={}
    for(i=1; #tabDeptChecked; 1){
        deptName[i] = tabDept[tabDeptChecked[i]].deptName
        table.push(tabPushDept,tabDept[tabDeptChecked[i]].deptId)
    }
    winform.edtDept.text = string.join(deptName, ";")
    pushDeptId=string.join(tabPushDept, ";")
}

winform.wndproc = function(hwnd,message,wParam,lParam){
    if(message==0x202/*_WM_LBUTTONUP*/){
        winform.cklDept.hide = true;
        winform.plusDropdown.text = '\uF106';  // Change icon to closed
        cklShow = false;
    };
};

winform.plusPush.oncommand = function(id,event){
	import win.dlg.message
	var pushDeptName=winform.edtDept.text
	var pushMsg=winform.edtMsg.text
	var pushAsk=winform.msgAsk("推送部门:"++pushDeptName++"("++pushDeptId++")"++'\r\n\r\n'++"推送内容:"++pushMsg)
	if(pushAsk){
		thread.delay(500)
		winform.staTip.text="信息推送成功! "++tostring(time.now())
		winform.staTip.hide=false
		winform.msgOk("信息推送成功!",800)
	}
}

winform.plusPush.skin({
	background={
		active=0xFFFFFFFF;
		default=0xFFFFFFFF;
		disabled=0xFF939393;
		hover=0xFFFFFFFF		
	};
	color={
		default=0xFF54A878;
		disabled=0xFF6D6D6D;
		hover=0xFF008A47		
	}
})

winform.show();
win.loopMessage();

最新回复 (1)
  • demo 2天前
    0 2
    非常接地气的设计,平常我们使用中,实际下拉展开树形选框比较常用一些。
返回
发新帖