From dc653f51515ae6ae69c6394fbc877d68eacf7f97 Mon Sep 17 00:00:00 2001 From: shy Date: Wed, 14 May 2025 17:41:00 +0800 Subject: [PATCH] add some --- src/operation/common.go | 2 - src/production/care.go | 15 +++++--- src/production/care.js | 1 + src/production/common.go | 49 +++++++++++++++---------- src/production/deal.go | 3 +- src/production/design.go | 8 +++- src/production/design.js | 6 ++- src/production/issue.go | 2 +- src/production/issue.js | 1 + src/production/meet.go | 11 +++--- src/production/meet.js | 4 ++ src/production/model/model.go | 1 + src/production/portal.json | 9 +++-- src/production/take.css | 4 ++ src/production/take.go | 69 ++++++++++++++++++++++++----------- src/production/take.js | 17 +++++---- 16 files changed, 133 insertions(+), 69 deletions(-) create mode 100644 src/production/take.css diff --git a/src/operation/common.go b/src/operation/common.go index 1214772..afbeadd 100644 --- a/src/operation/common.go +++ b/src/operation/common.go @@ -39,8 +39,6 @@ func (s Table) RewriteAppend(m *ice.Message, arg ...string) *ice.Message { value = ClusterStatus(kit.Int(value)).String() case model.TEMPLATE_STATUS: value = TemplateStatus(kit.Int(value)).String() - case model.PRICE: - value = kit.Format("%.2f", kit.Float(value)/100) } return value }) diff --git a/src/production/care.go b/src/production/care.go index 11b620d..ccb3435 100644 --- a/src/production/care.go +++ b/src/production/care.go @@ -41,6 +41,11 @@ func (s care) List(m *ice.Message, arg ...string) { deal += kit.Int(value[model.PRICE]) }) m.Push("已支付", kit.Format(deal/100)) + check := func(target ice.Any, score int) int { + return m.Cmd(target, s.Select, model.USER_UID, value[model.USER_UID], model.SCORE, score).Length() + } + m.Push("一星", check(Issue{}, 1)+check(Design{}, 1)) + m.Push("五星", check(Issue{}, 5)+check(Design{}, 5)) m.Push(model.UID, value[model.USER_UID]) }) if m.Action().Display(""); m.FieldsIsDetail() { @@ -51,15 +56,13 @@ func (s care) List(m *ice.Message, arg ...string) { } func (s care) IssueList(m *ice.Message, arg ...string) { s.Orders(m, model.STATUS, model.DESIGN_COUNT, model.TASK_COUNT, s.Desc(model.CREATED_AT)).Limit(m, 300) - m.Cmdy(Issue{}, s.Select, model.USER_UID, m.Option(model.UID)) - m.RenameAppend(model.STORY_UID, model.PLACE_UID).Options("_other_cmd", ice.GetTypeKey(Issue{})).Display("issue.js") - s.SelectJoinUser(m) + s.OtherList(m, Issue{}, model.USER_UID, m.Option(model.UID)) + m.RenameAppend(model.STORY_UID, model.PLACE_UID) } func (s care) DesignList(m *ice.Message, arg ...string) { s.Orders(m, model.STATUS, s.Desc(model.CREATED_AT)).Limit(m, 300) - m.Cmdy(Design{}, s.Select, model.USER_UID, m.Option(model.UID)) - m.RenameAppend(model.STORY_UID, model.PLACE_UID).Options("_other_cmd", ice.GetTypeKey(Design{})).Display("design.js") - s.SelectJoinUser(m) + s.OtherList(m, Design{}, model.USER_UID, m.Option(model.UID)) + m.RenameAppend(model.STORY_UID, model.PLACE_UID) } func init() { ice.TeamCtxCmd(care{}) } diff --git a/src/production/care.js b/src/production/care.js index ee84900..179041a 100644 --- a/src/production/care.js +++ b/src/production/care.js @@ -4,6 +4,7 @@ Volcanos(chat.ONIMPORT, { {view: html.TITLE, list: [ value.user_name, can.onimport.unitView(can, value, "已支付", "元"), + can.onimport.unitView(can, value, "一星", "个"), can.onimport.titleAction(can, value), ]}, {view: html.STATUS, list: [ diff --git a/src/production/common.go b/src/production/common.go index 9e3fab2..cfa6b08 100644 --- a/src/production/common.go +++ b/src/production/common.go @@ -38,6 +38,7 @@ type Table struct { dealList string `name:"dealList" role:"worker"` preview string `name:"preview" role:"worker"` program string `name:"program" role:"worker"` + setScore string `name:"setScore score" role:"leader" help:"评分"` } func (s Table) Inputs(m *ice.Message, arg ...string) { @@ -164,12 +165,18 @@ func (s Table) PushIssueButton(m *ice.Message, value ice.Maps, user_uid string, if isWorker { button = append(button, s.Preview) } + if isCreator && value[model.SCORE] == "0" { + button = append(button, s.SetScore) + } if isWorker { button = append(button, arg...) } kit.If(m.FieldsIsDetail(), func() { s.DoneMessage(m) }) case IssueCancel: - if isLeader { + if isCreator && value[model.SCORE] == "0" { + button = append(button, s.SetScore) + } + if isCreator { button = append(button, s.Trash) } } @@ -224,6 +231,9 @@ func (s Table) StatusCount(m *ice.Message, arg ...string) { }) } } +func (s Table) SetScore(m *ice.Message, arg ...string) { + s.Update(m, arg, m.OptionSimple(model.UID, model.STORY_UID)...) +} func (s Table) Reject(m *ice.Message, arg ...string) { s.changeStatus(m, IssueCreate, IssueRejected) } @@ -284,17 +294,19 @@ func (s Table) OtherCreate(m *ice.Message, target ice.Any, arg ...string) { m.Cmdy(target, s.Create, arg) kit.If(!m.IsErr(), func() { m.ProcessField(target, []string{m.Option(model.STORY_UID), m.Result()}) }) } -func (s Table) OtherList(m *ice.Message, target ice.Any, arg ...string) *ice.Message { - m.Cmdy(target, s.Select, m.OptionSimple(model.STORY_UID), m.CommandKey()+"_uid", m.Option(model.UID)) - if m.ActionKeyIsIn(s.MeetList, s.DealList) { - if s.IsLeader(m) { - m.RenameAppend(model.TO_USER_UID, model.USER_UID) - } else { - m.RenameAppend(model.FROM_USER_UID, model.USER_UID) - } - } +func (s Table) OtherList(m *ice.Message, target ice.Any, arg ...string) { + m.Cmdy(target, s.Select, arg).Display(kit.Select("", strings.Split(ice.GetTypeKey(target), "."), -1) + ".js") m.Option("_other_cmd", ice.GetTypeKey(target)) - s.SelectJoinUser(m) +} +func (s Table) commonOtherList(m *ice.Message, target ice.Any, arg ...string) *ice.Message { + if m.Option(model.ISSUE_UID) == "" { + s.OtherList(m, target, kit.Simple(m.CommandKey()+"_uid", m.Option(model.UID))...) + } else if ice.GetTypeKey(target) == ice.GetTypeKey(Issue{}) { + s.OtherList(m, target, model.UID, m.Option(model.ISSUE_UID)) + } else { + s.OtherList(m, target, model.ISSUE_UID, m.Option(model.ISSUE_UID)) + } + m.RenameAppend(model.TO_USER_UID, model.USER_UID) return m } func (s Table) OtherListCmd(m *ice.Message, arg ...ice.Any) *ice.Message { @@ -316,29 +328,27 @@ func (s Table) otherListButton(m *ice.Message, arg ...string) { }) } func (s Table) IssueList(m *ice.Message, arg ...string) { - s.OtherList(m, Issue{}).Display("issue.js") + s.commonOtherList(m, Issue{}) s.otherListButton(m) } func (s Table) DesignList(m *ice.Message, arg ...string) { - s.OtherList(m, Design{}).Display("design.js") + s.commonOtherList(m, Design{}) s.otherListButton(m) } func (s Table) TaskList(m *ice.Message, arg ...string) { - s.OtherList(m, Task{}).Display("task.js") - m.RenameAppend(model.STATUS, model.TASK_STATUS) + s.commonOtherList(m, Task{}).RenameAppend(model.STATUS, model.TASK_STATUS) m.PushAction(s.Program) } func (s Table) CaseList(m *ice.Message, arg ...string) { - s.OtherList(m, Case{}).Display("case.js") - m.RenameAppend(model.STATUS, model.CASE_STATUS) + s.commonOtherList(m, Case{}).RenameAppend(model.STATUS, model.CASE_STATUS) m.PushAction(s.Preview) } func (s Table) MeetList(m *ice.Message, arg ...string) { - s.OtherList(m, Meet{}).Display("meet.js") + s.commonOtherList(m, Meet{}) m.PushAction(s.Preview) } func (s Table) DealList(m *ice.Message, arg ...string) { - s.OtherList(m, Deal{}).Display("deal.js") + s.commonOtherList(m, Deal{}) } func (s Table) finishCheck(m *ice.Message, target ice.Any, name string, arg ...string) bool { @@ -359,6 +369,7 @@ func (s Table) ChangeStatus(m *ice.Message, from, to int, arg ...string) { } } s.Table.ChangeStatus(m, m.Option(model.STORY_UID), m.Option(model.UID), from, to, arg...) + s.RecordEventWithName(m, "") s.DashboardUpdate(m) } func (s Table) addCount(m *ice.Message, target ice.Any) Table { diff --git a/src/production/deal.go b/src/production/deal.go index 949bb29..0c5ce38 100644 --- a/src/production/deal.go +++ b/src/production/deal.go @@ -9,7 +9,7 @@ import ( type Deal struct { Table order string `data:"11"` - fields string `data:"from_user_uid,to_user_uid,price,title,content"` + fields string `data:"from_user_uid,to_user_uid,price,title,content,issue_uid"` create string `name:"create issue_uid* from_user_uid* to_user_uid* price* title* content" role:"leader"` modify string `name:"modify title* content" role:"leader"` } @@ -36,6 +36,7 @@ func (s Deal) List(m *ice.Message, arg ...string) { } else { m.RenameAppend(model.FROM_USER_UID, model.USER_UID) } + s.OtherListCmd(m, s.IssueList, s.DesignList, s.MeetList) } func init() { ice.TeamCtxCmd(Deal{}) } diff --git a/src/production/design.go b/src/production/design.go index 2b17208..067b8ab 100644 --- a/src/production/design.go +++ b/src/production/design.go @@ -10,7 +10,7 @@ import ( type Design struct { Table order string `data:"3"` - fields string `data:"updated_at,title,content,status,price,link,begin_time,end_time,process_time,finish_time,issue_uid,plan_uid,story_uid,user_uid"` + fields string `data:"updated_at,title,content,status,price,score,link,begin_time,end_time,process_time,finish_time,issue_uid,plan_uid,story_uid,user_uid"` create string `name:"create issue_uid*select title* content* price*=1000 begin_time:select@date end_time:select@date" role:"worker"` modify string `name:"modify title* content* price* link begin_time*:select@date end_time*:select@date" role:"worker"` } @@ -24,6 +24,10 @@ func (s Design) Remove(m *ice.Message, arg ...string) { s.ValueRemove(m, arg...) s.issueCount(m) } +func (s Design) Reject(m *ice.Message, arg ...string) { + s.changeStatus(m, IssueCreate, IssueRejected) + s.issueCount(m) +} func (s Design) Cancel(m *ice.Message, arg ...string) { s.ChangeStatus(m, int(IssueCreate), int(IssueCancel)) s.issueCount(m) @@ -35,5 +39,7 @@ func (s Design) List(m *ice.Message, arg ...string) { s.SelectJoinPlan(m) m.Table(func(value ice.Maps) { s.PushIssueButton(m, value, user_uid) }).Display("") kit.If(len(arg) == 1, func() { m.Sort("plan_status,status,updated_at", ice.STR, ice.STR, ice.STR_R) }) + s.OtherListCmd(m, s.IssueList, s.MeetList, s.DealList) } + func init() { ice.TeamCtxCmd(Design{}) } diff --git a/src/production/design.js b/src/production/design.js index bb4798e..c0e81ea 100644 --- a/src/production/design.js +++ b/src/production/design.js @@ -1,7 +1,11 @@ Volcanos(chat.ONIMPORT, { _init: function(can, msg) { can.onimport.myViewTabs(can, "status", msg, function(value) { return [ - {view: html.TITLE, list: [value.title, can.onimport.textView(can, value, "status")]}, + {view: html.TITLE, list: [ + value.title, + value.score != "3" && can.onimport.unitView(can, value, "score", "星"), + can.onimport.textView(can, value, "status"), + ]}, {view: html.STATUS, list: [ can.onimport.timeView(can, value), can.onimport.unitView(can, value, "plan_title"), diff --git a/src/production/issue.go b/src/production/issue.go index 4662a70..dbc5087 100644 --- a/src/production/issue.go +++ b/src/production/issue.go @@ -10,7 +10,7 @@ import ( type Issue struct { Table order string `data:"2"` - fields string `data:"updated_at,title,content,issue_type,level,status,price,link,design_count,task_count,begin_time,end_time,process_time,finish_time,plan_uid,story_uid,user_uid"` + fields string `data:"updated_at,title,content,issue_type,level,status,price,score,link,design_count,task_count,begin_time,end_time,process_time,finish_time,plan_uid,story_uid,user_uid"` create string `name:"create plan_uid*:select title* content* issue_type:select level:selelt price=1000 begin_time:select@date end_time:select@date" role:"worker"` modify string `name:"modify title* content* price* link begin_time:select@date end_time:select@date" role:"worker"` designCreate string `name:"designCreate title* content* price=1000 begin_time:select@date end_time:select@date" role:"worker"` diff --git a/src/production/issue.js b/src/production/issue.js index bd8577a..f7346b4 100644 --- a/src/production/issue.js +++ b/src/production/issue.js @@ -4,6 +4,7 @@ Volcanos(chat.ONIMPORT, { {view: html.TITLE, list: [value.title, // value.issue_type != "feature" && can.onimport.textView(can, value, "issue_type"), // value.level != "level-3" && can.onimport.textView(can, value, "level"), + value.score != "3" && can.onimport.unitView(can, value, "score", "星"), can.onimport.textView(can, value, "status"), ]}, {view: html.STATUS, list: [ diff --git a/src/production/meet.go b/src/production/meet.go index 6b25579..fcbecdb 100644 --- a/src/production/meet.go +++ b/src/production/meet.go @@ -19,22 +19,23 @@ type Meet struct { } func (s Meet) Create(m *ice.Message, arg ...string) { - t := time.Unix(kit.Time(m.Option("date")+" "+m.Option("time")+":00")/int64(time.Second), 0) - company_uid := m.Cmd(story{}, s.Select, model.UID, m.Option(model.STORY_UID)).Append(model.COMPANY_UID) - m.Option(model.COMPANY_UID, company_uid) + t := time.Unix(kit.Time(kit.Select(m.Option("date")+" "+m.Option("time")+":00", m.Option(model.BEGIN_TIME)))/int64(time.Second), 0) m.OptionDefault(model.BEGIN_TIME, t.Format(ice.MOD_TIME), model.END_TIME, t.Add(30*time.Minute).Format(ice.MOD_TIME)) + m.Option(model.COMPANY_UID, m.Cmd(story{}, s.Select, model.UID, m.Option(model.STORY_UID)).Append(model.COMPANY_UID)) s.ValueCreate(m, m.OptionSimple("issue_uid,from_user_uid,to_user_uid,meet_type,title,content,link,begin_time,end_time,plan_uid,company_uid")...) s.SendMessage(s.GetCommandUID(m), m.Option(model.FROM_USER_UID), m.Option(model.TO_USER_UID)) s.SendMessage(s.GetCommandUID(m), m.Option(model.TO_USER_UID), m.Option(model.FROM_USER_UID)) } func (s Meet) List(m *ice.Message, arg ...string) { - s.ValueList(m, arg).PushAction(s.Preview, s.Remove).Display("") - if s.IsLeader(m) { + if s.ValueList(m, arg).Display(""); s.IsLeader(m) { m.RenameAppend(model.TO_USER_UID, model.USER_UID) + m.PushAction(s.Preview, s.Remove) } else { m.RenameAppend(model.FROM_USER_UID, model.USER_UID) + m.PushAction(s.Preview) } kit.If(!s.IsLeader(m) && m.Length() == 0, func() { m.SetResult().Echo("请等待管理员创建会议") }) + s.OtherListCmd(m, s.IssueList, s.DesignList, s.DealList) } func init() { ice.TeamCtxCmd(Meet{}) } diff --git a/src/production/meet.js b/src/production/meet.js index 68b1b5b..f00d30e 100644 --- a/src/production/meet.js +++ b/src/production/meet.js @@ -1,5 +1,9 @@ Volcanos(chat.ONIMPORT, { _init: function(can, msg) { + if (msg.IsDetail()) { var value = msg.TableDetail() + msg.Option("_share_title", value.title+" "+value.meet_type) + msg.Option("_share_content", "时间: "+can.base.trimPrefix(value.begin_time, can.base.Time(null, "%y-")).slice(0, -3)+"\n"+value.content) + } can.onimport.myView(can, msg, function(value) { return [ {view: html.TITLE, list: [value.title, value.meet_type, can.onimport.titleAction(can, value)]}, {view: html.STATUS, list: [value.uid.slice(0, 6), value.user_name, value.begin_time+" ~ "+value.end_time.split(" ")[1]]}, diff --git a/src/production/model/model.go b/src/production/model/model.go index 0928275..859e7ee 100644 --- a/src/production/model/model.go +++ b/src/production/model/model.go @@ -13,6 +13,7 @@ const ( STATUS = "status" COUNT = "count" PRICE = "price" + SCORE = "score" TITLE = "title" CONTENT = "content" VERSION = "version" diff --git a/src/production/portal.json b/src/production/portal.json index 92648c8..19b8f43 100644 --- a/src/production/portal.json +++ b/src/production/portal.json @@ -1,13 +1,12 @@ { "portal": "产品迭代", "member": "项目成员", "plan": "迭代计划", "issue": "产品需求", "design": "界面设计", "task": "开发任务", "case": "测试用例", - "care": "新人帮助", "take": "项目接单", "stat": "项目统计", "date": "会议预约", "meet": "会议记录", "deal": "支付记录", - "bindPlan": "绑定计划", - "discuss": "约会", "payfor": "支付", "program": "编程", + "care": "新人帮助", "take": "项目接单", "stat": "项目统计", "date": "会议预约", "meet": "会议安排", "deal": "支付记录", "process": "开始", "submit": "提交", "reback": "返工", "finish": "完成", "issueCreate": "原型设计", "designCreate": "界面设计", "taskCreate": "开发任务", "caseCreate": "测试用例", "issueList": "原型设计", "designList": "界面设计", "taskList": "开发任务", "caseList": "测试用例", - "meetList": "会议记录", "dealList": "支付记录", + "discuss": "约会", "payfor": "支付", "program": "编程", "bindPlan": "绑定计划", + "meetList": "会议安排", "dealList": "支付记录", "style": { "discuss": "notice", "payfor": "notice", @@ -17,6 +16,7 @@ "submit": "notice", "reback": "danger", "finish": "notice", + "setScore": "notice", "issueCreate": "notice", "designCreate": "notice", "taskCreate": "notice", @@ -60,6 +60,7 @@ "to_user_uid": "收款人", "process_time": "开始时间", "finish_time": "完成时间", + "score": "评分", "date": "日期", "comment": "备注", "level": "优先级" diff --git a/src/production/take.css b/src/production/take.css new file mode 100644 index 0000000..6754bcc --- /dev/null +++ b/src/production/take.css @@ -0,0 +1,4 @@ +$output>div.tabs>div.item.select.PM待评审 { border-top:var(--box-danger) !important; } +$output>div.tabs>div.item.select.PM待提交 { border-top:var(--box-danger) !important; } +$output>div.tabs>div.item.select.UI待评审 { border-top:var(--box-danger) !important; } +$output>div.tabs>div.item.select.UI待提交 { border-top:var(--box-danger) !important; } \ No newline at end of file diff --git a/src/production/take.go b/src/production/take.go index 7c2578f..aca5d69 100644 --- a/src/production/take.go +++ b/src/production/take.go @@ -19,43 +19,68 @@ func (s take) List(m *ice.Message, arg ...string) { if value["auth_status"] != "issued" { return } - m.Cmd(Plan{}, s.Select, model.STORY_UID, value[model.UID], model.STATUS, kit.Format(PlanProcess)).Table(func(val ice.Maps) { + push := func(val ice.Maps, t string) { + m.Push(model.TYPE, t) + m.Push(model.UID, val[model.UID]) + m.Push(model.TITLE, val[model.TITLE]) + m.Push(model.CONTENT, val[model.CONTENT]) + m.Push(model.USER_UID, val[model.USER_UID]) + m.Push(model.STORY_UID, value[model.UID]) + m.Push(model.STORY_NAME, value[model.NAME]) + m.Push(model.UPDATED_AT, kit.Select(val[model.CREATED_AT], val[model.UPDATED_AT])) + } + m.Cmd(Plan{}, s.Select, model.STORY_UID, value[model.UID], model.STATUS, PlanProcess).Table(func(val ice.Maps) { if kit.Int(val[model.ISSUE_COUNT]) == 0 { - m.Push("type", "PM") - m.Push("uid", val["uid"]) - m.Push("title", val["title"]) - m.Push("content", val["content"]) - m.Push("user_uid", val["user_uid"]) - m.Push("story_uid", value[model.UID]) - m.Push("story_name", value[model.NAME]) - m.Push("created_at", value["created_at"]) + push(val, "PM可接单") } else { - m.Cmd(Issue{}, s.Select, model.STORY_UID, value[model.UID], model.PLAN_UID, val[model.UID], model.STATUS, kit.Format(IssueFinish), model.DESIGN_COUNT, "0").Table(func(val ice.Maps) { - m.Push("type", "UI") - m.Push("uid", val["uid"]) - m.Push("title", val["title"]) - m.Push("content", val["content"]) - m.Push("user_uid", val["user_uid"]) - m.Push("story_uid", value[model.UID]) - m.Push("story_name", value[model.NAME]) - m.Push("created_at", value["created_at"]) + m.Cmd(Issue{}, s.Select, model.STORY_UID, value[model.UID], model.PLAN_UID, val[model.UID], model.STATUS, IssueFinish, model.DESIGN_COUNT, "0").Table(func(val ice.Maps) { + push(val, "UI可接单") }) } }) + deadline := m.Time("-120h") + check := func(target ice.Any, status IssueStatus, t string) { + m.Cmd(target, s.Select, model.STORY_UID, value[model.UID], model.STATUS, status).Table(func(val ice.Maps) { + kit.If(kit.Select(val[model.CREATED_AT], val[model.UPDATED_AT]) < deadline, func() { push(val, t) }) + }) + } + check(Issue{}, IssueCreate, "PM待评审") + check(Issue{}, IssueProcess, "PM待提交") + check(Design{}, IssueCreate, "UI待评审") + check(Design{}, IssueProcess, "UI待提交") + m.Cmd(Task{}, s.Select, model.STORY_UID, value[model.UID]).Table(func(val ice.Maps) { + push(val, "RD可编程") + }) + m.Cmd(Case{}, s.Select, model.STORY_UID, value[model.UID]).Table(func(val ice.Maps) { + push(val, "QA可测试") + }) + good := func(target ice.Any, t string) { + m.Cmd(target, s.Select, model.STORY_UID, value[model.UID], model.STATUS, IssueFinish).Table(func(val ice.Maps) { + kit.If(kit.IsIn(val[model.SCORE], "4", "5"), func() { push(val, t) }) + }) + } + good(Issue{}, "PM优秀项目") + good(Design{}, "UI优秀项目") }) - m.PushAction(s.Info, s.Main).Display("").SortStrR(model.CREATED_AT) + m.PushAction(s.Info, s.Main).Display("").DisplayCSS("").Sort(kit.Fields(model.TYPE, model.UPDATED_AT), []string{ + "PM可接单", "UI可接单", "PM待评审", "PM待提交", "UI待评审", "UI待提交", "PM优秀项目", "UI优秀项目", "RD可编程", "QA可测试", + }, ice.STR_R) } func (s take) Main(m *ice.Message, arg ...string) { m.ProcessField(Portal{}, []string{m.Option(model.STORY_UID)}, arg...) } func (s take) Info(m *ice.Message, arg ...string) { switch m.Option(model.TYPE) { - case "PM": + case "RD可测试": + m.ProcessField(Task{}, []string{m.Option(model.STORY_UID), m.Option(model.UID)}, arg...) + case "QA可测试": + m.ProcessField(Case{}, []string{m.Option(model.STORY_UID), m.Option(model.UID)}, arg...) + case "PM可接单": m.ProcessField(Plan{}, []string{m.Option(model.STORY_UID), m.Option(model.UID)}, arg...) - case "UI": + case "PM待评审", "PM待提交", "PM优秀项目", "UI可接单": m.ProcessField(Issue{}, []string{m.Option(model.STORY_UID), m.Option(model.UID)}, arg...) default: - m.ProcessField(Issue{}, []string{m.Option(model.STORY_UID), m.Option(model.UID)}, arg...) + m.ProcessField(Design{}, []string{m.Option(model.STORY_UID), m.Option(model.UID)}, arg...) } } diff --git a/src/production/take.js b/src/production/take.js index c15356e..ac4e7ce 100644 --- a/src/production/take.js +++ b/src/production/take.js @@ -4,13 +4,16 @@ Volcanos(chat.ONIMPORT, { {view: html.TITLE, list: [value.story_name, value.title, can.onimport.textView(can, value, TYPE, STATUS)]}, {view: html.STATUS, list: [can.onimport.timeView(can, value), value.user_name]}, {view: html.OUTPUT, list: [value.content]}, can.onimport.titleAction(can, value), - ] }, function(event, value) { - if (value.type == "PM") { - // can.onimport.myStory(can, {index: "web.team.production.portal", args: [value.story_uid, "web.team.production.plan", value.uid]}) - can.onimport.myStory(can, {index: "web.team.production.plan", args: [value.story_uid, value.uid]}) - } else { - can.onimport.myStory(can, {index: "web.team.production.issue", args: [value.story_uid, value.uid]}) - } + ] }, function(event, value) { var index = "web.team.production.design" + switch (value.type) { + case "PM可接单": index = "web.team.production.plan"; break + case "PM待评审": + case "PM待提交": + case "PM优秀项目": + case "UI可接单": index = "web.team.production.issue"; break + case "RD可编程": index = "web.team.production.task"; break + case "QA可测试": index = "web.team.production.case"; break + } can.onimport.myStory(can, {index: index, args: [value.story_uid, value.uid]}) }) }, }) \ No newline at end of file