Compare commits

9 Commits

Author SHA1 Message Date
浅念 ec19e24f68 上传图片 添加加载中动画 2025-09-01 14:22:08 +08:00
浅念 431c41be79 添加广告位 2025-07-10 09:30:55 +08:00
浅念 f785a2cf08 修改编辑 2025-06-30 15:04:22 +08:00
浅念 c97a2ab8c7 添加文章管理 2025-06-27 17:27:56 +08:00
浅念 1374d1938a sku 2025-06-20 17:05:56 +08:00
浅念 b2a1d5e84e 添加加载中 2025-06-17 16:46:31 +08:00
浅念 42f8131d71 添加编辑人显示 2025-06-12 09:34:37 +08:00
浅念 81d91cfbd0 添加创建人显示 2025-06-11 16:12:50 +08:00
浅念 f9bb1b2a55 线上地址 2025-06-06 11:46:08 +08:00
51 changed files with 5716 additions and 675 deletions
+46
View File
@@ -101,6 +101,52 @@
"href": "page/email.html", "href": "page/email.html",
"icon": "fa fa-info-circle", "icon": "fa fa-info-circle",
"target": "_self" "target": "_self"
},
{
"title": "属性管理",
"name": "attribute",
"href": "",
"icon": "fa fa-calendar",
"target": "_self",
"child": [
{
"title": "属性分类",
"name":"categories",
"href": "page/categories.html",
"icon": "fa fa-calendar",
"target": "_self"
},
{
"title": "属性列表",
"name":"attributes",
"href": "page/attribute.html",
"icon": "fa fa-calendar",
"target": "_self"
}
]
},
{
"title": "系统管理",
"name": "system",
"href": "",
"icon": "fa fa-gear",
"target": "_self",
"child": [
{
"title": "文章管理",
"name":"article",
"href": "page/article.html",
"icon": "fa fa-file-word-o",
"target": "_self"
},
{
"title": "广告管理",
"name":"advertisement",
"href": "page/advertisement.html",
"icon": "fa fa-calendar",
"target": "_self"
}
]
} }
] ]
} }
+1
View File
@@ -89,6 +89,7 @@ body {
} }
.check, .check,
.show, .show,
.sku,
.edit { .edit {
margin-right: 10px; margin-right: 10px;
} }
+230
View File
@@ -0,0 +1,230 @@
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.set)
.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/adp/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: 'title', title: lang.alllist.adname},
{field: 'status',title:lang.alllist.status,
templet: function (d) {
form.on("switch(status)", function (data) {
let load = layer.load();
let postData = {};
postData.status = data.elem.checked ? 1 : 0;
postData.id = d.id;
postData.name = d.name;
self.brandupdate({
type:'post',
data: postData,
successCallBack: function (result) {
layer.msg(result.message)
layer.close(load);
},
failCallBack: function (result) {
layer.msg(result.message)
layer.closeAll('loading');
tableInitb.reload()
}
})
});
let checked = d['status'] === 1 ? "checked" : "";
return '<input type="checkbox" value="'+d.status+'" lay-filter="status" lay-skin="switch" lay-text="" '+checked+'/>';
}
},
{field: 'sort', title: lang.alllist.sort},
{field: 'created_at',title: lang.alllist.create_time},
{field: 'updated_at',title: lang.alllist.update_time},
{title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function(res, curr, count){
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/advertisementadd.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.adpadd({
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/advertisementedit.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.adpupdate({
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 === 'set') {
var index = layer.open({
title: lang.carlist.operations.set,
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: false,
area: ['85%', '90%'],
content: '../page/advertisementset.html?id='+data.id
});
}else if (obj.event === 'delete') {
layer.confirm(lang.audit.confirm_delete, function(index) {
self.adpdelete({
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()
}
})
});
}
});
});
+239
View File
@@ -0,0 +1,239 @@
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.set)
.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/ad/list?adp_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: 'title', title: lang.carlist.product_name},
{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.full_img+'" src="'+d.full_img+'">'
return img;
}
},
{field: 'status',title:lang.alllist.status,
templet: function (d) {
form.on("switch(status)", function (data) {
let load = layer.load();
let postData = {};
postData.status = data.elem.checked ? 1 : 0;
postData.id = d.id;
postData.name = d.name;
self.brandupdate({
type:'post',
data: postData,
successCallBack: function (result) {
layer.msg(result.message)
layer.close(load);
},
failCallBack: function (result) {
layer.msg(result.message)
layer.closeAll('loading');
tableInitb.reload()
}
})
});
let checked = d['status'] === 1 ? "checked" : "";
return '<input type="checkbox" value="'+d.status+'" lay-filter="status" lay-skin="switch" lay-text="" '+checked+'/>';
}
},
{field: 'type_txt', title: lang.carlist.type},
{field: 'sort', title: lang.alllist.sort},
{field: 'created_at',title: lang.alllist.create_time},
{field: 'updated_at',title: lang.alllist.update_time},
{title: lang.alllist.operation, minWidth: 150, 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: {
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/advertisementsetadd.html?adp_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.adadd({
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/advertisementsetedit.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.adupdate({
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.addelete({
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()
}
})
});
}
});
});
+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()
}
})
});
}
});
});
+247
View File
@@ -0,0 +1,247 @@
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/vehicle/new/attributes/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: 'attribute_name', title: lang.alllist.name},
{field: 'status',title:lang.alllist.status,
// templet: function(d){
// var img= '<input type="checkbox" checked="" name="open" lay-skin="switch" lay-filter="switchTest" lay-text="ON|OFF">'
// return img;
// },
templet: function (d) {
form.on("switch(status)", function (data) {
let load = layer.load();
let postData = {};
postData.status = data.elem.checked ? 1 : 0;
postData.id = d.id;
postData.name = d.name;
self.brandupdate({
type:'post',
data: postData,
successCallBack: function (result) {
layer.msg(result.message)
layer.close(load);
},
failCallBack: function (result) {
layer.msg(result.message)
layer.closeAll('loading');
tableInitb.reload()
}
})
});
let checked = d['status'] === 1 ? "checked" : "";
return '<input type="checkbox" value="'+d.status+'" lay-filter="status" lay-skin="switch" lay-text="" '+checked+'/>';
}
},
{field: 'created_at',title: lang.alllist.create_time},
{field: 'updated_at',title: lang.alllist.update_time},
{title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function(res, curr, count){
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/attributeadd.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; //获取提交的字段
const result = {};
if(field.input_type=='color'){
result.value = objentries(field,'color_code','value_name','color_code','value_name')
}else{
result.value = objentries1(field,'value_name','value_name')
}
for (const key in field) {
if (!key.includes('[') && !key.includes(']')) {
result[key] = field[key];
}
}
self.attributesadd({
type: 'post',
data: result,
successCallBack: function (res) {
layer.msg(res.message)
layer.close(index); //关闭弹层
tableInitb.reload()
},
failCallBack: function (res) {
alert(res.message);
}
})
});
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/attributeedit.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; //获取提交的字段
const result = {};
if(field.input_type=='color'){
result.value = objentriesedt(field,'color_code','value_name','idp','color_code','value_name','id')
}else{
result.value = objentriesedt1(field,'value_name','value_name','idp')
}
for (const key in field) {
if (!key.includes('[') && !key.includes(']')) {
result[key] = field[key];
}
}
self.attributesupdate({
type: 'post',
data: result,
successCallBack: function (res) {
layer.msg(res.message)
layer.close(index); //关闭弹层
tableInitb.reload()
},
failCallBack: function (res) {
alert(res.message);
}
})
// console.log(field)
});
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.attributesdelete({
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()
}
})
});
}
});
});
+10 -1
View File
@@ -80,7 +80,7 @@ layui.use(['form', 'table'], function () {
return '<input type="checkbox" value="'+d.status+'" lay-filter="status" lay-skin="switch" lay-text="" '+checked+'/>'; return '<input type="checkbox" value="'+d.status+'" lay-filter="status" lay-skin="switch" lay-text="" '+checked+'/>';
} }
}, },
{field: 'sort', title: lang.alllist.is_hot, {field: 'id', title: lang.alllist.is_hot,
templet: function (d) { templet: function (d) {
var v='' var v=''
if(d.is_hot==0){ if(d.is_hot==0){
@@ -92,6 +92,15 @@ layui.use(['form', 'table'], function () {
return v return v
} }
}, },
{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: 'created_at',title: lang.alllist.create_time}, {field: 'created_at',title: lang.alllist.create_time},
{field: 'updated_at',title: lang.alllist.update_time}, {field: 'updated_at',title: lang.alllist.update_time},
{title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"} {title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"}
+191
View File
@@ -0,0 +1,191 @@
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/vehicle/new/categories/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: 'category_name', title: lang.alllist.name},
{field: 'sort_order', title: lang.alllist.sort},
{field: 'created_at',title: lang.alllist.create_time},
{field: 'updated_at',title: lang.alllist.update_time},
{title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function(res, curr, count){
window.i18n.updatePageContent();
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var result = JSON.stringify(data.field);
table.reload('currentTableId', {
page: {
curr: 1
}
, where: {
category_name: data.field.category_name
}
}, '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/categoriesadd.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.categoriesadd({
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/categoriesedit.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.categoriesupdate({
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.categoriesdelete({
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()
}
})
});
}
});
});
+25 -1
View File
@@ -28,7 +28,16 @@
"newcar":"New Car", "newcar":"New Car",
"usedcar":"Used Car", "usedcar":"Used Car",
"seo":"SEO", "seo":"SEO",
"email":"Email" "email":"Email",
"attribute":"Attribute",
"attributes":"Attribute List",
"categories":"Attribute Categories",
"article": "Article Management",
"system":"System Management",
"advertisement":"Advertisement"
},
"advertisement":{
"title":"Advertising slot name"
}, },
"homE": { "homE": {
"welcome": "Welcome to our website", "welcome": "Welcome to our website",
@@ -208,7 +217,15 @@
"imgalt": "Image Description", "imgalt": "Image Description",
"coveralt": "Cover Image Description" "coveralt": "Cover Image Description"
}, },
"sku": {
"name": "Attribute name",
"value": "Attribute value",
"desc": "Attribute"
},
"alls": { "alls": {
"used_url": "More links for used cars",
"new_url": "More links for new cars",
"url": "URL",
"title": "Title", "title": "Title",
"title_placeholder": "Please enter title", "title_placeholder": "Please enter title",
"content": "Content", "content": "Content",
@@ -222,9 +239,16 @@
"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",
"Belongingtype": "Category",
"Images": "Images",
"typeimg": "Type Image", "typeimg": "Type Image",
"Imageratio":"Aspect ratio", "Imageratio":"Aspect ratio",
"Imagesize":"Image size", "Imagesize":"Image size",
+26 -2
View File
@@ -25,10 +25,19 @@
"agreement": "соглашениями", "agreement": "соглашениями",
"general": "Общие настройки", "general": "Общие настройки",
"dictionary": "Настройки словарей", "dictionary": "Настройки словарей",
"newcar":"Новые автомобили", "newcar":"Новый автомобиль",
"usedcar":"Б/у автомобили", "usedcar":"Б/у автомобили",
"seo":"SEO", "seo":"SEO",
"email":"Эл. почта" "email":"Эл. почта",
"attribute":"Свойства",
"attributes":"Список атрибутов",
"categories":"Категории атрибутов",
"article": "Управление статьями",
"system":"Управление системой",
"advertisement":"Управление рекламой"
},
"advertisement":{
"title":"Название рекламного места"
}, },
"home": { "home": {
"welcome": "Добро пожаловать на наш сайт", "welcome": "Добро пожаловать на наш сайт",
@@ -208,7 +217,15 @@
"imgalt": "Описание изображения", "imgalt": "Описание изображения",
"coveralt": "Описание обложки" "coveralt": "Описание обложки"
}, },
"sku": {
"name": "Название атрибута",
"value": "Значение атрибута",
"desc": "Атрибут"
},
"alls": { "alls": {
"used_url": "Больше ссылок на подержанные автомобили",
"new_url": "Больше ссылок на новые автомобили",
"url": "URL",
"title": "Заголовок", "title": "Заголовок",
"title_placeholder": "Введите заголовок", "title_placeholder": "Введите заголовок",
"content": "Содержание", "content": "Содержание",
@@ -222,9 +239,16 @@
"yes": "Да", "yes": "Да",
"no": "Нет" "no": "Нет"
}, },
"article": {
"synopsis": "Аннотация статьи",
"publishtime": "Время публикации",
"Comments": "Число комментариев"
},
"sort": "Сортировка", "sort": "Сортировка",
"pleaseenter": "Пожалуйста, введите", "pleaseenter": "Пожалуйста, введите",
"Belongingbrand": "Принадлежащий бренд", "Belongingbrand": "Принадлежащий бренд",
"Belongingtype": "Категория",
"Images": "Изображения",
"typeimg": "Изображение типа", "typeimg": "Изображение типа",
"Imageratio":"Соотношение сторон", "Imageratio":"Соотношение сторон",
"Imagesize":"Размер изображения", "Imagesize":"Размер изображения",
+26 -2
View File
@@ -25,10 +25,19 @@
"agreement": "协议管理", "agreement": "协议管理",
"general": "通用设置", "general": "通用设置",
"dictionary": "字典设置", "dictionary": "字典设置",
"newcar":"新车管理", "newcar":"新车",
"usedcar":"二手车", "usedcar":"二手车",
"seo":"SEO管理", "seo":"SEO管理",
"email":"邮箱管理" "email":"邮箱管理",
"attribute":"属性管理",
"attributes":"属性列表",
"categories":"属性分类",
"article":"文章管理",
"system":"系统管理",
"advertisement":"广告管理"
},
"advertisement":{
"title":"广告位名称"
}, },
"home": { "home": {
"welcome": "欢迎访问我们的网站", "welcome": "欢迎访问我们的网站",
@@ -208,7 +217,15 @@
"imgalt":"图片描述", "imgalt":"图片描述",
"coveralt":"封面图描述" "coveralt":"封面图描述"
}, },
"sku":{
"name":"属性名称",
"value":"属性值",
"desc":"属性"
},
"alls":{ "alls":{
"used_url": "二手车更多链接",
"new_url": "新车更多链接",
"url": "链接",
"title": "标题", "title": "标题",
"title_placeholder": "请输入标题", "title_placeholder": "请输入标题",
"content": "内容", "content": "内容",
@@ -222,9 +239,16 @@
"yes":"是", "yes":"是",
"no":"否" "no":"否"
}, },
"article":{
"synopsis":"文章简介",
"publishtime":"发布时间",
"Comments":"评论数量"
},
"sort": "排序", "sort": "排序",
"pleaseenter":"请输入", "pleaseenter":"请输入",
"Belongingbrand":"所属品牌", "Belongingbrand":"所属品牌",
"Belongingtype":"所属分类",
"Images":"图片",
"typeimg":"类型图", "typeimg":"类型图",
"Imageratio":"图片比例", "Imageratio":"图片比例",
"Imagesize":"图片尺寸", "Imagesize":"图片尺寸",
@@ -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"
}); });
+24 -3
View File
@@ -16,10 +16,12 @@ layui.use(['form', 'table'], function () {
.replace(/删除/g, lang.carlist.operations.delete) .replace(/删除/g, lang.carlist.operations.delete)
.replace(/审核/g, lang.carlist.operations.check) .replace(/审核/g, lang.carlist.operations.check)
.replace(/详情/g, lang.carlist.operations.show) .replace(/详情/g, lang.carlist.operations.show)
.replace(/属性/g, lang.carlist.operations.sku)
.replace(/Edit/g, lang.carlist.operations.edit) .replace(/Edit/g, lang.carlist.operations.edit)
.replace(/Delete/g, lang.carlist.operations.delete) .replace(/Delete/g, lang.carlist.operations.delete)
.replace(/Check/g, lang.carlist.operations.check) .replace(/Check/g, lang.carlist.operations.check)
.replace(/Details/g, lang.carlist.operations.show); .replace(/Details/g, lang.carlist.operations.show)
.replace(/Sku/g, lang.carlist.operations.sku);
$('#currentTableBar').html(newHtml); $('#currentTableBar').html(newHtml);
} }
var toolbarDemo = $('#toolbarDemo').html(); var toolbarDemo = $('#toolbarDemo').html();
@@ -67,6 +69,15 @@ layui.use(['form', 'table'], function () {
{field: 'price', title: lang.carlist.price}, {field: 'price', title: lang.carlist.price},
{field: 'type_name',title: lang.carlist.type,}, {field: 'type_name',title: lang.carlist.type,},
{field: 'energy_name', title: lang.carlist.energy}, {field: 'energy_name', title: lang.carlist.energy},
{field: 'energy_name', title: lang.carlist.create_user,
templet: function(d){
var v=''
if(d.creater){
if(d.creater.nickname){v=d.creater.nickname}
}
return v;
}
},
{field: 'created_at',minWidth: 150,title: lang.carlist.create_time}, {field: 'created_at',minWidth: 150,title: lang.carlist.create_time},
// {field: 'updated_at',minWidth: 150,title: '更新时间'}, // {field: 'updated_at',minWidth: 150,title: '更新时间'},
{title: lang.carlist.operation, minWidth: 200, toolbar: '#currentTableBar', align: "center",fixed:'right'} {title: lang.carlist.operation, minWidth: 200, toolbar: '#currentTableBar', align: "center",fixed:'right'}
@@ -147,8 +158,8 @@ layui.use(['form', 'table'], function () {
alert(result.message); alert(result.message);
} }
}) })
console.log(datas) // console.log(datas)
console.log(field) // console.log(field)
}); });
submit.trigger('click'); submit.trigger('click');
@@ -241,6 +252,16 @@ layui.use(['form', 'table'], function () {
area: ['60%', '85%'], area: ['60%', '85%'],
content: '../page/table/newcarlistshow.html?id='+data.id content: '../page/table/newcarlistshow.html?id='+data.id
}); });
}else if (obj.event === 'sku') { // 监听删除操作
var index = layer.open({
title: lang.carlist.operations.sku,
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: false,
area: ['80%', '90%'],
content: '../page/sku.html?id='+data.id
});
} }
}); });
+225
View File
@@ -0,0 +1,225 @@
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/vehicle/new/sku/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: 'status',title:lang.alllist.status,
// templet: function(d){
// var img= '<input type="checkbox" checked="" name="open" lay-skin="switch" lay-filter="switchTest" lay-text="ON|OFF">'
// return img;
// },
templet: function (d) {
form.on("switch(status)", function (data) {
let load = layer.load();
let postData = {};
postData.status = data.elem.checked ? 1 : 0;
postData.id = d.id;
postData.name = d.name;
self.brandupdate({
type:'post',
data: postData,
successCallBack: function (result) {
layer.msg(result.message)
layer.close(load);
},
failCallBack: function (result) {
layer.msg(result.message)
layer.closeAll('loading');
tableInitb.reload()
}
})
});
let checked = d['status'] === 1 ? "checked" : "";
return '<input type="checkbox" value="'+d.status+'" lay-filter="status" lay-skin="switch" lay-text="" '+checked+'/>';
}
},
{title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"}
]],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
done: function(res, curr, count){
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: 'SKU '+lang.userlist.add,
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['80%', '90%'],
btn: [lang.audit.confirm, lang.audit.cancel],
content: '../page/table/skuadd.html?vehicle_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; //获取提交的字段
const result = regroupIndexedFields(field,'skuAttributes');
self.skuadd({
type: 'post',
data: result,
successCallBack: function (result) {
layer.msg(result.message)
layer.close(index); //关闭弹层
tableInitb.reload()
},
failCallBack: function (result) {
alert(result.message);
}
})
// console.log(result);
// 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:'SKU '+lang.audit.edit_title,
type: 2,
shade: 0.2,
maxmin:true,
shadeClose: true,
area: ['80%', '90%'],
btn: [lang.audit.confirm, lang.audit.cancel],
content: '../page/table/skuedit.html?id='+data.id+'&vehicle_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; //获取提交的字段
const result = regroupIndexedFields(field,'skuAttributes');
// console.log(result)
// console.log(field)
self.skuupdate({
type:'post',
data:result,
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.skudelete({
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()
}
})
});
}
});
});
+29 -7
View File
@@ -1,8 +1,9 @@
// 多语言配置 // 多语言配置
var baseUrllang = 'https://server.orzar.shop/';
// var baseUrllang = "https://usedcar.server.hnxinyouhe.com/";
var langConfig = { var langConfig = {
'zh': { 'zh': {
'baseUrl':"https://server.orzar.shop/", 'baseUrl':baseUrllang,
'select_placeholder': '请选择', 'select_placeholder': '请选择',
userlist:{ userlist:{
'search_info': '搜索信息', 'search_info': '搜索信息',
@@ -48,6 +49,7 @@ var langConfig = {
'status': '状态', 'status': '状态',
'is_sold': '是否出售', 'is_sold': '是否出售',
'create_time': '创建时间', 'create_time': '创建时间',
'create_user': '编辑人',
'operation': '操作', 'operation': '操作',
'pending_review': '待审核', 'pending_review': '待审核',
'pending_publish': '待发布', 'pending_publish': '待发布',
@@ -59,7 +61,10 @@ var langConfig = {
'edit': '编辑', 'edit': '编辑',
'delete': '删除', 'delete': '删除',
'check': '审核', 'check': '审核',
'show': '详情' 'show': '详情',
'sku':"属性",
'set':"设置",
'comments':'评论'
} }
}, },
audit:{ audit:{
@@ -89,12 +94,14 @@ var langConfig = {
'show_title': '详情', 'show_title': '详情',
}, },
alllist:{ alllist:{
'adname': '广告位名称',
'name': '名称', 'name': '名称',
'status': '状态', 'status': '状态',
'brand':'所属品牌', 'brand':'所属品牌',
'sort': '排序', 'sort': '排序',
'create_time': '创建时间', 'create_time': '创建时间',
'update_time': '更新时间', 'update_time': '更新时间',
'publish_time':'发布时间',
'operation': '操作', 'operation': '操作',
"agtype":"协议类型", "agtype":"协议类型",
"title":"标题", "title":"标题",
@@ -106,6 +113,7 @@ var langConfig = {
"status2":"禁用", "status2":"禁用",
"logo":"品牌logo", "logo":"品牌logo",
"is_hot":"是否热门", "is_hot":"是否热门",
"synopsis":"文章简介",
"yes":"是", "yes":"是",
"no":"否" "no":"否"
}, },
@@ -137,7 +145,7 @@ var langConfig = {
} }
}, },
'en': { 'en': {
'baseUrl':"https://server.orzar.shop/", 'baseUrl':baseUrllang,
'select_placeholder': 'Please Select', 'select_placeholder': 'Please Select',
userlist:{ userlist:{
'search_info': 'Search Information', 'search_info': 'Search Information',
@@ -183,6 +191,7 @@ var langConfig = {
'status': 'Status', 'status': 'Status',
'is_sold': 'Is Sold', 'is_sold': 'Is Sold',
'create_time': 'Create Time', 'create_time': 'Create Time',
'create_user': 'Editor',
'operation': 'Operation', 'operation': 'Operation',
'pending_review': 'Pending Review', 'pending_review': 'Pending Review',
'pending_publish': 'Pending Publish', 'pending_publish': 'Pending Publish',
@@ -194,7 +203,10 @@ var langConfig = {
'edit': 'Edit', 'edit': 'Edit',
'delete': 'Delete', 'delete': 'Delete',
'check': 'Check', 'check': 'Check',
'show': 'Details' 'show': 'Details',
'sku':'Attribute',
'set':"Set up",
'comments':'comments'
}, },
}, },
audit:{ audit:{
@@ -224,12 +236,14 @@ var langConfig = {
'show_title': 'Details' 'show_title': 'Details'
}, },
alllist:{ alllist:{
'adname': 'Advertising space',
'name': 'Name', 'name': 'Name',
'status': 'Status', 'status': 'Status',
'brand':'Belonging brand', 'brand':'Belonging brand',
'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",
@@ -241,6 +255,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"
}, },
@@ -260,7 +275,7 @@ var langConfig = {
} }
}, },
'ru':{ 'ru':{
"baseUrl": "https://server.orzar.shop/", "baseUrl": baseUrllang,
"select_placeholder": "Выберите", "select_placeholder": "Выберите",
"userlist": { "userlist": {
"search_info": "Поиск информации", "search_info": "Поиск информации",
@@ -306,6 +321,7 @@ var langConfig = {
"status": "Статус", "status": "Статус",
"is_sold": "Продано", "is_sold": "Продано",
"create_time": "Дата создания", "create_time": "Дата создания",
'create_user': 'Редактор',
"operation": "Действия", "operation": "Действия",
"pending_review": "На проверке", "pending_review": "На проверке",
"pending_publish": "Ожидает публикации", "pending_publish": "Ожидает публикации",
@@ -317,7 +333,10 @@ var langConfig = {
"edit": "Редактировать", "edit": "Редактировать",
"delete": "Удалить", "delete": "Удалить",
"check": "Проверить", "check": "Проверить",
"show": "Подробности" "show": "Подробности",
'sku':'Свойства',
'set':"Настройка",
'comments':'комментарий'
} }
}, },
"audit": { "audit": {
@@ -347,12 +366,14 @@ var langConfig = {
"show_title": "Подробности" "show_title": "Подробности"
}, },
"alllist": { "alllist": {
'adname': 'Рекламное место',
"name": "Название", "name": "Название",
"status": "Статус", "status": "Статус",
"brand": "Марка", "brand": "Марка",
"sort": "Сортировка", "sort": "Сортировка",
"create_time": "Дата создания", "create_time": "Дата создания",
"update_time": "Дата обновления", "update_time": "Дата обновления",
"publish_time": "Время публикации",
"operation": "Действия", "operation": "Действия",
"agtype": "Тип соглашения", "agtype": "Тип соглашения",
"title": "Заголовок", "title": "Заголовок",
@@ -364,6 +385,7 @@ var langConfig = {
"status2": "Отключено", "status2": "Отключено",
"logo": "Логотип бренда", "logo": "Логотип бренда",
"is_hot": "Популярный", "is_hot": "Популярный",
"synopsis": "Аннотация статьи",
"yes": "Да", "yes": "Да",
"no": "Нет" "no": "Нет"
}, },
+174 -3
View File
@@ -3,8 +3,8 @@ var ajax = null,queue = [];
var isAjaxLock=false; var isAjaxLock=false;
var Utils={} var Utils={}
var userinfowifi=''; var userinfowifi='';
// var baseUrl = "https://server.orzar.shop/"; var baseUrl = "https://server.orzar.shop/";
var baseUrl = "https://usedcar.server.hnxinyouhe.com/"; // var baseUrl = "https://usedcar.server.hnxinyouhe.com/";
// var baseUrl = "http://192.168.50.6:8787/"; // var baseUrl = "http://192.168.50.6:8787/";
if(sessionStorage.wifiuserinfo){ if(sessionStorage.wifiuserinfo){
userinfowifi=JSON.parse(sessionStorage.wifiuserinfo) userinfowifi=JSON.parse(sessionStorage.wifiuserinfo)
@@ -95,8 +95,12 @@ function getI18N(code) {
var res='' var res=''
ajax = function(options){ ajax = function(options){
// 显示加载动画
var loadIndex = layer.load(2, {
shade: [0.2, '#000']
});
var ret = null,token=[]; var ret = null,token=[];
if(isAjaxLock){ if(isAjaxLock){
queue.push(options); queue.push(options);
@@ -130,8 +134,10 @@ ajax = function(options){
options.failCallBack(result); options.failCallBack(result);
} }
ret = result; ret = result;
layer.close(loadIndex);
}, },
error: function(XMLHttpRequest, textStatus, errorThrown){ error: function(XMLHttpRequest, textStatus, errorThrown){
layer.close(loadIndex);
if(XMLHttpRequest.status == 401){ if(XMLHttpRequest.status == 401){
layer.msg('验证失败!用户名或者密码错误', {icon: 5,time: 1000}); layer.msg('验证失败!用户名或者密码错误', {icon: 5,time: 1000});
window.setTimeout(function(){ window.setTimeout(function(){
@@ -151,6 +157,7 @@ ajax = function(options){
} }
}, },
complete: function(XMLHttpRequest, textStatus){ complete: function(XMLHttpRequest, textStatus){
layer.close(loadIndex);
isAjaxLock = false; isAjaxLock = false;
if(queue.length >= 1){ if(queue.length >= 1){
var options = queue.shift(); var options = queue.shift();
@@ -448,3 +455,167 @@ self.vehiclenewdelete = function(options){
return ajax(options); return ajax(options);
}; };
//邮箱管理 //邮箱管理
//属性管理
//属性分类
self.categoriesadd = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/categories/add";
return ajax(options);
};
self.categoriesdetail = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/categories/"+options.data.id+"/detail"
return ajax(options);
};
self.categoriesupdate = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/categories/"+options.data.id+"/update"
return ajax(options);
};
self.categoriesdelete = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/categories/"+options.data.id+"/delete"
return ajax(options);
};
self.categoriespreset = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/categories/preset";
return ajax(options);
};
//属性列表
self.attributesadd = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/attributes/add";
return ajax(options);
};
self.attributesdetail = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/attributes/"+options.data.id+"/detail"
return ajax(options);
};
self.attributesupdate = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/attributes/"+options.data.id+"/update"
return ajax(options);
};
self.attributesdelete = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/attributes/"+options.data.id+"/delete"
return ajax(options);
};
self.attributespreset = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/attributes/preset";
return ajax(options);
};
self.valuespreset = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/values/preset";
return ajax(options);
};
//sku
self.skuadd = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/sku/add";
return ajax(options);
};
self.skudetail = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/sku/"+options.data.id+"/detail"
return ajax(options);
};
self.skuupdate = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/sku/"+options.data.id+"/update"
return ajax(options);
};
self.skudelete = function(options){
options = options ? options : {};
options.url = baseUrl+"console/vehicle/new/sku/"+options.data.id+"/delete"
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);
};
//广告位
self.adpadd = function(options){
options = options ? options : {};
options.url = baseUrl+"console/adp/add";
return ajax(options);
};
self.adpdetail = function(options){
options = options ? options : {};
options.url = baseUrl+"console/adp/"+options.data.id+"/detail"
return ajax(options);
};
self.adpupdate = function(options){
options = options ? options : {};
options.url = baseUrl+"console/adp/"+options.data.id+"/update"
return ajax(options);
};
self.adpdelete = function(options){
options = options ? options : {};
options.url = baseUrl+"console/adp/"+options.data.id+"/delete"
return ajax(options);
};
//广告
self.adadd = function(options){
options = options ? options : {};
options.url = baseUrl+"console/ad/add";
return ajax(options);
};
self.addetail = function(options){
options = options ? options : {};
options.url = baseUrl+"console/ad/"+options.data.id+"/detail"
return ajax(options);
};
self.adupdate = function(options){
options = options ? options : {};
options.url = baseUrl+"console/ad/"+options.data.id+"/update"
return ajax(options);
};
self.addelete = function(options){
options = options ? options : {};
options.url = baseUrl+"console/ad/"+options.data.id+"/delete"
return ajax(options);
};
+138
View File
@@ -8,6 +8,11 @@ $(".more-btn").click(function () {
} }
return false; return false;
}) })
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;
}
/** /**
* 浏览页面顶部搜索框展开收回控制 * 浏览页面顶部搜索框展开收回控制
*/ */
@@ -46,6 +51,33 @@ layui.$(function () {
toggleSearchFormShow(); toggleSearchFormShow();
}); });
// 公共:上传loading 显示/隐藏(兼容 iframe,优先使用顶层 layer)
var uploadLoadingIndex = null;
var uploadLoadingLayerRef = null;
function showUploadLoading(){
try{
if(uploadLoadingIndex === null){
var layerRef = (typeof top !== 'undefined' && top.layui && top.layui.layer) ? top.layui.layer
: (typeof parent !== 'undefined' && parent.layui && parent.layui.layer) ? parent.layui.layer
: (typeof layui !== 'undefined' && layui.layer) ? layui.layer
: null;
if(layerRef){
uploadLoadingLayerRef = layerRef;
uploadLoadingIndex = layerRef.load(2, {shade: [0.2, '#000']});
}
}
}catch(e){}
}
function hideUploadLoading(){
try{
if(uploadLoadingIndex !== null && uploadLoadingLayerRef){
uploadLoadingLayerRef.close(uploadLoadingIndex);
uploadLoadingIndex = null;
uploadLoadingLayerRef = null;
}
}catch(e){}
}
function brandpresetfn(form,istrue){ function brandpresetfn(form,istrue){
self.brandpreset({ self.brandpreset({
type:'get', type:'get',
@@ -178,6 +210,85 @@ function seoselectfn(form,istrue){
} }
}) })
} }
//属性分类
function categoriespresetfn(form,istrue){
self.categoriespreset({
type:'get',
successCallBack: function(result){
$("#category_id").empty();
if(istrue){
}else{
$("#category_id").append("<option value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$("#category_id").append("<option value='"+this.id+"'>"+this.category_name+"</option>")
});
window.i18n.updatePageContent();
form.render();
},
failCallBack: function(result){
alert(result.message);
}
})
}
//属性
function attributespresetfn(form,istrue,context){
var $attributeSelect;
if (context) {
$attributeSelect = context.find(".attribute_id");
} else {
$attributeSelect = $(".attribute_id");
}
self.attributespreset({
type:'get',
successCallBack: function(result){
$attributeSelect.empty();
if(istrue){
}else{
$attributeSelect.append("<option data-img='' value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$attributeSelect.append("<option data-img='"+this.is_img+"' value='"+this.id+"'>"+this.attribute_name+"</option>")
});
window.i18n.updatePageContent();
form.render('select');
},
failCallBack: function(result){
alert(result.message);
}
})
}
function valuespresetfn(form,istrue,id,context){
var $valueSelect;
if (context) {
$valueSelect = context.find(".value_id");
} else {
$valueSelect = $(".value_id");
}
self.valuespreset({
type:'get',
data:{id:id},
successCallBack: function(result){
$valueSelect.empty();
if(istrue){
}else{
$valueSelect.append("<option value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$valueSelect.append("<option value='"+this.id+"'>"+this.value_name+"</option>")
});
window.i18n.updatePageContent();
form.render('select');
},
failCallBack: function(result){
alert(result.message);
}
})
}
// 添加 // 添加
function addFeature(id,form,title,content,titlevalue1,contentvalue1,contentid) { function addFeature(id,form,title,content,titlevalue1,contentvalue1,contentid) {
var index = $('#'+id+' .feature-item').length; var index = $('#'+id+' .feature-item').length;
@@ -264,7 +375,25 @@ function addIntro(id,form,content,contentvalue,contentid) {
window.i18n.updatePageContent(); window.i18n.updatePageContent();
form.render(); form.render();
} }
function regroupIndexedFields(obj,arrKeyName = 'value') {
const value = [];
const rest = {};
Object.keys(obj).forEach(key => {
const match = key.match(/^(.+)\[(\d+)\]$/);
if (match) {
const field = match[1];
const idx = parseInt(match[2]);
if (!value[idx]) value[idx] = {};
value[idx][field] = obj[key];
} else {
rest[key] = obj[key];
}
});
// 动态设置 key
rest[arrKeyName] = value.filter(item => item !== undefined);
return rest;
}
function objentries(field,id,id2,name,value){ function objentries(field,id,id2,name,value){
const banners = []; const banners = [];
let i = 0; let i = 0;
@@ -385,6 +514,8 @@ function uploadimage(upload,baseUrl){
acceptMime: 'image/*', acceptMime: 'image/*',
field: 'image', field: 'image',
before: function(obj) { before: function(obj) {
// 显示上传loading
showUploadLoading();
// 预读本地文件,如果是多文件,则会遍历。(不支持ie8/9) // 预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
obj.preview(function(index, file, result) { obj.preview(function(index, file, result) {
// 生成唯一的图片ID // 生成唯一的图片ID
@@ -411,12 +542,19 @@ function uploadimage(upload,baseUrl){
// 通过data-index属性找到对应的元素 // 通过data-index属性找到对应的元素
$('.upload-itemm[data-index="' + index + '"]').find('input[name="pic[]"]').val( $('.upload-itemm[data-index="' + index + '"]').find('input[name="pic[]"]').val(
res.data.image_name); res.data.image_name);
hideUploadLoading();
} else { } else {
layer.msg('上传失败'); layer.msg('上传失败');
hideUploadLoading();
} }
}, },
allDone: function(obj){
// 多文件上传结束后兜底隐藏
if (typeof hideUploadLoading === 'function') hideUploadLoading();
},
error: function() { error: function() {
layer.msg('上传失败'); layer.msg('上传失败');
hideUploadLoading();
} }
}); });
+2 -2
View File
@@ -157,8 +157,8 @@
$(this).addClass('icon-check'); $(this).addClass('icon-check');
} }
}); });
// var baseUrl = "https://server.orzar.shop/"; var baseUrl = "https://server.orzar.shop/";
var baseUrl = "https://usedcar.server.hnxinyouhe.com/"; // var baseUrl = "https://usedcar.server.hnxinyouhe.com/";
// 进行登录操作 // 进行登录操作
form.on('submit(login)', function (data) { form.on('submit(login)', function (data) {
data = data.field; data = data.field;
+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.name"></label>
<div class="layui-input-inline">
<input type="text" name="name" 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-inline">
<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="set">设置</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/advertisement.js" type="text/javascript" charset="utf-8"></script>
<script>
</script>
</body>
</html>
+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.name"></label>
<div class="layui-input-inline">
<input type="text" name="name" 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-inline">
<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="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/advertisementset.js" type="text/javascript" charset="utf-8"></script>
<script>
</script>
</body>
</html>
+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>
+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.name"></label>
<div class="layui-input-inline">
<input type="text" name="name" 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-inline">
<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="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/attribute.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="category_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>
<!-- <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="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/categories.js" type="text/javascript" charset="utf-8"></script>
<script>
</script>
</body>
</html>
+2
View File
@@ -74,9 +74,11 @@
<script type="text/html" id="currentTableBar"> <script type="text/html" id="currentTableBar">
<a class="show" lay-event="show">详情</a> <a class="show" lay-event="show">详情</a>
<a class="sku" lay-event="sku">属性</a>
{{# if(d.info_status==0){ }} {{# if(d.info_status==0){ }}
<a class="check" lay-event="check">审核</a> <a class="check" lay-event="check">审核</a>
{{# } }} {{# } }}
<a class="edit" lay-event="edit">编辑</a> <a class="edit" lay-event="edit">编辑</a>
<a class="delete" lay-event="delete">删除</a> <a class="delete" lay-event="delete">删除</a>
</script> </script>
+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.name"></label>
<div class="layui-input-inline">
<input type="text" name="name" 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-inline">
<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="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/sku.js" type="text/javascript" charset="utf-8"></script>
<script>
</script>
</body>
</html>
+68
View File
@@ -0,0 +1,68 @@
<!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;
}
</style>
</head>
<body>
<div class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="advertisement.title"></label>
<div class="layui-input-block">
<input type="text" name="title" 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="sort"></label>
<div class="layui-input-block">
<input type="number" name="sort" value="0" data-i18n-placeholder="pleaseenter" class="layui-input">
</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'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.$;
//监听提交
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>
+117
View File
@@ -0,0 +1,117 @@
<!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;
}
</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="title" lay-verify="required" lay-reqtext="名称不能为空" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="seach.status"></label>
<div class="layui-input-block">
<input type="checkbox" id="status" lay-filter="status" lay-skin="switch" lay-text="">
<input type="text" style="display:none" name="status" value="1" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="sort"></label>
<div class="layui-input-block">
<input type="number" name="sort" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="alls.new_url"></label>
<div class="layui-input-block">
<input type="text" name="new_url" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="alls.used_url"></label>
<div class="layui-input-block">
<input type="text" name="used_url" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</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'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.$;
form.render();
$("#idedt").val(getQueryString('id'))
self.adpdetail({
type:'get',
data:{id:getQueryString('id')},
successCallBack: function(result){
if (result.code == 0) {
form.val('edit', result.data)
form.render();
// 字段 状态 status
layui.use(["form"], function() {
layui.$("#status").attr("checked", layui.$('input[name="status"]').val() != 0);
layui.form.render();
layui.form.on("switch(status)", function(data) {
layui.$('input[name="status"]').val(this.checked ? 1 : 0);
});
})
};
},
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>
+117
View File
@@ -0,0 +1,117 @@
<!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="carlist.product_name"></label>
<div class="layui-input-block">
<input type="hidden" name="adp_id" id="adp_id" value="" />
<input type="text" name="title" 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="carlist.product_image" ></label>
<div class="layui-input-block">
<img class="img-3" src="" alt="" />
<input type="text" style="display:none" name="img" 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 layui-form-text">
<label class="layui-form-label" data-i18n="carlist.price"></label>
<div class="layui-input-block">
<input type="text" name="price" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="alls.url"></label>
<div class="layui-input-block">
<input type="text" name="href" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="carlist.type"></label>
<div class="layui-input-block">
<select name="type" class="layui-input">
<option value="1" data-i18n="nav.newcar"></option>
<option value="2" data-i18n="nav.usedcar"></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="sort"></label>
<div class="layui-input-block">
<input type="number" name="sort" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</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.$;
$("#adp_id").val(getQueryString('adp_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>
+147
View File
@@ -0,0 +1,147 @@
<!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="title" 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="carlist.product_image" ></label>
<div class="layui-input-block">
<img class="img-3" src="" alt="" />
<input type="text" style="display:none" name="img" 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 layui-form-text">
<label class="layui-form-label" data-i18n="carlist.price"></label>
<div class="layui-input-block">
<input type="text" name="price" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="alls.url"></label>
<div class="layui-input-block">
<input type="text" name="href" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="carlist.type"></label>
<div class="layui-input-block">
<select name="type" class="layui-input">
<option value="1" data-i18n="nav.newcar"></option>
<option value="2" data-i18n="nav.usedcar"></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="sort"></label>
<div class="layui-input-block">
<input type="number" name="sort" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</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.addetail({
type:'get',
data:{id:getQueryString('id')},
successCallBack: function(result){
if (result.code == 0) {
$(".img-3").attr('src',result.data.full_img);
form.val('edit', result.data)
form.render();
// // 字段 状态 status
layui.use(["form"], function() {
layui.$("#status").attr("checked", layui.$('input[name="status"]').val() != 0);
layui.form.render();
layui.form.on("switch(status)", function(data) {
layui.$('input[name="status"]').val(this.checked ? 1 : 0);
});
})
};
},
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>
+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>
+171
View File
@@ -0,0 +1,171 @@
<!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.upload,
t = layui.tinymce,
$ = layui.$;
$('.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);
}
}
});
});
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>
+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;
}
.feature-item{
border: 1px solid #ccc;
padding: 10px;
margin-bottom: 10px;
}
</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="text" name="attribute_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 required" data-i18n="Belongingtype"></label>
<div class="layui-input-block">
<select id="category_id" name="category_id" class="layui-input">
</select>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">是否必传图片</label>
<div class="layui-input-block">
<select name="is_img" class="layui-input">
<option value="0">无图</option>
<option value="1">必传</option>
<option value="2">可选</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">类型</label>
<div class="layui-input-block">
<select name="input_type" lay-filter="input_type" class="layui-input">
<option value="color">color</option>
<option value="text">text</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">属性值</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 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'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.$;
categoriespresetfn(form,true)
// 监听类型选择变化
form.on('select(input_type)', function(data){
var type = data.value;
// 清空之前的内容
$('#featureList').empty();
// 重新渲染表单
form.render();
});
// 添加属性值
$('#addFeature').on('click', function(){
var type = $('select[name="input_type"]').val();
var index = $('#featureList .feature-item').length;
var html = `<div class="feature-item">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="seach.name"></label>
<div class="layui-input-block">
<input type="text" name="value_name[${index}]" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div></div>`
if(type === 'color') {
html += `<div class="layui-form-item color-value">
<label class="layui-form-label required">颜色值</label>
<div class="layui-input-block">
<input type="text" name="color_code[${index}]" lay-verify="required" lay-reqtext="名称不能为空" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div></div>`
}
html+= `<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-feature">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>`
html += '</div>';
$('#featureList').append(html);
window.i18n.updatePageContent();
form.render();
});
// 删除属性值按钮点击事件
$(document).on('click', '.delete-feature', function() {
var type = $('select[name="input_type"]').val();
$(this).closest('.feature-item').remove();
// 重新排序索引
$('#featureList .feature-item').each(function(index) {
$(this).find('input[name^="value_name"]').attr('name', 'value_name[' + index + ']');
if(type === 'color') {
$(this).find('input[name^="color_code"]').attr('name', 'color_code[' + 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>
+195
View File
@@ -0,0 +1,195 @@
<!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;
}
.feature-item{
border: 1px solid #ccc;
padding: 10px;
margin-bottom: 10px;
}
</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="attribute_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 required" data-i18n="Belongingtype"></label>
<div class="layui-input-block">
<select id="category_id" name="category_id" class="layui-input">
</select>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">是否必传图片</label>
<div class="layui-input-block">
<select name="is_img" class="layui-input">
<option value="0">无图</option>
<option value="1">必传</option>
<option value="2">可选</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">类型</label>
<div class="layui-input-block">
<select name="input_type" lay-filter="input_type" class="layui-input">
<option value="color">color</option>
<option value="text">text</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">属性值</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 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'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.$;
categoriespresetfn(form,true)
$("#idedt").val(getQueryString('id'))
self.attributesdetail({
type:'get',
data:{id:getQueryString('id')},
successCallBack: function(result){
if (result.code == 0) {
form.val('edit', result.data)
// 回显属性值
if(result.data.value && result.data.value.length > 0) {
result.data.value.forEach(function(item) {
var type = $('select[name="input_type"]').val();
var index = $('#featureList .feature-item').length;
var html = `<div class="feature-item">
<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="idp[${index}]" value="${item.id}" />
<input type="text" name="value_name[${index}]" data-i18n-placeholder="pleaseenter" value="${item.value_name}" class="layui-input">
</div></div>`
if(type === 'color') {
html += `<div class="layui-form-item color-value">
<label class="layui-form-label required">颜色值</label>
<div class="layui-input-block">
<input type="text" name="color_code[${index}]" lay-verify="required" lay-reqtext="名称不能为空" data-i18n-placeholder="pleaseenter" value="${item.color_code}" class="layui-input">
</div></div>`
}
html+= `<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-feature">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>`
html += '</div>';
$('#featureList').append(html);
});
}
form.render();
};
},
failCallBack: function(result){
alert(result.message);
}
})
// 监听类型选择变化
form.on('select(input_type)', function(data){
var type = data.value;
// 清空之前的内容
$('#featureList').empty();
// 重新渲染表单
form.render();
});
// 添加属性值
$('#addFeature').on('click', function(){
var type = $('select[name="input_type"]').val();
var index = $('#featureList .feature-item').length;
var html = `<div class="feature-item">
<div class="layui-form-item">
<label class="layui-form-label required" data-i18n="seach.name"></label>
<div class="layui-input-block">
<input type="text" name="value_name[${index}]" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div></div>`
if(type === 'color') {
html += `<div class="layui-form-item color-value">
<label class="layui-form-label required">颜色值</label>
<div class="layui-input-block">
<input type="text" name="color_code[${index}]" lay-verify="required" lay-reqtext="名称不能为空" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div></div>`
}
html+= `<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-feature">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>`
html += '</div>';
$('#featureList').append(html);
window.i18n.updatePageContent();
form.render();
});
// 删除属性值按钮点击事件
$(document).on('click', '.delete-feature', function() {
var type = $('select[name="input_type"]').val();
$(this).closest('.feature-item').remove();
// 重新排序索引
$('#featureList .feature-item').each(function(index) {
$(this).find('input[name^="value_name"]').attr('name', 'value_name[' + index + ']');
if(type === 'color') {
$(this).find('input[name^="color_code"]').attr('name', 'color_code[' + 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>
+9
View File
@@ -365,11 +365,20 @@
url:baseUrl+ 'console/upload/image', url:baseUrl+ 'console/upload/image',
accept: 'images', accept: 'images',
field: 'image', field: 'image',
before: function(obj) {
// 显示上传loading
showUploadLoading();
},
done: function(res){ done: function(res){
hideUploadLoading();
if(res.code == 0){ if(res.code == 0){
$item.find('img').attr('src',res.data.image_url); $item.find('img').attr('src',res.data.image_url);
$item.find('input').val(res.data.image_name); $item.find('input').val(res.data.image_name);
} }
},
error: function() {
layer.msg('上传失败');
hideUploadLoading();
} }
}); });
}); });
+9
View File
@@ -436,13 +436,22 @@
url:baseUrl+ 'console/upload/image', url:baseUrl+ 'console/upload/image',
accept: 'images', accept: 'images',
field: 'image', field: 'image',
before: function(obj) {
// 显示上传loading
showUploadLoading();
},
done: function(res){ done: function(res){
hideUploadLoading();
if(res.code == 0){ if(res.code == 0){
// var $preview = $item.find('.preview-box'); // var $preview = $item.find('.preview-box');
// $preview.html('<img src="'+res.data.src+'" style="max-width:100px;">'); // $preview.html('<img src="'+res.data.src+'" style="max-width:100px;">');
$item.find('img').attr('src',res.data.image_url); $item.find('img').attr('src',res.data.image_url);
$item.find('input').val(res.data.image_name); $item.find('input').val(res.data.image_name);
} }
},
error: function() {
layer.msg('上传失败');
hideUploadLoading();
} }
}); });
}); });
+68
View File
@@ -0,0 +1,68 @@
<!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;
}
</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="text" name="category_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="sort"></label>
<div class="layui-input-block">
<input type="number" name="sort_order" value="0" data-i18n-placeholder="pleaseenter" class="layui-input">
</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'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.$;
//监听提交
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>
+90
View File
@@ -0,0 +1,90 @@
<!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;
}
</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="sort"></label>
<div class="layui-input-block">
<input type="number" name="sort" value="" data-i18n-placeholder="pleaseenter" class="layui-input">
</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'], function () {
var form = layui.form,
layer = layui.layer,
$ = layui.$;
form.render();
$("#idedt").val(getQueryString('id'))
self.categoriesdetail({
type:'get',
data:{id:getQueryString('id')},
successCallBack: function(result){
if (result.code == 0) {
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;
});
});
</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>
+9
View File
@@ -255,11 +255,20 @@
url:baseUrl+ 'console/upload/image', url:baseUrl+ 'console/upload/image',
accept: 'images', accept: 'images',
field: 'image', field: 'image',
before: function(obj) {
// 显示上传loading
showUploadLoading();
},
done: function(res){ done: function(res){
hideUploadLoading();
if(res.code == 0){ if(res.code == 0){
$item.find('img').attr('src',res.data.image_url); $item.find('img').attr('src',res.data.image_url);
$item.find('input').val(res.data.image_name); $item.find('input').val(res.data.image_name);
} }
},
error: function() {
layer.msg('上传失败');
hideUploadLoading();
} }
}); });
}); });
+90 -66
View File
@@ -249,13 +249,28 @@
t = layui.tinymce, t = layui.tinymce,
upload = layui.upload, upload = layui.upload,
$ = layui.$; $ = layui.$;
brandpresetfn(form,true)
energypresetfn(form) // 创建一个函数来加载所有下拉框数据
typespresetfn(form) function loadAllDropdowns(callback) {
// 加载品牌数据
brandpresetfn(form, true);
// 加载能源类型数据
energypresetfn(form);
// 加载车辆类型数据
typespresetfn(form);
// 使用setTimeout确保DOM更新完成
setTimeout(function() {
form.render();
if (callback) callback();
}, 100);
}
form.on('select(brandSelect)', function(data){ form.on('select(brandSelect)', function(data){
var selectedValue = data.value; var selectedValue = data.value;
modelpresetfn(form,true,selectedValue) modelpresetfn(form, true, selectedValue);
}); });
//监听提交 //监听提交
form.render(); form.render();
$("#idedt").val(getQueryString('id')) $("#idedt").val(getQueryString('id'))
@@ -274,70 +289,70 @@
closeBtn: 1, // 显示关闭按钮 closeBtn: 1, // 显示关闭按钮
}); });
}); });
self.vehiclenewdetail({
type:'get',
data:{id:getQueryString('id')},
successCallBack: function(result){
if (result.code == 0) {
$(".img-3").attr("src",result.data.cover_full)
var datas = result.data
$("#cover").val(result.data.cover)
modelpresetfn(form,true,datas.brand)
form.val('edit', datas)
console.log(datas)
// 回显图册 // 先加载所有下拉框数据,然后再获取详情数据
if(result.data.album && result.data.album.length > 0) { loadAllDropdowns(function() {
result.data.album.forEach(function(item) { self.vehiclenewdetail({
var imgId = 'img_' + new Date().getTime() + '_' + Math.random(); type:'get',
$('#albumList').append(` data:{id:getQueryString('id')},
<div class="upload-itemm" style="display: inline-block; margin: 10px;"> successCallBack: function(result){
<img src="${item.pic_full}" alt="${item.alt || ''}" id="${imgId}" class="img-3" style="cursor: pointer;"> if (result.code == 0) {
<input type="hidden" name="pic[]" value="${item.pic}"> $(".img-3").attr("src",result.data.cover_full)
<input type="hidden" name="idimg[]" value="${item.id}" /> var datas = result.data
<input type="text" class="layui-input" data-i18n-placeholder="brand.image_desc" $("#cover").val(result.data.cover)
style="margin: 5px 0px;height: 30px;" name="alt[]" value="${item.alt || ''}">
<button type="button" class="layui-btn layui-btn-danger layui-btn-xs delete-img"> // 加载model数据并设置表单值
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span> modelpresetfn(form, true, datas.brand);
</button> // 使用setTimeout确保model数据加载完成
</div> setTimeout(function() {
`); form.val('edit', datas)
}); console.log(datas)
// 回显图册
if(result.data.album && result.data.album.length > 0) {
result.data.album.forEach(function(item) {
var imgId = 'img_' + new Date().getTime() + '_' + Math.random();
$('#albumList').append(`
<div class="upload-itemm" style="display: inline-block; margin: 10px;">
<img src="${item.pic_full}" alt="${item.alt || ''}" id="${imgId}" class="img-3" style="cursor: pointer;">
<input type="hidden" name="pic[]" value="${item.pic}">
<input type="hidden" name="idimg[]" value="${item.id}" />
<input type="text" class="layui-input" data-i18n-placeholder="brand.image_desc"
style="margin: 5px 0px;height: 30px;" name="alt[]" value="${item.alt || ''}">
<button type="button" class="layui-btn layui-btn-danger layui-btn-xs delete-img">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>
`);
});
}
// 回显介绍
if(result.data.content && result.data.content.length > 0) {
result.data.content.forEach(function(item) {
addIntro('introList',form,'请填写介绍内容', item.content,item.id)
});
}
// 回显特点
if(result.data.trait && result.data.trait.length > 0) {
result.data.trait.forEach(function(item) {
addFeature('featureList',form,'名称','描述', item.title, item.content,item.id)
});
}
// 回显问题
if(result.data.asked && result.data.asked.length > 0) {
result.data.asked.forEach(function(item) {
addFeature1('problem',form,'问题','回答',item.title, item.content,item.id)
});
}
form.render();
}, 100);
} }
// 回显介绍 },
if(result.data.content && result.data.content.length > 0) { failCallBack: function(result){
result.data.content.forEach(function(item) { alert(result.message);
addIntro('introList',form,'请填写介绍内容', item.content,item.id) }
}); });
} else { });
// 如果没有添加一个空的
// addIntro('introList',form,'请填写介绍内容')
}
// 回显特点
if(result.data.trait && result.data.trait.length > 0) {
result.data.trait.forEach(function(item) {
addFeature('featureList',form,'名称','描述', item.title, item.content,item.id)
});
} else {
// 如果没有添加一个空的
// addFeature('featureList',form,'名称','描述','','')
}
// 回显问题
if(result.data.asked && result.data.asked.length > 0) {
result.data.asked.forEach(function(item) {
addFeature1('problem',form,'问题','回答',item.title, item.content,item.id)
});
} else {
// 如果没有添加一个空的
// addFeature1('problem',form,'问题','回答','','')
}
form.render();
};
},
failCallBack: function(result){
alert(result.message);
}
})
$('.layui-btnup').each(function(index, item){ $('.layui-btnup').each(function(index, item){
var $item = $(item).closest('.upload-item'); var $item = $(item).closest('.upload-item');
upload.render({ upload.render({
@@ -345,11 +360,20 @@
url:baseUrl+ 'console/upload/image', url:baseUrl+ 'console/upload/image',
accept: 'images', accept: 'images',
field: 'image', field: 'image',
before: function(obj) {
// 显示上传loading
showUploadLoading();
},
done: function(res){ done: function(res){
hideUploadLoading();
if(res.code == 0){ if(res.code == 0){
$item.find('img').attr('src',res.data.image_url); $item.find('img').attr('src',res.data.image_url);
$item.find('input').val(res.data.image_name); $item.find('input').val(res.data.image_name);
} }
},
error: function() {
layer.msg('上传失败');
hideUploadLoading();
} }
}); });
}); });
+195
View File
@@ -0,0 +1,195 @@
<!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: 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-form-item">
<label class="layui-form-label required" data-i18n="seach.name"></label>
<div class="layui-input-block">
<input type="hidden" name="vehicle_id" id="vehicle_id">
<input type="text" name="name" lay-verify="required" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="seach.status"></label>
<div class="layui-input-block">
<input type="checkbox" id="status" lay-filter="status" lay-skin="switch" lay-text="">
<input type="text" style="display:none" name="status" value="1" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="sku.desc"></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 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.$("#status").attr("checked", layui.$('input[name="status"]').val() != 0);
layui.form.render();
layui.form.on("switch(status)", function(data) {
layui.$('input[name="status"]').val(this.checked ? 1 : 0);
});
$("#vehicle_id").val(getQueryString('vehicle_id'))
// 添加属性按钮点击事件
$('#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" data-i18n="sku.name"></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" data-i18n="sku.value"></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>
+243
View File
@@ -0,0 +1,243 @@
<!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: 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" 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="hidden" name="vehicle_id" id="vehicle_id" value="" />
<input type="text" name="name" lay-verify="required" data-i18n-placeholder="pleaseenter" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label" data-i18n="seach.status"></label>
<div class="layui-input-block">
<input type="checkbox" id="status" lay-filter="status" lay-skin="switch" lay-text="">
<input type="text" style="display:none" name="status" value="1" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="sku.desc"></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 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'))
$("#vehicle_id").val(getQueryString('vehicle_id'))
self.skudetail({
type:'get',
data:{id:getQueryString('id')},
successCallBack: function(result){
if (result.code == 0) {
var data = result.data;
form.val('edit', result.data)
form.render();
// 字段 状态 status
layui.use(["form"], function() {
layui.$("#status").attr("checked", layui.$('input[name="status"]').val() != 0);
layui.form.render();
layui.form.on("switch(status)", function(data) {
layui.$('input[name="status"]').val(this.checked ? 1 : 0);
});
})
// 属性列表
$('#attributelist').empty();
(data.skuAttributes || []).forEach(function(item, idx){
renderAttributeItem(item, idx);
});
};
},
failCallBack: function(result){
alert(result.message);
}
})
// 动态添加属性项
function renderAttributeItem(data, index) {
var html = `<div class="feature-item">
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="sku.name"></label>
<div class="layui-input-block">
<input type="hidden" name="id[]" value="${data.id}">
<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" data-i18n="sku.value"></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="${data && data.img_full ? data.img_full : '../../assets/images/noimg.png'}" alt="" />
<input type="text" style="display:none" name="img[${index}]" value="${data && data.img ? data.img : ''}" />
<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(idx, 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();
// 属性名称和属性值回显
setTimeout(function() {
if(data && data.attribute_id){
$newAttribute.find('select[name^="attribute_id"]').val(data.attribute_id);
valuespresetfn(form, true, data.attribute_id, $newAttribute);
setTimeout(function(){
$newAttribute.find('select[name^="value_id"]').val(data.value_id);
form.render('select');
}, 200);
// 如果需要显示图片上传
if(data.img){
$newAttribute.find('.upload-image-item').show();
}
}
}, 1000);
}
// 添加属性按钮
$('#addAttribute').on('click', function() {
var index = $('#attributelist .feature-item').length;
renderAttributeItem({}, index);
});
// 监听属性名称下拉框变化
form.on('select(attributeSelect)', function(data){
var $featureItem = $(data.elem).closest('.feature-item');
var selectedValue = data.value;
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>
+9
View File
@@ -76,11 +76,20 @@
url:baseUrl+ 'console/upload/image', url:baseUrl+ 'console/upload/image',
accept: 'images', accept: 'images',
field: 'image', field: 'image',
before: function(obj) {
// 显示上传loading
showUploadLoading();
},
done: function(res){ done: function(res){
hideUploadLoading();
if(res.code == 0){ if(res.code == 0){
$(".img-3").attr('src',res.data.image_url); $(".img-3").attr('src',res.data.image_url);
$("#avatarinput").val(res.data.image_name); $("#avatarinput").val(res.data.image_name);
} }
},
error: function() {
layer.msg('上传失败');
hideUploadLoading();
} }
}); });
//监听提交 //监听提交
+9
View File
@@ -120,11 +120,20 @@
url:baseUrl+ 'console/upload/image', url:baseUrl+ 'console/upload/image',
accept: 'images', accept: 'images',
field: 'image', field: 'image',
before: function(obj) {
// 显示上传loading
showUploadLoading();
},
done: function(res){ done: function(res){
hideUploadLoading();
if(res.code == 0){ if(res.code == 0){
$(".img-3").attr('src',res.data.image_url); $(".img-3").attr('src',res.data.image_url);
$("#avatarinput").val(res.data.image_name); $("#avatarinput").val(res.data.image_name);
} }
},
error: function() {
layer.msg('上传失败');
hideUploadLoading();
} }
}); });
}); });