<?php
/**
 * 元数据
 */
$elename = substr(basename(__FILE__),0,-4);
return [
	'pwcode'=>'C200',
    //元数据名称
    'elename'=>$elename,
    //元数据标题
	'cn_name' => "供应商产品目录", 
	'en_name' => lg('供应商产品目录'), 
	//
	'table' => "supplier_pro", 
	'key' => "spr_id", //主键字段
	'order' => "spr_id DESC", //默认排序
	'caption' => "spr_id", //主要显示字段
    'url'=>[
		'js'=>          HOST.'/static/js/element/'.$elename.'.js',
        'list'=> \mvc::$cfg['path']['site'].'/element/list?elename='.$elename.'&rules='.\mvc::$req['rules'],
        'editCell'=> \mvc::$cfg['path']['site'].'/supplierPro/editCell?elename='.$elename,
        'detail'=> \mvc::$cfg['path']['site'].'/element/detail?elename='.$elename,
        'addview'=> \mvc::$cfg['path']['site'].'/element/detail?elename='.$elename,
        'edit'=> \mvc::$cfg['path']['site'].'/supplierPro/edit',
        'delete'=> \mvc::$cfg['path']['site'].'/supplierPro/delete',
        'deleteRows'=> \mvc::$cfg['path']['site'].'/supplierPro/deleteRows?elename='.$elename,
        'checkUnique'=> \mvc::$cfg['path']['site'].'/element/checkUnique?elename='.$elename,
        'import'=> false,
		'export'=>true
    ],
	'urlFields'=>['spr_oe_id','spr_format','sup_code','spr_sup_id'],
    'viewIsEditCell'=>false, //详情页是否允许字段单个编辑
    'add'=>[
        'function'=> 'openAdd', //按钮调用的 js 函数, openAdd, openAddFull, openAddPage
    ],
    'openDivArea'=> ['600px', '90%'],
    'listcfg' => [
		'editor'=> false, //是否允许列表编辑
        'multiselect'=> true,
    ],
    'rules'=>[ //自定义规则查询
        'numbers'=> function(&$rules,&$field,&$value,&$join,&$joinWhere,&$group){
            if($field=='numbers'){
				$rules['OR'] = [
					"spr_number".($rules['numlike']? '[~]': '') => $value,	
					"spr_format".($rules['numlike']? '[~]': '') => formatNums(implode(',',$value)),	
					"spr_sup_num".($rules['numlike']? '[~]': '') => $value,
					"spr_sup_num".($rules['numlike']? '[~]': '') => formatNums(implode(',',$value)),	
				];

    		    unset($rules['numlike']);
    		    unset($rules['numbers']);
    		    unset($rules['numberFormats']);
            }
        },
		'p_cate'=>function(&$rules,&$field,&$value,&$join,&$joinWhere,&$group){
			if($rules['p_cate']){
				$rules['spr_cat_id'] = explode(',', $rules['p_cate']);
				unset($rules['p_cate']);
			}
          
        },
		'supplier'=>function(&$rules,&$field,&$value,&$join,&$joinWhere,&$group){
			if($rules['supplier']){
				$rules['spr_sup_id'] = $rules['supplier'];
				unset($rules['supplier']);
			}
        },
		'ver'=>function(&$rules,&$field,&$value,&$join,&$joinWhere,&$group){
			if($rules['ver']){
				$join["[><]tags_link(tl)"] = ["e.spr_id" => "tl_value_id"];
				$joinWhere['tl_type'] = 'poesup';
				$joinWhere['tl_t_id[>]'] = raw(sprintf("tl_t_id ^ %d",$rules['ver']));
				unset($rules['ver']);
			}
			
		}
    ],
    'listButtons' => [
        [
            'cn_name'=>'详情',
            'en_name'=>lg('Details'),
            'title'=>[
                'cn_name'=>'详情',
                'en_name'=>lg('Details'),
            ],
            'class'=>'fa fa-list-alt',
            'width'=> 50,
            'colmenu'=> true,
            'function'=>"openDetail", //按钮调用的 js 函数, openDetail, openDetailFull, openDetailPage
        ],
    ],
	'fields'=>[
		'spr_id'=>[
			'field'=>'spr_id',
			'cn_name'=>'ID', //字段描述
			'en_name'=>lg('ID'),
			'type'=>'int',
			'key'=>true, //是否为主键
			'unique'=>true, //是否唯一
			'scale'=>0, //小数位数
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 40,
                'hidden'=>true, //是否在列表中默认隐藏
    			'search'=>false, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'edittype'=>'hidden', //编辑类型 none,hidden,text,select,textarea,checkbox,checkboxgroup
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>10, //最大长度(含有小数长度)
				'minlength'=>0, //最小长度
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断 如邮箱 /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/
			]
		],
		'spr_sup_id'=>[
			'field'=>'spr_sup_id',
			'cn_name'=>'供应商', //字段描述
			'en_name'=>lg('供应商'), 
			'linkOne'=>[ //关联表
                'table'=>'supplier',
                'field'=>'sup_id',
                'myfield'=>'spr_sup_id',
                'caption'=>'sup_name', 
                'search'=>[
                    'function'=>function(&$field,&$op,&$data,&$join,&$joinWhere,&$group,&$objList,$db){
                        $field = 'sup_name';
                        $join['[>]supplier(s)'] = ['e.spr_sup_id'=>'sup_id'];
                        // $joinWhere['s.sup_name'] = $data;
                    }
                ],
                'order'=>[
                    'function'=>function(&$join,&$joinWhere,&$group,&$objList,$db){
                        if(!isset($this->join['[>]supplier(s)'])){
                            $join['[>]supplier(s)'] = ['e.spr_sup_id'=>'sup_id'];
                        }
                        return 's.sup_name';
                    }
                ]
            ],
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 180,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'autocompleter', //编辑类型 none,hidden,text,select,textarea
                'itemsUrl'=>HOST_LG.'/element/getAllKeyValues?elename=supplier',
				'onChange'=><<<EOF
				changeViewSupplierCode(group,name,value,e);
				EOF,
            ],
			'editor'=> [
				'required'=> true, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'sup_code'=>[
			'field'=>'sup_code',
			'cn_name'=>'供应商编码', //字段描述
			'en_name'=>lg('供应商编码'), 
			'linkOne'=>[ //关联表
                'table'=>'supplier',
                'field'=>'sup_id',
                'myfield'=>'spr_sup_id',
                'caption'=>'sup_code', 
                'search'=>[
                    'function'=>function(&$field,&$op,&$data,&$join,&$joinWhere,&$group,&$objList,$db){
						$op = null;
                        $join['[>]supplier(s)'] = ['e.spr_sup_id'=>'sup_id'];
                        $joinWhere['s.sup_code[~]'] = $data;
                    }
                ],
                'order'=>[
                    'function'=>function(&$join,&$joinWhere,&$group,&$objList,$db){
                        if(!isset($this->join['[>]supplier(s)'])){
                            $join['[>]supplier(s)'] = ['e.spr_sup_id'=>'sup_id'];
                        }
                        return 's.sup_code';
                    }
                ]
            ],
			
			'formartCaption'=> function(&$rowCaptions,$filed,$value,&$row,$db){
				$row['sup_code'] = $db->get('supplier','sup_id',['sup_code'=>$rowCaptions['sup_code']]);
				return $rowCaptions['sup_code'];
			},
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'isview'=>true, //是否在详情视图中显示
			'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'autocompleter', //编辑类型 none,hidden,text,select,textarea
                'itemsUrl'=>HOST_LG.'/supplier/getSupplierKeyValues?',
				'onChange'=><<<EOF
				changeViewSupplierName(group,name,value,e);
				EOF,
            ],
			'editor'=> [
				'required'=> true, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_oe_id'=>[
			'field'=>'spr_oe_id',
			'cn_name'=>'零件', //字段描述
			'en_name'=>lg('零件'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'linkOne'=>[ //关联表
				'table'=>'oe_item',
				'join'=>['[><]pro_factory(pf)'=>['oe_item.oe_pf_id'=>'pf_id']],
				'field'=>'oe_id',
				'myfield'=>'spr_oe_id',
				'caption'=>['spr_oe_id'=>raw('concat(pf_name,\':\',oe_oe)')], //显示的内容
				'search'=>[
					'function'=>function(&$field,&$op,&$data,&$join,&$joinWhere,&$group,&$objList,$db){
						$join['[>]oe_item(oe)'] = ['e.spr_oe_id'=>'oe_id'];
						$joinWhere['oe.oe_oe_format[~]'] = formatNum($data);
						$op = null;
						unset($field);
					}
				],
				'order'=>[
					'function'=>function(&$join,&$joinWhere,&$group,&$objList,$db){
						if(!isset($this->join['[>]oe_item(oe)'])){
							$join['[>]oe_item(oe)'] = ['e.spr_oe_id'=>'oe_id'];
						}
						return 'oe.oe_oe_format';
					}
				]
			],
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 120,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
				'formart'=><<<EOF
					function (cellvalue, options, row) {
						return '<a href="javascript:qg.page.open(\''+cellvalue+'\',\''+HOST+'/oe/detail?oe_id='+row['captionsValues']['spr_oe_id']+'\')" title="查看详情" >'+cellvalue+'</a>';
						
					}
				EOF,
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'autocompleter', //编辑类型 none,hidden,text,select,textarea
				'itemsCfg'=>'{"search":true,"empty":true}',
				'itemsUrl'=> HOST_LG.'/oe/getAllOeNum?type=oe'
            ],
			'editor'=> [
				'required'=> true, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
				'ruleFunction'=>function($val,&$row,$db){
					if($val)
					{
						$where = ['oe_id'=> $val];
						// if($row['spr_cat_id']){
						// 	$where['oe_cate_id'] =$row['spr_cat_id'];
						// }
						$arr = $db->get('oe_item',['[><]oe_numidx'=>['oe_id'=>'on_oe_id']],['oe_id','oe_cate_id','oe_pf_id','oe_oe','oe_oe_format'],$where);
						if(!$arr){
							exitJson('-1','零件库无此号码');
						}
						$row['spr_pf_id'] =  $arr['oe_pf_id'];
						if(empty($row['spr_number'])){
							$row['spr_number'] = $arr['oe_oe'];
							$row['spr_format'] = $arr['oe_oe_format'];
						}else{
							$row['spr_number'] = $row['spr_number'];
							$row['spr_format'] = formatNum($row['spr_number']);
						}

						$row['spr_cat_id'] =$arr['oe_cate_id'];
					}
					$unique = [
						'spr_oe_id'=>$row['spr_oe_id'],
						'spr_sup_id'=>$row['spr_sup_id'],
						'spr_material'=>$row['spr_material'],
						'spr_area'=>$row['spr_area'],
						'spr_id[!]'=>$row['spr_id']?:0,
					];
					$exist = $db->get('supplier_pro','spr_id',$unique);
					if($exist)exitJson('-1','保存失败，已存在重复数据');
					
				}
			]
		],
		'spr_cat_id'=>[
			'field'=>'spr_cat_id',
			'cn_name'=>'小类', //字段描述
			'en_name'=>lg('小类'), 
			'linkOne'=>[ //关联表
                'table'=>'pro_cate',
                'field'=>'id',
                'myfield'=>'spr_cat_id',
                'caption'=>LG_NAME, 
                'search'=>[
                    'function'=>function(&$field,&$op,&$data,&$join,&$joinWhere,&$group,&$objList,$db){
                        $field = LG_NAME;
                        $join['[>]pro_cate(cat)'] = ['e.spr_cat_id'=>'id'];
                    }
                ],
                'order'=>[
                    'function'=>function(&$join,&$joinWhere,&$group,&$objList,$db){
                        if(!isset($this->join['[>]pro_cate(cat)'])){
                            $join['[>]pro_cate(cat)'] = ['e.spr_cat_id'=>'id'];
                        }
                        return 'cat.'.LG_NAME;
                    }
                ]
            ],
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'isview'=>false, //是否在详情视图中显示
            'view'=>[
    			'editable'=>false, //是否编辑
    			'edittype'=>'custom', //编辑类型
				'custom-element'=>"ui.form.openCustom('spr_cat_id','".HOST."/pro/cate/select?id=<<value>>&full=1&title=".lg("选择小类")."')",
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_area'=>[
			'field'=>'spr_area',
			'cn_name'=>'区域', //字段描述
			'en_name'=>lg('区域'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
			'linkOne'=>[ //关联表
                'table'=>'object',
                'field'=>'o_id',
                'myfield'=>'spr_area',
				'captionField'=>'o_id',
                'caption'=>LG_NAME, 
            ],
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'select', //编辑类型
				'itemsUrl'=> HOST.'/collocation/getItems?id=21&firstkey=&hasFirst=1',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'select',  //编辑类型 none,hidden,custom,text,select,textarea,checkboxgroup
                'itemsUrl'=> HOST.'/collocation/getItems?id=21',
				'style'=>'max-width:80px',
            ],
			'editor'=> [
				'required'=> true, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'oe_cate_id'=>[
			'field'=>'oe_cate_id',
			'cn_name'=>'小类', //字段描述
			'en_name'=>lg('小类'), 
			'linkOne'=>[ //关联表
                'table'=>'oe_item',
				'join'=>['[><]pro_cate(cate)'=>['oe_item.oe_cate_id'=>'id']],
                'field'=>'oe_id',
                'myfield'=>'spr_oe_id',
				'captionField'=>'spr_oe_id', //用于查询
                'caption'=>LG_NAME,
                'search'=>[
                    'function'=>function(&$field,&$op,&$data,&$join,&$joinWhere,&$group,&$objList,$db){
                        if(!isset($objList['cate'])){
                            $objList['cate'] = makeOne(\model\pro\cate::class);
                        }
                        $op = null;
                        $field = 'oe_cate_id';
                        if($rows = $objList['cate']->likeAndChilds($data,true)){
                            $data = $rows;
                        }else{
                            $data = 0;
                        }
                        $join['[>]oe_item(oe)'] = ['e.spr_oe_id'=>'oe_id'];
                        $joinWhere['oe.oe_cate_id'] = $data;
                    }
                ],
                'order'=>[
                    'function'=>function(&$join,&$joinWhere,&$group,&$objList,$db){
                        if(!isset($this->join['[>]oe_item(oe)'])){
                            $join['[>]oe_item(oe)'] = ['e.spr_oe_id'=>'oe_id'];
                        }
                        return 'oe.oe_cate_id';
                    }
                ]
            ],
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, 
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'isview'=>false, //是否在详情视图中显示
            
		],
		
		'tags'=>[
			'field'=>'tags',
			'cn_name'=>'数据标签', //字段描述
			'en_name'=>lg('数据标签'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
			'linkMore'=>[ //关联表
				'function'=>function(&$rows,$linkMoreCache,$db){ //rows 当前页的所有数据
					$values = array_column($rows,'spr_id');
					$tags = makeOne(\model\tags::class);
					$values = array_unique(array_filter($values));
					$verArr = $tags->getTypeValTags('poesup', $values);
					$verArr =array_column($verArr, 'tags', 'tl_value_id');
					foreach ($rows as $key => &$v) {
						$v['tags'] = empty($verArr[$v['spr_id']]) ? '': implode(',', array_column($verArr[$v['spr_id']], 't_id'));
						$v['captions']['tags']=empty($verArr[$v['spr_id']]) ? '': implode(',', array_column($verArr[$v['spr_id']], LG_NAME));
					}
					unset($val);
				}
			],
			
			'formartSearch'=> function(&$field,&$op,&$data){
				$orgdata = $data;
				if(!empty($data)){
					if($op == 'ne'){
						$data= raw(sprintf("spr_id not in (select tl_value_id from tags_link where tl_type='poesup' and tl_t_id > tl_t_id ^ %d)", $data));
					}else{
						$data= raw(sprintf("spr_id in (select tl_value_id from tags_link where tl_type='poesup' and tl_t_id > tl_t_id ^ %d)", $data));
					}
				}else{
					if($op == 'ne'){
						$data= raw(sprintf("spr_id in (select tl_value_id from tags_link where tl_type='poesup')"));
					}else{
						$data= raw(sprintf("spr_id not in (select tl_value_id from tags_link where tl_type='poesup')"));
					}
				}
				$op = 'RAW_'.$field.$op.$orgdata;	
			},
            'list'=>[
                'width'=> 120,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>false, //是否参入排序
    			'stype'=>'select', //搜索类型
				'searchoptions'=> "{searchOperMenu:false,sopt:['eq','ne'],dataUrl: HOST+'/element/getAllKeyValues?elename=tags&hasFirst=1&firstkey=', buildSelect: function (data){ return grid.buildSelect(data,'tags');}}",
				'formart'=> 'captions', //显示captions中的内容
            ],
			'isview'=>false, //是否在详情视图中显示
		],

        'spr_material'=>[
			'field'=>'spr_material',
			'cn_name'=>'属性', //字段描述
			'en_name'=>lg('属性'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
			'linkOne'=>[ //关联表
                'table'=>'object',
                'field'=>'o_id',
                'myfield'=>'spr_material',
				'captionField'=>'o_id',
                'caption'=>LG_NAME, 
            ],
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'select', //编辑类型
				'itemsUrl'=> HOST.'/collocation/getItems?id=16&firstkey=&hasFirst=1',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'select',  //编辑类型 none,hidden,custom,text,select,textarea,checkboxgroup
                'itemsUrl'=> HOST.'/collocation/getItems?id=16',
				'style'=>'max-width:80px',
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_number'=>[
			'field'=>'spr_number',
			'cn_name'=>'号码', //字段描述
			'en_name'=>lg('号码'), 
			'type'=>'string',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 90,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
            ],
			'formartSearch'=> function(&$field,&$op,&$data){
				$field = 'spr_format';
				$data = formatNum($data);
			},
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_sup_num'=>[
			'field'=>'spr_sup_num',
			'cn_name'=>'工厂号码', //字段描述
			'en_name'=>lg('工厂号码'), 
			'type'=>'string',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 60,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
            ],
			
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
        'spr_price'=>[
			'field'=>'spr_price',
			'cn_name'=>'含税单价', //字段描述
			'en_name'=>lg('含税单价'), 
			'type'=>'float',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 60,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
				'formart'=> 'captions',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'number',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_price2'=>[
			'field'=>'spr_price2',
			'cn_name'=>'不含税价', //字段描述
			'en_name'=>lg('不含税价'), 
			'type'=>'float',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 60,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
				'formart'=> 'captions',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'number',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_price3'=>[
			'field'=>'spr_price3',
			'cn_name'=>'原厂价格', //字段描述
			'en_name'=>lg('原厂价格'), 
			'type'=>'float',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 60,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
				'formart'=> 'captions',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'number',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_price4'=>[
			'field'=>'spr_price4',
			'cn_name'=>'指导价格', //字段描述
			'en_name'=>lg('指导价格'), 
			'type'=>'float',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 60,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
				'formart'=> 'captions',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'number',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_minbuy'=>[
			'field'=>'spr_minbuy',
			'cn_name'=>'起订量', //字段描述
			'en_name'=>lg('起订量'), 
			'type'=>'int',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
				'formart'=> 'captions',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_delivery'=>[
			'field'=>'spr_delivery',
			'cn_name'=>'交期(天)', //字段描述
			'en_name'=>lg('交期(天)'), 
			'type'=>'int',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 60,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
				'formart'=> 'captions',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
				'style'=>'max-width:60px',
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'digits',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_price_btime'=>[
			'field'=>'spr_price_btime',
			'cn_name'=>'工厂报价时间', //字段描述
			'en_name'=>lg('工厂报价时间'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'formartValue'=> function($value,&$row,$db){
				return (empty($value)||$value=='0000-00-00') ? '' : $value;
			},
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'date', //编辑类型 none,hidden,text,select,textarea
				'style'=>'max-width:60px',
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_price_etime'=>[
			'field'=>'spr_price_etime',
			'cn_name'=>'价格失效时间', //字段描述
			'en_name'=>lg('价格失效时间'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
				'format'=>"captions"
            ],
			'formartValue'=> function($value,&$row,$db){
				return (empty($value)||$value=='0000-00-00') ? '' : $value;
			},
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'date', //编辑类型 none,hidden,text,select,textarea
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		
		'spr_price_status'=>[
			'field'=>'spr_price_status',
			'cn_name'=>'价格状态', //字段描述
			'en_name'=>lg('价格状态'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 50,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
				'stype'=>'select', //搜索类型
				'searchoptions'=> "{searchhidden:true, sopt:['eq'],searchOperMenu:false,value : ':;Y:有效;N:无效'}",
    			'edittype'=>'select', //编辑类型
                'itemsUrl'=> '',
                'items'=> 'Y:"有效",N:"无效"',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'select', //编辑类型
                'itemsUrl'=> '', 
                'items'=> ':,Y:"有效",N:"无效"', 
				'style'=>'max-width:60px',
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>100, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_has'=>[
			'field'=>'spr_has',
			'cn_name'=>'现货', //字段描述
			'en_name'=>lg('现货'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 50,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
				'stype'=>'select', //搜索类型
				'searchoptions'=> "{searchhidden:true, sopt:['eq'],searchOperMenu:false,value : ':;Y:是;N:否'}",
    			'edittype'=>'select', //编辑类型
                'items'=> 'Y:"是",N:"否"', 
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'select', //编辑类型
                'itemsUrl'=> '', 
                'items'=> ':"",Y:"是",N:"否"', 
				'style'=>'max-width:60px',
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>100, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_hasample'=>[
			'field'=>'spr_hasample',
			'cn_name'=>'提供样品', //字段描述
			'en_name'=>lg('提供样品'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 50,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
				'stype'=>'select', //搜索类型
				'searchoptions'=> "{searchhidden:true, sopt:['eq'],searchOperMenu:false,value : ':;Y:是;N:否'}",
    			'edittype'=>'select', //编辑类型
                'itemsUrl'=> '',
                'items'=> 'Y:"是",N:"否"', 
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'select', //编辑类型
                'itemsUrl'=> '', 
                'items'=> ':"",Y:"是",N:"否"', 
				'style'=>'max-width:60px',
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>100, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_from'=>[
			'field'=>'spr_from',
			'cn_name'=>'数据来源', //字段描述
			'en_name'=>lg('数据来源'),
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
			'linkOne'=>[ //关联表
				'table'=>'object',
				'field'=>'o_id',
				'caption'=>LG_NAME,
			],
            'list'=>[
                'width'=> 80,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
                'edittype'=>'select', //编辑类型
				'itemsUrl'=> HOST.'/collocation/getItems?id=13&firstkey=&hasFirst=1',
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'select', //编辑类型 none,hidden,text,select,textarea
				'itemsUrl'=> HOST.'/collocation/getItems?id=13',
				'style'=>'max-width:80px',
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>100, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'spr_remark'=>[
			'field'=>'spr_remark',
			'cn_name'=>'备注', //字段描述
			'en_name'=>lg('备注'), 
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
            'list'=>[
                'width'=> 150,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>true, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
			'isview'=>true, //是否在详情视图中显示
            'view'=>[
    			'editable'=>true, //是否编辑
    			'edittype'=>'text', //编辑类型 none,hidden,text,select,textarea
            ],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
    			'maxlength'=>50, //长度
				'minlength'=>0,
                'scale'=>0, //小数位数
                'preg'=>'', //正则表达式判断
			]
		],
		'change_log'=>[
			'field'=>'change_log',
			'cn_name'=>'变更历史', //字段描述
			'en_name'=>lg('变更历史'),
			'linkMore'=>[ //关联表
				'function'=>function(&$rows,$linkMoreCache,$db){ //rows 当前页的所有数据
					$values = array_column($rows,'spr_id');
					$values = array_unique(array_filter($values));
					$cntArr = $db->select('change_log',['cl_dataid','counts'=>raw('count(cl_id)')],['cl_dataid'=>$values,'cl_type'=>'suppro','GROUP'=>'cl_dataid']);
					$cntArr = array_column($cntArr, 'counts', 'cl_dataid');
					foreach ($rows as $key => &$v) {
						$v['logcount'] = empty($cntArr[$v['spr_id']]) ? '': $cntArr[$v['spr_id']];
					}
					unset($val);
				}
			],
			'formartCaption'=> function(&$rowCaptions,$filed,$value,&$row,$db){
				$rowCaptions[$filed] = '';

				if($row['logcount'])
				{
					$rowCaptions[$filed] = '<ul class="sup-list">';
					
					$rowCaptions[$filed] .= '<li> <a href="javascript:openSprLogList('.$row['spr_id'].');"><i class="fa fa-list-alt"></i></a></li>';
					
					$rowCaptions[$filed] .= '</ul>';
				}
				return false;
			},
			'formartSearch'=>function(&$field,&$op,&$data){
				$op = 'RAW_'.$field;
				if($data != 'Y'){
					$data = raw(" spr_id not in (
						SELECT DISTINCT cl_dataid FROM change_log
						JOIN supplier_pro ON cl_dataid=spr_id
					)");
				}else{
					$data = raw(" spr_id in (
						SELECT DISTINCT cl_dataid FROM change_log
						JOIN supplier_pro ON cl_dataid=spr_id
					)");
				}
			},
			'type'=>'varchar',
			'key'=>false, //是否为主键
			'unique'=>false, //是否唯一
			'islist'=>true, //是否在列表中显示
			'list'=>[
				'width'=> 100,
				'hidden'=>false, //是否在列表中默认隐藏
				'search'=>true, //是否参入查询
				'editable'=>false, //是否编辑
				'order'=>false, //是否参入排序
				'valuetype'=>'key', //查询值的类型 key,text
				'stype'=>'select', //搜索类型
				'searchoptions'=> "{searchhidden:true, sopt:['eq'],searchOperMenu:false,value : ':;Y:Y;N:N'}",
			],
			'isview'=>false, //是否在详情视图中显示
			'view'=>[
			],
			'editor'=> [
				'required'=> false, //是否为必须项
				'fieldtype'=> 'string',//string,number(含有小数),digits(整数)
				'maxlength'=>512, //长度
				'minlength'=>0,
				'scale'=>0, //小数位数
				'preg'=>'', //正则表达式判断
			]
		],
		'opuser'=>[
			'field'=>'spr_opuser',
			'cn_name'=>'操作人', //字段描述
			'en_name'=>lg('Operator'), 
			'islist'=>true, //是否在列表中显示
			'isview'=>false, //是否在详情视图中显示
			'linkOne'=>[ //关联表
                'table'=>'adm_user',
                'field'=>'au_id',
                'myfield'=>'spr_opuser',
                'caption'=>'au_name',
				'captionField'=>'au_id'
            ],
			'list'=>[
                'width'=> 150,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'stype'=>'select', //搜索类型
				'searchoptions'=> "{searchOperMenu:false,sopt:['eq'], dataUrl: HOST+'/element/getAllKeyValues?elename=user&hasFirst=1&firstkey=', buildSelect: function (data){return grid.buildSelect(data, 'cop_opuser');}}",
				'formart'=> 'captions', //显示captions中的内容
            ],
		],
		'create_time'=>[
			'field'=>'spr_create_time',
			'cn_name'=>'创建时间', //字段描述
			'en_name'=>lg('Create Time'), 
			'islist'=>true, //是否在列表中显示
			'isview'=>false, //是否在详情视图中显示
			'list'=>[
                'width'=> 150,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
		],
		'update_time'=>[
			'field'=>'spr_update_time',
			'cn_name'=>'更新时间', //字段描述
			'en_name'=>lg('Update Time'), 
			'islist'=>true, //是否在列表中显示
			'isview'=>false, //是否在详情视图中显示
			'list'=>[
                'width'=> 150,
                'hidden'=>false, //是否在列表中默认隐藏
    			'search'=>true, //是否参入查询
    			'editable'=>false, //是否编辑
    			'order'=>true, //是否参入排序
    			'edittype'=>'text', //编辑类型
            ],
		],
	]
];