import http from "@/api/http.js"

export const approveInterence = {
    /**
     * 获取审批流列表
     * @param {Object} params 
     * @param {Number} params.PageSize
     * @param {Number} params.CurrentIndex
     * @param {Number} params.ReportType 报告类型：1-中文研报；2-英文研报；3-智能研报
     * @param {Number} params.ClassifyFirstId 关联报告一级分类ID
     * @param {Number} params.ClassifySecondId 关联报告二级分类ID
     * @param {String} params.Keyword
     * @param {Number} params.SortRule 排序方式: 1-正序; 2-倒序(默认)
     * @returns 
     */
    getApproveFlowList(params){
        return http.get("/report_approve/flow/list",params)
    },
    /**
     * 获取报告分类树
     * @param {Object} params 
     * @param {Number} params.ReportApproveFlowId 审批流ID(非必填)
     * @returns 
     */
    getReportClassifyTree(params){
        return http.get("/report_approve/report/classify_tree",params)
    },
    /**
     * 删除审批流
     * @param {Object} params 
     * @param {Number} params.ReportApproveFlowId
     * @returns 
     */
    deleteApproveFlow(params){
        return http.post("/report_approve/flow/remove",params)
    },
    /**
     * 获取审批流详情
     * @param {Object} params 
     * @param {Number} params.ReportApproveFlowId
     * @returns 
     */
    getApproveFlowDetail(params){
        return http.get("/report_approve/flow/detail",params)
    },
    /**
     * 新增审批流
     * @param {Object} params 
     * @param {String} params.FlowName 审批流名称
     * @param {Number} params.ReportType 报告类型：1-中文研报；2-英文研报；3-智能研报
     * @param {Number} params.ClassifyFirstId 一级分类ID
     * @param {Number} params.ClassifySecondId 二级分类ID
     * @param {Object[]} params.Nodes 审批节点
     * @param {Number} params.Nodes[].ApproveType 审批类型：1-依次审批；2-会签；3-或签
     * @param {Object[]} params.Nodes[].Users 审批人信息
     * @param {String} params.Nodes[].Users[].UserType 审批人类型: user-用户; role-角色
     * @param {Number} params.Nodes[].Users[].UserId 用户/角色ID
     * @param {String} params.Nodes[].Users[].UserName 用户/角色姓名
     * @param {String} params.Nodes[].Users[].Sort 依次审批时的排序
     * @returns 
     */
    addNewApproveFlow(params){
        return http.post("/report_approve/flow/add",params)
    },
    /**
     * 编辑审批流
     * @param {Object} params 
     * @param {Number} params.ReportApproveFlowId 审批流Id
     * 其他参数同上
     * @returns 
     */
    editApproveFlow(params){
        return http.post("/report_approve/flow/edit",params)
    },


    /**
     * 获取审批列表
     * @param {Object} params 
     * @param {Number} params.PageSize
     * @param {Number} params.CurrentIndex
     * @param {Number} params.ReportType 报告类型：1-中文研报；2-英文研报；3-智能研报
     * @param {Number} params.ClassifyFirstId 报告的倒数第二级id
     * @param {Number} params.ClassifySecondId 报告的倒数第一级id
     * @param {String} params.Keyword
     * @param {Number} params.SortRule 排序方式: 1-正序; 2-倒序(默认)
     * @param {Number} params.SortField 排序字段：1-提交时间；2-处理时间；3-审批时间
     * @param {Number} params.ListType 列表类型：1-待处理；2-已处理；3-我发起的
     * @param {Number} params.ApproveState 审批状态：1-待审批；2-已审批/已通过；3-已驳回；4-已撤回/已撤销
     * @param {Number} params.TimeType 时间类型：1-提交时间；2-处理时间；3-审批时间
     * @param {String} params.StartTime 开始时间
     * @param {String} params.EndTime 结束时间
     * @returns 
     */
    getApproveList(params){
        return http.get("/report_approve/list",params)
    },
    /**
     * 获取审批详情
     * @param {Object} params
     * @param {Number} params.ReportApproveId
     * @returns 
     */
    getApproveDetail(params){
        return http.get("/report_approve/detail",params)
    },
    /**
     * 审批消息通知
     * @param {Object} params 
     * @param {Number} params.PageSize
     * @param {Number} params.CurrentIndex
     * @returns 
     */
    getApproveMsgList(params){
        return http.get("/report_approve/message/list",params)
    },
    /**
     * 消息通知已读
     * @param {Object} params 
     * @param {Number} params.MessageId
     * @returns 
     */
    readApproveMsg(params){
        return http.post("/report_approve/message/read",params)
    },
    /**
     * 撤销审批
     * @param {Object} params 
     * @param {Number} params.ReportApproveId
     * @returns 
     */
    cancelApprove(params){
        return http.post("/report_approve/cancel",params)
    },
    /**
     * 通过审批
     * @param {Object} params 
     * @param {Number} params.ReportApproveId
     * @returns 
     */
    passApprove(params){
        return http.post("/report_approve/approve",params)
    },
    /**
     * 驳回审批
     * @param {Object} params 
     * @param {Number} params.ReportApproveId
     * @param {String} params.ApproveRemark
     * @returns 
     */
    rejectApprove(params){
        return http.post("/report_approve/refuse",params)
    },
    /**
     * 校验研报分类是否有审批流
     * @param {Object} params 
     * @param {Number} params.ReportType 报告类型：1-中文研报；2-英文研报；3-智能研报
     * @param {Number} params.ClassifyFirstId 倒数第二级分类的id
     * @param {Number} params.ClassifySecondId 倒数第一级分类的id
     * @returns 
     */
    checkClassifyApprove(params){
        return http.post("/report_approve/classify/check_open",params)
    },




    /*------------研报审批接口----------- */
    /**
     * 中文研报提交审批
     * @param {Object} params 
     * @param {Number} params.ReportId
     * @returns 
     */
    reportCnSubmit(params){
        return http.post("/report/approve/submit",params)
    },
    /**
     * 中文研报撤销审批
     * @param {Object} params 
     * @param {Number} params.ReportId
     * @returns 
     */
    reportCnCancel(params){
        return http.post("/report/approve/cancel",params)
    },
    /**
     * 英文研报提交审批
     * @param {Object} params 
     * @param {Number} params.ReportId
     * @returns 
     */
    reportEnSubmit(params){
        return http.post("/english_report/approve/submit",params)
    },
    /**
     * 英文研报撤销审批
     * @param {Object} params 
     * @param {Number} params.ReportId
     * @returns 
     */
    reportEnCancel(params){
        return http.post("/english_report/approve/cancel",params)
    },
    /**
     * 智能研报提交审批
     * @param {Object} params 
     * @param {Number} params.ReportId
     * @returns 
     */
    reportSmartSubmit(params){
        return http.post("/smart_report/approve/submit",params)
    },
    /**
     * 智能研报撤销审批
     * @param {Object} params 
     * @param {Number} params.ReportId
     * @returns 
     */
    reportSmartCancel(params){
        return http.post("/smart_report/approve/cancel",params)
    },

}