const http = uni.$u.http;
import qs from 'qs';

import store from "../store/index.js";
import config from '../uni_modules/uview-ui/libs/config/config.js';


const install = (Vue, vm) => {
	vm.$u.api = {
		login : (params = {})=> http.post('/auth/login', params),  // 登录
		getInfo : (params = {})=> http.get('/system/user/getInfo',{params}), // 获取用户数据
		sysMessageReceive : (params = {})=>http.get('/message/sysMessageReceive/list?' + qs.stringify(params)), // 消息接受列表
		getAppMessageList : (params = {})=>http.get('/message/sysMessageReceive/getAppMessageList?' + qs.stringify(params)), // 消息列表接口
		getDicts : (dictType)=>http.get('/system/dict/data/type/' + dictType), // 获取字典
		getPhoneFileterResult : (data = {})=>http.post('/collect/all/casePhoneFilter/getPhoneFileterResult',data), // 滤号
		listDetpUser : (data = {})=>http.post('/system/user/getDeptCustomer',data), // 查询部门人员列表
		getDeptCustomerByOrg : (data = {})=>http.post('/system/user/getDeptCustomerByOrg',data,{ params : data }), // 查询部门人员列表
		getDeptOwner : (data = {})=>http.post('/system/user/getDeptOwner',data), // 查询部门人员列表
		listByOrgDataScope : (params = {})=>http.get('/system/user/listByOrgDataScope',{params}), // 查询部门人员列表
		logout : ()=>http.delete("/auth/logout?systemCode=system_debt"), // 退出登录
		getUserProfile : (params = {})=>http.get('/system/user/profile?' + qs.stringify(params)), // 查询用户个人信息
		uploadAvatar : (url)=> http.upload('/system/user/profile/avatar',{filePath: url,name : "avatarfile",timeout: 1000 * 60 * 10,custom : { loadingText : "上传中" }}),
		updateUserProfile : (data = {})=>http.put("/system/user/profile",data), // 更新个人信息
		getCofDeptBank : (params = {})=>http.get("/system/cofDeptBank/getCofDeptBank",params), // 查询机构配置
		getOutEquipmentByMacAddr : (mac,config)=>http.get("system/caseOutEquipment/" + mac,config), // 根据mac地址获取外访设备状态可能为空
		addCaseOutEquipment : (data = {})=>http.post("system/caseOutEquipment",data), // 申请mac地址授权
		checkOutEquipment : (params = {},config)=>http.get("/system/caseOutEquipment/checkOutEquipment",{params,...config}), // 检测外访设备是否有申请通过记录
		concatRecord : (files,params = {})=>http.upload('/fileVisit/concatRecord',{files, params , name: 'files', timeout: 1000 * 60 * 10, custom : { loadingText : "上传中" }}), // 合并录音并上传
		uploadFile : (url,params = {})=> http.upload('/file/aliossUpload',{filePath: url,params ,name : "file",timeout: 1000 * 60 * 10,custom : { loadingText : "上传中" }}), // 上传文件
		watermarkUpload : (url,params = {})=> http.upload('/fileVisit/watermarkUpload',{filePath: url, params, name : "file",timeout: 1000 * 60 * 10,custom : { loadingText : "上传中" }}), // 上传文件
		getOutPolyline : (params = {})=>http.get("/system/caseOutPolyline/getOutPolyline",{ params , custom : { loading: false } }), // 请求外访轨迹列表
		addOutPolyline : (data = {})=>http.post("/system/caseOutPolyline/addOutPolyline",data,{ custom : { loading: false } }), // 添加外访轨迹
		updateUserPwd : (params = {})=>http.put("/system/user/profile/updatePwd?" + qs.stringify(params)), // 更新用户密码
		getSysVersion : (params = {},config = {})=>http.get("/system/sysVersion/getSysVersion",{params,...config, timeout: 2000}), // 版本更新
		getBankDebtRule : (params = {},config = {})=>http.get('/system/bankInfo/getBankDebtRule',{params,...config}), // 获取委托方催收规则
		getBankContent : (params = {},config = {})=>http.get('/system/bankInfo/getBankContent',{params,...config}), // 催收状态 
		getCofCallOutBindByUserId : (params = {},config = {})=>http.get('/system/cofCallOutBind/getCofCallOutBindByUserId',{params,...config}), // 获取分机号
		getCofShortcuts : (params = {},config = {})=>http.get('/system/cofShortcuts/list',{params,...config}), // 获取键盘速填
		getCofInfo : (params,config = {})=>http.get('/system/user/getCofInfo',{params,...config}), // 获取权限
		extensionNumberState : (params,config = {})=>http.get("http://8.134.50.217:10085/cc/extensionNumberState",{params , custom : { loading: false }}), // 获取来电关联案件
		getSm4En : (str,config = {})=>http.get(store.state.user.path + '/caseMainInfo/getSm4En',{ params : {str} , custom : { loading: false }}), // sm4加密
		setAPPLoginLimit : (params,config = {})=>http.get('/system/user/setAPPLoginLimit',{ params , custom : { loading: false }}), // 设置设备码访问失败次数
		getAPPLoginLimit : (params,config = {})=>http.get('/system/user/getAPPLoginLimit',{ params , custom : { loading: false } , timeout: 1000 }), // 获取设备码访问失败次数
		getExtensionStatus : (params,config = {})=>http.get('/sip/JcSip/getExtensionStatus',{ params , custom : { loading: false }}), // 获取分机的状态
		setEffectiveCallerIdNumber : (params,config = {})=>http.get('/sip/JcSip/setEffectiveCallerIdNumber',{ params , custom : { loading: false }}), // 固话设置号码
		getExtensionByUserId : (params,config = {})=>http.get('/sip/exten/getExtensionByUserId',{ params , custom : { loading: false }}), // 通过用户id获取分机
		getLineByIds : (params,config = {})=>http.get('/sip/line/getLineByIds',{ params , custom : { loading: false }}), // 根据线路获取线路
		getCodeImg : (params,config = {})=>http.get('/code',{ params , custom : { loading: false },timeout: 1500}), // 获取验证码（主要用于判断配置是否正确）
		getAppSystemList : (params = {},config = {})=>http.get('/system/sysVersion/getAppSystemList',{ params , custom : { loading: false },timeout: 1500}), // 获取app的系统列表
		changeOnlineStatus : (data,config = {})=>http.put('/system/user/changeStatus',data), // 用户状态修改
		statisticsCaseState : (data,config = {})=>http.post(store.state.user.path + '/clueFixedFields/statisticsCaseState',data), // 统计线索阶段
		statisticsAddClueCount : (data,config = {})=>http.post(store.state.user.path + '/clueMainInfo/statisticsAddClueCount',data), // 统计添加阶段
		getClueMainInfoList : (params = {},data = {})=> http.post(store.state.user.path + '/clueMainInfo/getClueMainInfoList?' + qs.stringify(params),data), // 线索列表
		getUserByUserIds : (params)=>http.get('/system/user/getUserByUserIds',{params}), //
		getClueTagGroupVoList : (params = {})=>http.get(store.state.user.path + "/clueTagGroup/getClueTagGroupVoList",{ params }), // 获取线索标签；
		getClueMainInfoVoById : (params = {},config = {})=>http.get(store.state.user.path + "/clueMainInfo/getClueMainInfoVoById",{ params , custom : { loading: false },timeout: 1500}), // 获取线索详情；
		updateClueFixedFieldsClueState:(data,config = {})=>http.post(store.state.user.path + '/clueFixedFields/updateClueFixedFieldsClueState',data),
		updateClueFixedFieldsAllTags:(data,config = {})=>http.post(store.state.user.path + '/clueFixedFields/updateClueFixedFieldsAllTags',data),
		getClueMainInfoById:(params = {},config = {})=>http.get(store.state.user.path + '/clueMainInfo/getClueMainInfoById',{params,...config}),
		getClueAdInfoByClueId:(params = {},config = {})=>http.get(store.state.user.path + '/clueAdInfo/getClueAdInfoByClueId',{params,...config}),
		getClueFollowList:(params = {},config = {})=>http.get(store.state.user.path + '/clueFollow/getClueFollowList',{params,...config}),
		deleteClueFollow:(data,config = {})=>http.post(store.state.user.path + '/clueFollow/deleteClueFollow',data),
		updateClueFixedFieldsClueOwner:(data,config={})=>http.post(store.state.user.path + '/clueFixedFields/updateClueFixedFieldsClueOwner',data),
		addClueFollow:(data,config={})=>http.post(store.state.user.path + '/clueFollow/addClueFollow',data),
		getDictCascadeData:(params,config={})=>http.get(store.state.user.path + '/dictCascadeData/list',{params,...config}),
		selectAllDeptList:(params,config={})=>http.get('/system/dept/selectAllDeptList',{ params,...config }),
		getIdByName:(params,config={})=>http.get(store.state.user.path + "/clueMainInfo/getIdByName",{ params,...config }),
		addClueMainInfo : (data,config = {})=>http.post(store.state.user.path + '/clueMainInfo/addClueMainInfo',data),
		saveLog:(data,config={})=>http.post("/system/access/saveLog",data,{ custom : { loading: false } }),
		saveClueFile:(data,config={})=>http.post(store.state.user.path + '/clueFile/saveClueFile',data),
		updateClueMainInfo:(data,config={})=>http.post(store.state.user.path + '/clueMainInfo/updateClueMainInfo',data),
		selectPromotionStats:(data,config={})=>http.post(store.state.user.path + '/promotionStats/selectPromotionStats',data),
		firstLogin : (data)=> http.post('/system/user/firstLogin',data),
		shiYuWxLoginGetInfo : (params)=> http.get('/auth/shiYuWxLoginGetInfo',{params, custom : { noAuth: true }}),
		deleteClueFile : (data)=> http.delete(store.state.user.path + '/clueFile/deleteClueFile',data),
		getCallClueFileByClueId : (params)=> http.get(store.state.user.path + '/clueFile/getCallClueFileByClueId',{params, custom : { noAuth: true }}),
		getClueSendFormCountByClueId : (params = {},config = {})=>http.get(store.state.user.path + '/clueSendForm/getClueSendFormCountByClueId',{ params }),
		// 订单相关接口
		selectClueOrderFormList:(params={},data={})=>http.post(store.state.user.path + '/clueSendForm/list?' + qs.stringify(params),data),
		oderForm:(data={})=>http.post(store.state.user.path + '/clueSendForm/oderForm',data),
		updateTags:(data={})=>http.post(store.state.user.path + '/clueSendForm/updateTags',data),
		addOrderFollow:(data={})=>http.post(store.state.user.path + '/orderFollow/addOrderFollow',data),
		getOrderFollowListByOrderId:(params={})=>http.get(store.state.user.path + '/orderFollow/getOrderFollowListByOrderId',{params}),
		deleteOrder:(data={})=>http.post(store.state.user.path + '/clueSendForm/deleteOrder',data),
		updateOrderState:(data={})=>http.post(store.state.user.path + '/clueSendForm/updateOrderState',data),
		updateClueOrderForm:(data={})=>http.post(store.state.user.path + '/clueSendForm/updateClueOrderForm',data),
		
		getOrderFollowListByClueId:(params = {},config = {})=>http.get(store.state.user.path + '/orderFollow/getOrderFollowListByClueId',{ params }),
		getDuplicateOrderFollowListByClueId:(params = {},config = {})=>http.get(store.state.user.path + '/orderFollow/getDuplicateOrderFollowListByClueId',{ params }),
		deleteOrderFollow:(data,config={})=>http.post(store.state.user.path + '/orderFollow/deleteOrderFollow',data),
		getOrderFollowList:(params = {},config = {})=>http.get(store.state.user.path + '/orderFollow/getOrderFollowList',{ params }),
		
		selectCommissionList:(params={},data={})=>http.post(store.state.user.path + '/clueCommissionForm/list?' + qs.stringify(params),data),
		getClueSendFormVoByOrderId:(params = {},config = {})=>http.get(store.state.user.path + '/clueSendForm/getClueSendFormVoByOrderId',{ params }),
		// 跟进记录相关接口
		getDuplicateClueFollowByClueId:(params,config={})=>http.get(store.state.user.path + '/clueFollow/getDuplicateClueFollowByClueId',{params,...config}),
		// 文件相关接口
		selectClueFileByDto:(data,config={})=>http.post(store.state.user.path + '/clueFile/selectClueFileByDto',data,config),
		updateClueFile:(data,config={})=>http.put(store.state.user.path + '/clueFile/updateClueFile',data),
		addReceiptForm:(data,config={})=>http.post(store.state.user.path + '/clueReceiptForm',data),
		updateReceiptForm:(data,config={})=>http.put(store.state.user.path + '/clueReceiptForm',data),
		listReceiptFormByOrderId:(orderFormId,config={})=>http.get(store.state.user.path + '/clueReceiptForm/listByOrderId/' + orderFormId),
		getReceiptForm:(id,config={})=>http.get(store.state.user.path + '/clueReceiptForm/' + id),
		delReceiptForm:(id,config={})=>http.delete(store.state.user.path + '/clueReceiptForm/' + id),
		saveClueOrderForm:(data={})=>http.post(store.state.user.path + '/clueSendForm/saveClueOrderForm',data),
		clueReceiptFormListByOrderId:(orderId,config={})=>http.get(store.state.user.path + '/clueReceiptForm/listByOrderId/' + orderId),
		clueCommissionAdd: (data={})=>http.post(store.state.user.path + '/clueCommissionForm',data),
		clueCommissionUpdate: (data={})=>http.put(store.state.user.path + '/clueCommissionForm',data),
		clueCommissionById: (id,config={})=>http.get(store.state.user.path + '/clueCommissionForm/' + id),
		clueCommissionRemove: (ids,config={})=>http.post(store.state.user.path + '/clueCommissionForm/remove',ids),
		getCustomerManagerAllList: ()=>http.post('/system/user/getCustomerManagerAllList'),
		getClueSendFormVoByOrderId: (params)=>http.get(store.state.user.path + '/clueSendForm/getClueSendFormVoByOrderId?' + qs.stringify(params)),
		statisticsSendStatus : (data,config = {})=>http.post(store.state.user.path + '/clueSendForm/statisticsSendStatus',data), // 统计线索阶段

		// 支付相关接口
		saveOrderFileAndTransfer:(data={})=>http.post(store.state.user.path + '/storeInfo/saveOrderFileAndTransfer',data),
	}
}

export default { install }