113 lines
3.0 KiB
PHP
113 lines
3.0 KiB
PHP
<?php
|
|
class optionClassAction extends Action
|
|
{
|
|
private $pid;
|
|
|
|
public function getlistAjax()
|
|
{
|
|
$num = $this->request('num');
|
|
$name = $this->request('name');
|
|
$key = $this->post('key');
|
|
$id = $this->option->getnumtoid($num, $name, false);
|
|
$this->option->update("`pid`=1,`name`='行政选项'","`num`='goods'"); //行政选项移动到数据选项下
|
|
if(isempt($key)){
|
|
$where = "a.`pid`='$id'";
|
|
}else{
|
|
$where = "1=1 and a.`name` is not null and (a.`name` like '%$key%' or a.`num`='$key') ";
|
|
}
|
|
|
|
$rows = $this->db->getall("select *,(select count(1) from `[Q]option` where pid=a.id)as stotal from `[Q]option` a where $where order by a.`sort`, a.`id`");
|
|
echo json_encode(array(
|
|
'totalCount'=> $this->db->count,
|
|
'rows' => $rows,
|
|
'pid' => $id
|
|
));
|
|
}
|
|
|
|
public function getfileAjax()
|
|
{
|
|
$mtype = $this->request('mtype');
|
|
$mid = $this->request('mid');
|
|
$rows = m('file')->getfile($mtype, $mid);
|
|
echo json_encode($rows);
|
|
}
|
|
|
|
public function gettreedataAjax()
|
|
{
|
|
$num = $this->get('num');
|
|
if($num=='')exit('error;');
|
|
if(!contain($num, 'gerenvcard_') && ISMORECOM && $cnum=m('admin')->getcompanynum())$num.='_'.$cnum.'';//多单位时个人通讯不用加单位编号
|
|
$pid = $this->option->getnumtoid($num,''.$num.'选项', false);
|
|
$rows = $this->option->gettreedata($pid);
|
|
$rows = array(
|
|
'rows' => $rows,
|
|
'pid' => $pid
|
|
);
|
|
$this->returnjson($rows);
|
|
}
|
|
|
|
public function deloptionAjax()
|
|
{
|
|
$id = (int)$this->post('id','0');
|
|
$stable = $this->post('stable');
|
|
$delbo = true;
|
|
if($delbo)if($this->option->rows("`pid`='$id'")>0)$delbo=false;
|
|
if(!$delbo)$this->showreturn('','有下级分类不允许删除',201);
|
|
$this->option->delete($id);
|
|
if($stable!='')m($stable)->update('`typeid`=0', "`typeid`='$id'");
|
|
$this->showreturn();
|
|
}
|
|
|
|
//分类移动
|
|
public function movetypeAjax()
|
|
{
|
|
$id = (int)$this->post('id','0');
|
|
$toid = (int)$this->post('toid','0');
|
|
$lx = (int)$this->post('lx','0');
|
|
$spath = $this->db->getpval('[Q]option','pid','pid', $toid,'],[');
|
|
$spath = '['.$spath.']';
|
|
if(contain($spath,'['.$id.']')){
|
|
echo '不能移动到自己的下级';
|
|
}else{
|
|
$this->option->update('pid='.$toid.'', $id);
|
|
echo 'ok';
|
|
}
|
|
}
|
|
|
|
public function downshubefore()
|
|
{
|
|
$pid = (int)$this->post('pid','0');
|
|
$this->pid = $pid;
|
|
return 'and `pid`='.$pid.'';
|
|
}
|
|
|
|
public function downshuafter($table, $rows)
|
|
{
|
|
$db = m($table);
|
|
foreach($rows as $k=>$rs){
|
|
$dcount = $db->rows('pid='.$rs['id'].'');
|
|
if($dcount>0)$rows[$k]['dcount'] = $dcount;
|
|
}
|
|
$darr = array();
|
|
if($this->pid>0){
|
|
$this->getdonwds($db,$this->pid);
|
|
$darr = $this->downarr;
|
|
}
|
|
return array(
|
|
'rows' => $rows,
|
|
'darr' => $darr
|
|
);
|
|
}
|
|
|
|
private $downarr = array();
|
|
private function getdonwds($db,$id)
|
|
{
|
|
if($id>1){
|
|
$rs = $db->getone('`id`='.$id.'','id,pid,name,num');
|
|
if($rs){
|
|
$this->getdonwds($db, $rs['pid']);
|
|
$this->downarr[] = $rs;
|
|
}
|
|
}
|
|
}
|
|
} |