This commit is contained in:
boi 2025-06-26 07:08:49 +08:00
parent cf72f665a1
commit 434d97d385
10 changed files with 95 additions and 46 deletions

View File

@ -51,6 +51,12 @@ function calfld($post) {
} }
return $flds; return $flds;
} }
function flddata($data, $idx, $def) {
$strs = explode(',', $data);
if($idx < count($strs))
return $strs[$idx];
return $def;
}
function json_createphp() { function json_createphp() {
$post = new \ciy\post(); $post = new \ciy\post();
require_once 'code_pc_php.php'; require_once 'code_pc_php.php';

View File

@ -474,7 +474,7 @@
if (data.COLUMN_NAME == 'uptimes' || data.COLUMN_NAME == 'addtimes') { if (data.COLUMN_NAME == 'uptimes' || data.COLUMN_NAME == 'addtimes') {
spset.noup = 'now'; spset.noup = 'now';
} }
if (data.COLUMN_NAME == 'inputuser') { if (data.COLUMN_NAME == 'inputuser' || data.COLUMN_NAME == 'vuser') {
spset.noup = 'me'; spset.noup = 'me';
} }
if (colcomment.cate == 'MSK') if (colcomment.cate == 'MSK')

View File

@ -110,16 +110,29 @@
return json; return json;
} }
, fn_tdcontent: function (key, datashow, field, data) { , fn_tdcontent: function (key, datashow, field, data) {
// if (key == 'TABLE_COMMENT') {//内部编辑,立即更新 if (key == 'TABLE_COMMENT') {//内部编辑,立即更新
// return '<a>' + datashow + '</a>'; return '<input type="text" value="' + datashow + '" style="width:100%;" onblur="upcomment(this, ' + data.id + ')"/>';
// } }
if (key == '_btn') { if (key == '_btn') {
return '<a class="lang btn imp" onclick="menubtn(this, \'create\')">生成</a><a class="lang btn" onclick="menubtn(this, \'edit\')">更名</a>'; var html = '';
html += '<a class="lang btn imp" onclick="menubtn(this, \'create\')">生成</a>';
//html += '<a class="lang btn" onclick="menubtn(this, \'edit\')">更名</a>';
return html;
} }
} }
}); });
table.callpage(1); table.callpage(1);
} }
function upcomment(dom, id) {
var val = $5(dom).val();
if (val == table.data[id].TABLE_COMMENT)
return;
ciyfn.callfunc('update', { id: id, tabname: table.data[id].TABLE_NAME, name: val }, function (json) {
table.data[id].TABLE_COMMENT = val;
$5(dom).css({ border: '1px solid var(--succ5)' });
setTimeout(function () { $5(dom).css({ border: '' }); }, 1000);
});
}
function menubtn(dom, btn) { function menubtn(dom, btn) {
var id = $5(dom).parent('tr').attr('data-id'); var id = $5(dom).parent('tr').attr('data-id');
if (btn == 'create') { if (btn == 'create') {

View File

@ -56,7 +56,7 @@ function code_pc_html($post) {
$cate = $fld['cate']; $cate = $fld['cate'];
if ( if (
$cate == 'CATM' || $cate == 'CATS' || $cate == 'MD' || $cate == 'CYC' || $cate == 'LOC' || $cate == 'UNIT' || $cate == 'TIME' $cate == 'CATM' || $cate == 'CATS' || $cate == 'MD' || $cate == 'CYC' || $cate == 'LOC' || $cate == 'UNIT' || $cate == 'TIME'
|| $cate == 'FSIZE' || $cate == 'METRE' || $cate == 'WCNY' || $cate == 'SEC' || $cate == 'TON' || $cate == 'PCT' || $cate == 'CNY' || $cate == 'KG' || $cate == 'TC' || $cate == 'FSIZE' || $cate == 'METRE' || $cate == 'WCNY' || $cate == 'SEC' || $cate == 'TON' || $cate == 'BET' || $cate == 'PCT' || $cate == 'CNY' || $cate == 'KG' || $cate == 'TC'
) )
$ciycmp2 = true; $ciycmp2 = true;
list($dicttype, $dictname) = splitdict($fld['data']); list($dicttype, $dictname) = splitdict($fld['data']);
@ -367,6 +367,10 @@ if($hasedit){
$codex .= "\n{$pspec} {$strstart}<input type=\"text\" name=\"{$col}\" style=\"width:5em;text-align:{$align};\" /> {$strend}"; $codex .= "\n{$pspec} {$strstart}<input type=\"text\" name=\"{$col}\" style=\"width:5em;text-align:{$align};\" /> {$strend}";
} else if ($cate == 'TON') { } else if ($cate == 'TON') {
$codex .= "\n{$pspec} <ciy-inputbet com=\"{$col}\" unit=\"\" bet=\"1000000\" />"; $codex .= "\n{$pspec} <ciy-inputbet com=\"{$col}\" unit=\"\" bet=\"1000000\" />";
} else if ($cate == 'BET') {
$unit = flddata($fld['data'], 0, '');
$bet = flddata($fld['data'], 1, 100);
$codex .= "\n{$pspec} <ciy-inputbet com=\"{$col}\" unit=\"{$unit}\" bet=\"{$bet}\" />";
} else if ($cate == 'PCT') { } else if ($cate == 'PCT') {
$codex .= "\n{$pspec} <ciy-inputbet com=\"{$col}\" unit=\"%\" bet=\"100\" />"; $codex .= "\n{$pspec} <ciy-inputbet com=\"{$col}\" unit=\"%\" bet=\"100\" />";
} else if ($cate == 'CNY') { } else if ($cate == 'CNY') {
@ -618,7 +622,7 @@ if($hasedit){
} else if ( } else if (
$cate == 'FSIZE' || $cate == 'METRE' || $cate == 'DATE' || $cate == 'TIME' || $cate == 'BOOL' $cate == 'FSIZE' || $cate == 'METRE' || $cate == 'DATE' || $cate == 'TIME' || $cate == 'BOOL'
|| $cate == 'WCNY' || $cate == 'UNIT' || $cate == 'CYC' || $cate == 'SEC' || $cate == 'TON' || $cate == 'WCNY' || $cate == 'UNIT' || $cate == 'CYC' || $cate == 'SEC' || $cate == 'TON'
|| $cate == 'PCT' || $cate == 'CNY' || $cate == 'KG' || $cate == 'TC' || $cate == 'BR' || $cate == 'PCT' || $cate == 'CNY' || $cate == 'KG' || $cate == 'TC' || $cate == 'BR' || $cate == 'BET'
) { ) {
$codex .= "\n ciycmp({ dom: $5('[com={$col}]', dom), value: dat.{$col} });"; $codex .= "\n ciycmp({ dom: $5('[com={$col}]', dom), value: dat.{$col} });";
} else if ($cate == 'CATA' || $cate == 'CATU' || $cate == 'CATM' || $cate == 'CATS' || $cate == 'TINT' || $cate == 'DB') { } else if ($cate == 'CATA' || $cate == 'CATU' || $cate == 'CATM' || $cate == 'CATS' || $cate == 'TINT' || $cate == 'DB') {

View File

@ -146,7 +146,7 @@ function code_pc_php($post) {
$codex .= "\n \$csql->where('{$col}&' . \$val . '=' . \$val);"; $codex .= "\n \$csql->where('{$col}&' . \$val . '=' . \$val);";
$codex .= "\n }"; $codex .= "\n }";
} else if ( } else if (
$cate == 'METRE' || $cate == 'FSIZE' || $cate == 'WCNY' || $cate == 'SEC' || $cate == 'TON' $cate == 'METRE' || $cate == 'FSIZE' || $cate == 'WCNY' || $cate == 'SEC' || $cate == 'TON' || $cate == 'BET'
|| $cate == 'PCT' || $cate == 'CNY' || $cate == 'NUM' || $cate == 'KG' || $cate == 'TC' || $cate == 'INT' || $cate == 'PCT' || $cate == 'CNY' || $cate == 'NUM' || $cate == 'KG' || $cate == 'TC' || $cate == 'INT'
) { ) {
$bet = 1000; $bet = 1000;
@ -158,6 +158,9 @@ function code_pc_php($post) {
$bet = 1; $bet = 1;
else if ($cate == 'PCT' || $cate == 'CNY') else if ($cate == 'PCT' || $cate == 'CNY')
$bet = 100; $bet = 100;
else if ($cate == 'BET'){
$bet = flddata($fld['data'], 1, 100);
}
$codex .= "\n \$csql->wherenumrange('{$col}', objstr(\$query, '{$col}_1'), objstr(\$query, '{$col}_2'), {$bet});"; $codex .= "\n \$csql->wherenumrange('{$col}', objstr(\$query, '{$col}_1'), objstr(\$query, '{$col}_2'), {$bet});";
} else if ($cate == 'DATE') { } else if ($cate == 'DATE') {
$datequery = isset($fld['set']['datequery']) ? $fld['set']['datequery'] : ''; $datequery = isset($fld['set']['datequery']) ? $fld['set']['datequery'] : '';
@ -264,7 +267,7 @@ function code_pc_php($post) {
else else
$codex .= "\n \$input[] = array('type' => 'daterange', 'form' => '{$col}', 'name' => '{$fld['name']}');"; $codex .= "\n \$input[] = array('type' => 'daterange', 'form' => '{$col}', 'name' => '{$fld['name']}');";
} else if ( } else if (
$cate == 'METRE' || $cate == 'FSIZE' || $cate == 'WCNY' || $cate == 'SEC' || $cate == 'TON' $cate == 'METRE' || $cate == 'FSIZE' || $cate == 'WCNY' || $cate == 'SEC' || $cate == 'TON' || $cate == 'BET'
|| $cate == 'PCT' || $cate == 'CNY' || $cate == 'NUM' || $cate == 'KG' || $cate == 'TC' || $cate == 'INT' || $cate == 'PCT' || $cate == 'CNY' || $cate == 'NUM' || $cate == 'KG' || $cate == 'TC' || $cate == 'INT'
) { ) {
$codex .= "\n \$input[] = array('type' => 'num', 'form' => '{$col}', 'name' => '{$fld['name']}', 'prop' => ' style=\"width:4em;\"');"; $codex .= "\n \$input[] = array('type' => 'num', 'form' => '{$col}', 'name' => '{$fld['name']}', 'prop' => ' style=\"width:4em;\"');";
@ -808,6 +811,11 @@ function code_pc_php($post) {
} else if ($cate == 'SEC') { } else if ($cate == 'SEC') {
$codex .= "\n if (\$field == '{$col}')"; $codex .= "\n if (\$field == '{$col}')";
$codex .= "\n \$val .= '秒';"; $codex .= "\n \$val .= '秒';";
} else if ($cate == 'BET') {
$unit = flddata($fld['data'], 0, '');
$bet = flddata($fld['data'], 1, 100);
$codex .= "\n if (\$field == '{$col}')";
$codex .= "\n \$val = number_format(\$val / {$bet}, 3) . '{$unit}';";
} else if ($cate == 'TON') { } else if ($cate == 'TON') {
$codex .= "\n if (\$field == '{$col}')"; $codex .= "\n if (\$field == '{$col}')";
$codex .= "\n \$val = number_format(\$val / 1000000, 3) . '吨';"; $codex .= "\n \$val = number_format(\$val / 1000000, 3) . '吨';";
@ -840,7 +848,7 @@ function code_pc_php($post) {
$codex .= "\n \$param['landscape'] = true; //横向打印"; $codex .= "\n \$param['landscape'] = true; //横向打印";
$codex .= "\n \$param['fixtopage'] = true; //打印整个工作表"; $codex .= "\n \$param['fixtopage'] = true; //打印整个工作表";
$codex .= "\n \$param['toptitle'] = 'Demo数据报表';"; $codex .= "\n \$param['toptitle'] = '{$titname}数据报表';";
$codex .= "\n \$str = \\ciy\\excel::general_excel_xml(\$param);"; $codex .= "\n \$str = \\ciy\\excel::general_excel_xml(\$param);";
$codex .= "\n \$filename = '';"; $codex .= "\n \$filename = '';";
$codex .= "\n if (empty(\$filename))"; $codex .= "\n if (empty(\$filename))";
@ -1100,6 +1108,9 @@ function code_pc_php($post) {
$bet = 1000000; $bet = 1000000;
} else if ($cate == 'SEC') { } else if ($cate == 'SEC') {
$unit = '秒'; $unit = '秒';
} else if ($cate == 'BET') {
$unit = flddata($fld['data'], 0, '');
$bet = flddata($fld['data'], 1, 100);
} else if ($cate == 'TON') { } else if ($cate == 'TON') {
$unit = '吨'; $unit = '吨';
$bet = 1000000; $bet = 1000000;

View File

@ -38,7 +38,7 @@ class note {
$typeid = getint('typeid'); $typeid = getint('typeid');
$post = new \ciy\post(); $post = new \ciy\post();
$id = $post->getint('id'); $id = $post->getint('id');
$content = $post->get('content', '', 'html'); $content = $post->get('content');
if (empty($content)) if (empty($content))
return errjson('请填写内容'); return errjson('请填写内容');
if ($id > 0) { if ($id > 0) {

View File

@ -141,7 +141,7 @@ ciycmpfunc.ciyinputbet = function (opn) {
if (opn.hasmore) if (opn.hasmore)
html += '<input type="hidden" name="' + opn.name + '_unit" value="' + opn.unit + '"/>'; html += '<input type="hidden" name="' + opn.name + '_unit" value="' + opn.unit + '"/>';
if (opn.unit) if (opn.unit)
html += ' <span style="padding-left:0.3em;">' + opn.unit + '</span>'; html += ' <span style="padding-left:0.3em;white-space: nowrap;">' + opn.unit + '</span>';
opn.dom.html(html).css({ display: 'inline-flex', alignItems: 'center' }); opn.dom.html(html).css({ display: 'inline-flex', alignItems: 'center' });
var valuedom = opn.dom.children(0); var valuedom = opn.dom.children(0);
var showinpdom = opn.dom.children(1); var showinpdom = opn.dom.children(1);

View File

@ -59,7 +59,10 @@
*/ */
if (isset($_SERVER['HTTP_CIY_TIMEOUT'])) if (isset($_SERVER['HTTP_CIY_TIMEOUT']))
set_time_limit((int)$_SERVER['HTTP_CIY_TIMEOUT'] + 10); set_time_limit((int)$_SERVER['HTTP_CIY_TIMEOUT'] + 10);
error_reporting(E_ALL); //0禁用错误输出E_ALL打开错误输出 if (substr(__DIR__, 0, 1) == '/')
error_reporting(0); //0禁用错误输出E_ALL打开错误输出
else
error_reporting(E_ALL); //0禁用错误输出E_ALL打开错误输出
date_default_timezone_set('Asia/Shanghai'); date_default_timezone_set('Asia/Shanghai');
if (!isset($path)) if (!isset($path))

View File

@ -59,8 +59,8 @@ class db { //单数据库版
$cfg = webini('db' . $this->dbpst); $cfg = webini('db' . $this->dbpst);
if (is_string($cfg)) if (is_string($cfg))
die($cfg); die($cfg);
$this->linkdb = new pdo(); $this->linkdb = new pdo($cfg);
$this->linkdb->connect($cfg); $this->linkdb->connect();
return $this->linkdb; return $this->linkdb;
} }
/** /**

View File

@ -8,35 +8,37 @@ class pdo {
public $error; public $error;
public $lastsql; public $lastsql;
public $lastdata; public $lastdata;
function __construct() { private $conn;
function __construct($conn) {
$this->isconnected = false; $this->isconnected = false;
$this->error = ''; $this->error = '';
$this->conn = $conn;
} }
function connect($conn) { function connect() {
if ($this->isconnected) if ($this->isconnected)
return true; return true;
if (!isset($this->link)) { if (isset($this->link))
try { $this->link = null;
$timeout = 10; try {
if (isset($conn['timeout'])) $timeout = 10;
$timeout = (int)$conn['timeout']; if (isset($this->conn['timeout']))
$charset = 'utf8'; $timeout = (int)$this->conn['timeout'];
if (isset($conn['charset'])) $charset = 'utf8mb4';
$charset = $conn['charset']; if (isset($this->conn['charset']))
$persistent = false; $charset = $this->conn['charset'];
if (isset($conn['persistent'])) $persistent = false;
$persistent = (bool)$conn['persistent']; if (isset($this->conn['persistent']))
$opts = array( $persistent = (bool)$this->conn['persistent'];
\PDO::ATTR_TIMEOUT => $timeout, $opts = array(
\PDO::ATTR_PERSISTENT => $persistent, \PDO::ATTR_TIMEOUT => $timeout,
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_SILENT, \PDO::ATTR_PERSISTENT => $persistent,
\PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET {$charset}" \PDO::ATTR_ERRMODE => \PDO::ERRMODE_SILENT,
); \PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET {$charset}"
$this->link = new \PDO('mysql:host=' . $conn['host'] . ';dbname=' . $conn['name'] . ';port=' . $conn['port'] . ';', $conn['user'], $conn['pass'], $opts); );
$this->link->query('SET SESSION sql_mode = \'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\''); $this->link = new \PDO('mysql:host=' . $this->conn['host'] . ';dbname=' . $this->conn['name'] . ';port=' . $this->conn['port'] . ';', $this->conn['user'], $this->conn['pass'], $opts);
} catch (\PDOException $e) { $this->link->query('SET SESSION sql_mode = \'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\'');
return $this->errsql(false, 'PDO连接失败:' . $e->GetMessage()); } catch (\PDOException $e) {
} return $this->errsql(false, 'PDO连接失败:' . $e->GetMessage());
} }
$this->isconnected = true; $this->isconnected = true;
return true; return true;
@ -205,13 +207,23 @@ class pdo {
function _prepare($query, $data) { function _prepare($query, $data) {
$this->lastsql = $query; $this->lastsql = $query;
$this->lastdata = $data; $this->lastdata = $data;
$rs = $this->link->prepare($query); for ($i = 0; $i < 3; $i++) {
if ($rs === false) $rs = $this->link->prepare($query);
return $this->errsql(false, "SQL预处理出错[{$query}]:" . $this->pdoerr($this->link)); if ($rs === false)
if ($rs->execute($data) === false) { return $this->errsql(false, "SQL预处理出错[{$query}]:" . $this->pdoerr($this->link));
$arr = $rs->errorInfo(); if ($rs->execute($data) === false) {
return $this->errsql(false, 'SQL出错:' . $arr[2] . '[' . $arr[0] . '][' . $arr[1] . ']' . $query); $arr = $rs->errorInfo();
// 如果是连接断开错误,尝试重新连接
if ($arr[0] == 'HY000' && $arr[1] == 2006) {
sleep(1);
$this->isconnected = false;
if($this->connect())
continue;
}
return $this->errsql(false, 'SQL出错:' . $arr[2] . '[' . $arr[0] . '][' . $arr[1] . ']' . $query);
}
return $rs;
} }
return $rs; return $this->errsql(false, 'SQL重试3次超时:' . $arr[2] . '[' . $arr[0] . '][' . $arr[1] . ']' . $query);
} }
} }