769 lines
42 KiB
HTML
769 lines
42 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>
|
||
<style>
|
||
div.table {
|
||
border-left: none;
|
||
}
|
||
|
||
.table>ul>li {
|
||
border: 1px solid #dddddd;
|
||
border-radius: 0.2em;
|
||
margin-bottom: 0.5em;
|
||
transition: all .8s;
|
||
width: 100%;
|
||
}
|
||
|
||
.subinp {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.subinp>div {
|
||
margin: 0 2em 0.5em 0;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<div class="container">
|
||
<div style="display:flex;position:fixed;top:0.5em;right:1em;z-index:1;">
|
||
<div>
|
||
<button class="btn" type="button" onclick="savepc(this);">写入文件</button>
|
||
</div>
|
||
<div>
|
||
<button class="btn" type="button" onclick="save(this);" id="id_submit">保存设置(Ctrl+S)</button>
|
||
</div>
|
||
</div>
|
||
<div style="display:flex;position:fixed;bottom:0;right:0;z-index:1;">
|
||
<button class="btn dag smm" onclick="del(this);">删除</button>
|
||
</div>
|
||
<form>
|
||
<div>
|
||
<div class="ciy-form">
|
||
<label>页面名称</label>
|
||
<div><input type="text" name="_bcod_titname" style="width:20em;" />
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>列表选项卡
|
||
<span class="help" help="填写字典名,第一个默认全部。\n填写,分隔的选项,至少2个"></span></label>
|
||
<div><input type="text" name="_bcod_liiddict" style="width:27em;" />
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>更新选项卡
|
||
<span class="help" help="填写,分隔的选项卡名称"></span></label>
|
||
<div><input type="text" name="_bcod_uptabcard" style="width:27em;" />
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>下拉排序
|
||
<span class="help" help="order排序:排序名称,,,\n例: addtimes desc:日期倒序,id:ID\n多种排序用逗号分隔\n排序慎用,需考虑查询性能"></span></label>
|
||
<div><input type="text" name="_bcod_select_order" style="width:100%;" />
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>列表上按钮
|
||
<span class="help" help="多个按钮用,逗号分隔。例:XXX,YYY,ZZZ\n支持下拉按钮,后面用|分隔。例:ZZZ|xx|-|yy|zz\n固定功能文字:添加、导入、导出、帮助"></span></label>
|
||
<div><input type="text" name="_bcod_btntop_newline" style="width:100%;" />
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>列表内按钮
|
||
<span class="help" help="多个按钮用逗号,分隔。例:XXX,YYY,ZZZ\n支持下拉按钮,后面用|分隔。例:ZZZ|xx|-|yy|zz\n单个按钮用.分隔定义key,点后面是按钮标识key。例如: $详情.info\n文字前加&,调用自定义函数\n文字前加$,打开新选项卡\n仅文字,callfastfunc请求后端\n固定功能文字:查看、修改、删除、审核"></span></label>
|
||
<div><input type="text" name="_bcod_btnlist_line" style="width:100%;" />
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>列表下按钮
|
||
<span class="help" help="多个按钮用,逗号分隔。例:XXX,YYY,ZZZ\n文字前加&,用户窗口交互后,请求后端\n仅文字,select_callfunc请求后端\n固定功能文字:批量删除、审核通过、驳回"></span></label>
|
||
<div><input type="text" name="_bcod_btntop_multibtn" style="width:100%;" />
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>PC保存路径</label>
|
||
<div><input type="text" name="_bcod_savepc" style="width:100%;" />
|
||
</div>
|
||
<div class="flexnone"><button class="btn def" onclick="safepath();" type="button">覆盖保护</button>
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>PC前端语言</label>
|
||
<div>
|
||
<ciy-radio com="_bcod_htmllang"></ciy-radio>
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>后端语言</label>
|
||
<div>
|
||
<ciy-radio com="_bcod_proglang"></ciy-radio>
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>PC模版</label>
|
||
<div>
|
||
<ciy-radio com="_bcod_pctemplate"></ciy-radio>
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>PC选项</label>
|
||
<div>
|
||
<ciy-checkbox com="_bcod_pcparam"></ciy-checkbox>
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>MB模版</label>
|
||
<div>
|
||
<ciy-radio com="_bcod_mbtemplate"></ciy-radio>
|
||
</div>
|
||
</div>
|
||
<div class="ciy-form">
|
||
<label>生成源码</label>
|
||
<div>
|
||
<button class="btn" type="button" onclick="createhtml(this);">PC前端(原生JS)</button>
|
||
<button class="btn" type="button" onclick="createhtml(this);">PC前端(Vue3)</button>
|
||
|
|
||
<button class="btn" type="button" onclick="creatembvue3(this);">MB前端(Vue3)</button>
|
||
|
|
||
<button class="btn" type="button" onclick="createphp(this);">后端(PHP)</button>
|
||
<button class="btn" type="button" onclick="createphp(this);">后端(Golang)</button>
|
||
<button class="btn" type="button" onclick="createphp(this);">后端(Python)</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="table">
|
||
<div class="loading col-24">Loading...</div>
|
||
<ul class="list row"></ul>
|
||
</div>
|
||
<div class="showtip">
|
||
列表内按钮 逗号分隔,支持下拉 XXX,YYY,ZZZ|xxx|-yyy|zzz<br />
|
||
批量改按钮 逗号分隔,支持ASD前缀,D 删除专用,A ciy_select_act单行写法,S 函数写法。勾选批量审核,自动增加审核/驳回按钮<br />
|
||
</div>
|
||
</form>
|
||
</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 = { sets: {} };
|
||
ciyfn.pageload(function () {
|
||
var cols = '12,8,16,6,18,t5,1,2,3,4,5,7,9,10,11,13,14,15,17,19,20,21,22,23'.split(',');
|
||
var isview = false; //临时措施,isview为false,集体置true
|
||
|
||
table = new ciyclass.cardtable({
|
||
dom: '.table'
|
||
, url: 'init'
|
||
, fn_done: function (json, post) {
|
||
var cc = json.code_create || {};
|
||
cc.bcod = cc.bcod || {};
|
||
document.title = '☯' + cc.bcod.titname + ' 【低代码生成】';
|
||
if (!cc.bcod.htmllang)
|
||
cc.bcod.htmllang = ciyfn.getstorage('_ccode_htmllang', 'js');
|
||
if (!cc.bcod.proglang)
|
||
cc.bcod.proglang = ciyfn.getstorage('_ccode_proglang', 'php');
|
||
|
||
$5('[name=_bcod_titname]').val(cc.bcod.titname);
|
||
$5('[name=_bcod_select_order]').val(cc.bcod.selectorder);
|
||
$5('[name=_bcod_btntop_newline]').val(cc.bcod.newline);
|
||
$5('[name=_bcod_btntop_multibtn]').val(cc.bcod.multibtn);
|
||
$5('[name=_bcod_uploadpat]').val(cc.bcod.uploadpat);
|
||
$5('[name=_bcod_liiddict]').val(cc.bcod.liiddict);
|
||
$5('[name=_bcod_uptabcard]').val(cc.bcod.uptabcard);
|
||
$5('[name=_bcod_viewtabcard]').val(cc.bcod.viewtabcard);
|
||
|
||
// ciycmp({
|
||
// dom: '[com=_bcod_chk]', value: cc.bcod.bcod_chk, range: [
|
||
// //如果有固定的几个字段,则开启审核
|
||
// //如果有流程字段,则开启流程
|
||
// //如果有列表屏蔽的字段,则开启加载更新
|
||
// { id: 'in', name: '导入功能' } //导入+更新
|
||
// , { id: 'out', name: '导出功能' } //导出
|
||
// , { id: 'pcnoadd', name: 'PC不可添加' }
|
||
// ]
|
||
// });
|
||
$5('[name=_bcod_btnlist_line]').val(cc.bcod.btnlist_line);
|
||
$5('[name=_bcod_savepc]').val(cc.bcod.savepc);
|
||
ciycmp({ dom: '[com=_bcod_htmllang]', value: cc.bcod.htmllang, range: [{ id: 'js', name: '原生JS' }, { id: 'vue3', name: 'Vue3' }, { id: 'react18', name: 'ReactV18' }] });
|
||
ciycmp({ dom: '[com=_bcod_proglang]', value: cc.bcod.proglang, range: [{ id: 'php', name: 'PHP' }, { id: 'golang', name: 'Golang' }, { id: 'python', name: 'Python' }] });
|
||
ciycmp({ dom: '[com=_bcod_pctemplate]', value: cc.bcod.pctemplate, range: [{ id: 'sigpage', name: '单页版' }, { id: 'threepage', name: '独立三页' }, { id: 'treepage', name: '多级树形' }, { id: 'editpage', name: '列表编辑' }] });
|
||
ciycmp({ dom: '[com=_bcod_pcparam]', value: cc.bcod.pcparam, range: [{ id: 'listchk', name: '列表复选' }, { id: 'editsave', name: '编辑暂存' }, { id: 'topbtnnewline', name: '列表上按钮起新行' }] });
|
||
ciycmp({ dom: '[com=_bcod_mbtemplate]', value: cc.bcod.mbtemplate, range: [{ id: 'sigpage', name: '单页版' }, { id: 'threepage', name: '独立三页' }] });
|
||
|
||
//计算所有的set,给到subset
|
||
for (var ss in Glob.sets) {
|
||
ciycmp({
|
||
dom: '[com=bchk_' + ss + ']', range: [
|
||
{ id: 'bviw', name: '查看' }
|
||
, { id: 'bdup', name: '查重' }
|
||
, { id: 'bimp', name: '必填' }
|
||
, { id: 'breq', name: '外引' }
|
||
, { id: 'bqry', name: '查询' }
|
||
, { id: 'bsrt', name: '排序' }
|
||
, { id: 'bmin', name: '导入' }
|
||
, { id: 'bout', name: '导出' }
|
||
]
|
||
});
|
||
var colrange = [];
|
||
colrange.push({ id: '', name: '请选择' });
|
||
for (var x in cols) {
|
||
colrange.push({ id: cols[x], name: cols[x] });
|
||
}
|
||
ciycmp({
|
||
dom: '[com=subset_colview_' + ss + ']', range: colrange, minwidth: '3em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
ciycmp({
|
||
dom: '[com=subset_coledit_' + ss + ']', range: colrange, minwidth: '3em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '更新' });
|
||
colrange.push({ id: 'no', name: '不更新' });
|
||
colrange.push({ id: 'view', name: '只显示' });
|
||
colrange.push({ id: 'fow', name: '跟随' });
|
||
colrange.push({ id: 'now', name: '时间戳' });
|
||
colrange.push({ id: 'me', name: '本用户' });
|
||
colrange.push({ id: 'ip', name: '客户IP' });
|
||
colrange.push({ id: 'saas', name: 'SaaS' });
|
||
ciycmp({
|
||
dom: '[com=subset_noup_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '多选框' });
|
||
colrange.push({ id: 'selmulti', name: '下拉多选' });
|
||
ciycmp({
|
||
dom: '[com=subset_catstype_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '文本框' });
|
||
colrange.push({ id: 'txtarea', name: '多行框' });
|
||
colrange.push({ id: 'txtjson', name: 'JSON框' });
|
||
ciycmp({
|
||
dom: '[com=subset_txtedit_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '文本框' });
|
||
colrange.push({ id: 'select', name: '下拉' });
|
||
colrange.push({ id: 'window', name: '窗选' });
|
||
ciycmp({
|
||
dom: '[com=subset_dbquery_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '下拉' });
|
||
colrange.push({ id: 'window', name: '窗选' });
|
||
colrange.push({ id: 'text', name: '文本框' });
|
||
ciycmp({
|
||
dom: '[com=subset_dbedit_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '一次性' });
|
||
colrange.push({ id: 'rel', name: '增量' });
|
||
colrange.push({ id: 'no', name: '不加载' });
|
||
ciycmp({
|
||
dom: '[com=subset_listload_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '加载' });
|
||
colrange.push({ id: 'no', name: '不加载' });
|
||
ciycmp({
|
||
dom: '[com=subset_nocmn_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '下拉框' });
|
||
colrange.push({ id: 'radio', name: '单选框' });
|
||
ciycmp({
|
||
dom: '[com=subset_catacmp_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '区间框' });
|
||
colrange.push({ id: 'month', name: '月框' });
|
||
colrange.push({ id: 'day', name: '日框' });
|
||
ciycmp({
|
||
dom: '[com=subset_datequery_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
|
||
colrange = [];
|
||
colrange.push({ id: '', name: '下拉框' });
|
||
colrange.push({ id: 'radio', name: '单选框' });
|
||
ciycmp({
|
||
dom: '[com=subset_cabquery_' + ss + ']', range: colrange, minwidth: '4em', onchange: function (e) {
|
||
if (e.from == 'init')
|
||
return;
|
||
chgset(e.dom);
|
||
}
|
||
});
|
||
|
||
Glob.sets[ss].tset = {};
|
||
var othsp = [];
|
||
for (var spk in Glob.sets[ss].sp) {
|
||
var subdom = $5('[com=subset_' + spk + '_' + ss + ']');
|
||
if (subdom.length == 0)
|
||
subdom = $5('[name=subset_' + spk + '_' + ss + ']');
|
||
if (subdom.length == 1) {
|
||
subdom.val(Glob.sets[ss].sp[spk]);
|
||
Glob.sets[ss].tset[spk] = Glob.sets[ss].sp[spk];
|
||
} else {
|
||
othsp.push(spk + '=' + Glob.sets[ss].sp[spk]);
|
||
}
|
||
}
|
||
if (othsp.length > 0) {
|
||
$5('[name=subset_oth_' + ss + ']').val(othsp.join('|'));
|
||
Glob.sets[ss].tset['oth'] = othsp.join('|');
|
||
}
|
||
if (!isview)
|
||
$5('[name=bviw_' + ss + ']').attr('checked', 'true');
|
||
}
|
||
}
|
||
, fn_lihtml: function (data, i) {
|
||
var html = '';
|
||
var colcomment = calcolcomment(data);
|
||
var col = {};
|
||
if (table.json.code_create) {
|
||
col = table.json.code_create.col[data.COLUMN_NAME] || { bchk: 'init' };
|
||
}
|
||
var spset = ciyfn.getstrparam((col.set || ''), '|');
|
||
html += '<li data-id="' + i + '" noselect><div style="display:flex;">';
|
||
html += '<div style="width:33em;">';
|
||
var chkvalue = col.bchk;
|
||
if (chkvalue == 'init') {
|
||
if (data.COLUMN_NAME == 'id'
|
||
|| data.COLUMN_NAME == 'lat') {
|
||
chkvalue = ',bout';
|
||
}
|
||
else if (data.COLUMN_NAME == table.json.dbsaas.saasfield && data.COLUMN_NAME.substring(5) == 'id') {
|
||
chkvalue = '';
|
||
}
|
||
else if (data.COLUMN_NAME == 'ip'
|
||
|| data.COLUMN_NAME == 'auditstatus'
|
||
|| data.COLUMN_NAME == 'audittimes'
|
||
|| data.COLUMN_NAME == 'audituser'
|
||
|| data.COLUMN_NAME == 'auditmsg'
|
||
|| data.COLUMN_NAME == 'matterstatus'
|
||
|| data.COLUMN_NAME == 'matternextuser'
|
||
|| data.COLUMN_NAME == 'mattertimes'
|
||
|| data.COLUMN_NAME == 'uptimes'
|
||
|| data.COLUMN_NAME == 'addtimes') {
|
||
chkvalue = ',bviw,bout';
|
||
} else {
|
||
chkvalue = ',bviw,bmin,bout';
|
||
}
|
||
if (data.COLUMN_NAME == 'name') {
|
||
chkvalue += ',bqry,bimp';
|
||
}
|
||
if (colcomment.cate == 'DOWN' || colcomment.cate == 'IMG' || colcomment.cate == 'IMG1' || colcomment.cate == 'AV') {
|
||
chkvalue = chkvalue.replace(',bmin', '');
|
||
}
|
||
if (data.DATA_TYPE == 'text' || data.DATA_TYPE == 'mediumtext') {
|
||
chkvalue = chkvalue.replace(',bmin', '').replace(',bout', '');
|
||
}
|
||
if (colcomment.cate == 'BR' || colcomment.cate == 'MD' || colcomment.cate == 'FILEMD') {
|
||
if (!colcomment.show)
|
||
spset.nocmn = 'no';
|
||
}
|
||
if (data.COLUMN_NAME == 'auditstatus'
|
||
|| data.COLUMN_NAME == 'audittimes'
|
||
|| data.COLUMN_NAME == 'audituser'
|
||
|| data.COLUMN_NAME == 'auditmsg'
|
||
|| data.COLUMN_NAME == 'matterstatus'
|
||
|| data.COLUMN_NAME == 'matternextuser'
|
||
|| data.COLUMN_NAME == 'mattertimes'
|
||
|| data.COLUMN_NAME == 'id'
|
||
|| data.COLUMN_NAME == 'ip') {
|
||
spset.noup = 'no';
|
||
}
|
||
|
||
if (data.COLUMN_NAME == table.json.dbsaas.saasfield) {
|
||
spset.noup = 'saas';
|
||
}
|
||
if (data.COLUMN_NAME == 'lat') {
|
||
spset.noup = 'fow';
|
||
}
|
||
if (data.COLUMN_NAME == 'uptimes' || data.COLUMN_NAME == 'addtimes') {
|
||
spset.noup = 'now';
|
||
}
|
||
if (data.COLUMN_NAME == 'inputuser' || data.COLUMN_NAME == 'vuser') {
|
||
spset.noup = 'me';
|
||
}
|
||
if (colcomment.cate == 'MSK')
|
||
spset.msk = '****##';
|
||
|
||
if (colcomment.cate == 'DOWN')
|
||
spset.ftype = 'jpg,png,webp,pdf,zip,rar,docx,xlsx,pptx';
|
||
if (colcomment.cate == 'AV')
|
||
spset.ftype = 'mp3,mp4,wav,ogg';
|
||
if (colcomment.cate == 'IMG' || colcomment.cate == 'IMG1')
|
||
spset.ftype = 'jpg,png,webp';
|
||
if (colcomment.cate == 'DOWN' || colcomment.cate == 'AV' || colcomment.cate == 'IMG') {
|
||
spset.num = toint(data.CHARACTER_MAXIMUM_LENGTH / 50);
|
||
}
|
||
if (colcomment.cate == 'MD' || colcomment.cate == 'FILEMD' || colcomment.cate == 'DOWN' || colcomment.cate == 'AV' || colcomment.cate == 'IMG' || colcomment.cate == 'IMG1') {
|
||
spset.savepath = data.COLUMN_NAME;
|
||
if (spset.savepath.substring(spset.savepath.length - 4) == 'imgs')
|
||
spset.savepath = spset.savepath.substring(0, spset.savepath.length - 4);
|
||
if (spset.savepath.substring(spset.savepath.length - 5) == 'files')
|
||
spset.savepath = spset.savepath.substring(0, spset.savepath.length - 5);
|
||
if (spset.savepath.substring(spset.savepath.length - 3) == 'img')
|
||
spset.savepath = spset.savepath.substring(0, spset.savepath.length - 3);
|
||
if (spset.savepath.substring(spset.savepath.length - 4) == 'file')
|
||
spset.savepath = spset.savepath.substring(0, spset.savepath.length - 4);
|
||
if (spset.savepath.substring(spset.savepath.length - 3) == 'ver')
|
||
spset.savepath = spset.savepath.substring(0, spset.savepath.length - 3);
|
||
}
|
||
if (colcomment.dicttype == 'dictdb' && (colcomment.cate == 'DB' || colcomment.cate == 'CATU'))
|
||
spset.listload = 'rel';
|
||
}
|
||
html += '<ciy-checkbox com="bchk_' + i + '" value=' + chkvalue + '></ciy-checkbox>';
|
||
html += '</div>';
|
||
html += '<div style="width:6em;"><code>' + data.DATA_TYPE + '</code></div>';
|
||
html += '<div style="width:12em;"><kbd>' + data.COLUMN_NAME + '</kbd></div>';
|
||
html += '<div style="flex:1;font-size:0.9em;">' + data.COLUMN_COMMENT + '</div>';
|
||
html += '</div>';
|
||
html += '<div style="margin:0.5em;">';
|
||
html += '<input name="col_' + i + '" value="' + data.COLUMN_NAME + '" type="hidden" />';
|
||
html += '<input name="show_' + i + '" value="' + (colcomment.show ? 1 : 2) + '" type="hidden" />';
|
||
html += '<input name="name_' + i + '" value="' + colcomment.name + '" type="hidden" />';
|
||
html += '<input name="cate_' + i + '" value="' + colcomment.cate + '" type="hidden" />';
|
||
html += '<input name="type_' + i + '" value="' + data.DATA_TYPE + '" type="hidden" />';
|
||
html += '<input name="align_' + i + '" value="' + colcomment.align + '" type="hidden" />';
|
||
html += '<input name="data_' + i + '" value="' + colcomment.data + '" type="hidden" />';
|
||
html += '<div class="subinp">';
|
||
html += '<div title="24等分,默认24。常见6/8/12/16。t5是5等分">查看栅格 <ciy-select com="subset_colview_' + i + '"></ciy-select></div>';
|
||
html += '<div title="24等分,默认24。常见6/8/12/16。t5是5等分">编辑栅格 <ciy-select com="subset_coledit_' + i + '"></ciy-select></div>';
|
||
|
||
html += '<div title="更新语句,不更新填no。">编辑否 <ciy-select com="subset_noup_' + i + '"></ciy-select></div>';
|
||
if (colcomment.cate == 'CATU' || colcomment.cate == 'DB' || colcomment.cate == 'CATS' || colcomment.cate == 'CATM') {
|
||
html += '<div title="">查询组件 <ciy-select com="subset_dbquery_' + i + '"></ciy-select></div>';
|
||
}
|
||
if (colcomment.cate == 'DATE') {
|
||
html += '<div title="">查询组件 <ciy-select com="subset_datequery_' + i + '"></ciy-select></div>';
|
||
}
|
||
if (colcomment.cate == 'BOOL' || colcomment.cate == 'CATA') {
|
||
html += '<div title="">查询组件 <ciy-select com="subset_cabquery_' + i + '"></ciy-select></div>';
|
||
}
|
||
if (colcomment.cate == 'CATU' || colcomment.cate == 'DB') {
|
||
html += '<div title="">编辑组件 <ciy-select com="subset_dbedit_' + i + '"></ciy-select></div>';
|
||
}
|
||
if (colcomment.cate == 'CATS' || colcomment.cate == 'TBIN') {
|
||
html += '<div title="">编辑组件 <ciy-select com="subset_catstype_' + i + '"></ciy-select></div>';
|
||
}
|
||
if (colcomment.cate == 'CATA' || colcomment.cate == 'TINT') {
|
||
html += '<div title="">编辑组件 <ciy-select com="subset_catacmp_' + i + '"></ciy-select></div>';
|
||
}
|
||
if (colcomment.cate == 'CATM') {
|
||
html += '<div title="多级下拉设置upid根值">upid根 <input oninput="chgset(this)" name="subset_cas_' + i + '" type="text" style="width:6em;" /></div>';
|
||
}
|
||
if (colcomment.dicttype == 'dictdb') {
|
||
html += '<div title="列表加载方式">列表加载 <ciy-select com="subset_listload_' + i + '"></ciy-select></div>';
|
||
}
|
||
if (colcomment.cate == 'DOWN' || colcomment.cate == 'AV' || colcomment.cate == 'IMG') {
|
||
html += '<div title="设置上传最大数量">上传数 <input oninput="chgset(this)" name="subset_num_' + i + '" type="text" style="width:3em;" /></div>';
|
||
}
|
||
if (colcomment.cate == 'MD' || colcomment.cate == 'FILEMD' || colcomment.cate == 'DOWN' || colcomment.cate == 'AV' || colcomment.cate == 'IMG' || colcomment.cate == 'IMG1') {
|
||
if (colcomment.cate != 'MD' || colcomment.cate == 'FILEMD') {
|
||
html += '<div title="组件的宽高,带单位,如100px">宽高 <input oninput="chgset(this)" name="subset_fwh_' + i + '" type="text" style="width:6em;" /></div>';
|
||
html += '<div title="设置可上传文档扩展名">扩展名 <input oninput="chgset(this)" name="subset_ftype_' + i + '" type="text" style="width:6em;" /></div>';
|
||
}
|
||
html += '<div title="文件上传尺寸限制,单位bytes">大小 <input oninput="chgset(this)" name="subset_flimit_' + i + '" type="text" style="width:6em;" /></div>';
|
||
html += '<div title="图片水印文字">水印 <input oninput="chgset(this)" name="subset_fwater_' + i + '" type="text" style="width:6em;" /></div>';
|
||
html += '<div title="上传图片的最大宽度,填纯数字。像素">图片宽 <input oninput="chgset(this)" name="subset_fimgw_' + i + '" type="text" style="width:6em;" /></div>';
|
||
html += '<div title="上传图片的最大高度,填纯数字。像素">图片高 <input oninput="chgset(this)" name="subset_fimgh_' + i + '" type="text" style="width:6em;" /></div>';
|
||
html += '<div title="上传图片jpg压缩质量0-1">jpg压缩 <input oninput="chgset(this)" name="subset_fzip_' + i + '" type="text" style="width:6em;" /></div>';
|
||
html += '<div title="哪些类型图片可被压缩,默认jpg,png,webp">压缩范围 <input oninput="chgset(this)" name="subset_fzext_' + i + '" type="text" style="width:6em;" /></div>';
|
||
html += '<div title="设置本地保存路径">savepath <input oninput="chgset(this)" name="subset_savepath_' + i + '" type="text" style="width:10em;" /></div>';
|
||
}
|
||
if (colcomment.cate == 'BR' || colcomment.cate == 'MD' || colcomment.cate == 'FILEMD') {
|
||
html += '<div title="列表是否加载">列加载 <ciy-select com="subset_nocmn_' + i + '"></ciy-select></div>';
|
||
html += '<div title="设置高度,只填数字,单位px">高度 <input oninput="chgset(this)" name="subset_height_' + i + '" type="text" style="width:4em;" /></div>';
|
||
}
|
||
|
||
if (colcomment.cate == 'MSK') {
|
||
html += '<div title="设置字符隐藏蒙版,#或*">蒙版 <input oninput="chgset(this)" name="subset_msk_' + i + '" type="text" style="width:6em;" /></div>';
|
||
}
|
||
if (colcomment.cate == '' && (data.DATA_TYPE == 'varchar' || data.DATA_TYPE == 'text' || data.DATA_TYPE == 'mediumtext')) {
|
||
html += '<div title="">编辑组件 <ciy-select com="subset_txtedit_' + i + '"></ciy-select></div>';
|
||
html += '<div title="设置最小高度">高度 <input oninput="chgset(this)" name="subset_height_' + i + '" type="text" style="width:4em;" /></div>';
|
||
}
|
||
html += '</div>';
|
||
|
||
html += '<input disabled type="text" name="set_' + i + '" value="' + ciyfn.setstrparam(spset) + '" style="width:100%;background: #f7f8f8!important;border: none;" />';
|
||
html += '</div>';
|
||
html += '</li>';
|
||
Glob.sets[i] = { sp: spset, comment: colcomment, data: data };
|
||
return html;
|
||
}
|
||
});
|
||
table.callpage(1);
|
||
|
||
window.addEventListener('keydown', function (e) {
|
||
if (e.ctrlKey && e.keyCode == 83) {//Ctrl+S
|
||
e.preventDefault();
|
||
save(document.getElementById("id_submit"));
|
||
}
|
||
});
|
||
});
|
||
function splitdict(data) {
|
||
var datas = data.split('|');
|
||
if (datas[0].substring(0, 4) == 'ciy_')
|
||
return ['dictciy', datas[0]];
|
||
var ind = data.indexOf('_');
|
||
if (ind === -1 || ind > 4)
|
||
return ['dictcata', datas[0]];
|
||
if (data.indexOf('.') !== -1)
|
||
return ['dictstr', datas[0]];
|
||
return ['dictdb', datas[0]];
|
||
}
|
||
|
||
function chgset(dom) {
|
||
var val = $5(dom).val();
|
||
var name = $5(dom).attr('name') || $5(dom).attr('com');
|
||
var names = name.split('_');
|
||
var kp = names[1];
|
||
var stid = names[2];
|
||
if (val)
|
||
Glob.sets[stid].tset[kp] = val;
|
||
else if (Glob.sets[stid].tset)
|
||
delete Glob.sets[stid].tset[kp];
|
||
|
||
var setstr = '';
|
||
for (var tsk in Glob.sets[stid].tset) {
|
||
if (tsk == 'oth')
|
||
setstr += '|' + Glob.sets[stid].tset[tsk];
|
||
else
|
||
setstr += '|' + tsk + '=' + Glob.sets[stid].tset[tsk];
|
||
}
|
||
$5('[name=set_' + stid + ']').val(setstr.substr(1));
|
||
}
|
||
function calcolcomment(col) {
|
||
var colname = col.COLUMN_COMMENT;
|
||
var ret = { show: true };
|
||
if (!colname) {
|
||
ret.name = col.COLUMN_NAME;
|
||
ret.align = 'l';
|
||
ret.show = false;
|
||
return ret;
|
||
}
|
||
if (colname[0] == '#')
|
||
colname = colname.substr(1);
|
||
else if (colname[0] == ',') {
|
||
ret.show = false;
|
||
colname = colname.substr(1);
|
||
}
|
||
var ind = colname.indexOf(' //');
|
||
if (ind > 0)
|
||
colname = colname.substr(0, ind).trim();
|
||
var ind = colname.indexOf(',');
|
||
if (ind > 0) {
|
||
ret.name = colname.substr(0, ind);
|
||
colname = colname.substr(ind + 1);
|
||
} else {
|
||
ret.name = colname;
|
||
colname = '';
|
||
}
|
||
|
||
ret.align = 'l';
|
||
if (ret.name.substr(-1, 1) == '|') {
|
||
if (ret.name.substr(0, 1) == '|') {
|
||
ret.name = ret.name.substr(1, ret.name.length - 2);
|
||
ret.align = 'c';
|
||
} else {
|
||
ret.name = ret.name.substr(0, ret.name.length - 1);
|
||
ret.align = 'r';
|
||
}
|
||
}
|
||
|
||
ret.name = ret.name.trim();
|
||
ret.data = '';
|
||
var ind = colname.indexOf(',');
|
||
if (ind > 0) {
|
||
ret.cate = colname.substr(0, ind);
|
||
ret.data = colname.substr(ind + 1);
|
||
} else {
|
||
ret.cate = colname;
|
||
}
|
||
ret.cate = ret.cate.trim();
|
||
|
||
if (ret.cate == 'DB' || ret.cate == 'CATU' || ret.cate == 'CATS' || ret.cate == 'CATM') {
|
||
[ret.dicttype, ret.dictname] = splitdict(ret.data);
|
||
}
|
||
return ret;
|
||
}
|
||
function save(dom) {
|
||
var postparam = checkformdata(dom);
|
||
if (typeof (postparam) == 'string')
|
||
return ciyfn.alert(postparam);
|
||
ciyfn.callfunc('save', postparam, function (json) {
|
||
ciyfn.setstorage('_ccode_htmllang', postparam._bcod_htmllang);
|
||
ciyfn.setstorage('_ccode_proglang', postparam._bcod_proglang);
|
||
ciyfn.setstorage('_ccode_savepc', postparam._bcod_savepc.substring(0, postparam._bcod_savepc.lastIndexOf('\\') + 1)); //记忆一部分,默认一部分+表名
|
||
ciyfn.toast('保存成功');
|
||
});
|
||
}
|
||
function del(dom) {
|
||
ciyfn.callfunc('del', {}, function (json) {
|
||
window.close();
|
||
});
|
||
}
|
||
function safepath() {
|
||
var savepc = $5('[name=_bcod_savepc]').val();
|
||
var idx = savepc.lastIndexOf('\\');
|
||
if (idx > 0) {
|
||
if (savepc[idx + 1] == '_') {
|
||
savepc = savepc.substring(0, idx + 1) + savepc.substring(idx + 2);
|
||
} else {
|
||
savepc = savepc.substring(0, idx + 1) + '_' + savepc.substring(idx + 1);
|
||
}
|
||
$5('[name=_bcod_savepc]').val(savepc);
|
||
}
|
||
}
|
||
function createhtml(dom) {
|
||
var postparam = checkformdata(dom);
|
||
if (typeof (postparam) == 'string')
|
||
return ciyfn.alert(postparam);
|
||
ciyfn.callfunc('createhtml', postparam, function (json) {
|
||
ciyfn.alert({
|
||
title: 'HTML代码'
|
||
, width: 'max'
|
||
, height: 'max'
|
||
, content: '<textarea spellcheck="false" style="white-space: nowrap;width:100%;height:calc(100% - 1em);"></textarea>'
|
||
, fn_showed: function (doc, dom) {
|
||
$5('textarea', dom).val(json.source);
|
||
}
|
||
, nobutton: true
|
||
});
|
||
});
|
||
}
|
||
function createphp(dom) {
|
||
var postparam = checkformdata(dom);
|
||
if (typeof (postparam) == 'string')
|
||
return ciyfn.alert(postparam);
|
||
ciyfn.callfunc('createphp', postparam, function (json) {
|
||
ciyfn.alert({
|
||
title: '后端代码'
|
||
, width: 'max'
|
||
, height: 'max'
|
||
, content: '<textarea spellcheck="false" style="white-space: nowrap;width:100%;height:calc(100% - 1em);"></textarea>'
|
||
, fn_showed: function (doc, dom) {
|
||
$5('textarea', dom).val(json.source);
|
||
}
|
||
, nobutton: true
|
||
});
|
||
});
|
||
}
|
||
function creatembvue3(dom) {
|
||
var postparam = checkformdata(dom);
|
||
if (typeof (postparam) == 'string')
|
||
return ciyfn.alert(postparam);
|
||
ciyfn.callfunc('creatembvue3', postparam, function (json) {
|
||
ciyfn.alert({
|
||
title: '移动端Vue3代码'
|
||
, width: 'max'
|
||
, height: 'max'
|
||
, content: '<textarea spellcheck="false" style="white-space: nowrap;width:100%;height:calc(100% - 1em);"></textarea>'
|
||
, fn_showed: function (doc, dom) {
|
||
$5('textarea', dom).val(json.source);
|
||
}
|
||
, nobutton: true
|
||
});
|
||
});
|
||
}
|
||
function savepc(dom) {
|
||
var postparam = checkformdata(dom);
|
||
if (typeof (postparam) == 'string')
|
||
return ciyfn.alert(postparam);
|
||
ciyfn.callfunc('savepc', postparam, function (json) {
|
||
ciyfn.toast('已生成');
|
||
});
|
||
}
|
||
function checkformdata(dom) {
|
||
var postparam = ciyfn.getform(dom);
|
||
postparam.total = table.json.list.length;
|
||
postparam.schema = table.json.dbsaas.schem;
|
||
postparam.table = table.json.table;
|
||
postparam.subpath = table.json.dbsaas.subpath;
|
||
postparam.verifyfunc = table.json.dbsaas.verifyfunc;
|
||
postparam.codetable = table.json.dbsaas.codetable;
|
||
postparam.saasfield = table.json.dbsaas.saasfield;
|
||
postparam.saasusr = table.json.dbsaas.saasusr;
|
||
if (!postparam._bcod_proglang)
|
||
return '请选择后端语言';
|
||
for (var i = 0; i < postparam.total; i++) {
|
||
if (postparam['none_' + i] === 'true')
|
||
continue;
|
||
var name = postparam['name_' + i];
|
||
var cate = postparam['cate_' + i];
|
||
var bchk = postparam['bchk_' + i];
|
||
var data = postparam['data_' + i] || '';
|
||
var set = ciyfn.getstrparam(postparam['set_' + i]);
|
||
if (bchk.indexOf('bqry') > -1) {
|
||
if (set.dbquery == 'select' && set.listload == 'rel')
|
||
return name + ' 下拉查询不能增量加载';
|
||
// if ((cate == 'CATU' || cate == 'DB' || cate == 'CATS' || cate == 'CATM') && !set.dbquery) {//文本框查询
|
||
// var dats = data.split('|');
|
||
// if (dats[0].substring(0, 4) == 'ciy_')
|
||
// return name + ' 文本框查询不能用在静态组件中';
|
||
// }
|
||
}
|
||
}
|
||
return postparam;
|
||
}
|
||
</script>
|
||
</body>
|
||
|
||
</html> |