$type,'list_show'=>1,'info_type'=>'main'])->select();
$js=[];
foreach ($fields as $v){
if(in_array($v['field'],['name','num'])){//名称
continue;
}
$d=[
'field' => $v['field'],
'title' => $v['name'],
'operate' => 'like',
'autocomplete' => false,
];
if($v['form_type'] == 'Cascader'){
$d['extend']='data-toggle="city-picker"';
}else if($v['form_type'] == 'label'){//标签
$d['formatter']='(false || function (value){
if(value){
let str_split=value.split(","),html="";
console.log(str_split)
$.each(str_split,function (index, item){
let spab_split=item.split("^");
html+= \'
\'+ spab_split[0] + \'
\';
});
return html;
}else{
return value;
}
})';
if($v['setting']){
$set = json_decode($v['setting'],true);
$setting=[];
foreach ($set as $s){
foreach ($s['children'] as $c){
$setting[$c['la_va']]=$c['value'];
}
}
}else{
$setting=[];
}
$d['operate'] = 'like';
$d['searchList']=json_encode($setting,JSON_UNESCAPED_UNICODE);
}else if($v['form_type'] == 'uploadImage'){//图片
continue;
}else if($v['form_type'] == 'uploadFile'){//文件
continue;
}else if($v['form_type'] == 'DatePicker' ){//日期
$d['operate']='RANGE';
$d['addclass']='datetimerange';
$d['formatter']='Table.api.formatter.datetime';
$d['extend']='data-locale="{format:\"YYYY-MM-DD\"}"';
}else if($v['form_type'] == 'TimePicker' ){//时间
$d['operate']='RANGE';
$d['addclass']='datetimerange';
$d['formatter']='Table.api.formatter.datetime';
}else if($v['form_type'] == 'textarea'){//文本
$d['operate']=false;
}else if(in_array($v['form_type'],['select','checkbox','radio'])){//下拉
$d['searchList']=json_encode(explode('|',$v['setting']),JSON_UNESCAPED_UNICODE);
}else if(in_array($v['form_type'],['Rate'])){//分数
$d['operate'] = '=';
$d['searchList']=json_encode([1=>1,2=>2,3=>3,4=>4,5=>5],JSON_UNESCAPED_UNICODE);
}else if($v['form_type'] == 'editor'){//编辑器
$d['operate']=false;
}else if($v['form_type'] == 'switch'){//开关
$d['operate'] = '=';
$d['searchList']=json_encode(['1'=>'启用','0'=>'关闭'],JSON_UNESCAPED_UNICODE);
$d['formatter']='Table.api.formatter.status';
} else if ($v['form_type'] == 'customer') {//关联客户
$d['operate'] = '=';
$d['addClass'] = 'selectpage';
$d['visible'] = false;
$d['extend'] = "data-source='qingdongams/customer/customer/index' data-field='name'";
} else if ($v['form_type'] == 'contact') {//关联联系人
$d['operate'] = '=';
$d['addClass'] = 'selectpage';
$d['visible'] = false;
$d['extend'] = "data-source='qingdongams/customer/contact/index' data-field='name'";
} else if ($v['form_type'] == 'contract') {//关联合同
$d['operate'] = '=';
$d['addClass'] = 'selectpage';
$d['visible'] = false;
$d['extend'] = "data-source='qingdongams/customer/contract/index' data-field='name'";
} else if ($v['form_type'] == 'business') {//关联商机
$d['operate'] = '=';
$d['addClass'] = 'selectpage';
$d['visible'] = false;
$d['extend'] = "data-source='qingdongams/customer/business/index' data-field='name'";
} else if ($v['form_type'] == 'staff') {//员工
$d['operate'] = '=';
$d['addClass'] = 'selectpage';
$d['visible'] = false;
$d['extend'] = "data-source='qingdongams/department/staff/index' data-field='name'";
} else if ($v['form_type'] == 'department') {//关联部门
$d['operate'] = '=';
$d['addClass'] = 'selectpage';
$d['visible'] = false;
$d['extend'] = "data-source='qingdongams/department/group/index' data-field='name'";
}
$js[] = $d;
}
return json_encode($js,JSON_UNESCAPED_UNICODE);
}
/**
* 验证表单字段
*/
public static function checkFields($types,&$params,$id=null)
{
switch ($types){
case 'leads'://线索
$model=new Leads();
break;
case 'customer'://客户
$model=new Customer();
break;
case 'contract'://合同
$model=new Contract();
break;
case 'contacts'://联系人
$model=new Contacts();
break;
case 'receivabels'://回款
$model=new Receivables();
break;
}
$fields=self::where(['types'=>$types,'info_type'=>'main'])->select();
foreach ($fields as $v){
//必填
if($v['is_null'] == 1){
if (!isset($params[$v['field']]) || empty($params[$v['field']])) {
return $v['name'] . '不能为空!';
}
}
//唯一
if($v['is_unique'] == 1){
if (!isset($params[$v['field']]) || empty($params[$v['field']])) {
continue;
}
$where=[];
if(!empty($id)){
$where['id']=['neq',$id];
}
if(is_array($params[$v['field']])){
$params[$v['field']]=implode(',',$params[$v['field']]);
}
$where[$v['field']]=$params[$v['field']];
if($model->where($where)->count() > 0){
return $v['name'] ."【{$params[$v['field']]}】". '已存在!';
}
}
if($v['form_type'] == 'input-mobile'){//手机号
if (isset($params[$v['field']]) && $params[$v['field']]) {
if (!Validate::regex($params[$v['field']], "^1\d{10}$")) {
return $v['name'] ."【{$params[$v['field']]}】". '格式错误!';
}
}
}elseif($v['form_type'] == 'input-email'){//邮箱
if (isset($params[$v['field']]) && $params[$v['field']]) {
if (!Validate::is($params[$v['field']], "email")) {
return $v['name'] ."【{$params[$v['field']]}】". '格式错误!';
}
}
}elseif($v['form_type'] == 'editor'){//编辑器
//编辑器提交时 会去除html 标签,重新获取值,不同表单有不同的提交名称
if (isset($params[$v['field']]) && $params[$v['field']]) {
$list=['','row.','customer.','data.','contacts.','leads.'];
foreach ($list as $n) {
if (input($n . $v['field'], NULL, 'trim')) {
$params[$v['field']] = input($n . $v['field'], NULL, 'trim');
break;
}
}
}
}elseif($v['form_type'] == 'location' || $v['form_type'] == 'map'){//地理位置
if($types == self::CUSTOMER_TYPE){//客户
if (isset($params[$v['field']]) && $params[$v['field']]) {
$params['address']=$params[$v['field']];
$params['address_detail']=$params[$v['field']];
$params['lat']=$params[$v['field'].'_lat'];
$params['lng']=$params[$v['field'].'_lng'];
}
}
}
}
return true;
}
/**
* 获取搜索条件
*/
public static function updateWhereField($types,$params){
$fields=self::where(['types'=>$types,'info_type'=>'main'])->select();
$where=[];
foreach ($fields as $v){
if(!isset($params[$v['field']]) || $params[$v['field']] === ''){
continue;
}
if($v['form_type'] == 'uploadImage'){//图片
continue;
}else if($v['form_type'] == 'uploadFile'){//文件
continue;
}else if($v['form_type'] == 'DatePicker' ){//日期
$times=explode(',',$params[$v['field']]);
$where[$v['field']]=['between',$times ];
}else if($v['form_type'] == 'TimePicker' ){//时间
$times=explode(',',$params[$v['field']]);
$where[$v['field']]=['between',$times ];
}else if($v['form_type'] == 'textarea'){//文本
continue;
}else if(in_array($v['form_type'],['select','checkbox','radio'])){//
$where[$v['field']]=$params[$v['field']];
}else if(in_array($v['form_type'],['Rate'])){//星级
$where[$v['field']]=$params[$v['field']];
}else{
$where[$v['field']]=['like',"%{$params[$v['field']]}%" ];
}
}
return $where;
}
}