This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-09-12 00:12:59 +08:00
parent 334f39b43c
commit 9409678d3b
16 changed files with 103 additions and 31 deletions

View File

@ -3,7 +3,10 @@ Volcanos(chat.ONIMPORT, {
var PLACE_NAME = msg.Option("_place_name"), PLACE_TYPE = msg.Option("_place_type")
var USER_PLACE_ROLE = msg.Option("_user_place_role"), STREET_NAME = msg.Option("_street_name"), ALLOW_STATUS = "allow_status"
can.onimport.itemcards(can, msg, function(value) { var status = value[ALLOW_STATUS]; return [
{view: html.TITLE, list: [value.user_name, can.onimport.textView(can, value, USER_PLACE_ROLE)]},
{view: html.TITLE, list: [
value.user_name, can.onimport.textView(can, value, USER_PLACE_ROLE),
{view: html.ACTION, _init: function(target) { can.page.appendAction(can, value, target) }},
]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.base.TimeTrim(value.created_at), can.onimport.textView(can, value, ALLOW_STATUS)]},
{view: html.STATUS, list: [value.begin_time.split(" ")[0], value.end_time.split(" ")[0]]},
{view: html.STATUS, list: [value.city_name, value[STREET_NAME]]},

View File

@ -43,7 +43,7 @@ func (s apply) List(m *ice.Message, arg ...string) {
)
if len(arg) == 1 {
s.Table.Select(m, model.USER_UID, m.Option(model.USER_UID), model.PLACE_UID, arg[0])
s.Button(m, "")
// s.Button(m, "")
} else if len(arg) == 2 {
s.Table.SelectDetail(m, model.USER_UID, m.Option(model.USER_UID), model.PLACE_UID, arg[0], s.Key(s, model.UID), arg[1])
switch ApplyStatus(kit.Int(m.Append(model.APPLY_STATUS))) {

View File

@ -8,5 +8,16 @@ Volcanos(chat.ONIMPORT, {
{view: html.STATUS, list: [value.begin_time.split(" ")[0], value.end_time.split(" ")[0]]},
{view: html.STATUS, list: [value.city_name, value[STREET_NAME]]},
] })
if (msg.Length() == 0) { can.onappend.style(can, "form")
var target = can.page.Append(can, can._output, ["code"])._target
can.page.Append(can, target, [{view: ["info", "", "请创建权限申请"]}])
can.run({}, [ctx.ACTION, mdb.INPUTS, USER_PLACE_ROLE], function(msg) {
msg.Table(function(value) {
can.onappend.input(can, {type: html.BUTTON, name: value.name, value: "我是"+can.user.trans(can, value.name, null, "value."+USER_PLACE_ROLE), onclick: function(event) {
can.run(can.request(event, {_handle: ice.TRUE}), [ctx.ACTION, mdb.CREATE, USER_PLACE_ROLE, value[USER_PLACE_ROLE]])
}}, "", target)
})
})
}
},
})
})

View File

@ -22,7 +22,6 @@ import (
type UserPlacer interface {
Placer
}
type Placer interface {
Inputs(m *ice.Message, arg ...string)
Select(m *ice.Message, arg ...string) *ice.Message
@ -117,6 +116,7 @@ func (s Table) Modify(m *ice.Message, arg ...string) {
s.Table.Modify(m, arg...)
}
func (s Table) ValueModel(m *ice.Message, action ice.Any, arg ...string) *ice.Message {
defer m.Options(db.TARGET, m.CommandKey()).Set(ice.MSG_OPTION, db.TARGET)
defer m.Options(db.MODEL, m.Configv(db.MODEL)).Set(ice.MSG_OPTION, db.MODEL)
defer m.Options(db.DB, m.Configv(db.DB)).Set(ice.MSG_OPTION, db.DB)
return m.Cmdy(m.Prefix(web.PORTAL), action, arg)

View File

@ -12,4 +12,7 @@ Volcanos(chat.ONIMPORT, {
]
}, null, can.ui.list)
},
layout: function(can) {
can.ui.list && can.page.styleHeight(can, can.ui.list, can.ConfHeight()-can.ui.tabs.offsetHeight)
},
})

View File

@ -1,9 +1,13 @@
$action { background-color:transparent; position:fixed; top:0; width:100%; }
$action div.item.button { margin-right:5px; padding:0; }
body.dark { --plugin-bg-color:#0d1117; --output-bg-color:#171a22; }
$action { background-color:transparent; position:fixed; top:0; width:100%; z-index:1; }
$action div.item.button { margin-right:5px; padding:0; height:48px; align-items:center; }
$action div.item.button input { border:none; color:var(--notice-bg-color); min-width:60px; display:unset; }
$action div.item.button input:hover { background-color:var(--hover-bg-color); }
$action div.item.button span { display:none; }
$output { background-color:var(--plugin-bg-color); position:unset; }
$action div.item.button i { display:none; }
$output { background-color:var(--plugin-bg-color); }
$output>div.header { border-radius:100px; background-color:var(--notice-bg-color); height:300px; width:100%; position:absolute; top:-100px; left:0; }
$output>div.footer { border-radius:100px; background-color:var(--notice-bg-color); height:300px; width:100%; position:absolute; bottom:-100px; left:0; }
$output>div>div.list { box-shadow:var(--box-shadow); border-radius:10px; background-color:var(--output-bg-color); padding:10px; margin:10px; }
$output>div>div.list.mycount { min-height:105px; }
$output>div>div.list>div.title { font-weight:bold; display:flex; align-items:center; }
@ -36,19 +40,27 @@ $output div.item.card div.title span.time { position:absolute; right:0; font-siz
$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; }
$output div.item.card.sticky>div.output { background-color:var(--plugin-bg-color); color:var(--notice-bg-color); }
$output table.content { background-color:var(--output-bg-color); }
$output table.content td.action input.icons { display:unset; }
$output table.content td.action input { padding:0 20px; min-width:80px; }
$output table.content td.action i { display:none; }
$output table.content.detail tr.action input.icons { display:unset; }
$output table.content.detail tr.action i { display:none; }
$output input[type=button][name=submit] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); padding:0 20px; }
$output input[type=button][name=cancel] { background-color:var(--danger-bg-color); color:var(--danger-fg-color); padding:0 20px; }
$output input[type=button][name=reject] { background-color:var(--danger-bg-color); color:var(--danger-fg-color); padding:0 20px; }
$output input[type=button][name=approve] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); padding:0 20px; }
$output table.content.detail tr.uid { display:none; }
$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] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
$output input.danger[type=button] { border:var(--box-danger); background-color:var(--output-bg-color); color:var(--danger-bg-color); }
$output input[type=button][name=submit] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); }
$output span.type { border:var(--box-notice); color:var(--notice-bg-color); padding:0 3px; }
$output span.role { border:var(--box-notice); color:var(--notice-bg-color); padding:0 3px; }
$output span.type.danger { border:var(--box-danger); color:var(--danger-bg-color); }
$output span.role.danger { border:var(--box-danger); color:var(--danger-bg-color); }
$output>fieldset.story { margin-top:32px; }
$output span.status.danger { border:var(--box-danger); color:var(--danger-bg-color); }
$output>fieldset.story { margin-top:48px; }
$output fieldset.story { box-shadow:none; }
$output fieldset.story>legend { display:none; }
$output fieldset.story>form.option { display:none; }
@ -59,9 +71,13 @@ $output fieldset.story>div.output table.content td { box-shadow:none; }
$output fieldset.story>div.output table.content td img { max-width:100%; }
$output fieldset.story>div.output>div.code { text-align:center; }
$output fieldset.story>div.output>div.code>img { display:block; margin:auto; width:100%; max-width:390px; }
$output fieldset.story>div.output>div.code>input[type=button] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); margin-right:10px; min-width:80px; float:right; }
$output fieldset.story>div.output>div.code>input[type=button] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); margin-right:10px; float:right; }
$output fieldset.story>div.output>div.code>input[type=button].danger { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
$output fieldset.story>div.output>div.code>input[type=button][name=cancel] { border:var(--box-border); background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
$output fieldset.story>div.output>div.code div.item.button { margin-top:10px; }
$output fieldset.story>div.output>div.code div.item.button input[type=button] { background-color:var(--notice-bg-color); color:var(--notice-fg-color); font-size:18px; min-width:240px; height:36px; }
$output fieldset.story>div.output>div.code div.item.button input[type=button].danger { background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
$output fieldset.story>div.output>div.code div.item.button input[type=button][name=cancel] { border:var(--box-border); background-color:var(--danger-bg-color); color:var(--danger-fg-color); }
$output>fieldset.story>div.output div.item.card>div.output { padding:10px; }
$output>fieldset.story>div.output div.item.card>div.output div.output { padding:5px 0; white-space:pre-line; }
$output fieldset.story.form>div.output>div.code>input[type=button] { font-size:18px; margin:10px; height:36px; }
@ -80,6 +96,8 @@ $output>fieldset.market>div.output>div.list div.item.card div.output div.action
$output>fieldset.market>div.output>div.list div.item.card div.output div.action i { margin-right:5px; }
$output>fieldset.market>div.output>div.list div.item.card div.output div.output { padding:10px 0; }
$output>fieldset.market>div.output>div.list div.item.card div.output div.action div.item.done { color:var(--notice-bg-color); }
body.mobile div.input.float { position:unset; 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.light.mobile { --plugin-bg-color:#f4f5f9; --output-bg-color:#fefefd; }
body.mobile fieldset.panel.Action>div.output { background-color:var(--plugin-bg-color); }
body:not(.mobile) $output>fieldset.story>div.output div.item.card:not(:hover) { background-color:var(--output-bg-color); }

View File

@ -10,6 +10,7 @@ import (
"shylinux.com/x/toolkits"
"shylinux.com/x/community/src/gonganxitong/model"
"shylinux.com/x/mysql-story/src/db"
)
type Portal struct {
@ -233,6 +234,8 @@ func (s Portal) RecordEvent(m *ice.Message, arg ...string) {
s.event.Record(m.Spawn(kit.Dict(model.PLACE_UID, m.Option(s.Keys(s.Place, model.UID)))), arg[0], arg[1:]...)
}
func (s Portal) ValueCreate(m *ice.Message, arg ...string) {
arg = kit.TransArgKeys(arg, s.Keys(m.Option(db.TARGET), model.TYPE), model.TYPE)
arg = kit.TransArgKeys(arg, s.Keys(m.Option(db.TARGET), model.NAME), model.NAME)
s.Table.Create(m, kit.Simple(arg, m.OptionSimple(model.USER_UID, s.Keys(s.Place, model.UID)))...)
}
func (s Portal) ValueRemove(m *ice.Message, arg ...string) {

View File

@ -15,7 +15,7 @@ Volcanos(chat.ONIMPORT, {
value._role_style = can.onimport.roleStyle(can, value, USER_PLACE_ROLE)
value._type_style = can.onimport.typeStyle(can, value, PLACE_TYPE)
},
myPortal: function(can, msg) {
myPortal: function(can, msg) { can.sup.current = {}
can.core.List(["_place_uid", "_place_name", "_place_type", "_user_place_role", "_street_name"], function(key) { can.Conf(key, msg.Option(key)) })
can.isCmdMode() && (can.db.hash = can.base.Obj(can.misc.SearchHash(can), can.db.hash)), can.db.hash[0] && can.onexport.place(can, can.db.hash[0])
if (can.db.hash.length > 1 && can.db.hash[1]) {
@ -24,11 +24,17 @@ Volcanos(chat.ONIMPORT, {
}) })
}
can.ui = can.page.Append(can, can._output, [
{view: "header"},
// {view: "footer"},
{view: html.OUTPUT, list: ["mydebug.list", "myplace.list", "mycount.list", "myinit.list", "myindex.list", "myallow.list"]},
{view: html.ACTION, list: ["myorder.list"]},
])
function showIndex(msg) {
can.onimport.myDebug(can, msg, can.ui.mydebug)
can.onmotion.hidden(can, can.ui.mydebug)
can.onmotion.hidden(can, can.ui.mycount)
can.onmotion.hidden(can, can.ui.myinit)
// can.onmotion.hidden(can, can.ui.myindex)
can.onmotion.hidden(can, can.ui.myallow)
function showIndex(msg) { can.onimport.myDebug(can, msg, can.ui.mydebug)
can.onimport.myIndex(can, msg, can.ui.myindex, USER_PLACE_ROLE), can.onexport.index(can, can.sup.current)
can.onimport.myAllow(can, msg, can.ui.myallow), can.onimport.myOrder(can, msg, can.ui.myorder)
}
@ -69,6 +75,7 @@ Volcanos(chat.ONIMPORT, {
if (can.onmotion.cache(can, function() { return value._uid }, target)) { return } can.onimport.myTitle(can, "My Init", "我的初始化", target)
msg.Table(function(val) { if (parseInt(val.init) == parseInt(value.init)+1) { value._init = true, val.args = [value._uid]
can.onappend.plugin(can, val, function(sub) { var run = sub.run; sub.run = function(event, cmds, cb) {
can.onimport.myField(can, sub)
run(can.request(event, {place_uid: value._uid, place_init: value.init}), cmds, function(msg) {
if (cmds[1] == mdb.CREATE || cmds.length == 1 && msg.Length() > 0) { can.onmotion.clearInput(can), can.Update() } else { cb(msg) }
})
@ -83,6 +90,8 @@ Volcanos(chat.ONIMPORT, {
)], style: {width: width}, list: [
{img: can.misc.ResourceIcons(can, value.icons)}, {text: can.user.trans(can, value.index.split(".").pop(), value.name)},
], onclick: function(event) {
if (value.index.split(".").pop() == "recent") {
}
can.onimport.myStory(can, {space: can.ConfSpace(), index: value.index, args: [can.onexport.place(can)]})
}}
}))
@ -103,8 +112,7 @@ Volcanos(chat.ONIMPORT, {
myAllow: function(can, msg, target) { can.onimport.myTitle(can, "My Allow", "我的权限", target)
can.onimport.mySplit(can, msg, target, 89, 100)
},
myOrder: function(can, msg, target) {
can.onimport.myTitle(can, "My Order", "我的系统", target)
myOrder: function(can, msg, target) { can.onimport.myTitle(can, "My Order", "我的系统", target)
can.onimport.mySplit(can, msg, target, 99, 1000), can.onimport.layout(can), can.onexport.value(can, can.sup.current)
can.onmotion.delay(can, function() { can.onimport.layout(can) }, 30)
can.onmotion.delay(can, function() { can.onimport.layout(can) }, 300)
@ -125,12 +133,28 @@ Volcanos(chat.ONIMPORT, {
}
},
})
Volcanos(chat.ONACTION, {
beforeInputs: function(event, can, button, target) {
can.onmotion.toggle(can, can._root.Action._target, false)
target.Option("city_name", "深圳市", true)
target.Option("company_name", "宝安妇幼", true)
target.Option("queue_name", "二楼产检")
target.Option("reception_name", "科室1")
target.Option("volume_amount", "100")
},
afterInputs: function(event, can, button, target) {
can.onmotion.toggle(can, can._root.Action._target, true)
},
})
Volcanos(chat.ONEXPORT, {
place: function(can, value) { return can.onexport.session(can, PLACE_UID, value) },
value: function(can, value) { if (!value) { return } can.sup.current = value, can.onexport.index(can, can.sup.current)
value: function(can, value) {
if (!value || !value.uid) { return }
can.sup.current = value, can.onexport.index(can, can.sup.current)
can.onexport.place(can, value._uid), can.onexport.hash(can, value._uid), can.onexport.title(can, value._name, can.ConfHelp()), can.user.agent.init(can)
can.page.Select(can, can.ui._target, "div.item.card.uid-"+value._uid, function(item) { can.onmotion.select(can, can.ui._target, html.DIV_ITEM, item) })
can.onimport.myCount(can, value, can.ui.mycount), can.onimport.myInit(can, can._index_msg, value, can.ui.myinit)
can.onmotion.toggle(can, can.ui.myindex, true)
can.onmotion.toggle(can, can.ui.myallow, can.page.Select(can, can.ui.myallow, "div.item.index.role."+value._role).length > 0)
},
index: function(can, value, role) { role = role||value._role

View File

@ -25,6 +25,8 @@
"support": "https://img.icons8.com/officel/80/customer-support.png"
},
"style": {
"reject": "danger",
"approve": "notice",
"placeRemove": "danger"
},
"input": {

View File

@ -6,8 +6,7 @@ Volcanos(chat.ONIMPORT, {
{view: html.TITLE, list: [value.place_name, can.onimport.authView(can, value), can.onimport.timeView(can, value)]},
{view: html.STATUS, list: [value.city_name, value.street_name, value.service_name]},
]
}, function(event, value) { can.onaction._goback(can)
var args = can.core.Split(value.args)
}, function(event, value) { can.onaction._goback(can); var args = can.core.Split(value.args)
can.onimport.myPlugin(can, {space: value.space, index: value.index, args: [args[0]]})
})
},

View File

@ -10,11 +10,12 @@ import (
type open struct {
Tables
volume Volume
create string `name:"plan reception_uid*:select amount* begin_time*:select@date end_time*:select@date" role:"leader"`
create string `name:"plan reception_uid*:select volume_amount* begin_time*:select@date end_time*:select@date" role:"leader"`
list string `name:"list queue_uid uid auto" role:"leader"`
}
func (s open) Create(m *ice.Message, arg ...string) {
arg = kit.TransArgKeys(arg, "volume_amount", model.AMOUNT)
m.Cmdy(s.volume, s.Create, arg, m.OptionSimple(model.QUEUE_UID)).ProcessRefresh()
s.RecordEvent(m, m.Trans("create volume", "创建服务计划")+"\n"+s.joinKV(m, model.AMOUNT, model.BEGIN_TIME, model.END_TIME), m.Result())
}

View File

@ -10,7 +10,7 @@ import (
type Portal struct {
guanlixitong.Portal
placeCreate string `name:"placeCreate city_name* company_name* queue_name* queue_type*:select" role:"void"`
placeCreate string `name:"placeCreate city_name* company_name* queue_name* queue_type:select" role:"void"`
}
func (s Portal) AfterPlaceAuth(m *ice.Message, arg ...string) {

View File

@ -15,7 +15,11 @@
"queueUser": "https://img.icons8.com/officel/80/person-at-home.png"
},
"style": {
"expire": "danger"
"cancel": "danger",
"take": "notice",
"call": "notice",
"expire": "danger",
"finish": "notice"
},
"input": {
"My Queue": "我的场景",
@ -34,6 +38,7 @@
"call_time": "叫号时间",
"expire_time": "过期时间",
"finish_time": "完成时间",
"volume_amount": "放号总量",
"amount": "放号总量",
"count": "约号数量"
},
@ -66,4 +71,4 @@
}
}
}
}
}

View File

@ -5,7 +5,7 @@ import "shylinux.com/x/ice"
type reception struct {
Table
fields string `data:"name"`
create string `name:"create name*" role:"leader"`
create string `name:"create reception_name*" role:"leader"`
rename string `name:"rename name*" role:"leader"`
remove string `name:"remove" role:"leader"`
}

View File

@ -65,7 +65,7 @@ func (s Schedule) List(m *ice.Message, arg ...string) *ice.Message {
m.Table(func(value ice.Maps) {
switch ScheduleStatus(kit.Int(value[model.SCHEDULE_STATUS])) {
case SchedulePlan:
m.PushButton(s.Cancel)
m.PushButton(s.Cancel, s.Take)
case ScheduleCall:
m.PushButton(s.Expire, s.Finish)
default:
@ -95,7 +95,7 @@ func (s Schedule) List(m *ice.Message, arg ...string) *ice.Message {
m.Table(func(value ice.Maps) {
switch ScheduleStatus(kit.Int(value[model.SCHEDULE_STATUS])) {
case SchedulePlan:
m.PushButton(s.Cancel)
m.PushButton(s.Cancel, s.Take)
default:
m.PushButton()
}

View File

@ -14,10 +14,13 @@ Volcanos(chat.ONIMPORT, {
var _time = {view: html.STATUS, list: [can.user.trans(can, "finish_time:", "结束时间:"), value.end_time]}
}
return [
{view: html.TITLE, list:[value.name||value.user_name, value.reception_name, value.schedule_status != "finish" && can.onimport.textView(can, value, "schedule_status")]},
{view: html.STATUS, list: [value.uid && value.uid.slice(0, 6), can.base.TimeTrim(value.created_at||value.updated_at)]},
{view: html.TITLE, list:[
value.name||value.user_name, value.schedule_status != "finish" && can.onimport.textView(can, value, "schedule_status"),
{view: html.ACTION, _init: function(target) { can.page.appendAction(can, value, target) }},
]},
{view: html.STATUS, list: [value.uid && value.uid.slice(0, 6), can.base.TimeTrim(value.created_at||value.updated_at), value.reception_name]},
time, _time,
]
})
},
})
})