Compare commits

..

64 Commits

Author SHA1 Message Date
shy
5f0564604d opt some 2025-03-15 20:47:21 +08:00
shy
6fa0b642f7 opt some 2025-03-11 11:43:17 +08:00
shy
040c995851 opt some 2025-03-11 11:42:01 +08:00
shy
44798fa2c3 opt some 2025-03-03 19:49:59 +08:00
shy
a49098b586 add some 2025-03-03 07:52:48 +08:00
shy
7f8c011e23 opt some 2025-02-28 21:29:31 +08:00
shy
e31f4f47af opt some 2025-02-28 14:27:09 +08:00
shy
2ce0a291d3 add some 2025-02-27 18:30:18 +08:00
shy
ea8c670f56 add some 2025-02-27 18:28:48 +08:00
shy
e3c29da388 add some 2025-02-27 16:27:27 +08:00
shy
0cb1fa1338 add some 2025-02-27 14:37:49 +08:00
shy
b82bc3200e opt some 2025-02-26 22:23:01 +08:00
shy
a72bb9af0f opt some 2025-02-26 22:22:14 +08:00
shy
12c3c77bb8 add some 2025-02-25 09:59:35 +08:00
shy
da4c9553a8 add some 2025-02-14 16:15:44 +08:00
shy
1fde3580cd opt some 2025-01-05 16:59:42 +08:00
shy
d0cc6d9b8b add some 2025-01-05 16:00:58 +08:00
shy
c8c9d1c376 add some 2025-01-05 15:59:23 +08:00
shy
c46547c49f add some 2025-01-05 15:56:38 +08:00
shy
5ae117eedf add some 2025-01-05 15:56:27 +08:00
shy
0fadf387f6 opt some 2024-12-29 19:33:31 +08:00
shy
d57bdb9d12 add some 2024-12-29 19:25:16 +08:00
shy
755d416101 add some 2024-12-23 10:48:30 +08:00
shy
32f49a9d86 opt some 2024-12-17 15:38:29 +08:00
shy
82f8e0429c add some 2024-12-15 09:40:16 +08:00
shy
e4d89bf796 opt some 2024-12-15 09:31:25 +08:00
shy
6816ee3acb add some 2024-12-08 22:45:39 +08:00
shy
30ff2755d9 add some 2024-12-08 22:27:22 +08:00
root
e60f08f8f1 add some 2024-11-27 14:56:53 +08:00
shy
b10ec05695 add some 2024-11-26 09:11:05 +08:00
shy
a1f2b2f0fe add some 2024-11-25 10:06:00 +08:00
root
6d00a1264d add some 2024-11-10 13:07:52 +08:00
root
32a2d257f7 add some 2024-10-25 17:49:09 +08:00
root
7ffb21de1c add some 2024-10-20 22:55:46 +08:00
root
53f8bb5a1c add some 2024-10-20 18:46:20 +08:00
root
940d6d7b3a add some 2024-10-17 23:46:16 +08:00
root
20809432f6 add some 2024-10-17 23:46:11 +08:00
root
52fdf3fc9b add some 2024-10-16 14:16:25 +08:00
root
be4d51195e add some 2024-10-16 14:00:19 +08:00
root
7996ee6474 add some 2024-10-15 18:25:15 +08:00
shy
76fa23fc67 opt some 2024-10-09 15:04:59 +08:00
shy
c490f8519e add some 2024-10-06 23:24:47 +08:00
shy
62a682232b add some 2024-10-04 18:44:41 +08:00
shy
234e819519 add some 2024-10-04 18:44:38 +08:00
shy
06a20c3601 add some 2024-10-04 18:43:00 +08:00
shy
f3421afe4a add some 2024-10-04 12:23:30 +08:00
shy
109a06534b add some 2024-10-03 07:13:59 +08:00
shy
f74893e311 opt some 2024-10-01 08:21:38 +08:00
shy
ad5e408ded add some 2024-10-01 08:08:43 +08:00
shy
0fa35941f3 add some 2024-10-01 00:12:56 +08:00
shy
b1b4e0d28c add some 2024-09-26 16:48:22 +08:00
shy
fb0233f04c add some 2024-09-25 17:16:12 +08:00
shy
5d407f81d6 add some 2024-09-24 13:11:41 +08:00
shy
bf13e91d01 add some 2024-09-24 13:11:23 +08:00
shy
3ca3d6ae9c add some 2024-09-20 20:53:30 +08:00
jingganjiaoyu
c58811a855 opt some 2024-09-19 21:19:57 +08:00
shy
c48be02914 add some 2024-09-18 13:34:22 +08:00
shy
6a9f8b7a5c add some 2024-09-15 20:05:23 +08:00
shy
883ebc6540 add some 2024-09-15 20:00:31 +08:00
shy
4fe3e79a48 add some 2024-09-15 20:00:11 +08:00
shy
7e14e50872 add some 2024-09-14 00:39:08 +08:00
shy
f1685f82db add some 2024-09-14 00:36:25 +08:00
shy
0d4b0617f6 add some 2024-09-05 20:02:44 +08:00
shy
fb8e112883 add some 2024-09-03 18:30:15 +08:00
44 changed files with 1365 additions and 336 deletions

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020 shylinux
Copyright (c) 2017-2025 shylinux
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.

View File

@ -1,12 +1,11 @@
binarys = bin/ice.bin
version = src/version.go
binpack = src/binpack.go
option = src/option.go
flags = -ldflags "-w -s" -v
all: def
@date +"%Y-%m-%d %H:%M:%S"
go build ${flags} -o ${binarys} src/main.go ${option} ${version} ${binpack} && ./${binarys} forever restart &>/dev/null
go build ${flags} -o ${binarys} src/main.go src/option.go ${version} ${binpack} && ./${binarys} forever restart &>/dev/null
def:
@[ -f ${version} ] || echo "package main">${version}

View File

@ -1,11 +1,11 @@
# Education
Education 通过模块化、集群化、自动化的方式,只用一个 20M 大小的程序文件,就可以在各种设备上,一键启动完整的云计算服务与云研发环境。
# ContextOS
ContextOS 通过集群化、模块化、自动化的方式,只用一个 20M 大小的程序文件,就可以在各种设备上,一键启动完整的云计算服务与云研发环境。
## 源码安装
### 克隆编译
## 安装系统
### 下载编译
```sh
git clone https://shylinux.com/x/education
cd education; source etc/miss.sh
git clone https://shylinux.com/x/ContextOS
cd ContextOS; source etc/miss.sh
```
### 启动服务
@ -13,7 +13,5 @@ cd education; source etc/miss.sh
ish_miss_serve
```
### 访问网页
```sh
open http://localhost:9020
```
### 管理后台
打开管理后台 [http://localhost:9020](http://localhost:9020)

View File

@ -12,6 +12,4 @@ ish_miss_prepare_project
ish_miss_prepare_contexts
ish_miss_prepare_resource
ish_miss_prepare community
ish_miss_make; [ -z "$*" ] || ish_miss_serve "$@"

55
go.mod
View File

@ -1,29 +1,48 @@
module shylinux.com/x/education
go 1.20
go 1.21
require (
shylinux.com/x/community v0.0.5
shylinux.com/x/golang-story v0.0.24
shylinux.com/x/ice v1.5.44
shylinux.com/x/icebergs v1.9.44
shylinux.com/x/mysql-story v0.6.18
shylinux.com/x/toolkits v1.0.14
shylinux.com/x/community v0.0.28
shylinux.com/x/enterprise v0.0.17 // indirect
shylinux.com/x/golang-story v0.0.32 // indirect
shylinux.com/x/mysql-story v0.6.32
)
require (
shylinux.com/x/ice v1.5.74
shylinux.com/x/icebergs v1.9.76
shylinux.com/x/toolkits v1.0.19
)
require (
github.com/emersion/go-imap v1.2.1 // indirect
github.com/emersion/go-message v0.15.0 // indirect
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21 // indirect
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect
github.com/go-sql-driver/mysql v1.7.0 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
golang.org/x/text v0.16.0 // indirect
gorm.io/driver/mysql v1.5.7 // indirect
gorm.io/gorm v1.25.11 // indirect
shylinux.com/x/enterprise v0.0.4 // indirect
shylinux.com/x/go-git/v5 v5.6.7 // indirect
shylinux.com/x/go-qrcode v0.0.3 // indirect
shylinux.com/x/websocket v0.0.4 // indirect
)
require (
filippo.io/edwards25519 v1.1.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/emersion/go-imap v1.2.1 // indirect
github.com/emersion/go-message v0.15.0 // indirect
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21 // indirect
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 // indirect
github.com/glebarez/go-sqlite v1.21.2 // indirect
github.com/glebarez/sqlite v1.11.0 // indirect
github.com/go-sql-driver/mysql v1.9.0 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
github.com/mattn/go-isatty v0.0.17 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/wechatpay-apiv3/wechatpay-go v0.2.20 // indirect
golang.org/x/sys v0.21.0 // indirect
golang.org/x/text v0.22.0 // indirect
gorm.io/driver/mysql v1.5.7 // indirect
gorm.io/gorm v1.25.12 // indirect
modernc.org/libc v1.22.5 // indirect
modernc.org/mathutil v1.5.0 // indirect
modernc.org/memory v1.5.0 // indirect
modernc.org/sqlite v1.23.1 // indirect
)

221
go.sum
View File

@ -1,13 +1,16 @@
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/PuerkitoBio/goquery v1.9.1/go.mod h1:cW1n6TmIMDoORQU5IU/P1T3tGFunOeXEpGP2WHRwkbY=
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
github.com/bgould/http v0.0.0-20190627042742-d268792bdee7/go.mod h1:BTqvVegvwifopl4KTEDth6Zezs9eR+lCWhvGKvkxJHE=
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
github.com/agiledragon/gomonkey v2.0.2+incompatible h1:eXKi9/piiC3cjJD1658mEE2o3NjkJ5vDLgYjCQu0Xlw=
github.com/agiledragon/gomonkey v2.0.2+incompatible/go.mod h1:2NGfXu1a80LLr2cmWXGBDaHEjb1idR6+FVlX5T3D9hw=
github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY=
github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic=
github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dhowden/itl v0.0.0-20170329215456-9fbe21093131/go.mod h1:eVWQJVQ67aMvYhpkDwaH2Goy2vo6v8JCMfGXfQ9sPtw=
github.com/dhowden/plist v0.0.0-20141002110153-5db6e0d9931a/go.mod h1:sLjdR6uwx3L6/Py8F+QgAfeiuY87xuYGwCDqRFrvCzw=
github.com/dhowden/tag v0.0.0-20240417053706-3d75831295e8/go.mod h1:apkPC/CR3s48O2D7Y++n1XWEpgPNNCjXYga3PPbJe2E=
github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/emersion/go-imap v1.2.1 h1:+s9ZjMEjOB8NzZMVTM3cCenz2JrQIGGo5j1df19WjTA=
github.com/emersion/go-imap v1.2.1/go.mod h1:Qlx1FSx2FTxjnjWpIlVNEuX+ylerZQNFE5NsmKFSejY=
github.com/emersion/go-message v0.15.0 h1:urgKGqt2JAc9NFJcgncQcohHdiYb803YTH9OQwHBHIY=
@ -16,203 +19,185 @@ github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21 h1:OJyUGMJTzHTd1X
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ=
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594 h1:IbFBtwoTQyw0fIM5xv1HF+Y+3ZijDR839WMulgxCcUY=
github.com/emersion/go-textwrapper v0.0.0-20200911093747-65d896831594/go.mod h1:aqO8z8wPrjkscevZJFVE1wXJrLpC5LtJG7fqLOsPb2U=
github.com/frankban/quicktest v1.10.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s=
github.com/glerchundi/subcommands v0.0.0-20181212083838-923a6ccb11f8/go.mod h1:r0g3O7Y5lrWXgDfcFBRgnAKzjmPgTzwoMC2ieB345FY=
github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9gAXWo=
github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k=
github.com/glebarez/sqlite v1.11.0 h1:wSG0irqzP6VurnMEpFGer5Li19RpIRi2qvQz++w0GMw=
github.com/glebarez/sqlite v1.11.0/go.mod h1:h8/o8j5wiAsqSPoWELDUdJXhjAhsVliSn7bWZjOhrgQ=
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo=
github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/hajimehoshi/go-jisx0208 v1.0.0/go.mod h1:yYxEStHL7lt9uL+AbdWgW9gBumwieDoZCiB1f/0X0as=
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys=
github.com/peterbourgon/ff/v3 v3.1.2/go.mod h1:XNJLY8EIl6MjMVjBS4F0+G0LYoAqs0DTa4rmHHukKDE=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sago35/go-bdf v0.0.0-20200313142241-6c17821c91c4/go.mod h1:rOebXGuMLsXhZAC6mF/TjxONsm45498ZyzVhel++6KM=
github.com/saltosystems/winrt-go v0.0.0-20240509164145-4f7860a3bd2b/go.mod h1:CIltaIm7qaANUIvzr0Vmz71lmQMAIbGJ7cvgzX7FMfA=
github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/soypat/cyw43439 v0.0.0-20240609122733-da9153086796/go.mod h1:1Otjk6PRhfzfcVHeWMEeku/VntFqWghUwuSQyivb2vE=
github.com/soypat/natiu-mqtt v0.5.1/go.mod h1:xEta+cwop9izVCW7xOx2W+ct9PRMqr0gNVkvBPnQTc4=
github.com/soypat/saleae v0.0.0-20230402180913-3584b7515dae/go.mod h1:9SV+w6E9YK/BePxdxYGXthkrRztHJCQlojWOjAxW3M4=
github.com/soypat/seqs v0.0.0-20240527012110-1201bab640ef/go.mod h1:oCVCNGCHMKoBj97Zp9znLbQ1nHxpkmOY9X+UAGzOxc8=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/tdakkota/win32metadata v0.1.0/go.mod h1:77e6YvX0LIVW+O81fhWLnXAxxcyu/wdZdG7iwed7Fyk=
github.com/tinygo-org/cbgo v0.0.4/go.mod h1:7+HgWIHd4nbAz0ESjGlJ1/v9LDU1Ox8MGzP9mah/fLk=
github.com/tinygo-org/pio v0.0.0-20231216154340-cd888eb58899/go.mod h1:LU7Dw00NJ+N86QkeTGjMLNkYcEYMor6wTDpTCu0EaH8=
github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0=
github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY=
github.com/valyala/fastjson v1.6.3/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/wechatpay-apiv3/wechatpay-go v0.2.20 h1:gS8oFn1bHGnyapR2Zb4aqTV6l4kJWgbtqjCq6k1L9DQ=
github.com/wechatpay-apiv3/wechatpay-go v0.2.20/go.mod h1:A254AUBVB6R+EqQFo3yTgeh7HtyqRRtN2w9hQSOrd4Q=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/goldmark v1.5.5/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
golang.org/x/exp v0.0.0-20230728194245-b0cb94b80691/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20220617043117-41969df76e82/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4=
golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo=
gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM=
gorm.io/driver/sqlite v1.5.6/go.mod h1:U+J8craQU6Fzkcvu8oLeAQmi50TkwPEhHDEjQZXDah4=
gorm.io/gorm v1.25.7-0.20240204074919-46816ad31dde/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
gorm.io/gorm v1.25.11 h1:/Wfyg1B/je1hnDx3sMkX+gAlxrlZpn6X0BXRlwXlvHg=
gorm.io/gorm v1.25.11/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
shylinux.com/x/community v0.0.5 h1:lo2SkTyuZHcXV7I4diakPe/n83AEb4nFfyfJXee58ao=
shylinux.com/x/community v0.0.5/go.mod h1:QXbZEzEkPbCurkQxHb3fUwiTUa6YiR35BrlXUmcKTtk=
shylinux.com/x/enterprise v0.0.4 h1:aLppC1qK/kGrUMDCqKS9YGUaDEcEZpnlcVbVQahxFBk=
shylinux.com/x/enterprise v0.0.4/go.mod h1:sBLCMzaz612zlLlTFB93e302dYOy4aS856xaXqyBNJg=
gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20=
modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0=
modernc.org/ccgo/v3 v3.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI=
modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g=
modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ=
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA=
modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0=
modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI=
modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE=
modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=
modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM=
modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk=
modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
modernc.org/tcl v1.15.2/go.mod h1:3+k/ZaEbKrC8ePv8zJWPtBSW0V7Gg9g8rkmhI1Kfs3c=
modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
modernc.org/z v1.7.3/go.mod h1:Ipv4tsdxZRbQyLq9Q1M6gdbkxYzdlrciF2Hi/lS7nWE=
shylinux.com/x/community v0.0.28 h1:/h7gthD8X6lVh1dDg3W3sBX4dpotbddfdGdR/BqBV4c=
shylinux.com/x/community v0.0.28/go.mod h1:MamBZhpO3+c5YISRJt4xnxa5VDBBstUR+9FnPQrhZMU=
shylinux.com/x/enterprise v0.0.17 h1:29VjNHt4YiPryQGNtVTnYqiXNHxau4EnkoUDzlxgB6Y=
shylinux.com/x/enterprise v0.0.17/go.mod h1:+DmZbYMykX5U65BJ7DYOcwFubslKa2b78DyRaqUYuH4=
shylinux.com/x/go-git/v5 v5.6.7 h1:WD5QSco7m3QooPCgdvQ6/GyGIFPun8C+hex5N41LYlk=
shylinux.com/x/go-git/v5 v5.6.7/go.mod h1:Qb0lA+uIrofZg8NQerhYcJHgGWixFqvS6p3aJ/L5Nlk=
shylinux.com/x/go-qrcode v0.0.3 h1:RMo+Vidbgq3HatLBj7DDXcTbTLFUwzis5K7TqBkD38U=
shylinux.com/x/go-qrcode v0.0.3/go.mod h1:KAbtU+KwiiABMZ/CJ0zh9PI2AX82Uf9rRYcQ4ODm4po=
shylinux.com/x/go-sql-mysql v0.0.2/go.mod h1:lHjRMZz5Lii6U+49fhkbCWgsnL+yux54SYJYWqASN8Y=
shylinux.com/x/golang-story v0.0.24 h1:0gzXdo4sIw9LxoNaEOueEDKC+Cb0IGcFAi44vigoVf8=
shylinux.com/x/golang-story v0.0.24/go.mod h1:G0WEOJ0gCYR2tOs1ggyMBBrUMqJEgJjyvdFjN3VpNoM=
shylinux.com/x/ice v1.5.41/go.mod h1:hMhVMhUlsimwFcsPIH+J/tO8O8I0WEqg1NYyqdhULxE=
shylinux.com/x/ice v1.5.44 h1:jRDnJrLrg1jmvCEHPz7C5KkI0UZGn7t9M6IPs2B+rhE=
shylinux.com/x/ice v1.5.44/go.mod h1:/ze8UI3sUpdx8S/Qadr8xYRvLIri4P93Mkwi4b9EmEk=
shylinux.com/x/icebergs v1.9.39/go.mod h1:rUqDj1pzd6uPj7+klEn+doqXiWlb/24/batRyBB5ppo=
shylinux.com/x/icebergs v1.9.44 h1:IxT1ipYtUZj52d3AHbxu73fmzxMyXPOO7RR+Qv60aoI=
shylinux.com/x/icebergs v1.9.44/go.mod h1:/BcFEB/6Dd70Owmb3wsA9NYShHQwmSH74xn9pNudRMg=
shylinux.com/x/mysql-story v0.6.18 h1:MmeA2VP4pmClo58c1Qau2mkhvUz5o2od+mnhC8RKrok=
shylinux.com/x/mysql-story v0.6.18/go.mod h1:Am+fx/T9pEeUepoX0eoSM53Qu0xVcQKpLGdBNC+x43A=
shylinux.com/x/golang-story v0.0.32 h1:7xu28iREL2cuZzf80luJwI9BWptow+ME00L1lgyjmDI=
shylinux.com/x/golang-story v0.0.32/go.mod h1:NsI5fULu3q7o2b+VzZ5tiJ3+0pUTjE9DdQxa870htmw=
shylinux.com/x/ice v1.5.73/go.mod h1:uGI73gYkk+FiJt5qmy/aYhoKRJ4wobcJk3WrPGh8Waw=
shylinux.com/x/ice v1.5.74 h1:5hTPmchO79b1d2+/DwBDLiG2WkTL65G/hOEAcGJVeB8=
shylinux.com/x/ice v1.5.74/go.mod h1:/XAib8Ha+z6jzLRs2Pig+qxDx4C8dT8Vfaq2InJ/lkU=
shylinux.com/x/icebergs v1.9.75/go.mod h1:3Bdp3tjzw+hUKJF+kR8pfsrbjAf72DVZmCaE8/MPFtk=
shylinux.com/x/icebergs v1.9.76 h1:SHOTbiO+jh09GEFzoo8t8kmR1BCu+zkNCpdfxPCLeu0=
shylinux.com/x/icebergs v1.9.76/go.mod h1:3Bdp3tjzw+hUKJF+kR8pfsrbjAf72DVZmCaE8/MPFtk=
shylinux.com/x/mysql-story v0.6.32 h1:Q274WFJ09ocnf8nhlQnKr02FMMdPYBLWqu2IjTVqGiM=
shylinux.com/x/mysql-story v0.6.32/go.mod h1:8HCeDUV6ghaIeJD1IEhSeSOfVC9wEI93y2G9QBLtJJY=
shylinux.com/x/toolkits v0.7.10/go.mod h1:CHDJarGlDkg60kVsvMLYL/a5hAnRLEOShiEsMOuEp0Q=
shylinux.com/x/toolkits v1.0.13/go.mod h1:CHDJarGlDkg60kVsvMLYL/a5hAnRLEOShiEsMOuEp0Q=
shylinux.com/x/toolkits v1.0.14 h1:ysp9Yl0YjVqtGn/KXQnKfjn3/3RYgVdll2WOYUscd9c=
shylinux.com/x/toolkits v1.0.14/go.mod h1:CHDJarGlDkg60kVsvMLYL/a5hAnRLEOShiEsMOuEp0Q=
shylinux.com/x/toolkits v1.0.19 h1:Nrx0xYRc5ph1WS66EZ1hJUCe+2FdSWQ4QP6tBlguikQ=
shylinux.com/x/toolkits v1.0.19/go.mod h1:CHDJarGlDkg60kVsvMLYL/a5hAnRLEOShiEsMOuEp0Q=
shylinux.com/x/websocket v0.0.4 h1:AJpwblePoOpiE6C8NrvgNYpKTotXMLrDDX2chTvx44Q=
shylinux.com/x/websocket v0.0.4/go.mod h1:3UGWkjTu3ie5NAZen7J+uLPBrO7DFeKloj6Jxo13Oiw=
tinygo.org/x/bluetooth v0.10.0/go.mod h1:t/Vm2a/rslsBoqFQKCBsWQw/cmRicQq+8Tl3tj5RCRI=
tinygo.org/x/drivers v0.14.0/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI=
tinygo.org/x/drivers v0.15.1/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI=
tinygo.org/x/drivers v0.16.0/go.mod h1:uT2svMq3EpBZpKkGO+NQHjxjGf1f42ra4OnMMwQL2aI=
tinygo.org/x/drivers v0.19.0/go.mod h1:uJD/l1qWzxzLx+vcxaW0eY464N5RAgFi1zTVzASFdqI=
tinygo.org/x/drivers v0.25.0/go.mod h1:v+mXaA4cgpz/YZJ3ZPm/86bYQJAXTaYtMkHlVwbodbw=
tinygo.org/x/drivers v0.26.1-0.20230922160320-ed51435c2ef6/go.mod h1:X7utcg3yfFUFuKLOMTZD56eztXMjpkcf8OHldfTBsjw=
tinygo.org/x/tinyfont v0.2.1/go.mod h1:eLqnYSrFRjt5STxWaMeOWJTzrKhXqpWw7nU3bPfKOAM=
tinygo.org/x/tinyfont v0.3.0/go.mod h1:+TV5q0KpwSGRWnN+ITijsIhrWYJkoUCp9MYELjKpAXk=
tinygo.org/x/tinyfont v0.4.0/go.mod h1:7nVj3j3geqBoPDzpFukAhF1C8AP9YocMsZy0HSAcGCA=
tinygo.org/x/tinyfs v0.1.0/go.mod h1:ysc8Y92iHfhTXeyEM9+c7zviUQ4fN9UCFgSOFfMWv20=
tinygo.org/x/tinyterm v0.1.0/go.mod h1:/DDhNnGwNF2/tNgHywvyZuCGnbH3ov49Z/6e8LPLRR4=
tinygo.org/x/tinyterm v0.3.0/go.mod h1:F1pQjxEwNZQIc5czeJSBtk57ucEvbR4u7vHaLhWhHtg=

7
src/document/content.shy Normal file
View File

@ -0,0 +1,7 @@
spark project "云时代的新型操作系统,既要完全自给自足,又要任意互联互通" `
<b>教务系统:</b>
<b>教材资料:</b>
<b>在线课堂:</b>
<b>考试系统:</b>
`
spark product

11
src/document/index.shy Normal file
View File

@ -0,0 +1,11 @@
navmenu `
"{{ .Title }}" /
_
"下 载" download/
"文 档" started/
"开 发" development/
_
"应 用" "https://web.shylinux.com/s/20240724-education"
"源 码" "https://git.shylinux.com/web/education"
"社 区" "https://bbs.shylinux.com"
`

View File

@ -10,7 +10,7 @@ import (
type Table struct {
jiaowuxitong.Table
list string `name:"list issuer_uid uid auto" role:"void"`
list string `name:"list library_uid uid auto" role:"void"`
}
func (s Table) Inputs(m *ice.Message, arg ...string) {

View File

@ -0,0 +1,18 @@
package jiaocaiziliao
import "shylinux.com/x/ice"
type content struct {
Table
order string `data:"1"`
fields string `data:"title,user_uid"`
create string `name:"create title*" role:"teacher"`
remove string `name:"remove" role:"teacher"`
}
func (s content) List(m *ice.Message, arg ...string) {
s.ValueList(m, arg)
m.Action(s.Create)
}
func init() { ice.TeamCtxCmd(content{}) }

View File

@ -1,32 +1,15 @@
package jiaocaiziliao
import (
"shylinux.com/x/ice"
kit "shylinux.com/x/toolkits"
"shylinux.com/x/education/src/jiaocaiziliao/model"
)
import "shylinux.com/x/ice"
type document struct {
Table
fields string `data:"subject,grade,document_type,title,content,icon,link,user_uid"`
create string `name:"create subject* grade* document_type*:select title* content* icon link" role:"teacher"`
remove string `name:"remove" role:"teacher"`
}
func (s document) Create(m *ice.Message, arg ...string) {
arg = kit.TransArgKeys(arg, model.DOCUMENT_TYPE, model.TYPE)
s.Table.Create(m, kit.Simple(arg, m.OptionSimple(model.USER_UID, model.LIBRARY_UID))...)
}
func (s document) Remove(m *ice.Message, arg ...string) {
s.Table.Remove(m, m.OptionSimple(model.USER_UID, model.UID)...)
}
func (s document) List(m *ice.Message, arg ...string) {
if len(arg) == 1 {
s.Select(m, model.LIBRARY_UID, arg[0])
} else if len(arg) == 2 {
s.SelectDetail(m, model.LIBRARY_UID, arg[0], model.UID, arg[1])
}
m.RenameAppend(model.TYPE, model.DOCUMENT_TYPE).PushAction(s.Remove)
}
func (s document) List(m *ice.Message, arg ...string) { s.ValueList(m, arg).Display("") }
func init() { ice.TeamCtxCmd(document{}) }

View File

@ -1,8 +1,8 @@
Volcanos(chat.ONIMPORT, {
_init: function(can, msg) { can.onimport.shareTitle(can, msg)
can.onimport.itemcards(can, msg, function(value) { return [
_init: function(can, msg) {
can.onimport.myView(can, msg, function(value) { return [
{view: html.TITLE, list: [value.title]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.base.TimeTrim(value.created_at)]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value)]},
{view: html.STATUS, list: [value.school, value.grade, value.subject]},
{view: html.OUTPUT, list: [value.content]},
{view: html.OUTPUT, list: [{type: "a", href: value.link, inner: "在线阅读"}]},

View File

@ -5,8 +5,8 @@ import "shylinux.com/x/mysql-story/src/db"
const (
UID = "uid"
NAME = "name"
INFO = "info"
TYPE = "type"
ROLE = "role"
TITLE = "title"
CONTENT = "content"
USER_UID = "user_uid"
@ -15,7 +15,6 @@ const (
LIBRARY_TYPE = "library_type"
DOCUMENT_UID = "document_uid"
DOCUMENT_TYPE = "document_type"
CITY_UID = "city_uid"
LINK = "link"
)
@ -37,5 +36,11 @@ type Document struct {
Icon string `gorm:"type:varchar(128)"`
Link string `gorm:"type:varchar(255)"`
}
type Content struct {
db.ModelWithUID
LibraryUID string `gorm:"type:char(32);index"`
UserUID string `gorm:"type:char(32)"`
Title string `gorm:"type:varchar(64)"`
}
func init() { db.CmdModels("", &UserLibrary{}, &Library{}, &Document{}) }
func init() { db.CmdModels("", &UserLibrary{}, &Library{}, &Document{}, &Content{}) }

View File

@ -7,7 +7,7 @@ import (
type Portal struct {
jiaowuxitong.Portal
placeCreate string `name:"placeCreate city_name* school_name* library_type*:select library_name* link" role:"void"`
placeCreate string `name:"placeCreate city_name* school_name* library_name* library_type*:select link" role:"void"`
}
func init() { gonganxitong.PortalCmd(Portal{Portal: jiaowuxitong.NewPortal(userLibrary{}, library{})}) }

View File

@ -2,7 +2,9 @@
"portal": "教材资料",
"official": "官方网站",
"document": "教材资料",
"content": "目录索引",
"icons": {
"content": "https://img.icons8.com/officel/80/activity-grid.png",
"official": "https://img.icons8.com/officel/80/activity-grid.png",
"document": "https://img.icons8.com/officel/80/activity-grid.png"
},
@ -12,7 +14,6 @@
"library_name": "文库名称",
"library_type": "文库类型",
"document_type": "文档类型",
"school_name": "学校名称",
"school": "学校",
"subject": "学科",
"grade": "年级"

View File

@ -24,6 +24,8 @@ func (s Table) Inputs(m *ice.Message, arg ...string) {
case model.SCHOOL_UID:
m.Cmdy(school{}, s.Select).Cut(model.UID, model.NAME).RenameAppend(model.UID, arg[0])
m.DisplayInputKeyNameIconTitle()
case model.SCHOOL_NAME, model.CITY_NAME:
m.Cmdy(Portal{}, Portal{}.PlaceList, m.Option(model.USER_UID)).Cut(arg[0])
default:
s.Table.Inputs(m, arg...)
}
@ -43,13 +45,13 @@ func (s Table) RewriteAppend(m *ice.Message, arg ...string) *ice.Message {
})
return s.Table.RewriteAppend(m)
}
func (s Table) SelectJoinSchool(m *ice.Message) *ice.Message {
return s.SelectJoin(m, school{}, model.NAME, model.CITY_UID)
func (s Table) SelectJoinSchool(m *ice.Message) {
s.SelectJoin(m, school{}, model.NAME, model.CITY_UID)
s.SelectJoinCity(m)
}
func (s Table) CheckRole(m *ice.Message, arg ...string) *ice.Message {
func (s Table) CheckRole(m *ice.Message, arg ...string) {
role := UserClassRole(s.UserPlaceRole(m))
m.WarnNotRight(!kit.IsIn(role.String(), append(arg, UserClassCreator.String())...), role.String())
return m
}
type Tables struct{ Table }

View File

@ -1,25 +1,14 @@
package jiaowuxitong
import (
"shylinux.com/x/ice"
kit "shylinux.com/x/toolkits"
"shylinux.com/x/education/src/jiaowuxitong/model"
)
import "shylinux.com/x/ice"
type homework struct {
Table
class class
userClass userClass
create string `name:"create title* content*" role:"teacher"`
fields string `data:"title,content,user_uid"`
create string `name:"create title* content*" role:"teacher"`
remove string `name:"remove" role:"teacher"`
}
func (s homework) Create(m *ice.Message, arg ...string) {
s.Table.Create(m, kit.Simple(arg, m.OptionSimple(model.CLASS_UID, model.USER_UID))...)
s.RecordEventWithName(m, "")
}
func (s homework) List(m *ice.Message, arg ...string) {
s.TablesWithRole(m, arg, s.userClass, s.class, s, model.TITLE, model.CONTENT).Display("")
}
func (s homework) List(m *ice.Message, arg ...string) { s.ValueList(m, arg).Display("") }
func init() { ice.TeamCtxCmd(homework{}) }

View File

@ -1,8 +1,8 @@
Volcanos(chat.ONIMPORT, {
_init: function(can, msg) { can.onimport.shareTitle(can, msg)
can.onimport.itemcards(can, msg, function(value) { return [
_init: function(can, msg) {
can.onimport.myView(can, msg, function(value) { return [
{view: html.TITLE, list: [value.title]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.base.TimeTrim(value.created_at), value.user_name]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value), value.user_name]},
{view: html.OUTPUT, list: [value.content]},
] })
},

View File

@ -5,18 +5,19 @@ import "shylinux.com/x/mysql-story/src/db"
const (
UID = "uid"
NAME = "name"
INFO = "info"
TYPE = "type"
ROLE = "role"
TITLE = "title"
CONTENT = "content"
USER_UID = "user_uid"
USER_CLASS_ROLE = "user_class_role"
CLASS_UID = "class_uid"
CLASS_NAME = "class_name"
CLASS_TYPE = "class_type"
SCHOOL_UID = "school_uid"
SCHOOL_NAME = "school_name"
CITY_UID = "city_uid"
CITY_NAME = "city_name"
AUTH_UID = "auth_uid"
GRADE = "grade"
)

View File

@ -4,7 +4,7 @@ import "shylinux.com/x/community/src/gonganxitong"
type Portal struct {
gonganxitong.Portal
placeCreate string `name:"placeCreate city_name* school_name* grade*:select class_type*:select class_name*" role:"void"`
placeCreate string `name:"placeCreate city_name* school_name* class_name* class_type:select grade*:select" role:"void"`
}
func init() { gonganxitong.PortalCmd(NewPortal(userClass{}, class{})) }

View File

@ -1,7 +1,6 @@
{
"portal": "教务系统",
"portal": "教务系统", "member": "班级成员",
"homework": "家庭作业",
"member": "班级成员",
"icons": {
"homework": "https://img.icons8.com/officel/80/homework.png"
},
@ -10,7 +9,6 @@
"user_class_role": "用户角色",
"class_name": "班级名称",
"class_type": "班级类型",
"school_name": "学校名称",
"grade": "入学年份"
},
"value": {

View File

@ -6,20 +6,39 @@ import (
"shylinux.com/x/education/src/jiaowuxitong/model"
)
type school struct{ Table }
func (s school) List(m *ice.Message, arg ...string) {
if len(arg) == 0 {
s.Select(m)
}
type school struct {
Table
modify string `name:"modify info" role:"tech"`
list string `name:"list city_name school_name auto" role:"void"`
authCreate string `name:"authCreate" role:"tech"`
}
func (s school) FindOrCreateByName(m *ice.Message, arg ...string) {
if msg := m.Cmd(s, s.Select, model.NAME, arg[3], arg[0], arg[1]); msg.Length() == 0 {
msg := m.Cmd(s, s.Create, model.NAME, arg[3], arg[0], arg[1])
msg := m.Cmd(s, s.Insert, model.NAME, arg[3], arg[0], arg[1])
arg[2], arg[3] = model.SCHOOL_UID, msg.Result()
} else {
arg[2], arg[3] = model.SCHOOL_UID, msg.Append(model.UID)
}
}
func (s school) Modify(m *ice.Message, arg ...string) {
s.Update(m, m.OptionSimple(model.INFO), m.OptionSimple(model.UID)...)
}
func (s school) List(m *ice.Message, arg ...string) {
if len(arg) == 0 {
s.CityList(m)
} else if msg := s.CityList(m.Spawn(), arg[0]); len(arg) == 1 {
s.Select(m, model.CITY_UID, msg.Append(model.UID))
} else if len(arg) == 2 {
s.Select(m, model.CITY_UID, msg.Append(model.UID), model.NAME, arg[1])
if m.Append(model.AUTH_UID) == "" {
m.EchoInfoButton("请申请学校认证", s.AuthCreate)
}
}
}
func (s school) AuthCreate(m *ice.Message, arg ...string) {
msg := s.CityCmd(m, s.Select, model.UID, m.Option(model.CITY_UID))
s.Table.AuthCreate(m, 5, msg.Append(model.AUTH_UID), m.OptionSimple(model.UID)...)
}
func init() { ice.TeamCtxCmd(school{}) }

View File

@ -5,18 +5,15 @@ import "shylinux.com/x/mysql-story/src/db"
const (
UID = "uid"
NAME = "name"
INFO = "info"
TYPE = "type"
ROLE = "role"
TITLE = "title"
CONTENT = "content"
USER_UID = "user_uid"
USER_EXAM_ROLE = "user_exam_role"
EXAM_UID = "exam_uid"
EXAM_NAME = "exam_name"
EXAM_TYPE = "exam_type"
QUESTION_UID = "question_uid"
SCHOOL_UID = "school_uid"
CITY_UID = "city_uid"
)
type UserExam struct {

View File

@ -7,7 +7,7 @@ import (
type Portal struct {
jiaowuxitong.Portal
placeCreate string `name:"placeCreate city_name* school_name* exam_type*:select exam_name*" role:"void"`
placeCreate string `name:"placeCreate city_name* school_name* exam_name* exam_type:select" role:"void"`
}
func init() { gonganxitong.PortalCmd(Portal{Portal: jiaowuxitong.NewPortal(userExam{}, exam{})}) }

View File

@ -1,6 +1,6 @@
{
"portal": "考试系统",
"question": "场景应用",
"question": "试题",
"icons": {
"question": "https://img.icons8.com/officel/80/activity-grid.png"
},
@ -8,8 +8,7 @@
"My Exam": "我的考试",
"user_exam_role": "用户角色",
"exam_name": "考试名称",
"exam_type": "考试类型",
"school_name": "学校名称"
"exam_type": "考试类型"
},
"value": {
"user_exam_role": {

View File

@ -1,25 +1,14 @@
package kaoshixitong
import (
"shylinux.com/x/ice"
kit "shylinux.com/x/toolkits"
"shylinux.com/x/education/src/kaoshixitong/model"
)
import "shylinux.com/x/ice"
type question struct {
Table
exam exam
userExam userExam
create string `name:"create title* content*" role:"leader"`
fields string `data:"title,content,user_uid"`
create string `name:"create title* content*" role:"teacher"`
remove string `name:"remove" role:"teacher"`
}
func (s question) Create(m *ice.Message, arg ...string) {
s.Table.Create(m, kit.Simple(arg, m.OptionSimple(model.USER_UID, model.EXAM_UID))...)
s.RecordEventWithName(m, "")
}
func (s question) List(m *ice.Message, arg ...string) {
s.TablesWithRole(m, arg, s.userExam, s.exam, s, model.TITLE, model.CONTENT).Display("")
}
func (s question) List(m *ice.Message, arg ...string) { s.ValueList(m, arg).Display("") }
func init() { ice.TeamCtxCmd(question{}) }

View File

@ -1,8 +1,8 @@
Volcanos(chat.ONIMPORT, {
_init: function(can, msg) { can.onimport.shareTitle(can, msg)
can.onimport.itemcards(can, msg, function(value) { return [
_init: function(can, msg) {
can.onimport.myView(can, msg, function(value) { return [
{view: html.TITLE, list: [value.title]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.base.TimeTrim(value.created_at), value.user_name]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value), value.user_name]},
{view: html.OUTPUT, list: [value.content]},
] })
},

View File

@ -12,4 +12,7 @@ import (
func main() { print(ice.Run()) }
func init() { ice.Info.Titles = "云教育" }
func init() {
ice.Info.CodeMain = "src/jiaowuxitong/portal.go"
ice.Info.NodeMain = "web.team.jiaowuxitong.portal"
}

View File

@ -1 +1,8 @@
title "20240724-education"
title "云教育"
refer `
官网 https://web.shylinux.com
源码 https://git.shylinux.com/web/education
应用 https://web.shylinux.com/s/20240724-education
`
field web.code.mysql.client
field web.code.mysql.query args `mysql jiaowuxitong`

View File

@ -2,7 +2,5 @@ package main
import (
_ "shylinux.com/x/ice/devops"
_ "shylinux.com/x/golang-story/src/runtime"
_ "shylinux.com/x/mysql-story/src/db/mysql"
_ "shylinux.com/x/ice/portal"
)

View File

@ -2,10 +2,13 @@ package {{.Option "zone"}}
import "shylinux.com/x/ice"
type {{.Option "name"}} struct{ Tables }
func (s {{.Option "name"}}) List(m *ice.Message, arg ...string) {
s.Table.List(m, arg...)
type {{.Option "name"}} struct {
Table
fields string `data:"title,content,user_uid"`
create string `name:"create title* content*" role:"leader"`
remove string `name:"remove" role:"leader"`
}
func (s {{.Option "name"}}) List(m *ice.Message, arg ...string) { s.ValueList(m, arg).Display("") }
func init() { ice.TeamCtxCmd({{.Option "name"}}{}) }

View File

@ -0,0 +1,9 @@
Volcanos(chat.ONIMPORT, {
_init: function(can, msg) {
can.onimport.myView(can, msg, function(value) { return [
{view: html.TITLE, list: [value.title||value.name||value.user_name]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value), value.user_name]},
{view: html.OUTPUT, list: [value.content||value.info]},
] })
},
})

View File

@ -1,25 +1,14 @@
package zaixianketang
import (
"shylinux.com/x/ice"
kit "shylinux.com/x/toolkits"
"shylinux.com/x/education/src/zaixianketang/model"
)
import "shylinux.com/x/ice"
type lesson struct {
Table
course course
userCourse userCourse
create string `name:"create title* content*" role:"teacher"`
fields string `data:"title,content,user_uid"`
create string `name:"create title* content*" role:"teacher"`
remove string `name:"remove" role:"teacher"`
}
func (s lesson) Create(m *ice.Message, arg ...string) {
s.Table.Create(m, kit.Simple(arg, m.OptionSimple(model.USER_UID, model.COURSE_UID))...)
s.RecordEventWithName(m, "")
}
func (s lesson) List(m *ice.Message, arg ...string) {
s.TablesWithRole(m, arg, s.userCourse, s.course, s, model.TITLE, model.CONTENT).Display("")
}
func (s lesson) List(m *ice.Message, arg ...string) { s.ValueList(m, arg).Display("") }
func init() { ice.TeamCtxCmd(lesson{}) }

View File

@ -1,8 +1,8 @@
Volcanos(chat.ONIMPORT, {
_init: function(can, msg) { can.onimport.shareTitle(can, msg)
can.onimport.itemcards(can, msg, function(value) { return [
_init: function(can, msg) {
can.onimport.myView(can, msg, function(value) { return [
{view: html.TITLE, list: [value.title]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.base.TimeTrim(value.created_at), value.user_name]},
{view: html.STATUS, list: [value.uid.slice(0, 6), can.onimport.timeView(can, value), value.user_name]},
{view: html.OUTPUT, list: [value.content]},
] })
},

View File

@ -5,18 +5,15 @@ import "shylinux.com/x/mysql-story/src/db"
const (
UID = "uid"
NAME = "name"
INFO = "info"
TYPE = "type"
ROLE = "role"
TITLE = "title"
CONTENT = "content"
USER_UID = "user_uid"
USER_COURSE_ROLE = "user_course_role"
COURSE_UID = "course_uid"
COURSE_NAME = "course_name"
COURSE_TYPE = "course_type"
LESSON_UID = "lesson_uid"
SCHOOL_UID = "school_uid"
CITY_UID = "city_uid"
)
type UserCourse struct {

View File

@ -7,7 +7,7 @@ import (
type Portal struct {
jiaowuxitong.Portal
placeCreate string `name:"placeCreate city_name* school_name* course_type*:select course_name*" role:"void"`
placeCreate string `name:"placeCreate city_name* school_name* course_name* course_type:select" role:"void"`
}
func init() { gonganxitong.PortalCmd(Portal{Portal: jiaowuxitong.NewPortal(userCourse{}, course{})}) }

View File

@ -1,17 +1,14 @@
{
"portal": "在线课堂",
"course": "课程",
"lesson": "章节",
"icons": {
"course": "https://img.icons8.com/officel/80/activity-grid.png",
"lesson": "https://img.icons8.com/officel/80/activity-grid.png"
},
"input": {
"My Course": "我的课程",
"user_course_role": "用户角色",
"course_name": "课程名称",
"course_type": "课程类型",
"school_name": "学校名称"
"course_type": "课程类型"
},
"value": {
"user_course_role": {

View File

@ -11,9 +11,21 @@
"time": "2024-08-03 19:21:19.588"
}
},
"1246961a1d880252ead389142acd037b": {
"meta": {
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
"index": "web.team.gonganxitong.setting",
"name": "服务配置",
"order": "102",
"role": "leader,worker,server",
"time": "2024-09-21 11:54:00.700"
}
},
"153c93456004ec2ca692d3bac2223167": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.gonganxitong.service",
"name": "服务发现",
"order": "100",
"role": "creator",
"time": "2024-08-06 18:17:45.986"
@ -25,20 +37,64 @@
"time": "2024-08-03 19:21:19.587"
}
},
"22574299a657140d473f0216b8d83710": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/documents.png",
"index": "web.team.gonganxitong.document",
"name": "在线文档",
"order": "93",
"role": "leader,worker",
"time": "2024-11-26 12:33:10.142"
}
},
"27c6988eeb07c78cbb49aa15c577cfa4": {
"meta": {
"icons": "https://img.icons8.com/officel/80/edit-property.png",
"index": "web.team.gonganxitong.apply",
"name": "权限申请",
"order": "3",
"role": "creator",
"time": "2024-08-03 15:09:01.515"
}
},
"2f80f1821b55a90555f630def20387be": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/agreement.png",
"index": "web.team.gonganxitong.contract",
"name": "在线合同",
"order": "94",
"role": "leader,worker",
"time": "2024-11-26 12:33:10.136"
}
},
"3971882ea4f32c86386ad04b39d3e3d4": {
"meta": {
"icons": "https://img.icons8.com/officel/80/square.png",
"index": "web.team.gonganxitong.market",
"name": "人民广场",
"order": "100",
"time": "2024-09-10 13:43:43.716"
}
},
"4719bb45bb02427346be9634cc7a8fe3": {
"meta": {
"index": "web.team.jiaowuxitong.qrcode",
"time": "2024-08-03 19:21:19.587"
}
},
"55ff6002f602327674ed6d4616023184": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-store.png",
"index": "web.team.gonganxitong.goodslist",
"name": "在线商城",
"order": "91",
"role": "leader,worker",
"time": "2024-12-06 06:04:57.905"
}
},
"58724bdcc3cae3e26700cb3199e0602c": {
"meta": {
"index": "web.team.gonganxitong.placeUser",
@ -47,9 +103,22 @@
"time": "2024-08-03 15:09:01.516"
}
},
"882a999b4a72a9866d9e4eef110d335a": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/ios-photos.png",
"index": "web.team.gonganxitong.photo",
"name": "在线相册",
"order": "95",
"role": "leader,worker",
"time": "2024-11-26 12:33:10.147"
}
},
"8ce4dfb877e04e3be5144253fdd5d8ff": {
"meta": {
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
"index": "web.team.gonganxitong.allow",
"name": "权限审批",
"order": "4",
"role": "creator",
"time": "2024-08-16 13:04:16.257"
@ -63,16 +132,29 @@
"time": "2024-08-03 14:36:39.469"
}
},
"a53e36dcca735ef90b649fec546f520e": {
"meta": {
"icons": "https://img.icons8.com/officel/80/passport.png",
"index": "web.team.gonganxitong.credit",
"name": "用户名片",
"order": "102",
"time": "2024-09-30 09:55:22.712"
}
},
"a89a7c09e326295aaa7e7ea3d66fb28a": {
"meta": {
"icons": "https://img.icons8.com/officel/80/customer-support.png",
"index": "web.team.gonganxitong.support",
"name": "客服支持",
"order": "103",
"time": "2024-08-20 17:15:51.782"
}
},
"bdec92d5849b2a60a8811cff494f2391": {
"meta": {
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
"index": "web.team.gonganxitong.event",
"name": "事件流",
"order": "2",
"role": "creator",
"time": "2024-08-03 14:36:39.469"
@ -80,35 +162,93 @@
},
"be08ca65be90feca325df128a06e440f": {
"meta": {
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
"index": "web.team.gonganxitong.recent",
"name": "最近访问",
"order": "101",
"time": "2024-08-20 21:47:27.340"
}
},
"c1526ecd405021d6d47798c066bf70c0": {
"meta": {
"icons": "https://img.icons8.com/officel/80/commercial.png",
"index": "web.team.gonganxitong.notice",
"name": "通知公告",
"order": "94",
"role": "leader",
"time": "2024-09-10 13:43:43.725"
}
},
"c73251765fb5286cea9c8ceefb74530c": {
"meta": {
"index": "web.team.jiaowuxitong.event",
"time": "2024-08-03 19:21:19.589"
}
},
"cbfda09ef49108ad9addf5117bcb54ce": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-payment-with-a-credit-card.png",
"index": "web.team.gonganxitong.paymentlist",
"name": "在线支付",
"order": "92",
"role": "leader,worker",
"time": "2024-11-23 15:03:16.166"
}
},
"d86e4e63183c8fae4ceb50498b0bcfde": {
"meta": {
"icons": "https://img.icons8.com/officel/80/categorize.png",
"index": "web.team.gonganxitong.domain",
"name": "领域分类",
"time": "2024-09-10 13:43:43.718"
}
},
"e2117b53c036a72fe7e4885449488a6f": {
"meta": {
"icons": "https://img.icons8.com/officel/80/qr-code.png",
"index": "web.team.gonganxitong.qrcode",
"name": "场景码",
"order": "1",
"role": "creator",
"time": "2024-08-03 14:32:27.153"
}
},
"f24b53f61852f58734f9ef8488705026": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/video-conference.png",
"index": "web.team.gonganxitong.meeting",
"name": "在线会议",
"order": "91",
"role": "leader,worker",
"time": "2024-11-22 14:32:17.504"
}
},
"f28c03b5bdbbe92ebc89dabca5e7d4de": {
"meta": {
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
"index": "web.team.gonganxitong.member",
"name": "组织成员",
"order": "80",
"role": "leader,worker,server",
"time": "2024-09-03 01:31:39.817"
}
},
"fd1884bbeb1f1a83f4e12f857bfe5b15": {
"meta": {
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
"index": "web.team.gonganxitong.message",
"name": "消息待办",
"order": "100",
"time": "2024-08-20 21:47:27.312"
}
},
"fd86aad80a667152781bb188fb1249a2": {
"meta": {
"icons": "https://img.icons8.com/officel/80/reading-confirmation.png",
"index": "web.team.gonganxitong.email",
"name": "邮箱配置",
"time": "2024-08-03 15:09:01.515"
}
}

View File

@ -1,37 +1,146 @@
{
"003dd6be7f666b93d80cf0f758880d84": {
"meta": {
"icons": "https://img.icons8.com/officel/80/purchase-order.png",
"index": "web.team.guanlixitong.procurement",
"name": "采购清单",
"time": "2024-11-10 11:04:01.150"
}
},
"030e2a53ca3561a0d0d123c133a88b59": {
"meta": {
"icons": "https://img.icons8.com/officel/80/qr-code.png",
"index": "web.team.guanlixitong.qrcode",
"name": "场景码",
"order": "90",
"role": "creator",
"time": "2024-08-28 10:02:38.188"
}
},
"04c6ed833d5cf77fef12937a0e58f2ba": {
"meta": {
"index": "web.team.guanlixitong.domain",
"time": "2024-09-10 13:43:43.709"
}
},
"0521e637b051a0e175a6070eded1bcef": {
"meta": {
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
"index": "web.team.guanlixitong.setting",
"name": "服务配置",
"order": "102",
"role": "leader,worker,server",
"time": "2024-09-21 11:54:00.695"
}
},
"057616b7366e1930ef4e4a921fe45f1f": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.guanlixitong.service",
"name": "服务发现",
"order": "102",
"time": "2024-08-28 10:02:38.186"
}
},
"0721f4589e2e5f0a50b9088471e141a4": {
"meta": {
"icons": "https://img.icons8.com/officel/80/about-us-male--v2.png",
"index": "web.team.guanlixitong.employee",
"name": "员工信息",
"time": "2024-11-10 11:04:01.147"
}
},
"0d1831178568952bdf4f5c6b1587742b": {
"meta": {
"icons": "https://img.icons8.com/officel/80/parse-from-clipboard.png",
"index": "web.team.guanlixitong.resume",
"name": "应聘简历",
"time": "2024-11-10 11:04:01.147"
}
},
"2fd80c581b69c9f67420e793804dbd9f": {
"meta": {
"icons": "https://img.icons8.com/officel/80/passport.png",
"index": "web.team.guanlixitong.credit",
"name": "用户名片",
"order": "102",
"time": "2024-09-30 09:55:22.707"
}
},
"30bfa47cab4cd689901fd2e1b87eb235": {
"meta": {
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
"index": "web.team.guanlixitong.allow",
"name": "权限审批",
"order": "93",
"role": "creator",
"time": "2024-08-28 10:02:38.190"
}
},
"31e2929e94058b015eadf6e874f956a8": {
"meta": {
"icons": "https://img.icons8.com/officel/80/set-as-resume.png",
"index": "web.team.guanlixitong.recruitment",
"name": "招聘需求",
"time": "2024-11-10 11:04:01.140"
}
},
"5695d50b28872804a01d7c923ee91cd1": {
"meta": {
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
"index": "web.team.guanlixitong.member",
"name": "团队成员",
"order": "80",
"role": "leader,worker,server",
"time": "2024-08-28 10:02:38.182"
}
},
"78d29149539be88d7561b8e17bd65882": {
"meta": {
"icons": "https://img.icons8.com/officel/80/square.png",
"index": "web.team.guanlixitong.market",
"name": "人民广场",
"order": "100",
"time": "2024-09-10 13:43:43.694"
}
},
"7c0eda0a842c79270ebf4917a0a07b9e": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-store.png",
"index": "web.team.guanlixitong.goodslist",
"name": "在线商城",
"order": "91",
"role": "leader,worker",
"time": "2024-12-06 06:04:57.871"
}
},
"809b63c1819fc3ac1452e3b71889aec5": {
"meta": {
"icons": "https://img.icons8.com/officel/80/commercial.png",
"index": "web.team.guanlixitong.notice",
"name": "通知公告",
"order": "94",
"role": "leader",
"time": "2024-09-10 13:43:43.696"
}
},
"8548d5ce3faee7bd508d2fb53d57f35b": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/ios-photos.png",
"index": "web.team.guanlixitong.photo",
"name": "在线相册",
"order": "95",
"role": "leader,worker",
"time": "2024-11-26 12:33:10.120"
}
},
"9c18032c5bc252f2986e1b20e7e77db7": {
"meta": {
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
"index": "web.team.guanlixitong.event",
"name": "事件流",
"order": "91",
"role": "creator",
"time": "2024-08-28 10:02:38.172"
@ -39,31 +148,123 @@
},
"9fffbe375e2d2a1a8e6cb1f341e35b55": {
"meta": {
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
"index": "web.team.guanlixitong.recent",
"name": "最近访问",
"order": "101",
"time": "2024-08-28 10:02:38.176"
}
},
"ace6350cd663c693ddf47e81625c8a7a": {
"meta": {
"icons": "https://img.icons8.com/officel/80/meeting.png",
"index": "web.team.guanlixitong.interview",
"name": "招聘面试",
"time": "2024-11-10 11:04:01.138"
}
},
"ad9a805bfef319f0704842021bfc17b0": {
"meta": {
"icons": "https://img.icons8.com/officel/80/video-conference.png",
"index": "web.team.guanlixitong.conference",
"name": "在线会议",
"time": "2024-11-10 11:04:01.131"
}
},
"af39f30945dafa855548057f4dab3be4": {
"meta": {
"icons": "https://img.icons8.com/officel/80/warehouse.png",
"index": "web.team.guanlixitong.inventory",
"name": "库存物资",
"time": "2024-11-10 11:04:01.146"
}
},
"c27ad1df8aa9059d6018fb5add5ee546": {
"meta": {
"icons": "https://img.icons8.com/officel/80/customer-support.png",
"index": "web.team.guanlixitong.support",
"name": "客服支持",
"order": "103",
"time": "2024-08-28 10:02:38.192"
}
},
"c2fcc269f958a7b4b3bf0e37a2641ed8": {
"meta": {
"icons": "https://img.icons8.com/officel/80/office.png",
"index": "web.team.guanlixitong.equipment",
"name": "办公用品",
"time": "2024-11-10 11:04:01.149"
}
},
"c36d47e2611b0d1e7a14088bc3293d04": {
"meta": {
"icons": "https://img.icons8.com/officel/80/edit-property.png",
"index": "web.team.guanlixitong.apply",
"name": "权限申请",
"order": "92",
"role": "creator",
"time": "2024-08-28 10:02:38.175"
}
},
"cb1692a3c6b2d0d7da022787e411843b": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-payment-with-a-credit-card.png",
"index": "web.team.guanlixitong.paymentlist",
"name": "在线支付",
"order": "92",
"role": "leader,worker",
"time": "2024-11-23 15:03:16.130"
}
},
"d25f3f88261ead2a0079415a26aa6853": {
"meta": {
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
"index": "web.team.guanlixitong.message",
"name": "消息待办",
"order": "100",
"time": "2024-08-28 10:02:38.171"
}
},
"e2ade31e19fd70911169780be6757fa3": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/agreement.png",
"index": "web.team.guanlixitong.contract",
"name": "在线合同",
"order": "94",
"role": "leader,worker",
"time": "2024-11-26 12:33:10.127"
}
},
"e595a0bbefbcfaa89f45dd875cc6fe0b": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/documents.png",
"index": "web.team.guanlixitong.document",
"name": "在线文档",
"order": "93",
"role": "leader,worker",
"time": "2024-11-10 11:04:01.130"
}
},
"f10df497cdaa6ec48de612ae8cde4c9a": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/video-conference.png",
"index": "web.team.guanlixitong.meeting",
"name": "在线会议",
"order": "91",
"role": "leader,worker",
"time": "2024-11-22 14:32:17.479"
}
},
"fa5ff99e330772f88b929de7762a36f1": {
"meta": {
"icons": "https://img.icons8.com/officel/80/goal--v1.png",
"index": "web.team.guanlixitong.target",
"name": "目标计划",
"time": "2024-09-03 01:31:38.952"
}
}
}

View File

@ -1,83 +1,210 @@
{
"15db829c1f8a370e0552660dc7dfaefe": {
"meta": {
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
"index": "web.team.jiaocaiziliao.allow",
"order": "92",
"role": "creator,teacher",
"name": "权限审批",
"order": "503",
"role": "teacher",
"time": "2024-08-28 10:02:38.221"
}
},
"2336db685278dbd1bea0323ca19092df": {
"meta": {
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
"index": "web.team.jiaocaiziliao.message",
"order": "100",
"name": "消息待办",
"order": "902",
"time": "2024-08-28 10:02:38.200"
}
},
"336a95ad3daa41459416f205fcb2a214": {
"meta": {
"icons": "https://img.icons8.com/officel/80/edit-property.png",
"index": "web.team.jiaocaiziliao.apply",
"order": "91",
"role": "creator,teacher",
"name": "权限申请",
"order": "502",
"role": "teacher",
"time": "2024-08-28 10:02:38.213"
}
},
"3bff71619be0601340aca525c5ce868c": {
"meta": {
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
"index": "web.team.jiaocaiziliao.event",
"order": "93",
"role": "creator,teacher",
"name": "事件流",
"order": "504",
"role": "teacher",
"time": "2024-08-28 10:02:38.198"
}
},
"4925abd892867aba71564fd42887031b": {
"meta": {
"icons": "https://img.icons8.com/officel/80/commercial.png",
"index": "web.team.jiaocaiziliao.notice",
"name": "通知公告",
"order": "505",
"role": "teacher",
"time": "2024-09-10 13:43:43.677"
}
},
"539eee3f1fbcc6995d10a031a47746a3": {
"meta": {
"icons": "https://img.icons8.com/officel/80/square.png",
"index": "web.team.jiaocaiziliao.market",
"name": "人民广场",
"order": "901",
"time": "2024-09-10 13:43:43.691"
}
},
"6bfff2e353b3d91b10bce46305d690dd": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-store.png",
"index": "web.team.jiaocaiziliao.goodslist",
"name": "在线商城",
"order": "91",
"role": "teacher,student,parent",
"time": "2024-12-06 06:04:57.813"
}
},
"6c8fbcb20762b3f9e3786efb4748fd46": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.jiaocaiziliao.content",
"name": "目录索引",
"order": "1",
"time": "2024-12-19 09:45:37.155"
}
},
"7ba3fe1481c6eff54b701d7e0caeac68": {
"meta": {
"icons": "https://img.icons8.com/officel/80/passport.png",
"index": "web.team.jiaocaiziliao.credit",
"name": "用户名片",
"order": "101",
"time": "2024-09-30 09:55:22.694"
}
},
"7dcf10436f0a3f7d2df292986fda78c0": {
"meta": {
"icons": "https://img.icons8.com/officel/80/qr-code.png",
"index": "web.team.jiaocaiziliao.qrcode",
"order": "90",
"role": "creator,teacher",
"name": "场景码",
"order": "501",
"role": "teacher",
"time": "2024-08-28 10:02:38.210"
}
},
"908f00d36bcefeedd146b686e9722adc": {
"meta": {
"icons": "https://img.icons8.com/officel/80/customer-support.png",
"index": "web.team.jiaocaiziliao.support",
"order": "103",
"name": "客服支持",
"order": "905",
"time": "2024-08-28 10:02:38.205"
}
},
"a539e711473c35bbdb37923875a24368": {
"meta": {
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
"index": "web.team.jiaocaiziliao.recent",
"order": "101",
"name": "最近访问",
"order": "903",
"time": "2024-08-28 10:02:38.202"
}
},
"a77adb6fd1068b2a1969e38b4977d4d4": {
"meta": {
"enable": "false",
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.jiaocaiziliao.document",
"name": "教材资料",
"order": "2",
"time": "2024-08-28 16:55:21.360"
}
},
"abe84c358a4dba0549e0e67559d0e20b": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/agreement.png",
"index": "web.team.jiaocaiziliao.contract",
"name": "在线合同",
"order": "95",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:10.103"
}
},
"bb835c881eef10c8f87022efeefc9fa8": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/ios-photos.png",
"index": "web.team.jiaocaiziliao.photo",
"name": "在线相册",
"order": "96",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:10.011"
}
},
"c77029d5bf4c18bd5cdd7aece2203340": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-payment-with-a-credit-card.png",
"index": "web.team.jiaocaiziliao.paymentlist",
"name": "在线支付",
"order": "92",
"role": "teacher,student,parent",
"time": "2024-11-23 15:03:16.129"
}
},
"d2d67fa16aa8ff85bd5acf61b1c632ee": {
"meta": {
"enable": "false",
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.jiaocaiziliao.official",
"name": "官方网站",
"order": "1",
"time": "2024-08-28 17:48:49.763"
}
},
"e3c2a7ae4469e3664b27184722b91a20": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.jiaocaiziliao.service",
"order": "102",
"name": "服务发现",
"order": "904",
"time": "2024-08-28 10:02:38.223"
}
},
"ed068a7899b6e2526dfb5fd1485bfd78": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/video-conference.png",
"index": "web.team.jiaocaiziliao.meeting",
"name": "在线会议",
"order": "93",
"role": "teacher,student,parent",
"time": "2024-11-22 14:32:17.375"
}
},
"ed416856a9404f238884a165a23c5dac": {
"meta": {
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
"index": "web.team.jiaocaiziliao.member",
"order": "80",
"name": "组织成员",
"order": "102",
"role": "teacher,student,parent",
"time": "2024-08-28 10:02:38.216"
}
},
"ee154f06abdbd01fc11e12c141132c2b": {
"meta": {
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
"index": "web.team.jiaocaiziliao.setting",
"name": "服务配置",
"order": "103",
"role": "teacher,student,parent",
"time": "2024-09-21 11:54:00.619"
}
}
}

View File

@ -1,77 +1,201 @@
{
"04af779dc0ebd8bdc5740b9be92c2cc9": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-payment-with-a-credit-card.png",
"index": "web.team.jiaowuxitong.paymentlist",
"name": "在线支付",
"order": "92",
"role": "teacher,student,parent",
"time": "2024-11-23 15:03:15.972"
}
},
"098ffee875d4ef07e55cf6d08ad69dd5": {
"meta": {
"icons": "https://img.icons8.com/officel/80/homework.png",
"index": "web.team.jiaowuxitong.homework",
"name": "家庭作业",
"order": "1",
"time": "2024-08-06 18:38:58.586"
}
},
"116845ea5df8b8f1f223b8b3e0b1394e": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/video-conference.png",
"index": "web.team.jiaowuxitong.meeting",
"name": "在线会议",
"order": "93",
"role": "teacher,student,parent",
"time": "2024-11-22 14:32:17.296"
}
},
"13a95e678955b3b68d6f80f8d30082a8": {
"meta": {
"icons": "https://img.icons8.com/officel/80/square.png",
"index": "web.team.jiaowuxitong.market",
"name": "人民广场",
"order": "901",
"time": "2024-09-10 13:43:43.667"
}
},
"1a3d216c5a854d78045f3d2acacf567b": {
"meta": {
"icons": "https://img.icons8.com/officel/80/edit-property.png",
"index": "web.team.jiaowuxitong.apply",
"order": "91",
"role": "creator,teacher",
"name": "权限申请",
"order": "502",
"role": "teacher",
"time": "2024-08-04 23:01:00.755"
}
},
"2012c7765aca492cdec6427c9ab24ad9": {
"meta": {
"icons": "https://img.icons8.com/officel/80/customer-support.png",
"index": "web.team.jiaowuxitong.support",
"order": "103",
"name": "客服支持",
"order": "905",
"time": "2024-08-20 21:24:20.298"
}
},
"42eb12c2731727764a4e27397c526931": {
"meta": {
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
"index": "web.team.jiaowuxitong.member",
"order": "80",
"role": "creator,teacher,student,parent",
"name": "班级成员",
"order": "102",
"role": "teacher,student,parent",
"time": "2024-08-12 08:56:55.724"
}
},
"4719bb45bb02427346be9634cc7a8fe3": {
"meta": {
"icons": "https://img.icons8.com/officel/80/qr-code.png",
"index": "web.team.jiaowuxitong.qrcode",
"order": "90",
"role": "creator,teacher",
"name": "场景码",
"order": "501",
"role": "teacher",
"time": "2024-08-06 18:38:58.587"
}
},
"52f3109885fe93bb2ec4b91398d41c95": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/agreement.png",
"index": "web.team.jiaowuxitong.contract",
"name": "在线合同",
"order": "95",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:10.007"
}
},
"581f5dc33ea999742aaf4b7550595cc2": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/documents.png",
"index": "web.team.jiaowuxitong.document",
"name": "在线文档",
"order": "94",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:10.001"
}
},
"698b334fabef9709512c03f5b4d4f1a7": {
"meta": {
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
"index": "web.team.jiaowuxitong.setting",
"name": "服务配置",
"order": "103",
"role": "teacher,student,parent",
"time": "2024-09-21 11:54:00.611"
}
},
"7e64183251edf9e9852903554f37a95c": {
"meta": {
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
"index": "web.team.jiaowuxitong.allow",
"order": "92",
"role": "creator,teacher",
"name": "权限审批",
"order": "503",
"role": "teacher",
"time": "2024-08-16 13:04:16.305"
}
},
"954e1293098e7eba09d20c9869f5fbf0": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.jiaowuxitong.service",
"order": "102",
"name": "服务发现",
"order": "904",
"time": "2024-08-06 18:36:54.304"
}
},
"bc62c9387327ce07d30e35e2f2b564e2": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/ios-photos.png",
"index": "web.team.jiaowuxitong.photo",
"name": "在线相册",
"order": "96",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:10.005"
}
},
"c73251765fb5286cea9c8ceefb74530c": {
"meta": {
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
"index": "web.team.jiaowuxitong.event",
"order": "93",
"role": "creator,teacher",
"name": "事件流",
"order": "504",
"role": "teacher",
"time": "2024-08-04 22:46:59.068"
}
},
"ce3cb04de8a07c7968c20a0f160f7802": {
"meta": {
"icons": "https://img.icons8.com/officel/80/commercial.png",
"index": "web.team.jiaowuxitong.notice",
"name": "通知公告",
"order": "505",
"role": "teacher",
"time": "2024-09-10 13:43:43.668"
}
},
"dd4a880b9048d00d8d0f8b55562a1491": {
"meta": {
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
"index": "web.team.jiaowuxitong.message",
"order": "100",
"name": "消息待办",
"order": "902",
"time": "2024-08-20 17:15:51.825"
}
},
"e99a6e230f804f8216e5a85898991859": {
"meta": {
"icons": "https://img.icons8.com/officel/80/passport.png",
"index": "web.team.jiaowuxitong.credit",
"name": "用户名片",
"order": "101",
"time": "2024-09-30 09:55:22.541"
}
},
"f17ffa67fa176278072580eefc7e9016": {
"meta": {
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
"index": "web.team.jiaowuxitong.recent",
"order": "101",
"name": "最近访问",
"order": "903",
"time": "2024-08-20 17:15:51.804"
}
},
"f4c3e44e06eb233463bc38c941304a32": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-store.png",
"index": "web.team.jiaowuxitong.goodslist",
"name": "在线商城",
"order": "91",
"role": "teacher,student,parent",
"time": "2024-12-06 06:04:57.618"
}
}
}

View File

@ -1,75 +1,200 @@
{
"08f66b55e6a2219682a786a354e0d073": {
"meta": {
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
"index": "web.team.kaoshixitong.recent",
"order": "101",
"name": "最近访问",
"order": "903",
"time": "2024-08-28 10:02:38.299"
}
},
"0fda94e2f560bbb9cd38fa8bb60ce3f0": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/documents.png",
"index": "web.team.kaoshixitong.document",
"name": "在线文档",
"order": "94",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:09.926"
}
},
"196140f9e8da84f2e282ef27484c167b": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/ios-photos.png",
"index": "web.team.kaoshixitong.photo",
"name": "在线相册",
"order": "96",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:09.838"
}
},
"2c9ef2938b15e082f6adbbde61607e34": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/agreement.png",
"index": "web.team.kaoshixitong.contract",
"name": "在线合同",
"order": "95",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:09.922"
}
},
"5032201844f165df1081070232eb79a7": {
"meta": {
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
"index": "web.team.kaoshixitong.setting",
"name": "服务配置",
"order": "103",
"role": "teacher,student,parent",
"time": "2024-09-21 11:54:00.543"
}
},
"57efe30a4d4c35dd54c05f7d9415e3af": {
"meta": {
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
"index": "web.team.kaoshixitong.member",
"order": "80",
"name": "组织成员",
"order": "102",
"role": "teacher,student,parent",
"time": "2024-08-28 10:02:38.273"
}
},
"5f655544d32320bf45431d33a450e34f": {
"meta": {
"icons": "https://img.icons8.com/officel/80/passport.png",
"index": "web.team.kaoshixitong.credit",
"name": "用户名片",
"order": "101",
"time": "2024-09-30 09:55:22.535"
}
},
"5fc02e6d3bcc0f31a750a38c169fbe08": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.kaoshixitong.service",
"order": "102",
"name": "服务发现",
"order": "904",
"time": "2024-08-28 10:02:38.301"
}
},
"6791e4d7e2ee439b8beea5d1c147f251": {
"meta": {
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
"index": "web.team.kaoshixitong.event",
"order": "93",
"role": "creator,teacher",
"name": "事件流",
"order": "504",
"role": "teacher",
"time": "2024-08-28 10:02:38.269"
}
},
"6baca7ca989ceb8127b38d5c446a2f6b": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-store.png",
"index": "web.team.kaoshixitong.goodslist",
"name": "在线商城",
"order": "91",
"role": "teacher,student,parent",
"time": "2024-12-06 06:04:57.578"
}
},
"72eb3fc89623556cfa348503328811e1": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.kaoshixitong.question",
"name": "试题",
"order": "1",
"time": "2024-08-30 09:39:07.245"
}
},
"ab6b14b549c110a29e13f8ea06e75b08": {
"meta": {
"icons": "https://img.icons8.com/officel/80/qr-code.png",
"index": "web.team.kaoshixitong.qrcode",
"order": "90",
"role": "creator,teacher",
"name": "场景码",
"order": "501",
"role": "teacher",
"time": "2024-08-28 10:02:38.286"
}
},
"c1439837a1d97648477aed1e114c6864": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/video-conference.png",
"index": "web.team.kaoshixitong.meeting",
"name": "在线会议",
"order": "93",
"role": "teacher,student,parent",
"time": "2024-11-22 14:32:17.282"
}
},
"cdf2c57cac0587c7e60a6c01a4c90cb6": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-payment-with-a-credit-card.png",
"index": "web.team.kaoshixitong.paymentlist",
"name": "在线支付",
"order": "92",
"role": "teacher,student,parent",
"time": "2024-11-23 15:03:15.885"
}
},
"d730c38222e45cbdce4729e8460803f2": {
"meta": {
"icons": "https://img.icons8.com/officel/80/edit-property.png",
"index": "web.team.kaoshixitong.apply",
"order": "91",
"role": "creator,teacher",
"name": "权限申请",
"order": "502",
"role": "teacher",
"time": "2024-08-28 10:02:38.289"
}
},
"e40fff64cf054838cf918d2eeae1cae7": {
"meta": {
"icons": "https://img.icons8.com/officel/80/customer-support.png",
"index": "web.team.kaoshixitong.support",
"order": "103",
"name": "客服支持",
"order": "905",
"time": "2024-08-28 10:02:38.291"
}
},
"e9a3399091dcb1200621462d2c488504": {
"meta": {
"icons": "https://img.icons8.com/officel/80/commercial.png",
"index": "web.team.kaoshixitong.notice",
"name": "通知公告",
"order": "505",
"role": "teacher",
"time": "2024-09-10 13:43:43.657"
}
},
"eebb336a8af77dee7e8dfd5efb25834e": {
"meta": {
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
"index": "web.team.kaoshixitong.allow",
"order": "92",
"role": "creator,teacher",
"name": "权限审批",
"order": "503",
"role": "teacher",
"time": "2024-08-28 10:02:38.271"
}
},
"ef743bae4606b1629bc7738a58d46d2e": {
"meta": {
"icons": "https://img.icons8.com/officel/80/square.png",
"index": "web.team.kaoshixitong.market",
"name": "人民广场",
"order": "901",
"time": "2024-09-10 13:43:43.649"
}
},
"efa7c9dc8edbb8935ef079156d4f9071": {
"meta": {
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
"index": "web.team.kaoshixitong.message",
"order": "100",
"name": "消息待办",
"order": "902",
"time": "2024-08-28 10:02:38.286"
}
}

View File

@ -1,67 +1,233 @@
{
"015b4784c16b63975824abbb3ff4ec9f": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/ios-photos.png",
"index": "web.team.renzhengshouquan.photo",
"name": "在线相册",
"order": "95",
"role": "leader,worker",
"time": "2024-11-26 12:33:09.829"
}
},
"0d7f068029dbf7f9f0d307070cc3a79b": {
"meta": {
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
"index": "web.team.renzhengshouquan.allow",
"name": "权限审批",
"order": "93",
"role": "creator",
"time": "2024-08-31 11:18:49.742"
}
},
"1c4fee90e6a7bdb8ab6f1ccb23f3273f": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/documents.png",
"index": "web.team.renzhengshouquan.document",
"name": "在线文档",
"order": "93",
"role": "leader,worker",
"time": "2024-11-26 12:33:09.830"
}
},
"1d15ae175ffe375630da1466417d2d5d": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/agreement.png",
"index": "web.team.renzhengshouquan.contract",
"name": "在线合同",
"order": "94",
"role": "leader,worker",
"time": "2024-11-26 12:33:09.821"
}
},
"2a065e0a48b909ae79fbb3dd750e1eb5": {
"meta": {
"icons": "https://img.icons8.com/officel/80/id-verified.png",
"index": "web.team.renzhengshouquan.auth",
"name": "认证授权",
"order": "2",
"time": "2024-09-03 01:31:38.893"
}
},
"456d3a031a140d43f54690ea7203628d": {
"meta": {
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
"index": "web.team.renzhengshouquan.event",
"name": "事件流",
"order": "91",
"role": "creator",
"time": "2024-08-31 11:18:49.742"
}
},
"4cac9ca99ccb8db395f703434647f5f3": {
"meta": {
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
"index": "web.team.renzhengshouquan.setting",
"name": "服务配置",
"order": "102",
"role": "leader,worker,server",
"time": "2024-09-21 11:54:00.453"
}
},
"52fb3a7d85d879b638cc246850b236f6": {
"meta": {
"icons": "https://img.icons8.com/officel/80/qr-code.png",
"index": "web.team.renzhengshouquan.qrcode",
"name": "场景码",
"order": "90",
"role": "creator",
"time": "2024-08-31 11:18:49.729"
}
},
"6806548eeea33ee2118c520a60bc7e4b": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-store.png",
"index": "web.team.renzhengshouquan.goodslist",
"name": "在线商城",
"order": "91",
"role": "leader,worker",
"time": "2024-12-06 06:04:57.464"
}
},
"732373815fa26c85ad04dd57ca57db39": {
"meta": {
"icons": "https://img.icons8.com/officel/80/edit-property.png",
"index": "web.team.renzhengshouquan.apply",
"name": "权限申请",
"order": "92",
"role": "creator",
"time": "2024-08-31 11:18:49.724"
}
},
"79283d05c3eb6007da9adcdc9751f68d": {
"meta": {
"icons": "https://img.icons8.com/officel/80/structured-document-data.png",
"index": "web.team.renzhengshouquan.admin",
"name": "管理后台",
"order": "4",
"role": "leader,worker",
"time": "2024-11-22 14:32:17.202"
}
},
"7a3a6cdf6eebd575950694ee28a8452e": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-payment-with-a-credit-card.png",
"index": "web.team.renzhengshouquan.paymentlist",
"name": "在线支付",
"order": "92",
"role": "leader,worker",
"time": "2024-11-23 15:03:15.862"
}
},
"83f5f7ed321eeee6827add7a03947102": {
"meta": {
"icons": "https://img.icons8.com/officel/80/passport.png",
"index": "web.team.renzhengshouquan.profile",
"name": "用户名片",
"order": "3",
"time": "2024-09-24 09:16:42.564"
}
},
"89cf6f6cc69c13b7d541a0d61eae66e1": {
"meta": {
"icons": "https://img.icons8.com/officel/80/identification-documents--v2.png",
"index": "web.team.renzhengshouquan.cert",
"name": "上传证件",
"order": "1",
"time": "2024-09-03 01:31:38.901"
}
},
"9e52a4f0a1a8d35c14b40d14b0d9cff1": {
"meta": {
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
"index": "web.team.renzhengshouquan.message",
"name": "消息待办",
"order": "100",
"time": "2024-08-31 11:18:49.742"
}
},
"a040dfa713a6fa9533b3184244dbbb74": {
"meta": {
"icons": "https://img.icons8.com/officel/80/customer-support.png",
"index": "web.team.renzhengshouquan.support",
"name": "客服支持",
"order": "103",
"time": "2024-08-31 11:18:49.721"
}
},
"b0a322b1aeb3772b09477be3e47c8e89": {
"meta": {
"index": "web.team.renzhengshouquan.domain",
"time": "2024-09-10 13:43:43.638"
}
},
"bfecb55b11fe68186270fe1b4b8de8cf": {
"meta": {
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
"index": "web.team.renzhengshouquan.member",
"name": "组织成员",
"order": "80",
"role": "leader,worker,server",
"time": "2024-08-31 11:18:49.730"
}
},
"c9eeca8509b5b055149a5593312436cd": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/video-conference.png",
"index": "web.team.renzhengshouquan.meeting",
"name": "在线会议",
"order": "91",
"role": "leader,worker",
"time": "2024-11-22 14:32:17.214"
}
},
"d9f55b517f4b2579693523ed3b5bd088": {
"meta": {
"icons": "https://img.icons8.com/officel/80/square.png",
"index": "web.team.renzhengshouquan.market",
"name": "人民广场",
"order": "100",
"time": "2024-09-10 13:43:43.631"
}
},
"e038450591f3c8e7babc0c21b1c6fa6d": {
"meta": {
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
"index": "web.team.renzhengshouquan.recent",
"name": "最近访问",
"order": "101",
"time": "2024-08-31 11:18:49.720"
}
},
"ecfb11fad5b4bdf21384e2e1ff571598": {
"meta": {
"icons": "https://img.icons8.com/officel/80/commercial.png",
"index": "web.team.renzhengshouquan.notice",
"name": "通知公告",
"order": "94",
"role": "leader",
"time": "2024-09-10 13:43:43.625"
}
},
"f669e15e1c1c9da2bd3ea0c58abc0bd3": {
"meta": {
"icons": "https://img.icons8.com/officel/80/passport.png",
"index": "web.team.renzhengshouquan.credit",
"name": "用户名片",
"order": "102",
"time": "2024-09-30 09:55:22.466"
}
},
"f6b093d122ff3cec363b00093e0a6f19": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.renzhengshouquan.service",
"name": "服务发现",
"order": "102",
"time": "2024-08-31 11:18:49.744"
}

View File

@ -1,15 +1,30 @@
{
"2d7a4642b57423b336cc23d053eb347b": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.zaixianketang.lesson",
"order": "2",
"name": "章节",
"order": "1",
"time": "2024-09-01 22:47:28.665"
}
},
"495e018377ed5e64b3e263c5a3267838": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-payment-with-a-credit-card.png",
"index": "web.team.zaixianketang.paymentlist",
"name": "在线支付",
"order": "92",
"role": "teacher,student,parent",
"time": "2024-11-23 15:03:15.856"
}
},
"4ff09e3f86605fdc9050681f72470d33": {
"meta": {
"icons": "https://img.icons8.com/officel/80/test-partial-passed.png",
"index": "web.team.zaixianketang.message",
"order": "100",
"name": "消息待办",
"order": "902",
"time": "2024-08-28 10:05:04.044"
}
},
@ -20,63 +35,173 @@
"time": "2024-09-01 22:47:28.669"
}
},
"5f5d90600e0e9b6fda3b93cc20646ac0": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/video-conference.png",
"index": "web.team.zaixianketang.meeting",
"name": "在线会议",
"order": "93",
"role": "teacher,student,parent",
"time": "2024-11-22 14:32:17.131"
}
},
"6af91cbf33dbd478e24c3db663e88dfd": {
"meta": {
"icons": "https://img.icons8.com/officel/80/edit-property.png",
"index": "web.team.zaixianketang.apply",
"order": "91",
"role": "creator,teacher",
"name": "权限申请",
"order": "502",
"role": "teacher",
"time": "2024-08-28 10:05:04.026"
}
},
"7f48c17bb72a6f8d4ec3124adea5b614": {
"meta": {
"icons": "https://img.icons8.com/officel/80/multiple-smartphones.png",
"index": "web.team.zaixianketang.recent",
"order": "101",
"name": "最近访问",
"order": "903",
"time": "2024-08-28 10:05:04.062"
}
},
"84ea0f117640271b4ad698eda385032e": {
"meta": {
"icons": "https://img.icons8.com/officel/80/commercial.png",
"index": "web.team.zaixianketang.notice",
"name": "通知公告",
"order": "505",
"role": "teacher",
"time": "2024-09-10 13:43:43.617"
}
},
"96a41adc804b1ab7c4a434a31559f11a": {
"meta": {
"icons": "https://img.icons8.com/officel/80/property-with-timer.png",
"index": "web.team.zaixianketang.event",
"order": "93",
"role": "creator,teacher",
"name": "事件流",
"order": "504",
"role": "teacher",
"time": "2024-08-28 10:05:04.038"
}
},
"a9fc4a9113824e792136b77fabacc27f": {
"meta": {
"icons": "https://img.icons8.com/officel/80/square.png",
"index": "web.team.zaixianketang.market",
"name": "人民广场",
"order": "901",
"time": "2024-09-10 13:43:43.611"
}
},
"ad52eb079362f84a80d1bd5c7d280e2c": {
"meta": {
"icons": "https://img.icons8.com/officel/80/qr-code.png",
"index": "web.team.zaixianketang.qrcode",
"order": "90",
"role": "creator,teacher",
"name": "场景码",
"order": "501",
"role": "teacher",
"time": "2024-08-28 10:05:04.032"
}
},
"b38dbac90b9a2df29c66b476f77af5d4": {
"meta": {
"icons": "https://img.icons8.com/officel/80/receipt-approved.png",
"index": "web.team.zaixianketang.allow",
"order": "92",
"role": "creator,teacher",
"name": "权限审批",
"order": "503",
"role": "teacher",
"time": "2024-08-28 10:05:04.060"
}
},
"bf50aebe8e103b7e627bc2222a4a7a43": {
"meta": {
"icons": "https://img.icons8.com/officel/80/customer-support.png",
"index": "web.team.zaixianketang.support",
"order": "103",
"name": "客服支持",
"order": "905",
"time": "2024-08-28 10:05:04.048"
}
},
"c082a4be5e1bfc0486ea1ca4affb5ff8": {
"meta": {
"icons": "https://img.icons8.com/officel/80/activity-grid.png",
"index": "web.team.zaixianketang.service",
"order": "102",
"name": "服务发现",
"order": "904",
"time": "2024-08-28 10:05:04.057"
}
},
"c33b8c57fe151d427b07a7abf2467858": {
"meta": {
"icons": "https://img.icons8.com/officel/80/passport.png",
"index": "web.team.zaixianketang.credit",
"name": "用户名片",
"order": "101",
"time": "2024-09-30 09:55:22.445"
}
},
"d98f12c7f4ba013725dae268e146df20": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/documents.png",
"index": "web.team.zaixianketang.document",
"name": "在线文档",
"order": "94",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:09.816"
}
},
"dac365dbc25d4e52d6fac4430eff9a8f": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/online-store.png",
"index": "web.team.zaixianketang.goodslist",
"name": "在线商城",
"order": "91",
"role": "teacher,student,parent",
"time": "2024-12-06 06:04:57.346"
}
},
"e15b4e54765cfa21aa8352f58a1a69c9": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/50/ios-photos.png",
"index": "web.team.zaixianketang.photo",
"name": "在线相册",
"order": "96",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:09.812"
}
},
"e734827be8647da9ea3371fec37274ae": {
"meta": {
"icons": "https://img.icons8.com/officel/80/settings--v1.png",
"index": "web.team.zaixianketang.setting",
"name": "服务配置",
"order": "103",
"role": "teacher,student,parent",
"time": "2024-09-21 11:54:00.444"
}
},
"e96070f8e2cd3c83d9176f913b37f137": {
"meta": {
"auth": "issued",
"icons": "https://img.icons8.com/officel/80/agreement.png",
"index": "web.team.zaixianketang.contract",
"name": "在线合同",
"order": "95",
"role": "teacher,student,parent",
"time": "2024-11-26 12:33:09.735"
}
},
"fcbe63f1af465ccde7cde55736373714": {
"meta": {
"icons": "https://img.icons8.com/officel/80/person-at-home.png",
"index": "web.team.zaixianketang.member",
"order": "80",
"name": "组织成员",
"order": "102",
"role": "teacher,student,parent",
"time": "2024-08-28 10:05:04.029"
}
}