Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
仰淮
dr_py
提交
7483901c
dr_py
项目概览
仰淮
/
dr_py
与 Fork 源项目一致
Fork自
晚风拂柳颜 / dr_py
通知
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,发现更多精彩内容 >>
提交
7483901c
编写于
10月 28, 2022
作者:
H
hjdhnx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化排序和 防白嫖
上级
556512b1
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
143 addition
and
43 deletion
+143
-43
base/config.py
base/config.py
+2
-0
base/rules.db
base/rules.db
+0
-0
controllers/admin.py
controllers/admin.py
+3
-1
controllers/home.py
controllers/home.py
+25
-6
controllers/layui.py
controllers/layui.py
+33
-1
controllers/parse.py
controllers/parse.py
+3
-1
controllers/service.py
controllers/service.py
+11
-4
controllers/vod.py
controllers/vod.py
+11
-1
templates/admin.html
templates/admin.html
+1
-1
templates/config.txt
templates/config.txt
+2
-2
templates/layui_list.html
templates/layui_list.html
+52
-26
未找到文件。
base/config.py
浏览文件 @
7483901c
...
...
@@ -36,6 +36,8 @@ OCR_API = 'http://dm.mudery.com:10000' # 验证码识别接口,传参数data
UNAME
=
'admin'
# 管理员账号
PWD
=
'drpy'
# 管理员密码
USE_PY
=
0
# 开启py源
JS0_DISABLE
=
0
# 禁用js0
JS0_PASSWORD
=
''
# js0密码
JS_MODE
=
0
# js模式 0 drpy服务器解析 1 pluto本地解析
MAX_CONTENT_LENGTH
=
1
*
1024
*
100
# 100 kB
LIVE_MODE
=
0
# 0 本地 1外网
...
...
base/rules.db
浏览文件 @
7483901c
无法预览此类型文件
controllers/admin.py
浏览文件 @
7483901c
...
...
@@ -37,12 +37,13 @@ def admin_index(): # 管理员界面
lsg
=
storage_service
()
live_url
=
lsg
.
getItem
(
'LIVE_URL'
)
use_py
=
lsg
.
getItem
(
'USE_PY'
)
js0_password
=
lsg
.
getItem
(
'JS0_PASSWORD'
)
# print(f'live_url:', live_url)
rules
=
getRules
(
'js'
)
# print(rules)
cache_count
=
getCacheCount
()
# print(cache_count)
return
render_template
(
'admin.html'
,
pystate
=
use_py
,
rules
=
rules
,
cache_count
=
cache_count
,
ver
=
getLocalVer
(),
live_url
=
live_url
)
return
render_template
(
'admin.html'
,
js0_password
=
js0_password
,
pystate
=
use_py
,
rules
=
rules
,
cache_count
=
cache_count
,
ver
=
getLocalVer
(),
live_url
=
live_url
)
@
admin
.
route
(
'/settings'
)
def
admin_settings
():
# 管理员界面
...
...
@@ -158,6 +159,7 @@ def admin_rule_order(order=0): # 管理员修改规则顺序
# print(rules.getState(rule_list[0]))
# print(rule_list)
success_list
=
[]
rule_list
.
reverse
()
# 倒序解决时间多重排序问题
for
rule
in
rule_list
:
try
:
res_id
=
rules
.
setOrder
(
rule
,
order
)
...
...
controllers/home.py
浏览文件 @
7483901c
...
...
@@ -24,6 +24,7 @@ from utils.update import getLocalVer,getHotSuggest
from
js.rules
import
getJxs
import
random
from
utils.web
import
getParmas
import
functools
home
=
Blueprint
(
"home"
,
__name__
,
static_folder
=
'/static'
)
...
...
@@ -221,18 +222,19 @@ def config_render(mode):
lsg
=
storage_service
()
store_conf_dict
=
lsg
.
getStoreConfDict
()
new_conf
.
update
(
store_conf_dict
)
# print(new_conf)
# print(type(new_conf),new_conf)
host
=
getHost
(
mode
)
# ali_token = lsg.getItem('ALI_TOKEN')
ali_token
=
new_conf
.
ALI_TOKEN
xr_mode
=
new_conf
.
XR_MODE
js0_password
=
new_conf
.
JS0_PASSWORD
js_mode
=
int
(
new_conf
.
JS_MODE
or
0
)
print
(
f
'
{
type
(
js_mode
)
}
jsmode:
{
js_mode
}
'
)
# print(ali_token)
customConfig
=
getCustonDict
(
host
,
ali_token
)
# print(customConfig)
jxs
=
getJxs
(
host
=
host
)
lsg
=
storage_service
()
use_py
=
lsg
.
getItem
(
'USE_PY'
)
pys
=
getPys
()
if
use_py
else
[]
# print(pys)
...
...
@@ -242,7 +244,7 @@ def config_render(mode):
rules
=
getRules
(
'js'
,
js_mode
)
rules
=
get_multi_rules
(
rules
)
# html = render_template('config.txt',rules=getRules('js'),host=host,mode=mode,jxs=jxs,base64Encode=base64Encode,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
)
html
=
render_template
(
'config.txt'
,
js0_password
=
js0_password
,
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
)
# print(merged_config['sites'])
merged_hide
(
merged_config
)
...
...
@@ -273,16 +275,32 @@ def sort_sites_by_order(sites,js_mode=0):
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'
]
sites
[
i
][
'write_date'
]
=
0
if
site_rule
[
'write_date'
]
is
None
else
site_rule
[
'write_date'
].
timestamp
()
else
:
sites
[
i
][
'state'
]
=
1
sites
[
i
][
'order'
]
=
0
sites
[
i
][
'write_date'
]
=
0
# sites[i]['site_name'] = site_name
# print(sites)
sites
.
sort
(
key
=
lambda
x
:
x
[
'order'
],
reverse
=
False
)
def
comp
(
x
,
y
):
if
x
[
'order'
]
>
y
[
'order'
]:
return
1
elif
x
[
'order'
]
<
y
[
'order'
]:
return
-
1
else
:
if
x
[
'write_date'
]
<
y
[
'write_date'
]:
return
1
elif
x
[
'write_date'
]
>
y
[
'write_date'
]:
return
-
1
else
:
return
0
# sites.sort(key=lambda x: x['order'], reverse=False)
sites
.
sort
(
key
=
functools
.
cmp_to_key
(
comp
),
reverse
=
False
)
# print(sites)
for
site
in
sites
:
del
site
[
'state'
]
del
site
[
'order'
]
del
site
[
'write_date'
]
return
sites
@
home
.
route
(
'/configs'
)
...
...
@@ -296,6 +314,7 @@ def config_gen():
try
:
use_py
=
lsg
.
getItem
(
'USE_PY'
)
js_mode
=
int
(
new_conf
.
JS_MODE
or
0
)
js0_password
=
new_conf
.
JS0_PASSWORD
pys
=
getPys
()
if
use_py
else
False
alists
=
getAlist
()
alists_str
=
json
.
dumps
(
alists
,
ensure_ascii
=
False
)
...
...
@@ -303,15 +322,15 @@ def config_gen():
rules
=
get_multi_rules
(
rules
)
host0
=
getHost
(
0
)
jxs
=
getJxs
(
host
=
host0
)
set_local
=
render_template
(
'config.txt'
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
0
),
mode
=
0
,
js_mode
=
js_mode
,
host
=
host0
,
jxs
=
jxs
)
set_local
=
render_template
(
'config.txt'
,
js0_password
=
js0_password
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
0
),
mode
=
0
,
js_mode
=
js_mode
,
host
=
host0
,
jxs
=
jxs
)
# print(set_local)
host1
=
getHost
(
1
)
jxs
=
getJxs
(
host
=
host1
)
set_area
=
render_template
(
'config.txt'
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
1
),
mode
=
1
,
js_mode
=
js_mode
,
host
=
host1
,
jxs
=
jxs
)
set_area
=
render_template
(
'config.txt'
,
js0_password
=
js0_password
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
1
),
mode
=
1
,
js_mode
=
js_mode
,
host
=
host1
,
jxs
=
jxs
)
host2
=
getHost
(
2
)
or
host1
# print('远程地址:'+host2)
jxs
=
getJxs
(
host
=
host2
)
set_online
=
render_template
(
'config.txt'
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
2
),
mode
=
1
,
js_mode
=
js_mode
,
host
=
host2
,
jxs
=
jxs
)
set_online
=
render_template
(
'config.txt'
,
js0_password
=
js0_password
,
pys
=
pys
,
rules
=
rules
,
alists
=
alists
,
alists_str
=
alists_str
,
live_url
=
get_live_url
(
new_conf
,
2
),
mode
=
1
,
js_mode
=
js_mode
,
host
=
host2
,
jxs
=
jxs
)
ali_token
=
new_conf
.
ALI_TOKEN
with
open
(
'txt/pycms0.json'
,
'w+'
,
encoding
=
'utf-8'
)
as
f
:
customConfig
=
getCustonDict
(
host0
,
ali_token
)
...
...
controllers/layui.py
浏览文件 @
7483901c
...
...
@@ -12,6 +12,8 @@ from utils.system import getHost
from
utils.files
import
getCustonDict
,
custom_merge
from
utils.encode
import
parseText
from
js.rules
import
getRules
,
getPys
from
operator
import
itemgetter
,
attrgetter
import
functools
layui
=
Blueprint
(
"layui"
,
__name__
)
...
...
@@ -64,12 +66,42 @@ def layui_rule_list():
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'
]
sites
[
i
][
'write_date'
]
=
0
if
site_rule
[
'write_date'
]
is
None
else
site_rule
[
'write_date'
].
timestamp
()
else
:
sites
[
i
][
'state'
]
=
1
sites
[
i
][
'order'
]
=
0
sites
[
i
][
'write_date'
]
=
0
sites
[
i
][
'site_name'
]
=
site_name
sites
.
sort
(
key
=
lambda
x
:
x
[
'order'
],
reverse
=
False
)
def
multisort
(
sites
,
specs
):
"""
https://zhuanlan.zhihu.com/p/109269549?utm_id=0
多重排序,来自知乎的代码.明显只对了最后的元素进行排序.看完评论和实践发现不对
:param sites:
:param specs:
:return:
"""
for
key
,
reverse
in
specs
:
# sites.sort(key=attrgetter(key), reverse=reverse)
sites
.
sort
(
key
=
lambda
x
:
x
[
key
],
reverse
=
reverse
)
return
sites
def
comp
(
x
,
y
):
if
x
[
'order'
]
>
y
[
'order'
]:
return
1
elif
x
[
'order'
]
<
y
[
'order'
]:
return
-
1
else
:
if
x
[
'write_date'
]
<
y
[
'write_date'
]:
return
1
elif
x
[
'write_date'
]
>
y
[
'write_date'
]:
return
-
1
else
:
return
0
# multisort(sites, (('order', False), ('write_date', True)))
# sites.sort(key=lambda x:x['order'],reverse=False)
sites
.
sort
(
key
=
functools
.
cmp_to_key
(
comp
),
reverse
=
False
)
new_sites
=
sites
[(
page
-
1
)
*
limit
:
page
*
limit
]
# print(new_sites)
return
layuiBack
(
'获取成功'
,
new_sites
,
count
=
len
(
sites
))
controllers/parse.py
浏览文件 @
7483901c
...
...
@@ -9,6 +9,7 @@ import os
from
utils.cfg
import
cfg
from
utils.log
import
logger
from
utils.encode
import
OcrApi
from
controllers.service
import
storage_service
from
utils.pyctx
import
py_ctx
,
getPreJs
,
runJScode
,
JsObjectWrapper
,
PyJsString
,
parseText
,
jsoup
,
time
import
base64
...
...
@@ -106,7 +107,8 @@ def parse_home(filename):
@
parse
.
route
(
'/ocr'
,
methods
=
[
'POST'
])
def
base64_ocr
():
ocr_api
=
cfg
.
OCR_API
lsg
=
storage_service
()
ocr_api
=
lsg
.
getItem
(
'OCR_API'
,
cfg
.
OCR_API
)
# print(ocr_api)
# print('params:',getParmas())
img
=
getParmas
(
'img'
)
...
...
controllers/service.py
浏览文件 @
7483901c
...
...
@@ -9,6 +9,7 @@ from models.storage import Storage
from
models.ruleclass
import
RuleClass
from
utils.cfg
import
cfg
from
base.database
import
db
from
datetime
import
datetime
,
timedelta
class
storage_service
(
object
):
...
...
@@ -19,7 +20,7 @@ class storage_service(object):
return
copy_utils
.
obj_to_list
(
res
)
def
__init__
(
self
):
conf_list
=
[
'LIVE_URL'
,
'USE_PY'
,
'JS_MODE'
,
'PLAY_URL'
,
'PLAY_DISABLE'
,
'LAZYPARSE_MODE'
,
'WALL_PAPER_ENABLE'
,
conf_list
=
[
'LIVE_URL'
,
'USE_PY'
,
'JS_MODE'
,
'
JS0_DISABLE'
,
'JS0_PASSWORD'
,
'
PLAY_URL'
,
'PLAY_DISABLE'
,
'LAZYPARSE_MODE'
,
'WALL_PAPER_ENABLE'
,
'WALL_PAPER'
,
'UNAME'
,
'PWD'
,
'LIVE_MODE'
,
'CATE_EXCLUDE'
,
'TAB_EXCLUDE'
,
'SEARCH_TIMEOUT'
,
'MULTI_MODE'
,
'XR_MODE'
,
'ALI_TOKEN'
]
for
conf
in
conf_list
:
if
not
self
.
hasItem
(
conf
):
...
...
@@ -29,9 +30,9 @@ class storage_service(object):
@
classmethod
def
getStoreConf
(
self
):
# MAX_CONTENT_LENGTH 最大上传和端口ip一样是顶级配置,无法外部修改的
conf_list
=
[
'LIVE_URL'
,
'LIVE_MODE'
,
'PLAY_URL'
,
'PID_URL'
,
'USE_PY'
,
'JS_MODE'
,
'PLAY_DISABLE'
,
'LAZYPARSE_MODE'
,
'WALL_PAPER_ENABLE'
,
conf_list
=
[
'LIVE_URL'
,
'LIVE_MODE'
,
'PLAY_URL'
,
'PID_URL'
,
'USE_PY'
,
'JS_MODE'
,
'
JS0_DISABLE'
,
'JS0_PASSWORD'
,
'
PLAY_DISABLE'
,
'LAZYPARSE_MODE'
,
'WALL_PAPER_ENABLE'
,
'WALL_PAPER'
,
'UNAME'
,
'PWD'
,
'CATE_EXCLUDE'
,
'TAB_EXCLUDE'
,
'SEARCH_TIMEOUT'
,
'MULTI_MODE'
,
'XR_MODE'
,
'ALI_TOKEN'
]
conf_name_list
=
[
'直播地址'
,
'直播模式'
,
'远程地址'
,
'进程管理链接'
,
'启用py源'
,
'js模式'
,
'禁用免嗅'
,
'免嗅模式'
,
'启用壁纸'
,
'壁纸链接'
,
'管理账号'
,
conf_name_list
=
[
'直播地址'
,
'直播模式'
,
'远程地址'
,
'进程管理链接'
,
'启用py源'
,
'js模式'
,
'禁用
js0'
,
'js0密码'
,
'禁用
免嗅'
,
'免嗅模式'
,
'启用壁纸'
,
'壁纸链接'
,
'管理账号'
,
'管理密码'
,
'分类排除'
,
'线路排除'
,
'聚搜超时'
,
'多源模式'
,
'仙人模式'
,
'阿里tk'
]
conf_lists
=
[]
for
i
in
range
(
len
(
conf_list
)):
...
...
@@ -75,7 +76,9 @@ class rules_service(object):
@
staticmethod
def
query_all
():
# 查询所有
res
=
RuleClass
.
query
.
all
()
res
=
RuleClass
.
query
.
order_by
(
RuleClass
.
order
.
asc
(),
RuleClass
.
write_date
.
desc
()).
all
()
# print(res)
# res = RuleClass.query.order_by(RuleClass.write_date.asc()).all()
return
copy_utils
.
obj_to_list
(
res
)
@
classmethod
...
...
@@ -113,6 +116,10 @@ class rules_service(object):
res
=
RuleClass
.
query
.
filter
(
RuleClass
.
name
==
key
).
first
()
if
res
:
res
.
order
=
order
# print(f'{res.name}设置order为:{order}')
if
res
.
order
==
order
:
res
.
write_date
=
datetime
.
now
()
# res.write_date = res.write_date + timedelta(hours=2)
db
.
session
.
add
(
res
)
else
:
res
=
RuleClass
(
name
=
key
,
order
=
order
)
...
...
controllers/vod.py
浏览文件 @
7483901c
...
...
@@ -5,7 +5,7 @@
# Date : 2022/9/6
import
json
from
flask
import
Blueprint
,
request
,
render_template
,
jsonify
,
make_response
,
redirect
from
flask
import
Blueprint
,
abort
,
request
,
render_template
,
jsonify
,
make_response
,
redirect
from
time
import
time
from
utils.web
import
getParmas
,
get_interval
from
utils.cfg
import
cfg
...
...
@@ -183,6 +183,16 @@ def multi_search(wd):
@
vod
.
route
(
'/vod'
)
def
vod_home
():
lsg
=
storage_service
()
js0_disable
=
lsg
.
getItem
(
'JS0_DISABLE'
,
cfg
.
get
(
'JS0_DISABLE'
,
0
))
if
js0_disable
:
abort
(
403
)
js0_password
=
lsg
.
getItem
(
'JS0_PASSWORD'
,
cfg
.
get
(
'JS0_PASSWORD'
,
''
))
# print('js0_password:',js0_password)
if
js0_password
:
pwd
=
getParmas
(
'pwd'
)
if
pwd
!=
js0_password
:
abort
(
403
)
t0
=
time
()
rule
=
getParmas
(
'rule'
)
ac
=
getParmas
(
'ac'
)
...
...
templates/admin.html
浏览文件 @
7483901c
...
...
@@ -22,7 +22,7 @@
$
(
"
.view_home
"
).
click
(
function
(){
let
rule
=
this
.
getAttribute
(
'
value
'
).
trim
();
location
.
href
=
'
/vod?rule=
'
+
rule
;
location
.
href
=
'
/vod?
{% if js0_password %}pwd={{js0_password}}&{% endif %}
rule=
'
+
rule
;
});
$
(
"
#checkUpdate
"
).
click
(
function
(){
...
...
templates/config.txt
浏览文件 @
7483901c
...
...
@@ -10,7 +10,7 @@
"key":"dr_{{ rule.name }}",
"name":"{{ rule.name }}(道长)",
"type":1,
"api":"{{ host }}/vod?rule={{ rule.name }}",
"api":"{{ host }}/vod?
{% if js0_password %}pwd={{js0_password}}&{% endif %}
rule={{ rule.name }}",
"searchable": {{ rule.searchable }},
"quickSearch": {{ rule.quickSearch }},
"filterable": {{ rule.filterable }}
...
...
@@ -30,7 +30,7 @@
"key":"js_drpy",
"name":"drpy(道长)",
"type":1,
"api":"{{ host }}/vod?rule=drpy",
"api":"{{ host }}/vod?
{% if js0_password %}pwd={{js0_password}}&{% endif %}
rule=drpy",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
...
...
templates/layui_list.html
浏览文件 @
7483901c
...
...
@@ -49,8 +49,11 @@
<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
=
"
set_top
"
>
置顶
<
/a
>
<
a
class
=
"
layui-btn layui-btn-danger layui-btn-xs
"
lay
-
event
=
"
del
"
>
隐藏
<
/a
>
<
a
class
=
"
layui-btn layui-btn-xs
"
lay
-
event
=
"
set_top
"
>
顶
<
/a
>
<
a
class
=
"
layui-btn layui-btn-xs layui-btn-danger
"
lay
-
event
=
"
set_bottom
"
>
底
<
/a
>
<
a
class
=
"
layui-btn layui-btn-xs layui-btn-info
"
lay
-
event
=
"
set_order
"
>
输
<
/a
>
<!--
<
a
class
=
"
layui-btn layui-btn-danger layui-btn-xs
"
lay
-
event
=
"
del
"
>
隐藏
<
/a>--
>
</script>
...
...
@@ -118,6 +121,7 @@ layui.use(['table', 'dropdown'], function(){
// curr: 3 //重新从第 1 页开始
// }
});
layer
.
msg
(
'
已设置顺序为
'
+
to_set_order
,{
time
:
1000
});
}
else
{
console
.
log
(
'
修改失败了...
'
);
return
false
...
...
@@ -170,7 +174,7 @@ layui.use(['table', 'dropdown'], function(){
// var td = obj.td(this.field); //获取当前 td
// return td.find('select').val();
// }}
,{
fixed
:
'
right
'
,
title
:
'
操作
'
,
width
:
1
25
,
minWidth
:
125
,
toolbar
:
'
#barDemo
'
}
,{
fixed
:
'
right
'
,
title
:
'
操作
'
,
width
:
1
30
,
minWidth
:
130
,
toolbar
:
'
#barDemo
'
}
]]
,
done
:
function
(){
var
id
=
this
.
id
;
...
...
@@ -308,7 +312,6 @@ layui.use(['table', 'dropdown'], function(){
}
else
{
setOrder
(
data
,
Number
(
value
));
layer
.
close
(
index
);
layer
.
msg
(
'
请设置顺序为
'
+
value
,{
time
:
1000
});
}
});
// setOrder(data,0);
...
...
@@ -390,6 +393,32 @@ layui.use(['table', 'dropdown'], function(){
table
.
on
(
'
tool(test)
'
,
function
(
obj
){
// 双击 toolDouble
var
data
=
obj
.
data
;
//console.log(obj)
function
setPos
(
od
,
msg
){
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/
"
+
od
,
params
,
function
(
res
,
status
){
console
.
log
(
res
);
if
(
res
.
code
===
200
){
data
.
order
=
od
;
// console.log(obj);
obj
.
update
({
order
:
data
.
order
});
layer
.
msg
(
'
已
'
+
msg
);
}
else
{
console
.
log
(
'
修改失败了...
'
);
layer
.
msg
(
msg
+
'
失败,具体错误看日志
'
);
return
false
}
});
}
if
(
obj
.
event
===
'
del
'
){
let
obj_name
;
try
{
...
...
@@ -432,29 +461,26 @@ layui.use(['table', 'dropdown'], function(){
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
setPos
(
0
,
'
置顶
'
);
}
else
if
(
obj
.
event
===
'
set_bottom
'
){
setPos
(
9999
,
'
置底
'
);
}
else
if
(
obj
.
event
===
'
set_order
'
){
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
{
setPos
(
Number
(
value
),
'
指定顺序
'
);
layer
.
close
(
index
);
}
});
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录