diff --git a/base/nfs/nfs.go b/base/nfs/nfs.go index ea50c8e8..9fefeab7 100644 --- a/base/nfs/nfs.go +++ b/base/nfs/nfs.go @@ -189,7 +189,7 @@ func _file_show(m *ice.Message, name string) { } } func _file_save(m *ice.Message, name string, text ...string) { - if f, p, e := kit.Create(name); m.Assert(e) { + if f, p, e := kit.Create(path.Join(m.Option(DIR_ROOT), name)); m.Assert(e) { defer f.Close() for _, v := range text { diff --git a/core/chat/meet.go b/core/chat/meet.go index f2fb705c..9c6522c7 100644 --- a/core/chat/meet.go +++ b/core/chat/meet.go @@ -38,7 +38,7 @@ func init() { m.Cmdy(mdb.IMPORT, m.Prefix(MISS), "", mdb.HASH) }}, }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { - m.Option(mdb.FIELDS, kit.Select("time,name,照片,性别,年龄,身高,籍贯,户口,学历,职业,公司,年薪,资产,家境", mdb.DETAIL, len(arg) > 0)) + m.Option(mdb.FIELDS, kit.Select("time,name,照片,性别,年龄,身高,体重,籍贯,户口,学历,学校,职业,公司,年薪,资产,家境", mdb.DETAIL, len(arg) > 0)) msg := m.Cmd(mdb.SELECT, m.Prefix(MISS), "", mdb.HASH, kit.MDB_NAME, arg) msg.Table(func(index int, value map[string]string, head []string) { value["照片"] = kit.Format(``, value["照片"], kit.Select("100", "400", m.Option(mdb.FIELDS) == mdb.DETAIL)) diff --git a/core/chat/river.go b/core/chat/river.go index 7313984f..337da393 100644 --- a/core/chat/river.go +++ b/core/chat/river.go @@ -97,6 +97,10 @@ func init() { m.Option(mdb.FIELDS, kit.Select("time,hash,userrole,username,type,name,text", mdb.DETAIL, len(arg) > 0)) m.Cmdy(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), AUTH), mdb.HASH, kit.MDB_HASH, arg) m.PushAction(mdb.REMOVE) + if len(arg) > 0 { + m.Push("qrcode", m.Cmdx(wiki.IMAGE, "qrcode", kit.MergeURL(m.Option(ice.MSG_USERWEB), RIVER, m.Option(ice.MSG_RIVER), web.SHARE, m.Option("share")))) + m.Push("inner", m.Cmdx(wiki.SPARK, "inner", kit.MergeURL(m.Option(ice.MSG_USERWEB), RIVER, m.Option(ice.MSG_RIVER), web.SHARE, m.Option("share")))) + } }}, NODE: {Name: "node name ctx cmd auto insert invite", Help: "设备", Action: map[string]*ice.Action{ mdb.INSERT: {Name: "insert type name share", Help: "添加", Hand: func(m *ice.Message, arg ...string) { @@ -201,6 +205,7 @@ func init() { m.Option(mdb.FIELDS, "time,hash,type,name,count") m.Cmdy(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), TOOL), mdb.HASH) m.PushAction(mdb.REMOVE) + m.Sort(kit.MDB_NAME) return // 应用列表 } @@ -216,6 +221,7 @@ func init() { } if m.Copy(msg); len(arg) < 2 { m.PushAction(mdb.EXPORT, mdb.IMPORT) + m.SortInt(kit.MDB_ID) return // 命令列表 } @@ -247,9 +253,12 @@ func init() { m.Option(mdb.FIELDS, kit.Select("time,username", mdb.DETAIL, len(arg) > 0)) m.Cmdy(mdb.SELECT, RIVER, kit.Keys(kit.MDB_HASH, m.Option(ice.MSG_RIVER), USER), mdb.HASH, aaa.USERNAME, arg) m.Table(func(index int, value map[string]string, head []string) { - m.Push(aaa.USERNICK, aaa.UserNick(m, value[aaa.USERNAME])) - m.Push(aaa.USERZONE, aaa.UserZone(m, value[aaa.USERNAME])) - m.PushRender(aaa.AVATAR, "img", value["avatar_url"]) + m.Richs(USER, nil, value[aaa.USERNAME], func(key string, val map[string]interface{}) { + val = kit.GetMeta(val) + m.Push(aaa.USERNICK, val[aaa.USERNICK]) + m.PushRender(aaa.AVATAR, "img", kit.Format(val["avatar_url"]), kit.Select("60", "240", m.Option(mdb.FIELDS) == mdb.DETAIL)) + }) + }) m.PushAction(mdb.REMOVE) }}, diff --git a/core/mall/salary.go b/core/mall/salary.go index d458741d..7dfe9128 100644 --- a/core/mall/salary.go +++ b/core/mall/salary.go @@ -15,7 +15,7 @@ func init() { }, Commands: map[string]*ice.Command{ SALARY: {Name: "salary month auto create", Help: "工资", Action: map[string]*ice.Action{ - mdb.CREATE: {Name: "create company month amount income tax 公积金 养老保险 医疗保险 工伤保险 失业保险 生育保险 企业公积金 企业养老保险 企业医疗保险 企业工伤保险 企业失业保险 企业生育保险", Help: "添加", Hand: func(m *ice.Message, arg ...string) { + mdb.CREATE: {Name: "create company month amount income tax 公积金 养老保险 医疗保险 生育保险 工伤保险 失业保险 企业公积金 企业养老保险 企业医疗保险 企业生育保险 企业工伤保险 企业失业保险", Help: "添加", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(mdb.INSERT, SALARY, "", mdb.HASH, arg) }}, mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) { diff --git a/core/wiki/wiki.go b/core/wiki/wiki.go index d6f26961..b96d26b3 100644 --- a/core/wiki/wiki.go +++ b/core/wiki/wiki.go @@ -33,12 +33,12 @@ func _wiki_list(m *ice.Message, cmd string, arg ...string) bool { return false } func _wiki_show(m *ice.Message, cmd, name string, arg ...string) { - m.Option(nfs.DIR_ROOT, "") - m.Cmdy(nfs.CAT, _wiki_path(m, cmd, name)) + m.Option(nfs.DIR_ROOT, _wiki_path(m, cmd)) + m.Cmdy(nfs.CAT, name) } func _wiki_save(m *ice.Message, cmd, name, text string, arg ...string) { - m.Option(nfs.DIR_ROOT, "") - m.Cmd(nfs.SAVE, _wiki_path(m, cmd, name), text) + m.Option(nfs.DIR_ROOT, _wiki_path(m, cmd)) + m.Cmd(nfs.SAVE, name, text) } func _wiki_upload(m *ice.Message, cmd string, dir string) { up := kit.Simple(m.Optionv(ice.MSG_UPLOAD)) diff --git a/meta.go b/meta.go index f7cee936..4e7e99e4 100644 --- a/meta.go +++ b/meta.go @@ -59,6 +59,7 @@ func (m *Message) Push(key string, value interface{}, arg ...interface{}) *Messa for k := range value { head = append(head, k) } + sort.Strings(head) } for _, k := range head { @@ -99,25 +100,18 @@ func (m *Message) Push(key string, value interface{}, arg ...interface{}) *Messa } // 追加数据 - switch vv := kit.Format(v); key { + switch v := kit.Format(v); key { case "detail": - if k == "extra" { - for k, v := range kit.KeyValue(map[string]interface{}{}, "", kit.UnMarshal(vv)) { - m.Add(MSG_APPEND, kit.MDB_KEY, "extra."+k) - m.Add(MSG_APPEND, kit.MDB_VALUE, kit.Format(v)) - } - break - } m.Add(MSG_APPEND, kit.MDB_KEY, k) - m.Add(MSG_APPEND, kit.MDB_VALUE, vv) + m.Add(MSG_APPEND, kit.MDB_VALUE, v) default: - m.Add(MSG_APPEND, k, vv) + m.Add(MSG_APPEND, k, v) } } default: if m.Option("fields") == "detail" || (len(m.meta[MSG_APPEND]) == 2 && m.meta[MSG_APPEND][0] == kit.MDB_KEY && m.meta[MSG_APPEND][1] == kit.MDB_VALUE) { - if key != kit.MDB_KEY && key != kit.MDB_VALUE { + if key != kit.MDB_KEY || key != kit.MDB_VALUE { m.Add(MSG_APPEND, kit.MDB_KEY, key) m.Add(MSG_APPEND, kit.MDB_VALUE, kit.Format(value)) break