js
(function () {
layui.use(
[
'layer',
'form',
'tree',
'table',
'laydate',
'upload',
'element',
'treeselect',
],
function () {
var layer = layui.layer,
form = layui.form,
laydate = layui.laydate,
element = layui.element,
upload = layui.upload,
table = layui.table;
var placeHolder = '请输入详情内容';
//额外的一些数据渲染完成的次数 比如下拉框
var requestExtraDataLoadedTime = 0;
//额外数据读取改变
var extraDataChange = function () {
if (modifyTourInfoId) {
//判断额外的数据加载完成
if (requestExtraDataLoadedTime === 3) {
tourInfoAddManagementApi.infoGet(
{
id: modifyTourInfoId,
},
function (res) {
assignDetailData(res.data);
},
function (err) {}
);
}
}
};
var ue = UE.getEditor('myEditor', {
//这里可以选择自己需要的工具按钮名称,此处仅选择如下五个
toolbars: [
[
'fullscreen',
'source',
'|',
'undo',
'redo',
'|',
'bold',
'italic',
'underline',
'fontborder',
'strikethrough',
'superscript',
'subscript',
'removeformat',
'formatmatch',
'autotypeset',
'blockquote',
'pasteplain',
'|',
'insertimage',
'forecolor',
'backcolor',
'insertorderedlist',
'insertunorderedlist',
'selectall',
'cleardoc',
'|',
'rowspacingtop',
'rowspacingbottom',
'lineheight',
'|',
'customstyle',
'fontfamily',
'fontsize',
'|',
'directionalityltr',
'directionalityrtl',
'indent',
'|',
'justifyleft',
'justifycenter',
'justifyright',
'justifyjustify',
],
],
//focus时自动清空初始化时的内容
autoClearinitialContent: true,
//关闭字数统计
wordCount: false,
//关闭elementPath
elementPathEnabled: false,
//默认的编辑区域高度
initialFrameHeight: 300,
//更多其他参数,请参考ueditor.config.js中的配置项
zIndex: 998,
});
UE.getEditor('myEditor').ready(function () {
tourInfoAddManagementApi.relateScenicList(
{},
function (res) {
requestExtraDataLoadedTime += 1;
disSystemUtil.reloadSelectInput(
form,
'appoint-platsce-content-option',
'appointmentPlatScenicId',
res.data,
'name',
'id'
);
extraDataChange();
},
function (err) {}
);
dicDataInfoAddManagementApi.getDataDictByPid(
{
pid: '028',
},
function (res) {
requestExtraDataLoadedTime += 1;
disSystemUtil.reloadSelectInput(
form,
'area-content-option',
'area',
res.data,
'name',
'id'
);
extraDataChange();
},
function (err) {}
);
dicDataInfoAddManagementApi.getDataDictByPid(
{
pid: '024',
},
function (res) {
requestExtraDataLoadedTime += 1;
disSystemUtil.reloadSelectInput(
form,
'scenicType-content-option',
'scenicType',
res.data,
'name',
'id'
);
extraDataChange();
},
function (err) {}
);
});
//记录被删除的images
var deleteEditImages = [];
//基础信息添加后的parentid 语音导览新增需要传递这个
var baseInfoParentId = null; //this value is for test
//记录修改的id
var modifyTourInfoId = null;
if (modifyTourInfoId) {
$('#btnVideoScenicClear').removeClass('hide');
$('#add').text('更新');
}
//请求参数
var requestParams = disSystemUtil.getRequestParams();
//请求方法
var requestAction = requestParams.action;
//传递过来的id
var passModiId = requestParams.id;
//判断是查看详情的情况
if (requestAction === 'detail') {
$('#tourBaseInfoForm').addClass('layui-hide');
$('#tourDetailBaseInfoForm').removeClass('layui-hide');
} else if (requestAction === 'add' || requestAction === 'edit') {
$('#tourBaseInfoForm').removeClass('layui-hide');
$('#tourDetailBaseInfoForm').addClass('layui-hide');
}
if (passModiId !== undefined) {
modifyTourInfoId = passModiId;
baseInfoParentId = passModiId;
}
if (requestAction !== 'add') {
$('#voice').removeClass('layui-hide');
$('#video').removeClass('layui-hide');
}
var assignEditImages = function (images) {
$('#tinAddFomUploadPart').empty();
$('#detailTourInfoTinAddFomUploadPart').empty();
for (var index = 0; index < images.length; index++) {
if (images[index].length > 0) {
var url = "url('" + images[index] + "')";
var html =
'<div detailindex=' +
index +
' editurl=' +
images[index] +
' style="background-image:' +
url +
';" class="tinaddfom_uploadimg_item_con">\n' +
'<img class="tinaddfom_uploadimg_item_delete"\n' +
'src="../../imgs/delete.png" alt="">\n' +
'</div>';
$('#tinAddFomUploadPart').append(html);
var detailInfoHtml =
'<div detailindex=' +
index +
' editurl=' +
images[index] +
' style="background-image:' +
url +
';" class="tinaddfom_uploadimg_item_con">\n' +
'</div>';
$('#detailTourInfoTinAddFomUploadPart').append(detailInfoHtml);
}
}
};
var assignDetailData = function (data) {
var images = data.images.split(',');
delete data.images;
form.val('tourBaseInfoForm', data);
if (data.joinPassengerFlow == '006001') {
$('.tinaddfom_warning_box').removeClass('layui-hide');
} else {
$('.tinaddfom_warning_box').addClass('layui-hide');
}
assignEditImages(images);
ue.setContent(data.details);
$('#detailTourInfoDetailsPart').html(data.details);
// detail case
$('#detailTourInfoScenicName').text(data.scenicName);
$('#detailTourInfoTime').text(data.updateTime);
$('#detailTourInfoScenicTypeName').text(data.scenicTypeName);
$('#detailTourInfoScenicStarLevel').text(data.scenicStarLevel);
$('#detailTourInfoScenicEvaluateTime').text(data.evaluateTime);
$('#detailTourInfoScenicMaxCapacity').text(data.maxCapacity);
$('#detailTourInfoScenicInstantCapacity').text(data.instantCapacity);
$('#detailTourInfoScenicJoinPassengerFlow').text(
data.joinPassengerFlowName
);
$('#detailTourInfoScenicType').text(data.scenicType);
$('#detailTourInfoCanAppointmentName').text(data.canAppointmentName);
if (data.canAppointment == '006001') {
$('.tinaddfom_check_scenic').removeClass('layui-hide');
$('#detailTourInfoAppointmentPlatScenicName').text(
data.appointmentPlatScenicName
);
} else {
$('.tinaddfom_check_scenic').addClass('layui-hide');
$('#detailTourInfoAppointmentPlatScenicName').text('');
}
if (data.joinPassengerFlow == '006001') {
$('.tinaddfom_check_prewarning').removeClass('layui-hide');
$('#detailTourInfoScenicPrewarningValue').text(data.prewarningValue);
} else {
$('.tinaddfom_check_prewarning').addClass('layui-hide');
$('#detailTourInfoScenicPrewarningValue').text('');
}
$('#detailTourInfoStatusName').text(data.statusName);
$('#detailTourInfoBuyingLinks').text(data.buyingLinks);
$('#detailTourInfoOpenTime').text(data.openTime);
$('#detailTourInfoContactNumber').text(data.contactNumber);
$('#detailTourInfoLocation').text(data.location);
$('#detailTourInfoAreaName').text(data.areaName);
};
//新增处理
var baseInfoAddHandle = function () {
var addBaseInfoLoading = null;
var addVoiceLayer = null;
var detailVoiceLayer = null;
//上传的文件对象
var uploadFiles;
//上传文件数组
var uploadDatas = [];
var deleteFiles = [];
var postParams = null;
laydate.render({
elem: '#evaluateTime',
});
//上传的图片删除
$('#tinAddFomUploadPart').on(
'click',
'.tinaddfom_uploadimg_item_delete',
function () {
var that = this;
layer.confirm('是否确认删除该项?', function (layIndex) {
if (modifyTourInfoId) {
var editurl = $(that).parent().attr('editurl');
if (editurl !== undefined) {
deleteEditImages.push(editurl);
$(that).parent().remove();
} else {
var index = $(that).parent().attr('index');
//需要删除的下标
var deleteIndex = -1;
//找到需要删除的下标
for (var i = 0; i < uploadDatas.length; i++) {
var item = uploadDatas[i];
if (item.index == index) {
deleteIndex = i;
break;
}
}
delete uploadFiles[index];
if (deleteIndex != -1) {
uploadDatas.splice(deleteIndex, 1);
}
$(that).parent().remove();
layer.close(layIndex);
}
layer.close(layIndex);
} else {
var index = $(that).parent().attr('index');
//需要删除的下标
var deleteIndex = -1;
//找到需要删除的下标
for (var i = 0; i < uploadDatas.length; i++) {
var item = uploadDatas[i];
if (item.index == index) {
deleteIndex = i;
break;
}
}
delete uploadFiles[index];
if (deleteIndex != -1) {
uploadDatas.splice(deleteIndex, 1);
}
$(that).parent().remove();
layer.close(layIndex);
}
});
}
);
form.on('submit(addBaseInfo)', function (data) {
var field = data.field;
postParams = field;
if (
field.maxCapacity.length > 0 &&
!disSystemUtil.checkNum(field.maxCapacity)
) {
layer.msg('最大承载量只能为正整数');
//layWarning.show('最大承载量只能为正整数');
return false;
}
if (
field.instantCapacity.length > 0 &&
!disSystemUtil.checkNum(field.instantCapacity)
) {
layer.msg('瞬时承载量只能为正整数');
return false;
}
if (
field.prewarningValue.length > 0 &&
!disSystemUtil.checkNum(field.prewarningValue)
) {
layer.msg('预警值只能为正整数');
return false;
}
if (!disSystemUtil.checkContactPhone(field.contactNumber)) {
layer.msg('请输入正确的电话号码');
return false;
}
// var imgLength = $('#tinAddFomUploadPart div').length;
// if( imgLength == 0){
// layer.msg("请上传图片");
// return false;
// }
if (modifyTourInfoId) {
if (uploadDatas.length > 0) {
$('#uploadBtn').click();
addBaseInfoLoading = layer.load(2);
} else {
postParams.id = modifyTourInfoId;
postParams.delImages = deleteEditImages.join(',');
var content = ue.getContent();
if (ue.getContentTxt() === placeHolder) {
content = '';
}
uploadInstance.config.data.details = content;
postParams.details = content;
addBaseInfoLoading = layer.load(2);
tourInfoAddManagementApi.infoEdit(
postParams,
function (res) {
layer.close(addBaseInfoLoading);
layer.msg(res.message);
},
function (res) {
layer.close(addBaseInfoLoading);
}
);
}
} else {
if (uploadDatas.length == 0) {
layer.msg('请上传图片');
} else {
$('#uploadBtn').click();
addBaseInfoLoading = layer.load(2);
}
}
return false;
});
//清空文件队列
var clearFile = function () {
for (var i in files) {
delete files[i];
}
};
//多图片上传
var uploadInstance = upload.render({
elem: '#upload',
// data: saveContractParams,
auto: false,
url:
disSystemUtil.domain + '/management/pub_serv_plat/tourism/info_add',
multiple: true,
multipleOnce: true,
accept: 'images',
field: 'images',
bindAction: '#uploadBtn',
before: function (obj) {
if (modifyTourInfoId) {
uploadInstance.config.data = postParams;
uploadInstance.config.url =
disSystemUtil.domain +
'/management/pub_serv_plat/tourism/info_edit';
uploadInstance.config.data.id = modifyTourInfoId;
uploadInstance.config.data.delImages = deleteEditImages.join(',');
uploadInstance.config.data.userId = disSystemUtil.getLocalUserInfo().id;
uploadInstance.config.data.accesskey = disSystemUtil.getLocalUserInfo().accesskey;
var content = ue.getContent();
if (ue.getContentTxt() === placeHolder) {
content = '';
}
uploadInstance.config.data.details = content;
} else {
uploadInstance.config.url =
disSystemUtil.domain +
'/management/pub_serv_plat/tourism/info_add';
//动态参数设定
uploadInstance.config.data = postParams;
uploadInstance.config.data.userId = disSystemUtil.getLocalUserInfo().id;
uploadInstance.config.data.accesskey = disSystemUtil.getLocalUserInfo().accesskey;
var content = ue.getContent();
if (ue.getContentTxt() === placeHolder) {
content = '';
}
uploadInstance.config.data.details = content;
}
// uploadInstance.config.data.recorderId = disSystemUtil.getRecordId();
//预读本地文件示例,不支持ie8
obj.preview(function (index, file, result) {
// $('#demo2').append('<img src="' + result + '" alt="' + file.name + '" class="layui-upload-img">')
});
},
choose: function (obj) {
//清空文件的上传队列
// for (var index = 0; index < deleteFiles.length; index++) {
// var element = deleteFiles[index];
// delete files[element];
// }
files = obj.pushFile();
//将每次选择的文件追加到文件队列
uploadFiles = files;
//预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
// uploadDatas = [];
// $("#tinAddFomUploadPart").empty();
obj.preview(function (index, file, result) {
console.log(index); //得到文件索引
console.log(file); //得到文件对象
console.log(result); //得到文件base64编码,比如图片
//这里还可以做一些 append 文件列表 DOM 的操作
//obj.upload(index, file); //对上传失败的单个文件重新上传,一般在某个事件中使用
//delete files[index]; //删除列表中对应的文件,一般在某个事件中使用
deleteFiles.push(index);
uploadDatas.push({
fileName: file.name,
index: index,
});
var url = "url('" + result + "')";
var html =
'<div index=' +
index +
' style="background-image:' +
url +
';" class="tinaddfom_uploadimg_item_con">\n' +
'<img class="tinaddfom_uploadimg_item_delete"\n' +
'src="../../imgs/delete.png" alt="">\n' +
'</div>';
$('#tinAddFomUploadPart').append(html);
});
},
done: function (res) {
//上传完毕
if (disSystemUtil.checkResponseStatusValid(res)) {
clearFile();
uploadFiles = [];
layer.msg(disSystemTint.handleSuccess);
if (requestAction === 'add') {
$('#voice').removeClass('layui-hide');
$('#video').removeClass('layui-hide');
baseInfoParentId = res.data.id;
modifyTourInfoId = res.data.id;
voiceInfoAddHandle();
$('#voice').click();
}
var images = res.data.images.split(',');
assignEditImages(images);
} else {
//配置一个透明的询问框
layer.msg(res.message);
}
layer.close(addBaseInfoLoading);
},
error: function () {
//请求异常回调
layer.close(addBaseInfoLoading);
layer.msg('请检查,单次上传文件大小不能超过5M');
},
});
};
baseInfoAddHandle();
//语音导览模块
var voiceInfoAddHandle = function () {
var addBaseInfoLoading = null;
//上传的文件对象
var uploadFiles;
//上传文件数组
var uploadDatas = [];
var deleteFiles = [];
var postParams = null;
var requestQuery = {
parentScenicId: baseInfoParentId,
status: '',
};
//需要修改的item id
var modifyVoiceItemId = null;
form.val('voiceQueryFrom', {
scenicSpotName: '',
status: '',
});
renderTable = function (params) {
//执行一个 table 实例
table.render({
id: 'queryTable',
elem: '#table',
where: params,
url:
disSystemUtil.domain +
'/management/pub_serv_plat/tourism/audio_list', //数据接口
request: {
pageName: 'pageNum', //页码的参数名称,默认:page
limitName: 'pageSize', //每页数据量的参数名,默认:limit
},
responseHandler: function (res) {
// 可进行数据操作
return {
count: res.data.total,
data: res.data.rows,
code: res.status == 200 ? 0 : -1,
};
},
page: true, //开启分页
cols: [
[
{
field: 'sort',
title: '展示序号',
align: 'center',
},
{ field: 'scenicSpotName', title: '景点名称', align: 'center' },
{
field: 'statusName',
title: '状态',
align: 'center',
},
{
field: 'updateTime',
title: '最后操作时间',
align: 'center',
},
{
title: '操作',
align: 'center',
toolbar: '#tableBar',
width: 150,
}, //这里的toolbar值是模板元素的选择器
],
],
});
//监听工具条
table.on('tool(queryTable)', function (obj) {
//注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
var tr = obj.tr; //获得当前行 tr 的DOM对象
if (layEvent === 'detail') {
//查看
detailVoiceLayer = layer.open({
type: 1,
title: '语音导览查看',
area: ['850px', '550px'],
content: $('#detailTourVoice'),
btn: ['关闭'],
btnAlign: 'c',
yes: function (index, layero) {
layer.close(detailVoiceLayer);
},
btn2: function (index, layero) {},
success: function (layero, index) {
$('#detailTourVoice').removeClass('layui-hide');
$('#scenicSpotNameLabel').text(data.scenicSpotName);
$('#scenicSpotDescLabel').text(data.scenicSpotDesc);
$('#sortLabel').text(data.sort);
$('#audio').attr('src', data.audioUrl);
$('#statusNameLabel').text(data.statusName);
$('#updateTimeLabel').text(data.updateTime);
},
cancel: function (index, layero) {},
});
} else if (layEvent === 'edit') {
//编辑
addVoiceLayer = layer.open({
type: 1,
title: '语音导览编辑',
area: ['850px', '550px'],
content: $('#addTourVoice'),
btn: ['保存', '关闭'],
btnAlign: 'c',
yes: function (index, layero) {
$('#addVoiceItem').click();
},
btn2: function (index, layero) {},
success: function (layero, index) {
modifyVoiceItemId = data.id;
form.val('addFrom', data);
//pop方法会删除args最后一个元素,并返回
var audioName = data.audioUrl.split('/').pop();
$('#selectVoiceLabel').text(audioName);
$('#addTourVoice').removeClass('layui-hide');
},
cancel: function (index, layero) {},
});
} else if (layEvent === 'del') {
layer.confirm('是否确认删除语音导览?', function (index) {
var load = layer.load(2);
tourInfoAddManagementApi.audioDelete(
{
id: data.id,
},
function (res) {
layer.close(index);
layer.close(load);
layer.msg(disSystemTint.handleSuccess);
obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
},
function (err) {}
);
});
}
});
};
//执行一个 table 实例
renderTable(requestQuery);
//查询列表
form.on('submit(queryList)', function (data) {
var params = data.field;
params.parentScenicId = baseInfoParentId;
renderTable(params);
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});
//语音上传
var uploadInstance = upload.render({
elem: '#uploadVoice',
// data: saveContractParams,
auto: false,
url:
disSystemUtil.domain +
'/management/pub_serv_plat/tourism/audio_add',
multiple: true,
multipleOnce: true,
accept: 'audio',
field: 'audio',
bindAction: '#uploadVoiceBtn',
size: 4 * 1024,
before: function (obj) {
if (modifyVoiceItemId === null) {
if (baseInfoParentId === null) {
layer.msg('父景点的id不能为空');
return;
}
uploadInstance.config.url =
disSystemUtil.domain +
'/management/pub_serv_plat/tourism/audio_add';
//动态参数设定
uploadInstance.config.data = postParams;
uploadInstance.config.data.userId = disSystemUtil.getLocalUserInfo().id;
uploadInstance.config.data.accesskey = disSystemUtil.getLocalUserInfo().accesskey;
uploadInstance.config.data.parentScenicId = baseInfoParentId;
} else {
//更新
uploadInstance.config.url =
disSystemUtil.domain +
'/management/pub_serv_plat/tourism/audio_edit';
//动态参数设定
uploadInstance.config.data = postParams;
uploadInstance.config.data.userId = disSystemUtil.getLocalUserInfo().id;
uploadInstance.config.data.accesskey = disSystemUtil.getLocalUserInfo().accesskey;
uploadInstance.config.data.id = modifyVoiceItemId;
}
// uploadInstance.config.data.recorderId = disSystemUtil.getRecordId();
//预读本地文件示例,不支持ie8
obj.preview(function (index, file, result) {
// $('#demo2').append('<img src="' + result + '" alt="' + file.name + '" class="layui-upload-img">')
});
},
choose: function (obj) {
//清空文件的上传队列
for (var index = 0; index < deleteFiles.length; index++) {
var element = deleteFiles[index];
delete files[element];
}
files = obj.pushFile();
//将每次选择的文件追加到文件队列
uploadFiles = files;
//预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
uploadDatas = [];
// $("#tinAddFomUploadPart").empty();
obj.preview(function (index, file, result) {
console.log(index); //得到文件索引
console.log(file); //得到文件对象
console.log(result); //得到文件base64编码,比如图片
//这里还可以做一些 append 文件列表 DOM 的操作
//obj.upload(index, file); //对上传失败的单个文件重新上传,一般在某个事件中使用
//delete files[index]; //删除列表中对应的文件,一般在某个事件中使用
deleteFiles.push(index);
uploadDatas.push({
fileName: file.name,
index: index,
});
$('#selectVoiceLabel').text(file.name);
});
},
done: function (res) {
//上传完毕
console.log(res);
if (disSystemUtil.checkResponseStatusValid(res)) {
//测试添加合同发送成功后
layer.close(addBaseInfoLoading);
renderTable(requestQuery);
layer.close(addVoiceLayer);
layer.msg(disSystemTint.handleSuccess);
} else {
layer.close(addBaseInfoLoading);
//配置一个透明的询问框
layer.msg(res.message);
layer.msg(disSystemTint.handleFail);
}
},
error: function () {
//请求异常回调
layer.close(addBaseInfoLoading);
layer.msg(disSystemTint.handleFail);
layer.msg('请检查,单次上传文件大小不能超过4M');
},
});
form.on('submit(addVoiceItem)', function (data) {
var field = data.field;
postParams = field;
if (!disSystemUtil.checkNum(field.sort)) {
layer.msg('请输入正确的展示序号');
return false;
}
if (field.scenicSpotDesc.length > 500) {
layer.msg('景区简介不能超过500个字');
return false;
}
addBaseInfoLoading = layer.load(2);
if (modifyVoiceItemId) {
//如果有更改音频
if (uploadDatas.length > 0) {
$('#uploadVoiceBtn').click();
} else {
postParams.id = modifyVoiceItemId;
tourInfoAddManagementApi.audioEdit(
postParams,
function (res) {
layer.close(addBaseInfoLoading);
renderTable(requestQuery);
layer.msg(disSystemTint.handleSuccess);
layer.close(addVoiceLayer);
},
function (err) {
layer.close(addBaseInfoLoading);
layer.msg(disSystemTint.handleFail);
}
);
}
} else {
$('#uploadVoiceBtn').click();
}
return false;
});
$('#addVoice').click(function () {
form.val('addFrom', {
scenicSpotName: '',
scenicSpotDesc: '',
sort: '',
});
$('#selectVoiceLabel').text('');
addVoiceLayer = layer.open({
type: 1,
title: '语音导览新增',
area: ['850px', '550px'],
content: $('#addTourVoice'),
btn: ['保存', '关闭'],
btnAlign: 'c',
yes: function (index, layero) {
$('#addVoiceItem').click();
},
btn2: function (index, layero) {},
success: function (layero, index) {
modifyVoiceItemId = null;
$('#addTourVoice').removeClass('layui-hide');
},
cancel: function (index, layero) {},
});
});
};
if (requestAction !== 'add') {
voiceInfoAddHandle();
}
//返回前一页面
$('#goBack').click(function () {
window.history.back(-1);
});
form.on('radio(passengerFlow)', function (data) {
console.log(data.value); //被点击的radio的value值
if (data.value == '006002') {
$('.tinaddfom_warning_box').addClass('layui-hide');
} else {
$('.tinaddfom_warning_box').removeClass('layui-hide');
}
});
var videoInfoHandle = function () {
/**
* 获取星期的选择
* @param {选择器} selector
*/
var getWeeksSelItemsWithSelector = function (selector) {
var checkedInput = $(selector).children('input:checked');
var values = [];
for (var i = 0; i < checkedInput.length; i++) {
var elem = checkedInput[i];
var value = $(elem).val();
values.push(value);
}
return values;
};
laydate.render({
elem: '#video_opentime',
type: 'time',
format: 'HH:mm',
range: '-',
ready: function (date) {
var lists = $('.layui-laydate-list.laydate-time-list');
for (var index = 0; index < lists.length; index++) {
var element = lists[index];
$(element).children('li').eq(2).remove();
}
},
});
var contentTableData = [];
//执行一个 table 实例
table.render({
id: 'contentTable',
elem: '#contentTable',
limit: Number.MAX_SAFE_INTEGER,
data: contentTableData,
cols: [
[
{ field: 'liveName', title: '名称', align: 'center', width: 150 },
{
field: 'liveUrl',
title: '视频地址',
align: 'center',
width: 150,
},
{
field: 'sort',
title: '展示序号 <i class="m_warning_color m_fs_normal">*</i>',
align: 'center',
type: 'number',
edit: true,
width: 150,
},
{
field: 'status',
title: '展示状态 <i class="m_warning_color m_fs_normal">*</i>',
align: 'center',
event: 'setType',
style: 'cursor: pointer;',
width: 150,
templet: function (data) {
var name = data.status === '001001' ? '启用' : '停用';
return '<div class="layui-table-cell">' + name + '</div>';
},
},
{
field: 'liveDesc',
title: '视频简介',
align: 'center',
// width: 500,
edit: true,
},
],
],
});
//监听联系人表格点击事件
table.on('tool(contentTable)', function (obj) {
var layEvent = obj.event;
//如果是点击的选择联系人
if (layEvent === 'setType') {
popupOperation.showSelectPopup(
'#video_status_type_select_popup',
0,
obj
);
}
});
var videoListScenicParams = {
liveScenic: '',
};
renderVideoScenicTable = function (params) {
//执行一个 table 实例
table.render({
id: 'table_video_scenic',
elem: '#table_video_scenic',
where: params,
url:
disSystemUtil.domain +
'/management/pub_serv_plat/tourism/live_scenic_list', //数据接口
request: {
pageName: 'pageNum', //页码的参数名称,默认:page
limitName: 'pageSize', //每页数据量的参数名,默认:limit
},
responseHandler: function (res) {
// 可进行数据操作
return {
count: res.data.total,
data: res.data.rows,
code: res.status == 200 ? 0 : -1,
};
},
page: true, //开启分页
cols: [
[
{
field: 'choose',
title: '选项',
align: 'center',
width: 150,
templet: function (data) {
return (
'<input type="radio" name="videoScenicId" value="' +
data.id +
'">'
);
},
},
{
field: 'order',
title: '序号',
align: 'center',
width: 150,
},
{
field: 'liveScenic',
title: '景区名称',
align: 'center',
width: 266,
},
],
],
});
};
// 获取勾选的景区id
function getSelectedVideoScenic() {
var $input = $('input[name="videoScenicId"]:checked');
var $table = $input.parents('table');
var index = $input.parents('tr').attr('data-index');
var result = {
// id: $input.val(),
name: $table
.find(
'tr[data-index="' +
index +
'"] td[data-field="liveScenic"] .layui-table-cell'
)
.html(),
};
return result;
}
form.on('submit(videoScenicListSearch)', function (data) {
var field = data.field;
videoListScenicParams = {
liveScenic: field.scenicSpotName,
};
renderVideoScenicTable(videoListScenicParams);
return false;
});
renderVideoScenicTable(videoListScenicParams);
//弹出窗操作
var popupOperation = {
//关闭弹窗 popupName窗口变量名 ele窗口元素
closePopup: function (popupName, ele) {
layer.close(popupName);
$(ele).hide();
},
/**
* 打开下拉框弹窗的方法
* @param ele 窗口元素'#xxxx'
* @param type 0为选择联系人类型的弹窗 1为选择证件类型的弹窗
* @param tableObj table返回的当前行的对象
*/
showSelectPopup: function (ele, type, tableObj) {
var _this = this;
//设置下拉框初始值,如果type为0则设置联系人类型下拉框初始值,否则设置证件类型
if (type === 0) {
$('#video_status_type_select_popup [name="status"]').val(
tableObj.data.status
);
}
form.render('select'); //更新layui-select
selectPopup = layer.open({
title: '请选择',
area: ['600px', '500px'],
type: 1,
btn: ['确定', '关闭'],
btnAlign: 'c',
content: $(ele),
yes: function () {
var jqEle = $(ele);
if (type === 0) {
contentTableData[tableObj.tr.data('index')][
'status'
] = jqEle.find('input').val()
? jqEle.find('input').val()
: '请选择展示状态';
contentTableData[tableObj.tr.data('index')][
'status'
] = jqEle.find('select').val();
}
table.reload('contentTable', {
data: contentTableData,
});
_this.closePopup(selectPopup, ele);
jqEle.find('select').val('');
form.render('select'); //刷新select选择框渲染
},
cancel: function () {
var jqEle = $(ele);
jqEle.find('select').val('');
form.render('select'); //刷新select选择框渲染
_this.closePopup(selectPopup, ele);
},
btn2: function () {
var jqEle = $(ele);
jqEle.find('select').val('');
form.render('select'); //刷新select选择框渲染
_this.closePopup(selectPopup, ele);
},
});
},
};
$('#video_scenic').click(function () {
var _this = this;
videoScenicListLayer = layer.open({
title: '选择视频直播景区',
area: ['600px', '500px'],
type: 1,
btn: ['确定', '关闭'],
btnAlign: 'c',
content: $('#videoSearchList'),
yes: function () {
var videoScenicItem = getSelectedVideoScenic();
if (videoScenicItem.name === undefined) {
layer.msg('选择不能为空');
} else {
layer.close(videoScenicListLayer);
$('#video_scenic').text(videoScenicItem.name);
var load = layer.load(2);
tourInfoAddManagementApi.liveInfo(
{
parentScenicId: modifyTourInfoId,
liveScenic: videoScenicItem.name,
},
function (res) {
layer.close(load);
var liveDatas = res.data.liveDatas;
contentTableData = [];
for (var index = 0; index < liveDatas.length; index++) {
var element = liveDatas[index];
delete element.createTime;
delete element.updateTime;
contentTableData.push(element);
}
table.reload('contentTable', {
data: contentTableData,
});
$('#videoScenicInputPart').removeClass('layui-hide');
},
function (err) {
layer.close(load);
}
);
}
},
cancel: function () {
layer.close(videoScenicListLayer);
},
btn2: function () {
layer.close(videoScenicListLayer);
},
success: function (layero, index) {
$('#videoSearchList').removeClass('layui-hide');
},
});
});
form.on('submit(videoScenicSave)', function (data) {
var field = data.field;
var selWeeks = getWeeksSelItemsWithSelector('.pbam-stock-weekcheck');
var curData = table.cache['contentTable'];
contentTableData = curData;
var selWeeksString = selWeeks.join(',');
var openTime = $('#video_opentime').val();
for (var index = 0; index < contentTableData.length; index++) {
var element = contentTableData[index];
if (!disSystemUtil.checkNum(element.sort)) {
layer.msg('展示序号只能输入0和正整数');
return false;
}
delete element.statusName;
delete element.LAY_TABLE_INDEX;
}
var params = {
holidayExcept: field.holidayExcept,
liveDatas: contentTableData,
liveScenic: $('#video_scenic').text(),
openTime: openTime,
openWeek: selWeeksString,
parentScenicId: modifyTourInfoId,
};
var load = layer.load(2);
tourInfoAddManagementApi.liveSave(
params,
function (res) {
layer.close(load);
layer.msg(res.message);
$('#btnVideoScenicClear').removeClass('hide');
},
function (err) {
layer.close(load);
}
);
return false;
});
// 清除
$('#btnVideoScenicClear').click(function () {
layer.confirm('是否删除该直播信息?', function (layerIndex, layero) {
var load = layer.load(2);
tourInfoAddManagementApi.liveClear(
{
parentScenicId: modifyTourInfoId,
},
function (res) {
layer.close(load);
layer.msg(disSystemUtil.getResponseMsg(res));
$('#videoScenicInputPart').addClass('layui-hide');
$('.pbam-stock-select-weeks').prop('checked', false);
form.render('checkbox');
$('#video_opentime').val('');
$('input[name=holidayExcept]').eq(0).prop('checked', true);
$('input[name=holidayExcept]').eq(1).prop('checked', false);
form.render('radio');
contentTableData = [];
table.reload('contentTable', {
data: contentTableData,
});
$('input[name=scenicSpotName]').val('');
videoListScenicParams = {
liveScenic: '',
};
renderVideoScenicTable(videoListScenicParams);
$('#video_scenic').text('选择');
},
function (err) {
layer.close(load);
}
);
});
});
if (requestAction === 'edit') {
var load = layer.load(2);
//test
// modifyTourInfoId = 1;
tourInfoAddManagementApi.liveInfo(
{
parentScenicId: modifyTourInfoId,
},
function (res) {
layer.close(load);
if (res.data) {
$('#video_scenic').text(res.data.liveScenic);
$('input[name=holidayExcept]').prop('checked', false);
var liveDatas = res.data.liveDatas;
contentTableData = [];
for (var index = 0; index < liveDatas.length; index++) {
var element = liveDatas[index];
delete element.createTime;
delete element.updateTime;
contentTableData.push(element);
}
table.reload('contentTable', {
data: contentTableData,
});
var holidayExcept = res.data.holidayExcept;
var highlightHolidayExceptIndex =
holidayExcept === '006001' ? 0 : 1;
$('input[name=holidayExcept]')
.eq(highlightHolidayExceptIndex)
.prop('checked', true);
form.render('radio');
var openWeek = res.data.openWeek.split(',');
for (var i = 0; i < openWeek.length; i++) {
var element = openWeek[i];
var ticketAuthInputs = $(
'input[lay-filter=pbamStockSelectWeeks]'
);
for (var j = 0; j < ticketAuthInputs.length; j++) {
var ticketAuthInput = ticketAuthInputs[j];
var value = $(ticketAuthInput).attr('value');
if (value == element) {
$(ticketAuthInput).prop('checked', true);
}
}
}
form.render('checkbox');
$('#video_opentime').val(res.data.openTime);
$('#videoScenicInputPart').removeClass('layui-hide');
}
},
function (err) {
layer.close(load);
}
);
} else if (requestAction === 'detail') {
$('#videoAddInfoPart').addClass('layui-hide');
$('#videoDetailInfoPart').removeClass('layui-hide');
var renderVideoDetail = function (data) {
//执行一个 table 实例
table.render({
id: 'videoDetailContentTable',
elem: '#videoDetailContentTable',
limit: Number.MAX_SAFE_INTEGER,
data: data,
cols: [
[
{
field: 'liveName',
title: '名称',
align: 'center',
width: 150,
},
{
field: 'liveUrl',
title: '视频地址',
align: 'center',
width: 150,
},
{
field: 'sort',
title: '展示序号',
align: 'center',
type: 'number',
width: 150,
},
{
field: 'statusName',
title: '展示状态',
align: 'center',
width: 150,
},
{
field: 'liveDesc',
title: '视频简介',
align: 'center',
},
],
],
});
};
var load = layer.load(2);
//test
// modifyTourInfoId = 1;
tourInfoAddManagementApi.liveInfo(
{
parentScenicId: modifyTourInfoId,
},
function (res) {
layer.close(load);
if (res.data) {
$('#detVidScenicLabel').text(res.data.liveScenic);
$('#detVidHolidayExceptNameLabel').text(
res.data.holidayExceptName
);
$('#detVidOpenTimeLabel').text(res.data.openTime);
var liveDatas = res.data.liveDatas;
contentTableData = [];
for (var index = 0; index < liveDatas.length; index++) {
var element = liveDatas[index];
delete element.createTime;
delete element.updateTime;
contentTableData.push(element);
}
renderVideoDetail(contentTableData);
var openWeek = res.data.openWeek.split(',');
var openWeekChinese = [];
for (var i = 0; i < openWeek.length; i++) {
var element = openWeek[i];
var weekChinese = '';
switch (parseInt(element)) {
case 1:
weekChinese = '周一';
break;
case 2:
weekChinese = '周二';
break;
case 3:
weekChinese = '周三';
break;
case 4:
weekChinese = '周四';
break;
case 5:
weekChinese = '周五';
break;
case 6:
weekChinese = '周六';
break;
case 7:
weekChinese = '周日';
break;
default:
break;
}
openWeekChinese.push(weekChinese);
}
var resultOpenWeekChinese = openWeekChinese.join(',');
$('#detVidWeekLabel').text(resultOpenWeekChinese);
}
},
function (err) {
layer.close(load);
}
);
}
};
videoInfoHandle();
}
);
})();