opt some
@ -19,8 +19,7 @@ type allow struct {
|
||||
|
||||
func (s allow) Create(m *ice.Message, arg ...string) {
|
||||
s.Insert(m.Spawn(), arg...)
|
||||
s.GetCommandUID(m)
|
||||
s.SendMessage(m, m.Option(model.FROM_USER_UID), "")
|
||||
s.SendMessage(s.GetCommandUID(m), m.Option(model.FROM_USER_UID), "")
|
||||
s.SendTemplate(m, "", "", m.Trans("please allow", "权限审批 请处理"))
|
||||
}
|
||||
func (s allow) List(m *ice.Message, arg ...string) {
|
||||
@ -30,13 +29,15 @@ func (s allow) List(m *ice.Message, arg ...string) {
|
||||
s.AS(s.Key(s, model.UID), model.ALLOW_UID), model.ALLOW_STATUS,
|
||||
)
|
||||
if len(arg) == 1 {
|
||||
s.Select(m, s.Key(s, model.PLACE_UID), arg[0], s.Key(s, model.USER_UID), m.Option(model.USER_UID)).Action()
|
||||
// s.Select(m, s.Key(s, model.PLACE_UID), arg[0], s.Key(s, model.USER_UID), m.Option(model.USER_UID)).Action()
|
||||
s.Select(m, s.Key(s, model.PLACE_UID), arg[0]).Action()
|
||||
if m.Length() == 0 {
|
||||
m.Cmdy(s.Prefix(m, qrcode{}), qrcode{}.ApplyQRCode, arg[0]).SetAppend().Action()
|
||||
return
|
||||
}
|
||||
} else if len(arg) == 2 {
|
||||
s.SelectDetail(m, s.Key(s, model.PLACE_UID), arg[0], s.Key(s, model.USER_UID), m.Option(model.USER_UID), s.Key(s.apply, model.UID), arg[1])
|
||||
// s.SelectDetail(m, s.Key(s, model.PLACE_UID), arg[0], s.Key(s, model.USER_UID), m.Option(model.USER_UID), s.Key(s.apply, model.UID), arg[1])
|
||||
s.SelectDetail(m, s.Key(s, model.PLACE_UID), arg[0], s.Key(s.apply, model.UID), arg[1])
|
||||
m.Table(func(value ice.Maps) {
|
||||
if AllowStatus(kit.Int(value[model.ALLOW_STATUS])) != AllowCreate {
|
||||
s.DoneMessage(m)
|
||||
@ -73,10 +74,15 @@ func (s allow) process(m *ice.Message, from, to AllowStatus, icon string, title
|
||||
s.DoneMessage(m)
|
||||
}
|
||||
func (s allow) changeStatus(m *ice.Message, from, to AllowStatus, arg ...string) *ice.Message {
|
||||
msg := s.Select(m.Spawn(), model.UID, m.Option(model.ALLOW_UID), model.USER_UID, m.Option(model.USER_UID))
|
||||
// msg := s.Select(m.Spawn(), model.UID, m.Option(model.ALLOW_UID), model.USER_UID, m.Option(model.USER_UID))
|
||||
args := []string{model.UID, m.Option(model.ALLOW_UID), model.USER_UID, m.Option(model.USER_UID)}
|
||||
if s.IsLeader(m) {
|
||||
args = []string{model.UID, m.Option(model.ALLOW_UID)}
|
||||
}
|
||||
msg := s.Select(m.Spawn(), args...)
|
||||
if !m.WarnNotFound(msg.Length() == 0, m.Option(model.ALLOW_UID)) {
|
||||
if status := AllowStatus(kit.Int(msg.Append(model.STATUS))); !m.WarnNotValid(status != from, status.String()) {
|
||||
s.Update(m, kit.Dict(model.STATUS, to), model.UID, m.Option(model.ALLOW_UID), model.USER_UID, m.Option(model.USER_UID))
|
||||
s.Update(m.Spawn(), kit.Dict(model.STATUS, to), args...)
|
||||
}
|
||||
}
|
||||
return msg
|
||||
|
BIN
src/gonganxitong/allow.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
@ -59,6 +59,20 @@ func (s apply) List(m *ice.Message, arg ...string) {
|
||||
func (s apply) Cancel(m *ice.Message, arg ...string) {
|
||||
s.changeStatus(m, ApplyCreate, ApplyCancel)
|
||||
}
|
||||
func (s apply) ApplyCreate(m *ice.Message, arg ...string) {
|
||||
m.Option(model.UID, m.Cmdx("", s.Create, arg))
|
||||
m.Cmdy("", s.Submit)
|
||||
}
|
||||
func (s Table) ApplyCreate(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(s.Prefix(m, apply{}), s.ApplyCreate, model.ROLE, "3")
|
||||
}
|
||||
func (s Table) ApplyCheck(m *ice.Message, arg ...string) {
|
||||
if m.Cmd(s.Prefix(m, apply{}), arg[0]).Length() == 0 {
|
||||
m.EchoInfoButton("请申请加入团队", s.ApplyCreate)
|
||||
} else {
|
||||
m.Echo("\n权限申请已提交\n请等待管理员审批\n然后刷新界面查看最新状态")
|
||||
}
|
||||
}
|
||||
func (s apply) Submit(m *ice.Message, arg ...string) {
|
||||
msg := s.changeStatus(m, ApplyCreate, ApplySubmit)
|
||||
if m.WarnNotValid(msg.IsErr()) {
|
||||
|
BIN
src/gonganxitong/apply.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
@ -45,19 +45,25 @@ type Table struct {
|
||||
checkRole string `name:"checkRole role"`
|
||||
inputs string `name:"inputs" role:"void"`
|
||||
list string `name:"list place_uid uid auto" role:"void"`
|
||||
marketInsert string `name:"marketInsert domain_uid* title* content" role:"leader"`
|
||||
marketInsert string `name:"marketInsert domain_uid* title* content" style:"notice" role:"leader"`
|
||||
pushPublic string `name:"pushPublic domain_uid* title* content" role:"leader"`
|
||||
memberList string `name:"memberList" role:"void"`
|
||||
noticeList string `name:"noticeList" role:"void"`
|
||||
// applyCreate string `name:"applyCreate" role:"void"`
|
||||
}
|
||||
|
||||
func (s Table) LoadTrans(m *ice.Message, arg ...string) {
|
||||
m.Option("_iconslib", "https://img.icons8.com/officel/80/")
|
||||
// m.Option("_iconslib", "https://img.icons8.com/officel/80/")
|
||||
p := kit.FileLine(1, 100)
|
||||
if m.PrefixKey() != api.GONGANXITONG_PORTAL {
|
||||
ice.LoadTrans(m.Spawn(kit.Dict("_template", path.Join(path.Dir(p), "portal.json"))).Message, m.CommandKey(), m.GetCommand().Command)
|
||||
}
|
||||
h := ctx.GetCmdFile(m.Message, m.PrefixKey())
|
||||
kit.If(strings.HasPrefix(h, "/p/src/"), func() { h = strings.TrimPrefix(h, "/p/") })
|
||||
nfs.Exists(m.Message, kit.ExtChange(h, "png"), func(p string) {
|
||||
cmd := m.Target().Commands[m.CommandKey()]
|
||||
cmd.Icon = m.Resource(p)
|
||||
})
|
||||
if path.Dir(h) != path.Dir(p) && m.CommandKey() != web.PORTAL {
|
||||
ice.LoadTrans(m.Spawn(kit.Dict("_template", path.Join(path.Dir(h), "portal.json"))).Message, m.CommandKey(), m.GetCommand().Command)
|
||||
}
|
||||
@ -87,6 +93,11 @@ func (s Table) Inputs(m *ice.Message, arg ...string) {
|
||||
s.Table.Inputs(m, arg...)
|
||||
}
|
||||
}
|
||||
func (s Table) InputsUID(m *ice.Message, target ice.Any, arg ...string) {
|
||||
s.Fields(m, model.UID, model.TITLE)
|
||||
m.Cmdy(target, s.Select, m.OptionSimple(s.PLACE_UID)).RenameAppend(model.UID, arg[0])
|
||||
m.DisplayInputKeyNameIconTitle()
|
||||
}
|
||||
func (s Table) InputsList(m *ice.Message, list ice.Any, arg ...string) {
|
||||
it := reflect.ValueOf(list).MapRange()
|
||||
for it.Next() {
|
||||
@ -120,7 +131,7 @@ func (s Table) InputsListValue(m *ice.Message, list ice.Any, key string) string
|
||||
return ""
|
||||
}
|
||||
func (s Table) TransPrice(m *ice.Message, arg []string, field ...string) []string {
|
||||
kit.If(len(field) == 0, func() { field = append(field, "price") })
|
||||
kit.If(len(field) == 0, func() { field = append(field, "price", "amount") })
|
||||
for i := 0; i < len(arg)-1; i += 2 {
|
||||
if kit.IndexOf(field, arg[i]) > -1 {
|
||||
arg[i+1] = kit.Format(kit.Int(kit.Float(arg[i+1]) * 100))
|
||||
@ -136,6 +147,7 @@ func (s Table) ValueModel(m *ice.Message, action ice.Any, arg ...string) *ice.Me
|
||||
return m.Options(arg).Cmdy(s.PrefixPortal(m), action, arg)
|
||||
}
|
||||
func (s Table) ValueCreate(m *ice.Message, arg ...string) {
|
||||
s.TransPrice(m, arg)
|
||||
s.ValueModel(m, s.ValueCreate, arg...)
|
||||
s.RecordEventWithName(m, "")
|
||||
s.UserPlaceInit(m)
|
||||
@ -155,9 +167,12 @@ func (s Table) ValueList(m *ice.Message, arg []string, fields ...ice.Any) *ice.M
|
||||
}
|
||||
if s.ValueModel(m, s.ValueList, arg...); len(arg) == 1 {
|
||||
s.UserPlaceInit(m)
|
||||
s.Button(m, "", s.Create)
|
||||
if s.IsWorker(m) {
|
||||
s.Button(m, "", s.Create)
|
||||
}
|
||||
}
|
||||
return s.SelectJoinUser(m)
|
||||
return m
|
||||
// return s.SelectJoinUser(m)
|
||||
}
|
||||
func (s Table) Create(m *ice.Message, arg ...string) { s.ValueCreate(m, arg...) }
|
||||
func (s Table) Remove(m *ice.Message, arg ...string) { s.ValueRemove(m, arg...) }
|
||||
@ -296,7 +311,7 @@ func (s Table) UploadCreate(m *ice.Message, field, uid string, arg ...string) st
|
||||
}
|
||||
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)
|
||||
if !m.WarnNotValid(msg.Length() == 0 || kit.Int(msg.Append(mdb.STATUS)) != int(from)) {
|
||||
if !m.WarnNotValid(msg.Length() == 0 || from != kit.Int(msg.Append(mdb.STATUS)), kit.Format("%v != %v", from, kit.Int(msg.Append(mdb.STATUS)))) {
|
||||
s.Update(m, kit.Dict(mdb.STATUS, to, arg), model.UID, uid)
|
||||
}
|
||||
return m
|
||||
@ -405,6 +420,9 @@ func (s Table) DashboardUpdate(m *ice.Message, arg ...string) {
|
||||
func (s Table) MarketInsert(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(s.Prefix(m, Portal{}), s.MarketInsert, arg)
|
||||
}
|
||||
func (s Table) PushPublic(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(s.Prefix(m, Portal{}), s.PushPublic, arg)
|
||||
}
|
||||
func (s Table) ServiceList(m *ice.Message, arg ...string) *ice.Message {
|
||||
return m.Cmd(s.Prefix(m, service{}), arg)
|
||||
}
|
||||
@ -469,7 +487,8 @@ func (s Table) Display(m *ice.Message, file string) *ice.Message {
|
||||
}
|
||||
if m.Template(file) == "" {
|
||||
if m.CommandKey() == web.PORTAL {
|
||||
file = m.Resource(path.Join(base, "portal.js"))
|
||||
// file = m.Resource(path.Join(base, "portal.js"))
|
||||
file = m.Resource(path.Join(sub, "portal.js"))
|
||||
} else {
|
||||
file = m.Resource(path.Join(base, "common.js"))
|
||||
}
|
||||
@ -567,12 +586,19 @@ func PortalCmd(portal ice.Any) {
|
||||
return
|
||||
}
|
||||
cmd.RawHand = path.Join(path.Dir(h), name+".go")
|
||||
what := kit.FileLine(1, 100)
|
||||
// cmd.Icon = path.Join(path.Dir(what), name) + ".png"
|
||||
nfs.Exists(ice.Pulse, path.Join(path.Dir(what), name)+".png", func(p string) {
|
||||
cmd.Icon = "/p/src/gonganxitong/" + name + ".png?pod=20240724-community"
|
||||
// ice.Pulse.Resource(p)
|
||||
})
|
||||
cmd.Actions[ice.CTX_INIT].Hand = icebergs.MergeHand(func(m *icebergs.Message, arg ...string) {
|
||||
m.Design(mdb.LIST, "", kit.JoinWord(table.Keys(table.Place, model.UID), model.UID, ice.AUTO))
|
||||
mdb.Config(m, db.DOMAIN, kit.PathName(1))
|
||||
}, cmd.Actions[ice.CTX_INIT].Hand)
|
||||
}
|
||||
cmd("portal", portal)
|
||||
|
||||
cmd("goodslist", goodslist{Table: table})
|
||||
cmd("quotalist", quotalist{Table: table})
|
||||
cmd("spendlist", spendlist{Table: table})
|
||||
@ -581,6 +607,7 @@ func PortalCmd(portal ice.Any) {
|
||||
cmd("document", document{Table: table})
|
||||
cmd("contract", contract{Table: table})
|
||||
cmd("photo", photo{Table: table})
|
||||
|
||||
cmd("credit", credit{Tables: tables})
|
||||
cmd("member", member{Tables: tables})
|
||||
cmd("setting", setting{Table: table})
|
||||
|
BIN
src/gonganxitong/credit.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
src/gonganxitong/event.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
src/gonganxitong/market.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
src/gonganxitong/member.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
src/gonganxitong/message.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
@ -163,6 +163,19 @@ type Goodslist struct {
|
||||
Amount int `gorm:"default:0"`
|
||||
ExpireTime db.Time
|
||||
}
|
||||
type Paymentlist struct {
|
||||
db.ModelWithUID
|
||||
PlaceUID string `gorm:"type:char(32);index"`
|
||||
UserUID string `gorm:"type:char(32)"`
|
||||
GoodslistUID string `gorm:"type:char(32)"`
|
||||
VendorUID string `gorm:"type:char(32)"`
|
||||
Vendor string `gorm:"type:varchar(128)"`
|
||||
Title string `gorm:"type:varchar(128)"`
|
||||
Content string `gorm:"type:varchar(128)"`
|
||||
Amount int32 `gorm:"default:0"`
|
||||
Status uint8 `gorm:"default:0"`
|
||||
Type uint8 `gorm:"default:0"`
|
||||
}
|
||||
type Quotalist struct {
|
||||
db.ModelWithUID
|
||||
PlaceUID string `gorm:"type:char(32);index"`
|
||||
@ -184,19 +197,6 @@ type Spendlist struct {
|
||||
Count int `gorm:"default:0"`
|
||||
ExpireTime db.Time
|
||||
}
|
||||
type Paymentlist struct {
|
||||
db.ModelWithUID
|
||||
PlaceUID string `gorm:"type:char(32);index"`
|
||||
UserUID string `gorm:"type:char(32)"`
|
||||
GoodslistUID string `gorm:"type:char(32)"`
|
||||
VendorUID string `gorm:"type:char(32)"`
|
||||
Vendor string `gorm:"type:varchar(128)"`
|
||||
Title string `gorm:"type:varchar(128)"`
|
||||
Content string `gorm:"type:varchar(128)"`
|
||||
Amount int32 `gorm:"default:0"`
|
||||
Status uint8 `gorm:"default:0"`
|
||||
Type uint8 `gorm:"default:0"`
|
||||
}
|
||||
type Meeting struct {
|
||||
db.ModelWithUID
|
||||
PlaceUID string `gorm:"type:char(32);index"`
|
||||
@ -225,6 +225,7 @@ type Photo struct {
|
||||
Vendor string `gorm:"type:varchar(128)"`
|
||||
ExpireTime db.Time
|
||||
}
|
||||
|
||||
type Setting struct {
|
||||
db.ModelWithUID
|
||||
PlaceUID string `gorm:"type:char(32);index"`
|
||||
@ -232,7 +233,6 @@ type Setting struct {
|
||||
Name string `gorm:"type:varchar(64)"`
|
||||
Value string `gorm:"type:varchar(255)"`
|
||||
}
|
||||
|
||||
type Apply struct {
|
||||
db.ModelWithUID
|
||||
PlaceUID string `gorm:"type:char(32);index:idx_place"`
|
||||
@ -260,6 +260,7 @@ type Notice struct {
|
||||
PlaceUID string `gorm:"type:char(32);index"`
|
||||
UserUID string `gorm:"type:char(32)"`
|
||||
}
|
||||
|
||||
type Domain struct {
|
||||
db.ModelNameInfo
|
||||
}
|
||||
@ -344,9 +345,9 @@ type Support struct {
|
||||
func init() {
|
||||
db.CmdModels("",
|
||||
&Sess{}, &User{}, &UserPlace{}, &Place{}, &Street{}, &City{},
|
||||
&Paymentlist{}, &Meeting{}, &Document{}, &Contract{}, &Photo{}, &Setting{},
|
||||
&Goodslist{}, &Quotalist{}, &Spendlist{},
|
||||
&Apply{}, &Allow{}, &Event{}, &Notice{},
|
||||
&Goodslist{}, &Paymentlist{}, &Quotalist{}, &Spendlist{},
|
||||
&Meeting{}, &Document{}, &Contract{}, &Photo{},
|
||||
&Setting{}, &Apply{}, &Allow{}, &Event{}, &Notice{},
|
||||
&Domain{}, &Market{}, &Thumb{}, &Comment{}, &Favor{},
|
||||
&Command{}, &Message{}, &Recent{}, &Service{}, &Support{},
|
||||
)
|
||||
|
BIN
src/gonganxitong/notice.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
src/gonganxitong/portal-header.png
Normal file
After Width: | Height: | Size: 243 KiB |
@ -17,6 +17,7 @@ $action div.item.button i { display:none; }
|
||||
$output div.title div.action div.item.notice input { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
$output { background-color:var(--plugin-bg-color); }
|
||||
$output>div.header { background-image:linear-gradient(var(--notice-bg-color), var(--plugin-bg-color)); height:240px; width:100%; position:absolute; left:0; }
|
||||
body.light $output>div.header { background-image:url("/p/src/gonganxitong/portal-header.png?pod=20240724-community"); }
|
||||
$output>div.header img { height:100%; width:100%; object-fit:cover; }
|
||||
$output>div.action>div.list { margin:0 10px; }
|
||||
$output div.output>div.code { font-size:16px; position:relative; }
|
||||
@ -26,12 +27,14 @@ $output>div>div.list { border-radius:10px; background-color:var(--output-bg-colo
|
||||
$output>div>div.list.myplace>div.output { padding:0 10px; max-height:320px; }
|
||||
$output>div>div.list.myplace>div.output>div.item>div.output div.title span.type { line-height:18px; }
|
||||
$output>div>div.list.myplace>div.output>div.item>div.output div.title span.role { line-height:18px; }
|
||||
$output>div>div.list.myplace>div.output>div.item>div.output div.title { margin-bottom:5px; }
|
||||
$output>div>div.list.mynotice { cursor:pointer; }
|
||||
$output>div>div.list.mynotice:not(.hide) { display:flex; align-items:center; }
|
||||
$output>div>div.list.mynotice>span.title { flex-grow:1; margin:0 5px; }
|
||||
$output>div>div.list.mynotice>span:not(.title) { white-space:pre; }
|
||||
$output>div>div.list.mynotice>span:first-child { background-color:var(--hover-bg-color); color:var(--notice-bg-color); padding:0 5px; margin-right:5px; }
|
||||
$output>div>div.list.mynotice>span:last-child { color:gray; }
|
||||
$output>div>div.list.mylist>fieldset>div.output { max-height:none !important; }
|
||||
$output>div>div.list>div.title { font-weight:bold; display:flex; align-items:center; }
|
||||
$output>div>div.list>div.title span:first-child { flex-grow:1; }
|
||||
$output>div>div.list>div.title div.action div.item.filter input:focus { width:320px; transition:width 0.5s; }
|
||||
@ -61,29 +64,41 @@ $output div.tabs span { padding:5px 10px; }
|
||||
$output div.tabs span.select { background-color:var(--output-bg-color); color:var(--hover-fg-color); }
|
||||
$output div.item.card:not(:last-child) { margin-bottom:2px; }
|
||||
$output div.item.card>div.output>div { width:100%; width:calc(100% - 53px); overflow:hidden; }
|
||||
$output div.item.card div.title { margin-bottom:10px; width:100%; display:flex; position:relative; }
|
||||
$output div.item.card div.title { width:100%; display:flex; position:relative; }
|
||||
$output div.item.card div.title span.type { line-height:22px; }
|
||||
$output div.item.card div.title span.status { line-height:22px; }
|
||||
$output div.item.card div.title span.price { margin-left:auto; }
|
||||
$output div.item.card div.title span.auth { font-size:14px; padding:3px; }
|
||||
$output div.item.card div.title span.time { position:absolute; right:0; font-size:12px; color:gray; }
|
||||
$output div.item.card div.title span:first-child { word-break:break-all; }
|
||||
$output fieldset.story>div.item.card div.title span { line-height:26px; }
|
||||
// $output div.item.card>div.output>div.container>div.title span { line-height:26px; }
|
||||
$output div.item.title { border-left:var(--box-notice3); margin-left:10px; padding:10px; background-color:var(--output-bg-color); }
|
||||
$body div.inputs>div.input.float>div.action { display:flex; }
|
||||
|
||||
$output div.item.card div.title div.action input { margin-right:0; }
|
||||
$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 div.container img { margin-right:0; height:100%; width:100%; }
|
||||
$output div.item.card div.container>div.action { position:relative; float:right; }
|
||||
body:not(.mobile) $output div.item.card div.container>div.action { display:none; }
|
||||
body.mobile $output div.item.card div.container>div.title>span.status { margin-left:auto; }
|
||||
$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); }
|
||||
$action div.item.danger input[type=button] { border:var(--box-danger); color:var(--danger-bg-color); }
|
||||
$output input.notice[type=button]:hover { border:var(--box-notice); background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
$output input.notice[type=button]:not(:hover) { border:var(--box-notice); background-color:transparent; color:var(--notice-bg-color); }
|
||||
// $output input.notice[type=button]:not(:hover) { border:var(--box-notice); background-color:transparent; color:var(--notice-bg-color); }
|
||||
$output input.notice[type=button]:not(:hover) { background-color:transparent; color:var(--notice-bg-color); }
|
||||
$output input.danger[type=button]:not(:hover) { color:var(--danger-bg-color); }
|
||||
$output input.danger[type=button]:hover { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
|
||||
$output input[type=button][name=submit] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
|
||||
$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 { border:none; border-radius:5px; background-color:var(--hover-bg-color); color:var(--notice-bg-color); font-size:var(--status-font-size); line-height:22px; padding:2px 8px; }
|
||||
$output span.role { border:none; border-radius:5px; background-color:var(--hover-bg-color); color:var(--notice-bg-color); font-size:var(--status-font-size); line-height:22px; padding:2px 8px; }
|
||||
$output span.level { border:none; border-radius:5px; background-color:var(--hover-bg-color); color:var(--notice-bg-color); font-size:var(--status-font-size); line-height:22px; padding:2px 8px; }
|
||||
$output span.status { border:none; border-radius:5px; background-color:var(--hover-bg-color); color:var(--notice-bg-color); font-size:var(--status-font-size); line-height:22px; padding:2px 8px; }
|
||||
$output span.type.danger { color:var(--danger-bg-color); }
|
||||
$output span.role.danger { color:var(--danger-bg-color); }
|
||||
$output span.level.danger { color:var(--danger-bg-color); }
|
||||
$output span.status.danger { color:var(--danger-bg-color); }
|
||||
$output table.content { background-color:var(--output-bg-color); }
|
||||
$output table.content td.action input.icons { display:unset; }
|
||||
|
@ -16,6 +16,7 @@ import (
|
||||
"shylinux.com/x/mysql-story/src/db"
|
||||
)
|
||||
|
||||
// "member": "https://img.icons8.com/officel/80/person-at-home.png",
|
||||
type Portal struct {
|
||||
ice.Hash
|
||||
Table
|
||||
@ -30,7 +31,8 @@ type Portal struct {
|
||||
field string `data:"time,icons,name,index,order,enable,type,auth,role,view,init,portal"`
|
||||
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-circle" role:"void"`
|
||||
// placeCreate string `name:"placeCreate city_name* street_name* place_name* place_type:select address" icon:"bi bi-plus-square" role:"void"`
|
||||
placeRemove string `name:"placeRemove" role:"void"`
|
||||
}
|
||||
|
||||
@ -96,7 +98,10 @@ func (s Portal) Run(m *ice.Message, arg ...string) {
|
||||
role = action.Role
|
||||
} else {
|
||||
m.Option(s.Keys(s.Place, model.UID), arg[1])
|
||||
defer s.SelectJoinUser(m)
|
||||
}
|
||||
} else {
|
||||
defer s.SelectJoinUser(m)
|
||||
}
|
||||
if action, ok := cmd.Actions["beforeAction"]; ok {
|
||||
action.Hand(m.Message, arg[1:]...)
|
||||
@ -151,6 +156,10 @@ func (s Portal) List(m *ice.Message, arg ...string) {
|
||||
s.Hash.List(m).SortInt(mdb.ORDER)
|
||||
}
|
||||
s.Place.RewriteAppend(m)
|
||||
if true {
|
||||
p := kit.ExtChange(m.Resource(ctx.GetCmdFile(m.Message, m.PrefixKey())), "js")
|
||||
defer func() { m.Option(ice.MSG_DISPLAY, p+","+m.Option(ice.MSG_DISPLAY)) }()
|
||||
}
|
||||
s.DisplayBase(m, "").DisplayCSS("")
|
||||
}
|
||||
func (s Portal) PlaceListOption(m *ice.Message, arg ...string) *ice.Message {
|
||||
@ -347,6 +356,11 @@ func (s Portal) MarketInsert(m *ice.Message, arg ...string) {
|
||||
m.Option(ctx.ARGS, kit.Join([]string{m.Option(model.PLACE_UID), m.Option(model.UID)}))
|
||||
m.Cmdy(s.Prefix(m, market{}), s.Create, arg)
|
||||
}
|
||||
func (s Portal) PushPublic(m *ice.Message, arg ...string) {
|
||||
m.Option(model.PLACE_UID, m.Option(s.Keys(s.Place, model.UID)))
|
||||
m.Option(ctx.ARGS, kit.Join([]string{m.Option(model.PLACE_UID), m.Option(model.UID)}))
|
||||
m.Cmdy(s.Prefix(m, market{}), s.Create, arg)
|
||||
}
|
||||
func (s Portal) DashboardCreate(m *ice.Message, name string, arg ...string) func() {
|
||||
defer s.SaveBack(m, ice.MSG_USERPOD)()
|
||||
kit.If(name == "", func() { name = m.Option(s.Keys(s.Place, model.NAME)) })
|
||||
|
@ -2,6 +2,25 @@ var UID = "uid", PLACE_UID = "place_uid", PLACE_NAME = "place_name", PLACE_TYPE
|
||||
var USER_UID = "user_uid", USER_ROLE = "user_role", AUTH_UID = "auth_uid", AUTH_TYPE = "auth_type"
|
||||
Volcanos(chat.ONIMPORT, {
|
||||
_init: function(can, msg) { can.onappend.style(can, html.OUTPUT), can.onimport.myPortal(can, msg) },
|
||||
otherList: function(can, msg, action) { if (!msg.IsDetail()) { return } typeof action == "string" && (action = [action])
|
||||
can.core.Next(action, function(action, next) {
|
||||
can.run(can.request({}, {uid: msg.Append(UID)}), action, function(msg) { if (msg.Length() == 0) { return next() }
|
||||
can.page.Append(can, can._output, [{view: [[html.ITEM, html.TITLE], "", can.user.trans(can, action)]}])
|
||||
can.onappend.plugin(can, {index: can.ConfIndex()}, function(sub) { can.onimport.myField(can, sub)
|
||||
sub.run = function(event, cmds, cb) { if (!cmds || cmds.length == 0) { cb(msg) } }, next()
|
||||
sub.onexport.output = function(_sub, msg) {
|
||||
_sub.onaction.carddetail = function(event, _sub, value) {
|
||||
can.onimport.myStory(can, {index: msg.Option("_command"), args: [msg.Option("place_uid"), value.uid]})
|
||||
return true
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
qrcode: function(can, msg, avatar, target) { target = target||can.ui.output, can.onappend.board(can, msg, target)
|
||||
can.page.Append(can, can.page.SelectOne(can, target, "div.code"), [{img: can.misc.Resource(can, avatar||can.ConfIcons()||can.user.info.favicon), className: "avatar"}])
|
||||
},
|
||||
myValue: function(can, value) { return [
|
||||
{view: html.TITLE, list: [value.auth_name||value._name, can.onimport.authView(can, value),
|
||||
{text: [value.__type, "", [mdb.TYPE, value._type, value._type_style]]}, value._role != "visitor" && {text: [value.__role, "", [aaa.ROLE, value._role, value._role_style]]},
|
||||
@ -21,9 +40,6 @@ Volcanos(chat.ONIMPORT, {
|
||||
myTitle: function(can, name, help, target) {
|
||||
can.page.Appends(can, target||can.ui.list, [{view: html.TITLE, list: [{text: can.user.trans(can, name, help)}]}])
|
||||
},
|
||||
qrcode: function(can, msg, avatar, target) { target = target||can.ui.output, can.onappend.board(can, msg, target)
|
||||
can.page.Append(can, can.page.SelectOne(can, target, "div.code"), [{img: can.misc.Resource(can, avatar||can.ConfIcons()||can.user.info.favicon), className: "avatar"}])
|
||||
},
|
||||
myPortal: function(can, msg) { can.sup.current = {}
|
||||
can.page.tagis(document.body, "body.width1") && (can.user.isMobile = true, can.sup.user.isMobile = true)
|
||||
can.onmotion.delay(can, function() {
|
||||
|
@ -9,32 +9,20 @@
|
||||
"cancel": "取消", "submit": "提交", "finish": "完成", "reject": "驳回", "approve": "通过",
|
||||
"read": "已读", "done": "完成", "sticky": "置顶", "unSticky": "取消置顶",
|
||||
"autogen": "生成", "compile": "编译", "oauth": "授权", "project": "项目",
|
||||
"marketInsert": "推广", "commentCreate": "评论", "applyQRCode": "邀请码",
|
||||
"marketInsert": "推广",
|
||||
"pushPublic": "推广",
|
||||
"applyCreate": "申请权限",
|
||||
"commentCreate": "评论", "applyQRCode": "邀请码",
|
||||
"user": "用户信息", "city": "城市信息", "street": "街道信息", "school": "学校信息", "company": "公司信息",
|
||||
"auth": "认证", "authCreate": "认证申请", "authCity": "城市认证", "authPersonal": "个人认证", "authService": "服务认证", "authCompany": "公司认证",
|
||||
"config": "配置", "code": "编程", "data": "数据", "cache": "缓存",
|
||||
"icons": {
|
||||
"goodslist": "online-store.png",
|
||||
"paymentlist": "online-payment-with-a-credit-card.png",
|
||||
"meeting": "video-conference.png",
|
||||
"document": "documents.png",
|
||||
"contract": "agreement.png",
|
||||
"photo": "ios-photos.png",
|
||||
"credit": "passport.png",
|
||||
"member": "person-at-home.png",
|
||||
"setting": "settings--v1.png",
|
||||
"qrcode": "qr-code.png",
|
||||
"event": "property-with-timer.png",
|
||||
"apply": "edit-property.png",
|
||||
"allow": "receipt-approved.png",
|
||||
"email": "reading-confirmation.png",
|
||||
"notice": "commercial.png",
|
||||
"domain": "categorize.png",
|
||||
"market": "square.png",
|
||||
"message": "test-partial-passed.png",
|
||||
"recent": "multiple-smartphones.png",
|
||||
"service": "activity-grid.png",
|
||||
"support": "customer-support.png"
|
||||
"goodslist": "https://img.icons8.com/officel/80/online-store.png",
|
||||
"paymentlist": "https://img.icons8.com/officel/80/online-payment-with-a-credit-card.png",
|
||||
"meeting": "https://img.icons8.com/officel/80/video-conference.png",
|
||||
"document": "https://img.icons8.com/officel/80/documents.png",
|
||||
"contract": "https://img.icons8.com/officel/80/agreement.png",
|
||||
"photo": "https://img.icons8.com/officel/80/ios-photos.png"
|
||||
},
|
||||
"style": {
|
||||
"reject": "danger",
|
||||
|
BIN
src/gonganxitong/qrcode.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
src/gonganxitong/recent.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
src/gonganxitong/service.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
src/gonganxitong/setting.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
src/gonganxitong/support.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
@ -1,7 +1,7 @@
|
||||
{
|
||||
"1246961a1d880252ead389142acd037b": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
|
||||
"icons": "/p/src/gonganxitong/setting.png",
|
||||
"index": "web.team.gonganxitong.setting",
|
||||
"name": "服务配置",
|
||||
"order": "103",
|
||||
@ -11,7 +11,7 @@
|
||||
},
|
||||
"153c93456004ec2ca692d3bac2223167": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
|
||||
"icons": "/p/src/gonganxitong/service.png",
|
||||
"index": "web.team.gonganxitong.service",
|
||||
"name": "服务发现",
|
||||
"order": "904",
|
||||
@ -31,7 +31,7 @@
|
||||
},
|
||||
"27c6988eeb07c78cbb49aa15c577cfa4": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/edit-property.png",
|
||||
"icons": "/p/src/gonganxitong/apply.png",
|
||||
"index": "web.team.gonganxitong.apply",
|
||||
"name": "权限申请",
|
||||
"order": "502",
|
||||
@ -53,7 +53,7 @@
|
||||
},
|
||||
"3971882ea4f32c86386ad04b39d3e3d4": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/square.png",
|
||||
"icons": "/p/src/gonganxitong/market.png",
|
||||
"index": "web.team.gonganxitong.market",
|
||||
"name": "人民广场",
|
||||
"order": "901",
|
||||
@ -84,7 +84,7 @@
|
||||
},
|
||||
"8ce4dfb877e04e3be5144253fdd5d8ff": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
|
||||
"icons": "/p/src/gonganxitong/allow.png",
|
||||
"index": "web.team.gonganxitong.allow",
|
||||
"name": "权限审批",
|
||||
"order": "503",
|
||||
@ -94,7 +94,7 @@
|
||||
},
|
||||
"a53e36dcca735ef90b649fec546f520e": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/passport.png",
|
||||
"icons": "/p/src/gonganxitong/credit.png",
|
||||
"index": "web.team.gonganxitong.credit",
|
||||
"name": "用户名片",
|
||||
"order": "101",
|
||||
@ -103,7 +103,7 @@
|
||||
},
|
||||
"a89a7c09e326295aaa7e7ea3d66fb28a": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/customer-support.png",
|
||||
"icons": "/p/src/gonganxitong/support.png",
|
||||
"index": "web.team.gonganxitong.support",
|
||||
"name": "客服支持",
|
||||
"order": "905",
|
||||
@ -128,7 +128,7 @@
|
||||
},
|
||||
"bdec92d5849b2a60a8811cff494f2391": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
|
||||
"icons": "/p/src/gonganxitong/event.png",
|
||||
"index": "web.team.gonganxitong.event",
|
||||
"name": "事件流",
|
||||
"order": "504",
|
||||
@ -138,7 +138,7 @@
|
||||
},
|
||||
"be08ca65be90feca325df128a06e440f": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
|
||||
"icons": "/p/src/gonganxitong/recent.png",
|
||||
"index": "web.team.gonganxitong.recent",
|
||||
"name": "最近访问",
|
||||
"order": "903",
|
||||
@ -147,7 +147,7 @@
|
||||
},
|
||||
"c1526ecd405021d6d47798c066bf70c0": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/commercial.png",
|
||||
"icons": "/p/src/gonganxitong/notice.png",
|
||||
"index": "web.team.gonganxitong.notice",
|
||||
"name": "通知公告",
|
||||
"order": "505",
|
||||
@ -187,7 +187,7 @@
|
||||
},
|
||||
"e2117b53c036a72fe7e4885449488a6f": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/qr-code.png",
|
||||
"icons": "/p/src/gonganxitong/qrcode.png",
|
||||
"index": "web.team.gonganxitong.qrcode",
|
||||
"name": "场景码",
|
||||
"order": "501",
|
||||
@ -208,7 +208,7 @@
|
||||
},
|
||||
"f28c03b5bdbbe92ebc89dabca5e7d4de": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
|
||||
"icons": "/p/src/gonganxitong/member.png",
|
||||
"index": "web.team.gonganxitong.member",
|
||||
"name": "组织成员",
|
||||
"order": "102",
|
||||
@ -218,7 +218,7 @@
|
||||
},
|
||||
"fd1884bbeb1f1a83f4e12f857bfe5b15": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
|
||||
"icons": "/p/src/gonganxitong/message.png",
|
||||
"index": "web.team.gonganxitong.message",
|
||||
"name": "消息待办",
|
||||
"order": "902",
|
||||
|
@ -9,7 +9,7 @@
|
||||
},
|
||||
"030e2a53ca3561a0d0d123c133a88b59": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/qr-code.png",
|
||||
"icons": "/p/src/gonganxitong/qrcode.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.qrcode",
|
||||
"name": "场景码",
|
||||
"order": "1",
|
||||
@ -25,7 +25,7 @@
|
||||
},
|
||||
"0521e637b051a0e175a6070eded1bcef": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
|
||||
"icons": "/p/src/gonganxitong/setting.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.setting",
|
||||
"name": "服务配置",
|
||||
"order": "102",
|
||||
@ -35,7 +35,7 @@
|
||||
},
|
||||
"057616b7366e1930ef4e4a921fe45f1f": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
|
||||
"icons": "/p/src/gonganxitong/service.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.service",
|
||||
"name": "服务发现",
|
||||
"order": "100",
|
||||
@ -61,7 +61,7 @@
|
||||
},
|
||||
"2fd80c581b69c9f67420e793804dbd9f": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/passport.png",
|
||||
"icons": "/p/src/gonganxitong/credit.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.credit",
|
||||
"name": "用户名片",
|
||||
"order": "102",
|
||||
@ -70,7 +70,7 @@
|
||||
},
|
||||
"30bfa47cab4cd689901fd2e1b87eb235": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
|
||||
"icons": "/p/src/gonganxitong/allow.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.allow",
|
||||
"name": "权限审批",
|
||||
"order": "4",
|
||||
@ -86,9 +86,16 @@
|
||||
"time": "2024-11-08 14:04:38.597"
|
||||
}
|
||||
},
|
||||
"45a953c0d57edbfcece5f53e62d04bd3": {
|
||||
"meta": {
|
||||
"icons": "/p/usr/local/work/20240724-enterprise/src/guanlixitong/src/gonganxitong/spendlist.png",
|
||||
"index": "web.team.guanlixitong.spendlist",
|
||||
"time": "2025-04-19 08:28:11.730"
|
||||
}
|
||||
},
|
||||
"5695d50b28872804a01d7c923ee91cd1": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
|
||||
"icons": "/p/src/gonganxitong/member.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.member",
|
||||
"name": "团队成员",
|
||||
"order": "5",
|
||||
@ -104,7 +111,7 @@
|
||||
},
|
||||
"78d29149539be88d7561b8e17bd65882": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/square.png",
|
||||
"icons": "/p/src/gonganxitong/market.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.market",
|
||||
"name": "人民广场",
|
||||
"order": "100",
|
||||
@ -124,7 +131,7 @@
|
||||
},
|
||||
"809b63c1819fc3ac1452e3b71889aec5": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/commercial.png",
|
||||
"icons": "/p/src/gonganxitong/notice.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.notice",
|
||||
"name": "通知公告",
|
||||
"order": "70",
|
||||
@ -145,7 +152,7 @@
|
||||
},
|
||||
"9c18032c5bc252f2986e1b20e7e77db7": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
|
||||
"icons": "/p/src/gonganxitong/event.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.event",
|
||||
"name": "事件流",
|
||||
"order": "2",
|
||||
@ -155,7 +162,7 @@
|
||||
},
|
||||
"9fffbe375e2d2a1a8e6cb1f341e35b55": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
|
||||
"icons": "/p/src/gonganxitong/recent.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.recent",
|
||||
"name": "最近访问",
|
||||
"order": "100",
|
||||
@ -170,6 +177,13 @@
|
||||
"time": "2024-08-07 08:09:16.533"
|
||||
}
|
||||
},
|
||||
"a59e847a365ef89dd35e250e9b663ac3": {
|
||||
"meta": {
|
||||
"icons": "/p/usr/local/work/20240724-enterprise/src/guanlixitong/src/gonganxitong/quotalist.png",
|
||||
"index": "web.team.guanlixitong.quotalist",
|
||||
"time": "2025-04-19 08:28:11.714"
|
||||
}
|
||||
},
|
||||
"ace6350cd663c693ddf47e81625c8a7a": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/meeting.png",
|
||||
@ -202,7 +216,7 @@
|
||||
},
|
||||
"c27ad1df8aa9059d6018fb5add5ee546": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/customer-support.png",
|
||||
"icons": "/p/src/gonganxitong/support.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.support",
|
||||
"name": "客服支持",
|
||||
"order": "100",
|
||||
@ -219,7 +233,7 @@
|
||||
},
|
||||
"c36d47e2611b0d1e7a14088bc3293d04": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/edit-property.png",
|
||||
"icons": "/p/src/gonganxitong/apply.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.apply",
|
||||
"name": "权限申请",
|
||||
"order": "3",
|
||||
@ -240,7 +254,7 @@
|
||||
},
|
||||
"d25f3f88261ead2a0079415a26aa6853": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
|
||||
"icons": "/p/src/gonganxitong/message.png?pod=20240724-community",
|
||||
"index": "web.team.guanlixitong.message",
|
||||
"name": "消息待办",
|
||||
"order": "100",
|
||||
|
@ -1,4 +1,11 @@
|
||||
{
|
||||
"1e158e9083bfe07ac5a35353fdcdf62e": {
|
||||
"meta": {
|
||||
"icons": "/p/src/huodongzuzhi/src/gonganxitong/spendlist.png",
|
||||
"index": "web.team.huodongzuzhi.spendlist",
|
||||
"time": "2025-04-19 08:28:11.641"
|
||||
}
|
||||
},
|
||||
"2c5f42d846b438a22e62b19617ebf511": {
|
||||
"meta": {
|
||||
"auth": "issued",
|
||||
@ -12,7 +19,7 @@
|
||||
},
|
||||
"3229a1bc7aa326822c4f4f267e038185": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
|
||||
"icons": "/p/src/gonganxitong/member.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.member",
|
||||
"name": "组织成员",
|
||||
"order": "102",
|
||||
@ -20,6 +27,13 @@
|
||||
"time": "2024-08-25 12:53:13.205"
|
||||
}
|
||||
},
|
||||
"3745803fab1393312d3e1d2e589e1e9f": {
|
||||
"meta": {
|
||||
"icons": "/p/src/huodongzuzhi/src/gonganxitong/quotalist.png",
|
||||
"index": "web.team.huodongzuzhi.quotalist",
|
||||
"time": "2025-04-19 08:28:11.635"
|
||||
}
|
||||
},
|
||||
"3e9e80db9ae3768b7a44774c7afa5f65": {
|
||||
"meta": {
|
||||
"auth": "issued",
|
||||
@ -44,7 +58,7 @@
|
||||
},
|
||||
"595eb34d7ebe62e160c02ed5b127d637": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
|
||||
"icons": "/p/src/gonganxitong/message.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.message",
|
||||
"name": "消息待办",
|
||||
"order": "902",
|
||||
@ -53,7 +67,7 @@
|
||||
},
|
||||
"780939d4c095806dba8711d8753cbdf7": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/customer-support.png",
|
||||
"icons": "/p/src/gonganxitong/support.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.support",
|
||||
"name": "客服支持",
|
||||
"order": "905",
|
||||
@ -62,7 +76,7 @@
|
||||
},
|
||||
"7a02092e26efa3eb324259a5d28bc8f3": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/passport.png",
|
||||
"icons": "/p/src/gonganxitong/credit.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.credit",
|
||||
"name": "用户名片",
|
||||
"order": "101",
|
||||
@ -71,7 +85,7 @@
|
||||
},
|
||||
"7a7da5c5e42a9aa1d88109fa8620d465": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
|
||||
"icons": "/p/src/gonganxitong/event.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.event",
|
||||
"name": "事件流",
|
||||
"order": "504",
|
||||
@ -81,7 +95,7 @@
|
||||
},
|
||||
"94996b048561b144e2a47ff6cc2a9e5c": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
|
||||
"icons": "/p/src/gonganxitong/service.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.service",
|
||||
"name": "服务发现",
|
||||
"order": "904",
|
||||
@ -99,7 +113,7 @@
|
||||
},
|
||||
"aa74e6bf51d1d1abab57fdb03b08c5c2": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/square.png",
|
||||
"icons": "/p/src/gonganxitong/market.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.market",
|
||||
"name": "人民广场",
|
||||
"order": "901",
|
||||
@ -108,7 +122,7 @@
|
||||
},
|
||||
"baec1db59218f2da9d560fa719c6a12f": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/edit-property.png",
|
||||
"icons": "/p/src/gonganxitong/apply.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.apply",
|
||||
"name": "权限申请",
|
||||
"order": "502",
|
||||
@ -118,7 +132,7 @@
|
||||
},
|
||||
"c3fbb2049e914eda48f3f7d32c207679": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/qr-code.png",
|
||||
"icons": "/p/src/gonganxitong/qrcode.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.qrcode",
|
||||
"name": "场景码",
|
||||
"order": "501",
|
||||
@ -128,7 +142,7 @@
|
||||
},
|
||||
"dae66500cd381d400f15cd4c9efc05b1": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
|
||||
"icons": "/p/src/gonganxitong/allow.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.allow",
|
||||
"name": "权限审批",
|
||||
"order": "503",
|
||||
@ -171,7 +185,7 @@
|
||||
},
|
||||
"ee364ed77eb0383868d48260f8b5aeb2": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/commercial.png",
|
||||
"icons": "/p/src/gonganxitong/notice.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.notice",
|
||||
"name": "通知公告",
|
||||
"order": "505",
|
||||
@ -181,7 +195,7 @@
|
||||
},
|
||||
"f77a8f8d7dfe49f8e82ecd8d0b99f233": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
|
||||
"icons": "/p/src/gonganxitong/recent.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.recent",
|
||||
"name": "最近访问",
|
||||
"order": "903",
|
||||
@ -190,7 +204,7 @@
|
||||
},
|
||||
"f78dbbb843f056f5db196c342f1184bc": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
|
||||
"icons": "/p/src/gonganxitong/setting.png?pod=20240724-community",
|
||||
"index": "web.team.huodongzuzhi.setting",
|
||||
"name": "服务配置",
|
||||
"order": "103",
|
||||
|
@ -13,7 +13,7 @@
|
||||
},
|
||||
"0d7f068029dbf7f9f0d307070cc3a79b": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
|
||||
"icons": "/p/src/gonganxitong/allow.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.allow",
|
||||
"name": "权限审批",
|
||||
"order": "503",
|
||||
@ -45,6 +45,13 @@
|
||||
"time": "2024-11-25 18:11:44.121"
|
||||
}
|
||||
},
|
||||
"1d5fb457d3223d26afd076c38d7daf66": {
|
||||
"meta": {
|
||||
"icons": "/p/src/renzhengshouquan/src/gonganxitong/quotalist.png",
|
||||
"index": "web.team.renzhengshouquan.quotalist",
|
||||
"time": "2025-04-19 08:28:11.519"
|
||||
}
|
||||
},
|
||||
"1d7c44014bc23b3db4551534359c95c4": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/video-conference.png",
|
||||
@ -56,6 +63,13 @@
|
||||
"type": "company,school,street"
|
||||
}
|
||||
},
|
||||
"21887f37ce8dabe4c52648ea096f8e4d": {
|
||||
"meta": {
|
||||
"icons": "/p/src/renzhengshouquan/src/gonganxitong/spendlist.png",
|
||||
"index": "web.team.renzhengshouquan.spendlist",
|
||||
"time": "2025-04-19 08:28:11.518"
|
||||
}
|
||||
},
|
||||
"2a065e0a48b909ae79fbb3dd750e1eb5": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/id-verified.png",
|
||||
@ -69,7 +83,7 @@
|
||||
},
|
||||
"456d3a031a140d43f54690ea7203628d": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
|
||||
"icons": "/p/src/gonganxitong/event.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.event",
|
||||
"name": "事件流",
|
||||
"order": "504",
|
||||
@ -91,7 +105,7 @@
|
||||
"4cac9ca99ccb8db395f703434647f5f3": {
|
||||
"meta": {
|
||||
"enable": "false",
|
||||
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
|
||||
"icons": "/p/src/gonganxitong/setting.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.setting",
|
||||
"name": "服务配置",
|
||||
"order": "103",
|
||||
@ -113,7 +127,7 @@
|
||||
},
|
||||
"52fb3a7d85d879b638cc246850b236f6": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/qr-code.png",
|
||||
"icons": "/p/src/gonganxitong/qrcode.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.qrcode",
|
||||
"name": "场景码",
|
||||
"order": "501",
|
||||
@ -148,7 +162,7 @@
|
||||
},
|
||||
"732373815fa26c85ad04dd57ca57db39": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/edit-property.png",
|
||||
"icons": "/p/src/gonganxitong/apply.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.apply",
|
||||
"name": "权限申请",
|
||||
"order": "502",
|
||||
@ -214,7 +228,7 @@
|
||||
},
|
||||
"9e52a4f0a1a8d35c14b40d14b0d9cff1": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
|
||||
"icons": "/p/src/gonganxitong/message.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.message",
|
||||
"name": "消息待办",
|
||||
"order": "902",
|
||||
@ -223,7 +237,7 @@
|
||||
},
|
||||
"a040dfa713a6fa9533b3184244dbbb74": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/customer-support.png",
|
||||
"icons": "/p/src/gonganxitong/support.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.support",
|
||||
"name": "客服支持",
|
||||
"order": "905",
|
||||
@ -262,7 +276,7 @@
|
||||
"bfecb55b11fe68186270fe1b4b8de8cf": {
|
||||
"meta": {
|
||||
"enable": "false",
|
||||
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
|
||||
"icons": "/p/src/gonganxitong/member.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.member",
|
||||
"name": "组织成员",
|
||||
"order": "102",
|
||||
@ -284,7 +298,7 @@
|
||||
},
|
||||
"d9f55b517f4b2579693523ed3b5bd088": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/square.png",
|
||||
"icons": "/p/src/gonganxitong/market.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.market",
|
||||
"name": "人民广场",
|
||||
"order": "901",
|
||||
@ -305,7 +319,7 @@
|
||||
},
|
||||
"e038450591f3c8e7babc0c21b1c6fa6d": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
|
||||
"icons": "/p/src/gonganxitong/recent.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.recent",
|
||||
"name": "最近访问",
|
||||
"order": "903",
|
||||
@ -314,7 +328,7 @@
|
||||
},
|
||||
"ecfb11fad5b4bdf21384e2e1ff571598": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/commercial.png",
|
||||
"icons": "/p/src/gonganxitong/notice.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.notice",
|
||||
"name": "通知公告",
|
||||
"order": "505",
|
||||
@ -325,7 +339,7 @@
|
||||
"f669e15e1c1c9da2bd3ea0c58abc0bd3": {
|
||||
"meta": {
|
||||
"enable": "false",
|
||||
"icons": "https://img.icons8.com/officel/80/passport.png",
|
||||
"icons": "/p/src/gonganxitong/credit.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.credit",
|
||||
"name": "用户名片",
|
||||
"order": "101",
|
||||
@ -334,7 +348,7 @@
|
||||
},
|
||||
"f6b093d122ff3cec363b00093e0a6f19": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
|
||||
"icons": "/p/src/gonganxitong/service.png?pod=20240724-community",
|
||||
"index": "web.team.renzhengshouquan.service",
|
||||
"name": "服务发现",
|
||||
"order": "904",
|
||||
|
@ -32,7 +32,7 @@
|
||||
},
|
||||
"2ed70cba7eb6d3cf5fbe712c63da87a7": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/square.png",
|
||||
"icons": "/p/src/gonganxitong/market.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.market",
|
||||
"name": "人民广场",
|
||||
"order": "901",
|
||||
@ -41,7 +41,7 @@
|
||||
},
|
||||
"2f55ab55e536839d2f400ed50832bfb9": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/passport.png",
|
||||
"icons": "/p/src/gonganxitong/credit.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.credit",
|
||||
"name": "用户名片",
|
||||
"order": "101",
|
||||
@ -61,7 +61,7 @@
|
||||
},
|
||||
"377f3c0dae9dbf423a8e188bfd245b7a": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
|
||||
"icons": "/p/src/gonganxitong/recent.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.recent",
|
||||
"name": "最近访问",
|
||||
"order": "903",
|
||||
@ -70,7 +70,7 @@
|
||||
},
|
||||
"3b6da44aaf19fdb06c84fe352569359f": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/qr-code.png",
|
||||
"icons": "/p/src/gonganxitong/qrcode.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.qrcode",
|
||||
"name": "场景码",
|
||||
"order": "501",
|
||||
@ -80,7 +80,7 @@
|
||||
},
|
||||
"46f2ba39a0620f04aab46a999c359a2b": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
|
||||
"icons": "/p/src/gonganxitong/allow.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.allow",
|
||||
"name": "权限审批",
|
||||
"order": "503",
|
||||
@ -90,7 +90,7 @@
|
||||
},
|
||||
"55ef7eaaa62b19b296b633c1c550f756": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
|
||||
"icons": "/p/src/gonganxitong/setting.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.setting",
|
||||
"name": "服务配置",
|
||||
"order": "103",
|
||||
@ -129,6 +129,13 @@
|
||||
"time": "2024-08-11 09:30:00.538"
|
||||
}
|
||||
},
|
||||
"79934714b27083087d2ea771e19192d3": {
|
||||
"meta": {
|
||||
"icons": "/p/src/yuehaoxitong/src/gonganxitong/spendlist.png",
|
||||
"index": "web.team.yuehaoxitong.spendlist",
|
||||
"time": "2025-04-19 08:28:11.381"
|
||||
}
|
||||
},
|
||||
"8d3a66184c4da374081216d6c4d491b5": {
|
||||
"meta": {
|
||||
"auth": "issued",
|
||||
@ -142,7 +149,7 @@
|
||||
},
|
||||
"98d6d53a44113b33a82c4e914cb23489": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
|
||||
"icons": "/p/src/gonganxitong/message.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.message",
|
||||
"name": "消息待办",
|
||||
"order": "902",
|
||||
@ -162,7 +169,7 @@
|
||||
},
|
||||
"a56cb18131ff45616849e4555e29d35d": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/edit-property.png",
|
||||
"icons": "/p/src/gonganxitong/apply.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.apply",
|
||||
"name": "权限申请",
|
||||
"order": "502",
|
||||
@ -182,7 +189,7 @@
|
||||
},
|
||||
"b66f57a7a84d982b1b3a74ac3bdc045c": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/commercial.png",
|
||||
"icons": "/p/src/gonganxitong/notice.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.notice",
|
||||
"name": "通知公告",
|
||||
"order": "505",
|
||||
@ -192,7 +199,7 @@
|
||||
},
|
||||
"b811b4ed8b1b372958bbb4bb1b2709b8": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/customer-support.png",
|
||||
"icons": "/p/src/gonganxitong/support.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.support",
|
||||
"name": "客服支持",
|
||||
"order": "905",
|
||||
@ -222,7 +229,7 @@
|
||||
},
|
||||
"c14a5a400c933fe799ed10b069990865": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
|
||||
"icons": "/p/src/gonganxitong/member.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.member",
|
||||
"name": "组织成员",
|
||||
"order": "102",
|
||||
@ -230,6 +237,13 @@
|
||||
"time": "2024-08-12 08:56:10.816"
|
||||
}
|
||||
},
|
||||
"ca139b34295fc6d13d97430764cf3334": {
|
||||
"meta": {
|
||||
"icons": "/p/src/yuehaoxitong/src/gonganxitong/quotalist.png",
|
||||
"index": "web.team.yuehaoxitong.quotalist",
|
||||
"time": "2025-04-19 08:28:11.483"
|
||||
}
|
||||
},
|
||||
"cb5d53223069ec8d9914ec30ca84ec4a": {
|
||||
"meta": {
|
||||
"auth": "issued",
|
||||
@ -243,7 +257,7 @@
|
||||
},
|
||||
"d1e03d214890c9a4b9557d3f6a36c7e9": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
|
||||
"icons": "/p/src/gonganxitong/service.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.service",
|
||||
"name": "服务发现",
|
||||
"order": "904",
|
||||
@ -261,7 +275,7 @@
|
||||
},
|
||||
"fa4365d6c914365e4b047c9266e9a02f": {
|
||||
"meta": {
|
||||
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
|
||||
"icons": "/p/src/gonganxitong/event.png?pod=20240724-community",
|
||||
"index": "web.team.yuehaoxitong.event",
|
||||
"name": "事件流",
|
||||
"order": "504",
|
||||
|