2025-06-23 21:48:40 +08:00

79 lines
2.7 KiB
Go

package production
import (
"strings"
"shylinux.com/x/ice"
kit "shylinux.com/x/toolkits"
"shylinux.com/x/operation/src/production/model"
)
type Date struct {
Tables
order string `data:"9"`
role string `data:"leader,worker"`
discuss string `name:"discuss meet_type*:select issue_uid*:select meet_link* begin_time*:select@date" role:"leader"`
}
func (s Date) Inputs(m *ice.Message, arg ...string) {
switch arg[0] {
case model.ISSUE_UID:
args := m.OptionSimple(model.STORY_UID)
switch MeetType(kit.Int(m.Option(model.MEET_TYPE))) {
case MeetTalk:
args = append(args, model.STATUS, kit.Format(IssueCreate))
case MeetValue:
args = append(args, model.STATUS, kit.Format(IssueSubmit))
case MeetCheck:
s.Fields(m, model.ISSUE_UID, model.TITLE, model.USER_UID).Limit(m, 300)
m.Cmdy(Design{}, s.Select, args, model.STATUS, IssueSubmit)
m.RenameAppend(model.ISSUE_UID, arg[0])
m.DisplayInputKeyNameIconTitle()
return
case MeetPlan:
args = append(args, model.STATUS, kit.Format(IssueCreate))
}
s.InputsUID(m, arg, Issue{}, args...)
default:
s.Tables.Inputs(m, arg...)
}
}
func (s Date) Discuss(m *ice.Message, arg ...string) {
msg := m.Cmd(Issue{}, s.Select, model.UID, m.Option(model.ISSUE_UID), m.OptionSimple(model.STORY_UID))
m.Cmdy(Meet{}, s.Create, m.OptionSimple(model.ISSUE_UID), arg, model.FROM_USER_UID, m.Option(model.USER_UID), model.TO_USER_UID, msg.Append(model.USER_UID),
msg.AppendSimple(model.TITLE), model.CONTENT, msg.Append(model.ISSUE_CONTENT))
}
func (s Date) List(m *ice.Message, arg ...string) {
s.Limit(m, 300)
if msg := s.SelectJoinAuth(m.Cmd(story{}, s.Select, model.UID, arg[0])); msg.Append("auth_status") == "issued" {
m.Cmdy(Meet{}, s.Select, msg.AppendSimple(model.COMPANY_UID))
} else {
m.Cmdy(Meet{}, s.Select, model.STORY_UID, arg[0])
}
s.SelectJoin(m, story{}, model.NAME, model.INFO)
m.RenameAppend(model.TO_USER_UID, model.USER_UID)
m.Action().Display("").DisplayCSS("")
s.head(m)
}
func init() { ice.TeamCtxCmd(Date{}) }
func (s Date) head(m *ice.Message, arg ...string) {
s.SettingSelect(m)
head := []string{}
for i := -kit.Int(m.OptionDefault("date_begin", kit.Select(m.Option(DATE_BEGIN_DAYS), "0", m.IsMobileUA()))); i < kit.Int(m.OptionDefault("date_end", m.Option(DATE_END_DAYS))); i++ {
head = append(head, strings.Split(m.Time(kit.Format("%dh", i*24)), " ")[0])
}
list := []string{}
for i := kit.Int(m.OptionDefault("date_start", m.Option(DATE_START_HOURS))) * 2; i < kit.Int(m.OptionDefault("date_stop", m.Option(DATE_STOP_HOURS)))*2; i++ {
if i%2 == 0 {
list = append(list, kit.Format("%2d:00", i/2))
} else {
list = append(list, kit.Format("%2d:30", i/2))
}
}
m.Option("head", strings.Join(head, ","))
m.Option("list", strings.Join(list, ","))
}