//数据表格配置
// import tool from '@/utils/tool'
import http from "@/utils/request";

export default {
	successCode: 200,												//请求完成代码
	pageSize: 100,													//表格每一页条数
	pageSizes: [30, 50, 100, 150, 200, 300],						//表格可设置的一页条数
	paginationLayout: "total, sizes, prev, pager, next, jumper",	//表格分页布局，可设置"total, sizes, prev, pager, next, jumper"
	column_config:["condition","filter","fix","hide","is_search","label","prop","search_type","sort","sortable","width"],
	parseData: function (res) {										//数据分析
		return {
			data: res.data,				//分析无分页的数据字段结构
			rows: res.data.rows,		//分析行数据字段结构
			total: res.data.total,		//分析总数字段结构
			summary: res.data.summary,	//分析合计行字段结构
			msg: res.message,			//分析描述字段结构
			code: res.code				//分析状态字段结构
		}
	},
	request: {							//请求规定字段
		page: 'page',					//规定当前分页字段
		pageSize: 'pageSize',			//规定一页条数字段
		prop: 'prop',					//规定排序字段名字段
		order: 'order',					//规定排序规格字段
		sort_orders: 'sort_orders',		//规定排序字段
	},
	/**
	 * 自定义列保存处理
	 * @tableName scTable组件的props->tableName
	 * @column 用户配置好的列
	 * otherParams 冗余的参数
	 */
	columnSettingSave: function (tableName, column ,params, otherParams) {
		column.forEach((item,index)=>{
			item.sort = index+1;
			delete item.data
		})
		return new Promise((resolve) => {
			if(!params.url || params.url==''){
				resolve(false)
				return
			}
			let data = Object.assign({},{
				column_config:column,
				save_column:true,
				page:1,
				pageSize:this.pageSize
			},otherParams);
			http.post(params.url, data).then(res=>{
				if(res.code == 200 && res.data.columnConfig){
					resolve(res.data.columnConfig)
				}else{
					resolve(false)
				}
			});
		})
	},
	/**
	 * 保存表格列表配置
	 * @tableName scTable组件的props->tableName
	 * @column 组件接受到的props->column
	 */
	columnSettingConfigSave: function (tableName, config, params, otherParams) {
		return new Promise((resolve) => {
			if(!params.url || params.url==''){
				resolve(false)
				return
			}
			let data = Object.assign({},{
				table_config:config,
				page:1,
				pageSize:this.pageSize
			},otherParams);
			http.post(params.url, data).then(res=>{
				if(res.code == 200 && res.data.columnConfig){
					resolve(true)
				}else{
					resolve(false)
				}
			});
		})
	},
	/**
	 * 重置自定义列
	 * @tableName scTable组件的props->tableName
	 * @column 组件接受到的props->column
	 */
	columnSettingReset: function (tableName, column ,params) {
		column.forEach((item,index)=>{
			item.sort = index+1;
			delete item.data
		})
		return new Promise((resolve) => {
			if(!params.url || params.url==''){
				resolve(false)
				return
			}
			let data = {
				column_config:[],
				save_column:false,
				page:1,
				pageSize:this.pageSize
			}
			http.post(params.url, data).then(res=>{
				if(res.code == 200 && res.data.columnConfig){
					resolve(res.data.columnConfig)
				}else{
					resolve(false)
				}
			});
		})

		// return new Promise((resolve) => {
		// 	//这里为了演示使用了session和setTimeout演示，开发时应用数据请求
		// 	setTimeout(()=>{
		// 		tool.session.remove(tableName)
		// 		resolve(column)
		// 	},1000)
		// })
	}
}
