添加文章管理

This commit is contained in:
浅念
2025-06-27 17:27:56 +08:00
parent 1374d1938a
commit c97a2ab8c7
19 changed files with 2103 additions and 431 deletions
+7
View File
@@ -102,6 +102,13 @@
"icon": "fa fa-info-circle", "icon": "fa fa-info-circle",
"target": "_self" "target": "_self"
}, },
{
"title": "文章管理",
"name":"article",
"href": "page/article.html",
"icon": "fa fa-file-word-o",
"target": "_self"
},
{ {
"title": "属性管理", "title": "属性管理",
"name": "attribute", "name": "attribute",
+1 -1
View File
@@ -61,7 +61,7 @@ layui.use(['form','table'], function () {
templet: function(d){ templet: function(d){
var v='' var v=''
if(d.status==1){ if(d.status==1){
v='<span class="layui-badge layui-bg-green">'+lang.alllist.status2+'</span>' v='<span class="layui-badge layui-bg-green">'+lang.alllist.status1+'</span>'
} }
if(d.status==0){ if(d.status==0){
v='<span class="layui-badge">'+lang.alllist.status2+'</span>' v='<span class="layui-badge">'+lang.alllist.status2+'</span>'
+267
View File
@@ -0,0 +1,267 @@
layui.use(['form','table'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table;
// 获取当前语言
var currentLang = localStorage.getItem('language') || 'zh';
var lang = langConfig[currentLang];
var operationBar = $('#currentTableBar').html();
if (operationBar) {
var newHtml = operationBar
.replace(/评论/g, lang.carlist.operations.comments)
.replace(/编辑/g, lang.carlist.operations.edit)
.replace(/删除/g, lang.carlist.operations.delete)
$('#currentTableBar').html(newHtml);
}
var toolbarDemo = $('#toolbarDemo').html();
if (toolbarDemo) {
var newHtmlt = toolbarDemo
.replace(/添加/g, lang.userlist.add)
$('#toolbarDemo').html(newHtmlt);
}
var tableInitb=table.render({
elem: '#currentTableId',
url: lang.baseUrl+'console/article/list',
headers: {
Authorization: 'Bearer ' + sessionStorage.tokencar,
lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh"
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print', {
title: '提示',
layEvent: 'LAYTABLE_TIPS',
icon: 'layui-icon-tips'
}],
parseData: function(res) { //res 即为原始返回的数据
console.log(res)
return {
"code": 0, //解析接口状态
"msg": 'message', //解析提示文本
"count": res.data.meta.total, //解析数据长度
"data": res.data.list //解析数据列表
};
},
cols: [[
{type: "checkbox"},
{field: 'id', title: 'ID', sort: true},
{field: 'id', title: lang.carlist.create_user,
templet: function(d){
var v=''
if(d.creater){
if(d.creater.nickname){v=d.creater.nickname}
}
return v;
}
},
{field: 'title', title: lang.alllist.title},
{field: 'subtitle', title: lang.alllist.synopsis},
{field: 'cover', minWidth: 100,title: lang.carlist.product_image,
templet: function(d){
var img= '<img style="display: inline-block;max-width:40px;max-height:40px" lay-src="'+d.cover_full+'" src="'+d.cover_full+'">'
return img;
}
},
{field: 'status', title:lang.alllist.status,
templet: function(d){
var v=''
if(d.status==1){
v='<span class="layui-badge layui-bg-green">'+lang.alllist.status1+'</span>'
}
if(d.status==0){
v='<span class="layui-badge">'+lang.alllist.status2+'</span>'
}
return v
},
},
{field: 'publish_time',title: lang.alllist.publish_time},
{title: lang.alllist.operation, minWidth: 180, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function(res, curr, count){
// 表格渲染完成后绑定图片点击事件
$('img[lay-src]').on('click', function(){
var imgSrc = $(this).attr('lay-src');
layer.photos({
photos: {
"data": [{
"src": imgSrc
}]
},
anim: 5
});
});
window.i18n.updatePageContent();
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var result = JSON.stringify(data.field);
table.reload('currentTableId', {
page: {
curr: 1
}
, where: {
key: data.field.key,
status: data.field.status,
title: data.field.title,
}
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: lang.userlist.add,
type: 2,
maxmin: true,
area: ['70%', '90%'],
btn: [lang.audit.confirm, lang.audit.cancel],
content: '../page/table/articleadd.html',
yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'saveBtn'
, submit = layero.find('iframe').contents().find('#' + submitID);
//监听提交
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field; //获取提交的字段
self.articleadd({
type: 'post',
data: data.field,
successCallBack: function (result) {
layer.msg(result.message)
layer.close(index); //关闭弹层
tableInitb.reload()
},
failCallBack: function (result) {
alert(result.message);
}
})
console.log(field)
});
submit.trigger('click');
}
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
layer.alert(JSON.stringify(data));
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('tool(currentTableFilter)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
var index = layer.open({
title:lang.audit.edit_title,
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['70%', '90%'],
btn: [lang.audit.confirm, lang.audit.cancel],
content: '../page/table/articleedit.html?id='+data.id,
yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'saveBtn'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field; //获取提交的字段
self.articleupdate({
type:'post',
data:data.field,
successCallBack: function(result){
layer.msg(result.message)
layer.close(index); //关闭弹层
tableInitb.reload()
},
failCallBack: function(result){
alert(result.message);
}
})
});
submit.trigger('click');
}
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
} else if (obj.event === 'comments') {
var index = layer.open({
title:lang.audit.edit_title,
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['70%', '90%'],
btn: [lang.audit.confirm, lang.audit.cancel],
content: '../page/articlecoms.html?id='+data.id,
yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'saveBtn'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field; //获取提交的字段
self.articleupdate({
type:'post',
data:data.field,
successCallBack: function(result){
layer.msg(result.message)
layer.close(index); //关闭弹层
tableInitb.reload()
},
failCallBack: function(result){
alert(result.message);
}
})
});
submit.trigger('click');
}
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
} else if (obj.event === 'delete') {
layer.confirm(lang.audit.confirm_delete, function(index) {
self.articledelete({
type:'post',
data:{id:data.id},
successCallBack: function(result){
layer.msg(result.message, {
icon: 1,
time: 1000
});
tableInitb.reload()
},
failCallBack: function(result){
alert(result.message);
window.location.reload()
}
})
});
}
});
});
+222
View File
@@ -0,0 +1,222 @@
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table;
// 获取当前语言
var currentLang = localStorage.getItem('language') || 'zh';
var lang = langConfig[currentLang];
var operationBar = $('#currentTableBar').html();
if (operationBar) {
var newHtml = operationBar
.replace(/编辑/g, lang.carlist.operations.edit)
.replace(/删除/g, lang.carlist.operations.delete)
$('#currentTableBar').html(newHtml);
}
var toolbarDemo = $('#toolbarDemo').html();
if (toolbarDemo) {
var newHtmlt = toolbarDemo
.replace(/添加/g, lang.userlist.add)
$('#toolbarDemo').html(newHtmlt);
}
var tableInitb = table.render({
elem: '#currentTableId',
url: lang.baseUrl+'console/comment/list?id='+getQueryString('id'),
headers: {
Authorization: 'Bearer ' + sessionStorage.tokencar,
lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh"
},
toolbar: '#toolbarDemo',
defaultToolbar: ['filter', 'exports', 'print', {
title: '提示',
layEvent: 'LAYTABLE_TIPS',
icon: 'layui-icon-tips'
}],
parseData: function(res) { //res 即为原始返回的数据
console.log(res)
return {
"code": 0, //解析接口状态
"msg": 'message', //解析提示文本
"count": res.data.meta.total, //解析数据长度
"data": res.data.list //解析数据列表
};
},
cols: [[
{type: "checkbox"},
{field: 'id', title: 'ID', sort: true},
{field: 'name', title:lang.alllist.name},
{field: 'image', minWidth: 100,title: lang.userlist.head,
templet: function(d){
var img= '<img style="display: inline-block;max-width:40px;max-height:40px" lay-src="'+d.avatar_full+'" src="'+d.avatar_full+'">'
return img;
}
},
{field: 'content', title: lang.alllist.content},
{title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
done: function(){
// 表格渲染完成后绑定图片点击事件
$('img[lay-src]').on('click', function(){
var imgSrc = $(this).attr('lay-src');
layer.photos({
photos: {
"data": [{
"src": imgSrc
}]
},
anim: 5
});
});
},
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function(res, curr, count){
// 表格渲染完成后绑定图片点击事件
$('img[lay-src]').on('click', function(){
var imgSrc = $(this).attr('lay-src');
layer.photos({
photos: {
"data": [{
"src": imgSrc
}]
},
anim: 5
});
});
window.i18n.updatePageContent();
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var result = JSON.stringify(data.field);
table.reload('currentTableId', {
page: {
curr: 1
}
, where: {
name: data.field.name,
status: data.field.status,
}
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var index = layer.open({
title: lang.userlist.add,
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['70%', '80%'],
btn: [lang.audit.confirm, lang.audit.cancel],
content: '../page/table/articlecomsadd.html?id='+getQueryString('id'),
yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'saveBtn'
, submit = layero.find('iframe').contents().find('#' + submitID);
//监听提交
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field; //获取提交的字段
self.commentadd({
type: 'post',
data: data.field,
successCallBack: function (result) {
layer.msg(result.message)
layer.close(index); //关闭弹层
tableInitb.reload()
},
failCallBack: function (result) {
alert(result.message);
}
})
console.log(field)
});
submit.trigger('click');
}
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
layer.alert(JSON.stringify(data));
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('tool(currentTableFilter)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
var index = layer.open({
title: lang.audit.edit_title,
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['70%', '80%'],
btn: [lang.audit.confirm, lang.audit.cancel],
content: '../page/table/articlecomsedit.html?id='+data.id,
yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'saveBtn'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field; //获取提交的字段
self.commentupdate({
type:'post',
data:data.field,
successCallBack: function(result){
layer.msg(result.message)
layer.close(index); //关闭弹层
tableInitb.reload()
},
failCallBack: function(result){
alert(result.message);
}
})
});
submit.trigger('click');
}
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}else if (obj.event === 'delete') {
layer.confirm(lang.audit.confirm_delete, function(index) {
self.commentdelete({
type:'post',
data:{id:data.id},
successCallBack: function(result){
layer.msg(result.message, {
icon: 1,
time: 1000
});
tableInitb.reload()
},
failCallBack: function(result){
alert(result.message);
window.location.reload()
}
})
});
}
});
});
+7 -1
View File
@@ -31,7 +31,8 @@
"email":"Email", "email":"Email",
"attribute":"Attribute", "attribute":"Attribute",
"attributes":"Attribute List", "attributes":"Attribute List",
"categories":"Attribute Categories" "categories":"Attribute Categories",
"article": "Article Management"
}, },
"homE": { "homE": {
"welcome": "Welcome to our website", "welcome": "Welcome to our website",
@@ -230,6 +231,11 @@
"yes": "Yes", "yes": "Yes",
"no": "No" "no": "No"
}, },
"article": {
"synopsis": "Article synopsis",
"publishtime": "Publish time",
"Comments": "Comment count"
},
"sort": "Sort", "sort": "Sort",
"pleaseenter": "Please enter", "pleaseenter": "Please enter",
"Belongingbrand": "Belonging Brand", "Belongingbrand": "Belonging Brand",
+7 -1
View File
@@ -31,7 +31,8 @@
"email":"Эл. почта", "email":"Эл. почта",
"attribute":"Свойства", "attribute":"Свойства",
"attributes":"Список атрибутов", "attributes":"Список атрибутов",
"categories":"Категории атрибутов" "categories":"Категории атрибутов",
"article": "Управление статьями"
}, },
"home": { "home": {
"welcome": "Добро пожаловать на наш сайт", "welcome": "Добро пожаловать на наш сайт",
@@ -230,6 +231,11 @@
"yes": "Да", "yes": "Да",
"no": "Нет" "no": "Нет"
}, },
"article": {
"synopsis": "Аннотация статьи",
"publishtime": "Время публикации",
"Comments": "Число комментариев"
},
"sort": "Сортировка", "sort": "Сортировка",
"pleaseenter": "Пожалуйста, введите", "pleaseenter": "Пожалуйста, введите",
"Belongingbrand": "Принадлежащий бренд", "Belongingbrand": "Принадлежащий бренд",
+7 -1
View File
@@ -31,7 +31,8 @@
"email":"邮箱管理", "email":"邮箱管理",
"attribute":"属性管理", "attribute":"属性管理",
"attributes":"属性列表", "attributes":"属性列表",
"categories":"属性分类" "categories":"属性分类",
"article":"文章管理"
}, },
"home": { "home": {
"welcome": "欢迎访问我们的网站", "welcome": "欢迎访问我们的网站",
@@ -230,6 +231,11 @@
"yes":"是", "yes":"是",
"no":"否" "no":"否"
}, },
"article":{
"synopsis":"文章简介",
"publishtime":"发布时间",
"Comments":"评论数量"
},
"sort": "排序", "sort": "排序",
"pleaseenter":"请输入", "pleaseenter":"请输入",
"Belongingbrand":"所属品牌", "Belongingbrand":"所属品牌",
@@ -416,7 +416,7 @@ tinymce.addI18n('zh',{
"Spellcheck": "\u62fc\u5199\u68c0\u67e5", "Spellcheck": "\u62fc\u5199\u68c0\u67e5",
"Caption": "\u6807\u9898", "Caption": "\u6807\u9898",
"Insert template": "\u63d2\u5165\u6a21\u677f" "Insert template": "\u63d2\u5165\u6a21\u677f"
},"en":{ },"en",{
"Redo": "Redo", "Redo": "Redo",
"Undo": "Undo", "Undo": "Undo",
"Cut": "Cut", "Cut": "Cut",
@@ -833,5 +833,5 @@ tinymce.addI18n('zh',{
"Whole words": "Whole words", "Whole words": "Whole words",
"Spellcheck": "Spellcheck", "Spellcheck": "Spellcheck",
"Caption": "Caption", "Caption": "Caption",
"Insert template": "Insert template" "Insert template": "\u63d2\u5165\u6a21\u677f"
}); });
+12 -3
View File
@@ -62,7 +62,8 @@ var langConfig = {
'delete': '删除', 'delete': '删除',
'check': '审核', 'check': '审核',
'show': '详情', 'show': '详情',
'sku':"属性" 'sku':"属性",
'comments':'评论'
} }
}, },
audit:{ audit:{
@@ -98,6 +99,7 @@ var langConfig = {
'sort': '排序', 'sort': '排序',
'create_time': '创建时间', 'create_time': '创建时间',
'update_time': '更新时间', 'update_time': '更新时间',
'publish_time':'发布时间',
'operation': '操作', 'operation': '操作',
"agtype":"协议类型", "agtype":"协议类型",
"title":"标题", "title":"标题",
@@ -109,6 +111,7 @@ var langConfig = {
"status2":"禁用", "status2":"禁用",
"logo":"品牌logo", "logo":"品牌logo",
"is_hot":"是否热门", "is_hot":"是否热门",
"synopsis":"文章简介",
"yes":"是", "yes":"是",
"no":"否" "no":"否"
}, },
@@ -199,7 +202,8 @@ var langConfig = {
'delete': 'Delete', 'delete': 'Delete',
'check': 'Check', 'check': 'Check',
'show': 'Details', 'show': 'Details',
'sku':'Attribute' 'sku':'Attribute',
'comments':'comments'
}, },
}, },
audit:{ audit:{
@@ -235,6 +239,7 @@ var langConfig = {
'sort': 'Sort', 'sort': 'Sort',
'create_time': 'Create Time', 'create_time': 'Create Time',
'update_time': 'Update Time', 'update_time': 'Update Time',
'publish_time':'Publish time',
'operation': 'Operation', 'operation': 'Operation',
"agtype":"Protocol", "agtype":"Protocol",
"title":"Title", "title":"Title",
@@ -246,6 +251,7 @@ var langConfig = {
"status2": "Disabled", "status2": "Disabled",
"logo": "Brand Logo", "logo": "Brand Logo",
"is_hot": "Is Hot", "is_hot": "Is Hot",
"synopsis": "Article synopsis",
"yes": "Yes", "yes": "Yes",
"no": "No" "no": "No"
}, },
@@ -324,7 +330,8 @@ var langConfig = {
"delete": "Удалить", "delete": "Удалить",
"check": "Проверить", "check": "Проверить",
"show": "Подробности", "show": "Подробности",
'sku':'Свойства' 'sku':'Свойства',
'comments':'комментарий'
} }
}, },
"audit": { "audit": {
@@ -360,6 +367,7 @@ var langConfig = {
"sort": "Сортировка", "sort": "Сортировка",
"create_time": "Дата создания", "create_time": "Дата создания",
"update_time": "Дата обновления", "update_time": "Дата обновления",
"publish_time": "Время публикации",
"operation": "Действия", "operation": "Действия",
"agtype": "Тип соглашения", "agtype": "Тип соглашения",
"title": "Заголовок", "title": "Заголовок",
@@ -371,6 +379,7 @@ var langConfig = {
"status2": "Отключено", "status2": "Отключено",
"logo": "Логотип бренда", "logo": "Логотип бренда",
"is_hot": "Популярный", "is_hot": "Популярный",
"synopsis": "Аннотация статьи",
"yes": "Да", "yes": "Да",
"no": "Нет" "no": "Нет"
}, },
+42
View File
@@ -535,3 +535,45 @@ self.skudelete = function(options){
options.url = baseUrl+"console/vehicle/new/sku/"+options.data.id+"/delete" options.url = baseUrl+"console/vehicle/new/sku/"+options.data.id+"/delete"
return ajax(options); return ajax(options);
}; };
//文章article
self.articleadd = function(options){
options = options ? options : {};
options.url = baseUrl+"console/article/add";
return ajax(options);
};
self.articledetail = function(options){
options = options ? options : {};
options.url = baseUrl+"console/article/"+options.data.id+"/detail"
return ajax(options);
};
self.articleupdate = function(options){
options = options ? options : {};
options.url = baseUrl+"console/article/"+options.data.id+"/update"
return ajax(options);
};
self.articledelete = function(options){
options = options ? options : {};
options.url = baseUrl+"console/article/"+options.data.id+"/delete"
return ajax(options);
};
//评论
self.commentadd = function(options){
options = options ? options : {};
options.url = baseUrl+"console/comment/add";
return ajax(options);
};
self.commentdetail = function(options){
options = options ? options : {};
options.url = baseUrl+"console/comment/"+options.data.id+"/detail"
return ajax(options);
};
self.commentupdate = function(options){
options = options ? options : {};
options.url = baseUrl+"console/comment/"+options.data.id+"/update"
return ajax(options);
};
self.commentdelete = function(options){
options = options ? options : {};
options.url = baseUrl+"console/comment/"+options.data.id+"/delete"
return ajax(options);
};
+73
View File
@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>USED CAR</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../assets/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend data-i18n="search_info"></legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" data-i18n="seach.title"></label>
<div class="layui-input-inline">
<input type="text" name="title" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label" data-i18n="seach.status"></label>
<div class="layui-input-block">
<select name="status" class="layui-input">
<option value="" data-i18n="select"></option>
<option value="1" data-i18n="selectlist.status1"></option>
<option value="0" data-i18n="selectlist.status2"></option>
</select>
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> <span data-i18n="btn.search"></span></button>
</div>
</div>
</form>
</div>
</fieldset>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
<!-- <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除 </button> -->
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a class="show" lay-event="comments">评论</a>
<a class="edit" lay-event="edit">编辑</a>
<a class="delete" lay-event="delete">删除</a>
</script>
</div>
</div>
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="../assets/main.js" charset="utf-8"></script>
<script src="../assets/js/tablei18n.js"></script>
<script src="../assets/js/i18n2.js"></script>
<script src="../assets/js/article.js" type="text/javascript" charset="utf-8"></script>
<script>
</script>
</body>
</html>
+62
View File
@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>USED CAR</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../assets/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend data-i18n="search_info"></legend>
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" data-i18n="seach.name"></label>
<div class="layui-input-inline">
<input type="text" name="name" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-normal" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> <span data-i18n="btn.search"></span></button>
</div>
</div>
</form>
</div>
</fieldset>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a class="edit" lay-event="edit">编辑</a>
<a class="delete" lay-event="delete">删除</a>
</script>
</div>
</div>
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="../assets/main.js" charset="utf-8"></script>
<script src="../assets/js/tablei18n.js"></script>
<script src="../assets/js/i18n2.js"></script>
<script src="../assets/public.js"></script>
<script src="../assets/js/articlecoms.js" type="text/javascript" charset="utf-8"></script>
<script>
</script>
</body>
</html>
+2 -2
View File
@@ -43,8 +43,8 @@
<label class="layui-form-label" data-i18n="seach.status"></label> <label class="layui-form-label" data-i18n="seach.status"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<select name="status" class="layui-input"> <select name="status" class="layui-input">
<option value="1" data-i18n="seach.status1">正常</option> <option value="1" data-i18n="selectlist.status1"></option>
<option value="0" data-i18n="seach.status2">禁用</option> <option value="0" data-i18n="selectlist.status2"></option>
</select> </select>
</div> </div>
</div> </div>
+2 -2
View File
@@ -42,8 +42,8 @@
<label class="layui-form-label" data-i18n="seach.status"></label> <label class="layui-form-label" data-i18n="seach.status"></label>
<div class="layui-input-block"> <div class="layui-input-block">
<select name="status" class="layui-input"> <select name="status" class="layui-input">
<option value="1" data-i18n="seach.status1">正常</option> <option value="1" data-i18n="selectlist.status1"></option>
<option value="0" data-i18n="seach.status2">禁用</option> <option value="0" data-i18n="selectlist.status2"></option>
</select> </select>
</div> </div>
</div> </div>
+152
View File
@@ -0,0 +1,152 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../../assets/css/public.css" media="all">
<style>
body {
background-color: #ffffff;
}
.img-3 {
max-width: 64px;
max-height: 64px;
border-radius: 6px;
}
.upload-item img{
height: 40px;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="seach.title"></label>
<div class="layui-input-block">
<input type="text" name="title" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="article.synopsis"></label>
<div class="layui-input-block">
<textarea name="subtitle" class="layui-textarea" id="subtitle"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.CoverImage"></label>
<div class="layui-input-block upload-item">
<img class="img-3" src="../../assets/images/noimg.png" alt="" />
<input type="text" style="display:none" name="cover" value="" />
<button type="button" class="layui-btn"><i class="layui-icon"></i><span data-i18n="userlist.uploadig"></span></button>
(<span data-i18n="Imagesize"></span> 870:450)
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="article.publishtime"></label>
<div class="layui-input-block">
<input type="text"name="publish_time" class="layui-input" id="ID-laydate-demo" placeholder="yyyy-MM-dd HH:mm:ss">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="article.Comments"></label>
<div class="layui-input-block">
<input type="number"name="num" min="0" class="layui-input" data-i18n-placeholder="pleaseenter">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="seach.content"></label>
<div class="layui-input-block">
<!-- <div id="editor" style="margin: 50px 0 50px 0">
</div> -->
<textarea name="content" id="content"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="seach.status"></label>
<div class="layui-input-block">
<select name="status" class="layui-input">
<option value="1" data-i18n="selectlist.status1"></option>
<option value="0" data-i18n="selectlist.status2"></option>
</select>
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-input-block bootm">
<input type="button" lay-submit lay-filter="saveBtn" id="saveBtn" value="确认">
</div>
</div>
</div>
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="../../assets/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script src="../../assets/main.js" charset="utf-8"></script>
<script src="../../assets/public.js" type="text/javascript" charset="utf-8"></script>
<script src="../../assets/js/i18n1.js"></script>
<script>
layui.use(['form','tinymce', 'util','upload','laydate' ], function () {
var form = layui.form,
layer = layui.layer,
util = layui.util,
upload = layui.upload,
t = layui.tinymce;
$ = layui.$;
var laydate = layui.laydate;
// 渲染
laydate.render({
elem: '#ID-laydate-demo',
type: 'datetime',
fullPanel: true // 2.8+
});
var edit = t.render({
elem: "#content",
height: 400,
form:{
name:'image'
},
plugins: 'image',
// headers: sessionStorage.tokencar,
images_upload_url: baseUrl+ 'console/upload/image',
},function(opt){
console.log(opt)
//加载完成后回调
});
edit.on("blur", function(){
layui.$("#content").val(edit.getContent());
});
$('.layui-btn').each(function(index, item){
var $item = $(item).closest('.upload-item');
upload.render({
elem: item,
url:baseUrl+ 'console/upload/image',
accept: 'images',
field: 'image',
done: function(res){
if(res.code == 0){
$item.find('img').attr('src',res.data.image_url);
$item.find('input').val(res.data.image_name);
}
}
});
});
//监听提交
form.on('submit(saveBtn)', function (data) {
var index = layer.alert(JSON.stringify(data.field), {
title: '最终的提交信息'
}, function () {
// 关闭弹出层
layer.close(index);
var iframeIndex = parent.layer.getFrameIndex(window.name);
parent.layer.close(iframeIndex);
});
return false;
});
});
</script>
</body>
</html>
+97
View File
@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../../assets/css/public.css" media="all">
<style>
body {
background-color: #ffffff;
}
.img-3 {
max-width: 64px;
max-height: 64px;
border-radius: 6px;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="seach.name"></label>
<div class="layui-input-block">
<input type="hidden" name="article_id" id="article_id" value="" />
<input type="text" name="name" lay-verify="required" lay-reqtext="名称不能为空" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label " data-i18n="userlist.head" ></label>
<div class="layui-input-block">
<img class="img-3" src="" alt="" />
<input type="text" style="display:none" name="avatar" value="" id="avatarinput" />
<button type="button" class="layui-btn" id="avatar"><i class="layui-icon"></i><span data-i18n="userlist.uploadig"></span></button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="seach.content"></label>
<div class="layui-input-block">
<textarea name="content" class="layui-textarea" id="content"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-input-block bootm">
<input type="button" lay-submit lay-filter="saveBtn" id="saveBtn" value="确认">
</div>
</div>
</div>
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="../../assets/main.js" charset="utf-8"></script>
<script src="../../assets/public.js" type="text/javascript" charset="utf-8"></script>
<script src="../../assets/js/i18n1.js"></script>
<script>
layui.use(['form','upload'], function () {
var form = layui.form,
layer = layui.layer,
upload = layui.upload,
$ = layui.$;
layui.form.render();
$("#article_id").val(getQueryString('id'))
upload.render({
elem: "#avatar",
url:baseUrl+ 'console/upload/image',
accept: 'images',
field: 'image',
done: function(res){
if(res.code == 0){
$(".img-3").attr('src',res.data.image_url);
$("#avatarinput").val(res.data.image_name);
}
}
});
//监听提交
form.on('submit(saveBtn)', function (data) {
var index = layer.alert(JSON.stringify(data.field), {
title: '最终的提交信息'
}, function () {
// 关闭弹出层
layer.close(index);
var iframeIndex = parent.layer.getFrameIndex(window.name);
parent.layer.close(iframeIndex);
});
return false;
});
});
</script>
</body>
</html>
+118
View File
@@ -0,0 +1,118 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../../assets/css/public.css" media="all">
<style>
body {
background-color: #ffffff;
}
.img-3 {
max-width: 64px;
max-height: 64px;
border-radius: 6px;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form" lay-filter="edit">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="seach.name"></label>
<div class="layui-input-block">
<input type="hidden" name="id" id="idedt" value="" />
<input type="text" name="name" lay-verify="required" lay-reqtext="名称不能为空" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="typeimg"></label>
<div class="layui-input-block">
<img class="img-3" src="" alt="" />
<input type="text" style="display:none" name="avatar" value="" id="avatarinput" />
<button type="button" class="layui-btn" id="avatar"><i class="layui-icon"></i><span data-i18n="userlist.uploadig"></span></button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="seach.content"></label>
<div class="layui-input-block">
<textarea name="content" class="layui-textarea" id="content"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-input-block bootm">
<input type="button" lay-submit lay-filter="saveBtn" id="saveBtn" value="确认">
</div>
</div>
</div>
</div>
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="../../assets/main.js" charset="utf-8"></script>
<script src="../../assets/public.js" type="text/javascript" charset="utf-8"></script>
<script src="../../assets/js/i18n1.js"></script>
<script>
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
layui.use(['form','upload'], function () {
var form = layui.form,
layer = layui.layer,
upload = layui.upload,
$ = layui.$;
form.render();
$("#idedt").val(getQueryString('id'))
self.commentdetail({
type:'get',
data:{id:getQueryString('id')},
successCallBack: function(result){
if (result.code == 0) {
$(".img-3").attr('src',result.data.avatar_full);
form.val('edit', result.data)
form.render();
};
},
failCallBack: function(result){
alert(result.message);
}
})
//监听提交
form.on('submit(saveBtn)', function (data) {
var index = layer.alert(JSON.stringify(data.field), {
title: '最终的提交信息'
}, function () {
// 关闭弹出层
layer.close(index);
var iframeIndex = parent.layer.getFrameIndex(window.name);
parent.layer.close(iframeIndex);
});
return false;
});
upload.render({
elem: "#avatar",
url:baseUrl+ 'console/upload/image',
accept: 'images',
field: 'image',
done: function(res){
if(res.code == 0){
$(".img-3").attr('src',res.data.image_url);
$("#avatarinput").val(res.data.image_name);
}
}
});
});
</script>
</body>
</html>
+155
View File
@@ -0,0 +1,155 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../../assets/css/public.css" media="all">
<style>
body {
background-color: #ffffff;
}
.img-3 {
max-width: 64px;
max-height: 64px;
border-radius: 6px;
}
.upload-item img{
height: 40px;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form" lay-filter="edit">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="seach.title"></label>
<div class="layui-input-block">
<input type="hidden" name="id" id="idedt" value="" />
<input type="text" name="title" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="article.synopsis"></label>
<div class="layui-input-block">
<textarea name="subtitle" class="layui-textarea" id="subtitle"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.CoverImage"></label>
<div class="layui-input-block upload-item">
<img class="img-3" src="../../assets/images/noimg.png" alt="" />
<input type="text" style="display:none" name="cover" value="" />
<button type="button" class="layui-btn"><i class="layui-icon"></i><span data-i18n="userlist.uploadig"></span></button>
(<span data-i18n="Imagesize"></span> 870:450)
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="article.publishtime"></label>
<div class="layui-input-block">
<input type="text"name="publish_time" class="layui-input" id="ID-laydate-demo" placeholder="yyyy-MM-dd">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="seach.content"></label>
<div class="layui-input-block">
<textarea name="content" id="content"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="seach.status"></label>
<div class="layui-input-block">
<select name="status" class="layui-input">
<option value="1" data-i18n="selectlist.status1"></option>
<option value="0" data-i18n="selectlist.status2"></option>
</select>
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-input-block bootm">
<input type="button" lay-submit lay-filter="saveBtn" id="saveBtn" value="确认">
</div>
</div>
</div>
</div>
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="../../assets/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script src="../../assets/main.js" charset="utf-8"></script>
<script src="../../assets/public.js" type="text/javascript" charset="utf-8"></script>
<script src="../../assets/js/i18n1.js"></script>
<script>
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
layui.use(['form','tinymce','upload','laydate' ], function () {
var form = layui.form,
layer = layui.layer,
upload = layui.layer,
t = layui.tinymce,
$ = layui.$;
var laydate = layui.laydate;
laydate.render({
elem: '#ID-laydate-demo',
type: 'datetime',
fullPanel: true // 2.8+
});
var edit = t.render({
elem: "#content",
height: 400,
form:{
name:'image'
},
plugins: 'image',
images_upload_url:baseUrl+ 'console/upload/image',
},function(opt){
console.log(opt)
//加载完成后回调
});
edit.on("blur", function(){
layui.$("#content").val(edit.getContent());
});
form.render();
$("#idedt").val(getQueryString('id'))
self.articledetail({
type:'get',
data:{id:getQueryString('id')},
successCallBack: function(result){
if (result.code == 0) {
$(".img-3").attr("src",result.data.cover_full)
$("#cover").val(result.data.cover)
$("#ID-laydate-demo").val(result.data.publish_time);
form.val('edit', result.data)
edit.setContent(result.data.content);
form.render();
};
},
failCallBack: function(result){
alert(result.message);
}
})
//监听提交
form.on('submit(saveBtn)', function (data) {
var index = layer.alert(JSON.stringify(data.field), {
title: '最终的提交信息'
}, function () {
// 关闭弹出层
layer.close(index);
var iframeIndex = parent.layer.getFrameIndex(window.name);
parent.layer.close(iframeIndex);
});
return false;
});
});
</script>
</body>
</html>
+450
View File
@@ -0,0 +1,450 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="../../assets/css/public.css" media="all">
<style>
html,.layuimini-form {
height: 100%;
}
body,.layui-tab{
background-color: #ffffff;
height: 93%;
}
.layui-tab-content{
height: 87%;
/* overflow: scroll; */
}
.c-t div{
line-height: 55px;
}
.img-3 {
max-width: 36px;
max-height: 36px;
border-radius: 6px;
}
.upload-item img{
height: 40px;
}
.feature-item{
border: 1px solid #e6e6e6;
padding: 10px;
margin-bottom: 10px;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form">
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
<ul class="layui-tab-title">
<li class="layui-this" data-i18n="carlist.basic_info"></li>
<li data-i18n="carlist.car_album"></li>
<li data-i18n="newcar.introduce"></li>
<li data-i18n="newcar.characteristic"></li>
<li data-i18n="newcar.problem"></li>
<li >车辆属性</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<div class="layui-row">
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.product_name"></label>
<div class="layui-input-block">
<input type="text" name="name" lay-verify="required" lay-reqtext="产品名称不能为空"
data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.VIN"></label>
<div class="layui-input-block">
<input type="text" name="vin" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.CoverImage"></label>
<div class="layui-input-block upload-item">
<img class="img-3" src="../../assets/images/noimg.png" alt="" />
<input type="text" style="display:none" name="cover" value="" />
<button type="button" class="layui-btn btnup"><i class="layui-icon"></i><span data-i18n="userlist.uploadig"></span></button>
(<span data-i18n="Imagesize"></span>400 × 300)
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="newcar.coveralt"></label>
<div class="layui-input-block">
<input type="text" name="cover_alt" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.price"></label>
<div class="layui-input-block">
<input type="text" name="price" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.brand"></label>
<div class="layui-input-block">
<select name="brand" id="brand" lay-search lay-filter="brandSelect" class="layui-input">
</select>
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.model"></label>
<div class="layui-input-block">
<select name="model" id="model" lay-search class="layui-input">
</select>
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.type"></label>
<div class="layui-input-block">
<select name="type" id="vehicle_type" class="layui-input">
</select>
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="carlist.energy"></label>
<div class="layui-input-block">
<select name="energy" id="vehicle_energy" class="layui-input">
</select>
</div>
</div>
</div>
<div class="layui-col-md6 layui-col-sm6">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="newcar.video"></label>
<div class="layui-input-block">
<input type="text" name="video" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
</div>
<div class="layui-col-md12 layui-col-sm12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="newcar.memo"></label>
<div class="layui-input-block">
<textarea name="condition_desc" class="layui-textarea" id="condition_desc"></textarea>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab-item">
<div class="layui-row">
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="carlist.car_album"></label>
<div class="layui-input-block">
<div class="layui-upload">
<button type="button" class="layui-btn" id="albumUpload">
<i class="layui-icon">&#xe67c;</i><span data-i18n="userlist.uploadig"></span>
</button>
<div class="layui-upload-list" id="albumList">
<!-- 图片预览区域 -->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab-item">
<div class="layui-row">
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="newcar.introduce"></label>
<div class="layui-input-block">
<div class="intro-list" id="introList">
<!-- 介绍文本框列表 -->
</div>
<div style="margin-top: 10px;">
<button type="button" class="layui-btn layui-btn-normal" id="addIntro">
<i class="layui-icon">&#xe654;</i><span data-i18n="btn.add"></span>
</button>
</div>
</div>
</div>
<!-- 车辆介绍 -->
</div>
</div>
<div class="layui-tab-item">
<div class="layui-row">
<!-- 车辆特点 -->
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="newcar.characteristic"></label>
<div class="layui-input-block">
<div class="feature-list" id="featureList">
<!-- 特点列表 -->
</div>
<div style="margin-top: 10px;">
<button type="button" class="layui-btn layui-btn-normal" id="addFeature">
<i class="layui-icon">&#xe654;</i><span data-i18n="btn.add"></span>
</button>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab-item">
<div class="layui-row">
<!-- 常见问题 -->
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="newcar.problem"></label>
<div class="layui-input-block">
<div class="feature-list" id="problem">
</div>
<div style="margin-top: 10px;">
<button type="button" class="layui-btn layui-btn-normal" id="addproblem">
<i class="layui-icon">&#xe654;</i><span data-i18n="btn.add"></span>
</button>
</div>
</div>
</div>
</div>
</div>
<div class="layui-tab-item">
<div class="layui-form-item">
<label class="layui-form-label">属性</label>
<div class="layui-input-block">
<div class="feature-list" id="attributelist">
</div>
<div style="margin-top: 10px;">
<button type="button" class="layui-btn layui-btn-normal" id="addAttribute">
<i class="layui-icon">&#xe654;</i><span data-i18n="btn.add"></span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<div class="layui-input-block bootm">
<input type="button" lay-submit lay-filter="saveBtn" id="saveBtn" value="确认">
</div>
</div>
</div>
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="../../assets/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script src="../../assets/main.js" charset="utf-8"></script>
<script src="../../assets/public.js" type="text/javascript" charset="utf-8"></script>
<script src="../../assets/js/i18n1.js"></script>
<script>
layui.use(['form','upload','tinymce'], function() {
var form = layui.form,
layer = layui.layer,
upload = layui.upload,
t = layui.tinymce,
$ = layui.$;
$(document).ready(function () {
brandpresetfn(form,true)
energypresetfn(form,true)
typespresetfn(form,true)
});
form.on('select(brandSelect)', function(data){
var selectedValue = data.value;
modelpresetfn(form,true,selectedValue)
});
$('.btnup').each(function(index, item){
var $item = $(item).closest('.upload-item');
upload.render({
elem: item,
url:baseUrl+ 'console/upload/image',
accept: 'images',
field: 'image',
done: function(res){
if(res.code == 0){
$item.find('img').attr('src',res.data.image_url);
$item.find('input').val(res.data.image_name);
}
}
});
});
// 图片上传
uploadimage(upload,baseUrl)
// 添加介绍文本框
addIntro('introList',form,'请填写介绍内容')
// 添加介绍按钮点击事件
$('#addIntro').on('click', function() {
addIntro('introList',form,'请填写介绍内容')
});
// 删除介绍按钮点击事件
$(document).on('click', '.delete-intro', function() {
$(this).closest('.intro-item').remove();
// 重新排序索引
$('#introList .intro-item').each(function(index) {
$(this).find('textarea').attr('name', 'intro[' + index + ']');
});
});
// 页面加载时添加一个特点
addFeature('featureList',form,'特点名称','特点描述','','')
// 添加特点按钮点击事件
$('#addFeature').on('click', function() {
addFeature('featureList',form,'特点名称','特点描述','','')
});
// 删除特点按钮点击事件
$(document).on('click', '.delete-feature', function() {
$(this).closest('.feature-item').remove();
// 重新排序索引
$('#featureList .feature-item').each(function(index) {
$(this).find('input[name^="title"]').attr('name', 'title[' + index + ']');
$(this).find('textarea[name^="content"]').attr('name', 'content[' + index + ']');
});
});
// 页面加载时添加一个问题
addFeature1('problem',form,'问题名称','问题描述','','')
// 添加问题按钮点击事件
$('#addproblem').on('click', function() {
addFeature1('problem',form,'问题名称','问题描述','','')
});
$(document).on('click', '.delete-feature', function() {
$(this).closest('.feature-item1').remove();
// 重新排序索引
$('#problem .feature-item1').each(function(index) {
$(this).find('input[name^="titlep"]').attr('name', 'titlep[' + index + ']');
$(this).find('textarea[name^="contentp"]').attr('name', 'contentp[' + index + ']');
});
});
// 添加属性按钮点击事件
$('#addAttribute').on('click', function() {
var index = $('#attributelist .feature-item').length;
var html = `<div class="feature-item">
<div class="layui-form-item">
<label class="layui-form-label">属性名称</label>
<div class="layui-input-block">
<select name="attribute_id[${index}]" class="attribute_id layui-input" lay-filter="attributeSelect">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">属性值</label>
<div class="layui-input-block">
<select name="value_id[${index}]" class="layui-input value_id" >
</select>
</div>
</div>
<div class="layui-form-item upload-image-item">
<label class="layui-form-label required" data-i18n="Images"></label>
<div class="layui-input-block upload-item">
<img class="img-3" src="../../assets/images/noimg.png" alt="" />
<input type="text" style="display:none" name="img[${index}]" value="" />
<button type="button" class="layui-btn btnup"><i class="layui-icon">&#xe67c;</i><span data-i18n="userlist.uploadig"></span></button>
</div>
</div>
<div class="layui-input-block" style="margin-left: 0; text-align: right;">
<button type="button" class="layui-btn layui-btn-danger layui-btn-sm delete-attribute">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>
</div>`;
var $newAttribute = $(html);
$('#attributelist').append($newAttribute);
// 重新初始化上传按钮
$newAttribute.find('.btnup').each(function(index, item){
var $item = $(item).closest('.upload-item');
upload.render({
elem: item,
url: baseUrl + 'console/upload/image',
accept: 'images',
field: 'image',
done: function(res){
if(res.code == 0){
$item.find('img').attr('src',res.data.image_url);
$item.find('input').val(res.data.image_name);
}
}
});
});
window.i18n.updatePageContent();
attributespresetfn(form, false, $newAttribute);
form.render();
// 默认隐藏图片上传模块
$newAttribute.find('.upload-image-item').hide();
});
// 监听属性名称下拉框变化,attribute_id=1时显示图片上传模块,否则隐藏
form.on('select(attributeSelect)', function(data){
var $featureItem = $(data.elem).closest('.feature-item');
var selectedValue = data.value;
// 获取当前选中option的data-img属性
var $selectedOption = $(data.elem).find('option:selected');
var dataImg = $selectedOption.attr('data-img');
valuespresetfn(form, true, selectedValue, $featureItem);
// 清空图片上传内容
var $uploadItem = $featureItem.find('.upload-image-item .upload-item');
$uploadItem.find('img').attr('src', '../../assets/images/noimg.png');
$uploadItem.find('input[type="text"]').val('');
if (dataImg == '1'||dataImg == '2') {
$featureItem.find('.upload-image-item').show();
} else {
$featureItem.find('.upload-image-item').hide();
}
});
// 删除属性按钮点击事件
$(document).on('click', '.delete-attribute', function() {
$(this).closest('.feature-item').remove();
// 重新排序索引
$('#attributelist .feature-item').each(function(index) {
$(this).find('select[name^="attribute_id"]').attr('name', 'attribute_id[' + index + ']');
$(this).find('select[name^="value_id"]').attr('name', 'value_id[' + index + ']');
$(this).find('input[name^="img"]').attr('name', 'img[' + index + ']');
});
});
//监听提交
form.on('submit(saveBtn)', function(data) {
var index = layer.alert(JSON.stringify(data.field), {
title: '最终的提交信息'
}, function() {
// 关闭弹出层
layer.close(index);
var iframeIndex = parent.layer.getFrameIndex(window.name);
parent.layer.close(iframeIndex);
});
return false;
});
});
</script>
</body>
</html>