You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
229 lines
6.4 KiB
Go
229 lines
6.4 KiB
Go
package main
|
|
|
|
import (
|
|
"flx/DAL"
|
|
"flx/Model"
|
|
"image/color"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/canvas"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/widget"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func SetCardWindowControl() {
|
|
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Error("SetCardWindowControl:", r)
|
|
}
|
|
}()
|
|
|
|
CardWindow = NAPP.NewWindow("参会人员卡号设置")
|
|
ALLStaffinfo = DAL.GetAllStaffInfoAllCPCS()
|
|
Smainview = container.NewMax()
|
|
Smainview.Add(SCDefaultLayout())
|
|
CardWindow.SetContent(Smainview)
|
|
// MainWindow.Maxwindow()
|
|
// CardWindow.Resize(fyne.NewSize(1600, 800), 100, 100)
|
|
CardWindow.Resize(fyne.NewSize(1920*BigPara, 800*BigPara))
|
|
|
|
// MainWindow.SetMasterf()
|
|
CardWindow.SetPadded(false)
|
|
CardWindow.Show()
|
|
}
|
|
|
|
var ALLStaffinfo []Model.T_Staff
|
|
|
|
// 人员列表
|
|
var GdPersonlist *widget.Table
|
|
|
|
// 当前选择cellID
|
|
var CurrentSCID widget.TableCellID
|
|
|
|
func SCDefaultLayout() fyne.CanvasObject {
|
|
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Error("SCDefaultLayout:", r)
|
|
}
|
|
}()
|
|
|
|
btnStart := widget.NewButton("开始发卡", func() {
|
|
var NextID widget.TableCellID = widget.TableCellID{Row: 0, Col: 4}
|
|
GdPersonlist.Select(NextID)
|
|
//
|
|
IsStartCard = true
|
|
OpenDevice()
|
|
})
|
|
btnStart.Resize(fyne.NewSize(200*BigPara, 50*BigPara))
|
|
btnStart.Move(fyne.NewPos(1100*BigPara, 250*BigPara))
|
|
|
|
btnEnd := widget.NewButton("结束发卡", func() {
|
|
IsStartCard = false
|
|
CloseDevice()
|
|
})
|
|
btnEnd.Resize(fyne.NewSize(200*BigPara, 50*BigPara))
|
|
btnEnd.Move(fyne.NewPos(1350*BigPara, 250*BigPara))
|
|
|
|
btnReset := widget.NewButton("重置卡号", func() {
|
|
ALLStaffinfo[CurrentSCID.Row].St_ViceCardNum = ""
|
|
DAL.UpdateStaffInfo(&(ALLStaffinfo[CurrentSCID.Row]))
|
|
GdPersonlist.Refresh()
|
|
GdPersonlist.ScrollTo(CurrentSCID)
|
|
})
|
|
btnReset.Resize(fyne.NewSize(200*BigPara, 50*BigPara))
|
|
btnReset.Move(fyne.NewPos(1100*BigPara, 350*BigPara))
|
|
|
|
btnClear := widget.NewButton("清除卡号", func() {
|
|
for i := 0; i < len(ALLStaffinfo); i++ {
|
|
ALLStaffinfo[i].St_ViceCardNum = ""
|
|
DAL.UpdateStaffInfo(&(ALLStaffinfo[i]))
|
|
}
|
|
GdPersonlist.Refresh()
|
|
GdPersonlist.ScrollTo(CurrentSCID)
|
|
})
|
|
btnClear.Resize(fyne.NewSize(200*BigPara, 50*BigPara))
|
|
btnClear.Move(fyne.NewPos(1350*BigPara, 350*BigPara))
|
|
|
|
btnUp := widget.NewButton("选择上移", func() {
|
|
if 0 < CurrentSCID.Row {
|
|
var NextID widget.TableCellID = widget.TableCellID{Row: CurrentSCID.Row - 1, Col: 4}
|
|
GdPersonlist.Select(NextID)
|
|
}
|
|
})
|
|
btnUp.Resize(fyne.NewSize(200*BigPara, 50*BigPara))
|
|
btnUp.Move(fyne.NewPos(1100*BigPara, 450*BigPara))
|
|
|
|
btnDown := widget.NewButton("选择下移", func() {
|
|
if len(ALLStaffinfo) > CurrentSCID.Row {
|
|
var NextID widget.TableCellID = widget.TableCellID{Row: CurrentSCID.Row + 1, Col: 4}
|
|
GdPersonlist.Select(NextID)
|
|
}
|
|
})
|
|
btnDown.Resize(fyne.NewSize(200*BigPara, 50*BigPara))
|
|
btnDown.Move(fyne.NewPos(1350*BigPara, 450*BigPara))
|
|
|
|
GdPersonlist = widget.NewTable(
|
|
func() (int, int) { return len(ALLStaffinfo), 7 },
|
|
func() fyne.CanvasObject {
|
|
return widget.NewLabel("")
|
|
},
|
|
func(id widget.TableCellID, cell fyne.CanvasObject) {
|
|
label := cell.(*widget.Label)
|
|
|
|
switch id.Col {
|
|
case 0:
|
|
label.SetText(ALLStaffinfo[id.Row].St_Num)
|
|
label.TextStyle.Bold = false
|
|
case 1:
|
|
label.SetText(ALLStaffinfo[id.Row].St_Name)
|
|
label.TextStyle.Bold = true
|
|
case 2:
|
|
label.SetText(ALLStaffinfo[id.Row].Ca_Name)
|
|
case 3:
|
|
label.SetText(ALLStaffinfo[id.Row].Gr_Name)
|
|
case 4:
|
|
label.SetText(ALLStaffinfo[id.Row].St_ViceCardNum)
|
|
case 5:
|
|
label.SetText(ALLStaffinfo[id.Row].St_ViceCardNumA)
|
|
case 6:
|
|
label.SetText(ALLStaffinfo[id.Row].St_ViceCardNumB)
|
|
}
|
|
})
|
|
GdPersonlist.OnSelected = func(id widget.TableCellID) {
|
|
CurrentSCID = id
|
|
}
|
|
|
|
GdPersonlist.SetColumnWidth(0, 140*BigPara)
|
|
GdPersonlist.SetColumnWidth(1, 140*BigPara)
|
|
GdPersonlist.SetColumnWidth(2, 140*BigPara)
|
|
GdPersonlist.SetColumnWidth(3, 140*BigPara)
|
|
GdPersonlist.SetColumnWidth(4, 140*BigPara)
|
|
GdPersonlist.SetColumnWidth(5, 140*BigPara)
|
|
GdPersonlist.SetColumnWidth(6, 150*BigPara)
|
|
GdPersonlist.Resize(fyne.NewSize(1000*BigPara, 700*BigPara))
|
|
GdPersonlist.Move(fyne.NewPos(50*BigPara, 100*BigPara))
|
|
|
|
lblNume := canvas.NewText("编号", color.Black)
|
|
lblNume.Resize(fyne.NewSize(140*BigPara, 50*BigPara))
|
|
lblNume.Move(fyne.NewPos(50*BigPara, 50*BigPara))
|
|
lblNume.Alignment = fyne.TextAlignCenter
|
|
lblNume.TextSize = 24 * BigPara
|
|
|
|
lblName := canvas.NewText("姓名", color.Black)
|
|
lblName.Resize(fyne.NewSize(140*BigPara, 50*BigPara))
|
|
lblName.Move(fyne.NewPos(190*BigPara, 50*BigPara))
|
|
lblName.Alignment = fyne.TextAlignCenter
|
|
lblName.TextSize = 24 * BigPara
|
|
|
|
lblType := canvas.NewText("类别", color.Black)
|
|
lblType.Resize(fyne.NewSize(140*BigPara, 50*BigPara))
|
|
lblType.Move(fyne.NewPos(330*BigPara, 50*BigPara))
|
|
lblType.Alignment = fyne.TextAlignCenter
|
|
lblType.TextSize = 24 * BigPara
|
|
|
|
lblGroup := canvas.NewText("分组", color.Black)
|
|
lblGroup.Resize(fyne.NewSize(140*BigPara, 50*BigPara))
|
|
lblGroup.Move(fyne.NewPos(470*BigPara, 50*BigPara))
|
|
lblGroup.Alignment = fyne.TextAlignCenter
|
|
lblGroup.TextSize = 24 * BigPara
|
|
|
|
lblCardNum := canvas.NewText("卡号", color.Black)
|
|
lblCardNum.Resize(fyne.NewSize(140*BigPara, 50*BigPara))
|
|
lblCardNum.Move(fyne.NewPos(610*BigPara, 50*BigPara))
|
|
lblCardNum.Alignment = fyne.TextAlignCenter
|
|
lblCardNum.TextSize = 24 * BigPara
|
|
|
|
lblMCardNum := canvas.NewText("主卡", color.Black)
|
|
lblMCardNum.Resize(fyne.NewSize(140*BigPara, 50*BigPara))
|
|
lblMCardNum.Move(fyne.NewPos(750*BigPara, 50*BigPara))
|
|
lblMCardNum.Alignment = fyne.TextAlignCenter
|
|
lblMCardNum.TextSize = 24 * BigPara
|
|
|
|
lblSCardNum := canvas.NewText("备卡", color.Black)
|
|
lblSCardNum.Resize(fyne.NewSize(140*BigPara, 50*BigPara))
|
|
lblSCardNum.Move(fyne.NewPos(890*BigPara, 50*BigPara))
|
|
lblSCardNum.Alignment = fyne.TextAlignCenter
|
|
lblSCardNum.TextSize = 24 * BigPara
|
|
|
|
content := container.NewWithoutLayout(
|
|
lblNume,
|
|
lblName,
|
|
lblType,
|
|
lblGroup,
|
|
lblCardNum,
|
|
lblMCardNum,
|
|
lblSCardNum,
|
|
btnStart,
|
|
btnEnd,
|
|
btnReset,
|
|
btnClear,
|
|
btnUp,
|
|
btnDown,
|
|
GdPersonlist,
|
|
)
|
|
return content
|
|
|
|
}
|
|
|
|
func UpdatePersonCardNum(cardnum string) {
|
|
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Error("UpdatePersonCardNum:", r)
|
|
}
|
|
}()
|
|
|
|
ALLStaffinfo[CurrentSCID.Row].St_ViceCardNum = cardnum
|
|
DAL.UpdateStaffInfo(&ALLStaffinfo[CurrentSCID.Row])
|
|
|
|
GdPersonlist.Refresh()
|
|
if len(ALLStaffinfo) > CurrentSCID.Row {
|
|
var NextID widget.TableCellID = widget.TableCellID{Row: CurrentSCID.Row + 1, Col: 4}
|
|
GdPersonlist.Select(NextID)
|
|
}
|
|
GdPersonlist.ScrollTo(CurrentSCID)
|
|
}
|