c5_labsci/web/admin/rigger/cata.html
2026-01-27 00:52:00 +08:00

302 lines
9.7 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="search(this);return false;">
<div>
<div class="sinps"></div>
<div class="sbtns">
<button class="lang btn" type="submit">查询</button>
</div>
</div>
</form>
<div class='table'>
<div class="topbtn">
<a class="lang btn btn-multi" onclick="multiadd(0)">批量添加</a>
<a class="lang btn btn-multi" onclick="showtext()">文本</a>
<a class="lang btn btn-multi" onclick="createurl()">字典链接</a>
<a class="lang btn def" onclick="ciyfn.sendsignal(window.top,'restorage', {show:true})">刷新缓存</a>
<span><code id="id_code" style="display:none;"></code></span>
</div>
<div class="loading">Loading...</div>
<div class="list"></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}条,确认是否删除?',{cbid:table.json.cbid},function(json){table.delline(json)})">批量删除</a>
</div>
</div>
</div>
<div id="alert_multiadd" style="display:none;">
<div class="char2">
<div class="ciy-form">
<label class="lang">格式</label>
<div>
<ciy-radio com="multi_format" value="1"></ciy-radio>
</div>
</div>
<div class="ciy-form top">
<label class="lang">代码</label>
<div>
<ciy-textarea com="multi_code" minheight="26em"></ciy-textarea>
</div>
</div>
</div>
</div>
<div id="alert_createurl" style="display:none;">
<div class="char4">
<div class="ciy-form">
<label class="lang">批量添加</label>
<div>
<ciy-switch com="ismulti" y="支持" n="无"></ciy-switch>
</div>
</div>
<div class="ciy-form">
<label class="lang">子码</label>
<div>
<ciy-switch com="issub" y="支持" n="无"></ciy-switch>
</div>
</div>
<div class="ciy-form">
<label class="lang">扩展名</label>
<div>
<input type="text" name="ext" />
</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/ciytable.js"></script>
<script type="text/javascript" src="../common.js"></script>
<script type="text/javascript">
'use strict';
var table;
var Glob = {};
ciyfn.pageload(function () {
$5(document).on('keydown', function (e) {
if (e.ctrlKey && e.keyCode == 83) {//Ctrl+S
e.preventDefault();
var upbtns = $5('.upbtn:not(.def)');
upbtns.each(function (dom) {
menubtn(dom, 'edit');
}, 0.5);
}
});
table = new ciyclass.table({
dom: '.table'
, url: 'init'
, thfield: function (name, key, field, json) {
if (key == 'name') {
if (table.json.issub)
return '<a style="font-size: 1.5em;vertical-align: middle;padding-right: 0.5em;" onclick="$5(\'div[data-treeid][data-deep=0]\').trigger(\'click\');">⇅</a> ' + ciyfn.lang(name);
}
}
, fn_beforedata: function (json) {
json.list = ciyfn.conv_treerow(json.list, 0, 0);
if (json.once) {
if (!json.ismulti)
$5('.btn-multi').hide('', 0, true);
else
$5('#id_code').text(json.codename).show();
}
ciyfn.fillsearch({
searchdom: '.search'
, data: json
});
return json;
}
, fn_trprop: function (data, json) {
var rettxt = ' data-upid="' + data['upid'] + '"';
if (data['_count'] == '0')
rettxt += ' data-search="ok"';
// if (data['_deep'] > 0)
// rettxt += ' style="display:none;"';
return rettxt;
}
, fn_tdcontent: function (key, datashow, field, data) {
if (key == 'extdata' || key == 'codeid' || key == 'clas' || key == 'csort') {
return '<input style="width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + datashow + '"/>';
}
if (key == 'isuse') {
return '<ciy-switch com="' + key + '" value="' + data[key] + '" y="可选" n="显示" />';
}
if (key == '_btn') {
var html = '';
if (data['id'] == 0)
html += '<a class="lang btn def upbtn" onclick="menubtn(this, \'edit\')">新增</a>';
else
html += '<a class="lang btn def upbtn" onclick="menubtn(this, \'edit\')">更新</a>';
if (data['id'] > 0 && table.json.issub)
html += '<a class="lang btn def" onclick="menubtn(this, \'sub\')">添加子码</a>';
return html;
}
if (key == 'name') {
if (data['id'] == 0) {
var html = '';
if (table.json.issub)
html += '<ciy-checkbox com="upcheck" text="' + ciyfn.lang('子码') + '" style="margin-right: 0.3em;"></ciy-checkbox>';
html += '<input style="width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + data['name'] + '"/>';
return { divprop: ' style="display: flex;"', datashow: html };
}
var deep = toint(data['_deep']);
var html = ' '.repeat(deep);
if (data['_count'] > 0) {
html += '<span class="ciy-tree-dot">▶</span> <input style="margin-left: 0.3em;width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + data['name'] + '"/>';
} else {
if (deep > 0)
html += '  ';
html += '<input style="width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + data['name'] + '"/>';
}
return {
divprop: (data['_count'] > 0 ? ' data-treeid="' + data['id'] + '"' : '') + ' data-deep="' + data['_deep'] + '" style="display: flex;" class="ciy-tree-spread"'// class="ciy-tree-spread"
, datashow: html
};
}
}
, fn_done: function () {
table.tree();
var doms = $5('[com]', table.dom);
for (var i = 0; i < doms.length; i++) {
ciycmp({
dom: doms[i]
, onchange: function (e) {
if (e.from == 'init') return;
btnset(e.dom);
}
});
}
}
});
table.callpage(1);
});
function search(dom) {
Glob.key = ciyfn.getform(dom);
$5('[data-search]').each(function (rdom) {
var bshow = true;
for (var k in Glob.key) {
if (!Glob.key[k])
continue;
var val = $5('[name=' + k + ']', rdom).val();
if (val.indexOf(Glob.key[k]) == -1) {
bshow = false;
break;
}
}
rdom.style.display = bshow ? '' : 'none';
});
}
function btnset(dom) {
var domtr = $5(dom).parent('tr');
$5('.btn.upbtn', domtr).removeClass('def');
}
function createurl() {
ciyfn.alert({
title: '字典链接生成'
, width: 'mb'
, content: document.getElementById("alert_createurl").innerHTML
, btns: ["复制", "*关闭"]
, fn_showed: function (doc, dom) {
ciycmp({ dom: $5('[com="issub"]', dom) });
ciycmp({ dom: $5('[com="ismulti"]', dom) });
}
, cb: function (opn) {
if (opn.btn == "关闭")
return opn.close();
var txt = 'rigger/cata.html?cbid=' + table.json.cbid;
if (opn.inputs.issub == 1)
txt += '&issub=yes';
if (opn.inputs.ismulti == 1)
txt += '&ismulti=yes';
if (opn.inputs.ext)
txt += '&ext=' + opn.inputs.ext;
ciyfn.copyboard(txt);
ciyfn.toast(txt);
}
});
}
function menubtn(dom, btn) {
var trdom = $5(dom).parent('tr');
var id = trdom.attr('data-id');
if (btn == 'edit') {
var postparam = ciyfn.getform(dom, 'TR');
postparam.id = id;
if (id > 0)
postparam.upid = table.data[id].upid;
else {
if (postparam.upcheck != "") {
var domselect = $5('.table tr.selected');
if (domselect.length != 1)
return ciyfn.alert('请只选择一个母代码');
postparam.upid = domselect.attr('data-id');
}
}
postparam.cbid = table.json.cbid;
ciyfn.callfunc('update', postparam, function (json) {
$5(dom).addClass('def');
if (id == 0) {
$5('input', trdom).val('');
table.updateline(json);
}
});
}
if (btn == 'sub') {
multiadd(id);
}
}
function showtext() {
var text = '';
for (var i in table.data) {
if (table.data[i].id == 0)
continue;
text += table.data[i].name + ',' + table.data[i].codeid + '<br/>';
}
ciyfn.alert(text);
}
function multiadd(upid) {
var newtitle = '根码';
if (upid == 0) {
var domselect = $5('.table tr.selected');
if (domselect.length == 1)
upid = domselect.attr('data-id');
}
if (upid > 0)
newtitle = '子码 - ' + table.data[upid].name;
ciyfn.alert({
title: '批量新增' + newtitle + ' <span style="font-size:0.6em;">(一行一条)</span>'
, width: 'mb'
, content: document.getElementById("alert_multiadd").innerHTML
, btns: ["新增", "*关闭"]
, fn_showed: function (doc, dom) {
ciycmp({ dom: $5('[com="multi_format"]', dom), range: [{ id: 1, name: '名称,值,扩展值' }, { id: 2, name: '值,名称,扩展值' }] });
ciycmp({ dom: $5('[com="multi_code"]', dom) });
}
, cb: function (opn) {
if (opn.btn == "关闭")
return opn.close();
opn.inputs.upid = upid;
opn.inputs.cbid = table.json.cbid;
if (ciyfn.throttle(opn.dombtn)) return;
ciyfn.callfunc('multiadd', opn.inputs, function (json) {
opn.close();
ciyfn.toast('操作成功', function () {
location.reload();
});
});
}
});
}
</script>
</body>
</html>