浏览代码

新增商家

chenlei 3 月之前
父节点
当前提交
771bd2b5a9

+ 1 - 1324
src/api/modules/crmApi.js

@@ -2,1339 +2,16 @@ import {get,post} from '@/api/index'
 
 /* 客户管理模块 */
 const customInterence = {
-	// 销售今日待办
-	sellerTodayList:params=>{
-		return get('/custom/getTryOutCompanyList',params)
-	},
-	// 销售待办填写续约说明
-	sellerTodayListRemark:params=>{
-		return post('/custom/editTryOutCompanyReason',params)
-	},
-	//销售代办中历史记录
-	sellerTodayHistoryList:params=>{
-		return get('/custom/renewReasonList',params)
-	},
-  //累计试用天数详情
-  tryOutDeail:params=>{
-    return get("/custom/company/tryOutDayList",params)
-  },
-
-  /* 
-    关闭客户
-    CompanyId
-    Remark
-  */
-  closeCustom:params=>{
-      return post('/custom/close',params)
-  },
-  /**
-   * 关闭客户转流失
-   * CompanyId
-   */
-  turnLose:params=>{
-    return post('/custom/close2loss',params)
-  },
-
-  // 客户系统合同搜索
-  contractSearch: (params) => {
-    return get("/custom/system_contract/list", params);
-  },
-  // 系统合同详情
-  sysContractDetail: (params) => {
-    return get("/custom/system_contract/detail", params);
-  },
-  // 通过系统合同申请转正/服务更新接口
-  sysCustomeApply: (params) => {
-    return post("/custom/apply/systemContract", params);
-  },
-
-  /**
-   * 获取客户大于今天的最后一份有效合同详情
-   * CompanyId
-   */
-  lastContractInfo: (params) => {
-    return get("/custom/company/last_contract/detail", params);
-  },
-
-  //补全客户信息
-  /**
-   * City
-   * CompanyId	客户id
-   * CompanyName
-   * CreditCode
-   * IndustryId	所属行业id
-   * IndustryName
-   * Province
-   * Source		来源
-   */
-  completeInfo: (params) => {
-    return post("/custom/company_info/edit", params);
-  },
-
-  //获取客户名下联系人数量(根据当前账号角色区分)
-  //CompanyId 客户id
-  companyUserTotal: (params) => {
-    return get("/custom/company_user/total", params);
-  },
-
-  //获取客户申请转正的合同类型
-  applyTurnContractType: (params) => {
-    return get("/custom/apply/contract/getApplyTurnContractType", params);
-  },
-
-  //客户来源
-  customerSourceList: (params) => {
-    return get("/custom/getCompanySourceList", params);
-  },
-
-  // 获取客户名下所有销售列表
-  companySellerList: (params) => {
-    return get("/custom/getCompanySellerList", params);
-  },
-  // 移动联系人
-  moveCustom: (params) => {
-    return post("/custom/user/move", params);
-  },
-
-  /* 上传图片接口 file  */
-  upload: (params) => {
-    return post("/resource/image/upload", params);
-  },
-  /* 代办消息列表 */
-  noticeList: (params) => {
-    return get("/custom/message/listV2", params);
-  },
-  /* 消息已读接口 Id */
-  readNotice: (params) => {
-    return post("/custom/message/read", params);
-  },
-  /* 客户列表 
-		PageSize * integer
-		CurrentIndex * integer
-		Status *string 状态:’传空字符串或者不传为全部’,’试用’,’永续’,’冻结’,’流失’,’正式’
-		CompanyType *string 客户类型:传空字符串或者不传为全部,’ficc’,’权益’
-		IndustryId *integer
-		AdminId string 销售id,多个用英文逗号隔开,空字符串为全部
-		ChartPermissionIds *string 品种id,多个用英文逗号分开,空字符串为全部
-		StartDate *
-		EndDate *
-		KeyWord * 搜索关键词
-		TryStage  试用子标签 0全部、1未分类、2 推进、3 跟踪、4 预备
-	*/
-  customList: (params) => {
-    return get("/custom/list", params);
-  },
-  /* 获取指定权限的销售列表 */
-  getSale: (params) => {
-    // return get('/custom/seller/check/list',params)
-    return get("/custom/seller/check/listV2", params);
-  },
-  /* 获取正式客户共享-原销售列表 */
-  getShareSale:(params)=>{
-    return get("/custom/seller/check/Sharelist2",params)
-  },
-  /* 客户详情
-		CompanyId 
-	*/
-  customDetail: (params) => {
-    return get("/custom/detail", params);
-  },
-  /* 新增客户
-		Province:	string
-		City:string
-		省市
-		CompanyCode:	string
-		客户编码
-		CompanyName:	string
-		客户名称
-		CompanyType:	string
-		客户类型,ficc,权益
-		CreditCode:	string
-		社会统一信用码
-		IndustryId:	integer ($int64)
-		所属行业id
-		PermissionIds:	string
-		权限id,多个用英文逗号隔开
-		Reasons:	string
-		新增理由
-		SellsId:	integer ($int64)
-		销售员id
-		Source:	string
-		来源
-		Status:	string
-		客户状态,试用,永续
-	*/
-  customAdd: (params) => {
-    return post("/custom/add", params);
-  },
-  /* 编辑客户
-	 	"City": "string",
-		"CompanyId": 0,
-		"CompanyName": "string",
-		"CreditCode": "string",
-		"Products": [
-			{
-				"CompanyProductId": 0,
-				"CompanyType": "string",
-				"IndustryId": 0,
-				"IndustryName": "string",
-				"PermissionIds": "string",
-				"Reasons": "string",
-				"SellsId": 0,
-				"Source": "string",
-				"Status": "string"
-			}
-		],
-		"Province": "string"
-	 */
-  customEdit: (params) => {
-    return post("/custom/edit", params);
-  },
-  /* 删除客户  CompanyId*/
-  customDel: (params) => {
-    return post("/custom/delete", params);
-  },
-  /* 新增编辑客户名称检索  KeyWord*/
-  customSea: (params) => {
-    return get("/custom/fuzzy/search", params);
-  },
-  /* 获取销售接口 */
-  /**
-   * 
-   * @param {
-   * SellerType - 销售类型 - 0:所有; 1:FICC; 2:权益
-   * } params 
-   * @returns 
-   */
-  saleslist: (params) => {
-    return get("/custom/seller/list", params);
-  },
-  /* 联系人列表
-		PageSize
-		CurrentIndex
-		CompanyId *integer
-		KeyWord
-	*/
-  concactList: (params) => {
-    return get("/custom/user/list", params);
-  },
-  /* 新增联系人
-		DepartmentName
-		BusinessCardUrl:	string名片地址
-		CompanyId:	integer ($int64)客户id
-		Email:	string邮箱
-		IsMaker:	integer ($int64) 是否决策人,1:是,0:否
-		MobileOne:	string手机号1
-		MobileTwo:	string手机号2
-		Position:	string职位
-		RealName:	string姓名
-		Sex:	integer ($int64)用户性别,1为男性,2为女性
-	*/
-  concactAdd: (params) => {
-    return post("/custom/user/add", params);
-  },
-  /* 删除联系人  UserId int*/
-  concactDel: (params) => {
-    return post("/custom/user/delete", params);
-  },
-  /* 编辑联系人
-		DepartmentName
-		"BusinessCardUrl": "string",
-		"CompanyId": 0,
-		"Email": "string",
-		"IsMaker": 0,
-		"MobileOne": "string",
-		"MobileTwo": "string",
-		"Position": "string",
-		"RealName": "string",
-		"Sex": 0,
-		"UserId": 0
-	 */
-  concactEdit: (params) => {
-    return post("/custom/user/edit", params);
-  },
-  /* 关注/取消关注 联系人
-  UserId CompanyId
-  Type 0取关 1关注
-  */
-  concactFollow: (params) => {
-    return post("/custom/follow", params);
-  },
-  /* 获取权限基本信息 */
-  authList: (params) => {
-    return get("/custom/permission/list", params);
-  },
-  /* 查看权限  CompanyId */
-  lookauth: (params) => {
-    return get("/custom/permission/look", params);
-  },
   /* 根据客户类型获取行业列表接口 
 		Classify string
 	*/
   getindustry: (params) => {
     return get("/custom/industry/list", params);
   },
-  /* 
-		品种列表 客户列表筛选
-
-	*/
-  getvariety: (params) => {
-    return get("/custom/permission/variety", params);
-  },
-
-  /* 客户检索列表 
-		KeyWord 
-	*/
-  searchList: (params) => {
-    return get("/custom/search/list", params);
-  },
-
-  /* 潜在用户列表
-		PageSize *	每页数据条数
-		CurrentIndex *
-		ApplyMethod *	int 申请方式,0:全部,1:未申请,2:已付费客户申请试用,3:非客户申请试用
-		KeyWord *
-	*/
-  potentialList: (params) => {
-    return get("/custom/potential/user/list", params);
-  },
-  /* 获取试用用户列表 */
-  trialList: (params) => {
-    return get("/custom/official/user/list", params);
-    // return get('/api/adminapi/custom/official/user/list?PageSize=10&CurrentIndex=1&SourceType=中文官网', params)
-  },
-  /* 试用用户确认已处理接口 */
-  trialStatus: (params) => {
-    return post("/custom/official/user/confirm", params);
-  },
-  /* 标记研报申请分组
-    ApplyRecordId
-    GroupName
-    UserId
-   */
-  markApplyUser:(params)=>{
-      return post('/yb/apply_record/mark_group',params)
-  },
-  /**
-   * 标记官网试用申请
-   * Id
-   * GroupName
-   */
-  markOfficialUser:(params)=>{
-      return post('/custom/official/user/mark_group',params)
-  },
-  /* 搜索公司 KeyWord  */
-  companySearch: (params) => {
-    return get("/custom/potential/company/search", params);
-  },
-  /* 搜索公司qcc KeyWord  */
-  companyQccSearch: (params) => {
-    return get("/custom/potential/company/qccSearch", params);
-  },
-  /* 检查公司名称或是信用码 CompanyName CreditCode */
-  checkCompany: (params) => {
-    return get("/custom/check/companyInfo", params);
-  },
   /* 检查公司名称或是信用码 CompanyName CreditCode */
   checkCompanyInfo: (params) => {
     return get("/custom/check/RepeatCompanyInfo", params);
   },
-  /* 移动潜在用户
-		"BusinessCardUrl":string名片地址
-		"CompanyId": int,
-		"DepartmentName":string联系人部门
-		"Email": "string",
-		"IsMaker":int是否决策人,1:是,0:否
-		"Mobile": "string",
-		"Position":	string职位
-		"RegionType":string 区域,枚举值:国内、海外
-		"RealName": "string",
-		"Remark": "string",
-		"SellerId":int 需要移动到的销售id
-		"Sex":int 用户性别,1为男性,2为女性
-		"UserId": int
-	*/
-  moveUser: (params) => {
-    return post("/custom/potential/user/move", params);
-  },
-  /* 删除潜在用户
-		"UserId": int
-	*/
-  potentialDel: (params) => {
-    return post("/custom/potential/user/delete", params);
-  },
-
-  //给用户打标记
-  potentialDeal: (params) => {
-    return post("/custom/potential/user/deal", params);
-  },
-
-  /* 客户创建周期
-		CompanyId int
-	*/
-  processList: (params) => {
-    return get("/custom/process/list", params);
-  },
-  /* 服务更新 历史签约列表 CompanyId  CompanyType */
-  historydeal: (params) => {
-    return get("/custom/apply/contract/history/list", params);
-  },
-  /* 服务更新 
-		"CompanyId": 0,
-		"CompanyType": "string",
-		"EndDate": "string",
-		"ImgUrl": "string",
-		"Money": 0,
-		"PayChannel": "string",
-		"PayMethod": "string",
-		"PermissionIds": "string",
-		"StartDate": "string"
-	*/
-  Update: (params) => {
-    return post("/custom/apply/service/update", params);
-  },
-  /* 冻结客户   
-	"CompanyId": 0,
-  "CompanyType":*/
-  Freez: (params) => {
-    return post("/custom/freeze", params);
-  },
-  /* 申请转正
-		"CompanyId": 0,
-		"EndDate": "string",
-		"ImgUrl": "string",
-		"Money": 0,
-		"PayChannel": "string",
-		"PayMethod": "string",
-		"PermissionIds": "string",
-		"StartDate": "string"
-	 */
-  applyTurn: (params) => {
-    return post("/custom/apply/turn/positive", params);
-  },
-  /* 申请延期
-	 "ApplyRemark": "string",
-	  "CompanyId": 0
-	  CompanyApprovalId
-	  PermissionIds
-	*/
-  applyDelay: (params) => {
-    return post("/custom/apply/delay", params);
-  },
-  /* 申请领取 
-		"ApplyRemark": "string",
-  		"CompanyId": 0
-	*/
-  applyPick: (params) => {
-    return post("/custom/apply/receive", params);
-  },
-  /* 申请解冻
-		"ApplyRemark": "string",
-  		"CompanyId": 0
-	*/
-  applyThaw: (params) => {
-    return post("/custom/apply/thaw", params);
-  },
-  /* 修改所属销售  "CompanyId": 0,"SellsId": 0*/
-  moveSale: (params) => {
-    return post("/custom/move/seller", params);
-  },
-  /* 暂停/启用 CompanyId */
-  Suspend: (params) => {
-    return post("/custom/suspend", params);
-  },
-  /* 领取列表
-		PageSize *
-		CurrentIndex *
-		IndustryId 行业id,0为全部
-		ChartPermissionIds 
-		StartDate *
-		EndDate *
-		KeyWord *
-	*/
-  pickList: (params) => {
-    return get("/custom/receive/list", params);
-  },
-  /* 领取客户  ——领取列表
-		"CompanyId": 0,
-		"IndustryId": 0,
-		"PermissionIds": "string",
-		"Reasons": "string",
-		"SellsId": 0,
-		"Source": "string",
-		"Status": "string"
-		CompanyType
-	*/
-  Pick: (params) => {
-    return post("/custom/receive", params);
-  },
-  /* 设置共享/取消共享
-		CompanyId
-		IsShare 0-取消共享 1-共享
-	*/
-  setCustomShare: (params) => {
-    return post("/custom/share", params);
-  },
-  /**
-   * 正式客户共享
-   */
-
-  /**
-   * 获取 共享客户组 里面的销售列表
-   */
-  salesShareList: (params) => {
-    return get("/custom/seller/share/list", params);
-  },
-  /**
-   * 获取分配销售列表,根据用户角色返回 共享客户组 or 权益销售组
-   */
-  getShareSaleList:(params)=>{
-    return get("/custom/seller/share/list", params);
-  },
-  /**
-   * 获取 共享客户列表
-   * SortParam 排序字段
-   * SortType 排序类型 `asc 正序`,`desc 倒叙`
-   * PageSize CurrentIndex 
-   * SellerId 选择的销售id
-   * Keyword 
-   * ListParam 0:全部 、 1:已分配 、 2:未分配
-   * 
-   */
-  getShareCustomList: (params) => {
-    return get("/custom/share/list", params);
-  },
-  /**
-   * 共享客户列表 - 分配销售
-   * CompanyId 公司Id
-   * SellsId 销售Id
-   * 
-   */
-    assignShareSeller: (params) => {
-      return post("/custom/share/moveSeller", params);
-    },
-    /**
-     * 新增服务记录
-     * CompanyId 公司Id
-     * Content 服务描述
-     */
-    addRecord:(params)=>{
-        return post("/custom/service_record/add",params)
-    },
-    /**
-     * 服务记录列表
-     * CompanyId 公司Id
-     */
-    getRecordList:(params)=>{
-        return get("/custom/service_record/list",params)
-    },
-    /**
-     * 删除服务记录
-     * CompanyServiceRecordId 服务记录id
-     */
-    deleteRecord:(params)=>{
-        return post("/custom/service_record/del",params)
-    },
-    /**
-     * 正式客户共享-添加备注
-     * CompanyId
-     * Remark 
-     */
-    addCustomRemark:(params)=>{
-        return post("/custom/share/remark/add",params)
-    },
-    /**
-     * 客户列表,正式客户共享-删除备注
-     * RemarkId
-     */
-    deleteRemark:(params)=>{
-        return post("/custom/remark/del",params)
-    },
-    /*
-     * 标记服务记录
-     * CompanyServiceRecordId
-     * Status 0取消标记 1标记
-     */
-    markRecord:(params)=>{
-        return post('/custom/share/mark',params)
-    },
-    /**
-     * 同城客户列表
-     */
-    getCustomCityList:(params)=>{
-        return get('/custom/share/list/city',params)
-    },
-  /* 审批列表
-		PageSize *
-		CurrentIndex *
-		Status *
-		KeyWord *
-	*/
-  approvalList: (params) => {
-    return get("/custom/approval/listV2", params);
-  },
-  /* 审批
-	  "CompanyId": 0,
-		"Remark": "string",
-		"Status": 0
-	 */
-  Approval: (params) => {
-    return post("/custom/approval/approve", params);
-  },
-  /* 撤回 CompanyId*/
-  Revoke: (params) => {
-    return post("/custom/apply/revoke", params);
-  },
-  /* 删除审批单 CompanyApprovalId CompanyId */
-  approvalDel: (params) => {
-    return post("/custom/approval/delete", params);
-  },
-  /* 审批页面详情
-		CompanyId * *
-	*/
-  approvalDetail: (params) => {
-    return get("/custom/apply/contract/detail", params);
-  },
-  /* 重新申请合同详情 */
-  reapplyDetail: (params) => {
-    return get("/custom/apply/contract", params);
-  },
-  /* 阅读报告记录  UserId*/
-  readList: (params) => {
-    return get("/custom/view/report/list", params);
-  },
-  /* 获取导入联系人列表 File CompanyId*/
-  getimportList: (params) => {
-    return post("/custom/import/list", params);
-  },
-  /* 导入联系人 File  CompanyId*/
-  importUser: (params) => {
-    return post("/custom/import", params);
-  },
-  /* 增加试用 "ChartPermissionId" "CompanyId"*/
-  addTryout: (params) => {
-    return post("/custom/permission/add/try/out", params);
-  },
-  /* 申请解冻 申请领取权限列表 */
-  allAuth: (params) => {
-    return get("/custom/getCompanyPermission", params);
-  },
-  /**
-   * 获取审批单中的权限列表
-   * @param {ApprovalId } params 审批单id
-   * @returns
-   */
-  approvalPermission: (params) => {
-    return get("/custom/approval/getApprovalPermissionList", params);
-  },
-  /**
-   * 查看客户权限接口(主观客观)
-   * @param {CompanyId } params 客户id
-   * @param {LookType } params 调用类型:1增开试用,0其他
-   * @returns
-   */
-  permissionLookSando: (params) => {
-    return get("/custom/permission/lookSando", params);
-  },
-  // 获取联系人配置图库权限详情
-  chartPermissionInfo: (params) => {
-    return get("/custom/user/getChartClassifyPermissionDetail", params);
-  },
-
-  // 联系人图库权限设置
-  chartPermissionSet: (params) => {
-    return post("/custom/user/addChartClassifyPermission", params);
-  },
-
-  // 联系人图库权限编辑
-  chartPermissionEdit: (params) => {
-    return post("/custom/user/editChartClassifyPermission", params);
-  },
-  // 销售待办添加未续约说明
-  sellerAddListRemark: (params) => {
-    return post("/custom/addTryOutCompanyReason", params);
-  },
-  // 正式转试用添加说明
-  addTryOutRenewalReason: (params) => {
-    return post("/custom/addRenewalReason", params);
-  },
-  // 导出
-  companyExportList: (params) => {
-    return get("/cygx/company/exportList", params);
-  },
-
-  /* 查看备注 */
-  lookRemarkAuth: (params) => {
-    return get("/custom/remark", params);
-  },
-  /* 新增备注 */
-  lookRemarkAuthAdd: (params) => {
-    return post("/custom/remark/add", params);
-  },
-  //路演的弹框
-  roadShowList: (params) => {
-    return get("/custom/roadShowList", params);
-  },
-  //中文客户累计点击量
-  getZNCustomClickList:(params)=>{
-    return get('/custom/user/listByReport',params)
-  },
-  /**
-   * 销售ToDo
-   */
-  //新建任务
-  addToDoItem: (params) => {
-    return post("/custom/company_todo/add", params);
-  },
-  //编辑任务
-  editToDoItem: (params) => {
-    return post("/custom/company_todo/edit", params);
-  },
-  //正在进行的任务
-  getToDoItem: (params) => {
-    return get("custom/company_todo/edit_list", params);
-  },
-  //历史记录
-  getHistory: (params) => {
-    return get("/custom/company_todo/list", params);
-  },
-  //确认完成
-  checkToDo: (params) => {
-    return post("/custom/company_todo/approve", params);
-  },
-
-  // 设置试用子标签
-  // "CompanyId":6802,"ProductId":1, "TryStage": 2
-  setTrialTag: (params) => {
-    return post("/custom/update/tryStage", params);
-  },
-
-  /**
-   * 销售添加客户管理
-   */
-  //销售分组列表
-  getSales: (params) => {
-    return get("/custom/receive/seller/group", params);
-  },
-  //销售列表
-  getSalesData: (params) => {
-    return get("/custom/receive/seller", params);
-  },
-  //权益销售列表
-  getSalesRaiData: (params) => {
-    return get("/custom/seller/check/list_rai", params);
-  },
-  //启用/禁用权限
-  changeSaleAuth: (params) => {
-    return post("/custom/receive/permission/change", params);
-  },
-  
-  /**
-   * 分产品阅读统计
-   */
-  /*
-    用户阅读统计:
-    UserId:联系人ID;ClickSort:点击量排序:1-升序 2-降序
-    CurrentIndex,pageSize
-  */
-  getYbProductReadInfo:(params)=>{
-    return get("/yb/product_census/user/visit_count",params)
-  },
-  /*
-    用户阅读统计详情:
-    UserId:联系人ID;ClickSort:点击量排序:1-升序 2-降序
-    ProductType:产品类型:1-语音播报 2-视频社区 3-问答社区
-    ProductId:产品ID:产品类型为1-语音播报时必填
-    CurrentIndex,pageSize
-  */
-  getYbProductReadDetail:(params)=>{
-    return get("/yb/product_census/user/visit_count_detail",params)
-  },
-
-  /**
-   * 获取分产品列表
-   * @param {*} params 
-   * @returns 
-   */
-  getSubProduct: params => {
-    return get('/custom/user/otherProductList',params)
-  },
-  
-  /**
-   * 客户区域统计
-  */
-  /**
-   * 获取客户区域统计列表
-   * @param {*} params 
-   * @returns Date 当天 ProductId=1
-   */
-   getRegionCustom: params => {
-    return get('/custom/customerAreaStatistics',params)
-  },
-   /**
-   * --------开票到款统计
-  */
-  /**
-   * 获取简易的套餐列表(用于搜索下拉框)
-   * @returns 
-   */
-  getSimpleServiceList: () => {
-    return get('/statistic_report/contract/service/simple')
-  },
-  /**
-   * --------开票到款统计
-  */
-  /**
-   * 销售下拉
-   * @returns 
-   */
-  sellerSelectList: () => {
-    return get('/custom/seller/check/invoice_payment/list')
-  },
-  /**
-   * 获取客户合同商品到款列表
-  * @param data.page_size - 每页数据量 - 必填
-  * @param data.current - 页码 - 必填
-  * @param data.keyword - 关键词-客户名称/销售
-  * @param data.service_types - 套餐
-  * @param data.start_date - 开始时间
-  * @param data.end_date - 结束时间
-  * @param data.time_type - 时间类型:1-开票时间; 2-到款时间
-  * @param data.sort_type - desc:降序 asc:升序
-  * @param data.sort_param - invoice_time:开票日 payment_date:到款日
-   * @returns 
-   */
-  getCTContractStatistics: params => {
-    return get('/statistic_report/census/invoice_payment/list',params)
-  },
-  
-  // ----------------------------------------------------英文客户
-  /**
-   * 设置英文客户权限
-   * @param {*} params 
-   * @returns 
-   */
-  setENCustomReportVariety:params=>{
-    return post('/english_report/company/save_permission',params)
-  },
-
-  // 获取英文客户列表
-  /**
-   * 
-   * @param {
-   * PageSize - 每页数据量 - 必填
-   * CurrentIndex - 当前页数 - 必填
-   * Keywords - 客户名称
-   * SortType - 点击量排序方式: 1-倒序;2-正序
-   * } params 
-   * @returns 
-   */
-  getCustomListEn: params => {
-    return get('/english_report/company/list',params)
-  },
-  // 新增英文客户
-  /**
-   * 
-   * @param {
-   * CompanyId - 客户ID 大于0为编辑
-   * CompanyName - 客户名称 - 必填
-   * CountryCode - 国家代码 - 必填
-   * Country - 国家 - 必填
-   * SellerId - 销售ID - 必填
-   * } params 
-   * @returns 
-   */
-  addCustomEn: (params) => {
-    return post("/english_report/company/save", params);
-  },
-  // 删除英文客户
-  /**
-   * 
-   * @param {
-   * CompanyId - 客户ID
-   * } params 
-   * @returns 
-   */
-  delCustomEn: (params) => {
-    return post("/english_report/company/del", params);
-  },
-  // 英文客户点击量详情
-  /**
-   * 
-   * @param {
-   * PageSize - 每页数据量 - 必填
-   * CurrentIndex - 当前页数 - 必填
-   * CompanyId - 客户ID - 必填
-   * SortParam - 点击量排序字段 - 1-点击量;2-点击时间
-   * SortType - 点击量排序方式: 1-倒序;2-正序
-   * } params 
-   * @returns 
-   */
-  customEnHitNumber: (params) => {
-    return get("/english_report/company/view_list", params);
-  },
-  // 英文客户详情
-  /**
-   * 
-   * @param {
-   * CompanyId - 客户ID
-   * } params 
-   * @returns 
-   */
-  customDetailEn: (params) => {
-    return get("/english_report/company/detail", params);
-  },
-  // ---------英文客户todo
-  // 新建to do
-  /**
-   * 
-   * @param {
-   * CompanyId - 客户ID
-   * Description - 任务描述
-   * EndTime - 截止日期
-   * } params 
-   * @returns 
-   */
-  addCustomToDoEn: (params) => {
-    return post("/english_report/company_todo/add", params);
-  },
-  // 编辑todo的列表
-  /**
-   * 
-   * @param {
-   * CompanyId - 客户ID - 必填
-   * } params 
-   * @returns 
-   */
-   todoEditListEn: (params) => {
-    return get("/english_report/company_todo/edit_list", params);
-  },
-  // 编辑todo
-  /**
-   * 
-   * @param {
-   * Id - 任务Id - 必填
-   * CompanyId - 客户ID - 必填
-   * Description - 任务描述 - 必填
-   * } params 
-   * @returns 
-   */
-   editCustomToDoEn: (params) => {
-    return post("/english_report/company_todo/edit", params);
-  },
-  // 完成todo
-  /**
-   * 
-   * @param {
-   * Id - 任务Id - 必填
-   * } params 
-   * @returns 
-   */
-   finishCustomToDoEn: (params) => {
-    return post("/english_report/company_todo/approve", params);
-  },
-  // to do历史记录
-  /**
-   * @param {
-   * PageSize - 每页数据量 - 必填
-   * CurrentIndex - 当前页数 - 必填
-   * CompanyId - 客户ID
-   * SortType - 点击量排序方式: 1-倒序;2-正序
-   * } params 
-   * @returns 
-   */
-  getTodoListEn: (params) => {
-    return get("/english_report/company_todo/list", params);
-  },
-  //----------------------------英文联系人列表
-  /**
-   * @param {
-   * PageSize - 每页数据量 - 必填
-   * CurrentIndex - 当前页数 - 必填
-   * CompanyId - 客户ID
-   * Keywords - 搜索关键词,客户名称/邮箱
-   * SortType - 点击量排序方式: 1-倒序;2-正序
-   * } params 
-   * @returns 
-   */
-  getContactsListEn: (params) => {
-    return get("/english_report/email/list", params);
-  },
-  // 保存联系人 新增/编辑
-  /**
-   * 
-   * @param {
-   * Id - 联系人ID,大于0为编辑
-   * CompanyId - 客户Id
-   * Name - 联系人名称
-   * Email - 邮箱地址
-   * } params 
-   * @returns 
-   */
-  contactsSaveEn: (params) => {
-    return post("/english_report/email/save", params);
-  },
-  // 移动联系人
-  /**
-   * 
-   * @param {
-  * EmailId - 邮箱ID
-  * CompanyId - 客户Id
-  * } params 
-  * @returns 
-  */
-  contactsMoveEn: (params) => {
-    return post("/english_report/email/moveToCurrent", params);
-  },
-  // 英文联系人批量导入
-  /**
-   * 
-   * @param { formData
-   * File - Excel文件
-   * CompanyId - 客户ID
-   * } params 
-   * @returns 
-   */
-  importContactsEn: (params) => {
-    return post("/english_report/email/import", params);
-  },
-  // 删除英文联系人
-  /**
-   * 
-   * @param {
-   * EmailId - 联系人Id
-   * } params 
-   * @returns 
-   */
-  delContactsEn: (params) => {
-    return post("/english_report/email/del", params);
-  },
-  //启用禁用英文联系人
-  /**
-   * 
-   * @param {*
-   *  EmailId
-   *  Enabled
-   * } params 
-   * @returns 
-   */
-  editEnabledEn:(params)=>{
-    return post('/english_report/email/editEnabled',params)
-  },
-  //批量启用,禁用英文联系人
-    /**
-   * 
-   * @param {*
-     *  CompanyId
-     *  Enabled
-     * } params 
-     * @returns 
-     */
-  editEnabledAll:(params)=>{
-    return post('/english_report/company/edit_enabled',params)
-  },
-  // 英文联系人点击量详情
-  /**
-   * 
-   * @param {
-   * PageSize - 每页数据量 - 必填
-   * CurrentIndex - 当前页数 - 必填
-   * EmailId - 联系人ID - 必填
-   * SortParam - 点击量排序字段 - 1-点击量;2-点击时间
-   * SortType - 点击量排序方式: 1-倒序;2-正序
-   * } params 
-   * @returns 
-   */
-  contactsEnHitNumber: (params) => {
-    return get("/english_report/email/view_list", params);
-  },
-  //英文客户-未完成todo统计
-  /**
-   * 
-   * @param {
-     * PageSize - 每页数据量
-     * CurrentIndex - 当前页数
-     * SortType - 截止日期排序方式: 1-正序; 2-倒序
-     * } params 
-     * @returns 
-     */
-  getUnDoList:(params)=>{
-    return get("/english_report/company_todo/doing_list",params)
-  },
-  //英文客户-获取to-do编辑框信息
-  getToDoEditData:(params)=>{
-    return get("/english_report/company_todo/last_public_todo",params)
-  },
-  //英文客户-新增to-do编辑框信息
-  /**
-   * 
-   * @param {* Description 任务描述} params 
-   * @returns 
-   */
-  saveToDoEditData:(params)=>{
-    return post("/english_report/company_todo/add_public",params)
-  },
-  //新增开通或者关闭用户研选权限新建接口
-    /**
-   * 
-   * @param {* UserId 用户ID} params 
-   * @param {* Type 类型 } params 
-   * @returns 
-   */
-  yananxuanPermissionOpen:(params)=>{
-    return post("/custom/update/user/yananxuan/permission",params)
-  },
-  //查询移动记录列表
-    /**
-   * 
-   * @returns 
-   */
-  getCustomListMoveLog:(params)=>{
-      return get("/custom/user/listMoveLog",params)
-  }
-};
-
-/*
-权益联系人列表模块
-*/
-const equityContacts = {
-  //状态搜索栏接口
-  getUserStatusTable: (params) => {
-    return get("/cygx/user/status/table", params);
-  },
-  // 用户列表接口
-  getCygxContactsList: (params) => {
-    return get("/cygx/user/list", params);
-  },
-  //备注列表接口
-  getCygxRemarkList: (params) => {
-    return get("/cygx/user/remark/list", params);
-  },
-  // 新增备注
-  getCygxAddRemarks: (params) => {
-    return post("/cygx/user/addRemarks", params);
-  },
-  //获取用户标签详情接口
-  getCygxLabelDetail: (params) => {
-    return get("/cygx/user/label/detail", params);
-  },
-  //产业、标的模糊查询接口
-  industrialManagementSearch: (params) => {
-    return get("/cygx/industrialManagement/search", params);
-  },
-  //互动详情table栏接口
-  getCygxMutualList: (params) => {
-    return get("/cygx/user/table/list", params);
-  },
-  //互动详情table栏接口
-  getCygxMutualDetail: (params) => {
-    return get("/cygx/user/interaction/detail", params);
-  },
-  //用户相关互动接口
-  getInteractionRelevant: (params) => {
-    return get("/cygx/user/interaction/relevant", params);
-  },
-  //机构状态搜索栏互助
-  getInteractionNum: (params) => {
-    return get("/cygx/user/interactionNum", params);
-  },
-  //机构互动详情table栏接口
-  getCompanyTableList: (params) => {
-    return get("/cygx/user/company/table/list", params);
-  },
-  //机构互动详情table栏接口
-  getCompanyInteractionDetail: (params) => {
-    return get("/cygx/user/company/interaction/detail", params);
-  },
-  //添加/取消用户提醒
-  postUserRemind: (params) => {
-    return post("/cygx/user/remind", params);
-  },
-  //全机构互动列表接口
-  getUserCompanyList: (params) => {
-    return get("cygx/user/company/list", params);
-  },
-  //机构列表互动详情table栏接口
-  getUserTableCompanyList: (params) => {
-    return get("/cygx/user/table/companyList", params);
-  },
-  // 交流反馈列表接口
-  userFeedbacklist:(params)=>{
-    return get("/cygx/user_feedback/list",params)
-  }, 
-  // 添加交流反馈接口
-  userFeedbackAdd:(params)=>{
-    return post("/cygx/user_feedback/add",params)
-  }, 
-  // 删除交流反馈接口
-  userFeedbackDel:(params)=>{
-    return post("/cygx/user_feedback/del",params)
-  }, 
-};
-
-/*
-crm12.4 ETA试用列表模块
- */
-const etaTrialInterence={
- /**ETA试用客户列表
-  * PageSize,CurrentIndex,KeyWord
-  * SortParam
-  * SortType : asc正序 desc倒序
-  */
-  getETATrialList:(params)=>{
-    return get('/eta_trial/list',params)
-  },
- /**非管理员-我的审批列表
-  * 
-  */
-  getApprovalAllList:(params)=>{
-    return get('/eta_trial/apply/myList',params)
-  },
- /**非管理员-账号列表
-  * 
-  */
-  getApprovalList:(params)=>{
-    return get('/eta_trial/apply/accountlist',params)
-  },
- /**非管理员-删除申请
-  * ApprovalId
-  */
-  deleteApproval:(params)=>{
-    return post('/eta_trial/apply/del',params)
-  },
- /**非管理员-撤回申请
-  * Mobile
-  */
-  withdrawApproval:(params)=>{
-    return post('/eta_trial/apply/revoke',params)
-  },
- /**非管理员-申请启用
-  * UserName,CompanyName,Position,Mobile
-  * ApplyReasons 申请理由
-  */
-  applyEnable:(params)=>{
-    return post('/eta_trial/apply/enable',params)
-  },
- /**非管理员-新增申请
-  * List[]
-  * List[].UserName 姓名
-  * List[].CompanyName 公司名称
-  * List[].Position 职位
-  * List[].Mobile 手机号
-  */
-  addApproval:(params)=>{
-    return post('/eta_trial/add',params)
-  },
- /**管理员-审批列表
-  * ApprovalStatus 
-  */
-  getAdminApprovalList:(params)=>{
-    return get('/eta_trial/apply/list',params)
-  },
- /**管理员-同意申请
-  * ApprovalId
-  */
-  agreeApply:(params)=>{
-    return post('/eta_trial/apply/approval',params)
-  },
- /**管理员-驳回申请
-  * ApprovalId
-  * RejectReason
-  */
-  rejectApply:(params)=>{
-    return post('/eta_trial/apply/reject',params)
-  },
-  // -------------ETA试用 1.1
-  // 问卷调查
-  /**统计结果列表
-  * ListParam 1-全部 2-选择题 3-简答题
-  */
-  getQuestionDataList:(params)=>{
-    return get('/eta_trial/questionnaire/statistical',params)
-  },
-  /**简答题详情列表
-  * CurrentIndex PageSize QuestionnaireId
-  */
-  getTextDetailList:(params)=>{
-    return get('/eta_trial/questionnaire/answerList',params)
-  },
-  /**详细数据列表
-  * PageSize CurrentIndex
-  */
-  getDetailDataList:(params)=>{
-    return get('/eta_trial/questionnaire/detailList',params)
-  },
-  /**详细数据 - 详情
-  * Mobile
-  */
-  getDetailDataDetail:(params)=>{
-    return get('/eta_trial/questionnaire/detail',params)
-  },
-  /**问卷列表
-  */
-  getQuestionOptionList:()=>{
-    return get('/eta_trial/questionnaire/list')
-  },
-   /**保存题目配置
-  * List - 题目列表
-  */
-  questionOptionSave:(params)=>{
-    return post('/eta_trial/questionnaire/save',params)
-  },
-  /**删除题目
-  * QuestionnaireId - 题目Id
-  */
-  questionOptionDelete:(params)=>{
-    return post('/eta_trial/questionnaire/del',params)
-  },
-}
-
-/* 全量客户相关 */
-const customAllInterence = {
-    //客户列表
-    customList:(params)=>{
-        return get("/custom/full/list",params)
-    },
-    //客户详情
-    customDetail:(params)=>{
-        return get("/custom/full/detail", params);
-    },
-    //查看权限
-    lookauth: (params) => {
-        return get("/custom/full/permission/look", params);
-    },
-}
-
-/* X类客户评分 */
-const xClassCustomApi = {
-  //模板 列表
-  enterScoreDetail:(params)=>{
-      return get("/cygx/enterScore/detail",params)
-  },
-   //添加/ 更新录分
-   enterScoreUpdate:(params)=>{
-    return post("/cygx/enterScore/update",params)
-  },  
-  // X试用类客户检索
-  enterScoreSearchlist:(params)=>{
-      return get("/cygx/enterScore/company/searchlist",params)
-  },
-  // 录分列表接口
-  enterScoreList:(params)=>{
-    return get("/cygx/enterScore/list",params)
-  },
-  // 录分列表接口
-  enterScoreDelete:(params)=>{
-    return post("/cygx/enterScore/delete",params)
-  },  
-  // 评分总览接口
-  enterScoreScoreOverview:(params)=>{
-    return get("/cygx/enterScore/scoreOverview",params)
-  }, 
-  // 排名总览接口
-  enterScoreRankingOverview:(params)=>{
-    return get("/cygx/enterScore/rankingOverview",params)
-  }, 
 }
 
-export { customInterence,customAllInterence, equityContacts,etaTrialInterence,xClassCustomApi};
+export { customInterence };

+ 0 - 360
src/api/modules/roadshowApi.js

@@ -8,366 +8,6 @@ const roadshowInterence={
 	getSellerList:params=>{
 		return get('/custom/seller/roadshow_ficc/list',params)
 	},
-	/**
-	 * 获取路演-研究员列表
-	 * @param {*} params 
-	 * @returns 
-	 */
-	getResearcherList:params=>{
-		return get('/roadshow/researcher/list',params)
-	},
-
-	/**
-	 * 获取日历列表
-	 * @param {PageSize} params 
-	 * @param {CurrentIndex} params 
-	 * @param {CalendarType} params 1:待处理申请,2:已处理申请,3:内部会议
-	 * @returns 
-	 */
-	getCalendarList:params=>{
-		return get('/roadshow/calendar/list',params)
-	},
-
-	/**
-	 * 撤回路演活动
-	 * @param {*} params RsCalendarId RsCalendarResearcherId
-	 * @returns 
-	 */
-	revocationRoadshow:params=>{
-		return post('/roadshow/back',params)
-	},
-
-	/**
-	 * 接受路演活动
-	 * @param {RsCalendarId} params 
-	 * @param {RsCalendarResearcherId} params 
-	 * @returns 
-	 */
-	acceptRoadshow:params=>{
-		return post('/roadshow/accept',params)
-	},
-	
-	/**
-	 * 拒绝路演
-	 * @param {*} params RsCalendarId RsCalendarResearcherId RefuseReason
-	 * @returns 
-	 */
-	refuseRoadshow:params=>{
-		return post('/roadshow/refuse',params)
-	},
-
-	/**
-	 * 删除路演活动
-	 * @param {*} params RsCalendarId RsCalendarResearcherId DeleteReason
-	 * @returns 
-	 */
-	deleteRoadshow:params=>{
-		return post('/roadshow/delete',params)
-	},
-
-	/**
-	 * 研究员日历
-	 * @param {DateType} params 
-	 * @param {ResearcherId} params 
-	 * @returns 
-	 */
-	getCalendarDetail:params=>{
-		return get('/roadshow/researcher/calendar/detail',params)
-	},
-    /**
-	 * 销售员日历
-	 * @param {DateType} params 
-	 * @param {SellerId} params 
-	 * @returns 
-	 */
-	getSellerCalendarDetail:params=>{
-		return get('/roadshow/seller/calendar/detail',params)
-	},
-
-	/**
-	 * 我的日历
-	 * @param {DateType} params 
-	 * @returns 
-	 */
-	myCalendarDetail:params=>{
-		return get('/roadshow/my/calendar/detail',params)
-	},
-
-
-
-	// 客户搜索 KeyWord
-	searchRoadshowCompany:params=>{
-		return get('/roadshow/company/search',params)
-	},
-
-	/**
-	 * 客户详情
-	 * @param {CompanyId} params 
-	 * @returns 
-	 */
-	componyDetail:params=>{
-		return get('/roadshow/company/detail',params)
-	},
-
-	/**
-	 * 新增路演活动
-	 * @param {*} params  
-	 * "ActivityType": "路演",
-			"RoadshowType": "线上",
-			"RoadshowPlatform": "腾讯会议",
-			"CompanyId": 16,
-			"CompanyName": "弘则研究",
-			"ResearcherList": [
-				{
-					"ResearcherId": 4,
-					"ResearcherName": "章左昊",
-					"StartDate": "2020-01-11",
-					"EndDate": "2020-01-11",
-					"StartTime": "10:00:00",
-					"EndTime": "11:00:00",
-					"Week": "周二"
-				}
-			]
-	 * @returns 
-	 */
-	addRoadshow:params=>{
-		return post('/roadshow/add',params)
-	},
-
-	/**
-	 * 活动编辑 
-	 * @param {*} params  RsCalendarId RsCalendarResearcherId EditType 1修改 2重提
-	 * @returns 
-	 */
-	editRoadshow: params=>{
-		return post('/roadshow/edit',params)
-	},
-
-	/**
-	 * 新增事项
-	 * @param {*} params  
-	 * "MatterContent": "休假",
-		"StartDate": "2020-01-11",
-		"EndDate": "2020-01-11",
-		"StartTime": "10:00:00",
-		"EndTime": "11:00:00",
-		"StartWeek": "周二",
-		"EndWeek": "周二"
-	 * @returns 
-	 */
-	addRoadshowMatters:params=>{
-		return post('/roadshow/matters/add',params)
-	},
-
-	/**
-	 * 修改事项
-	 * @param {*} params 
-	 * "RsMattersId": 1,
-		"MatterContent": "休假了",
-		"StartDate": "2020-01-11",
-		"EndDate": "2020-01-11",
-		"StartTime": "10:00:00",
-		"EndTime": "11:00:00",
-		"StartWeek": "周二",
-		"EndWeek": "周二"
-	 * @returns 
-	 */
-	editMatters:params=>{
-		return post('/roadshow/matters/update',params)
-	},
-
-	/**
-	 * 删除事项
-	 * @param {RsMattersId} params 
-	 * @returns 
-	 */
-	delMatters:params=>{
-		return post('/roadshow/matters/delete',params)
-	},
-
-	/**
-	 * 事项列表
-	 * @param {PageSize} params 
-	 * @param {CurrentIndex} params 
-	 * @returns 
-	 */
-	mattersList:params=>{
-		return get('/roadshow/matters/list',params)
-	},
-
-	/**
-	 * 新增参会名单
-	 * @param {Object} params 
-	 * @param {Number} params.RsCalendarId 日程ID
-	 * @param {Number[]} params.UserId 用户ID
-	 * @returns 
-	 */
-	addMeetingUser:params=>{
-		return post('/roadshow/rs_calendar_meeting_user/add',params)
-	},
-	/**
-	 * 参会名单列表
-	 * @param {Object} params 
-	 * @param {Number} params.RsCalendarId
-	 * @returns 
-	 */
-	getMeetingUserList:params=>{
-		return get('/roadshow/rs_calendar_meeting_user/list',params)
-	},
-	/**
-	 * 删除参会名单
-	 * @param {Object} params 
-	 * @param {Number} params.RsCalendarMeetingUserId
-	 * @returns 
-	 */
-	deleteMeetingUser:params=>{
-		return post('/roadshow/rs_calendar_meeting_user/delete',params)
-	},
-
-	/* ==================  路演统计 ================= */
-	/**
-	 * 研究员统计
-	 * @param {*} params DataType StartDate EndDate
-	 * @returns 
-	 */
-	researcherStatistic: params => {
-		return get('/roadshow/report/researcher/list',params)
-	},
-
-	/**
-	 * 销售统计
-	 * @param {*} params DataType StartDate EndDate
-	 * @returns 
-	 */
-	sellerStatistic: params => {
-		return get('/roadshow/report/seller/list',params)
-	},
-
-	/**
-	 * 统计详情列表
-	 * @param {} params DataType StartDate EndDate AdminId AdminType
-	 * @returns 
-	 */
-	statisticDetailList: params => {
-		return get('/roadshow/report/calendar/list',params)
-	},
-	/**
-	 * 统计详情列表-海外路演
-	 * @param {} params DataType StartDate EndDate AdminIds AdminType
-	 * @returns 
-	 */
-	overseaStatisticDetailList: params => {
-		return get('/roadshow/overseas/calendar/list',params)
-	},
-	/**
-	 * 选择的研究员接口
-	 * @param {AdminIds} params DataType StartDate EndDate AdminId AdminType
-	 * @returns 
-	 */
-	 roadshowChoiceResearcher: params => {
-		return post('/roadshow/report/choice/researcher',params)
-	},
-	
-	/**
-	 * 公开会议日历详情
-	 * @param {} params StartDate EndDate
-	 * @returns 
-	 */
-	meetCalendarDetail: params => {
-		return get('/roadshow/public_meeting/detail',params)
-	},
-
-
-	/**
-	 * 获取选择的研究员列表
-	 * @param {} params DataType StartDate EndDate AdminId AdminType
-	 * @returns 
-	 */
-	roadshowAdminList: params => {
-		return get('/roadshow/report/admin/list',params)
-	},
-
-	/**
-	 * 专项路演统计接口
-	 * @param {} params DataType StartDate EndDate AdminId AdminType
-	 * @returns 
-	 */
-	roadshowSpecialList: params => {
-		return get('/roadshow/report/special/list',params)
-	},
-
-	/**
-	 * 路演反馈列表
-	 * @param {} params PageSize CurrentIndex FeedbackType 0:不显示(默认),1:显示 ResearcherId 
-	 * @returns
-	 */
-	feedbackList: params => {
-		return get('/roadshow/feedback/list',params)
-	},
-
-	/**
-	 * 发送路演反馈
-	 * @param {*} params List  [{"RsCalendarResearcherId": 0}
-  ]
-	 * @returns 
-	 */
-	sendFeedback: params => {
-		return post('/roadshow/send/feedback',params)
-	},
-
-	/**
-	 * 待反馈列表
-	 * @param {*} params   [{"RsCalendarResearcherId": 0}
-  ]
-	 * @returns 
-	 */
-	toFeedbacklist: params => {
-		return get('/roadshow/submit/feedback/list',params)
-	},
-
-	/**
-	 * 填写路演反馈
-	 * @param {*} params   RsCalendarResearcherId FeedbackContent
-  ]
-	 * @returns 
-	 */
-	writeFeedback: params => {
-		return post('/roadshow/write/feedback',params)
-	},
-
-	/**
-	 * 提交反馈
-	 * @param {*} params   [{RsCalendarResearcherId}]
-  ]
-	 * @returns 
-	 */
-	submitFeedback: params => {
-		return post('/roadshow/submit/feedback',params)
-	},
-    /**
-     * 报告电话会活动类别
-     * @param {*} params 
-     */
-    getTelList:params=>{
-        return get('/yb/activity/type/tel_list',params)
-    },
-	// -------------------------------------出差表模块
-	/**
-	 * 获取研究员的出差表
-	 * @param {*} params.AdminId - 研究员的AdminId
-	 * @returns 
-	*/
-	getResearcherBusinessTrip: params => {
-		return get('/roadshow/report/researcher/business_trip',params)
-	},
-	//标签搜索(研究员日历添加到会信息)
-	rai_serve_search_tag:params => {
-		return get('/cygx/rai_serve/search_tag_by_calendar',params)
-	},	
-	//校验是否属于策略固收接口
-	rai_serve_search_chcck_PermissionName:params => {
-		return get('/cygx/rai_serve/chcck_PermissionName',params)
-	},	
 }
 
 export {

+ 25 - 18
src/router/modules/customer.js

@@ -10,47 +10,54 @@ export default[
     },
     children:[
       {
-        path:'businessETAList',
-        name:"商家管理",
-        component: () => import('@/views/business_ETA_manage/businessList.vue'),
+        path:'businessList',
+        name:"businessList",
+        component: () => import('@/views/business_manage/businessList.vue'),
 				hidden: false,
+        meta:{
+          title:'商家管理'
+        },
       },
       {
-        path:'addETABusiness',
-        name:"新增商家",
-        component: () => import('@/views/business_ETA_manage/addBusiness.vue'),
+        path:'addBusiness',
+        name:"addBusiness",
+        component: () => import('@/views/business_manage/addBusiness.vue'),
 				hidden: false,
         meta:{
-          pathFrom: "businessETAList",
+          title:'新增商家',
+          pathFrom: "businessList",
           pathName: "商家管理",
         }
       },
       {
-        path:'editETABusiness',
-        name:"编辑商家",
-        component: () => import('@/views/business_ETA_manage/businessEdit.vue'),
+        path:'editBusiness',
+        name:"editBusiness",
+        component: () => import('@/views/business_manage/businessEdit.vue'),
 				hidden: false,
         meta:{
-          pathFrom: "businessETAList",
+          title:'修改商家',
+          pathFrom: "businessList",
           pathName: "商家管理",
         }
       },
       {
-        path:'businessETADetail',
-        name:"商家详情",
-        component: () => import('@/views/business_ETA_manage/businessDetail.vue'),
+        path:'businessDetail',
+        name:"businessDetail",
+        component: () => import('@/views/business_manage/businessDetail.vue'),
 				hidden: false,
         meta:{
-          pathFrom: "businessETAList",
+          title:'商家详情',
+          pathFrom: "businessList",
           pathName: "商家管理",
         }
       },
       {
-        path:'businessETAAuth',
-        name:"商家权限",
-        component: () => import('@/views/business_ETA_manage/businessAuth.vue'),
+        path:'businessAuth',
+        name:"businessAuth",
+        component: () => import('@/views/business_manage/businessAuth.vue'),
         hidden: false,
         meta:{
+          title:'商家权限',
           pathFrom: "businessETAList",
           pathName: "商家管理",
         }

+ 7 - 0
src/styles/var.scss

@@ -1,3 +1,10 @@
 :root{
   --border-color:#DCDFE6;
+}
+
+/* 全局按钮主题颜色 */
+.t-button--theme-primary{
+  background-color:#409EFF;
+  border:none;
+  color: #FFFFFF;
 }

+ 24 - 24
src/utils/location.js

@@ -1,39 +1,39 @@
 export const locationOptions = [
   {
       name: "北京市",
-      city: [
-          {
-              name: "北京市",
-              districtAndCounty: ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云县", "延庆县", "延庆镇"]
-          }
-      ]
+    //   city: [
+    //       {
+    //           name: "北京市",
+    //           districtAndCounty: ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云县", "延庆县", "延庆镇"]
+    //       }
+    //   ]
   },
   {
       name: "天津市",
-      city: [
-          {
-              name: "天津市",
-              districtAndCounty: ["和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "塘沽区", "汉沽区", "大港区", "东丽区", "西青区", "津南区", "北辰区", "武清区", "宝坻区", "蓟县", "宁河县", "芦台镇", "静海县", "静海镇"]
-          }
-      ]
+    //   city: [
+    //       {
+    //           name: "天津市",
+    //           districtAndCounty: ["和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "塘沽区", "汉沽区", "大港区", "东丽区", "西青区", "津南区", "北辰区", "武清区", "宝坻区", "蓟县", "宁河县", "芦台镇", "静海县", "静海镇"]
+    //       }
+    //   ]
   },
   {
       name: "上海市",
-      city: [
-          {
-              name: "上海市",
-              districtAndCounty: ["黄浦区", "卢湾区", "徐汇区", "长宁区", "静安区", "普陀区", "闸北区", "虹口区", "杨浦区", "闵行区", "宝山区?", "嘉定区", "浦东新区", "金山区", "松江区", "青浦区", "南汇区", "奉贤区", "崇明县", "城桥镇"]
-          }
-      ]
+    //   city: [
+    //       {
+    //           name: "上海市",
+    //           districtAndCounty: ["黄浦区", "卢湾区", "徐汇区", "长宁区", "静安区", "普陀区", "闸北区", "虹口区", "杨浦区", "闵行区", "宝山区?", "嘉定区", "浦东新区", "金山区", "松江区", "青浦区", "南汇区", "奉贤区", "崇明县", "城桥镇"]
+    //       }
+    //   ]
   },
   {
       name: "重庆市",
-      city: [
-          {
-              name: "重庆市",
-              districtAndCounty: ["渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "万盛区", "双桥区", "渝北区", "巴南区", "万州区", "涪陵区", "黔江区", "长寿区", "合川市", "永川区市", "江津市", "南川市", "綦江县", "潼南县", "铜梁县", "大足县", "荣昌县", "璧山县", "垫江县", "武隆县", "丰都县", "城口县", "梁平县", "开县", "巫溪县", "巫山县", "奉节县", "云阳县", "忠县", "石柱土家族自治县", "彭水苗族土家族自治县", "酉阳土家族苗族自治县", "秀山土家族苗族自治县"]
-          }
-      ]
+    //   city: [
+    //       {
+    //           name: "重庆市",
+    //           districtAndCounty: ["渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "万盛区", "双桥区", "渝北区", "巴南区", "万州区", "涪陵区", "黔江区", "长寿区", "合川市", "永川区市", "江津市", "南川市", "綦江县", "潼南县", "铜梁县", "大足县", "荣昌县", "璧山县", "垫江县", "武隆县", "丰都县", "城口县", "梁平县", "开县", "巫溪县", "巫山县", "奉节县", "云阳县", "忠县", "石柱土家族自治县", "彭水苗族土家族自治县", "酉阳土家族苗族自治县", "秀山土家族苗族自治县"]
+    //       }
+    //   ]
   },
   {
       name: "河北省",

+ 0 - 472
src/views/business_ETA_manage/addBusiness.vue

@@ -1,472 +0,0 @@
-<template>
-    <div class="add-business">
-        <!-- 自定义步骤条 -->
-        <Steps 
-            :activeStep="step"
-            :allowStepClick="false"
-        />
-        <div class="first-step-form-wrap" v-show="step===1">
-            <el-form 
-                :model="firstFormData" 
-                :rules="rules"
-                ref="firstFormEl" 
-                label-width="120px"
-                inline
-                class="first-step-form"
-            >
-                <div class="form-line">
-                    <el-form-item label="所属区域" prop="areaType">
-                        <el-radio-group v-model="firstFormData.areaType">
-                            <el-radio label="国内" border>国内</el-radio>
-                            <el-radio label="海外" border>海外</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                    <el-form-item label="商家名称" prop="name">
-                        <autocomplete
-                            ref="auto"
-                            v-model="firstFormData.name"
-                            :fetch-suggestions="callbackHandle"
-                            placeholder="请输入商家名称"
-                            @blur="checkCompany"
-                            @select="customNameSelect"
-                            @focus="checkCompanyfocus"
-                            :disabled='inquireSuccess'
-                            clearable
-                            value-key="value"
-                            style="width:360px"
-                            :popper-class="isCheck?'el-autocomplete-none':'el-autocomplete-suggestion-data-entry'"
-                            class="autocomplete-input"
-                        >
-                            <span 
-                                v-if="firstFormData.name.length > 3" 
-                                style="color:#409EFF;cursor: pointer;" slot="suffix"  
-                                @click="$refs.auto.search(firstFormData.name)"
-                            > 查询</span>
-                            <template slot-scope="scope">
-                                <div v-if="scope.item.KeyNo">{{scope.item.Name}}</div>
-                                <div v-else style="text-align:center">暂无数据</div>		 
-                            </template>
-                        </autocomplete>
-                        <!-- <el-input placeholder="请输入商家名称" v-model="firstFormData.name"/> -->
-                    </el-form-item>
-                </div>
-                <div class="form-line">
-                    <el-form-item label="社会信用码" prop="creditCode">
-                        <el-input disabled placeholder="请输入社会信用码" v-model="firstFormData.creditCode"/>
-                    </el-form-item>
-                    <el-form-item label="商家地址" prop="address" v-if="firstFormData.areaType=='国内'">
-                        <el-cascader 
-                            v-model="firstFormData.address"
-                            :props="locationProps"
-                            clearable 
-                            :options="locationOptions"  
-                            @change="selectRegion" 
-                            placeholder="请选择客户地址" 
-                        />
-                    </el-form-item>
-                    <el-form-item label="所属国家" prop="nation" v-else>
-                        <el-select v-model="firstFormData.nation" placeholder="请选择所属国家" filterable style="width: 360px;">
-                            <el-option :label="item.cnName" :value="item.cnName" v-for="item in countryData" :key="item.code" >
-                            <div style="display: flex;justify-content: space-between;">
-                                <span>{{ item.cnName }}</span>
-                                <span style="color: #8492a6; font-size: 13px">{{ item.code }}</span>
-                            </div>
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                </div>
-                <div class="form-line">
-                    <el-form-item label="决策人" prop="decisionMaker">
-                        <el-input placeholder="请输入决策人" v-model="firstFormData.decisionMaker"/>
-                    </el-form-item>
-                    <el-form-item label="研究团队规模" prop="teamSize">
-                        <el-select 
-                            v-model="firstFormData.teamSize" 
-                            placeholder="请选择研究团队规模"
-                            clearable
-                        >
-                            <el-option
-                                v-for="item in teamSizeOpts"
-                                :key="item.val"
-                                :label="item.label"
-                                :value="item.val">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                </div>
-                <div class="form-line">
-                    <el-form-item label="资金规模" prop="fundsize">
-                        <el-input placeholder="请输入资金规模" v-model="firstFormData.fundsize"/>
-                    </el-form-item>
-                    <el-form-item label="所属行业" prop="industry">
-                        <el-select 
-                            v-model="firstFormData.industry" 
-                            placeholder="请选择行业" 
-                            clearable
-                        >
-                            <el-option
-                                v-for="item in tradeArr"
-                                :key="item.IndustryId"
-                                :label="item.IndustryName"
-                                :value="item.IndustryId">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                </div>
-                <div class="form-line">
-                    <el-form-item label="用户上限" prop="userMax">
-                        <el-input type="number" placeholder="请输入用户上限" v-model="firstFormData.userMax"/>
-                    </el-form-item>
-                    <el-form-item label="所属销售" prop="saller">
-                        <el-cascader
-                            ref="cascader"
-                            v-model="firstFormData.saller"
-                            :options="salesArr"
-                            :show-all-levels="false"
-                            :props="{
-                                expandTrigger: 'hover',
-                                children: 'Child',
-                                emitPath: false,
-                                label:'AdminName',
-                                value:'AdminId',
-                            }"
-                            filterable
-                            clearable
-                            placeholder="请选择销售"
-                        />
-                    </el-form-item>
-                </div>
-                
-            </el-form>
-        </div>
-        <div class="second-step-form-wrap" v-show="step===2">
-            <el-form 
-                :model="secondFormData" 
-                :rules="rules"
-                ref="secondFormEl" 
-                label-width="120px"
-                inline
-                class="second-step-form"
-            >
-                <div class="form-line">
-                    <el-form-item label="签约日期" prop="signDate">
-                        <el-date-picker
-                            v-model="secondFormData.signDate"
-                            type="date"
-                            placeholder="选择日期"
-                            value-format="yyyy-MM-dd"
-                        />
-                    </el-form-item>
-                    <el-form-item label="到期日期" prop="expirationDate">
-                        <el-date-picker
-                            v-model="secondFormData.expirationDate"
-                            type="date"
-                            placeholder="选择日期"
-                            value-format="yyyy-MM-dd"
-                        />
-                    </el-form-item>
-                </div>
-                
-            </el-form>
-        </div>
-
-        <div class="btns-box">
-            <el-button style="width:80px" type="primary" v-show="step===1" @click="handleStepSecond">下一步</el-button>
-            <el-button style="width:80px" type="primary" v-show="step===1" plain @click="$router.back()">取消</el-button>
-            <el-button style="width:80px" type="primary" v-show="step===2" plain @click="step--">上一步</el-button>
-            <el-button style="width:80px" type="primary" v-show="step===2" @click="handleAddBusiness">保存</el-button>
-        </div>
-    </div>
-</template>
-
-<script>
-import { customInterence,roadshowInterence,businessCustomInterence } from '@/api/api.js'
-import autocomplete from "@/components/autocomplete.vue";
-import Steps from "./components/Steps.vue";
-import {locationOptions} from "@/views/custom_manage/customList/location"
-import country from "@/utils/countryData"
-export default {
-    components: {autocomplete,Steps},
-    data() {
-        this.countryData = country
-        return {
-            /* 城市地址数据 */
-            locationOptions,
-            locationProps:{
-                value:'name',
-                children:'city',
-                label:'name'
-            },
-
-            /* 自动输入社会信用码 */
-            isCheckCompanyInfo:false, 
-			checkCompanyfocusIs:false,
-			inquireSuccess:false,
-            nameRepeat:false,
-			codeRepeat:false,
-            isCheck:false,//检查客户弹窗
-			repeatId:'',//重复公司id
-			repeatName:'',//重复公司类型
-
-            salesArr:[],//销售员数据
-            tradeArr:[],//行业数据
-            step:1,//第几步
-
-            /* 研究团队规模数据 */
-            teamSizeOpts:[
-                {
-                    val:'50人及以下',
-                    label:'50人及以下'
-                },
-                {
-                    val:'200人及以下',
-                    label:'200人及以下'
-                },
-                {
-                    val:'超过200人',
-                    label:'超过200人'
-                }
-            ],
-            
-            rules:{
-                areaType:[{ required: true, message: '请选择所属区域', trigger: 'change' },],
-                name:[{ required: true, message: '请输入商家名称', trigger: 'blur' },],
-                creditCode:[{ required: true, message: '请输入社会信用码', trigger: 'blur' },],
-                address:[{ required: true, message: '请选择商家地址', trigger: 'change' },],
-                nation:[{ required: true, message: '请选择所属国家', trigger: 'change' },],
-                decisionMaker:[{required: true, message: '请输入决策人', trigger: 'blur' },],
-                teamSize:[{required: true, message: '请选择研究团队规模', trigger: 'change' },],
-                industry:[{required: true, message: '请选择所属行业', trigger: 'change' },],
-                userMax:[{required: true, message: '请输入用户上限', trigger: 'blur' },],
-                /* signDate:[{required: true, message: '请选择签署日期', trigger: 'change' },],
-                expirationDate:[{required: true, message: '请选择签署日期', trigger: 'change' },], */
-                saller:[{required: true, message: '请选择所属销售', trigger: 'change' },],
-            },
-
-            /* 表单初始值 */
-            firstFormData:{
-                areaType:'国内',
-                name:'',
-                creditCode:'',
-                address:'',
-                nation:'',
-                decisionMaker:'',
-                teamSize:'',
-                fundsize:'',
-                industry:'',
-                userMax:'',
-                saller:''
-            },
-            secondFormData:{
-                signDate:'',
-                expirationDate:''
-            }
-        }
-    },
-    watch:{
-        'firstFormData.areaType':{
-            handler(newVal){
-                console.log('watch?',newVal)
-                if(newVal==='海外'){
-                    this.firstFormData.creditCode = 'HZ' + new Date().getTime()
-                    // this.firstFormData.address = ['海外','其他市']
-                    // this.selectRegion(['海外','其他市'])
-                }else{
-                    this.firstFormData.creditCode = ''
-                    // this.firstFormData.address = []
-                }
-            }
-        }
-    },
-    created() {
-        this.getIndustry()
-        this.getSale()
-    },
-    methods: {
-        normalizingParams(params){
-            const cascaderNodes = this.$refs.cascader.getCheckedNodes({leafOnly:true})
-            const IndustryName = this.tradeArr.find(item=>item.IndustryId===params.industry).IndustryName
-            return {
-                BusinessName:params.name,
-                CreditCode:params.creditCode,
-                RegionType:params.areaType,
-                Province:params.province,
-                City:params.city,
-                Nation:params.nation,
-                SellerId:Number(cascaderNodes[0]?cascaderNodes[0].value:0),
-                SellerName:cascaderNodes[0]?cascaderNodes[0].label:'',
-                Leader:params.decisionMaker,
-                IndustryId:Number(params.industry),
-                IndustryName:IndustryName,
-                CapitalScale:params.fundsize,
-                ResearchTeamSize:params.teamSize,
-                UserMax:Number(params.userMax),
-                SigningTime:params.signDate||'',
-                ExpiredTime:params.expirationDate||''
-            }
-        },
-        //跳转到第二步
-        handleStepSecond(){
-            this.$refs.firstFormEl.validate((valid)=>{
-                if(valid){
-                    const params = this.normalizingParams(this.firstFormData)
-                    businessCustomInterence.addBusiness({
-                        IsCheck:true,
-                        ...params
-                    }).then(res=>{
-                        if(res.Ret!==200) return 
-                        this.step++
-                    })
-                }
-            })
-        },
-        //保存商家
-        handleAddBusiness(){
-            this.$refs.secondFormEl.validate((valid)=>{
-                if(valid){
-                    const params = this.normalizingParams({...this.firstFormData,...this.secondFormData})
-                    businessCustomInterence.addBusiness({
-                        IsCheck:false,
-                        ...params
-                    }).then(res=>{
-                        if(res.Ret!==200) return 
-                        this.$message.success('添加成功')
-                        this.$router.push('/businessETAList')
-                    })
-                }
-            })
-        },
-
-        async callbackHandle(data,cb) {
-            if (data) {
-                this.isCheckCompanyInfo =true
-                cb([]);
-                let res = await customInterence.companyQccSearch({ KeyWord: data});
-                if (res.Ret === 200) {
-                    this.isCheckCompanyInfo =false;
-                    if (res.Data && res.Data.length > 0) {
-                        let arr = res.Data.map((item) => {
-                            return { value:item.Name, ...item };
-                        });
-                        cb(arr);
-                    }else{
-                        cb([{}]);
-                        // this.checkCompany()
-                    }	
-                }	
-            }
-		},
-
-        checkCompanyfocus(){
-			this.checkCompanyfocusIs =true;
-			setTimeout(() => {
-			    this.checkCompanyfocusIs =false;
-			},500)
-		},
-
-        //选中后增加社会信用码
-		customNameSelect(value) {
-			this.firstFormData.creditCode = value.CreditCode
-			//this.inquireSuccess = true;
-			setTimeout(async()=>{
-				this.checkCompany()
-			},10)
-		},
-
-        /* 客户名称/信用码失焦时校验客户名称是否存在 存在就提示 */
-		checkCompany() {	
-			setTimeout(()=>{
-                if(this.checkCompanyfocusIs) return
-                if((!this.firstFormData.name && !this.firstFormData.creditCode) || (this.isCheckCompanyInfo && this.firstFormData.name)) return
-                    customInterence.checkCompanyInfo({
-                        CompanyName:this.firstFormData.name,
-                        CreditCode:this.firstFormData.creditCode
-                    }).then(res =>{
-                        if(res.Ret === 200){
-                            if(res.Data.RepeatStatus > 0) {
-                                this.repeatId = res.Data.CompanyId;
-                                this.repeatName = res.Data.ProductName;
-                                this.nameRepeat = res.Data.RepeatStatus
-                                this.codeRepeat = res.Data.Status
-                                this.isCheck = true;
-                            }else {
-                                this.nameRepeat = 0
-                                this.isCheck = false;
-                            }
-                        }
-                    })
-			},500)
-		},
-
-        selectRegion(e){
-            this.firstFormData.province=e[0]
-            this.firstFormData.city=e[1]
-        },
-        /* 根据类型获取行业 */
-		getIndustry() {
-			customInterence.getindustry({
-				Classify:'ficc'
-			}).then(res => {
-				if(res.Ret === 200) {
-					this.tradeArr = res.Data.List || [];
-				}
-			})
-		},
-        /* 获取销售 */
-        async getSale() {
-            const res = await roadshowInterence.getSellerList();
-            if(res.Ret!==200) return 
-            this.salesArr = res.Data.List||[]
-            this.salesArr = this.salesArr.map(i=>{
-                if(!i.AdminName){
-                    i.AdminName = i.GroupName
-                }
-                if(!i.AdminId){
-                    i.AdminId = i.GroupId
-                }
-                return i
-            })
-        },
-    },
-}
-</script>
-
-<style lang="scss" scoped>
-.add-business{
-    padding:30px;
-    box-sizing: border-box;
-    background-color: #fff;
-    min-width: 1100px;
-    height: calc(100vh - 120px);
-    .first-step-form-wrap,.second-step-form-wrap{
-        margin-top:60px;
-        border-top: 1px solid #DCDCDC;
-        width:70%;
-    }
-    .el-form{
-        .form-line{
-            margin:30px 0;
-            border-bottom: 1px solid #DCDCDC;
-            .el-input,.el-select,.el-cascader,.el-radio-group{
-                width:360px;
-            }
-            .el-radio-group{
-                display: flex;
-                justify-content: space-between;
-                .el-radio{
-                    width: 165px;
-                    text-align: center;
-                }
-            }
-        }
-    }
-}
-.btns-box{
-    position: fixed;
-    left: 50%;
-    bottom: 100px;
-    transform: translateX(-50%);
-    width: 200px;
-    z-index: 99;
-}
-</style>

+ 0 - 474
src/views/business_ETA_manage/businessList.vue

@@ -1,474 +0,0 @@
-<template>
-    <div class="business-ETA-list">
-      <div class="top-filter-box">
-        <div>
-          <t-button theme="primary" @click="navigateToAdd">新增</t-button>
-          <!-- <t-input
-            placeholder="商家名称/社会信用码/商家ID"
-            v-model="searchTxt"
-            @change="changeSelectOptions('search')"
-            clearable
-            style="maxWidth: 500px; float: right"
-          > -->
-          <t-input
-                style="width: 310px; margin-left: auto"
-                placeholder="商家名称/社会信用码/商家ID"
-                @change="changeSelectOptions('search')"
-            >
-            <template #prefixIcon><SearchIcon /></template>
-          </t-input>
-        </div>
-      </div>
-      <div class="table-wrap">
-        <div class="select-wrap">
-          <t-select
-            v-model="trade"
-            placeholder="请选择行业"
-            clearable
-            @change="changeSelectOptions('trade')"
-          >
-            <t-option
-              v-for="item in tradeArr"
-              :key="item.IndustryId"
-              :label="item.IndustryName"
-              :value="item.IndustryId"
-            />
-          </t-select>
-          <t-cascader
-            v-model="sales"
-            :options="salesArr"
-            :show-all-levels="false"
-            :props="cascaderProps"
-            multiple
-            collapse-tags
-            filterable
-            clearable
-            placeholder="请选择销售"
-            @change="changeSelectOptions('sales')"
-          />
-          <t-cascader
-            v-model="valueLocation"
-            :options="locationOptionsList"
-            :props="locationProps"
-            collapse-tags
-            clearable
-            placeholder="请选择客户地址"
-            @change="changeSelectOptions('location')"
-          />
-          <t-select
-            v-model="nation"
-            placeholder="请选择所属国家"
-            filterable
-            clearable
-            @change="changeSelectOptions('nation')"
-          >
-            <t-option
-              v-for="item in countryData"
-              :key="item.code"
-              :label="item.cnName"
-              :value="item.cnName"
-            >
-              <div style="display: flex; justify-content: space-between;">
-                <span>{{ item.cnName }}</span>
-                <span style="color: #8492a6; font-size: 13px">{{ item.code }}</span>
-              </div>
-            </t-option>
-          </t-select>
-          <t-select
-            v-model="signStatus"
-            placeholder="请选择签约状态"
-            clearable
-            @change="changeSelectOptions('signStatus')"
-          >
-            <t-option
-              v-for="item in signStatusOpts"
-              :key="item.val"
-              :label="item.label"
-              :value="item.val"
-            />
-          </t-select>
-        </div>
-        <t-table
-          :columns="tableColOpts"
-          :data-source="tableData"
-          row-key="id"
-          :loading="isTableLoading"
-          @sort-change="sortChangeHandle"
-        >
-          <template v-slot:default="{ row, column }">
-            <span v-if="column.key === 'SigningStatus'">
-              {{ signStatusOpts[row.SigningStatus - 1].label }}
-              {{ !row.Enable ? '(禁用)' : '' }}
-            </span>
-            <span
-              v-else-if="column.key === 'BusinessName'"
-              class="link"
-              @click="handleShowDetail(row)"
-            >
-              {{ row.BusinessName }}
-            </span>
-            <span v-else-if="column.key === 'Address'">
-              {{
-                row.RegionType === '海外'
-                  ? row.Nation || row.Address
-                  : row.Address
-              }}
-            </span>
-            <span v-else>{{ row[column.key] }}</span>
-          </template>
-          <template v-slot:action="{ row }">
-            <div class="table-opt-btns">
-              <span @click="handleEdit(row)">编辑</span>
-              <span @click="handleShowRenewal(row)">添加续约</span>
-              <t-dropdown>
-                <t-button type="text" @click="toggleDropdown(row)">
-                  <t-icon name="more" />
-                </t-button>
-                <t-dropdown-menu v-model:visible="dropdownVisible[row.id]">
-                  <t-dropdown-item @click="itemClickHandle('setAuth', row)">权限设置</t-dropdown-item>
-                  <t-dropdown-item @click="itemClickHandle('modifySale', row)">修改销售</t-dropdown-item>
-                  <t-dropdown-item @click="itemClickHandle('disable', row)">
-                    {{ row.Enable ? '禁用' : '启用' }}
-                  </t-dropdown-item>
-                </t-dropdown-menu>
-              </t-dropdown>
-            </div>
-          </template>
-        </t-table>
-        <div style="text-align: right; margin-top: 20px">
-          <t-pagination
-            :current-page="page"
-            :page-size="pageSize"
-            :total="total"
-            @change="handleCurrentChange"
-          />
-        </div>
-      </div>
-  
-      <!-- 添加续约 -->
-      <t-dialog
-        title="添加续约"
-        :visible.sync="showRenewal"
-        :modal-append-to-body="false"
-        :close-on-click-modal="false"
-        @close="showRenewal = false"
-      >
-        <template v-slot:content>
-          <AddRenewal @addRenewal="handleAddRenewal" @close="showRenewal = false" />
-        </template>
-      </t-dialog>
-  
-      <!-- 修改销售 -->
-      <t-dialog
-        title="修改销售"
-        :visible.sync="showModifySaller"
-        :modal-append-to-body="false"
-        :close-on-click-modal="false"
-        @close="showModifySaller = false"
-      >
-        <template v-slot:content>
-          <ModifySaller
-            :salesArr="salesArr"
-            :data="modifyData"
-            @modifySaller="handleModifySaller"
-            @close="showModifySaller = false"
-          />
-        </template>
-      </t-dialog>
-    </div>
-  </template>
-  
-  <script>
-//   import { ref, onMounted } from 'vue';
-//   import { AddRenewal, ModifySaller } from './components';
-//   import countryData from '@/utils/countryData';
-  import { ref, onMounted } from 'vue';
-import { customInterence, businessCustomInterence, roadshowInterence } from '@/api/api.js';
-import { locationOptions } from '@/utils/location';
-import AddRenewal from './components/AddRenewal.vue';
-import ModifySaller from './components/ModifySaller.vue';
-import countryData from '@/utils/countryData';
-import { SearchIcon } from 'tdesign-icons-vue-next';
-
-  
-  export default {
-    components: { AddRenewal, ModifySaller, SearchIcon },
-    setup() {
-      const searchTxt = ref('');
-      const trade = ref('');
-      const tradeArr = ref([]);
-      const sales = ref([]);
-      const salesArr = ref([]);
-      const valueLocation = ref([]);
-      const nation = ref('');
-      const locationProps = ref({
-        multiple: true,
-        value: 'name',
-        children: 'city',
-        label: 'name',
-      });
-      const locationOptionsList = ref(locationOptions);
-      const cascaderProps = ref({
-        expandTrigger: 'hover',
-        children: 'Child',
-        emitPath: false,
-        label: 'AdminName',
-        value: 'AdminId',
-        multiple: true,
-      });
-      const signStatus = ref('');
-      const signStatusOpts = ref([
-        { label: '首次签约', val: 1 },
-        { label: '续约中', val: 2 },
-        { label: '已终止', val: 3 },
-        { label: '待签约', val: 4 },
-      ]);
-      const tableColOpts = ref([
-        { label: '商家名称', key: 'BusinessName' },
-        { label: '商家ID', key: 'BusinessCode' },
-        { label: '商家地址/所属国家', key: 'Address' },
-        { label: '销售', key: 'SellerName' },
-        { label: '签约状态', key: 'SigningStatus' },
-        { label: '运维开始时间', key: 'SigningTime', sortable: true },
-        { label: '到期时间', key: 'ExpiredTime', sortable: true },
-        { label: '创建时间', key: 'CreateTime', sortable: true },
-        { label: '用户上限', key: 'UserMax', sortable: true },
-      ]);
-      const tableData = ref([]);
-      const isTableLoading = ref(false);
-      const page = ref(1);
-      const pageSize = ref(20);
-      const total = ref(0);
-      const showRenewal = ref(false);
-      const showModifySaller = ref(false);
-      const modifyData = ref({});
-      const dropdownVisible = ref({});
-  
-      const navigateToAdd = () => {
-        // 使用 Vue Router 导航到添加页面
-        // this.$router.push('/addETABusiness');
-      };
-  
-      const changeSelectOptions = (option) => {
-        if (option === 'location') {
-          const provinceArr = [];
-          const cityArr = [];
-          valueLocation.value.forEach((item) => {
-            provinceArr.push(item[0]);
-            cityArr.push(item[1]);
-          });
-          // provinceArr 需要去重
-          const provinceValue = [...new Set(provinceArr)].join(',');
-          const cityValue = cityArr.join(',');
-          // 这里可以添加对 provinceValue 和 cityValue 的处理逻辑
-        }
-        fetchBusinessList();
-      };
-  
-      const sortChangeHandle = (params) => {
-        // 处理排序逻辑
-      };
-  
-      const fetchBusinessList = async () => {
-        isTableLoading.value = true;
-        try {
-          // 假设 businessCustomInterence 是一个已经定义好的 API 服务
-          const res = await businessCustomInterence.getBusinessList({
-            Keyword: searchTxt.value,
-            SellerIds: sales.value.join(','),
-            SigningStatus: Number(signStatus.value),
-            // ... 其他参数
-          });
-          if (res.Ret !== 200) return;
-          tableData.value = res.Data.List;
-          total.value = res.Data.Paging.Totals;
-        } finally {
-          isTableLoading.value = false;
-        }
-      };
-  
-      const handleShowDetail = (data) => {
-        // 导航到详情页面
-        // this.$router.push({ path: '/businessETADetail', query: { id: data.EtaBusinessId } });
-      };
-  
-      const handleEdit = (data) => {
-        // 导航到编辑页面
-        // this.$router.push({ path: '/editETABusiness', query: { id: data.EtaBusinessId } });
-      };
-  
-      const handleShowRenewal = (data) => {
-        modifyData.value = data;
-        showRenewal.value = true;
-      };
-  
-      const handleAddRenewal = ({ signDate, expirationDate }) => {
-        // 处理添加续约逻辑
-      };
-  
-      const handleModifySaller = ({ saller, sallerName }) => {
-        // 处理修改销售逻辑
-      };
-  
-      const changeBusinessStatus = (data) => {
-        // 处理启用/禁用商家逻辑
-      };
-  
-      const itemClickHandle = (type, data) => {
-        if (type === 'modifySale') {
-          modifyData.value = data;
-          showModifySaller.value = true;
-        } else if (type === 'disable') {
-          changeBusinessStatus(data);
-        } else if (type === 'setAuth') {
-          // 处理权限设置逻辑
-        }
-      };
-  
-      const toggleDropdown = (row) => {
-        dropdownVisible[row.id] = !dropdownVisible[row.id];
-      };
-  
-      const getIndustry = async () => {
-        try {
-          // 假设 customInterence 是一个已经定义好的 API 服务
-          const res = await customInterence.getindustry({ Classify: 'ficc' });
-          if (res.Ret === 200) {
-            tradeArr.value = res.Data.List || [];
-          }
-        } catch (error) {
-          console.error('获取行业数据失败:', error);
-        }
-      };
-  
-      const getSale = async () => {
-        try {
-          // 假设 roadshowInterence 是一个已经定义好的 API 服务
-          const res = await roadshowInterence.getSellerList();
-          if (res.Ret !== 200) return;
-          salesArr.value = res.Data.List.map((item) => ({
-            ...item,
-            AdminName: item.AdminName || item.GroupName,
-            AdminId: item.AdminId || item.GroupId,
-          }));
-        } catch (error) {
-          console.error('获取销售数据失败:', error);
-        }
-      };
-  
-      const handleCurrentChange = (newPage) => {
-        page.value = newPage;
-        fetchBusinessList();
-      };
-  
-      onMounted(async () => {
-        await getIndustry();
-        await getSale();
-        fetchBusinessList();
-      });
-  
-      return {
-        searchTxt,
-        trade,
-        tradeArr,
-        sales,
-        salesArr,
-        valueLocation,
-        nation,
-        locationProps,
-        cascaderProps,
-        signStatus,
-        signStatusOpts,
-        tableColOpts,
-        tableData,
-        isTableLoading,
-        page,
-        pageSize,
-        total,
-        showRenewal,
-        showModifySaller,
-        modifyData,
-        dropdownVisible,
-        toggleDropdown,
-        countryData,
-        navigateToAdd,
-        changeSelectOptions,
-        sortChangeHandle,
-        fetchBusinessList,
-        handleShowDetail,
-        handleEdit,
-        handleShowRenewal,
-        handleAddRenewal,
-        handleModifySaller,
-        changeBusinessStatus,
-        itemClickHandle,
-        getIndustry,
-        getSale,
-        handleCurrentChange,
-      };
-    },
-  };
-  </script>
-  
-  <style lang="scss">
-  .business-ETA-list {
-    .top-filter-box {
-      .t-cascader__search-input {
-        min-width: 30px;
-      }
-    }
-  }
-  </style>
-  
-  <style lang="scss" scoped>
-  .top-filter-box {
-    border: 1px solid #ececec;
-    padding: 20px 30px;
-    background: #fff;
-    border-radius: 4px;
-    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
-  }
-  
-  .table-wrap {
-    margin-top: 30px;
-    border: 1px solid #ececec;
-    padding: 20px 30px;
-    background: #fff;
-    border-radius: 4px;
-    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
-  
-    .select-wrap {
-      display: flex;
-      gap: 20px;
-      align-items: center;
-      margin-bottom: 20px;
-  
-      .t-select,
-      .t-cascader {
-        width: 240px;
-      }
-    }
-  
-    .link {
-      color: #4099ef;
-      cursor: pointer;
-  
-      &:hover {
-        text-decoration: underline;
-      }
-    }
-  
-    .table-opt-btns {
-      color: #4099ef;
-      display: flex;
-      align-content: center;
-      justify-content: center;
-      align-items: center;
-  
-      span {
-        margin: 0 3px;
-        cursor: pointer;
-      }
-    }
-  }
-  </style>

+ 451 - 0
src/views/business_manage/addBusiness.vue

@@ -0,0 +1,451 @@
+<template>
+    <div class="add-business">
+        <!-- 自定义步骤条 -->
+        <t-steps :current="current" status="process">
+            <t-step-item title="步骤1">
+            </t-step-item>
+            <t-step-item title="步骤2">
+            </t-step-item>
+            <t-step-item title="步骤3">
+            </t-step-item>
+        </t-steps>
+        <template v-if="current === 0">
+            <div class="first-step-form-wrap">
+                <t-form 
+                    :model="firstFormData" 
+                    :rules="rules"
+                    ref="firstFormEl" 
+                    label-width="120px"
+                    inline
+                    class="first-step-form"
+                >
+                    <div class="form-line">
+                        <t-form-item label="所属区域" prop="areaType">
+                            <t-radio-group v-model:modelValue="firstFormData.areaType">
+                            <t-radio label="国内">国内</t-radio>
+                            <t-radio label="海外">海外</t-radio>
+                            </t-radio-group>
+                        </t-form-item>
+                        <t-form-item label="商家名称" prop="name">
+                            <t-input v-model:modelValue="firstFormData.name" placeholder="请输入商家名称"/>
+                        </t-form-item>
+                    </div>
+                    <div class="form-line">
+                        <t-form-item label="社会信用码" prop="creditCode">
+                            <t-input v-model:modelValue="firstFormData.creditCode" disabled placeholder="请输入社会信用码"/>
+                        </t-form-item>
+                        <t-form-item label="商家地址" prop="address" v-if="firstFormData.areaType === '国内'">
+                            <t-cascader
+                            v-model:modelValue="firstFormData.address"
+                            :options="locationOptionsReactive"
+                            clearable
+                            placeholder="请选择客户地址"
+                            />
+                        </t-form-item>
+                        <t-form-item label="所属国家" prop="nation" v-else>
+                            <t-select v-model:modelValue="firstFormData.nation" filterable placeholder="请选择所属国家" style="width: 360px;">
+                            <t-option
+                                v-for="item in countryDataReactive"
+                                :key="item.code"
+                                :label="item.cnName"
+                                :value="item.cnName"
+                            >
+                                <div style="display: flex; justify-content: space-between;">
+                                <span>{{ item.cnName }}</span>
+                                <span style="color: #8492a6; font-size: 13px">{{ item.code }}</span>
+                                </div>
+                            </t-option>
+                            </t-select>
+                        </t-form-item>
+                    </div>
+                    <div class="form-line">
+                        <t-form-item label="决策人" prop="decisionMaker">
+                            <t-input v-model:modelValue="firstFormData.decisionMaker" placeholder="请输入决策人"/>
+                        </t-form-item>
+                        <t-form-item label="研究团队规模" prop="teamSize">
+                            <t-select 
+                            v-model:modelValue="firstFormData.teamSize" 
+                            placeholder="请选择研究团队规模"
+                            clearable
+                            >
+                            <t-option
+                                v-for="item in teamSizeOpts"
+                                :key="item.val"
+                                :label="item.label"
+                                :value="item.val"
+                            ></t-option>
+                            </t-select>
+                        </t-form-item>
+                    </div>
+                    <div class="form-line">
+                        <t-form-item label="资金规模" prop="fundsize">
+                            <t-input v-model:modelValue="firstFormData.fundsize" placeholder="请输入资金规模"/>
+                        </t-form-item>
+                        <t-form-item label="所属行业" prop="industry">
+                            <t-select 
+                            v-model:modelValue="firstFormData.industry" 
+                            placeholder="请选择行业" 
+                            clearable
+                            >
+                            <t-option
+                                v-for="item in tradeArr"
+                                :key="item.IndustryId"
+                                :label="item.IndustryName"
+                                :value="item.IndustryId"
+                            ></t-option>
+                            </t-select>
+                        </t-form-item>
+                    </div>
+                    <div class="form-line">
+                        <t-form-item label="用户上限" prop="userMax">
+                            <t-input v-model:modelValue="firstFormData.userMax" type="number" placeholder="请输入用户上限"/>
+                        </t-form-item>
+                        <t-form-item label="所属销售" prop="saller">
+                            <t-cascader
+                            v-model:modelValue="firstFormData.saller"
+                            :options="salesArr"
+                            :show-all-levels="false"
+                            :props="{
+                                expandTrigger: 'hover',
+                                children: 'Child',
+                                emitPath: false,
+                                label: 'AdminName',
+                                value: 'AdminId'
+                            }"
+                            filterable
+                            clearable
+                            placeholder="请选择销售"
+                            />
+                        </t-form-item>
+                    </div>
+                </t-form>
+            </div>
+        </template>
+        <template v-if="current === 1">
+        </template>
+        <template v-if="current === 2">
+        </template>
+        <!-- <div class="second-step-form-wrap" v-show="step===2">
+            <el-form 
+                :model="secondFormData" 
+                :rules="rules"
+                ref="secondFormEl" 
+                label-width="120px"
+                inline
+                class="second-step-form"
+            >
+                <div class="form-line">
+                    <el-form-item label="签约日期" prop="signDate">
+                        <el-date-picker
+                            v-model="secondFormData.signDate"
+                            type="date"
+                            placeholder="选择日期"
+                            value-format="yyyy-MM-dd"
+                        />
+                    </el-form-item>
+                    <el-form-item label="到期日期" prop="expirationDate">
+                        <el-date-picker
+                            v-model="secondFormData.expirationDate"
+                            type="date"
+                            placeholder="选择日期"
+                            value-format="yyyy-MM-dd"
+                        />
+                    </el-form-item>
+                </div>
+                
+            </el-form>
+        </div> -->
+
+        <div class="btns-box">
+            <t-button style="width:80px" theme="primary" v-show="current===0" @click="handleStepSecond">下一步</t-button>
+            <t-button style="width:80px" theme="primary" v-show="current===0" plain @click="$router.back()">取消</t-button>
+            <t-button style="width:80px" theme="primary" v-show="current===1 || current===2" plain @click="step--">上一步</t-button>
+            <t-button style="width:80px" theme="primary" v-show="current===1" plain @click="handleStepSecond">下一步</t-button>
+            <t-button style="width:80px" theme="primary" v-show="current===2" @click="handleAddBusiness">保存</t-button>
+        </div>
+    </div>
+</template>
+<script setup>
+import { ref, reactive, watch, onMounted } from 'vue';
+import { customInterence, roadshowInterence, businessCustomInterence } from '@/api/api.js';
+import Steps from "./components/Steps.vue";
+import { locationOptions } from '@/utils/location';
+import countryData from "@/utils/countryData";
+
+// 响应式状态
+const current = ref(0);
+const countryDataReactive = reactive(countryData);
+const locationOptionsReactive = reactive(locationOptions);
+const firstFormData = reactive({
+  areaType: '国内',
+  name: '',
+  creditCode: '',
+  address: '',
+  nation: '',
+  decisionMaker: '',
+  teamSize: '',
+  fundsize: '',
+  industry: '',
+  userMax: '',
+  saller: ''
+});
+const secondFormData = reactive({
+  signDate: '',
+  expirationDate: ''
+});
+const teamSizeOpts = reactive([
+    {
+        val:'50人及以下',
+        label:'50人及以下'
+    },
+    {
+        val:'200人及以下',
+        label:'200人及以下'
+    },
+    {
+        val:'超过200人',
+        label:'超过200人'
+    }
+]) 
+const tradeArr = ref([]); // 需要在getIndustry方法中赋值
+const salesArr = ref([]); // 需要在getSale方法中赋值
+// 表单验证规则(这里假设你使用的是某个UI库的验证规则,需要替换为实际的验证逻辑)
+const rules = reactive({
+  areaType: [{ required: true, message: '请选择所属区域', trigger: 'change' }],
+  name: [{ required: true, message: '请输入商家名称', trigger: 'blur' }],
+  creditCode: [{ required: true, message: '请输入社会信用码', trigger: 'blur' }],
+  address: [{ required: true, message: '请选择商家地址', trigger: 'change' }],
+  nation: [{ required: true, message: '请选择所属国家', trigger: 'change' }],
+  decisionMaker: [{ required: true, message: '请输入决策人', trigger: 'blur' }],
+  teamSize: [{ required: true, message: '请选择研究团队规模', trigger: 'change' }],
+  industry: [{ required: true, message: '请选择所属行业', trigger: 'change' }],
+  userMax: [{ required: true, message: '请输入用户上限', trigger: 'blur' }],
+  saller: [{ required: true, message: '请选择所属销售', trigger: 'change' }]
+});
+// 组件注册(在<script setup>中不需要显式注册,但在单文件组件中需要引入并使用<Steps />)
+// 生命周期钩子
+onMounted(() => {
+  getIndustry();
+  getSale();
+});
+
+// 监听器
+watch(() => firstFormData.areaType, (newVal) => {
+  console.log('watch?', newVal);
+  if (newVal === '海外') {
+    firstFormData.creditCode = 'HZ' + new Date().getTime();
+  } else {
+    firstFormData.creditCode = '';
+  }
+});
+
+// 方法
+const normalizingParams = (params) => {
+  const cascaderNodes = salesArr.value.find(item => item.AdminId === params.saller)?.children || [];
+  const IndustryName = tradeArr.value.find(item => item.IndustryId === params.industry)?.IndustryName || '';
+  return {
+    BusinessName: params.name,
+    CreditCode: params.creditCode,
+    RegionType: params.areaType,
+    Province: params.province,
+    City: params.city,
+    Nation: params.nation,
+    SellerId: Number(cascaderNodes[0]?.AdminId || 0),
+    SellerName: cascaderNodes[0]?.AdminName || '',
+    Leader: params.decisionMaker,
+    IndustryId: Number(params.industry),
+    IndustryName: IndustryName,
+    CapitalScale: params.fundsize,
+    ResearchTeamSize: params.teamSize,
+    UserMax: Number(params.userMax),
+    SigningTime: params.signDate || '',
+    ExpiredTime: params.expirationDate || ''
+  };
+};
+
+const handleStepSecond = () => {
+  // 假设你有一个验证方法validateForm,这里需要替换为实际的验证逻辑
+  validateForm(firstFormData).then(valid => {
+    if (valid) {
+      const params = normalizingParams(firstFormData);
+      businessCustomInterence.addBusiness({ IsCheck: true, ...params }).then(res => {
+        if (res.Ret !== 200) return;
+        current.value++;
+      });
+    }
+  });
+};
+
+const handleAddBusiness = () => {
+  // 假设你有一个验证方法validateForm,这里需要替换为实际的验证逻辑
+  validateForm(secondFormData).then(valid => {
+    if (valid) {
+      const params = normalizingParams({ ...firstFormData, ...secondFormData });
+      businessCustomInterence.addBusiness({ IsCheck: false, ...params }).then(res => {
+        if (res.Ret !== 200) return;
+        // 假设你有一个全局的message方法,这里需要替换为实际的消息提示逻辑
+        message.success('添加成功');
+        // 假设你有一个全局的router实例,这里需要替换为实际的路由跳转逻辑
+        router.push('/businessETAList');
+      });
+    }
+  });
+};
+
+const callbackHandle = async (data, cb) => {
+  if (data) {
+    isCheckCompanyInfo.value = true;
+    cb([]);
+    let res = await customInterence.companyQccSearch({ KeyWord: data });
+    if (res.Ret === 200) {
+      isCheckCompanyInfo.value = false;
+      if (res.Data && res.Data.length > 0) {
+        let arr = res.Data.map(item => ({ value: item.Name, ...item }));
+        cb(arr);
+      } else {
+        cb([{}]);
+      }
+    }
+  }
+};
+
+const checkCompanyfocus = () => {
+  checkCompanyfocusIs.value = true;
+  setTimeout(() => {
+    checkCompanyfocusIs.value = false;
+  }, 500);
+};
+
+const customNameSelect = (value) => {
+  firstFormData.creditCode = value.CreditCode;
+  setTimeout(async () => {
+    checkCompany();
+  }, 10);
+};
+
+const checkCompany = () => {
+  setTimeout(() => {
+    if (checkCompanyfocusIs.value) return;
+    if ((!firstFormData.name && !firstFormData.creditCode) || (isCheckCompanyInfo.value && firstFormData.name)) return;
+    customInterence.checkCompanyInfo({
+      CompanyName: firstFormData.name,
+      CreditCode: firstFormData.creditCode
+    }).then(res => {
+      if (res.Ret === 200) {
+        if (res.Data.RepeatStatus > 0) {
+          repeatId.value = res.Data.CompanyId;
+          repeatName.value = res.Data.ProductName;
+          nameRepeat.value = res.Data.RepeatStatus;
+          codeRepeat.value = res.Data.Status;
+          isCheck.value = true;
+        } else {
+          nameRepeat.value = 0;
+          isCheck.value = false;
+        }
+      }
+    });
+  }, 500);
+};
+
+const selectRegion = (e) => {
+  firstFormData.province = e[0];
+  firstFormData.city = e[1];
+};
+
+const getIndustry = () => {
+  customInterence.getindustry({ Classify: 'ficc' }).then(res => {
+    if (res.Ret === 200) {
+      tradeArr.value = res.Data.List || [];
+    }
+  });
+};
+
+const getSale = async () => {
+  const res = await roadshowInterence.getSellerList();
+  if (res.Ret !== 200) return;
+  salesArr.value = res.Data.List.map(i => ({
+    ...i,
+    AdminName: i.AdminName || i.GroupName,
+    AdminId: i.AdminId || i.GroupId
+  }));
+};
+
+// 响应式变量
+const isCheckCompanyInfo = ref(false);
+const checkCompanyfocusIs = ref(false);
+const inquireSuccess = ref(false);
+const nameRepeat = ref(false);
+const codeRepeat = ref(false);
+const isCheck = ref(false);
+const repeatId = ref('');
+const repeatName = ref('');
+
+// 假设的验证方法,需要替换为实际的验证逻辑
+const validateForm = (formData) => {
+  return new Promise((resolve) => {
+    // 验证逻辑
+    resolve(true); // 假设总是通过验证
+  });
+};
+
+// 假设的全局message和router实例,需要替换为实际的实例
+const message = {
+  success: (msg) => {
+    console.log(msg); // 替换为实际的消息提示逻辑
+  }
+};
+
+const router = {
+  push: (path) => {
+    console.log(`Navigating to ${path}`); // 替换为实际的路由跳转逻辑
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.add-business{
+    padding:30px;
+    box-sizing: border-box;
+    background-color: #fff;
+    min-width: 1100px;
+    height: calc(100vh - 120px);
+    .first-step-form-wrap,.second-step-form-wrap{
+        margin-top:60px;
+        border-top: 1px solid #DCDCDC;
+        width:70%;
+    }
+    .t-form{
+        .form-line{
+            display: flex;
+            justify-content: space-between;
+            margin:30px 0;
+            border-bottom: 1px solid #DCDCDC;
+            .t-form__item {
+                width:48%;
+                margin-right: 20px;
+            }
+            .el-input,.el-select,.el-cascader,.el-radio-group{
+                width:360px;
+            }
+            .el-radio-group{
+                display: flex;
+                justify-content: space-between;
+                .el-radio{
+                    width: 165px;
+                    text-align: center;
+                }
+            }
+        }
+    }
+}
+.btns-box{
+    position: fixed;
+    display: flex;
+    justify-content: space-between;
+    left: 50%;
+    bottom: 100px;
+    transform: translateX(-50%);
+    width: 200px;
+    z-index: 99;
+}
+</style>

+ 0 - 0
src/views/business_ETA_manage/businessAuth.vue → src/views/business_manage/businessAuth.vue


+ 0 - 0
src/views/business_ETA_manage/businessDetail.vue → src/views/business_manage/businessDetail.vue


+ 0 - 0
src/views/business_ETA_manage/businessEdit.vue → src/views/business_manage/businessEdit.vue


+ 448 - 0
src/views/business_manage/businessList.vue

@@ -0,0 +1,448 @@
+<template>
+    <div class="business-ETA-list">
+      <div class="top-filter-box">
+        <t-button theme="primary" @click="navigateToAdd">新增</t-button>
+        <t-input
+              style="width: 310px; margin-left: auto"
+              placeholder="商家名称/社会信用码/商家ID"
+              v-model="searchTxt"
+              @change="changeSelectOptions('search')"
+          >
+          <template #prefixIcon><SearchIcon /></template>
+        </t-input>
+      </div>
+      <div class="table-wrap">
+        <div class="select-wrap">
+          <t-select
+            v-model="trade"
+            placeholder="请选择行业"
+            clearable
+            @change="changeSelectOptions('trade')"
+          >
+            <t-option
+              v-for="item in tradeArr"
+              :key="item.IndustryId"
+              :label="item.IndustryName"
+              :value="item.IndustryId"
+            />
+          </t-select>
+          <t-cascader
+            v-model="sales"
+            :options="salesArr"
+            :show-all-levels="false"
+            :keys="cascaderProps"
+            multiple
+            collapse-tags
+            filterable
+            clearable
+            placeholder="请选择销售"
+            @change="changeSelectOptions('sales')"
+          />
+          <t-cascader
+            v-model="valueLocation"
+            :options="reactiveLocationOptions"
+            :keys="locationProps"
+            clearable
+            placeholder="请选择客户地址"
+            @change="changeSelectOptions('location')"
+          />
+          <t-select
+            v-model="nation"
+            placeholder="请选择所属国家"
+            filterable
+            clearable
+            @change="changeSelectOptions('nation')"
+          >
+            <t-option
+              v-for="item in countryData"
+              :key="item.code"
+              :label="item.cnName"
+              :value="item.cnName"
+            >
+              <div style="display: flex; justify-content: space-between;">
+                <span>{{ item.cnName }}</span>
+                <span style="color: #8492a6; font-size: 13px">{{ item.code }}</span>
+              </div>
+            </t-option>
+          </t-select>
+          <t-select
+            v-model="signStatus"
+            placeholder="请选择签约状态"
+            clearable
+            @change="changeSelectOptions('signStatus')"
+          >
+            <t-option
+              v-for="item in signStatusOpts"
+              :key="item.val"
+              :label="item.label"
+              :value="item.val"
+            />
+          </t-select>
+        </div>
+        <t-table
+          :columns="tableColOpts"
+          :data="tableData"
+          row-key="id"
+          :bordered="true"
+          :table-layout="'auto'"
+          :loading="isTableLoading"
+          @sort-change="sortChangeHandle"
+        >
+          <template #SigningStatus="{ row }">
+            <span >
+              {{ signStatusOpts[row.SigningStatus - 1].label }}
+              {{ !row.Enable ? '(禁用)' : '' }}
+            </span>
+          </template>
+          <template #Address="{ row }">
+            <span >
+              {{
+                row.RegionType === '海外'
+                  ? row.Nation || row.Address
+                  : row.Address
+              }}
+            </span>
+          </template>
+          <template #BusinessName="{ row }">
+            <span @click="handleShowDetail(row)" class="link">
+              {{ row.BusinessName }}
+            </span>
+          </template>
+          <template #cellEmptyContent="{ col }">
+            <div class="table-opt-btns" v-if="col.colKey === 'opt'">
+              <span @click="handleEdit(col)">编辑</span>
+              <span @click="handleShowRenewal(col)">添加续约</span>
+              <t-dropdown>
+                <t-icon name="more" />
+                <t-dropdown-menu v-model:visible="dropdownVisible[col.id]">
+                  <t-dropdown-item @click="itemClickHandle('setAuth', col)">权限设置</t-dropdown-item>
+                  <t-dropdown-item @click="itemClickHandle('modifySale', col)">修改销售</t-dropdown-item>
+                  <t-dropdown-item @click="itemClickHandle('disable', col)">
+                    {{ col.Enable ? '禁用' : '启用' }}
+                  </t-dropdown-item>
+                </t-dropdown-menu>
+              </t-dropdown>
+            </div>
+          </template>
+        </t-table>
+        <div style="text-align: right; margin-top: 20px">
+          <t-pagination
+            :current-page="page"
+            :page-size="pageSize"
+            :total="total"
+            @change="handleCurrentChange"
+          />
+        </div>
+      </div>
+  
+      <!-- 添加续约 -->
+      <t-dialog
+        title="添加续约"
+        :visible.sync="showRenewal"
+        :modal-append-to-body="false"
+        :close-on-click-modal="false"
+        @close="showRenewal = false"
+      >
+        <template v-slot:content>
+          <AddRenewal @addRenewal="handleAddRenewal" @close="showRenewal = false" />
+        </template>
+      </t-dialog>
+  
+      <!-- 修改销售 -->
+      <t-dialog
+        title="修改销售"
+        :visible.sync="showModifySaller"
+        :modal-append-to-body="false"
+        :close-on-click-modal="false"
+        @close="showModifySaller = false"
+      >
+        <template v-slot:content>
+          <ModifySaller
+            :salesArr="salesArr"
+            :data="modifyData"
+            @modifySaller="handleModifySaller"
+            @close="showModifySaller = false"
+          />
+        </template>
+      </t-dialog>
+    </div>
+  </template>
+  
+  <script setup>
+  import { ref, reactive, onMounted } from 'vue';
+  import { useRoute, useRouter } from 'vue-router'
+  import { customInterence, businessCustomInterence, roadshowInterence } from '@/api/api.js';
+  import { locationOptions } from '@/utils/location';
+  import AddRenewal from './components/AddRenewal.vue';
+  import ModifySaller from './components/ModifySaller.vue';
+  import countryData from '@/utils/countryData';
+  import { SearchIcon } from 'tdesign-icons-vue-next';
+  const router=useRouter()
+  const route=useRoute()
+  const searchTxt = ref('');
+  const provinceValue = ref('');
+  const cityValue = ref('');
+  const trade = ref('');
+  const tradeArr = ref([]);
+  const sales = ref([]);
+  const salesArr = ref([]);
+  const valueLocation = ref([]);
+  const nation = ref('');
+  const sortParam = ref(0)
+  const sortType = ref(0)
+  const locationProps = reactive({
+    multiple: true,
+    value: 'name',
+    children: 'city',
+    label: 'name',
+  });
+  const cascaderProps = reactive({
+    expandTrigger: 'hover',
+    children: 'Child',
+    emitPath: false,
+    label: 'AdminName',
+    value: 'AdminId',
+    multiple: true,
+  });
+  const signStatus = ref('');
+  const signStatusOpts = ref([
+    { label: '首次签约', val: 1 },
+    { label: '续约中', val: 2 },
+    { label: '已终止', val: 3 },
+    { label: '待签约', val: 4 },
+  ]);
+  const tableColOpts = ref([
+    { title: '商家名称', colKey: 'BusinessName'},
+    { title: '商家ID', colKey: 'BusinessCode' },
+    { title: '商家地址/所属国家', colKey: 'Address' },
+    { title: '销售', colKey: 'SellerName' },
+    { title: '签约状态', colKey: 'SigningStatus' },
+    { title: '运维开始时间', colKey: 'SigningTime', sorter: true },
+    { title: '到期时间', colKey: 'ExpiredTime', sorter: true },
+    { title: '创建时间', colKey: 'CreateTime', sorter: true },
+    { title: '用户上限', colKey: 'UserMax', sorter: true },
+    { align: 'center', colKey: 'opt', title: '操作'},
+  ]);
+  const tableData = ref([]);
+  const isTableLoading = ref(false);
+  const page = ref(1);
+  const pageSize = ref(20);
+  const total = ref(0);
+  const showRenewal = ref(false);
+  const showModifySaller = ref(false);
+  const modifyData = ref({});
+  const dropdownVisible = reactive({});
+  const reactiveLocationOptions = reactive(locationOptions);
+  
+  const navigateToAdd = () => {
+    // 导航到新增客户页面
+    router.push('/customer/addBusiness');
+  };
+  
+  const changeSelectOptions = (option) => {
+    if (option === 'location') {
+      const provinceArr = [];
+      const cityArr = [];
+      console.log(valueLocation.value);
+      
+      valueLocation.value.forEach((item) => {
+        provinceArr.push(item[0]);
+        cityArr.push(item[1]);
+      });
+      // provinceArr 需要去重
+      provinceValue.value = [...new Set(provinceArr)].join(',');
+      cityValue.value = cityArr.join(',');
+    }
+    fetchBusinessList();
+  };
+  
+  const sortChangeHandle = (params) => {
+    console.log(params);
+    
+    // 处理排序逻辑
+    const sortParamMap = {
+        'SigningTime':1,//签约时间
+        'ExpiredTime':2,//到期时间
+        'CreateTime':3,//创建时间
+        'UserMax':4,//用户上限
+    }
+    sortParam.value = sortParamMap[params.prop]
+    sortType.value = params.order === 'ascending' ? 1 :params.order === 'descending' ? 2 : 0
+    page.value = 1
+    fetchBusinessList()
+  };
+  
+  const fetchBusinessList = async () => {
+    isTableLoading.value = true;
+    try {
+      const res = await businessCustomInterence.getBusinessList({
+        Keyword: searchTxt.value,
+        SellerIds: sales.value.join(','),
+        SigningStatus: Number(signStatus.value),
+        // ... 其他参数
+        Province: provinceValue.value,
+        City: cityValue.value,
+        IndustryId: Number(trade.value),
+        Nation: nation.value,
+        PageSize: pageSize.value,
+        CurrentIndex: page.value,
+        SortParam: sortParam.value,
+        SortType: sortType.value
+      });
+      if (res.Ret !== 200) return;
+      tableData.value = res.Data.List;
+      total.value = res.Data.Paging.Totals;
+    } finally {
+      isTableLoading.value = false;
+    }
+  };
+  
+  const handleShowDetail = (data) => {
+    // 导航到详情页面
+    router.push({ path: '/customer/businessDetail', query: { id: data.EtaBusinessId } });
+  };
+  
+  const handleEdit = (data) => {
+    // 导航到编辑页面
+    router.push({ path: '/customer/editBusiness', query: { id: data.EtaBusinessId } });
+  };
+  
+  const handleShowRenewal = (data) => {
+    modifyData.value = data;
+    showRenewal.value = true;
+  };
+  
+  const handleAddRenewal = ({ signDate, expirationDate }) => {
+    // 处理添加续约逻辑
+  };
+  
+  const handleModifySaller = ({ saller, sallerName }) => {
+    // 处理修改销售逻辑
+  };
+  
+  const changeBusinessStatus = (data) => {
+    // 处理启用/禁用商家逻辑
+  };
+  
+  const itemClickHandle = (type, data) => {
+    if (type === 'modifySale') {
+      modifyData.value = data;
+      showModifySaller.value = true;
+    } else if (type === 'disable') {
+      changeBusinessStatus(data);
+    } else if (type === 'setAuth') {
+      // 处理权限设置逻辑
+    }
+  };
+  
+  const toggleDropdown = (row) => {
+    dropdownVisible[row.id] = !dropdownVisible[row.id];
+  };
+  
+  const getIndustry = async () => {
+    try {
+      // 假设 customInterence 是一个已经定义好的 API 服务
+      const res = await customInterence.getindustry({ Classify: 'ficc' });
+      if (res.Ret === 200) {
+        tradeArr.value = res.Data.List || [];
+      }
+    } catch (error) {
+      console.error('获取行业数据失败:', error);
+    }
+  };
+  
+  const getSale = async () => {
+    try {
+      // 假设 roadshowInterence 是一个已经定义好的 API 服务
+      const res = await roadshowInterence.getSellerList();
+      if (res.Ret !== 200) return;
+      salesArr.value = res.Data.List.map((item) => ({
+        ...item,
+        AdminName: item.AdminName || item.GroupName,
+        AdminId: item.AdminId || item.GroupId,
+      }));
+    } catch (error) {
+      console.error('获取销售数据失败:', error);
+    }
+  };
+  
+  const handleCurrentChange = (newPage) => {
+    page.value = newPage;
+    fetchBusinessList();
+  };
+  
+  onMounted(async () => {
+    await getIndustry();
+    await getSale();
+    fetchBusinessList();
+  });
+  </script>
+  
+  <style lang="scss">
+  .business-ETA-list {
+    .t-select__wrap {
+      width: 240px;
+    }
+    .top-filter-box {
+      .t-cascader__search-input {
+        min-width: 30px;
+      }
+    }
+  }
+  </style>
+  
+  <style lang="scss" scoped>
+  .top-filter-box {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    border: 1px solid #ececec;
+    padding: 20px 30px;
+    background: #fff;
+    border-radius: 4px;
+    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
+  }
+  
+  .table-wrap {
+    margin-top: 30px;
+    border: 1px solid #ececec;
+    padding: 20px 30px;
+    background: #fff;
+    border-radius: 4px;
+    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
+  
+    .select-wrap {
+      display: flex;
+      gap: 20px;
+      align-items: center;
+      margin-bottom: 20px;
+  
+      .t-select,
+      .t-cascader {
+        width: 240px;
+      }
+    }
+  
+    .link {
+      color: #4099ef;
+      cursor: pointer;
+  
+      &:hover {
+        text-decoration: underline;
+      }
+    }
+  
+    .table-opt-btns {
+      color: #4099ef;
+      display: flex;
+      align-content: center;
+      justify-content: center;
+      align-items: center;
+  
+      span {
+        margin: 0 3px;
+        cursor: pointer;
+      }
+    }
+  }
+  </style>

+ 0 - 0
src/views/business_ETA_manage/components/AddRenewal.vue → src/views/business_manage/components/AddRenewal.vue


+ 0 - 0
src/views/business_ETA_manage/components/ModifySaller.vue → src/views/business_manage/components/ModifySaller.vue


+ 0 - 0
src/views/business_ETA_manage/components/Steps.vue → src/views/business_manage/components/Steps.vue