Files
2025-06-06 09:07:50 +08:00

427 lines
13 KiB
JavaScript
Executable File

$(".more-btn").click(function () {
if ($(".more-container").is(":hidden")) {
$(".more-container").removeClass('layui-hide'); //如果元素为隐藏,则将它显现
$(".more-btn").html('<i class="fa fa-angle-double-up"></i><span data-i18n="userlist.retract"></span>')
} else {
$(".more-container").addClass('layui-hide'); //如果元素为显现,则将其隐藏
$(".more-btn").html('<i class="fa fa-angle-double-down"></i><span data-i18n="userlist.expand"></span>')
}
return false;
})
/**
* 浏览页面顶部搜索框展开收回控制
*/
function toggleSearchFormShow()
{
let $ = layui.$;
let items = $('.top-search-from .layui-form-item');
if (items.length <= 2) {
if (items.length <= 1) $('.top-search-from').parent().parent().remove();
return;
}
let btns = $('.top-search-from .toggle-btn a');
let toggle = toggleSearchFormShow;
if (typeof toggle.hide === 'undefined') {
btns.on('click', function () {
toggle();
});
}
let countPerRow = parseInt($('.top-search-from').width()/$('.layui-form-item').width());
if (items.length <= countPerRow) {
return;
}
btns.removeClass('layui-hide');
toggle.hide = !toggle.hide;
if (toggle.hide) {
for (let i = countPerRow - 1; i < items.length - 1; i++) {
$(items[i]).hide();
}
return $('.top-search-from .toggle-btn a:last').addClass('layui-hide');
}
items.show();
$('.top-search-from .toggle-btn a:first').addClass('layui-hide');
}
layui.$(function () {
toggleSearchFormShow();
});
function brandpresetfn(form,istrue){
self.brandpreset({
type:'get',
successCallBack: function(result){
$("#brand").empty();
if(istrue){
modelpresetfn(form,istrue,result.data[0].id)
}else{
$("#brand").append("<option value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$("#brand").append("<option value='"+this.id+"'>"+this.name+"</option>")
});
window.i18n.updatePageContent();
form.render();
},
failCallBack: function(result){
alert(result.message);
}
})
}
function modelpresetfn(form,istrue,id){
self.modelpreset({
type:'get',
data:{brand_id:id},
successCallBack: function(result){
$("#model").empty();
if(istrue){
}else{
$("#model").append("<option value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$("#model").append("<option value='"+this.id+"'>"+this.name+"</option>")
});
window.i18n.updatePageContent();
form.render();
},
failCallBack: function(result){
alert(result.message);
}
})
}
function typespresetfn(form,istrue){
self.typespreset({
type:'get',
successCallBack: function(result){
$("#vehicle_type").empty();
if(istrue){
}else{
$("#vehicle_type").append("<option value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$("#vehicle_type").append("<option value='"+this.id+"'>"+this.name+"</option>")
});
window.i18n.updatePageContent();
form.render();
},
failCallBack: function(result){
alert(result.message);
}
})
}
function energypresetfn(form,istrue){
self.energypreset({
type:'get',
successCallBack: function(result){
$("#vehicle_energy").empty();
if(istrue){
}else{
$("#vehicle_energy").append("<option value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$("#vehicle_energy").append("<option value='"+this.id+"'>"+this.name+"</option>")
});
window.i18n.updatePageContent();
form.render();
},
failCallBack: function(result){
alert(result.message);
}
})
}
function locationpresetfn(form,istrue){
self.locationpreset({
type:'get',
successCallBack: function(result){
$("#location").empty();
if(istrue){
}else{
$("#location").append("<option value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$("#location").append("<option value='"+this.id+"'>"+this.name+"</option>")
});
window.i18n.updatePageContent();
form.render();
},
failCallBack: function(result){
alert(result.message);
}
})
}
function seoselectfn(form,istrue){
self.seoselect({
type:'get',
successCallBack: function(result){
$("#page").empty();
if(istrue){
}else{
$("#page").append("<option value='' data-i18n='select'></option>")
}
$.each(result.data,function(){
$("#page").append("<option value='"+this.name+"'>"+this.value+"</option>")
});
window.i18n.updatePageContent();
form.render();
},
failCallBack: function(result){
alert(result.message);
}
})
}
// 添加
function addFeature(id,form,title,content,titlevalue1,contentvalue1,contentid) {
var index = $('#'+id+' .feature-item').length;
var titlevalue=titlevalue1?titlevalue1:''
var contentvalue=contentvalue1?contentvalue1:''
var contentids=contentid?contentid:''
var html = `
<div class="feature-item" 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.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="hidden" name="idt[${index}]" value="${contentids}" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="alls.content"></label>
<div class="layui-input-block">
<textarea name="content[${index}]" data-i18n-placeholder="alls.content_placeholder" class="layui-textarea" style="min-height: 80px;">${contentvalue}</textarea>
</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-feature">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>
</div>
`;
$('#'+id).append(html);
window.i18n.updatePageContent();
form.render();
}
function addFeature1(id,form,title,content,titlevalue1,contentvalue1,contentid) {
var index = $('#'+id+' .feature-item1').length;
var titlevalue=titlevalue1?titlevalue1:''
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">
<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>
</div>
<div class="layui-form-item">
<label class="layui-form-label" data-i18n="alls.answer"></label>
<div class="layui-input-block">
<textarea name="contentp[${index}]" data-i18n-placeholder="alls.answer_placeholder" class="layui-textarea" style="min-height: 80px;">${contentvalue}</textarea>
</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-feature">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>
</div>
`;
$('#'+id).append(html);
window.i18n.updatePageContent();
form.render();
}
function addIntro(id,form,content,contentvalue,contentid) {
var index = $('#'+id+' .intro-item').length;
var contentvalues = contentvalue?contentvalue:''
var contentids = contentid?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;">
<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>
</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-intro">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>
</div>
`;
$('#'+id).append(html);
window.i18n.updatePageContent();
form.render();
}
function objentries(field,id,id2,name,value){
const banners = [];
let i = 0;
while (field[`${id}[${i}]`] !== undefined) {
var obj={};
obj[name] = field[`${id}[${i}]`]
obj[value] = field[`${id2}[${i}]`] || ""
banners.push(obj);
i++;
}
return banners;
}
function objentriesedt(field,id,id2,id3,name,value,idc){
const banners = [];
let i = 0;
while (field[`${id}[${i}]`] !== undefined) {
var obj={};
obj[name] = field[`${id}[${i}]`]
obj[value] = field[`${id2}[${i}]`] || ""
obj[idc] = field[`${id3}[${i}]`] || ""
banners.push(obj);
i++;
}
return banners;
}
function objentries1(field,id,name,cid){
const banners = [];
let i = 0;
while (field[`${id}[${i}]`] !== undefined) {
var obj={};
obj[name] = field[`${id}[${i}]`]
if(cid){
obj['id'] = field[`${cid}[${i}]`]
}
banners.push(obj);
i++;
}
return banners;
}
function transformDataall(obj){
const result = {};
for (const key in obj) {
if (!key.includes('[') && !key.includes(']')) {
result[key] = obj[key];
}
}
result['trait'] = objentries(obj,'title',"content",'title',"content")
result['asked'] = objentries(obj,'titlep',"contentp",'title',"content")
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')
}
return result;
}
function transformData(originalData) {
// 提取 banners 数据
const banners = [];
let i = 0;
while (originalData[`pic[${i}]`] !== undefined) {
banners.push({
pic: originalData[`pic[${i}]`],
alt: originalData[`alt[${i}]`] || ""
});
i++;
}
// 提取 traits 数据
const traits = [];
let j = 0;
while (originalData[`title[${j}]`] !== undefined) {
traits.push({
title: originalData[`title[${j}]`] || "",
content: originalData[`content[${j}]`] || ""
});
j++;
}
// 构建最终结果
const result = {
name: originalData.name || "",
status: originalData.status || "",
logo: originalData.logo || "",
image: originalData.image || "",
toppic: originalData.toppic || "",
descpic: originalData.descpic || "",
desc: originalData.desc || "",
toppic_alt: originalData.toppic_alt || "",
descpic_alt: originalData.descpic_alt || "",
logo_alt: originalData.logo_alt || "",
banners: banners,
traits: traits
};
return result;
}
function uploadimage(upload,baseUrl){
// 图片上传
upload.render({
elem: '#albumUpload',
url: baseUrl + 'console/upload/image',
multiple: true,
accept: 'images',
acceptMime: 'image/*',
field: 'image',
before: function(obj) {
// 预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
obj.preview(function(index, file, result) {
// 生成唯一的图片ID
var imgId = 'img_' + new Date().getTime() + '_' + index;
$('#albumList').append(`
<div class="upload-itemm" style="display: inline-block; margin: 10px;" data-index="${index}">
<img src="${result}" alt="" id="${imgId}" class="img-3">
<input type="hidden" name="pic[]" value="">
<input type="text" class="layui-input" data-i18n-placeholder="brand.image_desc" style="margin: 5px 0px;height: 30px;" name="alt[]">
<button type="button" class="layui-btn layui-btn-danger layui-btn-xs delete-img">
<i class="layui-icon">&#xe640;</i><span data-i18n="btn.delete"></span>
</button>
</div>
`);
// 应用多语言
window.i18n.updatePageContent();
});
},
done: function(res, index, upload) {
// 上传完毕回调
if (res.code == 0) {
// 上传成功,设置图片地址
console.log(res.data.image_name);
// 通过data-index属性找到对应的元素
$('.upload-itemm[data-index="' + index + '"]').find('input[name="pic[]"]').val(
res.data.image_name);
} else {
layer.msg('上传失败');
}
},
error: function() {
layer.msg('上传失败');
}
});
// 删除图片
$(document).on('click', '.delete-img', function() {
$(this).closest('.upload-itemm').remove();
});
}