244 lines
10 KiB
HTML
244 lines
10 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
|
<link href="/jscss/style.css" rel="stylesheet" type="text/css" />
|
|
<script type="text/javascript" charset="utf-8" src="/jscss/theme.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="container">
|
|
<form class="search" onsubmit="table.search(this,'btn');return false;">
|
|
<ul></ul>
|
|
<div>
|
|
<div class="sinps"></div>
|
|
<div class="sbtns">
|
|
<button class="lang btn" type="submit">查询</button>
|
|
<a class="lang btn" onclick="edit(0)">添加</a>
|
|
<a class="lang btn" onclick="datatxt()">导出资源</a>
|
|
<a class="lang btn" onclick="importtxt()">导入资源</a>
|
|
<ciy-select com="stor" />
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<div class="table">
|
|
<div class="loading col-24">Loading...</div>
|
|
<div class="list"></div>
|
|
<div>
|
|
<div class="btmbtn">
|
|
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
|
|
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
|
|
|
|
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this, 'del','已选{n}条,是否批量删除?', {},function(json){table.delline(json)})">批量删除</a>
|
|
</div>
|
|
<div class="page"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="alert_edit" style="display:none;">
|
|
<div class="char2 row">
|
|
<div class="ciy-form col-24 col-sm-24">
|
|
<label class="lang imp">路径</label>
|
|
<div>
|
|
<ciy-selcas com="cpath" />
|
|
</div>
|
|
</div>
|
|
<div class="ciy-form col-24 col-sm-24">
|
|
<label class="lang imp">名称</label>
|
|
<div>
|
|
<input type="text" name="name" style="width:100%;" />
|
|
</div>
|
|
</div>
|
|
<div class="ciy-form col-24 col-sm-24">
|
|
<label class="lang">GLB</label>
|
|
<div>
|
|
<ciy-upload com="url" num="1" type="glb" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> <script type="text/javascript" src="/jscss/ciy.js"></script>
|
|
<script type="text/javascript" src="/jscss/ciycmp.js"></script>
|
|
<script type="text/javascript" src="/jscss/ciycmp2.js"></script>
|
|
<script type="text/javascript" src="/jscss/ciytable.js"></script>
|
|
<script type="text/javascript" src="../common.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
'use strict';
|
|
var table;
|
|
var Glob = {};
|
|
ciyfn.pageload(function () {
|
|
//Glob.urlp = ciyfn.urlparam();
|
|
table = new ciyclass.table({
|
|
dom: '.table'
|
|
, url: 'list'
|
|
, pagecount: 10
|
|
, fn_beforedata: function (json) {
|
|
ciyfn.fillsearch({
|
|
searchdom: '.search'
|
|
, data: json
|
|
});
|
|
return json;
|
|
}
|
|
, fn_tdcontent: function (key, datashow, field, data) {
|
|
if (key == '_btn') {
|
|
var html = '';
|
|
html += `<a class="lang btn" onclick="menubtn(this, 'edit')">修改</a>`;
|
|
return html;
|
|
}
|
|
if (key == 'img') {
|
|
return '<img onclick="setglbthumb(this, \'' + data['url'] + '\')" src="' + ciyfn.file_stor(data['url']).replace('.glb', '.jpg').replace('.gltf', '.jpg') + '" style="width:100px;height:auto;">';
|
|
}
|
|
}
|
|
, fn_done: function (json) {
|
|
// table.mergecol('auditstatus');
|
|
// table.mergefix('总计', 'center', 6, 0, 8, 1);
|
|
// table.footertotal();
|
|
}
|
|
});
|
|
var stors = [];
|
|
for (var i in ciy_vars.storlist) {
|
|
stors.push({ id: i, name: i });
|
|
}
|
|
ciycmp({ dom: $5('[com=stor]'), value: ciyfn.getstorage('_cestor', '/'), minwidth: '3em', range: stors, onchange:function(e){Glob.stor = e.value;ciyfn.setstorage('_cestor', e.value)} });
|
|
table.callpage(1);
|
|
});
|
|
function menubtn(dom, btn) {
|
|
var id = $5(dom).parent('tr').attr('data-id');
|
|
if (btn == 'edit') {
|
|
edit(id);
|
|
}
|
|
if (btn == 'sub') {
|
|
ciyfn.sendsignal(window.top, 'manage_ifropen', {
|
|
url: 'xxx.html?_xxxid=' + id
|
|
, name: 'GLB资源<code>' + table.data[id].name + '</code>'
|
|
});
|
|
}
|
|
}
|
|
function setglbthumb(dom, glb) {
|
|
var idx = glb.lastIndexOf('/');
|
|
var fname = glb.substring(idx + 1);
|
|
idx = fname.lastIndexOf('.');
|
|
fname = fname.substring(0, idx);
|
|
ciyfn.alert({
|
|
title: '设置缩略图',
|
|
contentstyle: 'width:100%;height:300px;',
|
|
frame: 'cemap/glb_thumb.html?glb=' + ciyfn.file_stor(glb)
|
|
, cb: function (opn) {
|
|
const [mimePart, dataPart] = opn.inputs.data.split(',');
|
|
const mimeType = mimePart.match(/:(.*?);/)[1];
|
|
const binaryString = atob(dataPart);
|
|
const byteArray = new Uint8Array(binaryString.length);
|
|
for (let i = 0; i < binaryString.length; i++)
|
|
byteArray[i] = binaryString.charCodeAt(i);
|
|
const blob = new Blob([byteArray], { type: mimeType });
|
|
ciyfn.file_uploads(1, [new File([blob], 'thumb.jpg', { type: mimeType })], {stor:Glob.stor, path:'glb', fname:fname, action:'/z/?func=admin/'}, {
|
|
success: function (url, file) {
|
|
console.log(url);
|
|
dom.src = ciyfn.file_stor(url);
|
|
opn.close();
|
|
}
|
|
, fail: function (err) {
|
|
ciyfn.alert(err.errmsg);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
function datatxt() {
|
|
ciyfn.callfunc('datatxt', {}, function (json) {
|
|
ciyfn.alert({
|
|
title: '导出资源'
|
|
, width: 'mb'
|
|
, height: 'pc'
|
|
, content: '<textarea style="height: 100%;">' + json.txt + '</textarea>'
|
|
});
|
|
});
|
|
}
|
|
function importtxt() {
|
|
ciyfn.alert({
|
|
title: '导入资源'
|
|
, width: 'mb'
|
|
, contentstyle: 'overflow:hidden;'
|
|
, content: '<ciy-textarea com="multi" minheight="30em"></ciy-textarea>'
|
|
, fn_showed: function (doc, dom) {
|
|
ciycmp({ dom: $5('[com="multi"]', dom) });
|
|
}
|
|
, btns: ["导入", "*关闭"]
|
|
, cb: function (opn) {
|
|
if (opn.btn == "关闭")
|
|
return opn.close();
|
|
if (ciyfn.throttle(opn.dombtn)) return;
|
|
ciyfn.callfunc('importtxt', opn.inputs, function (json) {
|
|
ciyfn.toast('操作成功', function () {
|
|
opn.close();
|
|
ciyfn.sendsignal(window.top, 'manage_refresh');
|
|
});
|
|
});
|
|
}
|
|
});
|
|
ciyfn.alert({
|
|
title: '导出资源'
|
|
, width: 'mb'
|
|
, height: 'pc'
|
|
, content: '<textarea style="height: 100%;">' + deeptxt(json.txt) + '</textarea>'
|
|
});
|
|
// path1/path2,name,glburl
|
|
// 一行一条
|
|
ciyfn.callfunc('importtxt', {}, function (json) {
|
|
ciyfn.alert({
|
|
title: '导出资源'
|
|
, width: 'mb'
|
|
, height: 'pc'
|
|
, content: '<textarea style="height: 100%;">' + deeptxt(json.txt) + '</textarea>'
|
|
});
|
|
});
|
|
}
|
|
|
|
function getdata(id, act, cb) {
|
|
cb({ data: id == 0 ? {} : table.data[id] });
|
|
}
|
|
|
|
function edit(id) {
|
|
getdata(id, 'edit', function (jsndat) {
|
|
ciyfn.alert({
|
|
title: id == 0 ? '新建' : '修改'
|
|
, width: 'pc'
|
|
, content: document.getElementById("alert_edit").innerHTML
|
|
//, noparent:true
|
|
, fn_showed: function (doc, dom) {
|
|
var dat = jsndat.data;
|
|
ciycmp({ dom: $5('[com=cpath]', dom), value: dat.cpath, range: table.json.zc_cemap_pglb });
|
|
$5('[name=name]', dom).val(dat.name);
|
|
ciycmp({ dom: $5('[com=url]', dom), value: dat.url, path: 'glb', stor: Glob.stor });
|
|
}
|
|
, cb: function (opn) {
|
|
if (opn.btn == "关闭")
|
|
return opn.close();
|
|
opn.inputs.id = id;
|
|
if (ciyfn.throttle(opn.dombtn)) return;
|
|
ciyfn.callfunc('update', opn.inputs, function (json) {
|
|
table.updateline(json);
|
|
opn.close();
|
|
ciyfn.toast('提交成功');
|
|
});
|
|
},
|
|
btns: ["提交", "*关闭"]
|
|
});
|
|
});
|
|
}
|
|
function exportxls() {
|
|
ciyfn.table_exportxls('exportxls', table, function (json) {
|
|
ciyfn.alert({
|
|
content: '<div style="text-align:center;"><span class="lang">导出数据已生成</span><br/><br/><a class="lang btn lg" href="' + json.url + '" target="_blank">下载数据</a></div>'
|
|
, btns: null
|
|
});
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html> |