sku
This commit is contained in:
@@ -101,6 +101,29 @@
|
||||
"href": "page/email.html",
|
||||
"icon": "fa fa-info-circle",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -89,6 +89,7 @@ body {
|
||||
}
|
||||
.check,
|
||||
.show,
|
||||
.sku,
|
||||
.edit {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
@@ -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()
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
+83
-73
@@ -24,21 +24,24 @@
|
||||
"type": "Type",
|
||||
"agreement": "Agreement",
|
||||
"general": "General Settings",
|
||||
"dictionary": "Dictionary Settings",
|
||||
"newcar":"New Car",
|
||||
"usedcar":"Used Car",
|
||||
"seo":"SEO",
|
||||
"email":"Email"
|
||||
"dictionary": "Dictionary Settings",
|
||||
"newcar":"New Car",
|
||||
"usedcar":"Used Car",
|
||||
"seo":"SEO",
|
||||
"email":"Email",
|
||||
"attribute":"Attribute",
|
||||
"attributes":"Attribute List",
|
||||
"categories":"Attribute Categories"
|
||||
},
|
||||
"homE": {
|
||||
"welcome": "Welcome to our website",
|
||||
"more": "Learn more",
|
||||
"title": "Data Statistics",
|
||||
"realtime": "Real-time",
|
||||
"brandCounts": "Number of Brands",
|
||||
"inOrderCounts": "Orders in Process",
|
||||
"inTransitCounts": "In Transit",
|
||||
"vehicleCounts": "Vehicle Count"
|
||||
"homE": {
|
||||
"welcome": "Welcome to our website",
|
||||
"more": "Learn more",
|
||||
"title": "Data Statistics",
|
||||
"realtime": "Real-time",
|
||||
"brandCounts": "Number of Brands",
|
||||
"inOrderCounts": "Orders in Process",
|
||||
"inTransitCounts": "In Transit",
|
||||
"vehicleCounts": "Vehicle Count"
|
||||
},
|
||||
"btn": {
|
||||
"submit": "Submit",
|
||||
@@ -150,10 +153,10 @@
|
||||
"audit": {
|
||||
"all": "All",
|
||||
"applied": "Reviewed",
|
||||
"not_applied": "Not Reviewed",
|
||||
"pass": "Pass",
|
||||
"refuse": "Refuse",
|
||||
"desc": "Description",
|
||||
"not_applied": "Not Reviewed",
|
||||
"pass": "Pass",
|
||||
"refuse": "Refuse",
|
||||
"desc": "Description",
|
||||
"editcarbtn": "Edit vehicle"
|
||||
},
|
||||
"seach": {
|
||||
@@ -168,65 +171,72 @@
|
||||
"user": "User Agreement",
|
||||
"status1": "Active",
|
||||
"status2": "Disabled"
|
||||
},
|
||||
"seo": {
|
||||
"title": "Page Title",
|
||||
"description": "Page Description",
|
||||
"canonical": "",
|
||||
"og_type": "Website Type",
|
||||
"og_title": "Share Title",
|
||||
"og_description": "Share Description",
|
||||
"og_image": "Share Thumbnail",
|
||||
"og_url": "Share URL",
|
||||
"og_site_name": "Site Name",
|
||||
"page": "Current Page"
|
||||
},
|
||||
"brand": {
|
||||
"name": "Brand Name",
|
||||
"logo": "Brand Logo",
|
||||
"logoalt": "Logo Description",
|
||||
"status": "Status",
|
||||
"banner": "Banner Image",
|
||||
"banneralt": "Banner Description",
|
||||
"desc": "Brand Description",
|
||||
"thumbnail": "Thumbnail",
|
||||
"thumbnailalt": "Thumbnail Description",
|
||||
"detailsimg": "Brand Carousel Images",
|
||||
"advantage": "Brand Advantages",
|
||||
"advantage-title": "Advantage Title",
|
||||
"advantage-desc": "Advantage Description",
|
||||
"album": "Brand Album",
|
||||
"is_hot": "Is Hot"
|
||||
},
|
||||
"newcar": {
|
||||
"memo": "Vehicle Description",
|
||||
"introduce": "Vehicle Introduction",
|
||||
"desc": "Vehicle Description",
|
||||
"characteristic": "Vehicle Features",
|
||||
"video": "Vehicle Video",
|
||||
"problem": "FAQ",
|
||||
"imgalt": "Image Description",
|
||||
"coveralt": "Cover Image Description"
|
||||
},
|
||||
"alls": {
|
||||
"title": "Title",
|
||||
"title_placeholder": "Please enter title",
|
||||
"content": "Content",
|
||||
"content_placeholder": "Please enter content",
|
||||
"introduce_placeholder": "Please enter introduction",
|
||||
"image_desc": "Please enter image description",
|
||||
"problem": "Question",
|
||||
"answer": "Answer",
|
||||
"answer_placeholder": "Please enter answer",
|
||||
"problem_placeholder": "Please enter question",
|
||||
"yes": "Yes",
|
||||
"no": "No"
|
||||
},
|
||||
"seo": {
|
||||
"title": "Page Title",
|
||||
"description": "Page Description",
|
||||
"canonical": "",
|
||||
"og_type": "Website Type",
|
||||
"og_title": "Share Title",
|
||||
"og_description": "Share Description",
|
||||
"og_image": "Share Thumbnail",
|
||||
"og_url": "Share URL",
|
||||
"og_site_name": "Site Name",
|
||||
"page": "Current Page"
|
||||
},
|
||||
"brand": {
|
||||
"name": "Brand Name",
|
||||
"logo": "Brand Logo",
|
||||
"logoalt": "Logo Description",
|
||||
"status": "Status",
|
||||
"banner": "Banner Image",
|
||||
"banneralt": "Banner Description",
|
||||
"desc": "Brand Description",
|
||||
"thumbnail": "Thumbnail",
|
||||
"thumbnailalt": "Thumbnail Description",
|
||||
"detailsimg": "Brand Carousel Images",
|
||||
"advantage": "Brand Advantages",
|
||||
"advantage-title": "Advantage Title",
|
||||
"advantage-desc": "Advantage Description",
|
||||
"album": "Brand Album",
|
||||
"is_hot": "Is Hot"
|
||||
},
|
||||
"newcar": {
|
||||
"memo": "Vehicle Description",
|
||||
"introduce": "Vehicle Introduction",
|
||||
"desc": "Vehicle Description",
|
||||
"characteristic": "Vehicle Features",
|
||||
"video": "Vehicle Video",
|
||||
"problem": "FAQ",
|
||||
"imgalt": "Image Description",
|
||||
"coveralt": "Cover Image Description"
|
||||
},
|
||||
"sku": {
|
||||
"name": "Attribute name",
|
||||
"value": "Attribute value",
|
||||
"desc": "Attribute"
|
||||
},
|
||||
"alls": {
|
||||
"title": "Title",
|
||||
"title_placeholder": "Please enter title",
|
||||
"content": "Content",
|
||||
"content_placeholder": "Please enter content",
|
||||
"introduce_placeholder": "Please enter introduction",
|
||||
"image_desc": "Please enter image description",
|
||||
"problem": "Question",
|
||||
"answer": "Answer",
|
||||
"answer_placeholder": "Please enter answer",
|
||||
"problem_placeholder": "Please enter question",
|
||||
"yes": "Yes",
|
||||
"no": "No"
|
||||
},
|
||||
"sort": "Sort",
|
||||
"pleaseenter": "Please enter",
|
||||
"Belongingbrand": "Belonging Brand",
|
||||
"typeimg": "Type Image",
|
||||
"Imageratio":"Aspect ratio",
|
||||
"Belongingtype": "Category",
|
||||
"Images": "Images",
|
||||
"typeimg": "Type Image",
|
||||
"Imageratio":"Aspect ratio",
|
||||
"Imagesize":"Image size",
|
||||
"select": "Please select",
|
||||
"logout": "Logout",
|
||||
|
||||
+83
-73
@@ -24,21 +24,24 @@
|
||||
"type": "типами",
|
||||
"agreement": "соглашениями",
|
||||
"general": "Общие настройки",
|
||||
"dictionary": "Настройки словарей",
|
||||
"newcar":"Новые автомобили",
|
||||
"usedcar":"Б/у автомобили",
|
||||
"seo":"SEO",
|
||||
"email":"Эл. почта"
|
||||
"dictionary": "Настройки словарей",
|
||||
"newcar":"Новые автомобили",
|
||||
"usedcar":"Б/у автомобили",
|
||||
"seo":"SEO",
|
||||
"email":"Эл. почта",
|
||||
"attribute":"Свойства",
|
||||
"attributes":"Список атрибутов",
|
||||
"categories":"Категории атрибутов"
|
||||
},
|
||||
"home": {
|
||||
"welcome": "Добро пожаловать на наш сайт",
|
||||
"more": "Узнать больше",
|
||||
"title": "Статистика данных",
|
||||
"realtime": "В реальном времени",
|
||||
"brandCounts": "Количество брендов",
|
||||
"inOrderCounts": "Заказы в обработке",
|
||||
"inTransitCounts": "В пути",
|
||||
"vehicleCounts": "Количество автомобилей"
|
||||
"home": {
|
||||
"welcome": "Добро пожаловать на наш сайт",
|
||||
"more": "Узнать больше",
|
||||
"title": "Статистика данных",
|
||||
"realtime": "В реальном времени",
|
||||
"brandCounts": "Количество брендов",
|
||||
"inOrderCounts": "Заказы в обработке",
|
||||
"inTransitCounts": "В пути",
|
||||
"vehicleCounts": "Количество автомобилей"
|
||||
},
|
||||
"btn": {
|
||||
"submit": "Отправить",
|
||||
@@ -150,10 +153,10 @@
|
||||
"audit": {
|
||||
"all": "Все",
|
||||
"applied": "Проверено",
|
||||
"not_applied": "Не проверено",
|
||||
"pass": "Пропустить",
|
||||
"refuse": "Отказать",
|
||||
"desc": "Описание",
|
||||
"not_applied": "Не проверено",
|
||||
"pass": "Пропустить",
|
||||
"refuse": "Отказать",
|
||||
"desc": "Описание",
|
||||
"editcarbtn": "Изменить авто"
|
||||
},
|
||||
"seach": {
|
||||
@@ -168,65 +171,72 @@
|
||||
"user": "Пользовательское соглашение",
|
||||
"status1": "Активно",
|
||||
"status2": "Отключено"
|
||||
},
|
||||
"seo": {
|
||||
"title": "Заголовок страницы",
|
||||
"description": "Описание страницы",
|
||||
"canonical": "",
|
||||
"og_type": "Тип веб-страницы",
|
||||
"og_title": "Заголовок для публикации",
|
||||
"og_description": "Описание для публикации",
|
||||
"og_image": "Миниатюра для публикации",
|
||||
"og_url": "Ссылка для публикации",
|
||||
"og_site_name": "Название сайта",
|
||||
"page": "Текущая страница"
|
||||
},
|
||||
"brand": {
|
||||
"name": "Название бренда",
|
||||
"logo": "Логотип бренда",
|
||||
"logoalt": "Описание логотипа",
|
||||
"status": "Статус",
|
||||
"banner": "Баннер",
|
||||
"banneralt": "Описание баннера",
|
||||
"desc": "Описание бренда",
|
||||
"thumbnail": "Миниатюра",
|
||||
"thumbnailalt": "Описание миниатюры",
|
||||
"detailsimg": "Карусель изображений бренда",
|
||||
"advantage": "Преимущества бренда",
|
||||
"advantage-title": "Заголовок преимущества",
|
||||
"advantage-desc": "Описание преимущества",
|
||||
"album": "Альбом бренда",
|
||||
"is_hot": "Популярный"
|
||||
},
|
||||
"newcar": {
|
||||
"memo": "Описание автомобиля",
|
||||
"introduce": "Описание автомобиля",
|
||||
"desc": "Описание автомобиля",
|
||||
"characteristic": "Характеристики автомобиля",
|
||||
"video": "Видео автомобиля",
|
||||
"problem": "Частые вопросы",
|
||||
"imgalt": "Описание изображения",
|
||||
"coveralt": "Описание обложки"
|
||||
},
|
||||
"alls": {
|
||||
"title": "Заголовок",
|
||||
"title_placeholder": "Введите заголовок",
|
||||
"content": "Содержание",
|
||||
"content_placeholder": "Введите содержание",
|
||||
"introduce_placeholder": "Введите описание",
|
||||
"image_desc": "Введите описание изображения",
|
||||
"problem": "Вопрос",
|
||||
"answer": "Ответ",
|
||||
"answer_placeholder": "Введите ответ",
|
||||
"problem_placeholder": "Введите вопрос",
|
||||
"yes": "Да",
|
||||
"no": "Нет"
|
||||
},
|
||||
"seo": {
|
||||
"title": "Заголовок страницы",
|
||||
"description": "Описание страницы",
|
||||
"canonical": "",
|
||||
"og_type": "Тип веб-страницы",
|
||||
"og_title": "Заголовок для публикации",
|
||||
"og_description": "Описание для публикации",
|
||||
"og_image": "Миниатюра для публикации",
|
||||
"og_url": "Ссылка для публикации",
|
||||
"og_site_name": "Название сайта",
|
||||
"page": "Текущая страница"
|
||||
},
|
||||
"brand": {
|
||||
"name": "Название бренда",
|
||||
"logo": "Логотип бренда",
|
||||
"logoalt": "Описание логотипа",
|
||||
"status": "Статус",
|
||||
"banner": "Баннер",
|
||||
"banneralt": "Описание баннера",
|
||||
"desc": "Описание бренда",
|
||||
"thumbnail": "Миниатюра",
|
||||
"thumbnailalt": "Описание миниатюры",
|
||||
"detailsimg": "Карусель изображений бренда",
|
||||
"advantage": "Преимущества бренда",
|
||||
"advantage-title": "Заголовок преимущества",
|
||||
"advantage-desc": "Описание преимущества",
|
||||
"album": "Альбом бренда",
|
||||
"is_hot": "Популярный"
|
||||
},
|
||||
"newcar": {
|
||||
"memo": "Описание автомобиля",
|
||||
"introduce": "Описание автомобиля",
|
||||
"desc": "Описание автомобиля",
|
||||
"characteristic": "Характеристики автомобиля",
|
||||
"video": "Видео автомобиля",
|
||||
"problem": "Частые вопросы",
|
||||
"imgalt": "Описание изображения",
|
||||
"coveralt": "Описание обложки"
|
||||
},
|
||||
"sku": {
|
||||
"name": "Название атрибута",
|
||||
"value": "Значение атрибута",
|
||||
"desc": "Атрибут"
|
||||
},
|
||||
"alls": {
|
||||
"title": "Заголовок",
|
||||
"title_placeholder": "Введите заголовок",
|
||||
"content": "Содержание",
|
||||
"content_placeholder": "Введите содержание",
|
||||
"introduce_placeholder": "Введите описание",
|
||||
"image_desc": "Введите описание изображения",
|
||||
"problem": "Вопрос",
|
||||
"answer": "Ответ",
|
||||
"answer_placeholder": "Введите ответ",
|
||||
"problem_placeholder": "Введите вопрос",
|
||||
"yes": "Да",
|
||||
"no": "Нет"
|
||||
},
|
||||
"sort": "Сортировка",
|
||||
"pleaseenter": "Пожалуйста, введите",
|
||||
"Belongingbrand": "Принадлежащий бренд",
|
||||
"typeimg": "Изображение типа",
|
||||
"Imageratio":"Соотношение сторон",
|
||||
"Belongingtype": "Категория",
|
||||
"Images": "Изображения",
|
||||
"typeimg": "Изображение типа",
|
||||
"Imageratio":"Соотношение сторон",
|
||||
"Imagesize":"Размер изображения",
|
||||
"select": "Пожалуйста, выберите",
|
||||
"logout": "Выйти",
|
||||
|
||||
+11
-1
@@ -28,7 +28,10 @@
|
||||
"newcar":"新车管理",
|
||||
"usedcar":"二手车",
|
||||
"seo":"SEO管理",
|
||||
"email":"邮箱管理"
|
||||
"email":"邮箱管理",
|
||||
"attribute":"属性管理",
|
||||
"attributes":"属性列表",
|
||||
"categories":"属性分类"
|
||||
},
|
||||
"home": {
|
||||
"welcome": "欢迎访问我们的网站",
|
||||
@@ -208,6 +211,11 @@
|
||||
"imgalt":"图片描述",
|
||||
"coveralt":"封面图描述"
|
||||
},
|
||||
"sku":{
|
||||
"name":"属性名称",
|
||||
"value":"属性值",
|
||||
"desc":"属性"
|
||||
},
|
||||
"alls":{
|
||||
"title": "标题",
|
||||
"title_placeholder": "请输入标题",
|
||||
@@ -225,6 +233,8 @@
|
||||
"sort": "排序",
|
||||
"pleaseenter":"请输入",
|
||||
"Belongingbrand":"所属品牌",
|
||||
"Belongingtype":"所属分类",
|
||||
"Images":"图片",
|
||||
"typeimg":"类型图",
|
||||
"Imageratio":"图片比例",
|
||||
"Imagesize":"图片尺寸",
|
||||
|
||||
+15
-3
@@ -16,10 +16,12 @@ layui.use(['form', 'table'], function () {
|
||||
.replace(/删除/g, lang.carlist.operations.delete)
|
||||
.replace(/审核/g, lang.carlist.operations.check)
|
||||
.replace(/详情/g, lang.carlist.operations.show)
|
||||
.replace(/属性/g, lang.carlist.operations.sku)
|
||||
.replace(/Edit/g, lang.carlist.operations.edit)
|
||||
.replace(/Delete/g, lang.carlist.operations.delete)
|
||||
.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);
|
||||
}
|
||||
var toolbarDemo = $('#toolbarDemo').html();
|
||||
@@ -156,8 +158,8 @@ layui.use(['form', 'table'], function () {
|
||||
alert(result.message);
|
||||
}
|
||||
})
|
||||
console.log(datas)
|
||||
console.log(field)
|
||||
// console.log(datas)
|
||||
// console.log(field)
|
||||
|
||||
});
|
||||
submit.trigger('click');
|
||||
@@ -250,6 +252,16 @@ layui.use(['form', 'table'], function () {
|
||||
area: ['60%', '85%'],
|
||||
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
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
+11
-7
@@ -1,8 +1,9 @@
|
||||
// 多语言配置
|
||||
|
||||
// var baseUrl = 'https://server.orzar.shop/'
|
||||
var baseUrllang = "https://usedcar.server.hnxinyouhe.com/";
|
||||
var langConfig = {
|
||||
'zh': {
|
||||
'baseUrl':"https://server.orzar.shop/",
|
||||
'baseUrl':baseUrllang,
|
||||
'select_placeholder': '请选择',
|
||||
userlist:{
|
||||
'search_info': '搜索信息',
|
||||
@@ -60,7 +61,8 @@ var langConfig = {
|
||||
'edit': '编辑',
|
||||
'delete': '删除',
|
||||
'check': '审核',
|
||||
'show': '详情'
|
||||
'show': '详情',
|
||||
'sku':"属性"
|
||||
}
|
||||
},
|
||||
audit:{
|
||||
@@ -138,7 +140,7 @@ var langConfig = {
|
||||
}
|
||||
},
|
||||
'en': {
|
||||
'baseUrl':"https://server.orzar.shop/",
|
||||
'baseUrl':baseUrllang,
|
||||
'select_placeholder': 'Please Select',
|
||||
userlist:{
|
||||
'search_info': 'Search Information',
|
||||
@@ -196,7 +198,8 @@ var langConfig = {
|
||||
'edit': 'Edit',
|
||||
'delete': 'Delete',
|
||||
'check': 'Check',
|
||||
'show': 'Details'
|
||||
'show': 'Details',
|
||||
'sku':'Attribute'
|
||||
},
|
||||
},
|
||||
audit:{
|
||||
@@ -262,7 +265,7 @@ var langConfig = {
|
||||
}
|
||||
},
|
||||
'ru':{
|
||||
"baseUrl": "https://server.orzar.shop/",
|
||||
"baseUrl": baseUrllang,
|
||||
"select_placeholder": "Выберите",
|
||||
"userlist": {
|
||||
"search_info": "Поиск информации",
|
||||
@@ -320,7 +323,8 @@ var langConfig = {
|
||||
"edit": "Редактировать",
|
||||
"delete": "Удалить",
|
||||
"check": "Проверить",
|
||||
"show": "Подробности"
|
||||
"show": "Подробности",
|
||||
'sku':'Свойства'
|
||||
}
|
||||
},
|
||||
"audit": {
|
||||
|
||||
+83
-3
@@ -3,8 +3,8 @@ var ajax = null,queue = [];
|
||||
var isAjaxLock=false;
|
||||
var Utils={}
|
||||
var userinfowifi='';
|
||||
var baseUrl = "https://server.orzar.shop/";
|
||||
// var baseUrl = "https://usedcar.server.hnxinyouhe.com/";
|
||||
// var baseUrl = "https://server.orzar.shop/";
|
||||
var baseUrl = "https://usedcar.server.hnxinyouhe.com/";
|
||||
// var baseUrl = "http://192.168.50.6:8787/";
|
||||
if(sessionStorage.wifiuserinfo){
|
||||
userinfowifi=JSON.parse(sessionStorage.wifiuserinfo)
|
||||
@@ -454,4 +454,84 @@ self.vehiclenewdelete = function(options){
|
||||
options.url = baseUrl+"console/vehicle/new/"+options.data.id+"/delete"
|
||||
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);
|
||||
};
|
||||
+120
-18
@@ -8,6 +8,11 @@ $(".more-btn").click(function () {
|
||||
}
|
||||
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;
|
||||
}
|
||||
/**
|
||||
* 浏览页面顶部搜索框展开收回控制
|
||||
*/
|
||||
@@ -178,6 +183,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) {
|
||||
var index = $('#'+id+' .feature-item').length;
|
||||
@@ -189,7 +273,7 @@ function addFeature(id,form,title,content,titlevalue1,contentvalue1,contentid) {
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" data-i18n="alls.title"></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title[${index}]" data-i18n-placeholder="alls.title_placeholder" value="${titlevalue}" class="layui-input">
|
||||
<input type="text" name="title[${index}]" data-i18n-placeholder="alls.title_placeholder" value="${titlevalue}" class="layui-input">
|
||||
<input type="hidden" name="idt[${index}]" value="${contentids}" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -213,13 +297,13 @@ function addFeature(id,form,title,content,titlevalue1,contentvalue1,contentid) {
|
||||
function addFeature1(id,form,title,content,titlevalue1,contentvalue1,contentid) {
|
||||
var index = $('#'+id+' .feature-item1').length;
|
||||
var titlevalue=titlevalue1?titlevalue1:''
|
||||
var contentvalue=contentvalue1?contentvalue1:''
|
||||
var contentvalue=contentvalue1?contentvalue1:''
|
||||
var contentids=contentid?contentid:''
|
||||
var html = `
|
||||
<div class="feature-item1" style="margin-bottom: 15px; padding: 15px; border: 1px solid #e6e6e6; border-radius: 4px;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" data-i18n="alls.problem"></label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" name="idp[${index}]" value="${contentids}" />
|
||||
<input type="text" name="titlep[${index}]" data-i18n-placeholder="alls.problem_placeholder" value="${titlevalue}" class="layui-input">
|
||||
</div>
|
||||
@@ -248,7 +332,7 @@ function addIntro(id,form,content,contentvalue,contentid) {
|
||||
var html = `
|
||||
<div class="intro-item" style="margin-bottom: 15px; padding: 15px; border: 1px solid #e6e6e6; border-radius: 4px;">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block" style="margin-left: 0;">
|
||||
<div class="layui-input-block" style="margin-left: 0;">
|
||||
<input type="hidden" name="idc[${index}]" value="${contentids}" />
|
||||
<textarea name="intro[${index}]" data-i18n-placeholder="alls.introduce_placeholder" class="layui-textarea" style="min-height: 100px;">${contentvalues}</textarea>
|
||||
</div>
|
||||
@@ -264,7 +348,25 @@ function addIntro(id,form,content,contentvalue,contentid) {
|
||||
window.i18n.updatePageContent();
|
||||
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){
|
||||
const banners = [];
|
||||
let i = 0;
|
||||
@@ -276,7 +378,7 @@ function objentries(field,id,id2,name,value){
|
||||
i++;
|
||||
}
|
||||
return banners;
|
||||
}
|
||||
}
|
||||
function objentriesedt(field,id,id2,id3,name,value,idc){
|
||||
const banners = [];
|
||||
let i = 0;
|
||||
@@ -295,9 +397,9 @@ function objentries1(field,id,name,cid){
|
||||
let i = 0;
|
||||
while (field[`${id}[${i}]`] !== undefined) {
|
||||
var obj={};
|
||||
obj[name] = field[`${id}[${i}]`]
|
||||
if(cid){
|
||||
obj['id'] = field[`${cid}[${i}]`]
|
||||
obj[name] = field[`${id}[${i}]`]
|
||||
if(cid){
|
||||
obj['id'] = field[`${cid}[${i}]`]
|
||||
}
|
||||
banners.push(obj);
|
||||
i++;
|
||||
@@ -316,22 +418,22 @@ function transformDataall(obj){
|
||||
result['album'] = objentries(obj,'pic',"alt",'pic',"alt")
|
||||
result['content'] = objentries1(obj,'intro',"content")
|
||||
return result;
|
||||
}
|
||||
}
|
||||
function transformDataalledt(obj,brand){
|
||||
const result = {};
|
||||
for (const key in obj) {
|
||||
if (!key.includes('[') && !key.includes(']')) {
|
||||
result[key] = obj[key];
|
||||
}
|
||||
}
|
||||
if(brand){
|
||||
result['traits'] = objentriesedt(obj,'title',"content","idt",'title',"content",'id')
|
||||
result['banners'] = objentriesedt(obj,'pic',"alt","idimg",'pic',"alt",'id')
|
||||
}else{
|
||||
result['trait'] = objentriesedt(obj,'title',"content","idt",'title',"content",'id')
|
||||
result['asked'] = objentriesedt(obj,'titlep',"contentp","idp",'title',"content",'id')
|
||||
result['album'] = objentriesedt(obj,'pic',"alt","idimg",'pic',"alt",'id')
|
||||
result['content'] = objentries1(obj,'intro',"content",'idc')
|
||||
}
|
||||
if(brand){
|
||||
result['traits'] = objentriesedt(obj,'title',"content","idt",'title',"content",'id')
|
||||
result['banners'] = objentriesedt(obj,'pic',"alt","idimg",'pic',"alt",'id')
|
||||
}else{
|
||||
result['trait'] = objentriesedt(obj,'title',"content","idt",'title',"content",'id')
|
||||
result['asked'] = objentriesedt(obj,'titlep',"contentp","idp",'title',"content",'id')
|
||||
result['album'] = objentriesedt(obj,'pic',"alt","idimg",'pic',"alt",'id')
|
||||
result['content'] = objentries1(obj,'intro',"content",'idc')
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
+2
-2
@@ -157,8 +157,8 @@
|
||||
$(this).addClass('icon-check');
|
||||
}
|
||||
});
|
||||
var baseUrl = "https://server.orzar.shop/";
|
||||
// var baseUrl = "https://usedcar.server.hnxinyouhe.com/";
|
||||
// var baseUrl = "https://server.orzar.shop/";
|
||||
var baseUrl = "https://usedcar.server.hnxinyouhe.com/";
|
||||
// 进行登录操作
|
||||
form.on('submit(login)', function (data) {
|
||||
data = data.field;
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -74,9 +74,11 @@
|
||||
|
||||
<script type="text/html" id="currentTableBar">
|
||||
<a class="show" lay-event="show">详情</a>
|
||||
<a class="sku" lay-event="sku">属性</a>
|
||||
{{# if(d.info_status==0){ }}
|
||||
<a class="check" lay-event="check">审核</a>
|
||||
{{# } }}
|
||||
|
||||
<a class="edit" lay-event="edit">编辑</a>
|
||||
<a class="delete" lay-event="delete">删除</a>
|
||||
</script>
|
||||
|
||||
@@ -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>
|
||||
@@ -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"></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"></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>
|
||||
@@ -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"></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"></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"></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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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"></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"></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"></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>
|
||||
@@ -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"></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"></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"></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>
|
||||
Reference in New Issue
Block a user