diff --git a/src/gonganxitong/allow.go b/src/gonganxitong/allow.go
index dc6698b..8191792 100644
--- a/src/gonganxitong/allow.go
+++ b/src/gonganxitong/allow.go
@@ -20,7 +20,7 @@ type allow struct {
func (s allow) Create(m *ice.Message, arg ...string) {
s.Insert(m.Spawn(), arg...)
- m.Option(model.COMMAND_UID, CommandUID(m, m.PrefixKey()))
+ s.GetCommandUID(m)
s.SendMessage(m, m.Option(model.FROM_USER_UID), "")
s.SendTemplate(m, "", "", m.Trans("please allow", "权限审批 请处理"))
}
@@ -72,7 +72,8 @@ func (s allow) process(m *ice.Message, from, to AllowStatus, icon string, title
return
}
m.Cmdy(s.Prefix(m, s.apply), m.ActionKey(), m.Option(model.UID)).ProcessRefresh()
- s.RecordEvent(m, kit.JoinWord(icon, title, kit.Cut(m.Option(model.UID), 6), s.TransRole(m), m.Option(model.USER_NAME)), m.Option(model.UID))
+ style := kit.Select("notice", "danger", kit.Int(m.Option(model.ROLE)) == 2)
+ s.RecordEvent(m, kit.JoinWord(icon, title, kit.Cut(m.Option(model.UID), 6), s.TransRole(m, "", style), m.Option(model.USER_NAME)), m.Option(model.UID))
s.DoneMessage(m)
}
func (s allow) changeStatus(m *ice.Message, from, to AllowStatus, arg ...string) *ice.Message {
diff --git a/src/gonganxitong/apply.go b/src/gonganxitong/apply.go
index 22b96fa..5ebc6e3 100644
--- a/src/gonganxitong/apply.go
+++ b/src/gonganxitong/apply.go
@@ -63,12 +63,12 @@ func (s apply) Submit(m *ice.Message, arg ...string) {
if m.WarnNotValid(msg.IsErr()) {
return
}
- role := UserPlaceCreator
+ role, style := UserPlaceCreator, ""
switch UserPlaceRole(kit.Int(msg.Append(model.ROLE))) {
case UserPlaceLandlord:
- role = UserPlaceCreator
+ role, style = UserPlaceCreator, "danger"
default:
- role = UserPlaceLandlord
+ role, style = UserPlaceLandlord, "notice"
}
msg = m.Cmd(s.UserPlace, s.Select, m.OptionSimple(s.Keys(s.Place, model.UID)), model.ROLE, role)
if m.WarnNotFound(msg.Length() == 0, role.String()) {
@@ -76,12 +76,13 @@ func (s apply) Submit(m *ice.Message, arg ...string) {
}
m.Option(model.FROM_USER_UID, m.Option(model.USER_UID))
m.Cmd(s.Prefix(m, allow{}), s.Create, model.APPLY_UID, m.Option(model.UID), model.PLACE_UID, m.Option(s.Keys(s.Place, model.UID)), msg.AppendSimple(model.USER_UID), model.STATUS, AllowCreate)
- s.RecordEvent(m, kit.JoinWord("🕑", m.Trans("apply submit", "权限申请 已提交"), kit.Cut(m.Option(model.UID), 6), s.TransRole(m), m.Option(model.USER_NAME)), m.Option(model.UID))
+ s.RecordEvent(m, kit.JoinWord("🕑", m.Trans("apply submit", "权限申请 已提交"), kit.Cut(m.Option(model.UID), 6), s.TransRole(m, "", style), m.Option(model.USER_NAME)), m.Option(model.UID))
s.SendMessage(m, msg.Append(model.USER_UID), m.Option(model.USER_UID))
}
func (s apply) Reject(m *ice.Message, arg ...string) {
msg := s.changeStatus(m, ApplySubmit, ApplyRejected)
s.SendTemplate(msg, "", "", m.Trans("apply rejected", "权限申请 已驳回"))
+ m.Option(model.ROLE, msg.Append(model.ROLE))
}
func (s apply) Approve(m *ice.Message, arg ...string) {
msg := s.changeStatus(m, ApplySubmit, ApplyApproved)
@@ -90,6 +91,7 @@ func (s apply) Approve(m *ice.Message, arg ...string) {
}
m.Cmd(s.UserPlace, s.Insert, s.Keys(s.Place, model.UID), msg.Append(model.PLACE_UID), msg.AppendSimple(model.USER_UID, model.ROLE))
s.SendTemplate(msg, "", "", m.Trans("apply approved", "权限申请 已通过"))
+ m.Option(model.ROLE, msg.Append(model.ROLE))
}
func init() { ice.TeamCtxCmd(apply{Table: newTable()}) }
diff --git a/src/gonganxitong/common.go b/src/gonganxitong/common.go
index 81e9c2b..3a512ca 100644
--- a/src/gonganxitong/common.go
+++ b/src/gonganxitong/common.go
@@ -197,7 +197,9 @@ func (s Table) SelectJoinRecent(m *ice.Message, PLACE_UID string, arg ...string)
kit.If(len(arg) == 0, func() { arg = append(arg, model.CITY_NAME, model.STREET_NAME, model.PLACE_NAME) })
list := []string{}
m.Table(func(value ice.Maps) { kit.If(value[PLACE_UID], func(v string) { list = kit.AddUniq(list, v) }) })
- recents := m.CmdMap(recent{}, s.SelectList, model.PLACE_UID, list, model.PLACE_UID)
+ msg := m.Spawn()
+ s.Fields(msg, kit.JoinFields("DISTINCT place_uid", kit.JoinFields(arg...)))
+ recents := msg.CmdMap(recent{}, s.SelectList, model.PLACE_UID, list, model.PLACE_UID)
m.Table(func(value ice.Maps) {
recent := recents[value[PLACE_UID]]
kit.For(arg, func(k string) { m.Push(k, recent[k]) })
@@ -236,7 +238,7 @@ func (s Table) RewriteAppend(m *ice.Message, arg ...string) *ice.Message {
})
return m
}
-func (s Table) Update(m *ice.Message, data ice.Map, arg ...string) {
+func (s Table) Update(m *ice.Message, data ice.Any, arg ...string) {
if len(arg) == 0 {
arg = append(arg, model.UID, kit.Select(m.Option(model.UID), m.Option(s.Keys(m.CommandKey(), model.UID))))
}
@@ -252,15 +254,15 @@ func (s Table) UploadUpdate(m *ice.Message, field, uid string, arg ...string) {
if m.IsErr() {
return
}
- p := m.UploadSave(path.Join(nfs.USR, kit.Select(field, m.Option("field")), uid) + nfs.PS)
- s.Update(m, kit.Dict(kit.Select(m.Option("field"), field), p), model.UID, uid)
+ p := m.UploadSave(path.Join(nfs.USR, kit.Select(field, m.Option(model.FIELD)), uid) + nfs.PS)
+ s.Update(m, kit.Dict(kit.Select(m.Option(model.FIELD), field), p), model.UID, uid)
}
func (s Table) UploadCreate(m *ice.Message, field, uid string, arg ...string) {
if m.IsErr() {
return
}
- p := m.UploadSave(path.Join(nfs.USR, kit.Select(field, m.Option("field")), uid) + nfs.PS)
- s.Create(m, kit.Select(m.Option("field"), field), p, model.UID, uid)
+ p := m.UploadSave(path.Join(nfs.USR, kit.Select(field, m.Option(model.FIELD)), uid) + nfs.PS)
+ s.Create(m, kit.Select(m.Option(model.FIELD), field), p, model.UID, uid)
}
func (s Table) ChangeStatus(m *ice.Message, place_uid, uid string, from, to int, arg ...string) *ice.Message {
msg := s.ValueList(m.Spawn(), []string{place_uid, uid}, model.STATUS)
@@ -324,6 +326,15 @@ func (s Table) CityList(m *ice.Message, arg ...string) *ice.Message {
m.Cmdy(s.Prefix(m, city{}), arg).RenameAppend(model.NAME, model.CITY_NAME)
return m
}
+func (s Table) CityCmd(m *ice.Message, arg ...ice.Any) *ice.Message {
+ return m.Cmd(append([]ice.Any{city{}}, arg...)...)
+}
+func (s Table) CreditCmdy(m *ice.Message, arg ...ice.Any) *ice.Message {
+ return m.Cmdy(append([]ice.Any{s.Prefix(m, credit{})}, arg...)...)
+}
+func (s Table) SettingCmdy(m *ice.Message, arg ...ice.Any) *ice.Message {
+ return m.Cmdy(append([]ice.Any{s.Prefix(m, setting{})}, arg...)...)
+}
func (s Table) AuthCreate(m *ice.Message, authType int, fromUID string, arg ...string) {
s.AutoCmdy(m, api.RENZHENGSHOUQUAN_PORTAL, Portal{}.PlaceCreate,
model.AUTH_NAME, m.Option(model.NAME), model.AUTH_INFO, m.Option(model.INFO),
@@ -421,7 +432,7 @@ func (s Table) TransValue(m *ice.Message, key string, arg ...string) string {
func (s Table) TransRole(m *ice.Message, arg ...string) string {
value := kit.Select(m.Option(s.Keys(s.UserPlace, model.ROLE)), arg, 0)
role := s.Place.TransValue(m, s.Keys(s.UserPlace, model.ROLE), arg...)
- return kit.Format(`%s`, value, role)
+ return kit.Format(`%s`, value, kit.Select("", arg, 1), role)
}
func (s Table) Prefix(m *ice.Message, target ice.Any) string {
@@ -454,13 +465,7 @@ func (s Table) AutoCmd(m *ice.Message, arg ...ice.Any) *ice.Message {
}
func (s Table) ProcessPodCmd(m, msg *ice.Message, arg ...string) *ice.Message {
m.ProcessPodCmd(msg.Append(web.SPACE), msg.Append(ctx.INDEX), kit.Split(msg.Append(ctx.ARGS)))
- m.RewriteAppend(func(value, key string, index int) string {
- if key == "style" {
- value = "output"
- }
- return value
- })
- m.Push("field.option", kit.Format(kit.Dict(arg)))
+ m.Push(ice.FIELD_OPTION, kit.Format(kit.Dict(arg)))
return m
}
func (s Table) Link(m *ice.Message, arg ...string) string {
diff --git a/src/gonganxitong/model/model.go b/src/gonganxitong/model/model.go
index 97519dd..641547e 100644
--- a/src/gonganxitong/model/model.go
+++ b/src/gonganxitong/model/model.go
@@ -94,6 +94,7 @@ const (
NODETYPE = "nodetype"
SPACE = "space"
INDEX = "index"
+ FIELD = "field"
ICON = "icon"
ARGS = "args"
INIT = "init"
diff --git a/src/gonganxitong/notice.go b/src/gonganxitong/notice.go
index edebcfb..2cd4667 100644
--- a/src/gonganxitong/notice.go
+++ b/src/gonganxitong/notice.go
@@ -12,16 +12,22 @@ type notice struct {
order string `data:"505"`
role string `data:"leader"`
fields string `data:"title,content,user_uid"`
- create string `name:"create title* content*" role:"leader"`
- remove string `name:"remove" role:"leader"`
+ create string `name:"create title* content*" role:"void"`
+ remove string `name:"remove" role:"void"`
}
func (s notice) Create(m *ice.Message, arg ...string) {
+ if m.WarnNotRight(!s.IsLeader(m)) {
+ return
+ }
m.Option(model.PLACE_UID, m.Option(s.Keys(s.Place, model.UID)))
s.Insert(m, kit.Simple(arg, m.OptionSimple(model.PLACE_UID, model.USER_UID))...)
s.RecordEventWithName(m, "")
}
func (s notice) Remove(m *ice.Message, arg ...string) {
+ if m.WarnNotRight(!s.IsLeader(m)) {
+ return
+ }
m.Option(model.PLACE_UID, m.Option(s.Keys(s.Place, model.UID)))
s.Delete(m, m.OptionSimple(model.PLACE_UID, model.UID)...)
s.RecordEventWithName(m, "")
diff --git a/src/gonganxitong/portal.css b/src/gonganxitong/portal.css
index c5868cd..e1c0de0 100644
--- a/src/gonganxitong/portal.css
+++ b/src/gonganxitong/portal.css
@@ -59,7 +59,7 @@ $output div.item.card div.title { width:100%; display:flex; align-items:center;
$output div.item.card div.title span:first-child { word-break:break-all; }
$output div.item.card div.title span.auth { font-size:14px; }
$output div.item.card div.title span.time { position:absolute; right:0; font-size:12px; color:gray; }
-$output div.item.card div.status span { word-break:break-all; white-space:pre; }
+$output div.item.card div.status span { word-break:break-all; }
$output div.item.card img { border-radius:5px; padding:0; margin:0; margin-right:10px; height:48px; width:48px; min-width:48px; object-fit:cover; }
$output div.item.card.sticky>div.output { background-color:var(--plugin-bg-color); color:var(--notice-bg-color); }
$action div.item.notice input[type=button] { border:var(--box-notice); color:var(--notice-bg-color); }
@@ -67,10 +67,9 @@ $action div.item.danger input[type=button] { border:var(--box-danger); color:var
$output input.notice[type=button] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
$output input.danger[type=button] { border:var(--box-danger); color:var(--danger-bg-color); }
$output input[type=button][name=submit] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
-body.mobile $output img.qrcode { width:100%; margin:0; }
-$output span.type { border:none; border-radius:5px; background-color:var(--hover-bg-color); padding:2px 8px; }
-$output span.role { border:none; border-radius:5px; background-color:var(--hover-bg-color); padding:2px 8px; }
-$output span.status { border:none; border-radius:5px; background-color:var(--hover-bg-color); padding:2px 8px; }
+$output span.type { border:none; border-radius:5px; background-color:var(--hover-bg-color); color:var(--notice-bg-color); padding:2px 8px; }
+$output span.role { border:none; border-radius:5px; background-color:var(--hover-bg-color); color:var(--notice-bg-color); padding:2px 8px; }
+$output span.status { border:none; border-radius:5px; background-color:var(--hover-bg-color); color:var(--notice-bg-color); padding:2px 8px; }
$output span.type.danger { color:var(--danger-bg-color); }
$output span.role.danger { color:var(--danger-bg-color); }
$output span.status.danger { color:var(--danger-bg-color); }
@@ -106,6 +105,7 @@ $output fieldset.story.form>div.output>div.code>input[type=button] { font-size:1
$output>fieldset.story.web.team.renzhengshouquan.profile { margin-top:0; }
fieldset.web.team.renzhengshouquan.profile>div.output div.code { margin-top:60px; margin-bottom:240px; }
$output>fieldset.story.web.team.credit { margin-top:0; }
+$output>fieldset.story.web.team.credit>div.output>div.code { margin-top:32px; }
$output>fieldset.message div.tabs span.select { border-top:var(--box-border); }
$output>fieldset.message div.tabs span.create.select { border-top:var(--box-danger); }
$output>fieldset.message div.tabs span.read.select { border-top:var(--box-notice); }
@@ -127,6 +127,7 @@ $output.public>div>div.list.myplace>div.output { padding:0; }
$output.public>div>div.list.myplace div.item.card div.output { padding:0; }
fieldset.web.team.storage.file div.item.card div.title span:first-child { flex-grow:1; }
body.dark $output>div>div.list.mynotice>span:first-child { background-color:var(--hover-bg-color); color:yellow; white-space:pre; }
+body.mobile $output img.qrcode { width:100%; margin:0; }
body.mobile div.input.float { position:absolute; top:0 !important; margin:0; width:100% !important; max-width:100% !important; }
body.mobile div.input.float input[name=submit] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
body.mobile fieldset.panel.Action>div.output { background-color:var(--plugin-bg-color); }
diff --git a/src/gonganxitong/portal.go b/src/gonganxitong/portal.go
index 7cb1623..1069f8a 100644
--- a/src/gonganxitong/portal.go
+++ b/src/gonganxitong/portal.go
@@ -28,7 +28,7 @@ type Portal struct {
field string `data:"time,icons,name,index,order,enable,init,type,role,view"`
create string `name:"create index name icons"`
list string `name:"list place_uid index uid auto" role:"void"`
- placeCreate string `name:"placeCreate city_name* street_name* place_name* place_type*:select address" icon:"bi bi-plus-square-dotted" role:"void"`
+ placeCreate string `name:"placeCreate city_name* street_name* place_name* place_type:select address" icon:"bi bi-plus-square-dotted" role:"void"`
placeRemove string `name:"placeRemove" role:"void"`
}
diff --git a/src/gonganxitong/portal.js b/src/gonganxitong/portal.js
index 898c629..14cddcf 100644
--- a/src/gonganxitong/portal.js
+++ b/src/gonganxitong/portal.js
@@ -155,18 +155,24 @@ Volcanos(chat.ONACTION, {
can.user.isMobile && can.page.style(can, can._root.Action._output, html.VISIBILITY, html.HIDDEN)
sub.Option("city_name", "深圳市")
// sub.Option("city_name", "邹城市")
+
sub.Option("street_name", "航城街道")
sub.Option("school_name", "深圳中学")
sub.Option("company_name", "云境互联")
- sub.Option("class_name", "初一二班")
- sub.Option("group_name", "爬山群")
- sub.Option("grade", "2024级")
// sub.Option("company_name", "老邵木器加工")
- sub.Option("store_name", "老邵木器加工")
+
sub.Option("place_name", "易尚三维")
sub.Option("queue_name", "二楼产检")
+ sub.Option("group_name", "爬山群")
+ sub.Option("class_name", "初一二班")
+ sub.Option("exam_name", "初一期末考试")
+ sub.Option("store_name", "老邵木器加工")
+ sub.Option("capital_name", "国资委")
+ sub.Option("channel_name", "公众号")
+
sub.Option("reception_name", "科室1")
sub.Option("volume_amount", "100")
+ sub.Option("grade", "2024级")
},
afterInputs: function(event, can, button, target) {
can.user.isMobile && can.page.style(can, can._root.Action._output, html.VISIBILITY, "")
diff --git a/src/gonganxitong/portal.json b/src/gonganxitong/portal.json
index 19f5154..2cfc6d6 100644
--- a/src/gonganxitong/portal.json
+++ b/src/gonganxitong/portal.json
@@ -50,6 +50,7 @@
"place_type": "场景类型",
"place_address": "场景地址",
"street_name": "街道名称",
+ "school_name": "学校名称",
"company_uid": "公司",
"company_name": "公司名称",
"city_name": "城市名称",
@@ -130,7 +131,7 @@
"revoked": "❌ 已吊销"
},
"setting": {
- "profile": "个人名片"
+ "profile": "将本服务展示到个人名片"
},
"qrcode_type": {
"portal": "门户首页",
diff --git a/src/gonganxitong/setting.go b/src/gonganxitong/setting.go
index b498355..41f8ccc 100644
--- a/src/gonganxitong/setting.go
+++ b/src/gonganxitong/setting.go
@@ -46,12 +46,5 @@ func (s setting) List(m *ice.Message, arg ...string) {
}
s.DisplayBase(m, "").DisplayCSS("")
}
-func (s setting) Profile(m *ice.Message, arg ...string) {
- s.Fields(m, model.PLACE_UID)
- s.Select(m, model.USER_UID, arg[0], model.NAME, m.ActionKey(), model.VALUE, "on")
-}
-func (s Table) SettingProfile(m *ice.Message, arg ...string) *ice.Message {
- return m.Cmdy(s.Prefix(m, setting{}), setting{}.Profile, arg)
-}
func init() { ice.TeamCtxCmd(setting{Table: newTable()}) }
diff --git a/src/gonganxitong/template/portal.go b/src/gonganxitong/template/portal.go
index dc7e306..61ef7aa 100644
--- a/src/gonganxitong/template/portal.go
+++ b/src/gonganxitong/template/portal.go
@@ -7,7 +7,7 @@ import (
type Portal struct {
guanlixitong.Portal
- placeCreate string `name:"placeCreate city_name* company_name* {{.Option "class"}}_name* {{.Option "class"}}_type*:select" role:"void"`
+ placeCreate string `name:"placeCreate city_name* company_name* {{.Option "class"}}_name* {{.Option "class"}}_type:select" role:"void"`
}
func init() { gonganxitong.PortalCmd(Portal{Portal: guanlixitong.NewPortal(user{{.Option "Class"}}{}, {{.Option "class"}}{})}) }
diff --git a/src/renzhengshouquan/model/model.go b/src/renzhengshouquan/model/model.go
index dc81c6d..a795597 100644
--- a/src/renzhengshouquan/model/model.go
+++ b/src/renzhengshouquan/model/model.go
@@ -35,6 +35,7 @@ const (
DASHBOARD_UID = "dashboard_uid"
SPACE = "space"
INDEX = "index"
+ VALUE = "value"
PATH = "path"
)
diff --git a/src/renzhengshouquan/profile.go b/src/renzhengshouquan/profile.go
index 7ac82c1..80c2bd1 100644
--- a/src/renzhengshouquan/profile.go
+++ b/src/renzhengshouquan/profile.go
@@ -2,10 +2,7 @@ package renzhengshouquan
import (
"shylinux.com/x/ice"
- "shylinux.com/x/icebergs/base/aaa"
- "shylinux.com/x/icebergs/base/ctx"
"shylinux.com/x/icebergs/base/mdb"
- "shylinux.com/x/icebergs/base/web"
kit "shylinux.com/x/toolkits"
"shylinux.com/x/community/src/renzhengshouquan/model"
@@ -14,71 +11,72 @@ import (
type profile struct {
Auth
order string `data:"3"`
- modify string `name:"modify info" role:"void"`
- upload string `name:"upload" role:"void"`
+ modify string `name:"modify info" role:"leader,worker"`
+ upload string `name:"upload" role:"leader,worker"`
authList string `name:"authList" role:"void"`
- fromList string `name:"fromList" role:"void"`
memberList string `name:"memberList" role:"void"`
serviceList string `name:"serviceList" role:"void"`
+ fromList string `name:"fromList" role:"void"`
authPersonal string `name:"authPersonal" role:"void"`
}
func (s profile) Modify(m *ice.Message, arg ...string) {
- s.Update(m, kit.Dict(m.OptionSimple(model.INFO)), model.UID, m.Option(model.AUTH_UID))
+ s.Update(m, m.OptionSimple(model.INFO), model.UID, m.Option(model.AUTH_UID))
}
func (s profile) Upload(m *ice.Message, arg ...string) {
- m.WarnNotValid(!kit.IsIn(m.OptionDefault(mdb.FIELD, aaa.AVATAR), aaa.AVATAR, aaa.BACKGROUND))
- s.Table.UploadUpdate(m, "", m.Option(model.AUTH_UID))
+ if m.WarnNotValid(!kit.IsIn(m.OptionDefault(mdb.FIELD, model.AVATAR), model.AVATAR, model.BACKGROUND)) {
+ return
+ }
+ s.UploadUpdate(m, "", m.Option(model.AUTH_UID))
}
func (s profile) List(m *ice.Message, arg ...string) {
- if len(arg) == 1 {
+ if len(arg) == 0 {
+ s.Select(m)
+ s.RewriteAppend(m)
+ m.PushAction(s.Remove)
+ return
+ } else if len(arg) == 1 {
s.Select(m, model.UID, arg[0])
- kit.If(s.IsVisitor(m), func() { m.Action() }, func() { m.Action(s.Modify) })
+ kit.If(s.IsWorker(m), func() { m.Action(s.Modify) }, func() { m.Action() })
+ } else {
+ return
}
switch AuthType(kit.Int(m.Append(model.AUTH_TYPE))) {
case AuthService:
- kit.If(s.IsVisitor(m), func() { m.Action() }, func() { m.Action(s.Modify, s.Enter) })
+ kit.If(s.IsWorker(m), func() { m.Action(s.Modify, s.Enter) }, func() { m.Action() })
s.SelectJoinRecent(m, model.PLACE_UID)
s.SelectJoinService(m)
- defer m.Echo(m.Append(model.CITY_NAME) + " " + m.Append(model.STREET_NAME) + " " + m.Append(model.PLACE_NAME))
+ defer m.Echo(kit.JoinWord(m.Append(model.CITY_NAME), m.Append(model.STREET_NAME), m.Append(model.PLACE_NAME)))
case AuthPersonal:
s.SelectJoinUser(m)
- defer m.Echo(m.Append(model.NAME))
+ fallthrough
default:
defer m.Echo(m.Append(model.NAME))
}
s.RewriteAppend(m)
- m.EchoQRCode(s.Link(m, arg[0], m.PrefixKey()))
- m.Display("").DisplayCSS("")
-}
-func (s profile) FromList(m *ice.Message, arg ...string) {
- from := arg[0]
- for {
- msg := s.Select(m.Spawn(), model.UID, from)
- m.Copy(msg)
- if msg.Append(model.FROM_UID) != "" {
- from = msg.Append(model.FROM_UID)
- } else {
- break
- }
- }
+ m.EchoQRCode(s.Link(m, arg[0], m.PrefixKey())).Display("").DisplayCSS("")
}
func (s profile) AuthList(m *ice.Message, arg ...string) {
- m.Cmdy(s.Auth, m.Option(model.AUTH_UID)).Table(func(value ice.Maps) {
+ m.Cmdy(s.Auth, arg[0]).Table(func(value ice.Maps) {
if value[model.PLACE_UID] == "" {
m.PushButton()
} else {
m.PushButton(s.Enter)
}
})
+ s.SelectJoinRecent(m, model.PLACE_UID)
s.SelectJoinService(m)
s.RewriteAppend(m)
}
func (s profile) MemberList(m *ice.Message, arg ...string) {
user_uid := m.Option(model.USER_UID)
- msg := s.Select(m.Spawn(), model.UID, m.Option(model.AUTH_UID))
- service := s.Table.ServiceList(m, msg.Append(model.PLACE_UID), msg.Append(model.SERVICE_UID))
- m.Cmdy(web.SPACE, service.Append(model.SPACE), service.Append(model.INDEX), ctx.ACTION, m.ActionKey(), msg.Append(model.PLACE_UID))
+ s.Fields(m, model.USER_UID)
+ s.settingProfile(m, model.PLACE_UID, arg[0])
+ if m.Length() == 0 {
+ return
+ }
+ s.SelectJoinUser(m, model.NAME, model.INFO, model.AVATAR, model.BACKGROUND, model.AUTH_UID)
+ s.SelectJoinAuth(m)
m.Table(func(value ice.Maps) {
if value[model.AUTH_STATUS] == "" && value[model.USER_UID] == user_uid {
m.PushButton(s.AuthPersonal)
@@ -89,15 +87,36 @@ func (s profile) MemberList(m *ice.Message, arg ...string) {
s.RewriteAppend(m)
}
func (s profile) ServiceList(m *ice.Message, arg ...string) {
- list := s.SettingProfile(m.Spawn(), arg...).Appendv(model.PLACE_UID)
+ msg := m.Spawn()
+ s.Fields(msg, model.PLACE_UID)
+ list := s.settingProfile(msg, model.USER_UID, arg[0]).Appendv(model.PLACE_UID)
+ if m.WarnNotFound(len(list) == 0, model.USER_UID, arg[0]) {
+ return
+ }
s.FieldsWithCreatedAT(m, s.Auth, kit.TransArgs(kit.Split(m.Config(mdb.FIELDS), ",", ","))...)
s.SelectList(m, kit.Simple(model.PLACE_UID, kit.Sort(list))...)
+ s.SelectJoinRecent(m, model.PLACE_UID)
s.SelectJoinService(m).PushAction(s.Enter)
s.RewriteAppend(m)
}
-func (s profile) Enter(m *ice.Message, arg ...string) {}
-func (s profile) AuthPersonal(m *ice.Message, arg ...string) {
- m.Cmdy(m.Prefix("credit"), m.ActionKey())
+func (s profile) FromList(m *ice.Message, arg ...string) {
+ from := arg[0]
+ for {
+ msg := s.Select(m.Spawn(), model.UID, from)
+ if m.Copy(msg); msg.Append(model.FROM_UID) != "" {
+ from = msg.Append(model.FROM_UID)
+ } else {
+ break
+ }
+ }
}
+func (s profile) AuthPersonal(m *ice.Message, arg ...string) {
+ s.CreditCmdy(m, m.ActionKey(), arg)
+}
+func (s profile) Enter(m *ice.Message, arg ...string) {}
func init() { ice.TeamCtxCmd(profile{}) }
+
+func (s profile) settingProfile(m *ice.Message, arg ...string) *ice.Message {
+ return s.SettingCmdy(m, s.Select, arg, model.NAME, "profile", model.VALUE, "on")
+}
diff --git a/src/renzhengshouquan/profile.js b/src/renzhengshouquan/profile.js
index a5a36de..0192f2d 100644
--- a/src/renzhengshouquan/profile.js
+++ b/src/renzhengshouquan/profile.js
@@ -1,8 +1,5 @@
Volcanos(chat.ONIMPORT, {
- _init: function(can, msg) {
- msg.Option("_share_title", msg.Append(mdb.NAME)), msg.Option("_share_content", msg.Append(mdb.INFO)), msg.Option("_share_icons", msg.Append(aaa.AVATAR))
- // if (!can.base.isIn(msg.Option(USER_ROLE), "1", "2", "3")) { delete(can.onaction.updateAvatar), delete(can.onaction.updateBackground) }
- can.ui = can.page.Appends(can, can._output, [html.HEAD, html.LIST, "from"])
+ _init: function(can, msg) { can.ui = can.page.Appends(can, can._output, [html.HEAD, html.LIST, "from"])
msg.Table(function(value) {
can.page.Append(can, can.ui.head, [{img: can.misc.Resource(can, value.background||html.BACKGROUND_JPG), onclick: function(event) {
can.onaction.updateBackground && can.onaction.updateBackground(event, can)
@@ -16,34 +13,34 @@ Volcanos(chat.ONIMPORT, {
switch (msg.Append(AUTH_TYPE)) {
case "root": can.onimport.myTitle(can, "My City", "城市列表", can.ui.list); break
case "city": can.onimport.myTitle(can, "My Company", "组织列表", can.ui.list); break
- case "service": can.onimport.myTitle(can, "My Member", "成员列表", can.ui.list); break
- default: can.onimport.myTitle(can, "My Auth", "服务列表", can.ui.list)
- } can.onimport.myTitle(can, "My From", "认证机构", can.ui.from)
- msg.Append(AUTH_TYPE) == "personal"? can.onimport.serviceList(can, msg): msg.Append(AUTH_TYPE) == "service"? can.onimport.memberList(can, msg): can.onimport.authList(can, msg)
+ default: can.onimport.myTitle(can, "My Auth", "服务列表"); break
+ }
+ msg.Append(AUTH_TYPE) == "personal"? can.onimport.serviceList(can, msg, can.ui.list): msg.Append(AUTH_TYPE) == "service"? can.onimport.memberList(can, msg, can.ui.list): can.onimport.authList(can, msg)
can.onimport.fromList(can, msg, can.ui.from), can.onappend.board(can, msg)
+ msg.Option("_share_title", msg.Append(mdb.NAME)), msg.Option("_share_content", msg.Append(mdb.INFO)), msg.Option("_share_icons", msg.Append(aaa.AVATAR))
+ if (!can.base.isIn(msg.Option(USER_ROLE), "1", "2", "3")) { delete(can.onaction.updateAvatar), delete(can.onaction.updateBackground) }
},
myTitle: function(can, name, help, target) {
- can.page.Append(can, target, [{view: html.TITLE, list: [{text: can.user.trans(can, name, help)}]}])
+ can.page.Appends(can, target||can.ui.list, [{view: html.TITLE, list: [{text: can.user.trans(can, name, help)}]}])
},
- authList: function(can, msg) {
- can.runAction(can.request({}, {auth_uid: msg.Append(UID)}), "authList", [], function(msg) {
+ authList: function(can, msg, action, uid, target) {
+ can.runAction({}, action||"authList", [uid||msg.Append(UID)], function(msg) { if (msg.Length() == 0) { return can.onmotion.hidden(can, target) }
can.onimport.myView(can, msg, function(value) {
return [
{view: html.TITLE, list: [value.name, can.onimport.authView(can, value), can.onimport.textView(can, value, AUTH_TYPE), can.onimport.titleAction(can, value)]},
- {view: html.STATUS, list: [value.info, value.service_name]},
+ {view: html.STATUS, list: [value.city_name, value.street_name, value.service_name]},
+ {view: html.STATUS, list: [value.info]},
]
}, function(event, value) {
can.Option(AUTH_UID, value.uid), can.Update(event)
- }, can.ui.list)
+ }, target||can.ui.list)
})
},
- memberList: function(can, msg) {
- can.runAction(can.request({}, {auth_uid: msg.Append(UID)}), "memberList", [], function(msg) {
+ memberList: function(can, msg, target) { can.onimport.myTitle(can, "My Member", "成员列表")
+ can.runAction({}, "memberList", [msg.Append(PLACE_UID)], function(msg) { if (msg.Length() == 0) { return can.onmotion.hidden(can, target) }
can.onimport.myView(can, msg, function(value) { value.icons = value.auth_avatar||value.user_avatar||html.AVATAR_JPG
return [
- {view: html.TITLE, list: [value.auth_name||value.user_name, can.onimport.authView(can, value), can.onimport.textView(can, value, AUTH_TYPE),
- can.onimport.titleAction(can, value),
- ]},
+ {view: html.TITLE, list: [value.auth_name||value.user_name, can.onimport.authView(can, value), can.onimport.textView(can, value, AUTH_TYPE), can.onimport.titleAction(can, value)]},
{view: html.STATUS, list: [value.auth_info||value.user_info]},
]
}, function(event, value) {
@@ -55,35 +52,17 @@ Volcanos(chat.ONIMPORT, {
}, can.ui.list)
})
},
- serviceList: function(can, msg) {
- can.runAction(can.request({}, {}), "serviceList", [msg.Append(USER_UID)||msg.Option(USER_UID)], function(msg) {
- can.onimport.myView(can, msg, function(value) { value.icons = value.avatar||value.service_icon||html.AVATAR_JPG
- return [
- {view: html.TITLE, list: [value.name, can.onimport.authView(can, value), can.onimport.textView(can, value, AUTH_TYPE), can.onimport.titleAction(can, value)]},
- {view: html.STATUS, list: [value.info, value.service_name]},
- ]
- }, function(event, value) {
- can.Option(AUTH_UID, value.uid), can.Update(event)
- }, can.ui.list)
- })
+ serviceList: function(can, msg, target) {
+ can.onimport.myTitle(can, "My Auth", "服务列表")
+ can.onimport.authList(can, msg, "serviceList", msg.Append(USER_UID))
},
- fromList: function(can, msg, target) {
- can.runAction(can.request({}, {}), "fromList", [msg.Append("from_uid")], function(msg) {
- if (msg.Length() == 0) { return can.onmotion.hidden(can, target) }
- can.onimport.myView(can, msg, function(value) {
- return [
- {view: html.TITLE, list: [value.name, can.onimport.authView(can, value), can.onimport.textView(can, value, AUTH_TYPE), can.onimport.titleAction(can, value)]},
- {view: html.STATUS, list: [value.info, value.service_name]},
- ]
- }, function(event, value) {
- can.Option(AUTH_UID, value.uid), can.Update(event)
- }, target)
- })
+ fromList: function(can, msg, target) { can.onimport.myTitle(can, "My From", "认证机构", target)
+ can.onimport.authList(can, msg, "fromList", msg.Append("from_uid"), target)
},
})
Volcanos(chat.ONACTION, {
enter: function(event, can) { var msg = can.request(event)
- can.onimport.myPlugin(can, {space: msg.Option("nodename"), index: msg.Option("index"), args: [msg.Option("place_uid")]})
+ can.onimport.myPlugin(can, {space: msg.Option("nodename"), index: msg.Option(ctx.INDEX), args: [msg.Option(PLACE_UID)]})
},
updateBackground: function(event, can) { can.user.upload(can.request(event, {field: aaa.BACKGROUND}), can) },
updateAvatar: function(event, can) { can.user.upload(can.request(event, {field: aaa.AVATAR}), can) },
diff --git a/src/yuehaoxitong/call.go b/src/yuehaoxitong/call.go
index 4e3f5b0..8ef9835 100644
--- a/src/yuehaoxitong/call.go
+++ b/src/yuehaoxitong/call.go
@@ -17,7 +17,7 @@ type call struct {
func (s call) List(m *ice.Message, arg ...string) {
if len(arg) == 1 {
m.Cmdy(s.reception, arg).RenameAppend(model.UID, model.RECEPTION_UID).PushAction().Action()
- m.Echo("请选择服务场所")
+ m.Echo("请先选择服务场所")
} else if len(arg) == 2 {
s.SelectByStatus(m.Options(mdb.ORDER, model.TAKE_TIME), arg[0], kit.Format(ScheduleTake), model.RECEPTION_UID, arg[1])
kit.If(m.Length() == 0, func() { m.Echo(m.Trans("wait take", "等待取号")) }, func() { m.Action(s.Call) })
diff --git a/src/yuehaoxitong/volume.go b/src/yuehaoxitong/volume.go
index 0775dcc..77b9843 100644
--- a/src/yuehaoxitong/volume.go
+++ b/src/yuehaoxitong/volume.go
@@ -32,8 +32,7 @@ func (s Volume) List(m *ice.Message, arg ...string) *ice.Message {
} else {
return m
}
- s.SelectJoinUser(m)
- return m.Display("")
+ return s.SelectJoinUser(m).Display("")
}
func init() { ice.TeamCtxCmd(Volume{}) }