| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- <?php
- /**
- * 可视化模块设计
- * 开发者:雨中磐石
- * 官网:www.rockoa.com
- * 禁止乱修改头部信息,请保留尊重开发者
- * 修改时间:2021-10-14
- */
- class flowviewClassAction extends Action
- {
- public function defaultAction()
- {
- $ybarr = $this->option->authercheck();
- if(is_string($ybarr))return $ybarr;
- $this->title = '可视化模块设计';
- $this->assign('modearr', m('mode')->getmodearr("and (`type`<>'系统' or `num`='demo')"));
- }
-
- //加载字段信息
- public function getziduanAction()
- {
- $num = $this->get('num');
- $fid = $this->get('fid');
- $moders = m('flow_set')->getone("`num`='$num'");
- $tables = $moders['table'];
- $ziduan = m('flow_element')->getone('mid='.$moders['id'].' and `iszb`=0 and `fields`=\''.$fid.'\'','*','`iszb` asc,`sort` asc');
-
- $fiedar = $this->db->gettablefields('[Q]'.$tables.'','',"and `COLUMN_NAME`='$fid'");
- if($fiedar){
- $fieda = $fiedar[0];
- if($fieda['type']=='decimal'){
- $ziduan['lens'] = $fieda['xslen1'];
- $ziduan['xiaoshu'] = $fieda['xslen2'];
- }
- }
-
- return array(
- 'ziduan' => $ziduan,
- 'fiedar' => $fiedar,
- 'typedata' => $this->option->getdata('flowinputtype'),
- );
- }
-
- //加载字段信息
- public function getziduansAction()
- {
- $num = $this->get('num');
- $name = $this->rock->xssrepstr($this->post('name'));
- $fields = c('pingyin')->get($name,1);
- if(!$fields || strlen($fields)<4)$fields = 'a'.$this->db->ranknum('flow_element','fields');
- if(strlen($fields)>20)$fields = 'a'.substr($fields,0,19);
-
- $ziduan['name'] = $name;
- $ziduan['fields'] = $fields;
- $ziduan['fieldstype'] = 'text';
- $ziduan['id'] = '0';
- $ziduan['dev'] = '';
- $ziduan['lens'] = '0';
- $ziduan['islu'] = '1';
- $ziduan['issou'] = '1';
- $ziduan['xiaoshu'] = '0';
- return array(
- 'ziduan' => $ziduan,
- 'typedata' => $this->option->getdata('flowinputtype'),
- );
- }
- //保存字段
- public function saveziduanAction()
- {
- $id = (int)$this->post('id','0');
- $num = $this->post('modenum');
- $moders = m('flow_set')->getone("`num`='$num'");
- $mid = $moders['id'];
- $sarr['name'] = $this->post('name');
- $sarr['fieldstype'] = $this->post('fieldstype');
- $sarr['dev'] = $this->post('dev');
- $sarr['placeholder'] = $this->post('placeholder');
- $sarr['data'] = $this->post('data');
- $sarr['lens'] = (int)$this->post('lens','0');
- $sarr['isbt'] = (int)$this->post('isbt','0');
- $sarr['islu'] = (int)$this->post('islu','0');
- $sarr['issou'] = (int)$this->post('issou','0');
- $sarr['fields'] = $this->post('fields');
- $sarr['attr'] = $this->post('attr');
- $sarr['xiaoshu']= (int)$this->post('xiaoshu','0'); //小数点
- $sarr['mid'] = $mid;
- $sarr['iszb'] = 0;
- if(substr($sarr['fieldstype'],0,6)=='change' && isempt($sarr['data'])){
- $sarr['data'] = ''.$sarr['fields'].'id';
- }
-
- include_once('webmain/main/flow/flowAction.php');
- $obj = new flowClassAction();
- $strs= $obj->elemensavefieldsbefore('flow_element', $sarr, $id);
- if($strs)return returnerror($strs);
-
- $where = '`id`='.$id.'';
- if($id==0)$where = '';
- $bo = m('flow_element')->record($sarr, $where);
-
-
- if($bo)$obj->elemensavefields('', $sarr);
-
- //一键布局PC录入
- $path = 'webmain/flow/page/input_'.$num.'.html';
- $isscl = false;
- $xgwj = 0;
- $base = 0;
- if(!file_exists($path)){
- $isscl = true;
- }else{
- $ofile = file_get_contents($path);
- if(contain($ofile,'{file_content}'))$xgwj = 1;
- if(contain($ofile,'{base_name}'))$base = 1;
- if(contain($ofile,'autoyijianview'))$isscl = true;
- }
- if($isscl){
- $obj->yinruonearr = array(
- 'modeid' => $mid,
- 'xgwj' => $xgwj,
- 'base' => $base,
- );
- $str = $obj->yinruoneAjax();
- $this->rock->createtxt($path, $str);
- }
-
- return returnsuccess();
- }
-
- //删除字段
- public function delziduanAction()
- {
- $id = (int)$this->get('id','0');
- m('flow_element')->delete($id);
- return returnsuccess();
- }
-
- //创建模块
- public function createmodeAction()
- {
- $name = $this->rock->xssrepstr($this->post('name'));
- $fields = c('pingyin')->get($name,1);
- if(!$fields || strlen($fields)<4)$fields = $this->db->ranknum('flow_set','num');
- if(strlen($fields)>20)$fields = substr($fields,0,18);
- $num = 'zz'.$fields.'';
- if(m('flow_set')->rows("`num`='$num'")>0){
- $fields = $this->db->ranknum('flow_set','num');
- $num = 'zz'.$fields.'';
- }
- $id = 0;
- $uarr['name'] = $name;
- $uarr['num'] = $num;
- $uarr['table'] = $num;
- $uarr['isflow'] = 0;
- $uarr['tables'] = '';
- $uarr['names'] = '';
- $uarr['sort'] = '0';
- $uarr['type'] = '新增';
- $uarr['receid'] = 'all';
- $uarr['recename'] = '全体人员';
- $uarr['optdt'] = $this->now;
- $uarr['isup'] = 0;
- $uarr['isscl'] = 1;
- $uarr['pctx'] = 1;
- $uarr['status'] = 1;
- $uarr['istxset'] = 0;
- $uarr['ispl'] = 0;
-
- $id = m('flow_set')->insert($uarr);
- include_once('webmain/main/flow/flowAction.php');
- $obj = new flowClassAction();
- $obj->flowsetsaveafter('flow_set', $uarr);
- $obj->setinputid = $id;
- $obj->inputAction();
- $wherestr = $this->jm->base64encode('`optid`={uid}');
- m('flow_where')->insert(array(
- 'setid' => $id,
- 'num' => 'my',
- 'name' => '我添加数据',
- 'wheresstr' => $wherestr,
- 'sort' => 0,
- 'islb' => 1,
- 'status' => 1,
- ));
-
- m('flow_where')->insert(array(
- 'setid' => $id,
- 'num' => 'all',
- 'pnum' => 'all',
- 'name' => '所有数据',
- 'wheresstr' => $this->jm->base64encode('1=1'),
- 'sort' => 0,
- 'islb' => 1,
- 'status' => 1,
- ));
-
- $uarr = array(
- 'recename' => '全体人员',
- 'receid' => 'all',
- 'modeid' => $id,
- 'type' => 2,
- 'wherestr' => $wherestr,
- );
- m('flow_extent')->insert($uarr);
- $uarr['type'] = 3;
- m('flow_extent')->insert($uarr);
-
- m('mode')->createlistpage($id); //生成列表页
-
- return returnsuccess(array(
- 'name' => ''.$id.'.'.$name.'('.$num.')',
- 'id' => $id,
- 'num' => $num
- ));
- }
- }
|