Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
言程序plus
dr_py
提交
4770d5df
dr_py
项目概览
言程序plus
/
dr_py
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
dr_py
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4770d5df
编写于
10月 24, 2022
作者:
H
hjdhnx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
升级至 v3.9.17
上级
cad9b936
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
238 addition
and
39 deletion
+238
-39
base/rules.db
base/rules.db
+0
-0
controllers/admin.py
controllers/admin.py
+22
-0
controllers/home.py
controllers/home.py
+36
-1
controllers/layui.py
controllers/layui.py
+6
-2
controllers/service.py
controllers/service.py
+16
-0
controllers/vod.py
controllers/vod.py
+42
-19
js/version.txt
js/version.txt
+1
-1
readme.md
readme.md
+4
-0
templates/layui_list.html
templates/layui_list.html
+111
-16
未找到文件。
base/rules.db
浏览文件 @
4770d5df
无法预览此类型文件
controllers/admin.py
浏览文件 @
4770d5df
...
@@ -145,6 +145,28 @@ def admin_rule_state(state=0): # 管理员修改规则状态
...
@@ -145,6 +145,28 @@ def admin_rule_state(state=0): # 管理员修改规则状态
return
R
.
success
(
f
'修改成功,服务器反馈信息为:
{
success_list
}
'
)
return
R
.
success
(
f
'修改成功,服务器反馈信息为:
{
success_list
}
'
)
@
admin
.
route
(
'/rule_order/<int:order>'
,
methods
=
[
'POST'
])
def
admin_rule_order
(
order
=
0
):
# 管理员修改规则顺序
if
not
verfy_token
():
return
R
.
error
(
'请登录后再试'
)
names
=
getParmas
(
'names'
)
if
not
names
:
return
R
.
success
(
f
'修改失败,没有传递names参数'
)
rule_list
=
names
.
split
(
','
)
rules
=
rules_service
()
# print(rules.query_all())
# print(rules.getState(rule_list[0]))
# print(rule_list)
success_list
=
[]
for
rule
in
rule_list
:
try
:
res_id
=
rules
.
setOrder
(
rule
,
order
)
success_list
.
append
(
f
'
{
rule
}
:
{
res_id
}
'
)
except
:
success_list
.
append
(
rule
)
return
R
.
success
(
f
'修改成功,服务器反馈信息为:
{
success_list
}
'
)
@
admin
.
route
(
'/force_update'
)
@
admin
.
route
(
'/force_update'
)
def
admin_force_update
():
def
admin_force_update
():
if
not
verfy_token
():
if
not
verfy_token
():
...
...
controllers/home.py
浏览文件 @
4770d5df
...
@@ -210,6 +210,7 @@ def merged_hide(merged_config):
...
@@ -210,6 +210,7 @@ def merged_hide(merged_config):
@
home
.
route
(
'/config/<int:mode>'
)
@
home
.
route
(
'/config/<int:mode>'
)
def
config_render
(
mode
):
def
config_render
(
mode
):
# print(dict(app.config))
# print(dict(app.config))
tt
=
time
()
UA
=
request
.
headers
[
'User-Agent'
]
UA
=
request
.
headers
[
'User-Agent'
]
ISTVB
=
'okhttp/3'
in
UA
ISTVB
=
'okhttp/3'
in
UA
logger
.
info
(
UA
)
logger
.
info
(
UA
)
...
@@ -244,15 +245,46 @@ def config_render(mode):
...
@@ -244,15 +245,46 @@ def config_render(mode):
html
=
render_template
(
'config.txt'
,
UA
=
UA
,
xr_mode
=
xr_mode
,
ISTVB
=
ISTVB
,
pys
=
pys
,
rules
=
rules
,
host
=
host
,
mode
=
mode
,
js_mode
=
js_mode
,
jxs
=
jxs
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
live_url
,
config
=
new_conf
)
html
=
render_template
(
'config.txt'
,
UA
=
UA
,
xr_mode
=
xr_mode
,
ISTVB
=
ISTVB
,
pys
=
pys
,
rules
=
rules
,
host
=
host
,
mode
=
mode
,
js_mode
=
js_mode
,
jxs
=
jxs
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
live_url
,
config
=
new_conf
)
merged_config
=
custom_merge
(
parseText
(
html
),
customConfig
)
merged_config
=
custom_merge
(
parseText
(
html
),
customConfig
)
# print(merged_config['sites'])
# print(merged_config['sites'])
merged_hide
(
merged_config
)
merged_hide
(
merged_config
)
# response = make_response(html)
# response = make_response(html)
# print(len(merged_config['sites']))
# print(len(merged_config['sites']))
# print(merged_config['sites'])
merged_config
[
'sites'
]
=
sort_sites_by_order
(
merged_config
[
'sites'
],
js_mode
)
response
=
make_response
(
json
.
dumps
(
merged_config
,
ensure_ascii
=
False
,
indent
=
1
))
response
=
make_response
(
json
.
dumps
(
merged_config
,
ensure_ascii
=
False
,
indent
=
1
))
# response = make_response(str(merged_config))
# response = make_response(str(merged_config))
response
.
headers
[
'Content-Type'
]
=
'application/json; charset=utf-8'
response
.
headers
[
'Content-Type'
]
=
'application/json; charset=utf-8'
logger
.
info
(
f
'自动生成动态配置共计耗时:
{
get_interval
(
tt
)
}
毫秒'
)
return
response
return
response
def
sort_sites_by_order
(
sites
,
js_mode
=
0
):
rules
=
rules_service
()
rule_list
=
rules
.
query_all
()
# print(rule_list)
rule_names
=
list
(
map
(
lambda
x
:
x
[
'name'
],
rule_list
))
# print(rule_names)
# print(sites)
for
i
in
range
(
len
(
sites
)):
# sites[i]['id'] = i+1
site_name
=
sites
[
i
][
'api'
].
split
(
'rule='
)[
1
].
split
(
'&'
)[
0
]
if
'rule='
in
sites
[
i
][
'api'
]
else
sites
[
i
][
'key'
]
if
js_mode
and
str
(
site_name
).
startswith
(
'dr'
):
site_name
=
site_name
.
replace
(
'dr_'
,
''
)
# print(site_name)
if
site_name
in
rule_names
:
site_rule
=
rule_list
[
rule_names
.
index
(
site_name
)]
sites
[
i
][
'state'
]
=
1
if
site_rule
[
'state'
]
is
None
else
site_rule
[
'state'
]
sites
[
i
][
'order'
]
=
0
if
site_rule
[
'order'
]
is
None
else
site_rule
[
'order'
]
else
:
sites
[
i
][
'state'
]
=
1
sites
[
i
][
'order'
]
=
0
# sites[i]['site_name'] = site_name
# print(sites)
sites
.
sort
(
key
=
lambda
x
:
x
[
'order'
],
reverse
=
False
)
# print(sites)
for
site
in
sites
:
del
site
[
'state'
]
del
site
[
'order'
]
return
sites
@
home
.
route
(
'/configs'
)
@
home
.
route
(
'/configs'
)
def
config_gen
():
def
config_gen
():
# 生成文件
# 生成文件
...
@@ -285,12 +317,14 @@ def config_gen():
...
@@ -285,12 +317,14 @@ def config_gen():
customConfig
=
getCustonDict
(
host0
,
ali_token
)
customConfig
=
getCustonDict
(
host0
,
ali_token
)
set_dict
=
custom_merge
(
parseText
(
set_local
),
customConfig
)
set_dict
=
custom_merge
(
parseText
(
set_local
),
customConfig
)
merged_hide
(
set_dict
)
merged_hide
(
set_dict
)
set_dict
[
'sites'
]
=
sort_sites_by_order
(
set_dict
[
'sites'
],
js_mode
)
# set_dict = json.loads(set_local)
# set_dict = json.loads(set_local)
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
with
open
(
'txt/pycms1.json'
,
'w+'
,
encoding
=
'utf-8'
)
as
f
:
with
open
(
'txt/pycms1.json'
,
'w+'
,
encoding
=
'utf-8'
)
as
f
:
customConfig
=
getCustonDict
(
host1
,
ali_token
)
customConfig
=
getCustonDict
(
host1
,
ali_token
)
set_dict
=
custom_merge
(
parseText
(
set_area
),
customConfig
)
set_dict
=
custom_merge
(
parseText
(
set_area
),
customConfig
)
merged_hide
(
set_dict
)
merged_hide
(
set_dict
)
set_dict
[
'sites'
]
=
sort_sites_by_order
(
set_dict
[
'sites'
],
js_mode
)
# set_dict = json.loads(set_area)
# set_dict = json.loads(set_area)
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
...
@@ -298,6 +332,7 @@ def config_gen():
...
@@ -298,6 +332,7 @@ def config_gen():
customConfig
=
getCustonDict
(
host2
,
ali_token
)
customConfig
=
getCustonDict
(
host2
,
ali_token
)
set_dict
=
custom_merge
(
parseText
(
set_online
),
customConfig
)
set_dict
=
custom_merge
(
parseText
(
set_online
),
customConfig
)
merged_hide
(
set_dict
)
merged_hide
(
set_dict
)
set_dict
[
'sites'
]
=
sort_sites_by_order
(
set_dict
[
'sites'
],
js_mode
)
# set_dict = json.loads(set_online)
# set_dict = json.loads(set_online)
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
f
.
write
(
json
.
dumps
(
set_dict
,
ensure_ascii
=
False
,
indent
=
4
))
files
=
[
os
.
path
.
abspath
(
rf
'txt\pycms
{
i
}
.json'
)
for
i
in
range
(
3
)]
files
=
[
os
.
path
.
abspath
(
rf
'txt\pycms
{
i
}
.json'
)
for
i
in
range
(
3
)]
...
...
controllers/layui.py
浏览文件 @
4770d5df
...
@@ -44,7 +44,9 @@ def layui_rule_list():
...
@@ -44,7 +44,9 @@ def layui_rule_list():
# print(pys)
# print(pys)
alists
=
[]
alists
=
[]
live_url
=
[]
live_url
=
[]
html
=
render_template
(
'config.txt'
,
pys
=
pys
,
rules
=
getRules
(
'js'
),
host
=
host
,
mode
=
2
,
jxs
=
jxs
,
alists
=
alists
,
local_rules
=
getRules
(
'js'
)
# print(local_rules)
html
=
render_template
(
'config.txt'
,
pys
=
pys
,
rules
=
local_rules
,
host
=
host
,
mode
=
2
,
jxs
=
jxs
,
alists
=
alists
,
alists_str
=
'[]'
,
live_url
=
live_url
,
config
=
new_conf
)
alists_str
=
'[]'
,
live_url
=
live_url
,
config
=
new_conf
)
merged_config
=
custom_merge
(
parseText
(
html
),
customConfig
)
merged_config
=
custom_merge
(
parseText
(
html
),
customConfig
)
sites
=
merged_config
[
'sites'
]
sites
=
merged_config
[
'sites'
]
...
@@ -52,7 +54,8 @@ def layui_rule_list():
...
@@ -52,7 +54,8 @@ def layui_rule_list():
rule_list
=
rules
.
query_all
()
rule_list
=
rules
.
query_all
()
rule_names
=
list
(
map
(
lambda
x
:
x
[
'name'
],
rule_list
))
rule_names
=
list
(
map
(
lambda
x
:
x
[
'name'
],
rule_list
))
# print(rule_list)
# print(rule_list)
# print(rule_names)
print
(
rule_names
)
# print(sites)
for
i
in
range
(
len
(
sites
)):
for
i
in
range
(
len
(
sites
)):
sites
[
i
][
'id'
]
=
i
+
1
sites
[
i
][
'id'
]
=
i
+
1
site_name
=
sites
[
i
][
'api'
].
split
(
'rule='
)[
1
].
split
(
'&'
)[
0
]
if
'rule='
in
sites
[
i
][
'api'
]
else
sites
[
i
][
'key'
]
site_name
=
sites
[
i
][
'api'
].
split
(
'rule='
)[
1
].
split
(
'&'
)[
0
]
if
'rule='
in
sites
[
i
][
'api'
]
else
sites
[
i
][
'key'
]
...
@@ -66,6 +69,7 @@ def layui_rule_list():
...
@@ -66,6 +69,7 @@ def layui_rule_list():
sites
[
i
][
'order'
]
=
0
sites
[
i
][
'order'
]
=
0
sites
[
i
][
'site_name'
]
=
site_name
sites
[
i
][
'site_name'
]
=
site_name
sites
.
sort
(
key
=
lambda
x
:
x
[
'order'
],
reverse
=
False
)
new_sites
=
sites
[(
page
-
1
)
*
limit
:
page
*
limit
]
new_sites
=
sites
[(
page
-
1
)
*
limit
:
page
*
limit
]
# print(new_sites)
# print(new_sites)
return
layuiBack
(
'获取成功'
,
new_sites
,
count
=
len
(
sites
))
return
layuiBack
(
'获取成功'
,
new_sites
,
count
=
len
(
sites
))
controllers/service.py
浏览文件 @
4770d5df
...
@@ -109,6 +109,22 @@ class rules_service(object):
...
@@ -109,6 +109,22 @@ class rules_service(object):
print
(
f
'发生了错误:
{
e
}
'
)
print
(
f
'发生了错误:
{
e
}
'
)
return
None
return
None
def
setOrder
(
self
,
key
,
order
=
0
):
res
=
RuleClass
.
query
.
filter
(
RuleClass
.
name
==
key
).
first
()
if
res
:
res
.
order
=
order
db
.
session
.
add
(
res
)
else
:
res
=
RuleClass
(
name
=
key
,
order
=
order
)
db
.
session
.
add
(
res
)
db
.
session
.
flush
()
# 获取id
try
:
db
.
session
.
commit
()
return
res
.
id
except
Exception
as
e
:
print
(
f
'发生了错误:
{
e
}
'
)
return
None
@
staticmethod
@
staticmethod
def
getHideRules
():
def
getHideRules
():
res
=
RuleClass
.
query
.
filter
(
RuleClass
.
state
==
0
).
all
()
res
=
RuleClass
.
query
.
filter
(
RuleClass
.
state
==
0
).
all
()
...
...
controllers/vod.py
浏览文件 @
4770d5df
...
@@ -18,7 +18,7 @@ from base.database import db
...
@@ -18,7 +18,7 @@ from base.database import db
from
models.ruleclass
import
RuleClass
from
models.ruleclass
import
RuleClass
from
models.playparse
import
PlayParse
from
models.playparse
import
PlayParse
from
js.rules
import
getRules
from
js.rules
import
getRules
from
controllers.service
import
storage_service
from
controllers.service
import
storage_service
,
rules_service
from
concurrent.futures
import
ThreadPoolExecutor
,
as_completed
,
thread
# 引入线程池
from
concurrent.futures
import
ThreadPoolExecutor
,
as_completed
,
thread
# 引入线程池
from
quickjs
import
Function
,
Context
from
quickjs
import
Function
,
Context
import
ujson
import
ujson
...
@@ -116,6 +116,25 @@ def multi_search2(wd):
...
@@ -116,6 +116,25 @@ def multi_search2(wd):
return
jsonify
(
result
)
return
jsonify
(
result
)
def
merged_hide
(
merged_rules
):
t1
=
time
()
store_rule
=
rules_service
()
hide_rules
=
store_rule
.
getHideRules
()
hide_rule_names
=
list
(
map
(
lambda
x
:
x
[
'name'
],
hide_rules
))
# print('隐藏:',hide_rule_names)
all_cnt
=
len
(
merged_rules
)
def
filter_show
(
x
):
# name = x['api'].split('rule=')[1].split('&')[0] if 'rule=' in x['api'] else x['key'].replace('dr_','')
name
=
x
# print(name)
return
name
not
in
hide_rule_names
merged_rules
=
list
(
filter
(
filter_show
,
merged_rules
))
# print('隐藏后:',merged_rules)
logger
.
info
(
f
'数据库筛选隐藏规则耗时
{
get_interval
(
t1
)
}
毫秒,共计
{
all_cnt
}
条规则,隐藏后可渲染
{
len
(
merged_rules
)
}
条规则'
)
return
merged_rules
def
multi_search
(
wd
):
def
multi_search
(
wd
):
lsg
=
storage_service
()
lsg
=
storage_service
()
t1
=
time
()
t1
=
time
()
...
@@ -128,31 +147,35 @@ def multi_search(wd):
...
@@ -128,31 +147,35 @@ def multi_search(wd):
rules_exclude
=
[
'drpy'
]
rules_exclude
=
[
'drpy'
]
new_rules
=
list
(
filter
(
lambda
x
:
x
.
get
(
'searchable'
,
0
)
and
x
.
get
(
'name'
,
''
)
not
in
rules_exclude
,
rules
))
new_rules
=
list
(
filter
(
lambda
x
:
x
.
get
(
'searchable'
,
0
)
and
x
.
get
(
'name'
,
''
)
not
in
rules_exclude
,
rules
))
search_sites
=
[
new_rule
[
'name'
]
for
new_rule
in
new_rules
]
search_sites
=
[
new_rule
[
'name'
]
for
new_rule
in
new_rules
]
# print(search_sites)
nosearch_sites
=
set
(
rule_names
)
^
set
(
search_sites
)
nosearch_sites
=
set
(
rule_names
)
^
set
(
search_sites
)
nosearch_sites
.
remove
(
'drpy'
)
nosearch_sites
.
remove
(
'drpy'
)
# print(nosearch_sites)
# print(nosearch_sites)
logger
.
info
(
f
'开始聚搜
{
wd
}
,共计
{
len
(
search_sites
)
}
个规则,聚搜超时
{
timeout
}
秒'
)
logger
.
info
(
f
'开始聚搜
{
wd
}
,共计
{
len
(
search_sites
)
}
个规则,聚搜超时
{
timeout
}
秒'
)
logger
.
info
(
f
'不支持聚搜的规则,共计
{
len
(
nosearch_sites
)
}
个规则:
{
","
.
join
(
nosearch_sites
)
}
'
)
logger
.
info
(
f
'不支持聚搜的规则,共计
{
len
(
nosearch_sites
)
}
个规则:
{
","
.
join
(
nosearch_sites
)
}
'
)
search_sites
=
merged_hide
(
search_sites
)
# print(search_sites)
# print(search_sites)
# search_sites = []
res
=
[]
res
=
[]
with
open
(
'js/模板.js'
,
encoding
=
'utf-8'
)
as
f
:
if
len
(
search_sites
)
>
0
:
before
=
f
.
read
().
split
(
'export'
)[
0
]
with
open
(
'js/模板.js'
,
encoding
=
'utf-8'
)
as
f
:
with
ThreadPoolExecutor
(
max_workers
=
len
(
search_sites
))
as
executor
:
before
=
f
.
read
().
split
(
'export'
)[
0
]
to_do
=
[]
with
ThreadPoolExecutor
(
max_workers
=
len
(
search_sites
))
as
executor
:
for
site
in
search_sites
:
to_do
=
[]
future
=
executor
.
submit
(
search_one
,
site
,
wd
,
before
)
for
site
in
search_sites
:
to_do
.
append
(
future
)
future
=
executor
.
submit
(
search_one
,
site
,
wd
,
before
)
try
:
to_do
.
append
(
future
)
for
future
in
as_completed
(
to_do
,
timeout
=
timeout
):
# 并发执行
try
:
ret
=
future
.
result
()
for
future
in
as_completed
(
to_do
,
timeout
=
timeout
):
# 并发执行
# print(ret)
ret
=
future
.
result
()
if
ret
and
isinstance
(
ret
,
dict
)
and
ret
.
get
(
'list'
):
# print(ret)
res
.
extend
(
ret
[
'list'
])
if
ret
and
isinstance
(
ret
,
dict
)
and
ret
.
get
(
'list'
):
except
Exception
as
e
:
res
.
extend
(
ret
[
'list'
])
print
(
f
'发生错误:
{
e
}
'
)
except
Exception
as
e
:
import
atexit
print
(
f
'发生错误:
{
e
}
'
)
atexit
.
unregister
(
thread
.
_python_exit
)
import
atexit
executor
.
shutdown
=
lambda
wait
:
None
atexit
.
unregister
(
thread
.
_python_exit
)
executor
.
shutdown
=
lambda
wait
:
None
logger
.
info
(
f
'drpy聚搜
{
len
(
search_sites
)
}
个源共计耗时
{
get_interval
(
t1
)
}
毫秒'
)
logger
.
info
(
f
'drpy聚搜
{
len
(
search_sites
)
}
个源共计耗时
{
get_interval
(
t1
)
}
毫秒'
)
return
jsonify
({
return
jsonify
({
"list"
:
res
"list"
:
res
...
...
js/version.txt
浏览文件 @
4770d5df
3.9.16beta1
3.9.17
\ No newline at end of file
\ No newline at end of file
readme.md
浏览文件 @
4770d5df
...
@@ -47,6 +47,10 @@
...
@@ -47,6 +47,10 @@
[
dockerfile教程
](
https://blog.csdn.net/qq_46158060/article/details/125718218
)
[
dockerfile教程
](
https://blog.csdn.net/qq_46158060/article/details/125718218
)
[
获取本地设备信息
](
https://blog.csdn.net/cui_yonghua/article/details/125508991
)
[
获取本地设备信息
](
https://blog.csdn.net/cui_yonghua/article/details/125508991
)
[
获取本地设备信息
](
https://m.jb51.net/article/140716.htm
)
[
获取本地设备信息
](
https://m.jb51.net/article/140716.htm
)
###### 2022/10/24
-
[X] v3.9.17
-
[X] drpy(道长) 服务端聚搜支持自动排除未来功能里隐藏的源
-
[X] 未来功能增加源置顶和置底功能 测试性增加排序功能(指定输入数字)
###### 2022/10/23
###### 2022/10/23
-
[X] 新增几个源 包括虎牙直播
-
[X] 新增几个源 包括虎牙直播
-
[X] 设置中心增加仙人模式开关(自动识别不同设备返回不同的drpy接口,关闭的话只会走drpy.min.js)
-
[X] 设置中心增加仙人模式开关(自动识别不同设备返回不同的drpy接口,关闭的话只会走drpy.min.js)
...
...
templates/layui_list.html
浏览文件 @
4770d5df
...
@@ -48,7 +48,8 @@
...
@@ -48,7 +48,8 @@
</script>
</script>
<script
type=
"text/html"
id=
"barDemo"
>
<script
type=
"text/html"
id=
"barDemo"
>
<
a
class
=
"
layui-btn layui-btn-xs
"
lay
-
event
=
"
edit
"
>
编辑
<
/a
>
<!--
<
a
class
=
"
layui-btn layui-btn-xs
"
lay
-
event
=
"
edit
"
>
编辑
<
/a>--
>
<
a
class
=
"
layui-btn layui-btn-xs
"
lay
-
event
=
"
set_top
"
>
置顶
<
/a
>
<
a
class
=
"
layui-btn layui-btn-danger layui-btn-xs
"
lay
-
event
=
"
del
"
>
隐藏
<
/a
>
<
a
class
=
"
layui-btn layui-btn-danger layui-btn-xs
"
lay
-
event
=
"
del
"
>
隐藏
<
/a
>
</script>
</script>
...
@@ -96,6 +97,34 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -96,6 +97,34 @@ layui.use(['table', 'dropdown'], function(){
});
});
}
}
function
setOrder
(
data
,
to_set_order
){
if
(
data
.
length
<
1
){
return
layer
.
msg
(
'
请至少选择一行
'
);
}
to_set_order
=
to_set_order
||
0
;
console
.
log
(
data
);
let
site_names
=
data
.
map
(
it
=>
it
.
site_name
);
let
site_names_str
=
site_names
.
join
(
'
,
'
);
console
.
log
(
'
准备将
'
+
site_names_str
+
'
的显示状态设置为:
'
+
to_set_order
);
let
params
=
{
"
names
"
:
site_names_str
};
console
.
log
(
params
);
$
.
post
(
"
/admin/rule_order/
"
+
to_set_order
,
params
,
function
(
data
,
status
){
console
.
log
(
data
);
if
(
data
.
code
===
200
){
// alert(data.msg);
// location.reload();
table
.
reload
(
'
test
'
,
{
// page: {
// curr: 3 //重新从第 1 页开始
// }
});
}
else
{
console
.
log
(
'
修改失败了...
'
);
return
false
}
});
}
// 创建渲染实例
// 创建渲染实例
table
.
render
({
table
.
render
({
elem
:
'
#test
'
elem
:
'
#test
'
...
@@ -111,11 +140,11 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -111,11 +140,11 @@ layui.use(['table', 'dropdown'], function(){
// ,totalRow: true // 开启合计行
// ,totalRow: true // 开启合计行
,
page
:
true
,
page
:
true
,
limit
:
12
,
limit
:
12
,
limits
:[
10
,
12
,
15
,
20
,
40
,
60
,
80
,
100
,
150
,
200
]
,
limits
:[
10
,
12
,
15
,
20
,
40
,
60
,
80
,
100
,
150
,
200
,
300
,
500
]
,
cols
:
[[
,
cols
:
[[
{
type
:
'
checkbox
'
,
fixed
:
'
left
'
}
{
type
:
'
checkbox
'
,
fixed
:
'
left
'
}
// ,{field: 'id', fixed: 'left',title: 'ID', width: 20, sort: true,totalRowText: '合计:'}
// ,{field: 'id', fixed: 'left',title: 'ID', width: 20, sort: true,totalRowText: '合计:'}
,{
field
:
'
id
'
,
title
:
'
ID
'
,
width
:
2
0
,
sort
:
true
}
,{
field
:
'
id
'
,
title
:
'
ID
'
,
width
:
6
0
,
sort
:
true
}
,{
field
:
'
site_name
'
,
title
:
'
存储名称
'
,
width
:
120
}
,{
field
:
'
site_name
'
,
title
:
'
存储名称
'
,
width
:
120
}
,
{
,
{
field
:
'
state
'
,
title
:
'
显示状态
'
,
minWidth
:
100
,
templet
:
function
(
res
)
{
field
:
'
state
'
,
title
:
'
显示状态
'
,
minWidth
:
100
,
templet
:
function
(
res
)
{
...
@@ -219,20 +248,34 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -219,20 +248,34 @@ layui.use(['table', 'dropdown'], function(){
elem
:
'
#moreTest
'
//可绑定在任意元素中,此处以上述按钮为例
elem
:
'
#moreTest
'
//可绑定在任意元素中,此处以上述按钮为例
,
data
:
[{
,
data
:
[{
id
:
'
show
'
,
id
:
'
show
'
,
title
:
'
显示
'
title
:
'
🟢
显示
'
},{
},{
id
:
'
hide
'
,
id
:
'
hide
'
,
title
:
'
隐藏
'
title
:
'
🔴隐藏
'
},{
},
id
:
'
add
'
,
{
title
:
'
添加
'
id
:
'
set_top
'
,
},{
title
:
'
⬆️置顶
'
,
id
:
'
update
'
,
},
title
:
'
编辑
'
{
},{
id
:
'
set_order_number
'
,
id
:
'
delete
'
,
title
:
'
↕️指定序号
'
,
title
:
'
删除
'
},
}]
{
id
:
'
set_bottom
'
,
title
:
'
⬇️置底
'
,
},
// {
// id: 'add',
// title: '添加'
// },{
// id: 'update',
// title: '编辑'
// },{
// id: 'delete',
// title: '删除'
// }
]
//菜单被点击的事件
//菜单被点击的事件
,
click
:
function
(
obj
){
,
click
:
function
(
obj
){
var
checkStatus
=
table
.
checkStatus
(
id
)
var
checkStatus
=
table
.
checkStatus
(
id
)
...
@@ -244,7 +287,35 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -244,7 +287,35 @@ layui.use(['table', 'dropdown'], function(){
break
;
break
;
case
'
hide
'
:
case
'
hide
'
:
// console.log(obj);
// console.log(obj);
setState
(
data
,
0
)
setState
(
data
,
0
);
break
;
case
'
set_top
'
:
// console.log(obj);
setOrder
(
data
,
0
);
break
;
case
'
set_order_number
'
:
layer
.
prompt
({
formType
:
0
,
value
:
''
,
title
:
'
请输入指定的排序序号,数字越小排名越靠前
'
,
btn
:
[
'
确定
'
,
'
取消
'
],
//按钮,
btnAlign
:
'
c
'
},
function
(
value
,
index
){
console
.
log
(
'
value:
'
+
value
);
var
reg
=
/^
[\d]
+$/
;
if
(
!
reg
.
test
(
value
)){
layer
.
msg
(
'
请输入有效数字!
'
,{
time
:
500
});
}
else
{
setOrder
(
data
,
Number
(
value
));
layer
.
close
(
index
);
layer
.
msg
(
'
请设置顺序为
'
+
value
,{
time
:
1000
});
}
});
// setOrder(data,0);
break
;
case
'
set_bottom
'
:
// console.log(obj);
setOrder
(
data
,
9999
)
break
;
break
;
case
'
add
'
:
case
'
add
'
:
layer
.
open
({
layer
.
open
({
...
@@ -360,6 +431,30 @@ layui.use(['table', 'dropdown'], function(){
...
@@ -360,6 +431,30 @@ layui.use(['table', 'dropdown'], function(){
area
:
[
'
80%
'
,
'
80%
'
],
area
:
[
'
80%
'
,
'
80%
'
],
content
:
'
<div style="padding: 16px;">自定义表单元素</div>
'
content
:
'
<div style="padding: 16px;">自定义表单元素</div>
'
});
});
}
else
if
(
obj
.
event
===
'
set_top
'
){
let
obj_name
;
try
{
obj_name
=
obj
.
data
.
api
.
match
(
/rule=
(
.*
)
/
)[
1
].
split
(
'
&
'
)[
0
];
}
catch
(
e
){
obj_name
=
obj
.
data
.
key
;
}
console
.
log
(
obj
);
let
params
=
{
"
names
"
:[
obj_name
].
join
(
'
,
'
)};
console
.
log
(
params
);
$
.
post
(
"
/admin/rule_order/0
"
,
params
,
function
(
res
,
status
){
console
.
log
(
res
);
if
(
res
.
code
===
200
){
data
.
order
=
0
;
obj
.
update
({
order
:
data
.
order
});
layer
.
msg
(
'
已置顶
'
);
}
else
{
console
.
log
(
'
修改失败了...
'
);
layer
.
msg
(
'
置顶失败,具体错误看日志
'
);
return
false
}
});
}
}
});
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录