提交 7483901c 编写于 作者: H hjdhnx

优化排序和 防白嫖

上级 556512b1
...@@ -36,6 +36,8 @@ OCR_API = 'http://dm.mudery.com:10000' # 验证码识别接口,传参数data ...@@ -36,6 +36,8 @@ OCR_API = 'http://dm.mudery.com:10000' # 验证码识别接口,传参数data
UNAME = 'admin' # 管理员账号 UNAME = 'admin' # 管理员账号
PWD = 'drpy' # 管理员密码 PWD = 'drpy' # 管理员密码
USE_PY = 0 # 开启py源 USE_PY = 0 # 开启py源
JS0_DISABLE = 0 # 禁用js0
JS0_PASSWORD = '' # js0密码
JS_MODE = 0 # js模式 0 drpy服务器解析 1 pluto本地解析 JS_MODE = 0 # js模式 0 drpy服务器解析 1 pluto本地解析
MAX_CONTENT_LENGTH = 1 * 1024 * 100 # 100 kB MAX_CONTENT_LENGTH = 1 * 1024 * 100 # 100 kB
LIVE_MODE = 0 # 0 本地 1外网 LIVE_MODE = 0 # 0 本地 1外网
......
无法预览此类型文件
...@@ -37,12 +37,13 @@ def admin_index(): # 管理员界面 ...@@ -37,12 +37,13 @@ def admin_index(): # 管理员界面
lsg = storage_service() lsg = storage_service()
live_url = lsg.getItem('LIVE_URL') live_url = lsg.getItem('LIVE_URL')
use_py = lsg.getItem('USE_PY') use_py = lsg.getItem('USE_PY')
js0_password = lsg.getItem('JS0_PASSWORD')
# print(f'live_url:', live_url) # print(f'live_url:', live_url)
rules = getRules('js') rules = getRules('js')
# print(rules) # print(rules)
cache_count = getCacheCount() cache_count = getCacheCount()
# print(cache_count) # 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') @admin.route('/settings')
def admin_settings(): # 管理员界面 def admin_settings(): # 管理员界面
...@@ -158,6 +159,7 @@ def admin_rule_order(order=0): # 管理员修改规则顺序 ...@@ -158,6 +159,7 @@ def admin_rule_order(order=0): # 管理员修改规则顺序
# print(rules.getState(rule_list[0])) # print(rules.getState(rule_list[0]))
# print(rule_list) # print(rule_list)
success_list = [] success_list = []
rule_list.reverse() # 倒序解决时间多重排序问题
for rule in rule_list: for rule in rule_list:
try: try:
res_id = rules.setOrder(rule,order) res_id = rules.setOrder(rule,order)
......
...@@ -24,6 +24,7 @@ from utils.update import getLocalVer,getHotSuggest ...@@ -24,6 +24,7 @@ from utils.update import getLocalVer,getHotSuggest
from js.rules import getJxs from js.rules import getJxs
import random import random
from utils.web import getParmas from utils.web import getParmas
import functools
home = Blueprint("home", __name__,static_folder='/static') home = Blueprint("home", __name__,static_folder='/static')
...@@ -221,18 +222,19 @@ def config_render(mode): ...@@ -221,18 +222,19 @@ def config_render(mode):
lsg = storage_service() lsg = storage_service()
store_conf_dict = lsg.getStoreConfDict() store_conf_dict = lsg.getStoreConfDict()
new_conf.update(store_conf_dict) new_conf.update(store_conf_dict)
# print(new_conf)
# print(type(new_conf),new_conf) # print(type(new_conf),new_conf)
host = getHost(mode) host = getHost(mode)
# ali_token = lsg.getItem('ALI_TOKEN') # ali_token = lsg.getItem('ALI_TOKEN')
ali_token = new_conf.ALI_TOKEN ali_token = new_conf.ALI_TOKEN
xr_mode = new_conf.XR_MODE xr_mode = new_conf.XR_MODE
js0_password = new_conf.JS0_PASSWORD
js_mode = int(new_conf.JS_MODE or 0) js_mode = int(new_conf.JS_MODE or 0)
print(f'{type(js_mode)} jsmode:{js_mode}') print(f'{type(js_mode)} jsmode:{js_mode}')
# print(ali_token) # print(ali_token)
customConfig = getCustonDict(host,ali_token) customConfig = getCustonDict(host,ali_token)
# print(customConfig) # print(customConfig)
jxs = getJxs(host=host) jxs = getJxs(host=host)
lsg = storage_service()
use_py = lsg.getItem('USE_PY') use_py = lsg.getItem('USE_PY')
pys = getPys() if use_py else [] pys = getPys() if use_py else []
# print(pys) # print(pys)
...@@ -242,7 +244,7 @@ def config_render(mode): ...@@ -242,7 +244,7 @@ def config_render(mode):
rules = getRules('js',js_mode) rules = getRules('js',js_mode)
rules = get_multi_rules(rules) 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',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) merged_config = custom_merge(parseText(html),customConfig)
# print(merged_config['sites']) # print(merged_config['sites'])
merged_hide(merged_config) merged_hide(merged_config)
...@@ -273,16 +275,32 @@ def sort_sites_by_order(sites,js_mode=0): ...@@ -273,16 +275,32 @@ def sort_sites_by_order(sites,js_mode=0):
site_rule = rule_list[rule_names.index(site_name)] 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]['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]['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: else:
sites[i]['state'] = 1 sites[i]['state'] = 1
sites[i]['order'] = 0 sites[i]['order'] = 0
sites[i]['write_date'] = 0
# sites[i]['site_name'] = site_name # sites[i]['site_name'] = site_name
# print(sites) # 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) # print(sites)
for site in sites: for site in sites:
del site['state'] del site['state']
del site['order'] del site['order']
del site['write_date']
return sites return sites
@home.route('/configs') @home.route('/configs')
...@@ -296,6 +314,7 @@ def config_gen(): ...@@ -296,6 +314,7 @@ def config_gen():
try: try:
use_py = lsg.getItem('USE_PY') use_py = lsg.getItem('USE_PY')
js_mode = int(new_conf.JS_MODE or 0) js_mode = int(new_conf.JS_MODE or 0)
js0_password = new_conf.JS0_PASSWORD
pys = getPys() if use_py else False pys = getPys() if use_py else False
alists = getAlist() alists = getAlist()
alists_str = json.dumps(alists,ensure_ascii=False) alists_str = json.dumps(alists,ensure_ascii=False)
...@@ -303,15 +322,15 @@ def config_gen(): ...@@ -303,15 +322,15 @@ def config_gen():
rules = get_multi_rules(rules) rules = get_multi_rules(rules)
host0 = getHost(0) host0 = getHost(0)
jxs = getJxs(host=host0) 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) # print(set_local)
host1 = getHost(1) host1 = getHost(1)
jxs = getJxs(host=host1) 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 host2 = getHost(2) or host1
# print('远程地址:'+host2) # print('远程地址:'+host2)
jxs = getJxs(host=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 ali_token = new_conf.ALI_TOKEN
with open('txt/pycms0.json','w+',encoding='utf-8') as f: with open('txt/pycms0.json','w+',encoding='utf-8') as f:
customConfig = getCustonDict(host0,ali_token) customConfig = getCustonDict(host0,ali_token)
......
...@@ -12,6 +12,8 @@ from utils.system import getHost ...@@ -12,6 +12,8 @@ from utils.system import getHost
from utils.files import getCustonDict,custom_merge from utils.files import getCustonDict,custom_merge
from utils.encode import parseText from utils.encode import parseText
from js.rules import getRules,getPys from js.rules import getRules,getPys
from operator import itemgetter, attrgetter
import functools
layui = Blueprint("layui", __name__) layui = Blueprint("layui", __name__)
...@@ -64,12 +66,42 @@ def layui_rule_list(): ...@@ -64,12 +66,42 @@ def layui_rule_list():
site_rule = rule_list[rule_names.index(site_name)] 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]['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]['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: else:
sites[i]['state'] = 1 sites[i]['state'] = 1
sites[i]['order'] = 0 sites[i]['order'] = 0
sites[i]['write_date'] = 0
sites[i]['site_name'] = site_name 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] 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))
...@@ -9,6 +9,7 @@ import os ...@@ -9,6 +9,7 @@ import os
from utils.cfg import cfg from utils.cfg import cfg
from utils.log import logger from utils.log import logger
from utils.encode import OcrApi from utils.encode import OcrApi
from controllers.service import storage_service
from utils.pyctx import py_ctx,getPreJs,runJScode,JsObjectWrapper,PyJsString,parseText,jsoup,time from utils.pyctx import py_ctx,getPreJs,runJScode,JsObjectWrapper,PyJsString,parseText,jsoup,time
import base64 import base64
...@@ -106,7 +107,8 @@ def parse_home(filename): ...@@ -106,7 +107,8 @@ def parse_home(filename):
@parse.route('/ocr',methods=['POST']) @parse.route('/ocr',methods=['POST'])
def base64_ocr(): def base64_ocr():
ocr_api = cfg.OCR_API lsg = storage_service()
ocr_api = lsg.getItem('OCR_API',cfg.OCR_API)
# print(ocr_api) # print(ocr_api)
# print('params:',getParmas()) # print('params:',getParmas())
img = getParmas('img') img = getParmas('img')
......
...@@ -9,6 +9,7 @@ from models.storage import Storage ...@@ -9,6 +9,7 @@ from models.storage import Storage
from models.ruleclass import RuleClass from models.ruleclass import RuleClass
from utils.cfg import cfg from utils.cfg import cfg
from base.database import db from base.database import db
from datetime import datetime,timedelta
class storage_service(object): class storage_service(object):
...@@ -19,7 +20,7 @@ class storage_service(object): ...@@ -19,7 +20,7 @@ class storage_service(object):
return copy_utils.obj_to_list(res) return copy_utils.obj_to_list(res)
def __init__(self): 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'] 'WALL_PAPER', 'UNAME', 'PWD', 'LIVE_MODE', 'CATE_EXCLUDE', 'TAB_EXCLUDE','SEARCH_TIMEOUT','MULTI_MODE','XR_MODE','ALI_TOKEN']
for conf in conf_list: for conf in conf_list:
if not self.hasItem(conf): if not self.hasItem(conf):
...@@ -29,9 +30,9 @@ class storage_service(object): ...@@ -29,9 +30,9 @@ class storage_service(object):
@classmethod @classmethod
def getStoreConf(self): def getStoreConf(self):
# MAX_CONTENT_LENGTH 最大上传和端口ip一样是顶级配置,无法外部修改的 # 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'] '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'] '管理密码', '分类排除', '线路排除','聚搜超时','多源模式','仙人模式','阿里tk']
conf_lists = [] conf_lists = []
for i in range(len(conf_list)): for i in range(len(conf_list)):
...@@ -75,7 +76,9 @@ class rules_service(object): ...@@ -75,7 +76,9 @@ class rules_service(object):
@staticmethod @staticmethod
def query_all(): 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) return copy_utils.obj_to_list(res)
@classmethod @classmethod
...@@ -113,6 +116,10 @@ class rules_service(object): ...@@ -113,6 +116,10 @@ class rules_service(object):
res = RuleClass.query.filter(RuleClass.name == key).first() res = RuleClass.query.filter(RuleClass.name == key).first()
if res: if res:
res.order = order 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) db.session.add(res)
else: else:
res = RuleClass(name=key, order=order) res = RuleClass(name=key, order=order)
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
# Date : 2022/9/6 # Date : 2022/9/6
import json 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 time import time
from utils.web import getParmas,get_interval from utils.web import getParmas,get_interval
from utils.cfg import cfg from utils.cfg import cfg
...@@ -183,6 +183,16 @@ def multi_search(wd): ...@@ -183,6 +183,16 @@ def multi_search(wd):
@vod.route('/vod') @vod.route('/vod')
def vod_home(): 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() t0 = time()
rule = getParmas('rule') rule = getParmas('rule')
ac = getParmas('ac') ac = getParmas('ac')
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
$(".view_home").click(function(){ $(".view_home").click(function(){
let rule = this.getAttribute('value').trim(); 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(){ $("#checkUpdate").click(function(){
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
"key":"dr_{{ rule.name }}", "key":"dr_{{ rule.name }}",
"name":"{{ rule.name }}(道长)", "name":"{{ rule.name }}(道长)",
"type":1, "type":1,
"api":"{{ host }}/vod?rule={{ rule.name }}", "api":"{{ host }}/vod?{% if js0_password %}pwd={{js0_password}}&{% endif %}rule={{ rule.name }}",
"searchable": {{ rule.searchable }}, "searchable": {{ rule.searchable }},
"quickSearch": {{ rule.quickSearch }}, "quickSearch": {{ rule.quickSearch }},
"filterable": {{ rule.filterable }} "filterable": {{ rule.filterable }}
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
"key":"js_drpy", "key":"js_drpy",
"name":"drpy(道长)", "name":"drpy(道长)",
"type":1, "type":1,
"api":"{{ host }}/vod?rule=drpy", "api":"{{ host }}/vod?{% if js0_password %}pwd={{js0_password}}&{% endif %}rule=drpy",
"searchable": 1, "searchable": 1,
"quickSearch": 1, "quickSearch": 1,
"filterable": 1 "filterable": 1
......
...@@ -49,8 +49,11 @@ ...@@ -49,8 +49,11 @@
<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-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 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> </script>
...@@ -118,6 +121,7 @@ layui.use(['table', 'dropdown'], function(){ ...@@ -118,6 +121,7 @@ layui.use(['table', 'dropdown'], function(){
// curr: 3 //重新从第 1 页开始 // curr: 3 //重新从第 1 页开始
// } // }
}); });
layer.msg('已设置顺序为'+to_set_order,{time:1000});
}else{ }else{
console.log('修改失败了...'); console.log('修改失败了...');
return false return false
...@@ -170,7 +174,7 @@ layui.use(['table', 'dropdown'], function(){ ...@@ -170,7 +174,7 @@ layui.use(['table', 'dropdown'], function(){
// var td = obj.td(this.field); //获取当前 td // var td = obj.td(this.field); //获取当前 td
// return td.find('select').val(); // return td.find('select').val();
// }} // }}
,{fixed: 'right', title:'操作', width: 125, minWidth: 125, toolbar: '#barDemo'} ,{fixed: 'right', title:'操作', width: 130, minWidth: 130, toolbar: '#barDemo'}
]] ]]
,done: function(){ ,done: function(){
var id = this.id; var id = this.id;
...@@ -308,7 +312,6 @@ layui.use(['table', 'dropdown'], function(){ ...@@ -308,7 +312,6 @@ layui.use(['table', 'dropdown'], function(){
}else{ }else{
setOrder(data,Number(value)); setOrder(data,Number(value));
layer.close(index); layer.close(index);
layer.msg('请设置顺序为'+value,{time:1000});
} }
}); });
// setOrder(data,0); // setOrder(data,0);
...@@ -390,6 +393,32 @@ layui.use(['table', 'dropdown'], function(){ ...@@ -390,6 +393,32 @@ layui.use(['table', 'dropdown'], function(){
table.on('tool(test)', function(obj){ // 双击 toolDouble table.on('tool(test)', function(obj){ // 双击 toolDouble
var data = obj.data; var data = obj.data;
//console.log(obj) //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'){ if(obj.event === 'del'){
let obj_name; let obj_name;
try{ try{
...@@ -432,29 +461,26 @@ layui.use(['table', 'dropdown'], function(){ ...@@ -432,29 +461,26 @@ layui.use(['table', 'dropdown'], function(){
content: '<div style="padding: 16px;">自定义表单元素</div>' content: '<div style="padding: 16px;">自定义表单元素</div>'
}); });
}else if(obj.event === 'set_top'){ }else if(obj.event === 'set_top'){
let obj_name; setPos(0,'置顶');
try{ }else if(obj.event === 'set_bottom'){
obj_name = obj.data.api.match(/rule=(.*)/)[1].split('&')[0]; setPos(9999,'置底');
}catch (e){ }else if(obj.event === 'set_order'){
obj_name = obj.data.key; layer.prompt({
} formType: 0,
console.log(obj); value: '',
let params = {"names":[obj_name].join(',')}; title: '请输入指定的排序序号,数字越小排名越靠前',
console.log(params); btn: ['确定','取消'], //按钮,
$.post("/admin/rule_order/0",params,function(res,status){ btnAlign: 'c'
console.log(res); }, function(value,index){
if(res.code === 200){ console.log('value:'+value);
data.order = 0; var reg = /^[\d]+$/;
obj.update({ if(!reg.test(value)){
order: data.order 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.
先完成此消息的编辑!
想要评论请 注册